]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
12 years agomake flags analysis: take advantage of GNU make features
Stefano Lattarini [Tue, 7 May 2013 14:24:13 +0000 (16:24 +0200)] 
make flags analysis: take advantage of GNU make features

* lib/am/header-vars.mk: Here.  In particular ...
(am__make_keepgoing): ... rename this ...
(am.make.keep-going): ... like this, and reimplement using ...
(am.make.is-running-with-option): ... this new macro, cannibalized
from the old version of the 'am.make.dry-run' macro.
(am.make.dry-run): Reimplement using such new macro.
* lib/am/subdirs.mk: Adjust.
* t/make-keepgoing.tap: Likewise.  While at, simplify by assuming
that $MAKE is GNU make, and enhance to test more setups (in particular,
this makes this test more in sync with the test 't/make-dryrun.tap').
* t/make-dryrun.tap: While at it, remove an extra empty line.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'master' into ng/master
Stefano Lattarini [Tue, 7 May 2013 13:27:21 +0000 (15:27 +0200)] 
Merge branch 'master' into ng/master

* master:
  docs: fix warnings given by Texinfo 5.x
  fixlet: remove leftover comment fragment
  master branch: we are going to become Automake 2.0
  maint branch: we are going to become Automake 1.14
  maint: version bump after beta release 1.13.1d
  release: beta release 1.13.1d (will become 1.13.2)
  NEWS: document more robust handling/recognition of make options
  tests: typofixes in comments in t/preproc-c-compile.sh
  tests: remove bashism from a test
  maint: targets and recipes to simplify testing on real-world packages
  build: preparatory refactoring
  build: tiny reduction in code duplication
  make flags analysis: handle more options with args
  make flags analysis: use simpler variable names
  make flags analysis: whitespace changes
  make flags analysis: embed in a subshell
  make flags analysis: be more robust
  make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
  tests: expose weaknesses in make flags analysis
  tests: improve debugging output in checks on make flags analysis
  make flags analysis: refactor, to reduce code duplication
  tests: avoid one tricky use of "make -e"
  cosmetics: remove few trailing whitespace occurrences
  typofix: in NEWS (extra whitespace)
  compat: substitute '@mkdir_p@' as '$(MKDIR_P)' unconditionally
  tests: avoid a spurious error with Solaris make
  subdirs: don't return false positives for the '-k' option's presence
  header-vars: recognize more make flags ('-k' in particular)
  header-vars: simplify how make flags are determined
  tests: remove dead code from t/make-dryrun.tap
  header-vars: new variable $(am__running_with_option)
  tests: expose bug#12554 (false positives for presence of '-k' make option)

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: fix warnings given by Texinfo 5.x
Stefano Lattarini [Mon, 6 May 2013 09:21:57 +0000 (11:21 +0200)] 
docs: fix warnings given by Texinfo 5.x

These warnings:

  doc/automake.texi:3885: warning: node next `Public Macros' in menu \
    `Private Macros' and in sectioning `Obsolete Macros' differ
  doc/automake.texi:4050: warning: node `Private Macros' is next for \
    `Obsolete Macros' in sectioning but not in menu
  doc/automake.texi:4050: warning: node prev `Obsolete Macros' in menu \
    `Private Macros' and in sectioning `Public Macros' differ
  doc/automake.texi:4090: warning: node `Obsolete Macros' is next for \
    `Private Macros' in menu but not in sectioning
  doc/automake.texi:4090: warning: node prev `Private Macros' in menu \
    `Public Macros' and in sectioning `Obsolete Macros' differ

* doc/automake.texi: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixlet: remove leftover comment fragment
Stefano Lattarini [Sat, 4 May 2013 23:09:20 +0000 (01:09 +0200)] 
fixlet: remove leftover comment fragment

* configure.ac: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaster branch: we are going to become Automake 2.0
Stefano Lattarini [Sat, 4 May 2013 22:58:00 +0000 (00:58 +0200)] 
master branch: we are going to become Automake 2.0

* configure.ac (AC_INIT): So adjust the beta version in here, from
1.13a to 1.99a.
* m4/amversion.m4: Regenerate.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 4 May 2013 22:55:26 +0000 (00:55 +0200)] 
Merge branch 'maint'

* maint:
  maint branch: we are going to become Automake 1.14
  maint: version bump after beta release 1.13.1d
  release: beta release 1.13.1d (will become 1.13.2)
  NEWS: document more robust handling/recognition of make options
  tests: typofixes in comments in t/preproc-c-compile.sh
  tests: remove bashism from a test

12 years agomaint branch: we are going to become Automake 1.14
Stefano Lattarini [Sat, 4 May 2013 22:53:27 +0000 (00:53 +0200)] 
maint branch: we are going to become Automake 1.14

* configure.ac (AC_INIT): So adjust beta version in here, from
1.13.2a to 1.13a.
* m4/amversion.m4: Regenerate.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Sat, 4 May 2013 22:52:01 +0000 (00:52 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  maint: version bump after beta release 1.13.1d
  release: beta release 1.13.1d (will become 1.13.2)
  NEWS: document more robust handling/recognition of make options

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: version bump after beta release 1.13.1d
Stefano Lattarini [Sat, 4 May 2013 22:46:54 +0000 (00:46 +0200)] 
maint: version bump after beta release 1.13.1d

* configure.ac (AC_INIT): Bump version number to 1.13.1e.
* m4/amversion.m4: Likewise (autoupdated by "make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agorelease: beta release 1.13.1d (will become 1.13.2) v1.13.1d
Stefano Lattarini [Sat, 4 May 2013 21:19:36 +0000 (23:19 +0200)] 
release: beta release 1.13.1d (will become 1.13.2)

* configure.ac (AC_INIT): Bump version number to 1.13.1d.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS: document more robust handling/recognition of make options
Stefano Lattarini [Sat, 4 May 2013 20:58:25 +0000 (22:58 +0200)] 
NEWS: document more robust handling/recognition of make options

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: typofixes in comments in t/preproc-c-compile.sh
Stefano Lattarini [Sat, 4 May 2013 12:02:06 +0000 (14:02 +0200)] 
tests: typofixes in comments in t/preproc-c-compile.sh

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: remove bashism from a test
Stefano Lattarini [Sat, 4 May 2013 11:59:19 +0000 (13:59 +0200)] 
tests: remove bashism from a test

* t/preproc-c-compile.sh (Makefile.am): Use "test foo = bar", not the
bash-specific "test foo == bar".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 4 May 2013 10:11:40 +0000 (12:11 +0200)] 
Merge branch 'maint'

* maint:
  maint: targets and recipes to simplify testing on real-world packages
  build: preparatory refactoring
  build: tiny reduction in code duplication
  make flags analysis: handle more options with args
  make flags analysis: use simpler variable names
  make flags analysis: whitespace changes
  make flags analysis: embed in a subshell
  make flags analysis: be more robust
  make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
  tests: expose weaknesses in make flags analysis
  tests: improve debugging output in checks on make flags analysis
  make flags analysis: refactor, to reduce code duplication
  tests: avoid one tricky use of "make -e"
  cosmetics: remove few trailing whitespace occurrences
  typofix: in NEWS (extra whitespace)
  tests: avoid a spurious error with Solaris make
  subdirs: don't return false positives for the '-k' option's presence
  header-vars: recognize more make flags ('-k' in particular)
  header-vars: simplify how make flags are determined
  tests: remove dead code from t/make-dryrun.tap
  header-vars: new variable $(am__running_with_option)
  tests: expose bug#12554 (false positives for presence of '-k' make option)

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Sat, 4 May 2013 09:50:10 +0000 (11:50 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  maint: targets and recipes to simplify testing on real-world packages
  build: preparatory refactoring
  build: tiny reduction in code duplication
  make flags analysis: handle more options with args
  make flags analysis: use simpler variable names
  make flags analysis: whitespace changes
  make flags analysis: embed in a subshell
  make flags analysis: be more robust
  make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
  tests: expose weaknesses in make flags analysis
  tests: improve debugging output in checks on make flags analysis
  make flags analysis: refactor, to reduce code duplication
  tests: avoid one tricky use of "make -e"
  tests: avoid a spurious error with Solaris make
  subdirs: don't return false positives for the '-k' option's presence
  header-vars: recognize more make flags ('-k' in particular)
  header-vars: simplify how make flags are determined
  tests: remove dead code from t/make-dryrun.tap
  header-vars: new variable $(am__running_with_option)
  tests: expose bug#12554 (false positives for presence of '-k' make option)

12 years agoMerge 'better-makeflags-recognition' and 'testing-work' into branch-1.13.2
Stefano Lattarini [Sat, 4 May 2013 09:37:09 +0000 (11:37 +0200)] 
Merge 'better-makeflags-recognition' and 'testing-work' into branch-1.13.2

* better-makeflags-recognition:
  make flags analysis: handle more options with args
  make flags analysis: use simpler variable names
  make flags analysis: whitespace changes
  make flags analysis: embed in a subshell
  make flags analysis: be more robust
  make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
  tests: expose weaknesses in make flags analysis
  tests: improve debugging output in checks on make flags analysis
  make flags analysis: refactor, to reduce code duplication

* testing-work:
  maint: targets and recipes to simplify testing on real-world packages
  build: preparatory refactoring
  build: tiny reduction in code duplication

12 years agomaint: targets and recipes to simplify testing on real-world packages
Stefano Lattarini [Fri, 3 May 2013 21:02:11 +0000 (23:02 +0200)] 
maint: targets and recipes to simplify testing on real-world packages

We introduce a new section in the maintainer-specific makefile that
contains recipes to test the build system of some well-known GNU
packages with the current development version of Automake.  Not the
cleanest way to do so, but good enough for the moment.  We'll revisit
the matter after the 1.13.2 release (which we now hope will happen
soon).

* maint.mk (git-sv-host): New.
(SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): Use it to reduce code duplication.
(ALL_PACKAGES, FEW_PACKAGES): New, lists of GNU packages to try out.
(ttp-check, ttp-check-all): New targets, do the checking with said
packages.
(ttp): New, alias for 'ttp-check'.
(ttp-all): New, alias for 'ttp-check-all'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: preparatory refactoring
Stefano Lattarini [Fri, 3 May 2013 19:02:42 +0000 (21:02 +0200)] 
build: preparatory refactoring

No semantic change intended.  This change will be required
by a later patch.

* Makefile.am (setup_autotools_paths): New.
($(srcdir)/doc/amhello-1.0.tar.gz): Use it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: tiny reduction in code duplication
Stefano Lattarini [Fri, 3 May 2013 18:56:02 +0000 (20:56 +0200)] 
build: tiny reduction in code duplication

The code was only duplicated two times, but we are soon going to
need a third occurrence, and that would be one to much.

* Makefile.am (extend_path): New.
(update_mans): Use it instead of copying & pasting its contents.
($(srcdir)/doc/amhello-1.0.tar.gz): Likewise, and minor related
adjustments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: handle more options with args
Stefano Lattarini [Fri, 3 May 2013 12:06:25 +0000 (14:06 +0200)] 
make flags analysis: handle more options with args

That is, not only -I, but also -O (for upcoming GNU make 3.83),
-l (GNU make), -d, -E, -D, -m (BSD make), -J, -T (NetBSD make).

* lib/am/header-vars.am (am__make_running_with_option): Extend
and adjust, both code and comments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: use simpler variable names
Stefano Lattarini [Fri, 3 May 2013 11:01:35 +0000 (13:01 +0200)] 
make flags analysis: use simpler variable names

* lib/am/header-vars.am (am__make_running_with_option): Here.  Now
that we expect to be run in a subshell, we don't have to worry about
being namespace-safe.  And '$foo' is much more pleasant to read than
'$am__foo' -- and pleasant code tends to be more correct.
(am__make_dryrun, am__make_keepgoing): Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: whitespace changes
Stefano Lattarini [Fri, 3 May 2013 10:52:14 +0000 (12:52 +0200)] 
make flags analysis: whitespace changes

* lib/am/header-vars.am (am__make_running_with_option): Here.
No semantic change is intended.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: embed in a subshell
Stefano Lattarini [Fri, 3 May 2013 10:47:59 +0000 (12:47 +0200)] 
make flags analysis: embed in a subshell

So that we won't have to worry about leaking temporary variables,
and similar stuff.

* lib/am/header-vars.am (am__make_dryrun, am__make_keepgoing): Here.
(am__make_running_with_option): Minor adjustments.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: be more robust
Stefano Lattarini [Thu, 2 May 2013 17:41:24 +0000 (19:41 +0200)] 
make flags analysis: be more robust

In particular, catering to option-with-argument bundled together
with options-without-arguments, as in:

   # With GNU make 3.82:
   $ make -f- <<<'all:; echo "$$MFLAGS"' -s -k -I none
   -skiI none

   # With development version of GNU make (Git commit b5ea49b):
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -skiI none

This fixes some lingering failures in the testsuite; precisely, in
tests 'make-dryrun.tap' and 'make-keepgoing.tap'.

* t/header-vars.am (am__make_running_with_option): Enhance.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: cater to GNU make 3.83 (still unreleased as of now)
Stefano Lattarini [Wed, 1 May 2013 23:10:13 +0000 (01:10 +0200)] 
make flags analysis: cater to GNU make 3.83 (still unreleased as of now)

The current development version of GNU make (that is planned to become
GNU make 3.83, sooner or later) has changed the format its $(MFLAGS)
variable slightly, removing the space between an option and its argument:

   # With GNU make 3.82, compiled from official tarball:
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -I none

   # With development version of GNU make (Git commit b5ea49b):
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -Inone

This was done on purpose, in order to support more easily the new
option '-O', which takes an optional argument; see:

  <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00001.html>

So Just adapt to the new format as well.

* t/header-vars.am (am__make_running_with_option): Adjust to cater
to the new GNU make behaviour.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: expose weaknesses in make flags analysis
Stefano Lattarini [Wed, 1 May 2013 22:43:33 +0000 (00:43 +0200)] 
tests: expose weaknesses in make flags analysis

This introduces some failures in the testsuite, that will be fixed
soon enough by follow-up patches.

* t/make-dryrun.tap: Enhance and extend.
* t/make-keepgoing.tap: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: improve debugging output in checks on make flags analysis
Stefano Lattarini [Wed, 1 May 2013 22:27:46 +0000 (00:27 +0200)] 
tests: improve debugging output in checks on make flags analysis

* t/make-dryrun.tap: Here.
* t/make-keepgoing.tap: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomake flags analysis: refactor, to reduce code duplication
Stefano Lattarini [Wed, 1 May 2013 21:26:42 +0000 (23:26 +0200)] 
make flags analysis: refactor, to reduce code duplication

And make it a little more reliable.

* t/header-vars.am (am__make_running_with_option): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: avoid one tricky use of "make -e"
Stefano Lattarini [Wed, 1 May 2013 15:06:42 +0000 (17:06 +0200)] 
tests: avoid one tricky use of "make -e"

Which was causing a spurious failure on FreeBSD.  Not particularly
surprising, given how brittle "make -e" is in general ...

* t/cxx-lt-demo.sh: Instead of forcing $(CC) to be 'false' by
exporting "CC=false" in the environment and then passing the '-e'
option to make, do so by passing "CC=false" on the make command
line, both directly and using AM_MAKEFLAGS.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'fix-pr12554' into branch-1.13.2
Stefano Lattarini [Tue, 30 Apr 2013 21:55:47 +0000 (23:55 +0200)] 
Merge branch 'fix-pr12554' into branch-1.13.2

* fix-pr12554:
  tests: avoid a spurious error with Solaris make
  subdirs: don't return false positives for the '-k' option's presence
  header-vars: recognize more make flags ('-k' in particular)
  header-vars: simplify how make flags are determined
  tests: remove dead code from t/make-dryrun.tap
  header-vars: new variable $(am__running_with_option)
  tests: expose bug#12554 (false positives for presence of '-k' make option)

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Tue, 30 Apr 2013 21:03:50 +0000 (23:03 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  cosmetics: remove few trailing whitespace occurrences
  typofix: in NEWS (extra whitespace)

12 years agocosmetics: remove few trailing whitespace occurrences
Stefano Lattarini [Tue, 30 Apr 2013 21:00:53 +0000 (23:00 +0200)] 
cosmetics: remove few trailing whitespace occurrences

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotypofix: in NEWS (extra whitespace)
Stefano Lattarini [Tue, 30 Apr 2013 20:59:30 +0000 (22:59 +0200)] 
typofix: in NEWS (extra whitespace)

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocompat: substitute '@mkdir_p@' as '$(MKDIR_P)' unconditionally
Stefano Lattarini [Tue, 30 Apr 2013 20:26:46 +0000 (22:26 +0200)] 
compat: substitute '@mkdir_p@' as '$(MKDIR_P)' unconditionally

We had started to do so only when the obsolete AM_PROG_MKDIR_P variable
was used, but that has recently turned out not to be not good enough,
because Gettext 0.18.2 (the latest one at the moment of writing) is using
the modern macro AC_PROG_MKDIR_P in its '*.m4' files, but at the same time
is still using the obsolete make variable '$(mkdir_p)' in its Makefile
fragments.  This has been causing failures in real-world packages
bootstrapped with latest Gettext (0.18.2) and with bleeding-edge automake.

See for example:

  <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00009.html>

And the worst things is that those failures have been basically silent
and unnoticeable up until the final "make install" --- that is, after
the affected package had been bootstrapped, configured and built.  Yikes!

This issue has been reported to the Gettext developers:

  <http://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00044.html>

But even if they will quickly fix it, Gettext 0.18.2 will remain
affected.

The fix we can implement in Automake is small and unobtrusive enough,
definitely worth having in order to save the users and developers from
having to deal with this hard-to-spot issue.

* m4/init.m4 (AM_INIT_AUTOMAKE): AC_SUBST '@mkdir_p@' to '$(MKDIR_P)'.
* t/am-prog-mkdir-p.sh: Enhance.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintcheck: address a couple of spurious failures
Stefano Lattarini [Tue, 30 Apr 2013 17:41:42 +0000 (19:41 +0200)] 
maintcheck: address a couple of spurious failures

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: adjust for warnings that have been moved to GNU make runtime
Stefano Lattarini [Tue, 30 Apr 2013 17:30:45 +0000 (19:30 +0200)] 
tests: adjust for warnings that have been moved to GNU make runtime

Some of those warnings are given at automake runtime in mainline
Automake, and some tests were relying on that behaviour, thus causing
spurious testsuite failures.

* t/proc-errmsg.sh: Adjust accordingly.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocompat: restore support for $(INCLUDES) variable
Stefano Lattarini [Tue, 30 Apr 2013 16:27:00 +0000 (18:27 +0200)] 
compat: restore support for $(INCLUDES) variable

With the aim of avoiding the introduction of too much unneeded
differences and incompatibilities between Automake-NG and
mainline Automake.

See also commit v1.13.1b-166-g57c7200 (2013-04-19, compat: reinstate
support for obsolete $(INCLUDES) variable) in mainline Automake.

* automake.in (generate_makefile): The definition of the INCLUDES
variable now causes a warning in the 'obsolete' category rather than
a fatal error.

Suggested-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoautomake: fix some older mis-merge fallout
Stefano Lattarini [Tue, 30 Apr 2013 16:19:36 +0000 (18:19 +0200)] 
automake: fix some older mis-merge fallout

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'master' into ng/master
Stefano Lattarini [Tue, 30 Apr 2013 15:36:41 +0000 (17:36 +0200)] 
Merge branch 'master' into ng/master

* master:
  sync: update files from upstream with "make fetch"
  maintcheck: remove outdated whitelisting
  tar: format 'ustar' cannot support UID/GID longer than 21 bits
  docs: issues with configure substitutions in TESTS
  tests: avoid possible autotools caching issues (automake bug#13832)
  tests: rename some with more descriptive names
  docs: add myself and Ralf Wildenhues as authors
  authors: add myself
  dry-run: don't get confused by '-I' option
  tests: avoid a spurious failure with the Korn Shell
  dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
  header vars: can determine whether we are running under GNU make
  NEWS: improve wording for automake bug#13514 fix
  NEWS: document fix for automake bug#13514

+ Extra non-trivial changes:

* lib/am/header-vars.am: Ignore all upstream changes, we shouldn't
need them.
* t/make-is-gnu.sh: Remove; our generated makefiles have no need to
test whether they are running under GNU make --- of course they are!

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 30 Apr 2013 14:24:41 +0000 (16:24 +0200)] 
Merge branch 'maint'

* maint:
  sync: update files from upstream with "make fetch"
  maintcheck: remove outdated whitelisting
  tar: format 'ustar' cannot support UID/GID longer than 21 bits
  docs: issues with configure substitutions in TESTS
  tests: avoid possible autotools caching issues (automake bug#13832)
  tests: rename some with more descriptive names
  docs: add myself and Ralf Wildenhues as authors
  authors: add myself
  dry-run: don't get confused by '-I' option
  tests: avoid a spurious failure with the Korn Shell
  dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
  header vars: can determine whether we are running under GNU make
  NEWS: improve wording for automake bug#13514 fix
  NEWS: document fix for automake bug#13514

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Tue, 30 Apr 2013 13:35:46 +0000 (15:35 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  sync: update files from upstream with "make fetch"
  maintcheck: remove outdated whitelisting
  tar: format 'ustar' cannot support UID/GID longer than 21 bits

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'fix-pr13588-pax-hangs' into branch-1.13.2
Stefano Lattarini [Tue, 30 Apr 2013 12:48:45 +0000 (14:48 +0200)] 
Merge branch 'fix-pr13588-pax-hangs' into branch-1.13.2

* fix-pr13588-pax-hangs:
  tar: format 'ustar' cannot support UID/GID longer than 21 bits

12 years agotests: avoid a spurious error with Solaris make
Stefano Lattarini [Mon, 29 Apr 2013 18:43:02 +0000 (20:43 +0200)] 
tests: avoid a spurious error with Solaris make

* t/make-keepgoing.tap (Makefile.am): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agosubdirs: don't return false positives for the '-k' option's presence
Stefano Lattarini [Mon, 29 Apr 2013 14:12:34 +0000 (16:12 +0200)] 
subdirs: don't return false positives for the '-k' option's presence

This change fixes automake bug#12554.

The old implementation of the code descending into $(SUBDIRS)
entries used the following snippet to decide whether make is running
with the '-k' a.k.a. '--keep-going' option, and thus whether a failure
in a subdirectory should prevent the descent in the following ones:

    fail= failcom='exit 1'; \
    for f in x $$MAKEFLAGS; do \
      case $$f in \
        *=* | --[!k]*);; \
        *k*) failcom='fail=yes';; \
      esac; \
    done

It's clear that the second pattern in the 'case' construct could possibly
match false positives, for examples in these two cases:

    make check TESTS="x.test k.test"
    make -I /usr/local/kool-fragments

which are somewhat unusual, but not invalid.  So we need a more resilient
implementation, as we did for the detection of the '-n' flag.

This implementation is now provided by the new private macro
'$(am__make_keepgoing)' (introduced in recent commits); so we can
just us that to fix the bug.

* lib/am/subdirs.am ($(am__recursive_targets)): Use '$(am__make_keepgoing)'
instead of ad-hoc and more brittle checks.
* t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test case
't/subdir-keep-going-pr12554.sh'.

Reported-by: Michael Daniels <mdaniels@rim.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoheader-vars: recognize more make flags ('-k' in particular)
Stefano Lattarini [Mon, 29 Apr 2013 13:22:10 +0000 (15:22 +0200)] 
header-vars: recognize more make flags ('-k' in particular)

* lib/am/header-vars.am (am__running_with_option): Here.
Few improvements to comments, while at it.
(am__make_keepgoing): New, tell whther make is being runt with
the '-k' option.
* t/make-keepgoing.tap: New test.
* t/list-of-tests.mk: Add it.
* t/make-dryrun.tap: Minor edits to keep it more in sync with
the new test.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Mon, 29 Apr 2013 14:44:00 +0000 (16:44 +0200)] 
sync: update files from upstream with "make fetch"

* lib/config.guess: Likewise.
* lib/config.sub: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintcheck: remove outdated whitelisting
Stefano Lattarini [Mon, 29 Apr 2013 14:39:47 +0000 (16:39 +0200)] 
maintcheck: remove outdated whitelisting

* syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Here.
The test 'make-dryrun.sh' has been since long rewritten as the TAP
test 'make-dryrun.tap', and no longer spuriously triggers this
maintainer check.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoheader-vars: simplify how make flags are determined
Stefano Lattarini [Sat, 27 Apr 2013 14:09:43 +0000 (16:09 +0200)] 
header-vars: simplify how make flags are determined

Actually, son far only the '-n' option ("dry mode") was detected,
but this change will allow us to soon detect more options.

* lib/am/header-vars.am (am__running_with_option): Even when $MAKEFLAGS
appears to contain definition of variables with embedded whitespace,
use simple textual pre-processing over $MAKEFLAGS rather than tricky
recursive invocations of make to determine whether the '-n' option was
given.  This is enough to correctly handle all the tricky usages covered
in the testsuite.
* t/nodep.sh: Adjust to avoid a spurious failure.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: remove dead code from t/make-dryrun.tap
Stefano Lattarini [Sat, 27 Apr 2013 13:49:52 +0000 (15:49 +0200)] 
tests: remove dead code from t/make-dryrun.tap

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoheader-vars: new variable $(am__running_with_option)
Stefano Lattarini [Sat, 27 Apr 2013 13:25:06 +0000 (15:25 +0200)] 
header-vars: new variable $(am__running_with_option)

This is a preparatory refactoring, needed by later patches.
No semantic change is intended.

* lib/am/header-vars.am (am__running_with_option): New, contains
shell code that determines whether the current make instance is
running with a given one-letter option (e.g., -k, -n) that takes
no argument.  Actually, the only supported option at the moment
is '-n' (support for '-k' will be added soon).
(am__make_dryrun): Rewrite as a thin wrapper around
'$(am__make_running_with_option)'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: expose bug#12554 (false positives for presence of '-k' make option)
Stefano Lattarini [Tue, 2 Oct 2012 19:27:28 +0000 (21:27 +0200)] 
tests: expose bug#12554 (false positives for presence of '-k' make option)

The current implementation of the code descending into $(SUBDIRS)
entries uses the following snippet to decide whether make is running
with the '-k' a.k.a. '--keep-going' option, and thus whether a failure
in a subdirectory should prevent the descent in the following ones:

    fail= failcom='exit 1'; \
    for f in x $$MAKEFLAGS; do \
      case $$f in \
        *=* | --[!k]*);; \
        *k*) failcom='fail=yes';; \
      esac; \
    done

It's clear that the second pattern in the 'case' construct can possibly
match false positives, for examples in these two cases:

    make check TESTS="x.test k.test"
    make -I /usr/local/kool-fragments

which are somewhat unusual, but not invalid.  So we need a more resilient
implementation, as we did for the detection of the '-n' flag.

But alas, such an implementation seems quite tricky to obtain in portable
make.  So for the moment we content ourselves with exposing the bug, with
the hope of being able to fix soon enough.

* t/subdir-keep-going-pr12554.sh: New test.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.
* THANKS: Update

Reported-by: Michael Daniels <mdaniels@rim.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotar: format 'ustar' cannot support UID/GID longer than 21 bits
Stefano Lattarini [Sun, 17 Feb 2013 15:42:46 +0000 (16:42 +0100)] 
tar: format 'ustar' cannot support UID/GID longer than 21 bits

See automake bug#8343 and bug#13588.

POSIX 1988 'ustar' format is defined with *fixed-size* fields. There
is notably a 21 bits limit (2097151) for the UID and the GID.

Tom Rini tom_rini@mentor.com says (in bug#8343):

    When the user has a UID or GID that is larger than the ustar format
    supports, pax does not error out gracefully in some cases (FC13).

Marc Herbert <marc.herbert@intel.com> adds (in bug#8343):

    When "configure" is run by a user with an UID bigger than 21 bits,
    BSD pax 3.4 aborts when trying to create the 'conftest.tar' test
    archive and leaves an empty or corrupted conftest.tar file behind.
    In the next step, pax tries to extract this incomplete or corrupted
    archive and this *** hangs the whole ./configure script ***.

    Note: GNU cpio 2.9 pretends to pass the test but it is a LIE: it
    silently truncates any big UID to its lower 21 bits. I don't know
    what can be the consequences of this lie.

    I think there is currently a design issue in automake/m4/tar.m4
    considering that a ustar archive should should *never* succeed when
    ./configure is run from a big user ID.

Months later, Petr Hracek <phracek@redhat.com> reports a similar issue
(in bug#13588) for Fedora 17:

    I am trying to solve problem in case a user is created with big
    UID and during configuration pax hangs with message

        ATTENTION! pax archive volume change required.
        Ready for archive volume: 1
        Input archive name or "." to quit pax.
        Archive name >

    and needs user interaction.

    Reference: <https://bugzilla.redhat.com/show_bug.cgi?id=843376>

Time to fix this issue, on the line of a preliminary patch provided by
Petr Hracek in bug#13588.  The final patch ended up being remarkably
different from that original proposition, though.

* m4/tar.m4 (_AM_PROG_TAR): If the UID or GID of the current user is
too high (> 2097151), the 'ustar' format cannot work.  Adjust checks
accordingly.  Some related code reordering and clean-up.
* t/tar-ustar-id-too-high.sh: New test.
* t/list-of-tests.mk: Add it.
* t/tar.sh: While at it, tweak and enhance a little.
* t/tar2.sh: Likewise.
* t/tar3.sh: Likewise.
* t/tar-override.sh: Likewise.
* NEWS: Update.
* THANKS: Likewise.

Helped-by: Pavel Raiskup <praiskup@redhat.com>
Helped-by: Petr Hracek <phracek@redhat.com>
Helped-by: Marc Herbert <marc.herbert@intel.com>
Helped-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Fri, 26 Apr 2013 18:39:40 +0000 (20:39 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  docs: issues with configure substitutions in TESTS
  tests: avoid possible autotools caching issues (automake bug#13832)
  docs: add myself and Ralf Wildenhues as authors
  authors: add myself
  dry-run: don't get confused by '-I' option
  tests: avoid a spurious failure with the Korn Shell
  dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
  header vars: can determine whether we are running under GNU make
  NEWS: improve wording for automake bug#13514 fix
  NEWS: document fix for automake bug#13514

12 years agoMerge few bug-fixing branches into branch-1.13.2
Stefano Lattarini [Fri, 26 Apr 2013 18:22:24 +0000 (20:22 +0200)] 
Merge few bug-fixing branches into branch-1.13.2

* fix-part-pr13832:
  tests: avoid possible autotools caching issues (automake bug#13832)

* fix-pr13760:
  dry-run: don't get confused by '-I' option
  dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
  header vars: can determine whether we are running under GNU make

* fix-doc-pr14019:
  docs: issues with configure substitutions in TESTS

* news-wording-improve:
  NEWS: improve wording for automake bug#13514 fix

12 years agodocs: issues with configure substitutions in TESTS
Stefano Lattarini [Thu, 25 Apr 2013 19:03:40 +0000 (21:03 +0200)] 
docs: issues with configure substitutions in TESTS

Motivated by automake bug#14019.

* doc/automake.texi: Currently, when the parallel test harness is in use,
configure substitutions in TESTS definitions can only work if they expand
to tests that ends with a suffix listed in TEST_EXTENSIONS.  Document this
limitation.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: avoid possible autotools caching issues (automake bug#13832)
Stefano Lattarini [Sat, 20 Apr 2013 20:46:30 +0000 (22:46 +0200)] 
tests: avoid possible autotools caching issues (automake bug#13832)

* t/ar-lib4.sh: Here, by removing the autom4te cache before editing
configure.ac and re-running the autotools.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: rename some with more descriptive names
Stefano Lattarini [Thu, 25 Apr 2013 20:02:14 +0000 (22:02 +0200)] 
tests: rename some with more descriptive names

* t/tar3.sh: Rename ...
* t/tar-opts-errors.sh: ... like this.
* t/tar2.sh: Rename...
* t/tar-pax.sh: ... like this.
* t/tar.sh: Rename ...
* t/tar-ustar.sh: ... like this.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: add myself and Ralf Wildenhues as authors
Stefano Lattarini [Thu, 25 Apr 2013 19:34:17 +0000 (21:34 +0200)] 
docs: add myself and Ralf Wildenhues as authors

* doc/automake.texi: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoauthors: add myself
Stefano Lattarini [Thu, 25 Apr 2013 19:20:11 +0000 (21:20 +0200)] 
authors: add myself

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodry-run: don't get confused by '-I' option
Stefano Lattarini [Mon, 22 Apr 2013 16:02:07 +0000 (18:02 +0200)] 
dry-run: don't get confused by '-I' option

Fixes automake bug#13760 for non-GNU make implementations that still
support the option '-I'.  So far, the only such make implementation
are FreeBSD (8.x) make and NetBSD (5.x) make.

* lib/am/header-vars.am (am__make_dryrun): If a non-GNU make is being
used, try to handle the '-I' option in $MAKEFLAGS correctly.  For GNU
make, that is already done by the proper use of the $MFLAGS variable.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: avoid a spurious failure with the Korn Shell
Stefano Lattarini [Mon, 22 Apr 2013 21:37:11 +0000 (23:37 +0200)] 
tests: avoid a spurious failure with the Korn Shell

* t/list-flags.sh: Ensure the EMACS variable is set before unsetting it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
Stefano Lattarini [Mon, 22 Apr 2013 13:07:43 +0000 (15:07 +0200)] 
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)

Fixes automake bug#13760 for GNU make.

* lib/am/header-vars.am (am__make_dryrun): If GNU make is being used, rely
on the contents of the $(MFLAGS) variable rather than of the $(MAKEFLAGS)
to decide whther make is being executed in "dry run" mode.  Not only this
makes the code possibly faster and less brittle, but also fixes automake
bug#13760 (at least when GNU make is in use).
* t/make-dryrun.tap: Adjust: some tests that were xfailing now pass.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoheader vars: can determine whether we are running under GNU make
Stefano Lattarini [Mon, 22 Apr 2013 12:53:14 +0000 (14:53 +0200)] 
header vars: can determine whether we are running under GNU make

This is mostly a preparatory patch in view of future changes.

* lib/am/header-vars.am (am__is_gnu_make): New, contains shell code that
determines whether we are running under GNU make.
* t/make-is-gnu.sh: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS: improve wording for automake bug#13514 fix
Stefano Lattarini [Sun, 21 Apr 2013 14:59:05 +0000 (16:59 +0200)] 
NEWS: improve wording for automake bug#13514 fix

Helped-by: Jack Kelly <jack@jackkelly.name>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'master' into ng/master
Stefano Lattarini [Sun, 21 Apr 2013 09:24:54 +0000 (11:24 +0200)] 
Merge branch 'master' into ng/master

* master:
  INSTALL: regen
  sync: update files from upstream with "make fetch"
  tests: tweaks and minimal improvements to t/insthook.sh
  typofix: in comments in t/extra2.sh
  tests: fix botched cross-reference in a heading comment
  compat: reinstate support for obsolete $(INCLUDES) variable
  automake: refactoring: factor out common cpp-like flags
  NEWS (mint): reflect new Automake versioning scheme
  NEWS (master): reflect new Automake versioning scheme
  Add missing '$' for variable expansion in depout.m4
  maintcheck: avoid spurious failure
  perl: perl subroutine prototypes are problematic, don't use them
  fixup: one stray reference to older versioning scheme
  preproc: enhance and extend tests
  preproc: add support for relative names in included fragments

+ Non-trivial extra changes:

* automake.in (@cpplike_flags): Use $(AM_DEFAULT_INCLUDES), not
$(DEFAULT_INCLUDES).  Do not support $(INCLUDES).
(generate_makefile): User definition of $(INCLUDES) causes a fatal
error, not a warning.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS: document fix for automake bug#13514
Stefano Lattarini [Sun, 21 Apr 2013 08:38:29 +0000 (10:38 +0200)] 
NEWS: document fix for automake bug#13514

It was fixed by commit v1.13.1b-5-g7a3d7ce.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 20 Apr 2013 19:55:02 +0000 (21:55 +0200)] 
Merge branch 'maint'

* maint:
  INSTALL: regen
  sync: update files from upstream with "make fetch"
  tests: tweaks and minimal improvements to t/insthook.sh
  typofix: in comments in t/extra2.sh
  tests: fix botched cross-reference in a heading comment

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Sat, 20 Apr 2013 19:54:40 +0000 (21:54 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  INSTALL: regen
  sync: update files from upstream with "make fetch"
  tests: tweaks and minimal improvements to t/insthook.sh

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoINSTALL: regen
Stefano Lattarini [Sat, 20 Apr 2013 18:56:18 +0000 (20:56 +0200)] 
INSTALL: regen

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Sat, 20 Apr 2013 16:10:28 +0000 (18:10 +0200)] 
sync: update files from upstream with "make fetch"

* lib/INSTALL: Update.
* lib/config.guess: Likewise.
* 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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: tweaks and minimal improvements to t/insthook.sh
Stefano Lattarini [Sat, 20 Apr 2013 15:03:51 +0000 (17:03 +0200)] 
tests: tweaks and minimal improvements to t/insthook.sh

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotypofix: in comments in t/extra2.sh
Stefano Lattarini [Sat, 20 Apr 2013 12:46:33 +0000 (14:46 +0200)] 
typofix: in comments in t/extra2.sh

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix botched cross-reference in a heading comment
Stefano Lattarini [Sat, 20 Apr 2013 12:44:41 +0000 (14:44 +0200)] 
tests: fix botched cross-reference in a heading comment

* t/extra-dist-wildcards.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocompat: reinstate support for obsolete $(INCLUDES) variable
Stefano Lattarini [Fri, 19 Apr 2013 16:40:49 +0000 (18:40 +0200)] 
compat: reinstate support for obsolete $(INCLUDES) variable

Since INCLUDES and AM_CPPFLAGS can be both used at the same time in a
single project, and interact in a non-obvious way, switching away from
INCLUDES is, unfortunately, not simply a matter of doing a mindless
INCLUDES -> AM_CPPFLAGS substitution.  In fact, the transition from a
"INCLUDES + CPPFLAGS" setup to a "AM_CPPFLAGS only" setup could cause
subtle bugs to sneak into the build systems of the client packages
doing the transition.  Forcing this risk upon our users is definitely
not worth the small enhancement in consistency and cleanliness that
the removal of INCLUDES would give us.

For a more extended rationale and related discussions, see:
<http://lists.gnu.org/archive/html/automake/2013-02/msg00001.html>

This change basically reverts commit v1.13-8-g880595d.

* automake.in: Re-introduce support for INCLUDES (its use will cause
warnings in the 'obsolete' category rather than fatal errors).
* doc/automake.texi: Adjust to re-add mention of INCLUDES.
* t/includes-no-more.sh: Rename ...
* t/includes-deprecation.sh: ... like this, and adjust.
* t/list-of-tests.mk: Update.
* t/warnopts.sh: Minor fixlet while at it.

Suggested-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 19 Apr 2013 16:13:30 +0000 (18:13 +0200)] 
Merge branch 'maint'

* maint:
  automake: refactoring: factor out common cpp-like flags

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoautomake: refactoring: factor out common cpp-like flags
Stefano Lattarini [Fri, 19 Apr 2013 15:41:22 +0000 (17:41 +0200)] 
automake: refactoring: factor out common cpp-like flags

* automake.in (@cpplike_flags): In this new variable...
(C, C++, Objective C, Objective C++, Unified Parallel C, Preprocessed
Assembler, Preprocessed Fortran, Preprocessed Fortran 77): ... to be
used by registration (with the 'register_language' subroutine) of these
languages.

This is a refactoring meant to simplify future changes; no semantic
change is intended.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 19 Apr 2013 14:13:41 +0000 (16:13 +0200)] 
Merge branch 'maint'

* maint:
  NEWS (mint): reflect new Automake versioning scheme

12 years agoNEWS (mint): reflect new Automake versioning scheme
Stefano Lattarini [Fri, 19 Apr 2013 14:12:48 +0000 (16:12 +0200)] 
NEWS (mint): reflect new Automake versioning scheme

The next minor Automake version will be 1.14, and *not* 1.13.2 -- that
will be the next bug-fixing version.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS (master): reflect new Automake versioning scheme
Stefano Lattarini [Fri, 19 Apr 2013 14:01:12 +0000 (16:01 +0200)] 
NEWS (master): reflect new Automake versioning scheme

The next minor Automake version will be 1.14 (not 1.13.2 -- that will
be the next bug-fixing version).  And the next major Automake version
will be 2.0.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 19 Apr 2013 13:46:54 +0000 (15:46 +0200)] 
Merge branch 'maint'

* maint:
  Add missing '$' for variable expansion in depout.m4
  maintcheck: avoid spurious failure
  perl: perl subroutine prototypes are problematic, don't use them
  fixup: one stray reference to older versioning scheme

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Fri, 19 Apr 2013 13:46:36 +0000 (15:46 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  Add missing '$' for variable expansion in depout.m4
  fixup: one stray reference to older versioning scheme

12 years agoAdd missing '$' for variable expansion in depout.m4
Gavin Smith [Fri, 19 Apr 2013 13:16:26 +0000 (15:16 +0200)] 
Add missing '$' for variable expansion in depout.m4

* m4/depout.m4: "am__include" appeared where "$am__include" was meant.

Reference:
<http://lists.gnu.org/archive/html/automake-patches/2013-04/msg00000.html>

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'preproc' into maint
Stefano Lattarini [Fri, 19 Apr 2013 13:12:09 +0000 (15:12 +0200)] 
Merge branch 'preproc' into maint

* preproc:
  maintcheck: avoid spurious failure

12 years agomaintcheck: avoid spurious failure
Stefano Lattarini [Fri, 19 Apr 2013 12:15:17 +0000 (14:15 +0200)] 
maintcheck: avoid spurious failure

* t/preproc-errmsg.sh: Here, breaking up a sed command to avoid spuriously
triggering a failure in the 'sc_tests_logs_duplicate_prefixes' maintainer
check.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'no-perl-protos' into maint
Stefano Lattarini [Fri, 19 Apr 2013 09:28:16 +0000 (11:28 +0200)] 
Merge branch 'no-perl-protos' into maint

* no-perl-protos:
  perl: perl subroutine prototypes are problematic, don't use them

12 years agoperl: perl subroutine prototypes are problematic, don't use them
Stefano Lattarini [Tue, 5 Mar 2013 17:30:03 +0000 (18:30 +0100)] 
perl: perl subroutine prototypes are problematic, don't use them

Basically, in perl, "subroutine prototypes" are not prototypes at all;
rather, they are a trick to allow user-defined subroutines that behave
like perl built-in functions.  For example, prototyped subroutines can
be called without parentheses, and can impose context on their arguments.

Such semantics can be useful in some selected situations, but might also
easily cause unexpected and harmful behaviours and side effects if we
try to use perl prototypes as we would use C prototypes.

See the excellent article "Far More than Everything You've Ever Wanted
to Know about Prototypes in Perl" by Tom Christiansen for more detailed
information:

    <http://www.perlmonks.org/?node_id=861966>
    <http://web.archive.org/web/20080421062920/\
     library.n0i.net/programming/perl/articles/fm_prototypes>

It is important to note that modern perl allows a non-predeclared
subroutine to be called without the '&' character, as long as its
call uses proper parentheses:

    foo 'str', 2;   # will trigger errors if foo is not predeclared
    foo('str', 2);  # ok even if foo is not predeclared
    &foo('str', 2); # ditto; but the '&' is old-style and redundant

Note also that the prototype indicating "no argument":

    sub func() { ... }

can actually be useful, and has no discernible downsides, so we'll
keep using it where it makes sense.

Also, in few, selected cases, we *want* to have subroutines behave like
perl builtins (e.g., we want the 'append_exeext' function to be able
to take a code block as first argument).  In such cases, we will of
course continue to make use of perl subroutine prototypes.

Let's finally see an example that might clarify the kind of problems the
use of subroutine prototypes in perl can cause.  This is just scratching
the surface; there are several other aspects, typically subtler and more
dangerous, that are not touched here.

If you have the prototyped subroutine definition:

    sub foo ($@)
    {
        my $s = shift;
        print "SCALAR: $s\n";
        print "ARRAY: @_\n";
    }

and call 'foo' in code like:

    @list = (-1, 0, 1);
    foo(@list);

you won't get a compile-time nor a runtime error (as a naive interpretation
of the "prototype" characterization would let you think).  Rather, the
prototype will cause the array '@list' will be coerced into scalar context
before being passed too 'foo', which means that its *length* (3) will be
passed to 'foo' as first argument; and since no further arguments are
present after '@list', that *void* will be coerced to an empty list before
being passed to 'foo'.

So code above will have the result of printing:

  SCALAR: 3
  ARRAY:

Quite tricky, and definitely a behaviour we don't want to rely on.

* automake.in: Delete most subroutine prototypes.  Fix few of the
remaining ones.  Related minor simplifications and adjustments.
* lib/gen-perl-protos: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 5 Mar 2013 15:32:55 +0000 (16:32 +0100)] 
Merge branch 'maint'

* maint:
  preproc: enhance and extend tests
  preproc: add support for relative names in included fragments

12 years agoMerge branch 'preproc' into maint
Stefano Lattarini [Tue, 5 Mar 2013 14:58:49 +0000 (15:58 +0100)] 
Merge branch 'preproc' into maint

* preproc:
  preproc: enhance and extend tests
  preproc: add support for relative names in included fragments

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: one stray reference to older versioning scheme
Stefano Lattarini [Thu, 21 Feb 2013 18:25:55 +0000 (19:25 +0100)] 
fixup: one stray reference to older versioning scheme

* lib/Automake/Options.pm: Here, in a FIXME comment: reference
"Automake 3.0" rather than "Automake 1.15".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'master' into ng/master
Stefano Lattarini [Thu, 21 Feb 2013 17:12:27 +0000 (18:12 +0100)] 
Merge branch 'master' into ng/master

* master:
  maint: more adjustments to the new versioning scheme
  aclocal: fix for more-than-once specified directories
  aclocal: just warn if the primary local m4 dir doesn't exist (don't error)
  coverage: expose automake bug#13760
  tests: refactor/enhance tests about make dry-run mode
  maint: describe new versioning and branching scheme, and adjust to it
  cosmetics: fix some "docstring-like" comments in automake

+ t/make-dryrun.tap: Several adjustments, since this test had diverged
quite significantly from the version in mainline Automake.  Particularly
relevant is the fact that Automake-NG seems immune to bug#13760, so that
some tests that are returning XFAIL in mainline automake succeeds for
Automake-NG.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint' into master
Stefano Lattarini [Thu, 21 Feb 2013 15:39:22 +0000 (16:39 +0100)] 
Merge branch 'maint' into master

* maint:
  maint: more adjustments to the new versioning scheme
  aclocal: fix for more-than-once specified directories
  aclocal: just warn if the primary local m4 dir doesn't exist (don't error)
  coverage: expose automake bug#13760
  tests: refactor/enhance tests about make dry-run mode
  maint: describe new versioning and branching scheme, and adjust to it
  cosmetics: fix some "docstring-like" comments in automake

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Thu, 21 Feb 2013 15:10:16 +0000 (16:10 +0100)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  aclocal: fix for more-than-once specified directories
  aclocal: just warn if the primary local m4 dir doesn't exist (don't error)

12 years agomaint: more adjustments to the new versioning scheme
Stefano Lattarini [Thu, 21 Feb 2013 14:52:22 +0000 (15:52 +0100)] 
maint: more adjustments to the new versioning scheme

This is a follow-up to commit 'v1.13.1b-11-g97aaf12'.

* automake.in: Adjust a comment.
* PLANS: Adjust several files in here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'fix-pr13514' into branch-1.13.2
Stefano Lattarini [Thu, 21 Feb 2013 14:35:04 +0000 (15:35 +0100)] 
Merge branch 'fix-pr13514' into branch-1.13.2

* fix-pr13514:
  aclocal: fix for more-than-once specified directories
  aclocal: just warn if the primary local m4 dir doesn't exist (don't error)

12 years agoaclocal: fix for more-than-once specified directories
Pavel Raiskup [Mon, 11 Feb 2013 12:11:52 +0000 (13:11 +0100)] 
aclocal: fix for more-than-once specified directories

Related to automake bug#13514.

Do not consider directories for extra m4 files multiple times in
'aclocal'.  Doing so caused problems on older packages that specify

    configure.ac:  AC_CONFIG_MACRO_DIRS([m4])
    Makefile.am:   ACLOCAL_AMFLAGS = -I m4

if the 'm4' directory does not exist when aclocal is called the first
time by autoreconf.

See:
<http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>

* aclocal.in (scan_m4_files): Remove duplicates in @user_includes.
* t/aclocal-macrodir.tap: Extend.
* t/aclocal-macrodirs.tap: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'docstrings-tweaks' into maint
Stefano Lattarini [Wed, 20 Feb 2013 21:15:21 +0000 (22:15 +0100)] 
Merge branch 'docstrings-tweaks' into maint

* docstrings-tweaks:
  cosmetics: fix some "docstring-like" comments in automake

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Wed, 20 Feb 2013 21:14:55 +0000 (22:14 +0100)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  coverage: expose automake bug#13760
  tests: refactor/enhance tests about make dry-run mode
  maint: describe new versioning and branching scheme, and adjust to it

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'new-versioning-scheme' into branch-1.13.2
Stefano Lattarini [Wed, 20 Feb 2013 21:13:34 +0000 (22:13 +0100)] 
Merge branch 'new-versioning-scheme' into branch-1.13.2

* new-versioning-scheme:
  maint: describe new versioning and branching scheme, and adjust to it

12 years agoaclocal: just warn if the primary local m4 dir doesn't exist (don't error)
Pavel Raiskup [Mon, 11 Feb 2013 12:11:51 +0000 (13:11 +0100)] 
aclocal: just warn if the primary local m4 dir doesn't exist (don't error)

Related to automake bug#13514.

Every package which does not need to have the local m4 macro
directory pre-existing in the version control system (because
e.g., it does not have nor need any private m4 macros) would
fail during the "autoreconf -vfi" phase if AC_CONFIG_MACRO_DIRS([m4])
is specified in configure.ac (it could be to instruct tools like
'autopoint' and 'libtoolize' to use 'm4' as the local directory
where to install definitions of their m4 macros, and to instruct
aclocal to look into it).  The failure would go like this:

  autoreconf: Entering directory `.'
  autoreconf: running: aclocal --force
  aclocal: error: couldn't open directory 'm4': No such file or directory
  autoreconf: aclocal failed with exit status: 1

The problem is that when 'aclocal' is run for the first time during
'autoreconf', the directory 'm4' does not exist yet.  It will be
created by e.g., 'libtoolize' or 'autopoint' later on.  During the
second 'aclocal' run, the 'm4' directory exists and aclocal does not
complain.

To work around this issue, we degrade the error to a simple warning.
The warning is still quite useful when aclocal is run by hand - so
we are not removing completely.

See also:
<http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>
<http://lists.gnu.org/archive/html/automake-patches/2010-02/msg00030.html>
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663>
<https://bugzilla.redhat.com/show_bug.cgi?id=901333>

* aclocal.in (SCAN_M4_DIRS_SILENT, SCAN_M4_DIRS_WARN)
(SCAN_M4_DIRS_ERROR): New constants.
(scan_m4_dirs): Change the second parameter name to $ERR_LEVEL to
better reflect new semantic. Use new constants.
(scan_m4_files): Adjust to reflect the new 'scan_m4_dirs' semantics.
* t/aclocal-macrodir.tap: Adjust.
* t/aclocal-macrodirs.tap: Likewise.
* THANKS: Update.
* NEWS: Likewise.

Suggested-by: Ben Pfaff <blp@cs.stanford.edu>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: expose automake bug#13760
Stefano Lattarini [Wed, 20 Feb 2013 12:25:39 +0000 (13:25 +0100)] 
coverage: expose automake bug#13760

* t/make-dryrun.tap: Here.
* THANKS: Update with the name of the bug reporter.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>