📄 ltmain.sh
字号:
continue
;;
*)
eval "$prev=\"\$arg\""
prev=
continue
;;
esac
fi
prevarg="$arg"
case "$arg" in
-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
;;
-allow-undefined)
# FIXME: remove this flag sometime in the future.
$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
continue
;;
-dlopen)
prev=dlfiles
continue
;;
-dlpreopen)
prev=dlprefiles
continue
;;
-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
# Add the symbol object into the linking commands.
compile_command="$compile_command @SYMFILE@"
finalize_command="$finalize_command @SYMFILE@"
fi
;;
-L*)
dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
case "$dir" in
/* | [A-Za-z]:\\*)
# Add the corresponding hardcode_libdir_flag, if it is not identical.
;;
*)
$echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
exit 1
;;
esac
deplibs="$deplibs $arg"
;;
-l*) deplibs="$deplibs $arg" ;;
-no-undefined)
allow_undefined=no
continue
;;
-o) prev=output ;;
-release)
prev=release
continue
;;
-rpath)
prev=rpath
continue
;;
-static)
# 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
;;
-version-info)
prev=vinfo
continue
;;
# Some other compiler flag.
-* | +*)
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
;;
*.o | *.a)
# A standard object.
objs="$objs $arg"
;;
*.lo)
# A library object.
if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg"
if test "$build_libtool_libs" = yes; then
prev=
continue
else
# If libtool objects are unsupported, then we need to preload.
prev=dlprefiles
fi
fi
if test "$prev" = dlprefiles; then
# Preload the old-style object.
dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'`
prev=
fi
libobjs="$libobjs $arg"
;;
*.la)
# A libtool-controlled library.
dlname=
libdir=
library_names=
old_library=
# Check to see that this really is a libtool archive.
if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
else
$echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
exit 1
fi
# If there is no directory component, then add one.
case "$arg" in
*/* | *\\*) . $arg ;;
*) . ./$arg ;;
esac
if test -z "$libdir"; then
$echo "$modename: \`$arg' contains no -rpath information" 1>&2
exit 1
fi
# 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 \`$arg'" 1>&2
exit 1
fi
# Find the relevant object directory and library name.
name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
if test "X$dir" = "X$arg"; then
dir="$objdir"
else
dir="$dir/$objdir"
fi
# This library was specified with -dlopen.
if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg"
if test -z "$dlname"; then
# If there is no dlname, we need to preload.
prev=dlprefiles
else
# We should not create a dependency on this library, but we
# may need any libraries it requires.
compile_command="$compile_command$dependency_libs"
finalize_command="$finalize_command$dependency_libs"
prev=
continue
fi
fi
# The library was specified with -dlpreopen.
if test "$prev" = dlprefiles; then
# Prefer using a static library (so that no silly _DYNAMIC symbols
# are required to link).
if test -n "$old_library"; then
dlprefiles="$dlprefiles $dir/$old_library"
else
dlprefiles="$dlprefiles $dir/$linklib"
fi
prev=
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
# Make sure the rpath contains only unique directories.
case "$temp_rpath " in
*" $dir "*) ;;
*) temp_rpath="$temp_rpath $dir" ;;
esac
fi
# This is the magic to use -rpath.
if test -n "$hardcode_libdir_flag_spec"; then
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\"
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.
case "$perm_rpath " in
*" $libdir "*) ;;
*) perm_rpath="$perm_rpath $libdir" ;;
esac
fi
case "$hardcode_action" in
immediate)
if test "$hardcode_direct" = no; then
compile_command="$compile_command $dir/$linklib"
elif test "$hardcode_minus_L" = no; then
compile_command="$compile_command -L$dir -l$name"
elif test "$hardcode_shlibpath_var" = no; then
compile_shlibpath="$compile_shlibpath$dir:"
compile_command="$compile_command -l$name"
fi
;;
relink)
# 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
dir="$absdir"
;;
esac
if test "$hardcode_direct" = yes; then
compile_command="$compile_command $dir/$linklib"
elif test "$hardcode_minus_L" = yes; then
compile_command="$compile_command -L$dir -l$name"
elif test "$hardcode_shlibpath_var" = yes; then
compile_shlibpath="$compile_shlibpath$dir:"
compile_command="$compile_command -l$name"
fi
;;
*)
$echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2
exit 1
;;
esac
# Finalize command for both is simple: just hardcode it.
if test "$hardcode_direct" = yes; then
finalize_command="$finalize_command $libdir/$linklib"
elif test "$hardcode_minus_L" = yes; then
finalize_command="$finalize_command -L$libdir -l$name"
elif test "$hardcode_shlibpath_var" = yes; then
finalize_shlibpath="$finalize_shlibpath$libdir:"
finalize_command="$finalize_command -l$name"
else
# We cannot seem to hardcode it, guess we'll fake it.
finalize_command="$finalize_command -L$libdir -l$name"
fi
else
# 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
# Here we assume that one of hardcode_direct or hardcode_minus_L
# is not unsupported. This is valid on all known static and
# shared platforms.
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
# Add in any libraries that this one depends upon.
compile_command="$compile_command$dependency_libs"
finalize_command="$finalize_command$dependency_libs"
continue
;;
# Some other compiler argument.
*)
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
arg="\"$arg\""
;;
esac
;;
esac
# 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
if test -n "$prev"; then
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
if test -n "$vinfo" && test -n "$release"; then
$echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2
$echo "$help" 1>&2
exit 1
fi
oldlib=
oldobjs=
case "$output" in
"")
$echo "$modename: you must specify an output file" 1>&2
$echo "$help" 1>&2
exit 1
;;
*/* | *\\*)
$echo "$modename: output file \`$output' must have no directory components" 1>&2
exit 1
;;
*.a)
# Now set the variables for building old libraries.
build_libtool_libs=no
build_old_libs=yes
oldlib="$output"
$show "$rm $oldlib"
$run $rm $oldlib
;;
*.la)
# Make sure we only generate libraries of the form `libNAME.la'.
case "$output" in
lib*) ;;
*)
$echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
$echo "$help" 1>&2
exit 1
;;
esac
name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
eval libname=\"$libname_spec\"
# All the library-specific variables (install_libdir is set above).
library_names=
old_library=
dlname=
current=0
revision=0
age=0
if test -n "$objs"; then
$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
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: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
exit 1
fi
if test -n "$dlfiles$dlprefiles"; then
$echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
# 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 "$rpath"; then
$echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
$echo "$help" 1>&2
exit 1
fi
set dummy $rpath
if test $# -gt 2; then
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
fi
install_libdir="$2"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -