+2000-03-27 Thomas Tanner <tanner@ffii.org>
+
+ * NEWS: reformatting
+
+ * ltmain.in (ILD): add extra convenience library scanning pass
+
+ * ltmain.in (ILD): accept -R flags for libraries, too
+
+ * ltmain.in (ILD): correclty merge the dlpreopened libraries
+ with deplibs
+
+ * ltmain.in (install mode): remove directories from filenames
+ before relinking (reported by Elrond <Elrond@Wunder-Nett.org>)
+
+ * doc/libtool.texi (libltdl): rename Library -> Lesser,
+ clarify exception clause
+ * libltdl/ltdl.c, libltdl.h (License): ditto
+
2000-03-21 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
* ltconfig.in (variables_saved_for_relink): Set to `PATH
NEWS - list of user-visible changes between releases of GNU Libtool
New in 1.3d: 2000-??-??; CVS version 1.3c, Libtool team:
-* New "-no-install" flag to avoid the use of executable wrapper scripts.
+* New -no-install flag to avoid the use of executable wrapper scripts.
* New --with-pic flag to control the generation of PIC/non-PIC code.
* New --build flag to ltconfig to help with build cross compilation
environments is inherited from --build flag passed to configure.
* Support for hardcoding run-time paths (-R) into libraries.
* Support -dlopen and -dlpreopen for libraries.
* Libtool now allows you to link shared libraries against static code.
-* New functions lt_dlgetinfo, lt_dlforeach in libltdl can be used to
- access module specific data in handles.
-* New functions lt_next_dlloader, lt_dlloader_name, lt_find_dlloader,
- lt_add_dlloader in libltdl can be used for adding new types of module
- loader to libltdl..
-* New functions lt_dladderror, lt_dlseterror in libltdl can be used to
- integrate user module loaders with lt_dlerror.
+* New functions in libltdl:
+ lt_dlgetinfo, lt_dlforeach provide access to module specific data in handles.
+ lt_next_dlloader, lt_dlloader_name, lt_find_dlloader and
+ lt_add_dlloader can be used for adding new types of module loaders.
+ lt_dladderror, lt_dlseterror integrate user module loaders with lt_dlerror.
* "-Xcompiler" and "-Wc," does now work in compile mode, too.
* Start of support code for cross-compiling to win32.
* libltdl can now be built as a dll with win32.
with the following exception:
@quotation
-As a special exception to the GNU Library General Public License,
-if you distribute this file as part of a program that uses GNU libtool
-to create libraries and programs, you may include it under the same
+As a special exception to the GNU Lesser General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU libtool, you may include it under the same
distribution terms that you use for the rest of that program.
@end quotation
This file is part of GNU Libtool.
This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
+modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
-As a special exception to the GNU Library General Public License,
-if you distribute this file as part of a program that uses GNU libtool
-to create libraries and programs, you may include it under the same
+As a special exception to the GNU Lesser General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU libtool, you may include it under the same
distribution terms that you use for the rest of that program.
This library 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
-Library General Public License for more details.
+Lesser General Public License for more details.
-You should have received a copy of the GNU Library General Public
+You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA
+
*/
#define _LTDL_COMPILE_
This file is part of GNU Libtool.
This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
+modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
-As a special exception to the GNU Library General Public License,
-if you distribute this file as part of a program that uses GNU libtool
-to create libraries and programs, you may include it under the same
+As a special exception to the GNU Lesser General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU libtool, you may include it under the same
distribution terms that you use for the rest of that program.
This library 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
-Library General Public License for more details.
+Lesser General Public License for more details.
-You should have received a copy of the GNU Library General Public
+You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA
need_relink=no # whether we're linking any uninstalled libtool libraries
case $linkmode in
lib)
- passes="link"
+ passes="conv link"
for file in $dlfiles $dlprefiles; do
case "$file" in
*.la) ;;
newdlfiles=
newdlprefiles=
link_against_libtool_libs=
- passes="scan dlopen dlpreopen link"
+ passes="conv scan dlopen dlpreopen link"
;;
- *) passes="link"
+ *) passes="conv"
;;
esac
for pass in $passes; do
$echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
continue
fi
+ test $pass = conv && continue
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
for searchdir in $lib_search_path; do
# Search the libtool library
-L*)
case $linkmode in
lib)
+ test $pass = conv && continue
deplibs="$deplib $deplibs"
newdependency_libs="$deplib $newdependency_libs"
new_lib_search_path="$new_lib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
;;
prog)
+ test $pass = conv && continue
if test $pass = scan; then
deplibs="$deplib $deplibs"
new_lib_search_path="$new_lib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
continue
;;
-R*)
- if test "$linkmode,$pass" = "prog,link"; then
+ if test $pass = link; then
dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
# Make sure the xrpath contains only unique directories.
case "$xrpath " in
;;
*.la) lib="$deplib" ;;
*.$libext)
+ test $pass = conv && continue
case $linkmode in
lib)
if test "$deplibs_check_method" != pass_all; then
esac
;;
*.lo | *.$objext)
- if test $linkmode = prog; then
+ if test $pass != conv && test $linkmode = prog; then
if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
# If there is no dlopen support or we're linking statically,
# we need to preload.
*) . ./$lib ;;
esac
- if test $linkmode = lib || test "$linkmode,$pass" = "prog,scan"; then
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test $linkmode != prog && test $linkmode != lib; }; then
test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
fi
- if test $linkmode != lib && test $linkmode != prog; then
+ if test $pass = conv; then
# only check for convenience libraries
- if test -z "$old_library"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
- exit 1
- fi
- if test -n "$libdir"; then
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit 1
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $ladir/$objdir/$old_library"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
+ deplibs="$deplibs $dependency_libs"
+ elif test $linkmode != prog && test $linkmode != lib; then
$echo "$modename: \`$lib' is not a convenience library" 1>&2
exit 1
fi
- # It is a libtool convenience library, so add in its objects.
- convenience="$convenience $ladir/$objdir/$old_library"
- old_convenience="$old_convenience $ladir/$objdir/$old_library"
continue
fi
if test -z "$libdir"; then
# It is a libtool convenience library, so add in its objects.
- convenience="$convenience $dir/$old_library"
- old_convenience="$old_convenience $dir/$old_library"
if test $linkmode = lib; then
deplibs="$dir/$old_library $deplibs"
tmp_libs=
dependency_libs="$newdependency_libs"
if test $pass = dlpreopen; then
# Link the dlpreopened libraries before other libraries
- deplibs="$deplibs $save_deplibs"
- elif test $pass != dlopen; then
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test $pass != dlopen; then
# Make sure lib_search_path contains only unique directories.
lib_search_path=
for dir in $new_lib_search_path; do
# Quote the relink command for shipping.
if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
+ # Preserve any variables that may affect compiler behavior
for var in $variables_saved_for_relink; do
eval var_value=\$$var
var_value=`\$echo \"X$var_value\" | $Xsed -e "$sed_quote_subst"`
$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
continue
fi
+ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
outputname="$tmpdir/$file"
# Replace the output file specification.
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`