diff options
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. @@ -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. ================================================================ @@ -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 |