[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.12.2
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.12.2-792-gfd74123 |
Date: |
Wed, 08 Aug 2012 17:52:42 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".
http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=fd74123befe7ce42c44d52128bb2e725706bb967
The branch, ng/master has been updated
via fd74123befe7ce42c44d52128bb2e725706bb967 (commit)
via bdc607514748d8892dab26158b6d9693079d3a20 (commit)
via ffe64f1c121d63e07f291db2eda5f52cb2f58112 (commit)
via e7dcff829917ab8eccd91de3a84d44b7267cf5b0 (commit)
via 3080a80c7b4378b9d15559b0c2cdcc5fa0a26596 (commit)
via 2a7c9aeaab41f9bf66a92a68e1fe186b2af89038 (commit)
via 706f26b7bde8b7e44210f6efe964333994f2e768 (commit)
via 5b1dae570aee8f2917c082a172b0268e7cfc2682 (commit)
via b6a330e17bf0c7aca9bc7210f500aecee25077d0 (commit)
via ff23c81741c6c02b7087ab104a8c449702b193c5 (commit)
via 3e472de16e7cc0f10d2dc339f4308eb3ceadf55d (commit)
via 670b3bd58c6afa0c3e29107b7634a6b9091d2bcf (commit)
via 9158d39d524ab4c10aa41dbed1fc5b6a3b54188a (commit)
via 12f0caf6d2d2c013c03200a12449d5f97428e0cf (commit)
via 70b503ae955f36fd0e0b960940933b92e98ea94c (commit)
via f989c7e173a925e0dbe879afafa9db23fd12a974 (commit)
via 3632e7d87d2deba49abdf1dba9fbb536ce58328d (commit)
via 96afe638f09cd5fc32659883952b89f2d7e2a315 (commit)
via 65dadf65814d7dd395d5cc35903f624b464091c6 (commit)
via b9ee5dfe75d1a524cfb0fc925851dcc13cfbfa0b (commit)
via 48e99a7ee6b2ef12bb5d7861f5b71ccd6f69c6e9 (commit)
via 56cd2dda0edcc4089954fd560712d762b80cebe5 (commit)
via e0bfe7f9c8ad59537a685ac50c21d2e12c4cf570 (commit)
via 19e281405a599a29b32f9cf084e043dab3107de3 (commit)
via 6d6c831d9cec0549434f0f0c15437b810b877d10 (commit)
via f8fdc08924c435c2aa8cf038f8f0f5ab9d45bd85 (commit)
via 1ee9c78b296198bcec16bd9a9f01511ded9780e0 (commit)
via 3645d0ff5e0e4ee1163b97cf2a498246a014a85c (commit)
via 6fc5c9acb05b5e42ca02b861568ee191876dea6f (commit)
via fec53184220122d7ff8c88757be4d2eaafec13b2 (commit)
via 7cd72e5d9283fcd778e7d694d3a420b934e842d3 (commit)
via 226be35fe1dad069485d9fa45c3fc3389f3e92a2 (commit)
via 9bed1c1024afc2ddf5b3fb719b8320fa16ad18df (commit)
via 2f88456d63e72f9a82410873f8f041814097dbd4 (commit)
via 4e922a42f01b5ba146c1b7d29e3253bee07e2c8b (commit)
via 32eed29a7171549080a91514374cff7341d9c08e (commit)
from ec3b8de0746f4a2beeb1196e44a18b60ab76bc75 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fd74123befe7ce42c44d52128bb2e725706bb967
Author: Stefano Lattarini <address@hidden>
Date: Wed Aug 8 00:01:29 2012 +0200
[ng] refactor: merge inst-vars.am into header-vars.mk
This will simplify possible future refactorings. Given the small size
of 'inst-vars.am', and the fact that the content of a verbatim-included
makefile fragment is included in the distribution tarball only once,
this change doesn't increase the size of distribution tarballs in any
appreciable way, even if the variables once defined in 'inst-vars.am'
aren't really needed.
* lib/am/inst-vars.am: Remove, merged ...
* lib/am/header-vars.mk: ... in here, with all '##' comments turned
into '#' comments, and (few of them) slightly improved with the
addition of "FIXME" remarks.
* Makefile.am (dist_am_DATA): Adjust.
* lib/am/data.am: Include the 'inst-vars.am' file explicitly no more.
* lib/am/libs.am:: Likewise.
* lib/am/lisp.am:: Likewise.
* lib/am/ltlib.am:: Likewise.
* lib/am/mans.am:: Likewise.
* lib/am/python.am:: Likewise.
* lib/am/scripts.am:: Likewise.
* lib/am/texinfos.am:: Likewise.
Signed-off-by: Stefano Lattarini <address@hidden>
commit bdc607514748d8892dab26158b6d9693079d3a20
Author: Stefano Lattarini <address@hidden>
Date: Tue Aug 7 18:51:31 2012 +0200
[ng] cleanup: remove few VPATH rewrite workarounds
They are not needed by GNU make, which performs no implicit VPATH
rewrites in its recipes.
* lib/am/lisp.am (install-%DIR%LISP): No need to "correct" possible
VPATH rewrites: GNU makes doesn't do them. Accordingly, ...
* lib/am/inst-vars.am (am__vpath_adj_setup, am__vpath_adj): ... these
two variables are no more needed: remove them.
Signed-off-by: Stefano Lattarini <address@hidden>
commit ffe64f1c121d63e07f291db2eda5f52cb2f58112
Author: Stefano Lattarini <address@hidden>
Date: Tue Aug 7 18:35:54 2012 +0200
[ng] elisp: use more GNU make features in recipes
* lib/am/lisp.am (%.elc: %.el): Here, with the help of ...
[%?FIRST%] (am.elisp.includes): ... this new internal variable.
Signed-off-by: Stefano Lattarini <address@hidden>
commit e7dcff829917ab8eccd91de3a84d44b7267cf5b0
Author: Stefano Lattarini <address@hidden>
Date: Mon Aug 6 10:04:56 2012 +0200
elisp: prefer pattern rules to suffix rules
* lib/am/lisp.am: Here, turning ...
(.el.elc): ... this ...
(%elc: %.el): ... into this.
Signed-off-by: Stefano Lattarini <address@hidden>
commit 3080a80c7b4378b9d15559b0c2cdcc5fa0a26596
Merge: e0bfe7f 2a7c9ae
Author: Stefano Lattarini <address@hidden>
Date: Sun Aug 5 18:24:32 2012 +0200
Merge branch 'master' into ng/master
* master: (23 commits)
tests: avoid spurious failures with older Texinfo
tests: avoid tons of spurious failures on NetBSD
runtest: avoid spurious failures on NetBSD
news: dependency tracking for Portland Group Compilers is now supported
tests: cater to OpenSolaris 'zip'
tests: fix a spurious XPASS on OpenIndiana
tests: avoid spurious failure of 't/vala-vapi.sh' on OpenIndiana
tests: avoid spurious failure of 't/uninstall-fail.sh' on OpenIndiana
tests: reimplement wrappers for automake and aclocal in perl
tests: work around a ksh bug w.r.t. ${1+"$@"}
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)
...
+ Extra non-trivial edits:
* lib/am/lisp.am (am.clean.normal.f): Add 'elc-stamp' no more.
Signed-off-by: Stefano Lattarini <address@hidden>
commit e0bfe7f9c8ad59537a685ac50c21d2e12c4cf570
Author: Stefano Lattarini <address@hidden>
Date: Thu Aug 2 18:37:12 2012 +0200
fragments: put them in a subdir of build-aux
This is a follow-up to previous commit 'v1.12.2-758-g19e2814'.
Instead of placing the verbatim makefile fragments in the directory
'$(top_srcdir)/.mk', we place them in '$(build-aux)/am-ng', where
'$(build-aux)' is the directory specified by AC_CONFIG_AUX_DIR, or,
if that is not explicitly specified, the directory automatically
determined by automake to help the auxiliary scripts and files (that
typically being '$(top_srcdir)').
* automake.in (verbatim): Implement the renaming.
* lib/am/distdir.am (am.dist.mk-files): Adjust to it.
* Makefile.am (amhello_configury): Likewise.
* .gitignore: Likewise.
* t/all2.sh: Likewise.
* t/conflnk2.sh: Likewise.
* t/serial-tests.sh: Likewise.
* t/spell.sh: Likewise.
* t/spell2.sh: Likewise.
* t/ax/depcomp.sh: Remove no-more-needed tweaks.
* t/ax/tap-setup.sh: Likewise.
* t/distdir.sh: Likewise.
* t/add-missing.tap: Adjust to avoid spurious failures.
Suggested-by: Bob Friesenhahn <address@hidden>
Suggested-by: Akim Demaille <address@hidden>
Signed-off-by: Stefano Lattarini <address@hidden>
commit 19e281405a599a29b32f9cf084e043dab3107de3
Author: Stefano Lattarini <address@hidden>
Date: Wed Aug 1 11:18:35 2012 +0200
general: include verbatim makefile fragments in output Makefiles
Instead of copying their contents in each output Makefile.
* automake.in (verbatim): Instead of copying the given Makefile fragment
in the output makefile, copy it in the '.mk' subdirectory of the top-level
source directory (i.e., the one automake is being run into). And return
a proper "include" directive that will allow GNU make to include that
fragment in the generated Makefile at make runtime.
* lib/am/distdir.am: Distribute the '.mk' subdirectory of the top-level
source directory, with the help of ...
(am.dist.mk-files): ... this new internal variable.
* .gitignore: Add the '.mk' directory.
* Makefile.am (amhello_configury): Likewise.
* t/all2.sh: Adjust.
* t/ax/depcomp.sh: Likewise.
* t/ax/tap-setup.sh: Likewise.
* t/check.sh: Likewise.
* t/distdir.sh: Likewise.
* t/installdir.sh: Likewise.
* t/noinst.sh: Likewise.
* t/phony.sh: Likewise.
* t/spell.sh: Likewise.
* t/spell2.sh: Likewise.
* t/conflnk2.sh: Adjust, and refactor a bit while we are at it.
* t/serial-tests.sh: Likewise (greatly simplifying it in the process).
* t/txinfo-rules-once.sh: Remove: its grepping tests has been rendered
almost all obsolete, and it would be to time-consuming to try to update
them.
* t/dejagnu.sh: Remove as obsolete.
* t/instexec.sh: Likewise.
* t/clean.sh: Likewise.
Signed-off-by: Stefano Lattarini <address@hidden>
commit f8fdc08924c435c2aa8cf038f8f0f5ab9d45bd85
Author: Stefano Lattarini <address@hidden>
Date: Wed Aug 1 12:49:13 2012 +0200
cosmetics: remove an obsolete comment, fix a typo in another one
* t/distdir.sh: Here.
Signed-off-by: Stefano Lattarini <address@hidden>
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 1 +
Makefile.am | 5 +-
NEWS | 27 +++++++++
automake.in | 16 +++--
doc/automake-ng.texi | 9 +--
lib/am/data.am | 4 -
lib/am/distdir.am | 6 ++-
lib/am/header-vars.mk | 53 +++++++++++++++++
lib/am/inst-vars.am | 73 -----------------------
lib/am/libs.am | 4 -
lib/am/lisp.am | 85 ++++++++-------------------
lib/am/ltlib.am | 4 -
lib/am/mans.am | 1 -
lib/am/python.am | 4 -
lib/am/scripts.am | 4 -
lib/am/texinfos.am | 2 -
lib/depcomp | 75 ++++++++++++++++++++++++-
lib/elisp-comp | 93 ------------------------------
runtest.in | 4 +-
t/add-missing.tap | 17 +-----
t/all2.sh | 3 +-
t/ax/am-test-lib.sh | 2 +-
t/check2.sh | 3 -
t/clean.sh | 26 --------
t/conflnk2.sh | 33 +++++++----
t/dejagnu.sh | 35 -----------
t/dist-auxdir-many-subdirs.sh | 3 -
t/dist-formats.tap | 8 ++-
t/distcheck-override-infodir.sh | 16 +++++
t/distdir.sh | 8 +--
t/installdir.sh | 2 -
t/instexec.sh | 27 ---------
t/instspc.tap | 8 ++-
t/{python7.sh => lisp-flags.sh} | 23 ++++---
t/{lisp-pr11806.sh => lisp-loadpath.sh} | 26 +++++++--
t/lisp-subdir-mix.sh | 96 +++++++++++++++++++++++++++++++
t/lisp-subdir.sh | 80 +++++++++++++++++++++++++
t/lisp-subdir2.sh | 78 +++++++++++++++++++++++++
t/lisp3.sh | 10 ---
t/lisp4.sh | 1 -
t/lisp5.sh | 1 -
t/lisp6.sh | 5 --
t/lisp7.sh | 2 -
t/lisp8.sh | 4 -
t/lispdry.sh | 4 +-
t/noinst.sh | 10 +++-
t/phony.sh | 3 +-
t/primary-prefix-invalid-couples.tap | 1 -
t/primary-prefix-valid-couples.sh | 1 -
t/serial-tests.sh | 62 ++------------------
t/spell.sh | 3 +-
t/spell2.sh | 3 +-
t/txinfo-rules-once.sh | 45 --------------
t/uninstall-fail.sh | 14 +++-
t/vala-vapi.sh | 8 ++-
t/wrap/aclocal.in | 29 +++++-----
t/wrap/automake.in | 25 ++++----
57 files changed, 612 insertions(+), 583 deletions(-)
delete mode 100644 lib/am/inst-vars.am
delete mode 100755 lib/elisp-comp
delete mode 100755 t/clean.sh
delete mode 100755 t/dejagnu.sh
delete mode 100755 t/instexec.sh
copy t/{python7.sh => lisp-flags.sh} (69%)
copy t/{lisp-pr11806.sh => lisp-loadpath.sh} (61%)
create mode 100755 t/lisp-subdir-mix.sh
create mode 100755 t/lisp-subdir.sh
create mode 100755 t/lisp-subdir2.sh
delete mode 100755 t/txinfo-rules-once.sh
diff --git a/.gitignore b/.gitignore
index 8fee6b7..6aab896 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/lib/am-ng
/ChangeLog
/aclocal.m4
/configure
diff --git a/Makefile.am b/Makefile.am
index eab05c3..f85663c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -122,7 +122,6 @@ dist_script_DATA = \
lib/install-sh \
lib/mdate-sh \
lib/missing \
- lib/elisp-comp \
lib/ylwrap \
lib/depcomp \
lib/compile \
@@ -202,7 +201,6 @@ dist_am_DATA = \
lib/am/distdir.am \
lib/am/footer.am \
lib/am/header.am \
- lib/am/inst-vars.am \
lib/am/java.am \
lib/am/lang-compile.am \
lib/am/lex.am \
@@ -568,7 +566,8 @@ amhello_configury = \
depcomp \
install-sh \
missing \
- src/Makefile.in
+ src/Makefile.in \
+ am-ng
dist_noinst_DATA += $(amhello_sources)
dist_doc_DATA = $(srcdir)/doc/amhello-1.0.tar.gz
diff --git a/NEWS b/NEWS
index f308752..59b86ea 100644
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,30 @@ New in 1.13:
- All the "old alias" macros in 'm4/obsolete.m4' have been removed.
+* Elisp byte-compilation:
+
+ - The byte compilation of '.el' files into '.elc' files is now done
+ with a suffix rule. This has simplified the compilation process, and
+ more importantly made it less brittle. The downside is that emacs is
+ now invoked once for each '.el' files, which cause some noticeable
+ slowdowns. These should however be mitigated on multicore machines
+ (which are becoming the norm today) if concurrent make ("make -j")
+ is used.
+
+ - Elisp files placed in a subdirectory are now byte-compiled to '.elc'
+ files in the same subdirectory; for example, byte-compiling of file
+ 'sub/foo.el' file will result in 'sub/foo.elc' rather than in
+ 'foo.elc'. This behaviour is backward-incompatible with older
+ Automake versions, but it is more natural and more sane. See also
+ automake bug#7441.
+
+ - The Emacs invocation performing byte-compilation of '.el' files honors
+ the $(AM_ELCFLAGS) and $(ELCFLAGS) variables; as typical, the former
+ one is developer-reserved and the latter one user-reserved.
+
+ - The 'elisp-comp' script, once provided by Automake, has been rendered
+ obsoleted by the just-described changes, and thus removed.
+
* Changes to Automake-generated testsuite harnesses:
- The parallel testsuite harness (previously only enabled by the
@@ -158,6 +182,9 @@ New in 1.12.3:
- Some testsuite weaknesses and spurious failures have been fixed.
+ - There is initial support for automatic dependency tracking with the
+ Portland Group C/C++ compilers, thanks to the new new depmode 'pgcc'.
+
Bugs fixed in 1.12.3:
* Long-standing bugs:
diff --git a/automake.in b/automake.in
index 596b529..f7bfea3 100644
--- a/automake.in
+++ b/automake.in
@@ -226,7 +226,6 @@ my @common_files = (
config.rpath
config.sub
depcomp
- elisp-comp
install-sh
libversion.in
mdate-sh
@@ -4051,8 +4050,6 @@ sub handle_emacs_lisp
require_variables ($elfiles[0][0], "Emacs Lisp sources seen", TRUE,
'EMACS', 'lispdir');
- require_conf_file ($elfiles[0][0], FOREIGN, 'elisp-comp');
- define_variable ('elisp_comp', INTERNAL, '$(am.conf.aux-dir)/elisp-comp');
}
# Handle Python
@@ -5776,16 +5773,23 @@ sub preprocess_file ($%)
sub verbatim ($)
{
my $name = shift;
- my $text .= slurp_makefile_fragment ("$libdir/am/$name.mk");
+ my $dir = "$config_aux_dir/am-ng";
+ my $file = "$dir/$name.mk";
+ my $text = slurp_makefile_fragment ("$libdir/am/$name.mk");
+ mkdir ($dir, 0755) if ! -d $dir;
+ my $fh = new Automake::XFile "> $file";
+ verb "creating $file";
+ print $fh $text;
+ my $out = "include address@hidden@/$file\n";
if (defined wantarray)
{
# Scalar or list context.
- return $text;
+ return $out;
}
else
{
# Void context
- $output_verbatim .= $text;
+ $output_verbatim .= $out;
return;
}
}
diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi
index c84e764..42289ed 100644
--- a/doc/automake-ng.texi
+++ b/doc/automake-ng.texi
@@ -2293,9 +2293,6 @@ generate not only the desired output but also dependency
information
that is then used by the automatic dependency tracking feature
(@pxref{Dependencies}).
address@hidden elisp-comp
-This program is used to byte-compile Emacs Lisp code.
-
@item install-sh
This is a replacement for the @command{install} program that works on
platforms where @command{install} is unavailable or unusable.
@@ -2926,7 +2923,6 @@ Automake will look for various helper scripts, such as
@file{config.guess},
@file{config.sub},
@file{depcomp},
address@hidden,
@file{compile},
@file{install-sh},
@file{ltmain.sh},
@@ -7433,7 +7429,10 @@ Lisp sources are not distributed by default. You can
prefix the
distributed.
Automake will byte-compile all Emacs Lisp source files using the Emacs
-found by @code{AM_PATH_LISPDIR}, if any was found.
+found by @code{AM_PATH_LISPDIR}, if any was found. When performing such
+byte-compilation, the flags specified in the (developer-reserved)
address@hidden and (user-reserved) @code{ELCFLAGS} make variables
+will be passed to the Emacs invocation.
Byte-compiled Emacs Lisp files are not portable among all versions of
Emacs, so it makes sense to turn this off if you expect sites to have
diff --git a/lib/am/data.am b/lib/am/data.am
index 379bc15..5941245 100644
--- a/lib/am/data.am
+++ b/lib/am/data.am
@@ -14,10 +14,6 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-if %?INSTALL%
-include inst-vars.am
-endif %?INSTALL%
-
## ------------ ##
## Installing. ##
## ------------ ##
diff --git a/lib/am/distdir.am b/lib/am/distdir.am
index 310b338..efe576c 100644
--- a/lib/am/distdir.am
+++ b/lib/am/distdir.am
@@ -16,10 +16,14 @@
am.dist.common-files += %DIST-COMMON%
+## Makefile fragments used internally by automake-generated Makefiles.
+am.dist.mk-files = $(wildcard $(am.conf.aux-dir)/am-ng/*)
+
## Use 'sort', not 'am.util.uniq', for performance reasons. Luckily, we
## don't care in which order the distributed files are.
am.dist.all-files = $(call am.memoize,am.dist.all-files,$(strip $(sort \
- $(am.dist.common-files) $(am.dist.sources) $(TEXINFOS) $(EXTRA_DIST))))
+ $(am.dist.common-files) $(am.dist.sources) $(am.dist.mk-files) \
+ $(TEXINFOS) $(EXTRA_DIST))))
## Try to avoid repeated slashes in the entries, to make the filtering
## in the 'am.dist.files-tmp2' definition below more reliable.
diff --git a/lib/am/header-vars.mk b/lib/am/header-vars.mk
index 1cfed95..b4306cd 100644
--- a/lib/am/header-vars.mk
+++ b/lib/am/header-vars.mk
@@ -355,3 +355,56 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+
+# Strip all directories.
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+
+# Number of files to install concurrently.
+am__install_max = 40
+# Take a $list of "nobase" files, strip $(srcdir) from them.
+# Split apart in setup variable and an action that can be used
+# in backticks or in a pipe.
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+# Take a "$list" of nobase files, collect them, indexed by their
+# srcdir-stripped dirnames. For up to am__install_max files, output
+# a line containing the dirname and the files, space-separated.
+# The arbitrary limit helps avoid the quadratic scaling exhibited by
+# string concatenation in most shells, and should avoid line length
+# limitations, while still offering only negligible performance impact
+# through spawning more install commands than absolutely needed.
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+# Collect up to 40 files per line from stdin.
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+
+# A shell code fragment to uninstall files from a given directory.
+# It expects the $dir and $files shell variables to be defined respectively
+# to the directory where the files to be removed are, and to the list of
+# such files.
+# Some rm implementations complain if 'rm -f' is used without arguments,
+# so the fist "test -z" check (FIXME: this is probably obsolete; see
+# automake bug#10828).
+# At least Solaris /bin/sh still lacks 'test -e', so we use the multiple
+# "test ! -[fdr]" below instead (FIXME: this should become obsolete when
+# we can assume the $SHELL set by Autoconf-generated configure scripts is
+# a truly POSIX shell; see:
+# <http://lists.gnu.org/archive/html/bug-autoconf/2012-06/msg00009.html>).
+# We expect $dir to be either non-existent or a directory, so the
+# failure we'll experience if it is a regular file is indeed desired
+# and welcome (better to fail loudly than silently).
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ cd "$$dir" && rm -f $$files; }; \
+ }
diff --git a/lib/am/inst-vars.am b/lib/am/inst-vars.am
deleted file mode 100644
index f1b319b..0000000
--- a/lib/am/inst-vars.am
+++ /dev/null
@@ -1,73 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 2004-2012 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-if %?FIRST%
-
-## These variables help stripping any $(VPATH) that some
-## Make implementations prepend before VPATH-found files.
-## The issue is discussed at length in distdir.am.
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-## Strip all directories.
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-## Number of files to install concurrently.
-am__install_max = 40
-## Take a $list of nobase files, strip $(srcdir) from them.
-## Split apart in setup variable and an action that can be used
-## in backticks or in a pipe.
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-## Take a $list of nobase files, collect them, indexed by their
-## srcdir-stripped dirnames. For up to am__install_max files, output
-## a line containing the dirname and the files, space-separated.
-## The arbitrary limit helps avoid the quadratic scaling exhibited by
-## string concatenation in most shells, and should avoid line length
-## limitations, while still offering only negligible performance impact
-## through spawning more install commands than absolutely needed.
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-## Collect up to 40 files per line from stdin.
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-
-## A shell code fragment to uninstall files from a given directory.
-## It expects the $dir and $files shell variables to be defined respectively
-## to the directory where the files to be removed are, and to the list of
-## such files.
-am__uninstall_files_from_dir = { \
-## Some rm implementations complain if 'rm -f' is used without arguments.
- test -z "$$files" \
-## At least Solaris /bin/sh still lacks 'test -e', so we use the multiple
-## tests below instead. We expect $dir to be either non-existent or a
-## directory, so the failure we'll experience if it is a regular file
-## is indeed desired and welcome (better to fail loudly thasn silently).
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
- }
-
-endif %?FIRST%
diff --git a/lib/am/libs.am b/lib/am/libs.am
index 10200ef..ece5212 100644
--- a/lib/am/libs.am
+++ b/lib/am/libs.am
@@ -14,10 +14,6 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-if %?INSTALL%
-include inst-vars.am
-endif %?INSTALL%
-
## ------------ ##
## Installing. ##
## ------------ ##
diff --git a/lib/am/lisp.am b/lib/am/lisp.am
index cf9b8cf..c6fb923 100644
--- a/lib/am/lisp.am
+++ b/lib/am/lisp.am
@@ -14,68 +14,32 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-if %?INSTALL%
-include inst-vars.am
-endif %?INSTALL%
-
## ---------- ##
## Building. ##
## ---------- ##
-elc-stamp: $(LISP)
- @echo 'WARNING: Warnings can be ignored. :-)'
- @rm -f elc-temp && touch elc-temp
- if test "$(EMACS)" != no; then \
-## Make sure "$@" isn't empty initially.
- set x; \
-## Populate "$@" with elisp files (found in the current directory
-## or in $srcdir).
- list='$(LISP)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- set x "$$@" "$$d$$p"; shift; \
- done; \
-## Finally call elisp-comp for all files.
- shift; \
- abs_srcdir="$(abs_srcdir)" EMACS="$(EMACS)" $(SHELL) \
- $(elisp_comp) "$$@" || exit 1; \
- else : ; fi
- @mv -f elc-temp $@
-
-## Do not use $(ELCFILES) as target, because it may have been emptied
-## by the user (to disable byte-compilation), and POSIX does not allow
-## an empty target.
-$(am__ELCFILES): elc-stamp
-## Recover from the removal of address@hidden
-##
-## Do not call "make elc-stamp" if emacs is not available, because it would
-## be useless.
-##
-## If "make -n" is called, do not execute any command in the recipe that
-## changes the tree; however, invoke the recursive make for debuggability.
- @if $(am.make.dry-run); then dry=:; else dry=; fi; \
- if test "$(EMACS)" != no && test ! -f $@; then \
-## If "make -j" is used and more than one file has been erased, several
-## processes can execute this block. We have to make sure that only
-## the first one will run "$(MAKE) elc-stamp", and the other ones will
-## wait.
-##
-## There is a race here if only one child of make receive a signal.
-## In that case the build may fail. We remove elc-stamp when we receive
-## a signal so we are sure the build will succeed the next time.
- $$dry trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \
- if $$dry mkdir elc-lock 2>/dev/null; then \
-## This code is being executed by the first process.
- $$dry rm -f elc-stamp; \
- $(MAKE) elc-stamp; \
- $$dry rmdir elc-lock; \
- else \
-## This code is being executed by the follower processes.
-## Wait until the first process is done.
- while test -d elc-lock && test -z "$$dry"; do sleep 1; done; \
-## Succeed if and only if the first process succeeded.
- $$dry test -f elc-stamp; exit $$?; \
- fi; \
- else : ; fi
+if %?FIRST%
+am.elisp.includes = -L $1 $(if $(filter-out .,$(srcdir)), -L $(srcdir)/$1)
+endif
+
+%.elc: %.el
+## We add $(builddir) and $(srcdir) to load-path, so that any '.el' files
+## that $< depends upon can be found (including generated ones).
+## We prefer files from the build directory to those from the source
+## directory, in true VPATH spirit.
+## The destination file is normally determined by appending "c" to the
+## input (which would erronously put it in $(srcdir) in VPATH builds),
+## so we override that, too.
+ if test "$(EMACS)" != "no"; then \
+## Emacs byte-compilation won't create this automatically, sadly.
+ $(call am.cmd.ensure-dir-exists,$(@D)); \
+ $(EMACS) --batch \
+ $(AM_ELCFLAGS) $(ELCFLAGS) \
+ $(if $(filter-out .,$(@D)),$(call am.elisp.includes,$(@D))) \
+ $(call am.elisp.includes,.) \
+ --eval "(defun byte-compile-dest-file (f) \"address@hidden")" \
+ --eval "(unless (byte-compile-file \"$<\") (kill-emacs 1))"; \
+ else :; fi
## ------------ ##
@@ -95,7 +59,6 @@ install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
@$(NORMAL_INSTALL)
## Do not install anything if EMACS was not found.
@if test "$(EMACS)" != no && test -n "$(%NDIR%dir)"; then \
-?!BASE? $(am__vpath_adj_setup) \
## Funny invocation because Makefile variable can be empty, leading to
## a syntax error in sh.
list='$(%DIR%_LISP)'; \
@@ -107,7 +70,7 @@ install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
## A lisp file can be in the source directory or the build directory.
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
?BASE? $(am__strip_dir) \
-?!BASE? $(am__vpath_adj) \
+?!BASE? f=$$p; \
echo " $(%DIR%LISP_INSTALL) '$$d$$p' '$(DESTDIR)$(%NDIR%dir)/$$f'";
\
$(%DIR%LISP_INSTALL) "$$d$$p" "$(DESTDIR)$(%NDIR%dir)/$$f" || exit
$$?; \
## Only install .elc file if it exists.
@@ -142,7 +105,7 @@ endif %?INSTALL%
## Cleaning. ##
## ---------- ##
-am.clean.normal.f += elc-stamp $(ELCFILES)
+am.clean.normal.f += $(ELCFILES)
## -------------- ##
## Distributing. ##
diff --git a/lib/am/ltlib.am b/lib/am/ltlib.am
index 794c4c2..d80b66f 100644
--- a/lib/am/ltlib.am
+++ b/lib/am/ltlib.am
@@ -14,10 +14,6 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-if %?INSTALL%
-include inst-vars.am
-endif %?INSTALL%
-
## ------------ ##
## Installing. ##
## ------------ ##
diff --git a/lib/am/mans.am b/lib/am/mans.am
index bfc71dc..dc08f27 100644
--- a/lib/am/mans.am
+++ b/lib/am/mans.am
@@ -14,7 +14,6 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-include inst-vars.am
man%SECTION%dir = $(mandir)/man%SECTION%
## ------------ ##
diff --git a/lib/am/python.am b/lib/am/python.am
index 1ec6fbc..2ac22cc 100644
--- a/lib/am/python.am
+++ b/lib/am/python.am
@@ -14,10 +14,6 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-if %?INSTALL%
-include inst-vars.am
-endif %?INSTALL%
-
?FIRST?am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
## ------------ ##
diff --git a/lib/am/scripts.am b/lib/am/scripts.am
index f15edcb..08daeda 100644
--- a/lib/am/scripts.am
+++ b/lib/am/scripts.am
@@ -14,10 +14,6 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-if %?INSTALL%
-include inst-vars.am
-endif %?INSTALL%
-
## ------------ ##
## Installing. ##
## ------------ ##
diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am
index 1fbd505..71c497a 100644
--- a/lib/am/texinfos.am
+++ b/lib/am/texinfos.am
@@ -115,8 +115,6 @@ endif !%?SUBDIRS%
if %?LOCAL-TEXIS%
-include inst-vars.am
-
# In GNU make, '$^' used in a recipe contains every dependency for the
# target, even those not declared when the recipe is read; for example,
# on:
diff --git a/lib/depcomp b/lib/depcomp
index 9d1b577..cb15565 100755
--- a/lib/depcomp
+++ b/lib/depcomp
@@ -1,7 +1,7 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2012-07-12.20; # UTC
# Copyright (C) 1999-2012 Free Software Foundation, Inc.
@@ -333,6 +333,79 @@ icc)
rm -f "$tmpdepfile"
;;
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using '\' :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ base=`echo "$source" | sed -e 's|^.*/||' -e 's/\.[-_a-zA-Z0-9]*$//'`
+ tmpdepfile="$base.d"
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir="$base.d-lock"
+ trap "echo '$0: caught signal, cleaning up...' >&2; rm -rf $lockdir" 1 2 13
15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0 ; do
+ # mkdir is a portable test-and-set.
+ if mkdir $lockdir 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rm -rf $lockdir
+ break
+ else
+ ## the lock is being held by a different process,
+ ## wait until the winning process is done or we timeout
+ while test -d $lockdir && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
+
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
diff --git a/lib/elisp-comp b/lib/elisp-comp
deleted file mode 100755
index 6d5b7b4..0000000
--- a/lib/elisp-comp
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-# Copyright (C) 1995-2012 Free Software Foundation, Inc.
-
-scriptversion=2012-07-05.17; # UTC
-
-# Franc,ois Pinard <address@hidden>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake-NG, please report
-# bugs to <address@hidden> or send patches to
-# <address@hidden>.
-
-case $1 in
- '')
- echo "$0: No files. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: elisp-comp [--help] [--version] FILES...
-
-This script byte-compiles all '.el' files listed as FILES using GNU
-Emacs, and put the resulting '.elc' files into the current directory,
-so disregarding the original directories used in '.el' arguments.
-
-This script manages in such a way that all Emacs LISP files to
-be compiled are made visible between themselves, in the event
-they require or load-library one another.
-
-Report bugs to <address@hidden>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "elisp-comp $scriptversion"
- exit $?
- ;;
-esac
-
-if test -z "$EMACS" || test "$EMACS" = "t"; then
- # Value of "t" means we are running in a shell under Emacs.
- # Just assume Emacs is called "emacs".
- EMACS=emacs
-fi
-
-tempdir=elc.$$
-
-# Cleanup the temporary directory on exit.
-trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0
-do_exit='(exit $ret); exit $ret'
-trap "ret=129; $do_exit" 1
-trap "ret=130; $do_exit" 2
-trap "ret=141; $do_exit" 13
-trap "ret=143; $do_exit" 15
-
-mkdir $tempdir
-cp "$@" $tempdir
-
-(
- cd $tempdir
- echo "(setq load-path (cons nil (cons \"$abs_srcdir\" load-path)))" > script
- $EMACS -batch -q -l script -f batch-byte-compile *.el || exit $?
- mv *.elc ..
-) || exit $?
-
-(exit 0); exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/runtest.in b/runtest.in
index 3d01e68..24bbdde 100644
--- a/runtest.in
+++ b/runtest.in
@@ -112,10 +112,10 @@ esac
case $tst in
*.sh)
- exec $AM_TEST_RUNNER_SHELL $shell_opts "$tst" "$@" ;;
+ exec $AM_TEST_RUNNER_SHELL $shell_opts "$tst" ${1+"$@"} ;;
*.tap)
exec "$AM_PROVE_CMD" $AM_PROVEFLAGS -e \
- "$AM_TEST_RUNNER_SHELL $shell_opts" "$tst" "$@" ;;
+ "$AM_TEST_RUNNER_SHELL $shell_opts" "$tst" ${1+"$@"} ;;
*)
error "test '$tst' has an unrecognized extension" ;;
esac
diff --git a/t/add-missing.tap b/t/add-missing.tap
index c47382b..ef80f1a 100755
--- a/t/add-missing.tap
+++ b/t/add-missing.tap
@@ -175,8 +175,8 @@ check_ ()
done
# No files should be automatically installed by automake if it
# is not told to.
- if ls "$build_aux" | grep .; then r='not ok'; else r=ok; fi
- result_ "$r" "$pfx no extra files installed"
+ command_ok_ "$pfx no extra files installed" \
+ eval '! ls "$build_aux" | grep -v "^am-ng$" | grep .'
AUTOMAKE_run -d "$pfx automake run successfully" -- $opts
ls -l . $build_aux
# The expected files should get installed correctly (e.g., no
@@ -196,7 +196,7 @@ check_ ()
# require 'missing' and 'install-sh', so account for them.
all_files="install-sh missing $files"
for f in $all_files; do echo $f; done | sort | uniq > files.exp
- (cd $build_aux && ls) | sort > files.got
+ (cd $build_aux && ls) | grep -v '^am-ng$' | sort > files.got
cat files.exp
cat files.got
command_ok_ \
@@ -343,17 +343,6 @@ rm -f foo.texi
check_ <<'END'
== Name ==
-elisp-comp
-== Files ==
-elisp-comp
-== configure.ac ==
-AM_PATH_LISPDIR
-== Makefile.am ==
-lisp_LISP = foo.el
-END
-
-check_ <<'END'
-== Name ==
py-compile
== Files ==
py-compile
diff --git a/t/all2.sh b/t/all2.sh
index 879cdfc..2397d1d 100755
--- a/t/all2.sh
+++ b/t/all2.sh
@@ -26,7 +26,8 @@ for target in $targets; do
echo "${target}-local:" > Makefile.am
$AUTOMAKE
grep "${target}-local ${target}-local" Makefile.in && exit 1
- grep "${target}-am:.*${target}-local" Makefile.in
+ grep "${target}-am:.*${target}-local" Makefile.in \
+ || grep "${target}-am:.*${target}-local" am-ng/*.mk
done
:
diff --git a/t/ax/am-test-lib.sh b/t/ax/am-test-lib.sh
index a775db1..b9a8c23 100644
--- a/t/ax/am-test-lib.sh
+++ b/t/ax/am-test-lib.sh
@@ -597,7 +597,7 @@ process_requirements ()
for am_tool in $*; do
require_tool $am_tool
done
- unset am_tool
+ am_tool=; unset am_tool
# We might need extra macros, e.g., from Libtool or Gettext.
case " $required " in
*\ libtool*) . ./t/libtool-macros.dir/get.sh;;
diff --git a/t/check2.sh b/t/check2.sh
index 9a1124a..95f479a 100755
--- a/t/check2.sh
+++ b/t/check2.sh
@@ -56,9 +56,6 @@ cat stdout
grep '^PASS: subrun\.sh *$' stdout
grep 'PASS.*echo\.sh' stdout && exit 1
-$EGREP '^check:.*check-recursive' Makefile.in
-$EGREP '^check:.*check-am' dir/Makefile.in
-
# Make sure subrun.sh is still on its line as above. This means Automake
# hasn't rewritten the TESTS line unnecessarily.
grep '^ subrun\.sh$' Makefile.in
diff --git a/t/clean.sh b/t/clean.sh
deleted file mode 100755
index 80f56df..0000000
--- a/t/clean.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1998-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# Test to make sure a clean target depends on previous one.
-
-. ./defs || exit 1
-
-: > Makefile.am
-
-$ACLOCAL
-$AUTOMAKE
-
-grep '^clean-am:.*mostlyclean-am' Makefile.in
diff --git a/t/conflnk2.sh b/t/conflnk2.sh
index fa0b009..e9d00e0 100755
--- a/t/conflnk2.sh
+++ b/t/conflnk2.sh
@@ -19,18 +19,7 @@
. ./defs || exit 1
-cat > Makefile.am << 'END'
-SUBDIRS = sdir
-.PHONY: test
-test: distdir
- test -f $(distdir)/src
- test -f $(distdir)/src2
- test -f $(distdir)/sdir/src3
- test -f $(distdir)/sdir-no-make/src4
- test 2 -gt `find $(distdir)/sdir -type d | wc -l`
- test 2 -gt `find $(distdir)/sdir-no-make -type d | wc -l`
- test 4 -gt `find $(distdir) -type d | wc -l`
-END
+echo SUBDIRS = sdir > Makefile.am
: > src
: > src2
@@ -52,6 +41,24 @@ $ACLOCAL
$AUTOMAKE
$AUTOCONF
./configure
-$MAKE test
+$MAKE distdir
+
+find $distdir # For debugging.
+
+rm -rf $distdir/am-ng
+
+test -f $distdir/src
+test -f $distdir/src2
+test -f $distdir/sdir/src3
+test -f $distdir/sdir-no-make/src4
+
+count_distributed_dirs ()
+{
+ find $distdir${1+"/$1"} -type d | wc -l
+}
+
+test 2 -gt $(count_distributed_dirs 'sdir')
+test 2 -gt $(count_distributed_dirs 'sdir-no-make')
+test 4 -gt $(count_distributed_dirs)
:
diff --git a/t/dejagnu.sh b/t/dejagnu.sh
deleted file mode 100755
index a3bec52..0000000
--- a/t/dejagnu.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# Superficial test to check that dejagnu tests and automake-style
-# tests can coexist. See also related deeper test 'check12.test'.
-
-. ./defs || exit 1
-
-cat > Makefile.am << 'END'
-AUTOMAKE_OPTIONS = dejagnu
-TESTS = frob.test
-END
-
-test x"$am_serial_tests" = x"yes" || : > test-driver
-
-$ACLOCAL
-$AUTOMAKE
-
-grep '^check-TESTS' Makefile.in
-grep '^check-DEJAGNU' Makefile.in
-
-:
diff --git a/t/dist-auxdir-many-subdirs.sh b/t/dist-auxdir-many-subdirs.sh
index d509836..4937a14 100755
--- a/t/dist-auxdir-many-subdirs.sh
+++ b/t/dist-auxdir-many-subdirs.sh
@@ -56,8 +56,6 @@ END
foo_SOURCES = foo.c
## For py-compile.
python_PYTHON = bar.py
- ## For elisp-comp.
- lisp_LISP = baz.el
## For test-driver.
TESTS =
END
@@ -67,7 +65,6 @@ END
missing
depcomp
py-compile
- elisp-comp
test-driver
'
diff --git a/t/dist-formats.tap b/t/dist-formats.tap
index 2746fae..880fcae 100755
--- a/t/dist-formats.tap
+++ b/t/dist-formats.tap
@@ -83,7 +83,13 @@ have_compressor ()
# compress stdin. This would cause binary output in the test
# logs, with potential breakage of our testsuite harness.
bzip2) o=--help;;
- *) o=--version;;
+ # OpenSolaris zip do not support the '--version' option, but
+ # accepts the '-v' one with a similar meaning (if no further
+ # arguments are given).
+ zip) o=-v;;
+ # Assume the other compressors we care about support the
+ # '--version' option.
+ *) o=--version;;
esac
# Redirect to stderr to avoid polluting the output, in case this
# function is used in a command substitution (as it is, below).
diff --git a/t/distcheck-override-infodir.sh b/t/distcheck-override-infodir.sh
index 8ebcd95..c8d87f0 100755
--- a/t/distcheck-override-infodir.sh
+++ b/t/distcheck-override-infodir.sh
@@ -42,6 +42,22 @@ cat > main.texi << 'END'
\input texinfo
@setfilename main.info
@settitle main
+
address@hidden Explicit calls to @dircategory and @direntry required to ensure
that
address@hidden a 'dir' file will be created also by older versions of
'install-info'
address@hidden (e.g., the one coming with Texinfo 4.8).
+
address@hidden Software development
address@hidden
+* Automake: (automake). Making GNU standards-compliant Makefiles
address@hidden direntry
+
address@hidden Individual utilities
address@hidden
+* aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4
+* automake-invocation: (automake)automake Invocation. Generating Makefile.in
address@hidden direntry
+
@node Top
Hello walls.
@bye
diff --git a/t/distdir.sh b/t/distdir.sh
index 9d0d6ee..8edf6f0 100755
--- a/t/distdir.sh
+++ b/t/distdir.sh
@@ -14,11 +14,9 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Test to make sure subdirs in EXTRA_DIST work. Also tests to make
-# sure *srcdir is properly handled. Note that using './', as in
-# EXTRA_DIST = ./joe
-# does not work portably: it fails with HP-UX and Tru64 make.
-# Also test the situation when the lsit of distributed files contains
+# Test to make sure subdirs in EXTRA_DIST work.
+# Also tests to make sure *srcdir is properly handled.
+# Also test the situation when the list of distributed files contains
# a directory and a file in it, and repeated directories.
. ./defs || exit 1
diff --git a/t/installdir.sh b/t/installdir.sh
index 1cef2c1..5f74b32 100755
--- a/t/installdir.sh
+++ b/t/installdir.sh
@@ -36,8 +36,6 @@ END
$ACLOCAL
$AUTOMAKE
-test $(grep -c installdirs-local Makefile.in) -eq 4
-
cwd=$(pwd) || fatal_ "getting current working directory"
$AUTOCONF
diff --git a/t/instexec.sh b/t/instexec.sh
deleted file mode 100755
index f394d84..0000000
--- a/t/instexec.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# Test for this bug: when a Makefile.am builds nothing, no
-# install-exec target is generated.
-
-. ./defs || exit 1
-
-: > Makefile.am
-
-$ACLOCAL
-$AUTOMAKE
-
-grep '^install-exec:' Makefile.in
diff --git a/t/instspc.tap b/t/instspc.tap
index b0b4e0d..b91c696 100755
--- a/t/instspc.tap
+++ b/t/instspc.tap
@@ -285,7 +285,13 @@ for test_name in $test_names_list; do
;;
dest)
build=build-$test_name
- dest=$ocwd/$test_string
+ # Also use $test_name in the definition of $dest, to avoid
+ # interferences among different tests in case $test_string
+ # is strangely munged (which is not unexpected, considering
+ # how tricky its characters are). With some shells, this
+ # has already happened (at least on OpenIndiana 11 and on
+ # Solaris 10).
+ dest=$ocwd/dest-$test_name/$test_string
mkdir "$build" || fatal_ "cannot create '$build'"
;;
*)
diff --git a/t/python7.sh b/t/lisp-flags.sh
similarity index 69%
copy from t/python7.sh
copy to t/lisp-flags.sh
index b3b1421..1d7d8f3 100755
--- a/t/python7.sh
+++ b/t/lisp-flags.sh
@@ -14,25 +14,28 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Test detection of missing Python.
-# Same as python6.test, but requiring a version.
+# Elisp byte-compilation honours AM_ELCFLAFS and ELCFLAGS.
-# Python is not required for this test.
. ./defs || exit 1
-cat >>configure.ac <<\EOF
-# Hopefully the Python team will never release such a version.
-AM_PATH_PYTHON([9999.9], [], [echo "$PYTHON" > py])
-AC_OUTPUT
+cat > Makefile.am << 'EOF'
+lisp_LISP = foo.el
+AM_ELCFLAGS = __am_elcflags__
EOF
-: > Makefile.am
+cat >> configure.ac << 'EOF'
+AM_PATH_LISPDIR
+AC_OUTPUT
+EOF
$ACLOCAL
$AUTOCONF
$AUTOMAKE --add-missing
-./configure
-test x"$(cat py)" = x:
+./configure EMACS='echo >$@' --with-lispdir="$(pwd)/unused"
+
+: > foo.el
+ELCFLAGS='__usr_elcflags__' $MAKE -e
+grep '__am_elcflags__.*__usr_elcflags__' foo.elc
:
diff --git a/t/lisp-pr11806.sh b/t/lisp-loadpath.sh
similarity index 61%
copy from t/lisp-pr11806.sh
copy to t/lisp-loadpath.sh
index c372ea5..50748ce 100755
--- a/t/lisp-pr11806.sh
+++ b/t/lisp-loadpath.sh
@@ -14,8 +14,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Compiling .el files that requires each other in a VPATH build.
-# See automake bug#11806.
+# Emacs lisp files in both $(srcdir) and $(builddir) are found if
+# required by other files. Related to automake bug#11806.
required=emacs
. ./defs || exit 1
@@ -26,11 +26,13 @@ AC_OUTPUT
END
cat > Makefile.am << 'END'
+noinst_LISP = requirer.el
lisp_LISP = foo.el
lisp_DATA = bar.el
END
-echo "(require 'bar)" > foo.el
+echo "(require 'foo) (require 'bar)" >> requirer.el
+echo "(provide 'foo)" > foo.el
echo "(provide 'bar)" > bar.el
$ACLOCAL
@@ -41,11 +43,25 @@ mkdir build
cd build
../configure
$MAKE
+test -f requirer.elc
test -f foo.elc
-cd ..
+test ! -e bar.elc
-./configure
+$MAKE clean
+test ! -e requirer.elc
+test ! -e foo.elc
+
+# In the spirit of VPATH, stuff in the builddir is preferred to
+# stuff in the srcdir.
+echo "(provide" > ../foo.el # Break it.
+echo "defun)" > ../bar.el # Likewise.
+$MAKE && Exit 1
+$sleep
+echo "(provide 'foo)" > foo.el
+echo "(provide 'bar)" > bar.el
$MAKE
+test -f requirer.elc
test -f foo.elc
+test ! -e bar.elc
:
diff --git a/t/lisp-subdir-mix.sh b/t/lisp-subdir-mix.sh
new file mode 100755
index 0000000..20073ec
--- /dev/null
+++ b/t/lisp-subdir-mix.sh
@@ -0,0 +1,96 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Check compiling elisp files in different subdirectories, where a
+# file in a subdirectory might require a file in another one.
+# This doesn't work out of the box, but can be made to work with a
+# judicious use of $(AM_ELCFLAGS).
+
+required=emacs
+. ./defs || exit 1
+
+cat >> configure.ac << 'END'
+AM_PATH_LISPDIR
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+dist_lisp_LISP = \
+ am-here.el \
+ sub1/am-one.el \
+ sub2/am-two.el \
+ sub3/subsub/am-three.el
+
+AM_ELCFLAGS = \
+ -L $(srcdir)/sub1 \
+ -L $(srcdir)/sub2 \
+ -L $(srcdir)/sub3/subsub
+
+elc-test:
+ test -f sub1/am-one.elc
+ test -f sub2/am-two.elc
+ test -f sub3/subsub/am-three.elc
+.PHONY: elc-test
+check-local: elc-test
+END
+
+mkdir sub1 sub2 sub3 sub3/subsub
+
+cat > am-here.el << 'END'
+(provide 'am-here)
+(require 'am-one)
+(require 'am-two)
+(require 'am-three)
+END
+
+cat > sub1/am-one.el << 'END'
+(require 'am-here)
+(provide 'am-one)
+(require 'am-two)
+(require 'am-three)
+END
+
+cat > sub2/am-two.el << 'END'
+(require 'am-here)
+(require 'am-one)
+(provide 'am-two)
+(require 'am-three)
+END
+
+cat > sub3/subsub/am-three.el << 'END'
+(require 'am-here)
+(require 'am-one)
+(require 'am-two)
+(provide 'am-three)
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure
+
+$MAKE
+$MAKE elc-test
+$MAKE clean
+for x in am-here sub1/am-one sub2/am-two sub3/subsub/am-three; do
+ test -f $x.el
+ test ! -e $x.elc
+done
+
+$MAKE distcheck
+
+:
diff --git a/t/lisp-subdir.sh b/t/lisp-subdir.sh
new file mode 100755
index 0000000..5c67c53
--- /dev/null
+++ b/t/lisp-subdir.sh
@@ -0,0 +1,80 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Emacs lisp files in subdirectories.
+
+required=emacs
+. ./defs || exit 1
+
+cat >> configure.ac << 'END'
+AM_PATH_LISPDIR
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+nobase_lisp_LISP = sub/am-one.el sub/am-two.el sub/am-three.el
+nobase_dist_lisp_LISP = sub/am-three.el
+dist_noinst_LISP = sub/am-four.el
+EXTRA_DIST = sub/am-one.el sub/am-two.el
+END
+
+mkdir sub
+echo "(require 'am-two) (provide 'am-one)" > sub/am-one.el
+echo "(require 'am-three) (provide 'am-two)" > sub/am-two.el
+echo "(provide 'am-three)" > sub/am-three.el
+echo "(require 'am-one) (require 'am-two)" > sub/am-four.el
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure --prefix="$(pwd)/inst" \
+ --with-lispdir="$(pwd)/inst/elisp" \
+
+$MAKE
+# No byte-compiled elisp files in the top-level directory.
+test "$(echo *.elc)" = '*.elc'
+test -f sub/am-one.elc
+test -f sub/am-two.elc
+test -f sub/am-three.elc
+test -f sub/am-four.elc
+$MAKE clean
+test ! -e sub/am-one.elc
+test ! -e sub/am-two.elc
+test ! -e sub/am-three.elc
+test ! -e sub/am-four.elc
+
+# Check installation.
+
+sort > exp << 'END'
+inst/elisp/sub/am-one.elc
+inst/elisp/sub/am-two.elc
+inst/elisp/sub/am-three.elc
+END
+
+$MAKE install
+find inst # For debugging.
+find inst -name '*.elc' > lst || { cat lst; exit 1; }
+sort lst > got
+
+cat exp
+cat got
+diff exp got
+
+# Also check VPATH builds and uninstall completeness.
+$MAKE distcheck
+
+:
diff --git a/t/lisp-subdir2.sh b/t/lisp-subdir2.sh
new file mode 100755
index 0000000..d7517ad
--- /dev/null
+++ b/t/lisp-subdir2.sh
@@ -0,0 +1,78 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Compiling elisp files in different subdirectories.
+
+required=emacs
+. ./defs || exit 1
+
+cat >> configure.ac << 'END'
+AM_PATH_LISPDIR
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+dist_lisp_LISP = am-one.el
+nodist_lisp_LISP = sub/am-two.el
+sub/am-two.el:
+ mkdir sub
+ echo "(provide 'am-two)" > $@
+DISTCLEANFILES = $(nodist_lisp_LISP)
+dist_noinst_LISP = x/y/z/am-three.el
+
+elc-test:
+ test -f am-one.elc
+ test -f sub/am-two.elc
+ test -f x/y/z/am-three.elc
+.PHONY: elc-test
+check-local: elc-test
+END
+
+mkdir x x/y x/y/z
+echo "(provide 'am-one)" > am-one.el
+# sub/am-two.el is generated at make runtime
+echo "(provide 'am-three)" > x/y/z/am-three.el
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure
+
+$MAKE
+$MAKE elc-test
+$MAKE clean
+test ! -e am-one.elc
+test ! -e sub/am-two.elc
+test ! -e x/y/z/am-three.elc
+test -f am-one.el
+test -f sub/am-two.el
+test -f x/y/z/am-three.el
+
+# Byte-compiling only a subset of the elisp files.
+$MAKE am-one.elc sub/am-two.elc
+test -f am-one.elc
+test -f sub/am-two.elc
+test ! -e x/y/z/am-three.elc
+rm -f am-one.elc sub/am-two.elc
+$MAKE x/y/z/am-three.elc
+test ! -e am-one.elc
+test ! -e sub/am-two.elc
+test -f x/y/z/am-three.elc
+
+$MAKE distcheck
+
+:
diff --git a/t/lisp3.sh b/t/lisp3.sh
index 9425d9c..a752151 100755
--- a/t/lisp3.sh
+++ b/t/lisp3.sh
@@ -47,7 +47,6 @@ $MAKE
test -f am-one.elc
test -f am-two.elc
test -f am-three.elc
-test -f elc-stamp
# Make sure we can recover from a deletion.
rm -f am-one.elc
@@ -79,15 +78,6 @@ test -f _inst/$dir/site-lisp/am-three.elc
$MAKE uninstall
find _inst | $EGREP '\.elc?$' && exit 1
-# Make sure we build all files when any of them change.
-# (We grep a message to make sure the compilation happens.)
-unique=0a3346e2af8a689b85002b53df09142a
-$sleep
-echo "(message \"$unique\")(provide 'am-three)" > am-three.el
-$MAKE 2>stderr || { cat stderr >&2; exit 1; }
-cat stderr >&2
-grep $unique stderr
-
# It should also work for VPATH-builds.
$MAKE distcheck
diff --git a/t/lisp4.sh b/t/lisp4.sh
index b8cb796..41dc873 100755
--- a/t/lisp4.sh
+++ b/t/lisp4.sh
@@ -32,7 +32,6 @@ test:
test ! -f am-one.elc
test ! -f am-two.elc
test ! -f am-three.elc
- test ! -f elc-stamp
install-test: install
test -f "$(lispdir)/am-one.el"
diff --git a/t/lisp5.sh b/t/lisp5.sh
index 4d0499c..c154e3c 100755
--- a/t/lisp5.sh
+++ b/t/lisp5.sh
@@ -31,7 +31,6 @@ test:
test ! -f am-one.elc
test ! -f am-two.elc
test ! -f am-three.elc
- test ! -f elc-stamp
install-test: install
test -f "$(lispdir)/am-one.el"
diff --git a/t/lisp6.sh b/t/lisp6.sh
index e877d5a..c84917c 100755
--- a/t/lisp6.sh
+++ b/t/lisp6.sh
@@ -57,7 +57,6 @@ $MAKE
test -f am-one.elc
test ! -e am-two.elc
test -f am-three.elc
-test -f elc-stamp
$MAKE install
test -f lisp/am-one.el
@@ -73,7 +72,6 @@ $MAKE distclean
test ! -e am-one.elc
test ! -e am-two.elc
test ! -e am-three.elc
-test ! -e elc-stamp
./configure --with-lispdir="$cwd/lisp" want_two=1
@@ -81,7 +79,6 @@ $MAKE
test -f am-one.elc
test -f am-two.elc
test -f am-three.elc
-test -f elc-stamp
# Let's mutilate the source tree, to check the recover rule.
rm -f am-*.elc
@@ -89,7 +86,6 @@ $MAKE
test -f am-one.elc
test -f am-two.elc
test -f am-three.elc
-test -f elc-stamp
$MAKE install
test -f lisp/am-one.el
@@ -105,6 +101,5 @@ $MAKE distclean
test ! -e am-one.elc
test ! -e am-two.elc
test ! -e am-three.elc
-test ! -e elc-stamp
:
diff --git a/t/lisp7.sh b/t/lisp7.sh
index 4553298..7efa27f 100755
--- a/t/lisp7.sh
+++ b/t/lisp7.sh
@@ -39,12 +39,10 @@ $AUTOMAKE --add-missing
$MAKE >stdout || { cat stdout; exit 1; }
cat stdout
-test 1 -eq $(grep -c 'Warnings can be ignored' stdout)
test ! -e am-one.elc
test ! -e am-two.elc
test ! -e am-three.elc
-test -f elc-stamp
$MAKE distcheck
diff --git a/t/lisp8.sh b/t/lisp8.sh
index c542cf7..cc8a315 100755
--- a/t/lisp8.sh
+++ b/t/lisp8.sh
@@ -42,12 +42,10 @@ $AUTOMAKE --add-missing
$MAKE -j >>stdout || { cat stdout; exit 1; }
cat stdout
-test 1 -eq $(grep -c 'Warnings can be ignored' stdout)
test -f am-one.elc
test -f am-two.elc
test -f am-three.elc
-test -f elc-stamp
rm -f am-*.elc
@@ -56,10 +54,8 @@ rm -f am-*.elc
$MAKE -j >>stdout || { cat stdout; exit 1; }
cat stdout
-test 1 -eq $(grep -c 'Warnings can be ignored' stdout)
test -f am-one.elc
test -f am-two.elc
test -f am-three.elc
-test -f elc-stamp
:
diff --git a/t/lispdry.sh b/t/lispdry.sh
index f7de071..765942d 100755
--- a/t/lispdry.sh
+++ b/t/lispdry.sh
@@ -42,9 +42,8 @@ $MAKE
test -f am-one.elc
test -f am-two.elc
test -f am-three.elc
-test -f elc-stamp
-rm -f am-*.elc elc-stamp
+rm -f am-*.elc
chmod a-w .
@@ -53,6 +52,5 @@ $MAKE -n
test ! -e am-one.elc
test ! -e am-two.elc
test ! -e am-three.elc
-test ! -e elc-stamp
:
diff --git a/t/noinst.sh b/t/noinst.sh
index ca4440f..de8d3d2 100755
--- a/t/noinst.sh
+++ b/t/noinst.sh
@@ -21,12 +21,18 @@
cat > Makefile.am << 'END'
all-local:
- exit 1
+ echo ok > all-has-run
END
+echo AC_OUTPUT >> configure.ac
+
$ACLOCAL
$AUTOMAKE
+$AUTOCONF
-grep '^install[-a-z]*:.* all' Makefile.in
+./configure --prefix=$(pwd)/oops
+$MAKE install
+test -f all-has-run
+test ! -e oops
:
diff --git a/t/phony.sh b/t/phony.sh
index b1f3b7e..14d6e24 100755
--- a/t/phony.sh
+++ b/t/phony.sh
@@ -26,6 +26,7 @@ EOF
$ACLOCAL
$AUTOMAKE
-test $($FGREP -c '.PHONY:' Makefile.in) -gt 3
+grep '^\.PHONY: foo$' Makefile.in
+grep '^\.PHONY: bar$' Makefile.in
:
diff --git a/t/primary-prefix-invalid-couples.tap
b/t/primary-prefix-invalid-couples.tap
index dadf38d..86d7665 100755
--- a/t/primary-prefix-invalid-couples.tap
+++ b/t/primary-prefix-invalid-couples.tap
@@ -29,7 +29,6 @@ oIFS=$IFS # Saved for later.
: > ar-lib
: > ltmain.sh
: > texinfo.tex
-: > elisp-comp
: > py-compile
: > config.guess
: > config.sub
diff --git a/t/primary-prefix-valid-couples.sh
b/t/primary-prefix-valid-couples.sh
index d7efb98..23f3094 100755
--- a/t/primary-prefix-valid-couples.sh
+++ b/t/primary-prefix-valid-couples.sh
@@ -41,7 +41,6 @@ END
echo '@setfilename foo.info' > foo.texi
: > texinfo.tex
: > py-compile
-: > elisp-comp
: > ar-lib
# Setup Makefile.am.
diff --git a/t/serial-tests.sh b/t/serial-tests.sh
index d90de29..8bf43aa 100755
--- a/t/serial-tests.sh
+++ b/t/serial-tests.sh
@@ -16,69 +16,19 @@
# Option 'serial-tests'.
-am_create_testdir=empty
. ./defs || exit 1
-hasnt_parallel_tests ()
-{
- $EGREP -i 'test_suite_log|test_(logs|bases)|\.log.*:' $1 && exit 1
- grep 'recheck.*:' $1 && exit 1
- grep '^check-TESTS: \$(am__cooked_tests)$' $1
-}
-
-has_parallel_tests ()
-{
- $EGREP '(^| )check-TESTS.*:' $1
- $EGREP '(^| )recheck.*:' $1
- $EGREP '^\$\(TEST_SUITE_LOG\):.* \$\(am\.test-suite\.test-logs\)( |$)' $1
- grep '%\.log %\.trs *:' $1
-}
-
-mkdir one two
-
-cat > one/configure.ac <<END
-AC_INIT([$me], [1.0])
-AM_INIT_AUTOMAKE([serial-tests])
-AC_CONFIG_FILES([Makefile])
-END
-
-echo 'TESTS = foo.test bar.test' > one/Makefile.am
-
-cat > two/configure.ac <<END
-AC_INIT([$me], [2.0])
-AC_CONFIG_AUX_DIR([config])
-AM_INIT_AUTOMAKE([parallel-tests])
-AC_CONFIG_FILES([aMakefile bMakefile])
-END
-
-cp one/Makefile.am two/aMakefile.am
-cat - one/Makefile.am > two/bMakefile.am <<END
+cat > Makefile.am << 'END'
AUTOMAKE_OPTIONS = serial-tests
+TESTS = foo.test bar.test
END
-cd one
-touch missing install-sh
$ACLOCAL
$AUTOMAKE
-grep TEST Makefile.in # For debugging.
-hasnt_parallel_tests Makefile.in
-test ! -e test-driver
-cd ..
-
-cd two
-mkdir config
-$ACLOCAL
-$AUTOMAKE --add-missing
-grep TEST [ab]Makefile.in # For debugging.
-has_parallel_tests aMakefile.in
-hasnt_parallel_tests bMakefile.in
-mv aMakefile.in aMakefile.sav
-mv bMakefile.in bMakefile.sav
+grep '^include .*/am-ng/serial-tests\.mk$' Makefile.in
+$FGREP 'parallel-tests.mk' Makefile.in && exit 1
+test -f am-ng/serial-tests.mk
+test ! -e am-ng/parallel-tests.mk
test ! -e test-driver
-test -f config/test-driver
-$AUTOMAKE
-diff aMakefile.sav aMakefile.in
-diff bMakefile.sav bMakefile.in
-cd ..
:
diff --git a/t/spell.sh b/t/spell.sh
index 0c339b6..58202af 100755
--- a/t/spell.sh
+++ b/t/spell.sh
@@ -41,7 +41,8 @@ $AUTOMAKE
$MAKE 2>stderr && { cat stderr >&2; exit 1; }
cat stderr >&2
-LC_ALL=C sed -e 's/^Makefile:[0-9][0-9]*: //' \
+LC_ALL=C sed -e 's|^Makefile:[0-9][0-9]*: ||' \
+ -e 's|.*\.mk:[0-9][0-9]*: ||' \
-e '/^\*\*\*.*Automake-NG/d' stderr > got
cat > exp << 'END'
diff --git a/t/spell2.sh b/t/spell2.sh
index 368080b..839e363 100755
--- a/t/spell2.sh
+++ b/t/spell2.sh
@@ -41,7 +41,8 @@ $AUTOMAKE
$MAKE 2>stderr && { cat stderr >&2; exit 1; }
cat stderr >&2
-LC_ALL=C sed -e 's/^Makefile:[0-9][0-9]*: //' \
+LC_ALL=C sed -e 's|^Makefile:[0-9][0-9]*: ||' \
+ -e 's|.*\.mk:[0-9][0-9]*: ||' \
-e '/^\*\*\*.*Automake-NG/d' stderr > got
cat > exp << 'END'
diff --git a/t/txinfo-rules-once.sh b/t/txinfo-rules-once.sh
deleted file mode 100755
index 12e8a84..0000000
--- a/t/txinfo-rules-once.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# Some grepping checks on Texinfo support.
-
-. ./defs || exit 1
-
-echo AC_OUTPUT >> configure.ac
-
-$ACLOCAL
-
-: > texinfo.tex
-
-echo info_TEXINFOS = main.texi other.texi sub/x.texi > Makefile.am
-mkdir sub
-echo @setfilename main.info > main.texi
-echo @setfilename other.info > other.texi
-echo @setfilename sub/x.info > sub/x.texi
-$AUTOMAKE
-$EGREP '\.(info|pdf|ps|dvi|html|texi)' Makefile.in # For debugging.
-test $(grep -c '^%\.info: %\.texi$' Makefile.in) -eq 1
-test $(grep -c '^%\.html: %\.texi$' Makefile.in) -eq 1
-test $(grep -c '^%\.dvi: %\.texi$' Makefile.in) -eq 1
-test $(grep -c '^%\.pdf: %\.texi$' Makefile.in) -eq 1
-test $(grep -c '^%\.ps: %\.dvi$' Makefile.in) -eq 1
-
-for t in info dist-info dvi-am install-html uninstall-pdf-am; do
- $FGREP $t Makefile.in # For debugging.
- test $(grep -c "^$t *:" Makefile.in) -eq 1
-done
-
-:
diff --git a/t/uninstall-fail.sh b/t/uninstall-fail.sh
index 16f86b1..d3bea1b 100755
--- a/t/uninstall-fail.sh
+++ b/t/uninstall-fail.sh
@@ -28,9 +28,14 @@ chmod a-w d || skip "cannot make directories unwritable"
# On Solaris 10, if '/bin/rm' is run with the '-f' option, it doesn't
# print any error message when failing to remove a file (due to e.g.,
-# "Permission denied"). Yikes. We'll cater to this incompatibility
-# by relaxing a test below if a faulty 'rm' is detected.
-st=0; rm -f d/f 2>stderr || st=$?
+# "Permission denied"). And it gets weirder. On OpenIndiana 11, the
+# /bin/sh shell (in many respects a decent POSIX shell) seems to somehow
+# "eat" the error message from 'rm' in some situation, although the 'rm'
+# utility itself correctly prints it when invoked from (say) 'env' or
+# 'bash'. Yikes.
+# We'll cater to these incompatibilities by relaxing a test below if
+# a faulty shell or 'rm' program is detected.
+st=0; $SHELL -c 'rm -f d/f' 2>stderr || st=$?
cat stderr >&2
test $st -gt 0 || skip_ "can delete files from unwritable directories"
if grep 'rm:' stderr; then
@@ -53,7 +58,8 @@ $ACLOCAL
$AUTOMAKE
$AUTOCONF
-# Make it harder to experience false postives when grepping error messages.
+# Weird name, to make it harder to experience false positives when
+# grepping error messages.
inst=__inst-dir__
./configure --prefix="$(pwd)/$inst"
diff --git a/t/vala-vapi.sh b/t/vala-vapi.sh
index dedf042..eea6160 100755
--- a/t/vala-vapi.sh
+++ b/t/vala-vapi.sh
@@ -40,7 +40,9 @@ int main ()
}
END
-echo '#define BARBAR "Zardoz!\n"' > foo.h
+# Use printf, not echo, to avoid '\n' being considered and escape
+# sequence and printed as a newline in 'foo.h'.
+printf '%s\n' '#define BARBAR "Zardoz!\n"' > foo.h
cat > foo.vapi <<'END'
[CCode (cprefix="", lower_case_cprefix="", cheader_filename="foo.h")]
@@ -74,7 +76,9 @@ cross_compiling || $MAKE test1 || exit 1
# Simple check on remake rules.
$sleep
-echo '#define BAZBAZ "Quux!\n"' > foo.h
+# Use printf, not echo, to avoid '\n' being considered and escape
+# sequence and printed as a newline in 'foo.h'.
+printf '%s\n' '#define BAZBAZ "Quux!\n"' > foo.h
sed 's/BARBAR/BAZBAZ/' zardoz.vala > t && mv -f t zardoz.vala || exit 99
$MAKE && exit 1
sed 's/BARBAR/BAZBAZ/' foo.vapi > t && mv -f t foo.vapi || exit 99
diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in
index 18ee13a..a3defa9 100644
--- a/t/wrap/aclocal.in
+++ b/t/wrap/aclocal.in
@@ -1,4 +1,4 @@
-#!/bin/sh
address@hidden@ -w
# @configure_input@
# Copyright (C) 2012 Free Software Foundation, Inc.
@@ -16,17 +16,16 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-fi
-
-perllibdir="@abs_top_builddir@/address@hidden@@abs_top_srcdir@/lib"
-export perllibdir
-
-exec "@abs_top_builddir@/aclocal" "address@hidden@/m4" \
- "address@hidden@/m4/acdir" ${1+"$@"}
+BEGIN
+{
+ use strict;
+ my $libdir;
+ $libdir = '@abs_top_srcdir@/lib';
+ $libdir = '@abs_top_builddir@/lib' . '@PATH_SEPARATOR@' . $libdir
+ if '@srcdir@' ne '.';
+ $ENV{perllibdir} = $libdir;
+ unshift @ARGV,
+ 'address@hidden@/m4',
+ 'address@hidden@/m4/acdir';
+}
+require '@abs_top_builddir@/aclocal';
diff --git a/t/wrap/automake.in b/t/wrap/automake.in
index 14f437f..8417360 100644
--- a/t/wrap/automake.in
+++ b/t/wrap/automake.in
@@ -1,4 +1,4 @@
-#!/bin/sh
address@hidden@ -w
# @configure_input@
# Copyright (C) 2012 Free Software Foundation, Inc.
@@ -16,15 +16,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-fi
-
-perllibdir="@abs_top_builddir@/address@hidden@@abs_top_srcdir@/lib"
-export perllibdir
-exec "@abs_top_builddir@/automake" "address@hidden@/lib" ${1+"$@"}
+BEGIN
+{
+ use strict;
+ my $libdir;
+ $libdir = '@abs_top_srcdir@/lib';
+ $libdir = '@abs_top_builddir@/lib' . '@PATH_SEPARATOR@' . $libdir
+ if '@srcdir@' ne '.';
+ $ENV{perllibdir} = $libdir;
+ unshift @ARGV, 'address@hidden@/lib';
+}
+require '@abs_top_builddir@/automake';
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.12.2-792-gfd74123,
Stefano Lattarini <=