mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-01-30 14:30:15 +08:00
* merged my inter-library dependencies code from the ILD branch:
* 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.
This commit is contained in:
parent
013f1fb0ca
commit
64d9b880c5
51
ChangeLog
51
ChangeLog
@ -1,3 +1,54 @@
|
|||||||
|
1999-03-18 Thomas Tanner <tanner@gmx.de>
|
||||||
|
|
||||||
|
* merged my inter-library dependencies code from the ILD branch:
|
||||||
|
* 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.
|
||||||
|
|
||||||
1999-03-17 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
|
1999-03-17 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
|
||||||
|
|
||||||
* doc/PLATFORMS: Thanks to Alexandres changes below, both my
|
* doc/PLATFORMS: Thanks to Alexandres changes below, both my
|
||||||
|
11
NEWS
11
NEWS
@ -1,11 +1,16 @@
|
|||||||
NEWS - list of user-visible changes between releases of GNU Libtool
|
NEWS - list of user-visible changes between releases of GNU Libtool
|
||||||
|
|
||||||
New in 1.3a: CVS version, Libtool team:
|
New in 1.3a: CVS version, Libtool team:
|
||||||
* Nothing so far
|
* Complete inter-library dependencies support. It's now possible
|
||||||
|
to link libtool libraries against other libtool libraries.
|
||||||
|
* Already-installed libtool libraries will be found.
|
||||||
|
* Support for linking DLLs on Win32
|
||||||
|
* New demos and tests
|
||||||
|
* Various bugfixes
|
||||||
|
|
||||||
New in 1.2g: CVS version, Libtool team:
|
New in 1.2g: CVS version, Libtool team:
|
||||||
* Nothing so far
|
* Nothing so far
|
||||||
|
|
||||||
New in 1.2e: CVS version; 1.2f: 1999-03-15, Libtool team:
|
New in 1.2e: CVS version; 1.2f: 1999-03-15, Libtool team:
|
||||||
* libtool will correctly link uninstalled libraries into programs
|
* libtool will correctly link uninstalled libraries into programs
|
||||||
and prefer uninstalled libraries to installed ones
|
and prefer uninstalled libraries to installed ones
|
||||||
|
8
TODO
8
TODO
@ -45,7 +45,7 @@ In the future:
|
|||||||
used by other systems.
|
used by other systems.
|
||||||
|
|
||||||
* Fix */demo on win32.
|
* Fix */demo on win32.
|
||||||
This may require resolving some of the items below.
|
This may simply require resolving the item below.
|
||||||
|
|
||||||
* Figure out how to use data items in dlls with win32.
|
* Figure out how to use data items in dlls with win32.
|
||||||
The difficult part is compiling each object which will be linked with an
|
The difficult part is compiling each object which will be linked with an
|
||||||
@ -53,12 +53,6 @@ import lib differently than if it will be linked with a static lib. This will
|
|||||||
almost definitely require that automake pass some hints about linkage in to
|
almost definitely require that automake pass some hints about linkage in to
|
||||||
each object compilation line.
|
each object compilation line.
|
||||||
|
|
||||||
* Resolve the name clash between import libs and static libs on win32.
|
|
||||||
Probably the best way to do this is to create lib$name-dll.a for the import
|
|
||||||
library, and continue to use lib$name.a for the static lib. libtool
|
|
||||||
--mode=link can then favour -dll.a over .a if there is a choice. No point in
|
|
||||||
doing this until we can export data items (above).
|
|
||||||
|
|
||||||
* If not cross-compiling, have the static flag test run the resulting
|
* If not cross-compiling, have the static flag test run the resulting
|
||||||
binary to make sure everything works.
|
binary to make sure everything works.
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ AC_CONFIG_SUBDIRS(libltdl)
|
|||||||
|
|
||||||
dnl all subdirectories that are configured on demand, but that must be
|
dnl all subdirectories that are configured on demand, but that must be
|
||||||
dnl included in the distribution
|
dnl included in the distribution
|
||||||
CONF_SUBDIRS="cdemo demo mdemo"
|
CONF_SUBDIRS="cdemo demo depdemo mdemo"
|
||||||
AC_SUBST(CONF_SUBDIRS)
|
AC_SUBST(CONF_SUBDIRS)
|
||||||
|
|
||||||
ACINCLUDE_M4_LIST="${srcdir}/acinclude.m4 ${srcdir}/libltdl/acinclude.m4 "
|
ACINCLUDE_M4_LIST="${srcdir}/acinclude.m4 ${srcdir}/libltdl/acinclude.m4 "
|
||||||
|
@ -3606,6 +3606,17 @@ static library. If this variable is not empty, @samp{old_archive_cmds} is
|
|||||||
not used.
|
not used.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
|
@defvar old_archive_from_expsyms_cmds
|
||||||
|
If a static library must be created from the export symbol list in order to
|
||||||
|
correctly link with a shared library, @samp{old_archive_from_expsyms_cmds}
|
||||||
|
contains the commands needed to create that static library. When these
|
||||||
|
commands are executed, the variable @var{soname} contains the name of the
|
||||||
|
shared library in question, and the @var{$objdir/$newlib} contains the
|
||||||
|
path of the static library these commands should build. After executing
|
||||||
|
these commands, libtool will proceed to link against @var{$objdir/$newlib}
|
||||||
|
instead of @var{soname}.
|
||||||
|
@end defvar
|
||||||
|
|
||||||
@defvar build_libtool_libs
|
@defvar build_libtool_libs
|
||||||
Whether libtool should build shared libraries on this system. Set to
|
Whether libtool should build shared libraries on this system. Set to
|
||||||
@samp{yes} or @samp{no}.
|
@samp{yes} or @samp{no}.
|
||||||
@ -3662,6 +3673,13 @@ Commands to extract exported symbols from @var{libobjs} to the
|
|||||||
file @var{export_symbols}.
|
file @var{export_symbols}.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
|
@defvar extract_expsyms_cmds
|
||||||
|
Commands to extract the exported symbols list from a shared library.
|
||||||
|
These commands are executed if there is no file @var{$objdir/$soname-def},
|
||||||
|
and should write the names of the exported symbols to that file, for
|
||||||
|
the use of @samp{old_archive_from_expsyms_cmds}.
|
||||||
|
@end defvar
|
||||||
|
|
||||||
@defvar fast_install
|
@defvar fast_install
|
||||||
Determines whether libtool will privilege the installer or the
|
Determines whether libtool will privilege the installer or the
|
||||||
developer. The assumption is that installers will seldom run programs
|
developer. The assumption is that installers will seldom run programs
|
||||||
|
27
ltconfig.in
27
ltconfig.in
@ -997,9 +997,11 @@ need_version=unknown
|
|||||||
archive_cmds=
|
archive_cmds=
|
||||||
archive_expsym_cmds=
|
archive_expsym_cmds=
|
||||||
old_archive_from_new_cmds=
|
old_archive_from_new_cmds=
|
||||||
|
old_archive_from_expsyms_cmds=
|
||||||
export_dynamic_flag_spec=
|
export_dynamic_flag_spec=
|
||||||
whole_archive_flag_spec=
|
whole_archive_flag_spec=
|
||||||
thread_safe_flag_spec=
|
thread_safe_flag_spec=
|
||||||
|
hardcode_into_libs=no
|
||||||
hardcode_libdir_flag_spec=
|
hardcode_libdir_flag_spec=
|
||||||
hardcode_libdir_separator=
|
hardcode_libdir_separator=
|
||||||
hardcode_direct=no
|
hardcode_direct=no
|
||||||
@ -1016,6 +1018,7 @@ include_expsyms=
|
|||||||
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
|
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
|
||||||
# as well as any symbol that contains `d'.
|
# as well as any symbol that contains `d'.
|
||||||
exclude_expsyms=
|
exclude_expsyms=
|
||||||
|
extract_expsyms_cmds=
|
||||||
|
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
cygwin* | mingw*)
|
cygwin* | mingw*)
|
||||||
@ -1083,6 +1086,13 @@ EOF
|
|||||||
allow_undefined_flag=unsupported
|
allow_undefined_flag=unsupported
|
||||||
always_export_symbols=yes
|
always_export_symbols=yes
|
||||||
|
|
||||||
|
extract_expsyms_cmds='test -f $objdir/impgen.c || \
|
||||||
|
sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/impgen.c~
|
||||||
|
test -f $objdir/impgen.exe || (cd $objdir && $CC -o impgen impgen.c)~
|
||||||
|
$objdir/impgen $dir/$soname > $objdir/$soname-def'
|
||||||
|
|
||||||
|
old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$newlib'
|
||||||
|
|
||||||
# Extract the symbol export list from an `--export-all' def file,
|
# Extract the symbol export list from an `--export-all' def file,
|
||||||
# then regenerate the def file from the symbol export list, so that
|
# then regenerate the def file from the symbol export list, so that
|
||||||
# the compiled dll only exports the symbol export list.
|
# the compiled dll only exports the symbol export list.
|
||||||
@ -1103,8 +1113,6 @@ EOF
|
|||||||
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
|
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
|
||||||
$DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
$DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
||||||
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
|
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
|
||||||
|
|
||||||
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
@ -1651,7 +1659,7 @@ bsdi4*)
|
|||||||
cygwin* | mingw*)
|
cygwin* | mingw*)
|
||||||
version_type=windows
|
version_type=windows
|
||||||
if test "$with_gcc" = yes; then
|
if test "$with_gcc" = yes; then
|
||||||
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
|
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
|
||||||
else
|
else
|
||||||
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
|
library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
|
||||||
fi
|
fi
|
||||||
@ -2425,7 +2433,8 @@ case "$ltmain" in
|
|||||||
thread_safe_flag_spec whole_archive_flag_spec libname_spec \
|
thread_safe_flag_spec whole_archive_flag_spec libname_spec \
|
||||||
library_names_spec soname_spec \
|
library_names_spec soname_spec \
|
||||||
RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
|
RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
|
||||||
old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
|
old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
|
||||||
|
postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
|
||||||
file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
|
file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
|
||||||
finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
|
finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
|
||||||
hardcode_libdir_flag_spec hardcode_libdir_separator \
|
hardcode_libdir_flag_spec hardcode_libdir_separator \
|
||||||
@ -2436,6 +2445,7 @@ case "$ltmain" in
|
|||||||
reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
|
reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
|
||||||
old_postinstall_cmds | old_postuninstall_cmds | \
|
old_postinstall_cmds | old_postuninstall_cmds | \
|
||||||
export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
|
export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
|
||||||
|
extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
|
||||||
postinstall_cmds | postuninstall_cmds | \
|
postinstall_cmds | postuninstall_cmds | \
|
||||||
finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
|
finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
|
||||||
# Double-quote double-evaled strings.
|
# Double-quote double-evaled strings.
|
||||||
@ -2650,6 +2660,9 @@ old_postuninstall_cmds=$old_postuninstall_cmds
|
|||||||
# Create an old-style archive from a shared archive.
|
# Create an old-style archive from a shared archive.
|
||||||
old_archive_from_new_cmds=$old_archive_from_new_cmds
|
old_archive_from_new_cmds=$old_archive_from_new_cmds
|
||||||
|
|
||||||
|
# Create a temporary old-style archive to link instead of a shared archive.
|
||||||
|
old_archive_from_expsyms_cmds=$old_archive_from_expsyms_cmds
|
||||||
|
|
||||||
# Commands used to build and install a shared archive.
|
# Commands used to build and install a shared archive.
|
||||||
archive_cmds=$archive_cmds
|
archive_cmds=$archive_cmds
|
||||||
archive_expsym_cmds=$archive_expsym_cmds
|
archive_expsym_cmds=$archive_expsym_cmds
|
||||||
@ -2692,6 +2705,9 @@ shlibpath_overrides_runpath=$shlibpath_overrides_runpath
|
|||||||
# How to hardcode a shared library path into an executable.
|
# How to hardcode a shared library path into an executable.
|
||||||
hardcode_action=$hardcode_action
|
hardcode_action=$hardcode_action
|
||||||
|
|
||||||
|
# Whether we should hardcode library paths into libraries.
|
||||||
|
hardcode_into_libs=$hardcode_into_libs
|
||||||
|
|
||||||
# Flag to hardcode \$libdir into a binary during linking.
|
# Flag to hardcode \$libdir into a binary during linking.
|
||||||
# This must work even if \$libdir does not exist.
|
# This must work even if \$libdir does not exist.
|
||||||
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
|
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
|
||||||
@ -2726,6 +2742,9 @@ always_export_symbols=$always_export_symbols
|
|||||||
# The commands to list exported symbols.
|
# The commands to list exported symbols.
|
||||||
export_symbols_cmds=$export_symbols_cmds
|
export_symbols_cmds=$export_symbols_cmds
|
||||||
|
|
||||||
|
# The commands to extract the exported symbol list from a shared archive.
|
||||||
|
extract_expsyms_cmds=$extract_expsyms_cmds
|
||||||
|
|
||||||
# Symbols that should not be listed in the preloaded symbols.
|
# Symbols that should not be listed in the preloaded symbols.
|
||||||
exclude_expsyms=$exclude_expsyms
|
exclude_expsyms=$exclude_expsyms
|
||||||
|
|
||||||
|
@ -5,24 +5,32 @@ AUTOMAKE_OPTIONS = gnits
|
|||||||
TESTS = cdemo-static.test cdemo-make.test cdemo-exec.test \
|
TESTS = cdemo-static.test cdemo-make.test cdemo-exec.test \
|
||||||
demo-static.test demo-make.test demo-exec.test \
|
demo-static.test demo-make.test demo-exec.test \
|
||||||
demo-inst.test demo-unst.test \
|
demo-inst.test demo-unst.test \
|
||||||
|
depdemo-static.test depdemo-make.test depdemo-exec.test \
|
||||||
|
depdemo-inst.test depdemo-unst.test \
|
||||||
mdemo-static.test mdemo-make.test mdemo-exec.test \
|
mdemo-static.test mdemo-make.test mdemo-exec.test \
|
||||||
mdemo-inst.test mdemo-unst.test \
|
mdemo-inst.test mdemo-unst.test \
|
||||||
cdemo-conf.test cdemo-make.test cdemo-exec.test \
|
cdemo-conf.test cdemo-make.test cdemo-exec.test \
|
||||||
demo-conf.test demo-make.test demo-exec.test \
|
demo-conf.test demo-make.test demo-exec.test \
|
||||||
demo-inst.test demo-unst.test \
|
demo-inst.test demo-unst.test \
|
||||||
|
depdemo-conf.test depdemo-make.test depdemo-exec.test \
|
||||||
|
depdemo-inst.test depdemo-unst.test \
|
||||||
mdemo-conf.test mdemo-make.test mdemo-exec.test \
|
mdemo-conf.test mdemo-make.test mdemo-exec.test \
|
||||||
mdemo-inst.test mdemo-unst.test \
|
mdemo-inst.test mdemo-unst.test \
|
||||||
demo-nofast.test demo-make.test demo-exec.test \
|
demo-nofast.test demo-make.test demo-exec.test \
|
||||||
demo-inst.test demo-unst.test \
|
demo-inst.test demo-unst.test \
|
||||||
|
depdemo-nofast.test depdemo-make.test depdemo-exec.test \
|
||||||
|
depdemo-inst.test depdemo-unst.test \
|
||||||
cdemo-shared.test cdemo-make.test cdemo-exec.test \
|
cdemo-shared.test cdemo-make.test cdemo-exec.test \
|
||||||
demo-shared.test demo-make.test demo-exec.test demo-inst.test \
|
demo-shared.test demo-make.test demo-exec.test demo-inst.test \
|
||||||
hardcode.test build-relink.test demo-unst.test \
|
hardcode.test build-relink.test demo-unst.test \
|
||||||
|
depdemo-shared.test depdemo-make.test depdemo-exec.test \
|
||||||
|
depdemo-inst.test depdemo-unst.test \
|
||||||
mdemo-shared.test mdemo-make.test mdemo-exec.test \
|
mdemo-shared.test mdemo-make.test mdemo-exec.test \
|
||||||
mdemo-inst.test mdemo-unst.test \
|
mdemo-inst.test mdemo-unst.test \
|
||||||
assign.test link.test link-2.test nomode.test \
|
assign.test link.test link-2.test nomode.test \
|
||||||
quote.test sh.test suffix.test
|
quote.test sh.test suffix.test
|
||||||
|
|
||||||
cdemo-static.test: $(top_builddir)/libtool
|
demo-conf.test: $(top_builddir)/libtool
|
||||||
|
|
||||||
$(top_builddir)/libtool:
|
$(top_builddir)/libtool:
|
||||||
cd $(top_builddir) && $(MAKE) all
|
cd $(top_builddir) && $(MAKE) all
|
||||||
@ -37,5 +45,6 @@ EXTRA_DIST = defs $(TESTS)
|
|||||||
clean-local:
|
clean-local:
|
||||||
-test -f ../cdemo/Makefile && cd ../cdemo && $(MAKE) distclean
|
-test -f ../cdemo/Makefile && cd ../cdemo && $(MAKE) distclean
|
||||||
-test -f ../demo/Makefile && cd ../demo && $(MAKE) distclean
|
-test -f ../demo/Makefile && cd ../demo && $(MAKE) distclean
|
||||||
|
-test -f ../depdemo/Makefile && cd ../depdemo && $(MAKE) distclean
|
||||||
-test -f ../mdemo/Makefile && cd ../mdemo && $(MAKE) distclean
|
-test -f ../mdemo/Makefile && cd ../mdemo && $(MAKE) distclean
|
||||||
rm -rf _inst
|
rm -rf _inst
|
||||||
|
30
tests/depdemo-conf.test
Executable file
30
tests/depdemo-conf.test
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-conf.test - try configuring the ./depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=yes
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && 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 Makefile; then
|
||||||
|
echo "= Running $make distclean in ../depdemo"
|
||||||
|
$make distclean
|
||||||
|
fi
|
||||||
|
rm -f config.cache
|
||||||
|
|
||||||
|
# Configure the demonstration.
|
||||||
|
echo "= Configuring in ../depdemo (prefix=$prefix)"
|
||||||
|
CONFIG_SITE=/dev/null ${CONFIG_SHELL-/bin/sh} $srcdir/../depdemo/configure --srcdir=$srcdir/../depdemo --prefix=$prefix || exit 1
|
||||||
|
|
||||||
|
exit 0
|
35
tests/depdemo-exec.test
Executable file
35
tests/depdemo-exec.test
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-exec.test - check that programs in the ../depdemo subdirectory are viable
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=no
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && srcdir=.
|
||||||
|
test "${VERBOSE+set}" != "set" && VERBOSE=yes
|
||||||
|
fi
|
||||||
|
. $srcdir/defs || exit 1
|
||||||
|
|
||||||
|
if test -f ../depdemo/depdemo; then :
|
||||||
|
else
|
||||||
|
echo "You must run depdemo-make.test before running $0" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check to see if the programs really run.
|
||||||
|
echo "Executing uninstalled programs in ../depdemo"
|
||||||
|
|
||||||
|
status=0
|
||||||
|
if ../depdemo/depdemo.static; then :
|
||||||
|
else
|
||||||
|
echo "$0: cannot execute ../depdemo/depdemo.static" 1>&2
|
||||||
|
status=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ../depdemo/depdemo; then :
|
||||||
|
else
|
||||||
|
echo "$0: cannot execute ../depdemo/depdemo" 1>&2
|
||||||
|
status=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $status
|
47
tests/depdemo-inst.test
Executable file
47
tests/depdemo-inst.test
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-inst.test - try installing from the ../depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=yes
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && srcdir=.
|
||||||
|
test "${VERBOSE+set}" != "set" && VERBOSE=yes
|
||||||
|
fi
|
||||||
|
. $srcdir/defs || exit 1
|
||||||
|
|
||||||
|
# Check that things are built.
|
||||||
|
if test -f ../depdemo/depdemo; then :
|
||||||
|
else
|
||||||
|
echo "You must run depdemo-make.test before $0" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change to our build directory.
|
||||||
|
cd ../depdemo || exit 1
|
||||||
|
|
||||||
|
echo "= Running $make install in ../depdemo"
|
||||||
|
$make install || exit 1
|
||||||
|
|
||||||
|
echo "= Executing installed programs"
|
||||||
|
|
||||||
|
status=0
|
||||||
|
if $prefix/bin/depdemo.static; then :
|
||||||
|
else
|
||||||
|
echo "$0: cannot execute $prefix/bin/depdemo.static" 1>&2
|
||||||
|
status=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $prefix/bin/depdemo; then :
|
||||||
|
else
|
||||||
|
echo "$0: cannot execute $prefix/bin/depdemo" 1>&2
|
||||||
|
|
||||||
|
# Simple check to see if they are superuser.
|
||||||
|
if test -w /; then :
|
||||||
|
else
|
||||||
|
echo "You may need to run $0 as the superuser."
|
||||||
|
fi
|
||||||
|
status=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $status
|
25
tests/depdemo-make.test
Executable file
25
tests/depdemo-make.test
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-make.test - try building in the ../depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=no
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && srcdir=.
|
||||||
|
test "${VERBOSE+set}" != "set" && VERBOSE=yes
|
||||||
|
fi
|
||||||
|
. $srcdir/defs || exit 1
|
||||||
|
|
||||||
|
if test -f ../depdemo/Makefile; then :
|
||||||
|
else
|
||||||
|
echo "You must run depdemo-conf.test before running $0" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change to our build directory.
|
||||||
|
cd ../depdemo || exit 1
|
||||||
|
|
||||||
|
# Do the actual build.
|
||||||
|
echo "Making in ../depdemo"
|
||||||
|
$make || exit 1
|
||||||
|
exit 0
|
30
tests/depdemo-nofast.test
Executable file
30
tests/depdemo-nofast.test
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-conf.test - try configuring the ./depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=yes
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && 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 Makefile; then
|
||||||
|
echo "= Running $make distclean in ../depdemo"
|
||||||
|
$make distclean
|
||||||
|
fi
|
||||||
|
rm -f config.cache
|
||||||
|
|
||||||
|
# Configure the demonstration.
|
||||||
|
echo "= Configuring in ../depdemo (prefix=$prefix)"
|
||||||
|
CONFIG_SITE=/dev/null ${CONFIG_SHELL-/bin/sh} $srcdir/../depdemo/configure --srcdir=$srcdir/../depdemo --prefix=$prefix --enable-fast-install=no || exit 1
|
||||||
|
|
||||||
|
exit 0
|
30
tests/depdemo-shared.test
Executable file
30
tests/depdemo-shared.test
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-conf.test - try configuring the ../depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=yes
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && 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 Makefile; then
|
||||||
|
echo "= Running $make distclean in ../depdemo"
|
||||||
|
$make distclean
|
||||||
|
fi
|
||||||
|
rm -f config.cache
|
||||||
|
|
||||||
|
# Configure the demonstration.
|
||||||
|
echo "= Configuring in ../depdemo (prefix=$prefix) with --disable-static"
|
||||||
|
CONFIG_SITE=/dev/null ${CONFIG_SHELL-/bin/sh} $srcdir/../depdemo/configure --srcdir=$srcdir/../depdemo --prefix=$prefix --disable-static || exit 1
|
||||||
|
|
||||||
|
exit 0
|
30
tests/depdemo-static.test
Executable file
30
tests/depdemo-static.test
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo-conf.test - try configuring the ../depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=yes
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && 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 Makefile; then
|
||||||
|
echo "= Running $make distclean in ../depdemo"
|
||||||
|
$make distclean
|
||||||
|
fi
|
||||||
|
rm -f config.cache
|
||||||
|
|
||||||
|
# Configure the demonstration.
|
||||||
|
echo "= Configuring in ../depdemo (prefix=$prefix) with --disable-shared"
|
||||||
|
CONFIG_SITE=/dev/null ${CONFIG_SHELL-/bin/sh} $srcdir/../depdemo/configure --srcdir=$srcdir/../depdemo --prefix=$prefix --disable-shared || exit 1
|
||||||
|
|
||||||
|
exit 0
|
35
tests/depdemo-unst.test
Executable file
35
tests/depdemo-unst.test
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depdemo.test - try uninstalling in the ../depdemo subdirectory
|
||||||
|
|
||||||
|
# Test script header.
|
||||||
|
need_prefix=yes
|
||||||
|
if test -z "$srcdir"; then
|
||||||
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
||||||
|
test "$srcdir" = "$0" && 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.
|
||||||
|
if test "$prefix/bin/hell"; then :
|
||||||
|
else
|
||||||
|
echo "You must run depdemo-inst.test before $0." 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change to our build directory.
|
||||||
|
cd ../depdemo || exit 1
|
||||||
|
|
||||||
|
echo "= Running $make uninstall in ../depdemo"
|
||||||
|
$make uninstall || exit 1
|
||||||
|
|
||||||
|
# See that there were no files leftover in $prefix.
|
||||||
|
# Ignore dotfiles, so that .nfsXXX files don't screw up the test.
|
||||||
|
leftovers=`find $prefix ! -type d ! -name '.*' -print`
|
||||||
|
if test -n "$leftovers"; then
|
||||||
|
echo "= Leftover after make uninstall:"
|
||||||
|
ls -l $leftovers
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
80
tests/depdemo.test
Normal file
80
tests/depdemo.test
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
#! /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
|
Loading…
Reference in New Issue
Block a user