summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.0928
-rw-r--r--ChangeLog.11415
-rw-r--r--HACKING3
-rw-r--r--NEWS179
-rw-r--r--automake.in28
-rw-r--r--configure.ac2
-rw-r--r--doc/automake.texi59
-rw-r--r--lib/Automake/ChannelDefs.pm28
-rw-r--r--lib/Makefile.am5
-rwxr-xr-xlib/ar-lib265
-rwxr-xr-xlib/compile195
-rwxr-xr-xlib/depcomp60
-rw-r--r--m4/Makefile.am1
-rw-r--r--m4/amversion.m44
-rw-r--r--m4/ar-lib.m461
-rw-r--r--m4/depend.m42
-rw-r--r--m4/sanity.m446
-rw-r--r--tests/Makefile.am3
-rwxr-xr-xtests/aclibobj.test2
-rwxr-xr-xtests/aclocal4.test3
-rwxr-xr-xtests/alloca.test4
-rwxr-xr-xtests/alloca2.test4
-rwxr-xr-xtests/ansi10.test1
-rwxr-xr-xtests/ar-lib.test87
-rwxr-xr-xtests/ar-lib2.test40
-rwxr-xr-xtests/ar-lib3.test46
-rwxr-xr-xtests/ar-lib4.test57
-rwxr-xr-xtests/ar-lib5a.test75
-rwxr-xr-xtests/ar-lib5b.test99
-rwxr-xr-xtests/ar-lib6a.test39
-rwxr-xr-xtests/ar-lib6b.test39
-rwxr-xr-xtests/ar-lib7.test36
-rwxr-xr-xtests/ar.test3
-rwxr-xr-xtests/ar2.test2
-rwxr-xr-xtests/ar3.test43
-rwxr-xr-xtests/ar4.test39
-rwxr-xr-xtests/ar5.test42
-rwxr-xr-xtests/canon4.test3
-rwxr-xr-xtests/compile3.test54
-rwxr-xr-xtests/compile4.test86
-rwxr-xr-xtests/compile5.test81
-rwxr-xr-xtests/compile6.test99
-rwxr-xr-xtests/cond13.test3
-rwxr-xr-xtests/condlib.test3
-rw-r--r--tests/defs.in23
-rwxr-xr-xtests/depcomp4.test1
-rwxr-xr-xtests/depcomp6.test1
-rwxr-xr-xtests/depcomp7.test1
-rwxr-xr-xtests/depcomp8b.test1
-rwxr-xr-xtests/discover.test4
-rwxr-xr-xtests/dollarvar2.test65
-rwxr-xr-xtests/extra-portability.test105
-rwxr-xr-xtests/extra-portability2.test57
-rwxr-xr-xtests/extra-portability3.test63
-rwxr-xr-xtests/fort5.test1
-rwxr-xr-xtests/instdir-ltlib.test1
-rwxr-xr-xtests/instdir-prog.test1
-rwxr-xr-xtests/instfail-libtool.test1
-rwxr-xr-xtests/instfail.test1
-rwxr-xr-xtests/instspc.test1
-rwxr-xr-xtests/ldadd.test7
-rwxr-xr-xtests/ldflags.test2
-rwxr-xr-xtests/libobj10.test3
-rwxr-xr-xtests/libobj11.test2
-rwxr-xr-xtests/libobj12.test2
-rwxr-xr-xtests/libobj13.test1
-rwxr-xr-xtests/libobj2.test2
-rwxr-xr-xtests/libobj3.test6
-rwxr-xr-xtests/libobj7.test2
-rwxr-xr-xtests/libobj8.test2
-rwxr-xr-xtests/library.test3
-rwxr-xr-xtests/library2.test8
-rwxr-xr-xtests/libtoo10.test1
-rwxr-xr-xtests/libtool2.test1
-rwxr-xr-xtests/libtool3.test1
-rwxr-xr-xtests/libtool4.test5
-rwxr-xr-xtests/libtool5.test1
-rwxr-xr-xtests/libtool6.test1
-rwxr-xr-xtests/libtool7.test1
-rwxr-xr-xtests/libtool8.test1
-rwxr-xr-xtests/libtool9.test1
-rw-r--r--tests/list-of-tests.mk19
-rwxr-xr-xtests/listval.test2
-rwxr-xr-xtests/location.test3
-rwxr-xr-xtests/ltcond.test1
-rwxr-xr-xtests/ltcond2.test1
-rwxr-xr-xtests/ltconv.test1
-rwxr-xr-xtests/ltdeps.test2
-rwxr-xr-xtests/ltinit.test1
-rwxr-xr-xtests/ltinstloc.test3
-rwxr-xr-xtests/ltlibobjs.test2
-rwxr-xr-xtests/ltlibsrc.test1
-rwxr-xr-xtests/ltorder.test1
-rwxr-xr-xtests/multlib.test2
-rwxr-xr-xtests/nobase-libtool.test1
-rwxr-xr-xtests/nobase.test1
-rwxr-xr-xtests/noinstdir.test3
-rwxr-xr-xtests/parse.test4
-rwxr-xr-xtests/pluseq7.test9
-rwxr-xr-xtests/pr211.test2
-rwxr-xr-xtests/pr300-lib.test2
-rwxr-xr-xtests/pr300-ltlib.test2
-rwxr-xr-xtests/pr307.test2
-rwxr-xr-xtests/pr401.test10
-rwxr-xr-xtests/pr401b.test10
-rwxr-xr-xtests/pr401c.test10
-rwxr-xr-xtests/pr72.test2
-rwxr-xr-xtests/primary-prefix-couples-documented-valid.test1
-rwxr-xr-xtests/primary-prefix-couples-force-valid.test3
-rwxr-xr-xtests/primary-prefix-invalid-couples.test2
-rwxr-xr-xtests/primary-prefix-valid-couples.test2
-rwxr-xr-xtests/reqd2.test6
-rwxr-xr-xtests/silent3.test1
-rwxr-xr-xtests/silent4.test1
-rwxr-xr-xtests/silent9.test1
-rwxr-xr-xtests/specflg-dummy.test1
-rwxr-xr-xtests/specflg2.test3
-rwxr-xr-xtests/stdlib.test25
-rwxr-xr-xtests/stdlib2.test1
-rwxr-xr-xtests/strip2.test1
-rwxr-xr-xtests/strip3.test1
-rwxr-xr-xtests/subdir4.test3
-rwxr-xr-xtests/subdirbuiltsources.test1
-rwxr-xr-xtests/subobj10.test1
-rwxr-xr-xtests/subobj9.test1
-rwxr-xr-xtests/subpkg-yacc.test1
-rwxr-xr-xtests/subpkg.test1
-rwxr-xr-xtests/subst3.test1
-rwxr-xr-xtests/substtarg.test3
-rwxr-xr-xtests/suffix10.test1
-rwxr-xr-xtests/suffix2.test1
-rwxr-xr-xtests/suffix5.test2
-rwxr-xr-xtests/suffix8.test1
-rwxr-xr-xtests/syntax.test11
-rwxr-xr-xtests/vala.test1
-rwxr-xr-xtests/vala1.test1
136 files changed, 2721 insertions, 209 deletions
diff --git a/ChangeLog.09 b/ChangeLog.09
index 063c06ba2..919652e14 100644
--- a/ChangeLog.09
+++ b/ChangeLog.09
@@ -33,6 +33,29 @@
* lib/gnupload: Mention ncftpput in `--help' output.
Report by Bruce Korb.
+2009-12-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Post-release version bump.
+ * configure.ac, NEWS: Bump version to 1.11.1a.
+
+2009-12-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac, NEWS: Bump version to 1.11.1.
+ * doc/automake.texi (Releases): Add line for 1.10.3 and 1.11.1.
+
+ * INSTALL, lib/INSTALL, lib/config.guess, lib/config.sub:
+ Sync from upstream.
+
+ Revert "Avoid sleeping for one second most of the time in sanity check."
+ Not sleeping in the configure sanity check breaks several tests
+ on systems that provide sub-second time stamps, when only some
+ of the tools support them, some truncate them, and other round
+ them.
+ * m4/sanity.m4 (AM_SANITY_CHECK): Do sleep for a second.
+ Report by Peter Breitenlohner and others.
+
+ * NEWS: Update.
+
2009-12-05 Antonio Diaz Diaz <ant_diaz@teleline.es>
Replace unlzma, gunzip, bunzip2 with pack tool -d invocation.
@@ -351,6 +374,11 @@
2009-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Post-release version bump.
+ * configure.ac, NEWS: Bump version to 1.11.0a.
+
+2009-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
Automake 1.11.
* configure.ac: Bump version to 1.11.
* doc/automake.texi (Releases): Add line for 1.11. Remove line
diff --git a/ChangeLog.11 b/ChangeLog.11
index 234bf2f07..67bcaad05 100644
--- a/ChangeLog.11
+++ b/ChangeLog.11
@@ -1,5 +1,13 @@
2011-12-27 Stefano Lattarini <stefano.lattarini@gmail.com>
+ news: better visibility for planned backward incompatibilities
+ * NEWS (New in 1.11.2): Explicitly report that support for
+ automatic de-ANSI-fication has been deprecated. Move news
+ entries about planned backward incompatibilities ...
+ (New in 1.11.2a): ... here.
+
+2011-12-27 Stefano Lattarini <stefano.lattarini@gmail.com>
+
tests: drop unnecessary requirement in 'subpkg.test'
* tests/subpkg.test ($required): Drop "bison", it is not required
anymore since commit `v1.11-502-g7e5ae80'.
@@ -540,6 +548,21 @@
be preprocessed to create the `automake' script; so don't leave
it executable.
+2011-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: post-release version bump
+ * configure.ac, NEWS: Bump version to 1.11.2a, as per HACKING
+ suggestions.
+
+2011-12-21 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ Stable release 1.11.2
+ * configure.ac: Bump copyright years.
+ (AC_INIT): Bump version number to 1.11.2.
+ * NEWS: Likewise.
+ * doc/automake.texi (Release Statistics): Update, as suggested
+ by "make release-stats".
+
2011-12-20 Peter Rosin <peda@lysator.liu.se>
tests: fix spurious failure on systems lacking unistd.h
@@ -629,6 +652,27 @@
* HACKING (Release procedure): ... state here that "make check"
and "make distcheck" should be run before calling "make git-dist".
+2011-12-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: post-release version bump
+ * configure.ac, NEWS: Bump version to 1.11.1c, as per HACKING
+ suggestions.
+
+2011-12-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ Beta version 1.11.1b (will become 1.11.2)
+ * configure.ac (AC_INIT): Bump version number to 1.11.1b.
+ * NEWS: Likewise.
+ * doc/automake.texi (Release Statistics): Update, as suggested
+ by "make release-stats".
+
+2011-12-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ news: fix other blunders
+ * NEWS: Remove some duplicated entries, and reorder some others,
+ and rename a subsection. This blunders are probably due to a
+ botched merge.
+
2011-12-09 Jim Meyering <meyering@redhat.com>
Stefano Lattarini <stefano.lattarini@gmail.com>
@@ -851,6 +895,98 @@
Yikes. Cater to this incompatibility, by relaxing the test when
a faulty `rm' is detected.
+2011-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: various minor tweakings, mostly related to AM_PROG_AR
+ * tests/alloca2.test: Ensure we don't experience a spurious failure
+ due to a missing `AM_PROG_AR' macro or a missing `ar-lib' auxiliary
+ script.
+ * tests/libtool4.test: Likewise.
+ * tests/ldadd.test: Likewise. Since we are at it, make grepping of
+ automake stderr stricter.
+ * tests/reqd2.test: Likewise.
+ * tests/pr211.test: Ensure automake fails also with `-Wnone', since
+ the error we are testing for is an hard error, not a mere warning.
+ * tests/syntax.test: Likewise, and ensure we don't fail to other
+ errors by removing use of `lib_LTLIBRARIES' in Makefile.am. Since
+ we are at it, make grepping of automake stderr stricter.
+
+2011-11-05 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ ar-lib: fix configure output for "unrecognized archiver interface"
+ * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
+ to determine the archiver interface kind, the "checking archiver
+ interface" message from configure is properly terminated before
+ an error message is printed, to avoid slightly garbled output.
+ * tests/ar4.test: Enhance.
+ * tests/ar5.test: Likewise.
+
+2011-11-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ warnings: fix buglets for portability warnings
+ * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
+ correct implications and inter-dependencies between warnings
+ in the categories `portability', `extra-portability' and
+ `recursive-portability' are respected. Also add detailed
+ explicative comments, and references to the relevant tests.
+ * tests/dollarvar2.test: Update and extend. Also, remove
+ some unnecessary uses of `--force' option in automake calls.
+ * tests/extra-portability3.test: New test.
+ * tests/Makefile.am (TESTS): Add it.
+
+2011-11-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: extend tests on 'extra-portability' warning category
+ * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
+ have complete control over the automake options. Extend by using
+ also a setup where no `portability' warning is present (only an
+ `extra-portability' warning is). Other minor extensions. Remove
+ some redundant, verbose comments about the expected diagnostic.
+
+2011-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: fix broken backport of tests on `extra-portability' warnings
+ * tests/extra-portability2.test: Ensure all the automake invocations
+ have the warnings in the `extra-portability' category enabled.
+ Report by Peter Rosin.
+
+2011-11-08 Peter Rosin <peda@lysator.liu.se>
+
+ tests: fix broken backport of AM_PROG_AR tests
+ * tests/ar-lib3.test: Explicitly request -Wextra-portability
+ in order to trigger the expected error.
+ * tests/ar-lib4.test: Likewise.
+
+2011-11-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ warnings: 'extra-portability' category is not implied by '-Wall'
+ This change is only intended for the 1.11.x series. In automake
+ 1.12, `-Wall' will be meant to enable `-Wextra-portability'.
+ * lib/Automake/ChannelDefs.pm (switch_warning): Do not enable
+ extra-portability warnings when `-Wall' is given. Use ...
+ ($have_extra_portability ): ... this new global variable.
+ Add a trailing "1;" to avoid spurious errors upon the importing
+ of this module.
+ * tests/extra-portability.test: Update and extend.
+ * NEWS: Update.
+
+2011-11-03 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: various minor tweakings, mostly related to AM_PROG_AR
+ * tests/alloca.test: Adjust to new portability requirements due
+ to the new AM_PROG_AR macro.
+ * tests/discover.test: Likewise.
+ * tests/libobj3.test: Likewise.
+ * tests/pluseq7.test: Likewise. Also, make grepping of automake
+ expected error message stricter.
+ * tests/stdlib.test: Likewise, and extend the test a bit.
+ * tests/parse.test (configure.in): Remove redundant call to
+ AC_PROG_RANLIB.
+ * tests/library2.test: Adjust to new portability requirements
+ due to the new AM_PROG_AR macro. Also ...
+ (configure.in): ... add call to AC_PROG_CC, to ensure automake
+ really fails for the expected reason.
+
2011-11-03 Zack Weinberg <zackw@panix.com> (tiny change)
Stefano Lattarini <stefano.lattarini@gmail.com>
@@ -908,6 +1044,29 @@
* tests/Makefile.am (XFAIL_TESTS): Add lex-subobj-nodep.test,
remove yacc-dist-nobuild-subdir.test.
+2011-10-25 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: few improvements to some `ar-lib' related tests
+
+ * tests/ar-lib5a.test (Makefile.am): Also check that the target
+ library has truly been created.
+ (ar-lib): Use the real `ar-lib' script (mildly patched) rather
+ than a dummy one, to ensure better "real-life coverage". Fix
+ botched shebang line.
+ * tests/ar-lib5b.test: Extend the PATH variable to make the dummy
+ `lib' script accessible, instead of explicitly calling it by its
+ relative/absolute path.
+ (ar-lib): Fix botched shebang line.
+ (bin/lib): Likewise. Also, add explicative comments, and make
+ slightly stricter.
+
+2011-10-24 Peter Rosin <peda@lysator.liu.se>
+
+ Merge branch 'maint' into msvc
+
+ * tests/subpkg-yacc.test: Adjust to new portability requirements due
+ to the new AM_PROG_AR macro.
+
2011-10-19 Stefano Lattarini <stefano.lattarini@gmail.com>
dejagnu: allow the package developer to extend site.exp
@@ -1394,6 +1553,81 @@
* NEWS, bootstrap: Update.
* doc/automake.texi (aclocal Options, Macro Search Path): Update.
+2011-10-21 Peter Rosin <peda@lysator.liu.se>
+
+ warnings: new 'extra-portability' category, for AM_PROG_AR
+ * lib/Automake/ChannelDefs.pm: Register new extra-portability
+ warning channel.
+ (switch_warning): Turn off extra-portability if portability is
+ turned off, and turn on portability if extra-portability is
+ turned on.
+ (set_strictness): Silence extra-portability for --gnits, --gnu
+ and --foreign.
+ * tests/extra-portability2.test: New test, checking that the
+ extra-portability channel is silenced by --gnits, --gnu and
+ --foreign.
+ * doc/automake.texi (Invoking Automake): Document the new warning
+ category and its interaction with the portability category.
+ * tests/extra-portability.test: New test, checking the interaction
+ between the portability and extra-portability warning categories.
+ * automake.in (handle_libraries, handle_ltlibraries): Move the
+ AM_PROG_AR warnings to the new extra-portability channel.
+ * tests/ar2.test: Adjust to the new warning channel.
+ * tests/pr300-lib.test: Likewise.
+ * tests/pr300-ltlib.test: Likewise.
+ * tests/pr307.test: Likewise.
+ * tests/pr401.test: Likewise.
+ * tests/pr401b.test: Likewise.
+ * tests/pr401c.test: Likewise.
+ * tests/pr72.test: Likewise.
+ * NEWS: Likewise.
+ * tests/Makefile.am (TESTS): Update.
+
+2011-10-21 Peter Rosin <peda@lysator.liu.se>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ Add new 'AM_PROG_AR' macro, triggering the 'ar-lib' script.
+ * m4/ar-lib.m4: New macro AM_PROG_AR, which locates an
+ archiver and triggers the auxiliary 'ar-lib' script if needed.
+ * m4/Makefile.am (dist_m4data_DATA): Update.
+ * automake.in ($seen_ar): New variable.
+ (scan_autoconf_traces): Set it.
+ (handle_libraries, handle_ltlibraries): Require AM_PROG_AR for
+ portability.
+ * doc/automake.texi (Public Macros): Mention the new
+ 'AM_PROG_AR' macro.
+ (Subpackages): Add AM_PROG_AR to the example.
+ (A Library): Adjust recommendations for AR given the new
+ AM_PROG_AR macro.
+ * All relevant tests: Adjust to new portability requirements due
+ to the new AM_PROG_AR macro.
+ * tests/ar-lib2.test: New test, checking that AM_PROG_AR triggers
+ install of ar-lib.
+ * tests/ar-lib3.test: New test, checking that lib_LIBRARIES
+ requires AM_PROG_AR.
+ * tests/ar-lib4.test: New test, checking that lib_LTLIBRARIES
+ requires AM_PROG_AR.
+ * tests/ar-lib5a.test: New test, checking that AM_PROG_AR triggers
+ use of ar-lib when the archiver is Microsoft lib.
+ * tests/ar-lib5b.test: New test, checking that AM_PROG_AR triggers
+ use of ar-lib when the archiver is a faked lib.
+ * tests/ar-lib6a.test: New test, checking the ordering of
+ AM_PROG_AR and LT_INIT.
+ * tests/ar-lib6b.test: New test, checking the ordering of
+ AM_PROG_AR and AC_PROG_LIBTOOL.
+ * tests/ar-lib7.test: New test, checking that automake warns
+ if ar-lib is missing.
+ * tests/ar3.test: New test, checking that AR and ARFLAGS may
+ be overridden by the user even if AM_PROG_AR is used.
+ * tests/ar4.test: New test, checking that AM_PROG_AR bails out
+ if it cannot determine the archiver interface.
+ * tests/ar5.test: New test, checking that AM_PROG_AR runs its
+ optional argument if it cannot determine the archiver interface.
+ * tests/defs.in: New required entry 'lib'.
+ * tests/Makefile.am (TESTS): Update.
+ * NEWS: Update.
+
2011-09-05 Peter Rosin <peda@lysator.liu.se>
* tests/amhello-binpkg.test: Add missing $EXEEXT usage.
@@ -2613,6 +2847,8 @@
* NEWS, README: Update copyright years.
+2011-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
Fix parallel-tests.test failure with HP-UX make.
* tests/parallel-tests.test: Sleep inside inner tests, so logs
are newer than logs of tests they depend on, for HP-UX make.
@@ -3335,6 +3571,8 @@
* tests/pr9.test: Likewise.
From a suggestion by Ralf Wildenhues.
+2010-09-08 Stefano Lattarini <stefano.lattarini@gmail.com>
+
Make some `confh*.test' tests more "semantic" (plus tweakings).
* tests/confh.test: Run "autoconf", "configure" and "make check",
instead of munging/grepping the generated `Makefile.in'.
@@ -3349,6 +3587,8 @@
* tests/Makefile.am (TESTS): Updated.
Prompted by a report from Ralf Wildenhues.
+2010-09-08 Stefano Lattarini <stefano.lattarini@gmail.com>
+
Remove useless whitespace padding in XFAIL_TESTS definition.
* tests/Makefile.am (XFAIL_TESTS): Remove whitespace padding.
@@ -3720,6 +3960,128 @@
* tests/cond5.test: Add delay before the first kill attempt to
cater for problems with MSYS bash.
+2010-11-16 Peter Rosin <peda@lysator.liu.se>
+
+ Skip MSVC oriented tests if the shell is not capable.
+ * tests/defs: New required entry 'xsi-shell'.
+ * tests/ar-lib.test, tests/compile3.test, tests/compile6.test:
+ Require a XSI capable shell.
+ Reported by Ralf Wildenhues.
+
+2010-11-15 Peter Rosin <peda@lysator.liu.se>
+
+ compile: clear the `eat' variable earlier.
+ * lib/compile: Clear the `eat' variable earlier.
+ ($scriptversion): Update.
+ * tests/compile3.test: Prevent regressions.
+
+2010-10-07 Peter Rosin <peda@lysator.liu.se>
+
+ depcomp: add new one-pass depmode for MSVC 7 and later.
+ * lib/depcomp: Add new depmodes 'msvc7' and 'msvc7msys' which
+ make use of the -showIncludes option added in MSVC 7.
+ * m4/depend.m4 (_AM_DEPENDENCIES): Handle the new depmodes
+ similarly to 'msvisualcpp' and 'msvcmsys' as MSVC does not
+ support the -o option.
+
+2010-10-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ tests: fix ar-lib.test for echo that interprets backslashes.
+ * tests/ar-lib.test: Use printf instead of echo. Avoid test -a.
+ More robust quoting.
+
+2010-09-21 Peter Rosin <peda@lysator.liu.se>
+
+ compile: implement library search to support MSVC static linking
+ * lib/compile (func_cl_wrapper): Implement library search and
+ -static option so that the user can select whether to prefer
+ dll import libraries or static libraries. This enables MSVC to
+ link against dlls generated by libtool without requiring libtool
+ or workarounds such as -lfoo.dll etc. Makes the tests/static.at
+ test case in libtool pass.
+ * tests/compile3.test: Don't trip up if there happens to exist
+ a "foo" library in the library search path.
+ * tests/compile6.test: New test, verifying the library search.
+ * tests/Makefile.am (TESTS): Update.
+
+2010-09-02 Peter Rosin <peda@lysator.liu.se>
+
+ Make ar-lib support backslashed files in archives.
+ * lib/ar-lib: If an archive member contains a backslash, make sure
+ it is escaped when the archive member is extracted.
+ * tests/ar-lib.test: Test the above.
+
+2010-08-31 Peter Rosin <peda@lysator.liu.se>
+
+ Do file name conversion for object files in the compile wrapper.
+ * lib/compile (func_cl_wrapper): Do file name conversion for object
+ files (i.e. extensions .obj, .OBJ, .o and .O) if needed.
+ * tests/compile4.test: Test the above.
+
+2010-08-16 Peter Rosin <peda@lysator.liu.se>
+
+ Optimize compile script on MSYS.
+ * lib/compile (func_file_conv): Add new argument 'lazy' which
+ takes an optional list of conversion types where the requested
+ conversion isn't needed.
+ (func_cl_wrapper): Take advantage of the above for cases where
+ MSYS is doing the conversion for us.
+ Suggested by Ralf Wildenhues.
+
+2010-08-16 Peter Rosin <peda@lysator.liu.se>
+
+ Support more C++ file extensions for MSVC in the compile script.
+ * lib/compile (func_cl_wrapper): MSVC only recognizes the .cpp
+ file extension as C++, unless it's given a hint. So hint about
+ .cc, .CC, .cxx, .CXX, c++ and C++. Also do path conversion on
+ .c, .cpp, .CPP, .lib, .LIB and .Lib files.
+ * tests/compile3.test: Test the C++ hinting.
+
+2010-08-12 Peter Rosin <peda@lysator.liu.se>
+
+ Enable the use of "link -lib" as the wrapped archiver.
+ * lib/ar-lib: Enable the use of "link -lib" as the wrapped
+ archiver, as well as allowing some other options to be passed
+ through to the wrapped archiver.
+ * tests/ar-lib.test: Test the above.
+
+2010-08-06 Peter Rosin <peda@lysator.liu.se>
+
+ Add new auxiliary 'ar-lib' script, wrapping Microsoft lib.
+ * lib/ar-lib: New auxiliary script.
+ * lib/Makefile.am: Add above.
+ * tests/ar-lib.test: New test.
+ * tests/Makefile.am: Add above.
+ * automake.in (@common_files): Distribute the 'ar-lib' script.
+ * doc/automake.texi (Auxiliary Programs): Mention the new
+ 'ar-lib' script.
+ (Optional): Mention 'ar-lib' in AC_CONFIG_AUX_DIR.
+ * NEWS: Update.
+
+2010-08-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix shell pattern negation in compile script.
+ * lib/compile (func_file_conv): Use `!' not `^' for pattern
+ negation.
+
+2010-08-01 Peter Rosin <peda@lysator.liu.se>
+
+ Wrap some MSVC options in the compile script.
+ * lib/compile: MSVC supports naming the output file, the option
+ is just not called -o, so transform -o into the appropriate form
+ for MSVC. Also wrap some other options while at it (-L, -l, -Wl,
+ -Xlinker and -I) and convert file names to windows form where
+ needed for those options to make MSVC more usable in an
+ autotooled environment.
+ * doc/automake.texi (Auxiliary Programs): Document the above
+ extension of the compile script.
+ * NEWS: Updated.
+ * tests/defs.in: New required entry 'cl'.
+ * tests/compile3.test: New test.
+ * tests/compile4.test: New test.
+ * tests/compile5.test: New test.
+ * tests/Makefile.am: Update.
+
2010-07-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Add example git work flow; discuss merge --log in HACKING.
@@ -3959,6 +4321,8 @@
* tests/ext.test: Add a comment explaining why an apparently
useless `if' statement is indeed required.
+2010-06-13 Stefano Lattarini <stefano.lattarini@gmail.com>
+
Add useful comment in test script obsolete.test.
* tests/obsolete.test: Add a comment explaining why we need
an indirection in adding $AUTOUPDATE to $required.
@@ -4026,6 +4390,8 @@
* tests/pluseq9.test: Slightly extended w.r.t. the grepping of
Automake stderr. Some unrelated cosmetic changes.
+2010-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
+
Testsuite: ensure verbose printing of captured stderr.
* tests/acloca18.test: Print captured stderr before either failing
or grepping it. Be sure to send captured stderr to stderr, not to
@@ -4326,28 +4692,6 @@
* tests/silent5.test: Likewise.
* tests/silent9.test: Likewise.
-2010-01-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix silent-rules output for disabled dependency tracking.
- * lib/am/depend2.am [!%FASTDEP%]: Rework silent-rules variable
- expansion code to also work in the case where %AMDEP% expands
- to FALSE at config.status time, using new substitution string
- %VERBOSE-NODEP%.
- * automake.in (verbose_nodep_flag): New function, appending
- `@am__nodep@' to the verbose-variable name.
- (handle_languages): If dependencies are not disabled, use it to
- set %VERBOSE-NODEP%.
- * m4/depend.m4: Substitute am__nodep as '_no', so the second
- verbose-variable will always expand to an empty string, if
- dependencies are enabled.
- * tests/silent5.test: Also test --disable-dependency-tracking;
- also test per-target flags for non-C language files.
- * tests/silent9.test: New test, like silent4.test but disable
- dependency tracking.
- * tests/Makefile.am: Adjust.
- * NEWS, THANKS: Update.
- Report by Dmitry V. Levin <ldv@altlinux.org>.
-
2010-05-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Extend test on `nostdinc' automake option.
@@ -4635,6 +4979,11 @@
Fix copyright statement in gnupload script.
* lib/gnupload: Fix copyright statement.
+2010-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Merge NEWS entry correctly.
+ * NEWS: Fix mis-merge.
+
2010-02-06 Dmitry V. Levin <ldv@altlinux.org> (tiny change)
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
@@ -4660,6 +5009,28 @@
Fix some typos in the manual
* doc/automake.texi (Nested Packages, Rebuilding): Fix typos.
+2010-01-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix silent-rules output for disabled dependency tracking.
+ * lib/am/depend2.am [!%FASTDEP%]: Rework silent-rules variable
+ expansion code to also work in the case where %AMDEP% expands
+ to FALSE at config.status time, using new substitution string
+ %VERBOSE-NODEP%.
+ * automake.in (verbose_nodep_flag): New function, appending
+ `@am__nodep@' to the verbose-variable name.
+ (handle_languages): If dependencies are not disabled, use it to
+ set %VERBOSE-NODEP%.
+ * m4/depend.m4: Substitute am__nodep as '_no', so the second
+ verbose-variable will always expand to an empty string, if
+ dependencies are enabled.
+ * tests/silent5.test: Also test --disable-dependency-tracking;
+ also test per-target flags for non-C language files.
+ * tests/silent9.test: New test, like silent4.test but disable
+ dependency tracking.
+ * tests/Makefile.am: Adjust.
+ * NEWS, THANKS: Update.
+ Report by Dmitry V. Levin <ldv@altlinux.org>.
+
2010-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Slighty improve tests acoutbs.test and acoutbs2.test.
diff --git a/HACKING b/HACKING
index 26f1d91e4..5420fbcad 100644
--- a/HACKING
+++ b/HACKING
@@ -174,6 +174,9 @@
* Use `keep_testdirs=yes' to keep test directories for successful
tests also.
+* Use perl coverage information to ensure your new code is thoroughly
+ tested by your new tests.
+
* See file `tests/README' for more information.
================================================================
diff --git a/NEWS b/NEWS
index eb9af221f..9a09c8487 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-New in 1.11.0a:
+New in 1.11.2c:
* WARNING: Future backward-incompatibilities!
@@ -10,13 +10,14 @@ New in 1.11.0a:
recheck-html targets will be removed in the next major Automake
release (1.12).
+ - The obsolescent AM_WITH_REGEX macro has been deprecated (since the
+ GNU rx library has been decommissioned), and will be removed in the
+ next major Automake release (1.12).
+
- The `lzma' compression format for distribution archives has been
deprecated in favor of `xz' and `lzip', and will be removed in the
next major Automake release (1.12).
- - The Automake support for automatic de-ANSI-fication will be removed in
- the next major Automake release (1.12).
-
- The `--acdir' option of aclocal is deprecated, and will probably be
removed in the next major Automake release (1.12).
@@ -24,19 +25,12 @@ New in 1.11.0a:
search path are looked up is probably going to be changed in the
next Automake release (1.12).
- - The obsolescent AM_WITH_REGEX macro has been deprecated (since the
- GNU rx library has been decommissioned), and will be removed in the
- next major Automake release (1.12).
+ - The Automake support for automatic de-ANSI-fication will be removed
+ in the next major Automake release (1.12).
-* Changes to aclocal:
-
- - The `--acdir' option is deprecated. Now you should use the new options
- `--automake-acdir' and `--system-acdir' instead.
-
- - The `ACLOCAL_PATH' environment variable is now interpreted as a
- colon-separated list of additional directories to search after the
- automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION)
- and before the system acdir (by default ${prefix}/share/aclocal).
+ - Starting from the next Automake release (1.12), warnings in the
+ `extra-portability' category will be enabled by `-Wall' (right now,
+ one has to use `-Wextra-portability' explicitly).
* Miscellaneous changes:
@@ -67,6 +61,56 @@ New in 1.11.0a:
- The last relics of Python 1.5 support have been removed from the
AM_PATH_PYTHON macro.
+ - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
+ and adds them to the normal list of dependencies, but without
+ overwriting the foo_DEPENDENCIES variable, which is normally computed
+ by automake.
+
+Bugs fixed in 1.11.2c:
+
+* Bugs introduced by 1.11.2:
+
+ - Automake now correctly recognizes the prefix/primary combination
+ `pkglibexec_SCRIPTS' as valid.
+
+ - The parallel-tests harness doesn't trip anymore on sed implementations
+ with stricter limits on the length of input lines (problem seen at
+ least on Solaris 8).
+
+* Long-standing bugs:
+
+ - The "deleted header file problem" for *.am files is avoided by stub
+ rules. This allows `make' to trigger a rerun of `automake' also if
+ some previously needed `.am' file has been removed.
+
+ - The `silent-rules' option now generates working makefiles even
+ for the uncommon `make' implementations that do not support the
+ nested-variables extension to POSIX 2008. For such `make'
+ implementations, whether a build is silent is determined at
+ configure time, and cannot be overridden at make time with
+ `make V=0' or `make V=1'.
+
+ - Vala support now works better in VPATH setups.
+
+
+New in 1.11.2:
+
+* Changes to aclocal:
+
+ - The `--acdir' option is deprecated. Now you should use the new options
+ `--automake-acdir' and `--system-acdir' instead.
+
+ - The `ACLOCAL_PATH' environment variable is now interpreted as a
+ colon-separated list of additional directories to search after the
+ automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION)
+ and before the system acdir (by default ${prefix}/share/aclocal).
+
+* Miscellaneous changes:
+
+ - The Automake support for automatic de-ANSI-fication has been
+ deprecated. It will probably be removed in the next major Automake
+ release (1.12).
+
- The `lzma' compression scheme and associated automake option `dist-lzma'
is obsoleted by `xz' and `dist-xz' due to upstream changes.
@@ -75,6 +119,9 @@ New in 1.11.0a:
specify a different level via the XZ_OPT and BZIP2 envvars respectively.
E.g., "make dist-xz XZ_OPT=-7" or "make dist-bzip2 BZIP2=-5"
+ - The `compile' script now converts some options for MSVC for a better
+ user experience. Similarly, the new `ar-lib' script wraps Microsoft lib.
+
- The py-compile script now accepts empty arguments passed to the options
`--destdir' and `--basedir', and complains about unrecognized options.
Moreover, a non-option argument or a special `--' argument terminates
@@ -88,6 +135,11 @@ New in 1.11.0a:
user; still, the old Makefile.am files that used to define it will
still continue to work as before.
+ - New macro AM_PROG_AR that looks for an archiver and wraps it in the new
+ 'ar-lib' auxiliary script if the selected archiver is Microsoft lib.
+ This new macro is required for LIBRARIES and LTLIBRARIES when automake
+ is run with -Wextra-portability and -Werror.
+
- When using DejaGnu-based testsuites, the user can extend the `site.exp'
file generated by automake-provided rules by defining the special make
variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'.
@@ -96,28 +148,15 @@ New in 1.11.0a:
the `${infodir}/dir' file, by exporting the new environment variable
`AM_UPDATE_INFO_DIR' to the value "no".
- - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
- and adds them to the normal list of dependencies, but without
- overwriting the foo_DEPENDENCIES variable, which is normally computed
- by automake.
-
-Bugs fixed in 1.11.0a:
-
-* Bugs introduced by 1.11.2:
-
- - Automake now correctly recognizes the prefix/primary combination
- `pkglibexec_SCRIPTS' as valid.
+Bugs fixed in 1.11.2:
* Bugs introduced by 1.11:
- - The parallel-tests harness doesn't trip anymore on sed implementations
- with stricter limits on the length of input lines (problem seen at
- least on Solaris 8).
+ - The parallel-tests driver no longer produces erroneous results with
+ Tru64/OSF 5.1 sh upon unreadable log files.
- - The `parallel-tests' test driver works around a GNU make 3.80 bug with
- trailing white space in the test list (`TESTS = foo $(EMPTY)'), and
- does not report spurious successes when used with concurrent FreeBSD
- make (e.g., "make check -j3").
+ - The `parallel-tests' test driver does not report spurious successes
+ when used with concurrent FreeBSD make (e.g., "make check -j3").
- When the parallel-tests driver is in use, automake now explicitly
rejects invalid entries and conditional contents in TEST_EXTENSIONS,
@@ -131,23 +170,14 @@ Bugs fixed in 1.11.0a:
not used, `make' output no longer contains spurious backslash-only
lines, thus once again matching what Automake did before 1.11.
- - The `silent-rules' option now generates working makefiles even for
- the uncommon `make' implementations that do not support the
- nested-variables extension to POSIX 2008. For such `make'
- implementations, whether a build is silent is determined at
- configure time, and cannot be overridden at make time with
- `make V=0' or `make V=1'.
-
- - The AM_COND_IF macro also works if the shell expression for the conditional
- is no longer valid for the condition.
+ - The AM_COND_IF macro also works if the shell expression for the
+ conditional is no longer valid for the condition.
* Long-standing bugs:
- - Vala support now works better in VPATH setups.
-
- - The "deleted header file problem" for *.am files is avoided by stub
- rules. This allows `make' to trigger a rerun of `automake' also if
- some previously needed `.am' file has been removed.
+ - The order of Yacc and Lex flags is fixed to be consistent with other
+ languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
+ $(LFLAGS), so that the user variables override the developer variables.
- "make distcheck" now correctly complains also when "make uninstall"
leaves one and only one file installed in $(prefix).
@@ -159,17 +189,9 @@ Bugs fixed in 1.11.0a:
- Automake now warns about more primary/directory invalid combinations,
such as "doc_LIBRARIES" or "pkglib_PROGRAMS".
- - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
- even if the `--prefix' argument pointed outside of a system directory.
- AM_PATH_PYTHON has been fixed to ignore the value returned from python's
- `get_python_lib' function if it points outside the configured prefix,
- unless the `--prefix' argument was either `/usr' or below `/System'.
-
- - The testsuite does not try to change the mode of `ltmain.sh' files from
- a Libtool installation (symlinked to test directories) any more.
-
- - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed
- tools are preferred in a cross-compile setup.
+ - Rules generated by Automake now try harder to not change any files when
+ `make -n' is invoked. Fixes include compilation of Emacs Lisp, Vala, or
+ Yacc source files and the rule to update config.h.
- Several scripts and the parallel-tests testsuite driver now exit with
the right exit status upon receiving a signal.
@@ -177,21 +199,10 @@ Bugs fixed in 1.11.0a:
- A per-Makefile.am setting of -Werror does not erroneously carry over
to the handling of other Makefile.am files.
- - The order of Yacc and Lex flags is now consistent with that of other
- languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
- $(LFLAGS), so that the user variables override the developer variables.
-
- - Rules generated by Automake now try harder not to change any files when
- `make -n' is invoked. Fixes include compilation of Emacs Lisp, Vala, or
- Yacc source files and the rule to update config.h.
-
- The code for automatic dependency tracking works around a Solaris
make bug triggered by sources containing repeated slashes when the
`subdir-objects' option was used.
- - The parallel-tests driver no longer produces erroneous results with
- Tru64/OSF 5.1 sh upon unreadable log files.
-
- The makedepend and hp depmodes now work better with VPATH builds.
- Java sources specified with check_JAVA are no longer compiled for
@@ -209,6 +220,34 @@ Bugs fixed in 1.11.0a:
change its behaviour; this has proven to be frail and easy to
regress.
+Bugs fixed in 1.11.1:
+
+ - Lots of minor bugfixes.
+
+* Bugs introduced by 1.11:
+
+ - The `parallel-tests' test driver works around a GNU make 3.80 bug with
+ trailing white space in the test list (`TESTS = foo $(EMPTY)').
+
+* Long standing bugs:
+
+ - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
+ even if the `--prefix' argument pointed outside of a system directory.
+ AM_PATH_PYTHON has been fixed to ignore the value returned from python's
+ `get_python_lib' function if it points outside the configured prefix,
+ unless the `--prefix' argument was either `/usr' or below `/System'.
+
+ - The testsuite does not try to change the mode of `ltmain.sh' files from
+ a Libtool installation (symlinked to test directories) any more.
+
+ - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed
+ tools are preferred in a cross-compile setup.
+
+ - The distribution is tarred up with mode 755 now by the `dist*' targets.
+ This fixes a race condition where untrusted users could modify files
+ in the $(PACKAGE)-$(VERSION) distdir before packing if the toplevel
+ build directory was world-searchable. This is CVE-2009-4029.
+
New in 1.11:
* Version requirements:
diff --git a/automake.in b/automake.in
index cdbb820b2..69b601093 100644
--- a/automake.in
+++ b/automake.in
@@ -235,9 +235,9 @@ my @libtool_sometimes = qw(ltconfig ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh);
my @common_files =
(qw(ABOUT-GNU ABOUT-NLS AUTHORS BACKLOG COPYING COPYING.DOC COPYING.LIB
COPYING.LESSER ChangeLog INSTALL NEWS README THANKS TODO
- ansi2knr.1 ansi2knr.c compile config.guess config.rpath config.sub
- depcomp elisp-comp install-sh libversion.in mdate-sh missing
- mkinstalldirs py-compile texinfo.tex ylwrap),
+ ansi2knr.1 ansi2knr.c ar-lib compile config.guess config.rpath
+ config.sub depcomp elisp-comp install-sh libversion.in mdate-sh
+ missing mkinstalldirs py-compile texinfo.tex ylwrap),
@libtool_files, @libtool_sometimes);
# Commonly used files we auto-include, but only sometimes. This list
@@ -396,6 +396,9 @@ my $package_version_location;
# TRUE if we've seen AM_ENABLE_MULTILIB.
my $seen_multilib = 0;
+# TRUE if we've seen AM_PROG_AR
+my $seen_ar = 0;
+
# TRUE if we've seen AM_PROG_CC_C_O
my $seen_cc_c_o = 0;
@@ -2816,6 +2819,13 @@ sub handle_libraries
&check_libobjs_sources ($xlib, $xlib . '_LIBADD');
}
}
+
+ if (! $seen_ar)
+ {
+ msg ('extra-portability', $where,
+ "`$onelib': linking libraries using a non-POSIX\n"
+ . "archiver requires `AM_PROG_AR' in `$configure_ac'")
+ }
}
}
@@ -3054,6 +3064,13 @@ sub handle_ltlibraries
&check_libobjs_sources ($xlib, $xlib . '_LIBADD');
}
}
+
+ if (! $seen_ar)
+ {
+ msg ('extra-portability', $where,
+ "`$onelib': linking libtool libraries using a non-POSIX\n"
+ . "archiver requires `AM_PROG_AR' in `$configure_ac'")
+ }
}
}
@@ -5309,6 +5326,7 @@ sub scan_autoconf_traces ($)
AM_GNU_GETTEXT_INTL_SUBDIR => 0,
AM_INIT_AUTOMAKE => 0,
AM_MAINTAINER_MODE => 0,
+ AM_PROG_AR => 0,
AM_PROG_CC_C_O => 0,
AM_SILENT_RULES => 0,
_AM_SUBST_NOTMAKE => 1,
@@ -5500,6 +5518,10 @@ sub scan_autoconf_traces ($)
{
$seen_maint_mode = $where;
}
+ elsif ($macro eq 'AM_PROG_AR')
+ {
+ $seen_ar = $where;
+ }
elsif ($macro eq 'AM_PROG_CC_C_O')
{
$seen_cc_c_o = $where;
diff --git a/configure.ac b/configure.ac
index 18dbd8aa2..7c902eb19 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ([2.68])
-AC_INIT([GNU Automake], [1.11.0a], [bug-automake@gnu.org])
+AC_INIT([GNU Automake], [1.11.2c], [bug-automake@gnu.org])
AC_CONFIG_SRCDIR([automake.in])
AC_CONFIG_AUX_DIR([lib])
diff --git a/doc/automake.texi b/doc/automake.texi
index fb0e5e715..b309a8770 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -2246,6 +2246,10 @@ copies are updated before each release, but we mention the original
source in case you need more recent versions.
@table @code
+@item ar-lib
+This is a wrapper primarily for the Microsoft lib archiver, to make
+it more POSIX-like.
+
@item ansi2knr.c
@itemx ansi2knr.1
These two files are used for de-ANSI-fication support (they are
@@ -2255,7 +2259,11 @@ release; @pxref{ANSI}).
@item compile
This is a wrapper for compilers that do not accept options @option{-c}
and @option{-o} at the same time. It is only used when absolutely
-required. Such compilers are rare.
+required. Such compilers are rare, with the Microsoft C/C++ Compiler
+as the most notable exception. This wrapper also makes the following
+common options available for that compiler, while performing file name
+translation where needed: @option{-I}, @option{-L}, @option{-l},
+@option{-Wl,} and @option{-Xlinker}.
@item config.guess
@itemx config.sub
@@ -2679,6 +2687,9 @@ user redefinitions of Automake rules or variables
@item portability
portability issues (e.g., use of @command{make} features that are
known to be not portable)
+@item extra-portability
+extra portability issues related to obscure tools. One example of such
+a tool is the Microsoft @command{lib} archiver.
@item syntax
weird syntax, unused variables, typos
@item unsupported
@@ -2701,6 +2712,12 @@ are enabled in @option{--gnu} and @option{--gnits} strictness.
On the other hand, the @option{silent-rules} options (@pxref{Options})
turns off portability warnings about recursive variable expansions.
+@c Checked by extra-portability.test
+Turning off @samp{portability} will also turn off @samp{extra-portability},
+and similarly turning on @samp{extra-portability} will also turn on
+@samp{portability}. However, turning on @samp{portability} or turning
+off @samp{extra-portability} will not affect the other category.
+
@vindex WARNINGS
The environment variable @env{WARNINGS} can contain a comma separated
list of categories to enable. It will be taken into account before the
@@ -2922,12 +2939,12 @@ The Autoconf Manual}.
Automake will look for various helper scripts, such as
@file{install-sh}, in the directory named in this macro invocation.
@c This list is accurate relative to version 1.8
-(The full list of scripts is: @file{config.guess}, @file{config.sub},
-@file{depcomp}, @file{elisp-comp}, @file{compile}, @file{install-sh},
-@file{ltmain.sh}, @file{mdate-sh}, @file{missing}, @file{mkinstalldirs},
-@file{py-compile}, @file{texinfo.tex}, and @file{ylwrap}.) Not all
-scripts are always searched for; some scripts will only be sought if the
-generated @file{Makefile.in} requires them.
+(The full list of scripts is: @file{ar-lib}, @file{config.guess},
+@file{config.sub}, @file{depcomp}, @file{elisp-comp}, @file{compile},
+@file{install-sh}, @file{ltmain.sh}, @file{mdate-sh}, @file{missing},
+@file{mkinstalldirs}, @file{py-compile}, @file{texinfo.tex}, and
+@file{ylwrap}.) Not all scripts are always searched for; some scripts
+will only be sought if the generated @file{Makefile.in} requires them.
If @code{AC_CONFIG_AUX_DIR} is not given, the scripts are looked for in
their standard locations. For @file{mdate-sh},
@@ -4000,6 +4017,15 @@ environment, or use the @option{--with-lispdir} option to
@command{configure} to explicitly set the correct path (if you're sure
you have an @command{emacs} that supports Emacs Lisp).
+@item AM_PROG_AR(@ovar{act-if-fail})
+@acindex AM_PROG_AR
+@vindex AR
+You must use this macro when you use the archiver in your project, if
+you want support for unusual archivers such as Microsoft @command{lib}.
+The content of the optional argument is executed if the archiver
+interface is not recognized; the default action is to abort configure
+with an error message.
+
@item AM_PROG_AS
@acindex AM_PROG_AS
@vindex CCAS
@@ -4625,6 +4651,7 @@ AC_INIT([hand], [1.2])
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
@@ -5070,12 +5097,14 @@ by invoking @samp{$(AR) $(ARFLAGS)} followed by the name of the
library and the list of objects, and finally by calling
@samp{$(RANLIB)} on that library. You should call
@code{AC_PROG_RANLIB} from your @file{configure.ac} to define
-@code{RANLIB} (Automake will complain otherwise). @code{AR} and
-@code{ARFLAGS} default to @code{ar} and @code{cru} respectively; you
-can override these two variables my setting them in your
-@file{Makefile.am}, by @code{AC_SUBST}ing them from your
-@file{configure.ac}, or by defining a per-library @code{maude_AR}
-variable (@pxref{Program and Library Variables}).
+@code{RANLIB} (Automake will complain otherwise). You should also
+call @code{AM_PROG_AR} to define @code{AR}, in order to support unusual
+archivers such as Microsoft lib. @code{ARFLAGS} will default to
+@code{cru}; you can override this variable by setting it in your
+@file{Makefile.am} or by @code{AC_SUBST}ing it from your
+@file{configure.ac}. You can override the @code{AR} variable by
+defining a per-library @code{maude_AR} variable (@pxref{Program and
+Library Variables}).
@cindex Empty libraries
Be careful when selecting library components conditionally. Because
@@ -13453,6 +13482,10 @@ parentheses is the number of generated test cases.
@item 2008-01-19 @tab 1.10.1 @tab 7870 @tab 1089 @tab 8025 @tab 3520 (40) @tab 1499 (34) @tab 173 @tab 617
@item 2008-11-23 @tab 1.10.2 @tab 7882 @tab 1089 @tab 8027 @tab 3540 (40) @tab 1509 (34) @tab 176 @tab 628
@item 2009-05-17 @tab 1.11 @tab 8721 @tab 1092 @tab 8289 @tab 4164 (42) @tab 1714 (37) @tab 181 @tab 732 (20)
+@item 2009-12-07 @tab 1.10.3 @tab 7892 @tab 1089 @tab 8027 @tab 3566 (40) @tab 1535 (34) @tab 174 @tab 636
+@item 2009-12-07 @tab 1.11.1 @tab 8722 @tab 1092 @tab 8292 @tab 4162 (42) @tab 1730 (37) @tab 181 @tab 739 (20)
+@item 2011-12-21 @tab 1.11.2 @tab 8822 @tab 1112 @tab 8330 @tab 4223 (42) @tab 1821 (38) @tab 189 @tab 915 (22)
+@item 2012-01-24 @tab 1.11.2b @tab 8789 @tab 1068 @tab 8453 @tab 4280 (43) @tab 1852 (38) @tab 190 @tab 931 (22)
@end multitable
diff --git a/lib/Automake/ChannelDefs.pm b/lib/Automake/ChannelDefs.pm
index aaca97920..9b6d3a584 100644
--- a/lib/Automake/ChannelDefs.pm
+++ b/lib/Automake/ChannelDefs.pm
@@ -115,6 +115,10 @@ variables (silent by default).
Warnings about non-portable constructs.
+=item C<extra-portability>
+
+Extra warnings about non-portable constructs covering obscure tools.
+
=item C<syntax>
Warnings about weird syntax, unused variables, typos...
@@ -151,6 +155,7 @@ register_channel 'automake', type => 'fatal', backtrace => 1,
footer => "\nPlease contact <$PACKAGE_BUGREPORT>.",
uniq_part => UP_NONE, ordered => 0;
+register_channel 'extra-portability', type => 'warning', silent => 1;
register_channel 'gnu', type => 'warning';
register_channel 'obsolete', type => 'warning', silent => 1;
register_channel 'override', type => 'warning', silent => 1;
@@ -180,6 +185,7 @@ sub usage ()
`obsolete' obsolete features or constructions
`override' user redefinitions of Automake rules or variables
`portability' portability issues (default in gnu and gnits modes)
+ `extra-portability' extra portability issues related to obscure tools
`syntax' dubious syntactic constructs (default)
`unsupported' unsupported or incomplete features (default)
`all' all the warnings
@@ -252,6 +258,10 @@ Else handle C<all> and C<none> for completeness.
=cut
+# HACK to have `-Wextra-portability' *not* implied by `-Wall'.
+# This will go away in automake 1.12.
+my $have_extra_portability = 0;
+
sub switch_warning ($)
{
my ($cat) = @_;
@@ -266,6 +276,8 @@ sub switch_warning ($)
if ($cat eq 'all')
{
setup_channel_type 'warning', silent => $has_no;
+ setup_channel 'extra-portability', silent => 1
+ unless $have_extra_portability;
}
elsif ($cat eq 'none')
{
@@ -284,6 +296,17 @@ sub switch_warning ($)
setup_channel $cat, silent => $has_no;
setup_channel 'portability-recursive', silent => $has_no
if $cat eq 'portability';
+ if ($cat eq 'portability' && $has_no)
+ {
+ setup_channel 'extra-portability', silent => 1;
+ $have_extra_portability = 0;
+ }
+ if ($cat eq 'extra-portability' && ! $has_no)
+ {
+ setup_channel 'portability', silent => 0;
+ setup_channel 'portability-recursive', silent => 0;
+ $have_extra_portability = 1;
+ }
}
else
{
@@ -345,6 +368,7 @@ sub set_strictness ($)
setup_channel 'error-gnu/warn', silent => 0, type => 'error';
setup_channel 'error-gnits', silent => 1;
setup_channel 'portability', silent => 0;
+ setup_channel 'extra-portability', silent => 1;
setup_channel 'gnu', silent => 0;
}
elsif ($name eq 'gnits')
@@ -353,6 +377,7 @@ sub set_strictness ($)
setup_channel 'error-gnu/warn', silent => 0, type => 'error';
setup_channel 'error-gnits', silent => 0;
setup_channel 'portability', silent => 0;
+ setup_channel 'extra-portability', silent => 1;
setup_channel 'gnu', silent => 0;
}
elsif ($name eq 'foreign')
@@ -361,6 +386,7 @@ sub set_strictness ($)
setup_channel 'error-gnu/warn', silent => 0, type => 'warning';
setup_channel 'error-gnits', silent => 1;
setup_channel 'portability', silent => 1;
+ setup_channel 'extra-portability', silent => 1;
setup_channel 'gnu', silent => 1;
}
else
@@ -369,6 +395,8 @@ sub set_strictness ($)
}
}
+1;
+
=back
=head1 SEE ALSO
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 410282857..f4acc8afe 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -2,7 +2,8 @@
## Makefile for Automake lib.
-# Copyright (C) 2001, 2003, 2004, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2004, 2009, 2010 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
@@ -28,7 +29,7 @@ dist_pkgvdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 \
scriptdir = $(pkgvdatadir)
dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \
mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile \
- symlink-tree
+ symlink-tree ar-lib
EXTRA_DIST = gnupload gitlog-to-changelog
diff --git a/lib/ar-lib b/lib/ar-lib
new file mode 100755
index 000000000..c0286a4c9
--- /dev/null
+++ b/lib/ar-lib
@@ -0,0 +1,265 @@
+#! /bin/sh
+# Wrapper for Microsoft lib.exe
+
+me=ar-lib
+scriptversion=2012-01-30.22; # UTC
+
+# Copyright (C) 2010, 2012 Free Software Foundation, Inc.
+# Written by Peter Rosin <peda@lysator.liu.se>.
+#
+# 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, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+
+# func_error message
+func_error ()
+{
+ echo "$me: $1" 1>&2
+ exit 1
+}
+
+file_conv=
+
+# func_file_conv build_file
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv in
+ mingw)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_at_file at_file operation archive
+# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
+# for each of them.
+# When interpreting the content of the @FILE, do NOT use func_file_conv,
+# since the user would need to supply preconverted file names to
+# binutils ar, at least for MinGW.
+func_at_file ()
+{
+ operation=$2
+ archive=$3
+ at_file_contents=`cat "$1"`
+ eval set x "$at_file_contents"
+ shift
+
+ for member
+ do
+ $AR -NOLOGO $operation:"$member" "$archive" || exit $?
+ done
+}
+
+case $1 in
+ '')
+ func_error "no command. Try '$0 --help' for more information."
+ ;;
+ -h | --h*)
+ cat <<EOF
+Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
+
+Members may be specified in a file named with @FILE.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "$me, version $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test $# -lt 3; then
+ func_error "you must specify a program, an action and an archive"
+fi
+
+AR=$1
+shift
+while :
+do
+ if test $# -lt 2; then
+ func_error "you must specify a program, an action and an archive"
+ fi
+ case $1 in
+ -lib | -LIB \
+ | -ltcg | -LTCG \
+ | -machine* | -MACHINE* \
+ | -subsystem* | -SUBSYSTEM* \
+ | -verbose | -VERBOSE \
+ | -wx* | -WX* )
+ AR="$AR $1"
+ shift
+ ;;
+ *)
+ action=$1
+ shift
+ break
+ ;;
+ esac
+done
+orig_archive=$1
+shift
+func_file_conv "$orig_archive"
+archive=$file
+
+# strip leading dash in $action
+action=${action#-}
+
+delete=
+extract=
+list=
+replace=
+create=
+
+while test -n "$action"
+do
+ case $action in
+ d*) delete=yes ;;
+ x*) extract=yes ;;
+ t*) list=yes ;;
+ r*) replace=yes ;;
+ c*) create=yes ;;
+ u*) ;; # TODO: don't ignore the update modifier
+ v*) ;; # TODO: don't ignore the verbose modifier
+ *)
+ func_error "unknown action specified"
+ ;;
+ esac
+ action=${action#?}
+done
+
+case $delete$extract$list$replace in
+ yes)
+ ;;
+ yesyes*)
+ func_error "more than one action specified"
+ ;;
+ *)
+ func_error "no action specified"
+ ;;
+esac
+
+if test -n "$delete"; then
+ if test ! -f "$orig_archive"; then
+ func_error "archive not found"
+ fi
+ for member
+ do
+ case $1 in
+ @*)
+ func_at_file "${1#@}" -REMOVE "$archive"
+ ;;
+ *)
+ func_file_conv "$1"
+ $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
+ ;;
+ esac
+ done
+
+elif test -n "$extract"; then
+ if test ! -f "$orig_archive"; then
+ func_error "archive not found"
+ fi
+ if test $# -gt 0; then
+ for member
+ do
+ case $1 in
+ @*)
+ func_at_file "${1#@}" -EXTRACT "$archive"
+ ;;
+ *)
+ func_file_conv "$1"
+ $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
+ ;;
+ esac
+ done
+ else
+ $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
+ do
+ $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+ done
+ fi
+
+elif test -n "$replace"; then
+ if test ! -f "$orig_archive"; then
+ if test -z "$create"; then
+ echo "$me: creating $orig_archive"
+ fi
+ orig_archive=
+ else
+ orig_archive=$archive
+ fi
+
+ for member
+ do
+ case $1 in
+ @*)
+ func_file_conv "${1#@}"
+ set x "$@" "@$file"
+ ;;
+ *)
+ func_file_conv "$1"
+ set x "$@" "$file"
+ ;;
+ esac
+ shift
+ shift
+ done
+
+ if test -n "$orig_archive"; then
+ $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
+ else
+ $AR -NOLOGO -OUT:"$archive" "$@" || exit $?
+ fi
+
+elif test -n "$list"; then
+ if test ! -f "$orig_archive"; then
+ func_error "archive not found"
+ fi
+ $AR -NOLOGO -LIST "$archive" || exit $?
+fi
diff --git a/lib/compile b/lib/compile
index c0096a7b5..b1f474915 100755
--- a/lib/compile
+++ b/lib/compile
@@ -1,10 +1,10 @@
#! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
+# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2009-10-06.20; # UTC
+scriptversion=2012-01-04.17; # UTC
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
+# Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -29,21 +29,186 @@ scriptversion=2009-10-06.20; # UTC
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l*)
+ lib=${1#-l}
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ set x "$@" "$dir/$lib.dll.lib"
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ set x "$@" "$dir/$lib.lib"
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ test "$found" != yes && set x "$@" "$lib.lib"
+ shift
+ ;;
+ -L*)
+ func_file_conv "${1#-L}"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
case $1 in
'')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
+right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
@@ -53,11 +218,13 @@ EOF
echo "compile $scriptversion"
exit $?
;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
esac
ofile=
cfile=
-eat=
for arg
do
@@ -66,8 +233,8 @@ do
else
case $1 in
-o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we strip `-o arg' only if arg is an object.
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
@@ -94,10 +261,10 @@ do
done
if test -z "$ofile" || test -z "$cfile"; then
- # If no `-o' option was seen then we might have been invoked from a
+ # If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
- # `.c' file was seen then we are probably linking. That is also
+ # '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
@@ -106,7 +273,7 @@ fi
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
-# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
diff --git a/lib/depcomp b/lib/depcomp
index 5621fd4df..bd0ac0895 100755
--- a/lib/depcomp
+++ b/lib/depcomp
@@ -3,8 +3,8 @@
scriptversion=2011-12-04.11; # UTC
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2011,
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+# 2011 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
@@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
- cygpath_u="sed s,\\\\\\\\,/,g"
+ cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
@@ -407,6 +415,52 @@ tru64)
rm -f "$tmpdepfile"
;;
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test "$stat" = 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/ \1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/ /
+ G
+ p
+}' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
diff --git a/m4/Makefile.am b/m4/Makefile.am
index b0e0d8406..c1442f608 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -23,6 +23,7 @@ system_acdir = $(datadir)/aclocal
dist_automake_ac_DATA = \
$(top_srcdir)/m4/amversion.m4 \
+ar-lib.m4 \
as.m4 \
auxdir.m4 \
ccstdc.m4 \
diff --git a/m4/amversion.m4 b/m4/amversion.m4
index 5f1f2b7ce..9a914c1dd 100644
--- a/m4/amversion.m4
+++ b/m4/amversion.m4
@@ -18,7 +18,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.0a], [],
+m4_if([$1], [1.11.2c], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -34,7 +34,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.0a])dnl
+[AM_AUTOMAKE_VERSION([1.11.2c])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/m4/ar-lib.m4 b/m4/ar-lib.m4
new file mode 100644
index 000000000..e45c558dd
--- /dev/null
+++ b/m4/ar-lib.m4
@@ -0,0 +1,61 @@
+## -*- Autoconf -*-
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_PROG_AR([ACT-IF-FAIL])
+# -------------------------
+# Try to determine the archiver interface, and trigger the ar-lib wrapper
+# if it is needed. If the detection of archiver interface fails, run
+# ACT-IF-FAIL (default is to abort configure with a proper error message).
+AC_DEFUN([AM_PROG_AR],
+[AC_BEFORE([$0], [LT_INIT])dnl
+AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([ar-lib])dnl
+AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
+: ${AR=ar}
+
+AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
+ [am_cv_ar_interface=ar
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
+ [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+ AC_TRY_EVAL([am_ar_try])
+ if test "$ac_status" -eq 0; then
+ am_cv_ar_interface=ar
+ else
+ am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+ AC_TRY_EVAL([am_ar_try])
+ if test "$ac_status" -eq 0; then
+ am_cv_ar_interface=lib
+ else
+ am_cv_ar_interface=unknown
+ fi
+ fi
+ rm -f conftest.lib libconftest.a
+ ])
+ ])
+
+case $am_cv_ar_interface in
+ar)
+ ;;
+lib)
+ # Microsoft lib, so override with the ar-lib wrapper script.
+ # FIXME: It is wrong to rewrite AR.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__AR in this case,
+ # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+ # similar.
+ AR="$am_aux_dir/ar-lib $AR"
+ ;;
+unknown)
+ m4_default([$1],
+ [AC_MSG_ERROR([could not determine $AR interface])])
+ ;;
+esac
+AC_SUBST([AR])dnl
+])
diff --git a/m4/depend.m4 b/m4/depend.m4
index 89d37b26d..359c34995 100644
--- a/m4/depend.m4
+++ b/m4/depend.m4
@@ -111,7 +111,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
diff --git a/m4/sanity.m4 b/m4/sanity.m4
index db87c8bb1..3d2f30432 100644
--- a/m4/sanity.m4
+++ b/m4/sanity.m4
@@ -1,18 +1,21 @@
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008, 2009
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 6
+# serial 5
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
@@ -32,30 +35,23 @@ esac
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- for am_try in 1 2; do
- echo timestamp > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- done
test "$[2]" = conftest.file
)
then
diff --git a/tests/Makefile.am b/tests/Makefile.am
index eab45dcea..d909942db 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -63,6 +63,9 @@ TESTS = $(handwritten_TESTS) $(parallel_tests)
# 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
depcomp4.log: libtool-macros.log
depcomp7.log: libtool-macros.log
depcomp8b.log: libtool-macros.log
diff --git a/tests/aclibobj.test b/tests/aclibobj.test
index 6ef6f6bcf..a40baa40d 100755
--- a/tests/aclibobj.test
+++ b/tests/aclibobj.test
@@ -20,6 +20,7 @@
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
END
@@ -32,6 +33,7 @@ END
: > maude.c
: > liver.c
+: > ar-lib
$ACLOCAL
diff --git a/tests/aclocal4.test b/tests/aclocal4.test
index 9fa96ece8..eab8ca806 100755
--- a/tests/aclocal4.test
+++ b/tests/aclocal4.test
@@ -25,6 +25,7 @@ set -e
cat >>configure.in <<EOF
AC_PROG_RANLIB
+AM_PROG_AR
AC_PROG_CC
MY_MACRO
AC_CONFIG_FILES([lib/Makefile])
@@ -60,7 +61,7 @@ EOF
$ACLOCAL -I m4
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE --add-missing
./configure
$MAKE check-not-foo
diff --git a/tests/alloca.test b/tests/alloca.test
index 8a1e06e37..630400215 100755
--- a/tests/alloca.test
+++ b/tests/alloca.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2011 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
@@ -21,6 +21,7 @@
set -e
cat >> configure.in <<'END'
+AM_PROG_AR
AC_PROG_CC
END
@@ -31,6 +32,7 @@ libtu_a_LIBADD = @ALLOCA@
END
: > alloca.c
+: > ar-lib
$ACLOCAL
AUTOMAKE_fails
diff --git a/tests/alloca2.test b/tests/alloca2.test
index caf11a34d..a459338f5 100755
--- a/tests/alloca2.test
+++ b/tests/alloca2.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2011 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
@@ -22,6 +22,7 @@ set -e
cat >> configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
END
cat > Makefile.am << 'END'
@@ -31,6 +32,7 @@ libtu_la_LIBADD = @LTALLOCA@
END
: > alloca.c
+: > ar-lib
$ACLOCAL
AUTOMAKE_fails
diff --git a/tests/ansi10.test b/tests/ansi10.test
index 4ff2c8633..68e12498f 100755
--- a/tests/ansi10.test
+++ b/tests/ansi10.test
@@ -25,6 +25,7 @@ cat >> configure.in << 'END'
AC_PROG_CC
AC_PROG_CC_STDC
AM_C_PROTOTYPES
+AM_PROG_AR
AC_PROG_RANLIB
AC_LIBOBJ([hello])
AC_CONFIG_FILES([dir/Makefile])
diff --git a/tests/ar-lib.test b/tests/ar-lib.test
new file mode 100755
index 000000000..a929ea4d6
--- /dev/null
+++ b/tests/ar-lib.test
@@ -0,0 +1,87 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure `ar-lib' wraps the Microsoft Library Manager (lib) correctly
+
+required=xsi-shell
+. ./defs || Exit 1
+
+set -e
+
+cp "$testsrcdir/../lib/ar-lib" .
+# Use a dummy lib, since lib isn't readily available on all systems.
+cat >lib <<'END'
+#! /bin/sh
+if test x"$2" = x-LIST && test x"$3" = xfake.lib; then
+ echo fake.obj
+elif test x"$2" = x-LIST && test x"$3" = xfake2.lib; then
+ printf "%s\n" "dir\\fake2.obj"
+else
+ printf "%s\n" "lib $*"
+fi
+END
+
+chmod +x ./lib
+
+# Check if ar-lib can create an archive with "cr"
+opts=`./ar-lib ./lib cr foo.lib foo.obj`
+test x"$opts" = x"lib -NOLOGO -OUT:foo.lib foo.obj"
+
+# Check if ar-lib can update an existing archive with "r"
+touch foo.lib
+opts=`./ar-lib ./lib r foo.lib foo.obj`
+test x"$opts" = x"lib -NOLOGO -OUT:foo.lib foo.lib foo.obj"
+
+# Check if ar-lib passes on @FILE with "r"
+opts=`./ar-lib ./lib r foo.lib @list`
+test x"$opts" = x"lib -NOLOGO -OUT:foo.lib foo.lib @list"
+
+# Check if ar-lib can delete a member from an archive with "d"
+opts=`./ar-lib ./lib d foo.lib foo.obj`
+test x"$opts" = x"lib -NOLOGO -REMOVE:foo.obj foo.lib"
+
+# Check if ar-lib can delete members in an @FILE
+echo foo.obj > foolist
+opts=`./ar-lib ./lib d foo.lib @foolist`
+test x"$opts" = x"lib -NOLOGO -REMOVE:foo.obj foo.lib"
+
+# Check if ar-lib can list archive members with "t"
+opts=`./ar-lib ./lib t foo.lib`
+test x"$opts" = x"lib -NOLOGO -LIST foo.lib"
+
+# Check if ar-lib can extract archive members with "x"
+touch fake.lib
+opts=`./ar-lib ./lib x fake.lib`
+test x"$opts" = x"lib -NOLOGO -EXTRACT:fake.obj fake.lib"
+
+# Check if ar-lib can extract specified archive members with "x"
+opts=`./ar-lib ./lib x foo.lib foo.obj`
+test x"$opts" = x"lib -NOLOGO -EXTRACT:foo.obj foo.lib"
+
+# Check if ar-lib can extract members in an @FILE
+opts=`./ar-lib ./lib x foo.lib @foolist`
+test x"$opts" = x"lib -NOLOGO -EXTRACT:foo.obj foo.lib"
+
+# Check if ar-lib passes -lib and -LTCG through to the wrappee
+opts=`./ar-lib ./lib -lib -LTCG x foo.lib foo.obj`
+test x"$opts" = x"lib -lib -LTCG -NOLOGO -EXTRACT:foo.obj foo.lib"
+
+# Check if ar-lib can extract backslashed members
+touch fake2.lib
+opts=`./ar-lib ./lib x fake2.lib`
+test x"$opts" = x"lib -NOLOGO -EXTRACT:dir\\fake2.obj fake2.lib"
+
+:
diff --git a/tests/ar-lib2.test b/tests/ar-lib2.test
new file mode 100755
index 000000000..67a64e958
--- /dev/null
+++ b/tests/ar-lib2.test
@@ -0,0 +1,40 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if AM_PROG_AR installs ar-lib.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_PROG_AR
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = wish
+wish_SOURCES = a.c
+END
+
+$ACLOCAL
+$AUTOMAKE --add-missing 2>stderr || { cat stderr >&2; Exit 1; }
+cat stderr >&2
+# Make sure ar-lib is installed, and that Automake says so.
+grep '^configure\.in:.*install.*ar-lib' stderr
+test -f ar-lib
+
+:
diff --git a/tests/ar-lib3.test b/tests/ar-lib3.test
new file mode 100755
index 000000000..8378e2a44
--- /dev/null
+++ b/tests/ar-lib3.test
@@ -0,0 +1,46 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if lib_LIBRARIES requests AM_PROG_AR.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+END
+
+cat > Makefile.am << 'END'
+lib_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+END
+
+$ACLOCAL
+AUTOMAKE_fails -Wextra-portability
+
+grep 'requires.*AM_PROG_AR' stderr
+
+cat >> configure.in << 'END'
+AM_PROG_AR
+END
+
+rm -rf autom4te*.cache
+$ACLOCAL
+$AUTOMAKE --add-missing
+
+:
diff --git a/tests/ar-lib4.test b/tests/ar-lib4.test
new file mode 100755
index 000000000..9e01d6c50
--- /dev/null
+++ b/tests/ar-lib4.test
@@ -0,0 +1,57 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if lib_LTLIBRARIES requests AM_PROG_AR.
+
+required=libtoolize
+. ./defs || Exit 1
+
+set -e
+
+cp configure.in X
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_PROG_LIBTOOL
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+lib_LTLIBRARIES = libfoo.la
+libfoo_la_SOURCES = foo.c
+END
+
+libtoolize
+$ACLOCAL
+AUTOMAKE_fails -Wextra-portability
+
+grep 'requires.*AM_PROG_AR' stderr
+
+cp X configure.in
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_PROG_LIBTOOL
+AC_OUTPUT
+END
+
+$ACLOCAL
+$AUTOMAKE -Wextra-portability --add-missing
+
+:
diff --git a/tests/ar-lib5a.test b/tests/ar-lib5a.test
new file mode 100755
index 000000000..d1de98b32
--- /dev/null
+++ b/tests/ar-lib5a.test
@@ -0,0 +1,75 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if AM_PROG_AR triggers the use of the ar-lib script.
+# This test requires Microsoft lib.
+# Keep this test in sync with sister test `ar-lib5b.test'.
+
+required=lib
+. ./defs || Exit 1
+
+set -e
+
+cat > configure.in << END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([auxdir])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([Makefile])
+AC_PROG_CC
+AM_PROG_AR
+AC_PROG_RANLIB
+# We want to test the content of am_cv_ar_interface in the Makefile.
+AC_SUBST([am_cv_ar_interface])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+lib_LIBRARIES = libwish.a
+libwish_a_SOURCES = wish.c
+
+check-local:
+ test x'$(am_cv_ar_interface)' = x'lib'
+ test -f ar-lib-worked
+ test -f libwish.a
+MOSTLYCLEANFILES = ar-lib-worked
+END
+
+cat > wish.c << 'END'
+int wish(void) { return 0; }
+END
+
+mkdir auxdir
+# FIXME: make this "installcheck-aware" once we are merged into the
+# 'testsuite-work' branch.
+cat - "$testsrcdir"/../lib/ar-lib > auxdir/ar-lib << 'END'
+#! /bin/sh
+:> ar-lib-worked
+END
+chmod +x auxdir/ar-lib
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+# Sanity check: test that it is ok to use `am_cv_ar_interface' as we do.
+$FGREP 'am_cv_ar_interface=' configure
+
+./configure AR=lib RANLIB=:
+
+$MAKE check
+$MAKE distcheck DISTCHECK_CONFIGURE_FLAGS='AR=lib RANLIB=:'
+
+:
diff --git a/tests/ar-lib5b.test b/tests/ar-lib5b.test
new file mode 100755
index 000000000..52deab5fd
--- /dev/null
+++ b/tests/ar-lib5b.test
@@ -0,0 +1,99 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if AM_PROG_AR triggers the use of the ar-lib script.
+# This test does not require Microsoft lib.
+# Keep this test in sync with sister test `ar-lib5a.test'.
+
+. ./defs || Exit 1
+
+set -e
+
+cat > configure.in << END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([auxdir])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([Makefile])
+AC_PROG_CC
+AM_PROG_AR
+AC_PROG_RANLIB
+# We want to test the content of am_cv_ar_interface in the Makefile.
+AC_SUBST([am_cv_ar_interface])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+lib_LIBRARIES = libwish.a
+libwish_a_SOURCES = wish.c
+
+check-local:
+ test x'$(am_cv_ar_interface)' = x'lib'
+ test -f ar-lib-worked
+MOSTLYCLEANFILES = ar-lib-worked
+END
+
+cat > wish.c << 'END'
+int wish(void) { return 0; }
+END
+
+mkdir auxdir
+cat > auxdir/ar-lib << 'END'
+#! /bin/sh
+:> ar-lib-worked
+END
+chmod +x auxdir/ar-lib
+
+# Let's fake microsoft lib.
+mkdir bin
+cat > bin/lib << 'END'
+#! /bin/sh
+echo lib command line: $* >&2 # For debugging.
+case " $* " in
+ # The `-OUT:' option is used by tests in configure. So don't create
+ # the `ar-lib-worked' file here, as that might cause spurious passes
+ # of this test; but don't fail either, as that would confuse said
+ # configure tests.
+ *' -OUT:'*) exit 0;;
+ # This means that $* looks like a command-line for `ar'. We have to
+ # exit with failure here, to accomodate the two following ortoghonal
+ # scenarios:
+ # 1. when `lib' is tested by configure, this will tell that it does
+ # not use the ar(1) interface, so that the `ar-lib' script will
+ # get involved;
+ # 2. when `lib' is called by the Makefile, an ar-style command line
+ # passed to it would mean that the `ar-lib' script has failed to
+ # properly munge the command line, or hasn't been invoked to do so.
+ *\ c*) exit 1;;
+ # Assume everything else is OK.
+ *) : > ar-lib-worked;;
+esac
+END
+chmod +x bin/lib
+PATH=`pwd`/bin$PATH_SEPARATOR$PATH; export PATH
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+# Sanity check: test that it is ok to use `am_cv_ar_interface' as we do.
+$FGREP 'am_cv_ar_interface=' configure
+
+./configure AR=lib RANLIB=:
+
+$MAKE check
+$MAKE distcheck DISTCHECK_CONFIGURE_FLAGS="AR=lib RANLIB=:"
+
+:
diff --git a/tests/ar-lib6a.test b/tests/ar-lib6a.test
new file mode 100755
index 000000000..f1b982c3a
--- /dev/null
+++ b/tests/ar-lib6a.test
@@ -0,0 +1,39 @@
+#! /bin/sh
+# Copyright (C) 2011 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 AM_PROG_AR ordering requirements
+# Keep this test in sync with sister test `ar-lib6b.test'.
+
+required=libtoolize
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+m4_ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
+AM_PROG_AR
+END
+
+libtoolize
+$ACLOCAL
+$AUTOCONF 2>stderr || { cat stderr >&2; Exit 1; }
+cat stderr >&2
+
+$EGREP '(AC_PROG_LIBTOOL|LT_INIT).*before.*AM_PROG_AR' stderr
+
+:
diff --git a/tests/ar-lib6b.test b/tests/ar-lib6b.test
new file mode 100755
index 000000000..5487adde2
--- /dev/null
+++ b/tests/ar-lib6b.test
@@ -0,0 +1,39 @@
+#! /bin/sh
+# Copyright (C) 2011 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 AM_PROG_AR ordering requirements for older Libtools
+# Keep this test in sync with sister test `ar-lib6a.test'.
+
+required=libtoolize
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_PROG_LIBTOOL
+AM_PROG_AR
+END
+
+libtoolize
+$ACLOCAL
+$AUTOCONF 2>stderr || { cat stderr >&2; Exit 1; }
+cat stderr >&2
+
+$EGREP 'AC_PROG_LIBTOOL.*before.*AM_PROG_AR' stderr
+
+:
diff --git a/tests/ar-lib7.test b/tests/ar-lib7.test
new file mode 100755
index 000000000..3f758a9ac
--- /dev/null
+++ b/tests/ar-lib7.test
@@ -0,0 +1,36 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if automake warns if ar-lib is missing when AM_PROG_AR is used.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AM_PROG_AR
+END
+
+:> Makefile.am
+
+$ACLOCAL
+AUTOMAKE_fails
+
+grep '^configure\.in:.*ar-lib.*not found' stderr
+
+$AUTOMAKE --add-missing
+
+:
diff --git a/tests/ar.test b/tests/ar.test
index dbdf24657..06dcde384 100755
--- a/tests/ar.test
+++ b/tests/ar.test
@@ -21,6 +21,7 @@
set -e
cat >> configure.in << 'END'
+AM_PROG_AR
AC_SUBST([AR], ['echo it works'])
AC_SUBST([ARFLAGS], ['>'])
AC_SUBST([RANLIB], ['echo really works >>'])
@@ -32,6 +33,8 @@ lib_LIBRARIES = libfoo.a
libfoo_a_SOURCES =
END
+:> ar-lib
+
$ACLOCAL
$AUTOCONF
$AUTOMAKE
diff --git a/tests/ar2.test b/tests/ar2.test
index 329f80491..f37f51450 100755
--- a/tests/ar2.test
+++ b/tests/ar2.test
@@ -33,7 +33,7 @@ libfoo_a_SOURCES = foo.c
END
$ACLOCAL
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
grep '^ARFLAGS =' Makefile.in
grep '^AR =' Makefile.in
diff --git a/tests/ar3.test b/tests/ar3.test
new file mode 100755
index 000000000..1d5e84ef2
--- /dev/null
+++ b/tests/ar3.test
@@ -0,0 +1,43 @@
+#! /bin/sh
+# Copyright (C) 2011 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/>.
+
+# Make sure that AR, ARFLAGS, etc. works also when the macro AM_PROG_AR
+# is used.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+EXTRA_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+END
+
+: > ar-lib
+
+$ACLOCAL
+$AUTOMAKE
+$EGREP '^ARFLAGS =' Makefile.in
+$EGREP '^AR =' Makefile.in
+
+:
diff --git a/tests/ar4.test b/tests/ar4.test
new file mode 100755
index 000000000..bb181118b
--- /dev/null
+++ b/tests/ar4.test
@@ -0,0 +1,39 @@
+#! /bin/sh
+# Copyright (C) 2011 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 if configure bails out if $AR does not work and AM_PROG_AR is used.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AM_PROG_AR
+END
+
+$ACLOCAL
+$AUTOCONF
+
+st=0; ./configure AR=/bin/false >stdout 2>stderr || st=$?
+cat stdout
+cat stderr >&2
+test $st -eq 1
+
+grep '^checking.* archiver .*interface.*\.\.\. unknown' stdout
+grep '^configure: error: could not determine /bin/false interface' stderr
+ls *conftest* && Exit 1
+
+:
diff --git a/tests/ar5.test b/tests/ar5.test
new file mode 100755
index 000000000..865e0bf81
--- /dev/null
+++ b/tests/ar5.test
@@ -0,0 +1,42 @@
+#! /bin/sh
+# Copyright (C) 2011 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 the optional argument of AM_PROG_AR.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AM_PROG_AR([
+ echo spy > bad-archiver-interface-detected
+ AC_MSG_CHECKING([for something else])
+ AC_MSG_RESULT([found it])
+ echo Grep This
+])
+END
+
+$ACLOCAL
+$AUTOCONF
+
+./configure AR=/bin/false >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^checking.* archiver .*interface.*\.\.\. unknown$' stdout
+grep '^checking for something else\.\.\. found it$' stdout
+grep '^Grep This$' stdout
+test -f bad-archiver-interface-detected
+
+:
diff --git a/tests/canon4.test b/tests/canon4.test
index 52e968dc5..d98636f32 100755
--- a/tests/canon4.test
+++ b/tests/canon4.test
@@ -22,6 +22,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
END
@@ -30,6 +31,8 @@ noinst_LIBRARIES = libx-y.a
libx_y_a_SOURCES = xy.c
END
+: > ar-lib
+
$ACLOCAL
$AUTOMAKE
diff --git a/tests/compile3.test b/tests/compile3.test
new file mode 100755
index 000000000..15064a6fd
--- /dev/null
+++ b/tests/compile3.test
@@ -0,0 +1,54 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure `compile' wraps the Microsoft C/C++ compiler (cl) correctly
+
+required=xsi-shell
+. ./defs || Exit 1
+
+set -e
+
+cp "$testsrcdir/../lib/compile" .
+
+# Use a dummy cl, since cl isn't readily available on all systems
+cat >cl <<'END'
+#! /bin/sh
+echo "$@"
+END
+
+chmod +x ./cl
+
+# Check if compile handles "-o foo", -I, -l, -L, -Xlinker -Wl,
+opts=`LIB= ./compile ./cl foo.c -o foo -lbar -Lgazonk -Ibaz -Xlinker foobar -Wl,-foo,bar`
+test x"$opts" = x"foo.c -Fefoo bar.lib -Ibaz -link -LIBPATH:gazonk foobar -foo bar"
+
+# Check if compile handles "-o foo.obj"
+opts=`./compile ./cl -c foo.c -o foo.obj -Ibaz`
+test x"$opts" = x"-c foo.c -Fofoo.obj -Ibaz"
+
+# Check if compile handles "-o foo.o"
+opts=`./compile ./cl -c foo.c -o foo.o -Ibaz`
+test x"$opts" = x"-c foo.c -Fofoo.o -Ibaz"
+
+# Check if compile handles "foo.cc" as C++.
+opts=`./compile ./cl -c foo.cc -o foo.o -Ibaz`
+test x"$opts" = x"-c -Tpfoo.cc -Fofoo.o -Ibaz"
+
+# Check if compile clears the "eat" variable properly.
+opts=`eat=1 ./compile ./cl -c foo.c -o foo.obj -Ibaz`
+test x"$opts" = x"-c foo.c -Fofoo.obj -Ibaz"
+
+:
diff --git a/tests/compile4.test b/tests/compile4.test
new file mode 100755
index 000000000..0b3e98171
--- /dev/null
+++ b/tests/compile4.test
@@ -0,0 +1,86 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure `compile' wraps the Microsoft C/C++ compiler (cl) correctly
+# with respect to absolute paths.
+
+required='cl'
+. ./defs || Exit 1
+
+set -e
+
+mkdir sub
+
+cat >sub/foo.c <<'EOF'
+int
+foo ()
+{
+ return 0;
+}
+EOF
+
+cat >main.c <<'EOF'
+extern int foo ();
+int
+main ()
+{
+ return foo ();
+}
+EOF
+
+absfoodir=`pwd`/sub
+absmainc=`pwd`/main.c
+absmainobj=`pwd`/main.obj
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_CONFIG_FILES([sub/Makefile])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub
+END
+
+cat > sub/Makefile.am << 'END'
+lib_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+./configure
+$MAKE
+
+./compile cl $CPPFLAGS $CFLAGS -c -o "$absmainobj" "$absmainc"
+
+# cl expects archives to be named foo.lib, not libfoo.a so
+# make a simple copy here if needed. This is a severe case
+# of badness, but ignore that since this is not what is
+# being tested here...
+if test -f sub/libfoo.a; then
+ cp sub/libfoo.a sub/foo.lib
+fi
+
+./compile cl $CFLAGS $LDFLAGS -L"$absfoodir" "$absmainobj" -o main -lfoo
+
+./main
+
+:
diff --git a/tests/compile5.test b/tests/compile5.test
new file mode 100755
index 000000000..cd1468fa7
--- /dev/null
+++ b/tests/compile5.test
@@ -0,0 +1,81 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure the file name translation in the `compile' script works
+# correctly
+
+. ./defs || Exit 1
+
+set -e
+
+cp "$testsrcdir/../lib/compile" .
+
+# Use a dummy cl, since cl isn't readily available on all systems
+cat >cl <<'END'
+#! /bin/sh
+echo "$@"
+END
+
+chmod +x ./cl
+
+cat >>configure.in << 'END'
+AC_CANONICAL_HOST
+AC_CONFIG_FILES([check_host], [chmod +x check_host])
+AC_OUTPUT
+END
+
+: >Makefile.am
+
+cat >check_host.in << 'END'
+#! /bin/sh
+case @host_os@ in
+ mingw*)
+ ;;
+ *)
+ exit 77
+ ;;
+esac
+case @build_os@ in
+ mingw* | cygwin*)
+ ;;
+ *)
+ winepath -w / || exit 77
+ ;;
+esac
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+./configure
+./check_host
+
+pwd=`pwd`
+
+# Check if "compile cl" transforms absolute file names to
+# host format (e.g /somewhere -> c:/msys/1.0/somewhere).
+
+res=`./compile ./cl -L"$pwd" | sed -e 's/-link -LIBPATH://'`
+
+case $res in
+ ?:[\\/]*)
+ ;;
+ *)
+ Exit 1
+ ;;
+esac
+
+:
diff --git a/tests/compile6.test b/tests/compile6.test
new file mode 100755
index 000000000..f45a5342f
--- /dev/null
+++ b/tests/compile6.test
@@ -0,0 +1,99 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure `compile' searches libraries correctly
+
+required=xsi-shell
+. ./defs || Exit 1
+
+set -e
+
+cp "$testsrcdir/../lib/compile" .
+
+# Use a dummy cl, since cl isn't readily available on all systems
+cat >cl <<'END'
+#! /bin/sh
+echo "$@"
+END
+
+chmod +x ./cl
+
+mkdir syslib
+:> syslib/foo.lib
+
+syslib=`pwd`/syslib
+LIB=$syslib
+export LIB
+
+mkdir lib
+:> lib/bar.lib
+:> lib/bar.dll.lib
+
+# Check if compile library search correctly
+opts=`./compile ./cl foo.c -o foo -Llib -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.dll.lib $syslib/foo.lib -link -LIBPATH:lib"
+
+# Check if -static makes compile avoid bar.dll.lib
+opts=`./compile ./cl foo.c -o foo -Llib -static -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.lib $syslib/foo.lib -link -LIBPATH:lib"
+
+:> syslib/bar.lib
+:> syslib/bar.dll.lib
+
+# Check if compile finds bar.dll.lib in syslib
+opts=`./compile ./cl foo.c -o foo -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib/bar.dll.lib $syslib/foo.lib"
+
+# Check if compile prefers -L over $LIB
+opts=`./compile ./cl foo.c -o foo -Llib -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.dll.lib $syslib/foo.lib -link -LIBPATH:lib"
+
+mkdir lib2
+:> lib2/bar.dll.lib
+
+# Check if compile avoids bar.dll.lib in lib2 when -static
+opts=`./compile ./cl foo.c -o foo -Llib2 -static -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib/bar.lib $syslib/foo.lib -link -LIBPATH:lib2"
+
+# Check if compile gets two different bar libraries when -static
+# is added in the middle
+opts=`./compile ./cl foo.c -o foo -Llib2 -Llib -lbar -static -lbar`
+test x"$opts" = x"foo.c -Fefoo lib2/bar.dll.lib lib/bar.lib -link -LIBPATH:lib2 -LIBPATH:lib"
+
+# Check if compile gets the correct bar.dll.lib
+opts=`./compile ./cl foo.c -o foo -Llib -Llib2 -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.dll.lib $syslib/foo.lib -link -LIBPATH:lib -LIBPATH:lib2"
+
+# Check if compile gets the correct bar.dll.lib
+opts=`./compile ./cl foo.c -o foo -Llib2 -Llib -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib2/bar.dll.lib $syslib/foo.lib -link -LIBPATH:lib2 -LIBPATH:lib"
+
+mkdir "sys lib2"
+:> "sys lib2/foo.dll.lib"
+
+syslib2="`pwd`/sys lib2"
+LIB="$syslib2;$LIB"
+
+# Check if compile handles spaces in $LIB and that it prefers the order
+# in a multi-component $LIB.
+opts=`./compile ./cl foo.c -o foo -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib2/foo.dll.lib"
+
+# Check if compile handles the 2nd directory in a multi-component $LIB.
+opts=`./compile ./cl foo.c -o foo -static -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib/foo.lib"
+
+:
diff --git a/tests/cond13.test b/tests/cond13.test
index e5f6be9c5..28f6cd3e8 100755
--- a/tests/cond13.test
+++ b/tests/cond13.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
AC_PROG_CXX
+AM_PROG_AR
AC_PROG_RANLIB
AM_CONDITIONAL(COND1, true)
AM_CONDITIONAL(COND2, true)
@@ -49,6 +50,8 @@ endif
libtest_a_SOURCES = $(TESTSOURCES)
END
+: > ar-lib
+
$ACLOCAL
$AUTOMAKE
diff --git a/tests/condlib.test b/tests/condlib.test
index b6c998d71..88ef3086b 100755
--- a/tests/condlib.test
+++ b/tests/condlib.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_RANLIB
AM_MAINTAINER_MODE
+AM_PROG_AR
AC_PROG_CC
END
@@ -36,6 +37,8 @@ nodist_librsaref_a_SOURCES = desc.c digit.c
BUILT_SOURCES = $(nodist_librsaref_a_SOURCES)
END
+: > ar-lib
+
$ACLOCAL
$AUTOMAKE
diff --git a/tests/defs.in b/tests/defs.in
index 31426f2ee..7cedaa039 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -203,6 +203,12 @@ do
echo "$me: running bzip2 --help"
( bzip2 --help ) || exit 77
;;
+ cl)
+ CC=cl
+ export CC
+ echo "$me: running $CC -?"
+ ( $CC -? ) || exit 77
+ ;;
etags)
# Exuberant Ctags will create a TAGS file even
# when asked for --help or --version. (Emacs's etags
@@ -283,6 +289,14 @@ do
echo "$me: running javac -version -help"
javac -version -help || exit 77
;;
+ lib)
+ AR=lib
+ export AR
+ # Attempting to create an empty archive will actually not
+ # create the archive, but lib will output its version.
+ echo "$me: running $AR -out:defstest.lib"
+ $AR -out:defstest.lib || skip_ "Microsoft \`lib' utility not available"
+ ;;
makedepend)
echo "$me: running makedepend -f-"
( makedepend -f- ) || exit 77
@@ -349,6 +363,15 @@ do
echo "$me: running texi2dvi -o /dev/null --version"
( texi2dvi -o /dev/null --version ) || exit 77
;;
+ xsi-shell)
+ # Try some XSI features.
+ echo "$me: trying some XSI constructs"
+ ( _am_dummy="a/b/c"
+ test "${_am_dummy##*/},${_am_dummy%/*},${_am_dummy#??}"${_am_dummy%"$_am_dummy"}, \
+ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_am_dummy}" -eq 5' ) || exit 77
+ ;;
# Generic case: the tool must support --version.
*)
echo "$me: running $tool --version"
diff --git a/tests/depcomp4.test b/tests/depcomp4.test
index 4f2df974c..3c3602f58 100755
--- a/tests/depcomp4.test
+++ b/tests/depcomp4.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/depcomp6.test b/tests/depcomp6.test
index ea15e20ad..c7734b138 100755
--- a/tests/depcomp6.test
+++ b/tests/depcomp6.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
AM_PROG_CC_C_O
+AM_PROG_AR
AC_PROG_RANLIB
AC_CONFIG_FILES([sub2/Makefile])
AC_OUTPUT
diff --git a/tests/depcomp7.test b/tests/depcomp7.test
index 47f09fc4a..9b0ed220d 100755
--- a/tests/depcomp7.test
+++ b/tests/depcomp7.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
AM_PROG_CC_C_O
+AM_PROG_AR
AM_PROG_LIBTOOL
AC_CONFIG_FILES([sub2/Makefile])
AC_OUTPUT
diff --git a/tests/depcomp8b.test b/tests/depcomp8b.test
index d36e75462..56514792d 100755
--- a/tests/depcomp8b.test
+++ b/tests/depcomp8b.test
@@ -26,6 +26,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/discover.test b/tests/discover.test
index 0e4faa3b1..41b11f51e 100755
--- a/tests/discover.test
+++ b/tests/discover.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 1996, 1997, 2000, 2001, 2002, 2010 Free Software
+# Copyright (C) 1996, 1997, 2000, 2001, 2002, 2010, 2011 Free Software
# Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -21,6 +21,7 @@
cat >> configure.in << 'END'
AC_PROG_RANLIB
+AM_PROG_AR
AC_PROG_CC
AC_LIBOBJ([fsusage])
AC_OUTPUT
@@ -33,6 +34,7 @@ libtu_a_LIBADD = @LIBOBJS@
END
: > fsusage.c
+: > ar-lib
$ACLOCAL
AUTOMAKE_fails
diff --git a/tests/dollarvar2.test b/tests/dollarvar2.test
index 6fc27379b..7a6db3794 100755
--- a/tests/dollarvar2.test
+++ b/tests/dollarvar2.test
@@ -21,6 +21,11 @@
set -e
+#
+# First, try a setup where we have a `portability-recursive' warning,
+# but no "simple" `portability' warning.
+#
+
cat >Makefile.am <<'EOF'
x = 1
bla = $(foo$(x))
@@ -28,11 +33,61 @@ EOF
$ACLOCAL
-# $AUTOMAKE already contains -Wall -Werror.
-AUTOMAKE_fails -Wportability
-$AUTOMAKE --force -Wno-all
-$AUTOMAKE --force -Wno-portability
+# Enabling `portability' warnings should enable `portability-recursive'
+# warnings.
+AUTOMAKE_fails -Wnone -Wportability
+grep 'recursive variable expansion' stderr
+# `portability-recursive' warnings can be enabled by themselves.
+AUTOMAKE_fails -Wnone -Wportability-recursive
+grep 'recursive variable expansion' stderr
+
+# Various ways to disable `portability-recursive'.
+$AUTOMAKE -Wno-all
+$AUTOMAKE -Wno-portability
+$AUTOMAKE -Wall -Wno-portability-recursive
+
+# `-Wno-portability-recursive' after `-Wportability' correctly disables
+# `portability-recursive' warnings.
+$AUTOMAKE -Wportability -Wno-portability-recursive
+
+# `-Wno-portability' disables `portability-recursive' warnings; but
+# a later `-Wportability-recursive' re-enables them. This time, we
+# use AUTOMAKE_OPTIONS to specify the warning levels.
echo 'AUTOMAKE_OPTIONS = -Wno-portability' >> Makefile.am
-$AUTOMAKE --force
+$AUTOMAKE
+echo 'AUTOMAKE_OPTIONS += -Wportability-recursive' >> Makefile.am
+AUTOMAKE_fails
+grep 'recursive variable expansion' stderr
+
+#
+# Now try a setup where we have both a `portability' warning and
+# a `portability-recursive' one.
+#
+
+cat >Makefile.am <<'EOF'
+x = 1
+bla = $(foo$(x))
+noinst_PROGRAMS = foo
+foo_CPPFLAGS = -Dwhatever
+EOF
+
+echo AC_PROG_CC >> configure.in
+
+$ACLOCAL --force
+
+# Can disable both `portability' and `portability-recursive' warnings.
+$AUTOMAKE -Wno-portability
+
+# Disabling `portability-recursive' warnings should not disable
+# `portability' warnings.
+AUTOMAKE_fails -Wportability -Wno-portability-recursive
+grep AM_PROG_CC_C_O stderr
+grep 'recursive variable expansion' stderr && Exit 1
+
+# Enabling `portability-recursive' warnings should not enable
+# all the `portability' warning.
+AUTOMAKE_fails -Wno-portability -Wportability-recursive
+grep AM_PROG_CC_C_O stderr && Exit 1
+grep 'recursive variable expansion' stderr
:
diff --git a/tests/extra-portability.test b/tests/extra-portability.test
new file mode 100755
index 000000000..62a6335bc
--- /dev/null
+++ b/tests/extra-portability.test
@@ -0,0 +1,105 @@
+#! /bin/sh
+# Copyright (C) 2011 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 interactions between the `portability' and `extra-portability'
+# warning categories:
+# 1. `-Wextra-portability' must imply `-Wportability'.
+# 2. `-Wno-portability' must imply `-Wno-extra-portability'.
+# 3. `-Wall' does *not* imply `-Wextra-portability'.
+
+. ./defs || Exit 1
+
+set -e
+
+# We want (almost) complete control over automake options.
+# FIXME: use $original_AUTOMAKE here once we are merged into master.
+AUTOMAKE="`(set $AUTOMAKE && echo $1)` --foreign -Werror"
+
+cat >>configure.in <<END
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+$ACLOCAL
+
+#
+# First, a setup where only an extra-portability warning is present
+# (no "simple" portability-warnings are).
+#
+
+cat >Makefile.am <<END
+EXTRA_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = sub/foo.c
+END
+
+# Sanity check: extra-portability warnings causes the expected error.
+AUTOMAKE_fails -Wextra-portability
+grep 'requires.*AM_PROG_AR' stderr
+
+# Warnings in extra-portability category are not enabled by default.
+$AUTOMAKE
+
+# `-Wall' does not enable extra-portability warnings.
+$AUTOMAKE -Wall -Werror
+
+# Enabling extra-portability works.
+AUTOMAKE_fails -Wnone -Wextra-portability
+grep 'requires.*AM_PROG_AR' stderr
+# Disabling portability disables extra-portability.
+$AUTOMAKE -Wno-portability -Wall
+$AUTOMAKE -Wextra-portability -Wno-portability -Wall
+
+echo libfoo_a_CPPFLAGS = -Dwhatever >> Makefile.am
+
+# Enabling extra-portability enables portability.
+AUTOMAKE_fails -Wnone -Wextra-portability
+# The expected diagnostic is
+# Makefile.am:2: compiling `foo.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.in'
+# .../lib/am/library.am: `libfoo.a': linking libraries using a non-POSIX
+# .../lib/am/library.am: archiver requires `AM_PROG_AR' in `configure.in'
+# Makefile.am:1: while processing library `libfoo.a'
+grep 'requires.*AM_PROG_CC_C_O' stderr
+grep 'requires.*AM_PROG_AR' stderr
+
+# `-Wall' does not reset extra portability warnings to their
+# default (i.e., disabled).
+AUTOMAKE_fails -Wextra-portability -Wall
+grep 'requires.*AM_PROG_CC_C_O' stderr
+grep 'requires.*AM_PROG_AR' stderr
+
+# Disabling extra-portability leaves portability intact.
+AUTOMAKE_fails -Wportability -Wno-extra-portability
+grep 'requires.*AM_PROG_CC_C_O' stderr
+grep 'requires.*AM_PROG_AR' stderr && Exit 1
+
+# `-Wall' does not set extra portability warnings if they have
+# been previously disabled.
+AUTOMAKE_fails -Wno-extra-portability -Wall
+grep 'requires.*AM_PROG_CC_C_O' stderr
+grep 'requires.*AM_PROG_AR' stderr && Exit 1
+
+# Enabling portability does not enable extra-portability.
+AUTOMAKE_fails -Wnone -Wportability
+grep 'requires.*AM_PROG_CC_C_O' stderr
+grep 'requires.*AM_PROG_AR' stderr && Exit 1
+
+# Disabling portability disables extra-portability.
+$AUTOMAKE -Wno-portability
+$AUTOMAKE -Wextra-portability -Wno-portability
+$AUTOMAKE -Wall -Wno-portability
+
+:
diff --git a/tests/extra-portability2.test b/tests/extra-portability2.test
new file mode 100755
index 000000000..9a01e74df
--- /dev/null
+++ b/tests/extra-portability2.test
@@ -0,0 +1,57 @@
+#! /bin/sh
+# Copyright (C) 2011 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/>.
+
+# Make sure that extra-portability warnings are not enabled by --gnits,
+# --gnu and --foreign.
+
+. ./defs || Exit 1
+
+set -e
+
+# Satisfy --gnits and --gnu.
+: > INSTALL
+: > NEWS
+: > README
+: > AUTHORS
+: > ChangeLog
+: > COPYING
+: > THANKS
+
+cat >>configure.in <<END
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+cat >Makefile.am <<END
+EXTRA_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+END
+
+$ACLOCAL
+
+# In the 1.11.x series, `extra-portability' warnings are not enabled
+# by `-Wall'.
+AUTOMAKE="$AUTOMAKE -Wextra-portability"
+
+# Make sure the test is useful.
+AUTOMAKE_fails
+
+$AUTOMAKE --foreign
+$AUTOMAKE --gnu
+$AUTOMAKE --gnits
+
+:
diff --git a/tests/extra-portability3.test b/tests/extra-portability3.test
new file mode 100755
index 000000000..7ca19b1d7
--- /dev/null
+++ b/tests/extra-portability3.test
@@ -0,0 +1,63 @@
+#! /bin/sh
+# Copyright (C) 2011 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 interactions between the `portability-recursive' and
+# `extra-portability' warning categories.
+
+. ./defs || Exit 1
+
+set -e
+
+# We want (almost) complete control over automake options.
+# FIXME: use $original_AUTOMAKE here once we are merged into master.
+AUTOMAKE="`(set $AUTOMAKE && echo $1)` --foreign -Werror"
+
+cat >>configure.in <<END
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+$ACLOCAL
+
+cat >Makefile.am <<'END'
+baz = $(foo$(bar))
+lib_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+END
+
+# 'extra-portability' implies 'portability-recursive'.
+AUTOMAKE_fails -Wextra-portability
+grep 'requires.*AM_PROG_AR' stderr
+grep 'recursive variable expansion' stderr
+
+# We can disable 'extra-portability' while leaving
+# 'portability-recursive' intact.
+AUTOMAKE_fails -Wportability-recursive -Wno-extra-portability
+grep 'requires.*AM_PROG_AR' stderr && Exit 1
+grep 'recursive variable expansion' stderr
+
+# We can disable 'portability-recursive' while leaving
+# 'extra-portability' intact.
+AUTOMAKE_fails -Wextra-portability -Wno-portability-recursive
+grep 'requires.*AM_PROG_AR' stderr
+grep 'recursive variable expansion' stderr && Exit 1
+
+# Disabling 'portability' disables 'portability-recursive' and
+# 'extra-portability'.
+$AUTOMAKE -Wextra-portability -Wno-portability
+
+:
diff --git a/tests/fort5.test b/tests/fort5.test
index d6151a714..cc9340319 100755
--- a/tests/fort5.test
+++ b/tests/fort5.test
@@ -56,6 +56,7 @@ AC_PROG_FC
AC_FC_SRCEXT([f90], [],
[AC_MSG_FAILURE([$FC compiler cannot create executables], 77)])
AC_FC_LIBRARY_LDFLAGS
+AM_PROG_AR
LT_PREREQ([2.0])
AC_PROG_LIBTOOL
AC_OUTPUT
diff --git a/tests/instdir-ltlib.test b/tests/instdir-ltlib.test
index 1fb4f37a8..f4003775a 100755
--- a/tests/instdir-ltlib.test
+++ b/tests/instdir-ltlib.test
@@ -25,6 +25,7 @@ set -e
cat >>configure.in <<'END'
AC_PROG_CC
AM_PROG_CC_C_O
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/instdir-prog.test b/tests/instdir-prog.test
index 6a73b7572..66a489227 100755
--- a/tests/instdir-prog.test
+++ b/tests/instdir-prog.test
@@ -24,6 +24,7 @@ set -e
cat >>configure.in <<'END'
AC_PROG_CC
AM_PROG_CC_C_O
+AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
END
diff --git a/tests/instfail-libtool.test b/tests/instfail-libtool.test
index 1e756a676..2e5e312f6 100755
--- a/tests/instfail-libtool.test
+++ b/tests/instfail-libtool.test
@@ -25,6 +25,7 @@ required='libtool libtoolize'
set -e
cat >>configure.in <<END
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/instfail.test b/tests/instfail.test
index 38a1c9c99..3fb60b538 100755
--- a/tests/instfail.test
+++ b/tests/instfail.test
@@ -25,6 +25,7 @@ set -e
cat >>configure.in <<END
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AM_PATH_LISPDIR
AC_OUTPUT
diff --git a/tests/instspc.test b/tests/instspc.test
index 7d007884f..c30546196 100755
--- a/tests/instspc.test
+++ b/tests/instspc.test
@@ -33,6 +33,7 @@ set -e
cat >> configure.in <<'EOF'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
EOF
diff --git a/tests/ldadd.test b/tests/ldadd.test
index 7f4fce89a..3515a4e74 100755
--- a/tests/ldadd.test
+++ b/tests/ldadd.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 1997, 1999, 2000, 2001, 2002, 2010 Free Software
+# Copyright (C) 1997, 1999, 2000, 2001, 2002, 2010, 2011 Free Software
# Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -42,6 +42,7 @@ END
: > q.c
$ACLOCAL || Exit 1
-AUTOMAKE_fails
-grep LDADD stderr || Exit 1
+AUTOMAKE_fails -Wno-extra-portability
+grep "libtu_la_LDADD" stderr
+grep " use [\`"']libtu_la_LIBADD' stderr
Exit 0
diff --git a/tests/ldflags.test b/tests/ldflags.test
index 39ca27464..c00f227d7 100755
--- a/tests/ldflags.test
+++ b/tests/ldflags.test
@@ -21,6 +21,7 @@ required=libtool
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_SUBST([LTLIBOBJS], [q.o])
AM_CONDITIONAL(USE_SWIG, :)
@@ -37,6 +38,7 @@ END
: > ltconfig
: > ltmain.sh
+: > ar-lib
: > config.guess
: > config.sub
: > q.c
diff --git a/tests/libobj10.test b/tests/libobj10.test
index 0d2474162..97dffecd0 100755
--- a/tests/libobj10.test
+++ b/tests/libobj10.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_LIBOBJ([foo])
AC_OUTPUT
@@ -33,6 +34,8 @@ noinst_LIBRARIES = libfoo.a
libfoo_a_LIBADD = @LIBOBJS@
END
+: > ar-lib
+
$ACLOCAL
AUTOMAKE_fails
grep 'Makefile.am:2:.*foo\.c' stderr
diff --git a/tests/libobj11.test b/tests/libobj11.test
index 204ff8bb4..fc7f17372 100755
--- a/tests/libobj11.test
+++ b/tests/libobj11.test
@@ -22,6 +22,7 @@ cat > configure.in << 'END'
AC_INIT
AM_INIT_AUTOMAKE(nonesuch, nonesuch)
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_LIBOBJ([mountlist])
AC_OUTPUT(Makefile)
@@ -33,6 +34,7 @@ libtu_a_SOURCES =
libtu_a_LIBADD = @LIBOBJS@
END
+: > ar-lib
: > mountlist.c
$ACLOCAL || Exit 1
diff --git a/tests/libobj12.test b/tests/libobj12.test
index 5f1d02908..e4522bc10 100755
--- a/tests/libobj12.test
+++ b/tests/libobj12.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_LIBOBJ([foo])
AC_LIBOBJ([bar])
@@ -44,6 +45,7 @@ p1_LDADD = @LIBOBJS@
p2_SOURCES = bar.c
END
+: > ar-lib
: > foo.c
: > bar.c
diff --git a/tests/libobj13.test b/tests/libobj13.test
index 6ca68c9e6..fc3112b2d 100755
--- a/tests/libobj13.test
+++ b/tests/libobj13.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_LIBOBJ([foo])
AC_OUTPUT
diff --git a/tests/libobj2.test b/tests/libobj2.test
index 81b0e7222..36c01b3ba 100755
--- a/tests/libobj2.test
+++ b/tests/libobj2.test
@@ -24,6 +24,7 @@ cat > configure.in << 'END'
AC_INIT
AM_INIT_AUTOMAKE(nonesuch, nonesuch)
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_LIBOBJ([fsusage])
AC_OUTPUT(subdir/Makefile)
@@ -37,6 +38,7 @@ libtu_a_SOURCES =
libtu_a_LIBADD = @LIBOBJS@
END
+: > ar-lib
: > subdir/fsusage.c
$ACLOCAL || Exit 1
diff --git a/tests/libobj3.test b/tests/libobj3.test
index 0aeced91b..7304b0937 100755
--- a/tests/libobj3.test
+++ b/tests/libobj3.test
@@ -1,5 +1,6 @@
#! /bin/sh
-# Copyright (C) 1996, 1997, 2001, 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 2001, 2002, 2003, 2011 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
@@ -22,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_RANLIB
+AM_PROG_AR
END
cat > Makefile.am << 'END'
@@ -30,6 +32,8 @@ libtu_a_SOURCES =
libtu_a_LIBADD = @LIBOBJS@
END
+: > ar-lib
+
$ACLOCAL
AUTOMAKE_fails
grep 'Makefile.am:3:.*LIBOBJS' stderr
diff --git a/tests/libobj7.test b/tests/libobj7.test
index 73a8ab0e2..1ff36c455 100755
--- a/tests/libobj7.test
+++ b/tests/libobj7.test
@@ -22,6 +22,7 @@ cat > configure.in << 'END'
AC_INIT
AM_INIT_AUTOMAKE(nonesuch, nonesuch)
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_REPLACE_FUNCS(basename dirname strsignal)
AC_OUTPUT(Makefile)
@@ -33,6 +34,7 @@ libtu_a_SOURCES =
libtu_a_LIBADD = @LIBOBJS@
END
+: > ar-lib
: > basename.c
: > dirname.c
: > strsignal.c
diff --git a/tests/libobj8.test b/tests/libobj8.test
index 206bca6e6..e14375361 100755
--- a/tests/libobj8.test
+++ b/tests/libobj8.test
@@ -24,6 +24,7 @@ AC_INIT
AM_INIT_AUTOMAKE(nonesuch, nonesuch)
AC_PROG_CC
AC_PROG_CC_STDC
+AM_PROG_AR
AC_PROG_RANLIB
AC_REPLACE_FUNCS(basename dirname strsignal)
AM_C_PROTOTYPES
@@ -43,6 +44,7 @@ END
: > ansi2knr.1
: > ansi2knr.c
+: > ar-lib
$ACLOCAL || Exit 1
$AUTOMAKE -Wno-obsolete || Exit 1
diff --git a/tests/library.test b/tests/library.test
index 1e2b58b9e..8adc575c1 100755
--- a/tests/library.test
+++ b/tests/library.test
@@ -22,6 +22,7 @@ cat >> configure.in << 'END'
AC_PROG_RANLIB
AM_MAINTAINER_MODE
AC_PROG_CC
+AM_PROG_AR
END
cat > Makefile.am << 'END'
@@ -30,5 +31,7 @@ lib_LIBRARIES = libfoo.a
libfoo_a_DEPENDENCIES = libzot.a
END
+: > ar-lib
+
$ACLOCAL || Exit 1
$AUTOMAKE
diff --git a/tests/library2.test b/tests/library2.test
index 0dbff2899..d30c504d5 100755
--- a/tests/library2.test
+++ b/tests/library2.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2011 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
@@ -20,10 +20,14 @@
set -e
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
cat > Makefile.am << 'END'
EXTRA_LIBRARIES = libfoo.a
END
$ACLOCAL
-AUTOMAKE_fails
+AUTOMAKE_fails -Wno-portability
grep AC_PROG_RANLIB stderr
diff --git a/tests/libtoo10.test b/tests/libtoo10.test
index 51a68d487..44c072685 100755
--- a/tests/libtoo10.test
+++ b/tests/libtoo10.test
@@ -22,6 +22,7 @@ required=libtoolize
set -e
cat >> configure.in << 'END'
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/libtool2.test b/tests/libtool2.test
index a50f6a444..0120fa9e0 100755
--- a/tests/libtool2.test
+++ b/tests/libtool2.test
@@ -24,6 +24,7 @@ AC_INIT
AM_INIT_AUTOMAKE(mypackage,0.1)
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_CONFIG_FILES([
diff --git a/tests/libtool3.test b/tests/libtool3.test
index 3427f2892..1643f31eb 100755
--- a/tests/libtool3.test
+++ b/tests/libtool3.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AM_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/libtool4.test b/tests/libtool4.test
index 9f6a7301e..814b537d6 100755
--- a/tests/libtool4.test
+++ b/tests/libtool4.test
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2011 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
@@ -22,12 +22,15 @@ set -e
cat >> configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
END
cat > Makefile.am << 'END'
EXTRA_LTLIBRARIES = liblib.la
END
+: > ar-lib
+
$ACLOCAL
AUTOMAKE_fails
grep '[Ll]ibtool library .*LIBTOOL.* undefined' stderr
diff --git a/tests/libtool5.test b/tests/libtool5.test
index c7f0476db..820838812 100755
--- a/tests/libtool5.test
+++ b/tests/libtool5.test
@@ -27,6 +27,7 @@ cat >>configure.in <<'END'
AM_CONDITIONAL([COND1], [true])
AM_CONDITIONAL([COND2], [false])
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/libtool6.test b/tests/libtool6.test
index ad01b149a..ea5fd9c2c 100755
--- a/tests/libtool6.test
+++ b/tests/libtool6.test
@@ -26,6 +26,7 @@ cat >>configure.in <<'END'
AM_CONDITIONAL([COND1], [true])
AM_CONDITIONAL([COND2], [false])
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/libtool7.test b/tests/libtool7.test
index a2f912f43..8ebce0a2d 100755
--- a/tests/libtool7.test
+++ b/tests/libtool7.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_OUTPUT
diff --git a/tests/libtool8.test b/tests/libtool8.test
index a1bb88a5c..ed1b6cf70 100755
--- a/tests/libtool8.test
+++ b/tests/libtool8.test
@@ -25,6 +25,7 @@ cat >>configure.in <<'END'
AM_CONDITIONAL([COND1], [true])
AM_CONDITIONAL([COND2], [false])
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/libtool9.test b/tests/libtool9.test
index c0d9688a8..a27a1da05 100755
--- a/tests/libtool9.test
+++ b/tests/libtool9.test
@@ -26,6 +26,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
AM_PROG_CC_C_O
+AM_PROG_AR
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_OUTPUT
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index c35589f15..88946ebf6 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -98,8 +98,20 @@ ansi7.test \
ansi8.test \
ansi9.test \
ansi10.test \
+ar-lib.test \
+ar-lib2.test \
+ar-lib3.test \
+ar-lib4.test \
+ar-lib5a.test \
+ar-lib5b.test \
+ar-lib6a.test \
+ar-lib6b.test \
+ar-lib7.test \
ar.test \
ar2.test \
+ar3.test \
+ar4.test \
+ar5.test \
asm.test \
asm2.test \
asm3.test \
@@ -185,6 +197,10 @@ commen11.test \
comments-in-var-def.test \
compile.test \
compile2.test \
+compile3.test \
+compile4.test \
+compile5.test \
+compile6.test \
compile_f90_c_cxx.test \
compile_f_c_cxx.test \
cond.test \
@@ -360,6 +376,9 @@ exeext4.test \
exsource.test \
ext.test \
ext2.test \
+extra-portability.test \
+extra-portability2.test \
+extra-portability3.test \
extra.test \
extra2.test \
extra3.test \
diff --git a/tests/listval.test b/tests/listval.test
index 5ff75db4d..d7cc884a0 100755
--- a/tests/listval.test
+++ b/tests/listval.test
@@ -21,6 +21,7 @@ required=libtool
cat >> configure.in << 'END'
AC_SUBST(LTLIBOBJS)
+AM_PROG_AR
AC_PROG_LIBTOOL
END
@@ -34,6 +35,7 @@ END
: > ltconfig
: > ltmain.sh
+: > ar-lib
: > config.guess
: > config.sub
diff --git a/tests/location.test b/tests/location.test
index 13a21836a..609879638 100755
--- a/tests/location.test
+++ b/tests/location.test
@@ -24,6 +24,7 @@ cat >> configure.in << 'END'
AM_CONDITIONAL([COND1], [true])
AM_CONDITIONAL([COND2], [true])
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
END
@@ -44,6 +45,8 @@ VAR = 1 \
3
END
+: > ar-lib
+
$ACLOCAL
AUTOMAKE_fails
diff --git a/tests/ltcond.test b/tests/ltcond.test
index 0350a3d8a..401572be9 100755
--- a/tests/ltcond.test
+++ b/tests/ltcond.test
@@ -27,6 +27,7 @@ AM_CONDITIONAL([WANT_LIBFOO], [true])
AM_CONDITIONAL([WANT_LIBBAR], [false])
AC_SUBST([WANTEDLIBS], ['lib1foo.la lib1bar.la'])
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/ltcond2.test b/tests/ltcond2.test
index 1687513cd..898c97138 100755
--- a/tests/ltcond2.test
+++ b/tests/ltcond2.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_SUBST([HELLO_SYSTEM], [hello-generic.lo])
AM_CONDITIONAL([LINUX], true)
diff --git a/tests/ltconv.test b/tests/ltconv.test
index 0ec2132d2..a130b9437 100755
--- a/tests/ltconv.test
+++ b/tests/ltconv.test
@@ -24,6 +24,7 @@ set -e
cat >>configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_CONFIG_FILES(sub1/Makefile
sub2/Makefile
diff --git a/tests/ltdeps.test b/tests/ltdeps.test
index 43d0ae3cf..7ece4d493 100755
--- a/tests/ltdeps.test
+++ b/tests/ltdeps.test
@@ -22,6 +22,7 @@ required=libtool
set -e
cat >> configure.in << 'END'
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_PROG_CXX
AM_CONDITIONAL(HACKING_COMPACT_BUILD, whatever)
@@ -51,6 +52,7 @@ END
: > ltconfig
: > ltmain.sh
+: > ar-lib
: > config.guess
: > config.sub
diff --git a/tests/ltinit.test b/tests/ltinit.test
index 85705e005..58f192618 100755
--- a/tests/ltinit.test
+++ b/tests/ltinit.test
@@ -25,6 +25,7 @@ set -e
cat >>configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
dnl Older libtool versions don't define LT_PREREQ :-(
m4_ifdef([LT_PREREQ],
[LT_PREREQ([2.0])],
diff --git a/tests/ltinstloc.test b/tests/ltinstloc.test
index bb3203af1..a4d715e52 100755
--- a/tests/ltinstloc.test
+++ b/tests/ltinstloc.test
@@ -24,6 +24,7 @@ set -e
cat >>configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AM_CONDITIONAL([COND], [:])
AC_OUTPUT
@@ -46,7 +47,7 @@ AUTOMAKE_fails --add-missing
# libtoolize might have installed config.guess and config.sub already,
# and autom4te might warn about bugs in Libtool macro files, so filter
# out warnings about Makefile.am only. We don't care in this test
-# whether automake installs config.guess and config.sub.
+# whether automake installs config.guess, config.sub and ar-lib.
cat >expected <<'END'
Makefile.am:5: sub/liba2.la multiply defined in condition COND
diff --git a/tests/ltlibobjs.test b/tests/ltlibobjs.test
index fd6647324..2df001721 100755
--- a/tests/ltlibobjs.test
+++ b/tests/ltlibobjs.test
@@ -21,6 +21,7 @@ required=libtool
cat >> configure.in << 'END'
AC_SUBST(LTLIBOBJS)
+AM_PROG_AR
AC_PROG_LIBTOOL
END
@@ -32,6 +33,7 @@ END
: > ltconfig
: > ltmain.sh
+: > ar-lib
: > config.guess
: > config.sub
diff --git a/tests/ltlibsrc.test b/tests/ltlibsrc.test
index 2c9911d0f..e8fa6f0c7 100755
--- a/tests/ltlibsrc.test
+++ b/tests/ltlibsrc.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/ltorder.test b/tests/ltorder.test
index 0f6921136..ef4a5f71c 100755
--- a/tests/ltorder.test
+++ b/tests/ltorder.test
@@ -23,6 +23,7 @@ set -e
cat >>configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/multlib.test b/tests/multlib.test
index 75ef952e3..59a2260c0 100755
--- a/tests/multlib.test
+++ b/tests/multlib.test
@@ -84,6 +84,7 @@ AC_CONFIG_SRCDIR(foo.c)
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AM_ENABLE_MULTILIB(Makefile,[..])
AC_CONFIG_FILES([Makefile])
@@ -107,6 +108,7 @@ AC_INIT(libbar, 0.1, nobody@localhost)
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AM_ENABLE_MULTILIB(Makefile,[..])
AC_CONFIG_FILES([Makefile sub/Makefile])
diff --git a/tests/nobase-libtool.test b/tests/nobase-libtool.test
index 12b055ec9..2a0cf68b3 100755
--- a/tests/nobase-libtool.test
+++ b/tests/nobase-libtool.test
@@ -26,6 +26,7 @@ set -e
cat >> configure.in <<'EOF'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
EOF
diff --git a/tests/nobase.test b/tests/nobase.test
index 8b0dc6e90..cac875627 100755
--- a/tests/nobase.test
+++ b/tests/nobase.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in <<'EOF'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
EOF
diff --git a/tests/noinstdir.test b/tests/noinstdir.test
index 3f33c3210..b04bb0d62 100755
--- a/tests/noinstdir.test
+++ b/tests/noinstdir.test
@@ -34,9 +34,12 @@ END
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
END
+: > ar-lib
+
$ACLOCAL || Exit 1
$AUTOMAKE || Exit 1
diff --git a/tests/parse.test b/tests/parse.test
index e7dcbe5df..bf5b63a26 100755
--- a/tests/parse.test
+++ b/tests/parse.test
@@ -1,5 +1,6 @@
#! /bin/sh
-# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1998, 2000, 2001, 2002, 2011 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
@@ -22,7 +23,6 @@ cat > configure.in << 'END'
AC_INIT
AM_INIT_AUTOMAKE(nonesuch, nonesuch)
AC_PROG_CC
-AC_PROG_RANLIB
AC_OUTPUT(Makefile)
END
diff --git a/tests/pluseq7.test b/tests/pluseq7.test
index 071646208..31a42464d 100755
--- a/tests/pluseq7.test
+++ b/tests/pluseq7.test
@@ -1,6 +1,6 @@
#! /bin/sh
-# Copyright (C) 1999, 2001, 2002, 2003, 2010 Free Software Foundation,
-# Inc.
+# Copyright (C) 1999, 2001, 2002, 2003, 2010, 2011 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
@@ -34,7 +34,8 @@ AR += qq
END
$ACLOCAL
-AUTOMAKE_fails
-grep 'Makefile.am:3:.*AR' stderr
+AUTOMAKE_fails -Wno-portability
+q="[\`'\"]"
+grep "^Makefile\.am:3:.* AR .* with $q=$q before .*$q+=$q" stderr
:
diff --git a/tests/pr211.test b/tests/pr211.test
index 6778f7a06..798e4f670 100755
--- a/tests/pr211.test
+++ b/tests/pr211.test
@@ -47,7 +47,7 @@ END
libtoolize
$ACLOCAL
-AUTOMAKE_fails -a
+AUTOMAKE_fails -Wnone -a
$FGREP 'foo.$(OBJEXT)' stderr
:
diff --git a/tests/pr300-lib.test b/tests/pr300-lib.test
index 8f96db11a..d2ea942c1 100755
--- a/tests/pr300-lib.test
+++ b/tests/pr300-lib.test
@@ -45,7 +45,7 @@ END
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --copy --add-missing
+$AUTOMAKE -Wno-extra-portability --copy --add-missing
# We pass '--libdir' explicitly, to avoid spurious failures due to users
# or distributions possibly overriding '${libdir}' in their $CONFIG_SITE
diff --git a/tests/pr300-ltlib.test b/tests/pr300-ltlib.test
index 06d3c32b8..697668391 100755
--- a/tests/pr300-ltlib.test
+++ b/tests/pr300-ltlib.test
@@ -47,7 +47,7 @@ END
libtoolize
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --copy --add-missing
+$AUTOMAKE -Wno-extra-portability --copy --add-missing
# We pass '--libdir' explicitly, to avoid spurious failures due to users
# or distributions possibly overriding '${libdir}' in their $CONFIG_SITE
diff --git a/tests/pr307.test b/tests/pr307.test
index 7676c4bc6..349681741 100755
--- a/tests/pr307.test
+++ b/tests/pr307.test
@@ -68,7 +68,7 @@ done
libtoolize --force
$ACLOCAL
$AUTOCONF
-$AUTOMAKE -a
+$AUTOMAKE -Wno-extra-portability -a
# Sanity check: make sure the variable we are attempting to force
# is used by configure
diff --git a/tests/pr401.test b/tests/pr401.test
index 88f773380..600931546 100755
--- a/tests/pr401.test
+++ b/tests/pr401.test
@@ -81,7 +81,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
$MAKE distcheck
@@ -97,7 +97,7 @@ mv -f configure.int configure.in
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
test ! -d lib/lib
$MAKE distcheck
@@ -108,7 +108,7 @@ $MAKE distcheck
mv -f src/Makefile.am src/t
sed 's/LDADD = .*/LDADD = @LIBOBJS@/' src/t > src/Makefile.am
-AUTOMAKE_fails
+AUTOMAKE_fails -Wno-extra-portability
grep 'cannot be used outside.*lib' stderr
mv -f src/t src/Makefile.am
@@ -139,7 +139,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --add-missing
+$AUTOMAKE -Wno-extra-portability --add-missing
./configure
test ! -d src/lib
test ! -d 'src/$(top_builddir)'
@@ -176,7 +176,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
$MAKE distcheck
diff --git a/tests/pr401b.test b/tests/pr401b.test
index 0af46467a..4bd2f36b6 100755
--- a/tests/pr401b.test
+++ b/tests/pr401b.test
@@ -82,7 +82,7 @@ EOF
libtoolize
$ACLOCAL
$AUTOCONF
-$AUTOMAKE -a
+$AUTOMAKE -Wno-extra-portability -a
./configure
$MAKE distcheck
@@ -99,7 +99,7 @@ mv -f configure.int configure.in
$ACLOCAL
$AUTOCONF
-$AUTOMAKE -a
+$AUTOMAKE -Wno-extra-portability -a
./configure
test ! -d lib/lib
$MAKE distcheck
@@ -110,7 +110,7 @@ $MAKE distcheck
mv -f src/Makefile.am src/t
sed 's/LDADD = .*/LDADD = @LTLIBOBJS@/' src/t > src/Makefile.am
-AUTOMAKE_fails
+AUTOMAKE_fails -Wno-extra-portability
grep 'cannot be used outside.*lib' stderr
mv -f src/t src/Makefile.am
@@ -140,7 +140,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --add-missing
+$AUTOMAKE -Wno-extra-portability --add-missing
./configure
test ! -d src/lib
test ! -d 'src/$(top_builddir)'
@@ -177,7 +177,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
$MAKE distcheck
diff --git a/tests/pr401c.test b/tests/pr401c.test
index b94bc1660..1d0511f6b 100755
--- a/tests/pr401c.test
+++ b/tests/pr401c.test
@@ -83,7 +83,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
$MAKE distcheck
@@ -100,7 +100,7 @@ mv -f configure.int configure.in
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
test ! -d lib/lib
$MAKE distcheck
@@ -111,7 +111,7 @@ $MAKE distcheck
mv -f src/Makefile.am src/t
sed 's/LDADD = .*/LDADD = @ALLOCA@/' src/t > src/Makefile.am
-AUTOMAKE_fails
+AUTOMAKE_fails -Wno-extra-portability
grep 'cannot be used outside.*lib' stderr
mv -f src/t src/Makefile.am
@@ -142,7 +142,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --add-missing
+$AUTOMAKE -Wno-extra-portability --add-missing
./configure
$MAKE
test ! -d src/lib
@@ -179,7 +179,7 @@ EOF
$ACLOCAL
$AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
./configure
$MAKE distcheck
diff --git a/tests/pr72.test b/tests/pr72.test
index ab911ad15..5af32ec98 100755
--- a/tests/pr72.test
+++ b/tests/pr72.test
@@ -39,7 +39,7 @@ END
: > config.sub
$ACLOCAL
-$AUTOMAKE
+$AUTOMAKE -Wno-extra-portability
grep '^LINK =' Makefile.in
diff --git a/tests/primary-prefix-couples-documented-valid.test b/tests/primary-prefix-couples-documented-valid.test
index 645f318f2..c09e6cab2 100755
--- a/tests/primary-prefix-couples-documented-valid.test
+++ b/tests/primary-prefix-couples-documented-valid.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_PROG_LIBTOOL
AM_PROG_GCJ
diff --git a/tests/primary-prefix-couples-force-valid.test b/tests/primary-prefix-couples-force-valid.test
index 315ee4ee8..d60ecbf0c 100755
--- a/tests/primary-prefix-couples-force-valid.test
+++ b/tests/primary-prefix-couples-force-valid.test
@@ -30,6 +30,7 @@ set -e
cat >> configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
END
@@ -75,7 +76,7 @@ END
: > bar.h
$ACLOCAL
-$AUTOMAKE
+$AUTOMAKE -a
$AUTOCONF
cwd=`pwd` || fatal_ "cannot get current working directory"
diff --git a/tests/primary-prefix-invalid-couples.test b/tests/primary-prefix-invalid-couples.test
index c3d64715b..60d509b20 100755
--- a/tests/primary-prefix-invalid-couples.test
+++ b/tests/primary-prefix-invalid-couples.test
@@ -26,6 +26,7 @@ set -e
oIFS=$IFS # Saved for later.
+: > ar-lib
: > ltmain.sh
: > texinfo.tex
: > elisp-comp
@@ -35,6 +36,7 @@ oIFS=$IFS # Saved for later.
cat >> configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_SUBST([LIBTOOL], [:]) dnl So that we don't have to require Libtool.
AM_PROG_GCJ
diff --git a/tests/primary-prefix-valid-couples.test b/tests/primary-prefix-valid-couples.test
index 6eb414946..47aac5eee 100755
--- a/tests/primary-prefix-valid-couples.test
+++ b/tests/primary-prefix-valid-couples.test
@@ -23,6 +23,7 @@ set -e
cat >> configure.in <<'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_PROG_LIBTOOL
AM_PATH_PYTHON
@@ -43,6 +44,7 @@ echo '@setfilename foo' > foo.texi
: > texinfo.tex
: > py-compile
: > elisp-comp
+: > ar-lib
# Setup Makefile.am.
diff --git a/tests/reqd2.test b/tests/reqd2.test
index b47ef156d..1bf81236e 100755
--- a/tests/reqd2.test
+++ b/tests/reqd2.test
@@ -29,6 +29,7 @@ AC_CONFIG_AUX_DIR([autoconf])
AM_INIT_AUTOMAKE
AC_CONFIG_FILES([Makefile])
AC_PROG_CC
+AM_PROG_AR
AM_PROG_LIBTOOL
AC_CONFIG_FILES([autoconf/Makefile main/Makefile])
AC_OUTPUT
@@ -45,6 +46,7 @@ lib_LTLIBRARIES = lib0.la
lib0_la_SOURCES = 0.c
END
+: > ar-lib
libtoolize --force --copy
$ACLOCAL
$AUTOCONF
@@ -52,4 +54,6 @@ $AUTOCONF
test -f autoconf/ltmain.sh # Sanity check.
rm -f autoconf/ltmain.sh
AUTOMAKE_fails --add-missing --copy
-grep 'autoconf/ltmain.sh' stderr
+grep '^configure\.in:7:.* required file.*autoconf/ltmain\.sh' stderr
+
+:
diff --git a/tests/silent3.test b/tests/silent3.test
index 17f195980..4d66a0a99 100755
--- a/tests/silent3.test
+++ b/tests/silent3.test
@@ -29,6 +29,7 @@ cat >>configure.in <<'EOF'
AM_SILENT_RULES
AC_CONFIG_FILES([sub/Makefile])
AC_PROG_CC
+AM_PROG_AR
AM_PROG_CC_C_O
AC_PROG_LIBTOOL
AC_OUTPUT
diff --git a/tests/silent4.test b/tests/silent4.test
index 9c343c0d7..4ef4653fe 100755
--- a/tests/silent4.test
+++ b/tests/silent4.test
@@ -30,6 +30,7 @@ cat >>configure.in <<'EOF'
AM_SILENT_RULES
AC_CONFIG_FILES([sub/Makefile])
AC_PROG_CC
+AM_PROG_AR
AM_PROG_CC_C_O
AC_PROG_LIBTOOL
AC_OUTPUT
diff --git a/tests/silent9.test b/tests/silent9.test
index f0abb2902..76d97fcf7 100755
--- a/tests/silent9.test
+++ b/tests/silent9.test
@@ -30,6 +30,7 @@ AM_SILENT_RULES
AC_CONFIG_FILES([sub/Makefile])
AC_PROG_CC
AM_PROG_CC_C_O
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
EOF
diff --git a/tests/specflg-dummy.test b/tests/specflg-dummy.test
index 614d6c25e..d0c8ba660 100755
--- a/tests/specflg-dummy.test
+++ b/tests/specflg-dummy.test
@@ -61,6 +61,7 @@ AC_PROG_LEX
AC_PROG_F77
AC_PROG_FC
AM_PROG_GCJ
+AM_PROG_AR
AC_PROG_RANLIB
AC_PROG_LIBTOOL
AM_PROG_UPC
diff --git a/tests/specflg2.test b/tests/specflg2.test
index 0dc7fccc4..f67fd7b70 100755
--- a/tests/specflg2.test
+++ b/tests/specflg2.test
@@ -24,6 +24,7 @@ cat >> configure.in << 'END'
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CXX
+AM_PROG_AR
AC_PROG_RANLIB
END
@@ -35,6 +36,8 @@ libfoo_a_CFLAGS = -DBAR
libfoo_a_CXXFLAGS = -DZOT
END
+: > ar-lib
+
# Make sure `compile' is required.
$ACLOCAL
AUTOMAKE_fails
diff --git a/tests/stdlib.test b/tests/stdlib.test
index 48f56fc25..5ca9a7ff2 100755
--- a/tests/stdlib.test
+++ b/tests/stdlib.test
@@ -1,5 +1,6 @@
#! /bin/sh
-# Copyright (C) 1996, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2001, 2002, 2003, 2004, 2011 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
@@ -22,15 +23,33 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
END
cat > Makefile.am << 'END'
noinst_LIBRARIES = sub/foo
+include $(srcdir)/foo.mk
END
+cat > foo.mk << 'END'
+## A dummy automake comment.
+a = x \
+ y
+# A dummy make comment.
+lib_LIBRARIES = zardoz.a
+END
+
+: > ar-lib
+
$ACLOCAL
AUTOMAKE_fails
+q="[\`'\"]"
+badname='not a standard library name'
# We're specifically testing for line-number information.
-grep 'Makefile.am:1:.*sub/foo.*standard library name' stderr
-grep 'Makefile.am:1:.*sub/libfoo.a.*' stderr
+grep "^Makefile\\.am:1:.*${q}sub/foo${q}.*$badname" stderr
+grep "^Makefile\\.am:1:.*sub/libfoo\\.a" stderr
+grep "^foo\\.mk:5:.*${q}zardoz\\.a${q}.*$badname" stderr
+grep "^foo\\.mk:5:.*libzardoz\\.a" stderr
+
+:
diff --git a/tests/stdlib2.test b/tests/stdlib2.test
index c5d543c23..5da42adaf 100755
--- a/tests/stdlib2.test
+++ b/tests/stdlib2.test
@@ -32,6 +32,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/strip2.test b/tests/strip2.test
index 5786ded89..bab0a38e0 100755
--- a/tests/strip2.test
+++ b/tests/strip2.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
END
diff --git a/tests/strip3.test b/tests/strip3.test
index b15967334..34b02545f 100755
--- a/tests/strip3.test
+++ b/tests/strip3.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/subdir4.test b/tests/subdir4.test
index 7ea10f894..9d4efec34 100755
--- a/tests/subdir4.test
+++ b/tests/subdir4.test
@@ -26,6 +26,7 @@ mkdir lib src
cat >> configure.in << 'END'
AC_PROG_RANLIB
AC_PROG_CC
+AM_PROG_AR
AC_CONFIG_FILES([lib/Makefile src/Makefile])
AC_OUTPUT
END
@@ -56,6 +57,8 @@ cat > src/Makefile.am << 'END'
pkgdata_DATA =
END
+: > ar-lib
+
$ACLOCAL
$AUTOMAKE --gnu
diff --git a/tests/subdirbuiltsources.test b/tests/subdirbuiltsources.test
index a84f28e9c..a6a0035b8 100755
--- a/tests/subdirbuiltsources.test
+++ b/tests/subdirbuiltsources.test
@@ -28,6 +28,7 @@ cat >> configure.in << 'END'
AC_CONFIG_FILES([lib/Makefile])
AC_PROG_RANLIB
AC_PROG_CC
+AM_PROG_AR
AC_OUTPUT
END
diff --git a/tests/subobj10.test b/tests/subobj10.test
index dbddf29c1..e446fba7a 100755
--- a/tests/subobj10.test
+++ b/tests/subobj10.test
@@ -26,6 +26,7 @@ AC_INIT([$me], [1.0])
AM_INIT_AUTOMAKE([subdir-objects])
AM_PROG_AS
+AM_PROG_AR
AC_PROG_RANLIB
AC_CONFIG_FILES([Makefile])
diff --git a/tests/subobj9.test b/tests/subobj9.test
index 83f3a31ef..39ba33e3a 100755
--- a/tests/subobj9.test
+++ b/tests/subobj9.test
@@ -25,6 +25,7 @@ cat > configure.in << END
AC_INIT([$me], [1.0])
AM_INIT_AUTOMAKE([subdir-objects])
AC_PROG_CXX
+AM_PROG_AR
AM_PROG_LIBTOOL
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/tests/subpkg-yacc.test b/tests/subpkg-yacc.test
index ee8af66f3..011d5c247 100755
--- a/tests/subpkg-yacc.test
+++ b/tests/subpkg-yacc.test
@@ -57,6 +57,7 @@ AC_PROG_RANLIB
AC_PROG_YACC
dnl This comes after YACC and RANLIB checks, deliberately.
AC_PROG_CC
+AM_PROG_AR
AC_CONFIG_HEADERS([config.h:config.hin])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/tests/subpkg.test b/tests/subpkg.test
index 579a0a448..381fc542f 100755
--- a/tests/subpkg.test
+++ b/tests/subpkg.test
@@ -66,6 +66,7 @@ mkdir lib/src
cat >lib/configure.ac <<'EOF'
AC_INIT([lib], [2.3])
AM_INIT_AUTOMAKE
+AM_PROG_AR
AC_PROG_RANLIB
AC_CONFIG_HEADERS([config.h:config.hin])
AC_CONFIG_FILES([Makefile])
diff --git a/tests/subst3.test b/tests/subst3.test
index 1bcb17060..c7adc8c21 100755
--- a/tests/subst3.test
+++ b/tests/subst3.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in <<'EOF'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_RANLIB
if test -n "$doit"; then
AC_SUBST([basehdr], [sub/base.h])
diff --git a/tests/substtarg.test b/tests/substtarg.test
index d82895470..34db19fcb 100755
--- a/tests/substtarg.test
+++ b/tests/substtarg.test
@@ -25,6 +25,7 @@ set -e
cat >> configure.in << 'END'
AC_CONFIG_SOURCE([fakelib.c])
AC_PROG_CC
+AM_PROG_AR
RANLIB=:
AC_SUBST([RANLIB])
SUBST=hei
@@ -42,6 +43,8 @@ libfake@SUBST@.a: Makefile $(libfake@SUBST@_a_OBJECTS) $(libfake@SUBST@_a_DEPEND
@echo here we do some custom stuff, instead of invoking the linker
END
+: > ar-lib
+
$ACLOCAL
AUTOMAKE_fails
grep 'overrid.*libfake@SUBST@.a' stderr
diff --git a/tests/suffix10.test b/tests/suffix10.test
index 131359c8f..bdc4928e6 100755
--- a/tests/suffix10.test
+++ b/tests/suffix10.test
@@ -25,6 +25,7 @@ set -e
cat >>configure.in <<EOF
AC_PROG_CC
AC_PROG_YACC
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
EOF
diff --git a/tests/suffix2.test b/tests/suffix2.test
index 405ce90c5..f55d965c0 100755
--- a/tests/suffix2.test
+++ b/tests/suffix2.test
@@ -24,6 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
END
diff --git a/tests/suffix5.test b/tests/suffix5.test
index b3b36aaea..2cf0afa7c 100755
--- a/tests/suffix5.test
+++ b/tests/suffix5.test
@@ -24,6 +24,7 @@ required=libtool
set -e
cat >> configure.in << 'END'
+AM_PROG_AR
AC_PROG_LIBTOOL
END
@@ -38,6 +39,7 @@ END
: > ltmain.sh
: > config.guess
: > config.sub
+: > ar-lib
$ACLOCAL
$AUTOMAKE
diff --git a/tests/suffix8.test b/tests/suffix8.test
index 4279ad6a8..4110056c7 100755
--- a/tests/suffix8.test
+++ b/tests/suffix8.test
@@ -23,6 +23,7 @@ required='gcc libtoolize'
set -e
cat >>configure.in <<'END'
+AM_PROG_AR
AM_PROG_LIBTOOL
AC_OUTPUT
END
diff --git a/tests/syntax.test b/tests/syntax.test
index 505486f0d..23fa79255 100755
--- a/tests/syntax.test
+++ b/tests/syntax.test
@@ -1,5 +1,6 @@
#! /bin/sh
-# Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1998, 2001, 2002, 2003, 2011 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
@@ -23,9 +24,11 @@ set -e
cat > Makefile.am << 'END'
foo = q \
-lib_LTLIBRARIES = foo.la
+bin_SCRIPTS = foo.sh
END
$ACLOCAL
-AUTOMAKE_fails
-grep 'Makefile.am:2:.*blank line' stderr
+AUTOMAKE_fails -Wnone
+grep '^Makefile\.am:2:.*blank line following trailing backslash' stderr
+
+:
diff --git a/tests/vala.test b/tests/vala.test
index 70122c326..fc179879c 100755
--- a/tests/vala.test
+++ b/tests/vala.test
@@ -35,6 +35,7 @@ cat >> configure.in <<'END'
AC_PROG_CC
AC_PROG_CXX
AC_PROG_LIBTOOL
+AM_PROG_AR
AM_PROG_VALAC
AC_CONFIG_FILES([sub/Makefile])
AC_OUTPUT
diff --git a/tests/vala1.test b/tests/vala1.test
index d0cc24101..b2c9e1606 100755
--- a/tests/vala1.test
+++ b/tests/vala1.test
@@ -29,6 +29,7 @@ set -e
cat >> 'configure.in' << 'END'
AC_PROG_CC
+AM_PROG_AR
AC_PROG_LIBTOOL
AM_PROG_VALAC
AC_OUTPUT