lib/Automake


Log

Author Commit Date CI Message
Stefano Lattarini 8a8890a9 2011-05-29T11:04:08 build: the user can override AUTOM4TE, AUTORECONF and AUTOUPDATE too Our build system allows the user to override AUTOCONF and AUTOHEADER at configure time, and honours these overrides in our testsuite. But it didn't do the same with AUTOM4TE, AUTORECONF and AUTOUPDATE. This change fixes that inconsistency. * configure.ac (am_AUTOM4TE, am_AUTOUPDATE, am_AUTORECONF): New AC_SUBSTitutions. Update comments. * tests/defs.in ($AUTOUPDATE): Default to `@am_AUTOUPDATE@' now. ($AUTOM4TE): New variable, defaulting to `@am_AUTOM4TE@'. ($AUTORECONF): New variable, defaulting to `@am_AUTORECONF@'. * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Update.
Stefano Lattarini d51e7b79 2011-02-24T10:21:19 libtool: suggest LT_INIT if LTLIBRARIES primary is used When the LTLIBRARIES primary was used, but $(LIBTOOL) wasn't defined, automake suggested to add a call to AC_PROG_LIBTOOL in configure.ac. But that macro is deprecated since Libtool version 1.9b (2004-08-29), in favor of the newer LT_INIT. So suggest the use of this latter macro instead. * lib/Automake/Variable.pm (%_am_macro_for_var): Pair 'LIBTOOL' with 'LT_INIT', not with 'AC_PROG_LIBTOOL'. * libtool4.test: Adjust and extend. Also, add a call to macro AC_PROG_CC in configure.in, to help ensuring that automake does not fail for the wrong reasons. * ltinit.test: New test, ensure that automake's libtool support works with LT_INIT-based interface. Thanks to Jack Kelly for the suggestion.
Ralf Wildenhues 080efc94 2011-01-16T13:48:17 parallel-tests: work around Tru64/OSF 5.1 sh read bugs. * lib/am/check.am ($(TEST_SUITE_LOG), recheck, recheck-html): Test file readability before redirecting input from it, to avoid exiting Tru64/OSF 5.1 sh which treats read as special builtin. * tests/parallel-tests-unreadable-log.test: New test. * tests/Makefile.am (TESTS): Update. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Dave Hart 36bd4534 2011-01-09T19:05:07 Fix another typo in Rule.pm comment. * lib/Automake/Rule.pm: Fix typo. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Peter Rosin ece3872f 2011-01-09T18:54:36 Fix another typo in Rule.pm comment. * lib/Automake/Rule.pm: Fix typo. Report by Peter Rosin. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 0d93356e 2011-01-09T10:53:04 Fix typos in Rule.pm comments. * lib/Automake/Rule.pm: Fix typos in comments. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 511ccb16 2011-01-02T05:31:41 Bump copyright years. * aclocal.in (write_aclocal, version): Bump copyright years. * automake.in (gen_copyright, version): Likewise. * doc/automake.texi: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Stefano Lattarini 15cd54c0 2010-11-19T20:24:28 Automake::Config: remove extra trailing semicolon. * lib/Automake/Config.in: Remove extra trailing semicolon.
Ralf Wildenhues a6da48d3 2010-11-14T17:53:49 Fix install-strip when $(STRIP) contains several words. * lib/am/install.am (install-strip): Update comment. Use separate sub-make invocations for empty and nonempty $(STRIP), to fix quoting issues. * tests/strip2.test, tests/strip3.test: New tests. * tests/Makefile.am (TESTS): Adjust. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Stefano Lattarini 7a020d66 2010-11-06T12:46:52 Fix a bug in variable concatanation with `+='. * lib/Automake/VarDef.pm (append): Remove extra backslash-escaped newlines from the end of the variable's content, before appending to it. * tests/pluseq11.test: New test, exposing the bug. * tests/Makefile.am (TESTS): Update. Reported by Andy Wingo.
Ralf Wildenhues b8c1325a 2010-10-03T11:42:12 Document and fix expansion of variables before rules. * doc/automake.texi (General Operation): Document that variables are expanded before rules. * lib/am/check.am (am__check_post): Reword a bit so it does not get matched as a rule. Suggestion by Ben Pfaff. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 9e126f15 2010-10-02T18:38:34 Merge branch 'fix-tests-empty-regression' into maint * fix-tests-empty-regression: Revert "parallel-tests: avoid command-line length limit issue."
Ralf Wildenhues 614b643e 2010-09-26T09:21:14 Revert "parallel-tests: avoid command-line length limit issue." This reverts commit 24e3b4ee2f8cb9f72dd94a05a893f3d4e88b7835, because it re-opened the bug fixed by v1.11-10-g218e678. 2010-09-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> parallel-tests: avoid command-line length limit issue. * automake.in (handle_tests): New argument $makefile, new substitution %MAKEFILE%. (generate_makefile): Adjust. * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Pass sanitized TEST_LOGS value as makefile snippet on standard input to $(MAKE), to avoid exceeding the command line limit on w32 (MSYS). * NEWS: Update. Report by Bob Friesenhahn. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Stefano Lattarini 627f0a91 2010-09-22T21:35:58 Perl modules: remove references to "Automake CVS repository". * lib/Automake/Channels.pm: Update comments to refer to "Automke's git repository" rather than to "Automake's CVS repository". * lib/Automake/Configure_ac.pm: Likewise. * lib/Automake/FileUtils.pm: Likewise. * lib/Automake/Struct.pm: Likewise. * lib/Automake/XFile.pm: Likewise. * lib/Automake/Version.pm (=head1 DESCRIPTION): Refer to "git branches" rather than "CVS branches".
Stefano Lattarini c423cdb4 2010-09-22T21:26:09 Remove obsolete .cvsignore files. * .cvsignore, doc/.cvsignore, lib/.cvsignore, lib/am/.cvsignore, lib/Automake/.cvsignore, lib/Automake/tests/.cvsignore, m4/.cvsignore, tests/.cvsignore: Files deleted. Even when using savannah's CVS readonly mirror there's no way to commit back to the real repository, so this files are not worth maintaining or keeping around.
Eric Blake 978dfcf5 2010-09-17T06:31:33 Avoid triple-space after period. * automake.in (handle_single_transform): Avoid 3 spaces at sentence end. * ChangeLog.03: Likewise. * lib/Automake/ChannelDefs.pm: Likewise. * lib/Automake/Channels.pm (_print_message): Likewise. * lib/Automake/Rule.pm (rule): Likewise. * lib/Automake/Variable.pm (var): Likewise. * lib/am/distdir.am: Likewise. * tests/insthook.test: Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
Ralf Wildenhues 24e3b4ee 2010-09-07T04:38:08 parallel-tests: avoid command-line length limit issue. * automake.in (handle_tests): New argument $makefile, new substitution %MAKEFILE%. (generate_makefile): Adjust. * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Pass sanitized TEST_LOGS value as makefile snippet on standard input to $(MAKE), to avoid exceeding the command line limit on w32 (MSYS). * NEWS: Update. Report by Bob Friesenhahn.
Ralf Wildenhues ccb31f6a 2010-09-07T04:35:49 Posix 2008 requires make to set errexit. * lib/am/check.am: Update comment.
Stefano Lattarini e7aa360a 2010-08-06T00:40:55 Work around a nasty bug (segfault) of Solaris make. * lib/am/check.am (recheck, recheck-html): Trim trailing spaces from $list, to avoid triggering a nasty bug (potential segfault) on Solaris make.
Ralf Wildenhues 9b72d668 2010-06-26T22:10:21 Update program --help output to match current GCS. * configure.ac: Set and substitute PACKAGE_URL if AC_PACKAGE_URL is not defined, for compatibility to Autoconf < 2.64. * Makefile.am (do_subst): Substitute PACKAGE_BUGREPORT and PACKAGE_URL. (sc_diff_automake_in_automake): Update number of diff lines for additional substitutions. * aclocal.in (usage): Use PACKAGE_BUGREPORT. Point to Automake home page and GNU general help page. * automake.in (usage): Likewise. * doc/automake.texi: New flag PACKAGE_BUGREPORT, to factor email address. (Introduction, Creating amhello, amhello Explained, Options): Use it throughout. * lib/Automake/Makefile.am (do_subst): Substitute PACKAGE_BUGREPORT. * lib/Automake/Config.in ($PACKAGE_BUGREPORT): New global. * lib/Automake/ChannelDefs.pm: Use it for footer of fatal messages. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 53ac1719 2010-04-20T07:43:59 Fix -Werror handling for presence of configure.in and configure.ac. * lib/Automake/Variable.pm (Automake::Variable): Do not initialize $configure_ac at the global level, before command-line arguments have been parsed. (require_variables): Initialize it here. * tests/configure.test: New test. * tests/Makefile.am: Update. Report by Stefano Lattarini.
Stefano Lattarini 74be0c27 2010-04-17T15:40:35 Fix typo in POD documentation of Automake::Channels. * lib/Automake/Channels.pm: Fixed typo in POD documentation: @<...> was used instead of C<...>.
Ralf Wildenhues b3d9df07 2010-04-11T19:56:21 Fix per-Makefile.am setting of -Werror. Before this patch, 'AUTOMAKE_OPTIONS = -Werror' in one Makefile.am would carry over to other Makefile.am files treated afterwards by the same thread, causing inconsistent and unstable exit status values. * lib/Automake/Channels.pm (dup_channel_setup) (drop_channel_setup): Save and restore the setting of $warnings_are_errors. * tests/werror3.test: New test. * tests/Makefile.am: Adjust. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 18546c2c 2010-03-06T09:14:06 Formatting cleanups in macro comments. * automake.in, lib/Automake/Channels.pm, lib/Automake/FileUtils.pm, lib/Automake/Options.pm, lib/Automake/Variable.pm, lib/Automake/XFile.pm, m4/options.m4, m4/substnot.m4: Fix macro comment format. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Dmitry V. Levin dbfabdfc 2010-01-30T22:21:19 Fix exit status of signal handlers in shell scripts. The value of `$?' on entrance to signal handlers in shell scripts cannot be relied upon, so set the exit code explicitly to 128 + SIG<SIGNAL>. * lib/am/check.am (am__check_pre): Use `exit 143' in signal handler. * lib/elisp-comp: Likewise. * lib/install-sh: Likewise. * lib/ylwrap: Likewise. Also, fix script to trap signal 13, not 3. * NEWS, THANKS: Update. Bug report, analysis, and initial patch by Dmitry V. Levin. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 72c9d14d 2010-01-17T12:08:19 Bump copyright years. * aclocal.in (write_aclocal, version): Bump copyright years. * automake.in (gen_copyright, version): Likewise. * doc/automake.texi: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues f1175f85 2009-12-29T19:42:41 Fix and complete copyright notices in Makefile.am files. * Makefile.am: Use single-`#' comment for copyright notice, so that it also appears in the generated Makefile.in file. * doc/Makefile.am: Likewise. * doc/amhello/Makefile.am: Likewise. * doc/amhello/src/Makefile.am: Likewise. * lib/Automake/Makefile.am: Likewise. * lib/Automake/tests/Makefile.am: Likewise. * lib/Makefile.am: Likewise. * lib/am/Makefile.am: Likewise. * m4/Makefile.am: Likewise. * tests/Makefile.am: Add copyright notice. Report of missing copyright notice by Stefano Lattarini. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Jim Meyering 375912c4 2009-11-29T20:35:03 avoid a warning from perl-5.11 * lib/Automake/Wrap.pm (_tab_length): Remove useless use of tr's "/d" modifier. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Jim Meyering e58e5b45 2009-10-31T17:47:58 Don't let an envvar setting of "$fail" cause build failure. Without this change, in a project using an automake-generated Makefile, "make fail=anything" would fail inappropriately, due to the `test -z "$$fail"' at the end of this emitted rule: * lib/am/subdirs.am ($(RECURSIVE_TARGETS)): Initialize "fail=" to keep an envvar setting of that variable from causing unwarranted failure. ($(RECURSIVE_CLEAN_TARGETS)): Likewise. * tests/subdir10.test: New test. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues c2594bb5 2009-10-11T13:33:43 Allow variable override of, rather than by, silent variables. When overriding variables, check the VAR_SILENT status of the old condition, not the new one: we allow non-silent overrides of silent variables (these do not hit ordering bugs in the automake output), but there is no use case for doing so the other way round. Fixes conditional overrides of variables annotated AM_SUBST_NOTMAKE in configure.ac. * lib/Automake/Variable.pm (_check_ambiguous_condition): Check for VAR_SILENT in $ambig_cond not $cond. * tests/cond44.test, tests/cond45.test: New tests, analogous to cond23.test and cond24.test. * tests/Makefile.am: Update. Spotted originally in binutils/bfd. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 734beb43 2009-10-11T13:28:31 Fix `make clean check' for the Automake package. * lib/Automake/Makefile.am (SUBDIRS): Add `.' before `tests', so that Config.pm is built first. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues f6b3f7fb 2009-09-06T13:06:32 Avoid sleeping for one second most of the time in sanity check. * m4/sanity.m4 (AM_SANITY_CHECK): Try sanity check first without sleeping for a second, and only if that failed, sleep and try again, to avoid the delay in the common case of a configure script that is older than a second, or a system with sub-second time stamp granularity. Report and different patch by Jim Meyering. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 218e678b 2009-05-24T09:03:00 parallel-tests: avoid GNU make 3.80 substitution bug. * lib/am/check.am [PARALLEL_TESTS] (check-TESTS): Remove any `.log' entries from `$(TEST_LOGS)' even if the list is nonempty, to work around GNU make 3.80 substitution reference issue with trailing white space in the variable. * tests/parallel-tests10.test: New test. * tests/parallel-tests6.test: Update comment. * tests/Makefile.am: Update. * NEWS: Update. Report by Bob Friesenhahn. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 32e88686 2009-05-23T22:06:07 Clarify how to enable `silent-rules' and other global options. * doc/automake.texi (Options): When introducing options, be more careful to note that not all of them can be specified in AUTOMAKE_OPTIONS statements, and that some do not make sense in subdirectories. Note more prominently that `silent-rules' can only be specified in configure.ac. * lib/Automake/Options.pm (_process_option_list): Improve error message for `silent-rules', `tar-v7', `tar-ustar', `tar-pax' options specified in Makefile.am files. Report by Bruno Haible. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 2505a3e3 2009-05-17T16:25:01 Version 1.11. * configure.ac: Bump version to 1.11. * doc/automake.texi (Releases): Add line for 1.11. Remove line for 1.10b. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues fcf2f560 2009-05-17T15:32:40 Revert Automake license to GPLv2+. Automake will move to GPLv3+ once the Exception statement has been rewritten to use the new GPLv3 exception language. This change does not impact the COPYING file that may be installed by `automake --add-missing'. * COPYING: Revert to GPLv2. All uses changed. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 553f13a3 2009-05-03T09:47:58 distdir: avoid duplicate `find' traversal with subpackages. * lib/am/distdir.am (distdir) [%?SUBDIRS%]: When recursing, set `am__skip_mode_fix'. [%?TOPDIR_P%]: When `$(am__skip_mode_fix)' is set, avoid tree walk. * tests/subpkg4.test: New test, to ensure that we still walk the whole tree while fixing permissions. We don't ensure it is walked once only. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 9fe82598 2009-05-03T09:32:44 Disable test cleanup trap with OSF1/Tru64 sh. * configure.ac: Test whether /bin/sh has working 'set -e' in conjunction with an exit trap. Set $am_cv_sh_errexit_works accordingly, substitute sh_errexit_works, and warn about leftover test directories with broken shells like Tru64 /bin/sh. * tests/defs.in: Do not install any traps with broken shells. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 3ebd4b8c 2009-04-25T10:48:11 Indent rule commands consistently with a TAB. * lib/am/check.am ($(TEST_SUITE_LOG)): Consistently use TAB, not spaces, for indentation of commands, even if indentation may not be needed at all. * lib/am/texinfos.am (install-info-am): Likewise. * THANKS: Update. Prompted by report from John Calcote. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 68ce3ae9 2009-04-25T10:43:09 parallel-tests: fix recheck* targets for non-GNU make. * lib/am/check.am (recheck recheck-html): Override AM_MAKEFLAGS to portably transport the TEST_LOGS settings through the recursive `make' invocations. Fixes parallel-tests9.test failure with Solaris make. * tests/parallel-tests9.test: Also ensure that the test summary is correct for `recheck'. Suggestion by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues e33f5550 2009-04-19T12:46:36 Let XFile::lock warn and fail with parallel non-GNU make, too. * lib/Automake/XFile.pm (lock): Also match `-j' for parallel BSD make, and `-P' for parallel HP-UX make. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues ef895abc 2009-04-19T08:50:46 Merge branch 'next' * next: (64 commits) More minor fixups to vala support. Improve Vala support. testsuite: do not fail on systems without read permissions. testsuite: parallel make fixes. silent-rules reorganization, --enable-silent-rules switch. manual: Add note about parallelism and tests ordering. Fix maintainer-check failure. parallel-tests: more testsuite exposure. parallel-tests: let VERBOSE=yes output appear before summary. parallel-tests: `clean recheck' should not rerun all tests. parallel-tests: Fix driver for nonempty executable extension. Fix a couple of $(EXEEXT)-related testsuite failure. Document last change in NEWS. Fix renamed objects with subdir-objects and other languages. Do not remove texinfo outputs upon mostlyclean. testsuite: unset TESTS, TEST_LOGS, to avoid interference. testsuite: generate $(parallel_tests) just when needed. Remove superfluous line from recheck recheck-html. parallel-tests: redo check-html, recheck, recheck-html. parallel-tests: LOG_COMPILER for tests without known extension. ...
Ralf Wildenhues 2c74a340 2009-04-13T23:17:39 silent-rules reorganization, --enable-silent-rules switch. This patch introduces a configure-time option to set the default verbosity. Since configure now needs to know whether the `silent-rules' automake option was set, the latter can only be set within AM_INIT_AUTOMAKE, or with a new AM_SILENT_RULES macro but not any more through AUTOMAKE_OPTIONS or the automake command line option `--silent-rules'. * automake.in (define_verbose_var): Define the default verbose variable in terms of `$(AM_DEFAULT_VERBOSITY)'. (handle_configure): Do not pass `--silent-rules' to automake. (scan_autoconf_traces): Trace `AM_SILENT_RULES'. If seen, enable global `silent-rules' option. (usage): Do not document `--silent-rules'. (parse_arguments): Do not accept `--silent-rules'. * doc/automake.texi (Options): Overhaul. Document AM_SILENT_RULES, --enable-silent-rules, --disable-silent-rules, AM_DEFAULT_VERBOSITY. Show an example for user-added variables for less verbose output. (Invoking Automake): Remove documentation for `--silent-rules'. (Public Macros): Document `AM_SILENT_RULES'. * NEWS: Update. * lib/Automake/Options.pm (_process_option_list): Accept `silent-rules' only as option in configure.ac. * m4/init.m4 (AM_INIT_AUTOMAKE): If the `silent-rules' option was enabled, require `AM_SILENT_RULES'; move AM_BACKSLASH initialization to ... * m4/silent.m4 (AM_SILENT_RULES): ... this new file, new macro. Deal with `--enable-silent-rules' switch; define AM_DEFAULT_VERBOSITY. * m4/Makefile.am (dist_m4data_DATA): Add silent.m4. * tests/dollarvar.test: Remove tests for `--silent-rules', use `AM_SILENT_RULES'. * tests/flavor.test: Remove test for `--silent-rules'. * tests/silent.test: Use `AM_SILENT_RULES' instead of `AUTOMAKE_OPTIONS = silent-rules'; use `--enable-silent-rules'. * tests/silent2.test: Likewise. * tests/silent3.test: Likewise. * tests/silent4.test: Likewise. * tests/silent5.test: Likewise. * tests/silent6.test: Likewise. Test `AM_SILENT_RULES' as well as `AM_INIT_AUTOMAKE([silent-rules])' instead of `--silent-rules'. * tests/silent7.test: Use `AM_SILENT_RULES' instead of `AUTOMAKE_OPTIONS = silent-rules'; ensure the latter is rejected. Test combinations of --enable-silent-rules and --disable-silent-rules with `make V=0' and `make V=1'. Suggestion for configure-time switch by Bob Friesenhahn. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Jim Meyering 610e9c06 2009-04-10T16:25:05 Fix grammar in comments and documentation. * doc/automake.texi (API versioning): Fix grammar. * automake.in: Fix grammar in comment. * lib/Automake/ChannelDefs.pm: Likewise. * tests/ext2.test: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues babf1633 2009-04-10T13:31:28 parallel-tests: let VERBOSE=yes output appear before summary. * lib/am/check.am ($(TEST_SUITE_LOG)): In `VERBOSE=yes' mode, output contents of `$(TEST_SUITE_LOG)' before, rather than after the test suite summary. This ensures that the email address appears near the end of the output; also, the log file already starts with a result summary anyway. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 79f2c3e2 2009-04-10T13:26:16 parallel-tests: `clean recheck' should not rerun all tests. * lib/am/check.am (recheck, recheck-html): Do not rerun all tests if `$(TEST_SUITE_LOG)' does not exist. * tests/parallel-tests2.test: Adjust recheck test. * tests/parallel-tests9.test: Adjust recheck-html test. * NEWS: Update. Suggestion by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues fcf4d469 2009-04-06T22:02:58 Remove superfluous line from recheck recheck-html. * lib/am/check.am (recheck recheck-html): Remove superfluous line, introduced bogusly in last commit. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Akim Demaille 68b7dc1d 2009-04-06T07:03:16 parallel-tests: redo check-html, recheck, recheck-html. * lib/am/check.am (recheck, recheck-am): Remove. (recheck-TESTS): Rename to ... (recheck): ... this and rewrite, factored ... (recheck-html): ... with this rule. Pass TEST_LOGS rather than RECHECK_LOGS to `check' and `check-html', respectively, to avoid running outdated tests. Invoking the public macros ensures `check_SCRIPTS' etc. are created in time. Do not output errors for tests that were not run yet. If the testsuite has not run at all, run all tests. (check-html): Run `check' target, not `check-TESTS', to ensure `check_SCRIPTS' etc. are created in time. (.PHONY, .MAKE, AM_RECURSIVE_TARGETS): Adjust contents. * tests/parallel-tests2.test: Expose the check-html and recheck-html issues. * tests/parallel-tests9.test: Expose the recheck issues. Bugs in previous version pointed out by Akim, who already had them fixed in his original version. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 80853982 2009-04-04T12:14:14 parallel-tests: LOG_COMPILER for tests without known extension. * automake.in (handle_tests): If we don't match a known extension, define `LOG_COMPILER' as `$(LOG_COMPILE) $(AM_LOG_FLAGS) $(LOG_FLAGS)' and use it as %COMPILE% in check2. * doc/automake.texi (Simple Tests using parallel-tests): Document it. In the examples, suggest using the AM_*LOG_FLAGS flags in Makefile.am rather than the variables without `AM_' prefix. * lib/Automake/tests/Makefile.am (AM_PL_LOG_FLAGS): Renamed from (PL_LOG_FLAGS): ... this variable, intended for the user. * tests/parallel-tests7.test: Extend test. * NEWS: Update. Suggestion by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 72bae12c 2009-03-31T00:54:04 Post-release version bump. * configure.ac, NEWS: Bump version to 1.10c. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues dd363d92 2009-03-29T23:23:16 Version 1.10b. * configure.ac, NEWS: Bump version to 1.10b. * doc/automake.texi (Releases): Add statistics for 1.10b. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues b6bcc69d 2009-03-29T01:23:30 Update AM_RECURSIVE_TARGETS for parallel-tests. * lib/am/check.am [PARALLEL_TESTS] (AM_RECURSIVE_TARGETS): Add check, recheck, check-html, recheck-html. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 1c503be3 2009-03-29T01:21:01 Merge branch 'ad-parallel-tests' into next * ad-parallel-tests: parallel-tests: New target recheck-html. parallel-tests: redo lazy checking: recheck and RECHECK_LOGS. parallel-tests: do not mark check-TESTS as `.MAKE'. parallel-tests: warn about $(srcdir), $(top_srcdir) in TESTS. check-html: Always create HTML output, note conversion failure. parallel-tests: per-extension test driver: <EXT>_LOG_COMPILER. parallel-tests: also record logs of SKIPped tests. Minor optimization in parallel-tests text box creation.
Ralf Wildenhues 83b03f37 2009-03-29T01:17:51 parallel-tests: New target recheck-html. * lib/am/check.am [PARALLEL_TESTS] (recheck-html): New phony, recursive target. Factor common implementation with `check-html'. * doc/automake.texi (Tests): Document recheck-html. * tests/parallel-tests2.test: Test it. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues fe936f64 2009-03-29T00:59:46 Merge branch 'master' into next * master: Rewrite maintainer-check in separate tests, parallelizable. Fix maintainer-check failure. Fix latex warning in manual. Sync auxiliary files from upstream. manual: minor cleanups. Sane (un)install for empty directory variables. Ensure that empty directory variables work with empty content variables. Use --tag=FC with libtool also for .f90 files. DISTFILES containing a directory and files in that directory. Fix a documentation typo. Define AM_RECURSIVE_TARGETS, for gnulib's GNUmakefile. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 8f33eec4 2009-03-28T22:58:34 parallel-tests: redo lazy checking: recheck and RECHECK_LOGS. Replace the LAZY_TEST_SUITE API with a simpler yet more powerful one: RECHECK_LOGS specifies those tests which are to be removed in any case before testing. Provide a `recheck' convenience target to set RECHECK_LOGS to all failed and unexpectedly passed tests. Document several ways to limit the set of tests run. * lib/am/check.am [PARALLEL_TESTS] (RECHECK_LOGS): New variable, default to $(TESTS_LOGS). (check-TESTS): Remove $(RECHECK_LOGS) not $(TEST_LOGS). Drop use of LAZY_TEST_SUITE. ($(TEST_SUITE_LOG)): Do not output note about lazy rerun, as LAZY_TEST_SUITE is gone. (recheck): New target. (recheck-am, recheck-TESTS): New internal targets. * doc/automake.texi (Tests): Update @vindex for TESTS and TEST_LOGS. Replace description of LAZY_TEST_SUITE with a list of ways the set of tests to be run can be modified. Document RECHECK_LOGS and the recheck target. * tests/defs.in: Unset RECHECK_LOGS not LAZY_TEST_SUITE. * tests/parallel-tests.test: Adjust, replacing LAZY_TEST_SUITE with corresponding RECHECK_LOGS settings, and add another RECHECK_LOGS test. * tests/parallel-tests9.test: New test, test `recheck'. * tests/Makefile.am: Update. Suggestion and different implementation by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues c4e28424 2009-03-28T22:52:22 parallel-tests: do not mark check-TESTS as `.MAKE'. * lib/am/check.am [PARALLEL_TESTS] (.MAKE): Remove check-TESTS. This rule removes files, which should not be executed with BSD `make -n'. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 868fb045 2009-03-28T21:01:43 check-html: Always create HTML output, note conversion failure. * lib/am/check.am (check-html): Create `$(TEST_SUITE_HTML)' in any case. Exit unsuccessfully if HTML creation failed. * tests/parallel-tests2.test: Amend test to expose this. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 66c2dcaa 2009-03-11T23:55:26 parallel-tests: per-extension test driver: <EXT>_LOG_COMPILER. For test files with extension <ext>, introduce the internal variable <EXT>_LOG_COMPILE, which expands to $(<EXT>_LOG_COMPILER) $(AM_<EXT>_LOG_FLAGS) $(<EXT>_LOG_FLAGS). Turn also the lib/Automake/tests testsuite over to the new test driver. * doc/automake.texi (Tests): Document `EXT_LOG_COMPILER' and `EXT_LOG_FLAGS'. * lib/am/check2.am: Insert `%COMPILE%' right before test. * automake.in (handle_tests): Substitute `COMPILE' for check2, empty for tests without extension, and `$(ext_LOG_COMPILE)' for extension `ext'. In the latter case, define it from the public components. * configure.ac (AM_INIT_AUTOMAKE): Use `parallel-test' globally. * tests/Makefile.am (AUTOMAKE_OPTIONS): Remove, not needed here any more. * lib/Automake/tests/Makefile.am (TESTS_ENVIRONMENT): Split ... (PL_LOG_COMPILER, PL_LOG_FLAGS): ... into these new variables. (TESTS_EXTENSIONS): New variable, initialize to `.pl'. * tests/parallel-tests7.test: New test. * tests/Makefile.am: Update. Suggestion by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 9bfd7e89 2009-03-28T18:04:48 Sane (un)install for empty directory variables. This patch fixes all install and uninstall rules to behave sanely when $(wheredir) is the empty string, but $(where_HOW) is nonempty, for all kinds of values of `where' and `HOW'. * lib/am/data.am (install-%DIR%%PRIMARY%, uninstall-%DIR%%PRIMARY%): Do not touch the install tree if the corresponding directory variable $(%NDIR%dir) is empty. * lib/am/java.am (install-%DIR%JAVA, uninstall-%DIR%JAVA): Likewise. * lib/am/libs.am (install-%DIR%LIBRARIES, uninstall-%DIR%LIBRARIES): Likewise. * lib/am/lisp.am (install-%DIR%LISP, uninstall-%DIR%LISP): Likewise. * lib/am/ltlib.am (install-%DIR%LTLIBRARIES, uninstall-%DIR%LTLIBRARIES): Likewise. * lib/am/mans.am (install-man%SECTION%, uninstall-man%SECTION%): Likewise. * lib/am/progs.am (install-%DIR%PROGRAMS, uninstall-%DIR%PROGRAMS): Likewise. * lib/am/python.am (install-%DIR%PYTHON, uninstall-%DIR%PYTHON): Likewise. * lib/am/scripts.am (install-%DIR%SCRIPTS, uninstall-%DIR%SCRIPTS): Likewise. * lib/am/texinfos.am (install-dvi-am, install-html-am, install-pdf-am) (install-ps-am, uninstall-dvi-am, uninstall-html-am, uninstall-pdf-am) (uninstall-ps-am): Likewise. * tests/instdir2.test, tests/instdir-java.test, tests/instdir-lisp.test, tests/instdir-ltlib.test, tests/instdir-prog.test, tests/instdir-python.test, tests/instdir-texi.test: New tests. * tests/Makefile.am: Update. * NEWS: Update. Suggestion by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Peter Breitenlohner 3a12ed5e 2009-03-22T10:11:14 DISTFILES containing a directory and files in that directory. For PR automake/533: When the source tree contains non-writable files or directories (as happens during distcheck), and directories or entries thereof are listed multiple times in variables to be distributed, then the corresponding directories below $(distdir) need to be made writable recursively. Since file modes should not change, they need to be copied recursively using `cp -f'. * lib/am/distdir.am: Handle this situation. * tests/distdir.test: Extend test to those cases. * NEWS: Update. Report by Peter Breitenlohner. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 9003cc9b 2009-03-22T09:53:19 Define AM_RECURSIVE_TARGETS, for gnulib's GNUmakefile. This new macro lists all public targets which invoke `make' recursively, or depend on targets which do so. It allows to prevent parallelism selectively, when multiple targets are passed on the `make' command line. * lib/am/distdir.am [%?SUBDIRS%] (AM_RECURSIVE_TARGETS): New macro. * lib/am/subdirs.am (AM_RECURSIVE_TARGETS): Likewise. * lib/am/tags.am [%?SUBDIRS%] (AM_RECURSIVE_TARGETS): Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues d4cc23b0 2009-03-14T11:14:38 Merge branch 'ad-parallel-tests' into next * ad-parallel-tests: Fix LAZY_TEST_SUITE handling and $(TEST_SUITE_LOG) recreation. Fix parallel-tests with empty $(TESTS) for BSD make. Mark check-html and check-TESTS as recursive for BSD make. Match XFAIL_TESTS correctly with Solaris make. Use append mode to capture parallel test output. parallel-tests: Fix summary output. Overhaul of tests/README. Documentation for the parallel-tests driver. New tests for `parallel-tests'. parallel-tests: Ensure backward-compatible semantics. Parallel test execution: new option `parallel-tests'.
Akim Demaille 9aa1e525 2009-03-08T11:29:03 Parallel test execution: new option `parallel-tests'. * automake.in (handle_tests): Set new conditional PARALLEL_TESTS when reading check.am. Handle option `parallel-tests' and all its semantics. Define macros TEST_EXTENSIONS, TEST_SUITE_LOG, TEST_SUITE_HTML, TEST_LOGS, TEST_LOGS_TMP, suffix rules if applicable, and per-target rules for other tests. Add all log files to %clean_files at the `MOSTLY_CLEAN' level. * lib/Automake/Options.pm (_process_option_list): Accept `parallel-tests'. * lib/am/check.am [!PARALLEL_TESTS] (check-TESTS): Move existing testsuite driver under this new conditional. [PARALLEL_TESTS] (am__rst_title, am__rst_section, am__text_box am__sh_e_setup) (am__check_pre, am__check_post): New internal macros. ($(TEST_SUITE_LOG), check-TESTS, .log.html, check-html): New rules. * lib/am/check2.am: New file. * lib/am/Makefile.am (dist_am_DATA): Add check2.am. * tests/Makefile.am (AUTOMAKE_OPTIONS): Use `parallel-tests'. (clean-local): Renamed from distclean-local. * tests/defs.in: Drop VERBOSE handling, not needed here any more. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 26147eac 2009-03-12T07:40:20 Rename `silent' mode to `silent-rules' mode. * automake.in (define_verbose_var, verbose_flag) (define_verbose_tagvar, handle_options, handle_languages) (handle_configure, parse_arguments): Rename the `silent' option to `silent-rules', so it coincides with the `--silent-rules' command line option; adjust all code and comments. * lib/Automake/Options.pm (_process_option_list): Likewise. * doc/automake.texi (Invoking Automake, Libtool Flags, Options): Likewise. * NEWS: Adjust. * tests/dollarvar.test, tests/silent.test, tests/silent2.test, tests/silent3.test, tests/silent4.test, tests/silent5.test, tests/silent6.test, tests/silent7.test: Likewise. Suggestion by Jan Engelhardt. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 64942dde 2009-03-11T20:53:24 `silent' mode unconditionally overrides portability-recursive. * automake.in (parse_arguments): Don't handle a global `silent' option here; instead, ... (handle_options): ... handle the "normal" `silent' option here. Override `portability-recursive' here, at the last point we deal with options, instead ... * lib/Automake/Options.pm (_process_option_list): ... of here. * tests/silent6.test: Replace unportable make snippet, remove FIXME note, add more test cases of options passed in the various locations. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues c65e0662 2009-03-10T22:59:00 Keep `--silent-rules' across triggered automake reruns. * automake.in (usage): Reformat to be a bit clearer. (handle_configure): Remove substitutions %STRICTNESS% and %USE-DEPS% in favor of a new substitution %AUTOMAKE-OPTIONS% that carries over all needed flags. * lib/am/configure.am (%MAKEFILE-IN%): Adjust rule. * tests/flavor.test: New test, to ensure --$flavor (gnu, gnits, foreign, cygnus), --ignore-deps, and --silent-rules are preserved across automake reruns. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 19e0c0ae 2009-03-09T21:20:20 Let -Wportability turn on/off the portability-recursive channel. * lib/Automake/ChannelDefs.pm (switch_warning): switch `portability-recursive' channel as well if changing the `portability' channel. * tests/dollarvar2.test: New test. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Jan Engelhardt e0bd4af1 2009-03-07T15:58:07 Implement `silent' build rules. * automake.in (ccer): New field in the language structure. Initialize it for all registered languages. (verbose_var, verbose_flag, verbose_dispatch) (silent_flag, define_verbose_var, define_verbose_tagvar) (define_verbose_libtool): New functions. (handle_languages, handle_programs, handle_libraries) (handle_ltlibraries, handle_configure) (define_compiler_variable, define_linker_variable) (define_per_target_linker_variable): Use them where appropriate to define variables to implement the silent output machinery. * lib/Automake/Options.pm (_process_option_list): Accept `silent', turning off `portability-recursive'. * lib/am/depend2.am: Add %VERBOSE% and %SILENT% prefixes where appropriate. * lib/am/lex.am: Likewise. * lib/am/library.am: Likewise. * lib/am/ltlibrary.am: Likewise. * lib/am/program.am: Likewise. * lib/am/yacc.am: Likewise. * m4/init.m4 (AM_INIT_AUTOMAKE): Substitute, but do not define, AM_BACKSLASH. * tests/defs.in: Unset `V', to avoid influencing inner tests. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues eb3d397f 2009-03-07T15:57:22 New channel `portability-recursive'. Add new channel for portability warnings about recursive make variable expansions `$(var1$(var2))'. Enable it alongside `-Wportability'. * lib/Automake/ChannelDefs.pm (Automake::ChannelDefs): Register channel `portability-recursive'. * lib/Automake/Variable.pm (_VARIABLE_CHARACTERS) (_VARIABLE_RECURSIVE_PATTERN): New variables. (check_variable_expansions): Diagnose recursive variable expansions through the new channel. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues a88a2a27 2009-03-07T10:42:34 Improve NetBSD 'make -n' output for many standard targets. * automake.in (handle_tags): Let .MAKE depend on `tags-recursive' and `ctags-recursive' if appropriate. (handle_all): Likewise for `all'. (do_check_merge_target): Likewise for `check-am' and `check'. * lib/am/ansi2knr.am (.MAKE): Depend on %ANSI2KNR-DIR%/ansi2knr. * lib/am/install.am [%?maybe_BUILT_SOURCES%] (.MAKE): Depend on `install'. * tests/maken3.test, tests/maken4.test: New tests. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 31a0b6b5 2009-03-07T09:00:19 Improve `make -n dist' and `make -n distcheck' for GNU make. Ensure that `make -n dist' and `make -n distcheck' do not change files, due to GNU make executing rules containing `$(MAKE)'. * lib/am/distdir.am (distdir): Separate the creation of `$(distdir)/$$subdir' for `$(DIST_SUBDIRS)' and the recursion into the `$(DIST_SUBDIRS)' in two separate rule commands. (distcheck): Exit recursive rule early when run with `make -n', as detected by a witness file. * tests/maken.test, tests/maken2.test: New tests. * tests/Makefile.am: Update. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues d22169ba 2009-03-01T16:51:34 Fix recursive html and install-* doc rules for BSD make. * automake.in (%required_targets): Add html-am, install-html-am, install-dvi-am, install-pdf-am, install-ps-am, install-info-am. * tests/txinfo32.test: New test. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues b74717c0 2009-01-20T20:58:48 Bump copyright years. * aclocal.in (write_aclocal, version): Bump copyright years. * automake.in (gen_copyright, version): Likewise. * doc/automake.texi: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues e9a942a1 2008-11-27T21:46:36 Cope with whitespace in $MISSING and $install_sh. * configure.ac (am_AUTOHEADER): New substitution, save the value of $AUTOHEADER before AM_INIT_AUTOMAKE may add $MISSING. * tests/defs.in: Use am_AUTOHEADER. * lib/am/install.am: Fix typo. * m4/install-sh.m4 (AM_PROG_INSTALL_SH): Add suitable single-quote quoting to install_sh, but only if needed. * m4/missing.m4 (AM_MISSING_HAS_RUN): Add suitable double-quote quoting to MISSING, but only if needed. * m4/sanity.m4 (AM_SANITY_CHECK): Abort configure if `pwd` or $srcdir contain shell meta-characters that cannot be handled; space and tab are allowed in the former only. * tests/sanity.test: New test. * tests/Makefile.am: Adjust. * NEWS: Update. Reports by Jim Meyering and others. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Jim Meyering 7e2cfbf0 2008-11-22T12:02:36 Add xz compression support. * NEWS: Mention xz, as well as lzma (xz will displace lzma). * automake.in (handle_dist): Recognize dist-xz. (make_paragraphs): Map XZ to dist-xz. * doc/automake.texi (Dist): Add dist-xz. (Options): Likewise. * lib/Automake/Options.pm (_process_option_list): Accept dist-xz. * lib/am/distdir.am (dist-xz): New rule. (dist dist-all): Add command to create an xz-compressed tarball. (distcheck): Handle xz-compressed tarballs just like the others. * tests/xz.test: New file, based on nogzip.test. * tests/Makefile.am (TESTS): Add xz.test. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues bb9dfbde 2008-11-06T21:06:01 Cope with absent Perl modules threads and Thread::Queue. * automake.in: Instead of `use threads', use `require threads; import threads' inside a BEGIN section. Likewise for Thread::Queue. * lib/Automake/ChannelDefs.pm (Automake::ChannelDefs): Likewise. * lib/Automake/tests/Condition-t.pl: Likewise. * lib/Automake/tests/DisjConditions-t.pl: Likewise. * configure.ac: Likewise, use `require' and `import'. Report by Eric Blake, fix suggested by Ben Pfaff. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues be6de492 2008-10-26T20:38:06 Implement serialization for Locations. * lib/Automake/Location.pm (serialize, deserialize): New functions. They allows to serialize a Location in an array, and to restore a Location from a thread queue. The API is unsymmetric (array vs. queue) because enqueuing data needs to happen atomically. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 3fd0df9b 2008-10-26T20:11:12 Parallel automake: ordered output messages. * lib/Automake/Channels.pm (%_default_options): New options `ordered' default enabled, `queue', default zero (no queue), `queue_key' default undefined. (_merge_options): Ensure `ordered' channels cannot have fatal messages or backtrace output. (_enqueue, _dequeue): New functions, to push messages onto a Thread::Queue, and output messages from such a queue, suitably weeded for duplicates in the same manner as _print_message. (_print_message): If the channel is ordered and has an associated queue, then enqueue messages instead of printing them. (setup_channel_queue, pop_channel_queue): New functions, to set a Thread::Queue for channels, and to flush a queue. * lib/Automake/ChannelDefs.pm: Unset channel option `ordered' for fatal, automake, and verb channels. * automake.in (QUEUE_MESSAGE): New global constant, used as serialization key. (handle_makefiles_threaded): Create message queues for each input file; workers queue messages, and the master outputs them ordered, using the new Channels.pm functions. * tests/parallel-am.test: Also check for ordered output (in the absence of --add-missing races). * tests/parallel-am2.test: New test; check for ordered output of warning and (regular) error messages. * tests/Makefile.am: Adjust. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 937775c8 2008-10-26T19:29:25 Parallel automake execution: AUTOMAKE_JOBS. * lib/Automake/Config.in (perl_threads): New global. * automake.in: Use it. If the perl supports interpreter-based threading, then use `threads' and `Thread::Queue'. (handle_makefile, handle_makefiles_serial): New functions, factored out from main. (get_number_of_threads): New function, compute number of threads to use, based on environment variable `AUTOMAKE_JOBS' and number of independent makefiles. (handle_makefiles_threaded): New function. Spawn threads, use thread queue to distribute handling the different makefiles. Collect $exit_code values from threads. (main): Use new functions. * aclocal.in: No threads here. * configure.ac: Substitute PERL_THREADS; enabled with perl >= 5.7.2 and when ithreads are available. * bootstrap (dosubst): Likewise. * Makefile.am (do_subst): Likewise. * lib/Automake/Makefile.am (do_subst): Likewise. * lib/Automake/ChannelDefs.pm: Use `Automake::Config' and `threads'. (verb): Prepend thread ID (tid) to verbose messages. * lib/Automake/Channels.pm (msg): Before exiting, flush stderr, needed for worker threads. * lib/Automake/tests/Makefile.am (TESTS_ENVIRONMENT): Also include the build tree path, so Config.pm is found. * tests/parallel-am.test: New test. * tests/Makefile.am: Update. * doc/automake.texi (Invoking Automake): Document AUTOMAKE_JOBS. * NEWS, THANKS: Update. Report about long execution times by Joakim Tjernlund and others. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 2b85923e 2008-10-26T18:50:17 Minor file checking optimization: set_dir_cache_file. * lib/Automake/FileUtils.pm (set_dir_cache_file): New function. * automake.in (require_file_internal): Instead of resetting the cache when a file has been installed, simply correct the cache using set_dir_cache_file. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues fe385087 2008-10-26T16:29:54 No uniquifying for fatal, prog_error, and verbose messages. There is no point in dropping critical messages, even if they are duplicates (unlikely to happen unless they have been sent as non-critical messages before), and verbose messages should enable to show progress, even using duplicate statements. * lib/Automake/ChannelDefs.pm (fatal, automake, verb): Set `uniq_part' to `UP_NONE' when registering these channels. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 78ed7740 2008-10-22T21:59:02 Drop unused variable. * lib/Automake/Channels.pm (@chain): Drop unused variable. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues c15d9a8e 2008-10-19T19:54:12 Fix DisjConditions module to be thread-safe for perl >= 5.7.2. Self-hashes of blessed references are not correctly transported through thread creation. This patch fixes that by recreating the hashes upon thread creation with a CLONE special subroutine, which is automatically invoked by new enough Perl versions. * lib/Automake/DisjConditions.pm (CLONE): New special subroutine to fix self hashes upon thread creation. * lib/Automake/tests/Condition-t.pl: New, sister test to Condition.pl, but spawns a new threads after each creation of a new condition; skip test if perl is too old or ithreads are not available. * lib/Automake/tests/DisjConditions-t.pl: Likewise. * lib/Automake/tests/Makefile.am (TESTS): Add them. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues b6af2140 2008-10-18T11:09:14 Fix comment typos. * automake.in (require_file_internal): Fix typos in comments. * m4/amversion.in: Likewise. * lib/Automake/Variable.pm: Likewise. * lib/Automake/XFile.pm: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 9c0bda62 2008-10-12T22:22:39 Nicer 'make dist' output. * lib/am/distdir.am (distdir): Hide the complex script used for computing the relative subdirs; echo the sub-make command. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
William Pursell 8f126edc 2008-10-12T21:51:18 Fix grammar w.r.t. plurals in test reports. * lib/am/check.am: Fix singular/plural forms in test reports. * tests/check10.test: New test. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 2205fc65 2008-10-05T21:15:25 Fix some comment typos. * automake.in: Fix some comment typos. * lib/Automake/Condition.pm: Likewise. * lib/Automake/DisjConditions.pm: Likewise. * lib/Automake/Variable.pm: Likewise. * lib/Automake/tests/DisjConditions.pl: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 4792c5df 2008-09-20T17:33:29 Remove unneeded per-rule *INSTALL variables. * NEWS: Update. * lib/am/data.am (%DIR%%PRIMARY%_INSTALL): Remove. (install-%DIR%%PRIMARY%): Adjust. * lib/am/libs.am (%DIR%LIBRARIES_INSTALL): Remove. (install-%DIR%LIBRARIES): Adjust. * lib/am/ltlibs.am (%DIR%LTLIBRARIES_INSTALL): Remove. (install-%DIR%LTLIBRARIES): Adjust. * lib/am/progs.am (%DIR%PROGRAMS_INSTALL): Remove. (install-%DIR%PROGRAMS): Adjust. * lib/am/python.am (%DIR%PYTHON_INSTALL): Remove. (install-%DIR%PYTHON): Adjust. * lib/am/scripts.am (%DIR%SCRIPT_INSTALL): Remove. (install-%DIR%SCRIPTS): Adjust. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues e3209619 2008-09-20T11:42:31 Man pages for automake and aclocal. * configure.ac (HELP2MAN): New substitution. * doc/Makefile.am (dist_man1_MANS, MAINTAINERCLEANFILES) (update_mans): New macros. ($(srcdir)/aclocal-$(APIVERSION).1) ($(srcdir)/automake-$(APIVERSION).1): New rules, generate man pages from the command line help with help2man. ($(srcdir)/aclocal.1, $(srcdir)/automake.1): New rules, for `.so' man page links to the versioned pages. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 7c02797d 2008-09-07T09:25:02 Faster `make uninstall'; fast install for JAVA. * lib/am/inst-vars.am (am__nobase_strip_setup) (am__nobase_strip): New macros. (am__nobase_list): Factorize. * lib/am/data.am (uninstall-%DIR%%PRIMARY%): Use them, for a constant number of forks per uninstall. * lib/am/libs.am (uninstall-%DIR%LIBRARIES): Likewise. * lib/am/lisp.am (uninstall-%DIR%LISP): Likewise. * lib/am/progs.am (uninstall-%DIR%PROGRAMS): Fast uninstall. * lib/am/python.am (uninstall-%DIR%PYTHON): Fast uninstall. Echo all `rm' commands that are are executed. * lib/am/java.am (install-%DIR%JAVA, uninstall-%DIR%JAVA): Fast install and uninstall. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 196abe9a 2008-09-07T00:43:38 Exit upon `install' failure, part one. * lib/am/data.am (install-%DIR%%PRIMARY%): Exit if any install command fails. * lib/am/python.am (install-%DIR%PYTHON): Likewise. * lib/am/scripts.am (install-%DIR%SCRIPTS): Likewise. * lib/am/texinfos.am (install-dvi-am, install-html-am) (install-info-am:, install-pdf-am): Likewise. * tests/instmany.test: New test, for SCRIPTS, DATA, and HEADERS. * tests/instmany-python.test: New test, for PYTHON. * tests/Makefile.am: Adjust. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 92a09f69 2008-09-06T23:40:34 Fix multi-file installation for files in srcdir. For files that can live in the build tree or the source tree, we have to expect that prepending `$(srcdir)/' to each name will let the install command line exceed length limitations. Thus use a new macro, $(am__base_list), to install in chunks of 40 files, similar to what we do for nobase_* files. There, lower the limit to 40, too. * lib/am/inst-vars.am (am__install_max): Lower to 40. (am__base_list): New macro. * lib/am/data.am (install-%DIR%%PRIMARY%) [%?BASE%]: Use it. * lib/am/texinfos.am (install-dvi-am, install-html-am) (install-info-am, install-pdf-am, install-ps-am): Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 1fb0f1ce 2008-09-04T22:04:37 For all possibly-relative subdirs, use $(am__cd). Up to now, $(am__cd) was only used within backquotes, to avoid extraneous output. This patch also uses it for every `cd' to a relative subdir, to prevent CDPATH from entering an unwanted directory. * Makefile.am (maintainer-check): Fix current check for $(am__cd) within backquotes a bit. Add new check for `cd' to a relative subdir. * automake.in (handle_tags, handle_configure): Adjust rules. * lib/am/ansi2knr.am: Likewise. * lib/am/configure.am: Likewise. * lib/am/distdir.am: Likewise. * lib/am/remake-hdr.am: Likewise. * lib/am/subdirs.am: Likewise. * lib/am/tags.am: Likewise. * lib/am/texibuild.am: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 7456aefd 2008-08-22T13:19:04 Fix rebuilding of removed subdir/Makefile.in files. * lib/am/configure.am (%MAKEFILE-IN%) [?!TOPDIR_P?]: If subdir/Makefile.in was removed, am--refresh would not update it. Fix up for it by running the per-directory rebuild rule. * tests/remake6.test, tests/remake6.test: New tests. * tests/Makefile.am: Adjust. * NEWS, THANKS: Update. Report and initial patch by Ilya N. Golubev. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 24abcf7f 2008-06-18T00:19:16 New variable am__install_max. * lib/am/inst-vars.am (am__install_max): New variable. (am__nobase_list): Use it. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 30105086 2008-06-18T00:11:36 For AC_CONFIG_LINKS(X,X), do not clean X in a non-VPATH build. * automake.in (rewrite_inputs_into_dependencies): Do distribute inputs where input and output name are equal. This relies on the assumption that it only happens with AC_CONFIG_LINKS. (handle_configure) <CONFIG_CLEAN_VPATH_FILES>: New variable, for links where source and dest are equal. * lib/am/clean.am (distclean-generic): Remove, if build tree not equal source tree. * tests/conflnk4.test: New test. * tests/Makefile.am: Adjust. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues ab4f8d32 2008-03-17T06:49:44 New function xsystem_hint, for autoreconf. * lib/Autom4te/FileUtils.pm (handle_exec_errors): New argument $hint, show if the executing program does not exist. (xsystem_hint): New function, like xsystem but allows to pass a hint. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 2139f25b 2008-03-08T13:58:18 Exploit `install' with multiple files at once for some file types. With nobase targets, at most 50 files are installed at once, to avoid quadratic string concatenation and line length limits. This isn't yet done with base targets. One hope is that there, the typical file name length is lower. If this turns out to be a problem, it should be revisited. * lib/am/inst-vars.am (am__nobase_list): New helper macro for installation of multiple nobase files at once: sorts and lists files keyed by their target directory. * lib/am/data.am (%DIR%%PRIMARY%_INSTALL): No need to set it to $(install_sh_DATA) any more, not even for nobase targets. (install-%DIR%%PRIMARY%): Split base and nobase cases. Rewrite to pass lists of files which all go in the same directory to `install'. In the nobase case, make use of $(am__nobase_list) and $(MKDIR_P) each directory before populating it. Take care of files in source and build trees, and avoid creating directories where no files are to be installed. * lib/am/libs.am (%DIR%LIBRARIES_INSTALL): Likewise. (install-%DIR%LIBRARIES): Likewise. * lib/am/python.am (%DIR%PYTHON_INSTALL): Likewise. (install-%DIR%PYTHON): Likewise. Also take care to keep note of a list for byte compilation after installation. * lib/am/texinfos.am (install-dvi-am, install-html-am) (install-info-am, install-pdf-am, install-ps-am): Use file lists to install multiple files at once. * NEWS: Update. Suggested by Akim Demaille. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 8aad9804 2008-03-08T13:35:05 Require unreleased Autoconf for fixed AC_PROG_INSTALL. * m4/init.m4 (AM_INIT_AUTOMAKE): Bump AC_PREREQ to 2.61-341, regenerate files. * configure.ac: Also require Autoconf 2.61-341, to catch failure early and provide a sensible error message. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>