+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
++ Merge branch 'maint' into master.
++ * m4/regex.m4: Bump serial number by some notches, for good
++ measure. Prefer the deprecation message from maint over that
++ from master.
++ * m4/python.m4: Bump serial number.
++ * tests/Makefile.am (canon6.log): Depend on `libtool-macros.log'.
++ (canon7.log): Likewise.
++ (extradep2.log): Likewise.
++ (ar-lib4.log): Likewise.
++ (ar-lib6a.log): Likewise.
++ (ar-lib6b.log): Likewise.
++ (vartypo2): Likewise.
++ (posixsubst-ltlibraries.log): Likewise.
++ * tests/defs: Adjust the path of the included `get.sh' scripts
++ generated by `libtool-macros.test' and `gettext-macros.test'.
++ * aclocal.m4: Delete, it's auto-generated now.
++ * configure: Likewise.
++ * Makefile.in: Likewise.
++ * doc/Makefile.in: Likewise.
++ * m4/Makefile.in: Likewise.
++ * tests/Makefile.in: Likewise.
++ * lib/Makefile.in: Likewise.
++ * lib/am/Makefile.in: Likewise.
++ * lib/Automake/Makefile.in: Likewise.
++ * lib/Automake/tests/Makefile.in: Likewise.
++ * .gitignore: Correctly ignored the autogenerated files
++ that are not committed anymore.
++
++2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
++
+ hacking: distribute it, and mention it in the ChangeLog
+ Not distributing the HACKING file might make it more difficult,
+ for some random curious user, to get informed about or interested
+ in the Automake development process, or to send us patches.
+ * Makefile.am (EXTRA_DIST): Add HACKING.
+ * HACKING: It's OK to distribute this file, and to mention it in
+ the ChangeLog.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ regex: deprecate the obsolete macro AM_WITH_REGEX
+ This is a backport of commit v1.11-433-g37b0aee.
+ Today, practically nobody uses the GNU rx library, which, according
+ to its own website <http://www.gnu.org/software/rx/rx.html>, has
+ been "decommissioned". Consequently, the automake-provided macro
+ AM_WITH_REGEX is not used nor required anymore. Deprecate it, so
+ that it will be possible to safely remove it in the next major
+ automake version.
+ * m4/regex.m4 (AM_WITH_REGEX): Give a warning of the class
+ `obsolete' when this macro is used.
+ * doc/automake.texi (Public Macros): Move description of
+ `AM_WITH_REGEX' from here ...
+ (Obsolete Macros): ... to here, and declare it as obsolete
+ and "to be removed in a future version".
+ * tests/regex-obsolete.test: New test.
+ * tests/Makefile.am (TESTS): Add it.
+ * NEWS: Update.
+ See also:
+ <http://lists.gnu.org/archive/html/automake-patches/2010-11/msg00131.html>
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: distribute .xz tarballs, not .bz2 ones
+ Many GNU packages are moving towards xz-compressed tarballs, so
+ let's follow suit, by dropping the creation and distribution of
+ a bzip2-compressed tarball and switching to xz instead.
+ For compatibility and safeness, we will continue to create and
+ distribute a gzip-compressed tarball as well.
+ * configure.ac (AM_INIT_AUTOMAKE): Drop `dist-bzip2', add
+ `dist-xz'.
+ * NEWS: Update
+ Suggested by Jim Meyering.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ include: avoid "deleted .am file" problem
+ * automake.in (handle_configure): When processing `configure.am',
+ also expand `HAVE-MAKEFILE-IN-DEPS' to a boolean telling whether
+ `MAKEFILE-IN-DEPS' is empty or not.
+ * lib/am/configure.am [?HAVE-MAKEFILE-IN-DEPS?]
+ (%MAKEFILE-IN-DEPS%): New target without dependencies, to
+ avoid the "deleted .am file" problem. Emit this only when
+ `?HAVE-MAKEFILE-IN-DEPS?' is true, to avoid generating an
+ "empty" dependency declaration.
+ * tests/deleted-am.test: Make grepping of error message stricter.
+ * tests/dist-missing-am.test: Likewise.
+ * tests/remake-deleted-am.test: New test.
+ * tests/remake-deleted-am-2.test: Likewise.
+ * tests/remake-deleted-am-subdir.test: Likewise.
+ * tests/remake-renamed-am.test: Likewise.
+ * tests/makefile-deps.test: Likewise.
+ * tests/Makefile.am (TESTS): Add the new tests.
+ * NEWS: Update.
+ Fixes automake bug#9768.
+ Report by Peter Johansson.
+ See also commit `Release-1-10-40-gd0ebf71', which fixed a similar
+ problem for .m4 files included by configure.ac.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: better use of autoconf 2.68 features
+ * configure.ac: Now that Automake requires autoconf 2.68 for its
+ own bootstrapping and build system, we can assume that PACKAGE_URL
+ gets automatically AC_SUBT'd.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ cosmetics: use proper m4 quoting in configure.ac
+ * configure.ac (AC_CONFIG_SRCDIR): Use proper m4 quoting
+ for its arguments.
+ (AC_CONFIG_AUX_DIR): Likewise.
+ (AC_PROG_PATH): Likewise.
+
+ 2011-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: better handling of gettext and libtool requirements
+
+ This change fixes automake bug#9807.
+
+ Before this change, the automake testsuite only looked for the
+ `.m4' files containing libtool and gettext macros definitions in
+ the directory `${prefix}/share/aclocal' (and in the directories
+ specified by the `dirlist' file in there, if any), where ${prefix}
+ was the configure-time automake installation prefix (defaulting
+ to `/usr/local').
+
+ This approach had various shortcomings and disadvantages. Let's
+ briefly describe the three major ones.
+
+ First, on most GNU/Linux systems, a libtool or gettext installed
+ from distro-provided packages (e.g., by dpkg on Debian/Ubuntu, or
+ by rmp on RedHat/Fedora) would have `/usr', not `/usr/local', as
+ its ${prefix}; so, trying to run the automake testsuite with a
+ simple "./configure && make && make check" would have failed to
+ execute the libtool and gettext tests on most GNU/Linux distros.
+ It's true that it was quite easy to work around this issue, by
+ creating a proper `/usr/local/share/aclocal/dirlist' file with
+ an entry pointing to `/usr/share/aclocal' (a workaround in fact
+ used by most automake developers); but the typical user wasn't
+ aware of the necessity of this trick, so the libtool and gettext
+ tests was usually skipped on testsuite runs "in the wild", thus
+ needlessly reducing coverage.
+
+ Second, the older testsuite behaviour made more difficult for
+ the developers to run the testsuite with non-default libtool or
+ gettext. For example, assume the developer is working on a system
+ that has a default libtool version 1.5 installed in the /usr/local
+ hierarchy; to improve coverage, the developer installs also a more
+ modern libtool version, say 2.4, in its home directory, let's say
+ in ~/libtool-2.4; he then tries to run the automake testsuite with
+ this more modern libtool by doing an (apparently) simple:
+ $ PATH=$HOME/libtool-2.4:$PATH make check
+ But the automake testsuite would still look for libtool macros in
+ /usr/local/share/aclocal, not in ~/libtool-2.4/share/aclocal, so
+ the wrong version of the macros would be picked up, and the tests
+ would either fail spuriously or (which would be worse) pass without
+ truly covering the libtool version the developers was thinking to
+ be testing with.
+ Worse again, the automake testsuite would *unconditionally* look
+ for libtool macros in /usr/local/share/aclocal, so even something
+ like:
+ $ export ACLOCAL_PATH=$HOME/libtool-2.4/share/aclocal
+ $ PATH=$HOME/libtool-2.4:$PATH make check
+ wouldn't work.
+
+ Third and last, during a "make distcheck", automake is configured
+ with a ${prefix} pointing to a proper subdirectory of the build
+ directory (usually `pwd`/_inst), which gets created on-the-fly;
+ in this case, with the old approach, the automake testsuite never
+ found the libtool and gettext macro files, ans so the libtool and
+ gettext tests was *always* skipped in a "make distcheck".
+
+ * tests/libtool-macros.test: New helper test, looking (with the
+ help of the `libtoolize' script) for libtool macro files required
+ by most libtool tests, and making them easily accessible.
+ * tests/gettext-macros.test: New helper test, looking (with the
+ help of the `libtoolize' script) for libtool macro files required
+ by most libtool tests, and making them easily accessible.
+ * tests/defs.in: Update to make it rely on the results and setups
+ of `libtool-macros.test' and `gettext-macros.test'.
+ * tests/Makefile.am: Declare dependency of all the logs of libtool
+ tests from `libtool-macros.log', and all the logs of gettext tests
+ from `gettext-macros.log'.
+ (TESTS): Add the new tests.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ fix: typos and grammaros in comments of the new test
+ * tests/get-sysconf.test: Fix few typos, grammaros and botched
+ wording. Reported by Eric Blake.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: report useful system information in 'test-suite.log'
+ It has already happened various times that a user has run the
+ automake testsuite, experienced a failure, read the messages
+ telling him "See tests/test-suite.log" and "Please report to
+ bug-automake@gnu.org", and done exactly that -- sending us only
+ the contents of `tests/test-suite.log', which are usually not
+ enough to start debugging the reported failure. So we have to
+ ask him for more details, and usually also for the `config.log'
+ file generated by configure. It's time to fix this recurring
+ feedback inefficiency. We do so by creating a dummy test case
+ that takes care of copying the contents of `config.log', plus
+ other useful system information, in the final `test-suite.log'.
+ * tests/get-sysconf.test: New test, gathering system information
+ and then always terminating with a SKIP, so that its output gets
+ copied in `test-suite.log'.
+ * tests/Makefile.am (TESTS): Add it.
+
+ 2011-12-07 Reuben Thomas <rrt@sc3d.org> (tiny change)
+
+ python: remove relics for Python 1.5 support
+ * m4/python.m4: The comments in here claim to support only
+ Python >= 2.0, yet this file still has specific support for
+ Python 1.5. Just remove it, python 1.5 is 12 years old now,
+ and practically defunct.
+ * NEWS: Update.
+ See also commit `Release-1-10-205-gd5bec12', "Support for
+ Python 3.0, drop support for pre-2.0."
+
+ 2011-12-21 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ configure: remove extraneous 'eval's from AM_RUN_LOG invocations
+ * configure.ac: Remove extra 'eval's from AM_RUN_LOG invocations;
+ for example, instead of "AM_RUN_LOG([eval $PERL --version])",
+ simply use "AM_RUN_LOG([$PERL --version])"
+
+ 2011-12-21 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ configure: report TeX version in config.log
+ * configure.ac: If possible, report the version of the selected
+ TeX program; this should render the logs more informative.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: snapshots from `maint' are still development snapshots
+ The maintenance-oriented development line in the `maint' branch,
+ while being usually pretty stable and 99% backward-compatible,
+ is not always right off production-quality; but until now, the
+ Automake package version declared in configure.ac hid this fact,
+ since it appeared to be the version of a stable release (e.g.,
+ 11.1). Fix this.
+ * configure.ac (AC_INIT): Bump version to "1.11.0a".
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ configure: print proper message for test releases
+ * configure.ac: If the current release is detected to be a test
+ release or a development snapshot, print a proper warning for
+ the user.
+ * README-alpha: Delete, it's obsolete now (and in fact this file
+ hasn't been touched in eleven years, since release 1.4b or so).
+ * HACKING (Release procedure): Don't say to update README-alpha.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ devel: help in comparing Makefile.in from different commits
+ Now that the generated Makefile.in, configure and aclocal.m4 files
+ are no longer committed in Automake's git repository, a simple
+ "git diff" or "git log" no longer shows if and how a change in
+ Automake results in changes to the Makefile.in files and/or
+ configure script of its own build system. Still, the ability to
+ peek so easily at such differences has proved itself quite useful
+ in the past, often revealing inconsistencies and blunders, and
+ sometimes even bugs; so it would be a pity to lose that altogether.
+ With this change, we add a new maintainer recipe that re-introduces
+ much of that capability, by generating and comparing on the fly the
+ Makefile.in, configure and aclocal.m4 derived from two arbitrary
+ commits of the Automake repository.
+ * Makefile.am (autodiffs, compare-autodiffs): New phony targets.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ repo: don't commit generated files in the git repository anymore
+ It has been quite some time since autoconf and libtool have stopped
+ committing the generated autotools files in their git repositories,
+ with no significant ill effects we're aware of. It's true that the
+ autoconf bootstrap process has now the minor annoyance that a
+ pre-installed autoconf is required to complete it; but luckily
+ automake will not have a similar annoyance, since our bootstrap
+ script take care, through some hoops, to use the very automake and
+ aclocal versions from the current git checkout to generate the
+ required aclocal.m4 and Makefile.in files. In fact, this has been
+ a necessity also in the past, because automake has been known to
+ use in its own build system new development features that hadn't
+ been present in any previously released automake distribution.
+ * .gitignore: Ignore configure, aclocal.m4, and all the
+ Makefile.in files.
+ * configure.ac (AC_PREREQ): New macro call, to require the
+ latest autoconf (2.68 for the moment).
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ missing: don't try to re-run tar with a munged command line
+ * lib/missing: If the default `tar' program fails with the given
+ arguments, and GNU tar is not available, don't try to re-run the
+ default `tar' with a munged command line (e.g., ditching possibly
+ unportable options), as that could be subtly alter the intended
+ semantics (and maybe even create a somewhat corrupted tarball).
+ Also, it's worth noting that the main purpose of the `missing'
+ script is to allow a non-developer to build the package in the
+ face of slightly-skewed timestamps, not to provide wrappers for
+ all the maintainer tools -- so we don't have to try too hard
+ when `missing' is just called to wrap `tar'.
+ * tests/missing-tar.test: New test.
+ * tests/Makefile.am (TESTS): Add it.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ missing: inform the user if GNU tar is called
+ * lib/missing: If the code trying to run GNU tar is reached, it
+ means that the previous attempt to run the default tar program
+ has failed, very likely producing some error message. At this
+ point, just running GNU tar without further comments might be
+ confusing.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ missing: if GNU tar exists but fails when called, give up
+ * lib/missing: If the code trying to run GNU tar is reached,
+ don't continue if the invoked GNU tar program fails, as there
+ is little point in doing so (and can even be confusing and
+ counter-productive).
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ missing: miscellaneous fixlets
+ * lib/missing: Some shells, such as Solaris or FreeBSD /bin/sh,
+ warn about missing programs before performing redirections.
+ Therefore, where we have to silently check whether a program
+ exists, perform redirections on a subshell.
+ Remove redundant uses of double-quotes in variable definitions.
+ Delete an extra blank line.
+
+ 2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: remove executable bit from automake.in
+ * automake.in: This file is not meant to be executed, only to
+ be preprocessed to create the `automake' script; so don't leave
+ it executable.
+
+ 2011-12-20 Peter Rosin <peda@lysator.liu.se>
+
+ tests: fix spurious failure on systems lacking unistd.h
+ This is for automake bug#10324.
+ * tests/silent-lex-generic.test (foo.l): Add a dummy #define of
+ YY_NO_UNISTD_H, so that the generated foo.c file won't require
+ unistd.h to be present (it is not present when compiling with,
+ e.g., MSVC 9).
+
2011-12-16 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: hack to support autoconf-wrapper programs
# Some testsuite-influential variables should be overridable from the
# test scripts, but not from the environment.
-TESTS_ENVIRONMENT = \
+AM_TESTS_ENVIRONMENT = \
test x"$$me" = x || unset me; \
test x"$$required" = x || unset required; \
- test x"$$parallel_tests" = x || unset parallel_tests;
+ test x"$$parallel_tests" = x || unset parallel_tests; \
+ test x"$$original_AUTOMAKE" = x || unset original_AUTOMAKE; \
+ test x"$$original_ACLOCAL" = x || unset original_ACLOCAL;
TESTS = \
-aclibobj.test \
+ get-sysconf.test \
+ self-check-env-sanitize.test \
+ self-check-report.test \
aclocal.test \
aclocal3.test \
aclocal4.test \
remake-subdir.test \
remake-subdir2.test \
remake-subdir-long-time.test \
+remake-gnulib-add-acsubst.test \
+remake-gnulib-add-header.test \
+remake-gnulib-remove-header.test \
+remake-moved-m4-file.test \
+remake-deleted-m4-file.test \
+remake-renamed-m4-file.test \
+remake-renamed-m4-macro-and-file.test \
+remake-renamed-m4-macro.test \
remake-am-pr10111.test \
remake-m4-pr10111.test \
+ remake-deleted-am.test \
+ remake-deleted-am-2.test \
+ remake-deleted-am-subdir.test \
+ remake-renamed-am.test \
pr8365-remake-timing.test \
regex.test \
regex-obsolete.test \
yacc-dist-nobuild-subdir.test \
yflags.test \
yflags2.test \
+yflags-cmdline-override.test \
+yflags-conditional.test \
+yflags-d-false-positives.test \
+yflags-force-override.test \
+yflags-force-conditional.test \
+yflags-var-expand.test \
+ libtool-macros.test \
+ gettext-macros.test \
$(parallel_tests)
-EXTRA_DIST = ChangeLog-old gen-parallel-tests $(TESTS)
-
+EXTRA_DIST += $(TESTS)
+
+# Dependencies valid for each test case.
+$(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION)
+
+ # FIXME: make these automatically computed once we are merged into
+ # FIXME: the `testsuite-work' branch.
++ar-lib4.log: libtool-macros.log
++ar-lib6a.log: libtool-macros.log
++ar-lib6b.log: libtool-macros.log
++canon6.log: libtool-macros.log
++canon7.log: libtool-macros.log
+ depcomp4.log: libtool-macros.log
+ depcomp7.log: libtool-macros.log
+ depcomp8b.log: libtool-macros.log
++extradep2.log: libtool-macros.log
+ fort5.log: libtool-macros.log
+ instdir-ltlib.log: libtool-macros.log
+ instfail-libtool.log: libtool-macros.log
+ ldadd.log: libtool-macros.log
+ ldflags.log: libtool-macros.log
+ libobj13.log: libtool-macros.log
+ libtoo10.log: libtool-macros.log
+ libtoo11.log: libtool-macros.log
+ libtool.log: libtool-macros.log
+ libtool2.log: libtool-macros.log
+ libtool3.log: libtool-macros.log
+ libtool5.log: libtool-macros.log
+ libtool6.log: libtool-macros.log
+ libtool7.log: libtool-macros.log
+ libtool8.log: libtool-macros.log
+ libtool9.log: libtool-macros.log
+ listval.log: libtool-macros.log
+ ltcond.log: libtool-macros.log
+ ltcond2.log: libtool-macros.log
+ ltconv.log: libtool-macros.log
+ ltdeps.log: libtool-macros.log
+ ltinit.log: libtool-macros.log
+ ltinstloc.log: libtool-macros.log
+ ltlibobjs.log: libtool-macros.log
+ ltlibsrc.log: libtool-macros.log
+ ltorder.log: libtool-macros.log
+ nobase-libtool.log: libtool-macros.log
+ pr211.log: libtool-macros.log
+ pr300-ltlib.log: libtool-macros.log
+ pr307.log: libtool-macros.log
+ pr401b.log: libtool-macros.log
+ pr72.log: libtool-macros.log
+ reqd2.log: libtool-macros.log
+ silent3.log: libtool-macros.log
+ silent4.log: libtool-macros.log
+ silent9.log: libtool-macros.log
+ stdlib2.log: libtool-macros.log
+ strip3.log: libtool-macros.log
+ subobj9.log: libtool-macros.log
+ suffix10.log: libtool-macros.log
+ suffix2.log: libtool-macros.log
+ suffix5.log: libtool-macros.log
+ suffix8.log: libtool-macros.log
+ vala.log: libtool-macros.log
+ vala1.log: libtool-macros.log
+ vala2.log: libtool-macros.log
+ vala3.log: libtool-macros.log
+ vala4.log: libtool-macros.log
+ vala5.log: libtool-macros.log
+
+ # FIXME: make these automatically computed once we are merged into
+ # FIXME: the `testsuite-work' branch.
+ gettext.log: gettext-macros.log
+ gettext2.log: gettext-macros.log
+ gettext3.log: gettext-macros.log
+ subcond.log: gettext-macros.log
+
distcheck-missing-m4.log distcheck-outdated-m4.log: distcheck-hook-m4.am
EXTRA_DIST += distcheck-hook-m4.am
esac
done
-
-# Always use an absolute srcdir. Otherwise symlinks made in subdirs
-# of the test dir just won't work.
-case "$srcdir" in
- [\\/]* | ?:[\\/]*)
+# Using just `$testbuilddir' for the check here is ok, since the
+# further temporary subdirectory where the test will be run is
+# ensured not to contain any whitespace character.
+case $testbuilddir in
+ *\ *|*\ *)
+ case " $required " in
+ *' libtool '* | *' libtoolize '* )
+ echo "$me: libtool/libtoolized cannot cope correctly" >&2
+ echo "$me: with spaces in the build tree" >&2
+ exit 77
+ ;;
+ esac
;;
+esac
- *)
- srcdir=`CDPATH=: && cd "$srcdir" && pwd`
- ;;
+# This test is necessary, although Automake's configure script bails out
+# when $srcdir contains spaces. This is because $testsrcdir is in not
+# configure-time $srcdir, but is instead configure-time $abs_srcdir, and
+# that is allowed to contain spaces.
+case $testsrcdir in
+ *\ * |*\ *)
+ case " $required " in
+ *' libtool '* | *' libtoolize '* | *' gettext '* )
+ echo "$me: our testsuite setup cannot cope correctly with spaces" >&2
+ echo "$me: in the source tree for libtool/gettext tests" >&2
+ exit 77
+ ;;
+ esac
+ ;;
esac
-curdir=`pwd`
+# We might need extra macros, e.g., from Libtool or Gettext.
- # Find them on the system.
- # Use `-I $top_testsrcdir/m4' in addition to `--acdir=$top_testsrcdir/m4',
- # because the other `-I' directories added for libtool and gettext might
- # contain files from an old version of Automake that we don't want to use.
- # Use `-Wno-syntax' because we do not want our test suite to fail because
- # some third-party .m4 file is underquoted.
- case " $required " in
- *' libtool '* | *' libtoolize '* | *' gettext '* )
- aclocaldir=$testprefix/share/aclocal
- extra_includes=""
- if test -f $aclocaldir/dirlist; then
- extra_includes=`
- <$aclocaldir/dirlist \
- sed 's/#.*//;s/[ ][ ]*$//g' \
- | while read dir; do test ! -d "$dir" || echo "-I $dir"; done`
- else :; fi
-
- libtool_found=no
- gettext_found=no
- for d in $extra_includes $aclocaldir ; do
- test "x$d" != x-I || continue
- if test -f "$d/libtool.m4"; then
- libtool_found=yes
- fi
- if test -f "$d/gettext.m4"; then
- gettext_found=yes
- fi
- done
- case " $required " in
- *' libtool '*|*' libtoolize '*)
- if test $libtool_found != yes; then
- echo "$me: libtool/libtoolize is required, but libtool.m4 wasn't" >&2
- echo "$me: found in directories $aclocaldir $extra_includes" >&2
- exit 77
- fi
- ;;
- *' gettext '*)
- if test $gettext_found != yes; then
- echo "$me: gettext is required, but gettext.m4 wasn't found" >&2
- echo "$me: in directories $aclocaldir $extra_includes" >&2
- exit 77
- fi
- ;;
- esac
- ACLOCAL="$ACLOCAL -Wno-syntax -I $top_testsrcdir/m4 $extra_includes -I $aclocaldir"
- unset libtool_found gettext_found
- unset extra_includes aclocaldir
- ;;
- esac
++case " $required " in *\ libtool*) . ./libtool-macros.dir/get.sh;; esac
++case " $required " in *\ gettext*) . ./gettext-macros.dir/get.sh;; esac
+
+
+## ---------------------------------------------------------------- ##
+## Create and set up of the temporary directory used by the test. ##
+## Set up of the exit trap for cleanup of said directory. ##
+## ---------------------------------------------------------------- ##
+
+# This might be used in testcases checking distribution-related features.
+# Test scripts are free to override this if they need to.
+distdir=$me-1.0
+
+# The subdirectory where the current test script will run and write its
+# temporary/data files. This will be created shortly, and will be removed
+# by the cleanup trap below if the test passes. If the test doesn't pass,
+# this directory will be kept, to facilitate debugging.
testSubDir=$me.dir
+
test ! -d $testSubDir || {
find $testSubDir -type d ! -perm -700 -exec chmod u+rwx {} ";"
rm -rf $testSubDir
echo "AC_CONFIG_FILES([Makefile])"
} >configure.in
-# Unset some make-related variables that may cause $MAKE to act like
-# a recursively invoked sub-make. Any $MAKE invocation in a test is
-# conceptually an independent invocation, not part of the main
-# 'automake' build.
-unset MFLAGS MAKEFLAGS AM_MAKEFLAGS MAKELEVEL
-unset __MKLVL__ MAKE_JOBS_FIFO # For BSD make.
-unset DMAKE_CHILD DMAKE_DEF_PRINTED DMAKE_MAX_JOBS # For Solaris dmake.
-# Unset verbosity flag.
-unset V
-# Also unset variables that will let `make -e install' divert
-# files into unwanted directories.
-unset DESTDIR
-unset prefix exec_prefix bindir datarootdir datadir docdir dvidir
-unset htmldir includedir infodir libdir libexecdir localedir mandir
-unset oldincludedir pdfdir psdir sbindir sharedstatedir sysconfdir
-# Unset variables that might change the "make distcheck" behaviour.
-unset DISTCHECK_CONFIGURE_FLAGS AM_DISTCHECK_CONFIGURE_FLAGS
-# Also unset variables that control our test driver. While not
-# conceptually independent, they cause some changed semantics we
-# need to control (and test for) in some of the tests to ensure
-# backward-compatible behavior.
-unset TESTS_ENVIRONMENT AM_TESTS_ENVIRONMENT
-unset DISABLE_HARD_ERRORS
-unset AM_COLOR_TESTS
-unset TESTS
-unset TEST_LOG_COMPILER
-unset TEST_LOGS
-unset RECHECK_LOGS
-unset VERBOSE
-
-echo "=== Running test $0"
-
-# We might need extra macros, e.g., from Libtool or Gettext.
-case " $required " in *\ libtool*) . ../libtool-macros.dir/get.sh;; esac
-case " $required " in *\ gettext*) . ../gettext-macros.dir/get.sh;; esac
-
-testaclocaldir='@abs_top_srcdir@/m4'
-
-# POSIX no longer requires 'egrep' and 'fgrep',
-# but some hosts lack 'grep -E' and 'grep -F'.
-EGREP='@EGREP@'
-FGREP='@FGREP@'
-
-# The amount we should wait after modifying files depends on the platform.
-# For instance, Windows '95, '98 and ME have 2-second granularity
-# and can be up to 3 seconds in the future w.r.t. the system clock.
-sleep='sleep @MODIFICATION_DELAY@'
-
-# The tests call `make -e' but we do not want $srcdir from the environment
-# to override the definition from the Makefile.
-testsrcdir=$srcdir
-unset srcdir
-
-# An old timestamp that can be given to a file, in "touch -t" format.
-# The time stamp should be portable to all file systems of interest.
-# Just for fun, choose the exact time of the announcement of the GNU project
-# in UTC; see <http://www.gnu.org/gnu/initial-announcement.html>.
-old_timestamp=198309271735.59
-
-# is_newest FILE FILES
-# --------------------
-# Return false if any file in FILES is newer than FILE.
-# Resolve ties in favor of FILE.
-is_newest ()
-{
- is_newest_files=`find "$@" -newer "$1"`
- test -z "$is_newest_files"
-}
-
-# using_gmake
-# -----------
-# Return success if $MAKE is GNU make, return failure otherwise.
-using_gmake ()
-{
- # Use --version AND -v, because SGI Make doesn't fail on --version.
- # Also grep for GNU because newer versions of FreeBSD make do
- # not complain about `--version' (they seem to silently ignore it).
- $MAKE --version -v | grep GNU
-}
-
-# AUTOMAKE_run status [options...]
-# --------------------------------
-# Run Automake with OPTIONS, and fail if automake
-# does not exit with STATUS.
-AUTOMAKE_run ()
-{
- expected_exitcode=$1
- shift
- exitcode=0
- $AUTOMAKE ${1+"$@"} >stdout 2>stderr || exitcode=$?
- cat stderr >&2
- cat stdout
- test $exitcode = $expected_exitcode || Exit 1
-}
+
-# AUTOMAKE_fails [options...]
-# ---------------------------
-# Run Automake with OPTIONS, and fail if automake
-# does not exit with STATUS.
-AUTOMAKE_fails ()
-{
- AUTOMAKE_run 1 ${1+"$@"}
-}
-
-commented_sed_unindent_prog='
- /^$/b # Nothing to do for empty lines.
- x # Get x<indent> into pattern space.
- /^$/{ # No prior x<indent>, go prepare it.
- g # Copy this 1st non-blank line into pattern space.
- s/^\(['"$tab"' ]*\).*/x\1/ # Prepare x<indent> in pattern space.
- } # Now: x<indent> in pattern and <line> in hold.
- G # Build x<indent>\n<line> in pattern space, and
- h # duplicate it into hold space.
- s/\n.*$// # Restore x<indent> in pattern space, and
- x # exchange with the above duplicate in hold space.
- s/^x\(.*\)\n\1// # Remove leading <indent> from <line>.
- s/^x.*\n// # Restore <line> when there is no leading <indent>.
-'
-
-# unindent [input files...]
-# -------------------------
-# Remove the "proper" amount of leading whitespace from the given files,
-# and output the result on stdout. That amount is determined by looking
-# at the leading whitespace of the first non-blank line in the input
-# files. If no input file is specified, standard input is implied.
-unindent ()
-{
- if test x"$sed_unindent_prog" = x; then
- sed_unindent_prog=`printf '%s\n' "$commented_sed_unindent_prog" | sed -e "s/ *# .*//"`
- fi
- sed "$sed_unindent_prog" ${1+"$@"}
-}
-sed_unindent_prog="" # Avoid interferences from the environment.
+## ---------------- ##
+## Ready to go... ##
+## ---------------- ##
-# Turn on shell traces.
set -x
+set -e
pwd