|
94dc4ba0
|
2012-06-01T20:24:20
|
|
sync: update files from upstream with "make fetch"
* lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
96497293
|
2012-06-01T19:15:29
|
|
maint: deprecate 'configure.in' as autoconf input
It has been years since that has been deprecated in the documentation,
in favour of 'configure.ac':
Previous versions of Autoconf promoted the name configure.in, which
is somewhat ambiguous (the tool needed to process this file is not
described by its extension), and introduces a slight confusion with
config.h.in and so on (for which '.in' means "to be processed by
configure"). Using configure.ac is now preferred.
It's now time to start giving runtime warning about the use of
'configure.in', so that support for it can be removed in future
versions of autoconf/automake.
See also, in the Autoconf repository, commit 'v2.69-4-g560f16b' of
2012-05-23, "general: deprecate 'configure.in' as autoconf input".
* lib/Automake/Configure_ac.pm: Issue a warning in the 'obsolete'
category if 'configure.in' is detected. Since this module is synced
from Automake, this change is to be backported there (and will be
soon).
* t/help.sh: Adjust.
* t/configure.sh: Adjust and enhance.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
0d1e28a8
|
2012-05-21T15:44:14
|
|
help: fix a typo in the list of warning categories
* lib/Automake/ChannelDefs.pm (usage): s/none'/none/.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
b6359a5f
|
2012-05-16T18:16:41
|
|
ylwrap: preserve subdirectories in "#line" munging
If Automake is used in non-recursive mode and one of the inputs is a
yacc file, for example, "src/grammar.y", ylwrap will remove too many
directories from the output file when it adjusts the paths in it.
This results in #line directives referring to "grammar.y" instead of
"src/grammar.y".
This is a result of $input_rx simply taking all the directory
components of the absolute input path and removing them.
One solution is to store the path passed to ylwrap and replace
$input_rx with it. This is what we do.
Suggestion and initial patch (without tests) by Nikolai Weibull:
<http://lists.gnu.org/archive/html/automake/2012-05/msg00013.html>
Final patch by Stefano Lattarini.
* lib/ylwrap ($input_sub_rx): New.
When munging the #line directives, substitute '$input_rx' with it,
instead of stripping it altogether.
Adjust comments.
* t/yacc-line.sh, t/lex-line: Adjust and extend.
* NEWS, THANKS: Update.
Copyright-paperwork-exempt: yes
Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
0ce63a38
|
2012-05-16T17:35:05
|
|
ylwrap: preparatory refactoring
This commit should cause no semantic change in the ylwrap behaviour.
It will only be needed in light of a future change. See:
<http://lists.gnu.org/archive/html/automake/2012-05/msg00013.html>
* lib/ylwrap (get_dirname, quote_for_sed): New functions, factoring
out some non-trivial code. Use them where appropriate.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
a16b838b
|
2012-05-05T16:39:10
|
|
Merge branch 'parallel-tests-performance' into maint
* parallel-tests-performance:
parallel-tests: separate different logs with an empty line
|
|
952d91c0
|
2012-05-05T16:33:36
|
|
parallel-tests: separate different logs with an empty line
After commit v1.12-21-g5eeb366 "parallel-tests: optimize global log
creation", the log files copied in the global log are not anymore
separated by a blank line, causing unclear output like this:
FAIL: test1
===========
output from test 1
FAIL: test2
===========
output from test 2
where we would want something like this:
FAIL: test1
===========
output from test 1
FAIL: test2
===========
output from test 2
Fix this regression.
* lib/am/check.am (am__create_global_log): Print an extra empty line
after having displayed the content of a '.log' file.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
75b91149
|
2012-05-04T13:24:23
|
|
Merge branch 'objc++' into maint
* objc++:
objc, objc++: test support for compilation flags
objc, objc++: add stress test
objc, objc++: test automatic dependency tracking
objc: reorganize basic tests
objc++, objc: add first semantic tests
objc++: add first basic test
news: announce initial support for Objective C++
objc++: test support for '.mm' suffix in _SOURCES entries
objc++: add documentation
objc++: initial support for Objective C++
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f9dbb0a6
|
2012-05-02T12:51:09
|
|
Merge branch 'parallel-tests-performance' into maint
* parallel-tests-performance:
parallel-tests: save few forks when possible
parallel-tests: optimize global log creation
parallel-tests: optimize 'recheck' target for speed
coverage: add performance tests on some parallel-tests aspects
|
|
4c2dd6e0
|
2012-04-30T22:18:24
|
|
parallel-tests: save few forks when possible
* lib/am/check.am (am__check_pre): Save some forks, by analyzing more
carefully the value of '$@' to decide how to extract its dirname part,
and whether that should be created as a directory.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
06ed2f31
|
2012-04-30T21:18:36
|
|
sync: some auxiliary files synced from upstream
* lib/config.sub: Synced from upstream, by "make fetch".
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
b105d40d
|
2012-04-30T20:44:50
|
|
color-tests: coloring can be forced on non-ANSI terminals as well
Before this change, colorization of testsuite output was suppressed
whenever the terminal was recognized to be a "dumb" one, incapable
of handling ANSI coloring (i.e., when the environment variable TERM
had a value of "dumb"). This happened even when the AM_COLOR_TESTS
variable was set to a value of "always".
Such a behaviour was suboptimal and slightly confusing; in fact, if
a user wants to force coloring of testsuite output that is being
redirected to a regular file, he should be able to do so even if his
terminal is not capable of handling ANSI colors -- in fact, such
terminal wouldn't be involved with the testsuite output in any way,
so why should it be allowed to influence it?
Thus, we now enable coloring of test output whenever AM_COLOR_TESTS
is set to "always", irrespective of the value of the TERM environment
variable.
* NEWS: Update.
* lib/am/check.am [%?COLOR%] (am__tty_colors): Activate colorization
of testsuite output whenever AM_COLOR_TESTS has the value of "always".
* t/ax/tap-summary-aux.sh: Export the TERM environment variable to
"dumb" when forcing colorization of the testsuite output; this should
*not* prevent such colorization from taking place, and we want to
check that this expectation really holds.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/color.sh: Likewise, and adjust some grepping checks.
* t/tap-color.sh: Likewise. Also, remove redundant "make check"
invocation since we are at it.
* t/color2.sh: Likewise, and check that exporting TERM=dumb actually
prevents testsuite output colorization when AM_COLOR_TESTS is unset.
* t/parallel-tests-reset-term.sh: Relax, to prevent it from failing
spuriously due to the new semantic.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
5eeb3660
|
2012-02-26T00:30:18
|
|
parallel-tests: optimize global log creation
With this change, the time required to execute the test case
'testsuite-summary-speed.sh' has dropped as follows:
+ Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM,
GNU make 3.81:
- 1 run: 4 minutes => 30/40 seconds
+ Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM,
Solaris CCS make:
- 2 runs: 6 minutes => 30 seconds
+ Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM,
GNU make 3.82:
- 5 runs: 7 minutes => 1 minute and 10 seconds
* lib/am/check.am ($(TEST_SUITE_LOG)): Optimize for speed, by avoiding
lots of forks with the help of ...
(am__create_global_log): ... this new internal variable, basically
defining a smart awk program, and ...
(am__global_test_result_rx, am__copy_in_global_log_rx): ... these new
internal variables, used by the one above.
(am__rst_section): Remove as obsolete
* t/rst-formatting.trs: Remove.
* t/list-of-tests.mk: Update.
* t/testsuite-summary-count-many.sh: Improve its stress testing by
using 1 million tests rather than just 5 thousands: we can afford
this with our new optimization, and still have the test completed
in a reasonable time.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f5733aab
|
2012-04-26T22:25:35
|
|
parallel-tests: optimize 'recheck' target for speed
With this change, the time required to execute the test case
'testsuite-recheck-speed.sh' has dropped as follows:
+ Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM,
GNU make 3.81:
- 1 run: 6 minutes => 40 seconds
+ Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM,
Solaris CCS make:
- 4 runs: 3 minutes => 1 minute
+ Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM,
GNU make 3.82:
- 5 runs: 4 minutes => 1 minute 30 seconds
* lib/am/check.am (recheck): Optimize for speed, by avoiding lots of
forks with the help of ...
(am__list_recheck_tests): ... this new internal variable, basically
defining a proper awk program, and ...
(am__recheck_rx): ... this other new internal variable, used by the
one above.
* t/test-trs-recover2.sh: Relax by not checking for a very corner
case ('.log' and '.trs' files both unreadable) that we don't handle
anymore.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
df306b52
|
2012-04-26T15:01:23
|
|
objc++: initial support for Objective C++
Original thread (dating back to almost three years ago):
<http://lists.gnu.org/archive/html/automake-patches/2009-07/msg00016.html>
* automake.in: Register new language 'objcxx'.
(lang_objcxx_rewrite): New subroutine.
(resolve_linker): Add OBJCXXLINK.
(%_am_macro_for_cond): Add am__fastdepOBJCXX and AC_PROG_OBJCXX.
(%_ac_macro_for_var): Add OBJCXX and OBJCXXFLAGS.
* m4/depend.m4 (_AM_DEPENDENCIES): Add OBJCXX.
* m4/init.m4 (AM_INIT_AUTOMAKE): Add AC_PROG_OBJCXX hook.
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
8ea72c74
|
2012-04-27T16:27:08
|
|
build: ensure release year in copyright notice is up-to-date
From a suggestion by Eric Blake. See automake bug#11356.
This is a follow-up to previous patch 'v1.12-12-gb99b5be'.
* configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold
the value of the current year.
* Makefile.am (update-copyright): Be sure to also update the
definition of 'RELEASE_YEAR' in configure.ac.
* lib/Automake/Config.in ($RELEASE_YEAR): New exported variable,
initialized from the value substituted for '@RELEASE_YEAR@'.
(@EXPORT): Add it.
* automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be
substituted at make time) instead of hard-coding the release
year. This should ensure the copyright range in the version
message and in the generated files (Makefile.in and aclocal.m4)
are automatically kept up-to-date.
* bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
64b18e07
|
2012-04-20T10:05:51
|
|
refactor: processing of input makefile rules
This is a pure refactoring, with no intended functional or semantic
changes. It breaks up an overly-long function in three smaller
sub-functions. This change will very especially useful for the work
on Automake-NG.
* lib/Automake/Rule.pm (define): Move quite a lot of code out, into ...
(_rule_defn_with_exeext_awareness, _maybe_warn_about_duplicated_target,
_conditionals_for_rule): ... these new subroutines.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f46359b4
|
2012-04-18T11:40:15
|
|
parallel-tests: 'recheck' must depend on 'all'
Fixes automake bug#11252.
When a developer experience one or more failures in the testsuite, a good
workflow is for him to modify its program's sources to fix the bug thus
revealed, run "make recheck" to verify that the change has indeed solved
the testsuite failures previously experienced, and then run "make check"
to verify that the change has not introduced any new failure or regression.
Unfortunately, this apparently natural workflow couldn't have worked until
now, since the Automake-provided 'recheck' target (which didn't depend on
'all') wouldn't have causes the program to be recompiled, and the failed
tests would have thus been run with the older, buggy version of the
program, failing the same way as before.
* lib/am/check.am (recheck): Depend on 'all'.
* t/parallel-tests-recheck-depends-on-all.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
944ec778
|
2012-04-14T09:55:41
|
|
parallel-tests: print error messages on stderr, not stdout
* lib/am/check.am ($(TEST_SUITE_LOG)): Be sure to print error messages
on stderr, not on stdout.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f4b8c585
|
2012-04-13T14:36:31
|
|
Merge branch 'maint'
* maint:
install: shell parameter expansions can be used in directory names
|
|
e9c2b9e9
|
2012-04-13T14:16:29
|
|
Merge branch 'fix-pr11232' into maint
* fix-pr11232:
install: shell parameter expansions can be used in directory names
|
|
0bb60761
|
2012-04-12T16:24:23
|
|
install: shell parameter expansions can be used in directory names
Fixes automake bug#11232.
GNU automake used to support shell parameter expansion and command
substitutions in installation directories, but that was inadvertently
broken by commit v1.11-759-g368f1c4 "install: don't create empty dirs
when an empty 'foo_PRIMARY' is used" of 18-03-2012, where shell quoting
of generated MKDIR_P command was changed from double to single quotes
in 3 places, while some 21 other places still use double quotes for
generated MKDIR_P commands.
* lib/am/data.am: Use double quotes for generated "mkdir -p" commands.
* lib/am/libs.am: Likewise.
* lib/am/ltlib.am: Likewise.
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
faffcc87
|
2012-04-11T17:51:59
|
|
sync: some auxiliary files synced from upstream
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/INSTALL: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
a4b0f4b5
|
2012-04-01T11:48:47
|
|
maint: remove most recursion in automake's own build system
Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones. See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:
<http://miller.emu.id.au/pmiller/books/rmch/>
While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances.
With this change, the use of recursion in Automake's own build
system is eliminated *but for the testsuite*. Converting that
is a little more tricky, and better left for a later change (or
series of changes).
See also commit v1.11-769-gfeeb7f6 of 28-03-2012.
* contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am,
doc/Makefile.am: Removed, their content merged ...
* Makefile.am: ... here, with required adjustments and few
other "opportunistic" changes.
(SUBDIRS): Update.
* configure.ac (AC_CONFIG_FILES): Likewise.
* .gitignore: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
9fe2ba38
|
2012-04-01T21:55:09
|
|
texinfo: don't clutter the builddir when using modern texi2dvi
In modern versions of texi2dvi (at least since version 1.135, which
comes with Texinfo 4.13) the '-o' option does not imply anymore the
'--clean' option. As a consequence, lots of TeX-generated auxiliary
files are now left in the build directory by the 'pdf', 'ps' and
'dvi' rules.
This is especially annoying with non-recursive setups having the
'.texi' files in a subdirectory, as in:
info_TEXINFOS = doc/foo.texi
In this case, the stray auxiliary files are left in the top build
directory (since TeX is run from there). See for example:
<http://lists.gnu.org/archive/html/bug-bison/2012-04/msg00002.html>
See also automake bug#11146.
* lib/am/texibuild.am: Call 'texi2dvi' and 'texi2pdf' with the
'--clean' option. Update comments accordingly.
* tests/txinfo-noclutter.test: New test.
* tests/txinfo18.test: Remove as obsolete, the still relevant parts
of it moved into the new test.
* tests/list-of-tests.mk: Adjust.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
2d671e11
|
2012-03-29T00:31:47
|
|
perl refactor: use modern semantics of 'open'
* lib/Automake/XFile.pm: Update comments and POD documentation to
suggest a more idiomatic/modern usage.
(open): Be more robust in detecting whether the created file handle
is being opened for writing.
* lib/Automake/FileUtils.pm (update_file, contents): Call the
'Automake::XFile' and 'File::IO' constructors with two arguments
rather than one; this change obsoletes ...
(open_quote): ... this subroutine, which has thus been removed.
(@EXPORT): Drop '&open_quote'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
84bf694b
|
2012-03-28T22:50:27
|
|
Merge branch 'maint'
* maint:
cosmetics: don't make the generated Config.pm executable
maint: reduce use of recursion in automake build system
+ Extra non-trivial extra edits follows.
* lib/Makefile.am (amdir): Deleted this definition, it is already
provided by a proper AC_SUBST in configure.ac.
(dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and
'am/multilib.am'.
(dist_perllib_DATA): Remove 'Automake/Struct.pm'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
26a63b3b
|
2012-03-28T17:12:36
|
|
cosmetics: don't make the generated Config.pm executable
* lib/Makefile.am (Automake/Config.pm): Don't make this executable,
there's not need for it to be (it's a perl module, not a script).
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
feeb7f6a
|
2012-03-28T17:03:25
|
|
maint: reduce use of recursion in automake build system
Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones. See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:
<http://miller.emu.id.au/pmiller/books/rmch/>
While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances. So, with this change, we start making
less use of make recursion in the Automake's own build system
(future changes will reduce it even more).
* lib/am/Makefile.am, lib/Automake/Makefile.am: Removed, their
content merged ...
* lib/Makefile.am: ... here, with required adjustments.
* configure.ac (AC_CONFIG_FILES): Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3856a940
|
2012-03-28T14:31:36
|
|
acinstall: remove, it has never been really used
Accordingly to the git history (see for example the 'README-alpha'
in commit 'Release-1-1e-39-g9beb4ec' of 06-10-1996), the 'acinstall'
script should have been used to install m4 files for aclocal. The
comments in this script report that "... A script is needed to do
this because we want to do serial-number checking; newer versions
of macro files should always be preferred".
But the 'acinstall' script has never been really used: for example,
the entry "actually use acinstall program" was removed (unfixed)
from the TODO file in commit 'Release-1-1k-12-g1201405' of
08-12-1996, and the only citation of 'acinstall' in the manual was
removed in commit 'Release-1-1l-37-g128c3d7' of 19-03-1997, and
never added back. In addition, the last non-trivial edit to the
script (that is, besides updates to the copyright notice) dates
back to 1996.
More importantly, now that aclocal supports the ACLOCAL_PATH
environment variable, installing m4 files directly in the
system-wide acdir is discouraged, and better left only to
distros' package managers (which already have their own way to
do so, with which third-party build systems should not directly
meddle).
So we just remove the 'acinstall' script.
* lib/acinstall: Remove.
* lib/Makefile.am (dist_script_DATA): Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
7a56bed0
|
2012-03-27T22:40:20
|
|
Merge branch 'maint'
* maint:
depcomp: support tcc (Tiny C Compiler)
tests: workaround for automatic linker determination and conditionals
info: allow user to inhibit pruning of '${infodir}/dir'
vala tests: fix spurious failures with older valac (<= 0.7.2)
tests: fix a timestamp issue, and other minor buglets
tests: fix spurious failure with older autoconf
build: remove duplicated entries in $(TESTS)
+ Extra non-trivia edits:
* tests/link_cond.test: Use 'configure.ac', not 'configure.in'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
b96263e1
|
2012-03-27T17:55:07
|
|
depcomp: support tcc (Tiny C Compiler)
This change fixes automake bug#11007.
Since git commit 0c928da9 of 21-06-2010, "tcc: Draft suppoprt for
-MD/-MF options" (sic, with typo in summary line), tcc has supported
automatic dependency generation with a command-line interface
similar to what old (pre-8.0) Intel compilers did. This caused
Automake-generated code for automatic dependency tracking to
recognize tcc dependency style as "icc". However, the format of
the dependency files generated by tcc is apparently different enough
from that of icc to cause spurious failures in the post-processing
operated by our 'depcomp' script on such files.
The failure was exposed with the development version of tcc 0.9.26
(as installed with debian package "tcc 0.9.26~git20120104.83d") by
test case 'depcomp-auto.tap' (available only in the master branch).
* lib/depcomp (icc): Cater to tcc as well. Update comments
accordingly.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
619c1b26
|
2012-03-27T13:10:16
|
|
info: allow user to inhibit pruning of '${infodir}/dir'
This should have ideally been part of commit 'v1.11-519-g1ec1668'
of 23-11-2011 "info: allow user to inhibit creation/update of
'${infodir}/dir'". Well, better late than never.
* lib/am/texinfos.am (uninstall-info-am): Don't look anymore at the
output of "install-info --version" to decide whether to use it to
update the '${infodir}/dir' or not; instead, honour the environment
variable 'AM_UPDATE_INFO_DIR'. To avoid code duplication with ...
(install-info-am): ... the recipe of this target, move common code
out to ...
(am__can_run_installinfo): ... this new internal variable.
* tests/install-info-dir.test: Enhance.
* doc/automake.texi (Texinfo): Update.
* NEWS: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
db1138c5
|
2012-03-18T22:31:45
|
|
Merge branch 'maint'
* maint:
install-mans: avoid spurious failure with NetBSD make
install: don't create empty dirs when an empty 'foo_PRIMARY' is used
aclocal: remove a couple of useless imports
aclocal: create local directory where to install m4 files
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
45ffbe9f
|
2012-03-18T22:19:45
|
|
install-mans: avoid spurious failure with NetBSD make
* lib/am/mans.am: After the changes introduced by previous commit
v1.11-759-g368f1c4, some manpage installation recipes started to
fail spuriously on NetBSD 5.1 make. Apparently, the system make
there eats backslashes used to escape whitespace characters in the
relevant recipes. Revert to slightly slower but safer idioms that
avoid the need of such escaping.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
368f1c4c
|
2012-03-16T23:48:53
|
|
install: don't create empty dirs when an empty 'foo_PRIMARY' is used
Fixes automake bug#11030 and bug#10997.
An empty declaration of "foo_PRIMARY" in a Makefile.am used to
cause the generated install rules to create the directory $(foodir)
anyway, even if nothing was to be installed there.
While this could be seen as a convenient way to create a $(foodir)
directory upon "make install" (respecting $(DESTDIR) settings and
such), it also caused problems with conditionals; for example, an
input of:
if FALSE
pgkdata_DATA = something
endif
caused the generated install rules to unconditionally create the
$(pkgdatadir) directory (see automake bug#10997).
Also, a user wanting to create an empty directory upon installation
can easily do so with a custom install hook, as in:
installdirs-local:
$(MKDIR_P) $(DESTDIR)$(foodir)
install-data-hook: installdirs-local
On the other hand, the old behavior of "always create $(foodir),
even if 'foo_PRIMARY' is empty" was harder and more tricky to
override.
Thus, from now on, an empty declaration of "foo_PRIMARY" will not
cause the directory $(foodir) to be created upon "make install"
anymore.
* lib/am/data.am, lib/am/java.am, lib/am/libs.am, lib/am/lisp.am,
lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am, lib/am/python.am,
lib/am/scripts.am, lib/am/texinfos.am: Adjust install rules to avoid
creating an installation directory if no files are actually to be
installed there.
* tests/instdir-empty.test: Remove, it was testing a semantic
opposite to the one we now want and implement.
* tests/instdir-no-empty.test: New test, check the new semantic.
* tests/instdir-cond.test: Enhance. Move the still-failing part
of the test ...
* tests/instdir-cond2.test: ... here.
* tests/list-of-tests.mk, tests/Makefile.am (XFAIL_TESTS): Update.
* tests/java3.test: Adjust to avoid spurious failures.
* HACKING, NEWS, THANKS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
295c5f26
|
2012-03-15T09:16:46
|
|
Merge branch 'maint'
* maint:
python: avoid failures due to $(am__py_compile) being undefined
python: expose automake bug#10995
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
819005ae
|
2012-03-15T09:12:00
|
|
python: avoid failures due to $(am__py_compile) being undefined
Fixes automake bug#10995, introduced in commit v1.11-372-gb46debf.
* lib/am/python.am: Move the definition of 'am__py_compile' to
ensure it is always emitted in the output Makefile.in. Previously,
this wouldn't have happened if the input Makefile.am contained a
'noinst_PYTHON' declaration before a 'python_PYTHON' one.
* tests/Makefile.am (XFAIL_TESTS): Remove 'python-pr10995.test' and
'python.test'.
* NEWS: Update.
Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
6a6bc51e
|
2012-03-14T22:29:59
|
|
Merge branch 'maint'
* maint:
tests: avoid spurious failures in get-sysconf.test
scripts: bump the depcomp scriptversion
sync: some auxiliary files synced from upstream
coverage: an empty foo_PRIMARY should create directory $(foodir)
coverage: make sure am__py_compile is defined when needed
coverage: expose automake bug#10997
coverage: expose automake bug#10975
getopt: relax version requirement for perl
+ Extra non-trivial edits:
* tests/dist-pr109765.test: Use 'configure.ac', not 'configure.in'.
* tests/instdir-cond.test: Likewise.
* tests/instdir-empty.test: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
fdde53d3
|
2012-03-12T16:58:55
|
|
scripts: bump the depcomp scriptversion
* lib/depcomp (scriptversion): Bump, to account for recent changes.
|
|
327358d8
|
2012-03-12T15:10:39
|
|
sync: some auxiliary files synced from upstream
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gnupload: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
ddac0505
|
2012-03-07T23:26:24
|
|
getopt: relax version requirement for perl
* lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former
is enough. See also commit 'v1.11-2054-g7df05a0' on master (dated
04-03-2012).
|
|
3a814608
|
2012-03-07T21:08:06
|
|
Merge branch 'msvc' into maint
This merge remedies the confusing situation that some changes
destined for both the master branch and the release branch (a.k.a.
branch-1.11) currently needs to be made on the non-obvious msvc
branch and not on the more natural maint branch. This has caused
a seemingly endless string of less than optimal commits.
The reason for the confusion stems from the fact that the changes made
on the msvc branch became too radical and was considered only suitable
for the master branch, and was thus written in a form suitable for
master and then merged there. Later, the msvc branch was merged
directly into branch-1.11, in order to rush the new features to the
market and to keep the released scripts (lib/ar-lib, lib/compile and
lib/depcomp) consistent with those on the master branch. However,
some changes had to be made to the features added by the msvc branch
in order for them to fit the requirements of branch-1.11, notably that
the warnings issued in the extra-portability class cannot be enabled
by -Wall in the 1.11.x maintenance releases.
In retrospect, it would have been better to not merge msvc directly
into branch-1.11, but instead do it via the maint branch (followed up
with a dummy merge from maint into master) the moment it was decided
that the msvc changes should make it into branch-1.11.
All in all, this merge is going to affect neither the master branch
nor branch-1.11, since it is followed up with dummy merges masking all
changes. The merge is made to maintain the sanity of the poor
developers, who wishes to once again have a working maint branch.
Discussion about merging the msvc branch into branch-1.11:
http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html
Discussion about why this merge hasn't happened before:
http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html
Extra edits below.
* lib/Automake/ChannelDefs.pm: Use the version from branch-1.11.
* tests/ar-lib3.test: Likewise.
* tests/ar-lib4.test: Likewise.
* tests/extra-portability.test: Likewise.
* tests/extra-portability2.test: Likewise.
* tests/extradep.test: Likewise.
* tests/extradep2.test: Likewise.
* tests/list-of-tests.mk: Likewise.
* HACKING: Backport the version from branch-1.11 while at it (as the
change on branch-1.11 is also present on master via an unrelated
commit), even though this change has nothing to do with the changes
on the msvc branch.
|
|
24ab9845
|
2012-03-07T08:20:26
|
|
Merge branch 'maint' into msvc
* maint:
news: describe recently-fixed bug in vala support
depcomp: add support for IBM xlc/xlC compilers
|
|
45fbc8b4
|
2012-03-06T22:03:22
|
|
Merge branch 'maint'
* maint:
news: describe recently-fixed bug in vala support
depcomp: add support for IBM xlc/xlC compilers
|
|
b0887067
|
2012-03-05T20:05:37
|
|
depcomp: add support for IBM xlc/xlC compilers
* lib/depcomp (xlc): New depmode.
* NEWS, THANKS: Update.
Copyright-paperwork-exempt: yes
|
|
5f624a6a
|
2012-03-06T09:31:43
|
|
Merge branch 'msvc'
* msvc:
scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile
|
|
8902f83d
|
2012-03-06T09:14:50
|
|
scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile
POSIX mandates that the compiler accepts a space between the -I,
-l and -L options and their respective arguments. See
http://pubs.opengroup.org/onlinepubs/000095399/utilities/c99.html
* lib/compile (func_cl_dashl): New function with factored out code
for implementing the -l option for the cl wrapper.
(func_cl_dashL): New function with factored out code implementing
the -L option for the cl wrapper.
(func_cl_wrapper): Use func_cl_dashl to implement both -l <lib>
and -l<lib>, and func_cl_dashL to implement both -L <dir> and
-L<dir>. Also add support for -I <dir>.
(scriptversion): Update.
* tests/compile3.test: Test both with and without a space between
-I, -l and -L and their respective arguments.
* tests/compile5.test: Likewise.
* tests/compile6.test: Likewise.
* tests/compile3.test: Likewise.
* NEWS: Update.
|
|
74a7f492
|
2012-03-04T16:00:58
|
|
maint: drop 'Automake::Struct' module
Now that we require Perl 5.6, we can drop the 'Automake::Struct'
module, which was basically just a backport of Perl 5.6's
'Class::Struct' to Perl 5.5.
* automake.in: Use 'Class::Struct', not 'Automake::Struct'.
* lib/Automake/Struct.pm: Delete.
* lib/Automake/Makefile.am (dist_perllib_DATA): Remove it.
|
|
7df05a0b
|
2012-03-04T15:44:46
|
|
maint: require perl 5.6 throughout
That version of perl is quite old already, so it should be OK to
require it. More importantly, it is the older perl versions the
developers can currently use for testing, thus it's safer and more
honest to just require it throughout. And anyway, we were already
requiring it in Automake::Getopt, which implied that both automake
and aclocal wouldn't have worked in practice with an older perl
version.
See also the discussion related to automake bug#10925.
* lib/Automake/ChannelDefs.pm: Adjusted to require perl 5.6.
* lib/Automake/Channels.pm: Likewise.
* lib/Automake/Condition.pm: Likewise.
* lib/Automake/Configure_ac.pm: Likewise.
* lib/Automake/DisjConditions.pm: Likewise.
* lib/Automake/FileUtils.pm: Likewise.
* lib/Automake/General.pm: Likewise.
* lib/Automake/Item.pm: Likewise.
* lib/Automake/ItemDef.pm: Likewise.
* lib/Automake/Location.pm: Likewise.
* lib/Automake/Options.pm: Likewise.
* lib/Automake/Rule.pm: Likewise.
* lib/Automake/RuleDef.pm: Likewise.
* lib/Automake/Struct.pm: Likewise.
* lib/Automake/VarDef.pm: Likewise.
* lib/Automake/Variable.pm: Likewise.
* lib/Automake/Version.pm: Likewise.
* lib/Automake/Wrap.pm: Likewise.
* lib/Automake/XFile.pm: Likewise.
|
|
8be5d254
|
2012-03-01T09:30:45
|
|
scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib
* lib/ar-lib: Implement the "q" (quick) action as a synonym
for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol
index) when used as modifiers and "s" when used as a command,
there is simply no way for Microsoft lib to not update the
symbol table index in the archive.
(scriptversion): Update.
* tests/ar-lib.test: Check the added behavior. Also add checks
for the recently added "u" (update) and "v" (verbose) modifiers.
|
|
aadd78e9
|
2012-03-02T11:04:05
|
|
Merge branch 'maint' into msvc
|
|
8d0391c5
|
2012-03-01T09:30:45
|
|
scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib
* lib/ar-lib: Implement the "q" (quick) action as a synonym
for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol
index) when used as modifiers and "s" when used as a command,
there is simply no way for Microsoft lib to not update the
symbol table index in the archive.
(scriptversion): Update.
* tests/ar-lib.test: Check the added behavior. Also add checks
for the recently added "u" (update) and "v" (verbose) modifiers.
|
|
00eb4ac9
|
2012-02-24T14:35:06
|
|
refactor: in Automake::Options (no semantic change)
* lib/Automake/Options.pm: Prefer leading spaces to leading tabs
throughout. Minor whitespace and comment changes.
(_process_option_list): Simple refactoring to make the code more
pleasant to read and easier to modify in the future. This
refactoring also reduces code duplication, with the help of ...
(_option_must_be_from_configure, _is_valid_easy_option): ... these
new internal subroutines.
* tests/tar3.test: Enhance.
* tests/silent-amopts.test: New, checks that automake complains if
the 'silent-rules' option is used in AUTOMAKE_OPTIONS.
* tests/list-of-tests.mk: Add it.
|
|
4a38f180
|
2012-02-23T22:47:42
|
|
maint: assume 'test -x' is portable
* lib/Makefile.am (installcheck-local): To verify that the installed
scripts are actually executable, simply use 'test -x', instead of
resorting to perl and its '-x' file operator. Today, 'test -x'
should today be portable to any non-museum system. Since we are at
it, improve diagnostic in case of failure.
|
|
3e887a13
|
2012-02-23T20:25:26
|
|
pm: do not quote `like this', as per GCS recommendation
This patch converts the internal perl modules used by automake and
aclocal to the use of new quoting format 'like this' or "like this"
rather than `like this'.
* lib/Automake/ChannelDefs.pm, lib/Automake/Channels.pm,
lib/Automake/Condition.pm, lib/Automake/Configure_ac.pm,
lib/Automake/DisjConditions.pm, lib/Automake/FileUtils.pm,
lib/Automake/General.pm, lib/Automake/Item.pm,
lib/Automake/Rule.pm, lib/Automake/Getopt.pm,
lib/Automake/Options.pm, lib/Automake/Struct.pm,
lib/Automake/VarDef.pm, lib/Automake/Variable.pm,
lib/Automake/Version.pm, lib/Automake/XFile.pm: Update and
adjust quoting format throughout, in comments and diagnostic.
Some minor related rewordings and reformatting since we are
at it.
|
|
2d951983
|
2012-02-23T19:21:00
|
|
build: do not quote `like this', as per GCS recommendation
This patch converts the files implementing the automake's own build
system to the use of new quoting format 'like this' or "like this"
rather than `like this'.
* bootstrap, configure.ac, syntax-checks.mk, Makefile.am,
lib/Makefile.am, m4/Makefile.am, syntax-checks.mk: Update quoting
format throughout, in comments and diagnostic. Some minor related
rewordings and reformatting since we are at it.
|
|
de58d25e
|
2012-02-23T15:15:26
|
|
am: do not quote `like this', as per GCS recommendation
This patch converts the automake-provided '*.am' fragments, and
related files, to the use of new quoting format 'like this' or
"like this" rather than `like this'.
* lib/am/check.am: Update quoting format throughout, in comments
and diagnostic. Some related rewordings, reformatting, and removal
of redundant commands since we are at it.
* lib/am/configure.am: Likewise.
* lib/am/dejagnu.am: Likewise.
* lib/am/depend2.am: Likewise.
* lib/am/distdir.am: Likewise.
* lib/am/inst-vars.am: Likewise.
* lib/am/install.am: Likewise.
* lib/am/lang-compile.am: Likewise.
* lib/am/lisp.am: Likewise.
* lib/am/ltlib.am: Likewise.
* lib/am/mans.am: Likewise.
* lib/am/progs.am: Likewise.
* lib/am/remake-hdr.am: Likewise.
* lib/am/subdirs.am: Likewise.
* lib/am/tags.am: Likewise.
* lib/am/texi-vers.am: Likewise.
* lib/am/texibuild.am: Likewise.
* lib/am/texinfos.am: Likewise.
* lib/am/yacc.am: Likewise.
|
|
deb77738
|
2012-02-20T18:33:50
|
|
automake: new option 'serial-tests'
Currently, automake offers a 'parallel-tests' option to enable the
use of the parallel testsuite harness in the generated Makefiles,
but no option to explicitly state the intention of using the older
serial testsuite driver (which is currently the default).
This makes the parallel test harness seems like a second-class
citizen (while actually it should be the other way around); more
importantly, it will prevent us from making the parallel harness
be the default one in future automake versions, since the users
of the serial harness would then have no way to instruct automake
to continue using it.
We solve all of this by introducing a new 'serial-tests' option.
* lib/Automake/Options.pm (_process_option_list): Recognize the
new option, and related minor refactoring.
* tests/serial-tests.test: New test.
* tests/list-of-tests.mk: Add it.
* doc/automake.texi: Update.
* NEWS: Likewise.
|
|
e1606b32
|
2012-02-18T13:59:26
|
|
parallel-tests: fix another BSD parallel make issue
When BSD make is run in parallel mode, it apparently strips any
leading directory component from the automatic variable '$*' (of
course, against what POSIX mandates). This was causing FreeBSD 9.0
make and NetBSD 5.1 make to spuriously fail with automake-generated
test harnesses if subdir tests were present *and* make was being
run in parallel mode. This issue affected also the Automake own
testsuite.
* lib/am/check2.am (am__set_b): New internal variable.
(%OBJ%, %EXT%.log, %EXT%$(EXEEXT).log): Use it to work around
the described BSD make issue.
* tests/parallel-tests3.test: Enhanced to expose the bug.
* tests/parallel-tests-subdir.test: Enhance a little, since we
are at it.
* NEWS: Update.
|
|
b5788178
|
2012-02-17T13:29:19
|
|
Merge branch 'maint'
* maint:
dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)
|
|
4df475a2
|
2012-02-17T11:52:13
|
|
dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)
* lib/am/header-vars.am (am__make_dryrun): Be smarter and more
correct in handling shell metacharacters in $(MAKEFLAGS).
|
|
acde2706
|
2012-02-16T10:51:23
|
|
maint: sync auxiliary files from upstream
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
|
|
641a5a4b
|
2012-02-16T10:46:23
|
|
maint: run "make update-copyright"
|
|
e05e1bed
|
2012-02-15T19:32:07
|
|
Merge branch 'maint'
* maint:
fixup: distribute 'lib/update-copyright'
|
|
8dd50099
|
2012-02-15T19:00:10
|
|
fixup: distribute 'lib/update-copyright'
While the 'update-copyright' script shouldn't be needed by final
users, that's not a good reason to keep it out by the distribution,
as doing so might be unhelpful toward occasional but curious users
interested in peeking into the automake build system.
* lib/Makefile.am (EXTRA_DIST): Distribute 'update-copyright'.
|
|
fd0ca827
|
2012-02-15T18:40:06
|
|
Merge branch 'maint'
* maint:
maint: add a rule to use gnulib's update-copyright
|
|
f4d2f3b7
|
2012-02-15T18:29:57
|
|
Merge branch 'yl-work-for-master'
* yl-work-for-master: (44 commits)
tests: truly use Lex and Yacc selected by configure
news: fix grammaros related to Yacc
yacc/lex tests: avoid spurious skips with non-GNU make
fixup: remove double news entry
tests: workaround for shells with broken 'set -e'
tests: avoid spurious failure with non-bison yacc
tests: fix spurious failures due to missing 'yywrap()' function
fixup: list of yacc/lex tests was botched
tests: work around bug#7884 in many yacc/lex tests
yacc/lex tests: remove an unneeded workaround for bug#8485
yacc/lex tests: avoid too much failures with FreeBSD make
yacc-dist-nobuild.test: add reference to bug#7884
yacc tests: fix bug in 'yacc-cxx.test'
lex tests: fix spurious link errors on Solaris
lex: "make clean" removes .c files from non-distributed .l
lex tests: make test on Lex dependency tracking more "semantic"
lex tests: remove erroneous check about ylwrap distribution
yacc tests: "make clean" removes C++ files from non-distributed .y
tests: add a workaround for automake bug#8485
tests: add a couple of inter-tests reference
...
|
|
43b8af82
|
2012-02-12T16:57:42
|
|
maint: add a rule to use gnulib's update-copyright
* lib/update-copyright: New file, from gnulib.
* Makefile.am (FETCHFILES): Add update-copyright to the list.
(fetch): Fetch it.
(update-copyright): New rule.
|
|
b2c1adfe
|
2012-02-14T21:23:04
|
|
check: fix test-suite.log formatting with NetBSD sed
* lib/am/check.am (am__rst_section): Tweak to ensure en extra final
newline is printed also with NetBSD sed. Issue revealed by a
failure of 'test-metadata-global-result.test'.
* tests/rst-formatting.test: New test, checking the internal
variables '$(am__rst_title)' and '$(am__rst_section)'.
* tests/list-of-tests.mk: Add it.
|
|
2a2500ce
|
2012-02-14T14:07:12
|
|
Merge branch 'maint'
* maint:
fixup: do not tickle makefile-deps.test with the make_dryrun code
gitattributes: custom merge driver for ChangeLog not needed anymore
gitattributes: use "union" merge driver for NEWS
|
|
4ced60d7
|
2012-02-14T12:55:32
|
|
fixup: do not tickle makefile-deps.test with the make_dryrun code
* lib/am/header-vars.am (am__make_dryrun): Avoid code matching
'^ *:' in the Makefile, as that tickles makefile-deps.test.
|
|
e6c40d4b
|
2012-02-12T15:06:17
|
|
Merge branch 'yacc-work' into yl-work-for-master
* yacc-work: (37 commits)
fixup: list of yacc/lex tests was botched
tests: work around bug#7884 in many yacc/lex tests
yacc/lex tests: remove an unneeded workaround for bug#8485
yacc/lex tests: avoid too much failures with FreeBSD make
yacc-dist-nobuild.test: add reference to bug#7884
yacc tests: fix bug in 'yacc-cxx.test'
lex tests: fix spurious link errors on Solaris
lex: "make clean" removes .c files from non-distributed .l
lex tests: make test on Lex dependency tracking more "semantic"
lex tests: remove erroneous check about ylwrap distribution
yacc tests: "make clean" removes C++ files from non-distributed .y
tests: add a workaround for automake bug#8485
tests: add a couple of inter-tests reference
lex tests: require just `lex' instead of `flex'
fix typo in ChangeLog (2011-05-04)
tests defs: use `skip_' for skipping yacc/lex related tests
lex/yacc tests: remove redundant $distdir definition
coverage: test lex-generated "#line" directives postprocessing
tests: minor improvements to a couple of yacc tests
tests: fix spurious failure in test 'yacc-d-cxx.test'
...
+ Extra non-trivial edits:
* tests/defs.in: Delete; the differences from maint has been
merged into 'tests/defs' and 'tests/defs-static.in'.
* tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to
skip the whole test case if yacc (resp. lex) is missing.
(bison): New, set up the environment so that 'bison -y' will
be used as the yacc program.
(useless_vpath_rebuild, yl_distcheck): Moved in from
'tests/defs.in'.
* tests/defs-static.in ($YACC, $LEX): Default to the values
determined at configure time, and allow them to be overridden
by the more namespace-safe variables '$AM_TESTSUITE_YACC' and
'$AM_TESTSUITE_LEX' respectively.
* tests/Makefile.am (do_subst): Also substitute '@YACC@' and
'@LEX@'.
* Several tests: Fix requirements declarations, by preferring
'lex' and 'yacc' over 'flex' and 'bison' whenever possible.
|
|
b1d998fb
|
2012-02-09T18:15:43
|
|
Merge branch 'maint'
* maint:
tests: fix a timestamp-related spurious failures
dryrun: fix regression with '$(am__make_dryrun)'
test defs: function 'is_newest' now works also with directories
|
|
e36b1ad1
|
2012-02-08T15:12:40
|
|
Merge branch 'msvc'
* msvc:
depcomp: try to prevent whitespace regressions
depcomp: recognize tabs as whitespace in the dashmstdout mode
depcomp: quote 'like this', not `like this'
|
|
6fca3afa
|
2012-02-03T16:10:52
|
|
depcomp: try to prevent whitespace regressions
Suggested by Stefano Lattarini.
* lib/depcomp: Add $tab and $nl variables and use them
throughout.
|
|
81193035
|
2012-02-03T08:54:49
|
|
depcomp: recognize tabs as whitespace in the dashmstdout mode
Commit Release-1-7-2b-2-gf03ceab "Cope with DOS filenames in
dependencies." inadvertedly converted tabs into spaces.
* lib/depcomp (dashmstdout): Add a tab character to all sets
matching whitespace.
|
|
1e2ced5c
|
2012-02-08T14:40:15
|
|
depcomp: quote 'like this', not `like this'
Cherry-picked from recent changes from master.
* lib/depcomp: Quote 'like this', not `like this'.
|
|
947ce0ed
|
2012-02-07T11:12:59
|
|
dryrun: fix regression with '$(am__make_dryrun)'
In commit v1.11-683-gda0964e of 05-02-2012, we introduced a new
variable '$(am__make_dryrun)' that could be used in recipes to
determine whether make is running in dry mode (e.g., as with
"make -n"). Unfortunately, the idiom we used fails to take into
account the case in which $(MAKEFLAGS) contains one or more variable
definitions whose value is a whitespace-separated list; for example,
if we invoke make as:
make check TESTS="n1.test n2.test"
then the better make implementations out there (at least modern
GNU make and BSD make) will export MAKEFLAGS to the following
value:
TESTS=n1.test\ n2.test
So a shell loop like the one we used in $(am__make_dryrun):
for flag in $$MAKEFLAGS; do ...
won't behave as expected: the shell word-splitting rules will break
up the entry for TESTS into the two distinct entries "TESTS=n1.test\"
and "n2.test", and this second entry will goad our $(am__make_dryrun)
code into thinking that make is performing a dry run!
So now we simply loop over the expanded value of $(MAKEFLAGS).
This solves the regression, but alas, is more brittle in case the
users passes on the command line a macro value containing unbalanced
" or ' quotes, or shell metacharacters like, say, '`' or '('. This
should almost never happen though, so we don't worry about it now;
we will revisit the issue only when and if we receive bug reports in
this area.
* lib/am/header-vars.am (am__make_dryrun): Fix.
* tests/make-dryrun.test: New test.
* tests/list-of-tests.mk: Add it.
|
|
df6841b7
|
2012-02-06T23:17:32
|
|
Merge branch 'maint' into yacc-work
* maint: (75 commits)
test defs: function 'is_newest' now works also with directories
refactor: new variable telling whether make is running in "dry mode"
...
|
|
21f97935
|
2012-02-06T22:45:47
|
|
cosmetics: few whitespace fixlets
|
|
d029740b
|
2012-02-05T21:22:01
|
|
parallel-tests: more uses for '$(am__make_dryrun)'
With this change we refactor some recipes of the parallel-tests
harness to make them use, where appropriate, the new internal
variable '$(am__make_dryrun)' (introduced in the 'maint' branch)
when they need to determine whether make is running in "dry mode",
i.e., with "make -n". This allows for some simplifications and
for improved uniformity.
* lib/am/check.am (check-TESTS recheck): Use $(am__make_dryrun) and
simplify accordingly.
(am--redo-logs): Delete this internal helper recipe, merged into ...
($(TEST_SUITE_LOG)): ... this, with the help of $(am__make_dryrun).
recipe accordingly.
|
|
d2d18dca
|
2012-02-05T18:37:45
|
|
Merge branch 'maint'
* maint:
refactor: new variable telling whether make is running in "dry mode"
tests: do not clobber the modified CC
|
|
da0964eb
|
2012-01-23T21:02:05
|
|
refactor: new variable telling whether make is running in "dry mode"
We define a new variable '$(am__make_dryrun)', that can be used
in recipes to determine whether make is running in "dry mode" (as
with "make -n") or not. This is useful in rules that invoke make
recursively, and are thus executed also with "make -n" -- either
because they are declared as dependencies to '.MAKE' (NetBSD make)
or because their recipes contain the "$(MAKE)" string (GNU and
Solaris make).
* lib/am/header-vars.am (am__make_dryrun): New variable.
* lib/am/check.am (check-TESTS recheck): Use it, and simplify
recipe accordingly.
* lib/am/distdir.am (distdir): Likewise.
* lib/am/lisp.am ($(am__ELCFILES)): Likewise.
|
|
6b819187
|
2012-02-02T20:14:30
|
|
cosmetics: fix indentation and typos in perl TAP driver
* lib/tap-driver.pl (get_test_exit_message): Fix botched
indentation. Fix typo in error message: s/ststus/status/.
|
|
2077a044
|
2012-02-02T14:51:59
|
|
tap/perl: handle missing or non-executable scripts better
This change improves how our Perl-based TAP driver handles
non-runnable test scripts (meaning they might be not executable,
or not readable, or even not exist). In particular, it makes the
driver deterministically display a clear "ERROR" result instead
of possibly dying with diagnostic from 'TAP::Parser' internals,
and prevents it from displaying spurious "missing TAP plan" errors.
Moreover, with this change, some testsuite failures present only
with newer perl versions (e.g., 5.14) are fixed. See automake
bug#10418.
* tests/tap-bad-prog.tap: When testing the perl implementation of
the TAP driver, and when the perl interpreter offers a good-enough
'IPC::Open3::open3' function, expect it not to display spurious
"missing TAP plan" diagnostic if the error is actually due to a
non-runnable test script.
* lib/tap-driver.pl (start): Removed, broken up into ...
(setup_io): ... this ...
(setup_parser): ... and this, which now tries to catch and report
errors in launching the test scripts.
(finish): New, used by both 'main' and 'setup_parser'.
(main): Adjust.
|
|
dde91c54
|
2012-02-01T16:28:48
|
|
Merge branch 'maint'
|
|
c3e4962a
|
2012-01-31T12:52:24
|
|
cleanup: remove unused .am file
* lib/am/comp-vars.am: Remove. This file has stopped being useful
since commit 'Release-1-4d-206-g3334f9a' of 09-04-2001, and should
have been removed back then. But apparently only its contents were
removed, leaving the file empty but still present in the repository.
Or maybe this situation is the consequence of a minor blunder in
the conversion from CVS to Git; either way, this is not a big deal.
|
|
a6c17113
|
2012-01-30T23:27:06
|
|
Merge branch 'msvc'
* msvc:
ar-lib: ignore the verbose modifier instead of erroring out
scripts: cherry-pick recent changes from master
tests: add missing dependency for some 'ar-lib*.test' tests
|
|
2a2f57fc
|
2012-01-30T23:19:03
|
|
ar-lib: ignore the verbose modifier instead of erroring out
* lib/ar-lib: A number of tests uses the v modifier when listing
the archive content, ignore it to make them pass.
|
|
41404a8f
|
2012-01-30T23:16:37
|
|
scripts: cherry-pick recent changes from master
* lib/ar-lib: prefer the term "Windows" over "Win32" and quote
'like this', not `like this'.
* lib/compile: Likewise.
|
|
ef20e28b
|
2012-01-28T13:23:16
|
|
maintcheck: fix real and spurious warnings
* lib/Makefile.am (install-data-hook): Correctly quote $(DESTDIR)
occurrences.
* Makefile.am (install-exec-hook, uninstall-hook): Likewise.
(autodiffs): Prefer '$(am__cd)' to plain 'cd', where warranted.
* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise. Also,
prefer using AC_SUBST'd $(abs_top_builddir) over obtaining it at
runtime from $(top_builddir).
* syntax-check.mk (sc_mkinstalldirs): Tweak to whitelist known
harmless occurrences of the checked-against usages.
(sc_no_for_variable_in_macro): Likewise.
* tests/CheckListOfTests.am (maintainer-check-list-of-tests): Tweak
to avoid spuriously triggering the 'sc_no_for_variable_in_macro'
maintainer check. Prefer '$(am__cd)' to plain 'cd' when warranted.
|
|
bd34a47c
|
2012-01-21T11:33:44
|
|
multilib: move to contrib
This follows up on commit v1.11-665-gc5df21e of 2012-01-17,
"multilib: deprecate, will be moved to contrib". See also:
<http://lists.gnu.org/archive/html/automake-patches/2012-01/msg00109.html>
* NEWS: Update.
* automake.in ($seen_multilib): Remove.
(scan_autoconf_traces): Don't trace 'AM_ENABLE_MULTILIB', and don't
handle it anymore.
(handle_multilib): Remove.
(generate_makefile): Don't call it anymore.
* doc/automake.texi: Remove documentation about multilib support,
related macros, and helper files.
* m4/multi.m4: Delete.
* m4/Makefile.am (dist_automake_ac_DATA): Remove it.
* lib/am/multilib.am: Delete.
* lib/am/Makefile.am (dist_am_DATA): Remove it.
* contrib/multilib/multilib.am: New file, adapted from extracts of
a Makefile.in generated with automake multilib support. We did
this instead of moving and editing 'lib/am/multilib.am' because it
allows us to license this file with a liberal license that will
permit users to copy-and-paste it in non-GPLed Makefile.am files
too).
* lib/symlink-tree, lib/config-ml.in: Move ...
* contrib/multilib: ... in here.
* lib/Makefile.am (dist_script_DATA, dist_pkgvdata_DATA): Update.
* contrib/multilib/README: New file.
* contrib/Makefile.am (EXTRA_DIST): Add the files created or moved
in 'contrib/multlib'.
* tests/multilib.test: Update and enhance a little.
* tests/help-multilib.test: Likewise.
|
|
e5ae760b
|
2012-01-21T20:52:43
|
|
Merge branch 'maint'
* maint:
fixup: distribute 'contrib/multilib/multi.m4'
multilib: deprecate, will be moved to contrib
fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS
cosmetics: fix a botched comment in a maintainer check
|
|
84fbf466
|
2012-01-20T20:52:02
|
|
fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS
This change fixes automake bug#10555.
Note that the bug was a minor one, since it didn't affect the
compilation rules generated by automake, but only only the "hints"
printed by automake in some error messages (e.g., "The usual way
to define `FFLAGS' is to add AC_PROG_F77 to configure.ac").
* lib/Automake/Variable.pm (%_ac_macro_for_var): The code generated
by AC_PROG_F77 uses FFLAGS, not F77FLAGS, as the variable where to
look for switches for the Fortran 77 compiler: adjust accordingly.
|
|
3a7b60b1
|
2012-01-18T18:42:46
|
|
Merge branch 'maint'
* maint:
cmdline parsing: move into a dedicated perl module
|
|
52246cc7
|
2012-01-18T17:55:40
|
|
cmdline parsing: move into a dedicated perl module
With this change, we delegate most of the automake and aclocal code
for command-line options parsing to a new module "Automake::Getopt".
This allows better code sharing between automake and aclocal, and
also with Autoconf, which will sync the new module from us. See
also autoconf commit 'v2.68-120-gf4be358' (2012-01-17, "getopt: new
Autom4te::Getopt module"), and this mailing list discussion:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-01/msg00033.html>
This change might interact with the behaviour described in automake
bug#7434; for example, starting from now, "automake -Wfoo --version"
will cause automake to emit diagnostic like "unknown warning
category 'foo'" before actually printing the version number and
exiting. This is not a big deal in practice, and the code sharing
and simplifications introduced by this patch is certainly worth it.
Still, we should revisited the issue in the future.
* lib/Automake/Getopt.pm: New module, basically a slightly-edited
copy of the 'lib/Autom4te/Getopt.pm' file from the autoconf devel
repository (commit v2.68-120-gf4be358). It defines and exports ...
(parse_options): ... this new function.
* automake.in (parse_arguments): Use the new function.
* aclocal.in (parse_arguments): Likewise.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add the new file.
* tests/getopt.test: Remove.
* tests/list-of-tests.mk: Update.
|
|
b4ba4e86
|
2012-01-18T14:08:57
|
|
Merge branch 'maint'
* maint:
cosmetics: move CheckListOfTests.am into tests/
tests: move all under the same hierarchy ('tests/' directory)
gitlog-to-changelog: update from upstream
changelog: don't cluster multiple entries under the same "date line"
+ Extra non-trivial edits:
* tests/Makefile.am (XFAIL_TESTS): Update with the xfailing tests
that were in 'lib/Automake/tests'. Add proper "FIXME" comment.
|
|
fbeda3da
|
2012-01-18T12:17:11
|
|
tests: move all under the same hierarchy ('tests/' directory)
This simplifies the organization of the Automake source tree and
reduces the (lamentably high) number of Makefiles in the Automake
build system by one. It also makes the maintainer check that
verifies the consistency of list of tests more self-contained and
simpler. Finally, it might be a first step forward the transition
to a non-recursive build system for automake (if we ever decide to
go down that road fully some day).
* lib/Automake/tests: All the '*.pl' tests in here moved ...
* tests/pm: ... into this new directory.
* lib/Automake/tests/Makefile.am: Remove, its meaningful
contents moved ...
* tests/Makefile.am: ... here, with obvious adjustments.
(test_subdirs): New variable, for the sake of the recipe
of 'maintainer-check-list-of-tests'.
* CheckListOfTests (maintainer-check-list-of-tests): Enhance
its recipe to make it able to deal with test script residing
in subdirectories.
* Makefile.am (maintainer-check-list-of-tests): Simplified.
(TEST_SUBDIRS): Remove, no more needed.
* tests/list-of-tests.mk (perl_TESTS): New variable, lists
the '.pl' tests just moved into 'tests/pm'.
(handwritten_TESTS): Add the contents of '$(perl_TESTS)'.
* lib/Automake/Makefile.am (SUBDIRS): Remove.
* configure.ac (AC_CONFIG_FILES): Update.
* .gitignore: Adjust.
|
|
2a9862a8
|
2012-01-18T09:45:01
|
|
gitlog-to-changelog: update from upstream
* lib/gitlog-to-changelog: Update from gnulib upstream. The only
changes should be cosmetic and/or minor fixlets.
|