* lib/Autom4te/Getopt.am: The master copy of this file has
been moved to the Automake repository (see Automake commit
'v1.11-662-g52246cc' 2012-01-18, "cmdline parsing: move into
a dedicated perl module"). So we now we sync it from there,
by listing it ...
* cfg.mk (autom4te_files): ... in this variable.
Apparently, Automake does not accept the '$(srcdir)/ChangeLog'
target in Makefile.am as a declaration that ChangeLog is
automatically generated (and thus does not need to exist at
automake time). One has to use a *literal* 'ChangeLog' target.
Problem introduced in commit v2.68-118-g6ed5195 of 2012-01-17,
"maint: generate ChangeLog from git log".
* Makefile.ma ($(srcdir)/ChangeLog): Renamed ...
(ChangeLog): ... to this.
* lib/Autom4te/General.pm (getopt): Move the guts of its
implementation ...
* lib/Autom4te/Getopt.pm (parse_options): .. into this function
in the new Autom4te::Getopt module. This will make it simpler
for the implementation to be shared with other projects (right
now, Automake).
* lib/Automake/Makefile.am (dist_perllib_DATA): Add the new
module.
The tests compare pre- and post-run lists of envvars, which must
be the same, modulo a list of known, filtered-out exceptions.
However, when running fortran-checking tests with GNU fortran, each
would fail due to the post-run addition of the GFC symbol added in
v2.68-97-gbd962ac.
* tests/local.at (AT_CHECK_ENV): Add GFC to the list of symbols
that we ignore in pre-/post-run environment diffs.
Following the practice set by various other GNU projects, we start
to automatically generate the ChangeLog file from the git commit
messages. This will avoid duplication (as the ChangeLog entries
were always inserted both in the git commit message and in the
version-controlled ChangeLog file), and potential problems with
spurious merge conflicts (which, although greatly mitigated by
Bruno Haible's `git-merge-changelog' helper program, have never
been completely solved).
* ChangeLog: Moved ...
* ChangeLog.3: ... to this.
* build-aux/gitlog-to-changelog: New script, synced from gnulib.
* cfg.mk (gnulib-update): Also sync gitlog-to-changelog.
* Makefile.am (gen-ChangeLog): New .PHONY rule, generate the
ChangeLog for distribution.
(dist-hook): Depend on it.
($(srcdir)/ChangeLog): New dummy rule, to pacify automake "gnu"
strictness. Creates a dummy ChangeLog, that will be overridden
by the proper one at distribution time.
(gen_start_date): New variable, the date starting from which the
git log entries are to be copied in the generated ChangeLog.
(EXTRA_DIST): Add ChangeLog.3 and gitlog-to-changelog.
* configure.ac (AC_CONFIG_SRCDIR): Use 'lib/autoconf/autoconf.m4'
instead of 'ChangeLog' as the sentinel file.
* .gitignore: Add ChangeLog.
Older versions of Getopt::Long acted bogusly and died when they
where configured with the 'bundling' flag and an argument '-' was
seen on the command line they were parsing. That is no longer
the case though, and has not been for quite a long time: the bug
is no longer present in the 5.6.2 version of perl and the 2.25
version of Getopt::Long (and today, the latest versions of perl
and Getopt::Long are respectively 5.14.2 and 2.38). The obsolete
workaround for that Getopt::Long bug can thus be removed from our
'getopt' function.
It is also worth noting that such a workaround was quite buggy
and brittle itself; for example, a command like this:
"autom4te --output -"
would have caused the incorrect diagnostic:
"autom4te: option `--output' requires an argument"
Much worse, a command like this:
"autom4te --language=autoconf --output - configure.ac"
would have caused the standard input of autom4te to be processed
and copied into the 'configure.ac' file, deleting its pre-existing
content! Surely not what a user would have expected.
After this change, a command like this:
autom4te --language=autoconf --output - - <configure.ac >out
works as expected, processing the input from 'configure.ac' and
writing it to the 'out' file.
* lib/Autom4te/General.pm (use): Require perl version 5.6.2.
(getopt): Remove the old workaround.
Before this change, an incorrect command line usage:
"autom4te --output"
triggered broken diagnostic like:
"autom4te: unrecognized option `--output'"
instead of the expected and correct:
"autom4te: option `--output' requires an argument"
* lib/Autom4te/General.pm (getopt): Give correct diagnostic in
case of usage errors due to missing arguments for options for
which they are mandatory. Code basically copied from automake's
'parse_arguments' private subroutine.
* doc/autoconf.texi (Invoking the Shell): New section.
(Backslash-Newline-Empty): Rename from Backslash-Newline-Newline.
Mention problem with Bash 2.03.
* lib/m4sugar/general.m4 (_AS_DETECT_BETTER_SHELL): Define the macro
`_AS_FORCE_REEXEC_WITH_CONFIG_SHELL' to `yes', so that the code in
`_AS_DETECT_BETTER_SHELL' will cause autoconf-generated configure
scripts to always re-execute themselves with $CONFIG_SHELL, if it's
set in the environment.
* doc/autoconf.texi (config.status Invocation): Update.
* doc/install.texi (Defining Variables): Likewise.
* NEWS: Likewise.
* tests/m4sh.at: Add tests for the new semantics in ...
(Configure re-execs self with CONFIG_SHELL): ... this new
test group.
* lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): If the m4sh client
has defined the macro `_AS_FORCE_REEXEC_WITH_CONFIG_SHELL' to
"yes", emit code to always re-execute the current script with
$CONFIG_SHELL, if that's set.
* tests/m4sh.at: Add tests for the new and old semantics, in ...
(Re-exec with CONFIG_SHELL, Forced re-exec with CONFIG_SHELL): ...
these new test groups.
This works better for symlinks to directories.
Problem reported by Eli Zaretskii via Werner Lemberg in
<http://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00006.html>.
* NEWS:
* doc/autoconf.texi (Particular Programs): Document this.
* lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Implement this.
* doc/autoconf.texi (Limitations of Builtins) <export>: Give
concrete example of offender, and drop redundant text.
Reported by Stefano Lattarini.
Signed-off-by: Eric Blake <eblake@redhat.com>
* doc/autoconf.texi (Limitations of Builtins) <export>: Document
export limitation.
Suggested by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
* lib/autoconf/fortran.m4 (AC_PROG_FC): Define `$GFC' to "yes" if
the detected fortran compiler is a GNU compiler, define it to the
empty string otherwise.
This is mostly for consistency for what is done for the C, C++
and Fortran 77 compilers.
* doc/automake.texi: Update.
* doc/autoconf.texi (Signal handling): Rename ...
(Signal Handling): ... to this, for consistency with other node
names. Fix some typos and grammaros. Add more URL references
in comments.
Some Korn shells, when a child process dies due to signal number
n, can leave in $? an exit status of 256+n, instead of the more
common 128+n. See also Austin Group issue 0000051:
<http://www.austingroupbugs.net/view.php?id=51>
* doc/autoconf.texi (Signal handling): Document the described Korn
Shell behaviour, and some of its possible shortcomings.
Suggestion by Eric Blake.
See https://lists.gnu.org/archive/html/bug-diffutils/2011-08/msg00022.html
for precedence in diffutils. The autoconf manual, as of this commit,
was still barely below 400 pages.
* doc/autoconf.texi (copying): Drop front- and back-cover texts.
* NEWS: Document this.
Reported by Brian Gough.
Signed-off-by: Eric Blake <eblake@redhat.com>
The docs referred to @var{program}, which did not exist.
* doc/autoconf.texi (Runtime) <AC_RUN_IFELSE>: Fix wording.
Reported by Reuben Thomas.
Signed-off-by: Eric Blake <eblake@redhat.com>
* doc/autoconf.texi (Automatic Rule Rewriting): Solaris make
VPATH rewriting applies to any whitespace-separated word in a
rule, so it might apply also to shell variables, functions
and keywords (and automake has already tripped on this once);
document this, with an example. Since we are at it, do some
minor reformatting of existing text.
* lib/autoconf/c.m4 (AC_C_CONST): Don't reject gcc when it is used
with -Werror -Wall during configuring. It's unwise to use GCC
that way, but apparently enough people do it nowadays that it's an
issue. These days nobody uses the old compilers that the old
tests reject, so we can't test this fix against them, but it's
more important to work with modern GCC (even when misused) than to
work with no-longer-used compilers. Problem reported by Shevek in
<http://lists.gnu.org/archive/html/bug-autoconf/2008-11/msg00007.html>
and raised again by Dan Kegel in
<http://lists.gnu.org/archive/html/bug-autoconf/2011-08/msg00020.html>.
* doc/autoconf.texi (Why Not Imake): Fix grammar.
(autoreconf Invocation): Fix short option for --version.
* THANKS: Update.
Reported by Christophe Jarry and Russ Allbery.
Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-11 Mike Frysinger <vapier@gentoo.org>
* lib/m4sugar/m4sugar.m4 (_m4_require_check): Add URL to warning.