Log

Author Commit Date CI Message
Stefano Lattarini ddac0505 2012-03-07T23:26:24 getopt: relax version requirement for perl * lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former is enough. See also commit 'v1.11-2054-g7df05a0' on master (dated 04-03-2012).
Stefano Lattarini 27f3c562 2012-03-07T22:14:47 cosmetics: fix repeated changelog entry heading
Peter Rosin 3a814608 2012-03-07T21:08:06 Merge branch 'msvc' into maint This merge remedies the confusing situation that some changes destined for both the master branch and the release branch (a.k.a. branch-1.11) currently needs to be made on the non-obvious msvc branch and not on the more natural maint branch. This has caused a seemingly endless string of less than optimal commits. The reason for the confusion stems from the fact that the changes made on the msvc branch became too radical and was considered only suitable for the master branch, and was thus written in a form suitable for master and then merged there. Later, the msvc branch was merged directly into branch-1.11, in order to rush the new features to the market and to keep the released scripts (lib/ar-lib, lib/compile and lib/depcomp) consistent with those on the master branch. However, some changes had to be made to the features added by the msvc branch in order for them to fit the requirements of branch-1.11, notably that the warnings issued in the extra-portability class cannot be enabled by -Wall in the 1.11.x maintenance releases. In retrospect, it would have been better to not merge msvc directly into branch-1.11, but instead do it via the maint branch (followed up with a dummy merge from maint into master) the moment it was decided that the msvc changes should make it into branch-1.11. All in all, this merge is going to affect neither the master branch nor branch-1.11, since it is followed up with dummy merges masking all changes. The merge is made to maintain the sanity of the poor developers, who wishes to once again have a working maint branch. Discussion about merging the msvc branch into branch-1.11: http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html Discussion about why this merge hasn't happened before: http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html Extra edits below. * lib/Automake/ChannelDefs.pm: Use the version from branch-1.11. * tests/ar-lib3.test: Likewise. * tests/ar-lib4.test: Likewise. * tests/extra-portability.test: Likewise. * tests/extra-portability2.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/list-of-tests.mk: Likewise. * HACKING: Backport the version from branch-1.11 while at it (as the change on branch-1.11 is also present on master via an unrelated commit), even though this change has nothing to do with the changes on the msvc branch.
Stefano Lattarini 24ab9845 2012-03-07T08:20:26 Merge branch 'maint' into msvc * maint: news: describe recently-fixed bug in vala support depcomp: add support for IBM xlc/xlC compilers
Stefano Lattarini 94d56e80 2012-03-06T21:44:57 news: describe recently-fixed bug in vala support * NEWS (Long-standing bugs): Document fix for bug#10894, fixed by commit 'v1.11-696-g51f61df' of 27-02-2012.
Michael Hofmannm b0887067 2012-03-05T20:05:37 depcomp: add support for IBM xlc/xlC compilers * lib/depcomp (xlc): New depmode. * NEWS, THANKS: Update. Copyright-paperwork-exempt: yes
Peter Rosin 8902f83d 2012-03-06T09:14:50 scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile POSIX mandates that the compiler accepts a space between the -I, -l and -L options and their respective arguments. See http://pubs.opengroup.org/onlinepubs/000095399/utilities/c99.html * lib/compile (func_cl_dashl): New function with factored out code for implementing the -l option for the cl wrapper. (func_cl_dashL): New function with factored out code implementing the -L option for the cl wrapper. (func_cl_wrapper): Use func_cl_dashl to implement both -l <lib> and -l<lib>, and func_cl_dashL to implement both -L <dir> and -L<dir>. Also add support for -I <dir>. (scriptversion): Update. * tests/compile3.test: Test both with and without a space between -I, -l and -L and their respective arguments. * tests/compile5.test: Likewise. * tests/compile6.test: Likewise. * tests/compile3.test: Likewise. * NEWS: Update.
Peter Rosin 54a402e5 2012-03-02T16:27:31 news: add entry about recent 'ar-lib' changes * NEWS: Add information about recent 'ar-lib' changes.
Peter Rosin 8be5d254 2012-03-01T09:30:45 scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib * lib/ar-lib: Implement the "q" (quick) action as a synonym for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol index) when used as modifiers and "s" when used as a command, there is simply no way for Microsoft lib to not update the symbol table index in the archive. (scriptversion): Update. * tests/ar-lib.test: Check the added behavior. Also add checks for the recently added "u" (update) and "v" (verbose) modifiers.
Peter Rosin aadd78e9 2012-03-02T11:04:05 Merge branch 'maint' into msvc
Stefano Lattarini 51f61dfb 2012-02-27T21:48:03 vala: fix 'valac' calls for projects with mixed Vala/C Fixes automake bug#10894. * automake.in (lang_vala_finish_target): Strip non-vala files from the dependencies of vala stamps, and from the invocation of valac compiler. Related refactorings. * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-mix2.test'.
Stefano Lattarini 7d335efe 2012-02-27T21:16:22 vala: expose automake bug#10894 * tests/vala-mix2.test: New test. * tests/list-of-tests.mk: Add it. * tests/Makefile.am (XFAIL_TESTS): Likewise. * THANKS: Update.
Stefano Lattarini 4df475a2 2012-02-17T11:52:13 dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS) * lib/am/header-vars.am (am__make_dryrun): Be smarter and more correct in handling shell metacharacters in $(MAKEFLAGS).
Stefano Lattarini db5ddc2b 2012-02-16T10:33:30 update-copyright: don't touch files synced from external packages * Makefile.am (update-copyright): Do not update copyright years of files synced from external packages, as given by the '$(FETCHFILES)' variable. Silence the recipe since we are at it.
Stefano Lattarini 8dd50099 2012-02-15T19:00:10 fixup: distribute 'lib/update-copyright' While the 'update-copyright' script shouldn't be needed by final users, that's not a good reason to keep it out by the distribution, as doing so might be unhelpful toward occasional but curious users interested in peeking into the automake build system. * lib/Makefile.am (EXTRA_DIST): Distribute 'update-copyright'.
Jim Meyering 43b8af82 2012-02-12T16:57:42 maint: add a rule to use gnulib's update-copyright * lib/update-copyright: New file, from gnulib. * Makefile.am (FETCHFILES): Add update-copyright to the list. (fetch): Fetch it. (update-copyright): New rule.
Peter Rosin 4ced60d7 2012-02-14T12:55:32 fixup: do not tickle makefile-deps.test with the make_dryrun code * lib/am/header-vars.am (am__make_dryrun): Avoid code matching '^ *:' in the Makefile, as that tickles makefile-deps.test.
Stefano Lattarini 06684c51 2012-02-14T13:25:35 gitattributes: custom merge driver for ChangeLog not needed anymore * .gitattributes: We don't maintain a version-controlled ChangeLog file anymore, so we have no need to specify a custom merge driver for it anymore. Update accordingly.
Stefano Lattarini f874f9ee 2012-02-14T13:21:26 gitattributes: use "union" merge driver for NEWS This should help in reducing the spurious merge conflicts for the NEWS file, which have already caused a great deal of confusion and wasted time. Suggestion by Eric Blake: http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00119.html * .gitattributes (NEWS): Use the "union" merge driver.
Stefano Lattarini 3974270e 2012-02-09T18:07:13 Merge branch 'dryrun-fix' into maint * dryrun-fix: dryrun: fix regression with '$(am__make_dryrun)'
Peter Rosin 6fca3afa 2012-02-03T16:10:52 depcomp: try to prevent whitespace regressions Suggested by Stefano Lattarini. * lib/depcomp: Add $tab and $nl variables and use them throughout.
Peter Rosin 81193035 2012-02-03T08:54:49 depcomp: recognize tabs as whitespace in the dashmstdout mode Commit Release-1-7-2b-2-gf03ceab "Cope with DOS filenames in dependencies." inadvertedly converted tabs into spaces. * lib/depcomp (dashmstdout): Add a tab character to all sets matching whitespace.
Peter Rosin 1e2ced5c 2012-02-08T14:40:15 depcomp: quote 'like this', not `like this' Cherry-picked from recent changes from master. * lib/depcomp: Quote 'like this', not `like this'.
Stefano Lattarini f5f838a2 2012-02-07T19:53:49 tests: fix a timestamp-related spurious failures Fixes automake bug#10737. Report from Larry Daniel. See also automake bug#8365 and commit 'v1.11-329-gd4df619' of 30-03-2011, "tests: fix timestamp-related failures". * tests/aclocal5.test: Sleep before modifying m4 files that should trigger remake rules. This fixes an hard-to-hit timestamp-related race condition. * THANKS: Update.
Stefano Lattarini 947ce0ed 2012-02-07T11:12:59 dryrun: fix regression with '$(am__make_dryrun)' In commit v1.11-683-gda0964e of 05-02-2012, we introduced a new variable '$(am__make_dryrun)' that could be used in recipes to determine whether make is running in dry mode (e.g., as with "make -n"). Unfortunately, the idiom we used fails to take into account the case in which $(MAKEFLAGS) contains one or more variable definitions whose value is a whitespace-separated list; for example, if we invoke make as: make check TESTS="n1.test n2.test" then the better make implementations out there (at least modern GNU make and BSD make) will export MAKEFLAGS to the following value: TESTS=n1.test\ n2.test So a shell loop like the one we used in $(am__make_dryrun): for flag in $$MAKEFLAGS; do ... won't behave as expected: the shell word-splitting rules will break up the entry for TESTS into the two distinct entries "TESTS=n1.test\" and "n2.test", and this second entry will goad our $(am__make_dryrun) code into thinking that make is performing a dry run! So now we simply loop over the expanded value of $(MAKEFLAGS). This solves the regression, but alas, is more brittle in case the users passes on the command line a macro value containing unbalanced " or ' quotes, or shell metacharacters like, say, '`' or '('. This should almost never happen though, so we don't worry about it now; we will revisit the issue only when and if we receive bug reports in this area. * lib/am/header-vars.am (am__make_dryrun): Fix. * tests/make-dryrun.test: New test. * tests/list-of-tests.mk: Add it.
Stefano Lattarini ea4f1a91 2011-07-23T13:55:20 test defs: function 'is_newest' now works also with directories Reported by Jim Meyering against automake master (see bug#9147) and by Adam Sampson against automake 1.11.3 (see bug#10730). * tests/defs (is_newest): Call 'find' with the '-prune' option, so that it won't descend in the directories (which could cause spurious results). * THANKS: Update. Backported from commit v1.11-914-gb6a40fa (originally on master).
Stefano Lattarini da0964eb 2012-01-23T21:02:05 refactor: new variable telling whether make is running in "dry mode" We define a new variable '$(am__make_dryrun)', that can be used in recipes to determine whether make is running in "dry mode" (as with "make -n") or not. This is useful in rules that invoke make recursively, and are thus executed also with "make -n" -- either because they are declared as dependencies to '.MAKE' (NetBSD make) or because their recipes contain the "$(MAKE)" string (GNU and Solaris make). * lib/am/header-vars.am (am__make_dryrun): New variable. * lib/am/check.am (check-TESTS recheck): Use it, and simplify recipe accordingly. * lib/am/distdir.am (distdir): Likewise. * lib/am/lisp.am ($(am__ELCFILES)): Likewise.
Peter Rosin d51da57f 2012-02-02T21:08:46 tests: do not clobber the modified CC If CC is originally a losing compiler, AM_PROG_CC_C_O will modify CC. "$MAKE -e" will then clobber this modified CC and reintroduce the raw losing compiler causing the test to fail, as subdir-objects is in effect. tests/check8.test: Drop -e from the $MAKE invocation, since AM_COLOR_TESTS is not specified in the Makefile and -e is therefore not needed.
Peter Rosin 85cadc4e 2012-02-01T15:47:45 tests: put AM_PROG_CC_C_O before AC_OUTPUT to help losing compilers When AM_PROG_CC_C_O is after AC_OUTPUT, the compile script is not used even if needed, causing testsuite fails if libtool is not used. * tests/depcomp8a.test: Uncomment the AM_PROG_CC_C_O macro in its correct location, as indicated... (configure.in): ...with this comment. * tests/depcomp8b.test: Sync with tests/depcomp8a.test.
Stefano Lattarini c3e4962a 2012-01-31T12:52:24 cleanup: remove unused .am file * lib/am/comp-vars.am: Remove. This file has stopped being useful since commit 'Release-1-4d-206-g3334f9a' of 09-04-2001, and should have been removed back then. But apparently only its contents were removed, leaving the file empty but still present in the repository. Or maybe this situation is the consequence of a minor blunder in the conversion from CVS to Git; either way, this is not a big deal.
Peter Rosin 2a2f57fc 2012-01-30T23:19:03 ar-lib: ignore the verbose modifier instead of erroring out * lib/ar-lib: A number of tests uses the v modifier when listing the archive content, ignore it to make them pass.
Peter Rosin 41404a8f 2012-01-30T23:16:37 scripts: cherry-pick recent changes from master * lib/ar-lib: prefer the term "Windows" over "Win32" and quote 'like this', not `like this'. * lib/compile: Likewise.
Peter Rosin 32cde2a4 2012-01-30T20:57:12 tests: do not assume the object file extension is .o * tests/specflg7.test: Dig out the object file extension from the OBJEXT makefile variable. * tests/substref.test: Likewise. * tests/specflg8.test: Likewise. Also check that the false-true object is created instead of checking the true-true object twice. * tests/suffix8.test: Add a chain rule for the case where the object file extension is .obj.
Stefano Lattarini 0436a1ed 2012-01-27T18:35:28 tests: avoid spurious failure of 'transform2.test' on Cygwin On newer Cygwin versions (at least 1.7.x), the 'transform2.test' test has been failing spuriously; the gist is the following: some *purposefully* rigged install rules there try something like: install bla.exe .../inst/bin/foo.exe install script.sh .../inst/bin/foo and the second install command fails (trying to overwrite the '.../inst/bin/foo.exe' file, likely due to overly aggressive appending of '.exe' suffix when copying/renaming Windows executables). Since this is a Cygwin issue rather than an Automake one (and since the use case we are testing is a really corner-case anyway, making it unworthy to attempt to work around it in automake proper), we simply hack the test case to avoid the failure. Analysis by Peter Rosin and Ralf Wildenhues. References: <http://lists.gnu.org/archive/html/automake-patches/2010-08/msg00153.html> <http://thread.gmane.org/gmane.os.cygwin/119380> * tests/transform2.test: Skip the affected part of the test if the described Cygwin behaviour is detected.
Stefano Lattarini d55b9302 2012-01-27T21:03:45 tests: avoid spurious failure of deleted-am.test with FreeBSD make * tests/deleted-am.test: Sleep between the removal of the included '.am' fragments and the subsequent "make" calls, to ensure that the remake rules kick in. This is required to avoid racy spurious failures (~ 60% of the time) with FreeBSD make.
Stefano Lattarini be0a696a 2012-01-27T14:14:46 tests: avoid possibly undeserved PASS from check8.test * tests/check8.test: Strengthen grepping of "make check" output where we know no problem with VPATH rewrites can take place. This has the advantage of ensuring that we won't match also "sub/bar" when looking for "bar" during the uncolorized tests. Suggestion by Peter Rosin.
Stefano Lattarini b6c3ed5e 2012-01-26T18:00:40 warnings: more precise category and message for one warning If automake detected an usage like "AC_CONFIG_FILES([./Makefile])" in configure.ac, it warned that such an usage was unportable to non-GNU make implementations. But the truth is actually worse: that is actually *unportable to GNU make* itself, since it breaks the automatic remake rules in subtle ways. So we now reveal this breakage in a new test case, and enhance the warning by giving it a more precise and correct wording, and by moving it from the category 'portability' to the category 'unsupported'. * automake.in (scan_autoconf_config_files): Improve the warning. * tests/conffile-leading-dot.test: New test. * tests/list-of-tests.mk: Add it.
Stefano Lattarini af5f9390 2012-01-25T12:18:43 release: revamp rules to tag and upload the releases The older Makefile rules used to create and tag the releases were based on an approach we now consider flawed: they over-mechanized some delicate operations that are better performed manually *and* double-checked by a developer, and at the same time they did not run enough safety checks. * Makefile.am (GIT, version_rx, stable_version_rx, beta_version_rx, match_version, git_must_have_clean_workdir, determine_release_type): New variables. (git-release, git-dist): Remove, they are superseded by ... (git-tag-release, git-upload-release): ... these new targets.
Stefano Lattarini 49c91940 2012-01-25T13:45:36 amversion: add missing dependency * m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Depend on configure.ac, since the value of $(VERSION) can change every time configure.ac is updated.
Stefano Lattarini 5060920b 2012-01-25T10:09:17 hacking: update advice w.r.t. synced files * HACKING: Update and improve advices and explanations about files in the automake repository that are now owned by automake, but mirrored from other upstreams. Also, don't list these files explicitly, rather point the reader to the $(FETCHFILES) variable in Makefile.am. * Makefile.am (FETCHFILES): Don't state that "there should be a lot more here", as this is not true anymore today. Only 'COPYING' must be synced by hand.
Stefano Lattarini bff57e68 2012-01-25T09:50:54 hacking: don't reference ChangeLog anymore * HACKING: Don't reference the ChangeLog file anymore, since that is now generated from the git commit messages, not maintained by hand. So remove advice that is obsolete, and speak about "git commit message" instead of "ChangeLog entry" for advice that is still relevant.
Stefano Lattarini 3a422887 2012-01-22T17:18:59 tests: fix spurious failure due to autom4te caching * tests/lzma.test: Remove stale autom4te.cache directories, to prevent racy, spurious failures (using 'aclocal --force' was not enough, since the cache was still picked up by the following automake call).
Stefano Lattarini b08103fe 2012-01-22T10:44:42 vala: fix name of temporary file used in vala rules Unquoted `@' characters in a "..." string in the automake script were causing slightly wrong rules to be emitted in the generated Makefile.in; i.e., rules like: rm -f $@ && echo stamp > $10t instead of the expected: rm -f $@ && echo stamp > $@-t * automake.in (lang_vala_finish_target): Fix that. * tests/vala.test: Enhance.
Stefano Lattarini d266b5f7 2012-01-22T10:21:26 vala tests: add missing 'valac' requirement, and other minor fixlets See also automake bug#10575. * tests/vala-mix.test ($required): Add 'valac'; this will avoid spurious failures on systems lacking a Vala compiler. Add some explicative comments for a couple of non-obvious make calls. Make grepping of "make -n" slightly stricter, to avoid potential false positives.
Stefano Lattarini 8ddff100 2012-01-22T10:11:46 news: fix grammaro * NEWS (Miscellaneous changes): Fix grammaro: s/don't/doesn't/. Reported by Jim Meyering.
Stefano Lattarini 91158d72 2012-01-21T19:40:35 fixup: distribute 'contrib/multilib/multi.m4' This fix up a blunder in commit v1.11-665-gc5df21e of 2012-01-17, "multilib: deprecate, will be moved to contrib". * contrib/Makefile.am (EXTRA_DIST): Add 'multilib/multi.m4'.
Stefano Lattarini c5df21e8 2012-01-17T19:48:06 multilib: deprecate, will be moved to contrib As of 2012-01-17, according to Google codesarch, almost no active package is using the 'multilib' feature offered by automake. The only major exception seems to be GCC... But on a closer look, it become clear that GCC basically carries its own version of multilib support. In fact, Automake syncs its 'config-ml.in' and 'symlink-tree' scripts from GCC; and the GCC repository contains a version of the 'multi.m4' file that is *more* updated than the one in the automake repository (the former having being modified the last time in 2008, the latter only in 2006). The 'multilib' feature was anyway hardly documented at all, only being briefly cited in the manual as an "obscure feature", "still experimental", that was only for users "familiar with multilibs" and which "can debug problems they might encounter". We expect such users to be motivated and knowledgeable enough to make the minor adjustments required to start using the contrib version of multilib, if they really need to. * NEWS (Future backward incompatibility): Update. * doc/automake.texi: Deprecate multilib support. State that it will be removed from automake core in the next major release. * m4/multi.m4 (AM_ENABLE_MULTILIB): Deprecate. If called, now gives a proper warning in the 'obsolete' category (while still retaining its former behaviour for the rest). * tests/multilib.test: Update. * contrib/multilib/multi.m4: New, verbatim copy of the earlier version of multi.m4, without the new deprecation warning. * Makefile.am (fetch): Don't sync the 'config-ml.in' file nor the 'symlink-tree' script from GCC SVN repository anymore. (FETCHFILES): Adjust. (WGET_GCC): Remove, it's not needed anymore.
Stefano Lattarini 84fbf466 2012-01-20T20:52:02 fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS This change fixes automake bug#10555. Note that the bug was a minor one, since it didn't affect the compilation rules generated by automake, but only only the "hints" printed by automake in some error messages (e.g., "The usual way to define `FFLAGS' is to add AC_PROG_F77 to configure.ac"). * lib/Automake/Variable.pm (%_ac_macro_for_var): The code generated by AC_PROG_F77 uses FFLAGS, not F77FLAGS, as the variable where to look for switches for the Fortran 77 compiler: adjust accordingly.
Stefano Lattarini be0d69f0 2012-01-19T15:09:23 cosmetics: fix a botched comment in a maintainer check * Makefile.am (sc_tests_make_without_am_makeflags): Adjust botched description of this check.
Stefano Lattarini 52246cc7 2012-01-18T17:55:40 cmdline parsing: move into a dedicated perl module With this change, we delegate most of the automake and aclocal code for command-line options parsing to a new module "Automake::Getopt". This allows better code sharing between automake and aclocal, and also with Autoconf, which will sync the new module from us. See also autoconf commit 'v2.68-120-gf4be358' (2012-01-17, "getopt: new Autom4te::Getopt module"), and this mailing list discussion: <http://lists.gnu.org/archive/html/autoconf-patches/2012-01/msg00033.html> This change might interact with the behaviour described in automake bug#7434; for example, starting from now, "automake -Wfoo --version" will cause automake to emit diagnostic like "unknown warning category 'foo'" before actually printing the version number and exiting. This is not a big deal in practice, and the code sharing and simplifications introduced by this patch is certainly worth it. Still, we should revisited the issue in the future. * lib/Automake/Getopt.pm: New module, basically a slightly-edited copy of the 'lib/Autom4te/Getopt.pm' file from the autoconf devel repository (commit v2.68-120-gf4be358). It defines and exports ... (parse_options): ... this new function. * automake.in (parse_arguments): Use the new function. * aclocal.in (parse_arguments): Likewise. * lib/Automake/Makefile.am (dist_perllib_DATA): Add the new file. * tests/getopt.test: Remove. * tests/list-of-tests.mk: Update.
Stefano Lattarini a1e77caf 2012-01-18T13:40:21 cosmetics: move CheckListOfTests.am into tests/ After the previous change 'v1.11-660-gfbeda3d', the makefile fragment 'CheckListOfTests.am' is used only by the Makefile.am in 'tests'; so keeping them two nearer makes sense. It also help in reducing potential confusion, since (after that same change) the whole Automake testsuite is expected to be (and remain) contained into the 'tests' subdirectory. * CheckListOfTests.am: Move ... * tests/CheckListOfTests.am: ... to this. * tests/Makefile.am (include): Adjust.
Stefano Lattarini fbeda3da 2012-01-18T12:17:11 tests: move all under the same hierarchy ('tests/' directory) This simplifies the organization of the Automake source tree and reduces the (lamentably high) number of Makefiles in the Automake build system by one. It also makes the maintainer check that verifies the consistency of list of tests more self-contained and simpler. Finally, it might be a first step forward the transition to a non-recursive build system for automake (if we ever decide to go down that road fully some day). * lib/Automake/tests: All the '*.pl' tests in here moved ... * tests/pm: ... into this new directory. * lib/Automake/tests/Makefile.am: Remove, its meaningful contents moved ... * tests/Makefile.am: ... here, with obvious adjustments. (test_subdirs): New variable, for the sake of the recipe of 'maintainer-check-list-of-tests'. * CheckListOfTests (maintainer-check-list-of-tests): Enhance its recipe to make it able to deal with test script residing in subdirectories. * Makefile.am (maintainer-check-list-of-tests): Simplified. (TEST_SUBDIRS): Remove, no more needed. * tests/list-of-tests.mk (perl_TESTS): New variable, lists the '.pl' tests just moved into 'tests/pm'. (handwritten_TESTS): Add the contents of '$(perl_TESTS)'. * lib/Automake/Makefile.am (SUBDIRS): Remove. * configure.ac (AC_CONFIG_FILES): Update. * .gitignore: Adjust.
Stefano Lattarini 2a9862a8 2012-01-18T09:45:01 gitlog-to-changelog: update from upstream * lib/gitlog-to-changelog: Update from gnulib upstream. The only changes should be cosmetic and/or minor fixlets.
Stefano Lattarini a6e60819 2012-01-17T23:31:19 changelog: don't cluster multiple entries under the same "date line" * lib/gitlog-to-changelog: Synced from gnulib. The new version has a new option '--no-cluster', that disables clustering of adjacent commit messages under the same "date line". * Makefile.am (gitlog_to_changelog_options): Add '--no-cluster'. Also add a proper '--format' specification to ensure we have a blank line between the summary line and the commit message body.
Stefano Lattarini 443114bf 2012-01-17T15:48:56 fixup: contrib: really integrate in automake build system * configure.ac (AC_CONFIG_FILES): Add 'contrib/Makefile'. * Makefile.am (SUBDIRS): Add 'contrib'.
Stefano Lattarini e29c4918 2012-01-17T13:55:00 contrib: new, a directory for non-mainstream functionalities This new 'contrib' hierarchy will be a good place were to move implementation/support for obsolescent features we are not yet ready to remove completely, or were to leave experimental or third-party features to cook before their eventual inclusion in the automake core. * contrib: New directory. * contrib/README: New file. * contrib/Makefile.am: New file. (EXTRA_DIST): Distribute README.
Stefano Lattarini 3d6197fe 2012-01-16T18:35:50 Merge branch 'check-html-deprecate' into maint * check-html-deprecate: recheck: fix interaction with "make -n" recheck: behave better with non-GNU make check: separate .log -> .html conversion from core testsuite harness docs: deprecate .log -> .html conversion by parallel-tests
Stefano Lattarini 8fec2399 2012-01-13T22:39:47 recheck: fix interaction with "make -n" * lib/am/check.am (recheck): Ensure the recipe does not erroneously remove '.log' files when running under "make -n". For the sake of NetBSD make, this also means that ... (.MAKE): ... this cannot depend on 'recheck' anymore. * tests/parallel-tests-dryrun.test: New test. * tests/list-of-tests.mk: Add it.
Stefano Lattarini 12dc0ec5 2012-01-16T16:42:25 vala: avoid potential useless remakes (minor bugfix) * automake.in (lang_vala_finish_target): Ensure the timestamp file from which the C files generated from Vala sources depend on gets created with a modification time that is truly older than those of said generated C files. This prevents make from attempting useless rebuilds (which were bound to happen deterministically on systems with sub-second timestamp resolutions). It is worth noting that, luckily, those useless rebuild ended up being a no-op, since the Vala compiler is careful not to update the timestamp of an output file if its content has not changed from the previous version. Still, the useless rebuilds messed up "make -q" and "make -n" invocations, and were technically incorrect (despite being, as noted, inoffensive in practice). Problem revealed by failure of tests vala-mix.test and vala5.test on a fast Solaris 10 system whose filesystem had a sub-second timestamp resolution.
Stefano Lattarini 3da9c4c7 2012-01-16T15:38:56 vala: enhance tests * tests/vala.test: Extend test. Throw in some cosmetic and consistency changes since we are at it. * tests/vala5.test: Avoid uselessly requiring libtool. Ensure a failure happens in case VALAFLAGS are not supported as expected. Extend test in some ways. Throw in some cosmetic and consistency changes since we are at it. * tests/vala-mix.test: New test. * tests/list-of-tests.mk: Add it.
Stefano Lattarini d9a7182e 2012-01-13T18:53:43 recheck: behave better with non-GNU make * automake.in (handle_tests): Also substitute '%CHECK_DEPS%' with the value of the '@check' array, containing the list of early test dependencies like '$(check_SCRIPTS)', $(check_PROGRAMS)', etc. * lib/am/check.am (recheck): Explicitly depend on '%CHECK_DEPS%'. (check, recheck): Unify the implementation of their recipes, with different code paths taken depending on the name of the target. This makes the implementation of "recheck" less brittle in the process (especially when non-GNU make and AM_MAKEFLAGS overriding are involved). * lib/am/check-html.am (check-html, recheck-html): Likewise. * tests/check.test: Adjust to avoid spurious failure. * tests/parallel-tests2.test: Improve coverage.
Stefano Lattarini 20f2ac90 2012-01-13T17:56:13 check: separate .log -> .html conversion from core testsuite harness That feature is to be deprecated in the 1.11.x series, and removed from the automake core in the 1.12 release, where it will instead be offered in a semi-independent extra '*.am' fragment. So let's start better separating the .log -> .html conversion from the "core code" of the parallel-tests harness. Reference: <http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html> * lib/am/check.am (.log.html, check-html, recheck-html): Move these targets ... * automake.in (handle_tests): ... and the initialization of the TEST_SUITE_HTML variable and the cleaning of the $(TEST_SUITE_HTML) file ... * lib/am/check-html.am: ... in this new file, with related (minor) refactorings, enhancements and simplifications. * lib/am/check.am (.MAKE. PHONY, AM_RECURSIVE_TARGETS): Adjust. * lib/am/Makefile.am (dist_am_DATA): Add 'check-html.am'. * tests/parallel-tests2.test: Improve coverage.
Stefano Lattarini 20d99e05 2012-01-08T19:26:18 docs: deprecate .log -> .html conversion by parallel-tests That feature is to be deprecated in the 1.11.x series, and removed in the 1.12 release. Reference: <http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html> * doc/automake.texi (Simple Tests using parallel-tests): Deprecate the '.log' -> '.html' conversion and the targets 'check-html' and 'recheck-html'. Related rewording and reformatting. * NEWS (Future backward-incompatibilities): Update.
Stefano Lattarini 068b2f53 2012-01-16T10:18:06 tests: list some forgotten test cases in $(TESTS) This way, they will be properly executed by "make check", and properly distributed. Our previous commit 'v1.11-647-g27f1a1c' is already paying its dividends! * tests/list-of-tests.mk (handwritten_TESTS): Add check12.test, dist-missing-included-m4.test, dist-missing-am.test, and dist-missing-m4.test.
Stefano Lattarini 27f1a1c9 2012-01-16T10:05:59 maintcheck: consistency of list of test scripts This is basically a backport of commit 'v1.11-358-g7b6ab07' and its follow-ups. The possibility of easily checking that the list of test scripts listed in a Makefile equals that of the tests on the filesystem has proved itself so useful that it's worth taking the annoyance of backporting it to maint. * CheckListOfTests.am: New file, backported from master (commit 'v1.11-1736-g083a75b') with minor adjustments. (maintainer-check-list-of-tests): New target, check for consistency between the list of tests defined in the including Makefile and the list of tests on the filesystem. (clean-maintcheck-testslist-tmp): New rule, to clean up temporary files that might be left around by the rules associated with the previous target. (clean-local): Depend on it. * lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'. * tests/Makefile.am: Likewise. * Makefile.am (maintainer-check-list-of-test): New target, calling recursively into `tests/' and `lib/Automake/tests/', using ... (TEST_SUBDIRS): ... this new variable. (maintainer-check): Added dependency from the new target `maintainer-check-list-of-tests'.
Stefano Lattarini 48c9d57f 2012-01-15T23:45:31 build: explicitly declare some targets as .PHONY * Makefile.am (fetch, git-dist, git-release, maintainer-check): Declare as ".PHONY".
Stefano Lattarini 3b594a8c 2012-01-15T23:38:58 maint: remove obsolete/broken maintainer targets * Makefile.am (git-diff): Remove. First, we don't distribute diffs between an automake version and the next one anyway, so this target is pointless. Moreover, its recipe has been broken for quite a long time now, always generating an empty diff due to the spurious '$(PACKAGE)' argument that was passed to the "git diff" invocation. (path-check): Remove. The 'pathchk' program running in this check complains about any file with name longer than 14 characters, which is a ridiculously low limit for today standards. Also, we already had several test scripts (no less than 195!) that were exceeding that limit, and nobody ever complained (not even on MinGW/MSYS nor Cygwin).
Stefano Lattarini 8856653e 2012-01-15T23:08:21 build: improve silencing of automake build system In this change, we continue the silencing of the automake build system that has been started in commit v1.11-642-g17542c3, but which has been left incomplete there for an (absent-mindness) mistake. * Makefile.am (INSTALL): Silence the recipe. (automake, aclocal): Likewise, and improve them a little since we are at it. * lib/Automake/Makefile.am (Config.pm): Likewise.
Stefano Lattarini 9d9f00ed 2012-01-15T21:07:44 tests: move list of tests in its own Makefile fragment This change will make it easier to merge maint into master, which has a similar Makefile setup in the testsuite. * tests/Makefile.am (include): Inclusion of ... * tests/list-of-tests.mk: ... this new file. * tests/Makefile.am (TESTS): Move most of its content into, and redefine in function of, ... * tests/list-of-tests.mk (handwritten_TESTS): ... this new variable. * tests/gen-parallel-tests: Update.
Stefano Lattarini 17542c3c 2012-01-15T20:46:43 build: silence automake build system * configure.ac (AM_SILENT_RULES): Invoke with "yes" as a parameter, to activate silent rules by default. * NEWS: Update. * Makefile.am (sc_perl_syntax): Silence its recipe unconditionally, similarly to what is done for other syntax checks. (release-stats): Be silent by default *but not unconditionally*, thanks to the use of $(AM_V_GEN). (path-check, git-diff): Be silent by default, thanks to the use of $(AM_V_GEN). * m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Likewise. * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise. * tests/Makefile.am ($(srcdir)/parallel-tests.am): Likewise. ($(parallel_tests)): Likewise.
Stefano Lattarini 05c02989 2012-01-15T17:14:04 gnupload: moved to gnulib Since the gnupload script is not required by automake-generated code (be it configure or Makefile content), and is not specifically tied to automake in any way, it is better to have its master copy installed in the gnulib repository, as is already done for similar generally-useful, maintainer-oriented scripts. We can them sync it from there. See also gnulib commit v0.0-6822-gf8b7120, and: <http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00222.html> * Makefile.am (FETCHFILES): Added 'gnupload'. (fetch): Also sync 'gnupload' from the gnulib repository. * lib/gnupload: Synced from gnulib. * NEWS: Update.
Stefano Lattarini def0340b 2012-01-15T17:10:21 sync: gitlog-to-changelog from gnulib upstream * lib/gitlog-to-changelog: Synced from upstream, by "make fetch".
Stefano Lattarini 59367c05 2012-01-14T10:32:13 test defs: backport optimized 'using_gmake' implementation * tests/defs.in (using_gmake): Backport optimized, result-caching implementation from master.
Stefano Lattarini 0188e0f5 2012-01-13T21:56:54 tests: unify some tests on "make -n", reducing duplication * tests/maken2.test: Merge into ... * tests/maken.test: ... this test, to avoid unnecessary code duplication. Make checks depending on GNU make conditional to the actual presence of GNU make. * tests/maken4.test: Similarly, merge into ... * tests/maken3.test: ... this test. * tests/Makefile.am (TESTS): Remove maken2.test and maken4.test.
Stefano Lattarini 4013982e 2012-01-14T09:57:55 vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)" * automake.in (lang_vala_finish_target): In the generated rules, use '$(am__cd)', not bare 'cd', to chdir into $(scdir). Issue revealed by the maintainer check 'sc_cd_relative_dir'.
Stefano Lattarini 539cae3b 2012-01-13T12:42:36 Merge branch 'fix-pr10470' into maint * fix-pr10470: dist: avoid $(distdir) removal failure on MSYS/MinGW coverage: expose automake bug#10470 (distcheck-related)
Stefano Lattarini dfb5e52f 2012-01-11T18:09:07 dist: avoid $(distdir) removal failure on MSYS/MinGW This change fixes automake bug#10470. On MSYS (1.0.17) it is not possible to remove a directory that is in use, and this, together with timing issues, could cause spurious failures in the cleanup code of the "distcheck" recipe. In fact, it should be noted that assuming a directory can be removed while it the CWD of a running process is a POSIX violation: "If the directory is the root directory or the current working directory of any process, it is unspecified whether the function succeeds, or whether it shall fail and set errno to [EBUSY]." * lib/am/distdir.am (am__remove_distdir): If rm fails, sleep some seconds and retry, to give potential "pending" processes some time to exit and "release" the directory. * tests/Makefile.am (XFAIL_TESTS): Remove 'distcheck-pr10470.test'. Report and suggestions by Peter Rosin and Eric Blake.
Stefano Lattarini f1df5481 2012-01-01T19:06:00 tests: fix spurious failure of 'get-sysconf.test' * tests/get-sysconf.test: Do not assume that a ChangeLog file exists in $(srcdir): now that the ChangeLog is autogenerated and not under version control anymore, this is not necessary true. Instead, if we are running from a git checkout, use "git log" to get information on the version of the automake snapshot being tested (and fall back on extracting the first ChangeLog entry otherwise). Reported by Jim Meyering in automake bug#10418. Cherry picked from commit v1.11-1675-g104f302.
Stefano Lattarini 657eed2e 2012-01-12T10:06:14 coverage: expose automake bug#10470 (distcheck-related) * tests/distcheck-pr10470.test: New test. * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it. Report and suggestions by Peter Rosin and Eric Blake.
Stefano Lattarini e064ff79 2012-01-12T09:41:06 tests: make 'aclocal-install-absdir.test' executable * tests/aclocal-install-absdir.test: Make it executable.
Stefano Lattarini 6bb56e40 2012-01-12T09:36:05 tests: add missing dependency for some 'ar-lib*.test' tests This change fixes spurious failures of the tests ar-lib4.test, ar-lib6a.test and ar-lib6b.test. * tests/Makefile.am (ar-lib4.log): Depend explicitly on the `libtool-macros.log' file. (ar-lib6a.log, ar-lib6b.log): Likewise.
Stefano Lattarini d850165e 2012-01-08T12:49:57 tests: require GNU make in 'vala-vapth.test' * vala-vpath.test ($required): Add the "GNUmake" requirement, since rules generated by vala support are expected to work with GNU make only.
Ryan Lortie 72f7e5de 2012-01-07T01:08:11 vala: fix VPATH builds This change fixes automake bug#9859. * automake.in (lang_vala_finish_target): Create the stamp file '${derived}_vala.stamp' in $(srcdir), not in $(builddir). Also, don't try to chdir to the $(srcdir) to trigger the rebuild rules, since that is just wrong in a VPATH setup. * tests/vala-vpath.test, tests/vala2.test: Extend to catch more possible VPATH issues. * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-vpath.test'. * NEWS, THANKS: Update. Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com> Copyright-paperwork-exempt: yes
Ryan Lortie c7ee8c6d 2012-01-07T01:06:37 tests: fix some bugs in the vala-vpath test * tests/vala-vpath.test: There are (trivial) problems in this testcase that would cause the build to fail even if the core issue were resolved. Fix those. Copyright-paperwork-exempt: yes
Stefano Lattarini 01c3294b 2012-01-03T16:12:46 dist: do not wrap calls to 'tar' with the 'missing' script The `missing' script is meant to allow non-developers to build a package in the face of slightly-skewed timestamps (as might happen e.g. when the package is obtained from a VCS checkout rather than from a distribution tarball). It is *not* the business of the `missing' script to try to provide wrappers for all the maintainer tools (in this case, to tool being a decent tar program). Such wrapping of `tar' was not only inappropriate, but it was also preventing the legitimate overriding (at make runtime) of the `tar' program used in the creation of the distribution tarballs. See also automake bug#9822. * lib/missing: Don't try to specially wrap `tar' invocations anymore. * m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR' variable, do not wrap the `tar' invocation with the `missing' script anymore. Instead, allow the user to override the intended tar program at make runtime, by defining the `TAR' environment variable. [$1 == v7]: Similarly for the definitions of the `am__tar' and `am__untar' variables. Since we are at it, don't make them depend anymore on the definition of the obsolescent `AMTAR' variable. * NEWS: Update. * tests/missing-tar.test: Remove, it's obsolete. * tests/tar-override.test: New test. * tests/Makefile.am (TESTS): Update. Reported by Akim Demaille.
Stefano Lattarini 741a0a1e 2012-01-06T14:51:55 fixup: previous commit v1.11-627-g1e0aedc * tests/acloca18.test: Do not remove an aclocal.m4 file that is needed by a later autoconf invocation.
Stefano Lattarini 92f688d8 2012-01-06T13:15:17 tests: fix spurious failures due to autom4te caching * tests/aclocal9.test: Call aclocal and autoconf with the `--force' option. * tests/acloca10.test: Sleep between re-runs of aclocal and autoconf. * tests/acloca18.test: Explicitly remove also the configure script and the aclocal.m4 before re-invoking aclocal and autoconf.
Stefano Lattarini e3b0e124 2012-01-05T15:13:30 parallel-tests: avoid issue with overly long lines in sed input See automake bug#10437: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10437> and coreutils bug#10427: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10427#8> * lib/am/check.am (recheck, recheck-html): In order to strip trailing whitespace from the definition of the `$list' variable, we used to invoke sed in a way that could cause it to get passed overly long input lines, causing spurious failures. So rework the logic of the recipe to avoid any sed invocation, relying on simpler shell idioms instead. (check-TESTS): Reorganize the recipe to be more similar to the one of `recheck', for consistency and simplicity. * NEWS: Update. Report and analysis by Paul Eggert.
Stefano Lattarini a6ccc2ae 2012-01-04T10:21:57 sync: auxiliary files from upstream synced * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/gitlog-to-changelog: Likewise. * lib/config.guess: Likewise. * lib/config.sub: Likewise.
Stefano Lattarini b40372f9 2012-01-04T10:18:15 sync: fix syncing of 'gitlog-to-changelog' script * Makefile.am (FETCHFILES): Also list 'gitlog-to-changelog'.
Stefano Lattarini e23a89ed 2012-01-04T10:09:25 maintcheck: avoid false positive in sc_tests_plain_make * Makefile.am (sc_tests_plain_make): Ensure to only match full `make' words. Avoid false positive in `silent-nested-vars.test'.
Stefano Lattarini 4e4dae50 2012-01-03T09:06:09 install: pkglibexec_SCRIPTS is a valid prefix/primary combination It makes little sense for `libexec_SCRIPTS' to be accepted as valid while `pkglibexec_SCRIPTS' is not. So fix this inconsistency by explicitly allowing `pkglibexec_SCRIPTS' as well. It is worth noting that the inconsistency has been there for a long time, but only the quite recent commit `v1.11-373-g9ca6326' "Warnings about primary/prefix mismatch fixed and extended" has made it noisy enough to be noticed. * automake.in (handle_scripts): Also list `pkglibexec' among the prefixes valid for the `SCRIPTS' primary. * doc/automake.texi (Scripts): Likewise. * tests/primary-prefix-valid-couples.test: Update. * THANKS: Likewise. * NEWS: Likewise. Reported by Dennis Schridde on the automake list: <http://lists.gnu.org/archive/html/automake/2012-01/msg00002.html>
Stefano Lattarini 971000c1 2012-01-02T20:32:54 coverage: expose automake bug#10128 * tests/objext-pr10128.test: New test, still expected to fail. * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.
Stefano Lattarini f4e221b6 2012-01-02T09:40:13 progs, libs: implement EXTRA_foo_DEPENDENCIES Backported from commit `v1.11-377-g6edafbb'. The feature implemented by that change is quite unobtrusive, so adding it to a maintenance release is acceptable. Also, there have been requests from real-world users for this feature since it has been implemented in master; see automake bug#9320: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9320> and this short discussion on the automake list: <http://lists.gnu.org/archive/html/automake/2010-11/msg00099.html> It would be a pity to make such users wait even more (until Automake 1.12 is out) before they could start using this feature. Thus we backport it, so that it will appear in the next maintenance version of automake (1.11.3). * automake.in (handle_programs, handle_libraries) (handle_ltlibraries): Mark EXTRA_*_DEPENDENCIES as recognized. * doc/automake.texi (Linking, Program and Library Variables) (LIBOBJS): Document EXTRA_*_DEPENDENCIES. * lib/am/library.am (%LIBRARY%): Also depend on $(EXTRA_%XLIBRARY%_DEPENDENCIES). * lib/am/ltlibrary.am (%LTLIBRARY%): Also depend on (%XLTLIBRARY%_DEPENDENCIES). * lib/am/program.am (%PROGRAM%%EXEEXT%): Also depend on $(EXTRA_%XPROGRAM%_DEPENDENCIES). * tests/extradep.test, tests/extradep2.test: New tests. * tests/Makefile.am (TESTS): Update. * NEWS: Update.
Stefano Lattarini 4337813b 2012-01-03T13:56:17 tests: fix spurious failures in 'pr300*.test' This change fixes automake bug#10426. * tests/pr300-lib.test: Call configure with an explicit '--libdir' option, to avoid spurious failures due to users possibly overriding '${libdir}' in ther config.site files. * tests/pr300-ltlib.test: Likewise. Reported by Bruno Haible.
Stefano Lattarini 7db422b2 2012-01-01T19:35:44 tests: fix spurious failure due to autom4te caching * tests/ar-lib3.test: Remove stale autom4te.cache directory, to prevent racy, spurious failures. Reported by Jim Meyering in automake bug#10418.
Stefano Lattarini 01fef4ae 2012-01-01T19:20:04 Merge branch 'maint' into msvc * maint: tests: make 'lzip.test' executable dist: obsolete support for lzma (superseded by xz and lzip) test defs: more granular overriding of the make program docs: fix a couple broken anchors dist: add support for lzip compression docs: fix paragraph names for automake and aclocal invocations tests: fix spurious failure due to autom4te caching fix: last entry in ChangeLog tests: tweak tests on silent-rules for makes without nested vars silent-rules: fallback for makes without nested vars
Stefano Lattarini 28040759 2012-01-01T10:42:34 tests: make 'lzip.test' executable * tests/lzip.test: Make it executable.
Stefano Lattarini 2a461709 2012-01-01T10:39:10 Merge branch 'deprecate-lzma' into maint * deprecate-lzma: dist: obsolete support for lzma (superseded by xz and lzip)
Stefano Lattarini e637fa2a 2011-12-30T15:54:40 dist: obsolete support for lzma (superseded by xz and lzip) The lzma utilities are today superseded by the xz utilities; in fact, the official site at <http://tukaani.org/lzma/> reads: ``LZMA Utils are legacy data compression software with high compression ratio. LZMA Utils are no longer developed, ... Users of LZMA Utils should move to XZ Utils.'' and the existing automake manual (as of 1.11.2) already says: ``dist-xz Generate an 'xz' tar archive of the distribution. xz archives are frequently smaller than bzip2-compressed archives. The 'xz' format will soon (early 2009) displace the 'lzma' format'' Also, the `dist-lzma' target still suffers of never-solved bugs, due to the too-high compression ratio its uses by default, which might cause an unacceptable memory consumption when one tries to compress or, worse, decompress the created tarballs; see also: <http://lists.gnu.org/archive/html/automake/2011-12/msg00025.html> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9658> * NEWS: Update. * doc/automake.texi (Dist, Options): State that `dist-lzma' will go away in the next major automake version. * lib/Automake/Options.pm (_process_option_list): Deprecate `dist-lzma'. * tests/lzma.test: Update.