]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
12 years agodepend: prefer $(...) over `...` in Cygwin-specific recipes
Stefano Lattarini [Thu, 10 Jan 2013 20:42:28 +0000 (21:42 +0100)] 
depend: prefer $(...) over `...` in Cygwin-specific recipes

On Cygwin, we can happily assume only POSIX-conforming shells exist.
This commit is useless by itself, but is useful as a preparatory
refactoring in view of a future change.

* lib/am/depend2.am: In recipes for producing '.obj' objects, use
the POSIX form $(...) for command substitution, rather than the
classic Bourne one `...`.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodepend: reduce code duplication
Stefano Lattarini [Thu, 10 Jan 2013 20:31:57 +0000 (21:31 +0100)] 
depend: reduce code duplication

Just a simplification; no semantic change is intended.

* lib/am/depend2.am (am__set_depbase): New.  Use it in all the three
flavours of recipes (.o, .obj, .lo), instead of duplicating its code.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodepend: a preparatory refactoring
Stefano Lattarini [Thu, 10 Jan 2013 19:47:57 +0000 (20:47 +0100)] 
depend: a preparatory refactoring

This is just a preparatory change in view of a future refactoring.
No semantic change is intended.

* lib/am/depend2.am: Adjust; for example, using '$@' in all recipes
to indicate the output file (rather than recipe-specific transforms
like '%OBJ%' and '%LTOBJ%'), and not assuming to know the exact
file extension of the output file (e.g., whether it's '.o' or '.lo').

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodepend: refactor and remove code duplication
Stefano Lattarini [Thu, 10 Jan 2013 17:04:33 +0000 (18:04 +0100)] 
depend: refactor and remove code duplication

* lib/am/depend2.am: Here.  The obsolescent comments removed from this
same file in commit 'v1.13.1-42-g8f06bfb' of 2012-01-09, "depend2.am: fix
comments on verbosity of compilation rules", gave the rationale for why
that code duplication was there in the first place (rationale that, like
those comments, has been obsolete by the silent-rules introduction).
* bin/automake.in: Given the refactoring in 'depend2.am', there is no
longer need to add extra trailing whitespace to the entries of the
'%sourceflags' hash (which are used for the '%SOURCEFLAG%' transform
when 'depend2.am' is processed.
* t/fort2.sh: Adjust to avoid spurious failures.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoAutomake::Language: drop unused fields 'compile_flag' and 'output_flag'
Stefano Lattarini [Thu, 10 Jan 2013 18:54:13 +0000 (19:54 +0100)] 
Automake::Language: drop unused fields 'compile_flag' and 'output_flag'

They are unused after the recent flurry of changes.  This is just a
simplification; no semantic change is intended.

* lib/Automake/Language.pm (Class::Struct): Remove unused fields here.
* bin/automake.in: And here, in all the 'register_language()' invocations.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodepend: assume '-c' compiler flag always means to produce object files
Stefano Lattarini [Thu, 10 Jan 2013 18:48:14 +0000 (19:48 +0100)] 
depend: assume '-c' compiler flag always means to produce object files

Rather than fully-fledged executables.  This is the case for all the
compilers of all languages supported by Automake.

This is just a simplification; no semantic changes are intended.

* bin/automake.in (handle_languages): Drop transform '%-c%'.
* lib/am/depend2.am: Adjust to just assume the '%-c%' transform
expands to "-c".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodepend: assume we can always pass '-o' to the C compiler
Stefano Lattarini [Thu, 10 Jan 2013 18:38:58 +0000 (19:38 +0100)] 
depend: assume we can always pass '-o' to the C compiler

This is the case after the change in commit v1.13.1-56-g34001a9 of
2013-01-09 (compile: use 'compile' script when "-c -o" is used with
losing compilers).

This is just a simplification; no semantic changes are intended.

* bin/automake.in (handle_languages): Drop transform '%-o%', and
definitions of '$output_flag'.
* lib/am/depend2.am: Adjust to just assume the '?-o?' transform is
true, and the '%-o%' transform expands to "-o".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocleanup: having subdir-objects mandatory allow us some simplifications
Stefano Lattarini [Tue, 8 Jan 2013 13:04:00 +0000 (14:04 +0100)] 
cleanup: having subdir-objects mandatory allow us some simplifications

Few minor cleanups made possible by earlier changes, plus other minor
cleanups triggered in cascade.  No semantic change is intended.

This is a follow-up on previous commit 'v1.13.1d-214-g3ad07d2', and
an adjusted backport of Automake-NG commit 'v1.12.1-315-gc97d41b'
of 2012-06-08 ([ng] cleanup: after enabling of subdir-objects
unconditionally).

* bin/automake.in (LANG_IGNORE, LANG_SUBDIR): Remove.
(handle_languages): Drop the '%DEPBASE%' transform when processing
the '$rule_file'.
(register_language ('name' => 'vala', ...)): Add '.vapi' to the entry
'extensions', and simplify the entry 'output_extensions' to point to
a dummy subroutine (since it wasn't really used anyway).
(handle_single_transform): No longer expect the 'lang_*_rewrite'
subroutines to return a 'LANG_*' constant, but only a transformed
extension, if required.  To decide whether further processing of the
source file should be stopped, rely on a new set of 'lang_*_ignore'
subroutines, defaulting to a subroutine that returns false.
Accordingly, don't special case the handling of '.vapi' files anymore,
instead rely on ...
(lang_vala_ignore, lang_header_ignore): ... these new subroutines to
avoid extra processing of C/C++ headers and Vala '.vapi' headers.
(lang_java_rewrite): Remove.
Remove an outdated comment.
* lib/am/depend2.am: Partial rewrite to reduce code duplication and
drop use of the '%DEPBASE%' transform.
* t/compile_f_c_cxx.sh: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agosubdir-objects: enable unconditionally
Stefano Lattarini [Wed, 6 Jun 2012 08:27:46 +0000 (10:27 +0200)] 
subdir-objects: enable unconditionally

See automake bug#13378.

The fact that Automake-generated Makefiles places compiled object files
in the current directory by default, also when the corresponding source
file is in a subdirectory, is basically an historical accident, due to
the fact that the 'subdir-objects' option had only been introduced in
April 1999, starting with commit 'user-dep-gen-branchpoint-56-g88b5959',
and never made the default, likely to avoid backwards-compatibility
issues.

Since we believe the behaviour enabled by the 'subdir-objects' is the
only natural and most useful one, we make it the only only one available,
simplifying the Automake implementation and APIs a little in the process.

This change is basically an adjusted backport of Automake-NG commit
'v1.12.1-313-g14fe163' of 2012-06-07, "[ng] subdir-objects: enable
unconditionally".

* NEWS: Update.
* doc/automake.texi (Program and Library Variables): The output
object files are no longer placed in the current directory by
default, but rather in the same directory of the source file.
(LIBOBJS): Now the $(LIBOBJS) and $(ALLOCA) variables can also
be used outside of the directory where their sources lie.
(List of Automake options): Report the 'subdir-objects' option
as a no-op, existing only for compatibility with older versions
of Automake.
Other related minor adjustments.
* bin/automake.in (LANG_PROCESS): Remove, it's no longer needed.
(handle_languages): Don't test whether option 'subdir-objects'
is set (just assume it is), and do not use the '%SUBDIROBJ%'
transform when processing '.am' fragments.
(lang_sub_obj): Delete, it would just return 'LANG_SUBDIR'
unconditionally now.
(lang_lex_rewrite): Adjust.  Don't test whether the option
'subdir-objects' is set (just assume it is).
(lang_yacc_rewrite): Likewise.
(handle_single_transform): Likewise.  Remove an obsolete
comment.  Add a proper "FIXME" comments about a fragment
of code that might have become dead code now.
(handle_LIBOBJS_or_ALLOCA): Simplify assuming that the option
'subdir-objects' is always set.  Accordingly, there's no need
to warn anymore if '$(LIBOBJS)' or '$(ALLOCA)' are used outside
the '$config_libobj_dir' directory (as specified by autoconf
macro 'AC_CONFIG_LIBOBJ_DIR').
* lib/am/depend2.am: Assume the '?SUBDIROBJ?' Automake time
conditional is always true, and remove its uses accordingly.
* t/compile_f_c_cxx.sh: Adjust.
* t/cscope.tap: Likewise.
* t/depcomp8a.sh: Likewise.
* t/depcomp8b.sh: Likewise.
* t/libtool3.sh: Likewise.
* t/ltlibsrc.sh: Likewise.
* t/pr401.sh: Likewise.
* t/pr401b.sh: Likewise.
* t/pr401c.sh: Likewise.
* t/subobj.sh: Likewise.
* t/lex-line.sh: Likewise.
* t/yacc-line.sh: Likewise.
* t/yacc5.sh: Likewise.
* t/vala-libs.sh: Likewise.
* t/fort4.sh: Likewise, and extend a bit.
* t/fort5.sh: Likewise.
* t/gcj.sh: Likewise.
* t/subpkg.sh: Likewise.
* t/subpkg-yacc.sh: Likewise.
* t/xsource.sh: Likewise.
* t/libobj20a.sh: Remove as obsolete.
* t/libobj20b.sh: Adjust heading comments.
* t/libobj20c.sh: Likewise.
* t/subobj4.sh: Remove as obsolete.
* t/sourcefile-in-subdir.sh: Likewise.

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

* maint:
  build: fixup for building in a VPATH setup

12 years agobuild: fixup for building in a VPATH setup
Stefano Lattarini [Tue, 14 May 2013 10:12:44 +0000 (12:12 +0200)] 
build: fixup for building in a VPATH setup

* bin/Makefile.inc (%D%/automake, %D%/aclocal): Make sure that the
directory where the targets scripts are going to be built exists,
before trying to create said scripts.

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

* maint:
  Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O
  compile: avoid AC_PROG_CC messy rewrite
  options: tiny simplification in dealing with incompatible versions

12 years agoUse AC_DEFUN_ONCE to define AM_PROG_CC_C_O
Nick Bowler [Sat, 11 May 2013 09:45:16 +0000 (11:45 +0200)] 
Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O

If AM_PROG_CC_C_O is expanded multiple times, and the compiler does not
support -c and -o together, each expansion of the macro will prepend
the compile script to CC.  This can result in the compile script
invoking the compile script, which at best pointless and silly.
Fortunately, there does not appear to be any serious problems as the
first compile invocation strips out -o options, causing subsequent
invocations of the script to merely exec their arguments.

Other than fixing the above, this should not normally cause any changes
to the resulting configure script, except in the (hopefully rare) case
where AM_PROG_CC_C_O is directly expanded (i.e., *not* using AC_REQUIRE)
in the body of a macro defined with AC_DEFUN.  In that case, the use of
AC_DEFUN_ONCE may cause the expansion of AM_PROG_CC_C_O to appear
earlier in the configure script.

* m4/minuso.m4: Change the definition of AM_PROG_CC_C_O to use
AC_DEFUN_ONCE, avoiding problems caused by multiple expansions.

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocompile: avoid AC_PROG_CC messy rewrite
Stefano Lattarini [Sat, 11 May 2013 09:03:41 +0000 (11:03 +0200)] 
compile: avoid AC_PROG_CC messy rewrite

Instead, add an hook to AC_OUTPUT to have AM_PROG_CC_C_O invoked
automatically.

See also the long-winded discussion about automake bug#13378.

* m4/minuso.m4 (AM_PROG_CC_C_O): Bring back the old implementation,
from commit v1.13.1-55-g1ab8fb6.
* m4/init.m4 (AC_PROG_CC): Remove this horrible, hacky re-write.
* (AM_INIT_AUTOMAKE): Arrange for AM_PROG_CC_C_O to be called if
necessary.
* t/am-prog-cc-c-o.sh: Adjust to avoid spurious failure.
* t/subobj.sh: Likewise.

Suggested-by: Nick Bowler <nbowler@elliptictech.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: tiny simplification in dealing with incompatible versions
Stefano Lattarini [Sat, 11 May 2013 08:25:33 +0000 (10:25 +0200)] 
options: tiny simplification in dealing with incompatible versions

* lib/Automake/Options.pm (_process_option_list): Here, when an
incompatible version number option is detected, there's no need
to call error() with the "uniq_scope => US_GLOBAL" switch.
In fact, if the same incompatible version number is specified in
AUTOMAKE_OPTIONS in both (say) 'Makefile.am' and 'sub/Makefile.am',
we want each such erroneous usage reported separately, rather than
just the first time it is encountered (as we'd expect to happen
when "uniq_scope => US_GLOBAL" is used).
Ideally, this change should have been folded into the similar
commit 'v1.13.1d-129-gf7ef16f', but we noticed that too late.
Oh well.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: consistently use return statuses to report errors (more)
Stefano Lattarini [Fri, 10 May 2013 23:13:46 +0000 (01:13 +0200)] 
options: consistently use return statuses to report errors (more)

This is a follow-up to commit 'v1.13.1d-128-g6e486c5', needed to deal
with errors that are only present in the 'master' branch (while the
reported commit was on the 'maint' branch).

* lib/Automake/Options.pm (_process_option_list): Adjust, where dealing
with the removed options 'dist-shar' and 'dist-tarZ'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 10 May 2013 23:06:58 +0000 (01:06 +0200)] 
Merge branch 'maint'

* maint:
  options: try to report as much errors as possible
  warns: don't tell AM_PROG_MKDIR_P is going to be removed
  refactor: fix few "inverted boolean" usages
  options: better name for an internal function
  options: more consistency in use of return statuses to report errors
  options: tiny simplification in dealing with erroneous opts
  options: consistently use return statuses to report errors
  options: re-enable some sanity checks
  THANKS: update Eric Blake's e-mail address
  NEWS: typofix

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: try to report as much errors as possible
Stefano Lattarini [Fri, 10 May 2013 22:28:15 +0000 (00:28 +0200)] 
options: try to report as much errors as possible

For example, if two invalid options are used in AUTOMAKE_OPTIONS, don't
report just the first one, but both of them.

* lib/Automake/Options.pm (_process_option_list): Do so by avoiding
early returns in here.

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

* branch-1.13.2:
  warns: don't tell AM_PROG_MKDIR_P is going to be removed

12 years agowarns: don't tell AM_PROG_MKDIR_P is going to be removed
Stefano Lattarini [Fri, 10 May 2013 21:59:02 +0000 (23:59 +0200)] 
warns: don't tell AM_PROG_MKDIR_P is going to be removed

That is no longer true.  For a more extended rationale, see file
'PLANS/obsolete-removed/am-prog-mkdir-p.txt' in the maint branch
(as of commit v1.13.1d-132-g90ec3fe).

* automake.in (scan_autoconf_traces): So adjust the warning message
here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agorefactor: fix few "inverted boolean" usages
Stefano Lattarini [Fri, 10 May 2013 21:50:25 +0000 (23:50 +0200)] 
refactor: fix few "inverted boolean" usages

In some subroutines, we used a return value of 0 to indicate success,
and a return status of 1 to indicate failure.  That was not very
consistent with the perl interpretation of 0 as a false value and 1 as
a true value.  So we now invert the meaning of the exit statuses.

* lib/Automake/Options.pm (_process_option_list): Here.
(process_global_option_list, process_option_list): And by reflex,
here as well.
* bin/automake.in (handle_options): And here.
(generate_makefile, scan_autoconf_traces): Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: better name for an internal function
Stefano Lattarini [Fri, 10 May 2013 21:29:04 +0000 (23:29 +0200)] 
options: better name for an internal function

* lib/Automake/Options.pm (_option_must_be_from_configure): Rename ...
(_option_is_from_configure): ... like this.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: more consistency in use of return statuses to report errors
Stefano Lattarini [Fri, 10 May 2013 21:08:28 +0000 (23:08 +0200)] 
options: more consistency in use of return statuses to report errors

* lib/Automake/Options.pm (_option_must_be_from_configure): By giving
a proper return status here.
(_process_option_list): And using it here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: tiny simplification in dealing with erroneous opts
Stefano Lattarini [Fri, 10 May 2013 21:01:27 +0000 (23:01 +0200)] 
options: tiny simplification in dealing with erroneous opts

* lib/Automake/Options.pm (_process_option_list): Here, when an
invalid option is detected, there's no need to call &error with
the "uniq_scope => US_GLOBAL" switch.  In fact, if the same
erroneous option is specified in AUTOMAKE_OPTIONS in both (say)
'Makefile.am' and 'sub/Makefile.am', we want each such erroneous
usage reported separately, rather than just the first time it is
encountered (as happens when "uniq_scope => US_GLOBAL" is used).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: consistently use return statuses to report errors
Stefano Lattarini [Fri, 10 May 2013 20:50:54 +0000 (22:50 +0200)] 
options: consistently use return statuses to report errors

* lib/Automake/Options.pm (_process_option_list): Here.
(process_option_list, process_global_option_list): Remove
redundant use of 'return'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agooptions: re-enable some sanity checks
Stefano Lattarini [Fri, 10 May 2013 20:34:21 +0000 (22:34 +0200)] 
options: re-enable some sanity checks

They had been unwittingly disabled by a slightly incorrect
code ordering.

* lib/Automake/Options.pm (process_option_list): Here.
(process_global_option_list): And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoTHANKS: update Eric Blake's e-mail address
Stefano Lattarini [Fri, 10 May 2013 20:19:03 +0000 (22:19 +0200)] 
THANKS: update Eric Blake's e-mail address

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS: typofix
Stefano Lattarini [Fri, 10 May 2013 20:17:43 +0000 (22:17 +0200)] 
NEWS: typofix

Reported-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodist: remove support for shar and tarZ formats
Stefano Lattarini [Fri, 10 May 2013 19:56:12 +0000 (21:56 +0200)] 
dist: remove support for shar and tarZ formats

See also discussion about automake wishlist bug#13324.

* lib/Automake/Options.pm: Give fatal errors (rather than warnings) if
the 'dist-shar' or 'dist-tarZ' options are used.
* lib/distdir.am: Remove the 'dist-tarZ' and 'dist-shar' targets, and
references to the '.tar.Z' and '.shar' archives.
* bin/automake.in (preprocess_file): Remove 'COMPRESS' and 'SHAR'
transforms.
(handle_dist): Remove lingering references to 'dist-tarZ' and 'dist-shar'
options.
* doc/automake.texi: Adjust, removing references to the removed targets
and distribution formats.
* t/dist-shar.sh: Adjust to expect fatal errors rather than warnings.
* t/dist-tarZ.sh: Likewise.

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

* maint:
  news: document new 'subdir-objects' warning
  PLANS: one minor fixlet (mostly cosmetic)
  PLANS: we have already dropped support for split info files in master
  NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended
  PLANS: fix reference to non-existent 'next' branch
  PLANS: fix botched version reference
  maintcheck: fix two references to old location of aclocal and automake
  dist: deprecated shar and tar+compress formats

12 years agonews: document new 'subdir-objects' warning
Stefano Lattarini [Fri, 10 May 2013 19:17:30 +0000 (21:17 +0200)] 
news: document new 'subdir-objects' warning

* NEWS: Automake 1.14 will warn if a subdir source file is
specified but the 'subdir-objects' option is not given.  This
is done to smooth the transition to Automake 2.0, which will
unconditionally assume the behaviour now given only with the
'subdir-objects' option.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoPLANS: one minor fixlet (mostly cosmetic)
Stefano Lattarini [Fri, 10 May 2013 18:56:07 +0000 (20:56 +0200)] 
PLANS: one minor fixlet (mostly cosmetic)

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoPLANS: we have already dropped support for split info files in master
Stefano Lattarini [Fri, 10 May 2013 18:52:36 +0000 (20:52 +0200)] 
PLANS: we have already dropped support for split info files in master

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended
Stefano Lattarini [Fri, 10 May 2013 18:35:21 +0000 (20:35 +0200)] 
NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoPLANS: fix reference to non-existent 'next' branch
Stefano Lattarini [Fri, 10 May 2013 18:09:42 +0000 (20:09 +0200)] 
PLANS: fix reference to non-existent 'next' branch

* PLANS/obsolete-removed/configure.in.txt: Here.  We should refer
to the 'master' branch instead.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoPLANS: fix botched version reference
Stefano Lattarini [Fri, 10 May 2013 18:06:08 +0000 (20:06 +0200)] 
PLANS: fix botched version reference

* PLANS/rm-f-without-args.txt: Here.  The probe checking that "rm -f"
without arguments works will be introduced in Automake 1.14, not in
Automake 1.13.2.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintcheck: fix two references to old location of aclocal and automake
Stefano Lattarini [Fri, 10 May 2013 17:32:20 +0000 (19:32 +0200)] 
maintcheck: fix two references to old location of aclocal and automake

* maintainer/syntax-checks.mk (sc_perl_at_substs): Here: it should
refer to 'bin/automake' and 'bin/aclocal', not 'automake' and
'alocal'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodist: deprecated shar and tar+compress formats
Stefano Lattarini [Fri, 10 May 2013 17:22:06 +0000 (19:22 +0200)] 
dist: deprecated shar and tar+compress formats

See also discussion about automake wishlist bug#13324.

* lib/Automake/Options.pm: Give proper warnings in the 'obsolete'
category if the 'dist-shar' or 'dist-tarZ' options are used.
* lib/distdir.am: When the 'dist-tarZ' or 'dist-shar' targets are
invoked, make them give a non-fatal warning.
* doc/automake.texi: Report the new deprecations.
* t/dist-shar.sh: New test.
* t/dist-tarZ.sh: Likewise.
* t/lzma.sh: While at it, rename ...
* t/dist-lzma.sh: ... like this, and tweak it to keep more in
sync with the new tests.
* t/dist-formats.tap: Remove references to deprecated formats.
* t/list-of-tests.mk: Adjust.

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

* maint:
  automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
  am: prefer a shorter idiom where possible
  cosmetics: fix few typos, grammaros and missing whitespace
  fixup: remove an obsolete comment
  docs: we still don't have the promised better Java interface
  build: move automake and aclocal in 'bin' subdir
  build: break up monolithic Makefile.am in subdir-specific fragments

+ Extra non-trivial edits:

* m4/Makefile.inc (dist_automake_ac_DATA): Drop lead-dot.m4 and
mkdirp.m4.
* lib/Automake/Makefile.inc (dist_perllib_DATA): Drop Configure_ac.pm.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'dog-feeding' into maint
Stefano Lattarini [Fri, 10 May 2013 11:31:59 +0000 (13:31 +0200)] 
Merge branch 'dog-feeding' into maint

* dog-feeding:
  build: move automake and aclocal in 'bin' subdir
  build: break up monolithic Makefile.am in subdir-specific fragments

12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Fri, 10 May 2013 11:31:45 +0000 (13:31 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/

12 years agoautomake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
Stefano Lattarini [Fri, 10 May 2013 10:13:00 +0000 (12:13 +0200)] 
automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoam: prefer a shorter idiom where possible
Stefano Lattarini [Fri, 10 May 2013 08:57:38 +0000 (10:57 +0200)] 
am: prefer a shorter idiom where possible

That is, prefer:

    test -f FILE || do_action

over:

    if test ! -f FILE; then do_action; else :; fi

* lib/am/remake-hdr.am (%CONFIG_H%): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'branch-1.13.2' into maint
Stefano Lattarini [Fri, 10 May 2013 08:53:15 +0000 (10:53 +0200)] 
Merge branch 'branch-1.13.2' into maint

* branch-1.13.2:
  cosmetics: fix few typos, grammaros and missing whitespace
  fixup: remove an obsolete comment
  docs: we still don't have the promised better Java interface

12 years agocosmetics: fix few typos, grammaros and missing whitespace
Stefano Lattarini [Fri, 10 May 2013 08:50:05 +0000 (10:50 +0200)] 
cosmetics: fix few typos, grammaros and missing whitespace

* lib/am/*.am: In comments in some of these files.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: remove an obsolete comment
Stefano Lattarini [Fri, 10 May 2013 08:35:26 +0000 (10:35 +0200)] 
fixup: remove an obsolete comment

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

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: we still don't have the promised better Java interface
Stefano Lattarini [Thu, 9 May 2013 18:23:40 +0000 (20:23 +0200)] 
docs: we still don't have the promised better Java interface

Reported by Michael Zucchi:
<http://lists.gnu.org/archive/html/automake/2013-05/threads.html>

See also automake bug#9088.

* doc/automake.texi (Java): Adjust and clarify.
* THANKS: Update.

Reported-by: Michael Zucchi <notzed@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Thu, 9 May 2013 18:14:58 +0000 (20:14 +0200)] 
Merge branch 'maint'

* maint:
  maint: re-run "make update-copyright" ...

12 years agomaint: re-run "make update-copyright" ...
Stefano Lattarini [Thu, 9 May 2013 18:13:19 +0000 (20:13 +0200)] 
maint: re-run "make update-copyright" ...

* t/lex-multiple.sh: ... which updates the copyright years
of this test (they were somehow not bumped in the past).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Thu, 9 May 2013 18:11:47 +0000 (20:11 +0200)] 
Merge branch 'maint'

* maint:
  tests: avoid spurious failure with older flex (2.5.4)
  announcement: cater to more flexible NEWS format

12 years agotests: avoid spurious failure with older flex (2.5.4)
Stefano Lattarini [Thu, 9 May 2013 17:50:38 +0000 (19:50 +0200)] 
tests: avoid spurious failure with older flex (2.5.4)

That old version is unfortunately still relevant, being the one
installed on NetBSD 5.1.

* t/lex-multiple.sh: Use the '-o' option rather than the longer
equivalent '--outfile'.  The latter is not supported by older
versions of flex (e.g., flex 2.5.4).

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

* branch-1.13.2:
  announcement: cater to more flexible NEWS format

12 years agoannouncement: cater to more flexible NEWS format
Stefano Lattarini [Thu, 9 May 2013 11:55:15 +0000 (13:55 +0200)] 
announcement: cater to more flexible NEWS format

* maint.mk (announcement): Here, be prepared to handle the case
in which the first section of the NEWS file is dedicated to report
future backward-incompatibilities and/or other warnings.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: move automake and aclocal in 'bin' subdir
Stefano Lattarini [Thu, 9 May 2013 09:57:20 +0000 (11:57 +0200)] 
build: move automake and aclocal in 'bin' subdir

* automake.in: Rename ...
* bin/automake.in: ... like this.
* aclocal.in: Rename ...
* bin/aclocal.in: ... like this.
* Makefile.am: Move parts that dealt with the building/distribution
of aclocal and Automake ..
* bin/Makefile.inc): ... in this new included fragment.  Adjust as
needed, and make deliberate use of the '%D%' substitution.
* lib/gen-perl-protos: Move ...
* bin/gen-perl-protos: ... here.
* bootstrap.sh, configure.ac, maintainer/rename-tests,
t/wrap/aclocal.in, t/wrap/automake.in, doc/Makefile.inc,
t/ax/tap-setup.sh, .gitignore: Adjust.
* maintainer/syntax-checks.mk: Likewise, and enhance a little.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: break up monolithic Makefile.am in subdir-specific fragments
Stefano Lattarini [Thu, 9 May 2013 09:17:47 +0000 (11:17 +0200)] 
build: break up monolithic Makefile.am in subdir-specific fragments

This is convenient to do, now that we have improved "relative directory"
support with the '%reladir%' (a.k.a. '%D%') and '%canon_reladir%' (a.k.a.
'%C%') Automake-time substitutions for included makefile fragments.

This move also satisfy our philosophy of using new Automake features in
our own build system, as a way of facilitating early discovery of possible
bugs or interface warts.

* Makefile.am: Break up ...
* doc/Makefile.inc, lib/Automake/Makefile.inc, lib/Makefile.inc,
lib/am/Makefile.inc, m4/Makefile.inc, t/Makefile.inc): ... in this
new included fragments.  Adjust as needed, and make deliberate use
of the '%D%' substitution.
* contrib/t/local.am: Rename ...
* contrib/t/Makefile.inc: ... like this.

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 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>