|
3562e384
|
2017-09-16T13:03:36
|
|
Prefer https: URLs
In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use
https:, to discourage man-in-the-middle attacks when downloading
software. The attached patch propagates these changes upstream to
Automake. This patch does not affect files that Automake is
downstream of, which I'll patch separately.
Althouth the resources are not secret, plain HTTP is vulnerable to
malicious routers that tamper with responses from GNU servers,
and this sort of thing is all too common when people in some other
countries browse US-based websites. See, for example:
Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar
S. Analyzing internet censorship in Pakistan. RTSI
2016. https://dx.doi.org/10.1109/RTSI.2016.7740626
HTTPS is not a complete solution here, but it can be a significant
help. The GNU project regularly serves up code to users, so we should
take some care here.
|
|
e94c0186
|
2017-08-31T14:42:13
|
|
build: Rename "Makefile.inc" Makefile fragments to "local.mk"
This is done to follow a convention used by a lot of GNU packages.
* bin/Makefile.inc: Rename to ...
* bin/local.mk: ... this.
* doc/Makefile.inc: Rename to ...
* doc/local.mk: ... this.
* lib/Automake/Makefile.inc: Rename to ...
* lib/Automake/local.mk: ... this.
* lib/am/Makefile.inc: Rename to ...
* lib/am/local.mk: ... this.
* lib/Makefile.inc: Rename to ...
* lib/local.mk: ... this.
* m4/Makefile.inc: Rename to ...
* m4/local.mk: ... this.
* contrib/t/Makefile.inc: Rename to ...
* contrib/t/local.mk: ... this.
* t/Makefile.inc: Rename to ...
* t/local.mk: ... this. Adapt.
* Makefile.am: Adapt.
|
|
8555e7b8
|
2017-07-16T00:11:07
|
|
check: Make 'check-TESTS' target depend on test dependencies
The 'check' and 'recheck' targets are already depending on the progams
and scripts required to run the test suite. The 'check-TESTS' target
while not in the public API might be used by uninformed users, so it
makes sense to add the same dependency to it. This fixes bug#27186.
* lib/am/check.am [!%?SERIAL_TESTS%] (check-TESTS): Add dependency to
'%CHECK_DEPS%'.
* THANKS: Update.
|
|
3126fa4c
|
2017-07-15T22:24:43
|
|
dejagnu: Allow AM_RUNTESTFLAGS to override default RUNTEST arguments
This fixes bug#25335.
* lib/am/dejagnu.am (check-DEJAGNU): Swap $(RUNTESTDEFAULTFLAGS) and
$(AM_RUNTESTFLAGS).
* THANKS: Update.
|
|
c946ae6f
|
2017-06-16T22:46:16
|
|
Merge branch 'micro' into minor
|
|
d8add592
|
2017-03-02T18:55:53
|
|
maint: Update copyright years to 2017.
This update has been made with 'make update-copyright'.
|
|
323dabef
|
2016-03-31T16:40:20
|
|
Merge branch 'micro' into minor
|
|
749468ac
|
2016-03-28T19:44:19
|
|
automake: port better to future gzip
* lib/am/distdir.am (dist-gzip, dist-shar, distcheck):
Port better to future versions of gzip, which are planned to
deprecate the GZIP environment variable (Bug#20132).
|
|
08849db8
|
2015-01-03T01:33:45
|
|
deps: fix corner-case "make distclean" bug
Assume we have package satisfying the following conditions:
(1) automatic dependency tracking is enabled;
(2) the 'subdir-objects' Automake option is enabled;
(3) the package uses a recursive make setup.
Also assume that:
(a) a subdir Makefile declares a foo_SOURCES variable containing
a source file in the parent directory;
(b) that parent Makefile declare a compiled program itself.
Then BSD and Solaris make used to fail when running "make distclean",
because the 'distclean' target of the subdir Makefile removed the
whole '.deps' directory before the parent Makefile was done with the
included '.Po' makefile fragments in that directory. This issue was
revealed by failures in the 'subobj-vpath-pr13928.sh' test when those
make implementations were used.
We fix the issue by ensuring the 'distclean' target of any Makefile
only removed the '.Po' makefile fragments included by it, rather than
the whole '.deps' directory where such files resides.
This change should be the last step in fixing automake bug#13928
for good.
* bin/automake.in (handle_languages), lib/am/depend.am: Adjust
to implement the new 'distclean' logic.
* t/pr224.sh: Adjust to avoid a spurious failure.
* PLANS/subdir-objects.txt: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
6a675ef1
|
2014-12-24T10:57:17
|
|
deps: 'subdir-object' option now works when foo_SOURCES contains $(var)
Following a suggestions of Johan Kristensen, we have config.status use
'make' invocations rather than Makefile-parsing 'sed' hacks to bootstrap
the dependency-tracking '.Po' and '.Plo' makefile fragments. To handle
the inclusion of such files that are still missing when make is first
we basically generate a temporary Makefile without these includes, and
call 'make' on that Makefile.
This fixes the serious bug bug#13928, which was an hard blocker to make the
behavior mandated by the 'subdir-object' active by default (which we want
to do in Automake 2.0).
The issue has also been reported in bug#15919.
* NEWS, THANKS: Update.
* bin/automake.in (handle_languages): Add a trailing "marking" comment
("# am--include-marker") to the generated Makefile lines issuing 'include'
directives for the dependency-tracking '.Po' and '.Plo' makefile fragments.
Also rename the generated Makefile variable 'am__depfiles_maybe' to the
clearer 'am__maybe_remake_depfiles'.
Minor unrelated refactoring.
* lib/am/configure.am: Adjust to account for the 'am__depfiles_maybe' ->
'am__maybe_remake_depfiles' renaming.
* lib/am/depend.am: Add rules to generate a dummy version of all the
dependency-tracking '.Po' and '.Plo' makefile fragments.
* m4/depout.m4: Use make invocations rather than Makefile-parsing sed hacks
to bootstrap the dependency-tracking '.Po' and '.Plo' makefile fragments.
We still use some sed trickery in order to remove the inclusion of the
still non existing .Po and .Plo files from the Makefile we invoke make
upon; this is done stripping lines that contain the magic string
"# am--include-marker".
* m4/make.m4 (AM_MAKE_INCLUDE): Given that now automake generates Makefiles
containing include statements with trailing comment, adjust the checks done
here to make sure $MAKE support that; e.g., "include foo.mk # comment"
rather than just "include foo.mk".
Also refactor and adjust to leave better debugging info in config.log.
* t/postproc.sh: Rename ...
* t/depend-postproc.sh: ... to this, and adjust and enhance.
* t/list-of-tests.mk (handwritten_TESTS): Adjust.
(XFAIL_TESTS): Remove 't/subobj-indir-pr13928.sh', which is now succeeding.
* t/subobj-indir-pr13928.sh: Simplify slightly, now that we expect it to
pass.
* t/depcomp8a.sh: Adjust grepping check to account for the changes in
the generated Makefile, and tp be somewhat more robust in light of possible
future modifications.
* t/depcomp8b.sh: Likewise.
* t/subobj11b.sh: Likewise.
* t/subobj11c.sh: Likewise.
* t/extra-sources.sh: Likewise.
* t/lex-depend-grep.sh: Likewise.
* t/lex-depend-cxx.sh: Add a command to help debugging in case of test
failure.
Helped-by: Johan Kristensen <johankristensen@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
5de75f07
|
2015-01-05T22:48:33
|
|
maint: update copyright years to 2015 (branch 'micro')
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
bd838a68
|
2014-12-23T21:15:18
|
|
Merge branch 'micro' into minor
* micro:
dist: fix bug#18286 "distcheck fails to detect missing files"
tests: expose automake bug#18286 "distcheck fails to detect missing files"
include: fix bug in handling of user-defined makefile fragments generation
tests: expose bug in handling of user-defined makefile fragments generation
|
|
6979c8e6
|
2014-12-23T20:24:46
|
|
Merge branch 'distcheck-pr18286' into micro
* distcheck-pr18286:
dist: fix bug#18286 "distcheck fails to detect missing files"
tests: expose automake bug#18286 "distcheck fails to detect missing files"
|
|
01a7a4a7
|
2014-12-23T18:39:32
|
|
dist: fix bug#18286 "distcheck fails to detect missing files"
BTW, this issue had been already reported in the past:
http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html
http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html
"make distcheck" could sometimes fail to detect missing files in the
distribution tarball, especially in those cases where both the generated
files and their dependencies are explicitly in $(srcdir). An important
example of this are *generated* makefile fragments included at Automake
time in Makefile.am. A basic example:
# -*- Makefile.am -*-
$(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh
cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am
include $(srcdir)/fragment.am
...
If the use forgot to add data.txt and/or preproc.sh in the distribution
tarball, "make distcheck" would have erroneously succeeded!
The reason is that, while $(srcdir)/data.txt does not exist, make also
looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued
VPATH build where $(srcdir) is '..', that file exists, as it is
part of the original development directory.
* t/distdir.am (distcheck): Adjust to have the build directory be
'$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks
Nicola Fontana for the suggestion.
* t/distcheck-pr18286.sh: Enhance and tighten a little.
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh',
as it's now passing.
* t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due
to the new distcheck semantics.
* t/subdir-ac-subst.sh: Likewise.
* t/dejagnu-relative-srcdir.sh: Likewise.
* t/txinfo-builddir.sh: Likewise.
* NEWS: Update.
Helped-by: Nicola Fontana <ntd@entidi.it>
Helped-by: Peter Johansson <trojkan@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
a38fe86d
|
2014-12-23T17:27:30
|
|
Merge branch 'am-deps' into micro
* am-deps:
include: fix bug in handling of user-defined makefile fragments generation
tests: expose bug in handling of user-defined makefile fragments generation
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
55270ac3
|
2014-12-23T13:10:21
|
|
include: fix bug in handling of user-defined makefile fragments generation
If a user defined one single Makefile fragment to be included (via Automake
includes) in his main Makefile.am, and gave a rule to generate that file
from other data, Automake used to spuriously complain about with something
like "overrides Automake target '$(srcdir)/foo.am". This change remove that
spurious error (via a simple hack rather than a systematic change, but oh
well).
* lib/am/configure.am (%MAKEFILE-IN-DEPS%) [?HAVE-MAKEFILE-IN-DEPS?]: Add
a trailing "$(am__empty)" to the list of targets, which is enough to trick
Automake into not complaining about "duplicated targets" in case the
'%MAKEFILE-IN-DEPS%' list expands to a single target that is also declared
in some user-defined rule.
* t/list-of-tests.mk (XFAIL_TESTS): Remove now-passing test
't/am-include-only-one-generated-fragment.sh'.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
88ac92b2
|
2014-12-22T17:56:22
|
|
Merge branch 'micro' into minor
* micro:
cleanup: refactor code to initialize DIST_COMMON
dist: ordering of files in DIST_COMMON is deterministic now
tests: refactor some tests on DIST_COMMON
maint: make output of 'gen-testsuite-part' deterministic
When computing lispdir, don't load emacs site wide init file.
PATH: quote $(PATH_SEPARATOR) as well
Improve detection of GNU make, avoiding "Arg list too long" errors.
|
|
91238345
|
2014-12-22T13:39:30
|
|
cleanup: refactor code to initialize DIST_COMMON
There is not need to make that an Automake variable early,
only to later get and munge its contents, and use the new
content to redefine the variable.
* bin/automake.in (@dist_common): New global variable.
(push_dist_common, handle_dist): Use it.
(handle_dist): Define am__DIST_COMMON instead of DIST_COMMON
directly.
(initialize_per_input): Reset it to empty.
($configure_dist_common): Turn this scalar variable ...
(@configure_dist_common): ... into this array variable.
(handle_dist): Adjust.
(required_file_check_or_copy): Update and wrap some comments.
* lib/am/distdir.am (DIST_COMMON): Append $(am__DIST_COMMON).
* t/distcom2.sh: Tighten a little.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
e7c14d96
|
2014-12-19T15:10:09
|
|
Improve detection of GNU make, avoiding "Arg list too long" errors.
Such errors could take place when the main makefile included too many
sub-makefiles, making $(MAKEFILE_LIST) too long and causing the
recipes $(am__is_gnu_make) to exceed the shell's command-line length
limits. This is not a theoretical issue: it could happen for projects
having lots of C/C++ sources and using automatic dependency tracking,
which created an included .Po sub-makefile for each of such sources.
Fixes http://debbugs.gnu.org/18744
* lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid
the use of $(MAKEFILE_LIST).
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
4410ae7f
|
2014-12-19T11:08:15
|
|
dist: adjust warning messages about shar and tarZ deprecation
They were swapped. Reported in http://debbugs.gnu.org/19108.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
6465c530
|
2014-08-23T07:55:28
|
|
build: fix race in parallel builds
Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301
* lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the
temporary file name. Use a similar temporary in the source dir.
|
|
74cdef78
|
2014-08-23T07:55:28
|
|
build: fix race in parallel builds
Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301
* lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the
temporary file name. Use a similar temporary in the source dir.
|
|
a78f63c5
|
2014-04-21T15:10:54
|
|
maint: update copyright years
We've been in 2014 already for few months now...
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3a851d64
|
2014-04-21T10:22:29
|
|
Typofixes in warning messages and manual
Fixes automake bug#16827 and bug#16997.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
ad9804e1
|
2013-12-30T23:21:03
|
|
parallel-tests: avoid possible implicit "make all" in test-suite.log rule
This change fixes automake bug#16302.
* lib/am/check.am ($(TEST_SUITE_LOG)): Avoid running "make $redo_logs"
when $redo_logs expands to empty, since in that case we are actually
ending up invoking a full "make all". That shouldn't be required, and
can cause slowdowns for people implementing their extra "laziness
wrappers" around check-TESTS (automake bug#16302).
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
9b156829
|
2013-10-30T21:41:39
|
|
distcheck: don't allow overriding of --prefix and --srcdir by the user
Not through AM_DISTCHECK_FLAGS, nor through DISTCHECK_FLAGS. Apparently,
some packages got in the habit of relaying all the options passed to the
original ./configure invocation through to the configure invocations
in "make distcheck". This was causing problems, because it also passed
through the original --srcdir and --prefix options.
Fixes: expose bug#14991 (relates to 'distcheck')
* lib/am/distdir.am (distcheck): Pass the hard-coded --srcdir and
--prefix options *after* both the developer-defined options in
$(AM_DISTCHECK_FLAGS) and the user-defined options in $(DISTCHECK_FLAGS).
* t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test
'distcheck-no-destdist-or-srcdir-override.sh'.
* doc/automake.texi (Checking the Distribution): Update.
* NEWS: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
2c063f33
|
2013-09-17T09:57:53
|
|
python: byte-compile nobase_*_PYTHON files only once
* lib/am/python.am: Here. Byte-compiling was occurring inside of
a loop, causing an O(n^2) number of byte-compilations instead of
O(n).
Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
9892eb78
|
2013-06-09T11:37:01
|
|
Merge branch 'micro' into maint
* micro:
maint: add a missing copyright notice
sync: update config.guess from upstream
tests: expose automake bug#13928
comments: fix some out-of-sync refs to test scripts
tests: expose automake bug#13940
|
|
f7492285
|
2013-06-08T17:56:34
|
|
comments: fix some out-of-sync refs to test scripts
Those script has been renamed since those comments where written.
* lib/Automake/Rule.pm: Adjust.
* lib/am/distdir.am: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
86e45fe1
|
2013-05-23T20:12:17
|
|
Merge branch 'micro' into maint
* micro:
tests: avoid '$MAKE' redirections, use 'run_make' instead
tests: avoid use of redirected 'run_make' invocations
lint: warn against redirected 'run_make' invocations
comments: next GNU make release 4.0, not 3.83
tests: fix a potential spurious failure due to global config.site
HACKING: it's OK to do testsuite refactoring in a micro version
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f2a1ef46
|
2013-05-22T23:42:09
|
|
comments: next GNU make release 4.0, not 3.83
See: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00093.html>
* lib/am/header-vars.am (am__make_running_with_option): Adjust
comments.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
0cca184f
|
2013-05-18T15:23:20
|
|
Merge branch 'micro' into maint
* micro:
lisp: fix a failure with Solaris /usr/xpg4/bin/sh
tests: sanitize 'unset' usages
tests: fix some botched/outdated comments
tests: use perl, not find+rm, to remove temporary directories
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
0256f1d6
|
2013-05-18T13:35:16
|
|
lisp: fix a failure with Solaris /usr/xpg4/bin/sh
* lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly
here. For most shells, the lacking initialization, while technically
incorrect, didn't cause any issue in practice, because in those shells
"test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the
shell complains like this: "test: argument expected", and returns a
non-zero exit status. This caused testsuite failures in several lisp
tests.
Also, while we are at it, use more proper quoting in the recipe, to
ensure a missing initialization to now be caught by more forgiving
shells as well.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
780299d9
|
2013-05-10T19:22:06
|
|
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>
|
|
0736c67c
|
2013-05-10T13:31:59
|
|
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
|
|
126cd524
|
2013-05-10T10:57:38
|
|
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>
|
|
5a37b0e7
|
2013-05-10T10:53:15
|
|
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
|
|
66ab18ae
|
2013-05-10T10:50:05
|
|
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>
|
|
53201da1
|
2013-05-10T10:35:26
|
|
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>
|
|
c8f106c7
|
2013-05-09T11:17:47
|
|
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>
|
|
2d3a2e36
|
2013-05-04T11:50:10
|
|
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)
|
|
57925b67
|
2013-05-03T14:06:25
|
|
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>
|
|
1adb0570
|
2013-05-03T13:01:35
|
|
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>
|
|
6d643e93
|
2013-05-03T12:52:14
|
|
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>
|
|
5c4aaae2
|
2013-05-03T12:47:59
|
|
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>
|
|
b62616b3
|
2013-05-02T19:41:24
|
|
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>
|
|
c93bc3d4
|
2013-05-02T01:10:13
|
|
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>
|
|
e242b44e
|
2013-05-01T23:26:42
|
|
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>
|
|
02ead48e
|
2013-04-29T16:12:34
|
|
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>
|
|
69f77915
|
2013-04-29T15:22:10
|
|
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>
|
|
e432b0d3
|
2013-04-27T16:09:43
|
|
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>
|
|
6eedee4c
|
2013-04-27T15:25:06
|
|
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>
|
|
f0d1288f
|
2013-04-26T20:39:40
|
|
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
docs: issues with configure substitutions in TESTS
tests: avoid possible autotools caching issues (automake bug#13832)
docs: add myself and Ralf Wildenhues as authors
authors: add myself
dry-run: don't get confused by '-I' option
tests: avoid a spurious failure with the Korn Shell
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
header vars: can determine whether we are running under GNU make
NEWS: improve wording for automake bug#13514 fix
NEWS: document fix for automake bug#13514
|
|
cfe0abc7
|
2013-04-22T18:02:07
|
|
dry-run: don't get confused by '-I' option
Fixes automake bug#13760 for non-GNU make implementations that still
support the option '-I'. So far, the only such make implementation
are FreeBSD (8.x) make and NetBSD (5.x) make.
* lib/am/header-vars.am (am__make_dryrun): If a non-GNU make is being
used, try to handle the '-I' option in $MAKEFLAGS correctly. For GNU
make, that is already done by the proper use of the $MFLAGS variable.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
334a2e0b
|
2013-04-22T15:07:43
|
|
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
Fixes automake bug#13760 for GNU make.
* lib/am/header-vars.am (am__make_dryrun): If GNU make is being used, rely
on the contents of the $(MFLAGS) variable rather than of the $(MAKEFLAGS)
to decide whther make is being executed in "dry run" mode. Not only this
makes the code possibly faster and less brittle, but also fixes automake
bug#13760 (at least when GNU make is in use).
* t/make-dryrun.tap: Adjust: some tests that were xfailing now pass.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3de27839
|
2013-04-22T14:53:14
|
|
header vars: can determine whether we are running under GNU make
This is mostly a preparatory patch in view of future changes.
* lib/am/header-vars.am (am__is_gnu_make): New, contains shell code that
determines whether we are running under GNU make.
* t/make-is-gnu.sh: New test.
* t/list-of-tests.mk: Add it.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
8f06bfba
|
2013-01-09T22:17:53
|
|
depend2.am: fix comments on verbosity of compilation rules
The situation and decisions described on those comments have become
quite outdated since the introduction of the silent-rules support.
Today, the general idea is to have nice, terse output if silent rules
are enabled, and complete, faithful, very verbose output if they are
not -- without trying to "massage" this verbose output in a more
pleasant form if that would cause complication in the affected code.
So it's better to just drop the obsolescent comments.
Note that we don't start simplifying the existing rules according
to this new philosophy; that will only be done when touching some
existing code (for the 'depend2.am' code, that will probably happen
on the master branch).
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
a52e9de0
|
2013-01-09T22:01:45
|
|
depend2.am: improve comments a little
* lib/am/depend2.am: The "fastdep" mode is supported not only for
gcc 3.x, but for gcc 3.x or later, in particular, for all gcc in
the 4.x series (at the time of writing, the latest release is 4.72).
Adjust the comments to match, and re-wrap them while at it.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
285d7b14
|
2013-01-05T12:12:56
|
|
texi: remove extra verbosity in creation of dirstamp directory
* lib/am/texi-vers.am (%STAMPVTI%): Here.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
6a67b297
|
2013-01-03T23:10:42
|
|
texi: remove workaround for older Texinfo (4.1)
* lib/am/texibuild.am: Here, in the rules generating HTML output.
We can do so because, since Automake 1.13, we require Texinfo >= 4.9
anyway.
Basically a backport of Automake-NG commit '1.12.2-879-ge6caf5e'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
7df8b28c
|
2012-12-31T18:18:37
|
|
maint: update copyright year for 2013 (in branch maint)
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
ac5c1d77
|
2012-08-11T19:36:08
|
|
cleanup: drop a redundant %?FIRST% transform
* lib/am/texinfos.am: Here: this file is only included one time
per Makefile by Automake.
Cherry picked from Automake-NG commit 'v1.12.2-864-g5c580b0'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
cb6a19d9
|
2012-11-21T14:13:02
|
|
Merge branch 'maint'
* maint:
tests: fix a spurious failure when $PYTHON is in the environment
python tests: support PEP-3147 installation layout
python: uninstall cater to PEP-3147
tests: improve a comment
tests: honour $PYTHON override
tests: typofix in message
news: document fix for bug#8847 (PEP-3147, __pycache__)
python: improve support for modern python (CPython 3.2 and PyPy)
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3fea7647
|
2012-11-19T20:16:47
|
|
python: uninstall cater to PEP-3147
After recent commit commit v1.12.4-43-ge0e99ed, "python: improve
support for modern python (CPython 3.2 and PyPy)", the python install
rules have been made smart enough to install "*.pyc" byte-compiled
files according to PEP-3147 with modern (post-3.2) pythons. However,
the uninstall rules hadn't been updated accordingly, causing leftover
files to remain around after "make uninstall", as well as failures in
"make distcheck".
* lib/am/python.am (am__pep3147_tweak): New internal macro, used
in ...
(uninstall-%DIR%PYTHON): ... the recipe of this target, which has
been adjusted to cater to PEP-3147
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
7411adcd
|
2012-10-02T20:34:47
|
|
Merge branch 'maint'
* maint:
config headers: remove stale comment in makefile fragment
NEWS: wording and quoting fixlets in few older entries
config headers: don't emit rules for headers not generated by autoheader
docs: fix minor typo: s/expending/expanding/
sync: update files from upstream with "make fetch"
maint: post-release minor version bump
maint: typo fixes s/lies into/lies in/
release: stable release 1.12.4
NEWS: minor fix
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
b8651afd
|
2012-10-02T16:45:37
|
|
config headers: remove stale comment in makefile fragment
* lib/am/remake-hdr.am: Here.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
25ffe7d5
|
2012-09-28T21:27:41
|
|
config headers: don't emit rules for headers not generated by autoheader
This change fixed automake bug#12495.
Even if an AC_CONFIG_HEADERS invocation is passed a list of several files
as the first argument, only the first one of those file is considered by
autoheader for automatic generation of the corresponding '.in' template.
This is done on purpose, and is clearly documented in the Autoconf manual,
which (as of the 2.69 version) reads something like this:
The autoheader program searches for the first invocation of
AC_CONFIG_HEADERS in configure sources to determine the name of
the template. If the first call of AC_CONFIG_HEADERS specifies
more than one input file name, autoheader uses the first one.
That is, an invocation like:
AC_CONFIG_HEADERS([config.h config2.h])
should cause autoheader to generate only a 'config.h.in' template,
and not also a 'config2.h.in' one.
Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate
remake rules only for the template associated to the first input file
name passed to that macro. In some situations, however, automake failed
to properly limit itself in this way; for example, with an input like:
AC_CONFIG_HEADERS([config.h sub/foo.h])
in configure.ac, and with the 'sub' directory listed in the SUBDIRS
variable of the top-level Makefile, automake would erroneously generate
in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by
invoking autoheader.
This issue was likely introduced in commit 'Release-1-8-23-g262bb92'
of 2004-01-05.
* NEWS: Update.
* doc/automake.texi (Optional): Improve wording in the description of
hat rules automake generates in response to an 'AC_CONFIG_HEADERS'
invocation.
* lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for
the %CONFIG_HIN% template if that corresponds to the first argument of
AC_CONFIG_HEADERS, as explaned above. Do so using the automake-time
conditional %?FIRST-HDR%, that is properly passed ...
* automake.in (handle_configure): ... from a 'file_contents' invocation
in here.
* t/autohdr-subdir-pr12495.sh: New test.
* t/list-of-tests.mk: Add it.
* THANKS: Update.
Helped-by: Hib Eris <hib@hiberis.nl>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
c6cc3802
|
2012-08-13T14:05:40
|
|
Merge branch 'maint'
* maint:
tests: rework tests on AM_PATH_PYTHON
cosmetics: fix typos and references in comments
typofix: in a test diagnostic
readme: fixlets to HACKING
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
cbc0fc85
|
2012-08-13T12:10:46
|
|
cosmetics: fix typos and references in comments
* lib/am/check.am: Here.
* doc/automake.texi: And here.
* t/*.sh: And in several of these tests.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
ae1f40f5
|
2012-08-10T16:51:55
|
|
Merge branch 'maint'
* maint:
automake: remove an unused local variable
distcheck: more resilient against possible failures
cleanup: remove almost-unused global var 'am_relative_dir'
|
|
c1dd6cce
|
2012-08-10T16:11:04
|
|
distcheck: more resilient against possible failures
* lib/am/distdir.am (distcheck): Ensure that a failure in the commands
making the just-extracted source tree read-only cause the recipe to fail.
While at it, save a fork by creating the '_build' and '_inst' subdir
with a single mkdir invocation.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3e472de1
|
2012-08-05T11:06:16
|
|
Merge branch 'elisp-work'
* elisp-work:
news: document all the recent elisp-related changes and improvements
coverage: byte-compiling elisp files in different subdirectories
elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation
elisp: --batch implies -q, remove -q
elisp: support elisp files in subdirectories properly
elisp: simplify suffix rules using emacs '-L' option
elisp: no need to "absolutize" $(srcdir) and $(builddir) ...
elisp: prefer $(builddir) files over $(srcdir) ones
elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite)
coverage: elisp path contains $(srcdir) and $(builddir)
coverage: emacs lisp files in subdirectories
|
|
56cd2dda
|
2012-08-04T14:56:27
|
|
elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation
* lib/am/lisp.am (.el.elc): Add "$(AM_ELCFLAFS) $(ELCFLAGS)"
to the emacs command line.
* t/lisp-flags.sh: New test.
* t/list-of-tests.mk: Add it.
* doc/automake.texi (Emacs Lisp): Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
e3e58b6c
|
2012-07-24T19:58:45
|
|
tags: refactor to reduce code duplication (2)
No semantic change is intended.
* lib/am/tags.am (am__define_uniq_tagged_files): New variable,
factor out some code common to ...
(ctags-am, tags-am, ID): ... the recipes of these targets.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3c774c5e
|
2012-07-24T19:25:02
|
|
tags: refactor to reduce code duplication (1)
No semantic change is intended.
* lib/am/tags.am (am__uniquify_input): New variable, factor
out some code common to ...
(ctags-am, tags-am, ID): ... the recipes of these targets.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f3af1eb0
|
2012-07-24T18:43:50
|
|
Merge branches 'tags-simplify-recursion' and 'color-tests-always'
* tags-simplify-recursion:
tags: unify recursion for tags targets with that of "usual" targets
* color-tests-always:
tests: better name for a couple of tests
check: support colorized testsuite output by default
|
|
2d5571e7
|
2012-07-22T16:38:47
|
|
check: support colorized testsuite output by default
Fixes automake bug#11855.
With this change, we make the 'color-tests' option enabled by default.
That option remains still silently accepted as a no-op, for backward
compatibility.
The developer of a package is still free to disable testsuite coloring on
a per-makefile basis (by adding "AM_COLOR_TESTS = no" to the Makefile.am)
or on a whole-project basis (by AC_SUBST'ing AM_COLOR_TESTS to "no" in
configure.ac). But now the user will be able to request the testsuite
output to be colorized, if he really wants to:
# With GNU make:
make AM_COLOR_TESTS=yes check
# With non-GNU make:
make AM_COLOR_TESTS=yes AM_MAKEFLAGS=AM_COLOR_TESTS=yes check
* NEWS: Update.
* doc/automake.texi: Updated, and some related minor reformatting
and rewording.
* automake.in (handle_tests): No need to pass the transform '%COLOR%'
when processing "check.am".
* lib/am/parallel-tests.am: Remove use of the '%?COLOR%' transform;
just act as if it were unconditionally TRUE.
* t/color.sh: No need to specify 'color-tests' in 'AUTOMAKE_OPTIONS'
nor in 'AM_INIT_AUTOMAKE'.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/ax/tap-summary-aux.sh: Likewise.
* t/color2.sh: Likewise. Also, ensure that colorized testsuite output
can be disabled by default by calling "AC_SUBST([AM_COLOR_TESTS], [no])".
* t/tap-realtime.sh: Define 'AM_COLOR_TESTS' to "no" in Makefile.am, to
avoid spurious colorization of the output due to the use of the 'expect'
program.
* t/color-tests-opt.sh: New test, check that the 'color-tests' option is
still recognized as a no-op.
* t/list-of-tests.mk: Add the new test.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
158b46f2
|
2012-07-22T11:07:22
|
|
tags: unify recursion for tags targets with that of "usual" targets
This change has a side effect: now any failure of the 'tags', 'ctags',
'cscope' and 'cscopelist' targets in a subdirectory will cause the
recursive command issued from the top directory to fail. We believe
that this behavioural change is not only justified by the simplification
this patch entails, but actually offers better semantics: ignoring
failures by default is never a good idea, and with make, the user can
anyway order the completion of commands in the face of possible failures
with the '-k' option.
* NEWS: Update.
* automake.in (%required_targets): Add keys 'cscopelist-am', 'tags-am'
and 'ctags-am'.
(handle_tags): Greatly simplified, the major part of the handling of
recursion for the 'tags', 'ctags' and 'cscopelist' now moved out to ...
* lib/am/tags.am: ... this file, that has been adjusted and extended
accordingly.
* t/maken3.sh: Remove testing of the 'TAGS' target, that is now just
an alias to 'tags'. Without this change, this test would spuriously
fail.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
1ee9c78b
|
2012-07-16T10:31:27
|
|
elisp: --batch implies -q, remove -q
According to the emacs manual[1], --batch implies -q, so there's no
need to pass -q when compiling elisp.
* lib/am/lisp.am: Remove -q from $(EMACS) call.
[1]: http://gnu.org/s/emacs/manual/html_node/emacs/Initial-Options.html
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
3645d0ff
|
2012-07-14T23:14:45
|
|
elisp: support elisp files in subdirectories properly
For more reference, see:
<http://lists.gnu.org/archive/html/automake/2009-10/msg00013.html>
<http://thread.gmane.org/gmane.comp.sysutils.automake.bugs/4772>
* lib/am/lisp.am (.el.elc): If the file being byte-compiled is in
a subdirectory, add that (both as a subdirectory of the builddir
and the srcdir) to the emacs load path. While we are at it (and
for consistency), drop quoting of $(srcdir) and $(builddir), since
those variables are ensured (by configure-time checks) not to
contain white space nor shell metacharacters.
* t/list-of-tests.mk (XFAIL_TESTS): Add 't/lisp-subdir.sh' and
't/lisp-subdir2.sh', since they now passes.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
6fc5c9ac
|
2012-07-14T22:46:20
|
|
elisp: simplify suffix rules using emacs '-L' option
* lib/am/lisp.am (.el.elc): Use '-L dir' instead of calling '--eval' to
explicitly append to the 'load-path' variable.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
fec53184
|
2012-07-14T22:42:48
|
|
elisp: no need to "absolutize" $(srcdir) and $(builddir) ...
* lib/am/lisp.am (.el.elc): ... here: we don't chdir around anyway,
nor move or copy around our source '.el' files. Update comments,
and re-wrap them while we are at it.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
7cd72e5d
|
2012-07-14T22:33:40
|
|
elisp: prefer $(builddir) files over $(srcdir) ones
* lib/am/lisp.am (.el.elc): Here. This better respects VPATH spirit.
Adjust and extends comments.
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/lisp-loadpath.sh', which
now passes.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
226be35f
|
2012-07-14T21:52:43
|
|
elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite)
Motivated by automake bug#11806.
Traditionally, automake byte-compiled emacs-lisp '.el' files by invoking
'elisp-comp' on all of them in a bulk; this involved complex timestamping
and file-locking logic. It was also brittle in any slightly-unusual
setup, because 'elisp-comp' operated by copying all of the elisp files
to be compiled into a temporary sub-directory and compiling them in there,
the copying the resulting byte-compile files back in the build directory.
This patch removes all of that juggling and chicanery in favour of
defining a much simpler '.el.elc' suffix rule. Not only this is simpler,
but it also interacts better with "make -jN" calls, which are becoming
more and more common and useful on today's increasingly multicore systems.
* Makefile.am (dist_script_DATA): Remove 'elisp-comp'.
* automake.in (@common_files): Likewise.
(handle_emacs_lisp): Do not require 'elisp-comp'.
* doc/automake.texi: Remove references to 'elisp-comp'.
* lib/am/lisp.am: Define elisp compilation via a suffix rule; this
basically amounts to a complete re-write of the lisp byte-compilation
rules.
* lib/elisp-comp: Remove.
* t/add-missing.tap: Remove elisp-comp test.
* t/dist-auxdir-many-subdirs.sh: Remove reference to elisp-comp.
* t/primary-prefix-invalid-couples.tap: Likewise.
* t/primary-prefix-valid-couples.sh: Likewise.
* t/lisp4.sh: Remove reference to elc-stamp.
* t/lisp5.sh: Likewise.
* t/lisp6.sh: Likewise.
* t/lisp3.sh: Likewise. Also remove the recompilation check that
involves a (message) call.
* t/lisp7.sh: Remove check for "Warnings can be ignored". Remove
reference to elc-stamp.
* t/lisp8.sh: Likewise.
* t/lispdry.sh: Remove references to elc-stamp.
Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
bdb984ba
|
2012-07-09T19:33:03
|
|
Merge branch 'maint' (with fix for CVE-2012-3386)
This makes the fix for a locally-exploitable security vulnerability
(CVE-2012-3386) available to the Automake master branch.
* maint:
sync: update files from upstream with "make fetch"
news: improve wording in entry about CVE-2012-3386
maint: post-release minor version bump
release: stable release 1.12.2
distcheck: never make part of $(distdir) world-writable
compat: automake should substitute @mkdir_p@, for backward compatibility
fixup: t/README: it's ./runtest, not ./t/ax/runtest
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
bab7065f
|
2012-07-06T22:43:04
|
|
distcheck: never make part of $(distdir) world-writable
This fixes a locally-exploitable security vulnerability (CVE-2012-3386).
In the 'distcheck' rule, we used to make the just-extracted (from
the distribution tarball) $(distdir) directory and all its files and
subdirectories read-only; then, in order to create the '_inst' and
'_build' subdirectories in there (used by the rest of the recipe) we
made the top-level $(distdir) *world-writable* for an instant (the
time to create those two directories) before making it read-only
again.
Making that directory world-writable (albeit only briefly) introduced a
locally exploitable race condition for those who run "make distcheck" with
a non-restrictive umask (e.g., 022) in a directory that is accessible by
others. A successful exploit would result in arbitrary code execution
with the privileges of the user running "make distcheck" -- game over.
Jim Meyering wrote a proof-of-concept script showing that such exploit is
easily implemented.
This issue is similar to the CVE-2009-4029 vulnerability:
<http://lists.gnu.org/archive/html/automake/2009-12/msg00012.html>
* lib/am/distdir.am (distcheck): Don't make $(distdir) world-writable,
not even for an instant; make it user-writable instead, which is enough.
Helped-By: Jim Meyering <jim@meyering.net>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
25510217
|
2012-07-09T10:33:49
|
|
compat: automake should substitute @mkdir_p@, for backward compatibility
That has been unwittingly broken by commit v1.12-19-g7a1eb9f of 2012-04-28,
"AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". We thought it
wasn't a big deal, but Jim Meyering reported that @mkdir_p@ is used in
gettext's Makefile.in.in template:
<http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
* lib/am/header-vars.am (mkdir_p): Don't define.
* m4/init.m4 (AM_INIT_AUTOMAKE): AC_SUBST 'mkdir_p' with $(MKDIR_P).
* t/mkdir_p.sh, t/mkdirp-deprecation.sh: Enhance.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
cbd1a604
|
2012-07-07T11:54:28
|
|
Merge branch 'maint'
* maint:
cosmetics: rename t/ax/test-runner => t/ax/runtest
fixup: another "make recheck" failure with BSD make
test runner: work correctly in VPATH setups
compat: automake should define $(mkdir_p), for backward compatibility
coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works
tests init: don't automatically re-execute tests with a POSIX shell
yacc tests: fix spurious failure with parallel make
tests: ignore minor 'recheck' regression for BSD make
tests: don't clutter the top-level dir with temporary test directories
tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d"
lisp: better support of VPATH builds
news: fixlets and updates
+ Extra non-trivial edits:
* NEWS: State that $(mkdir_p) is still provided as an alias to
$(MKDIR_P), for (partial) backward-compatibility.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
cca42634
|
2012-07-06T10:12:30
|
|
compat: automake should define $(mkdir_p), for backward compatibility
That has been unwittingly broken by commit 'v1.12-19-g7a1eb9f'
of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in
Automake 1.13".
Report from Benoit Sigoure and Diego Elio Pattenò:
<http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
* lib/am/header-vars.am (mkdir_p): Define as an alias for $(MKDIR_P).
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/mkdir_p.sh'.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
0451b0bc
|
2012-07-05T18:50:37
|
|
lisp: better support of VPATH builds
Fixes automake bug#11806.
* lib/am/lisp.am: Pass the value of '$(abs_srcdir)' to the
elisp-compile script in the environment.
* lib/elisp-comp: Add the vale of '$abs_srcdir' to the emacs
load-path.
* t/lisp-pr11806.sh: New test.
* t/list-of-tests.mk: Add it.
Copyright-paperwork-exempt: yes
Co-authored-by: Stefano Lattarini <stefano.lattarini@gnu.org>
Reported-by: Makoto Fujiwara <makoto@ki.nu>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
5e0539a3
|
2012-07-03T21:15:33
|
|
Merge branch 'aclocal-trace-macrodir'
* aclocal-trace-macrodir:
aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
cd1a9ccc
|
2010-10-05T17:14:00
|
|
aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead
Maintaining ACLOCAL_AMFLAGS in the Makefile.am to pass extra flags
to aclocal is (and have always been) quite of an hack. For example,
autoreconf is forced to grep Makefile.am to honour those flags. But
this is a bad obsolescent behaviour; in fact, the autotools have moved
consistently in the past years from custom grepping of Makefile.am and
configure.ac to tracing of m4 macro calls, which is more consistent,
more reliable and more flexible.
And when autoreconf is not used, the developer is forced to add *by hand*
the flags specified by ACLOCAL_AMFLAGS to the aclocal calls not triggered
by make rebuild rules; here lie again more duplication and more chances
for errors.
Moreover, ACLOCAL_AMFLAGS has only two typical use cases:
- to instruct aclocal to look for extra macro definition in a local
directory (as with "ACLOCAL_AMFLAGS = -I m4"); and
- to further instruct aclocal to copy in that local directory the
required third-party .m4 files found in the system-wide directory
(as with "ACLOCAL_AMFLAGS = -I m4 --install").
The first use case can be better covered if aclocal can instead trace and
honours call to the AC_CONFIG_MACRO_DIR autoconf macro; and the second
use case shouldn't be considered really legitimate, as it is quite (and
subtly) brittle (see automake bug#9037).
Thus we now make aclocal trace AC_CONFIG_MACRO_DIR macro, and act
accordingly. For backward compatibility, we continue to support the
ACLOCAL_AMFLAGS special variable (although removing any mention of it
from the documentation). Future Automake releases will likely start
to warn about the use of that variable, and eventually remove support
for it altogether.
From a suggestion by Eric Blake.
This is a much simplified (and IMHO saner) version of the patch series
discussed in the threads:
<http://lists.gnu.org/archive/html/automake-patches/2010-10/msg00045.html>
<http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00156.html>
* aclocal.in ($ac_config_macro_dir): New global variable.
(trace_used_macros): Also trace the macro 'AC_CONFIG_MACRO_DIR',
and set the '$ac_config_macro_dir' variable accordingly.
(parse_arguments): Code for diagnosis of '--install' used without
any user-specified include directory moved ...
(while (1)): .. into the main loop. Which now also updates the
list of user-specified include directories to include the directory
given as argument to the call (if any) of 'AC_CONFIG_MACRO_DIR'.
* lib/am/configure.am: Update comments.
* NEWS: Updated.
* doc/automake.texi: Likewise. Also, stop advising the use of the
'--install' in ACLOCAL_AMFLAGS (see automake bug#9037 for a rationale),
and remove any reference to ACLOCAL_AMFLAGS (which is now considered
obsolescent).
* t/aclocal-path-install.sh: Adjust grepping check in the aclocal
error messages.
* t/subpkg.sh: Updated: add 'AC_CONFIG_MACRO_DIR' call to configure.ac,
remove setting of 'ACLOCAL_AMFLAGS' in Makefile.am and use of aclocal
command line arguments.
* t/subpkg2.sh: Likewise.
* t/subdir8.sh: Likewise.
* t/remake10c.sh: Likewise.
* t/remake8a.sh: Likewise.
* t/remake8b.sh: Likewise.
* t/aclocal4.sh: Likewise.
* t/aclocal6.sh: Likewise.
* t/acloca14.sh: Likewise.
* t/acloca22.sh: Likewise.
* t/aclocal5.sh: Likewise, and do not not invade the Automake
namespace (this avoids spurious failures).
* t/acloca14b.sh: New test, identical to the previous version of
'acloca14.test'; it is kept to verify backwards compatibility with
the use of ACLOCAL_AMFLAGS.
* t/acloca22b.sh: Likewise (but for 'acloca22.test').
* t/aclocal-amflags.sh: New test, check for backwards
compatibility that ACLOCAL_AMFLAGS still works.
* t/remake-macrodir.sh: New test, checking that aclocal's honoring of
AC_CONFIG_MACRO_DIR interacts nicely with automatic rebuild rules.
* t/list-of-tests.mk: Add the new tests.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
22786e46
|
2012-07-02T15:04:12
|
|
Merge branch 'user-recursive-targets'
* user-recursive-targets:
recursion: support user-defined recursive targets
tests: rename 'recurs*.sh' to 'var-recurs*.sh'
tests: minor improvements to 'recurs*.sh'
|
|
3da1457d
|
2012-06-12T14:48:12
|
|
recursion: support user-defined recursive targets
The user can now define his own recursive targets that recurse
in the directories specified in $(SUBDIRS). That can be done by
specifying the name of such targets in invocations of the new
'AM_EXTRA_RECURSIVE_TARGETS' m4 macro.
The API goes like this:
$ cat configure.ac
AC_INIT([pkg-name], [1.0]
AM_INIT_AUTOMAKE
AM_EXTRA_RECURSIVE_TARGETS([foo])
AC_CONFIG_FILES([Makefile sub/Makefile])
AC_OUTPUT
$ cat Makefile.am
SUBDIRS = sub
foo-local:
@echo This will be run by "make foo".
$ cat sub/Makefile.am
foo-local:
@echo This too will be run by a "make foo" issued either in
@echo the 'sub/' directory or in the top-level directory.
Like for the "default" recursive targets (e.g., 'all' and 'check'),
the user-defined recursive targets descend in the $(SUBDIRS) in a
depth-first fashion, and process '.' last (unless that is explicitly
specified in $(SUBDIRS)).
* NEWS, doc/automake.texi: Document the new feature.
* automake.in (@extra_recursive_targets): New global variable.
(scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'.
(handle_user_recursion): New subroutine; among other things, it defines
the new internal '$(am__extra_recursive_targets)' make variable, and
the '*-am', '*-local' and '*-recursive' targets associated with the
user-specified user recursive targets.
(generate_makefile): Call the new subroutine.
* lib/am/subdirs.am (am__recursive_targets): New internal make variable,
listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and
'$(am__extra_recursive_targets)' together.
(AM_RECURSIVE_TARGETS): Adjust the definition of this variable ...
(.PHONY, .MAKE): ... and the list of dependencies of these special targets
to take advantage of the new '$(am__recursive_targets)' variable.
($(am__recursive_targets)): New targets, superseding ...
($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and
inheriting their rules. This way, the rules to handle recursion for
built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user
defined recursive targets are the same.
* m4/extra-recurs.m4: New file, contain definition of new macro
'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'.
These macros are basically dummy, only used for tracing by automake.
* m4/Makefile.am (dist_automake_ac_DATA): Update.
* t/recurs-user.sh: New test.
* t/recurs-user2.sh: Likewise.
* t/recurs-user-deeply-nested.sh: Likewise.
* t/recurs-user-indir.sh: Likewise.
* t/recurs-user-keep-going.sh: Likewise.
* t/recurs-user-many.sh: Likewise.
* t/recurs-user-no-subdirs.sh: Likewise.
* t/recurs-user-no-top-level.sh: Likewise.
* t/recurs-user-override.sh: Likewise.
* t/recurs-user-phony.sh: Likewise.
* t/recurs-user-wrap.sh: Likewise.
* t/remake-recurs-user.sh: Likewise.
* t/list-of-tests.mk: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
f2436f5b
|
2012-07-01T18:01:35
|
|
Merge branch 'maint'
* maint:
tests: don't trust the exit status of "make -k" for non-GNU makes
parallel-tests: reimplement fix for bug#11791
tests setup: unset CDPATH
tests setup: more namespace safeness
tests setup: remove an unused variable
tests setup: less hard-coding of the test subdirectory
|
|
d5443e4c
|
2012-07-01T12:56:22
|
|
parallel-tests: reimplement fix for bug#11791
* lib/am/check.am: Here. The new implementation is shorter, slightly
more efficient (requiring less forks), less brittle in the face of
signals or unexpected interruptions in the make process, and should
also be easier to merge in the 'ng/master' branch (as of now, due to
the difficulties in merging our previous version of the fix in the
'ng/master' codebase, Automake-NG still lacks a fix for bug#11791).
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
ca9b4d33
|
2012-07-01T10:14:23
|
|
Merge branch 'maint'
* maint:
parallel-tests: silence an overly verbose recipe
tests: fix some uses of 'Exit', where 'exit' should now be used instead
maintcheck: test scripts should be executable, check for that
|
|
167f68f4
|
2012-06-30T23:37:57
|
|
parallel-tests: silence an overly verbose recipe
* lib/am/check.am (check-TESTS): Here, the part of the recipe
removing the stale '.log' and '.trs' files.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
5fb73b05
|
2012-06-30T22:17:22
|
|
Merge branch 'maint'
* maint:
parallel-tests: recipes for "check" and "recheck" are separated again
|
|
e18ac4b8
|
2012-06-30T21:32:20
|
|
Merge branch 'maint'
* maint:
parallel-tests: "recheck" behaves better in case of compilation failures
scripts: quote 'like this', not `like this'
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|