maint: Update HACKING
[automake.git] / t / ltinit.sh
blob70b1090836b9522ec14b689eb1ed8c7957fd77ce
1 #!/bin/sh
2 # Copyright (C) 2011-2017 Free Software Foundation, Inc.
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
7 # any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
17 # Test that libtool support works correctly when "newer" libtool
18 # interface (with LT_INIT etc.) is used (this interface has been
19 # present since libtool 1.9b, circa 2004).
21 required='cc libtoolize'
22 . test-init.sh
24 cat >>configure.ac <<'END'
25 AC_PROG_CC
26 AM_PROG_AR
27 dnl Older libtool versions don't define LT_PREREQ :-(
28 m4_ifdef([LT_PREREQ],
29 [LT_PREREQ([2.0])],
30 [m4_fatal([Libtool version too old], [63])])
31 LT_INIT([dlopen])
32 AC_OUTPUT
33 END
35 cat >Makefile.am <<'END'
36 lib_LTLIBRARIES = libfoo.la
37 END
39 cat > libfoo.c <<'END'
40 int foo (void)
42 return 1;
44 END
46 libtoolize
47 # Skip if older libtool (pre-2.0) is used.
48 { $ACLOCAL && $AUTOCONF; } || {
49 if test $? -eq 63; then
50 skip_ "libtool is too old (probably < 2.0)"
51 else
52 exit 1
55 $EGREP 'LT_(INIT|PREREQ)' configure && exit 1 # Sanity check.
56 $AUTOMAKE -a
58 ./configure --prefix="$(pwd)/inst" >stdout || { cat stdout; exit 1; }
59 cat stdout
60 grep '^checking.*dlfcn\.h.* no$' stdout || grep '^checking.*dlopen' stdout
62 $MAKE
63 $MAKE install
64 $MAKE distcheck