libtool 1.3
-Yosh
This commit is contained in:
479
ltmain.sh
479
ltmain.sh
@ -2,7 +2,7 @@
|
||||
# NOTE: Changing this file will not affect anything until you rerun ltconfig.
|
||||
#
|
||||
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
|
||||
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -28,12 +28,8 @@ if test "X$1" = X--no-reexec; then
|
||||
# Discard the --no-reexec flag, and continue.
|
||||
shift
|
||||
elif test "X$1" = X--fallback-echo; then
|
||||
# used as fallback echo
|
||||
shift
|
||||
cat <<EOF
|
||||
$*
|
||||
EOF
|
||||
exit 0
|
||||
# Avoid inline document here, it may be left over
|
||||
:
|
||||
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
|
||||
# Yippee, $echo works!
|
||||
:
|
||||
@ -42,6 +38,15 @@ else
|
||||
exec $SHELL "$0" --no-reexec ${1+"$@"}
|
||||
fi
|
||||
|
||||
if test "X$1" = X--fallback-echo; then
|
||||
# used as fallback echo
|
||||
shift
|
||||
cat <<EOF
|
||||
$*
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# The name of this program.
|
||||
progname=`$echo "$0" | sed 's%^.*/%%'`
|
||||
modename="$progname"
|
||||
@ -49,8 +54,8 @@ modename="$progname"
|
||||
# Constants.
|
||||
PROGRAM=ltmain.sh
|
||||
PACKAGE=libtool
|
||||
VERSION=1.2f
|
||||
TIMESTAMP=" (1.385 1999/03/15 17:24:54)"
|
||||
VERSION=1.3
|
||||
TIMESTAMP=" (1.385.2.117 1999/04/29 13:07:13)"
|
||||
|
||||
default_mode=
|
||||
help="Try \`$progname --help' for more information."
|
||||
@ -100,6 +105,7 @@ show="$echo"
|
||||
show_help=
|
||||
execute_dlfiles=
|
||||
lo2o="s/\\.lo\$/.${objext}/"
|
||||
o2lo="s/\\.${objext}\$/.lo/"
|
||||
|
||||
# Parse our command line options once, thoroughly.
|
||||
while test $# -gt 0
|
||||
@ -630,7 +636,13 @@ compiler."
|
||||
# #undef WIN32_LEAN_AND_MEAN
|
||||
# #include <stdio.h>
|
||||
#
|
||||
# #ifdef __cplusplus
|
||||
# extern "C" {
|
||||
# #endif
|
||||
# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
|
||||
# #ifdef __cplusplus
|
||||
# }
|
||||
# #endif
|
||||
#
|
||||
# #include <cygwin/cygwin_dll.h>
|
||||
# DECLARE_CYGWIN_DLL( DllMain );
|
||||
@ -815,6 +827,7 @@ compiler."
|
||||
ltlibs=
|
||||
module=no
|
||||
objs=
|
||||
prefer_static_libs=no
|
||||
preload=no
|
||||
prev=
|
||||
prevarg=
|
||||
@ -831,11 +844,21 @@ compiler."
|
||||
do
|
||||
case "$arg" in
|
||||
-all-static | -static)
|
||||
if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
|
||||
if test "X$arg" = "X-all-static"; then
|
||||
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
|
||||
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
|
||||
fi
|
||||
if test -n "$link_static_flag"; then
|
||||
dlopen_self=$dlopen_self_static
|
||||
fi
|
||||
else
|
||||
if test -z "$pic_flag" && test -n "$link_static_flag"; then
|
||||
dlopen_self=$dlopen_self_static
|
||||
fi
|
||||
fi
|
||||
build_libtool_libs=no
|
||||
build_old_libs=yes
|
||||
prefer_static_libs=yes
|
||||
break
|
||||
;;
|
||||
esac
|
||||
@ -873,13 +896,19 @@ compiler."
|
||||
dlself=yes
|
||||
elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
|
||||
dlself=yes
|
||||
else
|
||||
dlself=needless
|
||||
export_dynamic=yes
|
||||
fi
|
||||
prev=
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
dlprefiles="$dlprefiles $arg"
|
||||
test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
|
||||
if test "$prev" = dlfiles; then
|
||||
dlfiles="$dlfiles $arg"
|
||||
else
|
||||
dlprefiles="$dlprefiles $arg"
|
||||
fi
|
||||
prev=
|
||||
;;
|
||||
esac
|
||||
@ -903,13 +932,26 @@ compiler."
|
||||
prev=
|
||||
continue
|
||||
;;
|
||||
rpath)
|
||||
rpath="$rpath $arg"
|
||||
prev=
|
||||
continue
|
||||
;;
|
||||
xrpath)
|
||||
xrpath="$xrpath $arg"
|
||||
rpath | xrpath)
|
||||
# We need an absolute path.
|
||||
case "$arg" in
|
||||
[\\/]* | [A-Za-z]:[\\/]*) ;;
|
||||
*)
|
||||
$echo "$modename: only absolute run-paths are allowed" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
if test "$prev" = rpath; then
|
||||
case "$rpath " in
|
||||
*" $arg "*) ;;
|
||||
*) rpath="$rpath $arg" ;;
|
||||
esac
|
||||
else
|
||||
case "$xrpath " in
|
||||
*" $arg "*) ;;
|
||||
*) xrpath="$xrpath $arg" ;;
|
||||
esac
|
||||
fi
|
||||
prev=
|
||||
continue
|
||||
;;
|
||||
@ -928,7 +970,6 @@ compiler."
|
||||
if test -n "$link_static_flag"; then
|
||||
compile_command="$compile_command $link_static_flag"
|
||||
finalize_command="$finalize_command $link_static_flag"
|
||||
dlopen_self=$dlopen_self_static
|
||||
fi
|
||||
continue
|
||||
;;
|
||||
@ -955,22 +996,16 @@ compiler."
|
||||
;;
|
||||
|
||||
-export-dynamic)
|
||||
if test "$export_dynamic" != yes; then
|
||||
export_dynamic=yes
|
||||
if test -n "$export_dynamic_flag_spec"; then
|
||||
eval arg=\"$export_dynamic_flag_spec\"
|
||||
else
|
||||
arg=
|
||||
fi
|
||||
fi
|
||||
export_dynamic=yes
|
||||
continue
|
||||
;;
|
||||
|
||||
-export-symbols | -export-symbols-regex)
|
||||
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
|
||||
$echo "$modename: cannot have more than one -exported-symbols"
|
||||
$echo "$modename: not more than one -exported-symbols argument allowed"
|
||||
exit 1
|
||||
fi
|
||||
if test "$arg" = "-export-symbols"; then
|
||||
if test "X$arg" = "X-export-symbols"; then
|
||||
prev=expsyms
|
||||
else
|
||||
prev=expsyms_regex
|
||||
@ -979,14 +1014,17 @@ compiler."
|
||||
;;
|
||||
|
||||
-L*)
|
||||
dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
|
||||
dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
|
||||
# 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]:[\\/]*) ;;
|
||||
*)
|
||||
$echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
|
||||
exit 1
|
||||
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
|
||||
case " $deplibs " in
|
||||
@ -1010,20 +1048,29 @@ compiler."
|
||||
;;
|
||||
|
||||
-l*)
|
||||
if test "$arg" = "-lc"; then
|
||||
case "$host" in
|
||||
*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
|
||||
# These systems don't actually have c library (as such)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
elif test "$arg" = "-lm"; then
|
||||
case "$host" in
|
||||
*-*-cygwin* | *-*-beos*)
|
||||
# These systems don't actually have math library (as such)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
deplibs="$deplibs $arg"
|
||||
;;
|
||||
|
||||
-module)
|
||||
if test "$module" != yes; then
|
||||
module=yes
|
||||
if test -n "$export_dynamic_flag_spec"; then
|
||||
eval arg=\"$export_dynamic_flag_spec\"
|
||||
else
|
||||
arg=
|
||||
fi
|
||||
fi
|
||||
module=yes
|
||||
continue
|
||||
;;
|
||||
|
||||
|
||||
-no-undefined)
|
||||
allow_undefined=no
|
||||
continue
|
||||
@ -1047,7 +1094,19 @@ compiler."
|
||||
;;
|
||||
|
||||
-R*)
|
||||
xrpath="$xrpath "`$echo "X$arg" | $Xsed -e 's/^-R//'`
|
||||
dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
|
||||
# We need an absolute path.
|
||||
case "$dir" in
|
||||
[\\/]* | [A-Za-z]:[\\/]*) ;;
|
||||
*)
|
||||
$echo "$modename: only absolute run-paths are allowed" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
case "$xrpath " in
|
||||
*" $dir "*) ;;
|
||||
*) xrpath="$xrpath $dir" ;;
|
||||
esac
|
||||
continue
|
||||
;;
|
||||
|
||||
@ -1056,7 +1115,6 @@ compiler."
|
||||
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"
|
||||
dlopen_self=$dlopen_self_static
|
||||
fi
|
||||
continue
|
||||
;;
|
||||
@ -1128,6 +1186,7 @@ compiler."
|
||||
# it will not redefine variable installed.
|
||||
installed=yes
|
||||
|
||||
# Read the .la file
|
||||
# If there is no directory component, then add one.
|
||||
case "$arg" in
|
||||
*/* | *\\*) . $arg ;;
|
||||
@ -1218,7 +1277,8 @@ compiler."
|
||||
prev=
|
||||
fi
|
||||
|
||||
if test "$build_libtool_libs" = yes && test -n "$library_names"; then
|
||||
if test -n "$library_names" &&
|
||||
{ test "$prefer_static_libs" = no || test -z "$old_library"; }; then
|
||||
link_against_libtool_libs="$link_against_libtool_libs $arg"
|
||||
if test -n "$shlibpath_var"; then
|
||||
# Make sure the rpath contains only unique directories.
|
||||
@ -1230,11 +1290,11 @@ compiler."
|
||||
|
||||
# We need an absolute path.
|
||||
case "$dir" in
|
||||
/* | [A-Za-z]:[/\\]*) absdir="$dir" ;;
|
||||
[\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
|
||||
*)
|
||||
absdir=`cd "$dir" && pwd`
|
||||
if test -z "$absdir"; then
|
||||
$echo "$modename: cannot determine absolute directory name of \`$libdir'" 1>&2
|
||||
$echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
@ -1244,24 +1304,24 @@ compiler."
|
||||
# Skip directories that are in the system default run-time
|
||||
# search path, unless they have been requested with -R.
|
||||
case " $sys_lib_dlsearch_path " in
|
||||
*" $absdir "*) ;;
|
||||
*" $absdir "*) ;;
|
||||
*)
|
||||
case "$compile_rpath " in
|
||||
*" $absdir "*) ;;
|
||||
*) compile_rpath="$compile_rpath $absdir"
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
case " $sys_lib_dlsearch_path " in
|
||||
*" $libdir "*) ;;
|
||||
*" $libdir "*) ;;
|
||||
*)
|
||||
case "$finalize_rpath " in
|
||||
*" $libdir "*) ;;
|
||||
*) finalize_rpath="$finalize_rpath $libdir"
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
lib_linked=yes
|
||||
case "$hardcode_action" in
|
||||
@ -1419,6 +1479,12 @@ compiler."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
|
||||
eval arg=\"$export_dynamic_flag_spec\"
|
||||
compile_command="$compile_command $arg"
|
||||
finalize_command="$finalize_command $arg"
|
||||
fi
|
||||
|
||||
oldlibs=
|
||||
# calculate the name of the file, without its directory
|
||||
outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
|
||||
@ -1441,7 +1507,7 @@ compiler."
|
||||
$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
|
||||
fi
|
||||
|
||||
if test -n "$dlfiles$dlprefiles"; then
|
||||
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
|
||||
$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
|
||||
fi
|
||||
|
||||
@ -1461,7 +1527,7 @@ compiler."
|
||||
$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
|
||||
fi
|
||||
|
||||
if test -n "$export_symbols"; then
|
||||
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
|
||||
$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
|
||||
fi
|
||||
|
||||
@ -1500,11 +1566,6 @@ compiler."
|
||||
output_objdir="$output_objdir/$objdir"
|
||||
fi
|
||||
|
||||
# All the library-specific variables (install_libdir is set above).
|
||||
library_names=
|
||||
old_library=
|
||||
dlname=
|
||||
|
||||
if test -n "$objs"; then
|
||||
$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
|
||||
exit 1
|
||||
@ -1516,7 +1577,7 @@ compiler."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -n "$dlfiles$dlprefiles"; then
|
||||
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
|
||||
$echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
|
||||
fi
|
||||
|
||||
@ -1699,7 +1760,7 @@ compiler."
|
||||
|
||||
dependency_libs="$deplibs"
|
||||
case "$host" in
|
||||
*-*-cygwin* | *-*-mingw* | *-*-os2*)
|
||||
*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
|
||||
# these systems don't actually have a c library (as such)!
|
||||
;;
|
||||
*)
|
||||
@ -1747,12 +1808,13 @@ compiler."
|
||||
droppeddeps=no
|
||||
case "$deplibs_check_method" in
|
||||
pass_all)
|
||||
# Don't check for shared/static. Everything works.
|
||||
# This might be a little naive. We might want to check
|
||||
# whether the library exists or not. But this is on
|
||||
# osf3 & osf4 and I'm not really sure... Just
|
||||
# implementing what was already the behaviour.
|
||||
newdeplibs=$deplibs
|
||||
;; # Don't check for shared/static. Everything works.
|
||||
# This might be a little naive. We might want to check
|
||||
# whether the library exists or not. But this is on
|
||||
# osf3 & osf4 and I'm not really sure... Just
|
||||
# implementing what was already the behaviour.
|
||||
;;
|
||||
test_compile)
|
||||
# This code stresses the "libraries are programs" paradigm to its
|
||||
# limits. Maybe even breaks it. We compile a program, linking it
|
||||
@ -1800,20 +1862,20 @@ EOF
|
||||
# Did it work?
|
||||
if test $? -eq 0 ; then
|
||||
ldd_output=`ldd conftest`
|
||||
libname=`eval \\$echo \"$libname_spec\"`
|
||||
deplib_matches=`eval \\$echo \"$library_names_spec\"`
|
||||
set dummy $deplib_matches
|
||||
deplib_match=$2
|
||||
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
|
||||
newdeplibs="$newdeplibs $i"
|
||||
else
|
||||
droppeddeps=yes
|
||||
echo
|
||||
echo "*** Warning: This library needs some functionality provided by $i."
|
||||
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."
|
||||
fi
|
||||
libname=`eval \\$echo \"$libname_spec\"`
|
||||
deplib_matches=`eval \\$echo \"$library_names_spec\"`
|
||||
set dummy $deplib_matches
|
||||
deplib_match=$2
|
||||
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
|
||||
newdeplibs="$newdeplibs $i"
|
||||
else
|
||||
droppeddeps=yes
|
||||
echo
|
||||
echo "*** Warning: This library needs some functionality provided by $i."
|
||||
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."
|
||||
fi
|
||||
else
|
||||
droppeddeps=yes
|
||||
echo
|
||||
@ -1827,7 +1889,6 @@ EOF
|
||||
fi
|
||||
done
|
||||
fi
|
||||
deplibs=$newdeplibs
|
||||
;;
|
||||
file_magic*)
|
||||
set dummy $deplibs_check_method
|
||||
@ -1854,11 +1915,11 @@ EOF
|
||||
while test -h "$potlib" 2>/dev/null; do
|
||||
potliblink=`ls -ld $potlib | sed 's/.* -> //'`
|
||||
case "$potliblink" in
|
||||
/*) potlib="$potliblink";;
|
||||
[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
|
||||
*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
|
||||
esac
|
||||
done
|
||||
if eval $file_magic_cmd \"\$potlib\" \
|
||||
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
|
||||
| sed 10q \
|
||||
| egrep "$file_magic_regex" > /dev/null; then
|
||||
newdeplibs="$newdeplibs $a_deplib"
|
||||
@ -1881,7 +1942,8 @@ EOF
|
||||
fi
|
||||
done # Gone through all deplibs.
|
||||
;;
|
||||
none | unknown | *) newdeplibs=""
|
||||
none | unknown | *)
|
||||
newdeplibs=""
|
||||
if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
|
||||
-e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
|
||||
grep . >/dev/null; then
|
||||
@ -1923,21 +1985,23 @@ EOF
|
||||
else
|
||||
build_libtool_libs=no
|
||||
fi
|
||||
dlname=
|
||||
library_names=
|
||||
else
|
||||
echo "*** The inter-library dependencies that have been dropped here will be"
|
||||
echo "*** automatically added whenever a program is linked with this library"
|
||||
echo "*** or is declared to -dlopen it."
|
||||
fi
|
||||
fi
|
||||
# Done checking deplibs!
|
||||
deplibs=$newdeplibs
|
||||
fi
|
||||
|
||||
# test again, we may have decided not to build it any more
|
||||
# All the library-specific variables (install_libdir is set above).
|
||||
library_names=
|
||||
old_library=
|
||||
dlname=
|
||||
|
||||
# Test again, we may have decided not to build it any more
|
||||
if test "$build_libtool_libs" = yes; then
|
||||
deplibs=$newdeplibs
|
||||
# Done checking deplibs!
|
||||
|
||||
# Get the real and link names of the library.
|
||||
eval library_names=\"$library_names_spec\"
|
||||
set dummy $library_names
|
||||
@ -1960,7 +2024,10 @@ EOF
|
||||
# (e.g. aix) incase we are running --disable-static
|
||||
for obj in $libobjs; do
|
||||
oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
|
||||
test -f $oldobj || ${LN_S} $obj $oldobj
|
||||
if test ! -f $oldobj; then
|
||||
$show "${LN_S} $obj $oldobj"
|
||||
$run ${LN_S} $obj $oldobj || exit $?
|
||||
fi
|
||||
done
|
||||
|
||||
# Use standard objects if they are pic
|
||||
@ -1971,11 +2038,25 @@ EOF
|
||||
eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
|
||||
fi
|
||||
else
|
||||
gentop="$output_objdir/${outputname}x"
|
||||
$show "${rm}r $gentop"
|
||||
$run ${rm}r "$gentop"
|
||||
$show "mkdir $gentop"
|
||||
$run mkdir "$gentop"
|
||||
status=$?
|
||||
if test $status -ne 0 && test ! -d "$gentop"; then
|
||||
exit $status
|
||||
fi
|
||||
generated="$generated $gentop"
|
||||
|
||||
for xlib in $convenience; do
|
||||
# Extract the objects.
|
||||
xdir="$xlib"x
|
||||
generated="$generated $xdir"
|
||||
case "$xlib" in
|
||||
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
|
||||
*) xabs=`pwd`"/$xlib" ;;
|
||||
esac
|
||||
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
|
||||
xdir="$gentop/$xlib"
|
||||
|
||||
$show "${rm}r $xdir"
|
||||
$run ${rm}r "$xdir"
|
||||
@ -1985,8 +2066,8 @@ EOF
|
||||
if test $status -ne 0 && test ! -d "$xdir"; then
|
||||
exit $status
|
||||
fi
|
||||
$show "(cd $xdir && $AR x ../$xlib)"
|
||||
$run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
|
||||
$show "(cd $xdir && $AR x $xabs)"
|
||||
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
|
||||
|
||||
libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
|
||||
done
|
||||
@ -1994,7 +2075,6 @@ EOF
|
||||
|
||||
if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
|
||||
eval flag=\"$thread_safe_flag_spec\"
|
||||
|
||||
linkopts="$linkopts $flag"
|
||||
fi
|
||||
|
||||
@ -2002,7 +2082,7 @@ EOF
|
||||
if test -z "$export_symbols"; then
|
||||
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
|
||||
$show "generating symbol list for \`$libname.la'"
|
||||
export_symbols="$objdir/$libname.exp"
|
||||
export_symbols="$output_objdir/$libname.exp"
|
||||
$run $rm $export_symbols
|
||||
eval cmds=\"$export_symbols_cmds\"
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
|
||||
@ -2065,7 +2145,7 @@ EOF
|
||||
$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
|
||||
fi
|
||||
|
||||
if test -n "$dlfiles$dlprefiles"; then
|
||||
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
|
||||
$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
|
||||
fi
|
||||
|
||||
@ -2167,11 +2247,6 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$dlself" = yes && test "$export_dynamic" = no; then
|
||||
$echo "$modename: error: \`-dlopen self' requires \`-export-dynamic'" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -n "$rpath$xrpath"; then
|
||||
# If the user specified any rpath flags, then add them.
|
||||
for libdir in $rpath $xrpath; do
|
||||
@ -2207,7 +2282,6 @@ EOF
|
||||
fi
|
||||
else
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
|
||||
rpath="$rpath $flag"
|
||||
fi
|
||||
elif test -n "$runpath_var"; then
|
||||
@ -2244,7 +2318,6 @@ EOF
|
||||
fi
|
||||
else
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
|
||||
rpath="$rpath $flag"
|
||||
fi
|
||||
elif test -n "$runpath_var"; then
|
||||
@ -2269,6 +2342,16 @@ EOF
|
||||
output_objdir="$output_objdir/$objdir"
|
||||
fi
|
||||
|
||||
# Create the binary in the object directory, then wrap it.
|
||||
if test ! -d $output_objdir; then
|
||||
$show "$mkdir $output_objdir"
|
||||
$run $mkdir $output_objdir
|
||||
status=$?
|
||||
if test $status -ne 0 && test ! -d $output_objdir; then
|
||||
exit $status
|
||||
fi
|
||||
fi
|
||||
|
||||
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`
|
||||
@ -2289,24 +2372,15 @@ EOF
|
||||
"") ;;
|
||||
*.c)
|
||||
# Discover the nlist of each of the dlfiles.
|
||||
nlist="$objdir/${output}.nm"
|
||||
nlist="$output_objdir/${outputname}.nm"
|
||||
|
||||
if test -d $objdir; then
|
||||
$show "$rm $nlist ${nlist}S ${nlist}T"
|
||||
$run $rm "$nlist" "${nlist}S" "${nlist}T"
|
||||
else
|
||||
$show "$mkdir $objdir"
|
||||
$run $mkdir $objdir
|
||||
status=$?
|
||||
if test $status -ne 0 && test ! -d $objdir; then
|
||||
exit $status
|
||||
fi
|
||||
fi
|
||||
$show "$rm $nlist ${nlist}S ${nlist}T"
|
||||
$run $rm "$nlist" "${nlist}S" "${nlist}T"
|
||||
|
||||
# Parse the name list into a source file.
|
||||
$show "creating $objdir/$dlsyms"
|
||||
$show "creating $output_objdir/$dlsyms"
|
||||
|
||||
$echo > "$objdir/$dlsyms" "\
|
||||
test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
|
||||
/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
|
||||
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
|
||||
|
||||
@ -2323,7 +2397,7 @@ extern \"C\" {
|
||||
if test "$dlself" = yes; then
|
||||
$show "generating symbol list for \`$output'"
|
||||
|
||||
echo ': @PROGRAM@ ' > "$nlist"
|
||||
test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
|
||||
|
||||
# Add our own program objects to the symbol list.
|
||||
progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
|
||||
@ -2344,13 +2418,12 @@ extern \"C\" {
|
||||
|
||||
# Prepare the list of exported symbols
|
||||
if test -z "$export_symbols"; then
|
||||
export_symbols="$objdir/$output.exp"
|
||||
export_symbols="$output_objdir/$output.exp"
|
||||
$run $rm $export_symbols
|
||||
$run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
|
||||
else
|
||||
$run $rm $export_symbols
|
||||
$run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$objdir/$output.exp"'
|
||||
$run eval 'grep -f "$objdir/$output.exp" < "$nlist" > "$nlist"T'
|
||||
$run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
|
||||
$run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
|
||||
$run eval 'mv "$nlist"T "$nlist"'
|
||||
fi
|
||||
fi
|
||||
@ -2426,7 +2499,7 @@ static const void *lt_preloaded_setup() {
|
||||
fi
|
||||
|
||||
pic_flag_for_symtable=
|
||||
case "$host" in
|
||||
case "$host" in
|
||||
# compiling the symbol table file with pic_flag works around
|
||||
# a FreeBSD bug that causes programs to crash when -lm is
|
||||
# linked before any other PIC object. But we must not use
|
||||
@ -2440,12 +2513,16 @@ static const void *lt_preloaded_setup() {
|
||||
esac
|
||||
|
||||
# Now compile the dynamic symbol file.
|
||||
$show "(cd $objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
|
||||
$run eval '(cd $objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
|
||||
$show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
|
||||
$run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
|
||||
|
||||
# Clean up the generated files.
|
||||
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
|
||||
$run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
|
||||
|
||||
# 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}%"`
|
||||
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
|
||||
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
|
||||
;;
|
||||
*)
|
||||
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
|
||||
@ -2470,7 +2547,15 @@ static const void *lt_preloaded_setup() {
|
||||
# We have no uninstalled library dependencies, so finalize right now.
|
||||
$show "$link_command"
|
||||
$run eval "$link_command"
|
||||
exit $?
|
||||
status=$?
|
||||
|
||||
# Delete the generated files.
|
||||
if test -n "$dlsyms"; then
|
||||
$show "$rm $output_objdir/${outputname}S.${objext}"
|
||||
$run $rm "$output_objdir/${outputname}S.${objext}"
|
||||
fi
|
||||
|
||||
exit $status
|
||||
fi
|
||||
|
||||
if test -n "$shlibpath_var"; then
|
||||
@ -2478,7 +2563,7 @@ static const void *lt_preloaded_setup() {
|
||||
rpath=
|
||||
for dir in $temp_rpath; do
|
||||
case "$dir" in
|
||||
/* | [A-Za-z]:[/\\]*)
|
||||
[\\/]* | [A-Za-z]:[\\/]*)
|
||||
# Absolute path.
|
||||
rpath="$rpath$dir:"
|
||||
;;
|
||||
@ -2524,7 +2609,6 @@ static const void *lt_preloaded_setup() {
|
||||
link_command="$compile_var$compile_command$compile_rpath"
|
||||
relink_command="$finalize_var$finalize_command$finalize_rpath"
|
||||
|
||||
# AGH! Flame the AIX and HP-UX people for me, will ya?
|
||||
$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
|
||||
$echo "$modename: \`$output' will be relinked during installation" 1>&2
|
||||
else
|
||||
@ -2545,17 +2629,7 @@ static const void *lt_preloaded_setup() {
|
||||
# Replace the output file specification.
|
||||
link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
|
||||
|
||||
# Create the binary in the object directory, then wrap it.
|
||||
if test ! -d $output_objdir; then
|
||||
$show "$mkdir $output_objdir"
|
||||
$run $mkdir $output_objdir
|
||||
status=$?
|
||||
if test $status -ne 0 && test ! -d $objdir; then
|
||||
exit $status
|
||||
fi
|
||||
fi
|
||||
|
||||
# Delete the old output file.
|
||||
# Delete the old output files.
|
||||
$run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
|
||||
|
||||
$show "$link_command"
|
||||
@ -2572,7 +2646,7 @@ static const void *lt_preloaded_setup() {
|
||||
# Quote $echo for shipping.
|
||||
if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
|
||||
case "$0" in
|
||||
/* | [A-Za-z]:[/\\]*) qecho="$SHELL $0 --fallback-echo";;
|
||||
[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
|
||||
*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
|
||||
esac
|
||||
qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
|
||||
@ -2649,7 +2723,7 @@ else
|
||||
# If there was a directory component, then change thisdir.
|
||||
if test \"x\$destdir\" != \"x\$file\"; then
|
||||
case \"\$destdir\" in
|
||||
/* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
|
||||
[\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
|
||||
*) thisdir=\"\$thisdir/\$destdir\" ;;
|
||||
esac
|
||||
fi
|
||||
@ -2787,31 +2861,58 @@ fi\
|
||||
addlibs="$old_convenience"
|
||||
fi
|
||||
|
||||
# Add in members from convenience archives.
|
||||
for xlib in $addlibs; do
|
||||
# Extract the objects.
|
||||
xdir="$xlib"x
|
||||
generated="$generated $xdir"
|
||||
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
|
||||
|
||||
$show "${rm}r $xdir"
|
||||
$run ${rm}r "$xdir"
|
||||
$show "mkdir $xdir"
|
||||
$run mkdir "$xdir"
|
||||
if test -n "$addlibs"; then
|
||||
gentop="$output_objdir/${outputname}x"
|
||||
$show "${rm}r $gentop"
|
||||
$run ${rm}r "$gentop"
|
||||
$show "mkdir $gentop"
|
||||
$run mkdir "$gentop"
|
||||
status=$?
|
||||
if test $status -ne 0 && test ! -d "$xdir"; then
|
||||
if test $status -ne 0 && test ! -d "$gentop"; then
|
||||
exit $status
|
||||
fi
|
||||
$show "(cd $xdir && $AR x ../$xlib)"
|
||||
$run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
|
||||
generated="$generated $gentop"
|
||||
|
||||
# Add in members from convenience archives.
|
||||
for xlib in $addlibs; do
|
||||
# Extract the objects.
|
||||
case "$xlib" in
|
||||
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
|
||||
*) xabs=`pwd`"/$xlib" ;;
|
||||
esac
|
||||
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
|
||||
xdir="$gentop/$xlib"
|
||||
|
||||
oldobjs="$oldobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
|
||||
done
|
||||
$show "${rm}r $xdir"
|
||||
$run ${rm}r "$xdir"
|
||||
$show "mkdir $xdir"
|
||||
$run mkdir "$xdir"
|
||||
status=$?
|
||||
if test $status -ne 0 && test ! -d "$xdir"; then
|
||||
exit $status
|
||||
fi
|
||||
$show "(cd $xdir && $AR x $xabs)"
|
||||
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
|
||||
|
||||
oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
|
||||
done
|
||||
fi
|
||||
|
||||
# Do each command in the archive commands.
|
||||
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
|
||||
eval cmds=\"$old_archive_from_new_cmds\"
|
||||
else
|
||||
# Ensure that we have .o objects in place incase we decided
|
||||
# not to build a shared library, and have fallen back to building
|
||||
# static libs even though --disable-static was passed!
|
||||
for oldobj in $oldobjs; do
|
||||
if test ! -f $oldobj; then
|
||||
obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
|
||||
$show "${LN_S} $obj $oldobj"
|
||||
$run ${LN_S} $obj $oldobj || exit $?
|
||||
fi
|
||||
done
|
||||
|
||||
eval cmds=\"$old_archive_cmds\"
|
||||
fi
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
|
||||
@ -2845,9 +2946,20 @@ fi\
|
||||
|
||||
# Only create the output if not a dry run.
|
||||
if test -z "$run"; then
|
||||
$echo > $output "\
|
||||
# $output - a libtool library file
|
||||
for installed in no yes; do
|
||||
if test "$installed" = yes; then
|
||||
if test -z "$install_libdir"; then
|
||||
break
|
||||
fi
|
||||
output="$output_objdir/$outputname"i
|
||||
fi
|
||||
$rm $output
|
||||
$echo > $output "\
|
||||
# $outputname - a libtool library file
|
||||
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
|
||||
#
|
||||
# Please DO NOT delete this file!
|
||||
# It is necessary for linking the library.
|
||||
|
||||
# The name that we can dlopen(3).
|
||||
dlname='$dlname'
|
||||
@ -2867,15 +2979,12 @@ age=$age
|
||||
revision=$revision
|
||||
|
||||
# Is this an already installed library?
|
||||
installed=no
|
||||
installed=$installed
|
||||
|
||||
# Directory that this library needs to be installed in:
|
||||
libdir='$install_libdir'\
|
||||
"
|
||||
|
||||
$rm "$output_objdir/$outputname"i
|
||||
sed 's/^installed=no$/installed=yes/' \
|
||||
< "$output" > "$output_objdir/$outputname"i || exit 1
|
||||
done
|
||||
fi
|
||||
|
||||
# Do a symbolic link so that the libtool archive can be found in
|
||||
@ -3012,7 +3121,7 @@ libdir='$install_libdir'\
|
||||
fi
|
||||
fi
|
||||
case "$destdir" in
|
||||
/* | [A-Za-z]:[/\\]*) ;;
|
||||
[\\/]* | [A-Za-z]:[\\/]*) ;;
|
||||
*)
|
||||
for file in $files; do
|
||||
case "$file" in
|
||||
@ -3123,12 +3232,6 @@ libdir='$install_libdir'\
|
||||
# Install the pseudo-library for information purposes.
|
||||
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
|
||||
instname="$dir/$name"i
|
||||
if test ! -f "$instname"; then
|
||||
# Just in case it was removed...
|
||||
$show "Creating $instname"
|
||||
$rm "$instname"
|
||||
sed 's/^installed=no$/installed=yes/' "$file" > "$instname"
|
||||
fi
|
||||
$show "$install_prog $instname $destdir/$name"
|
||||
$run eval "$install_prog $instname $destdir/$name" || exit $?
|
||||
|
||||
@ -3226,21 +3329,29 @@ libdir='$install_libdir'\
|
||||
|
||||
outputname=
|
||||
if test "$fast_install" = no && test -n "$relink_command"; then
|
||||
if test "$finalize" = yes; then
|
||||
outputname="/tmp/$$-$file"
|
||||
if test "$finalize" = yes && test -z "$run"; then
|
||||
tmpdir="/tmp"
|
||||
test -n "$TMPDIR" && tmpdir="$TMPDIR"
|
||||
tmpdir="$tmpdir/libtool-$$"
|
||||
if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
|
||||
else
|
||||
$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
|
||||
continue
|
||||
fi
|
||||
outputname="$tmpdir/$file"
|
||||
# Replace the output file specification.
|
||||
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
|
||||
|
||||
$echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
|
||||
$show "$relink_command"
|
||||
if $run eval "$relink_command"; then :
|
||||
else
|
||||
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
|
||||
${rm}r "$tmpdir"
|
||||
continue
|
||||
fi
|
||||
file="$outputname"
|
||||
else
|
||||
$echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
|
||||
$echo "$modename: warning: cannot relink \`$file'" 1>&2
|
||||
fi
|
||||
else
|
||||
# Install the binary that we compiled earlier.
|
||||
@ -3250,7 +3361,7 @@ libdir='$install_libdir'\
|
||||
|
||||
$show "$install_prog$stripme $file $destfile"
|
||||
$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
|
||||
test -n "$outputname" && $rm $outputname
|
||||
test -n "$outputname" && ${rm}r "$tmpdir"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@ -3718,6 +3829,8 @@ The following components of LINK-COMMAND are treated specially:
|
||||
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
|
||||
-export-symbols SYMFILE
|
||||
try to export only the symbols listed in SYMFILE
|
||||
-export-symbols-regex REGEX
|
||||
try to export only the symbols matching REGEX
|
||||
-LLIBDIR search LIBDIR for required installed libraries
|
||||
-lNAME OUTPUT-FILE requires the installed library libNAME
|
||||
-module build a library that can dlopened
|
||||
@ -3748,7 +3861,7 @@ is created, otherwise an executable program is created."
|
||||
;;
|
||||
|
||||
uninstall)
|
||||
$echo
|
||||
$echo \
|
||||
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
|
||||
|
||||
Remove libraries from an installation directory.
|
||||
|
||||
Reference in New Issue
Block a user