summaryrefslogtreecommitdiff
path: root/ltmain.sh
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-08 23:32:31 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-08 23:32:31 +0000
commit81cf37baf67d5ae1ff789a9e5202c0a26a82cf74 (patch)
treef0003a1d26ef1ee9ee657a00c8394b216eb56a7e /ltmain.sh
parent1b402317505ce7aa9db441f53d0fbb1f8fdf37a7 (diff)
downloadgcc-81cf37baf67d5ae1ff789a9e5202c0a26a82cf74.tar.gz
Various libtool updates from devo, including update to libtool 1.2b
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22947 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'ltmain.sh')
-rw-r--r--ltmain.sh540
1 files changed, 325 insertions, 215 deletions
diff --git a/ltmain.sh b/ltmain.sh
index 1893b011a6d..eee5763387b 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -23,6 +23,18 @@
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
# The name of this program.
progname=`$echo "$0" | sed 's%^.*/%%'`
modename="$progname"
@@ -30,7 +42,7 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION=1.2a
+VERSION=1.2b
default_mode=
help="Try \`$progname --help' for more information."
@@ -48,8 +60,13 @@ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
if test "$LTCONFIG_VERSION" != "$VERSION"; then
echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
@@ -72,6 +89,8 @@ run=
show="$echo"
show_help=
execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+los2o="s/\\.lo /.${objext} /g"
# Parse our command line options once, thoroughly.
while test $# -gt 0
@@ -190,7 +209,7 @@ if test -z "$show_help"; then
esac
done
;;
- *db | *dbx)
+ *db | *dbx | *strace | *truss)
mode=execute
;;
*install*|cp|mv)
@@ -248,7 +267,6 @@ if test -z "$show_help"; then
;;
-static)
- build_libtool_libs=no
build_old_libs=yes
continue
;;
@@ -303,7 +321,7 @@ if test -z "$show_help"; then
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
case "$libobj" in
- *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;;
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
*)
$echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
exit 1
@@ -325,6 +343,10 @@ if test -z "$show_help"; then
trap "$run $rm $libobj; exit 1" 1 2 15
fi
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+
# Only build a PIC object if we are building libtool libraries.
if test "$build_libtool_libs" = yes; then
# Without this assignment, base_compile gets emptied.
@@ -347,7 +369,7 @@ if test -z "$show_help"; then
# Just move the object, then go on to compile the next one
$show "$mv $obj $libobj"
- $run $mv $obj $libobj || exit 1
+ $run $mv $obj $libobj || exit $?
# Allow error messages only from the first compilation.
suppress_output=' >/dev/null 2>&1'
@@ -384,10 +406,13 @@ if test -z "$show_help"; then
compile_shlibpath=
finalize_shlibpath=
+ convenience=
+ old_convenience=
deplibs=
dlfiles=
dlprefiles=
export_dynamic=no
+ generated=
hardcode_libdirs=
libobjs=
link_against_libtool_libs=
@@ -420,8 +445,10 @@ if test -z "$show_help"; then
test -n "$old_archive_from_new_cmds" && build_old_libs=yes
# Go through the arguments, transforming them on the way.
- for arg
- do
+ while test $# -gt 0; do
+ arg="$1"
+ shift
+
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
case "$prev" in
@@ -505,7 +532,7 @@ if test -z "$show_help"; then
-L*)
dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
case "$dir" in
- /* | [A-Za-z]:\\*)
+ /* | [A-Za-z]:[/\\]*)
# Add the corresponding hardcode_libdir_flag, if it is not identical.
;;
*)
@@ -561,7 +588,7 @@ if test -z "$show_help"; then
esac
;;
- *.o | *.a)
+ *.o | *.obj | *.a | *.lib)
# A standard object.
objs="$objs $arg"
;;
@@ -581,7 +608,7 @@ if test -z "$show_help"; then
if test "$prev" = dlprefiles; then
# Preload the old-style object.
- dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/.o/'`
+ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
prev=
fi
libobjs="$libobjs $arg"
@@ -608,11 +635,6 @@ if test -z "$show_help"; then
*) . ./$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
@@ -633,6 +655,15 @@ if test -z "$show_help"; then
dir="$dir/$objdir"
fi
+ if test -z "$libdir"; then
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $dir/$old_library"l
+ old_convenience="$old_convenience $dir/$old_library"
+ compile_command="$compile_command $dir/$old_library"
+ finalize_command="$finalize_command $dir/$old_library"
+ continue
+ fi
+
# This library was specified with -dlopen.
if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg"
@@ -706,22 +737,30 @@ if test -z "$show_help"; then
fi
+ lib_linked=yes
case "$hardcode_action" in
- immediate)
+ immediate | unsupported)
if test "$hardcode_direct" = no; then
compile_command="$compile_command $dir/$linklib"
elif test "$hardcode_minus_L" = no; then
+ case "$host" in
+ *-*-sunos*)
+ compile_shlibpath="$compile_shlibpath$dir:"
+ ;;
+ esac
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"
+ else
+ lib_linked=no
fi
;;
relink)
# We need an absolute path.
case "$dir" in
- /* | [A-Za-z]:\\*) ;;
+ /* | [A-Za-z]:[/\\]*) ;;
*)
absdir=`cd "$dir" && pwd`
if test -z "$absdir"; then
@@ -739,10 +778,21 @@ if test -z "$show_help"; then
elif test "$hardcode_shlibpath_var" = yes; then
compile_shlibpath="$compile_shlibpath$dir:"
compile_command="$compile_command -l$name"
+ else
+ lib_linked=no
fi
;;
+
+ *)
+ lib_linked=no
+ ;;
esac
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit 1
+ fi
+
# Finalize command for both is simple: just hardcode it.
if test "$hardcode_direct" = yes; then
finalize_command="$finalize_command $libdir/$linklib"
@@ -807,14 +857,7 @@ if test -z "$show_help"; then
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=
+ oldlibs=
case "$output" in
"")
$echo "$modename: you must specify an output file" 1>&2
@@ -824,16 +867,39 @@ if test -z "$show_help"; then
*/* | *\\*)
$echo "$modename: output file \`$output' must have no directory components" 1>&2
+ $echo "$help" 1>&2
exit 1
;;
- *.a)
+ *.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
+
+ if test -n "$dlfiles$dlprefiles"; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
# Now set the variables for building old libraries.
build_libtool_libs=no
- build_old_libs=yes
- oldlib="$output"
- $show "$rm $oldlib"
- $run $rm $oldlib
+ oldlibs="$output"
;;
*.la)
@@ -841,7 +907,7 @@ if test -z "$show_help"; then
case "$output" in
lib*) ;;
*)
- $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
$echo "$help" 1>&2
exit 1
;;
@@ -854,9 +920,6 @@ if test -z "$show_help"; then
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
@@ -865,21 +928,12 @@ if test -z "$show_help"; then
# 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
+ $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 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
+ $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
fi
set dummy $rpath
@@ -888,22 +942,36 @@ if test -z "$show_help"; then
fi
install_libdir="$2"
- if test -n "$vinfo"; then
+ # Now set the variables for building old libraries.
+ oldlibs="$objdir/$libname.$libext"
+ if test -z "$rpath"; then
+ # Building a libtool convenience library.
+ oldlibs="$objdir/$libname.al $oldlibs"
+ build_libtool_libs=convenience
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
# Parse the version information argument.
IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
- set dummy $vinfo
+ set dummy $vinfo 0 0 0
IFS="$save_ifs"
- if test -n "$5"; then
+ if test -n "$8"; then
$echo "$modename: too many parameters to \`-version-info'" 1>&2
$echo "$help" 1>&2
exit 1
fi
- test -n "$2" && current="$2"
- test -n "$3" && revision="$3"
- test -n "$4" && age="$4"
+ current="$2"
+ revision="$3"
+ age="$4"
# Check that each of the things are valid numbers.
case "$current" in
@@ -940,20 +1008,20 @@ if test -z "$show_help"; then
fi
# Calculate the version variables.
- version_vars="version_type current age revision"
+ major=
+ versuffix=
+ verstring=
case "$version_type" in
none) ;;
linux)
- version_vars="$version_vars major versuffix"
major=.`expr $current - $age`
- versuffix=".$major.$age.$revision"
+ versuffix="$major.$age.$revision"
;;
osf)
- version_vars="$version_vars versuffix verstring"
- major=.`expr $current - $age`
- versuffix=."$current.$age.$revision"
+ major=`expr $current - $age`
+ versuffix=".$current.$age.$revision"
verstring="$current.$age.$revision"
# Add in all the interfaces that we are compatible with.
@@ -969,15 +1037,13 @@ if test -z "$show_help"; then
;;
sunos)
- version_vars="$version_vars major versuffix"
- major=."$current"
- versuffix=."$current.$revision"
+ major=".$current"
+ versuffix=".$current.$revision"
;;
windows)
# Like Linux, but with '-' rather than '.', since we only
# want one extension on Windows 95.
- version_vars="$version_vars major versuffix"
major=`expr $current - $age`
versuffix="-$major-$age-$revision"
;;
@@ -988,157 +1054,150 @@ if test -z "$show_help"; then
exit 1
;;
esac
- else
-
- # No version information.
- version_vars=
-
- case "$version_type" in
- none) ;;
- linux)
- version_vars="$version_vars versuffix major"
- major=
- versuffix=
- ;;
-
- osf)
- version_vars="$version_vars versuffix verstring"
- major=
- versuffix=
- verstring=":0.0"
- ;;
-
- sunos)
- version_vars="$version_vars major versuffix"
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
major=
versuffix=
- ;;
+ verstring="0.0"
+ case "$host" in
+ *-*-sunos*)
+ versuffix=".0.0"
+ ;;
+ esac
+ fi
- windows)
- # Like Linux, but with '-' rather than '.', and with a leading
- # '-', since we only want one extension on Windows 95.
- version_vars="$version_vars major versuffix"
- major=
- versuffix=
- ;;
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
- *)
- $echo "$modename: unknown library version type \`$version_type'" 1>&2
- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
- ;;
- esac
+ # Add libc to deplibs on all systems.
+ dependency_libs="$deplibs"
+ deplibs="$deplibs -lc"
fi
# Create the output directory, or remove our outputs if we need to.
if test -d $objdir; then
- $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
- $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
+ $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
+ $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
else
$show "$mkdir $objdir"
$run $mkdir $objdir
- status=$?
- if test $status -eq 0 || test -d $objdir; then :
- else
- exit $status
- fi
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
- build_libtool_libs=no
- build_old_libs=yes
+ status=$?
+ if test $status -ne 0 && test ! -d $objdir; then
+ exit $status
fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
fi
- # Add libc to deplibs on all systems.
- dependency_libs="$deplibs"
- deplibs="$deplibs -lc"
-
if test "$build_libtool_libs" = yes; then
- # Get the real and link names of the library.
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- realname="$2"
- shift; shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
+ # Get the real and link names of the library.
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
- lib="$objdir/$realname"
+ lib="$objdir/$realname"
for link
do
linknames="$linknames $link"
done
- # Use standard objects if they are PIC.
- test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
+ # Use standard objects if they are PIC.
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'`
- # Do each of the archive commands.
- eval cmds=\"$archive_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
+ # Transform .lo files to .o files.
+ test "$build_old_libs" = yes && oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
- # Create links to the real library.
- for linkname in $linknames; do
+ if test -n "$whole_archive_flag_spec"; then
+ if test -n "$convenience"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ fi
+ else
+ for xlib in $convenience; do
+ # Extract the objects.
+ xdir="$xlib"x
+ generated="$generated $xdir"
+ xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
+
+ $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 ../$xlib)"
+ $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
+
+ libobjs="$libobjs `echo $xdir/*`"
+ done
+ fi
+
+ # Do each of the archive commands.
+ eval cmds=\"$archive_cmds\"
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Create links to the real library.
+ for linkname in $linknames; do
if test "$realname" != "$linkname"; then
- $show "(cd $objdir && $LN_S $realname $linkname)"
- $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
- fi
- done
+ $show "(cd $objdir && $LN_S $realname $linkname)"
+ $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
- # If -export-dynamic was specified, set the dlname.
- if test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
+ # If -export-dynamic was specified, set the dlname.
+ if test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
fi
-
- # Now set the variables for building old libraries.
- oldlib="$objdir/$libname.a"
;;
- *.lo | *.o)
+ *.lo | *.o | *.obj)
if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
+ $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 while creating objects" 1>&2
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
fi
if test -n "$dlfiles$dlprefiles"; then
- $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 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@%%"`
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
fi
if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
fi
if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
fi
if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
fi
case "$output" in
@@ -1148,7 +1207,7 @@ if test -z "$show_help"; then
exit 1
fi
libobj="$output"
- obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'`
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
;;
*)
libobj=
@@ -1160,7 +1219,7 @@ if test -z "$show_help"; then
$run $rm $obj $libobj
# Create the old-style object.
- reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
+ reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
output="$obj"
eval cmds=\"$reload_cmds\"
@@ -1198,7 +1257,7 @@ if test -z "$show_help"; then
else
# Just create a symlink.
$show "$LN_S $obj $libobj"
- $run $LN_S $obj $libobj || exit 1
+ $run $LN_S $obj $libobj || exit $?
fi
exit 0
@@ -1206,11 +1265,11 @@ if test -z "$show_help"; then
*)
if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
fi
if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
fi
if test -n "$rpath"; then
@@ -1258,8 +1317,8 @@ if test -z "$show_help"; then
if test -n "$libobjs" && test "$build_old_libs" = yes; then
# Transform all the library objects into standard objects.
- compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
- finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
+ compile_command=`$echo "X$compile_command " | $Xsed -e "$los2o" -e 's/ $//'`
+ finalize_command=`$echo "X$finalize_command " | $Xsed -e "$los2o" -e 's/ $//'`
fi
if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
@@ -1270,7 +1329,7 @@ if test -z "$show_help"; then
if test -n "$dlsyms"; then
# Add our own program objects to the preloaded list.
- dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
+ dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e "$los2o" -e 's/ $//'`
# Discover the nlist of each of the dlfiles.
nlist="$objdir/${output}.nm"
@@ -1282,8 +1341,7 @@ if test -z "$show_help"; then
$show "$mkdir $objdir"
$run $mkdir $objdir
status=$?
- if test $status -eq 0 || test -d $objdir; then :
- else
+ if test $status -ne 0 && test ! -d $objdir; then
exit $status
fi
fi
@@ -1383,8 +1441,8 @@ dld_preloaded_symbols[] =
$run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
# Transform the symbol file into the correct name.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
+ 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}%"`
elif test "$export_dynamic" != yes; then
test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
else
@@ -1414,13 +1472,11 @@ dld_preloaded_symbols[] =
finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
# Create the binary in the object directory, then wrap it.
- if test -d $objdir; then :
- else
+ if test ! -d $objdir; then
$show "$mkdir $objdir"
$run $mkdir $objdir
status=$?
- if test $status -eq 0 || test -d $objdir; then :
- else
+ if test $status -ne 0 && test ! -d $objdir; then
exit $status
fi
fi
@@ -1430,7 +1486,7 @@ dld_preloaded_symbols[] =
rpath=
for dir in $temp_rpath; do
case "$dir" in
- /* | [A-Za-z]:\\*)
+ /* | [A-Za-z]:[/\\]*)
# Absolute path.
rpath="$rpath$dir:"
;;
@@ -1514,10 +1570,20 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
finalize_command=\"$finalize_command\"
else
# When we are sourced in execute mode, \$file and \$echo are already set.
- if test \"\$libtool_execute_magic\" = \"$magic\"; then :
- else
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
echo=\"$qecho\"
file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
fi\
"
$echo >> $output "\
@@ -1534,7 +1600,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
@@ -1594,9 +1660,37 @@ fi\
esac
# See if we need to build an old-fashioned archive.
- if test "$build_old_libs" = "yes"; then
- # Transform .lo files to .o files.
- oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
+ 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 "$xlib" | $Xsed -e 's%^.*/%%'`
+
+ $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 ../$xlib)"
+ $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
+
+ oldobjs="$oldobjs `echo $xdir/*`"
+ done
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
@@ -1611,14 +1705,18 @@ fi\
$run eval "$cmd" || exit $?
done
IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
fi
# Now create the libtool archive.
case "$output" in
*.la)
old_library=
- test "$build_old_libs" = yes && old_library="$libname.a"
-
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
$show "creating $output"
# Only create the output if not a dry run.
@@ -1652,7 +1750,7 @@ libdir='$install_libdir'\
# Do a symbolic link so that the libtool archive can be found in
# LD_LIBRARY_PATH before the program is installed.
$show "(cd $objdir && $LN_S ../$output $output)"
- $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1
+ $run eval "(cd $objdir && $LN_S ../$output $output)" || exit $?
;;
esac
exit 0
@@ -1664,7 +1762,7 @@ libdir='$install_libdir'\
# There may be an optional sh(1) argument at the beginning of
# install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL"; then
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = "/bin/sh"; then
# Aesthetically quote it.
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
@@ -1783,7 +1881,7 @@ libdir='$install_libdir'\
fi
fi
case "$destdir" in
- /* | [A-Za-z]:\\*) ;;
+ /* | [A-Za-z]:[/\\]*) ;;
*)
for file in $files; do
case "$file" in
@@ -1809,7 +1907,7 @@ libdir='$install_libdir'\
# Do each installation.
case "$file" in
- *.a)
+ *.a | *.lib)
# Do the static libraries later.
staticlibs="$staticlibs $file"
;;
@@ -1866,7 +1964,9 @@ libdir='$install_libdir'\
rmcmd="$rm"
for linkname
do
- rmcmd="$rmcmd $destdir/$linkname"
+ if test "X$linkname" != "X$realname"; then
+ rmcmd="$rmcmd $destdir/$linkname"
+ fi
done
$show "$rmcmd"
$run $rmcmd
@@ -1874,9 +1974,11 @@ libdir='$install_libdir'\
# ... and create new ones.
for linkname
do
- test "X$dlname" = "X$linkname" && dlname=
- $show "(cd $destdir && $LN_S $realname $linkname)"
- $run eval "(cd $destdir && $LN_S $realname $linkname)"
+ if test "X$linkname" != "X$realname"; then
+ test "X$dlname" = "X$linkname" && dlname=
+ $show "(cd $destdir && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $LN_S $realname $linkname)"
+ fi
done
fi
@@ -1921,9 +2023,9 @@ libdir='$install_libdir'\
# Deduce the name of the destination old-style object file.
case "$destfile" in
*.lo)
- staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/.o/'`
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
;;
- *.o)
+ *.o | *.obj)
staticdest="$destfile"
destfile=
;;
@@ -1943,7 +2045,7 @@ libdir='$install_libdir'\
# Install the old object if enabled.
if test "$build_old_libs" = yes; then
# Deduce the name of the old-style object file.
- staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/.o/'`
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
$show "$install_prog $staticobj $staticdest"
$run eval "$install_prog \$staticobj \$staticdest" || exit $?
@@ -1989,10 +2091,7 @@ libdir='$install_libdir'\
esac
fi
libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
- if test -z "$libdir"; then
- $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
- elif test -f "$libfile"; then :
- else
+ if test -n "$libdir" && test ! -f "$libfile"; then
$echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
finalize=no
fi
@@ -2142,8 +2241,7 @@ libdir='$install_libdir'\
# Handle -dlopen flags immediately.
for file in $execute_dlfiles; do
- if test -f "$file"; then :
- else
+ if test ! -f "$file"; then
$echo "$modename: \`$file' is not a file" 1>&2
$echo "$help" 1>&2
exit 1
@@ -2245,6 +2343,14 @@ libdir='$install_libdir'\
# Export the shlibpath_var.
eval "export $shlibpath_var"
+ # Restore saved enviroment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
+
# Now actually exec the command.
eval "exec \$cmd$args"
@@ -2333,7 +2439,7 @@ libdir='$install_libdir'\
*.lo)
if test "$build_old_libs" = yes; then
- oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/.o/'`
+ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
rmfiles="$rmfiles $dir/$oldobj"
fi
$show "$rm $rmfiles"
@@ -2399,6 +2505,10 @@ compile)
Compile a source file into a libtool library object.
+This mode accepts the following additional options:
+
+ -static always build a \`.o' file suitable for static linking
+
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
from the given SOURCEFILE.
@@ -2487,11 +2597,11 @@ object files.
If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
library objects (\`.lo' files) may be specified, and \`-rpath' is required.
-If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar'
-and \`ranlib'.
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on WIndows using \`lib'.
-If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is
-created, otherwise an executable program is created."
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
;;
uninstall)