#!/bin/sh # Copyright (C) 2003 Free Software Foundation, Inc. # # This file is part of GNU Automake. # # GNU Automake is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # GNU Automake is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Automake; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Test for libtool convenience libraries. # This example is taken from the manual. required='libtoolize gcc' . ./defs || exit 1 set -e cat >>configure.in <<'END' AC_PROG_CC AC_PROG_LIBTOOL AC_CONFIG_FILES(sub1/Makefile sub2/Makefile sub2/sub21/Makefile sub2/sub22/Makefile) AC_OUTPUT END mkdir sub1 mkdir sub2 mkdir sub2/sub21 mkdir sub2/sub22 mkdir empty cat >Makefile.am <<'END' SUBDIRS = sub1 sub2 lib_LTLIBRARIES = libtop.la libtop_la_SOURCES = libtop_la_LIBADD = \ sub1/libsub1.la \ sub2/libsub2.la bin_PROGRAMS = ltconvtest ltconvtest_SOURCES = test.c ltconvtest_LDADD = libtop.la check-local: ./ltconvtest$(EXEEXT) : > check-ok installcheck-local: $(bindir)/ltconvtest$(EXEEXT) : > installcheck-ok END cat >sub1/Makefile.am <<'END' noinst_LTLIBRARIES = libsub1.la libsub1_la_SOURCES = sub1.c END echo 'int sub1 () { return 1; }' > sub1/sub1.c cat >sub2/Makefile.am <<'END' SUBDIRS = sub21 sub22 noinst_LTLIBRARIES = libsub2.la libsub2_la_SOURCES = sub2.c libsub2_la_LIBADD = \ sub21/libsub21.la \ sub22/libsub22.la END echo 'int sub2 () { return 2; }' > sub2/sub2.c cat >sub2/sub21/Makefile.am <<'END' noinst_LTLIBRARIES = libsub21.la libsub21_la_SOURCES = sub21.c END echo 'int sub21 () { return 21; }' > sub2/sub21/sub21.c cat >sub2/sub22/Makefile.am <<'END' noinst_LTLIBRARIES = libsub22.la libsub22_la_SOURCES = sub22.c END echo 'int sub22 () { return 22; }' > sub2/sub22/sub22.c cat >test.c < int main () { if (1 != sub1 ()) return 1; if (2 != sub2 ()) return 2; if (21 != sub21 ()) return 3; if (22 != sub22 ()) return 4; return 0; } EOF libtoolize $ACLOCAL $AUTOCONF $AUTOMAKE # Install libraries in lib/, programs in bin/, and the rest in empty/. # (in fact there is no "rest", so as the name imply empty/ is # expected to remain empty). ./configure --prefix=`pwd`/empty --libdir=`pwd`/lib --bindir=`pwd`/bin $MAKE test -f libtop.la test -f sub1/libsub1.la test -f sub2/libsub2.la test -f sub2/sub21/libsub21.la test -f sub2/sub22/libsub22.la $MAKE check test -f check-ok rm -f check-ok $MAKE install test -f lib/libtop.la $MAKE installcheck test -f installcheck-ok rm -f installcheck-ok find empty -type f -print > empty.lst cat empty.lst test 0 = `wc -l < empty.lst` $MAKE clean test ! -f libtop.la test ! -f sub1/libsub1.la test ! -f sub2/libsub2.la test ! -f sub2/sub21/libsub21.la test ! -f sub2/sub22/libsub22.la test ! -f ltconvtest $MAKE installcheck test -f installcheck-ok rm -f installcheck-ok $MAKE uninstall find lib -type f -print > lib.lst test 0 = `wc -l < lib.lst` find bin -type f -print > bin.lst test 0 = `wc -l < bin.lst`