2002-07-31 Charles Wilson <cwilson@ece.gatech.edu>
* aclocal.in (parse_arguments): Add support for extending
default macro search path, using a `dirlist' file within
the aclocal directory.
* automake.texi (Invoking aclocal): Move option descriptions into ...
(aclocal options): ... this new node.
(Macro search path): New node.
* tests/dirlist.test: New file.
* tests/Makefile.am (TESTS): Add dirlist.test.
* m4/dirlist: New file.
* m4/Makefile.am (EXTRA_DIST): Add dirlist.
* tests/defs: Honor any installed dirlist when searching for
libtool.m4 and gettext.m4.
Build info files in builddir instead of srcdir (for PR automake/168),
and prepare support for info files in subdirecties.
* automake.in (output_texinfo_build_rules): New function.
(handle_texinfo_helper): Use output_texinfo_build_rules, and
prepare to support subdir texinfos. Define am__TEXINFO_TEX_DIR.
* lib/am/texi-vers.am: Build version.texi and stamp-vti in the
current directory, not $(srcdir). Use %STAMPVTI% to name the stamp
file.
* lib/am/texibuild.am: Rewrite to output files in the current
directory, not $(srcdir). Also, support both generic and
non-generic output. Pass `-o $@' to makeinfo, texinfo, and
texi2dvi -- this is a partial fix for PR automake/339.
* tests/texinfo3.test: Make sure the `.texi:' rule is output.
* tests/texinfo10.test: Use set -e, so the checks are not ignored.
* tests/texinfo16.test: New file.
* tests/Makefile.am (TESTS): Add texinfo16.test.
* configure.in: Bump version to 1.6b.
* lib/config.guess, lib/config.sub, lib/Automake/XFile.pm: New
upstream versions.
* automake.in: Don't write @ALLOCA@ and @LIBOBJS@ in clear text,
since this file is processed by config.status.
* configure.in: Bump version to 1.6b.
* lib/config.guess, lib/config.sub, lib/Automake/XFile.pm: New
upstream versions.
* automake.in: Don't write @ALLOCA@ and @LIBOBJS@ in clear text,
since this file is processed by config.status.
* automake.in (read_am_file): Escaped newlines in comments are not
portable. If a comment line doesn't start with a `#', add it.
* tests/comment6.test: Ensure this is done.
Fix failures reported by Patrick Welche on NetBSD.
* tests/gnits2.test, tests/gnits3.test: Don't trust the exit
status of `make -k'.
* tests/obsolete.test: Source obs.1 and obs.2 from current
directory.
* tests/required2.test: New file.
* tests/Makefile.am (TESTS): Add required2.test.
* automake.in (initialize_per_input): Remove %require_file_found
setting. This reverts my change of 2002-04-19.
(require_file_internal): Use the full name of a file as a
key in %require_file_found, not only the basename.
Reported by Andrew Suffield.
* tests/gnits2.test: Use --program-prefix. Test for scripts too.
Replace the sed script by calls to grep, easier to debug.
* lib/am/progs.am (installcheck-%DIR%PROGRAMS): Honor nobase
and $(transform).
* lib/am/scripts.am (installcheck-%DIR%SCRIPTS): Likewise.
* lib/am/progs.am (install-%DIR%PROGRAMS, uninstall-%DIR%PROGRAMS):
Always strip the directory part before applying $(transform),
even for nobase_ targets.
* lib/am/scripts.am (install-%DIR%SCRIPTS, uninstall-%DIR%SCRIPTS):
Likewise.
* tests/nobase.test: Use --program-prefix while testing nobase
support.
Fix for PR automake/338:
* automake.in (seen_gettext_external): New variable.
(handle_gettext): Conditionalize the intl/ check on
$seen_gettext_external. Fix grep usage.
(scan_autoconf_traces): Set $seen_gettext_external if
`external' is passed to AM_GNU_GETTEXT.
* tests/gettext.test, tests/gettext2.test: New files.
* tests/Makefile.am (TESTS): Add gettext.test and gettext2.test.
* m4/header.m4 (_AM_DIRNAME, _AM_STAMP, _AM_CONFIG_HEADER,
_AM_CONFIG_HEADER_INSINUATE): Remove them all. Leave just ...
(AM_CONFIG_HEADER): ... this new definition for compatibility.
* m4/init.m4: Don't call _AM_CONFIG_HEADER_INSINUATE.
(_AC_AM_CONFIG_HEADER_HOOK): New macro.
* tests/confh5.tests: Delete.
* tests/Makefile.am (TESTS): Remove confh5.tests.
* automake.in: Register warning channel `gnu'.
(set_strictness): Turn on `gnu' in --gnu and --gnits.
(usage): Mention the `gnu' category.
(%var_is_am): Replace by ...
(%var_owner): ... this, which uses ...
(VAR_AUTOMAKE, VAR_CONFIGURE, VAR_MAKEFILE): ... these new constants.
Adjust all uses of %var_is_am.
(handle_languages): Warn about user variables being overriden.
(require_variables): Also check %configure_vars for the existence
of a required variable.
* automake.texi (Invoking Automake): Document -Wgnu.
* tests/yacc2.test, tests/yacc3.test: Use -Wno-gnu when
we test YFLAGS.
* tests/gnuwarn.test: New file.
* tests/Makefile.am (TESTS): Add gnuwarn.test.
Fix for PR automake/337:
* automake.in: Redefine the `flags' attribute of each language
as a list. List CPPFLAGS in `flags' when it is used.
(register_language): Set the default value of 'flags'.
(handle_single_transform_list): Adjust to treat `flags' as a list.
(handle_languages): Likewise. Don't bother defining the
configure variable for `c', this is always done since we trace
configure.ac.
* automake.texi (etags): Use per-executable _CPPFLAGS.
(Program and Library Variables): Mention maude_CPPFLAGS.
(Program variables): Likewise.
* tests/specflags8.test: Use _CPPFLAGS instead of _CFLAGS.
* tests/specflags9.test: New file.
* tests/Makefile.am (TESTS): Add specflag9.test.
* automake.texi: Use `variable' instead of `macro' everywhere it
designates a Makefile variable.
(Texinfo): `VERSION', `UPDATED', `EDITION', and `UPDATED-MONTH' are
`flags', not `macros'. `Macro' means something else in Texinfo.
Also show how to use these flags.
* automake.in (file_contents_internal): s/macro/variable/ in
error message.
* automake.in (parse_arguments): Call Getopt twice: once to catch
--help or --verbose, and once to process the other arguments.
(usage, verbose): Always exit 0, ignoring $exit_code (which anyway
should always be 0 because of the change to parse_arguments).
* tests/Makefile.am (TESTS): Add getopt.test.
* tests/getopt.test: New file.
* automake.texi (Invoking Automake): Document WARNINGS.
* automake.in (switch_warning, parse_WARNINGS): New function.
(setup_warnings): Rename to ...
(parse_warnings): ... this. Move most of the code to switch_warning.
Accept a comma separated list of categories.
* tests/vars2.test: Use a comma separated list of warning categories.
* m4/header.m4 (AM_CONFIG_HEADER): New macro.
* tests/confh5.test: Make sure that Autoconf complains if
AM_CONFIG_HEADER or AC_CONFIG_HEADERS is called before
AM_INIT_AUTOMAKE.
* lib/Automake/Channels.pm: New file.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add Channels.pm.
* automake.in: Use Automake::Channels and register some channels
for errors and warnings.
($exit_status): Remove, replaced by Channels::$exit_code.
(%required_variables): Remove, Channels will filter-out duplicates
itself.
(initialize_per_input): Call reset_local_duplicates.
(prog_error): Adjust to all `msg'.
(setup_warnings): New functions.
(parse_arguments): Accept -W CATEGORY and --warnings=CATEGORY,
call setup_warnings.
(usage): Update usage text accordingly.
(macro_dump, macros_dump): Return the dump as a string instead
of printing it.
(am_install_var) <$warned_about_extra>: Remove, Channels will
filter-out duplicates itself.
(set_strictness): Turn on/off channels for each stricness.
(err, fatal, err_var, err_target, err_am, err_ac, msg_var,
msg_target, msg_am, msg_ac, reject_var, reject_target, verb):
New functions, to replace ...
(print_error, am_error, file_error, macro_error, target_error,
conf_error, file_warning): ... these functions. Remove them.
Update all the code to use the new functions. The rough
correspondance is
am_error -> err_am
file_error -> err
macro_error -> err_var
target_error -> err_target
conf_error -> err_ac
die -> fatal
macro_error if defined -> reject_var
target_error if defined -> reject_target
verbose -> verb
* automake.texi (Invoking Automake): Document -W and --warnings.
Remove the documentation for --Werror and --Wno-error.
* tests/defs: Use -Werror, no --Werror.
* tests/exeext2.test: Test that the error message
is enabled with -Wobsolete.
* tests/output5.test: Rewrite to test that Automake complains
when there is no Makefile specified. (The original test was
succeeding for the wrong reason.)
* tests/seenc.test: Don't use --Wno-error, there is no reason now
that -Werror doesn't stop after the first error.
* tests/subobj.test: Use --add-missing, and check that
`compile' is installed and that Automake says so.
* tests/subobj2.test: Don't create `compile'.
* automake.in (am_macro_for_var): Add LIBTOOL.
(ac_macro_for_var): Add RANLIB.
(seen_libtool): Remove.
(handle_libtool, lang_c_finish, define_compiler_variable,
make_paragraphs): Use
variable_defined ('LIBTOOL') instead of $seen_libtool.
(handle_languages) <%transform>: Don't set 'LIBTOOL', it is
already done in make_paragraphs.
(handle_libraries): Simplify by requiring RANLIB with
&require_variables_for_macro.
(handle_ltlibraries): Simplify by requiring LIBTOOL with
&require_variables_for_macro.
(scan_autoconf_traces): Don't trace for AC_PROG_LIBTOOL and
AM_PROG_LIBTOOL.
* tests/libtool4.test, tests/library2.test: New files.
* tests/Makefile.in (TESTS): Add libtool4.test and library2.test.
Handle multiple suffix rules with the same input extension.
For PR automake/37.
* automake.in (suffix_rules_default): New variable.
(suffix_rules): Redefine as a hash of hashes of pairs.
(initialize_per_input): Setup suffix_rules_default from
suffix_rules on first call, an override suffix_rules
with suffix_rules_default on following calls.
(struct) <output_extensions>: New attribute.
(register_language): Set the default for output_extensions.
Call register_suffix_rule for each suffix.
(derive_suffix, handle_languages): Adjust to the new definition
of $suffix.
(register_suffix_rule): New function.
(rule_define): Call register_suffix_rule.
* tests/suffix8.test, tests/suffix9.test, tests/suffix10.test:
New files.
* tests/Makefile.am (TESTS): Add them.
* automake.in (am_macro_for_var, ac_macro_for_var,
required_variables): New variables.
(am_c_prototypes, seen_prog_lex, am_lispdir_location,
pythondir_location): Remove.
(initialize_per_input): Clear %required_variables.
(require_variables, require_variables_for_macro): New functions.
(handle_languages): Call &require_variables for $lang->config_vars.
(handle_compile): Call &require_variables_for_macro for the
ANSI2KNR and U variables.
(handle_emacs_lisp): Call &require_variables for EMACS and libdir.
(handle_python): Call &require_variables for PYTHON. Don't
explicitly allow `python' as a prefix for PYTHON.
(scan_autoconf_traces): Don't scan AC_PROG_LEX, AM_C_PROTOTYPES,
AM_PATH_LISPDIR, and AM_PATH_PYTHON.
(scan_autoconf_traces) <AC_SUBST>: Don't filter out ANSI2KNR and
AMDEPBACKSLASH here...
(define_configure_variable): ... do this here.
(am_primary_prefixes): Probe the existence of ${X}dir using
&require_variables_for_macro. If a standard prefix is not
legitimate, say so. Ignore all configure variables.
* tests/ansi8.test, tests/cxx2.test, tests/gcj5.test,
tests/lisp2.test, tests/python2.test: New files
* tests/Makefile.am (TESTS): Add them.
* tests/asm.test: Grep stderr.
* tests/lex2.test: Rewrite to test that Automake suggests AM_PROG_LEX.
* tests/python.test: Make sure py-compile is installed.
* aclocal.in: Add local variables so that Emacs setups GNU style
for perl-mode and cperl-mode.
* automake.in: Likewise.
(WHITE_PATTERN, RULE_PATTERN, SUFFIX_RULE_PATTERN, MACRO_PATTERN,
ASSIGNMENT_PATTERN, IF_PATTERN, ELSE_PATTERN, ENDIF_PATTERN,
INCLUDE_PATTERN, EXEC_DIR_PATTERN): Write $ as "$" to please
perl-mode.
* automake.in (required_targets): Add ps and ps-am.
(initialize_per_input): Reset them.
(handle_texinfo_helper): Fill @pss_list, and define the
PSS make variable.
* lib/am/texinfos.am (RECURSIVE_TARGETS): Add ps-recursive.
(ps, ps-am): New targets.
* automake.texi (Auxiliary Programs) <texinfo.tex>: Mention
`make ps' and `make pdf'.
(Texinfo): Document `make ps', `make pdf', and `make dvi'.
(Extending): The `ps' and `pdf' targets support a `-local' version.
* automake.in: Register &lang_lex_target_hook for lex and lexxx.
(lang_lex_target_hook): New function.
* tests/lex3.c: Complete to check that maintainer-clean erases
Lex's output.
Reported by Flavien Astraud. This was lost on 2001-06-23 too.
* automake.in (lang_yacc_target_hook): Add $output to
@maintainer_clean_files. This was lost on 2001-06-23.
* tests/yacc7.test, tests/yacc4.test: Complete to check
that maintainer-clean erases YACC's output files,
respectively with and without `-d'.
Reported by Flavien Astraud.
* lib/am/lang-compile.am (%FPFX%DEPMODE): Delete. This is now
traced from configure.ac.
* automake.in (macro_define): Don't accept to override an AC_SUBST
or Automake variable in a new condition.
* tests/cond23.test, tests/cond24.test: New file.
* tests/Makefile.am (TESTS): Add cond23.test and cond24.test.
Reported by Patrik Weiskirchre.
* m4/header.m4 (AM_CONFIG_HEADER): Rename to ...
(_AM_CONFIG_HEADERS): ... this.
(_AM_CONFIG_HEADER_INSINUATE): Define AC_CONFIG_HEADERS to
call _AM_CONFIG_HEADERS; and AM_CONFIG_HEADER to call
AC_CONFIG_HEADERS.
* automake.in (scan_autoconf_traces): Trace AC_CONFIG_HEADERS
instead of AM_CONFIG_HEADER.
* tests/autoheader2.test: New file.
* tests/Makefile.am (TESTS): Add autoheader2.test.
Suggested by Raja R Harinath.
* m4/header.m4 (_AM_CONFIG_HEADER_INSINUATE): Use m4_copy instead
of m4_rename so that AC_CONFIG_HEADER is never undefined and
therefore still traced after the redefinition.
* tests/defs (AUTOHEADER): Define.
* tests/autoheader.test: New file.
* tests/Makefile.am (TESTS): Add autoheader.test.
Reported by Braden McDaniel.
* automake.in (required_targets): Add the pdf and pdf-am targets.
(initialize_per_input): Likewise.
(scan_texinfo_file): Add pdf to @clean_suffixes.
(handle_texinfo_helper): Output the .pdf dependencies, and define
the PDFS variable.
* lib/am/texinfos.am (TEXI2PDF): New variable.
(pdf, pdf-am): New targets.
(.PHONY): Add pdf, pdf-am, and pdf-recursive.
* lib/am/texibuild.am (.%SUFFIX%.pdf): New rule.
Fix pr307.test failure with gcc 3.x.
* lib/depcomp (dashmstdout): Strip the call to libtool, and
replace `-o $object' by `-o /dev/null' before running "$@"
to generate dependencies.
(cpp): Strip the call to libtool as well as `-o $object'.
* lib/am/java.am (class%DIR%.stamp): Don't run $(JAVAC) when there
is no file to compile.
* tests/java2.test: New file.
* tests/Makefile.am (TESTS): Add java2.test.
Reported by Braden N. McDaniel.
* lib/am/header-vars.am (transform): Define.
Was removed by mistake on 2002-04-13.
* tests/transform.test: New file.
* tests/Makefile.am (TESTS): Add transform.test.
Reported by Nicolas Joly.
* tests/sinclude.test: Rename the package as amsinclude;
am__sinclude still trigers the sinclude macro once it has been
converted to am--sinclude.
Reported by Nicolas Joly.
For PR automake/318:
* tests/nobase.test: Rewrite to test _HEADERS, _DATA, _SCRIPTS,
_PROGRAMS, _LIBRARIES, and _LTLIBRARIES.
* lib/am/scripts.am (install-%DIR%SCRIPTS,
uninstall-%DIR%SCRIPTS): Honor nobase_; strip the directory by
default.
(?%DIR%SCRIPT_INSTALL): New variable.
* lib/am/header-vars.am (install_sh_SCRIPT): New variable.
Reported by Eric Siegerman.
* automake.in (lang_yacc_target_hook): Add rule to recover from
the removal of $header.
* lib/am/yacc.am (%BASE%.h): Remove (duplicate with the one
output by lang_yacc_target_hook).
* tests/yacc7.test: Try to recreate foo.h after its removal.
* tests/yacc8.test: Add `AM_YFLAGS = -d' and try to recreate
parse.h too.
Reported by Bernd Jendrissek.
For PR automake/317:
* Makefile.am (maintainer-check): Disallow `for f in $(FILES)',
suggest `list='$(FILES)'; for f in $$list' instead.
* lib/am/distdir.am (distdir): Adjust `for' usage.
* lib/am/texinfos.am (maintainer-clean-aminfo): Likewise.
* tests/dollar.test: New file.
* tests/Makefile.am (TESTS): Add dollar.test.
Reported by Eric Siegerman and Philip Fong.
* lib/am/configure.am (am__CONFIG_DISTCLEAN_FILES): New variable.
(distclean): Use it.
(maintainer-clean): Delete autom4te.cache and
$(am__CONFIG_DISTCLEAN_FILES).
* tests/maintclean.test: New file.
* tests/Makefile.am (TESTS): Add maintclean.test.
Fix PR automake/326:
* automake.in (define_objects_from_sources): Calculate the result in
all conditions before passing this to subobjname to pick a name to
store the result in.
(subobjname): Expect a list of condition/value pairs as input.
Combine this list and use it as the key to determine the variable name.
* test/cond22.test: New file.
* tests/Makefile.am (TESTS): Add cond21.test
Paul Eggert [Thu, 30 May 2002 06:09:07 +0000 (06:09 +0000)]
Don't assume that egrep and fgrep exist, as POSIX 1003.1-2001 no
longer requires them.
* Makefile.am (maintainer-check): Use grep -E and grep -F instead
of egrep and fgrep. Omit unnecessary -E and -F.
Fix quoting typo -- "fgrep '\$${'" should have been "fgrep '$${'".
* lib/am/distdir.am (distdir): fgrep -> grep -F.
Use $(), not ${}, for Make variables.
* lib/am/texinfos.am (install-info-am, uninstall-info-am):
fgrep -> grep
* m4/make.m4 (AM_MAKE_INCLUDE): Likewise.
* tests/defs: Set FGREP and EGREP.