bin


Log

Author Commit Date CI Message
Mike Frysinger c1b799a0 2022-01-24T02:53:13 texi: pass automatic -I to dvi & pdf generation Fixes automake bug https://bugs.gnu.org/23599. When generating info/html pages, automake adds -I flags to source dirs that contain the texi files, but it doesn't do this for dvi or pdf formats. Instead, automake has been relying on texi2dvi to use makeinfo for expanding macros, and it hasn't done that by default in a long time. Since adding --expand to the texi2dvi call is undesirable (due to bad and unpredictable BEHAVIOR), pass those automatic -I flags directly to TEXI2DVI & TEXI2PDF so they work regardless of --expand behavior. We have to keep the MAKEINFO= setting around as texi2dvi might itself fall back to it if the version of tex is old or broken. * bin/automake.in: Add comment about $makeinfoflags usage. * doc/automake.texi: Mention automatic -I subdir flags. * lib/am/texibuild.am: Pass %MAKEINFOFLAGS% to TEXI2DVI & TEXI2PDF. * t/txinfo-subdir-pr343.sh: Check for -I subdir usage.
Mike Frysinger 975ea4d9 2022-01-19T05:14:47 progs, libs: support _RANLIB overrides Much like we have per-target support for _AR and _LINK, add an _RANLIB override too. This allows selection of specific ranlib tools in case a non-standard archiver tool was forced. * bin/automake.in: Check for _RANLIB per-target settings. * doc/automake.texi: Document _RANLIB override. * lib/am/library.am: Change $(RANLIB) to $(%XLIBRARY%_RANLIB). * t/list-of-tests.mk: Add ranlib_override.sh. * t/ranlib_override.sh: New test. * NEWS: Mention new feature.
Mike Frysinger 4c2c73bf 2022-01-20T02:03:23 aclocal: add m4 search path info to --help Add a short summary to --help of the current paths that will be searched. Make sure to omit this from the man page when running help2man since pre-inst-env specifically clears some and others to the current build directory. * bin/aclocal.in: Include m4 search paths in usage. * doc/local.mk: Run help2man with AUTOMAKE_HELP2MAN=true.
Jim Meyering 6c8ff6a8 2022-01-12T14:15:12 maint: make update-copyright
Jan Engelhardt 4ffbab93 2021-09-10T15:45:29 automake: consistently depend on install-libLTLIBRARIES. Report and patch: https://lists.gnu.org/archive/html/automake/2021-08/msg00016.html * bin/automake.in (generate_makefile): depend on install-libLTLIBRARIES for all PROGRAMS and LTLIBRARIES, such as install-pkglibLTLIBRARIES. * NEWS: mention this.
Nick Gasson 57688bd5 2021-07-15T18:37:09 automake: silent make output for custom link commands. Patch posted: https://lists.gnu.org/archive/html/automake-patches/2021-07/msg00010.html * bin/automake.in (define_per_target_linker_variable): Use AM_V_${target}_LINK if defined as the verbose variable name for custom link commands. * doc/automake.texi (Program and Library Variables): Document the new variable. * t/link_override.sh: Add extra checks for silent make rules. * NEWS: Mention this. * THANKS: new contributor.
Jim Meyering a470a47f 2021-07-11T19:19:42 maint: make update-copyright
Jim Meyering 314c55f0 2021-07-11T18:34:22 no-dist-built-sources: fix-up * bin/automake.in (preprocess_file): Process new option here, (handle_dist): ... not here. * lib/Automake/Options.pm (_is_valid_easy_option): Remove pure-dist. * lib/am/distdir.am: Don't factor out the duplicate-looking $(MAKE)... command. Otherwise, many dist-using tests would fail for me, e.g., t/aclocal-amflags.sh.
Allison Karlitskaya 13659a73 2021-07-09T09:03:30 dist: add new "dist-no-built-sources" automake option. Fixes automake bug https://debbugs.gnu.org/49317. * bin/automake.in: implement new option "no-dist-built-sources" to omit the dependency of distdir on $(BUILT_SOURCES). (Allison's original patch used the option name dist-pure; trivially renamed.) * lib/am/distdir.am (distdir) [DIST_BUILT_SOURCES]: conditionalize the dependency. * lib/Automake/Options.pm (_is_valid_easy_option): list it. * doc/automake.texi (List of Automake options): document it. * NEWS: mention it. * t/dist-no-built-sources.sh: test it. * t/list-of-tests.mk (handwritten_TESTS): add it.
Karl Berry 16569085 2021-07-01T18:21:51 dist: accept .md versions for README et al. This change was suggested by madmurphy; some ideas were taken from the patch he provided. https://lists.gnu.org/archive/html/automake-patches/2021-06/msg00005.html * bin/automake.in (@toplevelmd_ok): new global, listing the files for which we will accept .md versions. (@common_files): remove those files from there. (handle_dist): check for .md if non-.md is absent. (handle_minor_options): check for README-alpha.md. (check_gnu_standards): accept .md version if present. (check_gnits_standards): likewise. (usage): output list of .md-accepted files. * doc/automake.texi (Basics of Distribution): document. * t/toplevelmd.sh: new test. * t/list-of-tests.mk (handwritten_tests): add it. * NEWS: mention new feature.
Dirk Mueller 4a122012 2021-02-27T09:14:47 automake: sort hash keys needed for reproducible output. This change fixes https://bugs.gnu.org/46744. * bin/automake.in: sort keys, in: handle_LIBOBJS, handle_clean, handle_factored_dependencies, scan_autoconf_traces, lang_vala_finish. * NEWS: mention this.
Karl Berry 46420770 2020-12-05T18:19:18 doc: comment Vala -newer test. This change updates https://bugs.gnu.org/44772. * bin/automake.in (lang_vala_finish_target): comment that we're checking "C file not older than Vala file", and the log message misleadingly says "reversed".
Karl Berry e83520ff 2020-12-03T11:00:53 warnings: be less forceful about a missing subdir-objects option. This change somewhat ameliorates https://bugs.gnu.org/20699. * bin/automake.in (handle_single_transform): change forward-incompatibility message for subdir-objects to be less draconian and less certain that the change will ever be made. * t/subobj.sh: message text has changed. * doc/automake.texi (Program and Library Variables): mention the unfortunate fact that one directory can clean in a sibling, subdir-objects notwithstanding.
Reuben Thomas 7581ec20 2020-11-27T18:02:08 vala: avoid wrong regeneration of C files. This change might fix https://bugs.gnu.org/44772. * bin/automake.in (lang_val_finish_target): reverse -newer test to handle files being created at the same time causing spurious rebuilds.
Reuben Thomas 782ac400 2020-11-07T18:44:56 vala: improve support, especially builddir vs. srcdir. This change fixes https://bugs.gnu.org/13002. * NEWS: mention these changes. * bin/automake.in: generated C files go in builddir, not srcdir. Distribute the header files generated from VAPI files. * t/vala-libs-distcheck.sh: new test for `make distcheck' of a Vala library. * t/vala-libs-vpath.sh: new test for a VPATH build of a Vala library. * t/vala-libs.sh: add local VAPIs used as external --package to test. * t/vala-recursive-setup.sh: we need to make maintainer-clean at one point to remove stamp files to avoid confusing a VPATH build performed after a non-VPATH build. * t/vala-non-recursive-setup.sh: likewise. * t/vala-parallel.sh: some test paths need changing to take into account that generated C files now go in builddir. * t/vala-per-target-flags.sh: likewise. * t/vala-recursive-setup.sh: likewise. * t/vala-vpath.sh: likewise.
Zack Weinberg bd09c76a 2020-09-18T13:40:20 Use WARNINGS=none to suppress warnings from autom4te runs. aclocal uses autom4te in trace mode to scan configure.ac for macros whose definition is not yet available. It has a kludge to prevent this from producing spurious warnings, but a cleaner, fully backward compatible, way to get the same effect is to set WARNINGS=none in the environment and not pass down any -W options. (This is better than passing -Wnone on the command line because it automatically inherits to any subprocesses started by autom4te.) Perl’s ‘local’ feature can be used to make the enviironment variable setting temporary, reverting to the previous value when we exit the function. automake also runs autom4te (technically autoconf) in trace mode; warnings from this invocation will not be *spurious*, but in the common case where the person running automake is going to run autoconf next, they will be duplicated. Therefore, make the same change to automake. * bin/aclocal.in (trace_used_macros) * bin/automake.in (scan_autoconf_traces): Use “local $ENV{WARNINGS}='none'” to suppress warnings from autom4te.
Zack Weinberg 9ae8a896 2020-09-11T16:17:41 Consistently process -W(no-)error after all other warning options. automake and aclocal were processing ‘-W(no-)error’ whenever it appeared on the command line, which means that ‘-Werror,something-strange’ would issue a hard error, but ‘-Wsomething-strange,error’ would only issue a warning. It is not desirable for warnings about unknown warning categories ever to be treated as a hard error; that leads to problems for driver scripts like autoreconf, which would like to pass whatever -W options it got on its own command line down to all the tools and not worry about which tools understand which warning categories. Also, this sort of order dependence is confusing for humans. Change parse_warnings to take just one option, the _complete_ list of warning categories seen on the command line, and to process -Werror / -Wno-error after processing all other warnings options. Thus, unknown warnings categories will always just be a plain warning. This does mean aclocal has to stop using parse_warnings as a Getopt::Long callback, but that’s not a big deal. Similarly, change parse_WARNINGS to record whether ‘error’ appeared in the environment variable, but not activate warnings-are-errors mode itself. parse_warnings picks up the record and honors it, unless it’s overridden by the command line. * lib/Automake/ChannelDefs.pm ($werror): New package global (not exported). (parse_WARNINGS): Do not call switch_warning for ‘error’ / ‘no-error’; just toggle the value of $werror. (parse_warnings): Do not call switch_warning immediately for ‘error’ / ‘no-error’; toggle $werror instead. Call switch_warning ‘error’ at the very end if $werror is true. Remove unused $OPTION argument. * bin/automake.in: parse_warnings now takes only one argument. * bin/aclocal.in: Call parse_warnings after parse_options instead of using it as a parse_options callback.
Zack Weinberg ab9ef6cf 2020-09-11T14:23:10 Sync ChannelDefs.pm from autoconf. ChannelDefs.pm *ought* to be kept in sync between automake and autoconf, because it defines the set of valid -W options, and autoreconf assumes that it can pass arbitrary -W options to all of the tools it invokes. However, it isn’t covered by either project’s ‘make fetch’ and it hasn’t actually *been* in sync for more than 17 years. This patch manually brings over all of the changes made on the autoconf side. Most importantly, there is a new warnings channel ‘cross’, for warnings related to cross-compilation. Also, the ‘usage’ function now *returns* the text to be put into a usage message, instead of printing it itself. (This is necessary on autoconf’s side.) * lib/Automake/ChannelDefs.pm: Sync from autoconf. (cross): New warnings channel. (portability-recursive): Document. (usage): Now returns the text to be printed, instead of printing it. (parse_warnings): Second argument may now be a list.
Zack Weinberg 5cafaafd 2020-08-31T18:31:04 perl: use warnings instead of -w; consistent ordering of use, etc. Per thread at: https://lists.gnu.org/archive/html/automake-patches/2020-08/msg00009.html * bin/aclocal.in: use warnings instead of #!...-w; consistent ordering of basic "use" directives, then BEGIN block, then standard modules in ASCII order, then Automake:: modules (not sort), finally use vars. Also sort @ISA lists and use qw(...) in ASCII order. * bin/automake.in: likewise. * lib/Automake/ChannelDefs.pm: likewise. * lib/Automake/Channels.pm: likewise. * lib/Automake/Condition.pm: likewise. * lib/Automake/Config.in: likewise. * lib/Automake/Configure_ac.pm: likewise. * lib/Automake/DisjConditions.pm: likewise. * lib/Automake/FileUtils.pm: likewise. * lib/Automake/General.pm: likewise. * lib/Automake/Getopt.pm: likewise. * lib/Automake/Item.pm: likewise. * lib/Automake/ItemDef.pm: likewise. * lib/Automake/Language.pm: likewise. * lib/Automake/Location.pm: likewise. * lib/Automake/Options.pm: likewise. * lib/Automake/Rule.pm: likewise. * lib/Automake/RuleDef.pm: likewise. * lib/Automake/VarDef.pm: likewise. * lib/Automake/Variable.pm: likewise. * lib/Automake/Version.pm: likewise. * lib/Automake/Wrap.pm: likewise. * lib/Automake/XFile.pm: remove unnecessary imports of Carp, DynaLoader, and File::Basename.
Karl Berry 3bbcf683 2020-08-28T16:26:54 automake: if TEST_EXTENSIONS is set to empty, don't look inside it. This change fixes https://bugs.gnu.org/42635. * bin/automake.in (handle_tests): do not use $test_suffixes[0] if it does not exist. * t/test-extensions-empty.sh: new test. * t/list-of-tests.mk (handwritten_TESTS): add it.
Paul Eggert cd8ef343 2020-07-26T15:01:34 Install directories mode 755 instead of using umask Problem reported by Antoine Amarilli in: https://lists.gnu.org/archive/html/automake/2019-01/msg00000.html and followed up by Akim Demaille in: https://lists.gnu.org/archive/html/bug-bison/2020-07/msg00040.html * bin/automake.in: Add a comment about this. * lib/install-sh: Ignore umask; just create directories mode 755 unless overridden via -m (for non-intermediate directories only). Also, fix 'umask=$mkdir_umask' typo. * lib/mkinstalldirs: Likewise.
Samy Mahmoudi ae911ae2 2020-04-06T18:25:24 cosmetics: typo in comment. This change fixes https://bugs.gnu.org/32100. * bin/aclocal.in (install_file): remove duplicate "the" in "Using the real the destination file ...".
Colomban Wendling a523b69a 2020-04-05T17:35:51 vala: more precise argument matching. This change fixes https://bugs.gnu.org/18734. * bin/automake.in (lang_vala_finish_target): anchor option regexp so that, e.g., an argument "vapi" does not match the option --vapi. * NEWS: mention this (and preceding checklinkx change, sorry).
Jim Meyering cf27a3df 2020-01-01T11:44:41 maint: make update-copyright
Karl Berry c1e1dd66 2019-12-16T19:45:22 automake: Ensure space after $(LISP) in tags dependencies. This change fixes automake bug#38139. * bin/automake.in (handle_tags): Concatenate with space in " @config". * t/tags-lisp-space.sh: New test. * t/list-of-tests.mk (handwritten_TESTS): Add it.
Giuseppe Scrivano 5c466eaf 2019-10-04T16:39:24 dist: add dist-zstd option Add support for using the zstd compression algorithm. Use a default compression setting of -19, and ".zst" as the suffix. * bin/automake.in (handle_dist): Add zstd to the list of known dist- suffixes. (preprocess_file): Map ZSTD to dist-zstd. * doc/automake.texi: Document the new option. * lib/Automake/Options.pm (_is_valid_easy_option): Add dist-zstd. * lib/am/distdir.am (dist-zstd): New rule. (?ZSTD?DIST_TARGETS): Add definition. (distcheck): Add a case for *.tar.zst*. * t/dist-formats.tap: Add tests. * NEWS: Mention the change.
Paul Eggert 5ae02cc8 2019-10-14T13:46:55 maint: make update-copyright
Gavin Smith 309a6c47 2019-08-25T21:07:58 automake: do not require @setfilename in Texinfo files Texinfo no longer requires a @setfilename directive in each .texi file, so automake now also relaxes its restriction. * bin/automake.in (scan_texinfo_file): Derive name of info file from name of input file if no @setfilename line occurs in the file. * t/txinfo-no-setfilename.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Mention it. Fixes automake bugs #36921 and #34201.
Mathieu Lirzin 51823f14 2018-02-20T23:18:09 bin: Rely only on the shebang line Previously ‘automake’ and ‘aclocal’ were handling the case of being interpreted as a Shell script by using a hack leveraging the fact that Shell and Perl has a compatible syntax intersection allowing those scripts to launch ‘perl’ from the shell. * bin/aclocal.in: Remove cryptic launching hack. * bin/automake.in: Likewise.
Mathieu Lirzin 74902aa2 2018-03-03T23:50:10 automake: Don't rely on List::Util to provide 'none' This change fixes automake bug#30631. This removes the use of List::Util which is not supported by Perl 5.6, by reimplementing the 'none' subroutine. * lib/Automake/General.pm (none): New subroutine. * bin/automake.in (handle_single_transform): Use it. * t/pm/General.pl: New test. * t/list-of-tests.mk (perl_TESTS): Add it. * NEWS: Update.
Khem Raj dc67b18d 2018-01-04T23:59:00 automake: Add default libtool_tag to cppasm * bin/automake.in (register_language): Define default libtool tag to be CC since CPPASCOMPILE is using CC to call assembler. Copyright-paperwork-exempt: yes
Mathieu Lirzin bbaa4cdc 2018-01-04T16:19:30 maint: Update copyright years to 2018 This update has been made with 'make update-copyright'.
Mathieu Lirzin 5e202df2 2017-09-23T12:19:43 maint: Make Emacs use 'makefile-automake-mode' * bin/local.mk: Specify mode name in the first line. * contrib/t/local.mk: Likewise. * doc/local.mk: Likewise. * lib/Automake/local.mk: Likewise. * lib/am/local.mk: Likewise. * lib/local.mk: Likewise. * m4/local.mk: Likewise. * t/local.mk: Likewise.
Mathieu Lirzin 6cb3b835 2017-09-22T23:06:15 maint: Configure Emacs automatically with ".dir-locals.el" * .dir-locals.el: New Emacs directory configuration file. All perl files adapted.
Mathieu Lirzin c2757b97 2017-09-19T13:43:07 maint: Reset master
Mathieu Lirzin 561f4736 2017-09-19T13:29:18 Merge branch 'minor'
Paul Eggert 8c81e7b8 2017-09-16T18:08:05 Fix a couple more http: URLs
Paul Eggert 3562e384 2017-09-16T13:03:36 Prefer https: URLs In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use https:, to discourage man-in-the-middle attacks when downloading software. The attached patch propagates these changes upstream to Automake. This patch does not affect files that Automake is downstream of, which I'll patch separately. Althouth the resources are not secret, plain HTTP is vulnerable to malicious routers that tamper with responses from GNU servers, and this sort of thing is all too common when people in some other countries browse US-based websites. See, for example: Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar S. Analyzing internet censorship in Pakistan. RTSI 2016. https://dx.doi.org/10.1109/RTSI.2016.7740626 HTTPS is not a complete solution here, but it can be a significant help. The GNU project regularly serves up code to users, so we should take some care here.
Paul Eggert 09c7f53e 2017-09-16T18:08:05 Fix a couple more http: URLs
Paul Eggert 199e7a44 2017-09-16T13:03:36 Prefer https: URLs In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use https:, to discourage man-in-the-middle attacks when downloading software. The attached patch propagates these changes upstream to Automake. This patch does not affect files that Automake is downstream of, which I'll patch separately. Althouth the resources are not secret, plain HTTP is vulnerable to malicious routers that tamper with responses from GNU servers, and this sort of thing is all too common when people in some other countries browse US-based websites. See, for example: Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar S. Analyzing internet censorship in Pakistan. RTSI 2016. https://dx.doi.org/10.1109/RTSI.2016.7740626 HTTPS is not a complete solution here, but it can be a significant help. The GNU project regularly serves up code to users, so we should take some care here.
Michael Haubenwallner 333b98f2 2017-08-16T18:16:12 automake: Depend on LIBOBJDIR for LIBOBJS and ALLOCA This change fixes automake bug#27781. * bin/automake.in: Add Makefile dependency on LIBOBJDIR/dirstamp for each LIBOBJS/ALLOCA source file found. * t/list-of-tests.mk (XFAIL_TESTS): Drop t/libobj-no-dependency-tracking.sh. * NEWS: Announce bug fix.
Mathieu Lirzin 274590d8 2017-09-14T21:01:19 Revert "automake: Handle LTLIBOBJS more specifically" This reverts commit 5521219348c55af354878583b99c5f9d66d6d38a.
Mathieu Lirzin f389ecb8 2017-08-31T19:23:42 Merge branch 'minor'
Mathieu Lirzin e94c0186 2017-08-31T14:42:13 build: Rename "Makefile.inc" Makefile fragments to "local.mk" This is done to follow a convention used by a lot of GNU packages. * bin/Makefile.inc: Rename to ... * bin/local.mk: ... this. * doc/Makefile.inc: Rename to ... * doc/local.mk: ... this. * lib/Automake/Makefile.inc: Rename to ... * lib/Automake/local.mk: ... this. * lib/am/Makefile.inc: Rename to ... * lib/am/local.mk: ... this. * lib/Makefile.inc: Rename to ... * lib/local.mk: ... this. * m4/Makefile.inc: Rename to ... * m4/local.mk: ... this. * contrib/t/Makefile.inc: Rename to ... * contrib/t/local.mk: ... this. * t/Makefile.inc: Rename to ... * t/local.mk: ... this. Adapt. * Makefile.am: Adapt.
Mathieu Lirzin 574b20e5 2017-07-08T20:18:45 build: Inline perl prototypes in sources Prototypes allows us to avoid using the '&foo' invocation form when invoking a subroutine before its definition. Previously those prototypes were generated to prevent them from falling out-of-sync with actual definitions. Now we provide a 'check-perl-protos' lint script to ensure that this is not the case. This has the same benefits as generating prototypes while simplifying the bootstrap/build process. * bin/gen-perl-protos: Remove. * bin/Makefile.inc: Adapt. * bootstrap: Likewise. * bin/aclocal.in: Inline prototypes. * bin/automake.in: Likewise. * maintainer/check-perl-protos: New lint script. * maintainer/syntax-checks.mk (sc_perl_protos): New target. (syntax_check_rules): Add it.
Mathieu Lirzin 99cf7ca5 2017-08-30T23:45:49 build: Generate versioned scripts at make time * configure.ac: Don't generate 'bin/aclocal-${APIVERSION}' and 'bin/automake-${APIVERSION}'. * bin/wrap-aclocal.in: Delete. * bin/wrap-automake.in: Likewise. * bin/Makefile.inc (%D%/automake-$(APIVERSION)) (%D%/aclocal-$(APIVERSION)): New targets. (CLEANFILES): Add them.
Mathieu Lirzin ab2d33e6 2017-08-29T21:15:14 aclocal: Support ACLOCAL_AUTOMAKE_DIR environment variable * bin/aclocal.in: Reset '@automake_includes' and '@system_includes' in for build environment. Allow setting '@automake_includes' with ACLOCAL_AUTOMAKE_DIR environment variable. (parse_arguments): Ignore 'dirlist' when '@system_includes' is empty. * doc/automake.texi (aclocal Options): Document ACLOCAL_AUTOMAKE_DIR. * bin/wrap-aclocal.in: Remove extra command line options. * pre-inst-env.in: Set ACLOCAL_AUTOMAKE_DIR and ACLOCAL_PATH environment variables. * t/ax/test-defs.in: Adapt. * t/ansi2knr-no-more.sh (warn_rx): Likewise.
Mathieu Lirzin dd0b8142 2017-08-29T14:16:24 config: Support AUTOMAKE_LIBDIR environment variable * lib/Automake/Config.in: Let AUTOMAKE_LIBDIR environment variable override the default location for '$libdir'. * doc/automake.texi (automake Invocation): Document AUTOMAKE_LIBDIR. * pre-inst-env.in (AUTOMAKE_LIBDIR): Set AUTOMAKE_LIBDIR. * bin/wrap-automake.in: Don't use "--libdir" option.
Mathieu Lirzin 37d403fd 2017-08-29T13:23:24 build: Use PERL5LIB from 'pre-inst-env' script * bin/aclocal.in: Detect build environment with AUTOMAKE_UNINSTALLED. Let 'PERL5LIB' from 'pre-inst-env' define the perl module directories. * bin/automake.in: Likewise. * bin/wrap-aclocal.in: Don't set 'Automake::perl_libdirs' anymore. * bin/wrap-automake.in: Likewise. * t/Makefile.inc (LOG_COMPILER, PL_LOG_COMPILER): Use 'pre-inst-env'. (AM_PL_LOG_FLAGS): Don't set perl module path.
Mathieu Lirzin bb64793a 2017-08-29T11:27:52 build: Move wrapped scripts in "bin" directory Those scripts are used both in the build process and for the tests, so it seems clearer to not hide them in "t/wrap" directory. * t/wrap/aclocal.in: Rename to ... * bin/wrap-aclocal.in: ... this. * t/wrap/automake.in: Rename to ... * bin/wrap-automake.in: ... this. * configure.ac: Generate "bin/aclocal-${APIVERSION}" and "bin/automake-${APIVERSION}" at configure time. * t/Makefile.inc (nodist_noinst_SCRIPTS): Move wrapped scripts ... * bin/Makefile.inc (nodist_noinst_SCRIPTS): ... here. * Makefile.am (extend_PATH): Use "bin" directory. * t/ax/test-defs.in (am_bindir): Likewise. * t/get-sysconf.sh: Likewise. * .gitignore: Update.
Mathieu Lirzin 55212193 2017-08-27T15:27:00 automake: Handle LTLIBOBJS more specifically * bin/automake.in (handle_LIBOBJS_or_ALLOCA): Remove complex regexp substitution when handling LTLIBOBJS.
Thomas Jahns fd244f28 2015-06-29T09:50:02 aclocal: Avoid problematic string interpolation This fixes bug#20903. Thanks to Eric Bavier for reporting this issue. * bin/aclocal.in (automake_includes): Avoid problematic string interpolation. * NEWS: Update. * THANKS: Thank Eric Bavier. Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
Thomas Martitz f4e91bfc 2017-03-13T12:41:59 automake: Shorter object file names under subdir-objects Combining the 'subdir-objects' option with target-specific flags had the consequence of producing long object file names. This was done to preventively ensure the uniqueness of object file names. We are now using shorter names by default, and handle long names when an actual conflict is detected. This will hopefully reduce the necessity of using the 'prog_SHORTNAME' facility. Example: previously: AUTOMAKE_OPTIONS = subdir-objects bin_PROGRAMS += path/to/foo path_to_foo_CFLAGS = $(AM_CFLAGS) -g resulted in objects: sub/path_to_foo-foo.o now object file name is: sub/foo-foo.o * bin/automake.in (proglist, liblist, ltliblist) (dup_shortnames): New globals. (initialize_per_input): Initialize them. (handle_targets): New subroutine. (handle_single_transform): Truncate object file names when possible. * t/subobj-objname-clash.sh: New test. * t/list-of-tests.mk (handwritten_TESTS): Add it. * NEWS: Update. Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
Mathieu Lirzin cc7231cc 2017-06-16T23:07:00 Merge branch 'minor'
Mathieu Lirzin c946ae6f 2017-06-16T22:46:16 Merge branch 'micro' into minor
Mathieu Lirzin 197426b3 2017-05-16T15:59:12 automake: Update 'read_am_file' docstring. * bin/automake.in (read_am_file): Update docstring which was referring to a non existent '%contents' variable.
Mathieu Lirzin d8add592 2017-03-02T18:55:53 maint: Update copyright years to 2017. This update has been made with 'make update-copyright'.
Jim Meyering 1370ce5f 2017-01-01T08:34:49 maint: update copyright dates for 2017 * all files: Run this command, using update-copyright from gnulib: UPDATE_COPYRIGHT_FORCE=1 \ UPDATE_COPYRIGHT_USE_INTERVALS=2 \ UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79 \ update-copyright $(git ls-files)
Jim Meyering b3da45ad 2016-09-08T18:58:43 automake: do not emit rule with two dependents On a system using our replacement alloca, make would emit this warning: target '.deps/alloca.Po' given more than once in the same rule That arose because automake would emit a rule depending on both ./.deps/alloca.Po and .deps/alloca.Po. Normally, duplicate dependents are avoided by virtue of their names being keys in the %dep_files hash, but in this case, that particular file was specified in two different ways. * bin/automake.in (handle_ALLOCA): When the $dir prefix is empty, make it './', to ensure that when we add ./.deps/alloca.Po it is deduped. See: http://bugs/gnu/org/22702
Paul Eggert 455bad28 2016-03-31T16:45:26 Merge branch 'minor'
Paul Eggert 323dabef 2016-03-31T16:40:20 Merge branch 'micro' into minor
Paul Eggert 13f00eb4 2016-03-31T16:35:29 automake: port to Perl 5.22 and later Without this change, Perl 5.22 complains "Unescaped left brace in regex is deprecated" and this is planned to become a hard error in Perl 5.26. See: http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#A_literal_%22{%22_should_now_be_escaped_in_a_pattern * bin/automake.in (substitute_ac_subst_variables): Escape left brace.
Stefano Lattarini 6357a630 2015-01-06T13:17:23 Merge branch 'minor' * minor: deps: fix corner-case "make distclean" bug compile: don't place built object files in $(srcdir), ever ... tests: fix some bugs in an XFAILing test deps: 'subdir-object' option now works when foo_SOURCES contains $(var) NEWS: fix a typo Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 08849db8 2015-01-03T01:33:45 deps: fix corner-case "make distclean" bug Assume we have package satisfying the following conditions: (1) automatic dependency tracking is enabled; (2) the 'subdir-objects' Automake option is enabled; (3) the package uses a recursive make setup. Also assume that: (a) a subdir Makefile declares a foo_SOURCES variable containing a source file in the parent directory; (b) that parent Makefile declare a compiled program itself. Then BSD and Solaris make used to fail when running "make distclean", because the 'distclean' target of the subdir Makefile removed the whole '.deps' directory before the parent Makefile was done with the included '.Po' makefile fragments in that directory. This issue was revealed by failures in the 'subobj-vpath-pr13928.sh' test when those make implementations were used. We fix the issue by ensuring the 'distclean' target of any Makefile only removed the '.Po' makefile fragments included by it, rather than the whole '.deps' directory where such files resides. This change should be the last step in fixing automake bug#13928 for good. * bin/automake.in (handle_languages), lib/am/depend.am: Adjust to implement the new 'distclean' logic. * t/pr224.sh: Adjust to avoid a spurious failure. * PLANS/subdir-objects.txt: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1b4c84b8 2015-01-02T14:47:36 compile: don't place built object files in $(srcdir), ever ... ... even when a source file is specified as '$(srdir)/foo.c' or '$(top_srcdir)/bar.c'. And ditto for dependency-tracking makefile fragments (those under '.deps' directories). Such issues used to occur when the 'subdir-objects' option was given. This change should fix the second and last part of automake bug#13928. See also bug#16375 and bug#15293. * NEWS: Update. * bin/automake.in (handle_single_transform): Make sure object files and dependency-tracking makefile fragments coming from source like '$(srcdir)/foo.c' and '$(top_srcdir)/bar.c' are placed respectively under $(builddir) and $(top_builddir). * t/subobj-vpath-pr13928.sh: Enhance to expose even more aspects of the bug we've just fixed. * t/subobj-pr13928-more-langs.sh: New test, similar to the one above, but with non-C languages as well. * t/list-of-tests.mk (XFAIL_TESTS): Remove 'subobj-vpath-pr13928.sh', it's now supposed to pass. (handwritten_TESTS): Add 'subobj-pr13928-more-langs.sh'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 6a675ef1 2014-12-24T10:57:17 deps: 'subdir-object' option now works when foo_SOURCES contains $(var) Following a suggestions of Johan Kristensen, we have config.status use 'make' invocations rather than Makefile-parsing 'sed' hacks to bootstrap the dependency-tracking '.Po' and '.Plo' makefile fragments. To handle the inclusion of such files that are still missing when make is first we basically generate a temporary Makefile without these includes, and call 'make' on that Makefile. This fixes the serious bug bug#13928, which was an hard blocker to make the behavior mandated by the 'subdir-object' active by default (which we want to do in Automake 2.0). The issue has also been reported in bug#15919. * NEWS, THANKS: Update. * bin/automake.in (handle_languages): Add a trailing "marking" comment ("# am--include-marker") to the generated Makefile lines issuing 'include' directives for the dependency-tracking '.Po' and '.Plo' makefile fragments. Also rename the generated Makefile variable 'am__depfiles_maybe' to the clearer 'am__maybe_remake_depfiles'. Minor unrelated refactoring. * lib/am/configure.am: Adjust to account for the 'am__depfiles_maybe' -> 'am__maybe_remake_depfiles' renaming. * lib/am/depend.am: Add rules to generate a dummy version of all the dependency-tracking '.Po' and '.Plo' makefile fragments. * m4/depout.m4: Use make invocations rather than Makefile-parsing sed hacks to bootstrap the dependency-tracking '.Po' and '.Plo' makefile fragments. We still use some sed trickery in order to remove the inclusion of the still non existing .Po and .Plo files from the Makefile we invoke make upon; this is done stripping lines that contain the magic string "# am--include-marker". * m4/make.m4 (AM_MAKE_INCLUDE): Given that now automake generates Makefiles containing include statements with trailing comment, adjust the checks done here to make sure $MAKE support that; e.g., "include foo.mk # comment" rather than just "include foo.mk". Also refactor and adjust to leave better debugging info in config.log. * t/postproc.sh: Rename ... * t/depend-postproc.sh: ... to this, and adjust and enhance. * t/list-of-tests.mk (handwritten_TESTS): Adjust. (XFAIL_TESTS): Remove 't/subobj-indir-pr13928.sh', which is now succeeding. * t/subobj-indir-pr13928.sh: Simplify slightly, now that we expect it to pass. * t/depcomp8a.sh: Adjust grepping check to account for the changes in the generated Makefile, and tp be somewhat more robust in light of possible future modifications. * t/depcomp8b.sh: Likewise. * t/subobj11b.sh: Likewise. * t/subobj11c.sh: Likewise. * t/extra-sources.sh: Likewise. * t/lex-depend-grep.sh: Likewise. * t/lex-depend-cxx.sh: Add a command to help debugging in case of test failure. Helped-by: Johan Kristensen <johankristensen@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2f0293e1 2015-01-05T22:55:51 Merge branch 'minor' * minor: maint: update copyright years to 2015 (branch 'micro')
Stefano Lattarini 5de75f07 2015-01-05T22:48:33 maint: update copyright years to 2015 (branch 'micro') Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a4c0c62d 2012-12-24T11:23:06 texinfo: remove hack about info files in CLEANFILES variables Automake used to implement an undocumented hack causing '.info' files that appeared to be cleaned (by e.g. being listed in the CLEANFILES variable) to also be built in the builddir rather than in the srcdir; this was for backward compatibility with packages such as Texinfo, which did things like: info_TEXINFOS = texinfo.txi info-stnd.texi info.texi DISTCLEANFILES = texinfo texinfo-* info*.info* # Do not create info files for distribution. dist-info: in order not to distribute .info files. Now that we have the 'info-in-builddir' option that explicitly causes generated '.info' files to be placed in the builddir, this hack is no longer necessary, and we can remove it (after having deprecated it in the Automake 1.14 release already). * bin/automake.in (handle_texinfo_helper): Remove the hack. Adjust comments accordingly. * NEWS: Update. * t/txinfo23.sh: Delete as obsolete. * t/txinfo25.sh: Likewise. * t/txinfo24.sh: Likewise. * t/txinfo28.sh: Delete as mostly obsolete, its only still relevant parts moved ... * t/mdate5.sh: ... into this test. * t/txinfo-clean.sh: Remove references to deleted tests. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 033293c2 2014-12-22T19:10:55 Merge branch 'minor' * minor: cleanup: refactor code to initialize DIST_COMMON dist: ordering of files in DIST_COMMON is deterministic now tests: refactor some tests on DIST_COMMON maint: make output of 'gen-testsuite-part' deterministic When computing lispdir, don't load emacs site wide init file. PATH: quote $(PATH_SEPARATOR) as well Improve detection of GNU make, avoiding "Arg list too long" errors.
Stefano Lattarini 88ac92b2 2014-12-22T17:56:22 Merge branch 'micro' into minor * micro: cleanup: refactor code to initialize DIST_COMMON dist: ordering of files in DIST_COMMON is deterministic now tests: refactor some tests on DIST_COMMON maint: make output of 'gen-testsuite-part' deterministic When computing lispdir, don't load emacs site wide init file. PATH: quote $(PATH_SEPARATOR) as well Improve detection of GNU make, avoiding "Arg list too long" errors.
Stefano Lattarini 91238345 2014-12-22T13:39:30 cleanup: refactor code to initialize DIST_COMMON There is not need to make that an Automake variable early, only to later get and munge its contents, and use the new content to redefine the variable. * bin/automake.in (@dist_common): New global variable. (push_dist_common, handle_dist): Use it. (handle_dist): Define am__DIST_COMMON instead of DIST_COMMON directly. (initialize_per_input): Reset it to empty. ($configure_dist_common): Turn this scalar variable ... (@configure_dist_common): ... into this array variable. (handle_dist): Adjust. (required_file_check_or_copy): Update and wrap some comments. * lib/am/distdir.am (DIST_COMMON): Append $(am__DIST_COMMON). * t/distcom2.sh: Tighten a little. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2c0ffb86 2014-12-22T11:20:14 dist: ordering of files in DIST_COMMON is deterministic now It had likely stopped being deterministic due to the new perl behavior of having non-deterministic order of numerating hash keys: <http://search.cpan.org/dist/perl-5.18.0/pod/perldelta.pod#Hash_randomization> <http://onionstand.blogspot.ie/2012/12/are-you-relying-on-hash-keys-being.html> See also similar commit v1.14-19-g52e6404, albeit in this case the issue is likely coming from autom4te/autoconf, not from automake itself. Fixes automake bug http://debbugs.gnu.org/17908 * bin/automake.in (handle_dist): Sort @dist_common. (print_autodist_files): Swap invocations of 'sort' and 'uniq', for consistency with the new code in 'handle_dist' and to get rid of a minor hack. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 90425304 2014-04-22T21:48:53 Merge branch 'minor' * minor: init: ensure $ac_aux_dir is defined before being used
Stefano Lattarini 7bc59270 2014-04-21T17:12:41 init: ensure $ac_aux_dir is defined before being used Since we use '$ac_aux_dir' to define '$am_aux_dir', we need to ensure the former has been initialized before we try to define the latter, otherwise the definition: am_aux_dir=`cd $ac_aux_dir && pwd` will set '$am_aux_dir' to '$HOME', likely causing weird and unexpected behaviours. This change fixes automake bug#15981. * m4/auxdir.m4 (AM_AUX_DIR_EXPAND): AC_REQUIRE expansion of 'AC_CONFIG_AUX_DIR_DEFAULT'. Fix redundant comment and AC_PREREQ, add extra quoting around '$ac_aux_dir'. * t/auxdir-pr15981.sh: New test. * t/auxdir-cc-pr15981.sh: Likewise. * t/list-of-tests.mk (handwritten_TESTS): Add them. * THANKS, NEWS: Update. * bin/automake.in: Fix a harmless typo in comments, that I happened to notice while writing this patch. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a000546b 2014-04-21T15:12:29 Merge branch 'minor' * minor: maint: update copyright years maint: sync files from upstream ("make fetch") Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a78f63c5 2014-04-21T15:10:54 maint: update copyright years We've been in 2014 already for few months now... Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini bd31e343 2013-12-26T21:01:30 Merge branch 'minor' * minor: Allow user to extend .PRECIOUS target cosmetics: remove a couple of extra trailing white spaces tests: fix a spurious failure on Mac OS X docs: make clear the JAVA primary is frozen install-sh: a slightly better diagnostic, and tests enhancements install-sh: be stricter in catching invalid usages tests: more significant names for some tests tests: some cosmetic fixes tests: more significant names for a test docs: drop a few obsolescent FIXME/TODO comments, and associated text testsuite harness: report test exit status in log file TAP driver: no need to invoke AC_PROG_AWK directly TAP driver: remove perl implementation (move it into contrib/) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f0a7083a 2013-12-26T19:31:15 Allow user to extend .PRECIOUS target References: <http://lists.freedesktop.org/archives/systemd-devel/2013-July/012155.html> <http://lists.gnu.org/archive/html/automake/2013-07/msg00011.html> * bin/automake.in: Adjust to ensure we handle '.PRECIOUS' the same way we do for '.PHONY' and '.MAKE'. * lib/Automake/Rule.pm: Likewise. * t/precious.sh: New test. * t/list-of-tests.mk: Add it. * t/phony.sh: Enhance a little while at it. * NEWS: Update. * THANKS: Likewise. Reported-by: Holger Hans Peter Freyther <holger@freyther.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f61b6ef9 2013-06-13T01:48:54 Merge branch 'maint' * maint: THANKS: update e-mall address for Ralf Corsepius lang, suffix rules: don't require C stuff needlessly tests: expose automake bug#14560 maint: add a missing copyright notice sync: update config.guess from upstream tests: expose automake bug#13928 comments: fix some out-of-sync refs to test scripts tests: expose automake bug#13940
Stefano Lattarini 6febcd41 2013-06-12T21:22:58 Merge branch 'micro' into maint * micro: THANKS: update e-mall address for Ralf Corsepius lang, suffix rules: don't require C stuff needlessly tests: expose automake bug#14560 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini fefd1876 2013-06-03T22:25:24 fixup: botched merge for 'bin/automake.in' * bin/automake.in (print_autodist_files): Here, we had unwittingly botched up a 'format' invocation during the latest maint -> master merge. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d2d3b76a 2013-06-03T21:20:51 Merge branch 'maint' * maint: configure: remove an obsolete TODO comment post-release: micro version bump (1.13.3a) release: stable micro release 1.13.3 typofix: fix grammaro in comments in t/tags-pr12372.sh NEWS: minor fixlets, re-wording, and better text wrapping tests: slightly stricter checks in t/cxx-demo.sh tests: fix spurious failure when 'etags' program is Exuberant Ctags tests: fix spurious failure due to missing sleeps maint: version bump after beta release 1.13b release: beta release 1.13b (will become 1.14) maint: support new Automake versioning scheme in tagging/uploading rules announcement: can be generated from development snapshots as well announcement: can be generated from development snapshots as well announcement: be less strict in the paring of NEWS maint: version bump after beta release 1.13.2b release: beta release 1.13.2b (will become 1.13.3) sync: update config.guess from upstream automake: assume we can always pass '-o' to the C compiler NEWS: document recent testsuite fixes (MinGW/MSYS related) depcomp: avoid trailing backslash in depfile for depmode=msvc7 tests: prune some weed in a non-POSIX test tests: avoid a spurious failure on MSYS t/README: document "run_make", discourage "make -e" cosmetics: tiny whitespace fixlets tests: avoid a spurious failure with MSVC tests: avoid a spurious failure on non-POSIX systems Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Rosin 9f325eea 2013-05-30T11:31:02 automake: assume we can always pass '-o' to the C compiler It is assumed that we can pass -c -o to the C compiler, so remove some special casing and always do that. This change is similar in spirit to v1.13.1d-217-g7299c4d "depend: assume we can always pass '-o' to the C compiler" This change also happen to fix a testsuite failure (t/silent-many-languages.sh) when mixing MSVC and GNU fortran, which have different default object file extensions (.obj vs. .o). This difference in object file extension is not handled well and caused Automake to look for MSVC objects with .o extension. Always using -o makes MSVC create .o object files and linking succeeds. Not that anybody recommends mixing toolchains or anything. * bin/automake.in (handle_languages): Remove conditional modification of 'output_flag' entry for 'c'. (register_language ('name' => 'c')): Add 'output_flag' entry set to '-o'. Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Stefano Lattarini 3492b7a8 2013-05-29T10:50:35 Merge branch 'maint' * maint: NEWS: fix typos and grammaros NEWS: document fix for bug#14441 Automake::Rule: consistently prepend underscore to private variables Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() Automake::Rule: adjust comments and POD according to previous changes Automake::Rule: make private variables lexically scoped suffix rules: better distinction between builtin and user-derived Automake::Rule: expose suffix rules as a function, not a scalar tests: expose automake bug#14441
Stefano Lattarini c98d5235 2013-05-29T10:39:58 Merge branch 'micro' into maint * micro: NEWS: fix typos and grammaros NEWS: document fix for bug#14441 Automake::Rule: consistently prepend underscore to private variables Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() Automake::Rule: adjust comments and POD according to previous changes Automake::Rule: make private variables lexically scoped suffix rules: better distinction between builtin and user-derived Automake::Rule: expose suffix rules as a function, not a scalar tests: expose automake bug#14441
Stefano Lattarini f7e61899 2013-05-20T11:40:36 automake: remove one extra trailing whitespace * bin/automake.in (lang_vala_ignore): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini fb653b7d 2013-05-20T11:25:04 automake: cosmetic changes in indentation and line breaks * bin/automake.in (handle_LIBOBJS_or_ALLOCA): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 89fdcc96 2013-05-19T22:18:54 Merge branch 'maint' * maint: tests: fix a spurious failure on NetBSD 5.1 texi: build version.texi and stamp-vti in srcdir tests: fix a botched heading comment tests: fix another spurious with FreeBSD make tests: fix a spurious failure with FreeBSD make
Stefano Lattarini 8f252e4c 2013-05-19T16:48:19 texi: build version.texi and stamp-vti in srcdir Do so even when the 'info-in-builddir' option is present, or when the corresponding '*.info' files are listed in $(CLEANFILES) or in $(DISTCLEANFILES). This fixes failures in the following tests, when they are run with $MAKE pointing to FreeBSD make: - txinfo-nodist-info.sh - txinfo23.sh - txinfo24.sh - txinfo28.sh - txinfo25.sh BTW, notice that the test 'txinfo-builddir.sh' fails with FreeBSD make as well, but that is due to a known FreeBSD make VPATH issue (the same described in automake bug#7884). But that is not a regression, since the 'info-in-builddir' option will be new in Automake 1.14. Moreover, we already warn in the manual that the use of that option can indeed cause problems with VPATH builds done by non-GNU make. * bin/automake.in (handle_texinfo_helper): New local variable '$soutdir'. Use it instead of '$outdir' where appropriate (in particular, in the transform used on file 'texi-vers.am'. * t/txinfo-builddir.sh: Adjust to avoid spurious failures. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ca41efd3 2013-01-10T21:52:18 depend: reduce code duplication, de-uglify make verbose output Verbose output from compilation recipes had been made more messy by the previous "simplifying" commit v1.13.1d-220-g1fa0c24. With this patch, not only we reduce some code duplication, but also improve that output again, for the joy of users who dislike silent-rules :-) * lib/am/depend2.am: Use the new '%XSOURCE%' transform, instead of copying and pasting the idiom for VPATH rewrite emulation over and over. Fix some indentation and line-wrapping issues while at it. * bin/automake.in (handle_languages): Implement the new transform. * t/silent-nested-vars.sh: Adjust to avoid spurious failures. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1fa0c24d 2013-01-10T18:04:33 depend: refactor and remove code duplication * lib/am/depend2.am: Here. The obsolescent comments removed from this same file in commit 'v1.13.1-42-g8f06bfb' of 2012-01-09, "depend2.am: fix comments on verbosity of compilation rules", gave the rationale for why that code duplication was there in the first place (rationale that, like those comments, has been obsolete by the silent-rules introduction). * bin/automake.in: Given the refactoring in 'depend2.am', there is no longer need to add extra trailing whitespace to the entries of the '%sourceflags' hash (which are used for the '%SOURCEFLAG%' transform when 'depend2.am' is processed. * t/fort2.sh: Adjust to avoid spurious failures. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 9fabb5e4 2013-01-10T19:54:13 Automake::Language: drop unused fields 'compile_flag' and 'output_flag' They are unused after the recent flurry of changes. This is just a simplification; no semantic change is intended. * lib/Automake/Language.pm (Class::Struct): Remove unused fields here. * bin/automake.in: And here, in all the 'register_language()' invocations. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 20d337a7 2013-01-10T19:48:14 depend: assume '-c' compiler flag always means to produce object files Rather than fully-fledged executables. This is the case for all the compilers of all languages supported by Automake. This is just a simplification; no semantic changes are intended. * bin/automake.in (handle_languages): Drop transform '%-c%'. * lib/am/depend2.am: Adjust to just assume the '%-c%' transform expands to "-c". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7299c4d2 2013-01-10T19:38:58 depend: assume we can always pass '-o' to the C compiler This is the case after the change in commit v1.13.1-56-g34001a9 of 2013-01-09 (compile: use 'compile' script when "-c -o" is used with losing compilers). This is just a simplification; no semantic changes are intended. * bin/automake.in (handle_languages): Drop transform '%-o%', and definitions of '$output_flag'. * lib/am/depend2.am: Adjust to just assume the '?-o?' transform is true, and the '%-o%' transform expands to "-o". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5b40c4e7 2013-01-08T14:04:00 cleanup: having subdir-objects mandatory allow us some simplifications Few minor cleanups made possible by earlier changes, plus other minor cleanups triggered in cascade. No semantic change is intended. This is a follow-up on previous commit 'v1.13.1d-214-g3ad07d2', and an adjusted backport of Automake-NG commit 'v1.12.1-315-gc97d41b' of 2012-06-08 ([ng] cleanup: after enabling of subdir-objects unconditionally). * bin/automake.in (LANG_IGNORE, LANG_SUBDIR): Remove. (handle_languages): Drop the '%DEPBASE%' transform when processing the '$rule_file'. (register_language ('name' => 'vala', ...)): Add '.vapi' to the entry 'extensions', and simplify the entry 'output_extensions' to point to a dummy subroutine (since it wasn't really used anyway). (handle_single_transform): No longer expect the 'lang_*_rewrite' subroutines to return a 'LANG_*' constant, but only a transformed extension, if required. To decide whether further processing of the source file should be stopped, rely on a new set of 'lang_*_ignore' subroutines, defaulting to a subroutine that returns false. Accordingly, don't special case the handling of '.vapi' files anymore, instead rely on ... (lang_vala_ignore, lang_header_ignore): ... these new subroutines to avoid extra processing of C/C++ headers and Vala '.vapi' headers. (lang_java_rewrite): Remove. Remove an outdated comment. * lib/am/depend2.am: Partial rewrite to reduce code duplication and drop use of the '%DEPBASE%' transform. * t/compile_f_c_cxx.sh: Adjust. 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 83609bfe 2013-05-14T12:15:07 Merge branch 'maint' * maint: build: fixup for building in a VPATH setup
Stefano Lattarini e142bcb0 2013-05-14T12:12:44 build: fixup for building in a VPATH setup * bin/Makefile.inc (%D%/automake, %D%/aclocal): Make sure that the directory where the targets scripts are going to be built exists, before trying to create said scripts. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 65643c8d 2013-05-11T01:06:58 Merge branch 'maint' * maint: options: try to report as much errors as possible warns: don't tell AM_PROG_MKDIR_P is going to be removed refactor: fix few "inverted boolean" usages options: better name for an internal function options: more consistency in use of return statuses to report errors options: tiny simplification in dealing with erroneous opts options: consistently use return statuses to report errors options: re-enable some sanity checks THANKS: update Eric Blake's e-mail address NEWS: typofix Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>