summaryrefslogtreecommitdiff
path: root/m4
Commit message (Collapse)AuthorAgeFilesLines
* maint: make update-copyrightMike Frysinger2023-01-0437-37/+37
|
* automake: do not use -Q with emacs invocations.Richard Hopkins2022-09-271-1/+1
| | | | | | | | | | | | | 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.
* 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
* 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-272-20/+31
| | | | | | | | | | | | | | | | | | | | | 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.
* python: use xargs -n when uninstalling filesMike Frysinger2022-02-202-0/+21
| | | | | | | | | | | | | | | | 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`.
* rm: handle -f w/no arguments gracefullyMike Frysinger2022-02-202-40/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* m4: speed up filesystem modification checksMike Frysinger2022-02-131-3/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current code sleeps at least 1 second to make sure the generated files are strictly newer than the source files. It does this for a few reasons: POSIX only guarantees that `sleep` accept integers, and filesystems have a history (c.f. Windows) of bad timestamp resolution. For the first part, we can easily probe sleep to see if it accepts a decimal number with a fractional part -- just run `sleep 0.001`. For the second part, we can create two files and then run sleep in a loop to see when one is considered newer than the other. For many projects, this 1 second delay is largely amortized by the rest of the configure script. Autoconf lends itself to being both large & slow. But in projects with many smallish configure scripts with many cached vars, the time to rerun is dominated by this single sleep call. For example, building libgloss against a compiler with many (60+) multilib configurations, we see: [Using sleep 1] $ time ./config.status real 2m28.164s user 0m33.651s sys 0m9.083s [Using sleep 0.1] $ time ./config.status real 0m39.569s user 0m33.517s sys 0m8.969s And in case anyone wonders, going below 0.1s doesn't seem to make a statistically significant difference, at least in this configuration. It appears to be within "noise" limits. [Using sleep 0.001] $ time ./config.status real 0m39.760s user 0m33.342s sys 0m9.080s * NEWS: Mention updated timestamp checking. * m4/sanity.m4: Determine whether `sleep` accepts fractional seconds. Determine (roughly) the filesystem timestamp resolution. Use this to sleep less when waiting for generated file timestamps to update.
* m4: cache build env sanity checksMike Frysinger2022-02-121-5/+6
| | | | | | | | When rerunning configure in an existing build dir, cache the previous results about environment settings. There should be no need to retest these in a dir that has already been configured. * m4/sanity.m4: Cache sanity results.
* elisp: run emacs with --no-site-fileMike Frysinger2022-02-081-1/+1
| | | | | | | | | | | | | 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.
* AM_PROG_AR: require before AC_PROG_ARMike Frysinger2022-01-311-0/+1
| | | | | | | | The new autoconf AC_PROG_AR macro has similar logic to what we have in AM_PROG_AR, but less than what we need (since autoconf doesn't support the MS archiver), so make sure we are run before AC_PROG_AR. * m4/ar-lib.m4: Call AC_BEFORE for AC_PROG_AR.
* python: add 3.10 - 3.15 to the version search listMike Frysinger2022-01-261-0/+1
| | | | | | | | | | | | | Fixes automake bug https://bugs.gnu.org/53530. Based on the cadence of Automake releases, add the current Python release (3.10), the current Python development (3.11), and then 4 more versions on top of that. It doesn't hurt to check for a few extra versions here since this is the fallback logic when the main `python` and `python3` programs aren't found. * m4/python.m4: Add python3.10 - python3.15. * NEWS: Mention new Python versions.
* maint: make update-copyrightJim Meyering2022-01-1235-35/+35
|
* m4: replace AC_DIAGNOSE with m4_warnMike Frysinger2021-12-121-2/+2
| | | | | | AC_DIAGNOSE was marked obsolete with autoconf-2.62 in 2008. * m4/obsolete.m4: Change AC_DIAGNOSE to m4_warn.
* maint: Post-release administriviaJim Meyering2021-10-031-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16i. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16.5v1.16.5Jim Meyering2021-10-031-2/+2
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.5. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* maint: remove trailing white space from a few filesJim Meyering2021-10-031-2/+2
| | | | | | | | | * NEWS: Remove trailing white space. * NEWS-2.0: Likewise. * contrib/checklinkx: Likewise. * doc/local.mk (chlx_args): Likewise. * m4/python.m4: Likewise. * t/test-extensions-empty.sh: Likewise.
* maint: Post-release administriviaJim Meyering2021-09-191-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16h. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* maint: adjust version for snapshotJim Meyering2021-09-191-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16g for snapshot. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* python: only use Python's sys.* values if the new optionKarl Berry2021-09-191-127/+164
| | | | | | | | | | | | --with-python-sys-prefix is specified; otherwise, return to previous behavior of using the GNU ${prefix} and ${exec_prefix}. * doc/automake.texi (Python): document the new behavior. * m4/python.m4 (AM_PATH_PYTHON): conditionalize use of Python's sys.* values on the new option --with-python-sys-prefix. * t/python-prefix.sh: doc update. * t/python-vars.sh: test both GNU and Python prefix values. * NEWS: mention this.
* automake: fatal error on second AM_INIT_AUTOMAKE.Nick Bowler2021-08-171-0/+4
| | | | | | | | | This change addresses https://bugs.gnu.org/50046. Patch posted: https://lists.gnu.org/archive/html/automake-patches/2021-08/msg00000.html * m4/init.m4: Make attempts to expand AM_INIT_AUTOMAKE more than once a fatal error at m4 time.
* maint: Post-release administriviaJim Meyering2021-07-261-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16f. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16.4v1.16.4Jim Meyering2021-07-251-2/+2
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.4. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* maint: adjust version, post-snapshotJim Meyering2021-07-181-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16e for snapshot. * m4/amversion.m4: Regenerate.
* maint: adjust version for snapshotJim Meyering2021-07-181-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16d for snapshot. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* maint: make update-copyrightJim Meyering2021-07-1134-34/+34
|
* python: use Python's sys.prefix and sys.exec_prefixJoshua Root2021-05-181-17/+84
| | | | | | | | | | | | | | | | | | | | | | | | for PYTHON_PREFIX and PYTHON_EXEC_PREFIX; new configure options --with-python_prefix and --with-python_exec_prefix to set explicitly. This change fixes https://bugs.gnu.org/35322. * m4/python.m4 (AM_PATH_PYTHON): use Python's sys.prefix and sys.exec_prefix for PYTHON_PREFIX and PYTHON_EXEC_PREFIX, instead of $prefix and $exec_prefix. But use a variable reference to ${prefix} if it is contained within sys.prefix; similarly for exec_prefix. Also support new configure options to set explicitly. (PYTHON_PREFIX, PYTHON_EXEC_PREFIX): AC_SUBST these. (am_cv_python_pythondir): use our new $am_cv_python_prefix, substituting ${PYTHON_PREFIX}. (am_cv_python_pyexecdir): likewise. * doc/automake.texi (Python): PYTHON_PREFIX, PYTHON_EXEC_PREFIX, document new approach. * t/instmany-python.sh: set PYTHON_PREFIX as needed. * t/python-vars.sh (PYTHON_EXEC_PREFIX, PYTHON_PREFIX): also set from Python's sys.{exec_,}prefix; use ${PYTHON_{EXEC,}PREFIX} instead of ${exec_,}prefix.
* Fix some build and test failures with Autoconf 2.70.Zack Weinberg2020-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | Autoconf 2.70 (released last week) makes a few changes that broke Automake’s expectations, mostly in the test suite. This patch addresses two of the problems: - autoconf now issues a warning if fed a configure script that doesn’t invoke both AC_INIT and AC_OUTPUT; this, plus a problem with system-provided tools (still under investigation) broke the *build* on macOS; it also causes a couple of spurious testsuite failures. - AC_PACKAGE_NAME and AC_PACKAGE_VERSION are now defined unconditionally. AM_INIT_AUTOMAKE needs to use m4_ifset instead of m4_ifdef to diagnose the obsolete use of AC_INIT with fewer than two arguments. (This change is compatible with autoconf 2.69; m4_ifset is much older, and it means ‘defined with a non-empty value’.) * configure.ac: Use both AC_INIT and AC_OUTPUT in test configure scripts. * t/deprecated-acinit.sh, t/init.sh: Likewise. * m4/init.m4 (AM_INIT_AUTOMAKE): Use m4_ifset, not m4_ifdef, to detect AC_PACKAGE_NAME and/or AC_PACKAGE_VERSION not having a value.
* tags: support setting CTAGS, ETAGS, CSCOPE vars via ./configure.Reuben Thomas2020-12-051-0/+14
| | | | | | | | | | 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.
* maint: Post-release administriviaJim Meyering2020-11-181-2/+2
| | | | | * configure.ac (AC_INIT): Bump version number to 1.16b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16.3v1.16.3Jim Meyering2020-11-181-2/+2
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.3. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* python: determine Python (3.10) version number correctly.Miro Hron\v{c}ok2020-10-271-5/+7
| | | | | | | | | | | | This change fixes https://bugs.gnu.org/44239 (and https://bugzilla.redhat.com/show_bug.cgi?id=1889732). * m4/python.m4: use print('%u.%u' % sys.version_info[:2]) for the version number instead of merely sys.version[:3], so the numbers are treated as numbers. * t/python-vars.sh (PYTHON_VERSION): Likewise. * doc/automake.texi: Document it. * NEWS: mention it. (Minor tweaks from Karl Berry.)
* Improve Vala compiler detection: use API version, not compiler versionReuben Thomas2020-10-231-13/+15
| | | | | * m4/vala.m4: check `valac --api-version', not `valac --version'. * doc/automake.texi: update documentation.
* automake: be robust against directories containing ().Zack Weinberg2020-09-051-6/+1
| | | | | | | | | | | | This change fixes https://bugs.gnu.org/14196. * m4/missing.m4 (AM_MISSING_HAS_RUN): always quote the invocation (not just if $am_aux_dir contains space or tab), in case $am_aux_dir contains () or other metachars not rejected by AM_SANITY_CHECK; quoting with '...' suggested by Jim Meyering. * t/man6.sh (HELP2MAN): adjust grep since missing value is quoted now. * t/am-missing-prog.sh: likewise.
* maint: Post-release administriviaJim Meyering2020-03-231-2/+2
| | | | | | * NEWS: Add header line for next release. * configure.ac (AC_INIT): Bump version number to 1.16b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16.2v1.16.2Jim Meyering2020-03-161-2/+2
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.2. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* cosmetics: improve error message when dependency tracking failsLibor Bukata2020-02-141-1/+3
| | | | | | | | This change fixes https://bugs.gnu.org/35848. * m4/depout.m4: Add suggestion to try GNU make to the error message. Original patch at https://lists.gnu.org/archive/html/automake-patches/2019-05/msg00000.html
* maint: make update-copyrightJim Meyering2020-01-0135-35/+35
|
* maint: make update-copyrightPaul Eggert2019-10-1435-35/+35
|
* maint: Post-release administriviaMathieu Lirzin2018-03-111-2/+2
| | | | | | * NEWS: Add header line for next release. * configure.ac (AC_INIT): Bump version number to 1.16a. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16.1v1.16.1Mathieu Lirzin2018-03-111-2/+2
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* python: Support future python version up to 3.9Mathieu Lirzin2018-03-081-4/+5
| | | | | | | | | | | | | | | This change fixes automake bug#28160. Since AM_PYTHON_PATH macro takes no maximum version argument, there is no need to generate _AM_PYTHON_INTERPRETER_LIST dynamically, like what was previously done by the reverted commit 1d60fb72168e62d33fe433380af621de64e22f23. We could rely on M4 to generate this list statically however this is likely to be a complex solution that would not improve maintainability. * m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add 'python3.7', 'python3.8', and 'python3.9'. * NEWS: Update.
* Revert "python: Generate python interpreter list"Mathieu Lirzin2018-03-031-17/+4
| | | | This reverts commit 1d60fb72168e62d33fe433380af621de64e22f23.
* maint: Post-release administriviaMathieu Lirzin2018-02-251-2/+2
| | | | | | * NEWS: Add header line for next release. * configure.ac (AC_INIT): Bump version number to 1.16a. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* version 1.16v1.16Mathieu Lirzin2018-02-251-3/+3
| | | | | | * configure.ac (AC_INIT, APIVERSION): Bump version number to 1.16. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* python: Generate python interpreter listMathieu Lirzin2018-02-041-4/+17
| | | | | | | | | | | | _AM_PYTHON_INTERPRETER_LIST is used by AM_PYTHON_PATH to autodetect Python programs whose names correspond to a specific Python version (e.g. python3.6). Previously this list was updated manually. The automatic support of newer versions (up to 4.0 excluded) fixes bug#28160. * m4/python.m4 (am_py_min_ver, am_py_max_ver): New macros. (_AM_PYTHON_INTERPRETER_LIST): Generate this list instead of hard-coding it. Implementation is taken from GNU Pyconfigure.
* maint: Update copyright years to 2018Mathieu Lirzin2018-01-0435-35/+35
| | | | This update has been made with 'make update-copyright'.
* maint: Make Emacs use 'makefile-automake-mode'Mathieu Lirzin2017-09-231-2/+1
| | | | | | | | | | | * 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.
* maint: fix two more http: URLsPaul Eggert2017-09-231-2/+2
| | | | * m4/init.m4: Change http: to https: in comments.
* Prefer https: URLsPaul Eggert2017-09-192-2/+2
| | | | | | | | | | | | | | | | | | | | | 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.