#!/bin/sh # Copyright (C) 2003-2023 Free Software Foundation, Inc. # # This program 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. # # This program 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 this program. If not, see . # Test for conditional libtool libraries. # This combines two examples from the manual. required='cc libtoolize' . test-init.sh cat >>configure.ac <<'END' AM_CONDITIONAL([WANT_LIBFOO], [true]) AM_CONDITIONAL([WANT_LIBBAR], [false]) AC_SUBST([WANTEDLIBS], ['lib1foo.la lib1bar.la']) AC_PROG_CC AM_PROG_AR AC_PROG_LIBTOOL AC_OUTPUT END cat >Makefile.am <<'END' EXTRA_LTLIBRARIES = lib1foo.la lib1bar.la lib3bar.la lib_LTLIBRARIES = $(WANTEDLIBS) lib1foo_la_SOURCES = foo.c lib1foo_la_LDFLAGS = -rpath '$(libdir)' lib1bar_la_SOURCES = bar.c lib1bar_la_LDFLAGS = -rpath '$(libdir)' lib3bar_la_SOURCES = bar.c if WANT_LIBFOO lib_LTLIBRARIES += lib2foo.la check_LTLIBRARIES = lib3foo.la endif if WANT_LIBBAR lib_LTLIBRARIES += lib2bar.la endif lib2foo_la_SOURCES = foo.c lib2bar_la_SOURCES = bar.c lib3foo_la_SOURCES = foo.c END echo 'int one () { return 1; }' >foo.c echo 'int two () { return 2; }' >bar.c mkdir empty libtoolize $ACLOCAL $AUTOCONF $AUTOMAKE --add-missing cwd=$(pwd) || fatal_ "getting current working directory" # Install libraries in lib/, and the rest in empty/. # (in fact there is no "rest", so as the name imply empty/ is # expected to remain empty). ./configure --prefix="$cwd/empty" --libdir="$cwd/lib" $MAKE test -f lib1foo.la test -f lib1bar.la test -f lib2foo.la test ! -e lib2bar.la test ! -e lib3foo.la test ! -e lib3bar.la $MAKE check test ! -e lib2bar.la test -f lib3foo.la test ! -e lib3bar.la $MAKE install test -f lib/lib1foo.la test -f lib/lib1bar.la test -f lib/lib2foo.la test ! -e lib/lib3foo.la find empty -type f -print > empty.lst test -s empty.lst && { cat empty.lst; exit 1; } $MAKE uninstall find lib -type f -print > lib.lst test -s lib.lst && { cat lib.lst; exit 1; } test -f lib1foo.la test -f lib1bar.la test -f lib2foo.la test -f lib3foo.la $MAKE clean test ! -e lib1foo.la test ! -e lib1bar.la test ! -e lib2foo.la test ! -e lib3foo.la :