blob: 3365a2ae82ad69262cdcdf9c0d17c78e611d860d [file] [log] [blame]
# 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