c8c7f789e5942892c842b0023cd92ddf7a8c7e3d
[platform/upstream/automake.git] / tests / libtool3.test
1 #! /bin/sh
2 # Copyright (C) 2002, 2004  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 2, 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 # Try to build and package a program linked to a Libtool library.
22 # Also make sure we do not bloat the Makefile with unneeded rules.
23
24 required='libtoolize gcc'
25 . ./defs || exit 1
26
27 set -e
28
29 cat >> configure.in << 'END'
30 AC_PROG_CC
31 AM_PROG_LIBTOOL
32 AC_OUTPUT
33 END
34
35 cat > Makefile.am << 'END'
36 lib_LTLIBRARIES = lib0.la liba/liba.la
37 lib0_la_SOURCES = 0.c
38 liba_liba_la_SOURCES = liba/a.c
39
40 bin_PROGRAMS = 1
41 1_SOURCES = sub/1.c
42 1_LDADD = lib0.la $(top_builddir)/liba/liba.la
43 END
44
45 mkdir liba sub
46
47 cat > 0.c << 'END'
48 int
49 zero (void)
50 {
51    return 0;
52 }
53 END
54
55 cat > sub/1.c << 'END'
56 int zero ();
57
58 int
59 main ()
60 {
61    return zero ();
62 }
63 END
64
65 cat > liba/a.c << 'END'
66 int
67 a (void)
68 {
69    return 'a';
70 }
71 END
72
73 # Use --copy to workaround a bug in Cygwin's `cp -p' during distcheck.
74 # (This bug is already exhibited by subobj9.test.)  In brief: Cygwin's
75 # `cp -p' tries to preserve group and owner of the source and fails
76 # to do so under normal accounts.  With --copy we ensure we own all files.
77
78 libtoolize --force --copy
79 $ACLOCAL
80 $AUTOCONF
81 $AUTOMAKE --add-missing --copy
82
83 # We need explicit rules to build 1.o and a.lo.  Make sure
84 # Automake did not output additional rules for 1.lo and and a.lo.
85 $FGREP '1.o:' Makefile.in
86 $FGREP '1.lo:' Makefile.in && exit 1
87 $FGREP 'a.o:' Makefile.in && exit 1
88 $FGREP 'a.lo:' Makefile.in
89
90 ./configure
91
92 $MAKE
93 $MAKE distcheck