Up to now, $(am__cd) was only used within backquotes, to avoid
extraneous output. This patch also uses it for every `cd' to a
relative subdir, to prevent CDPATH from entering an unwanted
directory.
* Makefile.am (maintainer-check): Fix current check for
$(am__cd) within backquotes a bit. Add new check for `cd' to a
relative subdir.
* automake.in (handle_tags, handle_configure): Adjust rules.
* lib/am/ansi2knr.am: Likewise.
* lib/am/configure.am: Likewise.
* lib/am/distdir.am: Likewise.
* lib/am/remake-hdr.am: Likewise.
* lib/am/subdirs.am: Likewise.
* lib/am/tags.am: Likewise.
* lib/am/texibuild.am: Likewise.
* tests/nobase-python.test: Listing a dependency to be found
via VPATH search explicitly, without the path, as a target,
will turn off VPATH search for FreeBSD make. So move the
creation of the files outside of the Makefile.
* m4/maintainer.m4 (AM_MAINTAINER_MODE): Allow for an optional
first argument of `enable' or `disable', setting the default.
* doc/automake.texi (Optional, maintainer-mode): Document.
* tests/mmode.test: New test.
* tests/Makefile.am: Adjust.
* NEWS: Update.
Suggestion by Vincent Lefevre.
Ralf Wildenhues [Fri, 22 Aug 2008 11:19:04 +0000 (13:19 +0200)]
Fix rebuilding of removed subdir/Makefile.in files.
* lib/am/configure.am (%MAKEFILE-IN%) [?!TOPDIR_P?]: If
subdir/Makefile.in was removed, am--refresh would not update
it. Fix up for it by running the per-directory rebuild rule.
* tests/remake6.test, tests/remake6.test: New tests.
* tests/Makefile.am: Adjust.
* NEWS, THANKS: Update.
Report and initial patch by Ilya N. Golubev.
Ralf Wildenhues [Tue, 17 Jun 2008 22:37:42 +0000 (00:37 +0200)]
Introduce macro $(am__mv) to facilitate 'libtool --dry-run'.
* lib/am/depend.am (am__mv): New macro, set to 'mv -f'.
* lib/am/depend2.am: Use throughout to move the temporary
depfile *.Tpo to its final destination *.Po.
Ralf Wildenhues [Tue, 17 Jun 2008 22:11:36 +0000 (00:11 +0200)]
For AC_CONFIG_LINKS(X,X), do not clean X in a non-VPATH build.
* automake.in (rewrite_inputs_into_dependencies): Do distribute
inputs where input and output name are equal. This relies on
the assumption that it only happens with AC_CONFIG_LINKS.
(handle_configure) <CONFIG_CLEAN_VPATH_FILES>: New variable, for
links where source and dest are equal.
* lib/am/clean.am (distclean-generic): Remove, if build tree not
equal source tree.
* tests/conflnk4.test: New test.
* tests/Makefile.am: Adjust.
* NEWS: Update.
Karl Berry [Wed, 4 Jun 2008 18:45:56 +0000 (20:45 +0200)]
Improve description of -local and -hook targets.
* doc/automake.texi (Install, Hard-Coded Install Paths): Fix
punctuation and markup.
(Extending): Improve wording and clarify order semantics of
*-local and *-hook targets.
* automake.in (%ac_config_files_condition): New.
(scan_autoconf_config_files): Record condition if any.
(scan_autoconf_traces): Trace _AM_COND_IF, _AM_COND_ELSE,
_AM_COND_ENDIF, updating @cond_stack as appropriate.
(handle_configure): Prefix config.status rule with condition.
Check that m4 quotation is done consistently.
* m4/cond.m4 (AM_CONDITION): Define `_AM_COND_VALUE_name'
with `name' being the name of the condition, to its shell
condition.
* m4/cond-if.m4: New file.
(_AM_COND_IF, _AM_COND_ELSE, _AM_COND_ENDIF): New trace helpers.
(AM_COND_IF): New macro, implements conditionals.
* m4/Makefile.am: Adjust.
* doc/automake.texi (Requirements, Optional, Conditionals):
Document AM_COND_IF.
* NEWS: Update.
* tests/cond39.test, tests/cond40.test, tests/cond41.test,
tests/cond42.test, tests/cond43.test: New tests.
* tests/Makefile.am: Adjust.
Ralf Wildenhues [Mon, 17 Mar 2008 05:49:44 +0000 (06:49 +0100)]
New function xsystem_hint, for autoreconf.
* lib/Autom4te/FileUtils.pm (handle_exec_errors): New argument
$hint, show if the executing program does not exist.
(xsystem_hint): New function, like xsystem but allows to pass
a hint.
Implement the `notrans_' prefix for untransformed manpages.
* automake.in (handle_man_pages), lib/am/mans.am: Implement
notrans_ prefix for MANS primary and rework dependencies for
install-man%SECTION%; use only vars defined in Makefile.am.
* doc/automake.texi (Renaming, Uniform, Man pages):
Document notrans_ prefix.
* NEWS: Update.
* tests/notrans.test: New test.
* tests/Makefile.am: Update.
Ralf Wildenhues [Sat, 8 Mar 2008 12:58:18 +0000 (13:58 +0100)]
Exploit `install' with multiple files at once for some file types.
With nobase targets, at most 50 files are installed at once,
to avoid quadratic string concatenation and line length limits.
This isn't yet done with base targets. One hope is that there,
the typical file name length is lower. If this turns out to be
a problem, it should be revisited.
* lib/am/inst-vars.am (am__nobase_list): New helper macro for
installation of multiple nobase files at once: sorts and lists
files keyed by their target directory.
* lib/am/data.am (%DIR%%PRIMARY%_INSTALL): No need to set it to
$(install_sh_DATA) any more, not even for nobase targets.
(install-%DIR%%PRIMARY%): Split base and nobase cases.
Rewrite to pass lists of files which all go in the same
directory to `install'. In the nobase case, make use of
$(am__nobase_list) and $(MKDIR_P) each directory before
populating it. Take care of files in source and build trees,
and avoid creating directories where no files are to be
installed.
* lib/am/libs.am (%DIR%LIBRARIES_INSTALL): Likewise.
(install-%DIR%LIBRARIES): Likewise.
* lib/am/python.am (%DIR%PYTHON_INSTALL): Likewise.
(install-%DIR%PYTHON): Likewise. Also take care to keep note of
a list for byte compilation after installation.
* lib/am/texinfos.am (install-dvi-am, install-html-am)
(install-info-am, install-pdf-am, install-ps-am): Use file lists
to install multiple files at once.
* NEWS: Update.
Suggested by Akim Demaille.
Ralf Wildenhues [Sat, 8 Mar 2008 12:35:05 +0000 (13:35 +0100)]
Require unreleased Autoconf for fixed AC_PROG_INSTALL.
* m4/init.m4 (AM_INIT_AUTOMAKE): Bump AC_PREREQ to 2.61-341,
regenerate files.
* configure.ac: Also require Autoconf 2.61-341, to catch
failure early and provide a sensible error message.
Ralf Wildenhues [Sat, 23 Feb 2008 09:47:20 +0000 (10:47 +0100)]
Fix XFAIL_TESTS matching for NetBSD ksh.
* lib/am/check.am (check-TESTS): In the case patterns for
XFAILed tests, add literal bracket expression for matching
whitespace, as NetBSD 4.99.54 ksh does not understand a
bracket expression resulting from variable expansion.
* README: Explain how to run the Automake test suite, including
setting MAKE to test gmake.
Report by Patrick Welche.
Ralf Wildenhues [Tue, 19 Feb 2008 21:15:03 +0000 (22:15 +0100)]
PR automake/498
* m4/options.m4 (_AM_SET_OPTIONS): Use m4_foreach_w instead of
obsolete AC_FOREACH.
Report by NightStrike and gurganbl@rose-hulman.edu.
Ralf Wildenhues [Wed, 30 Jan 2008 20:23:16 +0000 (21:23 +0100)]
Split instsh2.test, so that only the new part requires non-root.
* tests/instsh2.test: Split off testing of `install-sh -C' ...
* tests/instsh3.test: ... to this new test, requiring non-root.
* tests/Makefile.am: Adjust.
* THANKS: Update.
Report by Theodoros V. Kalamatianos.
Ralf Wildenhues [Wed, 23 Jan 2008 22:38:34 +0000 (23:38 +0100)]
Split libtool part off of nobase.test.
* tests/nobase.test: Split off libtool part of nobase.test for
increased test exposure, to ...
* tests/nobase-libtool.test: ... this new test.
* tests/Makefile.am: Update.
Ralf Wildenhues [Tue, 22 Jan 2008 22:35:57 +0000 (23:35 +0100)]
Prefer generated manpages over distributed ones.
* lib/am/mans.am (install-man%SECTION%): Prefer generated manpages
over distributed ones.
Report and patch by Peter Breitenlohner.
* tests/man3.test: New test.
* tests/Makefile.am: Update.
Ralf Wildenhues [Sat, 8 Dec 2007 10:06:03 +0000 (11:06 +0100)]
Fix `fetch' target to match current upstream locations.
* Makefile.am (WGET_SV_CVS): Renamed from WGETSGO.
(WGET_SV_GIT_AC, WGET_SV_GIT_GL, WGET_GCC): New.
(fetch): Update to match current upstream locations.
Ralf Wildenhues [Mon, 14 Jan 2008 21:42:33 +0000 (22:42 +0100)]
* doc/automake.texi (DESTDIR, Built sources example): Fix wording.
* THANKS: Update.
Reports and suggestions by William Pursell and nightstrike@gmail.com.
Ralf Wildenhues [Sun, 13 Jan 2008 17:05:44 +0000 (18:05 +0100)]
Do not fail if `autoupdate' is not present.
* tests/obsolete.test: Check for presence of autoupdate. Apparently,
FreeBSD may install the other Autoconf programs without a version
suffix but not autoupdate.
Ralf Wildenhues [Thu, 10 Jan 2008 19:49:07 +0000 (20:49 +0100)]
Clarify texinfo.tex and TEXINFO_TEX semantics.
* doc/automake.texi (Texinfo): Clarify that by default,
texinfo.tex is searched in the same directory as the Makefile.am
that needs it. Clarify that TEXINFO_TEX has precedence over
AC_CONFIG_AUX_DIR, and that it requires the user to install and
distribute it.
* tests/txinfo22.test: Ensure TEXINFO_TEX is not distributed.
* THANKS: Update.
Reports by Dilyan Palauzov and Roumen Petrov.
Ralf Wildenhues [Tue, 8 Jan 2008 20:37:21 +0000 (21:37 +0100)]
Fix acloca20.test for fast machines.
* tests/acloca20.test: Use `--force' with the second $AUTOCONF,
to force update on fast machines where both autoconf invocations
happen within the same second.
Report by Greg Schafer.
Ralf Wildenhues [Mon, 7 Jan 2008 20:53:38 +0000 (21:53 +0100)]
Fix ccnoco.test for uncommon LDFLAGS settings.
* tests/ccnoco.test (Mycomp): Use a tighter match for -c -o,
to avoid matching for example `LDFLAGS=-Wl,--sort-common'.
* THANKS: Update.
Report and analysis by Carsten Lohrke and Mike Frysinger.
Jim Meyering [Tue, 18 Dec 2007 16:49:49 +0000 (17:49 +0100)]
* lib/gnupload (GPG): Don't use an absolute path.
This reverts part of the 2004-01-28 change.
If the hypothetical cracker ever gets in to my (or any developer's)
system with sufficient privilege to modify the contents of
directories in my PATH (or change my PATH altogether), they can
already compromise my development work in so many ways that using
such absolute names in gnupload gives reduced functionality with
no added security.
Ralf Wildenhues [Sat, 8 Dec 2007 10:07:12 +0000 (11:07 +0100)]
Modify some tests for absolute trees containing whitespace.
* tests/missing.test: Use "./missing" instead of "`pwd`/missing".
* tests/missing2.test: Likewise.
* tests/mmodely.test: Add `pwd` to $PATH instead of absolute
references to myyacc.sh and mylex.sh.
* tests/multlib.test: Likewise for mycc.
* tests/txinfo26.test: Skip if `pwd` contains whitespace, as
an absolute --srcdir does not work there.
Ralf Wildenhues [Sat, 8 Dec 2007 09:33:21 +0000 (10:33 +0100)]
Fix the distdir target to cope with spaces in absolute file names.
* lib/am/distdir.am: Quote all instances of $(distdir) and
$(top_distdir). They could contain white space, coming from
a toplevel package bootstrapped with an older Automake version.
(am__relativize): New macro, taken from gnulib code, written by
Bruno Haible.
(distdir): Use it to compute relative paths to distdir and
top_distdir for enclosed subpackages.
Also, quote $(distuninstallcheck_dir).
* lib/am/texinfos.am: Likewise, quote $(distdir).
Akim Demaille [Sun, 25 Nov 2007 10:15:23 +0000 (11:15 +0100)]
Define and use register_action.
* lib/Automake/Rule.pm: Fix a few typos in the doc.
(&rule): Use || to simplify the code.
(®ister_action): New.
Export it.
* automake.in (&handle_factored_dependencies, &file_contents_internal):
Use it.
Akim Demaille [Sat, 24 Nov 2007 11:24:22 +0000 (12:24 +0100)]
Ternary operator in lib/am files.
* automake.in (&transform_token): New.
(&transform): Use it.
Support %KEY?TRUE:FALSE%.
(&make_paragraphs): Adjust the regexp to call %transform.
* lib/am/data.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am,
* lib/am/progs.am, lib/am/python.am, lib/am/scripts.am:
Use %KEY?TRUE:FALSE%.
* lib/am/inst-vars.am (am__strip_dir): Assign the result to f
to be more alike am__vpath_adj.
Adjust dependencies.
Ralf Wildenhues [Sun, 18 Nov 2007 15:23:52 +0000 (16:23 +0100)]
* tests/output13.test: New test.
* tests/Makefile.am: Adjust.
Prompted by report from Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2007-10/msg00479.html>.
Ralf Wildenhues [Sun, 18 Nov 2007 14:30:01 +0000 (15:30 +0100)]
Fix signal handling in aclocal.
* aclocal.in (unlink_tmp): If invoked by a signal, note so
in verbose mode. Reinstall default signal handler and reraise,
to transport the interrupt information.