Merge branch 'msvc' into maint
[platform/upstream/automake.git] / tests / ltorder.test
1 #!/bin/sh
2 # Copyright (C) 2008  Free Software Foundation, Inc.
3 #
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.
8 #
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.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 # Test for correct installation order of nobase libtool libraries.
18
19 required='libtoolize'
20 . ./defs || Exit 1
21
22 set -e
23
24 cat >>configure.in <<'END'
25 AC_PROG_CC
26 AM_PROG_AR
27 AC_PROG_LIBTOOL
28 AC_OUTPUT
29 END
30
31 cat >Makefile.am <<'END'
32 nobase_lib_LTLIBRARIES = liba1.la sub/liba2.la sub/liba3.la liba4.la liba5.la
33 sub_liba2_la_LIBADD = liba1.la
34 sub_liba3_la_LIBADD = sub/liba2.la
35 liba4_la_LIBADD = sub/liba3.la
36 liba5_la_LIBADD = liba4.la
37 bin_PROGRAMS = p
38 p_LDADD = liba5.la
39 END
40
41 mkdir sub
42 echo 'int a1 () { return 1; }' >liba1.c
43 echo 'extern int a1 (); int a2 () { return a1 (); }' >sub/liba2.c
44 echo 'extern int a2 (); int a3 () { return a2 (); }' >sub/liba3.c
45 echo 'extern int a3 (); int a4 () { return a3 (); }' >liba4.c
46 echo 'extern int a4 (); int a5 () { return a4 (); }' >liba5.c
47 echo 'extern int a5 (); int main () { return a5 (); }' >p.c
48
49 libtoolize
50 $ACLOCAL
51 $AUTOCONF
52 $AUTOMAKE --add-missing
53
54 ./configure "--prefix=`pwd`/inst"
55
56 $MAKE
57 $MAKE install 2>stderr || { cat stderr >&2; Exit 1; }
58 cat stderr >&2
59 grep 'has not been installed' stderr && Exit 1
60
61 $MAKE uninstall
62 test `find inst -type f -print | wc -l` -eq 0
63 :