lib/am


Log

Author Commit Date CI Message
Mike Frysinger 34bdde96 2023-01-04T02:00:14 maint: make update-copyright
Zack Weinberg 5615016c 2022-09-28T09:06:40 dist: ignore "silly rename" files from nfs/afs/smb. This change is per automake thread: https://lists.gnu.org/archive/html/automake/2022-09/msg00002.html * lib/am/distdir.am (distcleancheck_listfiles): filter "silly rename" files (.nfs* .smb* .__afs*), unavoidably created by deleting files that are still open in some process on network file systems.
Richard Hopkins d4801dff 2022-09-26T09:04:59 automake: load -l bytecomp for Emacs. * lib/am/lisp.am (.el.elc): Require the bytecomp library so byte-compile-dest-file-function can be used when available.
Richard Hopkins bee2ab12 2022-09-26T08:57:43 automake: silent make output for Emacs byte compilation. * lib/am/lisp.am: Use $(AM_V_GEN) in .el.elc rule. * NEWS: mention this. * THANKS: add new contributor.
Jan Engelhardt f9fdcdfd 2022-05-23T13:47:02 deps: create empty file instead of dummy file. This change is per an automake thread, see both before and after: https://lists.gnu.org/archive/html/automake/2022-05/msg00006.html * lib/am/depend.am ($(am__depfiles_remade)): create empty files for dependencies instead of files with a line '# dummy'. Turns out this is noticeably faster. * THANKS: update Jan's email address. * NEWS: mention this.
Mike Frysinger 38da1d90 2022-02-17T04:35:03 python: use xargs -n when uninstalling files Fixes automake bug https://bugs.gnu.org/53340. If the system has xargs, then utilize it to uninstall files to stay within long command line limits. If the system doesn't have xargs, fall back to running the remove command one at a time. Since every reasonable system should have `xargs -n`, and POSIX requires it, the fallback probably rarely gets used, so don't bother optimizing. * lib/am/inst-vars.am: Use am__xargs_n to call rm -f on the files. * lib/am/python.am: Drop am__base_list and for loop and let the am__uninstall_files_from_dir break up the long command lines. * m4/init.m4: Call _AM_PROG_XARGS_N. * m4/xargsn.m4: New test for `xargs -n`.
Mike Frysinger 3099097d 2022-02-17T03:50:55 rm: handle -f w/no arguments gracefully Fixes automake bug https://bugs.gnu.org/10828. Delete the configure check that would abort if `rm -f` does not work, and delete the plans to make this a hard requirement in the future. Instead, test to see if `rm -f` fails w/out arguments. If it does, define am__rm_f such that it always passes at least the "" argument when deleting files. If it doesn't fail, then we can omit the "". Then go through lib/am/ and update places where we use the pattern `test -z ... || rm -f ...` and replace with $(am__rm_f). * NEWS: Mention support for `rm -f` w/out arguments. * PLANS/rm-f-without-args.txt: Remove. * lib/am/check.am: Use new $(am__rm_f) helper. * lib/am/clean.am: Likewise. * lib/am/header-vars.am: Likewise. * lib/am/inst-vars.am: Likewise. * lib/am/libs.am: Likewise. * lib/am/ltlib.am: Likewise. * lib/am/progs.am: Likewise. * lib/am/texinfos.am: Likewise. * m4/init.m4: Delete `rm -f` checks and call _AM_PROG_RM_F. * m4/rmf.m4: Define new _AM_PROG_RM_F macro. * t/rm-f-probe.sh: Update test.
Mike Frysinger 6097de0a 2022-02-15T22:25:35 python: fix exit status handling with uninstall The st variable is set at the top of this shell script, and then here is a pipeline where it tries to update it in the subshell. But since setting variables in a subshell doesn't propagate back up, it doesn't actually work. Have the final subshell in the pipeline manage its own exit status and exit with that so that the final status of the pipeline is the right value. * lib/am/python.am: Fix final subshell exit status passing.
Mike Frysinger 5c9e117c 2022-02-08T00:39:40 elisp: run emacs with --no-site-file Fixes automake bug https://bugs.gnu.org/21547. If users have interactive site file logic, the lispdir probing can hang, as can the compilation of elisp files. Use --no-site-file to disable loading any of that possible user logic. * NEWS: Note emacs --no-site-file change. * doc/automake.texi: Run emacs with --no-site-file. * lib/am/lisp.am: Likewise. * m4/lispdir.m4: Likewise.
Mike Frysinger 9daa34db 2022-01-24T03:08:13 texi: define new AM_TEXI2FLAGS variable To provide a bit more flexibility when invoking TEXI2DVI & TEXI2PDF, and provide a bit of symmetry with .info & .html generation, provide a AM_TEXI2FLAGS setting that is passed to all TEXI2xxx invocations. * doc/automake.texi: Mention new AM_TEXI2FLAGS setting. * lib/am/texibuild.am: Pass $(AM_TEXI2FLAGS) to TEXI2DVI & TEXI2PDF. * NEWS: Mention AM_TEXI2FLAGS. * t/txinfo-many-output-formats.sh: Check for AM_TEXI2FLAGS.
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.
Jim Meyering 6c8ff6a8 2022-01-12T14:15:12 maint: make update-copyright
Mike Frysinger a320a092 2021-11-27T17:43:00 dejagnu: add support for silent builds with site.exp. * lib/am/dejagnu.am (site.exp): Use $(AM_V_GEN) and merge all independent shell calls into one.
Mike Frysinger b7868119 2021-10-31T12:52:43 config headers: add support for silent builds * lib/am/remake-hdr.am (%STAMP%): Use $(AM_V_at) and $(AM_V_GEN). (%CONFIG_HIN%): Likewise.
Dimitri Papadopoulos 522e0d40 2021-08-07T17:54:17 doc: typos from codespell. * HACKING: typo from codespell. * doc/local.mk: likewise. * lib/am/header-vars.am: likewise. * lib/am/lisp.am: likewise. * t/cond24.sh: likewise. * t/cond36.sh: likewise. * t/dist-auxdir-many-subdirs.sh: likewise. * t/link_override.sh: likewise. * t/parallel-tests-console-output.sh: likewise. * t/subobj11a.sh: likewise. * t/subobj11b.sh: likewise.
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.
Reuben Thomas d2ccbd7e 2020-12-05T18:11:55 tags: support setting CTAGS, ETAGS, CSCOPE vars via ./configure. This change fixes https://bugs.gnu.org/45013. * m4/init.m4: add default settings and AC_SUBST calls for the variables `CTAGS', `ETAGS' and `CSCOPE'. * lib/am/tags.am: remove default settings of the above variables. * doc/automake.texi (Tags): mention and index. * NEWS: mention.
Robert Menteer 37b70ac4 2020-11-13T17:50:09 dejagnu: quote `pwd` when writing "set objdir" line to site.exp. This change fixes https://bugs.gnu.org/44600. * lib/am/dejagnu.am (site.exp): quote set objdir line. * NEWS: mention this.
Karl Berry dbc1c9e7 2020-10-06T18:16:14 automake: install-exec did not depend on $(BUILT_SOURCES). This change fixes https://bugs.gnu.org/43683. * lib/am/install.am (install-exec): %maybe_BUILT_SOURCES% dependency, twice. Basic patch from madmurphy (tiny change), message#8. (.MAKE) [maybe_BUILT_SOURCES]: depend on install-exec. * NEWS: mention it. * doc/automake.texi (Sources): mention this (also that make dist depends on $(BUILT_SOURCES)). * t/built-sources-install-exec.sh: new test. * t/list-of-tests.mk (handwritten_TESTS): add it. * t/built-sources-install.sh: typo. * t/built-sources-check.sh: typo.
Karl Berry 216d1834 2020-06-06T15:42:54 automake: support AM_TESTSUITE_SUMMARY_HEADER override. This change handles https://bugs.gnu.org/11745. * lib/am/check.am (AM_TESTSUITE_SUMMARY_HEADER): new variable. Default value is " for $(PACKAGE_STRING)", including quotes, to keep the default output the same. ($(TEST_SUITE_LOG)): use it, unquoted. * doc/automake.texi (Scripts-based Testsuites): document it. * NEWS: mention it. * t/testsuite-summary-header.sh: new test. * t/list-of-tests.mk (handwritten_tests): add it. * t/ax/testsuite-summary-checks.sh: fix typo.
Karl Berry 04567be6 2020-05-17T09:36:15 automake: new variable AM_DISTCHECK_DVI_TARGET to override "dvi". This change fixes https://bugs.gnu.org/8289. * lib/am/distdir.am (AM_DISTCHECK_DVI_TARGET): define as dvi. (distcheck): use it, isntead of hardcoding dvi. * lib/Automake/Variable.pm (%_silent_variable_override): add AM_DISTCHECK_DVI_TARGET. * t/distcheck-override-dvi.sh: new test. * t/list-of-tests.mk (handwritten_TESTS): add it. * doc/automake.texi (Checking the Distribution): document this. (Third-Party Makefiles): explicitly mention that EMPTY_AUTOMAKE_TARGETS is not a built-in or special name. Various other index entries and wording tweaks. * NEWS (Distribution): mention this.
Lukas Fleischer 6207236f 2020-01-29T18:12:29 python: properly uninstall __pycache__ in subdirectories This change finishes fixing automake bug#32088: https://debbugs.gnu.org/32088 * lib/am/python.am (uninstall-%DIR%PYTHON): Uninstall byte-compiled files in a '__pycache__' subdirectory from sub/__pycache__/, not __pycache__/sub/. (am__pep3147_tweak): prefix __pycache__ here, for both .pyc and .pyo. https://lists.gnu.org/archive/html/automake-patches/2018-05/msg00000.html * t/instmany-python.sh (limit): increase to 4500, following Andreas Huettel, https://debbugs.gnu.org/32088#11.
Karl Berry b87f2974 2020-01-04T17:06:40 automake: Support byte compilation in older Emacsen * lib/am/lisp.am (am__emacs_byte_compile_setup) [FIRST]: define new make variable, to use byte-compile-dest-file-function if available, else byte-compile-dest-file. (.el.elc): use it. * t/lisp-loadpath.sh: skip test if emacs version is <= 23, since their -L ordering is backwards. * NEWS: update.
Jim Meyering cf27a3df 2020-01-01T11:44:41 maint: make update-copyright
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
Mathieu Lirzin a348d830 2018-07-08T23:41:42 python: Don't use '\n' in sed substitution This change fixes automake bug#31222. On macOS, 'sed' interprets '\n' in the substitution text as the letter 'n' instead of as a newline. * lib/am/python.am [?FIRST?] (am__pep3147_tweak): Use a space instead of '\n'. * NEWS: Update.
Mathieu Lirzin 006c4dfe 2018-02-04T00:09:31 python: Avoid exceeding command-line length limit With Python implementations following PEP-3174, a large number of files are installed in the ‘__pycache__’ directory. As a consequence “t/instmany-python.sh” test was failing due to the ‘uninstall-pythonPYTHON’ target deleting installed files in a single ‘rm’ command. Doing that in multiple steps avoids exceeding the command-line length limit. This fixes bug#30335. * lib/am/python.am (uninstall-%DIR%PYTHON): For byte-compiled files installed in '__pycache__' directory, uninstall them by batch of 40. [?FIRST?] (am__pep3147_tweak): Adapt.
Mathieu Lirzin bbaa4cdc 2018-01-04T16:19:30 maint: Update copyright years to 2018 This update has been made with 'make update-copyright'.
Jim Meyering 3f8a2dd5 2017-11-22T21:07:29 port elisp-compilation support to emacs-23.1 and newer In May of 2017, emacs.master support for using the long-deprecated byte-compile-dest-file function was removed, and that removal broke automake's elisp-compiling rule for any .el file not in the current directory. In emacs-23.1 (July 2009) byte-compile-dest-file-function became the recommended way to adjust the byte-compiler's destination. The removed functionality has been restored for Emacs-26, albeit with dissuasive diagnostics warning about the imminent removal of this functionality. It will be removed in Emacs-27. * lib/am/lisp.am (.el.elc): Use byte-compile-dest-file-function, rather than byte-compile-dest-file. Also, use "-f batch-byte-compile '$<'" rather than open-coding it, as suggested by Glenn Morris. * t/lisp-readonly-srcdir.sh: New file, to test for the above. * t/list-of-tests.mk (handwritten_TESTS): Add it. * NEWS (Bugs fixed): Mention this problem.
Jim Meyering ac47c22e 2014-03-20T12:31:32 "make dist" did not depend on $(BUILT_SOURCES) * lib/am/distdir.am (distdir-am): New intermediate target. Interpose this target between $(distdir) and its dependency on $(DISTFILES), so that we can ensure $(BUILT_SOURCES) are all created before we begin creating $(DISTFILES). * t/dist-vs-built-sources.sh: Test for this. * t/list-of-tests.mk (handwritten_TESTS): Add it. * NEWS (Bugs fixed): Mention it. Assaf Gordon reported that "make dist" (after ./configure from a pristine clone of GNU hello) would fail due to the absence of configmake.h while compiling lib/localcharset.c. https://lists.gnu.org/r/bug-hello/2014-03/msg00016.html
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 c2757b97 2017-09-19T13:43:07 maint: Reset master
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 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.
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 8555e7b8 2017-07-16T00:11:07 check: Make 'check-TESTS' target depend on test dependencies The 'check' and 'recheck' targets are already depending on the progams and scripts required to run the test suite. The 'check-TESTS' target while not in the public API might be used by uninformed users, so it makes sense to add the same dependency to it. This fixes bug#27186. * lib/am/check.am [!%?SERIAL_TESTS%] (check-TESTS): Add dependency to '%CHECK_DEPS%'. * THANKS: Update.
Mathieu Lirzin 3126fa4c 2017-07-15T22:24:43 dejagnu: Allow AM_RUNTESTFLAGS to override default RUNTEST arguments This fixes bug#25335. * lib/am/dejagnu.am (check-DEJAGNU): Swap $(RUNTESTDEFAULTFLAGS) and $(AM_RUNTESTFLAGS). * THANKS: Update.
Mathieu Lirzin c946ae6f 2017-06-16T22:46:16 Merge branch 'micro' into minor
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 5fac9a39 2016-05-30T17:07:52 compile: remove .Tpo file upon failure When generating a .deps/base.Po file, our emitted rule first writes to a temporary .Tpo file, so the final creation can be atomic, via mv's rename. However, when generation of the .Tpo fails, it stop the process and does not remove that temporary file. And nothing else ever deletes it, either. Hence, in the unusual case in which one expects a compilation to fail during a successful build (gnulib's test-verify.sh does precisely this), a .deps/test-verify.Tpo file would be left behind, and that would in turn cause a "make distcheck" failure because that file would exist in one build+distclean hierarchy but not in the distribution tarball. * lib/am/depend2.am: Ensure that the temporary file is removed upon failure. * t/distcheck-Tpo.sh: New file. * t/list-of-tests.mk (handwritten_TESTS): Add it. This addresses bug#23661.
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 749468ac 2016-03-28T19:44:19 automake: port better to future gzip * lib/am/distdir.am (dist-gzip, dist-shar, distcheck): Port better to future versions of gzip, which are planned to deprecate the GZIP environment variable (Bug#20132).
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 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 c24233d4 2014-12-23T22:45:13 Merge branch 'minor' * minor: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files" include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation
Stefano Lattarini bd838a68 2014-12-23T21:15:18 Merge branch 'micro' into minor * micro: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files" include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation
Stefano Lattarini 6979c8e6 2014-12-23T20:24:46 Merge branch 'distcheck-pr18286' into micro * distcheck-pr18286: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files"
Stefano Lattarini 01a7a4a7 2014-12-23T18:39:32 dist: fix bug#18286 "distcheck fails to detect missing files" BTW, this issue had been already reported in the past: http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html "make distcheck" could sometimes fail to detect missing files in the distribution tarball, especially in those cases where both the generated files and their dependencies are explicitly in $(srcdir). An important example of this are *generated* makefile fragments included at Automake time in Makefile.am. A basic example: # -*- Makefile.am -*- $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am include $(srcdir)/fragment.am ... If the use forgot to add data.txt and/or preproc.sh in the distribution tarball, "make distcheck" would have erroneously succeeded! The reason is that, while $(srcdir)/data.txt does not exist, make also looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued VPATH build where $(srcdir) is '..', that file exists, as it is part of the original development directory. * t/distdir.am (distcheck): Adjust to have the build directory be '$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks Nicola Fontana for the suggestion. * t/distcheck-pr18286.sh: Enhance and tighten a little. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh', as it's now passing. * t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due to the new distcheck semantics. * t/subdir-ac-subst.sh: Likewise. * t/dejagnu-relative-srcdir.sh: Likewise. * t/txinfo-builddir.sh: Likewise. * NEWS: Update. Helped-by: Nicola Fontana <ntd@entidi.it> Helped-by: Peter Johansson <trojkan@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a38fe86d 2014-12-23T17:27:30 Merge branch 'am-deps' into micro * am-deps: include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 55270ac3 2014-12-23T13:10:21 include: fix bug in handling of user-defined makefile fragments generation If a user defined one single Makefile fragment to be included (via Automake includes) in his main Makefile.am, and gave a rule to generate that file from other data, Automake used to spuriously complain about with something like "overrides Automake target '$(srcdir)/foo.am". This change remove that spurious error (via a simple hack rather than a systematic change, but oh well). * lib/am/configure.am (%MAKEFILE-IN-DEPS%) [?HAVE-MAKEFILE-IN-DEPS?]: Add a trailing "$(am__empty)" to the list of targets, which is enough to trick Automake into not complaining about "duplicated targets" in case the '%MAKEFILE-IN-DEPS%' list expands to a single target that is also declared in some user-defined rule. * t/list-of-tests.mk (XFAIL_TESTS): Remove now-passing test 't/am-include-only-one-generated-fragment.sh'. * NEWS: Update. 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 e7c14d96 2014-12-19T15:10:09 Improve detection of GNU make, avoiding "Arg list too long" errors. Such errors could take place when the main makefile included too many sub-makefiles, making $(MAKEFILE_LIST) too long and causing the recipes $(am__is_gnu_make) to exceed the shell's command-line length limits. This is not a theoretical issue: it could happen for projects having lots of C/C++ sources and using automatic dependency tracking, which created an included .Po sub-makefile for each of such sources. Fixes http://debbugs.gnu.org/18744 * lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid the use of $(MAKEFILE_LIST). * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Aharon Robbins 4410ae7f 2014-12-19T11:08:15 dist: adjust warning messages about shar and tarZ deprecation They were swapped. Reported in http://debbugs.gnu.org/19108. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 4b4d6300 2014-12-17T18:21:04 Merge branch 'minor' * minor: Fix dumb logic error preventing $install_sh from being be overridden Automake docs: fix typos and use of British English Expose automake bug#19311 build: fix race in parallel builds build: fix race in parallel builds
Paul Eggert 6465c530 2014-08-23T07:55:28 build: fix race in parallel builds Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir.
Paul Eggert 74cdef78 2014-08-23T07:55:28 build: fix race in parallel builds Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir.
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 3a851d64 2014-04-21T10:22:29 Typofixes in warning messages and manual Fixes automake bug#16827 and bug#16997. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7573a457 2014-04-21T10:09:41 Merge branch 'minor' * minor: doc: fix encoding error with UTF-8 characters NEWS: a typofix, and better word wrapping parallel-tests: avoid possible implicit "make all" in test-suite.log rule
Stefano Lattarini ad9804e1 2013-12-30T23:21:03 parallel-tests: avoid possible implicit "make all" in test-suite.log rule This change fixes automake bug#16302. * lib/am/check.am ($(TEST_SUITE_LOG)): Avoid running "make $redo_logs" when $redo_logs expands to empty, since in that case we are actually ending up invoking a full "make all". That shouldn't be required, and can cause slowdowns for people implementing their extra "laziness wrappers" around check-TESTS (automake bug#16302). * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 65fecfc5 2013-11-02T10:57:50 Merge branch 'minor' * minor: cosmetics: fix typo in a user-facing message in tests automake: account for perl hash order randomization tests: avoid use of intervals to capitalize letters cosmetics: untabify the install-sh script install-sh: assume that "set -f" and "set +f" work... install-sh: assume ${var:-value} works as expected install-sh: assume 'dirname' is available and working correctly distcheck: don't allow overriding of --prefix and --srcdir by the user tests: expose bug#14991 (relates to 'distcheck')
Stefano Lattarini 9b156829 2013-10-30T21:41:39 distcheck: don't allow overriding of --prefix and --srcdir by the user Not through AM_DISTCHECK_FLAGS, nor through DISTCHECK_FLAGS. Apparently, some packages got in the habit of relaying all the options passed to the original ./configure invocation through to the configure invocations in "make distcheck". This was causing problems, because it also passed through the original --srcdir and --prefix options. Fixes: expose bug#14991 (relates to 'distcheck') * lib/am/distdir.am (distcheck): Pass the hard-coded --srcdir and --prefix options *after* both the developer-defined options in $(AM_DISTCHECK_FLAGS) and the user-defined options in $(DISTCHECK_FLAGS). * t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test 'distcheck-no-destdist-or-srcdir-override.sh'. * doc/automake.texi (Checking the Distribution): Update. * NEWS: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b7bdb2c3 2013-10-30T01:04:24 Merge branch 'minor' * minor: tests: fix spurious failure when zip is present but unzip is not tests: fix spurious failure due to localization issues NEWS: update with the changes since v1.14 docs: correct typos in the fix-timestamp.sh script python: byte-compile nobase_*_PYTHON files only once cosmetics: typofix in the 'missing' script test: avoid false positives in 'cc-no-c-o' script test harness: improve catching of usage errors in script 'test-driver' tests: fix a spurious failure on NetBSD-current am-ft: make the environment available earlier NEWS: post-release tweaks (for 1.14.x series) tests: avoid a spurious failure on MacOS X 10.6.8 tests: don't risk hanging on the 'cl' requirement
Benoit Sigoure 2c063f33 2013-09-17T09:57:53 python: byte-compile nobase_*_PYTHON files only once * lib/am/python.am: Here. Byte-compiling was occurring inside of a loop, causing an O(n^2) number of byte-compilations instead of O(n). Copyright-paperwork-exempt: yes 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 9892eb78 2013-06-09T11:37:01 Merge branch 'micro' into maint * micro: 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 f7492285 2013-06-08T17:56:34 comments: fix some out-of-sync refs to test scripts Those script has been renamed since those comments where written. * lib/Automake/Rule.pm: Adjust. * lib/am/distdir.am: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a0db09fe 2013-05-23T20:49:39 Merge branch 'maint' * maint: tests: avoid few lingering $MAKE redirections tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 86e45fe1 2013-05-23T20:12:17 Merge branch 'micro' into maint * micro: tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f2a1ef46 2013-05-22T23:42:09 comments: next GNU make release 4.0, not 3.83 See: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00093.html> * lib/am/header-vars.am (am__make_running_with_option): Adjust comments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 42eaadf9 2013-05-18T20:28:20 Merge branch 'subdir-objects-work' * subdir-objects-work: depend: reduce code duplication, de-uglify make verbose output depend: prefer $(...) over `...` in Cygwin-specific recipes depend: reduce code duplication depend: a preparatory refactoring depend: refactor and remove code duplication Automake::Language: drop unused fields 'compile_flag' and 'output_flag' depend: assume '-c' compiler flag always means to produce object files depend: assume we can always pass '-o' to the C compiler cleanup: having subdir-objects mandatory allow us some simplifications subdir-objects: enable unconditionally
Stefano Lattarini 5fe99e28 2013-05-18T19:27:28 Merge branch 'maint' * maint: lisp: fix a failure with Solaris /usr/xpg4/bin/sh tests: sanitize 'unset' usages tests: fix some botched/outdated comments tests: use perl, not find+rm, to remove temporary directories
Stefano Lattarini 0cca184f 2013-05-18T15:23:20 Merge branch 'micro' into maint * micro: lisp: fix a failure with Solaris /usr/xpg4/bin/sh tests: sanitize 'unset' usages tests: fix some botched/outdated comments tests: use perl, not find+rm, to remove temporary directories Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0256f1d6 2013-05-18T13:35:16 lisp: fix a failure with Solaris /usr/xpg4/bin/sh * lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly here. For most shells, the lacking initialization, while technically incorrect, didn't cause any issue in practice, because in those shells "test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the shell complains like this: "test: argument expected", and returns a non-zero exit status. This caused testsuite failures in several lisp tests. Also, while we are at it, use more proper quoting in the recipe, to ensure a missing initialization to now be caught by more forgiving shells as well. * NEWS: Update. 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 436cb17e 2013-01-10T21:42:28 depend: prefer $(...) over `...` in Cygwin-specific recipes On Cygwin, we can happily assume only POSIX-conforming shells exist. This commit is useless by itself, but is useful as a preparatory refactoring in view of a future change. * lib/am/depend2.am: In recipes for producing '.obj' objects, use the POSIX form $(...) for command substitution, rather than the classic Bourne one `...`. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 13abbe06 2013-01-10T21:31:57 depend: reduce code duplication Just a simplification; no semantic change is intended. * lib/am/depend2.am (am__set_depbase): New. Use it in all the three flavours of recipes (.o, .obj, .lo), instead of duplicating its code. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 27a6abf4 2013-01-10T20:47:57 depend: a preparatory refactoring This is just a preparatory change in view of a future refactoring. No semantic change is intended. * lib/am/depend2.am: Adjust; for example, using '$@' in all recipes to indicate the output file (rather than recipe-specific transforms like '%OBJ%' and '%LTOBJ%'), and not assuming to know the exact file extension of the output file (e.g., whether it's '.o' or '.lo'). 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 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 1ffdec45 2013-05-10T21:56:12 dist: remove support for shar and tarZ formats See also discussion about automake wishlist bug#13324. * lib/Automake/Options.pm: Give fatal errors (rather than warnings) if the 'dist-shar' or 'dist-tarZ' options are used. * lib/distdir.am: Remove the 'dist-tarZ' and 'dist-shar' targets, and references to the '.tar.Z' and '.shar' archives. * bin/automake.in (preprocess_file): Remove 'COMPRESS' and 'SHAR' transforms. (handle_dist): Remove lingering references to 'dist-tarZ' and 'dist-shar' options. * doc/automake.texi: Adjust, removing references to the removed targets and distribution formats. * t/dist-shar.sh: Adjust to expect fatal errors rather than warnings. * t/dist-tarZ.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0cf58ea7 2013-05-10T21:18:40 Merge branch 'maint' * maint: news: document new 'subdir-objects' warning PLANS: one minor fixlet (mostly cosmetic) PLANS: we have already dropped support for split info files in master NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended PLANS: fix reference to non-existent 'next' branch PLANS: fix botched version reference maintcheck: fix two references to old location of aclocal and automake dist: deprecated shar and tar+compress formats
Stefano Lattarini 780299d9 2013-05-10T19:22:06 dist: deprecated shar and tar+compress formats See also discussion about automake wishlist bug#13324. * lib/Automake/Options.pm: Give proper warnings in the 'obsolete' category if the 'dist-shar' or 'dist-tarZ' options are used. * lib/distdir.am: When the 'dist-tarZ' or 'dist-shar' targets are invoked, make them give a non-fatal warning. * doc/automake.texi: Report the new deprecations. * t/dist-shar.sh: New test. * t/dist-tarZ.sh: Likewise. * t/lzma.sh: While at it, rename ... * t/dist-lzma.sh: ... like this, and tweak it to keep more in sync with the new tests. * t/dist-formats.tap: Remove references to deprecated formats. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0dd95c8d 2013-05-10T13:33:52 Merge branch 'maint' * maint: automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/ am: prefer a shorter idiom where possible cosmetics: fix few typos, grammaros and missing whitespace fixup: remove an obsolete comment docs: we still don't have the promised better Java interface build: move automake and aclocal in 'bin' subdir build: break up monolithic Makefile.am in subdir-specific fragments + Extra non-trivial edits: * m4/Makefile.inc (dist_automake_ac_DATA): Drop lead-dot.m4 and mkdirp.m4. * lib/Automake/Makefile.inc (dist_perllib_DATA): Drop Configure_ac.pm. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>