563a1265f4907ee8d0fc727ed5f7991c9f0289b4
[platform/upstream/automake.git] / tests / libtool7.test
1 #! /bin/sh
2 # Copyright (C) 2003, 2004, 2007  Free Software Foundation, Inc.
3 #
4 # This file is part of GNU Automake.
5 #
6 # GNU Automake is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
10 #
11 # GNU Automake is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with Automake; see the file COPYING.  If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
20
21 # Make sure we allow Libtool's -dlopen/-dlpreopen
22 # Also check basic support for AM_LIBTOOLFLAGS/LIBTOOLFLAGS
23
24 required='libtoolize gcc'
25 . ./defs || exit 1
26
27 set -e
28
29 cat >> configure.in << 'END'
30 AC_PROG_CC
31 AC_LIBTOOL_DLOPEN
32 AM_PROG_LIBTOOL
33 AC_OUTPUT
34 END
35
36 cat > Makefile.am << 'END'
37 AUTOMAKE_OPTIONS = subdir-objects
38 AM_LIBTOOLFLAGS = --silent
39 lib_LTLIBRARIES = libmod1.la mod2.la
40 libmod1_la_SOURCES = sub/mod1.c
41 libmod1_la_LDFLAGS = -module
42 libmod1_la_LIBADD = -dlopen mod2.la
43 mod2_la_SOURCES = mod2.c
44 mod2_la_LDFLAGS = -module
45 mod2_la_LIBTOOLFLAGS =
46
47 bin_PROGRAMS = prg
48 prg_SOURCES = prg.c
49 prg_LDADD = -dlopen libmod1.la -dlpreopen mod2.la
50
51 print:
52         @echo 1BEG: $(prg_DEPENDENCIES) :END1
53         @echo 2BEG: $(libmod1_la_DEPENDENCIES) :END2
54         @echo 3BEG: $(LTCOMPILE) :END3
55 END
56
57 mkdir sub liba
58
59 cat > sub/mod1.c << 'END'
60 int
61 mod1 ()
62 {
63    return 1;
64 }
65 END
66
67 cat > mod2.c << 'END'
68 int
69 mod2 ()
70 {
71    return 2;
72 }
73 END
74
75 cat > prg.c << 'END'
76 int
77 main ()
78 {
79    return 0;
80 }
81 END
82
83 libtoolize --force --copy
84 $ACLOCAL
85 $AUTOCONF
86 $AUTOMAKE --add-missing --copy
87
88 ./configure "--prefix=`pwd`/_inst"
89 env LIBTOOLFLAGS=--silent $MAKE print >output 2>&1
90 cat output
91 grep '1BEG: libmod1.la mod2.la :END1' output
92 grep '2BEG: mod2.la :END2' output
93 grep '3BEG: .*silent.*silent.* :END3' output
94 test 2 -le `grep mod2_la_LIBTOOLFLAGS Makefile | wc -l`
95 $MAKE
96
97 env LIBTOOLFLAGS=--silent $MAKE install >output 2>&1
98 cat output
99 grep 'silent.*silent.*prg' output
100 grep 'silent.*silent.*libmod1' output
101
102 env LIBTOOLFLAGS=--silent $MAKE uninstall >output 2>&1
103 cat output
104 grep 'silent.*silent.*libmod1' output