# old-m4-iface.at -- exercise old m4 interface to libtool -*- Autotest -*- # # Copyright (C) 2005, 2008, 2009 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2005 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #### AT_BANNER([Support for older m4 interface.]) ######################################################################## ## ## TODO: ## test all the interfaces currently supported by AU_DEFUN/AU_ALIAS ## test autoupdate on all of those tests' configure.in ## ######################################################################## ## -------------------------------------------------------- ## ## An overtly simple old-school AM_PROG_LIBTOOL invocation. ## ## -------------------------------------------------------- ## AT_SETUP([AM_PROG_LIBTOOL]) AT_DATA([configure.in], [[AC_INIT(old.c) AM_PROG_LIBTOOL AC_SUBST([LIBTOOL_DEPS]) AC_OUTPUT(Makefile) ]]) AT_DATA([Makefile.in], [[COMPILE = @CC@ @CPPFLAGS@ @CFLAGS@ LINK = @CC@ @CFLAGS@ @LDFLAGS@ -o $@ SHELL = @SHELL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ all: libtool old@EXEEXT@ old@EXEEXT@: old.@OBJEXT@ $(LINK) old.@OBJEXT@ .SUFFIXES: .SUFFIXES: .c .@OBJEXT@ .c.@OBJEXT@: $(COMPILE) -c $< libtool: $(LIBTOOL_DEPS) $(SHELL) ./config.status --recheck ]]) AT_DATA([old.c], [[#include int main (void) { printf ("Hello, World!"); return 0; } ]]) LT_AT_LIBTOOLIZE([--install]) # This is slightly bogus, since only libtool.m4 was required in aclocal.m4 # with libtool-1.5x... AT_CHECK([test -f aclocal.m4 || cat "$tst_aclocaldir/libtool.m4" "$tst_aclocaldir/ltoptions.m4" \ "$tst_aclocaldir/ltsugar.m4" "$tst_aclocaldir/ltversion.m4" \ "$tst_aclocaldir/lt~obsolete.m4" > aclocal.m4]) LT_AT_BOOTSTRAP([ignore], [ignore], [ignore], [ignore], [--force]) LT_AT_EXEC_CHECK([./old], 0, [Hello, World!]) # Now, test that libtoolize doesn't mistakenly think the user called # any libtool macros if in fact she didn't. sed '/AM_PROG_LIBTOOL/d' configure.in >configure.int mv -f configure.int configure.in AT_CHECK([$LIBTOOLIZE -n], [0], [stdout], [stderr]) # ensure no shell errors: AT_CHECK([grep -v "^libtoolize: " stderr], [1]) AT_CHECK([grep "Remember to add.*LT_INIT.*to configure.in" stdout], [0], [ignore]) AT_CHECK([grep "Consider adding.*LT_WITH_LTDL" stdout], [1]) AT_CHECK([grep "Remember to add.*LT_CONFIG_LTDL_DIR" stdout], [1]) AT_CLEANUP ## --------------------------- ## ## An old style libltdl build. ## ## --------------------------- ## AT_SETUP([AC_WITH_LTDL]) _LTDL_PROJECT_FILES AT_DATA([configure.in], [[AC_PREREQ(2.50) AC_INIT([main.c]) AC_PROG_MAKE_SET AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_WITH_LTDL AC_OUTPUT(Makefile) ]]) AT_DATA([Makefile.in], [[top_srcdir = . top_builddir = . COMPILE = @CC@ @INCLTDL@ @CPPFLAGS@ @CFLAGS@ LTCOMPILE = @LIBTOOL@ --mode=compile $(COMPILE) LTLINK = @LIBTOOL@ --mode=link @CC@ -no-undefined @CFLAGS@ @LDFLAGS@ -o $@ SHELL = @SHELL@ @SET_MAKE@ TARGETS = libltdl/libltdlc.la module.la ltdldemo@EXEEXT@ all: $(TARGETS) libltdl/libltdlc.la: cd libltdl && $(MAKE) module.la: module.lo $(LTLINK) module.lo -module -avoid-version -rpath /dev/null ltdldemo@EXEEXT@: main.@OBJEXT@ module.la libltdl/libltdlc.la $(LTLINK) main.@OBJEXT@ -dlopen module.la @LIBLTDL@ @LIBS@ .SUFFIXES: .SUFFIXES: .c .@OBJEXT@ .lo .c.@OBJEXT@: $(COMPILE) -c $< .c.lo: $(LTCOMPILE) -c -o $@ $< ]]) # Be sure to use the in-tree libltdl, somebody might have removed # an installed libltdl.la file. LT_AT_BOOTSTRAP([--ltdl --install], [-I libltdl/m4], [ignore], [ignore], [--force], [--with-included-ltdl]) LT_AT_EXEC_CHECK([./ltdldemo], 0, [ignore]) AT_CLEANUP