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.
* Makefile.am (maintainer-check): Make sure `$MAKE -e' is
always followed by a SHELL setting.
* tests/ansi3.test, tests/ansi5.test, tests/subobj3.test: Set
SHELL when calling `$MAKE -e'.
* lib/am/subdirs.am:
($(RECURSIVE_TARGETS), maintainer-clean-recursive):
$(MAKEFLAGS) -> $$MAKEFLAGS, so that we don't run into problems if
MAKEFLAGS contains '$(...)'.
Tom Tromey [Sat, 30 Mar 2002 00:26:05 +0000 (00:26 +0000)]
For PR automake/312:
* lib/am/libtool.am (clean-libtool): Use LTRMS.
* automake.in (handle_single_transform_list): When processing a
libtool object, clean the ordinary object and register the
directory.
(libtool_clean_directories): New global.
(initialize_per_input): Initialize it.
(generate_makefile): Call handle_libtool later.
(handle_libtool): Handle libtool_clean_directories.
* tests/subobj9.test: New file.
* tests/Makefile.am (TESTS): Added subobj9.test.
* tests/extra7.test: New file.
* tests/Makefile.am: Add it.
* lib/am/distdir.an (distdir): When a distribuable directory
exists both in `.' and $(srcdir), merge both directories. This
works around a failure of extra6.test on Tru64 reported by
Nicolas Joly.
* Makefile.am (maintainer-check): Catch occurrences of
`$MAKE foo=bar' in the testsuite. Suggest using
`foo=bar $MAKE -e' instead.
* tests/ansi3.test, tests/ansi5.test, tests/subobj3.test:
Use $MAKE -e. This fixes a ansi5.test failure with Solaris make.
* tests/defs: Unset $srcdir, and set $testsrcdir to its old value.
* tests/installsh.test (AUTOMAKE, ACLOCAL): Use $testsrcdir.
* Makefile.am (maintainer-check): Check for misuses of make,
autoconf, automake, aclocal, and perl in the testsuite. Suggest
using $MAKE, $AUTOCONF, $AUTOMAKE, $ACLOCAL, and $PERL instead.
* tests/confsub.test: Use $AUTOCONF and $MAKE.
* tests/extra5.test, tests/extra6.test, tests/lex5.test,
tests/nobase.test, tests/nodist2.test, tests/pr204.test,
tests/pr224.test, tests/pr287.test, tests/strip.test,
tests/yacc8.test: Use $MAKE.
* tests/version5.test: New file.
* tests/Makefile.am (TESTS): Add it.
* automake.in (version_split, version_compare): New functions.
(version_check): Rewrite using version_split and version_compare.
(process_option_list): Adjust regex.
Richard Boulton [Mon, 11 Mar 2002 17:24:12 +0000 (17:24 +0000)]
automake.in (check_typos): Allow variables with reserved
suffices (such as _LDFLAGS) and prefixes which aren't
recognised if the variable is defined in configure.ac.
Fixes acsubst.test.
Richard Boulton [Mon, 11 Mar 2002 17:00:43 +0000 (17:00 +0000)]
tests/acsubst.test: New test, by Alexandre Duret-Lutz
tests/acsubst2.test: New test, by Alexandre Duret-Lutz
tests/Makefile.am (TEST): Added acsubst.test and acsubst2.test
Fix for PR automake/303:
* automake.in (version_check): Move the error message ...
(process_option_list): ... here, so we can distinguish between
global and local options.
* tests/pr300-lib.test, tests/pr300-ltlib.test,
tests/pr300-prog.test: Use AC_OUTPUT, not AC_OUTPUT(Makefile), so
Autoconf doesn't complain about Makefile being output twice.
Fix for PR automake/300:
* tests/pr300-lib.test, tests/pr300-ltlib.test,
tests/pr300-prog.test: New files.
* tests/Makefile.am (TESTS): Add them.
* automake.in (handle_ltlibraries): Strip nobase_ prefix to
compute the directory.
* lib/am/header-vars.am (install_sh_PROGRAM): New variable.
* lib/am/libs.am (%DIR%LIBRARIES_INSTALL): New variable.
(install-%DIR%LIBRARIES): Use it. Honor nobase_.
(uninstall-%DIR%LIBRARIES): Honor nobase_.
* lib/am/ltlibs.am (%DIR%LTLIBRARIES_INSTALL): New variable.
(install-%DIR%LTLIBRARIES): Use it. Honor nobase_.
(uninstall-%DIR%LTLIBRARIES): Honor nobase_.
* lib/am/progs.am (%DIR%PROGRAMS_INSTALL): New variable.
(install-%DIR%PROGRAMS): Use it. Honor nobase_.
(uninstall-%DIR%PROGRAMS): Honor nobase_.
See also the fix for nobase.test on 2001-11-09.
Fix for PR automake/294:
* tests/dirforbid.test: New file.
* tests/Makefile.am (TESTS): Add it.
* automake.in (standard_prefix): New hash.
(am_primary_prefixes): Forbid standard_prefixes which are not
explicitely allowed.
* automake.texi (Uniform): Remove FIXME.
For PR automake/297:
* lex.m4 (AM_PROG_LEX): Don't set LEX=${am_missing_run}flex until
after AC_PROG_LEX, since it will try to run it and fail (in autoconf
2.52 at least).
* automake.in (scan_one_autoconf_file): Declare
LEX_OUTPUT_ROOT and LEXLIB as configure variables when
AM_PROG_LEX or AC_PROG_LEX are seen. This allows to ...
* lib/am/lex.am: ... remove the LEX_OUTPUT_ROOT and LEXLIB
definitions. Search %SOURCE% in $(srcdir). Use s||| instead
of s/// in the sed invocation, to support filenames containing
slashes.
* lib/am/yacc.am: Search %SOURCE% in $(srcdir). Use s||| too.
* tests/lex5.test, tests/yacc8.test: New files.
* tests/Makefile.am (TESTS): Add them.
Tim Van Holder [Wed, 20 Feb 2002 18:10:17 +0000 (18:10 +0000)]
* m4/lispdir.m4: Redirect /dev/null to stdin when running $EMACS
to try and prevent a non-lisp emacs from starting in interactive
mode.
* automake.texi: Document this change.