* lib/am/lex.am, lib/am/yacc.am: Drop the inline rules, always use
ylwrap. Suggested by Akim Demaille long ago, to ease maintenance.
* automake.in (handle_languages): Do not define MORE-THAN-ONE.
(yacc_lex_finish_helper, lang_yacc_finish, lang_lex_finish): Always
require ylwrap.
* doc/automake.texi (Auxiliary Programs, Yacc and Lex): Update the
documentation of ylwrap.
* tests/lex.test, tests/lex4.test, tests/mmodely.test,
tests/yacc.test, tests/yacc2.test, tests/yacc3.test,
tests/yaccpp.test: Adjust.
* Makefile.am (SUBDIRS): Build lib first, for lib/Automake/Config.pm.
* configure.ac (ACLOCAL): Use --acdir=m4 in addition to
-I m4. Running aclocal during the rebuild rules will fail
if the default acdir does not exist.
* doc/automake.texi: Fix some typos in the introduction,
adjust some spacing; spell `GNU Build System' consistently.
(menu): Unify node naming.
(Standard Directory Variables): Clarify that this list is not
exhaustive.
(DESTDIR): Fix example.
* m4/init.m4: Suggest fixing the call to AC_INIT when
AC_PACKAGE_NAME or AC_PACKAGE_VERSION is undefined. This is for
newcomers who call AC_INIT and AM_INIT_AUTOMAKE without arguments.
* tests/init.test: New file.
* tests/Makefile.am (TESTS): Add it.
* doc/automake.texi (Conditionals): Split in two sections, "Usage"
and "Portability", and add a third one, "Limits" to explain how
conditional definitions inside multi-lines definitions can be
handled.
* automake.in (handle_options): Do not assume that
AUTOMAKE_OPTIONS is defined in TRUE, but diagnose conditional
definitions of AUTOMAKE_OPTIONS.
Report from Bas Wijnen.
* tests/amopt.test: New test.
* tests/Makefile.am (TESTS): Add it.
* aclocal.in (install_file): Cannot use /dev/null while diffing
new files, because Tru64's diff do not handle /dev/null. So
create an empty destination file before running diff on a new
file, and erase it afterward. Fall back to using /dev/null only
if we cannot create this file.
Report and initial patch from Ralf Wildenhues.
(unlink_tmp): New function.
* test/acloca18.test: Make sure the empty file has been erased.
* automake.in (handle_LIBOBJS_or_ALLOCA): With subdir-objects,
do not prefix `$(top_builddir)/' aka `./' to nonempty LIBOBJDIR,
to help BSD Make find the files also in a VPATH build.
Also return the same path, possibly prefixed, for correct
depdir computation.
* tests/pr401.test: Update to expose wrong depdir computation.
Rewrite to not use the same file name for library object and
main program.
* tests/pr401b.test, tests/pr401c.test: Likewise.
Paul Eggert [Sun, 9 Jul 2006 16:09:31 +0000 (16:09 +0000)]
* lib/install-sh: Don't incorrectly claim that this implementation
can install only one file at a time.
(doit_exec): New var, for using 'exec' if possible, to save a process.
(test_mode, intermediate_mode): Remove.
(mode): Check for IFS or globbing characters in mode, since they might
cause weird behavior with the other changes below. All later uses
of '"$mode"' changed to '$mode', since the ""s no longer matter.
Use octal modes if the invoker specifies an octal mode, and use
octal umask values if 'umask' outputs octal values; this is more
likely to work with older operating systems since Automake uses
octal modes, and also works around a bug with HP-UX 11.23
'mkdir -p -m u=rwx,g=rx,o=rx,u+wx' reported by Ralf Wildenhues in
<http://lists.gnu.org/archive/html/bug-automake/2006-06/msg00024.html>.
(cp_umask, mkdir_umask): New variables, to avoid
temporarily creating files or directories with too-permissive modes.
(mkdir_mode): Use the FreeBSD 'install' method for computing modes of
intermediate directories; this is safer.
(posix_mkdir): Also test mkdir -p -m ... by making a directory in
/tmp and checking the resulting mode with 'ls', to catch a bug in
HP-UX 11.23 and IRIX 6.5 mkdir reported by Ralf in the same message.
Use ':' for true, not 'true'; this is a bit faster on
traditional implementations.
* tests/defs.in (AUTOMAKE_run): Redirect stdout before stderr,
for consistency with the recommendation prompted by this report:
<http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00225.html>.
Ralf Wildenhues [Sat, 24 Jun 2006 05:35:43 +0000 (05:35 +0000)]
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Set `mkdir_p' to
`'$(MKDIR_P)'', so that it retains the per-directory value
computed by config.status.
* lib/am/distdir.am (distdir): do not use `$(mkdir_p)' from
a changed directory. Bugs reported by Ralf Menzel.
* THANKS: Update.
Ralf Wildenhues [Tue, 6 Jun 2006 21:10:24 +0000 (21:10 +0000)]
* lib/am/distdir.am: Do not call $(mkdir_p) for each
distributed file, collect them and create them in one run,
and strip $(srcdir) and $(top_srcdir) all at once.
Fix some comment typos.
Ralf Wildenhues [Tue, 6 Jun 2006 20:55:44 +0000 (20:55 +0000)]
* m4/depend.m4 (_AM_DEPENDENCIES): The IRIX MIPSpro compiler
7.4.4m may omit the first included header dependency information
with `-MDupdate'. Refine test to catch this.
Ralf Wildenhues [Tue, 6 Jun 2006 20:49:09 +0000 (20:49 +0000)]
* tests/gettext.test: AM_PROG_GETTEXT of gettext >= 0.14.3
requires `config.rpath' to be present, and automake now enforces
this. Test this, but only if the gettext installation works and
is recent enough to provide this diagnosis.
* tests/gettext.test: Provide a dummy `config.rpath' for all
subsequent checks.
* tests/gettext2.test, tests/subcond.test: Likewise.
Ralf Wildenhues [Tue, 6 Jun 2006 20:42:36 +0000 (20:42 +0000)]
* tests/pr401.test: Replace "perl -i" with sed and mv, for
MinGW perl.
* tests/pr401b.test, tests/pr401c.test, tests/python11.test,
* tests/yacc6.test, tests/yacc8.test: Likewise.
Ralf Wildenhues [Tue, 6 Jun 2006 20:39:22 +0000 (20:39 +0000)]
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Do not use
plain `grep' on the Makefile, as its line length may exceed that
for grep. Bug report against coreutils by Sam Sirlin.
* THANKS: Update.
Ralf Wildenhues [Thu, 25 May 2006 10:21:45 +0000 (10:21 +0000)]
* lib/Automake/XFile.pm (lock): Allow EOPNOTSUPP, besides
ENOLCK. Only mention `make -j' when applicable. Only raise
fatal errors when `make -j' is involved. Improve error message.
Paul Eggert [Thu, 11 May 2006 19:52:07 +0000 (19:52 +0000)]
* lib/install-sh: Sync from Autoconf, as follows:
Don't use 'path' to talk about file names,
as per GNU coding standards. Close a race condition reported by Ralf
Wildenhues and Stepan Kasal. There is still a race condition
on hosts that predate Posix 1003.1-1992, but we can't help this.
Don't mishandle weird characters like space on pre-Posix hosts.
Invoke mkdir at most once per dir arg on pre-Posix hosts.
Ralf Wildenhues [Thu, 11 May 2006 17:33:31 +0000 (17:33 +0000)]
* tests/missing.test, tests/missing2.test: Do not require
GNUmake.
* Makefile.am (maintainer-check): Make sure `required=' does not
follow `. ./defs' in the tests.
Ralf Wildenhues [Thu, 11 May 2006 17:29:34 +0000 (17:29 +0000)]
* tests/ansi10.test: Use AC_PROG_CC_STDC. Fix test that
ac_cv_prog_cc_stdc isn't just used by Automake code in
`configure'.
* tests/ansi6.test, tests/ansi7.test: Likewise.
* tests/ansi9.test: Likewise. Do not override by setting
$U and $(ANSI2KNR) at `make' time; that will be fragile.
* tests/libobj8.test: Use AC_PROG_CC_STDC.
* tests/subobj3.test: Likewise. Use `set -e'.
Ralf Wildenhues [Thu, 11 May 2006 17:25:41 +0000 (17:25 +0000)]
* lib/am/java.am (class%DIR%.stamp): Do not assume `$?' has
the path of the prerequisite added; IRIX 6.5 make does not add
it, Solaris 2.6 make is inconsistent about adding it. Fixes
java.test failure.
Ralf Wildenhues [Wed, 10 May 2006 21:01:26 +0000 (21:01 +0000)]
* tests/longlin2.test: Do not use `grep' on Makefile.am:
it has long lines and is thus not a text file; AIX 5.1 grep
fails to scan non-plain patterns from long lines.
Ralf Wildenhues [Wed, 10 May 2006 20:59:29 +0000 (20:59 +0000)]
* tests/overrid.test: Change all regexes for warning messages to
match after a colon, so that the prepended file names do not
cause false matches. Tighten overrides regex. Fix typo
`cleam-am-local' -> `clean-am-local'.
Ralf Wildenhues [Wed, 10 May 2006 20:58:16 +0000 (20:58 +0000)]
* tests/java.test: `configure' uses a trap, so use `(exit 77);
exit 77' to portably set the exit status similar to AS_EXIT.
* tests/fn99.test: propagate nonzero exit status from subshell.
Ralf Wildenhues [Wed, 10 May 2006 20:57:01 +0000 (20:57 +0000)]
* tests/mkinst3.test: Fix `mkdir' wrapper to not be confused
if ``pwd`' contains the string `-p'. Create the wrapper in a
subdirectory so that `.' in $PATH does not lead to an endless
loop.
Ralf Wildenhues [Wed, 10 May 2006 20:55:34 +0000 (20:55 +0000)]
* lib/depcomp (ia64hp): Rename dependency style to..
(hp2): ..this, as it works with aCC on HPPA, too; adjust
comment. Report by Olivier Fourdan (PR automake/481).
* THANKS: Update.
Ralf Wildenhues [Wed, 10 May 2006 20:50:53 +0000 (20:50 +0000)]
* tests/aclocal7.test: Add `$sleep's between file touching
and automake resp aclocal+automake invocations, to ensure
they complete with a time stamp strictly later than the touched
file.
Ralf Wildenhues [Wed, 10 May 2006 20:47:36 +0000 (20:47 +0000)]
* lib/missing: Remove superfluous quotes. Replace all uses of
`[' by `test', for consistency, and for..
* tests/missing5.test: ..this new test.
* tests/Makefile.am: Update.
Ralf Wildenhues [Wed, 10 May 2006 20:37:36 +0000 (20:37 +0000)]
* lib/missing (sed_minuso, sed_output): New variables.
(autom4te, help2man, makeinfo): Use them. Unifies detection of
`-o FILE', `--output FILE', `--output=FILE', stricter regex.
Fixes `missing' to detect `--output' for help2man. Fixes
PR automake/483. Report by Dennis J. Linse.
(autom4te): Document in `missing --help'.
* THANKS: Update.
Paul Eggert [Mon, 24 Apr 2006 19:58:00 +0000 (19:58 +0000)]
* lib/install.sh: Handle --, and diagnose unknown options.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): In the normal case, set
mkdir_p='mkdir -p', not to 'mkdir -p --', for consistency with
the other ways that mkdir_p might be set.
* m4/amversion.in (_AM_AUTOCONF_VERSION): New macro.
(AM_SET_CURRENT_AUTOMAKE_VERSION): Call it.
* aclocal.in (trace_used_macros): Trace _AM_AUTOCONF_VERSION.
(write_aclocal): Output a check for Autoconf's version in aclocal.m4.
Doing so ensures that users cannot build configure and Makefiles
with two different autoconf versions. Report from Noah Misch.
* tests/missing4.test: New file.
* tests/Makefile.am (TESTS): Add it.
* lib/am/dejagnu.am (check-DEJAGNU): Fail when at least one test
failed, instead of when the last one failed (PR automake/488).
Report from Paul Lunau.
* tests/dejagnu4.test: Update to expose this.
* THANKS: Update.
* lib/am/check.am (check-TESTS): Match XFAIL_TESTS delimited by
TABs as well as spaces. Fixes PR automake/490.
* tests/check6.test: New test.
* tests/Makefile.am, THANKS: Update.
Report from Diab Jerius <djerius@cfa.harvard.edu>.
* lib/Autom4te/FileUtils.pm (find_file): Fix a typo in the
description; eliminate the duplicate error message.
* doc/automake.texi (@direntry): `Invoking Automake' is the name
of the usage node for `automake'
* lib/Automake/Variable.pm (%_gen_varname): Fix typos in the
comment.
* lib/Automake/Variable.pm (_hash_varname, _hash_values): New functions.
(_gen_varname): Use _hash_values, and return a flag indicating whether
the variable name was generated or reused.
(transform_variable_recursively): Do not redefine variables that
are reused, and try to reuse the variable being transformed.
* tests/check2.test: Make sure TESTS hasn't been redefined.
* tests/check5.test, tests/exeext4.test: Make sure variables have
been reused.
* tests/subst2.test: Make sure bin_PROGRAMS gets rewritten.
* automake.in (%ignored_configure_vars): New variable.
(scan_autoconf_traces): Trace for _AM_SUBST_NOTMAKE and fill
%ignored_configure_vars.
(define_configure_variable): Declare ignored configure variables
as VAR_SILENT. Do not special-case AMDEPBACKSLASH and ANSI2KNR
w.r.t. VAR_SILENT.
* m4/substign.m4: New file.
* m4/Makefile.am (dist_m4data_DATA): Add substign.m4.
* m4/cond.m4: _AM_SUBST_IGNORE $1_TRUE and $1_FALSE (PR automake/477).
* m4/depend.m4: _AM_SUBST_IGNORE AMDEPBACKSLASH.
* m4/protos.m4: _AM_SUBST_IGNORE ANSI2KNR.
* tests/cond.test: Make sure TEST_FALSE and TEST_TRUE are not defined.
* tests/amsubst.test: New file.
* tests/Makefile.am (TESTS): Add it.
* automake.in (handle_single_transform): Preserve directories in
direct suffix rules.
* tests/suffix12.test: New test.
* tests/Makefile.am (TESTS): Add it.
Report from John Ratliff.
* aclocal.in ($m4_include_rx): Do not recognize `include', and
adjust scan_configure_dep and scan_file accordingly.
(scan_configure_dep): Do not search white lines.
(scan_file): Strip comments from current line after checking
for serial, so that aclocal does not trip on `m4_include' macros
in comments. Report from Mike Frysinger.
* tests/acloca21.test: New file.
* tests/Makefile.am (TESTS): Add it.
Ralf Wildenhues [Thu, 23 Mar 2006 06:35:15 +0000 (06:35 +0000)]
* automake.in (libtool_new_api): Fix a typo in the comment.
* lib/Automake/Makefile.am (Config.pm): Likewise.
* lib/am/depend2.am: Likewise.
* tests/xsource.test: With `set -e', `|| exit 1' is no longer
needed.
Ralf Wildenhues [Mon, 20 Mar 2006 20:31:26 +0000 (20:31 +0000)]
* m4/init.m4 (AM_INIT_AUTOMAKE): Add `_AM_DEPENDENCIES(OBJC)'
to `AC_PROG_OBJC' if provided, to fix Objective C depmode
handling.
* lib/Automake/Variable.pm (%_ac_macro_for_var): Add entries for
OBJC and OBJCFLAGS.
* tests/ext.test: Adjust.
* tests/objc.test, tests/objc2.test: New tests.
* tests/Makefile.am: Adjust.
* doc/automake.texi (Objective C Support): New node.
(Support for Other Languages): Adjust.
* NEWS: Update.
Ralf Wildenhues [Sun, 19 Mar 2006 05:45:33 +0000 (05:45 +0000)]
* tests/depcomp6.test, tests/depcomp7.test: New tests,
for general `depcomp' functionality, with and without
`subdir-objects', with and without `libtool'.
* tests/Makefile.am: Adjust.
Ralf Wildenhues [Sun, 19 Mar 2006 05:09:11 +0000 (05:09 +0000)]
* aclocal.in (write_aclocal): Unlink `aclocal.m4' before
writing into it, to break a symlinked file.
* tests/acloca20.test: New test.
* tests/Makefile.am: Updated.
Ralf Wildenhues [Sun, 19 Mar 2006 05:04:26 +0000 (05:04 +0000)]
Allow package trees (packages with subpackages) to share
common distributed auxiliary files (and directories) that
reside within a subpackage.
* lib/am/distdir.am (distdir %?TOPDIR_P%): Do not fail if
`$(distdir)' already exists.
(%?SUBDIRS%): Set `am__remove_distdir' to `:' to prevent
removal of subpackage trees for distribution.
* tests/subpkg3.test: New test.
* tests/Makefile.am: Update.
* automake.in (lang_c_rewrite): Make the AM_PROG_CC_C_O requirement
a 'portability' warning, so that people can ignore it. Suggested
by Ralf Wildenhues.
Append $(EXEEXT) to programs that may be listed in TESTS.
Report from Simon Josefsson.
* automake.in (%known_programs): New global.
(initialize_per_input): Reset it.
(append_exeext): Take a predicate as first argument to select
the filename to rewrite.
(handle_programs): Fill %known_programs.
(handle_tests): Append $(EXEEXT) to all tests that are in
%known_programs.
(am_install_var): Update call to append_exeext.
* doc/automake.texi (EXEEXT): TESTS is also rewritten.
(Tests): More about the difference between check_PROGRAMS and TESTS.
Give an example of TEST_ENVIRONMENT.
* tests/cond32.test: Augment with a nested condition.
* tests/exeext4.test: Also check TESTS.
* tests/check5.test: New file.
* tests/Makefile.am (TESTS): Add check5.test.