From: Peter Rosin Date: Thu, 20 Oct 2011 22:23:34 +0000 (+0200) Subject: ar-lib: new 'AM_PROG_AR' macro, triggering the 'ar-lib' script X-Git-Tag: ng-0.5a~101^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c7a6a92ea100e3c78c7f48bd6a672da3ad46fc7f;p=thirdparty%2Fautomake.git ar-lib: 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. Signed-off-by: Peter Rosin --- diff --git a/ChangeLog b/ChangeLog index 4e1c0670f..1d7b68de5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,48 @@ +2011-10-21 Peter Rosin + Ralf Wildenhues + Stefano Lattarini + + 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 * tests/amhello-binpkg.test: Add missing $EXEEXT usage. diff --git a/NEWS b/NEWS index b59a82025..baddcad4c 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,11 @@ New in 1.11.0a: user; still, the old Makefile.am files that used to define it should 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 found archiver is Microsoft lib. This + new macro is required for LIBRARIES and LTLIBRARIES when automake is + run with -Wportability (or -Wall) and -Werror. + Bugs fixed in 1.11.0a: * Bugs introduced by 1.11: diff --git a/automake.in b/automake.in index 83db66810..1d1bb15dc 100755 --- a/automake.in +++ b/automake.in @@ -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; @@ -2820,6 +2823,13 @@ sub handle_libraries &check_libobjs_sources ($xlib, $xlib . '_LIBADD'); } } + + if (! $seen_ar) + { + msg ('portability', $where, + "`$onelib': linking libraries using a non-POSIX\n" + . "archiver requires `AM_PROG_AR' in `$configure_ac'") + } } } @@ -3057,6 +3067,13 @@ sub handle_ltlibraries &check_libobjs_sources ($xlib, $xlib . '_LIBADD'); } } + + if (! $seen_ar) + { + msg ('portability', $where, + "`$onelib': linking libtool libraries using a non-POSIX\n" + . "archiver requires `AM_PROG_AR' in `$configure_ac'") + } } } @@ -5268,6 +5285,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, @@ -5459,6 +5477,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/doc/automake.texi b/doc/automake.texi index ce1bdbbdf..c789e7433 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -3945,6 +3945,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 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 @@ -4568,6 +4577,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 @@ -5008,12 +5018,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 diff --git a/m4/Makefile.am b/m4/Makefile.am index 0cf074b4e..c801894f9 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -22,6 +22,7 @@ m4datadir = $(datadir)/aclocal-$(APIVERSION) dist_m4data_DATA = \ $(top_srcdir)/m4/amversion.m4 \ +ar-lib.m4 \ as.m4 \ auxdir.m4 \ ccstdc.m4 \ diff --git a/m4/Makefile.in b/m4/Makefile.in index ff4dd433f..16388ee14 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -188,6 +188,7 @@ top_srcdir = @top_srcdir@ m4datadir = $(datadir)/aclocal-$(APIVERSION) dist_m4data_DATA = \ $(top_srcdir)/m4/amversion.m4 \ +ar-lib.m4 \ as.m4 \ auxdir.m4 \ ccstdc.m4 \ diff --git a/m4/ar-lib.m4 b/m4/ar-lib.m4 new file mode 100644 index 000000000..822ca6085 --- /dev/null +++ b/m4/ar-lib.m4 @@ -0,0 +1,58 @@ +## -*- 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 + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + 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" + ;; +esac +AC_SUBST([AR])dnl +]) diff --git a/tests/Makefile.am b/tests/Makefile.am index f1fd4ceaa..b0be5564b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -106,8 +106,19 @@ 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 \ diff --git a/tests/Makefile.in b/tests/Makefile.in index a6e17a1a8..3c19988d0 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -384,8 +384,19 @@ 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 \ 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 <> 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-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 . + +# 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..6bcf6c263 --- /dev/null +++ b/tests/ar-lib3.test @@ -0,0 +1,45 @@ +#! /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 . + +# 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 + +grep 'requires.*AM_PROG_AR' stderr + +cat >> configure.in << 'END' +AM_PROG_AR +END + +$ACLOCAL +$AUTOMAKE --add-missing + +: diff --git a/tests/ar-lib4.test b/tests/ar-lib4.test new file mode 100755 index 000000000..e05a8c2f9 --- /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 . + +# 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 + +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 --add-missing + +: diff --git a/tests/ar-lib5a.test b/tests/ar-lib5a.test new file mode 100755 index 000000000..cb73f92df --- /dev/null +++ b/tests/ar-lib5a.test @@ -0,0 +1,72 @@ +#! /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 . + +# 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 +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 + +$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..181c24bf7 --- /dev/null +++ b/tests/ar-lib5b.test @@ -0,0 +1,83 @@ +#! /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 . + +# 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 +case " $* " in + *' -OUT:'*) exit 0;; + *' cru '*) exit 1;; + *) : > ar-lib-worked;; +esac +END +chmod +x bin/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=bin/lib RANLIB=: + +$MAKE check +$MAKE distcheck DISTCHECK_CONFIGURE_FLAGS="AR=`pwd`/bin/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 . + +# 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 . + +# 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 . + +# 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..f8ad55987 100755 --- a/tests/ar2.test +++ b/tests/ar2.test @@ -33,7 +33,7 @@ libfoo_a_SOURCES = foo.c END $ACLOCAL -$AUTOMAKE +$AUTOMAKE -Wno-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 . + +# 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..ebd8c576f --- /dev/null +++ b/tests/ar4.test @@ -0,0 +1,35 @@ +#! /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 . + +# 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 + +./configure AR=/bin/false 2>stderr && { cat stderr >&2; Exit 1; } +cat stderr >&2 + +grep 'configure: error: could not determine /bin/false interface' stderr + +: diff --git a/tests/ar5.test b/tests/ar5.test new file mode 100755 index 000000000..d00f421bd --- /dev/null +++ b/tests/ar5.test @@ -0,0 +1,33 @@ +#! /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 . + +# 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]) +END + +$ACLOCAL +$AUTOCONF + +./configure AR=/bin/false +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/compile4.test b/tests/compile4.test index 5a0bdf3c3..0b3e98171 100755 --- a/tests/compile4.test +++ b/tests/compile4.test @@ -48,6 +48,7 @@ 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 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 2959f8bac..b8edd3b52 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -278,6 +278,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 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/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 <>configure.in <> configure.in <<'EOF' AC_PROG_CC +AM_PROG_AR AC_PROG_RANLIB AC_OUTPUT EOF 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/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/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/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/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 b4eaad602..8b76bdf81 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 3f88be30a..1072a5745 100755 --- a/tests/multlib.test +++ b/tests/multlib.test @@ -66,6 +66,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]) @@ -89,6 +90,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/pr300-lib.test b/tests/pr300-lib.test index ee46b4b44..0b0d963c4 100755 --- a/tests/pr300-lib.test +++ b/tests/pr300-lib.test @@ -45,7 +45,7 @@ END $ACLOCAL $AUTOCONF -$AUTOMAKE --copy --add-missing +$AUTOMAKE -Wno-portability --copy --add-missing ./configure --prefix "`pwd`/inst" diff --git a/tests/pr300-ltlib.test b/tests/pr300-ltlib.test index c47f32eba..3189fb4cb 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-portability --copy --add-missing ./configure --prefix "`pwd`/inst" diff --git a/tests/pr307.test b/tests/pr307.test index 7676c4bc6..4bf2f7494 100755 --- a/tests/pr307.test +++ b/tests/pr307.test @@ -68,7 +68,7 @@ done libtoolize --force $ACLOCAL $AUTOCONF -$AUTOMAKE -a +$AUTOMAKE -Wno-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..d06ddb431 100755 --- a/tests/pr401.test +++ b/tests/pr401.test @@ -81,7 +81,7 @@ EOF $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-portability ./configure $MAKE distcheck @@ -97,7 +97,7 @@ mv -f configure.int configure.in $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-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-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-portability --add-missing ./configure test ! -d src/lib test ! -d 'src/$(top_builddir)' @@ -176,7 +176,7 @@ EOF $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-portability ./configure $MAKE distcheck diff --git a/tests/pr401b.test b/tests/pr401b.test index 0af46467a..3e6c927e7 100755 --- a/tests/pr401b.test +++ b/tests/pr401b.test @@ -82,7 +82,7 @@ EOF libtoolize $ACLOCAL $AUTOCONF -$AUTOMAKE -a +$AUTOMAKE -Wno-portability -a ./configure $MAKE distcheck @@ -99,7 +99,7 @@ mv -f configure.int configure.in $ACLOCAL $AUTOCONF -$AUTOMAKE -a +$AUTOMAKE -Wno-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-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-portability --add-missing ./configure test ! -d src/lib test ! -d 'src/$(top_builddir)' @@ -177,7 +177,7 @@ EOF $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-portability ./configure $MAKE distcheck diff --git a/tests/pr401c.test b/tests/pr401c.test index b94bc1660..fc6a1ba6a 100755 --- a/tests/pr401c.test +++ b/tests/pr401c.test @@ -83,7 +83,7 @@ EOF $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-portability ./configure $MAKE distcheck @@ -100,7 +100,7 @@ mv -f configure.int configure.in $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-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-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-portability --add-missing ./configure $MAKE test ! -d src/lib @@ -179,7 +179,7 @@ EOF $ACLOCAL $AUTOCONF -$AUTOMAKE +$AUTOMAKE -Wno-portability ./configure $MAKE distcheck diff --git a/tests/pr72.test b/tests/pr72.test index ab911ad15..f2d507cff 100755 --- a/tests/pr72.test +++ b/tests/pr72.test @@ -39,7 +39,7 @@ END : > config.sub $ACLOCAL -$AUTOMAKE +$AUTOMAKE -Wno-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 88e081729..16e9f4303 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 f326808ff..17f450a8d 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_PROG_GCJ @@ -44,6 +45,7 @@ echo '@setfilename foo' > foo.texi : > texinfo.tex : > py-compile : > elisp-comp +: > ar-lib # Setup Makefile.am. 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/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.test b/tests/subpkg.test index 366293726..cb85bd46a 100755 --- a/tests/subpkg.test +++ b/tests/subpkg.test @@ -68,6 +68,7 @@ mkdir lib/src cat >lib/configure.ac <<'EOF' AC_INIT([lib], [2.3]) AM_INIT_AUTOMAKE +AM_PROG_AR AC_PROG_RANLIB AC_PROG_YACC AC_CONFIG_HEADERS([config.h:config.hin]) 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 <> 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 70ff3a590..d2ba0d4ab 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/vala.test b/tests/vala.test index 3e9ae3648..34b71d4a4 100755 --- a/tests/vala.test +++ b/tests/vala.test @@ -28,6 +28,7 @@ set -e cat >> 'configure.in' << 'END' AC_PROG_CC +AM_PROG_AR AC_PROG_LIBTOOL AM_PROG_VALAC 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