doc/automake.texi


Log

Author Commit Date CI Message
Stefano Lattarini b7bdb2c3 2013-10-30T01:04:24 Merge branch 'minor' * minor: tests: fix spurious failure when zip is present but unzip is not tests: fix spurious failure due to localization issues NEWS: update with the changes since v1.14 docs: correct typos in the fix-timestamp.sh script python: byte-compile nobase_*_PYTHON files only once cosmetics: typofix in the 'missing' script test: avoid false positives in 'cc-no-c-o' script test harness: improve catching of usage errors in script 'test-driver' tests: fix a spurious failure on NetBSD-current am-ft: make the environment available earlier NEWS: post-release tweaks (for 1.14.x series) tests: avoid a spurious failure on MacOS X 10.6.8 tests: don't risk hanging on the 'cl' requirement
Peter Breitenlohner 7a8b3b0c 2013-09-10T12:03:30 docs: correct typos in the fix-timestamp.sh script * doc/automake.texi: Here. The original version of this example script makes no sense at all, using 'configure' instead of the intended 'touch' in few key places. Copyright-paperwork-exempt: yes Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini fefd26d9 2013-05-28T21:05:30 Merge branch 'maint' * maint: NEWS: report recent documentation fix about AM_PROG_MKDIR_P NEWS: Automake 2.0 will assume "rm -f" without args work NEWS: on assuming "rm -f" without arguments work NEWS: fix a couple of typos in older entries docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake docs: AM_PROG_CC_C_O: correct imprecise statements about it maint: sanity checks in 'check-minimal-autoconf' convenience target maint: test minimal supported autoconf through convenience target maint: install minimal supported autoconf through convenience targets test-lib: typofix in comments Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 94d57f3d 2013-05-28T17:53:03 Merge branch 'micro' into maint * micro: docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake maint: sanity checks in 'check-minimal-autoconf' convenience target maint: test minimal supported autoconf through convenience target maint: install minimal supported autoconf through convenience targets test-lib: typofix in comments
Stefano Lattarini e833dfe6 2013-05-28T17:52:15 docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake See the 'PLANS/obsolete-removed/am-prog-mkdir-p.txt' file in the 'maint' branch (as of commit v1.13.2-201-gd99e3f3) for details. * doc/automake.texi: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d99e3f32 2013-05-28T17:45:25 docs: AM_PROG_CC_C_O: correct imprecise statements about it * doc/automake.texi: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 020fb48d 2012-06-06T10:27:46 subdir-objects: enable unconditionally See automake bug#13378. The fact that Automake-generated Makefiles places compiled object files in the current directory by default, also when the corresponding source file is in a subdirectory, is basically an historical accident, due to the fact that the 'subdir-objects' option had only been introduced in April 1999, starting with commit 'user-dep-gen-branchpoint-56-g88b5959', and never made the default, likely to avoid backwards-compatibility issues. Since we believe the behaviour enabled by the 'subdir-objects' is the only natural and most useful one, we make it the only only one available, simplifying the Automake implementation and APIs a little in the process. This change is basically an adjusted backport of Automake-NG commit 'v1.12.1-313-g14fe163' of 2012-06-07, "[ng] subdir-objects: enable unconditionally". * NEWS: Update. * doc/automake.texi (Program and Library Variables): The output object files are no longer placed in the current directory by default, but rather in the same directory of the source file. (LIBOBJS): Now the $(LIBOBJS) and $(ALLOCA) variables can also be used outside of the directory where their sources lie. (List of Automake options): Report the 'subdir-objects' option as a no-op, existing only for compatibility with older versions of Automake. Other related minor adjustments. * bin/automake.in (LANG_PROCESS): Remove, it's no longer needed. (handle_languages): Don't test whether option 'subdir-objects' is set (just assume it is), and do not use the '%SUBDIROBJ%' transform when processing '.am' fragments. (lang_sub_obj): Delete, it would just return 'LANG_SUBDIR' unconditionally now. (lang_lex_rewrite): Adjust. Don't test whether the option 'subdir-objects' is set (just assume it is). (lang_yacc_rewrite): Likewise. (handle_single_transform): Likewise. Remove an obsolete comment. Add a proper "FIXME" comments about a fragment of code that might have become dead code now. (handle_LIBOBJS_or_ALLOCA): Simplify assuming that the option 'subdir-objects' is always set. Accordingly, there's no need to warn anymore if '$(LIBOBJS)' or '$(ALLOCA)' are used outside the '$config_libobj_dir' directory (as specified by autoconf macro 'AC_CONFIG_LIBOBJ_DIR'). * lib/am/depend2.am: Assume the '?SUBDIROBJ?' Automake time conditional is always true, and remove its uses accordingly. * t/compile_f_c_cxx.sh: Adjust. * t/cscope.tap: Likewise. * t/depcomp8a.sh: Likewise. * t/depcomp8b.sh: Likewise. * t/libtool3.sh: Likewise. * t/ltlibsrc.sh: Likewise. * t/pr401.sh: Likewise. * t/pr401b.sh: Likewise. * t/pr401c.sh: Likewise. * t/subobj.sh: Likewise. * t/lex-line.sh: Likewise. * t/yacc-line.sh: Likewise. * t/yacc5.sh: Likewise. * t/vala-libs.sh: Likewise. * t/fort4.sh: Likewise, and extend a bit. * t/fort5.sh: Likewise. * t/gcj.sh: Likewise. * t/subpkg.sh: Likewise. * t/subpkg-yacc.sh: Likewise. * t/xsource.sh: Likewise. * t/libobj20a.sh: Remove as obsolete. * t/libobj20b.sh: Adjust heading comments. * t/libobj20c.sh: Likewise. * t/subobj4.sh: Remove as obsolete. * t/sourcefile-in-subdir.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1ffdec45 2013-05-10T21:56:12 dist: remove support for shar and tarZ formats See also discussion about automake wishlist bug#13324. * lib/Automake/Options.pm: Give fatal errors (rather than warnings) if the 'dist-shar' or 'dist-tarZ' options are used. * lib/distdir.am: Remove the 'dist-tarZ' and 'dist-shar' targets, and references to the '.tar.Z' and '.shar' archives. * bin/automake.in (preprocess_file): Remove 'COMPRESS' and 'SHAR' transforms. (handle_dist): Remove lingering references to 'dist-tarZ' and 'dist-shar' options. * doc/automake.texi: Adjust, removing references to the removed targets and distribution formats. * t/dist-shar.sh: Adjust to expect fatal errors rather than warnings. * t/dist-tarZ.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0cf58ea7 2013-05-10T21:18:40 Merge branch 'maint' * maint: news: document new 'subdir-objects' warning PLANS: one minor fixlet (mostly cosmetic) PLANS: we have already dropped support for split info files in master NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended PLANS: fix reference to non-existent 'next' branch PLANS: fix botched version reference maintcheck: fix two references to old location of aclocal and automake dist: deprecated shar and tar+compress formats
Stefano Lattarini 780299d9 2013-05-10T19:22:06 dist: deprecated shar and tar+compress formats See also discussion about automake wishlist bug#13324. * lib/Automake/Options.pm: Give proper warnings in the 'obsolete' category if the 'dist-shar' or 'dist-tarZ' options are used. * lib/distdir.am: When the 'dist-tarZ' or 'dist-shar' targets are invoked, make them give a non-fatal warning. * doc/automake.texi: Report the new deprecations. * t/dist-shar.sh: New test. * t/dist-tarZ.sh: Likewise. * t/lzma.sh: While at it, rename ... * t/dist-lzma.sh: ... like this, and tweak it to keep more in sync with the new tests. * t/dist-formats.tap: Remove references to deprecated formats. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0dd95c8d 2013-05-10T13:33:52 Merge branch 'maint' * maint: automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/ am: prefer a shorter idiom where possible cosmetics: fix few typos, grammaros and missing whitespace fixup: remove an obsolete comment docs: we still don't have the promised better Java interface build: move automake and aclocal in 'bin' subdir build: break up monolithic Makefile.am in subdir-specific fragments + Extra non-trivial edits: * m4/Makefile.inc (dist_automake_ac_DATA): Drop lead-dot.m4 and mkdirp.m4. * lib/Automake/Makefile.inc (dist_perllib_DATA): Drop Configure_ac.pm. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5a37b0e7 2013-05-10T10:53:15 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: cosmetics: fix few typos, grammaros and missing whitespace fixup: remove an obsolete comment docs: we still don't have the promised better Java interface
Stefano Lattarini 4ccf9a80 2013-05-09T20:23:40 docs: we still don't have the promised better Java interface Reported by Michael Zucchi: <http://lists.gnu.org/archive/html/automake/2013-05/threads.html> See also automake bug#9088. * doc/automake.texi (Java): Adjust and clarify. * THANKS: Update. Reported-by: Michael Zucchi <notzed@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini df3490b7 2013-05-06T11:21:57 docs: fix warnings given by Texinfo 5.x These warnings: doc/automake.texi:3885: warning: node next `Public Macros' in menu \ `Private Macros' and in sectioning `Obsolete Macros' differ doc/automake.texi:4050: warning: node `Private Macros' is next for \ `Obsolete Macros' in sectioning but not in menu doc/automake.texi:4050: warning: node prev `Obsolete Macros' in menu \ `Private Macros' and in sectioning `Public Macros' differ doc/automake.texi:4090: warning: node `Obsolete Macros' is next for \ `Private Macros' in menu but not in sectioning doc/automake.texi:4090: warning: node prev `Private Macros' in menu \ `Public Macros' and in sectioning `Obsolete Macros' differ * doc/automake.texi: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini dc4eaab2 2013-04-30T16:24:41 Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" maintcheck: remove outdated whitelisting tar: format 'ustar' cannot support UID/GID longer than 21 bits docs: issues with configure substitutions in TESTS tests: avoid possible autotools caching issues (automake bug#13832) tests: rename some with more descriptive names docs: add myself and Ralf Wildenhues as authors authors: add myself dry-run: don't get confused by '-I' option tests: avoid a spurious failure with the Korn Shell dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) header vars: can determine whether we are running under GNU make NEWS: improve wording for automake bug#13514 fix NEWS: document fix for automake bug#13514
Stefano Lattarini f0d1288f 2013-04-26T20:39:40 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: docs: issues with configure substitutions in TESTS tests: avoid possible autotools caching issues (automake bug#13832) docs: add myself and Ralf Wildenhues as authors authors: add myself dry-run: don't get confused by '-I' option tests: avoid a spurious failure with the Korn Shell dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) header vars: can determine whether we are running under GNU make NEWS: improve wording for automake bug#13514 fix NEWS: document fix for automake bug#13514
Stefano Lattarini 526df875 2013-04-25T21:03:40 docs: issues with configure substitutions in TESTS Motivated by automake bug#14019. * doc/automake.texi: Currently, when the parallel test harness is in use, configure substitutions in TESTS definitions can only work if they expand to tests that ends with a suffix listed in TEST_EXTENSIONS. Document this limitation. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini fa55c5d8 2013-04-25T21:34:17 docs: add myself and Ralf Wildenhues as authors * doc/automake.texi: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 57c72009 2013-04-19T18:40:49 compat: reinstate support for obsolete $(INCLUDES) variable Since INCLUDES and AM_CPPFLAGS can be both used at the same time in a single project, and interact in a non-obvious way, switching away from INCLUDES is, unfortunately, not simply a matter of doing a mindless INCLUDES -> AM_CPPFLAGS substitution. In fact, the transition from a "INCLUDES + CPPFLAGS" setup to a "AM_CPPFLAGS only" setup could cause subtle bugs to sneak into the build systems of the client packages doing the transition. Forcing this risk upon our users is definitely not worth the small enhancement in consistency and cleanliness that the removal of INCLUDES would give us. For a more extended rationale and related discussions, see: <http://lists.gnu.org/archive/html/automake/2013-02/msg00001.html> This change basically reverts commit v1.13-8-g880595d. * automake.in: Re-introduce support for INCLUDES (its use will cause warnings in the 'obsolete' category rather than fatal errors). * doc/automake.texi: Adjust to re-add mention of INCLUDES. * t/includes-no-more.sh: Rename ... * t/includes-deprecation.sh: ... like this, and adjust. * t/list-of-tests.mk: Update. * t/warnopts.sh: Minor fixlet while at it. Suggested-by: Peter Rosin <peda@lysator.liu.se> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 547c776a 2013-03-05T16:32:55 Merge branch 'maint' * maint: preproc: enhance and extend tests preproc: add support for relative names in included fragments
Peter Rosin ba25a9f1 2013-02-08T09:11:45 preproc: add support for relative names in included fragments The rationale for this change is that it is annoying to have to repeat the directory name when including a Makefile fragment. For deep directory structures these repeats can generate a lot of bloat. It also hinders reuse and easy directory restructuring if all Makefile fragments have to know exactly where they live. Suggested by Bob Friesenhahn, and later discussed in bug#13524. In the course of discussion, the following notations were rejected: &{reldir}& - to hard to type, {reldir} - interferes with ${reldir}, {am_reldir} - short form {D} interferes with ${D}, @am_reldir@ - short form @D@ interferes with AC_SUBST([D]) as well as invading the config.status turf. Other notations were also suggested... * automake.in (read_am_file): Add third argument specifying the relative directory of this Makefile fragment compared to the main Makefile. Replace %reldir% and %canon_reldir% in the fragment with this relative directory (with slashes etc, or canonicalized). (read_main_am_file): Adjust. * t/preproc-reldir.sh: New test. * t/list-of-tests.mk: Augment. * doc/automake.texi (Include): Document the new feature. NEWS: Add new feature. Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Peter Rosin <peda@lysator.liu.se> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 664a0456 2013-01-22T13:49:02 Merge branch 'maint' * maint: docs: '.txi' and '.texinfo' extensions are deprecated NEWS: document recent documentation improvements docs: more precise cross reference docs: 'dist-shar' and 'dist-tarZ' are obsolescent today docs: improve documentation of 'dist-*' targets slightly docs: make even clearer 'dist-gzip' is the default. docs: document 'dist-xz' together with the other 'dist-*' options docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets warn: correct broken hyperlink in warning message
Stefano Lattarini c3db2386 2013-01-22T13:37:41 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: docs: '.txi' and '.texinfo' extensions are deprecated NEWS: document recent documentation improvements docs: more precise cross reference docs: 'dist-shar' and 'dist-tarZ' are obsolescent today docs: improve documentation of 'dist-*' targets slightly docs: make even clearer 'dist-gzip' is the default. docs: document 'dist-xz' together with the other 'dist-*' options docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets warn: correct broken hyperlink in warning message Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini fd273c14 2013-01-22T13:28:38 docs: '.txi' and '.texinfo' extensions are deprecated And Automake will warn about them (since commit 'v1.13.1-6-ge1ed314'). * doc/automake.texi (Texinfo): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 13f1d58a 2013-01-22T13:02:25 docs: more precise cross reference See automake bug#13520. * doc/automake.texi (The Types of Distributions): Here, cross-reference "List of Automake options" rather then the more generic node "Options". Improve wording while at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a8f36147 2013-01-22T12:30:15 docs: 'dist-shar' and 'dist-tarZ' are obsolescent today Both the options and the formats; and they might be deprecated and removed in future automake versions (see discussion on automake bug#13324). In any case, it's better if the documentation starts advising against their use right now. * doc/automake.texi (The Types of Distributions): Here. (List of Automake options): And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e5932416 2013-01-22T12:14:20 docs: improve documentation of 'dist-*' targets slightly * doc/automake.texi (The Types of Distributions): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 6b8f2008 2013-01-22T12:08:43 docs: make even clearer 'dist-gzip' is the default. See automake bug#13520. * doc/automake.texi (The Types of Distributions): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7d0372ac 2013-01-22T12:03:35 docs: document 'dist-xz' together with the other 'dist-*' options See automake bug#13520. * doc/automake.texi (List of Automake options): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ae340386 2013-01-22T10:56:57 docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets See automake bug#13519. * doc/automake.texi: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2c72b157 2013-01-21T15:48:48 Merge branch 'maint' * maint: tests: more information about Lex and Yacc programs lint: fix spurious failure for 'sc_rm_minus_f' syntax check maint: bump version 1.13.1a -> 1.13.2a maint: update copyright in files generated by automake and aclocal tests: avoid a spurious failure when running inside Emacs tests: make two new test executable m4: rename an m4 file to a more appropriate name NEWS: update w.r.t. recent documentation fixes compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC docs: parallel-tests is no longer experimental docs: serial-tests are not deprecated, just discouraged plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 init.m4: add probe to check "rm -f" without args work Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 63fe125a 2013-01-21T14:52:37 Merge branch 'branch-1.13.2' into maint That branch is for the "emergency" bug-fixing release 1.13.2. * branch-1.13.2: maint: update copyright in files generated by automake and aclocal tests: avoid a spurious failure when running inside Emacs tests: make two new test executable m4: rename an m4 file to a more appropriate name NEWS: update w.r.t. recent documentation fixes compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC docs: parallel-tests is no longer experimental docs: serial-tests are not deprecated, just discouraged NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 81527ed5 2013-01-18T12:02:23 docs: parallel-tests is no longer experimental So don't declare it as such in the documentation. Reported by Brandon Black: <http://lists.gnu.org/archive/html/automake/2013-01/msg00052.html> * doc/automake.texi: Adjust. * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a7b2069b 2013-01-18T11:39:28 docs: serial-tests are not deprecated, just discouraged We don't plan to remove support for them, nor to have the serial-tests option give any kind of runtime warning, so don't alarm the users still using serial tests with pointless "deprecation" or "obsolescence" warnings. Fixes automake bug#13478. See also: <http://lists.gnu.org/archive/html/automake/2013-01/msg00058.html> * doc/automake.texi: Adjust. * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 030ecb45 2013-01-14T20:43:24 compat: restore AM_PROG_MKDIR, again OK, this is getting ridiculous, but we cannot remove this macro yet (and, yes, the fault for this mess lies entirely on me; let's not dwell on that, thank you very much). Gettext (so far the greatest "offender" in the use of AM_PROG_MKDIR), in its latest release 0.18.2, has removed all the uses of that macro still present in its code base. So I thought we could finally and safely remove it. Wrong. If a package's 'configure.ac' contains a call like: AM_GNU_GETTEXT_VERSION([0.18]) then the 'autopoint' script will bring the data files from the Gettext release *1.18* into the package's tree -- yes, even even if the developer has installed *and is using* Gettext 1.18.2! Now, these data files comprise m4 files (that will be seen by subsequent aclocal and autoconf calls), and of course, the pre-0.18.2 version of some of these files still contains occurrences of AM_PROG_MKDIR_P -- so Automake 1.13 errors out, and we lose. This has already happened in practice: <http://lists.gnu.org/archive/html/bug-grep/2013-01/msg00003.html> Moreover, while we might see it as not unreasonable to ask a developer using Automake 1.14 to also update Gettext to 1.18.2, that would not be enough; in order for gettext to use the correct data files, our developer would have to update his configure.ac to read: AM_GNU_GETTEXT_VERSION([0.18.2]) thus requiring *all* of his co-developers to install Gettext 1.18.2, even if they are still using, say, Automake 1.13. Bad. So we re-instate this macro as a simple alias for AC_PROG_MKDIR (plus a non-fatal runtime warning in the 'obsolete' category), and drop any plan to remove it (see how much good those plans have done us so far). Note that NEWS is not yet adjusted, since we'll have to adjust it in maint before (to minimize spurious merge conflicts). * doc/automake.texi: Update. * PLANS/obsolete-removed/am-prog-mkdir-p.txt: Likewise. * t/gettext-macros.sh: Adjust. * t/am-prog-mkdir-p.sh: New test. * t/mkdir_p.sh: Remove, folded into the new one. * t/am-prog-mkdir-p-no-more: Remove as superseded. * t/list-of-tests.mk: Adjust. * t/obsolete-err.m4: Re-instate AM_PROG_MKDIR_P as a working alias for AC_PROG_MKDIR_P (albeit giving runtime warnings, and calling AC_SUBST on 'mkdir_p' too). * m4/init.m4 (AM_INIT_AUTOMAKE): No longer call AC_SUBST for 'mkdir_p', as that is once again AM_PROG_MKDIR_P's business. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2aa49391 2013-01-12T18:19:44 Merge branch 'maint' * maint: ywrap: remove an obsolete FIXME comment ywrap: style fixes (no semantic change intended) convenience: "make lint" as an alias for "make maintainer-check" docs: typofix in manual coverage: using multiple lexers in a single program Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 610d2e5c 2013-01-12T17:38:32 docs: typofix in manual * doc/automake.texi (Yacc and Lex): Here, don't write "automake -i" where "automake -a" is actually intended. Re-wrap some text while at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 9cb18f18 2013-01-11T21:53:19 Merge branch 'maint' * maint: compile: use 'compile' script when "-c -o" is used with losing compilers HACKING: suggest more checks before releasing tests: can fake a compiler not grasping "-c -o" -- globally in all tests sync: update files from upstream with "make fetch" typofix: in comments in GNUmakefile Rename 'maint/' -> 'maintainer/', for Git's sake HACKING: minor typofix HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes HACKING: rewindable branches should live in the 'experimental/*' namespace HACKING: fixlets about git branch rewinding policy HACKING: commit messages are not to follow GCS ChangeLog rules too strongly HACKING: "detailed explanation" in commit messages is almost mandatory HACKING: we use "merge --log" even when merging master HACKING: typofix depend2.am: fix comments on verbosity of compilation rules depend2.am: improve comments a little plans: automake 1.14 is to assume "rm -f" with no args is OK plans: we want to active subdir-objects unconditionally in automake 1.14 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 34001a98 2013-01-09T23:16:53 compile: use 'compile' script when "-c -o" is used with losing compilers Do so seen when only source files in the "current" directory are present. This commit is part of a series of related changes addressing automake bug#13378 (see also the plan 'PLANS/subdir-objects.txt'). Before this change, Automake-generated C compilation rules mistakenly passed the "-c -o" options combination unconditionally (even to losing compiler) when the 'subdir-objects' was used but sources were only present in the top-level directory. Issue spotted by Nick Bowler: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44> We fix this by having Automake redefine AC_PROG_CC to take over the role of AM_PROG_CC_C_O and to require the 'compile' script unconditionally (albeit that will continue to be invoked only when inferior compilers are detected). Among other things, this means AM_PROG_CC_C_O explicitly is no longer required; that macro is still supported for backward-compatibility, but calling it is basically a no-op now. This change has some pros and some cons (obviously, we believe the former outweighs the latter). Here are the most relevant ones: + Pros 1: Some logic in the Automake script has been simplified. + Pros 2: That simplification has automatically fixed an actual bug (see Nick's mails referenced above; admittedly, that was present only in corner-case situations, but still); the test 't/ccnoco4.sh', which demonstrated the bug and has been failing so far, now passes. + Pros 3: Things works more "automagically" now (no need to manually add the AM_PROG_CC_C_O macro to configure.ac anymore). * Cons 1: The 'compile' script will be required in all projects using C compilation; this will only be a problem for packages not using '--add-missing'. However, such packages are definitely more rare than the ones using '--add-missing', and adjusting them will be trivial -- just copy the compile script over from the new Automake installation. * Cons 2: The copy & paste of autoconf internals hack this change has introduced in our "rewrite" of AC_PROG_CC is really an egregious abomination. It can only be justified with the fact that we expect future versions of autoconf to implement the semantics we need directly in AC_PROG_CC, so that we'll be able to leverage that (since Automake 1.14 will require the latest Autoconf version released). Now, the detailed list of file-by-file changes ... * automake.in ($seen_cc_c_o): Remove this global variable. (scan_autoconf_traces): Don't set it, and do not trace the 'AM_PROG_CC_C_O' m4 macro. (lang_c_rewrite): Remove, no longer needed. * doc/automake.texi: Adjust expected "autoreconf --install" output in the amhello example. Remove statements about the need for the AM_PROG_CC_C_O macro. Report it is obsolete now. * m4/init.m4: Re-write AC_PROG_CC to append checks about whether the C compiler supports "-c -o" together. These checks have basically been ripped out (with adaptations) from the 'AC_PROG_CC_C_O' macro of Autoconf and ... * m4/minuso.m4 (AM_PROG_CC_C_O): ... this macro of ours, which has thus basically become a no-op. * t/ax/am-test-lib.sh (am_setup_testdir): Also copy the 'compile' script in the test directory; if we don't do so, every test using AC_PROG_CC should call automake with the "--add-missing" option, or copy the 'compile' script itself. * t/cond11.sh: No need to create a dummy 'compile' script: that is already brought in by 'am_setup_testdir()', that is automatically invoked when 'test-lib.sh' is sourced. * t/add-missing.tap: Adjust: we expect the 'compile' script to be required by a mere AC_PROG_CC call now. * t/dist-auxdir-many-subdirs.sh: Likewise. * t/specflg6.sh: Likewise. * t/subobj4.sh: Likewise. * t/cxx-lt-demo.sh: Likewise, and update comments to match. * t/distcom2.sh: Enhance a little. * t/dollarvar2.sh: Adjust. * t/extra-portability.sh: Likewise. * t/libobj19.sh: Likewise. * t/per-target-flags.sh: Likewise. * t/repeated-options.sh: Likewise. * t/subobj.sh: Likewise, and enhance a little. * t/ccnoco2.sh: Remove as obsolete. * t/list-of-tests.mk (handwritten_TESTS): Adjust. (XFAIL_TESTS): Remove 't/ccnoco4.sh'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini bfd7cc5a 2013-01-09T12:04:52 Merge branch 'maint' * maint: tests: adjust stale references to old test names tests: rename the last aclocal test with dumb name tests: fix an old botched change to an aclocal test tests: fix some botched inter-test references in heading comments coverage: compile rules used "-c -o" also with losing compilers texi: remove extra verbosity in creation of dirstamp directory coverage: user can avoid distributing '.info' pages plans: add some on-going plans (already registered on the bug tracker) docs: mention dist-hook help for EXTRA_DIST texi: remove workaround for older Texinfo (4.1) NEWS: improve wordings in entry deprecating suffix-less info files plans: add the "PLANS" directory
Karl Berry 5df23a7a 2013-01-03T16:09:23 docs: mention dist-hook help for EXTRA_DIST * automake.texi (Basics of Distribution): mention dist-hook as working around the problems of whole directories in EXTRA_DIST. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e4fc1dad 2013-01-03T14:42:55 Merge branch 'maint' * maint: build: don't enable 'color-tests' automake option explicitly build: enable all warnings as fatal in our own build system texi: Texinfo sources and CLEANFILES definition should co-exist peacefully tests: make two new test executable runtest: better command line API tests: move runtest.in away from the top-lever directory maint: move more maintainer files in the 'maint/' subdir tests: more significant names for some tests maint: add some of my maintainer-specific scripts texi: deprecate hack about info files in CLEANFILES variables texi: info files can be generated in the builddir
Stefano Lattarini 0b1576ae 2013-01-03T13:27:26 Merge branch 'info-in-builddir' into maint * info-in-builddir: texi: deprecate hack about info files in CLEANFILES variables texi: info files can be generated in the builddir Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 97d770d6 2013-01-02T14:45:42 Merge branch 'maint' * maint: tests: reorganize tests on backslash issues style: add trailing ':' to some test cases tests: tweak tests on obsolete EXTRA_DATA variable tests: more significant names for some tests cosmetics: remove few occurrences of trailing whitespace docs: re-introduce mention of two-args AM_INIT_AUTOMAKE invocation texi: warn against '.txi' and '.texinfo' input suffixes cleanup: remove two lines of dead code in automake texi: warn against suffix-less info files build: respect silent rules in generation of "amhello" example tarball
Stefano Lattarini 10ead727 2013-01-01T23:29:02 cosmetics: remove few occurrences of trailing whitespace Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1c48cbe0 2013-01-01T23:06:36 docs: re-introduce mention of two-args AM_INIT_AUTOMAKE invocation Albeit obsolescent and raising warnings in the 'obsolete' category, that usage is still supported, and will need to be until Autoconf improves its handling of configure-time-generated package version numbers. So it's better to explicitly document it again, stating that it is obsoleted but still working (and why), rather then leaving it as Yet Another Undocumented Feature (that will mysteriously and suddenly break some random day in the future). It's worth giving some background about how we ended up in the situation that this patch fixes. We had originally removed support for the long-deprecated two-args AM_INIT_AUTOMAKE invocation (see commit v1.12-67-ge186355). Before that removal could land in a released Automake version, Bob Friesenhahn made a quite compelling point that the two-args AM_INIT_AUTOMAKE invocation could still be useful for modern, maintained packages like GraphicsMagick, at least until Autoconf is fixed to offer better support for "dynamic" package versions (see commit v1.12.2-245-g2abe183 for more in-depth rationales and references). However, in that commit we didn't revert the removal of the *documentation* for this two-arguments AM_INIT_AUTOMAKE invocation (and no rationale for not doing so was given in the commit message). Time to remedy that. Indirectly suggested by Diego Elio Pattenò: <http://blog.flameeyes.eu/2013/01/autotools-mythbuster-automake-pains> * doc/automake.texi: Adjust. * NEWS: Update. * THANKS: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 36ee783a 2012-04-03T22:02:55 texi: info files can be generated in the builddir User can now ask info files to be built in the $(builddir), rather than the $(srcdir), by specifying the Automake option 'info-in-builddir'. This feature was requested by the developers of GCC, GDB, GNU binutils and the GNU bfd library. See the extensive discussion about automake bug#11034 for more details. OK, to be honest, having '.info' files built in the builddir was *already* possible, but only using ugly and undocumented hacks involving definition of the CLEANFILES and/or DISTCLEANFILES. For example, the binutils project did something like this in the relevant 'Makefile.am': # Automake 1.9 will only build info files in the objdir if they are # mentioned in DISTCLEANFILES. It doesn't have to be unconditional, # though, so we use a bogus condition. if GENINSRC_NEVER DISTCLEANFILES = binutils.info endif See also the extensive discussion about automake bug#11034; in particular, the following messages: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#65> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#80> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#86> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#101> * lib/Automake/Options.pm (_is_valid_easy_option): Recognize the new 'info-in-builddir' option. * automake.in (handle_texinfo_helper): If that option is set, initialize '$insrc' to '0', so that info files will be generated in the builddir. Adjust comments to match. * t/txinfo-builddir.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Update. * doc/automake.texi: Document the new options. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e4a5f2bf 2013-01-01T01:33:12 Merge branch 'maint' * maint: tests: don't always look for a C++ compiler named 'RCC' tests: fix bug in pkg-config-macros.sh, could cause spurious SKIPs docs: autom4te cache can break CONFIGURE_DEPENDENCIES coverage: test CONFIGURE_DEPENDENCIES coverage: test CONFIG_STATUS_DEPENDENCIES
Stefano Lattarini a1de6563 2013-01-01T00:47:33 docs: autom4te cache can break CONFIGURE_DEPENDENCIES In fact, the new test 'remake-configure-dependencies.sh' only works because it disables the autom4te cache :-( That is more of an AUtotools design issue than an Automake bug, so better just document it ... * doc/automake.texi (Rebuilding): ... here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a2e9a713 2013-01-01T00:32:34 coverage: test CONFIGURE_DEPENDENCIES * t/remake-configure-dependencies.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi: Reference it in comments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f3e8d1cd 2012-12-31T23:29:24 coverage: test CONFIG_STATUS_DEPENDENCIES * t/remake-config-status-dependencies.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi: Reference it in comments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b98aab9f 2012-12-31T18:24:03 Merge branch 'maint' * maint: maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7df8b28c 2012-12-31T18:18:37 maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 51defae0 2012-12-31T14:38:23 Merge branch 'maint' * maint: docs: adjust comment w.r.t. recent tests renaming tests: some more renames for texinfo tests Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d7bc5227 2012-12-31T14:16:01 docs: adjust comment w.r.t. recent tests renaming Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 880595d0 2012-08-22T16:40:15 compile: remove support for $(INCLUDES) It has already been deprecated in the manual and by warnings in the 'obsolete' category for ages (at least since 2003), in favour of AM_CPPFLAGS. Automake-NG has removed support for it already. And the warnings in the obsolete category are on by default since the 1.12.4 release. So, by removing it in Automake 1.14, we will simplify the transition path for people that want to switch to Automake-NG. See also Automake-NG commit v1.12-267-g6b74968 of 2012-05-21, "[ng] compile: don't support $(INCLUDES) anymore, it's obsolete". * NEWS, doc/automake.texi: Update. * automake.in (generate_makefile): Reject INCLUDES unconditionally. In all languages: don't add $(INCLUDES) to the compiler command line. * t/includes-deprecation.sh: New test. * t/list-of-tests.mk: Add it. * t/werror2.sh : Adjust to avoid spurious failures. * t/pluseq5.sh: Likewise. * t/warnopts.sh: Likewise. Suggested-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 29d2a151 2012-12-28T20:22:51 Merge branch 'aclocal-lookup-order' * aclocal-lookup-order: aclocal: allow third-party macros take precedence over automake ones
Stefano Lattarini 7326c52e 2012-11-24T20:32:48 aclocal: allow third-party macros take precedence over automake ones It makes sense to allow "local system-wide" m4 macros take precedence over built-in macros (defined in the aclocal versioned m4 directory "${prefix}/share/aclocal-${APIVERSION}"), the same way we allow "environment-level" m4 macros (through the ACLOCAL_PATH environment variable ) take precedence over system-wide third-party macros. An example: after this change, a definition of AM_PROG_VALAC placed in file (say) '/usr/local/share/aclocal/my-vala.m4' should take precedence over the same-named automake-provided macro defined in file '/usr/local/share/aclocal-1.14/vala.m4'. Even more importantly, after this change, m4 macros accessible through $ACLOCAL_PATH entries will take precedence over m4 macros defined in the aclocal versioned m4 directory; it was quite counter intuitive that it was not the case before. * aclocal.in (scan_m4_files): Search files in @system_includes before files in @automake_includes. * t/aclocal-acdir.sh: Adjust. * t/aclocal-path-precedence.sh: Likewise. * t/dirlist.sh: Likewise. * doc/automake.texi: Adjust. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b373ad99 2012-12-28T19:04:02 Merge branch 'am-prog-mkdir-p-remove' Finally backporting the AM_PROG_MKDIR_P removal that has already taken place in Automake-NG. We can safely do this since the latest Gettext release (1.18.2) has removed all uses of AM_PROG_MKDIR_P, replacing them with uses of AC_PROG_MKDIR_P instead. References: <http://lists.gnu.org/archive/html/bug-gettext/2012-12/msg00064.html> <http://lists.gnu.org/archive/html/automake/2012-12/msg00024.html> Commit v0.18.1.1-147-g2cccb4c in the Gettext git repository. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini de736a22 2012-12-14T10:43:21 Merge branch 'maint' * maint: docs: fixlet about xz compression levels and command line options maint: more files excluded in 'update-copyright' maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format HACKING: update instructions to update the manuals at www.gnu.org maint: add an explicative comment in Makefile maint: factor out the name of the dir where web manuals are generated maint: rename rules to build/upload web manuals cosmetic: minor variable and rules reordering in Makefile.am docs: build the web manuals for CVS in the builddir, not in the srcdir release: automate uploading of web manuals in CVS docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc tests: avoid two spurious failures on FreeBSD tests: improve 'pkg-config' requirement
Patrick Welche 4d1c1773 2012-12-14T00:21:39 docs: fixlet about xz compression levels and command line options * doc/automake.texi (The types of distributions): To display a progress bar, xz takes "-v" for verbose. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 86e03ecc 2012-12-09T20:00:15 docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc * doc/automake.texi (Program variables): Here. Reported by NightStrike: <http://lists.gnu.org/archive/html/automake/2012-12/msg00012.html> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d7a59576 2012-12-09T21:55:32 Merge branch 'maint' * maint: docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc maintcheck: prefer '$(am__cd)' over plain 'cd' fetch: improve, and reduce code duplication docs: add rule to generate manuals for www.gnu.org docs: copy the 'gendocs.sh' script from Texinfo CVS repository sync: update files from upstream with "make fetch" release: generate a stub for the release announcement release: distinguish major and minor releases tests: avoid two spurious failures on FreeBSD
Stefano Lattarini c47c6605 2012-12-09T20:00:15 docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc * doc/automake.texi (Program variables): Here. Reported by NightStrike: <http://lists.gnu.org/archive/html/automake/2012-12/msg00012.html> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 326cd5f0 2012-11-14T16:54:38 aclocal: tracing AC_CONFIG_MACRO_DIRS can work with older autoconf as well This will allow our users to interact also with pre-2.70 autoconf without need for the user to add ACLOCAL_AMFLAGS in Makefile.am. For example, before this change, in order to have aclocal look for macros in 'm4/dir1' and 'm4/dir2' also when (say) autoconf 2.69 was used, our users would have had to add something like: ACLOCAL_AMFLAGS = -I m4/dir1 -I m4/dir2 in Makefile.am, in addition to the AC_CONFIG_MACRO_DIRS([m4/dir1 m4/dir2]) in configure.ac. Now, the AC_CONFIG_MACRO_DIRS call is enough. See the long-winded discussion on automake bug#12845 for more details: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12845> * aclocal.in ($ac_config_macro_dirs_fallback): New global variable, contains m4 code to issue a fallback definition of AC_CONFIG_MACRO_DIRS as an alias for the private macro _AM_CONFIG_MACRO_DIRS. (trace_used_macros): Handle and trace that macro. Do some code reorganization and fix related botched indentation while at it. (write_aclocal): Output '$ac_config_macro_dirs_fallback' early in the generated aclocal.m4. * t/aclocal-macrodirs.tap: Run unconditionally, even with older autoconf. * t/subpkg-macrodir.sh: Likewise. * doc/automake.texi: Document only AC_CONFIG_MACRO_DIRS, rather than AC_CONFIG_MACRO_DIR. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 153f861b 2012-10-31T12:41:13 Merge branch 'maint' * maint: vala tests: source test-init.sh, not ./defs tests: fix a spurious typo-related failure tests: remove spurious leftover use of 'Exit' tests: can check our recipes avoid trailing backslashes vala: improve comments to AM_PROG_VALAC news: update w.r.t. recent vala changes vala: if no proper compiler found, set $(VALAC) to 'valac' vala: AM_PROG_VALAC should not produce an error for tool-old valac docs: document recent changes to AM_PROG_VALAC tests: enhance tests on AM_PROG_VALAC vala: style fixes in vala.m4 vala: add action arguments, for when no proper vala compiler is found Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5a289480 2012-10-26T14:00:35 AM_PROG_MKDIR_P: remove as obsolete, this time for good This commit basically reverts v1.12.4-158-gdf23daf, re-instating commit v1.12-20-g8a1c64f. Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro has been deprecated in the documentation and with runtime warnings since Automake 1.12.1. Still, when we released Automake 1.13, we had to delay that macro's removal, since at the time the last released version of GNU gettext still AC_REQUIRE's AM_PROG_MKDIR_P via its 'intl.m4' and 'po.m4' files, which are pulled into *many* projects. But it's now time to remove AM_PROG_MKDIR_P once and for all. Projects still needing to work with older gettext releases will be able to do so by adding a definition like AC_DEFUN([AM_PROG_MKDIR_P], [AC_PROG_MKDIR_P([$@])]) to their 'acinclude.m4' file or to another local '*.m4' file. * m4/mkdirp.m4: Delete. * Makefile.am (dist_automake_ac_DATA): Remove it. * automake.in (scan_autoconf_traces): Don't handle, nor warn about, AM_PROG_MKDIR_P. * doc/automake.texi (Obsolete Macros): Delete (it only spoke about AM_PROG_MKDIR_P). * t/gettext-macros.sh: Adjust. * t/mkdirp-deprecation.sh: Delete. * t/list-of-tests.mk: Don't list it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1b187099 2012-10-26T18:01:17 vala: if no proper compiler found, set $(VALAC) to 'valac' This is better than setting it to ':' (as is currently done), because a triggered makefile rule invoking a vala compilation will then clearly fail with an informative error message like "valac: command not found", rather than silently, with the error possibly going unnoticed, or triggering harder-to-diagnose fallout failures in later steps. For a precedent of a similar behaviour, see the AC_PROG_YACC macro. * m4/valac.m4: Implement the new semantic. * doc/automake.texi (Vala Support): Document it. * t/vala4.sh: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Sébastien Wilmet 9fe696bc 2012-10-26T17:08:09 vala: AM_PROG_VALAC should not produce an error for tool-old valac This change fixes automake bug#12688. In the AM_PROG_VALAC macro, when the optional parameter specifying the minimum release number is not provided, and/or if the Vala compiler is not found, then there is a _warning_ message. On the other hand, when the version number is specified and if the Vala compiler is too old, there is an _error_ message. This error message is problematic, because for a tarball, the Vala compiler is not required: the generated C code is included in the tarball. So if a user wants to compile the software, he shouldn't need the valac program with the right version. * m4/vala.m4 (AM_PROG_VALAC): Modify to use AC_MSG_WARN instead of AC_MSG_ERROR. * t/vala4.sh: Adjust and enhance. * doc/automake.texi (Vala Support): Likewise. * THANKS: Update. Co-authored-by: Matthieu Baerts <matttbe@glx-dock.org> Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com> Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 6ecb0a53 2012-10-26T16:50:26 docs: document recent changes to AM_PROG_VALAC * doc/automake.texi (Vala Support): Here. This is a follow-up to recent commit 'v1.12.4-20-gdf202a3', "vala: add action arguments, for when no proper vala compiler is found". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Jim Meyering df23dafc 2012-10-22T16:14:49 compat: reinstate AM_PROG_MKDIR_P, for gettext Do not remove AM_PROG_MKDIR_P just yet. gettext (latest from git) still AC_REQUIRE's AM_PROG_MKDIR_P via its intl.m4 and po.m4 files, which are pulled into *many* projects. When I try to build one of those projects (coreutils) using the latest from automake.git/master, I see this failure: $ aclocal -I m4 configure.ac:477: warning: AM_PROG_MKDIR_P is m4_require'd \ but not m4_defun'd m4/po.m4:23: AM_PO_SUBDIRS is expanded from... m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from... configure.ac:477: the top level That is because AM_PROG_MKDIR_P was removed (via commit v1.12-20-g8a1c64f) in preparation for the next release of automake. * NEWS: Remove the paragraph that announced the removal of AM_PROG_MKDIR_P. * Makefile.am (dist_automake_ac_DATA): Add m4/mkdirp.m4. * m4/mkdirp.m4: Re-add file. * t/mkdirp-deprecation.sh: Likewise. * t/list-of-tests.mk: Add it. * automake.in: Restore removed code, and adjust comments, s/1.13/1.14/ to reflect new plan for removal. * doc/automake.texi (Obsolete Macros): Restore the section, but now with only one entry: the one for AM_PROG_MKDIR_P.
Stefano Lattarini 7411adcd 2012-10-02T20:34:47 Merge branch 'maint' * maint: config headers: remove stale comment in makefile fragment NEWS: wording and quoting fixlets in few older entries config headers: don't emit rules for headers not generated by autoheader docs: fix minor typo: s/expending/expanding/ sync: update files from upstream with "make fetch" maint: post-release minor version bump maint: typo fixes s/lies into/lies in/ release: stable release 1.12.4 NEWS: minor fix Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 25ffe7d5 2012-09-28T21:27:41 config headers: don't emit rules for headers not generated by autoheader This change fixed automake bug#12495. Even if an AC_CONFIG_HEADERS invocation is passed a list of several files as the first argument, only the first one of those file is considered by autoheader for automatic generation of the corresponding '.in' template. This is done on purpose, and is clearly documented in the Autoconf manual, which (as of the 2.69 version) reads something like this: The autoheader program searches for the first invocation of AC_CONFIG_HEADERS in configure sources to determine the name of the template. If the first call of AC_CONFIG_HEADERS specifies more than one input file name, autoheader uses the first one. That is, an invocation like: AC_CONFIG_HEADERS([config.h config2.h]) should cause autoheader to generate only a 'config.h.in' template, and not also a 'config2.h.in' one. Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate remake rules only for the template associated to the first input file name passed to that macro. In some situations, however, automake failed to properly limit itself in this way; for example, with an input like: AC_CONFIG_HEADERS([config.h sub/foo.h]) in configure.ac, and with the 'sub' directory listed in the SUBDIRS variable of the top-level Makefile, automake would erroneously generate in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by invoking autoheader. This issue was likely introduced in commit 'Release-1-8-23-g262bb92' of 2004-01-05. * NEWS: Update. * doc/automake.texi (Optional): Improve wording in the description of hat rules automake generates in response to an 'AC_CONFIG_HEADERS' invocation. * lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for the %CONFIG_HIN% template if that corresponds to the first argument of AC_CONFIG_HEADERS, as explaned above. Do so using the automake-time conditional %?FIRST-HDR%, that is properly passed ... * automake.in (handle_configure): ... from a 'file_contents' invocation in here. * t/autohdr-subdir-pr12495.sh: New test. * t/list-of-tests.mk: Add it. * THANKS: Update. Helped-by: Hib Eris <hib@hiberis.nl> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 58ec9d74 2012-09-27T09:43:27 docs: fix minor typo: s/expending/expanding/ * doc/automake.texi (Wildcards): Here. Fixes automake bug#12516. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 076e8fa2 2012-09-05T14:40:52 Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" news: cygnus will be removed in automake 1.13 news: some changes for 1.13 has been "de-planned" news: report that the have seen fixlets after 1.12.3 warns: enable category 'obsolete' by default Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini cf41f5af 2012-09-04T14:50:49 warns: enable category 'obsolete' by default No surprise that our users were bitten by backward-incompatible changes especially hard: the warnings in the 'obsolete' category, that might have informed them of the upcoming incompatibilities, and help them to prepare for the transition, where not enabled by default! * NEWS, doc/automake.texi: Update. * lib/Automake/ChannelDefs.pm: Enable warnings in the category 'obsolete' by default. * t/warnings-obsolete-default.sh: New test. * t/list-of-tests.mk: Add it. * t/backcompat.sh: Use 'configure.ac' rather than 'configure.in' as autoconf input file, to avoid spurious aclocal errors. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat5.sh: Add '-Wno-obsolete' when invoking aclocal. Adjust heading comments. * t/backcompat6.sh: Likewise. * t/cygnus-imply-foreign.sh: Add '-Wno-obsolete' when invoking automake. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 97998210 2012-08-26T12:55:38 Merge branch 'maint' * maint: docs: don't suggest to use recursive makefile setup tests: fix a timestamp race in python tests tests: fixup: make distcheck-override-infodir pass again sync: update files from upstream with "make fetch" maint: post-release minor version bump release: stable release 1.12.3 maintcheck: fix spurious warnings docs: fix typo: s/make install-info/make uninstall-info/ tests: fixup: make a couple of tests executable Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ffa41804 2012-08-21T15:03:05 docs: don't suggest to use recursive makefile setup * doc/automake.texi (Introduction): Here, by erroneously telling that "there should generally be one Makefile.am per directory of a project". For reference, see commit 'v1.12.1-25-g61dfb47' of 2012-06-12, "docs: recursive make considered harmful". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 346d76aa 2012-08-13T15:03:43 docs: fix typo: s/make install-info/make uninstall-info/ * doc/automake.texi (Texinfo): Here. And a minor wording improvement while we are at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini c6cc3802 2012-08-13T14:05:40 Merge branch 'maint' * maint: tests: rework tests on AM_PATH_PYTHON cosmetics: fix typos and references in comments typofix: in a test diagnostic readme: fixlets to HACKING Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini cbc0fc85 2012-08-13T12:10:46 cosmetics: fix typos and references in comments * lib/am/check.am: Here. * doc/automake.texi: And here. * t/*.sh: And in several of these tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3e472de1 2012-08-05T11:06:16 Merge branch 'elisp-work' * elisp-work: news: document all the recent elisp-related changes and improvements coverage: byte-compiling elisp files in different subdirectories elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation elisp: --batch implies -q, remove -q elisp: support elisp files in subdirectories properly elisp: simplify suffix rules using emacs '-L' option elisp: no need to "absolutize" $(srcdir) and $(builddir) ... elisp: prefer $(builddir) files over $(srcdir) ones elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) coverage: elisp path contains $(srcdir) and $(builddir) coverage: emacs lisp files in subdirectories
Stefano Lattarini 56cd2dda 2012-08-04T14:56:27 elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation * lib/am/lisp.am (.el.elc): Add "$(AM_ELCFLAFS) $(ELCFLAGS)" to the emacs command line. * t/lisp-flags.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi (Emacs Lisp): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2d5571e7 2012-07-22T16:38:47 check: support colorized testsuite output by default Fixes automake bug#11855. With this change, we make the 'color-tests' option enabled by default. That option remains still silently accepted as a no-op, for backward compatibility. The developer of a package is still free to disable testsuite coloring on a per-makefile basis (by adding "AM_COLOR_TESTS = no" to the Makefile.am) or on a whole-project basis (by AC_SUBST'ing AM_COLOR_TESTS to "no" in configure.ac). But now the user will be able to request the testsuite output to be colorized, if he really wants to: # With GNU make: make AM_COLOR_TESTS=yes check # With non-GNU make: make AM_COLOR_TESTS=yes AM_MAKEFLAGS=AM_COLOR_TESTS=yes check * NEWS: Update. * doc/automake.texi: Updated, and some related minor reformatting and rewording. * automake.in (handle_tests): No need to pass the transform '%COLOR%' when processing "check.am". * lib/am/parallel-tests.am: Remove use of the '%?COLOR%' transform; just act as if it were unconditionally TRUE. * t/color.sh: No need to specify 'color-tests' in 'AUTOMAKE_OPTIONS' nor in 'AM_INIT_AUTOMAKE'. * t/ax/testsuite-summary-checks.sh: Likewise. * t/ax/tap-summary-aux.sh: Likewise. * t/color2.sh: Likewise. Also, ensure that colorized testsuite output can be disabled by default by calling "AC_SUBST([AM_COLOR_TESTS], [no])". * t/tap-realtime.sh: Define 'AM_COLOR_TESTS' to "no" in Makefile.am, to avoid spurious colorization of the output due to the use of the 'expect' program. * t/color-tests-opt.sh: New test, check that the 'color-tests' option is still recognized as a no-op. * t/list-of-tests.mk: Add the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Jack Kelly 226be35f 2012-07-14T21:52:43 elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) Motivated by automake bug#11806. Traditionally, automake byte-compiled emacs-lisp '.el' files by invoking 'elisp-comp' on all of them in a bulk; this involved complex timestamping and file-locking logic. It was also brittle in any slightly-unusual setup, because 'elisp-comp' operated by copying all of the elisp files to be compiled into a temporary sub-directory and compiling them in there, the copying the resulting byte-compile files back in the build directory. This patch removes all of that juggling and chicanery in favour of defining a much simpler '.el.elc' suffix rule. Not only this is simpler, but it also interacts better with "make -jN" calls, which are becoming more and more common and useful on today's increasingly multicore systems. * Makefile.am (dist_script_DATA): Remove 'elisp-comp'. * automake.in (@common_files): Likewise. (handle_emacs_lisp): Do not require 'elisp-comp'. * doc/automake.texi: Remove references to 'elisp-comp'. * lib/am/lisp.am: Define elisp compilation via a suffix rule; this basically amounts to a complete re-write of the lisp byte-compilation rules. * lib/elisp-comp: Remove. * t/add-missing.tap: Remove elisp-comp test. * t/dist-auxdir-many-subdirs.sh: Remove reference to elisp-comp. * t/primary-prefix-invalid-couples.tap: Likewise. * t/primary-prefix-valid-couples.sh: Likewise. * t/lisp4.sh: Remove reference to elc-stamp. * t/lisp5.sh: Likewise. * t/lisp6.sh: Likewise. * t/lisp3.sh: Likewise. Also remove the recompilation check that involves a (message) call. * t/lisp7.sh: Remove check for "Warnings can be ignored". Remove reference to elc-stamp. * t/lisp8.sh: Likewise. * t/lispdry.sh: Remove references to elc-stamp. Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5e0539a3 2012-07-03T21:15:33 Merge branch 'aclocal-trace-macrodir' * aclocal-trace-macrodir: aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini cd1a9ccc 2010-10-05T17:14:00 aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead Maintaining ACLOCAL_AMFLAGS in the Makefile.am to pass extra flags to aclocal is (and have always been) quite of an hack. For example, autoreconf is forced to grep Makefile.am to honour those flags. But this is a bad obsolescent behaviour; in fact, the autotools have moved consistently in the past years from custom grepping of Makefile.am and configure.ac to tracing of m4 macro calls, which is more consistent, more reliable and more flexible. And when autoreconf is not used, the developer is forced to add *by hand* the flags specified by ACLOCAL_AMFLAGS to the aclocal calls not triggered by make rebuild rules; here lie again more duplication and more chances for errors. Moreover, ACLOCAL_AMFLAGS has only two typical use cases: - to instruct aclocal to look for extra macro definition in a local directory (as with "ACLOCAL_AMFLAGS = -I m4"); and - to further instruct aclocal to copy in that local directory the required third-party .m4 files found in the system-wide directory (as with "ACLOCAL_AMFLAGS = -I m4 --install"). The first use case can be better covered if aclocal can instead trace and honours call to the AC_CONFIG_MACRO_DIR autoconf macro; and the second use case shouldn't be considered really legitimate, as it is quite (and subtly) brittle (see automake bug#9037). Thus we now make aclocal trace AC_CONFIG_MACRO_DIR macro, and act accordingly. For backward compatibility, we continue to support the ACLOCAL_AMFLAGS special variable (although removing any mention of it from the documentation). Future Automake releases will likely start to warn about the use of that variable, and eventually remove support for it altogether. From a suggestion by Eric Blake. This is a much simplified (and IMHO saner) version of the patch series discussed in the threads: <http://lists.gnu.org/archive/html/automake-patches/2010-10/msg00045.html> <http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00156.html> * aclocal.in ($ac_config_macro_dir): New global variable. (trace_used_macros): Also trace the macro 'AC_CONFIG_MACRO_DIR', and set the '$ac_config_macro_dir' variable accordingly. (parse_arguments): Code for diagnosis of '--install' used without any user-specified include directory moved ... (while (1)): .. into the main loop. Which now also updates the list of user-specified include directories to include the directory given as argument to the call (if any) of 'AC_CONFIG_MACRO_DIR'. * lib/am/configure.am: Update comments. * NEWS: Updated. * doc/automake.texi: Likewise. Also, stop advising the use of the '--install' in ACLOCAL_AMFLAGS (see automake bug#9037 for a rationale), and remove any reference to ACLOCAL_AMFLAGS (which is now considered obsolescent). * t/aclocal-path-install.sh: Adjust grepping check in the aclocal error messages. * t/subpkg.sh: Updated: add 'AC_CONFIG_MACRO_DIR' call to configure.ac, remove setting of 'ACLOCAL_AMFLAGS' in Makefile.am and use of aclocal command line arguments. * t/subpkg2.sh: Likewise. * t/subdir8.sh: Likewise. * t/remake10c.sh: Likewise. * t/remake8a.sh: Likewise. * t/remake8b.sh: Likewise. * t/aclocal4.sh: Likewise. * t/aclocal6.sh: Likewise. * t/acloca14.sh: Likewise. * t/acloca22.sh: Likewise. * t/aclocal5.sh: Likewise, and do not not invade the Automake namespace (this avoids spurious failures). * t/acloca14b.sh: New test, identical to the previous version of 'acloca14.test'; it is kept to verify backwards compatibility with the use of ACLOCAL_AMFLAGS. * t/acloca22b.sh: Likewise (but for 'acloca22.test'). * t/aclocal-amflags.sh: New test, check for backwards compatibility that ACLOCAL_AMFLAGS still works. * t/remake-macrodir.sh: New test, checking that aclocal's honoring of AC_CONFIG_MACRO_DIR interacts nicely with automatic rebuild rules. * t/list-of-tests.mk: Add the new tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3da1457d 2012-06-12T14:48:12 recursion: support user-defined recursive targets The user can now define his own recursive targets that recurse in the directories specified in $(SUBDIRS). That can be done by specifying the name of such targets in invocations of the new 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. The API goes like this: $ cat configure.ac AC_INIT([pkg-name], [1.0] AM_INIT_AUTOMAKE AM_EXTRA_RECURSIVE_TARGETS([foo]) AC_CONFIG_FILES([Makefile sub/Makefile]) AC_OUTPUT $ cat Makefile.am SUBDIRS = sub foo-local: @echo This will be run by "make foo". $ cat sub/Makefile.am foo-local: @echo This too will be run by a "make foo" issued either in @echo the 'sub/' directory or in the top-level directory. Like for the "default" recursive targets (e.g., 'all' and 'check'), the user-defined recursive targets descend in the $(SUBDIRS) in a depth-first fashion, and process '.' last (unless that is explicitly specified in $(SUBDIRS)). * NEWS, doc/automake.texi: Document the new feature. * automake.in (@extra_recursive_targets): New global variable. (scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'. (handle_user_recursion): New subroutine; among other things, it defines the new internal '$(am__extra_recursive_targets)' make variable, and the '*-am', '*-local' and '*-recursive' targets associated with the user-specified user recursive targets. (generate_makefile): Call the new subroutine. * lib/am/subdirs.am (am__recursive_targets): New internal make variable, listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and '$(am__extra_recursive_targets)' together. (AM_RECURSIVE_TARGETS): Adjust the definition of this variable ... (.PHONY, .MAKE): ... and the list of dependencies of these special targets to take advantage of the new '$(am__recursive_targets)' variable. ($(am__recursive_targets)): New targets, superseding ... ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and inheriting their rules. This way, the rules to handle recursion for built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user defined recursive targets are the same. * m4/extra-recurs.m4: New file, contain definition of new macro 'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'. These macros are basically dummy, only used for tracing by automake. * m4/Makefile.am (dist_automake_ac_DATA): Update. * t/recurs-user.sh: New test. * t/recurs-user2.sh: Likewise. * t/recurs-user-deeply-nested.sh: Likewise. * t/recurs-user-indir.sh: Likewise. * t/recurs-user-keep-going.sh: Likewise. * t/recurs-user-many.sh: Likewise. * t/recurs-user-no-subdirs.sh: Likewise. * t/recurs-user-no-top-level.sh: Likewise. * t/recurs-user-override.sh: Likewise. * t/recurs-user-phony.sh: Likewise. * t/recurs-user-wrap.sh: Likewise. * t/remake-recurs-user.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 27478539 2012-06-28T10:59:45 Merge branch 'maint' * maint: coverage: tests AM_MISSING_PROG usage docs: document AM_MISSING_PROG Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Eric Blake e677ba93 2012-06-27T15:55:14 docs: document AM_MISSING_PROG Addresses automake bug#11793. This macro has been present for a long time, and coreutils has been relying on it despite no documentation, which argues that it is stable enough to be worth documenting. Furthermore, since we are hoping to change our preferred invocation from 'missing --run program' to 'missing program' in a future version of automake, we need a way for packages to consistently get the preferred invocation form rather than open-coding a call to 'missing'. In particular, the Autoconf manual would love to recommend this macro when discussing how to integrate an autotest suite with automake. * doc/automake.texi (Public Macros): Document AM_MISSING_PROG. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 9465eb26 2012-06-23T00:32:30 Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: do not touch timestamps; only warn for out-of-date files Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a22717df 2012-06-15T11:13:00 missing: do not touch timestamps; only warn for out-of-date files Before this change, the missing script had a twofold role: - it warned the user if some required maintainer tools was missing, or too old; - in such a case, it tried to "fix" the timestamp of the files that should have been rebuilt by that tool (without actually updating the file contents, of course), to allow the build to continue. The second capability used to be quite useful in the days when most projects committed files generated by maintainer-only tools in their VCS repository (today the trend is not to keep such generated files VCS-committed anymore). In such a setup, the "timestamp-fixing" capability of 'missing' was quite useful, in that it allowed users lacking some required maintainer tool to build from a VCS checkout in the face of skewed timestamps (as could have been caused by "cvs update" or "git checkout"). But then, when the automatic remake rules kicked in due to the generated files being *actually out-of-date* (e.g., because the user had modified 'configure.ac' but lacked a modern-enough autoconf to rebuild it), that behaviour of 'missing' caused the same problem that plagued AM_MAINTAINER_MODE; i.e., the user would get non-dependable builds and inconsistent statuses of the build tree -- changes to source files don't reflect on generated files, and this can be very confusing and cause hard-to-spot errors). So we now believe that the best approach to deal with timestamp-related issues is not to have 'missing' to "automagically" try to resolve them (with all the risk and brittleness entailed), but rather to suggest those projects still keeping generated files committed in their VCS to provide a proper (say) 'fix-timestamp.sh' script that touches the timestamp of the checked-out files, to ensure no spurious rebuild will be triggered. As a bonus, such a script can be more aware of the particularities, nooks and corner cases of a project, and thus more reliable than the old 'missing' script. An example of this approach is offered by GNU awk (release 4.0.1, Git tag 'gawk-4.0.1', commit b85b04e8). The GNU awk maintainers commit the Autotools-generated files (configure, Makefile.in, etc.) and other generated in the project's Git repository, but offer a useful script 'bootstrap.sh' that fixes the timestamps of those files, to ensure no useless remake is triggered in a freshly cloned repository: #! /bin/sh # bootstrap.sh --- touch relevant files to avoid out-of-date issues # in Git sandboxes touch aclocal.m4 find awklib -type f -print | xargs touch sleep 1 touch configure sleep 2 touch configh.in sleep 1 touch test/Maketests find . -name Makefile.in -print | xargs touch touch doc/*.info touch po/*.gmo touch po/stamp-po touch awkgram.c touch command.c touch version.c A similar, simplified script is also reported as an example in the manual. * NEWS: Update. * doc/automake.texi (Auxiliary Programs, maintainer-mod): Update. (CVS): Do not suggest that 'missing' can "automagically" fix botched timestamp due to a "cvs update"; this isn't true anymore. Give an example of a custom 'fix-timestamp.sh' script that can be used to obtain the same effect (in a slightly more laborious but also more explicit and less brittle way). Fix some minor typos and improper wordings while we are at it. * lib/missing: Basically rewritten to implement the new semantics. As a side effect (one of the several), the '--run' option is no more required nor recognized. * m4/missing.m4 (AM_MISSING_HAS_RUN): Enhance the test on '$MISSING' to ensure it actually provides the new semantics (by trying the new "witness" option '--is-lightweight'). * lib/am/distdir.am (distdir): No need anymore to check for "bad" distributed man pages that were actually dummy stubs generated by the 'missing' script. * t/missing4.sh: Rename ... * t/remake-aclocal-version-mismatch.sh: ... like this. * t/missing2.sh: Rename ... * t/missing-version-mismatch.sh: ... like this, and adjust to the new semantics. * t/missing3.sh: Adjust to the new semantics. * t/man4.sh: Remove as obsolete. * t/missing.sh: Likewise. * t/missing5.sh: Likewise. * t/txinfo30.sh: Likewise. * t/man6.sh: Adjust grepping checks. * t/remake6.sh: Likewise. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7c6310c3 2012-06-20T18:35:57 Merge branch 'maint' * maint: bootstrap: overhaul and improve docs: quote 'like this', not `like this'
Stefano Lattarini 8d864157 2012-06-20T17:27:57 docs: quote 'like this', not `like this' * doc/automake.texi: Fix the reported warnings and informative messages from automake to quote 'like this' rather than as `like this'. Do the same for comments and some text in our examples. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ffe04c8d 2012-06-16T09:16:53 docs: it's not true that DISTCHECK_CONFIGURE_FLAGS is maintainer-reserved At least, not anymore since commit 'v1.11-372-g9760039' of 2001-06-10, "distcheck: add support for AM_DISTCHECK_CONFIGURE_FLAGS". See also automake bug#8784. * doc/automake.texi (Flag Variables Ordering): Do not report 'DISTCHECK_CONFIGURE_FLAGS' as a "variables that are only useful to the maintainer that has no user counterpart": now it is a user-reserved variable, its maintainer-reserved counterpart being 'AM_DISTCHECK_CONFIGURE_FLAGS' . Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7b1697bd 2012-06-15T10:27:27 Merge branch 'maint' * maint: tests: minor reorganization of few tests fixup: adjust t/list-of-tests.mk for renamed/added tests subdirs: enhance coverage, tweak and rename few tests sync: update files from upstream with "make fetch" py-compile: consistently quote 'like this', not `like this'. docs: recursive make considered harmful docs: clean rules are not run in reverse order of build rules anymore silent: new $(AM_V_P) variable, tell if we're running in silent mode refactor: silent rules handling (a little) refactor: &define_verbose_var: accept a third optional argument + Extra non-trivial edits: These are due to the fact that support for silent rules is enabled unconditionally these days (since commit 'v1.12-34-g14141f2' of 2012-05-01, "silent rules: support for them is always active now"). * automake.in: In the new silent related code, do not ever check whether the 'silent-rules' option is active; just assume support for silent rules is enabled. * t/silent-obsolescent-warns.sh: Remove as obsolete. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini db16f500 2012-06-15T10:09:19 Merge branch 'docs-recursion' into maint * docs-recursion: docs: recursive make considered harmful
Stefano Lattarini 401a2a82 2012-06-15T10:09:04 Merge branch 'silent-custom' into maint * silent-custom: silent: new $(AM_V_P) variable, tell if we're running in silent mode refactor: silent rules handling (a little) refactor: &define_verbose_var: accept a third optional argument Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b72e9747 2012-06-14T22:47:28 subdirs: enhance coverage, tweak and rename few tests * t/subdir5.sh: Rename ... * t/subdir-add-pr46.sh: ... like this. * t/subdir8.sh: Rename ... * t/subdir-add2-pr46.sh: ... like this. * t/cond2.sh: Rename ... * t/subdir-cond-err.sh: ... like this. * t/subdir9.sh: Rename ... * t/subdir-with-slash.sh: ... like this; improve heading comments. * t/subcond.sh: Rename ... * t/subdir-cond-gettext.sh: ... like this; improve m4 quoting. * t/subcond2.sh: Rename ... * t/subdir-am-cond.sh: ... like this; adjust heading comments. * t/subcond3.sh: Rename ... * t/subdir-ac-subst.sh: ... like this; adjust heading comments. * t/subdir2.sh: Rename ... * t/subdir-subsub.sh: ... like this; enhance so that it also runs './configure' and 'make'. * t/subdir-order.sh: New test, check that the $(SUDBIRS) entries are processed in the order they are specified. * doc/automake.texi: Adjust references to tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 61dfb470 2012-06-12T17:24:21 docs: recursive make considered harmful In the documentation, we shouldn't confuse "packages using subdirectories" with "packages using recursive make invocations". A package can have a careful organization in subdirectories, make no (or almost no) use of make recursion (examples of such packages are GNU bison, GNU cppi, and Automake itself). In fact, make recursion should be used as seldom as possible, because it makes the build system more brittle and dependency declarations less faithful. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: http://miller.emu.id.au/pmiller/books/rmch/ * doc/automake.texi (Directories): Clarify how a build system based on make recursion does. Observe that such a system, albeit being very widespread, has its own issues and drawbacks, and that one can have a non-recursive setup also for projects using complex directory layout. (Recursing subdirectories): Speak of "packages that use make recursion" rather than of "packages with subdirectories". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>