| # old-m4-iface.at -- exercise old m4 interface to libtool -*- Autotest -*- |
| # |
| # Copyright (C) 2005, 2008 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_OUTPUT(Makefile) |
| ]]) |
| |
| AT_DATA([Makefile.in], |
| [[COMPILE = @CC@ @CPPFLAGS@ @CFLAGS@ |
| LINK = @CC@ @CFLAGS@ @LDFLAGS@ -o $@ |
| SHELL = @SHELL@ |
| |
| all: old@EXEEXT@ |
| |
| old@EXEEXT@: old.@OBJEXT@ |
| $(LINK) old.@OBJEXT@ |
| |
| .SUFFIXES: |
| .SUFFIXES: .c .@OBJEXT@ |
| |
| .c.@OBJEXT@: |
| $(COMPILE) -c $< |
| ]]) |
| |
| |
| AT_DATA([old.c], |
| [[#include <stdio.h> |
| |
| 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@ |
| |
| .SUFFIXES: |
| .SUFFIXES: .c .@OBJEXT@ .lo |
| |
| .c.@OBJEXT@: |
| $(COMPILE) -c $< |
| |
| .c.lo: |
| $(LTCOMPILE) -c -o $@ $< |
| ]]) |
| |
| LT_AT_BOOTSTRAP([--ltdl --install], [-I libltdl/m4], [ignore], [ignore], |
| [--force]) |
| |
| LT_AT_EXEC_CHECK([./ltdldemo], 0, [ignore]) |
| |
| AT_CLEANUP |