summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Port py-compile to Python 2.6-HEADmasterPaul Eggert2023-03-291-3/+13
| | | | | * lib/py-compile: Port to Python 2.6 and earlier, which lack importlib.
* do not assume GNU tar in testPaul Eggert2023-03-291-2/+3
| | | | | | * t/dist-no-built-sources.sh: Don’t assume GNU Tar’s ability of decompressing tarballs. Solaris 10 ‘tar’ doesn’t do that.
* Remove parentheses around test argument listsJacob Bachmeyer2023-03-291-2/+2
| | | | | | | This works around a parser bug in Perl 5.6.2. * t/pm/General.pl: Remove parentheses on argument lists. Copyright-paperwork-exempt: yes
* Improve test for blocked signalsJacob Bachmeyer2023-03-291-7/+8
| | | | | | | | | | | | | | | This fixes ERRORs reported by: * t/parallel-tests-interrupt.tap * t/self-check-exit.tap * t/self-check-is-blocked-signal.tap * t/tap-signal.tap * t/ax/am-test-lib.sh (is_blocked_signal): Revise Perl code to more closely follow documented interfaces where available. This also works around bugs and limitations of the POSIX module in Perl 5.6. Copyright-paperwork-exempt: yes
* Port 'make check' to platforms lacking libtoolPaul Eggert2023-03-291-2/+4
| | | | * t/get-sysconf.sh: Don’t fail if libtoolize is missing.
* configure: recommend perl 5.10 or betterPaul Eggert2023-03-291-1/+1
| | | | | * configure.ac (PERL): Recommend perl 5.10 or better, since 5.10 has higher-resolution timestamps.
* Gracefully degrade if Time::HiRes is not availableJacob Bachmeyer2023-03-291-1/+4
| | | | Copyright-paperwork-exempt: yes
* Revert "maint: require perl 5.010 or later"Jacob Bachmeyer2023-03-2925-30/+27
| | | | | | This reverts commit 4e3744a15c4d8bdb46c11ead2fb56c5f591b714b. Copyright-paperwork-exempt: yes
* doc: tweak old NEWS about ACLOCAL_AMFLAGS.Karl Berry2023-03-012-7/+6
| | | | | | | * NEWS: any ACLOCAL_AMFLAGS deprecation will be in a major release (the hypothetical 2.0), not sooner. * NEWS-2.0: developers who don't wish to be maintainers are also welcome and needed.
* dirstamp: revert change of Jan 11 2023.Karl Berry2023-02-281-8/+4
| | | | | | | | | Fixes (hopefully) automake bug https://bugs.gnu.org/61867. * bin/automake.in: restore explicit per-directory pattern rules, since evidently @D is not supported on BSD-derived makes, whatever POSIX says. That is, revert this commit: https://git.savannah.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=55f8fcfd08cbf15d65d61dd2db934b6c3171cf06
* Use higher-resolution file timestampsPaul Eggert2023-02-021-3/+9
| | | | | | | | * lib/Automake/FileUtils.pm (mtime): Return higher-resolution file timestamps. This isn’t perfect, but it’s better than what we had. Code change taken from Autoconf to partially fix a race <https://bugs.gentoo.org/show_bug.cgi?id=782985>.
* maint: require perl 5.010 or laterPaul Eggert2023-02-0225-27/+30
| | | | This is needed for better treatment of high-res timestamps.
* tests: depcomp: ensure make_ok() fails when run_make failsFrédéric Bérat2023-01-151-1/+1
| | | | | | | | | | | | While running automake tests with -std-gnu=c99, the compiler report errors which lead to make to fail. Yet, these failures are ignored during the tests, which considers them to be successful as stderror is check for one specific pattern. If make fails, investigation should be made to discover why, whatever the reason for the failure is. * t/ax/depcomp.sh: Make make_ok fail when make fails.
* distdir/emacs: avoid `test -d` with MKDIR_PMike Frysinger2023-01-142-2/+2
| | | | | | | | We don't need to do the `test -d ... || mkdir ...` dance when we have the MKDIR_P helper, so simplify this code a bit. * lib/am/distdir.am: Use $(MKDIR_P). * lib/am/lisp.am: Drop redundant `test -d`.
* tests: rework gettext to only check 'external' behaviorMike Frysinger2023-01-145-22/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gettext project deprecated non-external use back in 2010 with the 0.18 release, and made it fatal with the 0.20 release in 2019. With that version, calling AM_GNU_GETTEXT() fails, which means all Automake tests are now skipped. The t/gettext-macros.sh helper probes gettext as such: >+ autopoint --force > autopoint: *** AM_GNU_GETTEXT without 'external' argument is no longer supported in version 0.21.1 > autopoint: *** Stop. > ... >+ aclocal-1.16 -Werror -Wno-syntax -I m4 --install > aclocal-1.16: warnings are treated as errors > configure.ac:4: warning: macro 'AM_GNU_GETTEXT' not found in library > configure.ac:5: warning: macro 'AM_GNU_GETTEXT_VERSION' not found in library >+ echo skip_all_ "couldn't find or get gettext macros" Since t/gettext-macros.sh generates a helper that all other gettext tests use to see if gettext is available, all they get skipped. Rework our existing tests to only check the 'external' gettext mode. This should work with older versions, and we don't really need to keep track of old non-external mode since it's been deprecated for so long. * t/gettext-basics.sh: Use external gettext mode, and adjust tests. * t/gettext-config-rpath.sh: Likewise. * t/gettext-macros.sh: Likewise. * t/gettext-pr381.sh: Likewise. * t/subdir-cond-gettext.sh: Likewise.
* tests: disable git log pager usageMike Frysinger2023-01-131-1/+1
| | | | | | | | When running this code locally, the git log call can trigger a pager depending on the local settings, which in turn forces the test to be interactive. Run git with --no-pager to force disable it. * t/get-sysconf.sh: Run git with --no-pager.
* tests: change `sort|uniq` to `sort -u`Mike Frysinger2023-01-132-2/+2
| | | | | | | | These are equivalent, but more performant. We already use `sort -u` elsewhere in the codebase, so nothing new here really. * t/add-missing.tap: Change `sort|uniq` to `sort -u`. * t/CheckListOfTests.am: Likewise.
* tests: Fix 'type defaults' error in link_cond due to main not being properly ↵Frédéric Bérat2023-01-131-1/+1
| | | | | | | | | | declared This is related to an effort to prepare Automake for future GCC/Clang versions which set c99 as default standard to be used. Not properly declaring main as "int main(...)" is rejected since c99. * t/link_cond.sh: Add (void) to main definition.
* dirstamp: switch to a pattern ruleMike Frysinger2023-01-121-4/+8
| | | | | | | | | | | | | | | | | | | | | | | We can leverage $(@D) to generate a single pattern rule for all dirstamp rules. This saves many lines in the output -- normally we create 2 rules (or 6 lines) per subdir, and projects that use subdirs tend to use them quite a bit. In the most extreme & unlikely case (1 subdir, no depdir support), the line count is the same. In every other case, it's always a win. Looking at a few real world projects, the line deltas: * GNU libgloss: +3 -66 * GNU newlib: +3 -714 * GNU sim: +3 -138 There shouldn't be any concerns about portability with $(@D) because: (0) This has been in POSIX (and beyond) for decades, (1) We only generate this rule iff we know the dirstamp is in a subdir (so we'd never have a case where $(@D) would expand to the cwd, and that is where a few implementations are known to be buggy), (2) We already rely on $(@D) in our depdir code, and have since 2014 (the Automake 1.16 release).
* dirstamp: use append too instead of truncateMike Frysinger2023-01-111-1/+1
| | | | | | | | | | | | | | | | | | We changed the depfiles logic to use >> (append) instead of > (truncate) due to it being slightly faster & nicer to the disk. Do the same with the dirstamp files as we only need the files to exist -- we don't care about their content, and we never put anything in them ourselves. If someone else were to, we clean them up normally with `make clean`. Simple test case on my Linux 6.1 w/ext4 on SSD: @: > foo.txt for (i = 0; i < 1000000; ++i) close(open("foo.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666)); -> 769 msec @: >>foo.txt for (i = 0; i < 1000000; ++i) close(open("foo.txt", O_WRONLY|O_CREAT|O_APPEND, 0666)); -> 2 sec
* rm: convert more cases to am__rm_fMike Frysinger2023-01-095-20/+9
| | | | | | | | | | | | | | | | | | | | | | Fixes automake bug https://bugs.gnu.org/10828. Clean up a few more cases where we were doing `test ... || rm ...` to avoid calling `rm -f` without arguments by leveraging am__rm_f. These were harder to find in the source due to their constructed nature. The clean programs rules in particular were much more complicated than they needed to be. This logic boiled down to two things: delete the list of programs, and then delete the list without the exeext suffix, but only if the list of programs is non-empty. The check-TESTS rule was converted to am__rm_f, but a simplification was missed where the $list variable is inlined. * bin/automake.in: Delete test -z logic and always call am__rm_f. * contrib/check-html.am: Use $(am__rm_f) helper. * doc/automake.texi: Update examples to match current behavior. * lib/am/check.am: Inline $list variable. * lib/am/progs.am: Rewrite rule to use $(am__rm_f).
* doc: overriding targets doesn't mean third-party Makefiles.Karl Berry2023-01-081-10/+18
| | | | | | | | | | Fixes automake bug https://bugs.gnu.org/60607. * doc/automake.texi (dvi and distcheck): simply show dvi: as an example of a do-nothing Makefile (xref to Extending), instead of cross-referencing the complicated method in Third-Party Makefiles. (Clean, Extending): wording tweaks.
* check: drop unused trs_list variableMike Frysinger2023-01-041-2/+1
| | | | | | | When the code that used this variable was removed, the variable itself was left behind. Clean that up now too. * lib/am/check.am: Delete trs_list.
* depend: trim spurious leading tabMike Frysinger2023-01-041-2/+2
| | | | | | | | | | | These vars are replaced with a list of remove commands that are joined with a \n and each line always has a leading \t inserted. That means the literal tab here before the var leads to 2 tabs included in the output. While not functionally a problem, it can be a bit confusing when reading the output as it implies something is amiss. Trimming the tab also aligns with the other .am files which don't include it. * lib/am/depend.am: Delete tab before %DISTRMS%.
* maint: make update-copyrightMike Frysinger2023-01-041466-1470/+1468
|
* maint: Update files from upstream with 'make fetch'Mike Frysinger2023-01-048-608/+773
| | | | | | | | | | | | | Pulls some 2023 copyright updates. * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gendocs_template: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise.
* test: avoid apostrophe in test document.Karl Berry2022-12-121-3/+6
| | | | | | | | From automake patch https://bugs.gnu.org/59989 (though a different solution), suggestion by Frederic Berat. * t/txinfo-include.sh: avoid apostrophes in test document, since Texinfo 7.0 turns them into UTF-8 by default.
* doc: typo in HACKING changes.Kelvin M. Klann2022-10-061-1/+1
| | | | * HACKING: allow backward compatibilities again.
* distcheck: more .NOTPARALLEL.Karl Berry2022-10-012-1/+3
| | | | | | * t/backcompat.sh: add .NOTPARALLEL. * t/subdir-add2-pr46.sh: likewise. (Maybe the problem is more general?)
* maint: Update files from upstream with 'make fetch' + help2man.Karl Berry2022-10-011-1/+1
| | | | * INSTALL: update with make fetch.
* maint: Update files from upstream with 'make fetch' + help2man.Karl Berry2022-10-016-339/+402
| | | | | | | | | * lib/INSTALL: update with make fetch. * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/texinfo.tex: Likewise. * doc/help2man: now 1.49.1.
* maintcheck: placate maintainer-check and grep 3.8.Karl Berry2022-10-015-4/+12
| | | | | | | | | | | * maintainer/syntax-checks.mk (sc_rm_minus_f): no \ before - (diagnosed by grep 3.8). * t/comment12.sh: use $(...) instead of `...`. * t/comments-escaped-in-var.sh: use AUTOMAKE_fails and grep for expected warning message. * t/list-of-tests.mk (handwritten_TESTS): add t/py-compile-files.sh. * t/subdir-add2-pr46.sh (.NOTPARALLEL): add; showed up with parallelized internal make. Seems unreproducible.
* more HACKING tweaksKarl Berry2022-10-011-15/+11
|
* aclocal: protect against Perl undefined warnings.Karl Berry2022-10-012-32/+47
| | | | | | * bin/aclocal.in (usage): check that envvars (ACLOCAL_AUTOMAKE_DIR, ACLOCAL_PATH) are defined before printing values. * HACKING: describe running scripts from checkout, et al.
* doc: rearrange NEWS.Karl Berry2022-09-281-5/+5
| | | | * NEWS: reclassify bugs vs. features.
* python: better Python compilation portability.Zack Weinberg2022-09-281-52/+47
| | | | | | | | | This change is per automake thread: https://lists.gnu.org/archive/html/automake/2022-09/msg00002.html * lib/py-compile: Test directly for availability of importlib.util.cache_from_source. Untangle logic for when to generate -O and -OO bytecode. Reformat embedded Python fragments.
* forgot NEWS updateKarl Berry2022-09-281-11/+14
|
* dist: ignore "silly rename" files from nfs/afs/smb.Zack Weinberg2022-09-281-1/+3
| | | | | | | | | 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.
* automake: do not use -Q with emacs invocations.Richard Hopkins2022-09-273-3/+4
| | | | | | | | | | | | | This change is for https://bugs.gnu.org/58102. (By the way, the previous two commits were for bugs 58026 (silent .elc compilation) and 58025 (load bytecomp), respectively, but I forgot to mention them.) * m4/lispdir.m4 (AM_PATH_LISPDIR): omit -Q option. Also (from karl), use -no-site-file (one hyphen) for consistency with the other options. * NEWS: mention this. * doc/automake.texi (Hard-Coded Install Paths): likewise.
* automake: load -l bytecomp for Emacs.Richard Hopkins2022-09-261-0/+1
| | | | | * lib/am/lisp.am (.el.elc): Require the bytecomp library so byte-compile-dest-file-function can be used when available.
* automake: silent make output for Emacs byte compilation.Richard Hopkins2022-09-263-4/+7
| | | | | | * lib/am/lisp.am: Use $(AM_V_GEN) in .el.elc rule. * NEWS: mention this. * THANKS: add new contributor.
* doc: typo in depcomp.Karl Berry2022-09-181-2/+2
| | | | * lib/depcomp: obsosete -> obsolete. Report from anonymous.
* compile: look for clang-cl.Alexander Neumann2022-07-252-0/+2
| | | | | * lib/compile: check for clang-cl, calling func_cl_wrapper. * THANKS: add new contributor.
* fix: autoreconf fails due to .m4 files added but not installedJim Meyering2022-05-231-1/+3
| | | | | | | | | | | * m4/local.mk (dist_automake_ac_DATA): Add both rmf.m4 and xargsn.m4. Building grep from "make maintainer-clean" state, failed like this: configure.ac:41: warning: _AM_PROG_RM_F is m4_require'd but not\ m4_defun'd configure.ac:41: warning: _AM_PROG_XARGS_N is m4_require'd but not\ m4_defun'd configure:5058: error: possibly undefined macro: _AM_PROG_RM_F configure:5059: error: possibly undefined macro: _AM_PROG_XARGS_N
* deps: create empty file instead of dummy file.Jan Engelhardt2022-05-233-2/+6
| | | | | | | | | | | 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.
* doc: refer to automake manual in all man pagesMike Frysinger2022-03-131-1/+1
| | | | | | | | | Fixes automake bug https://bugs.gnu.org/54363. There is no "aclocal" manual as it's all integrated into the automake manual, so have all the help2man calls force automake as the manual. * doc/local.mk: Use --info-page=automake for man pages.
* automake: fall back gracefully when texinfo inputs don't existMike Frysinger2022-03-053-1/+35
| | | | | | | | | | | | Fixes automake bug https://bugs.gnu.org/54063. The function scanning for @setfilename will fall back to a default value if the input doesn't have one defined. But we need to handle the case where the file doesn't even exist before falling back. * bin/automake.in: Scan /dev/null for @setfilename if input doesn't exist. * t/list-of-tests.mk: Add txinfo-no-setfilename-no-inputs.sh. * t/txinfo-no-setfilename-no-inputs.sh: New test.
* m4: handle id failures when checking ustar supportMike Frysinger2022-03-051-6/+10
| | | | | | | | Fixes automake bug https://bugs.gnu.org/20713. If `id` fails, display a specific warning message to the user. * m4/tar.m4: Check $am_uid & $am_gid if they're unknown.
* m4: rework silent-rules macros to avoid double expansionMike Frysinger2022-02-274-20/+196
| | | | | | | | | | | | | | | | | | | | | Fixes automake bug https://bugs.gnu.org/32868. The AM_SILENT_RULES macro defines all the silent-rules related setup. It's also called by users to change the default verbosity level. This leads to a quirk where automake calls it, expands the full context, and then users call it, and it's fully expanded again. Instead, let's rename AM_SILENT_RULES to _AM_SILENT_RULES and move the initialization logic to late in the configure stage. This allows the user-centric AM_SILENT_RULES call to expand into a single line to set the default verbosity. * m4/init.m4: Switch to _AM_SILENT_RULES. * m4/silent.m4: Rename AM_SILENT_RULES to _AM_SILENT_RULES. Delay evaluation of AM_SILENT_RULES to the end. Define new AM_SILENT_RULES to set default rules verbosity. * t/silent-defaults.sh: New tests. * t/list-of-tests.mk: Add t/silent-defaults.sh.
* tests: make silent-custom regex a little more robustMike Frysinger2022-02-241-1/+1
| | | | | | | | | | Fixes automake bug https://bugs.gnu.org/32800. Have the regex match the entire path with word boundaries on both sides. This should reduce false positives when the full cwd happens to match parent directories. * t/silent-custom.sh: Update the header output regex.