Merge branch 'micro' into maint
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 18 May 2013 13:23:20 +0000 (15:23 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 18 May 2013 17:26:52 +0000 (19:26 +0200)
* micro:
  lisp: fix a failure with Solaris /usr/xpg4/bin/sh
  tests: sanitize 'unset' usages
  tests: fix some botched/outdated comments
  tests: use perl, not find+rm, to remove temporary directories

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1  2 
NEWS
t/Makefile.inc
t/ax/am-test-lib.sh
t/ax/test-defs.in
t/dist-formats.tap
t/remake-deeply-nested.sh

diff --cc NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 +New in 1.14:
 +
 +* C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros:
 +
 +  - The 'compile' script is now unconditionally required for all
 +    packages that perform C compilation (note that if you are using
 +    the '--add-missing' option, automake will fetch that script for
 +    you, so you shouldn't need any explicit adjustment).
 +    This new behaviour is needed to avoid obscure errors when the
 +    'subdir-objects' option is used, and the compiler is an inferior
 +    one that doesn't grasp the combined use of both the "-c -o"
 +    options; see discussion about automake bug#13378 for more details:
 +    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
 +    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
 +
 +  - The next major Automake version (2.0) will unconditionally turn on
 +    the 'subdir-objects' option.  In order to smooth out the transition,
 +    we now give a warning (in the category 'unsupported') whenever a
 +    source file is present in a subdirectory but the 'subdir-object' is
 +    not enabled.  For example, the following usage will trigger such a
 +    warning (of course, assuming the 'subdir-objects' option is off):
 +
 +        bin_PROGRAMS = sub/foo
 +        sub_foo_SOURCES = sub/main.c sub/bar.c
 +
 +  - Automake will automatically enhance the AC_PROG_CC autoconf macro
 +    to make it check, at configure time, that the C compiler supports
 +    the combined use of both the "-c -o" options.  This "rewrite" of
 +    AC_PROG_CC is only meant to be temporary, since future Autoconf
 +    versions should provide all the features Automake needs.
 +
 +  - The AM_PROG_CC_C_O is no longer useful, and its use is a no-op
 +    now.  Future Automake versions might start warning that this
 +    macro is obsolete.  For better backward-compatibility, this macro
 +    still sets a proper 'ac_cv_prog_cc_*_c_o' cache variable, and
 +    define the 'NO_MINUS_C_MINUS_O' C preprocessor symbol, but you
 +    should really stop relying on that.
 +
 +* Texinfo support:
 +
 +  - Automake can now be instructed to place '.info' files generated from
 +    Texinfo input in the builddir rather than in the srcdir; this is done
 +    specifying the new automake option 'info-in-builddir'.  This feature
 +    was requested by the developers of GCC, GDB, GNU binutils and the GNU
 +    bfd library.  See the extensive discussion about automake bug#11034
 +    for more details.
 +
 +  - For quite a long time, Automake has been implementing an undocumented
 +    hack which ensured that '.info' files which appeared to be cleaned
 +    (by e.g. being listed in the CLEANFILES or DISTCLEANFILES variables)
 +    were built in the builddir rather than in the srcdir; this hack was
 +    introduced to ensure better backward-compatibility with packages such
 +    as Texinfo, which did things like:
 +
 +        info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
 +        DISTCLEANFILES = texinfo texinfo-* info*.info*
 +        # Do not create info files for distribution.
 +        dist-info:
 +            @:
 +
 +    in order not to distribute generated '.info' files.
 +
 +    Now that we have the 'info-in-builddir' option that explicitly causes
 +    generated '.info' files to be placed in the builddir, this hack should
 +    be longer necessary, so we deprecate it with runtime warnings.  It will
 +    likely be removed altogether in Automake 2.0.
 +
 +* Relative directory in Makefile fragments:
 +
 +  - The special Automake-time substitutions '%reldir%' and '%canon_reldir%'
 +    (and their short versions, '%D%' and '%C%' respectively) can now be used
 +    in an included Makefile fragment.  The former is substituted with the
 +    relative directory of the included fragment (compared to the top level
 +    including Makefile), and the latter with the canonicalized version of
 +    the same relative directory:
 +
 +        bin_PROGRAMS += %reldir%/foo
 +        %canon_reldir%_foo_SOURCES = %reldir%/bar.c
 +
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
+ New in 1.13.3:
+ * Bugs fixed:
+   - Byte-compilation of Emacs lisp files could fail spuriously on Solaris,
+     when /bin/ksh or /usr/xpg4/bin/sh were used as shell.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  New in 1.13.2:
  
 -* Obsolescent features:
 -
 -  - Use of suffix-less info files (that can be specified through the
 -    '@setfilename' macro in Texinfo input files) is discouraged, and
 -    its use will raise warnings in the 'obsolete' category.
 -
 -  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
 -    is discouraged, and its use will raise warnings in the 'obsolete'
 -    category.  You are advised to simply use the '.texi' extension
 -    instead.
 -
  * Documentation fixes:
  
    - The long-deprecated but still supported two-arguments invocation form
diff --cc t/Makefile.inc
index f979c66,0000000..3634a4b
mode 100644,000000..100644
--- /dev/null
@@@ -1,274 -1,0 +1,266 @@@
- EXTRA_DIST += %D%/README %D%/ax/is %D%/ax/is_newest
 +## Included by top-level Makefile for Automake.
 +
 +## Copyright (C) 1995-2013 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/>.
 +
 +## ------------ ##
 +##  Testsuite.  ##
 +## ------------ ##
 +
 +# Run the tests with a proper shell detected at configure time.
 +LOG_COMPILER = $(AM_TEST_RUNNER_SHELL)
 +
 +TEST_EXTENSIONS = .pl .sh .tap
 +SH_LOG_COMPILER = $(LOG_COMPILER)
 +TAP_LOG_COMPILER = $(LOG_COMPILER)
 +PL_LOG_COMPILER = $(PERL)
 +AM_PL_LOG_FLAGS = -Mstrict -I $(builddir)/lib -I $(srcdir)/lib -w
 +
 +TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(srcdir)/lib/tap-driver.sh
 +
 +AM_TAP_LOG_DRIVER_FLAGS = --merge
 +
- ## Directories candidate to be test directories match this wildcard.
-       @globs='%D%/*.dir %D%/*/*.dir */%D%/*.dir */%D%/*/*.dir'; \
- ## The 'nullglob' bash option is not portable, so use perl.
-       dirs=`$(PERL) -e "print join(' ', glob('$$globs'));"` || exit 1; \
-       if test -n "$$dirs"; then \
- ## Errors in find are acceptable, errors in rm are not.
-           find $$dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; \
-           echo " rm -rf $$dirs"; \
-           rm -rf $$dirs || exit 1; \
-       fi
++EXTRA_DIST += %D%/README %D%/ax/is %D%/ax/is_newest %D%/ax/deltree.pl
++ 
 +
 +## Will be updated later.
 +TESTS =
 +
 +# Some testsuite-influential variables should be overridable from the
 +# test scripts, but not from the environment.
 +# Keep this in sync with the similar list in ax/runtest.in.
 +AM_TESTS_ENVIRONMENT = \
 +  for v in \
 +    required \
 +    am_test_protocol \
 +    am_serial_tests \
 +    am_test_prefer_config_shell \
 +    am_original_AUTOMAKE \
 +    am_original_ACLOCAL \
 +    am_test_lib_sourced \
 +    test_lib_sourced \
 +  ; do \
 +    eval test x"\$${$$v}" = x || unset $$v; \
 +  done;
 +# We want warning messages and explanations for skipped tests to go to
 +# the console if possible, so set up 'stderr_fileno_' properly.
 +AM_TESTS_FD_REDIRECT = 9>&2
 +AM_TESTS_ENVIRONMENT += stderr_fileno_=9; export stderr_fileno_;
 +
 +# For sourcing of extra "shell libraries" by our test scripts.  As per
 +# POSIX, sourcing a file with '.' will cause it to be looked up in $PATH
 +# in case it is given with a relative name containing no slashes.
 +AM_TESTS_ENVIRONMENT += \
 +  if test $(srcdir) != .; then \
 +    PATH='$(abs_srcdir)/%D%/ax'$(PATH_SEPARATOR)$$PATH; \
 +  fi; \
 +  PATH='$(abs_builddir)/%D%/ax'$(PATH_SEPARATOR)$$PATH; \
 +  export PATH;
 +
 +# Hand-written tests.
 +
 +include $(srcdir)/%D%/list-of-tests.mk
 +
 +TESTS += $(handwritten_TESTS)
 +EXTRA_DIST += $(handwritten_TESTS)
 +
 +# Automatically-generated tests wrapping hand-written ones.
 +# Also, automatically-computed dependencies for tests.
 +
 +include $(srcdir)/%D%/testsuite-part.am
 +
 +TESTS += $(generated_TESTS)
 +EXTRA_DIST += $(generated_TESTS)
 +
 +$(srcdir)/%D%/testsuite-part.am:
 +      $(AM_V_at)rm -f %D%/testsuite-part.tmp $@
 +      $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \
 +        --srcdir $(srcdir) > %D%/testsuite-part.tmp
 +      $(AM_V_at)chmod a-w %D%/testsuite-part.tmp
 +      $(AM_V_at)mv -f %D%/testsuite-part.tmp $@
 +EXTRA_DIST += gen-testsuite-part
 +
 +# The dependecies declared here are not truly complete, but such
 +# completeness would cause more issues than it would solve.  See
 +# automake bug#11347.
 +$(generated_TESTS): $(srcdir)/gen-testsuite-part
 +$(srcdir)/%D%/testsuite-part.am: $(srcdir)/gen-testsuite-part
 +$(srcdir)/%D%/testsuite-part.am: Makefile.am
 +
 +# Hand-written tests for stuff in 'contrib/'.
 +include $(srcdir)/contrib/%D%/Makefile.inc
 +TESTS += $(contrib_TESTS)
 +EXTRA_DIST += $(contrib_TESTS)
 +
 +# Static dependencies valid for each test case (also further
 +# extended later).  Note that use 'noinst_' rather than 'check_'
 +# as the prefix, because we really want them to be built by
 +# "make all".  This makes it easier to run the test cases by
 +# hand after having simply configured and built the package.
 +
 +nodist_noinst_SCRIPTS += \
 +  %D%/wrap/aclocal-$(APIVERSION) \
 +  %D%/wrap/automake-$(APIVERSION)
 +
 +dist_noinst_DATA += \
 +  %D%/ax/test-init.sh \
 +  %D%/ax/test-lib.sh \
 +  %D%/ax/am-test-lib.sh \
 +  %D%/ax/tap-functions.sh
 +
 +# Few more static dependencies.
 +%D%/distcheck-missing-m4.log: %D%/ax/distcheck-hook-m4.am
 +%D%/distcheck-outdated-m4.log: %D%/ax/distcheck-hook-m4.am
 +EXTRA_DIST += %D%/ax/distcheck-hook-m4.am
 +
 +%D%/ax/test-defs.sh: %D%/ax/test-defs.in Makefile
 +      $(AM_V_at)rm -f $@ $@-t
 +      $(AM_V_at)$(MKDIR_P) %D%/ax
 +      $(AM_V_GEN)in=%D%/ax/test-defs.in \
 +        && $(do_subst) <$(srcdir)/$$in >$@-t
 +      $(generated_file_finalize)
 +EXTRA_DIST += %D%/ax/test-defs.in
 +CLEANFILES += %D%/ax/test-defs.sh
 +nodist_noinst_DATA += %D%/ax/test-defs.sh
 +
 +%D%/ax/shell-no-trail-bslash: %D%/ax/shell-no-trail-bslash.in Makefile
 +      $(AM_V_at)rm -f $@ $@-t
 +      $(AM_V_GEN)in=%D%/ax/shell-no-trail-bslash.in \
 +        && $(MKDIR_P) %D%/ax \
 +        && $(do_subst) <$(srcdir)/$$in >$@-t \
 +        && chmod a+x $@-t
 +      $(generated_file_finalize)
 +EXTRA_DIST += %D%/ax/shell-no-trail-bslash.in
 +CLEANFILES += %D%/ax/shell-no-trail-bslash
 +nodist_noinst_SCRIPTS += %D%/ax/shell-no-trail-bslash
 +
 +%D%/ax/cc-no-c-o: %D%/ax/cc-no-c-o.in Makefile
 +      $(AM_V_at)rm -f $@ $@-t
 +      $(AM_V_GEN)in=%D%/ax/cc-no-c-o.in \
 +        && $(MKDIR_P) %D%/ax \
 +        && $(do_subst) <$(srcdir)/$$in >$@-t \
 +        && chmod a+x $@-t
 +      $(generated_file_finalize)
 +EXTRA_DIST += %D%/ax/cc-no-c-o.in
 +CLEANFILES += %D%/ax/cc-no-c-o
 +nodist_noinst_SCRIPTS += %D%/ax/cc-no-c-o
 +
 +runtest: %D%/ax/runtest.in Makefile
 +      $(AM_V_at)rm -f $@ $@-t
 +      $(AM_V_GEN)in=%D%/ax/runtest.in \
 +        && $(MKDIR_P) %D%/ax \
 +        && $(do_subst) <$(srcdir)/$$in >$@-t \
 +        && chmod a+x $@-t
 +      $(generated_file_finalize)
 +EXTRA_DIST += %D%/ax/runtest.in
 +CLEANFILES += runtest
 +nodist_noinst_SCRIPTS += runtest
 +
 +# If two test scripts have the same basename, they will end up sharing
 +# the same log file, leading to all sort of undefined and undesired
 +# behaviours.
 +check-no-repeated-test-name:
 +      @LC_ALL=C; export LC_ALL; \
 +       lst='$(TEST_LOGS)'; for log in $$lst; do echo $$log; done \
 +         | sort | uniq -c | awk '($$1 > 1) { print }' \
 +         | sed 's/\.log$$//' | grep . >&2 \
 +         && { \
 +           echo $@: test names listed above are duplicated >&2; \
 +           exit 1; \
 +         }; :
 +check-local: check-no-repeated-test-name
 +.PHONY: check-no-repeated-test-name
 +
 +# Check that our test cases are syntactically correct.
 +# See automake bug#11898.
 +check-tests-syntax:
 +      @st=0; \
 +      err () { echo "$@: $$*" >&2; st=1; }; \
 +## The user might do something like "make check TESTS=t/foo" or
 +## "make check TESTS_LOGS=t/foo.log" and expect (say) the test
 +## 't/foo.sh' to be run; this has worked well until today, and
 +## we want to continue supporting this use case.
 +      bases=`for log in : $(TEST_LOGS); do echo $$log; done \
 +        | sed -e '/^:$$/d' -e 's/\.log$$//'`; \
 +      for bas in $$bases; do \
 +        for suf in sh tap pl; do \
 +          tst=$$bas.$$suf; \
 +## Emulate VPATH search.
 +          if test -f $$tst; then \
 +            break; \
 +          elif test -f $(srcdir)/$$tst; then \
 +            tst=$(srcdir)/$$tst; \
 +            break; \
 +          else \
 +            tst=''; \
 +          fi; \
 +        done; \
 +        test -n "$$tst" || err "couldn't find test '$$bas'"; \
 +## Don't check that perl tests are valid shell scripts!
 +        test $$suf = pl && continue; \
 +        $(AM_V_P) && echo " $(AM_TEST_RUNNER_SHELL) -n $$tst"; \
 +        $(AM_TEST_RUNNER_SHELL) -n "$$tst" \
 +          || err "test '$$tst' syntactically invalid"; \
 +      done; \
 +      exit $$st
 +check-local: check-tests-syntax
 +.PHONY: check-tests-syntax
 +
 +# Recipes with a trailing backslash character (possibly followed by
 +# blank characters only) can cause spurious syntax errors with at
 +# least older bash versions (e.g., bash 2.05b), and can be potentially
 +# be unportable to other weaker shells.  Run the testsuite in a way
 +# that helps catching such problems in Automake-generated recipes.
 +# See automake bug#10436.
 +check-no-trailing-backslash-in-recipes:
 +      $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) check \
 +        CONFIG_SHELL='$(abs_top_builddir)/%D%/ax/shell-no-trail-bslash'
 +.PHONY: check-no-trailing-backslash-in-recipes
 +
 +# Some compilers out there (hello, MSVC) still choke on "-c -o" being
 +# passed together on the command line.  Run the whole testsuite faking
 +# the presence of such a compiler, to help catch regressions that would
 +# otherwise only present themselves later "in the wild".  See also the
 +# long discussion about automake bug#13378.
 +check-cc-no-c-o:
 +      $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) check \
 +        AM_TESTSUITE_SIMULATING_NO_CC_C_O=yes
 +.PHONY: check-cc-no-c-o
 +
 +## Checking the list of tests.
 +test_subdirs = %D% %D%/pm contrib/%D%
 +include %D%/CheckListOfTests.am
 +
 +# Run the testsuite with the installed aclocal and automake.
 +installcheck-local: installcheck-testsuite
 +installcheck-testsuite:
 +      $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) check \
 +        am_running_installcheck=yes
 +
 +# Performance tests.
 +.PHONY: perf
 +perf: all
 +      $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) check \
 +        TEST_SUITE_LOG='$(PERF_TEST_SUITE_LOG)' TESTS='$(perf_TESTS)'
 +PERF_TEST_SUITE_LOG = %D%/perf/test-suite.log
 +CLEANFILES += $(PERF_TEST_SUITE_LOG)
 +EXTRA_DIST += $(perf_TESTS)
 +
 +clean-local: clean-local-check
 +.PHONY: clean-local-check
 +clean-local-check:
++      $(AM_V_GEN)$(PERL) $(srcdir)/t/ax/deltree.pl t/*.dir t/*/*.dir */t/*.dir
 +
 +# vim: ft=automake noet
Simple merge
Simple merge
Simple merge
@@@ -30,7 -30,7 +30,7 @@@ echo "AC_SUBST([FOO], [$magic1])" >> co
  
  echo "@FOO@" > bar.in
  echo "AC_CONFIG_FILES([bar])" >> configure.ac
--d=; unset d # Avoid unduly interferences from the environment.
++unset d # Avoid unduly interferences from the environment.
  for i in 0 1 2 3 4 5 6 7 8 9; do
    d=${d+"$d/"}sub$i
    echo "SUBDIRS = sub$i" > Makefile.am