mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-03-01 15:25:27 +08:00
* NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies.
81 lines
1.7 KiB
Bash
81 lines
1.7 KiB
Bash
#! /bin/sh
|
|
# depdemo.test - try building in the ../depdemo subdirectory
|
|
|
|
# Test script header.
|
|
need_prefix=yes
|
|
if test -z "$srcdir"; then
|
|
srcdir=.
|
|
test "${VERBOSE+set}" != "set" && VERBOSE=yes
|
|
fi
|
|
. $srcdir/defs || exit 1
|
|
|
|
# Maybe we have a VPATH build, in which case, create a new subdir.
|
|
test -d ../depdemo || mkdir ../depdemo
|
|
|
|
# Change to our build directory.
|
|
cd ../depdemo || exit 1
|
|
|
|
# Possibly clean up the distribution.
|
|
if test -f config.cache; then
|
|
echo "= Running make distclean in ../depdemo"
|
|
make distclean || rm -f config.cache
|
|
fi
|
|
|
|
# Configure the demonstration.
|
|
echo "= Configuring in ../depdemo (prefix=$prefix)"
|
|
$srcdir/../depdemo/configure --srcdir=$srcdir/../depdemo --prefix=$prefix || exit 1
|
|
|
|
# Do the actual build.
|
|
echo "= Running make in ../depdemo"
|
|
make || exit 1
|
|
|
|
# Try running the program.
|
|
echo "= Executing uninstalled programs"
|
|
if ./depdemo.static; then :
|
|
else
|
|
echo "$0: cannot execute ./depdemo.static" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if ./depdemo; then :
|
|
else
|
|
echo "$0: cannot execute ./depdemo" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "= Running make install in ../depdemo"
|
|
make install || exit 1
|
|
|
|
echo "= Executing installed programs"
|
|
if $prefix/bin/depdemo.static; then :
|
|
else
|
|
echo "$0: cannot execute $prefix/bin/depdemo.static" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if $prefix/bin/depdemo; then :
|
|
else
|
|
echo "$0: cannot execute $prefix/bin/depdemo" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "= Running make uninstall in ../depdemo"
|
|
make uninstall || exit 1
|
|
|
|
# See that there were no files leftover in $prefix.
|
|
leftovers=`find $prefix ! -type d -print`
|
|
if test -n "$leftovers"; then
|
|
echo "= Leftover after make uninstall:"
|
|
ls -l $leftovers
|
|
exit 1
|
|
fi
|
|
|
|
# Delete the directory tree we created.
|
|
rm -rf $prefix
|
|
|
|
|
|
# Clean up the distribution.
|
|
make distclean
|
|
|
|
exit 0
|