libtool/tests/testsuite.at
Gary V. Vaughan 757d7dc478 Reorganise the libtool tree to create a bootstrapped libltdl for
installation to the libtoolize master tree, so that libltdl is
useable even in the extreme case of when automake and autoconf are
not installed on the developers machine.  Part of this change
requires some duplication of rules between Makefile.am (which
builds libltdl for this distribution) and libltdl/Makefile.am
(which is used by projects that libltoolize --ltdl --copy), so
libtool now really does use a single toplevel Makefile.am, and we
generate libltdl/Makefile.am from that:

* m4, config: Moved from here...
* libltdl/m4, libltdl/config: ...to here, to reduce the amount of
kludging needed in bootstrap for autoreconf to run.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am,
tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am,
tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to
compensate.
* tests/cdemo/configure.ac, tests/demo/configure.ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/fcdemo/configure.ac, tests/mdemo/configure.ac,
tests/mdemo2/configure.ac, tests/pdemo/configure.ac,
tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto.
* libltdl/m4/ltdl.m4: Increment serial number.
(LTDL_INIT): Accept an optional directory argument to prefix each
of the LD_DLLOADERS locations.  Default to empty for backwards
compatibility.
* Makefile.maint: Adjust to compensate.
* configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust.
(AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS
from in a subdirectory from the amalgamated Makefile.am.
(AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects.
(AC_CONFIG_FILES): Remove libltdl/Makefile.am.
* libltdl/Makefile.am: Removed from repository, and merged into
Makefile.am as we now generate it...
* Makefile.am (libltdl/Makefile.am): ...from here, by extracting
the merged rules, and tweaking paths to accomodate the difference
in directory from Makefile.am to libltdl/Makefile.am.
(nobase_dist_pkgdata_DATA): Automake generated installation rules
change timestamps of installed files, so renamed this...
(configauxfiles): ...to this...
(libtoolize): ...substitute it...
(install-data-local): ...install manually, preserving
timestamps...
(install-data-hook): ...and set execute bit as appropriate.
(uninstall-hook): Not forgetting to remove them at uninstall.
(libltdl/Makefile.in): New rule.  Called from...
* bootstrap: ...here to avoid relying on config.status at
bootstrap time.
(auxdir, m4dir): Extract from configure.ac for ease of future
maintenance.  Adjust all references.
(reconfdirs): Call autoreconf for libltdl too -- even
though we don't use it for the build, libltdl/configure and
friends are installed with `libtoolize --ltdl --copy'.
* libtoolize.m4sh: Add files from the installed config master tree
to libtoolize --ltdl project subdirectory.
Diagnose duplicated files when --ltdl is used in an autotooled
project.
It's perfectly fine to run `libtoolize --ltdl --copy' in a tree
that has no configure.ac or configure.in; we want libltdl to be
useful even to projects that don't use autotools themselves.
(libtoolize_flags): Removed.  Changed all callers.
(func_massage_pkgconfig_files): New function.
* tests/standalone.at: New tests for using libltdl without
supporting configury in the parent project.
* tests/testsuite.at: Run them!
* NEWS: Updated.
2005-08-23 01:49:37 +00:00

108 lines
3.1 KiB
Plaintext

# Process with autom4te to create an -*- Autotest -*- test suite.
# Test suite for GNU Libtool.
# Copyright 2004, 2005 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
m4_divert_push([PREPARE_TESTS])dnl
: ${LIBTOOLIZE="${abs_top_builddir}/libtoolize"}
: ${LIBTOOL="${abs_top_builddir}/libtool"}
: ${ACLOCAL=aclocal}
: ${AUTOCONF=autoconf}
export LIBTOOLIZE LIBTOOL ACLOCAL AUTOCONF
eval `$LIBTOOL --config | grep ^EGREP=`
eval `$LIBTOOL --config | $EGREP '(host|build)='`
m4_divert_pop([PREPARE_TESTS])dnl
# LT_AT_LIBTOOLIZE([ARGS])
# ------------------------
m4_define([LT_AT_LIBTOOLIZE],
[_lt_pkgdatadir="$abs_top_srcdir" "$LIBTOOLIZE" $1
])
# LT_AT_CHECK_LIBTOOLIZE(ARGS, [EXIT-STATUS = 0], [STDOUT = `'], [STDERR = `'])
# -----------------------------------------------------------------------------
m4_define([LT_AT_CHECK_LIBTOOLIZE],
[AT_CHECK([LT_AT_LIBTOOLIZE([$1])],
[$2], [$3], [$4])
])
# LT_AT_BOOTSTRAP
# ---------------
m4_define([LT_AT_BOOTSTRAP],
[
test -f ./ltmain.sh || LT_AT_LIBTOOLIZE([--copy])
test -f ./configure || _lt_pkgdatadir="$abs_top_srcdir" autoreconf --force --verbose --install || exit 1
test -f ./configure || exit 1
./configure
])
# LT_AT_EXEC_CHECK(EXECUTABLE, [STATUS = 0], [STDOUT], [STDERR])
# --------------------------------------------------------------
m4_define([LT_AT_EXEC_CHECK],
[AT_CHECK([if $1; then :;
elif test "X$host" != "X$build" && \
{ test -x "$1" || test -x "$1"$EXEEXT; }
then (exit 77); fi],[$2],[$3],[$4])
])
# LT_AT_TAG(TAG)
# --------------
m4_define([LT_AT_TAG],
[AT_KEYWORDS([$1])
eval `$LIBTOOL --tag=$1 --config | sed -n '/^CC=/ { s/CC/$1/; p;}'`
AT_CHECK([test -n "[$]$1" || (exit 77)])
])
# We use `dnl' in zillions of places...
m4_pattern_allow([^dnl$])
# We exercise these tools.
dnl AT_TESTED([grep autoreconf autom4te automake])
## ----------- ##
## The suite. ##
## ----------- ##
AT_INIT
# libtoolize tests
m4_include([libtoolize.at])
# Testing func_extract_archives
m4_include([duplicate_members.at])
# Test that inherited_linker_flags in the .la actually gets used.
m4_include([inherited_flags.at])
# convenience archives test
m4_include([convenience.at])
# link order test
m4_include([link-order.at])
# Torturing subdir-objects builds
m4_include([am-subdir.at])
# standalone libltdl compilation
m4_include([standalone.at])
# C++ templates tests
m4_include([template.at])
# Behaviour of LT_OUTPUT
m4_include([early-libtool.at])
# stress test
m4_include([stresstest.at])