automake.in


Log

Author Commit Date CI Message
Stefano Lattarini 986ca6c0 2013-05-27T12:55:27 Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() * lib/Automake/Rule.pm (suffix_rule): Rename ... (next_in_suffix_chain): ... like this. (%suffix_rules): Adjust comments. (@EXPORT): Adjust. * automake.in (derive_suffix): Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1246ace6 2013-05-27T12:30:14 Automake::Rule: adjust comments and POD according to previous changes * lib/Automake/Rule.pm: Here, in several places. * automake.in (register_language): And a tiny adjustment here as well. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 55f82a80 2013-05-27T10:44:06 Automake::Rule: expose suffix rules as a function, not a scalar This is just a preparatory refactoring in view of future patches. No semantic change is intended. * lib/Automake/Rule.pm ($suffix_rules): Turn from a package-level variable to a lexical variable. (suffix_rule): New function, expose the details of $suffix_rules that are actually required by code outside thus modules --- and only those details, no more. (@EXPORT): Adjust. * automake.in (derive_suffix): Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 74be388e 2013-05-10T23:59:02 warns: don't tell AM_PROG_MKDIR_P is going to be removed That is no longer true. For a more extended rationale, see file 'PLANS/obsolete-removed/am-prog-mkdir-p.txt' in the maint branch (as of commit v1.13.1d-132-g90ec3fe). * automake.in (scan_autoconf_traces): So adjust the warning message here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a5a167fc 2013-05-10T12:13:00 automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/ Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 97aaf121 2013-02-17T10:25:29 maint: describe new versioning and branching scheme, and adjust to it See discussion about automake bug#13578 for more details and background. Basically, for the versioning scheme: - micro versions only for bug and regression fixing; - minor versions for new backward-compatible features, and new non-fatal deprecations; - major versions for backward-incompatibilities, complex new features, and major refactoring. And for the git branching scheme: + branch 'next' is for the upcoming major version; + branch 'master' is now for the upcoming minor version; + branch 'maint' is for the upcoming micro (bug-fixing) version; + the merging hierarchy is: 'maint' -> 'master' -> 'next'. * HACKING (Automake versioning and compatibility scheme): New. (Working with git): Adjust. * NEWS: Update and fix. * aclocal.in: Adjust some "FIXME" messages. * automake.in: Likewise. * m4/mkdirp.m4: Likewise. * t/aclocal-acdir.sh: Likewise. * t/aclocal-macrodir.tap: Likewise. * t/aclocal-macrodirs.tap: Likewise. * lib/Automake/Options.pm: Likewise. * m4/internal/ac-config-macro-dirs.m4: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3d9997bc 2013-02-14T12:09:43 typofix: in comments in 'automake.in' Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 4cb56244 2013-02-03T20:44:32 automake: fix reference to relevant tests in comments Some of those tests had been renamed in recent or less-recent changes. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 9d1002e0 2013-01-22T10:49:17 warn: correct broken hyperlink in warning message * automake.in (scan_autoconf_traces): Here, when an use of the deprecated two- and three-arguments forms of AM_INIT_AUTOMAKE is detected. Fixes automake bug#13519. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e1ed3145 2013-01-01T22:34:15 texi: warn against '.txi' and '.texinfo' input suffixes The warning being in the 'obsolete' category. This is mostly to ease transition to Automake-NG (see commit v1.12.1-416-gd5459b9), and to discourage use of seldom-tested setups. * automake.in (handle_texinfo_helper): Warn against Texinfo input files with '.txi' or '.texinfo' suffixes. * NEWS: Update. * t/txinfo-other-suffixes.sh: Adjust and enhance. * t/txinfo-no-repeated-targets.sh: No longer use '.txi' and '.texinfo' extensions. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 85639413 2013-01-01T21:31:01 cleanup: remove two lines of dead code in automake * automake.in (scan_texinfo_file): Here, the definition and munging of '$infobase'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2af418d1 2013-01-01T20:59:53 texi: warn against suffix-less info files The warning being in the 'obsolete' category. This is mostly to ease transition to Automake-NG (see commit v1.12.1-392-ga0c7b6a), and to discourage use of seldom-tested setups. * automake.in (scan_texinfo_file): Warn against '@setfilename' directives that specify suffix-less output info files. * t/txinfo-without-info-suffix.sh: Adjust and enhance. * t/txinfo-makeinfo-error-no-clobber.sh: No longer use suffix-less info files in '@setfilename' directives. * t/primary-prefix-valid-couples.sh: Likewise. * t/txinfo-setfilename-repeated.sh: Likewise. * t/txinfo-vtexi2.sh : Likewise. * t/mdate2.sh: Likewise. * NEWS: Update. 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 b6602b33 2012-12-31T09:53:43 maint: state when compatibility cruft should be removed or warned about * automake.in: Here. * lib/Automake/Options.pm: And here. * m4/obsolete-err.m4: And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1efb88ca 2012-11-16T14:50:02 Merge branch 'maint' * maint: maintcheck: avoid failures, sync with 'ng/master' more maintcheck: remove 'sc_perl_syntax' sync: update files from upstream with "make fetch" maint: get rid of $perllibdir environment variable hack configure: respect the '-q' option better cosmetics: de-tabify configure.ac Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 4872dfe7 2012-11-16T12:45:59 maint: get rid of $perllibdir environment variable hack That was needed when the automake-$APIVERSION and aclocal-$APIVERSION wrapper scripts used by the testsuite were shell script, rather than perl scripts acting as a thin layers. * aclocal.in (BEGIN): Update @INC based on the contents of the array '@Aclocal::perl_libdirs', rather than of the environment variable 'perllibdir'. * t/wrap/aclocal.in (BEGIN): Initialize '@Aclocal::perl_libdirs' rather than $ENV{'perllibdir'}. * automake.in (BEGIN): Update @INC based on the contents of the array '@Automake::perl_libdirs', rather than of the environment variable 'perllibdir'. * t/wrap/automake.in (BEGIN): Initialize '@Automake::perl_libdirs' rather than $ENV{'perllibdir'}. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 33c836b2 2012-11-15T14:49:14 recursion: remove _AM_EXTRA_RECURSIVE_TARGETS indirection Since automake automatically smashes extra whitespace and newlines in the arguments of the macros it traces, we can remove the extra indirection with the _AM_EXTRA_RECURSIVE_TARGETS. This doesn't truly simplify the existing code, but make it slightly easier to understand anyway, since leave it with one less indirection. * automake.in: Trace AM_EXTRA_RECURSIVE_TARGETS directly, rather than tracing _AM_EXTRA_RECURSIVE_TARGETS. Remove trailing and leading empty fields in the extracted arguments. * m4/extra-recurs.m4 (_AM_EXTRA_RECURSIVE_TARGETS): Remove, no longer needed. (AM_EXTRA_RECURSIVE_TARGETS): Adjust by making it a simple no-op. 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>
Jim Meyering dcff9883 2012-09-23T18:22:30 maint: typo fixes s/lies into/lies in/
Stefano Lattarini cb60ae36 2012-08-28T10:00:45 Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" automake: don't define many identical 'lang_*_rewrite' subroutines coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)
Stefano Lattarini 4be30e96 2012-06-06T09:52:22 automake: don't define many identical 'lang_*_rewrite' subroutines This is just a simplifying refactoring, with no semantic change intended. Cherry-picked from the Automake-NG commit 'v1.12.1-312-g63aa4a9' of 2012-06-07. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2868ff8c 2012-08-12T14:12:52 Merge branch 'maint' * maint: cleanup: remove stale references to 'lzma' option
Stefano Lattarini 1a93e985 2012-08-12T13:43:54 cleanup: remove unused transform '%HAVE-MANS%' * automake.in (preprocess_file): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 978f2d7b 2012-08-11T00:56:11 cleanup: remove stale references to 'lzma' option * automake.in (preprocess_file): Here. (handle_dist): And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ae1f40f5 2012-08-10T16:51:55 Merge branch 'maint' * maint: automake: remove an unused local variable distcheck: more resilient against possible failures cleanup: remove almost-unused global var 'am_relative_dir'
Stefano Lattarini ae1d413c 2012-08-10T16:25:00 automake: remove an unused local variable * automake.in (handle_dist): Here, the '$extra_dist' variable. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 133307b9 2012-07-30T21:02:59 cleanup: remove almost-unused global var 'am_relative_dir' Cherry picked from commit v1.12.2-741-g53b5d11 of Automake-NG. * automake.in ($am_relative_dir): Delete, it was only used once ... (generate_makefile): ... in here, so it's simpler to inline its expansion. (initialize_per_input): Don't reset the deleted variable. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 03b7cf99 2012-08-10T12:51:40 Merge branch 'maint' * maint: cleanup: remove two almost-unused global variables: {am,in}_file_name cleanup: remove almost-unused global var 'topsrcdir' automake: remove an unused variable tests: make a test script more semantic tests: remove an obsolete, no-op test script tests: remove an obsolete test script
Stefano Lattarini 21ec3a52 2012-07-30T20:30:23 cleanup: remove two almost-unused global variables: {am,in}_file_name Cherry picked from commit v1.12.2-739-gbf2a8b0 of Automake-NG. * automake.in ($am_file_name, $in_file_name): Delete these, which were used only in the 'read_main_am_file' subroutine; instead ... (read_main_am_file): ... modify it to only work from the '$makefile_am' argument (which it was already receiving), and the new '$makefile_in' argument, which is now passed to it ... (generate_makefile): ... from here. (initialize_per_input): Don't reset the two deleted variables anymore. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3c85b9c9 2012-07-30T20:34:12 cleanup: remove almost-unused global var 'topsrcdir' Cherry picked from commit v1.12.2-740-ga7f24eb in Automake-NG. * automake.in ($topsrcdir): Delete, it was only used once ... (handle_LIBOBJS_or_ALLOCA): ... in here, so it's simpler to inline its expansion. Improve formatting of immediately surrounding code a little while we are at it. (initialize_per_input): Don't reset the deleted variable. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7f5d43e1 2012-08-10T10:58:53 automake: remove an unused variable * automake.in ($canonical_location): This. (scan_autoconf_traces): Don't initialize it. 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 f3af1eb0 2012-07-24T18:43:50 Merge branches 'tags-simplify-recursion' and 'color-tests-always' * tags-simplify-recursion: tags: unify recursion for tags targets with that of "usual" targets * color-tests-always: tests: better name for a couple of tests check: support colorized testsuite output by default
Stefano Lattarini 47388dbc 2012-07-23T12:27:15 Merge branch 'maint' * maint: self tests: avoid spurious failures on older bash tests: remove t/parallel-tests-many.sh (fixes spurious failure) typofix: in a comment in the automake script news: minor fixlets and reordering 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>
Stefano Lattarini 158b46f2 2012-07-22T11:07:22 tags: unify recursion for tags targets with that of "usual" targets This change has a side effect: now any failure of the 'tags', 'ctags', 'cscope' and 'cscopelist' targets in a subdirectory will cause the recursive command issued from the top directory to fail. We believe that this behavioural change is not only justified by the simplification this patch entails, but actually offers better semantics: ignoring failures by default is never a good idea, and with make, the user can anyway order the completion of commands in the face of possible failures with the '-k' option. * NEWS: Update. * automake.in (%required_targets): Add keys 'cscopelist-am', 'tags-am' and 'ctags-am'. (handle_tags): Greatly simplified, the major part of the handling of recursion for the 'tags', 'ctags' and 'cscopelist' now moved out to ... * lib/am/tags.am: ... this file, that has been adjusted and extended accordingly. * t/maken3.sh: Remove testing of the 'TAGS' target, that is now just an alias to 'tags'. Without this change, this test would spuriously fail. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2dcf8c29 2012-07-21T15:47:46 typofix: in a comment in the automake script * automake.in (process_file): Here. 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 22786e46 2012-07-02T15:04:12 Merge branch 'user-recursive-targets' * user-recursive-targets: recursion: support user-defined recursive targets tests: rename 'recurs*.sh' to 'var-recurs*.sh' tests: minor improvements to 'recurs*.sh'
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>
Jim Meyering f99ee761 2012-06-30T13:53:37 texi: clean after Texinfo manuals in $(SUBDIRS) directories correctly Fixes the regression exposed by previous commit 'v1.12.1-165-g498492f'. * automake.in (handle_texinfo_helper): Add $infobase.{t2d,t2p} to @mostly_cleans, but *without* the '$relative_dir/' prefix. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 205c7572 2012-06-17T12:23:18 texi: require Texinfo >= 4.9, related enhancements We start passing the '--build-dir' option to the texi2dvi and texi2pdf invocations done in our Texinfo-related rules. The argument for this option will be specific for each info_TEXINFOS entry, to work around a texi2dvi bug that could otherwise cause racy failures in parallel make builds: <http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00073.html> That bug seems already fixed in the development version of texi2dvi, though: <http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00074.html> so the details of our '--build-dir' usage can be revisited once we can assume Texinfo 5.0 or later. Since the '--build-dir' options has been only supported since Texinfo 4.9, we lose compatibility with all older Texinfo versions. But we also get some real improvements. First, the '--build-dir' option implies the '--tidy' option; this, like the '--clean' option that we were formerly using, prevents cluttering of the build directory with all the TeX and Texinfo auxiliary files and build by-products, but, differently from '--clean', keeps them around for later re-runs to use; this shortens the rebuild times considerably. Second, the use of '--build-dir' also allows us to specify different build directories for the PDF and DVI output, preventing the rules building them from stomping on each other's feet when run in parallel. This is demonstrated by the test cases 'txinfo-no-clutter.sh' and 'txinfo33.sh', which before this change used to fail when run with MAKE="make -j4", but now succeed even in that case. * NEWS: Update. * lib/am/texibuilds.am: Do not try to avoid texi2dvi/texi2pdf option '-o'; it has been supported since Texinfo 4.1, and we now require Texinfo >= 4.9. Remove an obsolete comment. Modify calls to texi2dvi and texi2pdf to use the '--build-dir' option, so that TeX auxiliary files and build by-products for a 'foo.texi' input will be placed in a 'foo.t2d' directory (for texi2dvi) or in a 'foo.t2p' directory (for texi2pdf). * automake.in (scan_texinfo_file): Greatly simplify the implementation, since we don't need anymore to keep track of the TeX auxiliary files and build by-products to clean. Drop the '@CLEAN_FILES' part of the return value. (handle_texinfo_helper): Adjust the 'scan_texinfo_file()' call to its new signature. Append the "work directories" now created by texi2dvi and texi2pdf invocation to the list of files/directories removed upon "make mostlyclean". * lib/am/texinfos.am: Update the cleaning rules (and comments) accordingly. * t/txinfo-no-clutter.sh: Minimal adjustment to avoid spurious failures. * .gitignore: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 6d7399c9 2012-06-15T15:07:05 Merge branch 'am-preprocess-drop-tricky-transform' * am-preprocess-drop-tricky-transform: automake: stop supporting "%KEY?iftrue:iffalse%" transforms am: stop using "%KEY:iffalse?iftrue%" transforms
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 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 4de5cb06 2012-06-14T23:45:08 automake: stop supporting "%KEY?iftrue:iffalse%" transforms And the similar "reduced forms" "%KEY:iffalse%" and "%KEY?iftrue%" as well. They are convoluted, never used (after the previous change), and will get in the way in the Automake-NG branch, where we'll soon want to use GNU make static pattern rules in our internal '*.am' fragments. * automake.in (preprocess_file, transform): Simplify not to support those transform patterns. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2ef0a2d3 2012-06-11T21:39:46 Merge branch 'maint' * maint: maintcheck: fix failures, both real and spurious subdir tests: avoid an use of "make -j4", for portability tests: avoid failure due to libtool quirks in C++ demo test tests: fix spurious failures due to missing '$sleep' subdirs: unify rules for "cleaning" and "normal" recursive targets tests: add a "demo" test on C support tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" maint: grammar fixes: s/all these/all of these/ subdir-objects: improve "make mostlyclean" efficiency and flexibility Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 825722a1 2012-06-11T16:12:01 silent: new $(AM_V_P) variable, tell if we're running in silent mode Addresses part of automake bug#8665. * automake.in (handle_silent): Define a new make variable '$(AM_V_P)', that expands to a shell conditional that can be used in make recipes to determine whether they are being run in silent mode or not. The choice of the name derives from the LISP convention of appending the letter 'P' to denote a predicate (see also "the '-P' convention" in the Jargon File); we do so for lack of a better convention. * t/automake.texi, NEWS: Document the new variable. * t/silent6.sh: Adjust and extend. Move out the checks that didn't actually deal with user extension of silent rules ... * t/silent-obsolescent-warns.sh: ... into this test (bound to be removed once 'maint' is merged into the 'master' branch). * t/list-of-tests.mk: Add the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5f6e8015 2012-06-11T13:00:23 refactor: silent rules handling (a little) * automake.in (handle_languages): Move definition of $(AM_V_GEN) variable ... (define_verbose_tagvar): ... and of '$(AM_V_at)' variable ... (handle_silent): ... in this new subroutine. (generate_makefile): Call it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1f009dac 2012-06-11T12:48:29 refactor: &define_verbose_var: accept a third optional argument This is only required by future changes. * automake.in (define_verbose_var): Accept a third optional argument, specifying the value to assign to the given make variable when silent rules are disabled. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 06dfdbe3 2012-06-10T13:38:58 subdir-objects: improve "make mostlyclean" efficiency and flexibility Fixes automake bug#10697. Before this change, the generated Makefile issued one 'rm' invocation for each subdir object file. Not only was this very inefficient when there were several such files, but it also caused stale object files to be left behind when a source file was renamed or removed. * automake.in (handle_single_transform): When a subdir object is seen, update '%compile_clean_files' to clean all the compiled objects in its same subdirectory, and all the libtool compiled objects ('.lo') there as well is that subdir object is a libtool one. * t/subobj-clean-pr10697.sh: New test. * t/subobj-clean-lt-pr10697.sh: Likewise. * t/list-of-tests.mk: Add them. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 995e5ff0 2012-06-07T19:14:30 cleanup: simplify subroutine '&saw_extension' * automake.in (saw_extension): Now that we use the '%extension_seen' hash only as a set (it's keys being its elements), we can simplify the implementation of this function accordingly. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5f54e9ec 2012-06-07T19:14:12 cleanup: remove subroutine '&saw_sources_p' * automake.in (saw_sources_p): Remove, its implementation is now so trivial that it's easier to inline it into ... (handle_languages): ... it's only caller. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2fbd43d6 2012-06-07T19:13:39 cleanup: remove unused '&count_files_for_language' subroutine * automake.in (count_files_for_language): Remove. Its only remaining caller (saw_sources_p) has stopped calling it in the previous commit. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini be7cd4fa 2012-06-07T19:12:43 automake: simplify '&saw_sources_p' This is just a minor cleanup. No semantic change is intended. * automake.in (saw_sources_p): Since its now-only caller calls it with the '0' argument, remove the code paths that assumed the argument could be '1', and assume no arguments. (handle_languages): Drop the arguments '0' in the '&saw_sources_p' invocation. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 11a645aa 2012-06-07T19:12:11 tags: look at $(am__tagged_files) to decide whether to activate This is just a preparatory refactoring in view of future changes. * automake.in (handle_tags): To decide whether to include the tags rules, rely on whether the automake-defined variable $(SOURCES) is non-empty, rather than on the fact that '&saw_sources(1)' returns true. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 712c083e 2012-06-07T20:13:37 tags: new var $(am__tagged_files) to list all files to run taggers on This change reduce code duplication a little, and will be needed by future simplifications. * automake.in (handle_tags): Define a new 'am__tagged_files' private make variable that lists all files to run taggers (mkid, cscope, ctags, etc) on. Drop the now-useless transform '%CONFIG%' when including 'tags.am'. * lib/am/tags.am: Use it in several recipes and dependencies list to reduce code duplication. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5e771b27 2012-05-18T18:00:51 check: the parallel-tests driver is now the default The old serial testsuite driver is still supported, and can be activated by the 'serial-tests' option (introduced by commit 'v1.11-1989-gdeb7773' of 2012-02-20, "automake: new option 'serial-tests'"). * lib/Automake/Options.pm: Now, the 'parallel-tests' option is a no-op (but still explicitly recognized, for backward compatibility), while the 'serial-tests' option is recognized and registered. * automake.in: Adjust to ensure that the parallel test harness is used by default; mostly, this amounts at using "! option('serial-tests')" where "option('parallel-tests')" was used before. * NEWS, doc/automake.texi: Update. * configure.ac (AM_INIT_AUTOMAKE): Drop 'parallel-tests' option, is redundant now. * defs: In the generated AM_INIT_AUTOMAKE call, use the 'serial-tests' when the serial testsuite harness is to be used, and no option otherwise. * lib/am/check.am: Use (static) conditional '%SERIAL_TESTS%' instead of conditional '%PARALLEL_TESTS%'. * lib/test-driver: Adjust heading comments. * t/ax/extract-testsuite-summary.pl: Likewise. * t/check-exported-srcdir.sh: Likewise. * t/check-subst.sh: Likewise. * t/java-compile-run-nested.sh: Likewise. * t/parallel-tests-dry-run-1.sh: Likewise. * t/parallel-tests-dry-run-2.sh: Likewise. * t/parallel-tests-interrupt.sh: Likewise. * t/parallel-tests-many.sh: Likewise. * t/test-metadata-global-log.sh: Likewise. * t/tests-environment-backcompat.sh: Likewise. * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust a comment. * t/check8.sh: Likewise. * t/check-tests-in-builddir.sh: Likewise. * t/java-compile-run-flat.sh: Adjust a botched comment. * t/ax/tap-summary-aux.sh: Remove explicit use of the 'parallel-tests' option. * t/ax/testsuite-summary-checks.sh: Likewise. * t/aclocal-path-precedence.sh: Likewise. * t/dist-aux-many-subdirs.sh: Likewise. * t/parallel-tests-no-color-in-log.sh: Likewise. * t/parallel-tests-reset-term.sh: Likewise. * t/parallel-tests-subdir.sh: Likewise. * t/check-no-test-driver.sh: Fix setup to adjust to the changed semantics. Update heading comments. * t/parallel-tests-driver-install.sh: Adjust to the new semantic. * t/test-driver-is-distributed.sh: Simplified according to the new semantics. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 12405c9f 2012-05-08T12:49:36 Merge branch 'maint' * maint: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL fixup: distribute t/README init: warn against obsolete usage of AM_INIT_AUTOMAKE Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 27136dfe 2012-03-31T16:39:32 init: warn against obsolete usage of AM_INIT_AUTOMAKE Support for the two- and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) or: AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) will be removed in the next major Automake release (1.13). Such usages have already been deprecated in the documentation starting from commit v1.11-2015-ge99690a of 23-02-2012 "docs, news: document planned removal of obsolete macros and features". We now start giving runtime warnings as well (in the 'obsolete' category). * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments form invocation. * automake.in (scan_autoconf_traces): Likewise. * doc/automake.texi: Minor adjustments. Add an @anchor to the location where it's described how to modernize outdated invocation of AM_INIT_AUTOMAKE, so that it can be referenced from automake warning/error messages. * t/aminit-moreargs-deprecation.sh: New test. * tests/list-of-tests.mk: Add it. * tests/ac-output-old.tap: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/backcompat.test: Likewise. * t/backcompat3.test: Likewise. * t/backcompat5.test: Likewise. * t/backcompat6.test: Likewise. * t/version.test: Likewise. * t/version2.test: Likewise. * t/pr2.test: Modernize style of AC_INIT and AM_INIT_AUTOMAKE invocations, and use proper m4 quoting. * t/pr87.test: Likewise. * t/confsub.test: Likewise. * t/install2.test: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1e852648 2012-05-04T17:46:51 Merge branch 'maint' * maint: tests: avoid spurious failure on missing Obj C/C++ compiler objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++
Stefano Lattarini 75b91149 2012-05-04T13:24:23 Merge branch 'objc++' into maint * objc++: objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++ Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a1241883 2012-05-03T17:30:56 dist: don't bother putting README first in $(DIST_COMMON) Comments on some of our automake-time pre-processing of $(DIST_COMMON) said that it was done in order to "put README first because it then becomes easier to make a Usenet-compliant shar file". But such a format is hardly relevant anymore, and not worth the (albeit small) added complexity. * automake.in (handle_dist): Don't sort @dist_common. (for_dist_common): Delete this function, is not used anymore. * lib/am/distdir.am (DISTFILES): Remove obsolete comment. * t/distcom4.sh: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0fec8df4 2012-05-02T18:15:41 Merge branch 'always-support-silent-rules' * always-support-silent-rules: silent rules: support for them is always active now Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b618b585 2012-05-02T10:26:12 Merge branch 'maint' * maint: cosmetics: fix typo in aclocal m4 directory README cygnus: warn when it's used (flagged as 'obsolete' now) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e7745eaa 2012-05-02T09:59:46 Merge branch 'cygnus-deprecate' into maint * cygnus-deprecate: cygnus: warn when it's used (flagged as 'obsolete' now) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 14141f25 2012-05-01T14:23:04 silent rules: support for them is always active now Before this change, support for silent rules was optional and activated only if the 'silent-rules' option was specified. The rationale behind that behaviour was that the silent-rules machinery originally only worked with make implementations supporting nested variables expansions, which isn't (or wasn't) a POSIX-specified features; so that packages wanting to be "extra-portable" couldn't use the silent-rules machinery at all. But after Paul Eggert's commit 'v1.11-598-g8493499' of 25-12-2011, "silent-rules: fallback for makes without nested vars" (motivated by automake bugs #9928 and #10237), Makefiles generated when the 'silent-rules' option is enabled can work also with those make implementations that don't support nested variables expansion (albeit the configure-time selected verbosity cannot be overridden at make runtime in such case). In light of that, and since silent rules are disabled by default even when the 'silent-rules' option is given (unless the developer explicitly makes them enabled by default be calling "AM_SILENT_RULES([yes])" in configure.ac), we can now have the support for silent rules always enabled. The 'silent-rules' option will thus become a no-op, but will reaming a valid option for the time being, for better backward-compatibility. A collateral effect of this change is that the use of the 'silent-rules' option will not anymore automatically disable the warnings in the 'portability-recursive' category. The present change is basically a backport of the Automake-NG commit 'v1.11d-75-g61ca923' of 19-04-2012, "[ng] silent rules: support for them is always active now". Stemmed by this thread on the Automake-NG list: <http://lists.gnu.org/archive/html/automake-ng/2012-04/msg00027.html> * automake.in: Enable silent-rules machinery unconditionally. Reword some comments. Do not switch off warnings in the category 'portability-recursive' anymore if the 'silent-rules' option is given. * m4/init.m4: Call 'AC_REQUIRE' on 'AM_SILENT_RULES' unconditionally. * lib/Automake/Options.pm: Recognize 'silent-rules' as a dummy option. Do not bother anymore checking that it is set in 'configure.ac'. * t/silent.sh: Remove now-redundant calls to AM_SILENT_RULES. * t/silent2.sh: Likewise. * t/silent3.sh: Likewise. * t/silent4.sh: Likewise. * t/silent8.sh: Likewise. * t/silent9.sh: Likewise. * t/silent-lex.sh: Likewise. * t/silent-many-gcc.sh: Likewise. * t/silent-many-generic.sh: Likewise. * t/silent-yacc-headers.sh: Likewise. * t/silent-yacc.sh: Likewise. * t/silentcxx-gcc.sh: Likewise. * t/silentcxx.sh: Likewise. * t/silentf77.sh: Likewise. * t/silentf90.sh: Likewise. * t/help-silent.sh: Likewise. * t/silent-configsite.sh: Likewise, and other minor adjustments. * t/silent7.sh: Likewise. Also, extend to check that silent rules are disabled by default, and remove obsoleted checks about the 'silent-rules' option being rejected in 'AUTOMAKE_OPTIONS'. * t/silent6.sh: Remove now-redundant calls to 'AM_SILENT_RULES'. Call automake with '-Wno-portability-recursive'. Remove other obsoleted checks. * t/dollarvar.sh: Don't expect the use of 'AM_SILENT_RULES' in 'configure.ac' to disable warning in the 'portability-recursive' category anymore. * t/compile_f_c_cxx.sh: Adjust to avoid a spurious failure. * t/silent-amopts.sh: Remove as obsolete. * t/silent-nowarn.sh: Likewise. * t/list-of-tests.mk: Adjust. * NEWS: Update. * doc/automake.texi: Update and simplify accordingly. * configure.ac (AM_INIT_AUTOMAKE): Remove 'silent-rules' option. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5b0cc395 2012-04-06T11:18:38 cygnus: remove support for Cygnus-style trees Support for "Cygnus-style" tree as enabled by the 'cygnus' option has been deprecated in the documentation and with runtime warning since Automake 1.12.1. It's now time to remove it. Closes automake bug#11034. * lib/Automake/Options.pm (_process_option_list): Issue a proper error when the 'cygnus' option is seen. * automake.in: Don't handle the 'cygnus' option anymore. * docs/automake.texi: Remove references to cygnus option and Cygnus-style trees. * lib/am/dejagnu.am, lib/am/texinfos.am: Drop special setups for cygnus mode. * NEWS: Update. * t/cygnus-no-more.sh: New test. * t/flavor.sh: Adjust. * t/cygnus-deprecation.sh: Remove. * t/cygnus-check-without-all.sh: Likewise. * t/cygnus-requires-maintainer-mode.sh: Likewise. * t/cygnus-dependency-tracking.sh: Likewise. * t/cygnus-imply-foreign.sh: Likewise. * t/cygnus-no-installinfo.sh: Likewise. * t/cygnus-no-dist.sh: Likewise. * t/clean2.sh: Likewise. * t/txinfo5.sh: Likewise. * t/txinfo5b.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 71cc0e09 2012-03-31T14:53:24 cygnus: warn when it's used (flagged as 'obsolete' now) Support for "Cygnus-style" tree as enabled by the 'cygnus' option is now reported as obsolete when the warnings in the 'obsolete' category are enabled. See automake bug#11034. * automake.in (check_cygnus): Report the use of 'cygnus' mode as obsolete. * NEWS: Update. * docs/automake.texi: Minor adjustments. * t/cygnus-deprecation.sh: New test. * t/list-of-tests.mk: Add it. * tests/cygnus-check-without-all.sh: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/cygnus-requires-maintainer-mode.sh: Likewise. * t/cygnus-dependency-tracking.sh: Likewise. * t/cygnus-imply-foreign.sh: Likewise. * t/cygnus-no-installinfo.sh: Likewise. * t/cygnus-no-dist.sh: Likewise. * t/clean2.sh: Likewise. * t/flavor.sh: Likewise. * t/txinfo5.sh: Likewise. * t/txinfo5b.sh: Likewise. * t/library.sh: Remove use of 'cygnus' and 'dejagnu' options, and of AM_MAINTAINER_MODE macro. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Breitenlohner df306b52 2012-04-26T15:01:23 objc++: initial support for Objective C++ Original thread (dating back to almost three years ago): <http://lists.gnu.org/archive/html/automake-patches/2009-07/msg00016.html> * automake.in: Register new language 'objcxx'. (lang_objcxx_rewrite): New subroutine. (resolve_linker): Add OBJCXXLINK. (%_am_macro_for_cond): Add am__fastdepOBJCXX and AC_PROG_OBJCXX. (%_ac_macro_for_var): Add OBJCXX and OBJCXXFLAGS. * m4/depend.m4 (_AM_DEPENDENCIES): Add OBJCXX. * m4/init.m4 (AM_INIT_AUTOMAKE): Add AC_PROG_OBJCXX hook. Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 8a1c64fe 2012-04-06T11:24:11 AM_PROG_MKDIR_P: remove as obsolete Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro (and its output variable '$(mkdir_p)') has in the documentation and with runtime warning since Automake 1.12.1. It's now time to remove it. * automake.in (scan_autoconf_traces): Remove special handling of 'AM_PROG_MKDIR_P'. * m4/mkdirp.m4: Delete. * Makefile.am (dist_automake_ac_DATA): Remove it. * t/mkdirp-deprecation.sh: Delete. * t/list-of-tests.mk: Remove it. * doc/automake.texi: Remove references to the 'AM_MKDIR_P' m4 macro and the '$(mkdir_p)' output variable. * t/gettext-macros.sh: Ensure the gettext-requiring tests will still see the now-removed 'AM_PROG_MKDIR_P' macro as an alias for the 'AC_PROG_MKDIR_P' macro, since even recent versions of gettext uses 'AM_PROG_MKDIR_P' in their '.m4' files. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7a1eb9ff 2012-04-02T17:05:42 AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13 Support for the obsolescent 'AM_PROG_MKDIR_P' macro (and its output variable '$(mkdir_p)') has already been deprecated in the documentation. It's now time to make its use actively emit warnings in the 'obsolete' category as well. * automake.in (scan_autoconf_traces): Warn about 'AM_PROG_MKDIR_P' obsolescent if that macro is seen. * m4/mkdirp.m4 (AM_PROG_MKDIR_P): Warn about its own obsolescence. * m4/init.m4: Require 'AC_PROG_MKDIR_P', not 'AM_PROG_MKDIR_P'. * t/mkdirp-deprecation.sh: New test. * t/list-of-tests.mk: Add it. * syntax-check.mk (sc_mkdir_p): Delete this check as obsolete. (syntax_check_rules): Remove it. * t/gettext-macros.sh: Ensure the gettext-requiring tests will call aclocal and automake with the 'obsolete' warnings disabled, since even recent versions of gettext used the now-deprecated 'AM_PROG_MKDIR_P' m4 macro. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 8ea72c74 2012-04-27T16:27:08 build: ensure release year in copyright notice is up-to-date From a suggestion by Eric Blake. See automake bug#11356. This is a follow-up to previous patch 'v1.12-12-gb99b5be'. * configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold the value of the current year. * Makefile.am (update-copyright): Be sure to also update the definition of 'RELEASE_YEAR' in configure.ac. * lib/Automake/Config.in ($RELEASE_YEAR): New exported variable, initialized from the value substituted for '@RELEASE_YEAR@'. (@EXPORT): Add it. * automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be substituted at make time) instead of hard-coding the release year. This should ensure the copyright range in the version message and in the generated files (Makefile.in and aclocal.m4) are automatically kept up-to-date. * bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b99b5be0 2012-04-27T11:14:53 automake, aclocal: update copyright year in output Fixes automake bug#11356. * aclocal.in, automake.in: Add copyright year '2012' in the version message. Ditto for the copyright notice in the generated Makefile.in or aclocal.m4 files; and for those, since we are at it, prefer using a range for copyright years, rather than listing each copyright year individually. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f1895f94 2012-04-16T14:59:53 automake: refactor pre-processing of makefile fragments This change will provide the automake script with a new function that reads in a Makefile fragment *without* performing Automake ad-hoc parsing, but only the pre-processing step, i.e., removal of '##' comments and substitution of tokens like '%SUBDIRS%', '%?LIBTOOL%' or '?GENENRIC?'. This will very likely be useful for the work on Automake-NG. This is a pure refactoring, with no intended functional or semantic changes. * automake.in (preprocess_file): New function, extracted ... (make_paragraphs): ... from here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini bee76ca3 2012-04-17T00:02:58 automake: fix botched call to 'check_user_variables' * automake.in (lang_vala_finish_target): The 'check_user_variables' function takes an array, not an array ref, as argument; adjust its call accordingly. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1153b2be 2012-04-16T23:42:41 vala: cleanup rules are better and more complete now * automake.in (lang_vala_finish_target): Ensure Vala-generated C sources and header files and our custom stamp files are correctly cleaned. * t/vala-headers.sh, t/vala-vpath.sh: Enhance. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 326ff45b 2012-04-12T18:04:19 Merge branch 'maint' * maint: vala: fix distcheck with c/vala mixed projects vala: fix vapi files handling vala: test vapi files handling (still failing) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 54ac5d47 2012-04-12T14:14:04 Merge branches 'vala-fix-pr11222' and 'vala-fix-pr11229' into maint * vala-fix-pr11222: vala: fix vapi files handling vala: test vapi files handling (still failing) * vala-fix-pr11229: vala: fix distcheck with c/vala mixed projects
Marc-Antoine Perennou c1216181 2012-04-12T13:32:58 vala: fix distcheck with c/vala mixed projects Fixes automake bug#11229. * automake.in (lang_vala_finish_target): Return early if the current '_SOURCES' variable does not contain any '.vala' nor '.vapi' source. Otherwise, the vala compiler will be called without arguments, causing an error. * tests/vala-mix.test: Enhance to catch the fixed bug. Copyright-paperwork-exempt: yes Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Marc-Antoine Perennou 7b3199fb 2012-04-11T11:18:31 vala: fix vapi files handling Fixes automake bug#11222. Issue introduced in commit 'v1.11-696-g51f61df' of 27-02-2012, "vala: fix 'valac' calls for projects with mixed Vala/C", which fixed automake bug#10894. * automake.in (lang_vala_finish_target): Also recognize '.vapi' as an extension for vala input files. * tests/list-of-tests.mk (XFAIL_TESTS): Remove 'vala-vapi.test'. Copyright-paperwork-exempt: yes Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2a487237 2012-03-31T13:07:32 cosmetics: remove repeated line in comment, fix quoting * automake.in: Drop a repeated line in a comment. In the same comment, prefer quoting 'like this' rather than `like this'. Issue introduced in one of the commits that converted from quoting `like this' to quoting 'like this'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1e3b481c 2012-03-31T13:06:30 cosmetics: remove useless import in automake script * automake.in (Automake::Version): This import is not needed; remove it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 74a7f492 2012-03-04T16:00:58 maint: drop 'Automake::Struct' module Now that we require Perl 5.6, we can drop the 'Automake::Struct' module, which was basically just a backport of Perl 5.6's 'Class::Struct' to Perl 5.5. * automake.in: Use 'Class::Struct', not 'Automake::Struct'. * lib/Automake/Struct.pm: Delete. * lib/Automake/Makefile.am (dist_perllib_DATA): Remove it.
Stefano Lattarini 7f9974c7 2012-03-04T13:02:57 cosmetics: remove useless escaping for "'" character
Peter Rosin aadd78e9 2012-03-02T11:04:05 Merge branch 'maint' into msvc
Stefano Lattarini 9b81d15f 2012-02-29T19:50:18 Merge branch 'maint' * maint: vala: fix 'valac' calls for projects with mixed Vala/C vala: expose automake bug#10894
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 1eaed7c1 2012-02-24T13:27:53 cosmetics: typofixes and whitespace changes * configure.ac: Fix a typo in comments. * aclocal.in: Get rid of latest form-feed (^L) usages. * automake.in: Likewise.
Stefano Lattarini f28d4890 2012-02-23T23:34:08 cosmetics: fixlet in comment in automake * automake.in ($configure_dist_common): In the associated comment, refer to scanning of 'configure.ac', not 'configure.in'.
Stefano Lattarini da69976c 2012-02-23T20:50:41 automake: do not quote `like this', as per GCS recommendation * automake.in: Convert comments, diagnostic and help screen to the use of new quoting format 'like this' or "like this" rather than `like this'. * tests/stdlib2.test: Adjust. * tests/ltinstloc.test: Likewise. * tests/location.test: Likewise. * tests/libtool8.test: Likewise. * tests/ldadd.test: Likewise, and prefer trailing ':' over trailing 'Exit 0'.
Stefano Lattarini 101216ca 2012-02-19T18:43:28 automake: new option to print location of scripts and data files With this change, we add a new automake option '--print-libdir' that prints (on stdout) the path of the directory containing the Automake-provided scripts (e.g., 'missing' and 'install-sh') and data files (e.g., INSTALL or texinfo.tex). Suggestion by Nick Bowler. See also automake bug#10473. * automake.in (parse_arguments): Handle the new option. (usage): Mention it. * doc/automake.texi (automake Invocation): Document it. * NEWS: Update. * tests/print-dir.test: New test. * tests/list-of-tests.mk: Add it.
Stefano Lattarini 641a5a4b 2012-02-16T10:46:23 maint: run "make update-copyright"
Stefano Lattarini e6c40d4b 2012-02-12T15:06:17 Merge branch 'yacc-work' into yl-work-for-master * yacc-work: (37 commits) fixup: list of yacc/lex tests was botched tests: work around bug#7884 in many yacc/lex tests yacc/lex tests: remove an unneeded workaround for bug#8485 yacc/lex tests: avoid too much failures with FreeBSD make yacc-dist-nobuild.test: add reference to bug#7884 yacc tests: fix bug in 'yacc-cxx.test' lex tests: fix spurious link errors on Solaris lex: "make clean" removes .c files from non-distributed .l lex tests: make test on Lex dependency tracking more "semantic" lex tests: remove erroneous check about ylwrap distribution yacc tests: "make clean" removes C++ files from non-distributed .y tests: add a workaround for automake bug#8485 tests: add a couple of inter-tests reference lex tests: require just `lex' instead of `flex' fix typo in ChangeLog (2011-05-04) tests defs: use `skip_' for skipping yacc/lex related tests lex/yacc tests: remove redundant $distdir definition coverage: test lex-generated "#line" directives postprocessing tests: minor improvements to a couple of yacc tests tests: fix spurious failure in test 'yacc-d-cxx.test' ... + Extra non-trivial edits: * tests/defs.in: Delete; the differences from maint has been merged into 'tests/defs' and 'tests/defs-static.in'. * tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to skip the whole test case if yacc (resp. lex) is missing. (bison): New, set up the environment so that 'bison -y' will be used as the yacc program. (useless_vpath_rebuild, yl_distcheck): Moved in from 'tests/defs.in'. * tests/defs-static.in ($YACC, $LEX): Default to the values determined at configure time, and allow them to be overridden by the more namespace-safe variables '$AM_TESTSUITE_YACC' and '$AM_TESTSUITE_LEX' respectively. * tests/Makefile.am (do_subst): Also substitute '@YACC@' and '@LEX@'. * Several tests: Fix requirements declarations, by preferring 'lex' and 'yacc' over 'flex' and 'bison' whenever possible.
Stefano Lattarini df6841b7 2012-02-06T23:17:32 Merge branch 'maint' into yacc-work * maint: (75 commits) test defs: function 'is_newest' now works also with directories refactor: new variable telling whether make is running in "dry mode" ...
Stefano Lattarini 3c66523f 2012-01-31T08:31:59 Merge branch 'maint' * maint: tests: do not assume the object file extension is .o tests: avoid spurious failure of 'transform2.test' on Cygwin tests: avoid spurious failure of deleted-am.test with FreeBSD make tests: avoid possibly undeserved PASS from check8.test warnings: more precise category and message for one warning release: revamp rules to tag and upload the releases amversion: add missing dependency hacking: update advice w.r.t. synced files hacking: don't reference ChangeLog anymore + Extra non-trivial edits: * tests/suffix8.tap: Copy in (by hand) the modifications done to 'suffix8.test' on maint, i.e., the addition of an explicit '.y_.obj:' suffix rule to Makefile.am.
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 bd34a47c 2012-01-21T11:33:44 multilib: move to contrib This follows up on commit v1.11-665-gc5df21e of 2012-01-17, "multilib: deprecate, will be moved to contrib". See also: <http://lists.gnu.org/archive/html/automake-patches/2012-01/msg00109.html> * NEWS: Update. * automake.in ($seen_multilib): Remove. (scan_autoconf_traces): Don't trace 'AM_ENABLE_MULTILIB', and don't handle it anymore. (handle_multilib): Remove. (generate_makefile): Don't call it anymore. * doc/automake.texi: Remove documentation about multilib support, related macros, and helper files. * m4/multi.m4: Delete. * m4/Makefile.am (dist_automake_ac_DATA): Remove it. * lib/am/multilib.am: Delete. * lib/am/Makefile.am (dist_am_DATA): Remove it. * contrib/multilib/multilib.am: New file, adapted from extracts of a Makefile.in generated with automake multilib support. We did this instead of moving and editing 'lib/am/multilib.am' because it allows us to license this file with a liberal license that will permit users to copy-and-paste it in non-GPLed Makefile.am files too). * lib/symlink-tree, lib/config-ml.in: Move ... * contrib/multilib: ... in here. * lib/Makefile.am (dist_script_DATA, dist_pkgvdata_DATA): Update. * contrib/multilib/README: New file. * contrib/Makefile.am (EXTRA_DIST): Add the files created or moved in 'contrib/multlib'. * tests/multilib.test: Update and enhance a little. * tests/help-multilib.test: Likewise.