* 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.
Paul Eggert [Thu, 30 May 2002 05:51:33 +0000 (05:51 +0000)]
(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 '$${'".
For PR automake/323:
* m4/depend.m4: Missing comma.
* tests/gcj4.test: New file.
* tests/Makefile.am (TESTS): Add gcj4.test.
Reported by David Pashley.
* tests/defs (confiugre.in): Don't double-quote $me.
* tests/sinclude.test: Overwrite configure.in and use
`am__sinclude' instead of `sinclude' as package name.
Excercise `m4_sinclude' instead of `sinclude'.
* automake.in (conditional_implies_one_of): Rename as ...
(conditional_implies_any): ... this.
* tests/pluseq9.test: Exercise another case with the new
`C' variable.
Suggested by Raja R Harinath.
* automake.in (conditional_true_when): Return false if $WHEN == FALSE.
(conditional_is_redundant): Simplify.
(conditional_implies_one_of,
variable_not_always_defined_in_cond): New functions
(macro_define): Reject appends if the variable is not defined in
all conditions where `+=' applies.
(invert_conditions): Rewrite. Before this patch,
invert_conditions("A_TRUE B_TRUE", "A_TRUE B_FALSE", "A_FALSE")
would return ("A_FALSE B_TRUE", "A_FALSE B_TRUE"), which seems
wrong (these conditions implies "A_FALSE"). Now it outputs (),
which just means the input conditions cover all cases.
(variable_conditions_permutations): Never output FALSE conditions.
* tests/pluseq2.test, tests/pluseq3.test: Define data_DATA
in the CHECK_FALSE condition to fix the test.
* tests/pluseq5.test: Actually check the diagnostic.
* tests/pluseq9.test: New file.
* tests/Makefile.am (TESTS): Add pluseq9.test.
Fix for PR automake/322:
* automake.in (read_am_file): Rename $was_rule as $prev_state, and
set it with IN_RULE_DEF, IN_VAR_DEF, or IN_COMMENT as appropriate.
Handle comments continued by backslashes.
* tests/comment6.test: New file.
* tests/Makefile.am (TESTS): Add comment6.test.
Reported by Braden N. McDaniel.
2002-05-08 Charles Wilson <cwilson@ece.gatech.edu>
Alexandre Duret-Lutz <duret_g@epita.fr>
* lib/am/progs.am (clean-%DIR%PROGRAMS): If Libtool is used, clean
both `program$(EXEEXT)' and `program'; needed under Cygwin.
* tests/libtool3.test: New file.
* tests/Makefile.am (TESTS): Add libtool3.test.
Erase stamps from the Makefile that generates them.
* automake.in (handle_configure): Append each used stamp to
@distclean_config. Don't warn about stamp-h in AC_OUTPUT, this
file is not used anymore.
* lib/am/clean.am (distclean-generic): Don't erase stamp-h and
stamp-h[0-9]*.
* tests/subdir6.test: New file.
* tests/Makefile.am (TESTS): Add it.
Fix for condd.test (conditional `+='):
* automake.in (%appendvar): New.
(initialize_per_input): Clear it.
(macro_define): Handle += for variable defined in another condition.
* automake.texi (Conditional Sources): Use conditional += in
the example.
(General Operation, Conditionals): Remove note about broken +=.
* tests/cond21.test: New file.
* tests/condd.test: Also test conditional append to a _SOURCE
variable. Create missing directories.
* tests/Makefile.am (TESTS): Add cond21.test.
(XFAILS): Remove condd.test.
For PR automake/307:
* lib/depcomp: Never compute dependencies in the background, this
can cause races with libtool. Compute the dependencies after
the actual compilation. Don't make libtool silent now that
it's run in the foreground.
* tests/pr307.test: New file.
* tests/Makefile.am (TESTS): Add pr307.test.
Reported by Laurent Morichetti.
Fix PR automake/315:
* automake.in (subobjname): Rewrite to generate variable name
unique for each content.
(%substnums): Remove.
(%subobjvar): New hash.
(initialize_per_input): Clear %subobjvar.
(define_objects_from_sources): Return the name of the variable
defined, in addition to the linker. Call subobjname only once
the content of the variable to define is known.
(handle_source_transform): Adjust call to define_objects_from_sources.
* tests/specflags8.test: Mention PR 315.
* tests/subobjname.test: New file.
* tests/Makefile.am (XFAIL_TESTS): Remove specflags8.test.
(TESTS): Add subobjname.test.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Grep
the whole file for 'generated by automake', not only the
first line. This accounts for post-processed Makefile.in's.
* tests/postproc.test: New file.
* tests/Makefile.am (TESTS): Add postproc.test.
For PR automake/151 and PR automake/314:
* automake.texi (A Program): Split into
(Program Sources, Linking, Conditional Sources, Conditional
Programs): ... these subsections; moving the Linking node
before the Conditional discussions.
(Conditional Sources): More details. Notably, mention
hello_DEPENDENCIES.
(Conditionals): Adjust reference to Conditional Programs.
For PR automake/151 and PR automake/314:
* automake.texi (A Program): Split into
(Program Sources, Linking, Conditional Sources, Conditional
Programs): ... these subsections; moving the Linking node
before the Conditional discussions.
(Conditional Sources): More details. Notably, mention
hello_DEPENDENCIES.
(Conditionals): Adjust reference to Conditional Programs.
Paul Eggert [Fri, 19 Apr 2002 20:59:18 +0000 (20:59 +0000)]
Fix some bugs when using "$@" when there might be zero positional
arguments in cases where this matters. Zsh doesn't support
the workaround ${1+"$@"} that has been used by Automake since
the Mon Dec 4 11:55:36 1995 change.
* aclocal.in: Use 'case' statement to work around problem.
* automake.in: Likewise.
* lib/ylwrap: Likewise.
* lib/missing: No need for workaround, as the command is never
invoked with zero arguments.
* tests/ccnoco.test: Likewise.
* missing: Update from lib/missing.
* automake.in (initialize_per_input): Clear %require_file_found.
(%require_file_found): Group the declaration with the other
variables initialized by initialize_per_input.
* tests/required.test: New file.
* tests/Makefile.am (TESTS): Add it.
Reported by Marius Vollmer.
* m4/header.m4 (_AM_CONFIG_HEADER_INSINUATE): New function,
override AC_CONFIG_HEADERS with AM_CONFIG_HEADER.
(_AM_CONFIG_HEADER): Use _AM_AC_CONFIG_HEADERS.
* m4/init.m4: Call _AM_CONFIG_HEADER_INSINUATE.
* tests/stamph2.test: Use AC_CONFIG_HEADERS for some of the config
files.
* tests/confh5.test: New file.
* tests/Makefile.am (TESTS): Add confh5.test.
* automake.texi (Optional, Public macros): Update descriptions
of AC_CONFIG_HEADERS and AM_CONFIG_HEADER.
* tests/man2.test: New file.
* tests/Makefile.am (TESTS): Add man2.test.
* lib/am/mans.am (install-man%SECTION%): Change the extension
of the man pages being installed, as documented.
Enable traces; wipe out the old configure.in parser.
* automake.in (scan_autoconf_traces): Use '$ENF{AUTOCONF}' of
'autoconf'. Honnor the $filename argument.
(scan_autoconf_files): Don't call scan_one_autoconf_file.
Always call scan_autoconf_traces.
(scan_one_autoconf_file): Remove, with it associated regexes.
(obsolete, obsolete_rx): Remove.
(register_language, handle_languages): Remove the 'define_flag'
support. Remove it from the struct and language definitions too.
(unquote_m4_arg): Remove.
* lib/am/header-vars.am, lib/am/compile.am, lib/am/lisp.am: Remove
the `FOO = @FOO@' definitions for all AC_SUBST'ed variables. They
are now generated automatically.
* aclocal.in (obsolete_macros): Don't mention obsolete_macros in
automake.in.
* automake.texi (Invoking Automake): Mention the AUTOCONF envvar.
* tests/discover.test: Use a full configure.in that calls AC_INIT.
Use AC_LIBOBJ. Grep the error message.
* test/ldadd.test: Don't use LIBOBJS. Use a full configure.in.
Grep the error message. Require libtool.
* tests/ldflags.test: Don't use LIBOBJS.
* tests/seenc.test: Use AC_LIBOBJ, --Wno-error, and grep the
error messages for CC and CXX.
* automake.in (scan_autoconf_traces) <AC_SUBST>: Ignore ANSI2KNR
and AMDEPBACKSLASH.
* tests/distcommon2.test: Use a full configure.in that calls AC_INIT.
* tests/ext.test: Enable dependencies for OBJC.
* tests/libobj.test, tests/libobj6.test, tests/libobj9.test:
Delete. They tests for different flavors of $LIBOBJS assignments
that wont be supported anymore.
* tests/libobj2.test, tests/libobj10.test: Use AC_LIBOBJ.
* tests/obsolete.test: Don't test Automake.
* tests/suffix5.test: Require libtool.
* tests/Makefile.am (TESTS): Remove libobj.test, libobj6.test and
libobj9.test.