From: Alexandre Oliva Date: Mon, 8 Feb 1999 10:53:45 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-1-2f~141 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5928e7de8faf3e0765d596553d5a7e65419fe95a;p=thirdparty%2Flibtool.git *** empty log message *** --- diff --git a/mail/ild.diff b/mail/ild.diff index df36c5ee2..202b48f0b 100644 --- a/mail/ild.diff +++ b/mail/ild.diff @@ -1,130 +1,246 @@ -diff -ruNd libtool/Makefile.am libtool.new/Makefile.am ---- libtool/Makefile.am Tue Jan 5 19:15:23 1999 -+++ libtool.new/Makefile.am Sun Jan 10 15:38:50 1999 -@@ -2,7 +2,7 @@ - ## Gordon Matzigkeit , 1996 - AUTOMAKE_OPTIONS = gnits - SUBDIRS = . doc tests --DIST_SUBDIRS = $(SUBDIRS) demo libltdl mdemo -+DIST_SUBDIRS = $(SUBDIRS) demo depdemo libltdl mdemo - - # We need to export these variables when we run ltconfig. - CFLAGS = @CFLAGS@ -@@ -62,6 +62,7 @@ - ACINCLUDE_M4_LIST = \ - $(srcdir)/acinclude.m4 \ - $(srcdir)/demo/acinclude.m4 \ -+ $(srcdir)/depdemo/acinclude.m4 \ - $(srcdir)/libltdl/acinclude.m4 \ - $(srcdir)/mdemo/acinclude.m4 - -diff -ruNd libtool/demo/Makefile.am libtool.new/demo/Makefile.am ---- libtool/demo/Makefile.am Sat Jan 9 10:51:42 1999 -+++ libtool.new/demo/Makefile.am Sun Jan 10 15:38:50 1999 -@@ -24,11 +24,11 @@ - - # Build hell from main.c and libhello.la - hell_SOURCES = main.c --hell_LDADD = libhello.la -+hell_LDADD = -lhello - - # Create an easier-to-debug version of hell. - hell_debug_SOURCES = main.c --hell_debug_LDADD = libhello.la -+hell_debug_LDADD = -lhello - hell_debug_LDFLAGS = -static - - if BINARY_HELLDL -diff -ruNd libtool/depdemo/Makefile.am libtool.new/depdemo/Makefile.am +diff -ruNd libtool/configure.in libtool.dep/configure.in +--- libtool/configure.in Wed Jan 27 10:03:54 1999 ++++ libtool.dep/configure.in Mon Feb 8 11:01:45 1999 +@@ -41,7 +41,7 @@ + + dnl all subdirectories that are configured on demand, but that must be + dnl included in the distribution +-CONF_SUBDIRS="libltdl demo mdemo cdemo" # depdemo ++CONF_SUBDIRS="libltdl demo mdemo depdemo cdemo" + AC_SUBST(CONF_SUBDIRS) + + ACINCLUDE_M4_LIST="${srcdir}/acinclude.m4 " +diff -ruNd libtool/depdemo/Makefile.am libtool.dep/depdemo/Makefile.am --- libtool/depdemo/Makefile.am Sat Jan 9 10:51:43 1999 -+++ libtool.new/depdemo/Makefile.am Sun Jan 10 15:38:50 1999 -@@ -5,21 +5,20 @@ - lib_LTLIBRARIES = libl1.la libl2.la libl3.la libl4.la - libl1_la_SOURCES = l1.c l1.h sysdep.h - libl2_la_SOURCES = l2.c l2.h sysdep.h --libl2_la_LIBADD = libl1.la -+libl2_la_LDFLAGS = -ll1 - libl3_la_SOURCES = l3.c l3.h sysdep.h --libl3_la_LIBADD = libl1.la libl2.la -+libl3_la_LDFLAGS = -ll1 -ll2 ++++ libtool.dep/depdemo/Makefile.am Mon Feb 8 11:01:45 1999 +@@ -11,15 +11,13 @@ libl4_la_SOURCES = l4.c l4.h sysdep.h --libl4_la_LIBADD = libl3.la $(LIBADD_M) -- + libl4_la_LIBADD = libl3.la $(LIBADD_M) + -bin_PROGRAMS = depdemo depdemo.static -+libl4_la_LDFLAGS = -ll3 $(LIBADD_M) ++bin_PROGRAMS = depdemo.static depdemo --depdemo_SOURCES = main.c + depdemo_SOURCES = main.c -depdemo_LDADD = libl1.la libl2.la libl4.la \ - libl3.la # remove this! --depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la -+bin_PROGRAMS = depdemo.static depdemo ++depdemo_LDADD = libl1.la libl2.la libl4.la + depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la - depdemo_static_SOURCES = main.c +-depdemo_static_SOURCES = main.c -depdemo_static_LDADD = libl1.la libl2.la libl4.la \ - libl3.la # remove this! -+depdemo_static_LDADD = -ll1 -ll2 -ll4 - depdemo_static_DEPENDENCIES = libl1.la libl2.la libl4.la +-depdemo_static_DEPENDENCIES = libl1.la libl2.la libl4.la ++depdemo_static_SOURCES = $(depdemo_SOURCES) ++depdemo_static_LDADD = $(depdemo_LDADD) ++depdemo_static_DEPENDENCIES = $(depdemo_DEPENDENCIES) depdemo_static_LDFLAGS = -static -+ -+depdemo_SOURCES = main.c -+depdemo_LDADD = -ll1 -ll2 -ll4 -+depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la -+ -diff -ruNd libtool/ltmain.in libtool.new/ltmain.in ---- libtool/ltmain.in Sun Jan 10 11:16:15 1999 -+++ libtool.new/ltmain.in Sun Jan 10 15:38:50 1999 -@@ -611,7 +611,6 @@ +diff -ruNd libtool/ltmain.in libtool.dep/ltmain.in +--- libtool/ltmain.in Wed Feb 3 16:42:52 1999 ++++ libtool.dep/ltmain.in Mon Feb 8 11:44:15 1999 +@@ -603,8 +603,11 @@ + ;; + + # libtool link mode +- link) ++ link | link-install) + modename="$modename: link" ++ link_install=no ++ test "$mode" = "link-install" && link_install=yes ++ link_command="$nonopt" + C_compiler="$CC" # save it, to compile generated C sources + CC="$nonopt" + case "$host" in +@@ -649,24 +652,13 @@ + ;; + esac + compile_command="$CC" +- finalize_command="$CC" + +- compile_shlibpath= +- finalize_shlibpath= ++ shlibpath= convenience= old_convenience= deplibs= -- eval lib_search_path=\"$sys_lib_search_path\" - - avoid_versioning=no + linkopts= + +- if test -n "$shlibpath_var"; then +- # get the directories listed in $shlibpath_var +- eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` +- else +- libsearch_path= +- fi +- # now prepend the system-specific ones +- eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\" +- + avoid_version=no dlfiles= -@@ -760,13 +759,18 @@ + dlprefiles= +@@ -674,9 +666,7 @@ + export_symbols= + generated= + hardcode_libdirs= +- finalize_hardcode_libdirs= + libobjs= +- link_against_libtool_libs= + ltlibs= + module=no + objs= +@@ -688,7 +678,6 @@ + xrpath= + perm_rpath= + temp_rpath= +- finalize_rpath= + thread_safe=no + vinfo= + +@@ -714,13 +703,13 @@ + while test $# -gt 0; do + arg="$1" + shift ++ link_command="$link_command $arg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case "$prev" in + output) + compile_command="$compile_command @OUTPUT@" +- finalize_command="$finalize_command @OUTPUT@" + ;; + esac + +@@ -729,7 +718,6 @@ + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" +- finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case "$arg" in +@@ -778,7 +766,6 @@ + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" +- finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; +@@ -815,7 +802,6 @@ + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" +- finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + fi +@@ -832,32 +818,25 @@ -L*) dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` + # We need an absolute path. case "$dir" in - /* | [A-Za-z]:[/\\]*) - # Add the corresponding hardcode_libdir_flag, if it is not identical. - ;; +- /* | [A-Za-z]:[/\\]*) +- # Add the corresponding hardcode_libdir_flag, if it is not identical. +- ;; ++ /* | [A-Za-z]:[/\\]*) ;; *) - $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 - exit 1 +- ;; +- esac +- deplibs="$deplibs $arg" +- lib_search_path="$lib_search_path `expr $arg : '-L\(.*\)'`" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) +- dllsearchdir="`expr $arg : '-L\(.*\)'`" +- dllsearchdir=`cd "$dllsearchdir" && pwd || echo "$dllsearchdir"` +- if test -n "$dllsearchpath"; then +- dllsearchpath="$dllsearchpath:$dllsearchdir" +- else +- dllsearchpath="$dllsearchdir" + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + exit 1 -+ fi -+ arg="-L$absdir" - ;; - esac - deplibs="$deplibs $arg" -@@ -783,11 +787,13 @@ fi ++ dir="$absdir" ;; esac ++ deplibs="$deplibs -L$dir" + continue ;; -l*) deplibs="$deplibs $arg" - compile_dependencylibs="$compile_dependencylibs $arg" + continue ;; -module) -@@ -889,6 +895,7 @@ +@@ -902,7 +881,6 @@ + # If we have no pic_flag, then this is the same as -all-static. + if test -z "$pic_flag" && test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" +- finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; +@@ -919,7 +897,7 @@ + + # Some other compiler flag. + -* | +*) +- # Unknown arguments in both finalize_command and compile_command need ++ # Unknown arguments in compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case "$arg" in +@@ -974,6 +952,7 @@ # it will not redefine variable installed. installed=yes -+ # Read in the .la file ++ # Read the .la file # If there is no directory component, then add one. case "$arg" in */* | *\\*) . $arg ;; -@@ -938,10 +945,7 @@ +@@ -991,9 +970,6 @@ + exit 1 + fi + +- # Find the relevant object directory and library name. +- name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` +- + if test "X$installed" = Xyes; then + dir="$libdir" + else +@@ -1005,28 +981,6 @@ + fi + fi + +- if test -n "$dependency_libs"; then +- # Extract -R from dependency_libs +- temp_deplibs= +- for deplib in $dependency_libs; do +- case "$deplib" in +- -R*) xrpath="$xrpath "`echo "X$deplib" | $Xsed -e 's/^-R//'`;; +- *) temp_deplibs="$temp_deplibs $deplib";; +- esac +- done +- dependency_libs="$temp_deplibs" +- 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" +- deplibs="$deplibs$dependency_libs" +- compile_command="$compile_command $dir/$old_library$dependency_libs" +- finalize_command="$finalize_command $dir/$old_library$dependency_libs" +- continue +- fi +- + # This library was specified with -dlopen. + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" +@@ -1035,10 +989,7 @@ # we need to preload. prev=dlprefiles else @@ -136,15 +252,10 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in prev= continue fi -@@ -957,155 +961,28 @@ - dlprefiles="$dlprefiles $dir/$linklib" - fi +@@ -1056,219 +1007,28 @@ prev= -+ else -+ # FIXME: remove this sometime in the future. -+ $echo "$modename: linking against .la files is obsolete" 1>&2 fi -- + - if test "$build_libtool_libs" = yes && test -n "$library_names"; then - link_against_libtool_libs="$link_against_libtool_libs $arg" - if test -n "$shlibpath_var"; then @@ -157,6 +268,21 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - - # This is the magic to use -rpath. - if test -n "$hardcode_libdir_flag_spec"; then +- saved_libdir="$libdir" +- libdir="$dir" +- +- # We need an absolute path. +- case "$libdir" in +- /* | [A-Za-z]:[/\\]*) ;; +- *) +- absdir=`cd "$libdir" && pwd` +- if test -z "$absdir"; then +- $echo "$modename: cannot determine absolute directory name of \`$libdir'" 1>&2 +- else +- libdir="$absdir" +- fi +- ;; +- esac - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - # Put the magic libdir with the hardcode flag. @@ -179,13 +305,53 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - eval flag=\"$hardcode_libdir_flag_spec\" - - compile_command="$compile_command $flag" +- fi +- +- libdir="$saved_libdir" +- if test -n "$hardcode_libdir_separator"; then +- if test -z "$finalize_hardcode_libdirs"; then +- # Put the magic libdir with the hardcode flag. +- finalize_hardcode_libdirs="$libdir" +- libdir="@HARDCODE_LIBDIRS@" +- else +- # Just accumulate the unique libdirs. +- case "$hardcode_libdir_separator$finalize_hardcode_libdirs$hardcode_libdir_separator" in +- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) +- ;; +- *) +- finalize_hardcode_libdirs="$finalize_hardcode_libdirs$hardcode_libdir_separator$libdir" +- ;; +- esac +- libdir= +- fi +- fi +- +- if test -n "$libdir"; then +- eval flag=\"$hardcode_libdir_flag_spec\" +- - finalize_command="$finalize_command $flag" - fi +- # libdir is also use after "$hardcode_action" case +- libdir="$saved_libdir" - elif test -n "$runpath_var"; then - # Do the same for the permanent run path. +- case "$dir" in +- /* | [A-Za-z]:[/\\]*) absdir="$dir";; +- *) +- absdir=`cd "$dir" && pwd` +- if test -z "$absdir"; then +- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 +- absdir="$dir" +- fi +- ;; +- esac - case "$perm_rpath " in +- *" $absdir "*) ;; +- *) perm_rpath="$perm_rpath $absdir" ;; +- esac +- case "$finalize_perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; +- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; - esac - fi - @@ -195,9 +361,9 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - immediate | unsupported) - if test "$hardcode_direct" = no; then - compile_command="$compile_command $dir/$linklib" +- deplibs="$deplibs $dir/$linklib" - case "$host" in -- *-*-cygwin32* | *-*-mingw32* | *-*-os2*) -- compile_dependencylibs="$compile_dependencylibs -L$dir -l$name" +- *-*-cygwin* | *-*-mingw* | *-*-os2*) - dllsearchdir=`cd "$dir" && pwd || echo "$dir"` - if test -n "$dllsearchpath"; then - dllsearchpath="$dllsearchpath:$dllsearchdir" @@ -213,9 +379,11 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - ;; - esac - compile_command="$compile_command -L$dir -l$name" +- deplibs="$deplibs -L$dir -l$name" - elif test "$hardcode_shlibpath_var" = no; then - compile_shlibpath="$compile_shlibpath$dir:" - compile_command="$compile_command -l$name" +- deplibs="$deplibs -l$name" - else - lib_linked=no - fi @@ -237,31 +405,23 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - - if test "$hardcode_direct" = yes; then - compile_command="$compile_command $dir/$linklib" +- deplibs="$deplibs $dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - compile_command="$compile_command -L$dir -l$name" +- deplibs="$deplibs -L$dir -l$name" - elif test "$hardcode_shlibpath_var" = yes; then - compile_shlibpath="$compile_shlibpath$dir:" - compile_command="$compile_command -l$name" +- deplibs="$deplibs -l$name" - else - lib_linked=no - fi - ;; - -+ -+ dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -+ if test "X$dir" != "X$arg"; then -+ # We need an absolute path. -+ case "$dir" in -+ /* | [A-Za-z]:[/\\]*) ;; - *) +- *) - lib_linked=no -+ dir=`cd "$dir" && pwd` -+ if test -z "$dir"; then -+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 -+ exit 1 -+ fi - ;; - esac +- ;; +- esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" @@ -284,8 +444,17 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - # Transform directly to old archives if we don't build new libraries. - if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$modename: cannot find static library for \`$arg'" 1>&2 -- exit 1 -- fi ++ dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$arg" && dir="." ++ # We need an absolute path. ++ case "$dir" in ++ /* | [A-Za-z]:[/\\]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + exit 1 + fi - - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and @@ -303,14 +472,30 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in - # Add in any libraries that this one depends upon. - compile_command="$compile_command$dependency_libs" - finalize_command="$finalize_command$dependency_libs" -+ deplibs="$deplibs -L$dir" -+ fi -+ # FIXME: this will fail for modules without a 'lib' prefix! -+ deplibs="$deplibs -l$name" ++ dir="$absdir" ++ ;; ++ esac ++ name=`echo "X$arg" | $Xsed -e 's%^.*/%%'` ++ deplibs="$deplibs $dir/$name" continue ;; -@@ -1145,6 +1022,25 @@ + # Some other compiler argument. + *) +- # Unknown arguments in both finalize_command and compile_command need ++ # Unknown arguments in compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case "$arg" in +@@ -1282,7 +1042,6 @@ + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" + fi + done + +@@ -1302,6 +1061,35 @@ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" @@ -330,21 +515,86 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + esac + done + deplibs="$newdeplibs" -+ eval sys_search_path=\"$sys_lib_search_path\" -+ lib_search_path="$lib_search_path $sys_search_path" ++ ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ lib_search_path="$lib_search_path $sys_lib_search_path $shlib_search_path" ++ ++ # Quote the link command for shipping. ++ link_command=`$echo "X$link_command" | $Xsed -e "$sed_quote_subst"` + case "$output" in "") $echo "$modename: you must specify an output file" 1>&2 -@@ -1401,7 +1297,6 @@ +@@ -1310,11 +1098,6 @@ + ;; + + *.a | *.lib) +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 +- exit 1 +- fi +- + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi +@@ -1388,12 +1171,6 @@ + exit 1 + fi + +- # How the heck are we supposed to write a wrapper for a shared library? +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2 +- exit 1 +- fi +- + if test -n "$dlfiles$dlprefiles"; then + $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 + fi +@@ -1402,7 +1179,20 @@ + if test $# -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi +- install_libdir="$2" ++ dir="$2" ++ # We need an absolute path. ++ case "$dir" in ++ /* | [A-Za-z]:[/\\]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ else ++ dir="$absdir" ++ fi ++ ;; ++ esac ++ install_libdir="$dir" + + oldlibs= + if test -z "$rpath"; then +@@ -1413,7 +1203,6 @@ + build_libtool_libs=convenience + build_old_libs=yes + fi +- dependency_libs="$deplibs" + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 +@@ -1561,7 +1350,6 @@ allow_undefined_flag="$no_undefined_flag" fi - dependency_libs="$deplibs" case "$host" in - *-*-cygwin32* | *-*-mingw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-os2*) # these systems don't actually have a c library (as such)! -@@ -1434,6 +1329,206 @@ +@@ -1594,6 +1382,322 @@ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi @@ -358,113 +608,225 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + release_save=$release + versuffix_save=$versuffix + major_save=$major -+ ++ ++ ################# ++ # ILD code ++ ################# ++ $echo "deplibs: $deplibs" ++ $echo "search path: $lib_search_path" ++ ++ olddeplibs="$deplibs" ++ + # Find libtool libraries and add their dependencies and directories -+ newdeplibs= # libraries to link (uninstalled library) -+ inst_deplibs= # libraries to link (installed library) -+ alldeplibs= # all dependency libraries (uninstalled library) -+ inst_alldeplibs= # all dependency libraries (installed library) -+ remove_path= # paths that contain uninstalled libtool libraries ++ deplibs= # libraries to link (used in archive_cmds) ++ alldependency_libs= # all dependency libraries ++ uninst_path= # paths that contain uninstalled libtool libraries + new_lib_search_path= -+ for deplib in $deplibs; do -+ newdeplibs="$newdeplibs $deplib" -+ inst_deplibs="$inst_deplibs $deplib" -+ alldeplibs="$alldeplibs $deplib" -+ inst_alldeplibs="$inst_alldeplibs $deplib" -+ found= -+ name="`expr $deplib : '-l\(.*\)'`" -+ # If $name is empty we are operating on a -L argument. -+ if test -n "$name"; then ++ for deplib in $olddeplibs; do ++ lib= ++ case "$deplib" in ++ -L*) ++ $echo "$deplib is a directory" ++ new_lib_search_path="$new_lib_search_path `expr $deplib : '-L\(.*\)'`" ++ deplibs="$deplibs $deplib" ++ alldependency_libs="$alldependency_libs $deplib" ++ continue ++ ;; ++ -l*) ++ name="`expr $deplib : '-l\(.*\)'`" + libname=`eval \\$echo \"$libname_spec\"` ++ found=no + for searchdir in $lib_search_path; do + # Search the libtool library -+ if test -f "$searchdir/$libname.la"; then -+ lib="$searchdir/$libname.la" -+ dlname= -+ libdir= -+ library_names= -+ old_library= -+ inst_dependency_libs= ++ lib="$searchdir/$libname.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ $echo "$deplib is not a libtool library" ++ deplibs="$deplibs $deplib" ++ alldependency_libs="$alldependency_libs $deplib" ++ continue ++ fi ++ ;; ++ *) ++ lib="$deplib" ++ if test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ;; ++ esac ++ $echo "$deplib is a libtool library" ++ dlname= ++ libdir= ++ library_names= ++ old_library= + -+ # Check to see that this really is a libtool archive. -+ if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -+ else -+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -+ exit 1 -+ fi ++ # Check to see that this really is a libtool archive. ++ if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi + -+ # If the library was installed with an old release of libtool, -+ # it will not redefine variable installed. -+ installed=yes ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes + -+ # Read in the .la file -+ . $lib ++ # Read the .la file ++ . $lib + -+ # Get the name of the library we link against. -+ linklib= -+ for l in $old_library $library_names; do -+ linklib="$l" -+ done ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done + -+ if test -z "$linklib"; then -+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -+ exit 1 -+ fi ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi + -+ if test "$build_libtool_libs" = yes; then -+ if test -z "$library_names" && test "$deplibs_check_method" != pass_all; then -+ echo -+ echo "*** Warning: This library needs some functionality provided by $libname." -+ echo "*** I have the capability to make that library automatically link in when" -+ echo "*** you link to this library. But I can only do this if you have a" -+ echo "*** shared version of the library, which you do not appear to have." -+ break -+ fi -+ ############################ -+ # TODO: hardcode libraries -+ ############################ ++ if test "X$installed" = Xyes; then ++ dir="$libdir" ++ case "$dir" in ++ /* | [A-Za-z]:[/\\]*) absdir="$dir";; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ exit 1 ++ fi ++ dir="$absdir" ++ ;; ++ esac ++ else ++ searchdir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` ++ dir="$searchdir/$objdir" ++ # Remove this search path later ++ uninst_path="$uninst_path $searchdir" ++ fi ++ ++ # Find the relevant object directory and library name. ++ name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` ++ # FIXME: libraries without lib prefix require direct hardcoding ++ ++ if test -z "$libdir"; then ++ # It is a libtool convenience library. ++ $echo "$modename: cannot link libtool libraries against convenience libraries" 1>&2 ++ exit 1 ++ fi ++ ++ if test "$build_libtool_libs" = yes && test -n "$library_names"; then ++ # This is the magic to use -rpath. ++ if test -n "$hardcode_libdir_flag_spec"; then ++ saved_libdir="$libdir" ++ test $link_install = no && libdir="$dir" ++ ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ # Put the magic libdir with the hardcode flag. ++ hardcode_libdirs="$libdir" ++ libdir="@HARDCODE_LIBDIRS@" ++ else ++ # Just accumulate the unique libdirs. ++ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ libdir= + fi -+ -+ if test "X$installed" = Xyes; then -+ dir="$libdir" ++ fi ++ if test -n "$libdir"; then ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ deplibs="$deplibs $flag" ++ fi ++ # libdir is also use after "$hardcode_action" case ++ libdir="$saved_libdir" ++ fi ++ ++ if test $link_install = no; then ++ lib_linked=yes ++ case "$hardcode_action" in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ deplibs="$deplibs $dir/$linklib" ++ elif test "$hardcode_minus_L" = no; then ++ case "$host" in ++ *-*-sunos*) ++ shlibpath="$shlibpath$dir:" ++ ;; ++ esac ++ deplibs="$deplibs -L$dir -l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ shlibpath="$shlibpath$dir:" ++ deplibs="$deplibs -l$name" + else -+ dir="$searchdir/$objdir" -+ # Remove this search path later -+ remove_path="$remove_path $searchdir" ++ lib_linked=no + fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes; then ++ deplibs="$deplibs $dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ deplibs="$deplibs -L$dir -l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ shlibpath="$shlibpath$dir:" ++ deplibs="$deplibs -l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) ++ lib_linked=no ++ ;; ++ esac + -+ # Link against this library -+ newdeplibs="$newdeplibs -L$dir" -+ alldeplibs="$alldeplibs -L$dir $dependency_libs" -+ new_lib_search_path="$new_lib_search_path $dir" -+ -+ case " $sys_search_path " in -+ *" $libdir "*) ;; -+ *) -+ # Add path only if it isn't a system search path -+ inst_deplibs="$inst_deplibs -L$libdir" -+ inst_alldeplibs="$inst_alldeplibs -L$libdir" -+ ;; -+ esac -+ -+ # Set to dependency_libs if not defined -+ test -z "$inst_dependency_libs" && inst_dependency_libs="$dependency_libs" -+ inst_alldeplibs="$inst_alldeplibs $inst_dependency_libs" -+ -+ found=yes -+ break ++ if test "$lib_linked" != yes; then ++ $echo "$modename: configuration error: unsupported hardcode properties" ++ exit 1 + fi -+ done -+ if test -z "$found"; then -+ # Not a libtool library -+ $echo "$deplib is a not libtool library" + else -+ $echo "$deplib is a libtool library" ++ # Install command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes; then ++ deplibs="$deplibs $libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ deplibs="$deplibs -L$libdir -l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ shlibpath="$shlibpath$libdir:" ++ deplibs="$deplibs -l$name" ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ deplibs="$deplibs -L$libdir -l$name" ++ fi + fi ++ elif test "$build_libtool_libs" = yes && test "$deplibs_check_method" != pass_all; then ++ echo ++ echo "*** Warning: This library needs some functionality provided by $libname." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ continue + else -+ $echo "$deplib is a directory" -+ new_lib_search_path="$new_lib_search_path `expr $deplib : '-L\(.*\)'`" ++ # Check for old archives if we don't build new libraries. ++ if test -n "$pic_flag" && test -z "$old_library"; then ++ $echo "$modename: cannot find static library for \`$lib'" 1>&2 ++ exit 1 ++ fi + fi ++ ++ new_lib_search_path="$new_lib_search_path $dir" ++ ++ # Link against this library ++ alldependency_libs="$alldependency_libs $dependency_libs $lib" + done + + # Make sure lib_search_path contains only unique directories. @@ -475,68 +837,72 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + *) lib_search_path="$lib_search_path $dir" ;; + esac + done -+ lib_search_path="$lib_search_path $sys_search_path" -+ -+ # Make sure deplibs contains only unique libraries and directories. -+ deplibs= -+ for deplib in $newdeplibs; do -+ case "$deplibs " in -+ *" $deplib "*) ;; -+ *) deplibs="$deplibs $deplib" ;; -+ esac -+ done -+ -+ # Make sure inst_deplibs contains only unique libraries and directories. -+ newinst_deplibs= -+ for deplib in $inst_deplibs; do -+ case "$newinst_deplibs " in -+ *" $deplib "*) ;; -+ *) newinst_deplibs="$newinst_deplibs $deplib" ;; -+ esac -+ done -+ inst_deplibs=$newinst_deplibs ++ lib_search_path="$lib_search_path $sys_lib_search_path" + -+ # Make sure alldeplibs contains only unique libraries and directories. -+ newalldeplibs= -+ for deplib in $alldeplibs; do -+ case "$newalldeplibs " in ++ # Make sure alldependency_libs contains only unique libraries and directories. ++ dependency_libs= ++ for deplib in $alldependency_libs; do ++ case "$dependency_libs " in + *" $deplib "*) ;; -+ *) newalldeplibs="$newalldeplibs $deplib" ;; ++ *) dependency_libs="$dependency_libs $deplib" ;; + esac + done -+ alldeplibs=$newalldeplibs + -+ # Make sure inst_alldeplibs contains only unique libraries and directories. -+ newinst_alldeplibs= -+ for deplib in $inst_alldeplibs; do -+ case "$newinst_alldeplibs " in -+ *" $deplib "*) ;; -+ *) newinst_alldeplibs="$newinst_alldeplibs $deplib" ;; -+ esac -+ done -+ inst_alldeplibs=$newinst_alldeplibs -+ + # Eliminate all temporary directories. -+ for path in $remove_path; do ++ for path in $uninst_path; do + lib_search_path=`echo "$lib_search_path" | sed -e 's% $path % %g'` + deplibs=`echo "$deplibs" | sed -e 's% -L$path % %g'` -+ inst_deplibs=`echo "$inst_deplibs" | sed -e 's% -L$path % %g'` -+ alldeplibs=`echo "$alldeplibs" | sed -e 's% -L$path % %g'` -+ inst_alldeplibs=`echo "$inst_alldeplibs" | sed -e 's% -L$path % %g'` ++ dependency_libs=`echo "$dependency_libs" | sed -e 's% -L$path % %g'` + done + -+ $echo "noinst deplibs: $deplibs" -+ $echo "inst deplibs: $inst_deplibs" -+ $echo "noinst all deplibs: $alldeplibs" -+ $echo "inst all deplibs: $inst_alldeplibs" -+ $echo "search path: '$lib_search_path'" -+ -+ if test -n "$rpath"; then -+ # Building not a libtool convenience library. -+ dependency_libs="$alldeplibs" -+ inst_dependency_libs="$inst_alldeplibs" ++ $echo "deplibs: $deplibs" ++ $echo "dependency_libs: $dependency_libs" ++ $echo "search path: $lib_search_path" ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ if test -n "$hardcode_libdir_flag_spec"; then ++ saved_libdir="$libdir" ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ # Put the magic libdir with the hardcode flag. ++ hardcode_libdirs="$libdir" ++ libdir="@HARDCODE_LIBDIRS@" ++ else ++ # Just accumulate the unique libdirs. ++ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ libdir= ++ fi ++ fi ++ ++ if test -n "$libdir"; then ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ deplibs="$deplibs $flag" ++ fi ++ ++ libdir="$saved_libdir" ++ fi ++ done ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ ++ # Substitute the hardcoded libdirs into the compile commands. ++ if test -n "$hardcode_libdir_separator"; then ++ deplibs=`$echo "X$deplibs" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` + fi + ++ $echo "deplibs: $deplibs" ++ + # Restore the variables + versuffix=$versuffix_save + major=$major_save @@ -550,8 +916,20 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + if test "$build_libtool_libs" = yes; then # Transform deplibs into only deplibs that can be linked in shared. - ## Gordon: Do you check for the existence of the libraries in deplibs -@@ -1777,6 +1872,294 @@ + name_save=$name +@@ -1887,11 +1991,6 @@ + ;; + + *.lo | *.o | *.obj) +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 +- exit 1 +- fi +- + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi +@@ -1991,11 +2090,349 @@ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi @@ -559,44 +937,104 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + $echo "search path: $lib_search_path" + + # Find libtool libraries and add their dependencies/rpaths -+ newdeplibs= -+ for deplib in $deplibs; do -+ newdeplibs="$newdeplibs $deplib" -+ name="`expr $deplib : '-l\(.*\)'`" -+ # If $name is empty we are operating on a -L argument. -+ if test -n "$name"; then ++ olddeplibs="$deplibs" ++ deplibs= ++ new_lib_search_path= ++ for deplib in $olddeplibs; do ++ lib= ++ case "$deplib" in ++ -L*) ++ $echo "$deplib is a directory" ++ new_lib_search_path="$new_lib_search_path `expr $deplib : '-L\(.*\)'`" ++ deplibs="$deplibs $deplib" ++ continue ++ ;; ++ -l*) ++ name="`expr $deplib : '-l\(.*\)'`" + libname=`eval \\$echo \"$libname_spec\"` ++ found=no + for searchdir in $lib_search_path; do -+ if test -f "$searchdir/$libname.la"; then -+ lib="$searchdir/$libname.la" -+ dlname= -+ libdir= -+ library_names= -+ old_library= -+ inst_dependency_libs= ++ # Search the libtool library ++ lib="$searchdir/$libname.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ $echo "$deplib is not a libtool library" ++ deplibs="$deplibs $deplib" ++ continue ++ fi ++ ;; ++ *) ++ lib="$deplib" ++ if test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ;; ++ esac ++ $echo "$deplib is a libtool library" ++ dlname= ++ libdir= ++ library_names= ++ old_library= + -+ # Check to see that this really is a libtool archive. -+ if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -+ else -+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -+ exit 1 -+ fi ++ # Check to see that this really is a libtool archive. ++ if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi + -+ # Read in the .la file -+ # If there is no directory component, then add one. -+ . $lib ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes + -+ if test "$build_libtool_libs" = no || test "$deplibs_check_method" = none; then -+ # Add in any libraries that this one depends upon. -+ newdeplibs="$newdeplibs$dependency_libs" -+ fi ++ # Read the .la file ++ . $lib + -+ break -+ fi -+ done ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ new_lib_search_path="$new_lib_search_path $dir" ++ deplibs="$deplibs $lib" ++ ++ if test "$build_libtool_libs" = no || test "$deplibs_check_method" = none; then ++ # Add in any libraries that this one depends upon. ++ deplibs="$deplibs $dependency_libs" + fi -+ done + ++ for dir in $dependency_libs; do ++ case "$dir" in ++ -L*) ++ new_lib_search_path="$new_lib_search_path `expr $dir : '-L\(.*\)'`" ++ ;; ++ *) ;; ++ esac ++ done ++ done ++ ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $new_lib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ lib_search_path="$lib_search_path $sys_lib_search_path" ++ + # Make sure deplibs contains only unique libraries and directories. + deplibs= + for deplib in $newdeplibs; do @@ -609,6 +1047,7 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + + # Find libtool libraries and add their directories + newdeplibs= ++ link_against_libtool_libs= + for deplib in $deplibs; do + found= + name="`expr $deplib : '-l\(.*\)'`" @@ -666,7 +1105,6 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + convenience="$convenience $dir/$old_library" + old_convenience="$old_convenience $dir/$old_library" + compile_command="$compile_command $dir/$old_library" -+ finalize_command="$finalize_command $dir/$old_library" + continue + fi + @@ -704,7 +1142,6 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + eval flag=\"$hardcode_libdir_flag_spec\" + + compile_command="$compile_command $flag" -+ finalize_command="$finalize_command $flag" + fi + elif test -n "$runpath_var"; then + # Do the same for the permanent run path. @@ -719,17 +1156,6 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + immediate | unsupported) + if test "$hardcode_direct" = no; then + compile_command="$compile_command $dir/$linklib" -+ case "$host" in -+ *-*-cygwin32* | *-*-mingw32* | *-*-os2*) -+ compile_dependencylibs="$compile_dependencylibs -L$dir -l$name" -+ dllsearchdir=`cd "$dir" && pwd || echo "$dir"` -+ if test -n "$dllsearchpath"; then -+ dllsearchpath="$dllsearchpath:$dllsearchdir" -+ else -+ dllsearchpath="$dllsearchdir" -+ fi -+ ;; -+ esac + elif test "$hardcode_minus_L" = no; then + case "$host" in + *-*-sunos*) @@ -781,17 +1207,21 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + exit 1 + fi + -+ # Finalize command for both is simple: just hardcode it. ++ else ++ ++ # Install command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then -+ finalize_command="$finalize_command $libdir/$linklib" ++ compile_command="$compile_command $libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then -+ finalize_command="$finalize_command -L$libdir -l$name" ++ compile_command="$compile_command -L$libdir -l$name" + elif test "$hardcode_shlibpath_var" = yes; then -+ finalize_shlibpath="$finalize_shlibpath$libdir:" -+ finalize_command="$finalize_command -l$name" ++ compile_shlibpath="$compile_shlibpath$libdir:" ++ compile_command="$compile_command -l$name" + else + # We cannot seem to hardcode it, guess we'll fake it. -+ finalize_command="$finalize_command -L$libdir -l$name" ++ compile_command="$compile_command -L$libdir -l$name" ++ fi ++ + fi + else + # Transform directly to old archives if we don't build new libraries. @@ -806,10 +1236,8 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_command="$compile_command $dir/$linklib" -+ finalize_command="$finalize_command $dir/$linklib" + else + compile_command="$compile_command -L$dir -l$name" -+ finalize_command="$finalize_command -L$dir -l$name" + fi + fi + @@ -841,26 +1269,217 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in + + # Add in any non-libtool libraries. + compile_command="$compile_command $deplibs" -+ finalize_command="$finalize_command $deplibs" + - if test -n "$rpath"; then + if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. - for libdir in $rpath; do -@@ -2294,6 +2677,9 @@ - # Libraries that this one depends upon. - dependency_libs='$dependency_libs' - -+# Libraries that this one depends upon (installed). -+inst_dependency_libs='$inst_dependency_libs' -+ - # Version information for $libname. - current=$current - age=$age -@@ -2549,12 +2935,14 @@ + for libdir in $rpath $xrpath; do + if test -n "$hardcode_libdir_flag_spec"; then + saved_libdir="$libdir" ++ test $link_install = no && libdir="$dir" + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + # Put the magic libdir with the hardcode flag. +@@ -2021,38 +2458,11 @@ + fi + + libdir="$saved_libdir" +- if test -n "$hardcode_libdir_separator"; then +- if test -z "$finalize_hardcode_libdirs"; then +- # Put the magic libdir with the hardcode flag. +- finalize_hardcode_libdirs="$libdir" +- libdir="@HARDCODE_LIBDIRS@" +- else +- # Just accumulate the unique libdirs. +- case "$hardcode_libdir_separator$finalize_hardcode_libdirs$hardcode_libdir_separator" in +- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) +- ;; +- *) +- finalize_hardcode_libdirs="$finalize_hardcode_libdirs$hardcode_libdir_separator$libdir" +- ;; +- esac +- libdir= +- fi +- fi +- +- if test -n "$libdir"; then +- eval flag=\"$hardcode_libdir_flag_spec\" +- +- finalize_command="$finalize_command $flag" +- fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac +- case "$finalize_perm_rpath " in +- *" $libdir "*) ;; +- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; +- esac + fi + done + fi +@@ -2060,7 +2470,6 @@ + # Substitute the hardcoded libdirs into the compile commands. + if test -n "$hardcode_libdir_separator"; then + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$finalize_hardcode_libdirs%g"` + fi + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` +@@ -2073,7 +2482,6 @@ + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` +- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + if test "$export_dynamic" = yes || test -n "$dlfiles$dlprefiles" && test -n "$NM" && test -n "$global_symbol_pipe"; then +@@ -2210,7 +2618,6 @@ + + # Transform the symbol file into the correct name. + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"` + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 +@@ -2227,13 +2634,11 @@ + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + + if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + + # We have no uninstalled library dependencies, so finalize right now. + $show "$compile_command" +@@ -2242,8 +2647,11 @@ + fi + + # Replace the output file specification. +- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` +- finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'T%g'` ++ if test $link_install = no; then ++ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ else ++ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'T%g'` ++ fi + + # Create the binary in the object directory, then wrap it. + if test ! -d $output_objdir; then +@@ -2279,9 +2687,6 @@ + if test -n "$compile_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command" + fi +- if test -n "$finalize_shlibpath"; then +- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" +- fi + + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then +@@ -2292,14 +2697,6 @@ + done + compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command" + fi +- if test -n "$finalize_perm_rpath"; then +- # We should set the runpath_var. +- rpath= +- for dir in $finalize_perm_rpath; do +- rpath="$rpath$dir:" +- done +- finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" +- fi + fi + + if test "$hardcode_action" = relink; then +@@ -2314,9 +2711,6 @@ + # Now create the wrapper script. + $show "creating $output" + +- # Quote the finalize command for shipping. +- finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` +- + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $0 --fallback-echo"; then + case "$0" in +@@ -2363,7 +2757,8 @@ + if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + link_against_libtool_libs='$link_against_libtool_libs' +- finalize_command=\"cd `pwd | sed -e $sed_quote_subst`; $finalize_command\" ++ link_command=\"$link_command\" ++ link_dir=\"`pwd | sed -e $sed_quote_subst`\" + else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then +@@ -2428,14 +2823,6 @@ + " + fi + +- # fixup the dll searchpath if we need to. +- if test -n "$dllsearchpath"; then +- $echo >> $output "\ +- # Add the dll search path components to the executable PATH +- PATH=$dllsearchpath:\$PATH +-" +- fi +- + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +@@ -2542,14 +2929,6 @@ + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + +- if test -n "$xrpath"; then +- temp_xrpath= +- for libdir in $xrpath; do +- temp_xrpath="$temp_xrpath -R$libdir" +- done +- dependency_libs="$temp_xrpath $dependency_libs" +- fi +- + # Only create the output if not a dry run. + if test -z "$run"; then + $echo > $output "\ +@@ -2577,7 +2956,10 @@ + installed=no + + # Directory that this library needs to be installed in: +-libdir='$install_libdir'\ ++libdir='$install_libdir' ++ ++link_command=\"$link_command\" ++link_dir=\"`pwd | sed -e $sed_quote_subst`\"\ + " + fi + +@@ -2823,12 +3205,32 @@ IFS="$save_ifs" fi + # TODO: relink if necessary ++ if test "$hardcode_action" = relink; then ++ if test "$finalize" = yes; then ++ $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 ++ finalize_command="cd $link_dir; $SHELL $0 -mode=link-install $link_command" ++ $show "$finalize_command" ++ if $run eval "$finalize_command"; then : ++ else ++ echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ continue ++ fi ++ file="$objdir/$file"T ++ else ++ $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 ++ fi ++ else ++ # Install the binary that we compiled earlier. ++ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ fi + # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` @@ -868,26 +1487,47 @@ diff -ruNd libtool/ltmain.in libtool.new/ltmain.in $show "Creating $instname" $rm "$instname" - sed 's/^installed=no$/installed=yes/' "$file" > "$instname" -+ sed -e 's/^installed=no$/installed=yes/' -e 's/^dependency_libs=.*/dependency_libs=$inst_dependency_libs/' "$file" > "$instname" ++ sed -e 's/^installed=no$/installed=yes/' "$file" > "$instname" $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? $show "$rm $instname" -diff -ruNd libtool/mdemo/Makefile.am libtool.new/mdemo/Makefile.am ---- libtool/mdemo/Makefile.am Sun Jan 10 11:21:35 1999 -+++ libtool.new/mdemo/Makefile.am Sun Jan 10 15:39:38 1999 -@@ -30,13 +30,13 @@ - - # Create a version of mdemo that does dlopen. - mdemo_SOURCES = main.c --mdemo_LDADD = libltdl/libltdl.la \ -+mdemo_LDADD = -Llibltdl -lltdl \ - $(LIBADD_M) # We won't need this when libltdl takes care of dependencies - mdemo_LDFLAGS = -dlopen libfoo1.la -dlopen libfoo2.la - mdemo_DEPENDENCIES = libltdl/libltdl.la libfoo1.la libfoo2.la - - # Create an easier-to-debug version of mdemo. - mdemo_debug_SOURCES = main.c --mdemo_debug_LDADD = libltdl/libltdl.la -+mdemo_debug_LDADD = -Llibltdl -lltdl - mdemo_debug_LDFLAGS = -static -dlopen libfoo1.la -dlopen libfoo2.la - mdemo_debug_DEPENDENCIES = libltdl/libltdl.la libfoo1.la libfoo2.la +@@ -2894,7 +3296,8 @@ + # Do a test to see if this is really a libtool program. + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + link_against_libtool_libs= +- finalize_command= ++ link_command= ++ link_dir= + + # If there is no directory component, then add one. + case "$file" in +@@ -2903,7 +3306,7 @@ + esac + + # Check the variables that should have been set. +- if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then ++ if test -z "$link_against_libtool_libs" || test -z "$link_command" || test -z "$link_dir"; then + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 + exit 1 + fi +@@ -2913,11 +3316,7 @@ + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then +- # If there is no directory component, then add one. +- case "$lib" in +- */* | *\\*) . $lib ;; +- *) . ./$lib ;; +- esac ++ . $lib + fi + libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" + if test -n "$libdir" && test ! -f "$libfile"; then +@@ -2929,6 +3328,7 @@ + if test "$hardcode_action" = relink; then + if test "$finalize" = yes; then + $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 ++ finalize_command="cd $link_dir; $SHELL $0 -mode=link-install $link_command" + $show "$finalize_command" + if $run eval "$finalize_command"; then : + else