Replace 'configure' with '@command{configure}' as appropriate.
[automake/ericb.git] / tests / multlib.test
blobe2857a7937ef603b4d1e71c7358d3920369cd4a5
1 #! /bin/sh
2 # Copyright (C) 2003, 2004, 2007 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 3, 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 <http://www.gnu.org/licenses/>.
17 # Check multilib support.
18 # Based on a test case from Ralf Corsepius.
20 required='gcc GNUmake'
21 . ./defs || Exit 1
23 set -e
25 cat >configure.in <<'END'
26 AC_INIT([multlib], [1.0])
27 AC_CONFIG_SRCDIR(libfoo/foo.c)
28 AC_CONFIG_AUX_DIR(.)
29 AM_INIT_AUTOMAKE
30 AC_CONFIG_FILES([Makefile])
31 AC_CONFIG_SUBDIRS(libfoo)
32 AC_CONFIG_SUBDIRS(libbar)
33 AC_OUTPUT
34 END
36 cat >mycc <<'END'
37 #! /bin/sh
38 case ${1+"$@"} in
39 *-print-multi-lib*)
40 echo ".;"
41 echo "debug;@g"
42 exit 0 ;;
43 esac
44 gcc ${1+"$@"}
45 END
47 chmod +x mycc
48 PATH=`pwd`:$PATH
50 cat >Makefile.am <<'EOF'
51 SUBDIRS = @subdirs@
52 EXTRA_DIST = config-ml.in symlink-tree
53 EOF
55 # libfoo tests multilib supports when there are no subdirectories
56 # libbar tests multilib supports when there are subdirectories
58 mkdir libfoo
60 cat >libfoo/configure.in <<'END'
61 AC_PREREQ(2.57)
62 AC_INIT(libfoo, 0.1, nobody@localhost)
63 AC_CONFIG_SRCDIR(foo.c)
64 # Apparently it doesn't work to have auxdir=.. when
65 # multilib uses symlinked trees.
66 AC_CONFIG_AUX_DIR(.)
67 AM_INIT_AUTOMAKE(foreign)
68 AC_PROG_CC
69 AC_PROG_RANLIB
70 AM_ENABLE_MULTILIB(Makefile,[..])
71 AC_CONFIG_FILES([Makefile])
72 AC_OUTPUT
73 END
75 cat >libfoo/Makefile.am <<'END'
76 noinst_LIBRARIES = libfoo.a
77 libfoo_a_SOURCES = foo.c
78 END
80 : > libfoo/foo.c
82 mkdir libbar
84 cat >libbar/configure.in <<'END'
85 AC_PREREQ(2.57)
86 AC_INIT(libbar, 0.1, nobody@localhost)
87 # Apparently it doesn't work to have auxdir=.. when
88 # multilib uses symlinked trees.
89 AC_CONFIG_AUX_DIR(.)
90 AM_INIT_AUTOMAKE(foreign)
91 AC_PROG_CC
92 AC_PROG_RANLIB
93 AM_ENABLE_MULTILIB(Makefile,[..])
94 AC_CONFIG_FILES([Makefile sub/Makefile])
95 AC_OUTPUT
96 END
98 cat >libbar/Makefile.am <<'END'
99 SUBDIRS = sub
100 noinst_LIBRARIES = libbar.a
101 libbar_a_SOURCES = bar.c
104 mkdir libbar/sub
106 : >libbar/sub/Makefile.am
108 : > libbar/bar.c
110 cp "$testsrcdir/../lib/config-ml.in" .
111 cp "$testsrcdir/../lib/symlink-tree" .
113 $ACLOCAL
114 $AUTOCONF
115 $AUTOMAKE --add-missing
116 cd libfoo
117 $ACLOCAL
118 $AUTOCONF
119 $AUTOMAKE --add-missing
120 cd ../libbar
121 $ACLOCAL
122 $AUTOCONF
123 $AUTOMAKE --add-missing
124 cd ..
127 # Check VPATH builds
128 mkdir build
129 cd build
130 ../configure --enable-multilib CC=mycc
131 $MAKE
132 $MAKE install
133 $MAKE distcleancheck
135 # Check standard builds.
136 cd ..
137 # Why to I have to specify --with-target-subdir?
138 ./configure --enable-multilib --with-target-subdir=. CC=mycc
139 $MAKE