ltmain.sh revision 3eed67fa
13eed67faSmbalmer# ltmain.sh - Provide generalized library-building support services. 23eed67faSmbalmer# NOTE: Changing this file will not affect anything until you rerun configure. 33eed67faSmbalmer# 43eed67faSmbalmer# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 53eed67faSmbalmer# 2007, 2008 Free Software Foundation, Inc. 63eed67faSmbalmer# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 73eed67faSmbalmer# 83eed67faSmbalmer# This program is free software; you can redistribute it and/or modify 93eed67faSmbalmer# it under the terms of the GNU General Public License as published by 103eed67faSmbalmer# the Free Software Foundation; either version 2 of the License, or 113eed67faSmbalmer# (at your option) any later version. 123eed67faSmbalmer# 133eed67faSmbalmer# This program is distributed in the hope that it will be useful, but 143eed67faSmbalmer# WITHOUT ANY WARRANTY; without even the implied warranty of 153eed67faSmbalmer# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 163eed67faSmbalmer# General Public License for more details. 173eed67faSmbalmer# 183eed67faSmbalmer# You should have received a copy of the GNU General Public License 193eed67faSmbalmer# along with this program; if not, write to the Free Software 203eed67faSmbalmer# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 213eed67faSmbalmer# 223eed67faSmbalmer# As a special exception to the GNU General Public License, if you 233eed67faSmbalmer# distribute this file as part of a program that contains a 243eed67faSmbalmer# configuration script generated by Autoconf, you may include it under 253eed67faSmbalmer# the same distribution terms that you use for the rest of that program. 263eed67faSmbalmer 273eed67faSmbalmerbasename="s,^.*/,,g" 283eed67faSmbalmer 293eed67faSmbalmer# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 303eed67faSmbalmer# is ksh but when the shell is invoked as "sh" and the current value of 313eed67faSmbalmer# the _XPG environment variable is not equal to 1 (one), the special 323eed67faSmbalmer# positional parameter $0, within a function call, is the name of the 333eed67faSmbalmer# function. 343eed67faSmbalmerprogpath="$0" 353eed67faSmbalmer 363eed67faSmbalmer# The name of this program: 373eed67faSmbalmerprogname=`echo "$progpath" | $SED $basename` 383eed67faSmbalmermodename="$progname" 393eed67faSmbalmer 403eed67faSmbalmer# Global variables: 413eed67faSmbalmerEXIT_SUCCESS=0 423eed67faSmbalmerEXIT_FAILURE=1 433eed67faSmbalmer 443eed67faSmbalmerPROGRAM=ltmain.sh 453eed67faSmbalmerPACKAGE=libtool 463eed67faSmbalmerVERSION=1.5.26 473eed67faSmbalmerTIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" 483eed67faSmbalmer 493eed67faSmbalmer# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). 503eed67faSmbalmerif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 513eed67faSmbalmer emulate sh 523eed67faSmbalmer NULLCMD=: 533eed67faSmbalmer # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 543eed67faSmbalmer # is contrary to our usage. Disable this feature. 553eed67faSmbalmer alias -g '${1+"$@"}'='"$@"' 563eed67faSmbalmer setopt NO_GLOB_SUBST 573eed67faSmbalmerelse 583eed67faSmbalmer case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 593eed67faSmbalmerfi 603eed67faSmbalmerBIN_SH=xpg4; export BIN_SH # for Tru64 613eed67faSmbalmerDUALCASE=1; export DUALCASE # for MKS sh 623eed67faSmbalmer 633eed67faSmbalmer# Check that we have a working $echo. 643eed67faSmbalmerif test "X$1" = X--no-reexec; then 653eed67faSmbalmer # Discard the --no-reexec flag, and continue. 663eed67faSmbalmer shift 673eed67faSmbalmerelif test "X$1" = X--fallback-echo; then 683eed67faSmbalmer # Avoid inline document here, it may be left over 693eed67faSmbalmer : 703eed67faSmbalmerelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 713eed67faSmbalmer # Yippee, $echo works! 723eed67faSmbalmer : 733eed67faSmbalmerelse 743eed67faSmbalmer # Restart under the correct shell, and then maybe $echo will work. 753eed67faSmbalmer exec $SHELL "$progpath" --no-reexec ${1+"$@"} 763eed67faSmbalmerfi 773eed67faSmbalmer 783eed67faSmbalmerif test "X$1" = X--fallback-echo; then 793eed67faSmbalmer # used as fallback echo 803eed67faSmbalmer shift 813eed67faSmbalmer cat <<EOF 823eed67faSmbalmer$* 833eed67faSmbalmerEOF 843eed67faSmbalmer exit $EXIT_SUCCESS 853eed67faSmbalmerfi 863eed67faSmbalmer 873eed67faSmbalmerdefault_mode= 883eed67faSmbalmerhelp="Try \`$progname --help' for more information." 893eed67faSmbalmermagic="%%%MAGIC variable%%%" 903eed67faSmbalmermkdir="mkdir" 913eed67faSmbalmermv="mv -f" 923eed67faSmbalmerrm="rm -f" 933eed67faSmbalmer 943eed67faSmbalmer# Sed substitution that helps us do robust quoting. It backslashifies 953eed67faSmbalmer# metacharacters that are still active within double-quoted strings. 963eed67faSmbalmerXsed="${SED}"' -e 1s/^X//' 973eed67faSmbalmersed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 983eed67faSmbalmer# test EBCDIC or ASCII 993eed67faSmbalmercase `echo X|tr X '\101'` in 1003eed67faSmbalmer A) # ASCII based system 1013eed67faSmbalmer # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 1023eed67faSmbalmer SP2NL='tr \040 \012' 1033eed67faSmbalmer NL2SP='tr \015\012 \040\040' 1043eed67faSmbalmer ;; 1053eed67faSmbalmer *) # EBCDIC based system 1063eed67faSmbalmer SP2NL='tr \100 \n' 1073eed67faSmbalmer NL2SP='tr \r\n \100\100' 1083eed67faSmbalmer ;; 1093eed67faSmbalmeresac 1103eed67faSmbalmer 1113eed67faSmbalmer# NLS nuisances. 1123eed67faSmbalmer# Only set LANG and LC_ALL to C if already set. 1133eed67faSmbalmer# These must not be set unconditionally because not all systems understand 1143eed67faSmbalmer# e.g. LANG=C (notably SCO). 1153eed67faSmbalmer# We save the old values to restore during execute mode. 1163eed67faSmbalmerlt_env= 1173eed67faSmbalmerfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 1183eed67faSmbalmerdo 1193eed67faSmbalmer eval "if test \"\${$lt_var+set}\" = set; then 1203eed67faSmbalmer save_$lt_var=\$$lt_var 1213eed67faSmbalmer lt_env=\"$lt_var=\$$lt_var \$lt_env\" 1223eed67faSmbalmer $lt_var=C 1233eed67faSmbalmer export $lt_var 1243eed67faSmbalmer fi" 1253eed67faSmbalmerdone 1263eed67faSmbalmer 1273eed67faSmbalmerif test -n "$lt_env"; then 1283eed67faSmbalmer lt_env="env $lt_env" 1293eed67faSmbalmerfi 1303eed67faSmbalmer 1313eed67faSmbalmer# Make sure IFS has a sensible default 1323eed67faSmbalmerlt_nl=' 1333eed67faSmbalmer' 1343eed67faSmbalmerIFS=" $lt_nl" 1353eed67faSmbalmer 1363eed67faSmbalmerif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 1373eed67faSmbalmer $echo "$modename: not configured to build any kind of library" 1>&2 1383eed67faSmbalmer $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 1393eed67faSmbalmer exit $EXIT_FAILURE 1403eed67faSmbalmerfi 1413eed67faSmbalmer 1423eed67faSmbalmer# Global variables. 1433eed67faSmbalmermode=$default_mode 1443eed67faSmbalmernonopt= 1453eed67faSmbalmerprev= 1463eed67faSmbalmerprevopt= 1473eed67faSmbalmerrun= 1483eed67faSmbalmershow="$echo" 1493eed67faSmbalmershow_help= 1503eed67faSmbalmerexecute_dlfiles= 1513eed67faSmbalmerduplicate_deps=no 1523eed67faSmbalmerpreserve_args= 1533eed67faSmbalmerlo2o="s/\\.lo\$/.${objext}/" 1543eed67faSmbalmero2lo="s/\\.${objext}\$/.lo/" 1553eed67faSmbalmerextracted_archives= 1563eed67faSmbalmerextracted_serial=0 1573eed67faSmbalmer 1583eed67faSmbalmer##################################### 1593eed67faSmbalmer# Shell function definitions: 1603eed67faSmbalmer# This seems to be the best place for them 1613eed67faSmbalmer 1623eed67faSmbalmer# func_mktempdir [string] 1633eed67faSmbalmer# Make a temporary directory that won't clash with other running 1643eed67faSmbalmer# libtool processes, and avoids race conditions if possible. If 1653eed67faSmbalmer# given, STRING is the basename for that directory. 1663eed67faSmbalmerfunc_mktempdir () 1673eed67faSmbalmer{ 1683eed67faSmbalmer my_template="${TMPDIR-/tmp}/${1-$progname}" 1693eed67faSmbalmer 1703eed67faSmbalmer if test "$run" = ":"; then 1713eed67faSmbalmer # Return a directory name, but don't create it in dry-run mode 1723eed67faSmbalmer my_tmpdir="${my_template}-$$" 1733eed67faSmbalmer else 1743eed67faSmbalmer 1753eed67faSmbalmer # If mktemp works, use that first and foremost 1763eed67faSmbalmer my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 1773eed67faSmbalmer 1783eed67faSmbalmer if test ! -d "$my_tmpdir"; then 1793eed67faSmbalmer # Failing that, at least try and use $RANDOM to avoid a race 1803eed67faSmbalmer my_tmpdir="${my_template}-${RANDOM-0}$$" 1813eed67faSmbalmer 1823eed67faSmbalmer save_mktempdir_umask=`umask` 1833eed67faSmbalmer umask 0077 1843eed67faSmbalmer $mkdir "$my_tmpdir" 1853eed67faSmbalmer umask $save_mktempdir_umask 1863eed67faSmbalmer fi 1873eed67faSmbalmer 1883eed67faSmbalmer # If we're not in dry-run mode, bomb out on failure 1893eed67faSmbalmer test -d "$my_tmpdir" || { 1903eed67faSmbalmer $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 1913eed67faSmbalmer exit $EXIT_FAILURE 1923eed67faSmbalmer } 1933eed67faSmbalmer fi 1943eed67faSmbalmer 1953eed67faSmbalmer $echo "X$my_tmpdir" | $Xsed 1963eed67faSmbalmer} 1973eed67faSmbalmer 1983eed67faSmbalmer 1993eed67faSmbalmer# func_win32_libid arg 2003eed67faSmbalmer# return the library type of file 'arg' 2013eed67faSmbalmer# 2023eed67faSmbalmer# Need a lot of goo to handle *both* DLLs and import libs 2033eed67faSmbalmer# Has to be a shell function in order to 'eat' the argument 2043eed67faSmbalmer# that is supplied when $file_magic_command is called. 2053eed67faSmbalmerfunc_win32_libid () 2063eed67faSmbalmer{ 2073eed67faSmbalmer win32_libid_type="unknown" 2083eed67faSmbalmer win32_fileres=`file -L $1 2>/dev/null` 2093eed67faSmbalmer case $win32_fileres in 2103eed67faSmbalmer *ar\ archive\ import\ library*) # definitely import 2113eed67faSmbalmer win32_libid_type="x86 archive import" 2123eed67faSmbalmer ;; 2133eed67faSmbalmer *ar\ archive*) # could be an import, or static 2143eed67faSmbalmer if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 2153eed67faSmbalmer $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 2163eed67faSmbalmer win32_nmres=`eval $NM -f posix -A $1 | \ 2173eed67faSmbalmer $SED -n -e '1,100{ 2183eed67faSmbalmer / I /{ 2193eed67faSmbalmer s,.*,import, 2203eed67faSmbalmer p 2213eed67faSmbalmer q 2223eed67faSmbalmer } 2233eed67faSmbalmer }'` 2243eed67faSmbalmer case $win32_nmres in 2253eed67faSmbalmer import*) win32_libid_type="x86 archive import";; 2263eed67faSmbalmer *) win32_libid_type="x86 archive static";; 2273eed67faSmbalmer esac 2283eed67faSmbalmer fi 2293eed67faSmbalmer ;; 2303eed67faSmbalmer *DLL*) 2313eed67faSmbalmer win32_libid_type="x86 DLL" 2323eed67faSmbalmer ;; 2333eed67faSmbalmer *executable*) # but shell scripts are "executable" too... 2343eed67faSmbalmer case $win32_fileres in 2353eed67faSmbalmer *MS\ Windows\ PE\ Intel*) 2363eed67faSmbalmer win32_libid_type="x86 DLL" 2373eed67faSmbalmer ;; 2383eed67faSmbalmer esac 2393eed67faSmbalmer ;; 2403eed67faSmbalmer esac 2413eed67faSmbalmer $echo $win32_libid_type 2423eed67faSmbalmer} 2433eed67faSmbalmer 2443eed67faSmbalmer 2453eed67faSmbalmer# func_infer_tag arg 2463eed67faSmbalmer# Infer tagged configuration to use if any are available and 2473eed67faSmbalmer# if one wasn't chosen via the "--tag" command line option. 2483eed67faSmbalmer# Only attempt this if the compiler in the base compile 2493eed67faSmbalmer# command doesn't match the default compiler. 2503eed67faSmbalmer# arg is usually of the form 'gcc ...' 2513eed67faSmbalmerfunc_infer_tag () 2523eed67faSmbalmer{ 2533eed67faSmbalmer if test -n "$available_tags" && test -z "$tagname"; then 2543eed67faSmbalmer CC_quoted= 2553eed67faSmbalmer for arg in $CC; do 2563eed67faSmbalmer case $arg in 2573eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2583eed67faSmbalmer arg="\"$arg\"" 2593eed67faSmbalmer ;; 2603eed67faSmbalmer esac 2613eed67faSmbalmer CC_quoted="$CC_quoted $arg" 2623eed67faSmbalmer done 2633eed67faSmbalmer case $@ in 2643eed67faSmbalmer # Blanks in the command may have been stripped by the calling shell, 2653eed67faSmbalmer # but not from the CC environment variable when configure was run. 2663eed67faSmbalmer " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 2673eed67faSmbalmer # Blanks at the start of $base_compile will cause this to fail 2683eed67faSmbalmer # if we don't check for them as well. 2693eed67faSmbalmer *) 2703eed67faSmbalmer for z in $available_tags; do 2713eed67faSmbalmer if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 2723eed67faSmbalmer # Evaluate the configuration. 2733eed67faSmbalmer eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 2743eed67faSmbalmer CC_quoted= 2753eed67faSmbalmer for arg in $CC; do 2763eed67faSmbalmer # Double-quote args containing other shell metacharacters. 2773eed67faSmbalmer case $arg in 2783eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2793eed67faSmbalmer arg="\"$arg\"" 2803eed67faSmbalmer ;; 2813eed67faSmbalmer esac 2823eed67faSmbalmer CC_quoted="$CC_quoted $arg" 2833eed67faSmbalmer done 2843eed67faSmbalmer case "$@ " in 2853eed67faSmbalmer " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 2863eed67faSmbalmer # The compiler in the base compile command matches 2873eed67faSmbalmer # the one in the tagged configuration. 2883eed67faSmbalmer # Assume this is the tagged configuration we want. 2893eed67faSmbalmer tagname=$z 2903eed67faSmbalmer break 2913eed67faSmbalmer ;; 2923eed67faSmbalmer esac 2933eed67faSmbalmer fi 2943eed67faSmbalmer done 2953eed67faSmbalmer # If $tagname still isn't set, then no tagged configuration 2963eed67faSmbalmer # was found and let the user know that the "--tag" command 2973eed67faSmbalmer # line option must be used. 2983eed67faSmbalmer if test -z "$tagname"; then 2993eed67faSmbalmer $echo "$modename: unable to infer tagged configuration" 3003eed67faSmbalmer $echo "$modename: specify a tag with \`--tag'" 1>&2 3013eed67faSmbalmer exit $EXIT_FAILURE 3023eed67faSmbalmer# else 3033eed67faSmbalmer# $echo "$modename: using $tagname tagged configuration" 3043eed67faSmbalmer fi 3053eed67faSmbalmer ;; 3063eed67faSmbalmer esac 3073eed67faSmbalmer fi 3083eed67faSmbalmer} 3093eed67faSmbalmer 3103eed67faSmbalmer 3113eed67faSmbalmer# func_extract_an_archive dir oldlib 3123eed67faSmbalmerfunc_extract_an_archive () 3133eed67faSmbalmer{ 3143eed67faSmbalmer f_ex_an_ar_dir="$1"; shift 3153eed67faSmbalmer f_ex_an_ar_oldlib="$1" 3163eed67faSmbalmer 3173eed67faSmbalmer $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 3183eed67faSmbalmer $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 3193eed67faSmbalmer if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 3203eed67faSmbalmer : 3213eed67faSmbalmer else 3223eed67faSmbalmer $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 3233eed67faSmbalmer exit $EXIT_FAILURE 3243eed67faSmbalmer fi 3253eed67faSmbalmer} 3263eed67faSmbalmer 3273eed67faSmbalmer# func_extract_archives gentop oldlib ... 3283eed67faSmbalmerfunc_extract_archives () 3293eed67faSmbalmer{ 3303eed67faSmbalmer my_gentop="$1"; shift 3313eed67faSmbalmer my_oldlibs=${1+"$@"} 3323eed67faSmbalmer my_oldobjs="" 3333eed67faSmbalmer my_xlib="" 3343eed67faSmbalmer my_xabs="" 3353eed67faSmbalmer my_xdir="" 3363eed67faSmbalmer my_status="" 3373eed67faSmbalmer 3383eed67faSmbalmer $show "${rm}r $my_gentop" 3393eed67faSmbalmer $run ${rm}r "$my_gentop" 3403eed67faSmbalmer $show "$mkdir $my_gentop" 3413eed67faSmbalmer $run $mkdir "$my_gentop" 3423eed67faSmbalmer my_status=$? 3433eed67faSmbalmer if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 3443eed67faSmbalmer exit $my_status 3453eed67faSmbalmer fi 3463eed67faSmbalmer 3473eed67faSmbalmer for my_xlib in $my_oldlibs; do 3483eed67faSmbalmer # Extract the objects. 3493eed67faSmbalmer case $my_xlib in 3503eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 3513eed67faSmbalmer *) my_xabs=`pwd`"/$my_xlib" ;; 3523eed67faSmbalmer esac 3533eed67faSmbalmer my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 3543eed67faSmbalmer my_xlib_u=$my_xlib 3553eed67faSmbalmer while :; do 3563eed67faSmbalmer case " $extracted_archives " in 3573eed67faSmbalmer *" $my_xlib_u "*) 3583eed67faSmbalmer extracted_serial=`expr $extracted_serial + 1` 3593eed67faSmbalmer my_xlib_u=lt$extracted_serial-$my_xlib ;; 3603eed67faSmbalmer *) break ;; 3613eed67faSmbalmer esac 3623eed67faSmbalmer done 3633eed67faSmbalmer extracted_archives="$extracted_archives $my_xlib_u" 3643eed67faSmbalmer my_xdir="$my_gentop/$my_xlib_u" 3653eed67faSmbalmer 3663eed67faSmbalmer $show "${rm}r $my_xdir" 3673eed67faSmbalmer $run ${rm}r "$my_xdir" 3683eed67faSmbalmer $show "$mkdir $my_xdir" 3693eed67faSmbalmer $run $mkdir "$my_xdir" 3703eed67faSmbalmer exit_status=$? 3713eed67faSmbalmer if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 3723eed67faSmbalmer exit $exit_status 3733eed67faSmbalmer fi 3743eed67faSmbalmer case $host in 3753eed67faSmbalmer *-darwin*) 3763eed67faSmbalmer $show "Extracting $my_xabs" 3773eed67faSmbalmer # Do not bother doing anything if just a dry run 3783eed67faSmbalmer if test -z "$run"; then 3793eed67faSmbalmer darwin_orig_dir=`pwd` 3803eed67faSmbalmer cd $my_xdir || exit $? 3813eed67faSmbalmer darwin_archive=$my_xabs 3823eed67faSmbalmer darwin_curdir=`pwd` 3833eed67faSmbalmer darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 3843eed67faSmbalmer darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 3853eed67faSmbalmer if test -n "$darwin_arches"; then 3863eed67faSmbalmer darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 3873eed67faSmbalmer darwin_arch= 3883eed67faSmbalmer $show "$darwin_base_archive has multiple architectures $darwin_arches" 3893eed67faSmbalmer for darwin_arch in $darwin_arches ; do 3903eed67faSmbalmer mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 3913eed67faSmbalmer lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 3923eed67faSmbalmer cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 3933eed67faSmbalmer func_extract_an_archive "`pwd`" "${darwin_base_archive}" 3943eed67faSmbalmer cd "$darwin_curdir" 3953eed67faSmbalmer $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 3963eed67faSmbalmer done # $darwin_arches 3973eed67faSmbalmer ## Okay now we have a bunch of thin objects, gotta fatten them up :) 3983eed67faSmbalmer darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 3993eed67faSmbalmer darwin_file= 4003eed67faSmbalmer darwin_files= 4013eed67faSmbalmer for darwin_file in $darwin_filelist; do 4023eed67faSmbalmer darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 4033eed67faSmbalmer lipo -create -output "$darwin_file" $darwin_files 4043eed67faSmbalmer done # $darwin_filelist 4053eed67faSmbalmer ${rm}r unfat-$$ 4063eed67faSmbalmer cd "$darwin_orig_dir" 4073eed67faSmbalmer else 4083eed67faSmbalmer cd "$darwin_orig_dir" 4093eed67faSmbalmer func_extract_an_archive "$my_xdir" "$my_xabs" 4103eed67faSmbalmer fi # $darwin_arches 4113eed67faSmbalmer fi # $run 4123eed67faSmbalmer ;; 4133eed67faSmbalmer *) 4143eed67faSmbalmer func_extract_an_archive "$my_xdir" "$my_xabs" 4153eed67faSmbalmer ;; 4163eed67faSmbalmer esac 4173eed67faSmbalmer my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 4183eed67faSmbalmer done 4193eed67faSmbalmer func_extract_archives_result="$my_oldobjs" 4203eed67faSmbalmer} 4213eed67faSmbalmer# End of Shell function definitions 4223eed67faSmbalmer##################################### 4233eed67faSmbalmer 4243eed67faSmbalmer# Darwin sucks 4253eed67faSmbalmereval std_shrext=\"$shrext_cmds\" 4263eed67faSmbalmer 4273eed67faSmbalmerdisable_libs=no 4283eed67faSmbalmer 4293eed67faSmbalmer# Parse our command line options once, thoroughly. 4303eed67faSmbalmerwhile test "$#" -gt 0 4313eed67faSmbalmerdo 4323eed67faSmbalmer arg="$1" 4333eed67faSmbalmer shift 4343eed67faSmbalmer 4353eed67faSmbalmer case $arg in 4363eed67faSmbalmer -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 4373eed67faSmbalmer *) optarg= ;; 4383eed67faSmbalmer esac 4393eed67faSmbalmer 4403eed67faSmbalmer # If the previous option needs an argument, assign it. 4413eed67faSmbalmer if test -n "$prev"; then 4423eed67faSmbalmer case $prev in 4433eed67faSmbalmer execute_dlfiles) 4443eed67faSmbalmer execute_dlfiles="$execute_dlfiles $arg" 4453eed67faSmbalmer ;; 4463eed67faSmbalmer tag) 4473eed67faSmbalmer tagname="$arg" 4483eed67faSmbalmer preserve_args="${preserve_args}=$arg" 4493eed67faSmbalmer 4503eed67faSmbalmer # Check whether tagname contains only valid characters 4513eed67faSmbalmer case $tagname in 4523eed67faSmbalmer *[!-_A-Za-z0-9,/]*) 4533eed67faSmbalmer $echo "$progname: invalid tag name: $tagname" 1>&2 4543eed67faSmbalmer exit $EXIT_FAILURE 4553eed67faSmbalmer ;; 4563eed67faSmbalmer esac 4573eed67faSmbalmer 4583eed67faSmbalmer case $tagname in 4593eed67faSmbalmer CC) 4603eed67faSmbalmer # Don't test for the "default" C tag, as we know, it's there, but 4613eed67faSmbalmer # not specially marked. 4623eed67faSmbalmer ;; 4633eed67faSmbalmer *) 4643eed67faSmbalmer if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 4653eed67faSmbalmer taglist="$taglist $tagname" 4663eed67faSmbalmer # Evaluate the configuration. 4673eed67faSmbalmer eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 4683eed67faSmbalmer else 4693eed67faSmbalmer $echo "$progname: ignoring unknown tag $tagname" 1>&2 4703eed67faSmbalmer fi 4713eed67faSmbalmer ;; 4723eed67faSmbalmer esac 4733eed67faSmbalmer ;; 4743eed67faSmbalmer *) 4753eed67faSmbalmer eval "$prev=\$arg" 4763eed67faSmbalmer ;; 4773eed67faSmbalmer esac 4783eed67faSmbalmer 4793eed67faSmbalmer prev= 4803eed67faSmbalmer prevopt= 4813eed67faSmbalmer continue 4823eed67faSmbalmer fi 4833eed67faSmbalmer 4843eed67faSmbalmer # Have we seen a non-optional argument yet? 4853eed67faSmbalmer case $arg in 4863eed67faSmbalmer --help) 4873eed67faSmbalmer show_help=yes 4883eed67faSmbalmer ;; 4893eed67faSmbalmer 4903eed67faSmbalmer --version) 4913eed67faSmbalmer echo "\ 4923eed67faSmbalmer$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP 4933eed67faSmbalmer 4943eed67faSmbalmerCopyright (C) 2008 Free Software Foundation, Inc. 4953eed67faSmbalmerThis is free software; see the source for copying conditions. There is NO 4963eed67faSmbalmerwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 4973eed67faSmbalmer exit $? 4983eed67faSmbalmer ;; 4993eed67faSmbalmer 5003eed67faSmbalmer --config) 5013eed67faSmbalmer ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 5023eed67faSmbalmer # Now print the configurations for the tags. 5033eed67faSmbalmer for tagname in $taglist; do 5043eed67faSmbalmer ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 5053eed67faSmbalmer done 5063eed67faSmbalmer exit $? 5073eed67faSmbalmer ;; 5083eed67faSmbalmer 5093eed67faSmbalmer --debug) 5103eed67faSmbalmer $echo "$progname: enabling shell trace mode" 5113eed67faSmbalmer set -x 5123eed67faSmbalmer preserve_args="$preserve_args $arg" 5133eed67faSmbalmer ;; 5143eed67faSmbalmer 5153eed67faSmbalmer --dry-run | -n) 5163eed67faSmbalmer run=: 5173eed67faSmbalmer ;; 5183eed67faSmbalmer 5193eed67faSmbalmer --features) 5203eed67faSmbalmer $echo "host: $host" 5213eed67faSmbalmer if test "$build_libtool_libs" = yes; then 5223eed67faSmbalmer $echo "enable shared libraries" 5233eed67faSmbalmer else 5243eed67faSmbalmer $echo "disable shared libraries" 5253eed67faSmbalmer fi 5263eed67faSmbalmer if test "$build_old_libs" = yes; then 5273eed67faSmbalmer $echo "enable static libraries" 5283eed67faSmbalmer else 5293eed67faSmbalmer $echo "disable static libraries" 5303eed67faSmbalmer fi 5313eed67faSmbalmer exit $? 5323eed67faSmbalmer ;; 5333eed67faSmbalmer 5343eed67faSmbalmer --finish) mode="finish" ;; 5353eed67faSmbalmer 5363eed67faSmbalmer --mode) prevopt="--mode" prev=mode ;; 5373eed67faSmbalmer --mode=*) mode="$optarg" ;; 5383eed67faSmbalmer 5393eed67faSmbalmer --preserve-dup-deps) duplicate_deps="yes" ;; 5403eed67faSmbalmer 5413eed67faSmbalmer --quiet | --silent) 5423eed67faSmbalmer show=: 5433eed67faSmbalmer preserve_args="$preserve_args $arg" 5443eed67faSmbalmer ;; 5453eed67faSmbalmer 5463eed67faSmbalmer --tag) 5473eed67faSmbalmer prevopt="--tag" 5483eed67faSmbalmer prev=tag 5493eed67faSmbalmer preserve_args="$preserve_args --tag" 5503eed67faSmbalmer ;; 5513eed67faSmbalmer --tag=*) 5523eed67faSmbalmer set tag "$optarg" ${1+"$@"} 5533eed67faSmbalmer shift 5543eed67faSmbalmer prev=tag 5553eed67faSmbalmer preserve_args="$preserve_args --tag" 5563eed67faSmbalmer ;; 5573eed67faSmbalmer 5583eed67faSmbalmer -dlopen) 5593eed67faSmbalmer prevopt="-dlopen" 5603eed67faSmbalmer prev=execute_dlfiles 5613eed67faSmbalmer ;; 5623eed67faSmbalmer 5633eed67faSmbalmer -*) 5643eed67faSmbalmer $echo "$modename: unrecognized option \`$arg'" 1>&2 5653eed67faSmbalmer $echo "$help" 1>&2 5663eed67faSmbalmer exit $EXIT_FAILURE 5673eed67faSmbalmer ;; 5683eed67faSmbalmer 5693eed67faSmbalmer *) 5703eed67faSmbalmer nonopt="$arg" 5713eed67faSmbalmer break 5723eed67faSmbalmer ;; 5733eed67faSmbalmer esac 5743eed67faSmbalmerdone 5753eed67faSmbalmer 5763eed67faSmbalmerif test -n "$prevopt"; then 5773eed67faSmbalmer $echo "$modename: option \`$prevopt' requires an argument" 1>&2 5783eed67faSmbalmer $echo "$help" 1>&2 5793eed67faSmbalmer exit $EXIT_FAILURE 5803eed67faSmbalmerfi 5813eed67faSmbalmer 5823eed67faSmbalmercase $disable_libs in 5833eed67faSmbalmerno) 5843eed67faSmbalmer ;; 5853eed67faSmbalmershared) 5863eed67faSmbalmer build_libtool_libs=no 5873eed67faSmbalmer build_old_libs=yes 5883eed67faSmbalmer ;; 5893eed67faSmbalmerstatic) 5903eed67faSmbalmer build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 5913eed67faSmbalmer ;; 5923eed67faSmbalmeresac 5933eed67faSmbalmer 5943eed67faSmbalmer# If this variable is set in any of the actions, the command in it 5953eed67faSmbalmer# will be execed at the end. This prevents here-documents from being 5963eed67faSmbalmer# left over by shells. 5973eed67faSmbalmerexec_cmd= 5983eed67faSmbalmer 5993eed67faSmbalmerif test -z "$show_help"; then 6003eed67faSmbalmer 6013eed67faSmbalmer # Infer the operation mode. 6023eed67faSmbalmer if test -z "$mode"; then 6033eed67faSmbalmer $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 6043eed67faSmbalmer $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 6053eed67faSmbalmer case $nonopt in 6063eed67faSmbalmer *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 6073eed67faSmbalmer mode=link 6083eed67faSmbalmer for arg 6093eed67faSmbalmer do 6103eed67faSmbalmer case $arg in 6113eed67faSmbalmer -c) 6123eed67faSmbalmer mode=compile 6133eed67faSmbalmer break 6143eed67faSmbalmer ;; 6153eed67faSmbalmer esac 6163eed67faSmbalmer done 6173eed67faSmbalmer ;; 6183eed67faSmbalmer *db | *dbx | *strace | *truss) 6193eed67faSmbalmer mode=execute 6203eed67faSmbalmer ;; 6213eed67faSmbalmer *install*|cp|mv) 6223eed67faSmbalmer mode=install 6233eed67faSmbalmer ;; 6243eed67faSmbalmer *rm) 6253eed67faSmbalmer mode=uninstall 6263eed67faSmbalmer ;; 6273eed67faSmbalmer *) 6283eed67faSmbalmer # If we have no mode, but dlfiles were specified, then do execute mode. 6293eed67faSmbalmer test -n "$execute_dlfiles" && mode=execute 6303eed67faSmbalmer 6313eed67faSmbalmer # Just use the default operation mode. 6323eed67faSmbalmer if test -z "$mode"; then 6333eed67faSmbalmer if test -n "$nonopt"; then 6343eed67faSmbalmer $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 6353eed67faSmbalmer else 6363eed67faSmbalmer $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 6373eed67faSmbalmer fi 6383eed67faSmbalmer fi 6393eed67faSmbalmer ;; 6403eed67faSmbalmer esac 6413eed67faSmbalmer fi 6423eed67faSmbalmer 6433eed67faSmbalmer # Only execute mode is allowed to have -dlopen flags. 6443eed67faSmbalmer if test -n "$execute_dlfiles" && test "$mode" != execute; then 6453eed67faSmbalmer $echo "$modename: unrecognized option \`-dlopen'" 1>&2 6463eed67faSmbalmer $echo "$help" 1>&2 6473eed67faSmbalmer exit $EXIT_FAILURE 6483eed67faSmbalmer fi 6493eed67faSmbalmer 6503eed67faSmbalmer # Change the help message to a mode-specific one. 6513eed67faSmbalmer generic_help="$help" 6523eed67faSmbalmer help="Try \`$modename --help --mode=$mode' for more information." 6533eed67faSmbalmer 6543eed67faSmbalmer # These modes are in order of execution frequency so that they run quickly. 6553eed67faSmbalmer case $mode in 6563eed67faSmbalmer # libtool compile mode 6573eed67faSmbalmer compile) 6583eed67faSmbalmer modename="$modename: compile" 6593eed67faSmbalmer # Get the compilation command and the source file. 6603eed67faSmbalmer base_compile= 6613eed67faSmbalmer srcfile="$nonopt" # always keep a non-empty value in "srcfile" 6623eed67faSmbalmer suppress_opt=yes 6633eed67faSmbalmer suppress_output= 6643eed67faSmbalmer arg_mode=normal 6653eed67faSmbalmer libobj= 6663eed67faSmbalmer later= 6673eed67faSmbalmer 6683eed67faSmbalmer for arg 6693eed67faSmbalmer do 6703eed67faSmbalmer case $arg_mode in 6713eed67faSmbalmer arg ) 6723eed67faSmbalmer # do not "continue". Instead, add this to base_compile 6733eed67faSmbalmer lastarg="$arg" 6743eed67faSmbalmer arg_mode=normal 6753eed67faSmbalmer ;; 6763eed67faSmbalmer 6773eed67faSmbalmer target ) 6783eed67faSmbalmer libobj="$arg" 6793eed67faSmbalmer arg_mode=normal 6803eed67faSmbalmer continue 6813eed67faSmbalmer ;; 6823eed67faSmbalmer 6833eed67faSmbalmer normal ) 6843eed67faSmbalmer # Accept any command-line options. 6853eed67faSmbalmer case $arg in 6863eed67faSmbalmer -o) 6873eed67faSmbalmer if test -n "$libobj" ; then 6883eed67faSmbalmer $echo "$modename: you cannot specify \`-o' more than once" 1>&2 6893eed67faSmbalmer exit $EXIT_FAILURE 6903eed67faSmbalmer fi 6913eed67faSmbalmer arg_mode=target 6923eed67faSmbalmer continue 6933eed67faSmbalmer ;; 6943eed67faSmbalmer 6953eed67faSmbalmer -static | -prefer-pic | -prefer-non-pic) 6963eed67faSmbalmer later="$later $arg" 6973eed67faSmbalmer continue 6983eed67faSmbalmer ;; 6993eed67faSmbalmer 7003eed67faSmbalmer -no-suppress) 7013eed67faSmbalmer suppress_opt=no 7023eed67faSmbalmer continue 7033eed67faSmbalmer ;; 7043eed67faSmbalmer 7053eed67faSmbalmer -Xcompiler) 7063eed67faSmbalmer arg_mode=arg # the next one goes into the "base_compile" arg list 7073eed67faSmbalmer continue # The current "srcfile" will either be retained or 7083eed67faSmbalmer ;; # replaced later. I would guess that would be a bug. 7093eed67faSmbalmer 7103eed67faSmbalmer -Wc,*) 7113eed67faSmbalmer args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 7123eed67faSmbalmer lastarg= 7133eed67faSmbalmer save_ifs="$IFS"; IFS=',' 7143eed67faSmbalmer for arg in $args; do 7153eed67faSmbalmer IFS="$save_ifs" 7163eed67faSmbalmer 7173eed67faSmbalmer # Double-quote args containing other shell metacharacters. 7183eed67faSmbalmer # Many Bourne shells cannot handle close brackets correctly 7193eed67faSmbalmer # in scan sets, so we specify it separately. 7203eed67faSmbalmer case $arg in 7213eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 7223eed67faSmbalmer arg="\"$arg\"" 7233eed67faSmbalmer ;; 7243eed67faSmbalmer esac 7253eed67faSmbalmer lastarg="$lastarg $arg" 7263eed67faSmbalmer done 7273eed67faSmbalmer IFS="$save_ifs" 7283eed67faSmbalmer lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 7293eed67faSmbalmer 7303eed67faSmbalmer # Add the arguments to base_compile. 7313eed67faSmbalmer base_compile="$base_compile $lastarg" 7323eed67faSmbalmer continue 7333eed67faSmbalmer ;; 7343eed67faSmbalmer 7353eed67faSmbalmer * ) 7363eed67faSmbalmer # Accept the current argument as the source file. 7373eed67faSmbalmer # The previous "srcfile" becomes the current argument. 7383eed67faSmbalmer # 7393eed67faSmbalmer lastarg="$srcfile" 7403eed67faSmbalmer srcfile="$arg" 7413eed67faSmbalmer ;; 7423eed67faSmbalmer esac # case $arg 7433eed67faSmbalmer ;; 7443eed67faSmbalmer esac # case $arg_mode 7453eed67faSmbalmer 7463eed67faSmbalmer # Aesthetically quote the previous argument. 7473eed67faSmbalmer lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 7483eed67faSmbalmer 7493eed67faSmbalmer case $lastarg in 7503eed67faSmbalmer # Double-quote args containing other shell metacharacters. 7513eed67faSmbalmer # Many Bourne shells cannot handle close brackets correctly 7523eed67faSmbalmer # in scan sets, and some SunOS ksh mistreat backslash-escaping 7533eed67faSmbalmer # in scan sets (worked around with variable expansion), 7543eed67faSmbalmer # and furthermore cannot handle '|' '&' '(' ')' in scan sets 7553eed67faSmbalmer # at all, so we specify them separately. 7563eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 7573eed67faSmbalmer lastarg="\"$lastarg\"" 7583eed67faSmbalmer ;; 7593eed67faSmbalmer esac 7603eed67faSmbalmer 7613eed67faSmbalmer base_compile="$base_compile $lastarg" 7623eed67faSmbalmer done # for arg 7633eed67faSmbalmer 7643eed67faSmbalmer case $arg_mode in 7653eed67faSmbalmer arg) 7663eed67faSmbalmer $echo "$modename: you must specify an argument for -Xcompile" 7673eed67faSmbalmer exit $EXIT_FAILURE 7683eed67faSmbalmer ;; 7693eed67faSmbalmer target) 7703eed67faSmbalmer $echo "$modename: you must specify a target with \`-o'" 1>&2 7713eed67faSmbalmer exit $EXIT_FAILURE 7723eed67faSmbalmer ;; 7733eed67faSmbalmer *) 7743eed67faSmbalmer # Get the name of the library object. 7753eed67faSmbalmer [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 7763eed67faSmbalmer ;; 7773eed67faSmbalmer esac 7783eed67faSmbalmer 7793eed67faSmbalmer # Recognize several different file suffixes. 7803eed67faSmbalmer # If the user specifies -o file.o, it is replaced with file.lo 7813eed67faSmbalmer xform='[cCFSifmso]' 7823eed67faSmbalmer case $libobj in 7833eed67faSmbalmer *.ada) xform=ada ;; 7843eed67faSmbalmer *.adb) xform=adb ;; 7853eed67faSmbalmer *.ads) xform=ads ;; 7863eed67faSmbalmer *.asm) xform=asm ;; 7873eed67faSmbalmer *.c++) xform=c++ ;; 7883eed67faSmbalmer *.cc) xform=cc ;; 7893eed67faSmbalmer *.ii) xform=ii ;; 7903eed67faSmbalmer *.class) xform=class ;; 7913eed67faSmbalmer *.cpp) xform=cpp ;; 7923eed67faSmbalmer *.cxx) xform=cxx ;; 7933eed67faSmbalmer *.[fF][09]?) xform=[fF][09]. ;; 7943eed67faSmbalmer *.for) xform=for ;; 7953eed67faSmbalmer *.java) xform=java ;; 7963eed67faSmbalmer *.obj) xform=obj ;; 7973eed67faSmbalmer *.sx) xform=sx ;; 7983eed67faSmbalmer esac 7993eed67faSmbalmer 8003eed67faSmbalmer libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 8013eed67faSmbalmer 8023eed67faSmbalmer case $libobj in 8033eed67faSmbalmer *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 8043eed67faSmbalmer *) 8053eed67faSmbalmer $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 8063eed67faSmbalmer exit $EXIT_FAILURE 8073eed67faSmbalmer ;; 8083eed67faSmbalmer esac 8093eed67faSmbalmer 8103eed67faSmbalmer func_infer_tag $base_compile 8113eed67faSmbalmer 8123eed67faSmbalmer for arg in $later; do 8133eed67faSmbalmer case $arg in 8143eed67faSmbalmer -static) 8153eed67faSmbalmer build_old_libs=yes 8163eed67faSmbalmer continue 8173eed67faSmbalmer ;; 8183eed67faSmbalmer 8193eed67faSmbalmer -prefer-pic) 8203eed67faSmbalmer pic_mode=yes 8213eed67faSmbalmer continue 8223eed67faSmbalmer ;; 8233eed67faSmbalmer 8243eed67faSmbalmer -prefer-non-pic) 8253eed67faSmbalmer pic_mode=no 8263eed67faSmbalmer continue 8273eed67faSmbalmer ;; 8283eed67faSmbalmer esac 8293eed67faSmbalmer done 8303eed67faSmbalmer 8313eed67faSmbalmer qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 8323eed67faSmbalmer case $qlibobj in 8333eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 8343eed67faSmbalmer qlibobj="\"$qlibobj\"" ;; 8353eed67faSmbalmer esac 8363eed67faSmbalmer test "X$libobj" != "X$qlibobj" \ 8373eed67faSmbalmer && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 8383eed67faSmbalmer && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 8393eed67faSmbalmer objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 8403eed67faSmbalmer xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 8413eed67faSmbalmer if test "X$xdir" = "X$obj"; then 8423eed67faSmbalmer xdir= 8433eed67faSmbalmer else 8443eed67faSmbalmer xdir=$xdir/ 8453eed67faSmbalmer fi 8463eed67faSmbalmer lobj=${xdir}$objdir/$objname 8473eed67faSmbalmer 8483eed67faSmbalmer if test -z "$base_compile"; then 8493eed67faSmbalmer $echo "$modename: you must specify a compilation command" 1>&2 8503eed67faSmbalmer $echo "$help" 1>&2 8513eed67faSmbalmer exit $EXIT_FAILURE 8523eed67faSmbalmer fi 8533eed67faSmbalmer 8543eed67faSmbalmer # Delete any leftover library objects. 8553eed67faSmbalmer if test "$build_old_libs" = yes; then 8563eed67faSmbalmer removelist="$obj $lobj $libobj ${libobj}T" 8573eed67faSmbalmer else 8583eed67faSmbalmer removelist="$lobj $libobj ${libobj}T" 8593eed67faSmbalmer fi 8603eed67faSmbalmer 8613eed67faSmbalmer $run $rm $removelist 8623eed67faSmbalmer trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 8633eed67faSmbalmer 8643eed67faSmbalmer # On Cygwin there's no "real" PIC flag so we must build both object types 8653eed67faSmbalmer case $host_os in 8663eed67faSmbalmer cygwin* | mingw* | pw32* | os2*) 8673eed67faSmbalmer pic_mode=default 8683eed67faSmbalmer ;; 8693eed67faSmbalmer esac 8703eed67faSmbalmer if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 8713eed67faSmbalmer # non-PIC code in shared libraries is not supported 8723eed67faSmbalmer pic_mode=default 8733eed67faSmbalmer fi 8743eed67faSmbalmer 8753eed67faSmbalmer # Calculate the filename of the output object if compiler does 8763eed67faSmbalmer # not support -o with -c 8773eed67faSmbalmer if test "$compiler_c_o" = no; then 8783eed67faSmbalmer output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 8793eed67faSmbalmer lockfile="$output_obj.lock" 8803eed67faSmbalmer removelist="$removelist $output_obj $lockfile" 8813eed67faSmbalmer trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 8823eed67faSmbalmer else 8833eed67faSmbalmer output_obj= 8843eed67faSmbalmer need_locks=no 8853eed67faSmbalmer lockfile= 8863eed67faSmbalmer fi 8873eed67faSmbalmer 8883eed67faSmbalmer # Lock this critical section if it is needed 8893eed67faSmbalmer # We use this script file to make the link, it avoids creating a new file 8903eed67faSmbalmer if test "$need_locks" = yes; then 8913eed67faSmbalmer until $run ln "$progpath" "$lockfile" 2>/dev/null; do 8923eed67faSmbalmer $show "Waiting for $lockfile to be removed" 8933eed67faSmbalmer sleep 2 8943eed67faSmbalmer done 8953eed67faSmbalmer elif test "$need_locks" = warn; then 8963eed67faSmbalmer if test -f "$lockfile"; then 8973eed67faSmbalmer $echo "\ 8983eed67faSmbalmer*** ERROR, $lockfile exists and contains: 8993eed67faSmbalmer`cat $lockfile 2>/dev/null` 9003eed67faSmbalmer 9013eed67faSmbalmerThis indicates that another process is trying to use the same 9023eed67faSmbalmertemporary object file, and libtool could not work around it because 9033eed67faSmbalmeryour compiler does not support \`-c' and \`-o' together. If you 9043eed67faSmbalmerrepeat this compilation, it may succeed, by chance, but you had better 9053eed67faSmbalmeravoid parallel builds (make -j) in this platform, or get a better 9063eed67faSmbalmercompiler." 9073eed67faSmbalmer 9083eed67faSmbalmer $run $rm $removelist 9093eed67faSmbalmer exit $EXIT_FAILURE 9103eed67faSmbalmer fi 9113eed67faSmbalmer $echo "$srcfile" > "$lockfile" 9123eed67faSmbalmer fi 9133eed67faSmbalmer 9143eed67faSmbalmer if test -n "$fix_srcfile_path"; then 9153eed67faSmbalmer eval srcfile=\"$fix_srcfile_path\" 9163eed67faSmbalmer fi 9173eed67faSmbalmer qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 9183eed67faSmbalmer case $qsrcfile in 9193eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 9203eed67faSmbalmer qsrcfile="\"$qsrcfile\"" ;; 9213eed67faSmbalmer esac 9223eed67faSmbalmer 9233eed67faSmbalmer $run $rm "$libobj" "${libobj}T" 9243eed67faSmbalmer 9253eed67faSmbalmer # Create a libtool object file (analogous to a ".la" file), 9263eed67faSmbalmer # but don't create it if we're doing a dry run. 9273eed67faSmbalmer test -z "$run" && cat > ${libobj}T <<EOF 9283eed67faSmbalmer# $libobj - a libtool object file 9293eed67faSmbalmer# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 9303eed67faSmbalmer# 9313eed67faSmbalmer# Please DO NOT delete this file! 9323eed67faSmbalmer# It is necessary for linking the library. 9333eed67faSmbalmer 9343eed67faSmbalmer# Name of the PIC object. 9353eed67faSmbalmerEOF 9363eed67faSmbalmer 9373eed67faSmbalmer # Only build a PIC object if we are building libtool libraries. 9383eed67faSmbalmer if test "$build_libtool_libs" = yes; then 9393eed67faSmbalmer # Without this assignment, base_compile gets emptied. 9403eed67faSmbalmer fbsd_hideous_sh_bug=$base_compile 9413eed67faSmbalmer 9423eed67faSmbalmer if test "$pic_mode" != no; then 9433eed67faSmbalmer command="$base_compile $qsrcfile $pic_flag" 9443eed67faSmbalmer else 9453eed67faSmbalmer # Don't build PIC code 9463eed67faSmbalmer command="$base_compile $qsrcfile" 9473eed67faSmbalmer fi 9483eed67faSmbalmer 9493eed67faSmbalmer if test ! -d "${xdir}$objdir"; then 9503eed67faSmbalmer $show "$mkdir ${xdir}$objdir" 9513eed67faSmbalmer $run $mkdir ${xdir}$objdir 9523eed67faSmbalmer exit_status=$? 9533eed67faSmbalmer if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 9543eed67faSmbalmer exit $exit_status 9553eed67faSmbalmer fi 9563eed67faSmbalmer fi 9573eed67faSmbalmer 9583eed67faSmbalmer if test -z "$output_obj"; then 9593eed67faSmbalmer # Place PIC objects in $objdir 9603eed67faSmbalmer command="$command -o $lobj" 9613eed67faSmbalmer fi 9623eed67faSmbalmer 9633eed67faSmbalmer $run $rm "$lobj" "$output_obj" 9643eed67faSmbalmer 9653eed67faSmbalmer $show "$command" 9663eed67faSmbalmer if $run eval $lt_env "$command"; then : 9673eed67faSmbalmer else 9683eed67faSmbalmer test -n "$output_obj" && $run $rm $removelist 9693eed67faSmbalmer exit $EXIT_FAILURE 9703eed67faSmbalmer fi 9713eed67faSmbalmer 9723eed67faSmbalmer if test "$need_locks" = warn && 9733eed67faSmbalmer test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 9743eed67faSmbalmer $echo "\ 9753eed67faSmbalmer*** ERROR, $lockfile contains: 9763eed67faSmbalmer`cat $lockfile 2>/dev/null` 9773eed67faSmbalmer 9783eed67faSmbalmerbut it should contain: 9793eed67faSmbalmer$srcfile 9803eed67faSmbalmer 9813eed67faSmbalmerThis indicates that another process is trying to use the same 9823eed67faSmbalmertemporary object file, and libtool could not work around it because 9833eed67faSmbalmeryour compiler does not support \`-c' and \`-o' together. If you 9843eed67faSmbalmerrepeat this compilation, it may succeed, by chance, but you had better 9853eed67faSmbalmeravoid parallel builds (make -j) in this platform, or get a better 9863eed67faSmbalmercompiler." 9873eed67faSmbalmer 9883eed67faSmbalmer $run $rm $removelist 9893eed67faSmbalmer exit $EXIT_FAILURE 9903eed67faSmbalmer fi 9913eed67faSmbalmer 9923eed67faSmbalmer # Just move the object if needed, then go on to compile the next one 9933eed67faSmbalmer if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 9943eed67faSmbalmer $show "$mv $output_obj $lobj" 9953eed67faSmbalmer if $run $mv $output_obj $lobj; then : 9963eed67faSmbalmer else 9973eed67faSmbalmer error=$? 9983eed67faSmbalmer $run $rm $removelist 9993eed67faSmbalmer exit $error 10003eed67faSmbalmer fi 10013eed67faSmbalmer fi 10023eed67faSmbalmer 10033eed67faSmbalmer # Append the name of the PIC object to the libtool object file. 10043eed67faSmbalmer test -z "$run" && cat >> ${libobj}T <<EOF 10053eed67faSmbalmerpic_object='$objdir/$objname' 10063eed67faSmbalmer 10073eed67faSmbalmerEOF 10083eed67faSmbalmer 10093eed67faSmbalmer # Allow error messages only from the first compilation. 10103eed67faSmbalmer if test "$suppress_opt" = yes; then 10113eed67faSmbalmer suppress_output=' >/dev/null 2>&1' 10123eed67faSmbalmer fi 10133eed67faSmbalmer else 10143eed67faSmbalmer # No PIC object so indicate it doesn't exist in the libtool 10153eed67faSmbalmer # object file. 10163eed67faSmbalmer test -z "$run" && cat >> ${libobj}T <<EOF 10173eed67faSmbalmerpic_object=none 10183eed67faSmbalmer 10193eed67faSmbalmerEOF 10203eed67faSmbalmer fi 10213eed67faSmbalmer 10223eed67faSmbalmer # Only build a position-dependent object if we build old libraries. 10233eed67faSmbalmer if test "$build_old_libs" = yes; then 10243eed67faSmbalmer if test "$pic_mode" != yes; then 10253eed67faSmbalmer # Don't build PIC code 10263eed67faSmbalmer command="$base_compile $qsrcfile" 10273eed67faSmbalmer else 10283eed67faSmbalmer command="$base_compile $qsrcfile $pic_flag" 10293eed67faSmbalmer fi 10303eed67faSmbalmer if test "$compiler_c_o" = yes; then 10313eed67faSmbalmer command="$command -o $obj" 10323eed67faSmbalmer fi 10333eed67faSmbalmer 10343eed67faSmbalmer # Suppress compiler output if we already did a PIC compilation. 10353eed67faSmbalmer command="$command$suppress_output" 10363eed67faSmbalmer $run $rm "$obj" "$output_obj" 10373eed67faSmbalmer $show "$command" 10383eed67faSmbalmer if $run eval $lt_env "$command"; then : 10393eed67faSmbalmer else 10403eed67faSmbalmer $run $rm $removelist 10413eed67faSmbalmer exit $EXIT_FAILURE 10423eed67faSmbalmer fi 10433eed67faSmbalmer 10443eed67faSmbalmer if test "$need_locks" = warn && 10453eed67faSmbalmer test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 10463eed67faSmbalmer $echo "\ 10473eed67faSmbalmer*** ERROR, $lockfile contains: 10483eed67faSmbalmer`cat $lockfile 2>/dev/null` 10493eed67faSmbalmer 10503eed67faSmbalmerbut it should contain: 10513eed67faSmbalmer$srcfile 10523eed67faSmbalmer 10533eed67faSmbalmerThis indicates that another process is trying to use the same 10543eed67faSmbalmertemporary object file, and libtool could not work around it because 10553eed67faSmbalmeryour compiler does not support \`-c' and \`-o' together. If you 10563eed67faSmbalmerrepeat this compilation, it may succeed, by chance, but you had better 10573eed67faSmbalmeravoid parallel builds (make -j) in this platform, or get a better 10583eed67faSmbalmercompiler." 10593eed67faSmbalmer 10603eed67faSmbalmer $run $rm $removelist 10613eed67faSmbalmer exit $EXIT_FAILURE 10623eed67faSmbalmer fi 10633eed67faSmbalmer 10643eed67faSmbalmer # Just move the object if needed 10653eed67faSmbalmer if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 10663eed67faSmbalmer $show "$mv $output_obj $obj" 10673eed67faSmbalmer if $run $mv $output_obj $obj; then : 10683eed67faSmbalmer else 10693eed67faSmbalmer error=$? 10703eed67faSmbalmer $run $rm $removelist 10713eed67faSmbalmer exit $error 10723eed67faSmbalmer fi 10733eed67faSmbalmer fi 10743eed67faSmbalmer 10753eed67faSmbalmer # Append the name of the non-PIC object the libtool object file. 10763eed67faSmbalmer # Only append if the libtool object file exists. 10773eed67faSmbalmer test -z "$run" && cat >> ${libobj}T <<EOF 10783eed67faSmbalmer# Name of the non-PIC object. 10793eed67faSmbalmernon_pic_object='$objname' 10803eed67faSmbalmer 10813eed67faSmbalmerEOF 10823eed67faSmbalmer else 10833eed67faSmbalmer # Append the name of the non-PIC object the libtool object file. 10843eed67faSmbalmer # Only append if the libtool object file exists. 10853eed67faSmbalmer test -z "$run" && cat >> ${libobj}T <<EOF 10863eed67faSmbalmer# Name of the non-PIC object. 10873eed67faSmbalmernon_pic_object=none 10883eed67faSmbalmer 10893eed67faSmbalmerEOF 10903eed67faSmbalmer fi 10913eed67faSmbalmer 10923eed67faSmbalmer $run $mv "${libobj}T" "${libobj}" 10933eed67faSmbalmer 10943eed67faSmbalmer # Unlock the critical section if it was locked 10953eed67faSmbalmer if test "$need_locks" != no; then 10963eed67faSmbalmer $run $rm "$lockfile" 10973eed67faSmbalmer fi 10983eed67faSmbalmer 10993eed67faSmbalmer exit $EXIT_SUCCESS 11003eed67faSmbalmer ;; 11013eed67faSmbalmer 11023eed67faSmbalmer # libtool link mode 11033eed67faSmbalmer link | relink) 11043eed67faSmbalmer modename="$modename: link" 11053eed67faSmbalmer case $host in 11063eed67faSmbalmer *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 11073eed67faSmbalmer # It is impossible to link a dll without this setting, and 11083eed67faSmbalmer # we shouldn't force the makefile maintainer to figure out 11093eed67faSmbalmer # which system we are compiling for in order to pass an extra 11103eed67faSmbalmer # flag for every libtool invocation. 11113eed67faSmbalmer # allow_undefined=no 11123eed67faSmbalmer 11133eed67faSmbalmer # FIXME: Unfortunately, there are problems with the above when trying 11143eed67faSmbalmer # to make a dll which has undefined symbols, in which case not 11153eed67faSmbalmer # even a static library is built. For now, we need to specify 11163eed67faSmbalmer # -no-undefined on the libtool link line when we can be certain 11173eed67faSmbalmer # that all symbols are satisfied, otherwise we get a static library. 11183eed67faSmbalmer allow_undefined=yes 11193eed67faSmbalmer ;; 11203eed67faSmbalmer *) 11213eed67faSmbalmer allow_undefined=yes 11223eed67faSmbalmer ;; 11233eed67faSmbalmer esac 11243eed67faSmbalmer libtool_args="$nonopt" 11253eed67faSmbalmer base_compile="$nonopt $@" 11263eed67faSmbalmer compile_command="$nonopt" 11273eed67faSmbalmer finalize_command="$nonopt" 11283eed67faSmbalmer 11293eed67faSmbalmer compile_rpath= 11303eed67faSmbalmer finalize_rpath= 11313eed67faSmbalmer compile_shlibpath= 11323eed67faSmbalmer finalize_shlibpath= 11333eed67faSmbalmer convenience= 11343eed67faSmbalmer old_convenience= 11353eed67faSmbalmer deplibs= 11363eed67faSmbalmer old_deplibs= 11373eed67faSmbalmer compiler_flags= 11383eed67faSmbalmer linker_flags= 11393eed67faSmbalmer dllsearchpath= 11403eed67faSmbalmer lib_search_path=`pwd` 11413eed67faSmbalmer inst_prefix_dir= 11423eed67faSmbalmer 11433eed67faSmbalmer avoid_version=no 11443eed67faSmbalmer dlfiles= 11453eed67faSmbalmer dlprefiles= 11463eed67faSmbalmer dlself=no 11473eed67faSmbalmer export_dynamic=no 11483eed67faSmbalmer export_symbols= 11493eed67faSmbalmer export_symbols_regex= 11503eed67faSmbalmer generated= 11513eed67faSmbalmer libobjs= 11523eed67faSmbalmer ltlibs= 11533eed67faSmbalmer module=no 11543eed67faSmbalmer no_install=no 11553eed67faSmbalmer objs= 11563eed67faSmbalmer non_pic_objects= 11573eed67faSmbalmer notinst_path= # paths that contain not-installed libtool libraries 11583eed67faSmbalmer precious_files_regex= 11593eed67faSmbalmer prefer_static_libs=no 11603eed67faSmbalmer preload=no 11613eed67faSmbalmer prev= 11623eed67faSmbalmer prevarg= 11633eed67faSmbalmer release= 11643eed67faSmbalmer rpath= 11653eed67faSmbalmer xrpath= 11663eed67faSmbalmer perm_rpath= 11673eed67faSmbalmer temp_rpath= 11683eed67faSmbalmer thread_safe=no 11693eed67faSmbalmer vinfo= 11703eed67faSmbalmer vinfo_number=no 11713eed67faSmbalmer single_module="${wl}-single_module" 11723eed67faSmbalmer 11733eed67faSmbalmer func_infer_tag $base_compile 11743eed67faSmbalmer 11753eed67faSmbalmer # We need to know -static, to get the right output filenames. 11763eed67faSmbalmer for arg 11773eed67faSmbalmer do 11783eed67faSmbalmer case $arg in 11793eed67faSmbalmer -all-static | -static | -static-libtool-libs) 11803eed67faSmbalmer case $arg in 11813eed67faSmbalmer -all-static) 11823eed67faSmbalmer if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 11833eed67faSmbalmer $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 11843eed67faSmbalmer fi 11853eed67faSmbalmer if test -n "$link_static_flag"; then 11863eed67faSmbalmer dlopen_self=$dlopen_self_static 11873eed67faSmbalmer fi 11883eed67faSmbalmer prefer_static_libs=yes 11893eed67faSmbalmer ;; 11903eed67faSmbalmer -static) 11913eed67faSmbalmer if test -z "$pic_flag" && test -n "$link_static_flag"; then 11923eed67faSmbalmer dlopen_self=$dlopen_self_static 11933eed67faSmbalmer fi 11943eed67faSmbalmer prefer_static_libs=built 11953eed67faSmbalmer ;; 11963eed67faSmbalmer -static-libtool-libs) 11973eed67faSmbalmer if test -z "$pic_flag" && test -n "$link_static_flag"; then 11983eed67faSmbalmer dlopen_self=$dlopen_self_static 11993eed67faSmbalmer fi 12003eed67faSmbalmer prefer_static_libs=yes 12013eed67faSmbalmer ;; 12023eed67faSmbalmer esac 12033eed67faSmbalmer build_libtool_libs=no 12043eed67faSmbalmer build_old_libs=yes 12053eed67faSmbalmer break 12063eed67faSmbalmer ;; 12073eed67faSmbalmer esac 12083eed67faSmbalmer done 12093eed67faSmbalmer 12103eed67faSmbalmer # See if our shared archives depend on static archives. 12113eed67faSmbalmer test -n "$old_archive_from_new_cmds" && build_old_libs=yes 12123eed67faSmbalmer 12133eed67faSmbalmer # Go through the arguments, transforming them on the way. 12143eed67faSmbalmer while test "$#" -gt 0; do 12153eed67faSmbalmer arg="$1" 12163eed67faSmbalmer shift 12173eed67faSmbalmer case $arg in 12183eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 12193eed67faSmbalmer qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 12203eed67faSmbalmer ;; 12213eed67faSmbalmer *) qarg=$arg ;; 12223eed67faSmbalmer esac 12233eed67faSmbalmer libtool_args="$libtool_args $qarg" 12243eed67faSmbalmer 12253eed67faSmbalmer # If the previous option needs an argument, assign it. 12263eed67faSmbalmer if test -n "$prev"; then 12273eed67faSmbalmer case $prev in 12283eed67faSmbalmer output) 12293eed67faSmbalmer compile_command="$compile_command @OUTPUT@" 12303eed67faSmbalmer finalize_command="$finalize_command @OUTPUT@" 12313eed67faSmbalmer ;; 12323eed67faSmbalmer esac 12333eed67faSmbalmer 12343eed67faSmbalmer case $prev in 12353eed67faSmbalmer dlfiles|dlprefiles) 12363eed67faSmbalmer if test "$preload" = no; then 12373eed67faSmbalmer # Add the symbol object into the linking commands. 12383eed67faSmbalmer compile_command="$compile_command @SYMFILE@" 12393eed67faSmbalmer finalize_command="$finalize_command @SYMFILE@" 12403eed67faSmbalmer preload=yes 12413eed67faSmbalmer fi 12423eed67faSmbalmer case $arg in 12433eed67faSmbalmer *.la | *.lo) ;; # We handle these cases below. 12443eed67faSmbalmer force) 12453eed67faSmbalmer if test "$dlself" = no; then 12463eed67faSmbalmer dlself=needless 12473eed67faSmbalmer export_dynamic=yes 12483eed67faSmbalmer fi 12493eed67faSmbalmer prev= 12503eed67faSmbalmer continue 12513eed67faSmbalmer ;; 12523eed67faSmbalmer self) 12533eed67faSmbalmer if test "$prev" = dlprefiles; then 12543eed67faSmbalmer dlself=yes 12553eed67faSmbalmer elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 12563eed67faSmbalmer dlself=yes 12573eed67faSmbalmer else 12583eed67faSmbalmer dlself=needless 12593eed67faSmbalmer export_dynamic=yes 12603eed67faSmbalmer fi 12613eed67faSmbalmer prev= 12623eed67faSmbalmer continue 12633eed67faSmbalmer ;; 12643eed67faSmbalmer *) 12653eed67faSmbalmer if test "$prev" = dlfiles; then 12663eed67faSmbalmer dlfiles="$dlfiles $arg" 12673eed67faSmbalmer else 12683eed67faSmbalmer dlprefiles="$dlprefiles $arg" 12693eed67faSmbalmer fi 12703eed67faSmbalmer prev= 12713eed67faSmbalmer continue 12723eed67faSmbalmer ;; 12733eed67faSmbalmer esac 12743eed67faSmbalmer ;; 12753eed67faSmbalmer expsyms) 12763eed67faSmbalmer export_symbols="$arg" 12773eed67faSmbalmer if test ! -f "$arg"; then 12783eed67faSmbalmer $echo "$modename: symbol file \`$arg' does not exist" 12793eed67faSmbalmer exit $EXIT_FAILURE 12803eed67faSmbalmer fi 12813eed67faSmbalmer prev= 12823eed67faSmbalmer continue 12833eed67faSmbalmer ;; 12843eed67faSmbalmer expsyms_regex) 12853eed67faSmbalmer export_symbols_regex="$arg" 12863eed67faSmbalmer prev= 12873eed67faSmbalmer continue 12883eed67faSmbalmer ;; 12893eed67faSmbalmer inst_prefix) 12903eed67faSmbalmer inst_prefix_dir="$arg" 12913eed67faSmbalmer prev= 12923eed67faSmbalmer continue 12933eed67faSmbalmer ;; 12943eed67faSmbalmer precious_regex) 12953eed67faSmbalmer precious_files_regex="$arg" 12963eed67faSmbalmer prev= 12973eed67faSmbalmer continue 12983eed67faSmbalmer ;; 12993eed67faSmbalmer release) 13003eed67faSmbalmer release="-$arg" 13013eed67faSmbalmer prev= 13023eed67faSmbalmer continue 13033eed67faSmbalmer ;; 13043eed67faSmbalmer objectlist) 13053eed67faSmbalmer if test -f "$arg"; then 13063eed67faSmbalmer save_arg=$arg 13073eed67faSmbalmer moreargs= 13083eed67faSmbalmer for fil in `cat $save_arg` 13093eed67faSmbalmer do 13103eed67faSmbalmer# moreargs="$moreargs $fil" 13113eed67faSmbalmer arg=$fil 13123eed67faSmbalmer # A libtool-controlled object. 13133eed67faSmbalmer 13143eed67faSmbalmer # Check to see that this really is a libtool object. 13153eed67faSmbalmer if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 13163eed67faSmbalmer pic_object= 13173eed67faSmbalmer non_pic_object= 13183eed67faSmbalmer 13193eed67faSmbalmer # Read the .lo file 13203eed67faSmbalmer # If there is no directory component, then add one. 13213eed67faSmbalmer case $arg in 13223eed67faSmbalmer */* | *\\*) . $arg ;; 13233eed67faSmbalmer *) . ./$arg ;; 13243eed67faSmbalmer esac 13253eed67faSmbalmer 13263eed67faSmbalmer if test -z "$pic_object" || \ 13273eed67faSmbalmer test -z "$non_pic_object" || 13283eed67faSmbalmer test "$pic_object" = none && \ 13293eed67faSmbalmer test "$non_pic_object" = none; then 13303eed67faSmbalmer $echo "$modename: cannot find name of object for \`$arg'" 1>&2 13313eed67faSmbalmer exit $EXIT_FAILURE 13323eed67faSmbalmer fi 13333eed67faSmbalmer 13343eed67faSmbalmer # Extract subdirectory from the argument. 13353eed67faSmbalmer xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 13363eed67faSmbalmer if test "X$xdir" = "X$arg"; then 13373eed67faSmbalmer xdir= 13383eed67faSmbalmer else 13393eed67faSmbalmer xdir="$xdir/" 13403eed67faSmbalmer fi 13413eed67faSmbalmer 13423eed67faSmbalmer if test "$pic_object" != none; then 13433eed67faSmbalmer # Prepend the subdirectory the object is found in. 13443eed67faSmbalmer pic_object="$xdir$pic_object" 13453eed67faSmbalmer 13463eed67faSmbalmer if test "$prev" = dlfiles; then 13473eed67faSmbalmer if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 13483eed67faSmbalmer dlfiles="$dlfiles $pic_object" 13493eed67faSmbalmer prev= 13503eed67faSmbalmer continue 13513eed67faSmbalmer else 13523eed67faSmbalmer # If libtool objects are unsupported, then we need to preload. 13533eed67faSmbalmer prev=dlprefiles 13543eed67faSmbalmer fi 13553eed67faSmbalmer fi 13563eed67faSmbalmer 13573eed67faSmbalmer # CHECK ME: I think I busted this. -Ossama 13583eed67faSmbalmer if test "$prev" = dlprefiles; then 13593eed67faSmbalmer # Preload the old-style object. 13603eed67faSmbalmer dlprefiles="$dlprefiles $pic_object" 13613eed67faSmbalmer prev= 13623eed67faSmbalmer fi 13633eed67faSmbalmer 13643eed67faSmbalmer # A PIC object. 13653eed67faSmbalmer libobjs="$libobjs $pic_object" 13663eed67faSmbalmer arg="$pic_object" 13673eed67faSmbalmer fi 13683eed67faSmbalmer 13693eed67faSmbalmer # Non-PIC object. 13703eed67faSmbalmer if test "$non_pic_object" != none; then 13713eed67faSmbalmer # Prepend the subdirectory the object is found in. 13723eed67faSmbalmer non_pic_object="$xdir$non_pic_object" 13733eed67faSmbalmer 13743eed67faSmbalmer # A standard non-PIC object 13753eed67faSmbalmer non_pic_objects="$non_pic_objects $non_pic_object" 13763eed67faSmbalmer if test -z "$pic_object" || test "$pic_object" = none ; then 13773eed67faSmbalmer arg="$non_pic_object" 13783eed67faSmbalmer fi 13793eed67faSmbalmer else 13803eed67faSmbalmer # If the PIC object exists, use it instead. 13813eed67faSmbalmer # $xdir was prepended to $pic_object above. 13823eed67faSmbalmer non_pic_object="$pic_object" 13833eed67faSmbalmer non_pic_objects="$non_pic_objects $non_pic_object" 13843eed67faSmbalmer fi 13853eed67faSmbalmer else 13863eed67faSmbalmer # Only an error if not doing a dry-run. 13873eed67faSmbalmer if test -z "$run"; then 13883eed67faSmbalmer $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 13893eed67faSmbalmer exit $EXIT_FAILURE 13903eed67faSmbalmer else 13913eed67faSmbalmer # Dry-run case. 13923eed67faSmbalmer 13933eed67faSmbalmer # Extract subdirectory from the argument. 13943eed67faSmbalmer xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 13953eed67faSmbalmer if test "X$xdir" = "X$arg"; then 13963eed67faSmbalmer xdir= 13973eed67faSmbalmer else 13983eed67faSmbalmer xdir="$xdir/" 13993eed67faSmbalmer fi 14003eed67faSmbalmer 14013eed67faSmbalmer pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 14023eed67faSmbalmer non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 14033eed67faSmbalmer libobjs="$libobjs $pic_object" 14043eed67faSmbalmer non_pic_objects="$non_pic_objects $non_pic_object" 14053eed67faSmbalmer fi 14063eed67faSmbalmer fi 14073eed67faSmbalmer done 14083eed67faSmbalmer else 14093eed67faSmbalmer $echo "$modename: link input file \`$save_arg' does not exist" 14103eed67faSmbalmer exit $EXIT_FAILURE 14113eed67faSmbalmer fi 14123eed67faSmbalmer arg=$save_arg 14133eed67faSmbalmer prev= 14143eed67faSmbalmer continue 14153eed67faSmbalmer ;; 14163eed67faSmbalmer rpath | xrpath) 14173eed67faSmbalmer # We need an absolute path. 14183eed67faSmbalmer case $arg in 14193eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) ;; 14203eed67faSmbalmer *) 14213eed67faSmbalmer $echo "$modename: only absolute run-paths are allowed" 1>&2 14223eed67faSmbalmer exit $EXIT_FAILURE 14233eed67faSmbalmer ;; 14243eed67faSmbalmer esac 14253eed67faSmbalmer if test "$prev" = rpath; then 14263eed67faSmbalmer case "$rpath " in 14273eed67faSmbalmer *" $arg "*) ;; 14283eed67faSmbalmer *) rpath="$rpath $arg" ;; 14293eed67faSmbalmer esac 14303eed67faSmbalmer else 14313eed67faSmbalmer case "$xrpath " in 14323eed67faSmbalmer *" $arg "*) ;; 14333eed67faSmbalmer *) xrpath="$xrpath $arg" ;; 14343eed67faSmbalmer esac 14353eed67faSmbalmer fi 14363eed67faSmbalmer prev= 14373eed67faSmbalmer continue 14383eed67faSmbalmer ;; 14393eed67faSmbalmer xcompiler) 14403eed67faSmbalmer compiler_flags="$compiler_flags $qarg" 14413eed67faSmbalmer prev= 14423eed67faSmbalmer compile_command="$compile_command $qarg" 14433eed67faSmbalmer finalize_command="$finalize_command $qarg" 14443eed67faSmbalmer continue 14453eed67faSmbalmer ;; 14463eed67faSmbalmer xlinker) 14473eed67faSmbalmer linker_flags="$linker_flags $qarg" 14483eed67faSmbalmer compiler_flags="$compiler_flags $wl$qarg" 14493eed67faSmbalmer prev= 14503eed67faSmbalmer compile_command="$compile_command $wl$qarg" 14513eed67faSmbalmer finalize_command="$finalize_command $wl$qarg" 14523eed67faSmbalmer continue 14533eed67faSmbalmer ;; 14543eed67faSmbalmer xcclinker) 14553eed67faSmbalmer linker_flags="$linker_flags $qarg" 14563eed67faSmbalmer compiler_flags="$compiler_flags $qarg" 14573eed67faSmbalmer prev= 14583eed67faSmbalmer compile_command="$compile_command $qarg" 14593eed67faSmbalmer finalize_command="$finalize_command $qarg" 14603eed67faSmbalmer continue 14613eed67faSmbalmer ;; 14623eed67faSmbalmer shrext) 14633eed67faSmbalmer shrext_cmds="$arg" 14643eed67faSmbalmer prev= 14653eed67faSmbalmer continue 14663eed67faSmbalmer ;; 14673eed67faSmbalmer darwin_framework|darwin_framework_skip) 14683eed67faSmbalmer test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 14693eed67faSmbalmer compile_command="$compile_command $arg" 14703eed67faSmbalmer finalize_command="$finalize_command $arg" 14713eed67faSmbalmer prev= 14723eed67faSmbalmer continue 14733eed67faSmbalmer ;; 14743eed67faSmbalmer *) 14753eed67faSmbalmer eval "$prev=\"\$arg\"" 14763eed67faSmbalmer prev= 14773eed67faSmbalmer continue 14783eed67faSmbalmer ;; 14793eed67faSmbalmer esac 14803eed67faSmbalmer fi # test -n "$prev" 14813eed67faSmbalmer 14823eed67faSmbalmer prevarg="$arg" 14833eed67faSmbalmer 14843eed67faSmbalmer case $arg in 14853eed67faSmbalmer -all-static) 14863eed67faSmbalmer if test -n "$link_static_flag"; then 14873eed67faSmbalmer compile_command="$compile_command $link_static_flag" 14883eed67faSmbalmer finalize_command="$finalize_command $link_static_flag" 14893eed67faSmbalmer fi 14903eed67faSmbalmer continue 14913eed67faSmbalmer ;; 14923eed67faSmbalmer 14933eed67faSmbalmer -allow-undefined) 14943eed67faSmbalmer # FIXME: remove this flag sometime in the future. 14953eed67faSmbalmer $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 14963eed67faSmbalmer continue 14973eed67faSmbalmer ;; 14983eed67faSmbalmer 14993eed67faSmbalmer -avoid-version) 15003eed67faSmbalmer avoid_version=yes 15013eed67faSmbalmer continue 15023eed67faSmbalmer ;; 15033eed67faSmbalmer 15043eed67faSmbalmer -dlopen) 15053eed67faSmbalmer prev=dlfiles 15063eed67faSmbalmer continue 15073eed67faSmbalmer ;; 15083eed67faSmbalmer 15093eed67faSmbalmer -dlpreopen) 15103eed67faSmbalmer prev=dlprefiles 15113eed67faSmbalmer continue 15123eed67faSmbalmer ;; 15133eed67faSmbalmer 15143eed67faSmbalmer -export-dynamic) 15153eed67faSmbalmer export_dynamic=yes 15163eed67faSmbalmer continue 15173eed67faSmbalmer ;; 15183eed67faSmbalmer 15193eed67faSmbalmer -export-symbols | -export-symbols-regex) 15203eed67faSmbalmer if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 15213eed67faSmbalmer $echo "$modename: more than one -exported-symbols argument is not allowed" 15223eed67faSmbalmer exit $EXIT_FAILURE 15233eed67faSmbalmer fi 15243eed67faSmbalmer if test "X$arg" = "X-export-symbols"; then 15253eed67faSmbalmer prev=expsyms 15263eed67faSmbalmer else 15273eed67faSmbalmer prev=expsyms_regex 15283eed67faSmbalmer fi 15293eed67faSmbalmer continue 15303eed67faSmbalmer ;; 15313eed67faSmbalmer 15323eed67faSmbalmer -framework|-arch|-isysroot) 15333eed67faSmbalmer case " $CC " in 15343eed67faSmbalmer *" ${arg} ${1} "* | *" ${arg} ${1} "*) 15353eed67faSmbalmer prev=darwin_framework_skip ;; 15363eed67faSmbalmer *) compiler_flags="$compiler_flags $arg" 15373eed67faSmbalmer prev=darwin_framework ;; 15383eed67faSmbalmer esac 15393eed67faSmbalmer compile_command="$compile_command $arg" 15403eed67faSmbalmer finalize_command="$finalize_command $arg" 15413eed67faSmbalmer continue 15423eed67faSmbalmer ;; 15433eed67faSmbalmer 15443eed67faSmbalmer -inst-prefix-dir) 15453eed67faSmbalmer prev=inst_prefix 15463eed67faSmbalmer continue 15473eed67faSmbalmer ;; 15483eed67faSmbalmer 15493eed67faSmbalmer # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 15503eed67faSmbalmer # so, if we see these flags be careful not to treat them like -L 15513eed67faSmbalmer -L[A-Z][A-Z]*:*) 15523eed67faSmbalmer case $with_gcc/$host in 15533eed67faSmbalmer no/*-*-irix* | /*-*-irix*) 15543eed67faSmbalmer compile_command="$compile_command $arg" 15553eed67faSmbalmer finalize_command="$finalize_command $arg" 15563eed67faSmbalmer ;; 15573eed67faSmbalmer esac 15583eed67faSmbalmer continue 15593eed67faSmbalmer ;; 15603eed67faSmbalmer 15613eed67faSmbalmer -L*) 15623eed67faSmbalmer dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 15633eed67faSmbalmer # We need an absolute path. 15643eed67faSmbalmer case $dir in 15653eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) ;; 15663eed67faSmbalmer *) 15673eed67faSmbalmer absdir=`cd "$dir" && pwd` 15683eed67faSmbalmer if test -z "$absdir"; then 15693eed67faSmbalmer $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 15703eed67faSmbalmer absdir="$dir" 15713eed67faSmbalmer notinst_path="$notinst_path $dir" 15723eed67faSmbalmer fi 15733eed67faSmbalmer dir="$absdir" 15743eed67faSmbalmer ;; 15753eed67faSmbalmer esac 15763eed67faSmbalmer case "$deplibs " in 15773eed67faSmbalmer *" -L$dir "*) ;; 15783eed67faSmbalmer *) 15793eed67faSmbalmer deplibs="$deplibs -L$dir" 15803eed67faSmbalmer lib_search_path="$lib_search_path $dir" 15813eed67faSmbalmer ;; 15823eed67faSmbalmer esac 15833eed67faSmbalmer case $host in 15843eed67faSmbalmer *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 15853eed67faSmbalmer testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 15863eed67faSmbalmer case :$dllsearchpath: in 15873eed67faSmbalmer *":$dir:"*) ;; 15883eed67faSmbalmer *) dllsearchpath="$dllsearchpath:$dir";; 15893eed67faSmbalmer esac 15903eed67faSmbalmer case :$dllsearchpath: in 15913eed67faSmbalmer *":$testbindir:"*) ;; 15923eed67faSmbalmer *) dllsearchpath="$dllsearchpath:$testbindir";; 15933eed67faSmbalmer esac 15943eed67faSmbalmer ;; 15953eed67faSmbalmer esac 15963eed67faSmbalmer continue 15973eed67faSmbalmer ;; 15983eed67faSmbalmer 15993eed67faSmbalmer -l*) 16003eed67faSmbalmer if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 16013eed67faSmbalmer case $host in 16023eed67faSmbalmer *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 16033eed67faSmbalmer # These systems don't actually have a C or math library (as such) 16043eed67faSmbalmer continue 16053eed67faSmbalmer ;; 16063eed67faSmbalmer *-*-os2*) 16073eed67faSmbalmer # These systems don't actually have a C library (as such) 16083eed67faSmbalmer test "X$arg" = "X-lc" && continue 16093eed67faSmbalmer ;; 16103eed67faSmbalmer *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 16113eed67faSmbalmer # Do not include libc due to us having libc/libc_r. 16123eed67faSmbalmer test "X$arg" = "X-lc" && continue 16133eed67faSmbalmer ;; 16143eed67faSmbalmer *-*-rhapsody* | *-*-darwin1.[012]) 16153eed67faSmbalmer # Rhapsody C and math libraries are in the System framework 16163eed67faSmbalmer deplibs="$deplibs -framework System" 16173eed67faSmbalmer continue 16183eed67faSmbalmer ;; 16193eed67faSmbalmer *-*-sco3.2v5* | *-*-sco5v6*) 16203eed67faSmbalmer # Causes problems with __ctype 16213eed67faSmbalmer test "X$arg" = "X-lc" && continue 16223eed67faSmbalmer ;; 16233eed67faSmbalmer *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 16243eed67faSmbalmer # Compiler inserts libc in the correct place for threads to work 16253eed67faSmbalmer test "X$arg" = "X-lc" && continue 16263eed67faSmbalmer ;; 16273eed67faSmbalmer esac 16283eed67faSmbalmer elif test "X$arg" = "X-lc_r"; then 16293eed67faSmbalmer case $host in 16303eed67faSmbalmer *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 16313eed67faSmbalmer # Do not include libc_r directly, use -pthread flag. 16323eed67faSmbalmer continue 16333eed67faSmbalmer ;; 16343eed67faSmbalmer esac 16353eed67faSmbalmer fi 16363eed67faSmbalmer deplibs="$deplibs $arg" 16373eed67faSmbalmer continue 16383eed67faSmbalmer ;; 16393eed67faSmbalmer 16403eed67faSmbalmer # Tru64 UNIX uses -model [arg] to determine the layout of C++ 16413eed67faSmbalmer # classes, name mangling, and exception handling. 16423eed67faSmbalmer -model) 16433eed67faSmbalmer compile_command="$compile_command $arg" 16443eed67faSmbalmer compiler_flags="$compiler_flags $arg" 16453eed67faSmbalmer finalize_command="$finalize_command $arg" 16463eed67faSmbalmer prev=xcompiler 16473eed67faSmbalmer continue 16483eed67faSmbalmer ;; 16493eed67faSmbalmer 16503eed67faSmbalmer -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 16513eed67faSmbalmer compiler_flags="$compiler_flags $arg" 16523eed67faSmbalmer compile_command="$compile_command $arg" 16533eed67faSmbalmer finalize_command="$finalize_command $arg" 16543eed67faSmbalmer deplibs="$deplibs $arg" 16553eed67faSmbalmer continue 16563eed67faSmbalmer ;; 16573eed67faSmbalmer 16583eed67faSmbalmer -multi_module) 16593eed67faSmbalmer single_module="${wl}-multi_module" 16603eed67faSmbalmer continue 16613eed67faSmbalmer ;; 16623eed67faSmbalmer 16633eed67faSmbalmer -module) 16643eed67faSmbalmer module=yes 16653eed67faSmbalmer continue 16663eed67faSmbalmer ;; 16673eed67faSmbalmer 16683eed67faSmbalmer # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 16693eed67faSmbalmer # -r[0-9][0-9]* specifies the processor on the SGI compiler 16703eed67faSmbalmer # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 16713eed67faSmbalmer # +DA*, +DD* enable 64-bit mode on the HP compiler 16723eed67faSmbalmer # -q* pass through compiler args for the IBM compiler 16733eed67faSmbalmer # -m* pass through architecture-specific compiler args for GCC 16743eed67faSmbalmer # -m*, -t[45]*, -txscale* pass through architecture-specific 16753eed67faSmbalmer # compiler args for GCC 16763eed67faSmbalmer # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC 16773eed67faSmbalmer # -F/path gives path to uninstalled frameworks, gcc on darwin 16783eed67faSmbalmer # @file GCC response files 16793eed67faSmbalmer -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 16803eed67faSmbalmer -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) 16813eed67faSmbalmer 16823eed67faSmbalmer # Unknown arguments in both finalize_command and compile_command need 16833eed67faSmbalmer # to be aesthetically quoted because they are evaled later. 16843eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 16853eed67faSmbalmer case $arg in 16863eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 16873eed67faSmbalmer arg="\"$arg\"" 16883eed67faSmbalmer ;; 16893eed67faSmbalmer esac 16903eed67faSmbalmer compile_command="$compile_command $arg" 16913eed67faSmbalmer finalize_command="$finalize_command $arg" 16923eed67faSmbalmer compiler_flags="$compiler_flags $arg" 16933eed67faSmbalmer continue 16943eed67faSmbalmer ;; 16953eed67faSmbalmer 16963eed67faSmbalmer -shrext) 16973eed67faSmbalmer prev=shrext 16983eed67faSmbalmer continue 16993eed67faSmbalmer ;; 17003eed67faSmbalmer 17013eed67faSmbalmer -no-fast-install) 17023eed67faSmbalmer fast_install=no 17033eed67faSmbalmer continue 17043eed67faSmbalmer ;; 17053eed67faSmbalmer 17063eed67faSmbalmer -no-install) 17073eed67faSmbalmer case $host in 17083eed67faSmbalmer *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) 17093eed67faSmbalmer # The PATH hackery in wrapper scripts is required on Windows 17103eed67faSmbalmer # and Darwin in order for the loader to find any dlls it needs. 17113eed67faSmbalmer $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 17123eed67faSmbalmer $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 17133eed67faSmbalmer fast_install=no 17143eed67faSmbalmer ;; 17153eed67faSmbalmer *) no_install=yes ;; 17163eed67faSmbalmer esac 17173eed67faSmbalmer continue 17183eed67faSmbalmer ;; 17193eed67faSmbalmer 17203eed67faSmbalmer -no-undefined) 17213eed67faSmbalmer allow_undefined=no 17223eed67faSmbalmer continue 17233eed67faSmbalmer ;; 17243eed67faSmbalmer 17253eed67faSmbalmer -objectlist) 17263eed67faSmbalmer prev=objectlist 17273eed67faSmbalmer continue 17283eed67faSmbalmer ;; 17293eed67faSmbalmer 17303eed67faSmbalmer -o) prev=output ;; 17313eed67faSmbalmer 17323eed67faSmbalmer -precious-files-regex) 17333eed67faSmbalmer prev=precious_regex 17343eed67faSmbalmer continue 17353eed67faSmbalmer ;; 17363eed67faSmbalmer 17373eed67faSmbalmer -release) 17383eed67faSmbalmer prev=release 17393eed67faSmbalmer continue 17403eed67faSmbalmer ;; 17413eed67faSmbalmer 17423eed67faSmbalmer -rpath) 17433eed67faSmbalmer prev=rpath 17443eed67faSmbalmer continue 17453eed67faSmbalmer ;; 17463eed67faSmbalmer 17473eed67faSmbalmer -R) 17483eed67faSmbalmer prev=xrpath 17493eed67faSmbalmer continue 17503eed67faSmbalmer ;; 17513eed67faSmbalmer 17523eed67faSmbalmer -R*) 17533eed67faSmbalmer dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 17543eed67faSmbalmer # We need an absolute path. 17553eed67faSmbalmer case $dir in 17563eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) ;; 17573eed67faSmbalmer *) 17583eed67faSmbalmer $echo "$modename: only absolute run-paths are allowed" 1>&2 17593eed67faSmbalmer exit $EXIT_FAILURE 17603eed67faSmbalmer ;; 17613eed67faSmbalmer esac 17623eed67faSmbalmer case "$xrpath " in 17633eed67faSmbalmer *" $dir "*) ;; 17643eed67faSmbalmer *) xrpath="$xrpath $dir" ;; 17653eed67faSmbalmer esac 17663eed67faSmbalmer continue 17673eed67faSmbalmer ;; 17683eed67faSmbalmer 17693eed67faSmbalmer -static | -static-libtool-libs) 17703eed67faSmbalmer # The effects of -static are defined in a previous loop. 17713eed67faSmbalmer # We used to do the same as -all-static on platforms that 17723eed67faSmbalmer # didn't have a PIC flag, but the assumption that the effects 17733eed67faSmbalmer # would be equivalent was wrong. It would break on at least 17743eed67faSmbalmer # Digital Unix and AIX. 17753eed67faSmbalmer continue 17763eed67faSmbalmer ;; 17773eed67faSmbalmer 17783eed67faSmbalmer -thread-safe) 17793eed67faSmbalmer thread_safe=yes 17803eed67faSmbalmer continue 17813eed67faSmbalmer ;; 17823eed67faSmbalmer 17833eed67faSmbalmer -version-info) 17843eed67faSmbalmer prev=vinfo 17853eed67faSmbalmer continue 17863eed67faSmbalmer ;; 17873eed67faSmbalmer -version-number) 17883eed67faSmbalmer prev=vinfo 17893eed67faSmbalmer vinfo_number=yes 17903eed67faSmbalmer continue 17913eed67faSmbalmer ;; 17923eed67faSmbalmer 17933eed67faSmbalmer -Wc,*) 17943eed67faSmbalmer args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 17953eed67faSmbalmer arg= 17963eed67faSmbalmer save_ifs="$IFS"; IFS=',' 17973eed67faSmbalmer for flag in $args; do 17983eed67faSmbalmer IFS="$save_ifs" 17993eed67faSmbalmer case $flag in 18003eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 18013eed67faSmbalmer flag="\"$flag\"" 18023eed67faSmbalmer ;; 18033eed67faSmbalmer esac 18043eed67faSmbalmer arg="$arg $wl$flag" 18053eed67faSmbalmer compiler_flags="$compiler_flags $flag" 18063eed67faSmbalmer done 18073eed67faSmbalmer IFS="$save_ifs" 18083eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 18093eed67faSmbalmer ;; 18103eed67faSmbalmer 18113eed67faSmbalmer -Wl,*) 18123eed67faSmbalmer args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 18133eed67faSmbalmer arg= 18143eed67faSmbalmer save_ifs="$IFS"; IFS=',' 18153eed67faSmbalmer for flag in $args; do 18163eed67faSmbalmer IFS="$save_ifs" 18173eed67faSmbalmer case $flag in 18183eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 18193eed67faSmbalmer flag="\"$flag\"" 18203eed67faSmbalmer ;; 18213eed67faSmbalmer esac 18223eed67faSmbalmer arg="$arg $wl$flag" 18233eed67faSmbalmer compiler_flags="$compiler_flags $wl$flag" 18243eed67faSmbalmer linker_flags="$linker_flags $flag" 18253eed67faSmbalmer done 18263eed67faSmbalmer IFS="$save_ifs" 18273eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 18283eed67faSmbalmer ;; 18293eed67faSmbalmer 18303eed67faSmbalmer -Xcompiler) 18313eed67faSmbalmer prev=xcompiler 18323eed67faSmbalmer continue 18333eed67faSmbalmer ;; 18343eed67faSmbalmer 18353eed67faSmbalmer -Xlinker) 18363eed67faSmbalmer prev=xlinker 18373eed67faSmbalmer continue 18383eed67faSmbalmer ;; 18393eed67faSmbalmer 18403eed67faSmbalmer -XCClinker) 18413eed67faSmbalmer prev=xcclinker 18423eed67faSmbalmer continue 18433eed67faSmbalmer ;; 18443eed67faSmbalmer 18453eed67faSmbalmer # Some other compiler flag. 18463eed67faSmbalmer -* | +*) 18473eed67faSmbalmer # Unknown arguments in both finalize_command and compile_command need 18483eed67faSmbalmer # to be aesthetically quoted because they are evaled later. 18493eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 18503eed67faSmbalmer case $arg in 18513eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 18523eed67faSmbalmer arg="\"$arg\"" 18533eed67faSmbalmer ;; 18543eed67faSmbalmer esac 18553eed67faSmbalmer ;; 18563eed67faSmbalmer 18573eed67faSmbalmer *.$objext) 18583eed67faSmbalmer # A standard object. 18593eed67faSmbalmer objs="$objs $arg" 18603eed67faSmbalmer ;; 18613eed67faSmbalmer 18623eed67faSmbalmer *.lo) 18633eed67faSmbalmer # A libtool-controlled object. 18643eed67faSmbalmer 18653eed67faSmbalmer # Check to see that this really is a libtool object. 18663eed67faSmbalmer if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 18673eed67faSmbalmer pic_object= 18683eed67faSmbalmer non_pic_object= 18693eed67faSmbalmer 18703eed67faSmbalmer # Read the .lo file 18713eed67faSmbalmer # If there is no directory component, then add one. 18723eed67faSmbalmer case $arg in 18733eed67faSmbalmer */* | *\\*) . $arg ;; 18743eed67faSmbalmer *) . ./$arg ;; 18753eed67faSmbalmer esac 18763eed67faSmbalmer 18773eed67faSmbalmer if test -z "$pic_object" || \ 18783eed67faSmbalmer test -z "$non_pic_object" || 18793eed67faSmbalmer test "$pic_object" = none && \ 18803eed67faSmbalmer test "$non_pic_object" = none; then 18813eed67faSmbalmer $echo "$modename: cannot find name of object for \`$arg'" 1>&2 18823eed67faSmbalmer exit $EXIT_FAILURE 18833eed67faSmbalmer fi 18843eed67faSmbalmer 18853eed67faSmbalmer # Extract subdirectory from the argument. 18863eed67faSmbalmer xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 18873eed67faSmbalmer if test "X$xdir" = "X$arg"; then 18883eed67faSmbalmer xdir= 18893eed67faSmbalmer else 18903eed67faSmbalmer xdir="$xdir/" 18913eed67faSmbalmer fi 18923eed67faSmbalmer 18933eed67faSmbalmer if test "$pic_object" != none; then 18943eed67faSmbalmer # Prepend the subdirectory the object is found in. 18953eed67faSmbalmer pic_object="$xdir$pic_object" 18963eed67faSmbalmer 18973eed67faSmbalmer if test "$prev" = dlfiles; then 18983eed67faSmbalmer if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 18993eed67faSmbalmer dlfiles="$dlfiles $pic_object" 19003eed67faSmbalmer prev= 19013eed67faSmbalmer continue 19023eed67faSmbalmer else 19033eed67faSmbalmer # If libtool objects are unsupported, then we need to preload. 19043eed67faSmbalmer prev=dlprefiles 19053eed67faSmbalmer fi 19063eed67faSmbalmer fi 19073eed67faSmbalmer 19083eed67faSmbalmer # CHECK ME: I think I busted this. -Ossama 19093eed67faSmbalmer if test "$prev" = dlprefiles; then 19103eed67faSmbalmer # Preload the old-style object. 19113eed67faSmbalmer dlprefiles="$dlprefiles $pic_object" 19123eed67faSmbalmer prev= 19133eed67faSmbalmer fi 19143eed67faSmbalmer 19153eed67faSmbalmer # A PIC object. 19163eed67faSmbalmer libobjs="$libobjs $pic_object" 19173eed67faSmbalmer arg="$pic_object" 19183eed67faSmbalmer fi 19193eed67faSmbalmer 19203eed67faSmbalmer # Non-PIC object. 19213eed67faSmbalmer if test "$non_pic_object" != none; then 19223eed67faSmbalmer # Prepend the subdirectory the object is found in. 19233eed67faSmbalmer non_pic_object="$xdir$non_pic_object" 19243eed67faSmbalmer 19253eed67faSmbalmer # A standard non-PIC object 19263eed67faSmbalmer non_pic_objects="$non_pic_objects $non_pic_object" 19273eed67faSmbalmer if test -z "$pic_object" || test "$pic_object" = none ; then 19283eed67faSmbalmer arg="$non_pic_object" 19293eed67faSmbalmer fi 19303eed67faSmbalmer else 19313eed67faSmbalmer # If the PIC object exists, use it instead. 19323eed67faSmbalmer # $xdir was prepended to $pic_object above. 19333eed67faSmbalmer non_pic_object="$pic_object" 19343eed67faSmbalmer non_pic_objects="$non_pic_objects $non_pic_object" 19353eed67faSmbalmer fi 19363eed67faSmbalmer else 19373eed67faSmbalmer # Only an error if not doing a dry-run. 19383eed67faSmbalmer if test -z "$run"; then 19393eed67faSmbalmer $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 19403eed67faSmbalmer exit $EXIT_FAILURE 19413eed67faSmbalmer else 19423eed67faSmbalmer # Dry-run case. 19433eed67faSmbalmer 19443eed67faSmbalmer # Extract subdirectory from the argument. 19453eed67faSmbalmer xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 19463eed67faSmbalmer if test "X$xdir" = "X$arg"; then 19473eed67faSmbalmer xdir= 19483eed67faSmbalmer else 19493eed67faSmbalmer xdir="$xdir/" 19503eed67faSmbalmer fi 19513eed67faSmbalmer 19523eed67faSmbalmer pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 19533eed67faSmbalmer non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 19543eed67faSmbalmer libobjs="$libobjs $pic_object" 19553eed67faSmbalmer non_pic_objects="$non_pic_objects $non_pic_object" 19563eed67faSmbalmer fi 19573eed67faSmbalmer fi 19583eed67faSmbalmer ;; 19593eed67faSmbalmer 19603eed67faSmbalmer *.$libext) 19613eed67faSmbalmer # An archive. 19623eed67faSmbalmer deplibs="$deplibs $arg" 19633eed67faSmbalmer old_deplibs="$old_deplibs $arg" 19643eed67faSmbalmer continue 19653eed67faSmbalmer ;; 19663eed67faSmbalmer 19673eed67faSmbalmer *.la) 19683eed67faSmbalmer # A libtool-controlled library. 19693eed67faSmbalmer 19703eed67faSmbalmer if test "$prev" = dlfiles; then 19713eed67faSmbalmer # This library was specified with -dlopen. 19723eed67faSmbalmer dlfiles="$dlfiles $arg" 19733eed67faSmbalmer prev= 19743eed67faSmbalmer elif test "$prev" = dlprefiles; then 19753eed67faSmbalmer # The library was specified with -dlpreopen. 19763eed67faSmbalmer dlprefiles="$dlprefiles $arg" 19773eed67faSmbalmer prev= 19783eed67faSmbalmer else 19793eed67faSmbalmer deplibs="$deplibs $arg" 19803eed67faSmbalmer fi 19813eed67faSmbalmer continue 19823eed67faSmbalmer ;; 19833eed67faSmbalmer 19843eed67faSmbalmer # Some other compiler argument. 19853eed67faSmbalmer *) 19863eed67faSmbalmer # Unknown arguments in both finalize_command and compile_command need 19873eed67faSmbalmer # to be aesthetically quoted because they are evaled later. 19883eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 19893eed67faSmbalmer case $arg in 19903eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 19913eed67faSmbalmer arg="\"$arg\"" 19923eed67faSmbalmer ;; 19933eed67faSmbalmer esac 19943eed67faSmbalmer ;; 19953eed67faSmbalmer esac # arg 19963eed67faSmbalmer 19973eed67faSmbalmer # Now actually substitute the argument into the commands. 19983eed67faSmbalmer if test -n "$arg"; then 19993eed67faSmbalmer compile_command="$compile_command $arg" 20003eed67faSmbalmer finalize_command="$finalize_command $arg" 20013eed67faSmbalmer fi 20023eed67faSmbalmer done # argument parsing loop 20033eed67faSmbalmer 20043eed67faSmbalmer if test -n "$prev"; then 20053eed67faSmbalmer $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 20063eed67faSmbalmer $echo "$help" 1>&2 20073eed67faSmbalmer exit $EXIT_FAILURE 20083eed67faSmbalmer fi 20093eed67faSmbalmer 20103eed67faSmbalmer if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 20113eed67faSmbalmer eval arg=\"$export_dynamic_flag_spec\" 20123eed67faSmbalmer compile_command="$compile_command $arg" 20133eed67faSmbalmer finalize_command="$finalize_command $arg" 20143eed67faSmbalmer fi 20153eed67faSmbalmer 20163eed67faSmbalmer oldlibs= 20173eed67faSmbalmer # calculate the name of the file, without its directory 20183eed67faSmbalmer outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 20193eed67faSmbalmer libobjs_save="$libobjs" 20203eed67faSmbalmer 20213eed67faSmbalmer if test -n "$shlibpath_var"; then 20223eed67faSmbalmer # get the directories listed in $shlibpath_var 20233eed67faSmbalmer eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 20243eed67faSmbalmer else 20253eed67faSmbalmer shlib_search_path= 20263eed67faSmbalmer fi 20273eed67faSmbalmer eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 20283eed67faSmbalmer eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 20293eed67faSmbalmer 20303eed67faSmbalmer output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 20313eed67faSmbalmer if test "X$output_objdir" = "X$output"; then 20323eed67faSmbalmer output_objdir="$objdir" 20333eed67faSmbalmer else 20343eed67faSmbalmer output_objdir="$output_objdir/$objdir" 20353eed67faSmbalmer fi 20363eed67faSmbalmer # Create the object directory. 20373eed67faSmbalmer if test ! -d "$output_objdir"; then 20383eed67faSmbalmer $show "$mkdir $output_objdir" 20393eed67faSmbalmer $run $mkdir $output_objdir 20403eed67faSmbalmer exit_status=$? 20413eed67faSmbalmer if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 20423eed67faSmbalmer exit $exit_status 20433eed67faSmbalmer fi 20443eed67faSmbalmer fi 20453eed67faSmbalmer 20463eed67faSmbalmer # Determine the type of output 20473eed67faSmbalmer case $output in 20483eed67faSmbalmer "") 20493eed67faSmbalmer $echo "$modename: you must specify an output file" 1>&2 20503eed67faSmbalmer $echo "$help" 1>&2 20513eed67faSmbalmer exit $EXIT_FAILURE 20523eed67faSmbalmer ;; 20533eed67faSmbalmer *.$libext) linkmode=oldlib ;; 20543eed67faSmbalmer *.lo | *.$objext) linkmode=obj ;; 20553eed67faSmbalmer *.la) linkmode=lib ;; 20563eed67faSmbalmer *) linkmode=prog ;; # Anything else should be a program. 20573eed67faSmbalmer esac 20583eed67faSmbalmer 20593eed67faSmbalmer case $host in 20603eed67faSmbalmer *cygwin* | *mingw* | *pw32*) 20613eed67faSmbalmer # don't eliminate duplications in $postdeps and $predeps 20623eed67faSmbalmer duplicate_compiler_generated_deps=yes 20633eed67faSmbalmer ;; 20643eed67faSmbalmer *) 20653eed67faSmbalmer duplicate_compiler_generated_deps=$duplicate_deps 20663eed67faSmbalmer ;; 20673eed67faSmbalmer esac 20683eed67faSmbalmer specialdeplibs= 20693eed67faSmbalmer 20703eed67faSmbalmer libs= 20713eed67faSmbalmer # Find all interdependent deplibs by searching for libraries 20723eed67faSmbalmer # that are linked more than once (e.g. -la -lb -la) 20733eed67faSmbalmer for deplib in $deplibs; do 20743eed67faSmbalmer if test "X$duplicate_deps" = "Xyes" ; then 20753eed67faSmbalmer case "$libs " in 20763eed67faSmbalmer *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 20773eed67faSmbalmer esac 20783eed67faSmbalmer fi 20793eed67faSmbalmer libs="$libs $deplib" 20803eed67faSmbalmer done 20813eed67faSmbalmer 20823eed67faSmbalmer if test "$linkmode" = lib; then 20833eed67faSmbalmer libs="$predeps $libs $compiler_lib_search_path $postdeps" 20843eed67faSmbalmer 20853eed67faSmbalmer # Compute libraries that are listed more than once in $predeps 20863eed67faSmbalmer # $postdeps and mark them as special (i.e., whose duplicates are 20873eed67faSmbalmer # not to be eliminated). 20883eed67faSmbalmer pre_post_deps= 20893eed67faSmbalmer if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 20903eed67faSmbalmer for pre_post_dep in $predeps $postdeps; do 20913eed67faSmbalmer case "$pre_post_deps " in 20923eed67faSmbalmer *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 20933eed67faSmbalmer esac 20943eed67faSmbalmer pre_post_deps="$pre_post_deps $pre_post_dep" 20953eed67faSmbalmer done 20963eed67faSmbalmer fi 20973eed67faSmbalmer pre_post_deps= 20983eed67faSmbalmer fi 20993eed67faSmbalmer 21003eed67faSmbalmer deplibs= 21013eed67faSmbalmer newdependency_libs= 21023eed67faSmbalmer newlib_search_path= 21033eed67faSmbalmer need_relink=no # whether we're linking any uninstalled libtool libraries 21043eed67faSmbalmer notinst_deplibs= # not-installed libtool libraries 21053eed67faSmbalmer case $linkmode in 21063eed67faSmbalmer lib) 21073eed67faSmbalmer passes="conv link" 21083eed67faSmbalmer for file in $dlfiles $dlprefiles; do 21093eed67faSmbalmer case $file in 21103eed67faSmbalmer *.la) ;; 21113eed67faSmbalmer *) 21123eed67faSmbalmer $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 21133eed67faSmbalmer exit $EXIT_FAILURE 21143eed67faSmbalmer ;; 21153eed67faSmbalmer esac 21163eed67faSmbalmer done 21173eed67faSmbalmer ;; 21183eed67faSmbalmer prog) 21193eed67faSmbalmer compile_deplibs= 21203eed67faSmbalmer finalize_deplibs= 21213eed67faSmbalmer alldeplibs=no 21223eed67faSmbalmer newdlfiles= 21233eed67faSmbalmer newdlprefiles= 21243eed67faSmbalmer passes="conv scan dlopen dlpreopen link" 21253eed67faSmbalmer ;; 21263eed67faSmbalmer *) passes="conv" 21273eed67faSmbalmer ;; 21283eed67faSmbalmer esac 21293eed67faSmbalmer for pass in $passes; do 21303eed67faSmbalmer # The preopen pass in lib mode reverses $deplibs; put it back here 21313eed67faSmbalmer # so that -L comes before libs that need it for instance... 21323eed67faSmbalmer if test "$linkmode,$pass" = "lib,link"; then 21333eed67faSmbalmer ## FIXME: Find the place where the list is rebuilt in the wrong 21343eed67faSmbalmer ## order, and fix it there properly 21353eed67faSmbalmer tmp_deplibs= 21363eed67faSmbalmer for deplib in $deplibs; do 21373eed67faSmbalmer tmp_deplibs="$deplib $tmp_deplibs" 21383eed67faSmbalmer done 21393eed67faSmbalmer deplibs="$tmp_deplibs" 21403eed67faSmbalmer fi 21413eed67faSmbalmer if test "$linkmode,$pass" = "lib,link" || 21423eed67faSmbalmer test "$linkmode,$pass" = "prog,scan"; then 21433eed67faSmbalmer libs="$deplibs" 21443eed67faSmbalmer deplibs= 21453eed67faSmbalmer fi 21463eed67faSmbalmer if test "$linkmode" = prog; then 21473eed67faSmbalmer case $pass in 21483eed67faSmbalmer dlopen) libs="$dlfiles" ;; 21493eed67faSmbalmer dlpreopen) libs="$dlprefiles" ;; 21503eed67faSmbalmer link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; 21513eed67faSmbalmer esac 21523eed67faSmbalmer fi 21533eed67faSmbalmer if test "$pass" = dlopen; then 21543eed67faSmbalmer # Collect dlpreopened libraries 21553eed67faSmbalmer save_deplibs="$deplibs" 21563eed67faSmbalmer deplibs= 21573eed67faSmbalmer fi 21583eed67faSmbalmer for deplib in $libs; do 21593eed67faSmbalmer lib= 21603eed67faSmbalmer found=no 21613eed67faSmbalmer case $deplib in 21623eed67faSmbalmer -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 21633eed67faSmbalmer if test "$linkmode,$pass" = "prog,link"; then 21643eed67faSmbalmer compile_deplibs="$deplib $compile_deplibs" 21653eed67faSmbalmer finalize_deplibs="$deplib $finalize_deplibs" 21663eed67faSmbalmer else 21673eed67faSmbalmer compiler_flags="$compiler_flags $deplib" 21683eed67faSmbalmer test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 21693eed67faSmbalmer fi 21703eed67faSmbalmer continue 21713eed67faSmbalmer ;; 21723eed67faSmbalmer -l*) 21733eed67faSmbalmer if test "$linkmode" != lib && test "$linkmode" != prog; then 21743eed67faSmbalmer $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 21753eed67faSmbalmer continue 21763eed67faSmbalmer fi 21773eed67faSmbalmer name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 21783eed67faSmbalmer if test "$linkmode" = lib; then 21793eed67faSmbalmer searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 21803eed67faSmbalmer else 21813eed67faSmbalmer searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 21823eed67faSmbalmer fi 21833eed67faSmbalmer for searchdir in $searchdirs; do 21843eed67faSmbalmer for search_ext in .la $std_shrext .so .a; do 21853eed67faSmbalmer # Search the libtool library 21863eed67faSmbalmer lib="$searchdir/lib${name}${search_ext}" 21873eed67faSmbalmer if test -f "$lib"; then 21883eed67faSmbalmer if test "$search_ext" = ".la"; then 21893eed67faSmbalmer found=yes 21903eed67faSmbalmer else 21913eed67faSmbalmer found=no 21923eed67faSmbalmer fi 21933eed67faSmbalmer break 2 21943eed67faSmbalmer fi 21953eed67faSmbalmer done 21963eed67faSmbalmer done 21973eed67faSmbalmer if test "$found" != yes; then 21983eed67faSmbalmer # deplib doesn't seem to be a libtool library 21993eed67faSmbalmer if test "$linkmode,$pass" = "prog,link"; then 22003eed67faSmbalmer compile_deplibs="$deplib $compile_deplibs" 22013eed67faSmbalmer finalize_deplibs="$deplib $finalize_deplibs" 22023eed67faSmbalmer else 22033eed67faSmbalmer deplibs="$deplib $deplibs" 22043eed67faSmbalmer test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 22053eed67faSmbalmer fi 22063eed67faSmbalmer continue 22073eed67faSmbalmer else # deplib is a libtool library 22083eed67faSmbalmer # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 22093eed67faSmbalmer # We need to do some special things here, and not later. 22103eed67faSmbalmer if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 22113eed67faSmbalmer case " $predeps $postdeps " in 22123eed67faSmbalmer *" $deplib "*) 22133eed67faSmbalmer if (${SED} -e '2q' $lib | 22143eed67faSmbalmer grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 22153eed67faSmbalmer library_names= 22163eed67faSmbalmer old_library= 22173eed67faSmbalmer case $lib in 22183eed67faSmbalmer */* | *\\*) . $lib ;; 22193eed67faSmbalmer *) . ./$lib ;; 22203eed67faSmbalmer esac 22213eed67faSmbalmer for l in $old_library $library_names; do 22223eed67faSmbalmer ll="$l" 22233eed67faSmbalmer done 22243eed67faSmbalmer if test "X$ll" = "X$old_library" ; then # only static version available 22253eed67faSmbalmer found=no 22263eed67faSmbalmer ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 22273eed67faSmbalmer test "X$ladir" = "X$lib" && ladir="." 22283eed67faSmbalmer lib=$ladir/$old_library 22293eed67faSmbalmer if test "$linkmode,$pass" = "prog,link"; then 22303eed67faSmbalmer compile_deplibs="$deplib $compile_deplibs" 22313eed67faSmbalmer finalize_deplibs="$deplib $finalize_deplibs" 22323eed67faSmbalmer else 22333eed67faSmbalmer deplibs="$deplib $deplibs" 22343eed67faSmbalmer test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 22353eed67faSmbalmer fi 22363eed67faSmbalmer continue 22373eed67faSmbalmer fi 22383eed67faSmbalmer fi 22393eed67faSmbalmer ;; 22403eed67faSmbalmer *) ;; 22413eed67faSmbalmer esac 22423eed67faSmbalmer fi 22433eed67faSmbalmer fi 22443eed67faSmbalmer ;; # -l 22453eed67faSmbalmer -L*) 22463eed67faSmbalmer case $linkmode in 22473eed67faSmbalmer lib) 22483eed67faSmbalmer deplibs="$deplib $deplibs" 22493eed67faSmbalmer test "$pass" = conv && continue 22503eed67faSmbalmer newdependency_libs="$deplib $newdependency_libs" 22513eed67faSmbalmer newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 22523eed67faSmbalmer ;; 22533eed67faSmbalmer prog) 22543eed67faSmbalmer if test "$pass" = conv; then 22553eed67faSmbalmer deplibs="$deplib $deplibs" 22563eed67faSmbalmer continue 22573eed67faSmbalmer fi 22583eed67faSmbalmer if test "$pass" = scan; then 22593eed67faSmbalmer deplibs="$deplib $deplibs" 22603eed67faSmbalmer else 22613eed67faSmbalmer compile_deplibs="$deplib $compile_deplibs" 22623eed67faSmbalmer finalize_deplibs="$deplib $finalize_deplibs" 22633eed67faSmbalmer fi 22643eed67faSmbalmer newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 22653eed67faSmbalmer ;; 22663eed67faSmbalmer *) 22673eed67faSmbalmer $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 22683eed67faSmbalmer ;; 22693eed67faSmbalmer esac # linkmode 22703eed67faSmbalmer continue 22713eed67faSmbalmer ;; # -L 22723eed67faSmbalmer -R*) 22733eed67faSmbalmer if test "$pass" = link; then 22743eed67faSmbalmer dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 22753eed67faSmbalmer # Make sure the xrpath contains only unique directories. 22763eed67faSmbalmer case "$xrpath " in 22773eed67faSmbalmer *" $dir "*) ;; 22783eed67faSmbalmer *) xrpath="$xrpath $dir" ;; 22793eed67faSmbalmer esac 22803eed67faSmbalmer fi 22813eed67faSmbalmer deplibs="$deplib $deplibs" 22823eed67faSmbalmer continue 22833eed67faSmbalmer ;; 22843eed67faSmbalmer *.la) lib="$deplib" ;; 22853eed67faSmbalmer *.$libext) 22863eed67faSmbalmer if test "$pass" = conv; then 22873eed67faSmbalmer deplibs="$deplib $deplibs" 22883eed67faSmbalmer continue 22893eed67faSmbalmer fi 22903eed67faSmbalmer case $linkmode in 22913eed67faSmbalmer lib) 22923eed67faSmbalmer valid_a_lib=no 22933eed67faSmbalmer case $deplibs_check_method in 22943eed67faSmbalmer match_pattern*) 22953eed67faSmbalmer set dummy $deplibs_check_method 22963eed67faSmbalmer match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 22973eed67faSmbalmer if eval $echo \"$deplib\" 2>/dev/null \ 22983eed67faSmbalmer | $SED 10q \ 22993eed67faSmbalmer | $EGREP "$match_pattern_regex" > /dev/null; then 23003eed67faSmbalmer valid_a_lib=yes 23013eed67faSmbalmer fi 23023eed67faSmbalmer ;; 23033eed67faSmbalmer pass_all) 23043eed67faSmbalmer valid_a_lib=yes 23053eed67faSmbalmer ;; 23063eed67faSmbalmer esac 23073eed67faSmbalmer if test "$valid_a_lib" != yes; then 23083eed67faSmbalmer $echo 23093eed67faSmbalmer $echo "*** Warning: Trying to link with static lib archive $deplib." 23103eed67faSmbalmer $echo "*** I have the capability to make that library automatically link in when" 23113eed67faSmbalmer $echo "*** you link to this library. But I can only do this if you have a" 23123eed67faSmbalmer $echo "*** shared version of the library, which you do not appear to have" 23133eed67faSmbalmer $echo "*** because the file extensions .$libext of this argument makes me believe" 23143eed67faSmbalmer $echo "*** that it is just a static archive that I should not used here." 23153eed67faSmbalmer else 23163eed67faSmbalmer $echo 23173eed67faSmbalmer $echo "*** Warning: Linking the shared library $output against the" 23183eed67faSmbalmer $echo "*** static library $deplib is not portable!" 23193eed67faSmbalmer deplibs="$deplib $deplibs" 23203eed67faSmbalmer fi 23213eed67faSmbalmer continue 23223eed67faSmbalmer ;; 23233eed67faSmbalmer prog) 23243eed67faSmbalmer if test "$pass" != link; then 23253eed67faSmbalmer deplibs="$deplib $deplibs" 23263eed67faSmbalmer else 23273eed67faSmbalmer compile_deplibs="$deplib $compile_deplibs" 23283eed67faSmbalmer finalize_deplibs="$deplib $finalize_deplibs" 23293eed67faSmbalmer fi 23303eed67faSmbalmer continue 23313eed67faSmbalmer ;; 23323eed67faSmbalmer esac # linkmode 23333eed67faSmbalmer ;; # *.$libext 23343eed67faSmbalmer *.lo | *.$objext) 23353eed67faSmbalmer if test "$pass" = conv; then 23363eed67faSmbalmer deplibs="$deplib $deplibs" 23373eed67faSmbalmer elif test "$linkmode" = prog; then 23383eed67faSmbalmer if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 23393eed67faSmbalmer # If there is no dlopen support or we're linking statically, 23403eed67faSmbalmer # we need to preload. 23413eed67faSmbalmer newdlprefiles="$newdlprefiles $deplib" 23423eed67faSmbalmer compile_deplibs="$deplib $compile_deplibs" 23433eed67faSmbalmer finalize_deplibs="$deplib $finalize_deplibs" 23443eed67faSmbalmer else 23453eed67faSmbalmer newdlfiles="$newdlfiles $deplib" 23463eed67faSmbalmer fi 23473eed67faSmbalmer fi 23483eed67faSmbalmer continue 23493eed67faSmbalmer ;; 23503eed67faSmbalmer %DEPLIBS%) 23513eed67faSmbalmer alldeplibs=yes 23523eed67faSmbalmer continue 23533eed67faSmbalmer ;; 23543eed67faSmbalmer esac # case $deplib 23553eed67faSmbalmer if test "$found" = yes || test -f "$lib"; then : 23563eed67faSmbalmer else 23573eed67faSmbalmer $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 23583eed67faSmbalmer exit $EXIT_FAILURE 23593eed67faSmbalmer fi 23603eed67faSmbalmer 23613eed67faSmbalmer # Check to see that this really is a libtool archive. 23623eed67faSmbalmer if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 23633eed67faSmbalmer else 23643eed67faSmbalmer $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 23653eed67faSmbalmer exit $EXIT_FAILURE 23663eed67faSmbalmer fi 23673eed67faSmbalmer 23683eed67faSmbalmer ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 23693eed67faSmbalmer test "X$ladir" = "X$lib" && ladir="." 23703eed67faSmbalmer 23713eed67faSmbalmer dlname= 23723eed67faSmbalmer dlopen= 23733eed67faSmbalmer dlpreopen= 23743eed67faSmbalmer libdir= 23753eed67faSmbalmer library_names= 23763eed67faSmbalmer old_library= 23773eed67faSmbalmer # If the library was installed with an old release of libtool, 23783eed67faSmbalmer # it will not redefine variables installed, or shouldnotlink 23793eed67faSmbalmer installed=yes 23803eed67faSmbalmer shouldnotlink=no 23813eed67faSmbalmer avoidtemprpath= 23823eed67faSmbalmer 23833eed67faSmbalmer 23843eed67faSmbalmer # Read the .la file 23853eed67faSmbalmer case $lib in 23863eed67faSmbalmer */* | *\\*) . $lib ;; 23873eed67faSmbalmer *) . ./$lib ;; 23883eed67faSmbalmer esac 23893eed67faSmbalmer 23903eed67faSmbalmer if test "$linkmode,$pass" = "lib,link" || 23913eed67faSmbalmer test "$linkmode,$pass" = "prog,scan" || 23923eed67faSmbalmer { test "$linkmode" != prog && test "$linkmode" != lib; }; then 23933eed67faSmbalmer test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 23943eed67faSmbalmer test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 23953eed67faSmbalmer fi 23963eed67faSmbalmer 23973eed67faSmbalmer if test "$pass" = conv; then 23983eed67faSmbalmer # Only check for convenience libraries 23993eed67faSmbalmer deplibs="$lib $deplibs" 24003eed67faSmbalmer if test -z "$libdir"; then 24013eed67faSmbalmer if test -z "$old_library"; then 24023eed67faSmbalmer $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 24033eed67faSmbalmer exit $EXIT_FAILURE 24043eed67faSmbalmer fi 24053eed67faSmbalmer # It is a libtool convenience library, so add in its objects. 24063eed67faSmbalmer convenience="$convenience $ladir/$objdir/$old_library" 24073eed67faSmbalmer old_convenience="$old_convenience $ladir/$objdir/$old_library" 24083eed67faSmbalmer elif test "$linkmode" != prog && test "$linkmode" != lib; then 24093eed67faSmbalmer $echo "$modename: \`$lib' is not a convenience library" 1>&2 24103eed67faSmbalmer exit $EXIT_FAILURE 24113eed67faSmbalmer fi 24123eed67faSmbalmer tmp_libs= 24133eed67faSmbalmer for deplib in $dependency_libs; do 24143eed67faSmbalmer deplibs="$deplib $deplibs" 24153eed67faSmbalmer if test "X$duplicate_deps" = "Xyes" ; then 24163eed67faSmbalmer case "$tmp_libs " in 24173eed67faSmbalmer *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 24183eed67faSmbalmer esac 24193eed67faSmbalmer fi 24203eed67faSmbalmer tmp_libs="$tmp_libs $deplib" 24213eed67faSmbalmer done 24223eed67faSmbalmer continue 24233eed67faSmbalmer fi # $pass = conv 24243eed67faSmbalmer 24253eed67faSmbalmer 24263eed67faSmbalmer # Get the name of the library we link against. 24273eed67faSmbalmer linklib= 24283eed67faSmbalmer for l in $old_library $library_names; do 24293eed67faSmbalmer linklib="$l" 24303eed67faSmbalmer done 24313eed67faSmbalmer if test -z "$linklib"; then 24323eed67faSmbalmer $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 24333eed67faSmbalmer exit $EXIT_FAILURE 24343eed67faSmbalmer fi 24353eed67faSmbalmer 24363eed67faSmbalmer # This library was specified with -dlopen. 24373eed67faSmbalmer if test "$pass" = dlopen; then 24383eed67faSmbalmer if test -z "$libdir"; then 24393eed67faSmbalmer $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 24403eed67faSmbalmer exit $EXIT_FAILURE 24413eed67faSmbalmer fi 24423eed67faSmbalmer if test -z "$dlname" || 24433eed67faSmbalmer test "$dlopen_support" != yes || 24443eed67faSmbalmer test "$build_libtool_libs" = no; then 24453eed67faSmbalmer # If there is no dlname, no dlopen support or we're linking 24463eed67faSmbalmer # statically, we need to preload. We also need to preload any 24473eed67faSmbalmer # dependent libraries so libltdl's deplib preloader doesn't 24483eed67faSmbalmer # bomb out in the load deplibs phase. 24493eed67faSmbalmer dlprefiles="$dlprefiles $lib $dependency_libs" 24503eed67faSmbalmer else 24513eed67faSmbalmer newdlfiles="$newdlfiles $lib" 24523eed67faSmbalmer fi 24533eed67faSmbalmer continue 24543eed67faSmbalmer fi # $pass = dlopen 24553eed67faSmbalmer 24563eed67faSmbalmer # We need an absolute path. 24573eed67faSmbalmer case $ladir in 24583eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 24593eed67faSmbalmer *) 24603eed67faSmbalmer abs_ladir=`cd "$ladir" && pwd` 24613eed67faSmbalmer if test -z "$abs_ladir"; then 24623eed67faSmbalmer $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 24633eed67faSmbalmer $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 24643eed67faSmbalmer abs_ladir="$ladir" 24653eed67faSmbalmer fi 24663eed67faSmbalmer ;; 24673eed67faSmbalmer esac 24683eed67faSmbalmer laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 24693eed67faSmbalmer 24703eed67faSmbalmer # Find the relevant object directory and library name. 24713eed67faSmbalmer if test "X$installed" = Xyes; then 24723eed67faSmbalmer if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 24733eed67faSmbalmer $echo "$modename: warning: library \`$lib' was moved." 1>&2 24743eed67faSmbalmer dir="$ladir" 24753eed67faSmbalmer absdir="$abs_ladir" 24763eed67faSmbalmer libdir="$abs_ladir" 24773eed67faSmbalmer else 24783eed67faSmbalmer dir="$libdir" 24793eed67faSmbalmer absdir="$libdir" 24803eed67faSmbalmer fi 24813eed67faSmbalmer test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 24823eed67faSmbalmer else 24833eed67faSmbalmer if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 24843eed67faSmbalmer dir="$ladir" 24853eed67faSmbalmer absdir="$abs_ladir" 24863eed67faSmbalmer # Remove this search path later 24873eed67faSmbalmer notinst_path="$notinst_path $abs_ladir" 24883eed67faSmbalmer else 24893eed67faSmbalmer dir="$ladir/$objdir" 24903eed67faSmbalmer absdir="$abs_ladir/$objdir" 24913eed67faSmbalmer # Remove this search path later 24923eed67faSmbalmer notinst_path="$notinst_path $abs_ladir" 24933eed67faSmbalmer fi 24943eed67faSmbalmer fi # $installed = yes 24953eed67faSmbalmer name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 24963eed67faSmbalmer 24973eed67faSmbalmer # This library was specified with -dlpreopen. 24983eed67faSmbalmer if test "$pass" = dlpreopen; then 24993eed67faSmbalmer if test -z "$libdir"; then 25003eed67faSmbalmer $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 25013eed67faSmbalmer exit $EXIT_FAILURE 25023eed67faSmbalmer fi 25033eed67faSmbalmer # Prefer using a static library (so that no silly _DYNAMIC symbols 25043eed67faSmbalmer # are required to link). 25053eed67faSmbalmer if test -n "$old_library"; then 25063eed67faSmbalmer newdlprefiles="$newdlprefiles $dir/$old_library" 25073eed67faSmbalmer # Otherwise, use the dlname, so that lt_dlopen finds it. 25083eed67faSmbalmer elif test -n "$dlname"; then 25093eed67faSmbalmer newdlprefiles="$newdlprefiles $dir/$dlname" 25103eed67faSmbalmer else 25113eed67faSmbalmer newdlprefiles="$newdlprefiles $dir/$linklib" 25123eed67faSmbalmer fi 25133eed67faSmbalmer fi # $pass = dlpreopen 25143eed67faSmbalmer 25153eed67faSmbalmer if test -z "$libdir"; then 25163eed67faSmbalmer # Link the convenience library 25173eed67faSmbalmer if test "$linkmode" = lib; then 25183eed67faSmbalmer deplibs="$dir/$old_library $deplibs" 25193eed67faSmbalmer elif test "$linkmode,$pass" = "prog,link"; then 25203eed67faSmbalmer compile_deplibs="$dir/$old_library $compile_deplibs" 25213eed67faSmbalmer finalize_deplibs="$dir/$old_library $finalize_deplibs" 25223eed67faSmbalmer else 25233eed67faSmbalmer deplibs="$lib $deplibs" # used for prog,scan pass 25243eed67faSmbalmer fi 25253eed67faSmbalmer continue 25263eed67faSmbalmer fi 25273eed67faSmbalmer 25283eed67faSmbalmer 25293eed67faSmbalmer if test "$linkmode" = prog && test "$pass" != link; then 25303eed67faSmbalmer newlib_search_path="$newlib_search_path $ladir" 25313eed67faSmbalmer deplibs="$lib $deplibs" 25323eed67faSmbalmer 25333eed67faSmbalmer linkalldeplibs=no 25343eed67faSmbalmer if test "$link_all_deplibs" != no || test -z "$library_names" || 25353eed67faSmbalmer test "$build_libtool_libs" = no; then 25363eed67faSmbalmer linkalldeplibs=yes 25373eed67faSmbalmer fi 25383eed67faSmbalmer 25393eed67faSmbalmer tmp_libs= 25403eed67faSmbalmer for deplib in $dependency_libs; do 25413eed67faSmbalmer case $deplib in 25423eed67faSmbalmer -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 25433eed67faSmbalmer esac 25443eed67faSmbalmer # Need to link against all dependency_libs? 25453eed67faSmbalmer if test "$linkalldeplibs" = yes; then 25463eed67faSmbalmer deplibs="$deplib $deplibs" 25473eed67faSmbalmer else 25483eed67faSmbalmer # Need to hardcode shared library paths 25493eed67faSmbalmer # or/and link against static libraries 25503eed67faSmbalmer newdependency_libs="$deplib $newdependency_libs" 25513eed67faSmbalmer fi 25523eed67faSmbalmer if test "X$duplicate_deps" = "Xyes" ; then 25533eed67faSmbalmer case "$tmp_libs " in 25543eed67faSmbalmer *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 25553eed67faSmbalmer esac 25563eed67faSmbalmer fi 25573eed67faSmbalmer tmp_libs="$tmp_libs $deplib" 25583eed67faSmbalmer done # for deplib 25593eed67faSmbalmer continue 25603eed67faSmbalmer fi # $linkmode = prog... 25613eed67faSmbalmer 25623eed67faSmbalmer if test "$linkmode,$pass" = "prog,link"; then 25633eed67faSmbalmer if test -n "$library_names" && 25643eed67faSmbalmer { { test "$prefer_static_libs" = no || 25653eed67faSmbalmer test "$prefer_static_libs,$installed" = "built,yes"; } || 25663eed67faSmbalmer test -z "$old_library"; }; then 25673eed67faSmbalmer # We need to hardcode the library path 25683eed67faSmbalmer if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 25693eed67faSmbalmer # Make sure the rpath contains only unique directories. 25703eed67faSmbalmer case "$temp_rpath " in 25713eed67faSmbalmer *" $dir "*) ;; 25723eed67faSmbalmer *" $absdir "*) ;; 25733eed67faSmbalmer *) temp_rpath="$temp_rpath $absdir" ;; 25743eed67faSmbalmer esac 25753eed67faSmbalmer fi 25763eed67faSmbalmer 25773eed67faSmbalmer # Hardcode the library path. 25783eed67faSmbalmer # Skip directories that are in the system default run-time 25793eed67faSmbalmer # search path. 25803eed67faSmbalmer case " $sys_lib_dlsearch_path " in 25813eed67faSmbalmer *" $absdir "*) ;; 25823eed67faSmbalmer *) 25833eed67faSmbalmer case "$compile_rpath " in 25843eed67faSmbalmer *" $absdir "*) ;; 25853eed67faSmbalmer *) compile_rpath="$compile_rpath $absdir" 25863eed67faSmbalmer esac 25873eed67faSmbalmer ;; 25883eed67faSmbalmer esac 25893eed67faSmbalmer case " $sys_lib_dlsearch_path " in 25903eed67faSmbalmer *" $libdir "*) ;; 25913eed67faSmbalmer *) 25923eed67faSmbalmer case "$finalize_rpath " in 25933eed67faSmbalmer *" $libdir "*) ;; 25943eed67faSmbalmer *) finalize_rpath="$finalize_rpath $libdir" 25953eed67faSmbalmer esac 25963eed67faSmbalmer ;; 25973eed67faSmbalmer esac 25983eed67faSmbalmer fi # $linkmode,$pass = prog,link... 25993eed67faSmbalmer 26003eed67faSmbalmer if test "$alldeplibs" = yes && 26013eed67faSmbalmer { test "$deplibs_check_method" = pass_all || 26023eed67faSmbalmer { test "$build_libtool_libs" = yes && 26033eed67faSmbalmer test -n "$library_names"; }; }; then 26043eed67faSmbalmer # We only need to search for static libraries 26053eed67faSmbalmer continue 26063eed67faSmbalmer fi 26073eed67faSmbalmer fi 26083eed67faSmbalmer 26093eed67faSmbalmer link_static=no # Whether the deplib will be linked statically 26103eed67faSmbalmer use_static_libs=$prefer_static_libs 26113eed67faSmbalmer if test "$use_static_libs" = built && test "$installed" = yes ; then 26123eed67faSmbalmer use_static_libs=no 26133eed67faSmbalmer fi 26143eed67faSmbalmer if test -n "$library_names" && 26153eed67faSmbalmer { test "$use_static_libs" = no || test -z "$old_library"; }; then 26163eed67faSmbalmer if test "$installed" = no; then 26173eed67faSmbalmer notinst_deplibs="$notinst_deplibs $lib" 26183eed67faSmbalmer test -z "$DESTDIR" && need_relink=yes 26193eed67faSmbalmer fi 26203eed67faSmbalmer # This is a shared library 26213eed67faSmbalmer 26223eed67faSmbalmer # Warn about portability, can't link against -module's on 26233eed67faSmbalmer # some systems (darwin) 26243eed67faSmbalmer if test "$shouldnotlink" = yes && test "$pass" = link ; then 26253eed67faSmbalmer $echo 26263eed67faSmbalmer if test "$linkmode" = prog; then 26273eed67faSmbalmer $echo "*** Warning: Linking the executable $output against the loadable module" 26283eed67faSmbalmer else 26293eed67faSmbalmer $echo "*** Warning: Linking the shared library $output against the loadable module" 26303eed67faSmbalmer fi 26313eed67faSmbalmer $echo "*** $linklib is not portable!" 26323eed67faSmbalmer fi 26333eed67faSmbalmer if test "$linkmode" = lib && 26343eed67faSmbalmer test "$hardcode_into_libs" = yes; then 26353eed67faSmbalmer # Hardcode the library path. 26363eed67faSmbalmer # Skip directories that are in the system default run-time 26373eed67faSmbalmer # search path. 26383eed67faSmbalmer case " $sys_lib_dlsearch_path " in 26393eed67faSmbalmer *" $absdir "*) ;; 26403eed67faSmbalmer *) 26413eed67faSmbalmer case "$compile_rpath " in 26423eed67faSmbalmer *" $absdir "*) ;; 26433eed67faSmbalmer *) compile_rpath="$compile_rpath $absdir" 26443eed67faSmbalmer esac 26453eed67faSmbalmer ;; 26463eed67faSmbalmer esac 26473eed67faSmbalmer case " $sys_lib_dlsearch_path " in 26483eed67faSmbalmer *" $libdir "*) ;; 26493eed67faSmbalmer *) 26503eed67faSmbalmer case "$finalize_rpath " in 26513eed67faSmbalmer *" $libdir "*) ;; 26523eed67faSmbalmer *) finalize_rpath="$finalize_rpath $libdir" 26533eed67faSmbalmer esac 26543eed67faSmbalmer ;; 26553eed67faSmbalmer esac 26563eed67faSmbalmer fi 26573eed67faSmbalmer 26583eed67faSmbalmer if test -n "$old_archive_from_expsyms_cmds"; then 26593eed67faSmbalmer # figure out the soname 26603eed67faSmbalmer set dummy $library_names 26613eed67faSmbalmer realname="$2" 26623eed67faSmbalmer shift; shift 26633eed67faSmbalmer libname=`eval \\$echo \"$libname_spec\"` 26643eed67faSmbalmer # use dlname if we got it. it's perfectly good, no? 26653eed67faSmbalmer if test -n "$dlname"; then 26663eed67faSmbalmer soname="$dlname" 26673eed67faSmbalmer elif test -n "$soname_spec"; then 26683eed67faSmbalmer # bleh windows 26693eed67faSmbalmer case $host in 26703eed67faSmbalmer *cygwin* | mingw*) 26713eed67faSmbalmer major=`expr $current - $age` 26723eed67faSmbalmer versuffix="-$major" 26733eed67faSmbalmer ;; 26743eed67faSmbalmer esac 26753eed67faSmbalmer eval soname=\"$soname_spec\" 26763eed67faSmbalmer else 26773eed67faSmbalmer soname="$realname" 26783eed67faSmbalmer fi 26793eed67faSmbalmer 26803eed67faSmbalmer # Make a new name for the extract_expsyms_cmds to use 26813eed67faSmbalmer soroot="$soname" 26823eed67faSmbalmer soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 26833eed67faSmbalmer newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 26843eed67faSmbalmer 26853eed67faSmbalmer # If the library has no export list, then create one now 26863eed67faSmbalmer if test -f "$output_objdir/$soname-def"; then : 26873eed67faSmbalmer else 26883eed67faSmbalmer $show "extracting exported symbol list from \`$soname'" 26893eed67faSmbalmer save_ifs="$IFS"; IFS='~' 26903eed67faSmbalmer cmds=$extract_expsyms_cmds 26913eed67faSmbalmer for cmd in $cmds; do 26923eed67faSmbalmer IFS="$save_ifs" 26933eed67faSmbalmer eval cmd=\"$cmd\" 26943eed67faSmbalmer $show "$cmd" 26953eed67faSmbalmer $run eval "$cmd" || exit $? 26963eed67faSmbalmer done 26973eed67faSmbalmer IFS="$save_ifs" 26983eed67faSmbalmer fi 26993eed67faSmbalmer 27003eed67faSmbalmer # Create $newlib 27013eed67faSmbalmer if test -f "$output_objdir/$newlib"; then :; else 27023eed67faSmbalmer $show "generating import library for \`$soname'" 27033eed67faSmbalmer save_ifs="$IFS"; IFS='~' 27043eed67faSmbalmer cmds=$old_archive_from_expsyms_cmds 27053eed67faSmbalmer for cmd in $cmds; do 27063eed67faSmbalmer IFS="$save_ifs" 27073eed67faSmbalmer eval cmd=\"$cmd\" 27083eed67faSmbalmer $show "$cmd" 27093eed67faSmbalmer $run eval "$cmd" || exit $? 27103eed67faSmbalmer done 27113eed67faSmbalmer IFS="$save_ifs" 27123eed67faSmbalmer fi 27133eed67faSmbalmer # make sure the library variables are pointing to the new library 27143eed67faSmbalmer dir=$output_objdir 27153eed67faSmbalmer linklib=$newlib 27163eed67faSmbalmer fi # test -n "$old_archive_from_expsyms_cmds" 27173eed67faSmbalmer 27183eed67faSmbalmer if test "$linkmode" = prog || test "$mode" != relink; then 27193eed67faSmbalmer add_shlibpath= 27203eed67faSmbalmer add_dir= 27213eed67faSmbalmer add= 27223eed67faSmbalmer lib_linked=yes 27233eed67faSmbalmer case $hardcode_action in 27243eed67faSmbalmer immediate | unsupported) 27253eed67faSmbalmer if test "$hardcode_direct" = no; then 27263eed67faSmbalmer add="$dir/$linklib" 27273eed67faSmbalmer case $host in 27283eed67faSmbalmer *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 27293eed67faSmbalmer *-*-sysv4*uw2*) add_dir="-L$dir" ;; 27303eed67faSmbalmer *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 27313eed67faSmbalmer *-*-unixware7*) add_dir="-L$dir" ;; 27323eed67faSmbalmer *-*-darwin* ) 27333eed67faSmbalmer # if the lib is a module then we can not link against 27343eed67faSmbalmer # it, someone is ignoring the new warnings I added 27353eed67faSmbalmer if /usr/bin/file -L $add 2> /dev/null | 27363eed67faSmbalmer $EGREP ": [^:]* bundle" >/dev/null ; then 27373eed67faSmbalmer $echo "** Warning, lib $linklib is a module, not a shared library" 27383eed67faSmbalmer if test -z "$old_library" ; then 27393eed67faSmbalmer $echo 27403eed67faSmbalmer $echo "** And there doesn't seem to be a static archive available" 27413eed67faSmbalmer $echo "** The link will probably fail, sorry" 27423eed67faSmbalmer else 27433eed67faSmbalmer add="$dir/$old_library" 27443eed67faSmbalmer fi 27453eed67faSmbalmer fi 27463eed67faSmbalmer esac 27473eed67faSmbalmer elif test "$hardcode_minus_L" = no; then 27483eed67faSmbalmer case $host in 27493eed67faSmbalmer *-*-sunos*) add_shlibpath="$dir" ;; 27503eed67faSmbalmer esac 27513eed67faSmbalmer add_dir="-L$dir" 27523eed67faSmbalmer add="-l$name" 27533eed67faSmbalmer elif test "$hardcode_shlibpath_var" = no; then 27543eed67faSmbalmer add_shlibpath="$dir" 27553eed67faSmbalmer add="-l$name" 27563eed67faSmbalmer else 27573eed67faSmbalmer lib_linked=no 27583eed67faSmbalmer fi 27593eed67faSmbalmer ;; 27603eed67faSmbalmer relink) 27613eed67faSmbalmer if test "$hardcode_direct" = yes; then 27623eed67faSmbalmer add="$dir/$linklib" 27633eed67faSmbalmer elif test "$hardcode_minus_L" = yes; then 27643eed67faSmbalmer add_dir="-L$dir" 27653eed67faSmbalmer # Try looking first in the location we're being installed to. 27663eed67faSmbalmer if test -n "$inst_prefix_dir"; then 27673eed67faSmbalmer case $libdir in 27683eed67faSmbalmer [\\/]*) 27693eed67faSmbalmer add_dir="$add_dir -L$inst_prefix_dir$libdir" 27703eed67faSmbalmer ;; 27713eed67faSmbalmer esac 27723eed67faSmbalmer fi 27733eed67faSmbalmer add="-l$name" 27743eed67faSmbalmer elif test "$hardcode_shlibpath_var" = yes; then 27753eed67faSmbalmer add_shlibpath="$dir" 27763eed67faSmbalmer add="-l$name" 27773eed67faSmbalmer else 27783eed67faSmbalmer lib_linked=no 27793eed67faSmbalmer fi 27803eed67faSmbalmer ;; 27813eed67faSmbalmer *) lib_linked=no ;; 27823eed67faSmbalmer esac 27833eed67faSmbalmer 27843eed67faSmbalmer if test "$lib_linked" != yes; then 27853eed67faSmbalmer $echo "$modename: configuration error: unsupported hardcode properties" 27863eed67faSmbalmer exit $EXIT_FAILURE 27873eed67faSmbalmer fi 27883eed67faSmbalmer 27893eed67faSmbalmer if test -n "$add_shlibpath"; then 27903eed67faSmbalmer case :$compile_shlibpath: in 27913eed67faSmbalmer *":$add_shlibpath:"*) ;; 27923eed67faSmbalmer *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 27933eed67faSmbalmer esac 27943eed67faSmbalmer fi 27953eed67faSmbalmer if test "$linkmode" = prog; then 27963eed67faSmbalmer test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 27973eed67faSmbalmer test -n "$add" && compile_deplibs="$add $compile_deplibs" 27983eed67faSmbalmer else 27993eed67faSmbalmer test -n "$add_dir" && deplibs="$add_dir $deplibs" 28003eed67faSmbalmer test -n "$add" && deplibs="$add $deplibs" 28013eed67faSmbalmer if test "$hardcode_direct" != yes && \ 28023eed67faSmbalmer test "$hardcode_minus_L" != yes && \ 28033eed67faSmbalmer test "$hardcode_shlibpath_var" = yes; then 28043eed67faSmbalmer case :$finalize_shlibpath: in 28053eed67faSmbalmer *":$libdir:"*) ;; 28063eed67faSmbalmer *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 28073eed67faSmbalmer esac 28083eed67faSmbalmer fi 28093eed67faSmbalmer fi 28103eed67faSmbalmer fi 28113eed67faSmbalmer 28123eed67faSmbalmer if test "$linkmode" = prog || test "$mode" = relink; then 28133eed67faSmbalmer add_shlibpath= 28143eed67faSmbalmer add_dir= 28153eed67faSmbalmer add= 28163eed67faSmbalmer # Finalize command for both is simple: just hardcode it. 28173eed67faSmbalmer if test "$hardcode_direct" = yes && test -f $libdir/$linklib; then 28183eed67faSmbalmer add="$libdir/$linklib" 28193eed67faSmbalmer elif test "$hardcode_minus_L" = yes; then 28203eed67faSmbalmer add_dir="-L$libdir" 28213eed67faSmbalmer add="-l$name" 28223eed67faSmbalmer elif test "$hardcode_shlibpath_var" = yes; then 28233eed67faSmbalmer case :$finalize_shlibpath: in 28243eed67faSmbalmer *":$libdir:"*) ;; 28253eed67faSmbalmer *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 28263eed67faSmbalmer esac 28273eed67faSmbalmer add="-l$name" 28283eed67faSmbalmer elif test "$hardcode_automatic" = yes; then 28293eed67faSmbalmer if test -n "$inst_prefix_dir" && 28303eed67faSmbalmer test -f "$inst_prefix_dir$libdir/$linklib" ; then 28313eed67faSmbalmer add="$inst_prefix_dir$libdir/$linklib" 28323eed67faSmbalmer else 28333eed67faSmbalmer add="$libdir/$linklib" 28343eed67faSmbalmer fi 28353eed67faSmbalmer else 28363eed67faSmbalmer # We cannot seem to hardcode it, guess we'll fake it. 28373eed67faSmbalmer add_dir="-L$libdir" 28383eed67faSmbalmer # Try looking first in the location we're being installed to. 28393eed67faSmbalmer if test -n "$inst_prefix_dir"; then 28403eed67faSmbalmer case $libdir in 28413eed67faSmbalmer [\\/]*) 28423eed67faSmbalmer add_dir="$add_dir -L$inst_prefix_dir$libdir" 28433eed67faSmbalmer ;; 28443eed67faSmbalmer esac 28453eed67faSmbalmer fi 28463eed67faSmbalmer add="-l$name" 28473eed67faSmbalmer fi 28483eed67faSmbalmer 28493eed67faSmbalmer if test "$linkmode" = prog; then 28503eed67faSmbalmer test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 28513eed67faSmbalmer test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 28523eed67faSmbalmer else 28533eed67faSmbalmer test -n "$add_dir" && deplibs="$add_dir $deplibs" 28543eed67faSmbalmer test -n "$add" && deplibs="$add $deplibs" 28553eed67faSmbalmer fi 28563eed67faSmbalmer fi 28573eed67faSmbalmer elif test "$linkmode" = prog; then 28583eed67faSmbalmer # Here we assume that one of hardcode_direct or hardcode_minus_L 28593eed67faSmbalmer # is not unsupported. This is valid on all known static and 28603eed67faSmbalmer # shared platforms. 28613eed67faSmbalmer if test "$hardcode_direct" != unsupported; then 28623eed67faSmbalmer test -n "$old_library" && linklib="$old_library" 28633eed67faSmbalmer compile_deplibs="$dir/$linklib $compile_deplibs" 28643eed67faSmbalmer finalize_deplibs="$dir/$linklib $finalize_deplibs" 28653eed67faSmbalmer else 28663eed67faSmbalmer compile_deplibs="-l$name -L$dir $compile_deplibs" 28673eed67faSmbalmer finalize_deplibs="-l$name -L$dir $finalize_deplibs" 28683eed67faSmbalmer fi 28693eed67faSmbalmer elif test "$build_libtool_libs" = yes; then 28703eed67faSmbalmer # Not a shared library 28713eed67faSmbalmer if test "$deplibs_check_method" != pass_all; then 28723eed67faSmbalmer # We're trying link a shared library against a static one 28733eed67faSmbalmer # but the system doesn't support it. 28743eed67faSmbalmer 28753eed67faSmbalmer # Just print a warning and add the library to dependency_libs so 28763eed67faSmbalmer # that the program can be linked against the static library. 28773eed67faSmbalmer $echo 28783eed67faSmbalmer $echo "*** Warning: This system can not link to static lib archive $lib." 28793eed67faSmbalmer $echo "*** I have the capability to make that library automatically link in when" 28803eed67faSmbalmer $echo "*** you link to this library. But I can only do this if you have a" 28813eed67faSmbalmer $echo "*** shared version of the library, which you do not appear to have." 28823eed67faSmbalmer if test "$module" = yes; then 28833eed67faSmbalmer $echo "*** But as you try to build a module library, libtool will still create " 28843eed67faSmbalmer $echo "*** a static module, that should work as long as the dlopening application" 28853eed67faSmbalmer $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 28863eed67faSmbalmer if test -z "$global_symbol_pipe"; then 28873eed67faSmbalmer $echo 28883eed67faSmbalmer $echo "*** However, this would only work if libtool was able to extract symbol" 28893eed67faSmbalmer $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 28903eed67faSmbalmer $echo "*** not find such a program. So, this module is probably useless." 28913eed67faSmbalmer $echo "*** \`nm' from GNU binutils and a full rebuild may help." 28923eed67faSmbalmer fi 28933eed67faSmbalmer if test "$build_old_libs" = no; then 28943eed67faSmbalmer build_libtool_libs=module 28953eed67faSmbalmer build_old_libs=yes 28963eed67faSmbalmer else 28973eed67faSmbalmer build_libtool_libs=no 28983eed67faSmbalmer fi 28993eed67faSmbalmer fi 29003eed67faSmbalmer else 29013eed67faSmbalmer deplibs="$dir/$old_library $deplibs" 29023eed67faSmbalmer link_static=yes 29033eed67faSmbalmer fi 29043eed67faSmbalmer fi # link shared/static library? 29053eed67faSmbalmer 29063eed67faSmbalmer if test "$linkmode" = lib; then 29073eed67faSmbalmer if test -n "$dependency_libs" && 29083eed67faSmbalmer { test "$hardcode_into_libs" != yes || 29093eed67faSmbalmer test "$build_old_libs" = yes || 29103eed67faSmbalmer test "$link_static" = yes; }; then 29113eed67faSmbalmer # Extract -R from dependency_libs 29123eed67faSmbalmer temp_deplibs= 29133eed67faSmbalmer for libdir in $dependency_libs; do 29143eed67faSmbalmer case $libdir in 29153eed67faSmbalmer -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 29163eed67faSmbalmer case " $xrpath " in 29173eed67faSmbalmer *" $temp_xrpath "*) ;; 29183eed67faSmbalmer *) xrpath="$xrpath $temp_xrpath";; 29193eed67faSmbalmer esac;; 29203eed67faSmbalmer *) temp_deplibs="$temp_deplibs $libdir";; 29213eed67faSmbalmer esac 29223eed67faSmbalmer done 29233eed67faSmbalmer dependency_libs="$temp_deplibs" 29243eed67faSmbalmer fi 29253eed67faSmbalmer 29263eed67faSmbalmer newlib_search_path="$newlib_search_path $absdir" 29273eed67faSmbalmer # Link against this library 29283eed67faSmbalmer test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 29293eed67faSmbalmer # ... and its dependency_libs 29303eed67faSmbalmer tmp_libs= 29313eed67faSmbalmer for deplib in $dependency_libs; do 29323eed67faSmbalmer newdependency_libs="$deplib $newdependency_libs" 29333eed67faSmbalmer if test "X$duplicate_deps" = "Xyes" ; then 29343eed67faSmbalmer case "$tmp_libs " in 29353eed67faSmbalmer *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 29363eed67faSmbalmer esac 29373eed67faSmbalmer fi 29383eed67faSmbalmer tmp_libs="$tmp_libs $deplib" 29393eed67faSmbalmer done 29403eed67faSmbalmer 29413eed67faSmbalmer if test "$link_all_deplibs" != no; then 29423eed67faSmbalmer # Add the search paths of all dependency libraries 29433eed67faSmbalmer for deplib in $dependency_libs; do 29443eed67faSmbalmer case $deplib in 29453eed67faSmbalmer -L*) path="$deplib" ;; 29463eed67faSmbalmer *.la) 29473eed67faSmbalmer dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 29483eed67faSmbalmer test "X$dir" = "X$deplib" && dir="." 29493eed67faSmbalmer # We need an absolute path. 29503eed67faSmbalmer case $dir in 29513eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 29523eed67faSmbalmer *) 29533eed67faSmbalmer absdir=`cd "$dir" && pwd` 29543eed67faSmbalmer if test -z "$absdir"; then 29553eed67faSmbalmer $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 29563eed67faSmbalmer absdir="$dir" 29573eed67faSmbalmer fi 29583eed67faSmbalmer ;; 29593eed67faSmbalmer esac 29603eed67faSmbalmer if grep "^installed=no" $deplib > /dev/null; then 29613eed67faSmbalmer path="$absdir/$objdir" 29623eed67faSmbalmer else 29633eed67faSmbalmer eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 29643eed67faSmbalmer if test -z "$libdir"; then 29653eed67faSmbalmer $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 29663eed67faSmbalmer exit $EXIT_FAILURE 29673eed67faSmbalmer fi 29683eed67faSmbalmer if test "$absdir" != "$libdir"; then 29693eed67faSmbalmer $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 29703eed67faSmbalmer fi 29713eed67faSmbalmer path="$absdir" 29723eed67faSmbalmer fi 29733eed67faSmbalmer depdepl= 29743eed67faSmbalmer case $host in 29753eed67faSmbalmer *-*-darwin*) 29763eed67faSmbalmer # we do not want to link against static libs, 29773eed67faSmbalmer # but need to link against shared 29783eed67faSmbalmer eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 29793eed67faSmbalmer eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 29803eed67faSmbalmer if test -n "$deplibrary_names" ; then 29813eed67faSmbalmer for tmp in $deplibrary_names ; do 29823eed67faSmbalmer depdepl=$tmp 29833eed67faSmbalmer done 29843eed67faSmbalmer if test -f "$deplibdir/$depdepl" ; then 29853eed67faSmbalmer depdepl="$deplibdir/$depdepl" 29863eed67faSmbalmer elif test -f "$path/$depdepl" ; then 29873eed67faSmbalmer depdepl="$path/$depdepl" 29883eed67faSmbalmer else 29893eed67faSmbalmer # Can't find it, oh well... 29903eed67faSmbalmer depdepl= 29913eed67faSmbalmer fi 29923eed67faSmbalmer # do not add paths which are already there 29933eed67faSmbalmer case " $newlib_search_path " in 29943eed67faSmbalmer *" $path "*) ;; 29953eed67faSmbalmer *) newlib_search_path="$newlib_search_path $path";; 29963eed67faSmbalmer esac 29973eed67faSmbalmer fi 29983eed67faSmbalmer path="" 29993eed67faSmbalmer ;; 30003eed67faSmbalmer *) 30013eed67faSmbalmer path="-L$path" 30023eed67faSmbalmer ;; 30033eed67faSmbalmer esac 30043eed67faSmbalmer ;; 30053eed67faSmbalmer -l*) 30063eed67faSmbalmer case $host in 30073eed67faSmbalmer *-*-darwin*) 30083eed67faSmbalmer # Again, we only want to link against shared libraries 30093eed67faSmbalmer eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 30103eed67faSmbalmer for tmp in $newlib_search_path ; do 30113eed67faSmbalmer if test -f "$tmp/lib$tmp_libs.dylib" ; then 30123eed67faSmbalmer eval depdepl="$tmp/lib$tmp_libs.dylib" 30133eed67faSmbalmer break 30143eed67faSmbalmer fi 30153eed67faSmbalmer done 30163eed67faSmbalmer path="" 30173eed67faSmbalmer ;; 30183eed67faSmbalmer *) continue ;; 30193eed67faSmbalmer esac 30203eed67faSmbalmer ;; 30213eed67faSmbalmer *) continue ;; 30223eed67faSmbalmer esac 30233eed67faSmbalmer case " $deplibs " in 30243eed67faSmbalmer *" $path "*) ;; 30253eed67faSmbalmer *) deplibs="$path $deplibs" ;; 30263eed67faSmbalmer esac 30273eed67faSmbalmer case " $deplibs " in 30283eed67faSmbalmer *" $depdepl "*) ;; 30293eed67faSmbalmer *) deplibs="$depdepl $deplibs" ;; 30303eed67faSmbalmer esac 30313eed67faSmbalmer done 30323eed67faSmbalmer fi # link_all_deplibs != no 30333eed67faSmbalmer fi # linkmode = lib 30343eed67faSmbalmer done # for deplib in $libs 30353eed67faSmbalmer dependency_libs="$newdependency_libs" 30363eed67faSmbalmer if test "$pass" = dlpreopen; then 30373eed67faSmbalmer # Link the dlpreopened libraries before other libraries 30383eed67faSmbalmer for deplib in $save_deplibs; do 30393eed67faSmbalmer deplibs="$deplib $deplibs" 30403eed67faSmbalmer done 30413eed67faSmbalmer fi 30423eed67faSmbalmer if test "$pass" != dlopen; then 30433eed67faSmbalmer if test "$pass" != conv; then 30443eed67faSmbalmer # Make sure lib_search_path contains only unique directories. 30453eed67faSmbalmer lib_search_path= 30463eed67faSmbalmer for dir in $newlib_search_path; do 30473eed67faSmbalmer case "$lib_search_path " in 30483eed67faSmbalmer *" $dir "*) ;; 30493eed67faSmbalmer *) lib_search_path="$lib_search_path $dir" ;; 30503eed67faSmbalmer esac 30513eed67faSmbalmer done 30523eed67faSmbalmer newlib_search_path= 30533eed67faSmbalmer fi 30543eed67faSmbalmer 30553eed67faSmbalmer if test "$linkmode,$pass" != "prog,link"; then 30563eed67faSmbalmer vars="deplibs" 30573eed67faSmbalmer else 30583eed67faSmbalmer vars="compile_deplibs finalize_deplibs" 30593eed67faSmbalmer fi 30603eed67faSmbalmer for var in $vars dependency_libs; do 30613eed67faSmbalmer # Add libraries to $var in reverse order 30623eed67faSmbalmer eval tmp_libs=\"\$$var\" 30633eed67faSmbalmer new_libs= 30643eed67faSmbalmer for deplib in $tmp_libs; do 30653eed67faSmbalmer # FIXME: Pedantically, this is the right thing to do, so 30663eed67faSmbalmer # that some nasty dependency loop isn't accidentally 30673eed67faSmbalmer # broken: 30683eed67faSmbalmer #new_libs="$deplib $new_libs" 30693eed67faSmbalmer # Pragmatically, this seems to cause very few problems in 30703eed67faSmbalmer # practice: 30713eed67faSmbalmer case $deplib in 30723eed67faSmbalmer -L*) new_libs="$deplib $new_libs" ;; 30733eed67faSmbalmer -R*) ;; 30743eed67faSmbalmer *) 30753eed67faSmbalmer # And here is the reason: when a library appears more 30763eed67faSmbalmer # than once as an explicit dependence of a library, or 30773eed67faSmbalmer # is implicitly linked in more than once by the 30783eed67faSmbalmer # compiler, it is considered special, and multiple 30793eed67faSmbalmer # occurrences thereof are not removed. Compare this 30803eed67faSmbalmer # with having the same library being listed as a 30813eed67faSmbalmer # dependency of multiple other libraries: in this case, 30823eed67faSmbalmer # we know (pedantically, we assume) the library does not 30833eed67faSmbalmer # need to be listed more than once, so we keep only the 30843eed67faSmbalmer # last copy. This is not always right, but it is rare 30853eed67faSmbalmer # enough that we require users that really mean to play 30863eed67faSmbalmer # such unportable linking tricks to link the library 30873eed67faSmbalmer # using -Wl,-lname, so that libtool does not consider it 30883eed67faSmbalmer # for duplicate removal. 30893eed67faSmbalmer case " $specialdeplibs " in 30903eed67faSmbalmer *" $deplib "*) new_libs="$deplib $new_libs" ;; 30913eed67faSmbalmer *) 30923eed67faSmbalmer case " $new_libs " in 30933eed67faSmbalmer *" $deplib "*) ;; 30943eed67faSmbalmer *) new_libs="$deplib $new_libs" ;; 30953eed67faSmbalmer esac 30963eed67faSmbalmer ;; 30973eed67faSmbalmer esac 30983eed67faSmbalmer ;; 30993eed67faSmbalmer esac 31003eed67faSmbalmer done 31013eed67faSmbalmer tmp_libs= 31023eed67faSmbalmer for deplib in $new_libs; do 31033eed67faSmbalmer case $deplib in 31043eed67faSmbalmer -L*) 31053eed67faSmbalmer case " $tmp_libs " in 31063eed67faSmbalmer *" $deplib "*) ;; 31073eed67faSmbalmer *) tmp_libs="$tmp_libs $deplib" ;; 31083eed67faSmbalmer esac 31093eed67faSmbalmer ;; 31103eed67faSmbalmer *) tmp_libs="$tmp_libs $deplib" ;; 31113eed67faSmbalmer esac 31123eed67faSmbalmer done 31133eed67faSmbalmer eval $var=\"$tmp_libs\" 31143eed67faSmbalmer done # for var 31153eed67faSmbalmer fi 31163eed67faSmbalmer # Last step: remove runtime libs from dependency_libs 31173eed67faSmbalmer # (they stay in deplibs) 31183eed67faSmbalmer tmp_libs= 31193eed67faSmbalmer for i in $dependency_libs ; do 31203eed67faSmbalmer case " $predeps $postdeps $compiler_lib_search_path " in 31213eed67faSmbalmer *" $i "*) 31223eed67faSmbalmer i="" 31233eed67faSmbalmer ;; 31243eed67faSmbalmer esac 31253eed67faSmbalmer if test -n "$i" ; then 31263eed67faSmbalmer tmp_libs="$tmp_libs $i" 31273eed67faSmbalmer fi 31283eed67faSmbalmer done 31293eed67faSmbalmer dependency_libs=$tmp_libs 31303eed67faSmbalmer done # for pass 31313eed67faSmbalmer if test "$linkmode" = prog; then 31323eed67faSmbalmer dlfiles="$newdlfiles" 31333eed67faSmbalmer dlprefiles="$newdlprefiles" 31343eed67faSmbalmer fi 31353eed67faSmbalmer 31363eed67faSmbalmer case $linkmode in 31373eed67faSmbalmer oldlib) 31383eed67faSmbalmer case " $deplibs" in 31393eed67faSmbalmer *\ -l* | *\ -L*) 31403eed67faSmbalmer $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; 31413eed67faSmbalmer esac 31423eed67faSmbalmer 31433eed67faSmbalmer if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 31443eed67faSmbalmer $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 31453eed67faSmbalmer fi 31463eed67faSmbalmer 31473eed67faSmbalmer if test -n "$rpath"; then 31483eed67faSmbalmer $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 31493eed67faSmbalmer fi 31503eed67faSmbalmer 31513eed67faSmbalmer if test -n "$xrpath"; then 31523eed67faSmbalmer $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 31533eed67faSmbalmer fi 31543eed67faSmbalmer 31553eed67faSmbalmer if test -n "$vinfo"; then 31563eed67faSmbalmer $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 31573eed67faSmbalmer fi 31583eed67faSmbalmer 31593eed67faSmbalmer if test -n "$release"; then 31603eed67faSmbalmer $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 31613eed67faSmbalmer fi 31623eed67faSmbalmer 31633eed67faSmbalmer if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 31643eed67faSmbalmer $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 31653eed67faSmbalmer fi 31663eed67faSmbalmer 31673eed67faSmbalmer # Now set the variables for building old libraries. 31683eed67faSmbalmer build_libtool_libs=no 31693eed67faSmbalmer oldlibs="$output" 31703eed67faSmbalmer objs="$objs$old_deplibs" 31713eed67faSmbalmer ;; 31723eed67faSmbalmer 31733eed67faSmbalmer lib) 31743eed67faSmbalmer # Make sure we only generate libraries of the form `libNAME.la'. 31753eed67faSmbalmer case $outputname in 31763eed67faSmbalmer lib*) 31773eed67faSmbalmer name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 31783eed67faSmbalmer eval shared_ext=\"$shrext_cmds\" 31793eed67faSmbalmer eval libname=\"$libname_spec\" 31803eed67faSmbalmer ;; 31813eed67faSmbalmer *) 31823eed67faSmbalmer if test "$module" = no; then 31833eed67faSmbalmer $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 31843eed67faSmbalmer $echo "$help" 1>&2 31853eed67faSmbalmer exit $EXIT_FAILURE 31863eed67faSmbalmer fi 31873eed67faSmbalmer if test "$need_lib_prefix" != no; then 31883eed67faSmbalmer # Add the "lib" prefix for modules if required 31893eed67faSmbalmer name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 31903eed67faSmbalmer eval shared_ext=\"$shrext_cmds\" 31913eed67faSmbalmer eval libname=\"$libname_spec\" 31923eed67faSmbalmer else 31933eed67faSmbalmer libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 31943eed67faSmbalmer fi 31953eed67faSmbalmer ;; 31963eed67faSmbalmer esac 31973eed67faSmbalmer 31983eed67faSmbalmer if test -n "$objs"; then 31993eed67faSmbalmer if test "$deplibs_check_method" != pass_all; then 32003eed67faSmbalmer $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 32013eed67faSmbalmer exit $EXIT_FAILURE 32023eed67faSmbalmer else 32033eed67faSmbalmer $echo 32043eed67faSmbalmer $echo "*** Warning: Linking the shared library $output against the non-libtool" 32053eed67faSmbalmer $echo "*** objects $objs is not portable!" 32063eed67faSmbalmer libobjs="$libobjs $objs" 32073eed67faSmbalmer fi 32083eed67faSmbalmer fi 32093eed67faSmbalmer 32103eed67faSmbalmer if test "$dlself" != no; then 32113eed67faSmbalmer $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 32123eed67faSmbalmer fi 32133eed67faSmbalmer 32143eed67faSmbalmer set dummy $rpath 32153eed67faSmbalmer if test "$#" -gt 2; then 32163eed67faSmbalmer $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 32173eed67faSmbalmer fi 32183eed67faSmbalmer install_libdir="$2" 32193eed67faSmbalmer 32203eed67faSmbalmer oldlibs= 32213eed67faSmbalmer if test -z "$rpath"; then 32223eed67faSmbalmer if test "$build_libtool_libs" = yes; then 32233eed67faSmbalmer # Building a libtool convenience library. 32243eed67faSmbalmer # Some compilers have problems with a `.al' extension so 32253eed67faSmbalmer # convenience libraries should have the same extension an 32263eed67faSmbalmer # archive normally would. 32273eed67faSmbalmer oldlibs="$output_objdir/$libname.$libext $oldlibs" 32283eed67faSmbalmer build_libtool_libs=convenience 32293eed67faSmbalmer build_old_libs=yes 32303eed67faSmbalmer fi 32313eed67faSmbalmer 32323eed67faSmbalmer if test -n "$vinfo"; then 32333eed67faSmbalmer $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 32343eed67faSmbalmer fi 32353eed67faSmbalmer 32363eed67faSmbalmer if test -n "$release"; then 32373eed67faSmbalmer $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 32383eed67faSmbalmer fi 32393eed67faSmbalmer else 32403eed67faSmbalmer 32413eed67faSmbalmer # Parse the version information argument. 32423eed67faSmbalmer save_ifs="$IFS"; IFS=':' 32433eed67faSmbalmer set dummy $vinfo 0 0 0 32443eed67faSmbalmer IFS="$save_ifs" 32453eed67faSmbalmer 32463eed67faSmbalmer if test -n "$8"; then 32473eed67faSmbalmer $echo "$modename: too many parameters to \`-version-info'" 1>&2 32483eed67faSmbalmer $echo "$help" 1>&2 32493eed67faSmbalmer exit $EXIT_FAILURE 32503eed67faSmbalmer fi 32513eed67faSmbalmer 32523eed67faSmbalmer # convert absolute version numbers to libtool ages 32533eed67faSmbalmer # this retains compatibility with .la files and attempts 32543eed67faSmbalmer # to make the code below a bit more comprehensible 32553eed67faSmbalmer 32563eed67faSmbalmer case $vinfo_number in 32573eed67faSmbalmer yes) 32583eed67faSmbalmer number_major="$2" 32593eed67faSmbalmer number_minor="$3" 32603eed67faSmbalmer number_revision="$4" 32613eed67faSmbalmer # 32623eed67faSmbalmer # There are really only two kinds -- those that 32633eed67faSmbalmer # use the current revision as the major version 32643eed67faSmbalmer # and those that subtract age and use age as 32653eed67faSmbalmer # a minor version. But, then there is irix 32663eed67faSmbalmer # which has an extra 1 added just for fun 32673eed67faSmbalmer # 32683eed67faSmbalmer case $version_type in 32693eed67faSmbalmer darwin|linux|osf|windows|none) 32703eed67faSmbalmer current=`expr $number_major + $number_minor` 32713eed67faSmbalmer age="$number_minor" 32723eed67faSmbalmer revision="$number_revision" 32733eed67faSmbalmer ;; 32743eed67faSmbalmer freebsd-aout|freebsd-elf|sunos) 32753eed67faSmbalmer current="$number_major" 32763eed67faSmbalmer revision="$number_minor" 32773eed67faSmbalmer age="0" 32783eed67faSmbalmer ;; 32793eed67faSmbalmer irix|nonstopux) 32803eed67faSmbalmer current=`expr $number_major + $number_minor` 32813eed67faSmbalmer age="$number_minor" 32823eed67faSmbalmer revision="$number_minor" 32833eed67faSmbalmer lt_irix_increment=no 32843eed67faSmbalmer ;; 32853eed67faSmbalmer esac 32863eed67faSmbalmer ;; 32873eed67faSmbalmer no) 32883eed67faSmbalmer current="$2" 32893eed67faSmbalmer revision="$3" 32903eed67faSmbalmer age="$4" 32913eed67faSmbalmer ;; 32923eed67faSmbalmer esac 32933eed67faSmbalmer 32943eed67faSmbalmer # Check that each of the things are valid numbers. 32953eed67faSmbalmer case $current in 32963eed67faSmbalmer 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 32973eed67faSmbalmer *) 32983eed67faSmbalmer $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 32993eed67faSmbalmer $echo "$modename: \`$vinfo' is not valid version information" 1>&2 33003eed67faSmbalmer exit $EXIT_FAILURE 33013eed67faSmbalmer ;; 33023eed67faSmbalmer esac 33033eed67faSmbalmer 33043eed67faSmbalmer case $revision in 33053eed67faSmbalmer 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 33063eed67faSmbalmer *) 33073eed67faSmbalmer $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 33083eed67faSmbalmer $echo "$modename: \`$vinfo' is not valid version information" 1>&2 33093eed67faSmbalmer exit $EXIT_FAILURE 33103eed67faSmbalmer ;; 33113eed67faSmbalmer esac 33123eed67faSmbalmer 33133eed67faSmbalmer case $age in 33143eed67faSmbalmer 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 33153eed67faSmbalmer *) 33163eed67faSmbalmer $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 33173eed67faSmbalmer $echo "$modename: \`$vinfo' is not valid version information" 1>&2 33183eed67faSmbalmer exit $EXIT_FAILURE 33193eed67faSmbalmer ;; 33203eed67faSmbalmer esac 33213eed67faSmbalmer 33223eed67faSmbalmer if test "$age" -gt "$current"; then 33233eed67faSmbalmer $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 33243eed67faSmbalmer $echo "$modename: \`$vinfo' is not valid version information" 1>&2 33253eed67faSmbalmer exit $EXIT_FAILURE 33263eed67faSmbalmer fi 33273eed67faSmbalmer 33283eed67faSmbalmer # Calculate the version variables. 33293eed67faSmbalmer major= 33303eed67faSmbalmer versuffix= 33313eed67faSmbalmer verstring= 33323eed67faSmbalmer case $version_type in 33333eed67faSmbalmer none) ;; 33343eed67faSmbalmer 33353eed67faSmbalmer darwin) 33363eed67faSmbalmer # Like Linux, but with the current version available in 33373eed67faSmbalmer # verstring for coding it into the library header 33383eed67faSmbalmer major=.`expr $current - $age` 33393eed67faSmbalmer versuffix="$major.$age.$revision" 33403eed67faSmbalmer # Darwin ld doesn't like 0 for these options... 33413eed67faSmbalmer minor_current=`expr $current + 1` 33423eed67faSmbalmer xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 33433eed67faSmbalmer verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 33443eed67faSmbalmer ;; 33453eed67faSmbalmer 33463eed67faSmbalmer freebsd-aout) 33473eed67faSmbalmer major=".$current" 33483eed67faSmbalmer versuffix=".$current.$revision"; 33493eed67faSmbalmer ;; 33503eed67faSmbalmer 33513eed67faSmbalmer freebsd-elf) 33523eed67faSmbalmer major=".$current" 33533eed67faSmbalmer versuffix=".$current"; 33543eed67faSmbalmer ;; 33553eed67faSmbalmer 33563eed67faSmbalmer irix | nonstopux) 33573eed67faSmbalmer if test "X$lt_irix_increment" = "Xno"; then 33583eed67faSmbalmer major=`expr $current - $age` 33593eed67faSmbalmer else 33603eed67faSmbalmer major=`expr $current - $age + 1` 33613eed67faSmbalmer fi 33623eed67faSmbalmer case $version_type in 33633eed67faSmbalmer nonstopux) verstring_prefix=nonstopux ;; 33643eed67faSmbalmer *) verstring_prefix=sgi ;; 33653eed67faSmbalmer esac 33663eed67faSmbalmer verstring="$verstring_prefix$major.$revision" 33673eed67faSmbalmer 33683eed67faSmbalmer # Add in all the interfaces that we are compatible with. 33693eed67faSmbalmer loop=$revision 33703eed67faSmbalmer while test "$loop" -ne 0; do 33713eed67faSmbalmer iface=`expr $revision - $loop` 33723eed67faSmbalmer loop=`expr $loop - 1` 33733eed67faSmbalmer verstring="$verstring_prefix$major.$iface:$verstring" 33743eed67faSmbalmer done 33753eed67faSmbalmer 33763eed67faSmbalmer # Before this point, $major must not contain `.'. 33773eed67faSmbalmer major=.$major 33783eed67faSmbalmer versuffix="$major.$revision" 33793eed67faSmbalmer ;; 33803eed67faSmbalmer 33813eed67faSmbalmer linux) 33823eed67faSmbalmer major=.`expr $current - $age` 33833eed67faSmbalmer versuffix="$major.$age.$revision" 33843eed67faSmbalmer ;; 33853eed67faSmbalmer 33863eed67faSmbalmer osf) 33873eed67faSmbalmer major=.`expr $current - $age` 33883eed67faSmbalmer versuffix=".$current.$age.$revision" 33893eed67faSmbalmer verstring="$current.$age.$revision" 33903eed67faSmbalmer 33913eed67faSmbalmer # Add in all the interfaces that we are compatible with. 33923eed67faSmbalmer loop=$age 33933eed67faSmbalmer while test "$loop" -ne 0; do 33943eed67faSmbalmer iface=`expr $current - $loop` 33953eed67faSmbalmer loop=`expr $loop - 1` 33963eed67faSmbalmer verstring="$verstring:${iface}.0" 33973eed67faSmbalmer done 33983eed67faSmbalmer 33993eed67faSmbalmer # Make executables depend on our current version. 34003eed67faSmbalmer verstring="$verstring:${current}.0" 34013eed67faSmbalmer ;; 34023eed67faSmbalmer 34033eed67faSmbalmer sunos) 34043eed67faSmbalmer major=".$current" 34053eed67faSmbalmer versuffix=".$current.$revision" 34063eed67faSmbalmer ;; 34073eed67faSmbalmer 34083eed67faSmbalmer windows) 34093eed67faSmbalmer # Use '-' rather than '.', since we only want one 34103eed67faSmbalmer # extension on DOS 8.3 filesystems. 34113eed67faSmbalmer major=`expr $current - $age` 34123eed67faSmbalmer versuffix="-$major" 34133eed67faSmbalmer ;; 34143eed67faSmbalmer 34153eed67faSmbalmer *) 34163eed67faSmbalmer $echo "$modename: unknown library version type \`$version_type'" 1>&2 34173eed67faSmbalmer $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 34183eed67faSmbalmer exit $EXIT_FAILURE 34193eed67faSmbalmer ;; 34203eed67faSmbalmer esac 34213eed67faSmbalmer 34223eed67faSmbalmer # Clear the version info if we defaulted, and they specified a release. 34233eed67faSmbalmer if test -z "$vinfo" && test -n "$release"; then 34243eed67faSmbalmer major= 34253eed67faSmbalmer case $version_type in 34263eed67faSmbalmer darwin) 34273eed67faSmbalmer # we can't check for "0.0" in archive_cmds due to quoting 34283eed67faSmbalmer # problems, so we reset it completely 34293eed67faSmbalmer verstring= 34303eed67faSmbalmer ;; 34313eed67faSmbalmer *) 34323eed67faSmbalmer verstring="0.0" 34333eed67faSmbalmer ;; 34343eed67faSmbalmer esac 34353eed67faSmbalmer if test "$need_version" = no; then 34363eed67faSmbalmer versuffix= 34373eed67faSmbalmer else 34383eed67faSmbalmer versuffix=".0.0" 34393eed67faSmbalmer fi 34403eed67faSmbalmer fi 34413eed67faSmbalmer 34423eed67faSmbalmer # Remove version info from name if versioning should be avoided 34433eed67faSmbalmer if test "$avoid_version" = yes && test "$need_version" = no; then 34443eed67faSmbalmer major= 34453eed67faSmbalmer versuffix= 34463eed67faSmbalmer verstring="" 34473eed67faSmbalmer else 34483eed67faSmbalmer # XXX 34493eed67faSmbalmer tmp=`echo $libname|sed -e 's,+,_,g' -e 's,-,_,g' -e 's,\.,_,g'` 34503eed67faSmbalmer eval tmp2=\$${tmp}_ltversion 34513eed67faSmbalmer if ! test -z "${SHARED_LIBS_LOG}"; then 34523eed67faSmbalmer if ! test -f ${SHARED_LIBS_LOG}; then 34533eed67faSmbalmer echo "# SHARED_LIBS+= <libname> <obsd version> # <orig version>" >${SHARED_LIBS_LOG} 34543eed67faSmbalmer fi 34553eed67faSmbalmer tmp4=`echo $libname|sed -e 's/^lib//'` 34563eed67faSmbalmer printf "SHARED_LIBS +=\t%-20s %-8s # %s\n" "$tmp4" "$tmp2" "$versuffix" >>${SHARED_LIBS_LOG} 34573eed67faSmbalmer fi 34583eed67faSmbalmer if test -n "$versuffix" && test -n "$tmp2"; then 34593eed67faSmbalmer versuffix=".$tmp2" 34603eed67faSmbalmer fi 34613eed67faSmbalmer fi 34623eed67faSmbalmer 34633eed67faSmbalmer # Check to see if the archive will have undefined symbols. 34643eed67faSmbalmer if test "$allow_undefined" = yes; then 34653eed67faSmbalmer if test "$allow_undefined_flag" = unsupported; then 34663eed67faSmbalmer $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 34673eed67faSmbalmer build_libtool_libs=no 34683eed67faSmbalmer build_old_libs=yes 34693eed67faSmbalmer fi 34703eed67faSmbalmer else 34713eed67faSmbalmer # Don't allow undefined symbols. 34723eed67faSmbalmer allow_undefined_flag="$no_undefined_flag" 34733eed67faSmbalmer fi 34743eed67faSmbalmer fi 34753eed67faSmbalmer 34763eed67faSmbalmer if test "$mode" != relink; then 34773eed67faSmbalmer # Remove our outputs, but don't remove object files since they 34783eed67faSmbalmer # may have been created when compiling PIC objects. 34793eed67faSmbalmer removelist= 34803eed67faSmbalmer tempremovelist=`$echo "$output_objdir/*"` 34813eed67faSmbalmer for p in $tempremovelist; do 34823eed67faSmbalmer case $p in 34833eed67faSmbalmer *.$objext) 34843eed67faSmbalmer ;; 34853eed67faSmbalmer $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 34863eed67faSmbalmer if test "X$precious_files_regex" != "X"; then 34873eed67faSmbalmer if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 34883eed67faSmbalmer then 34893eed67faSmbalmer continue 34903eed67faSmbalmer fi 34913eed67faSmbalmer fi 34923eed67faSmbalmer removelist="$removelist $p" 34933eed67faSmbalmer ;; 34943eed67faSmbalmer *) ;; 34953eed67faSmbalmer esac 34963eed67faSmbalmer done 34973eed67faSmbalmer if test -n "$removelist"; then 34983eed67faSmbalmer $show "${rm}r $removelist" 34993eed67faSmbalmer $run ${rm}r $removelist 35003eed67faSmbalmer fi 35013eed67faSmbalmer fi 35023eed67faSmbalmer 35033eed67faSmbalmer # Now set the variables for building old libraries. 35043eed67faSmbalmer if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 35053eed67faSmbalmer oldlibs="$oldlibs $output_objdir/$libname.$libext" 35063eed67faSmbalmer 35073eed67faSmbalmer # Transform .lo files to .o files. 35083eed67faSmbalmer oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 35093eed67faSmbalmer fi 35103eed67faSmbalmer 35113eed67faSmbalmer # Eliminate all temporary directories. 35123eed67faSmbalmer #for path in $notinst_path; do 35133eed67faSmbalmer # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 35143eed67faSmbalmer # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 35153eed67faSmbalmer # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 35163eed67faSmbalmer #done 35173eed67faSmbalmer 35183eed67faSmbalmer if test -n "$xrpath"; then 35193eed67faSmbalmer # If the user specified any rpath flags, then add them. 35203eed67faSmbalmer temp_xrpath= 35213eed67faSmbalmer for libdir in $xrpath; do 35223eed67faSmbalmer temp_xrpath="$temp_xrpath -R$libdir" 35233eed67faSmbalmer case "$finalize_rpath " in 35243eed67faSmbalmer *" $libdir "*) ;; 35253eed67faSmbalmer *) finalize_rpath="$finalize_rpath $libdir" ;; 35263eed67faSmbalmer esac 35273eed67faSmbalmer done 35283eed67faSmbalmer if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 35293eed67faSmbalmer dependency_libs="$temp_xrpath $dependency_libs" 35303eed67faSmbalmer fi 35313eed67faSmbalmer fi 35323eed67faSmbalmer 35333eed67faSmbalmer # Make sure dlfiles contains only unique files that won't be dlpreopened 35343eed67faSmbalmer old_dlfiles="$dlfiles" 35353eed67faSmbalmer dlfiles= 35363eed67faSmbalmer for lib in $old_dlfiles; do 35373eed67faSmbalmer case " $dlprefiles $dlfiles " in 35383eed67faSmbalmer *" $lib "*) ;; 35393eed67faSmbalmer *) dlfiles="$dlfiles $lib" ;; 35403eed67faSmbalmer esac 35413eed67faSmbalmer done 35423eed67faSmbalmer 35433eed67faSmbalmer # Make sure dlprefiles contains only unique files 35443eed67faSmbalmer old_dlprefiles="$dlprefiles" 35453eed67faSmbalmer dlprefiles= 35463eed67faSmbalmer for lib in $old_dlprefiles; do 35473eed67faSmbalmer case "$dlprefiles " in 35483eed67faSmbalmer *" $lib "*) ;; 35493eed67faSmbalmer *) dlprefiles="$dlprefiles $lib" ;; 35503eed67faSmbalmer esac 35513eed67faSmbalmer done 35523eed67faSmbalmer 35533eed67faSmbalmer if test "$build_libtool_libs" = yes; then 35543eed67faSmbalmer if test -n "$rpath"; then 35553eed67faSmbalmer case $host in 35563eed67faSmbalmer *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 35573eed67faSmbalmer # these systems don't actually have a c library (as such)! 35583eed67faSmbalmer ;; 35593eed67faSmbalmer *-*-rhapsody* | *-*-darwin1.[012]) 35603eed67faSmbalmer # Rhapsody C library is in the System framework 35613eed67faSmbalmer deplibs="$deplibs -framework System" 35623eed67faSmbalmer ;; 35633eed67faSmbalmer *-*-netbsd*) 35643eed67faSmbalmer # Don't link with libc until the a.out ld.so is fixed. 35653eed67faSmbalmer ;; 35663eed67faSmbalmer *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 35673eed67faSmbalmer # Do not include libc due to us having libc/libc_r. 35683eed67faSmbalmer ;; 35693eed67faSmbalmer *-*-sco3.2v5* | *-*-sco5v6*) 35703eed67faSmbalmer # Causes problems with __ctype 35713eed67faSmbalmer ;; 35723eed67faSmbalmer *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 35733eed67faSmbalmer # Compiler inserts libc in the correct place for threads to work 35743eed67faSmbalmer ;; 35753eed67faSmbalmer *) 35763eed67faSmbalmer # Add libc to deplibs on all other systems if necessary. 35773eed67faSmbalmer if test "$build_libtool_need_lc" = "yes"; then 35783eed67faSmbalmer deplibs="$deplibs -lc" 35793eed67faSmbalmer fi 35803eed67faSmbalmer ;; 35813eed67faSmbalmer esac 35823eed67faSmbalmer fi 35833eed67faSmbalmer 35843eed67faSmbalmer # Transform deplibs into only deplibs that can be linked in shared. 35853eed67faSmbalmer name_save=$name 35863eed67faSmbalmer libname_save=$libname 35873eed67faSmbalmer release_save=$release 35883eed67faSmbalmer versuffix_save=$versuffix 35893eed67faSmbalmer major_save=$major 35903eed67faSmbalmer # I'm not sure if I'm treating the release correctly. I think 35913eed67faSmbalmer # release should show up in the -l (ie -lgmp5) so we don't want to 35923eed67faSmbalmer # add it in twice. Is that correct? 35933eed67faSmbalmer release="" 35943eed67faSmbalmer versuffix="" 35953eed67faSmbalmer major="" 35963eed67faSmbalmer newdeplibs= 35973eed67faSmbalmer droppeddeps=no 35983eed67faSmbalmer case $deplibs_check_method in 35993eed67faSmbalmer pass_all) 36003eed67faSmbalmer # Don't check for shared/static. Everything works. 36013eed67faSmbalmer # This might be a little naive. We might want to check 36023eed67faSmbalmer # whether the library exists or not. But this is on 36033eed67faSmbalmer # osf3 & osf4 and I'm not really sure... Just 36043eed67faSmbalmer # implementing what was already the behavior. 36053eed67faSmbalmer newdeplibs=$deplibs 36063eed67faSmbalmer ;; 36073eed67faSmbalmer test_compile) 36083eed67faSmbalmer # This code stresses the "libraries are programs" paradigm to its 36093eed67faSmbalmer # limits. Maybe even breaks it. We compile a program, linking it 36103eed67faSmbalmer # against the deplibs as a proxy for the library. Then we can check 36113eed67faSmbalmer # whether they linked in statically or dynamically with ldd. 36123eed67faSmbalmer $rm conftest.c 36133eed67faSmbalmer cat > conftest.c <<EOF 36143eed67faSmbalmer int main() { return 0; } 36153eed67faSmbalmerEOF 36163eed67faSmbalmer $rm conftest 36173eed67faSmbalmer if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 36183eed67faSmbalmer ldd_output=`ldd conftest` 36193eed67faSmbalmer for i in $deplibs; do 36203eed67faSmbalmer name=`expr $i : '-l\(.*\)'` 36213eed67faSmbalmer # If $name is empty we are operating on a -L argument. 36223eed67faSmbalmer if test "$name" != "" && test "$name" != "0"; then 36233eed67faSmbalmer if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 36243eed67faSmbalmer case " $predeps $postdeps " in 36253eed67faSmbalmer *" $i "*) 36263eed67faSmbalmer newdeplibs="$newdeplibs $i" 36273eed67faSmbalmer i="" 36283eed67faSmbalmer ;; 36293eed67faSmbalmer esac 36303eed67faSmbalmer fi 36313eed67faSmbalmer if test -n "$i" ; then 36323eed67faSmbalmer libname=`eval \\$echo \"$libname_spec\"` 36333eed67faSmbalmer deplib_matches=`eval \\$echo \"$library_names_spec\"` 36343eed67faSmbalmer set dummy $deplib_matches 36353eed67faSmbalmer deplib_match=$2 36363eed67faSmbalmer if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 36373eed67faSmbalmer newdeplibs="$newdeplibs $i" 36383eed67faSmbalmer else 36393eed67faSmbalmer droppeddeps=yes 36403eed67faSmbalmer $echo 36413eed67faSmbalmer $echo "*** Warning: dynamic linker does not accept needed library $i." 36423eed67faSmbalmer $echo "*** I have the capability to make that library automatically link in when" 36433eed67faSmbalmer $echo "*** you link to this library. But I can only do this if you have a" 36443eed67faSmbalmer $echo "*** shared version of the library, which I believe you do not have" 36453eed67faSmbalmer $echo "*** because a test_compile did reveal that the linker did not use it for" 36463eed67faSmbalmer $echo "*** its dynamic dependency list that programs get resolved with at runtime." 36473eed67faSmbalmer fi 36483eed67faSmbalmer fi 36493eed67faSmbalmer else 36503eed67faSmbalmer newdeplibs="$newdeplibs $i" 36513eed67faSmbalmer fi 36523eed67faSmbalmer done 36533eed67faSmbalmer else 36543eed67faSmbalmer # Error occurred in the first compile. Let's try to salvage 36553eed67faSmbalmer # the situation: Compile a separate program for each library. 36563eed67faSmbalmer for i in $deplibs; do 36573eed67faSmbalmer name=`expr $i : '-l\(.*\)'` 36583eed67faSmbalmer # If $name is empty we are operating on a -L argument. 36593eed67faSmbalmer if test "$name" != "" && test "$name" != "0"; then 36603eed67faSmbalmer $rm conftest 36613eed67faSmbalmer if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 36623eed67faSmbalmer ldd_output=`ldd conftest` 36633eed67faSmbalmer if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 36643eed67faSmbalmer case " $predeps $postdeps " in 36653eed67faSmbalmer *" $i "*) 36663eed67faSmbalmer newdeplibs="$newdeplibs $i" 36673eed67faSmbalmer i="" 36683eed67faSmbalmer ;; 36693eed67faSmbalmer esac 36703eed67faSmbalmer fi 36713eed67faSmbalmer if test -n "$i" ; then 36723eed67faSmbalmer libname=`eval \\$echo \"$libname_spec\"` 36733eed67faSmbalmer deplib_matches=`eval \\$echo \"$library_names_spec\"` 36743eed67faSmbalmer set dummy $deplib_matches 36753eed67faSmbalmer deplib_match=$2 36763eed67faSmbalmer if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 36773eed67faSmbalmer newdeplibs="$newdeplibs $i" 36783eed67faSmbalmer else 36793eed67faSmbalmer droppeddeps=yes 36803eed67faSmbalmer $echo 36813eed67faSmbalmer $echo "*** Warning: dynamic linker does not accept needed library $i." 36823eed67faSmbalmer $echo "*** I have the capability to make that library automatically link in when" 36833eed67faSmbalmer $echo "*** you link to this library. But I can only do this if you have a" 36843eed67faSmbalmer $echo "*** shared version of the library, which you do not appear to have" 36853eed67faSmbalmer $echo "*** because a test_compile did reveal that the linker did not use this one" 36863eed67faSmbalmer $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 36873eed67faSmbalmer fi 36883eed67faSmbalmer fi 36893eed67faSmbalmer else 36903eed67faSmbalmer droppeddeps=yes 36913eed67faSmbalmer $echo 36923eed67faSmbalmer $echo "*** Warning! Library $i is needed by this library but I was not able to" 36933eed67faSmbalmer $echo "*** make it link in! You will probably need to install it or some" 36943eed67faSmbalmer $echo "*** library that it depends on before this library will be fully" 36953eed67faSmbalmer $echo "*** functional. Installing it before continuing would be even better." 36963eed67faSmbalmer fi 36973eed67faSmbalmer else 36983eed67faSmbalmer newdeplibs="$newdeplibs $i" 36993eed67faSmbalmer fi 37003eed67faSmbalmer done 37013eed67faSmbalmer fi 37023eed67faSmbalmer ;; 37033eed67faSmbalmer file_magic*) 37043eed67faSmbalmer set dummy $deplibs_check_method 37053eed67faSmbalmer file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 37063eed67faSmbalmer for a_deplib in $deplibs; do 37073eed67faSmbalmer name=`expr $a_deplib : '-l\(.*\)'` 37083eed67faSmbalmer # If $name is empty we are operating on a -L argument. 37093eed67faSmbalmer if test "$name" != "" && test "$name" != "0"; then 37103eed67faSmbalmer if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 37113eed67faSmbalmer case " $predeps $postdeps " in 37123eed67faSmbalmer *" $a_deplib "*) 37133eed67faSmbalmer newdeplibs="$newdeplibs $a_deplib" 37143eed67faSmbalmer a_deplib="" 37153eed67faSmbalmer ;; 37163eed67faSmbalmer esac 37173eed67faSmbalmer fi 37183eed67faSmbalmer if test -n "$a_deplib" ; then 37193eed67faSmbalmer libname=`eval \\$echo \"$libname_spec\"` 37203eed67faSmbalmer for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 37213eed67faSmbalmer potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 37223eed67faSmbalmer for potent_lib in $potential_libs; do 37233eed67faSmbalmer # Follow soft links. 37243eed67faSmbalmer if ls -lLd "$potent_lib" 2>/dev/null \ 37253eed67faSmbalmer | grep " -> " >/dev/null; then 37263eed67faSmbalmer continue 37273eed67faSmbalmer fi 37283eed67faSmbalmer # The statement above tries to avoid entering an 37293eed67faSmbalmer # endless loop below, in case of cyclic links. 37303eed67faSmbalmer # We might still enter an endless loop, since a link 37313eed67faSmbalmer # loop can be closed while we follow links, 37323eed67faSmbalmer # but so what? 37333eed67faSmbalmer potlib="$potent_lib" 37343eed67faSmbalmer while test -h "$potlib" 2>/dev/null; do 37353eed67faSmbalmer potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 37363eed67faSmbalmer case $potliblink in 37373eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 37383eed67faSmbalmer *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 37393eed67faSmbalmer esac 37403eed67faSmbalmer done 37413eed67faSmbalmer if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 37423eed67faSmbalmer | ${SED} 10q \ 37433eed67faSmbalmer | $EGREP "$file_magic_regex" > /dev/null; then 37443eed67faSmbalmer newdeplibs="$newdeplibs $a_deplib" 37453eed67faSmbalmer a_deplib="" 37463eed67faSmbalmer break 2 37473eed67faSmbalmer fi 37483eed67faSmbalmer done 37493eed67faSmbalmer done 37503eed67faSmbalmer fi 37513eed67faSmbalmer if test -n "$a_deplib" ; then 37523eed67faSmbalmer droppeddeps=yes 37533eed67faSmbalmer $echo 37543eed67faSmbalmer $echo "*** Warning: linker path does not have real file for library $a_deplib." 37553eed67faSmbalmer $echo "*** I have the capability to make that library automatically link in when" 37563eed67faSmbalmer $echo "*** you link to this library. But I can only do this if you have a" 37573eed67faSmbalmer $echo "*** shared version of the library, which you do not appear to have" 37583eed67faSmbalmer $echo "*** because I did check the linker path looking for a file starting" 37593eed67faSmbalmer if test -z "$potlib" ; then 37603eed67faSmbalmer $echo "*** with $libname but no candidates were found. (...for file magic test)" 37613eed67faSmbalmer else 37623eed67faSmbalmer $echo "*** with $libname and none of the candidates passed a file format test" 37633eed67faSmbalmer $echo "*** using a file magic. Last file checked: $potlib" 37643eed67faSmbalmer fi 37653eed67faSmbalmer fi 37663eed67faSmbalmer else 37673eed67faSmbalmer # Add a -L argument. 37683eed67faSmbalmer newdeplibs="$newdeplibs $a_deplib" 37693eed67faSmbalmer fi 37703eed67faSmbalmer done # Gone through all deplibs. 37713eed67faSmbalmer ;; 37723eed67faSmbalmer match_pattern*) 37733eed67faSmbalmer set dummy $deplibs_check_method 37743eed67faSmbalmer match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 37753eed67faSmbalmer for a_deplib in $deplibs; do 37763eed67faSmbalmer name=`expr $a_deplib : '-l\(.*\)'` 37773eed67faSmbalmer # If $name is empty we are operating on a -L argument. 37783eed67faSmbalmer if test -n "$name" && test "$name" != "0"; then 37793eed67faSmbalmer if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 37803eed67faSmbalmer case " $predeps $postdeps " in 37813eed67faSmbalmer *" $a_deplib "*) 37823eed67faSmbalmer newdeplibs="$newdeplibs $a_deplib" 37833eed67faSmbalmer a_deplib="" 37843eed67faSmbalmer ;; 37853eed67faSmbalmer esac 37863eed67faSmbalmer fi 37873eed67faSmbalmer if test -n "$a_deplib" ; then 37883eed67faSmbalmer libname=`eval \\$echo \"$libname_spec\"` 37893eed67faSmbalmer for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 37903eed67faSmbalmer potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 37913eed67faSmbalmer for potent_lib in $potential_libs; do 37923eed67faSmbalmer potlib="$potent_lib" # see symlink-check above in file_magic test 37933eed67faSmbalmer if eval $echo \"$potent_lib\" 2>/dev/null \ 37943eed67faSmbalmer | ${SED} 10q \ 37953eed67faSmbalmer | $EGREP "$match_pattern_regex" > /dev/null; then 37963eed67faSmbalmer newdeplibs="$newdeplibs $a_deplib" 37973eed67faSmbalmer a_deplib="" 37983eed67faSmbalmer break 2 37993eed67faSmbalmer fi 38003eed67faSmbalmer done 38013eed67faSmbalmer done 38023eed67faSmbalmer fi 38033eed67faSmbalmer if test -n "$a_deplib" ; then 38043eed67faSmbalmer droppeddeps=yes 38053eed67faSmbalmer $echo 38063eed67faSmbalmer $echo "*** Warning: linker path does not have real file for library $a_deplib." 38073eed67faSmbalmer $echo "*** I have the capability to make that library automatically link in when" 38083eed67faSmbalmer $echo "*** you link to this library. But I can only do this if you have a" 38093eed67faSmbalmer $echo "*** shared version of the library, which you do not appear to have" 38103eed67faSmbalmer $echo "*** because I did check the linker path looking for a file starting" 38113eed67faSmbalmer if test -z "$potlib" ; then 38123eed67faSmbalmer $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 38133eed67faSmbalmer else 38143eed67faSmbalmer $echo "*** with $libname and none of the candidates passed a file format test" 38153eed67faSmbalmer $echo "*** using a regex pattern. Last file checked: $potlib" 38163eed67faSmbalmer fi 38173eed67faSmbalmer fi 38183eed67faSmbalmer else 38193eed67faSmbalmer # Add a -L argument. 38203eed67faSmbalmer newdeplibs="$newdeplibs $a_deplib" 38213eed67faSmbalmer fi 38223eed67faSmbalmer done # Gone through all deplibs. 38233eed67faSmbalmer ;; 38243eed67faSmbalmer none | unknown | *) 38253eed67faSmbalmer newdeplibs="" 38263eed67faSmbalmer tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 38273eed67faSmbalmer -e 's/ -[LR][^ ]*//g'` 38283eed67faSmbalmer if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 38293eed67faSmbalmer for i in $predeps $postdeps ; do 38303eed67faSmbalmer # can't use Xsed below, because $i might contain '/' 38313eed67faSmbalmer tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 38323eed67faSmbalmer done 38333eed67faSmbalmer fi 38343eed67faSmbalmer if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 38353eed67faSmbalmer | grep . >/dev/null; then 38363eed67faSmbalmer $echo 38373eed67faSmbalmer if test "X$deplibs_check_method" = "Xnone"; then 38383eed67faSmbalmer $echo "*** Warning: inter-library dependencies are not supported in this platform." 38393eed67faSmbalmer else 38403eed67faSmbalmer $echo "*** Warning: inter-library dependencies are not known to be supported." 38413eed67faSmbalmer fi 38423eed67faSmbalmer $echo "*** All declared inter-library dependencies are being dropped." 38433eed67faSmbalmer droppeddeps=yes 38443eed67faSmbalmer fi 38453eed67faSmbalmer ;; 38463eed67faSmbalmer esac 38473eed67faSmbalmer versuffix=$versuffix_save 38483eed67faSmbalmer major=$major_save 38493eed67faSmbalmer release=$release_save 38503eed67faSmbalmer libname=$libname_save 38513eed67faSmbalmer name=$name_save 38523eed67faSmbalmer 38533eed67faSmbalmer case $host in 38543eed67faSmbalmer *-*-rhapsody* | *-*-darwin1.[012]) 38553eed67faSmbalmer # On Rhapsody replace the C library is the System framework 38563eed67faSmbalmer newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 38573eed67faSmbalmer ;; 38583eed67faSmbalmer esac 38593eed67faSmbalmer 38603eed67faSmbalmer if test "$droppeddeps" = yes; then 38613eed67faSmbalmer if test "$module" = yes; then 38623eed67faSmbalmer $echo 38633eed67faSmbalmer $echo "*** Warning: libtool could not satisfy all declared inter-library" 38643eed67faSmbalmer $echo "*** dependencies of module $libname. Therefore, libtool will create" 38653eed67faSmbalmer $echo "*** a static module, that should work as long as the dlopening" 38663eed67faSmbalmer $echo "*** application is linked with the -dlopen flag." 38673eed67faSmbalmer if test -z "$global_symbol_pipe"; then 38683eed67faSmbalmer $echo 38693eed67faSmbalmer $echo "*** However, this would only work if libtool was able to extract symbol" 38703eed67faSmbalmer $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 38713eed67faSmbalmer $echo "*** not find such a program. So, this module is probably useless." 38723eed67faSmbalmer $echo "*** \`nm' from GNU binutils and a full rebuild may help." 38733eed67faSmbalmer fi 38743eed67faSmbalmer if test "$build_old_libs" = no; then 38753eed67faSmbalmer oldlibs="$output_objdir/$libname.$libext" 38763eed67faSmbalmer build_libtool_libs=module 38773eed67faSmbalmer build_old_libs=yes 38783eed67faSmbalmer else 38793eed67faSmbalmer build_libtool_libs=no 38803eed67faSmbalmer fi 38813eed67faSmbalmer else 38823eed67faSmbalmer $echo "*** The inter-library dependencies that have been dropped here will be" 38833eed67faSmbalmer $echo "*** automatically added whenever a program is linked with this library" 38843eed67faSmbalmer $echo "*** or is declared to -dlopen it." 38853eed67faSmbalmer 38863eed67faSmbalmer if test "$allow_undefined" = no; then 38873eed67faSmbalmer $echo 38883eed67faSmbalmer $echo "*** Since this library must not contain undefined symbols," 38893eed67faSmbalmer $echo "*** because either the platform does not support them or" 38903eed67faSmbalmer $echo "*** it was explicitly requested with -no-undefined," 38913eed67faSmbalmer $echo "*** libtool will only create a static version of it." 38923eed67faSmbalmer if test "$build_old_libs" = no; then 38933eed67faSmbalmer oldlibs="$output_objdir/$libname.$libext" 38943eed67faSmbalmer build_libtool_libs=module 38953eed67faSmbalmer build_old_libs=yes 38963eed67faSmbalmer else 38973eed67faSmbalmer build_libtool_libs=no 38983eed67faSmbalmer fi 38993eed67faSmbalmer fi 39003eed67faSmbalmer fi 39013eed67faSmbalmer fi 39023eed67faSmbalmer # Done checking deplibs! 39033eed67faSmbalmer deplibs=$newdeplibs 39043eed67faSmbalmer fi 39053eed67faSmbalmer 39063eed67faSmbalmer 39073eed67faSmbalmer # move library search paths that coincide with paths to not yet 39083eed67faSmbalmer # installed libraries to the beginning of the library search list 39093eed67faSmbalmer new_libs= 39103eed67faSmbalmer for path in $notinst_path; do 39113eed67faSmbalmer case " $new_libs " in 39123eed67faSmbalmer *" -L$path/$objdir "*) ;; 39133eed67faSmbalmer *) 39143eed67faSmbalmer case " $deplibs " in 39153eed67faSmbalmer *" -L$path/$objdir "*) 39163eed67faSmbalmer new_libs="$new_libs -L$path/$objdir" ;; 39173eed67faSmbalmer esac 39183eed67faSmbalmer ;; 39193eed67faSmbalmer esac 39203eed67faSmbalmer done 39213eed67faSmbalmer for deplib in $deplibs; do 39223eed67faSmbalmer case $deplib in 39233eed67faSmbalmer -L*) 39243eed67faSmbalmer case " $new_libs " in 39253eed67faSmbalmer *" $deplib "*) ;; 39263eed67faSmbalmer *) new_libs="$new_libs $deplib" ;; 39273eed67faSmbalmer esac 39283eed67faSmbalmer ;; 39293eed67faSmbalmer *) new_libs="$new_libs $deplib" ;; 39303eed67faSmbalmer esac 39313eed67faSmbalmer done 39323eed67faSmbalmer deplibs="$new_libs" 39333eed67faSmbalmer 39343eed67faSmbalmer 39353eed67faSmbalmer # All the library-specific variables (install_libdir is set above). 39363eed67faSmbalmer library_names= 39373eed67faSmbalmer old_library= 39383eed67faSmbalmer dlname= 39393eed67faSmbalmer 39403eed67faSmbalmer # Test again, we may have decided not to build it any more 39413eed67faSmbalmer if test "$build_libtool_libs" = yes; then 39423eed67faSmbalmer if test "$hardcode_into_libs" = yes; then 39433eed67faSmbalmer # Hardcode the library paths 39443eed67faSmbalmer hardcode_libdirs= 39453eed67faSmbalmer dep_rpath= 39463eed67faSmbalmer rpath="$finalize_rpath" 39473eed67faSmbalmer test "$mode" != relink && rpath="$compile_rpath$rpath" 39483eed67faSmbalmer for libdir in $rpath; do 39493eed67faSmbalmer if test -n "$hardcode_libdir_flag_spec"; then 39503eed67faSmbalmer if test -n "$hardcode_libdir_separator"; then 39513eed67faSmbalmer if test -z "$hardcode_libdirs"; then 39523eed67faSmbalmer hardcode_libdirs="$libdir" 39533eed67faSmbalmer else 39543eed67faSmbalmer # Just accumulate the unique libdirs. 39553eed67faSmbalmer case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 39563eed67faSmbalmer *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 39573eed67faSmbalmer ;; 39583eed67faSmbalmer *) 39593eed67faSmbalmer hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 39603eed67faSmbalmer ;; 39613eed67faSmbalmer esac 39623eed67faSmbalmer fi 39633eed67faSmbalmer else 39643eed67faSmbalmer eval flag=\"$hardcode_libdir_flag_spec\" 39653eed67faSmbalmer dep_rpath="$dep_rpath $flag" 39663eed67faSmbalmer fi 39673eed67faSmbalmer elif test -n "$runpath_var"; then 39683eed67faSmbalmer case "$perm_rpath " in 39693eed67faSmbalmer *" $libdir "*) ;; 39703eed67faSmbalmer *) perm_rpath="$perm_rpath $libdir" ;; 39713eed67faSmbalmer esac 39723eed67faSmbalmer fi 39733eed67faSmbalmer done 39743eed67faSmbalmer # Substitute the hardcoded libdirs into the rpath. 39753eed67faSmbalmer if test -n "$hardcode_libdir_separator" && 39763eed67faSmbalmer test -n "$hardcode_libdirs"; then 39773eed67faSmbalmer libdir="$hardcode_libdirs" 39783eed67faSmbalmer if test -n "$hardcode_libdir_flag_spec_ld"; then 39793eed67faSmbalmer case $archive_cmds in 39803eed67faSmbalmer *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; 39813eed67faSmbalmer *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; 39823eed67faSmbalmer esac 39833eed67faSmbalmer else 39843eed67faSmbalmer eval dep_rpath=\"$hardcode_libdir_flag_spec\" 39853eed67faSmbalmer fi 39863eed67faSmbalmer fi 39873eed67faSmbalmer if test -n "$runpath_var" && test -n "$perm_rpath"; then 39883eed67faSmbalmer # We should set the runpath_var. 39893eed67faSmbalmer rpath= 39903eed67faSmbalmer for dir in $perm_rpath; do 39913eed67faSmbalmer rpath="$rpath$dir:" 39923eed67faSmbalmer done 39933eed67faSmbalmer eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 39943eed67faSmbalmer fi 39953eed67faSmbalmer test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 39963eed67faSmbalmer fi 39973eed67faSmbalmer 39983eed67faSmbalmer shlibpath="$finalize_shlibpath" 39993eed67faSmbalmer test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 40003eed67faSmbalmer if test -n "$shlibpath"; then 40013eed67faSmbalmer eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 40023eed67faSmbalmer fi 40033eed67faSmbalmer 40043eed67faSmbalmer # Get the real and link names of the library. 40053eed67faSmbalmer eval shared_ext=\"$shrext_cmds\" 40063eed67faSmbalmer eval library_names=\"$library_names_spec\" 40073eed67faSmbalmer set dummy $library_names 40083eed67faSmbalmer realname="$2" 40093eed67faSmbalmer shift; shift 40103eed67faSmbalmer 40113eed67faSmbalmer if test -n "$soname_spec"; then 40123eed67faSmbalmer eval soname=\"$soname_spec\" 40133eed67faSmbalmer else 40143eed67faSmbalmer soname="$realname" 40153eed67faSmbalmer fi 40163eed67faSmbalmer if test -z "$dlname"; then 40173eed67faSmbalmer dlname=$soname 40183eed67faSmbalmer fi 40193eed67faSmbalmer 40203eed67faSmbalmer lib="$output_objdir/$realname" 40213eed67faSmbalmer linknames= 40223eed67faSmbalmer for link 40233eed67faSmbalmer do 40243eed67faSmbalmer linknames="$linknames $link" 40253eed67faSmbalmer done 40263eed67faSmbalmer 40273eed67faSmbalmer # Use standard objects if they are pic 40283eed67faSmbalmer test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 40293eed67faSmbalmer 40303eed67faSmbalmer # Prepare the list of exported symbols 40313eed67faSmbalmer if test -z "$export_symbols"; then 40323eed67faSmbalmer if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 40333eed67faSmbalmer $show "generating symbol list for \`$libname.la'" 40343eed67faSmbalmer export_symbols="$output_objdir/$libname.exp" 40353eed67faSmbalmer $run $rm $export_symbols 40363eed67faSmbalmer cmds=$export_symbols_cmds 40373eed67faSmbalmer save_ifs="$IFS"; IFS='~' 40383eed67faSmbalmer for cmd in $cmds; do 40393eed67faSmbalmer IFS="$save_ifs" 40403eed67faSmbalmer eval cmd=\"$cmd\" 40413eed67faSmbalmer if len=`expr "X$cmd" : ".*"` && 40423eed67faSmbalmer test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 40433eed67faSmbalmer $show "$cmd" 40443eed67faSmbalmer $run eval "$cmd" || exit $? 40453eed67faSmbalmer skipped_export=false 40463eed67faSmbalmer else 40473eed67faSmbalmer # The command line is too long to execute in one step. 40483eed67faSmbalmer $show "using reloadable object file for export list..." 40493eed67faSmbalmer skipped_export=: 40503eed67faSmbalmer # Break out early, otherwise skipped_export may be 40513eed67faSmbalmer # set to false by a later but shorter cmd. 40523eed67faSmbalmer break 40533eed67faSmbalmer fi 40543eed67faSmbalmer done 40553eed67faSmbalmer IFS="$save_ifs" 40563eed67faSmbalmer if test -n "$export_symbols_regex"; then 40573eed67faSmbalmer $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 40583eed67faSmbalmer $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 40593eed67faSmbalmer $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 40603eed67faSmbalmer $run eval '$mv "${export_symbols}T" "$export_symbols"' 40613eed67faSmbalmer fi 40623eed67faSmbalmer fi 40633eed67faSmbalmer fi 40643eed67faSmbalmer 40653eed67faSmbalmer if test -n "$export_symbols" && test -n "$include_expsyms"; then 40663eed67faSmbalmer $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 40673eed67faSmbalmer fi 40683eed67faSmbalmer 40693eed67faSmbalmer tmp_deplibs= 40703eed67faSmbalmer for test_deplib in $deplibs; do 40713eed67faSmbalmer case " $convenience " in 40723eed67faSmbalmer *" $test_deplib "*) ;; 40733eed67faSmbalmer *) 40743eed67faSmbalmer tmp_deplibs="$tmp_deplibs $test_deplib" 40753eed67faSmbalmer ;; 40763eed67faSmbalmer esac 40773eed67faSmbalmer done 40783eed67faSmbalmer deplibs="$tmp_deplibs" 40793eed67faSmbalmer 40803eed67faSmbalmer if test -n "$convenience"; then 40813eed67faSmbalmer if test -n "$whole_archive_flag_spec"; then 40823eed67faSmbalmer save_libobjs=$libobjs 40833eed67faSmbalmer eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 40843eed67faSmbalmer else 40853eed67faSmbalmer gentop="$output_objdir/${outputname}x" 40863eed67faSmbalmer generated="$generated $gentop" 40873eed67faSmbalmer 40883eed67faSmbalmer func_extract_archives $gentop $convenience 40893eed67faSmbalmer libobjs="$libobjs $func_extract_archives_result" 40903eed67faSmbalmer fi 40913eed67faSmbalmer fi 40923eed67faSmbalmer 40933eed67faSmbalmer if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 40943eed67faSmbalmer eval flag=\"$thread_safe_flag_spec\" 40953eed67faSmbalmer linker_flags="$linker_flags $flag" 40963eed67faSmbalmer fi 40973eed67faSmbalmer 40983eed67faSmbalmer # Make a backup of the uninstalled library when relinking 40993eed67faSmbalmer if test "$mode" = relink; then 41003eed67faSmbalmer $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 41013eed67faSmbalmer fi 41023eed67faSmbalmer 41033eed67faSmbalmer # Do each of the archive commands. 41043eed67faSmbalmer if test "$module" = yes && test -n "$module_cmds" ; then 41053eed67faSmbalmer if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 41063eed67faSmbalmer eval test_cmds=\"$module_expsym_cmds\" 41073eed67faSmbalmer cmds=$module_expsym_cmds 41083eed67faSmbalmer else 41093eed67faSmbalmer eval test_cmds=\"$module_cmds\" 41103eed67faSmbalmer cmds=$module_cmds 41113eed67faSmbalmer fi 41123eed67faSmbalmer else 41133eed67faSmbalmer if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 41143eed67faSmbalmer eval test_cmds=\"$archive_expsym_cmds\" 41153eed67faSmbalmer cmds=$archive_expsym_cmds 41163eed67faSmbalmer else 41173eed67faSmbalmer eval test_cmds=\"$archive_cmds\" 41183eed67faSmbalmer cmds=$archive_cmds 41193eed67faSmbalmer fi 41203eed67faSmbalmer fi 41213eed67faSmbalmer 41223eed67faSmbalmer if test "X$skipped_export" != "X:" && 41233eed67faSmbalmer len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 41243eed67faSmbalmer test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 41253eed67faSmbalmer : 41263eed67faSmbalmer else 41273eed67faSmbalmer # The command line is too long to link in one step, link piecewise. 41283eed67faSmbalmer $echo "creating reloadable object files..." 41293eed67faSmbalmer 41303eed67faSmbalmer # Save the value of $output and $libobjs because we want to 41313eed67faSmbalmer # use them later. If we have whole_archive_flag_spec, we 41323eed67faSmbalmer # want to use save_libobjs as it was before 41333eed67faSmbalmer # whole_archive_flag_spec was expanded, because we can't 41343eed67faSmbalmer # assume the linker understands whole_archive_flag_spec. 41353eed67faSmbalmer # This may have to be revisited, in case too many 41363eed67faSmbalmer # convenience libraries get linked in and end up exceeding 41373eed67faSmbalmer # the spec. 41383eed67faSmbalmer if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 41393eed67faSmbalmer save_libobjs=$libobjs 41403eed67faSmbalmer fi 41413eed67faSmbalmer save_output=$output 41423eed67faSmbalmer output_la=`$echo "X$output" | $Xsed -e "$basename"` 41433eed67faSmbalmer 41443eed67faSmbalmer # Clear the reloadable object creation command queue and 41453eed67faSmbalmer # initialize k to one. 41463eed67faSmbalmer test_cmds= 41473eed67faSmbalmer concat_cmds= 41483eed67faSmbalmer objlist= 41493eed67faSmbalmer delfiles= 41503eed67faSmbalmer last_robj= 41513eed67faSmbalmer k=1 41523eed67faSmbalmer output=$output_objdir/$output_la-${k}.$objext 41533eed67faSmbalmer # Loop over the list of objects to be linked. 41543eed67faSmbalmer for obj in $save_libobjs 41553eed67faSmbalmer do 41563eed67faSmbalmer eval test_cmds=\"$reload_cmds $objlist $last_robj\" 41573eed67faSmbalmer if test "X$objlist" = X || 41583eed67faSmbalmer { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 41593eed67faSmbalmer test "$len" -le "$max_cmd_len"; }; then 41603eed67faSmbalmer objlist="$objlist $obj" 41613eed67faSmbalmer else 41623eed67faSmbalmer # The command $test_cmds is almost too long, add a 41633eed67faSmbalmer # command to the queue. 41643eed67faSmbalmer if test "$k" -eq 1 ; then 41653eed67faSmbalmer # The first file doesn't have a previous command to add. 41663eed67faSmbalmer eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 41673eed67faSmbalmer else 41683eed67faSmbalmer # All subsequent reloadable object files will link in 41693eed67faSmbalmer # the last one created. 41703eed67faSmbalmer eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 41713eed67faSmbalmer fi 41723eed67faSmbalmer last_robj=$output_objdir/$output_la-${k}.$objext 41733eed67faSmbalmer k=`expr $k + 1` 41743eed67faSmbalmer output=$output_objdir/$output_la-${k}.$objext 41753eed67faSmbalmer objlist=$obj 41763eed67faSmbalmer len=1 41773eed67faSmbalmer fi 41783eed67faSmbalmer done 41793eed67faSmbalmer # Handle the remaining objects by creating one last 41803eed67faSmbalmer # reloadable object file. All subsequent reloadable object 41813eed67faSmbalmer # files will link in the last one created. 41823eed67faSmbalmer test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 41833eed67faSmbalmer eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 41843eed67faSmbalmer 41853eed67faSmbalmer if ${skipped_export-false}; then 41863eed67faSmbalmer $show "generating symbol list for \`$libname.la'" 41873eed67faSmbalmer export_symbols="$output_objdir/$libname.exp" 41883eed67faSmbalmer $run $rm $export_symbols 41893eed67faSmbalmer libobjs=$output 41903eed67faSmbalmer # Append the command to create the export file. 41913eed67faSmbalmer eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 41923eed67faSmbalmer fi 41933eed67faSmbalmer 41943eed67faSmbalmer # Set up a command to remove the reloadable object files 41953eed67faSmbalmer # after they are used. 41963eed67faSmbalmer i=0 41973eed67faSmbalmer while test "$i" -lt "$k" 41983eed67faSmbalmer do 41993eed67faSmbalmer i=`expr $i + 1` 42003eed67faSmbalmer delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 42013eed67faSmbalmer done 42023eed67faSmbalmer 42033eed67faSmbalmer $echo "creating a temporary reloadable object file: $output" 42043eed67faSmbalmer 42053eed67faSmbalmer # Loop through the commands generated above and execute them. 42063eed67faSmbalmer save_ifs="$IFS"; IFS='~' 42073eed67faSmbalmer for cmd in $concat_cmds; do 42083eed67faSmbalmer IFS="$save_ifs" 42093eed67faSmbalmer $show "$cmd" 42103eed67faSmbalmer $run eval "$cmd" || exit $? 42113eed67faSmbalmer done 42123eed67faSmbalmer IFS="$save_ifs" 42133eed67faSmbalmer 42143eed67faSmbalmer libobjs=$output 42153eed67faSmbalmer # Restore the value of output. 42163eed67faSmbalmer output=$save_output 42173eed67faSmbalmer 42183eed67faSmbalmer if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 42193eed67faSmbalmer eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 42203eed67faSmbalmer fi 42213eed67faSmbalmer # Expand the library linking commands again to reset the 42223eed67faSmbalmer # value of $libobjs for piecewise linking. 42233eed67faSmbalmer 42243eed67faSmbalmer # Do each of the archive commands. 42253eed67faSmbalmer if test "$module" = yes && test -n "$module_cmds" ; then 42263eed67faSmbalmer if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 42273eed67faSmbalmer cmds=$module_expsym_cmds 42283eed67faSmbalmer else 42293eed67faSmbalmer cmds=$module_cmds 42303eed67faSmbalmer fi 42313eed67faSmbalmer else 42323eed67faSmbalmer if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 42333eed67faSmbalmer cmds=$archive_expsym_cmds 42343eed67faSmbalmer else 42353eed67faSmbalmer cmds=$archive_cmds 42363eed67faSmbalmer fi 42373eed67faSmbalmer fi 42383eed67faSmbalmer 42393eed67faSmbalmer # Append the command to remove the reloadable object files 42403eed67faSmbalmer # to the just-reset $cmds. 42413eed67faSmbalmer eval cmds=\"\$cmds~\$rm $delfiles\" 42423eed67faSmbalmer fi 42433eed67faSmbalmer save_ifs="$IFS"; IFS='~' 42443eed67faSmbalmer for cmd in $cmds; do 42453eed67faSmbalmer IFS="$save_ifs" 42463eed67faSmbalmer eval cmd=\"$cmd\" 42473eed67faSmbalmer $show "$cmd" 42483eed67faSmbalmer $run eval "$cmd" || { 42493eed67faSmbalmer lt_exit=$? 42503eed67faSmbalmer 42513eed67faSmbalmer # Restore the uninstalled library and exit 42523eed67faSmbalmer if test "$mode" = relink; then 42533eed67faSmbalmer $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 42543eed67faSmbalmer fi 42553eed67faSmbalmer 42563eed67faSmbalmer exit $lt_exit 42573eed67faSmbalmer } 42583eed67faSmbalmer done 42593eed67faSmbalmer IFS="$save_ifs" 42603eed67faSmbalmer 42613eed67faSmbalmer # Restore the uninstalled library and exit 42623eed67faSmbalmer if test "$mode" = relink; then 42633eed67faSmbalmer $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 42643eed67faSmbalmer 42653eed67faSmbalmer if test -n "$convenience"; then 42663eed67faSmbalmer if test -z "$whole_archive_flag_spec"; then 42673eed67faSmbalmer $show "${rm}r $gentop" 42683eed67faSmbalmer $run ${rm}r "$gentop" 42693eed67faSmbalmer fi 42703eed67faSmbalmer fi 42713eed67faSmbalmer 42723eed67faSmbalmer exit $EXIT_SUCCESS 42733eed67faSmbalmer fi 42743eed67faSmbalmer 42753eed67faSmbalmer # Create links to the real library. 42763eed67faSmbalmer for linkname in $linknames; do 42773eed67faSmbalmer if test "$realname" != "$linkname"; then 42783eed67faSmbalmer $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 42793eed67faSmbalmer $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 42803eed67faSmbalmer fi 42813eed67faSmbalmer done 42823eed67faSmbalmer 42833eed67faSmbalmer # If -module or -export-dynamic was specified, set the dlname. 42843eed67faSmbalmer if test "$module" = yes || test "$export_dynamic" = yes; then 42853eed67faSmbalmer # On all known operating systems, these are identical. 42863eed67faSmbalmer dlname="$soname" 42873eed67faSmbalmer fi 42883eed67faSmbalmer fi 42893eed67faSmbalmer ;; 42903eed67faSmbalmer 42913eed67faSmbalmer obj) 42923eed67faSmbalmer case " $deplibs" in 42933eed67faSmbalmer *\ -l* | *\ -L*) 42943eed67faSmbalmer $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; 42953eed67faSmbalmer esac 42963eed67faSmbalmer 42973eed67faSmbalmer if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 42983eed67faSmbalmer $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 42993eed67faSmbalmer fi 43003eed67faSmbalmer 43013eed67faSmbalmer if test -n "$rpath"; then 43023eed67faSmbalmer $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 43033eed67faSmbalmer fi 43043eed67faSmbalmer 43053eed67faSmbalmer if test -n "$xrpath"; then 43063eed67faSmbalmer $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 43073eed67faSmbalmer fi 43083eed67faSmbalmer 43093eed67faSmbalmer if test -n "$vinfo"; then 43103eed67faSmbalmer $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 43113eed67faSmbalmer fi 43123eed67faSmbalmer 43133eed67faSmbalmer if test -n "$release"; then 43143eed67faSmbalmer $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 43153eed67faSmbalmer fi 43163eed67faSmbalmer 43173eed67faSmbalmer case $output in 43183eed67faSmbalmer *.lo) 43193eed67faSmbalmer if test -n "$objs$old_deplibs"; then 43203eed67faSmbalmer $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 43213eed67faSmbalmer exit $EXIT_FAILURE 43223eed67faSmbalmer fi 43233eed67faSmbalmer libobj="$output" 43243eed67faSmbalmer obj=`$echo "X$output" | $Xsed -e "$lo2o"` 43253eed67faSmbalmer ;; 43263eed67faSmbalmer *) 43273eed67faSmbalmer libobj= 43283eed67faSmbalmer obj="$output" 43293eed67faSmbalmer ;; 43303eed67faSmbalmer esac 43313eed67faSmbalmer 43323eed67faSmbalmer # Delete the old objects. 43333eed67faSmbalmer $run $rm $obj $libobj 43343eed67faSmbalmer 43353eed67faSmbalmer # Objects from convenience libraries. This assumes 43363eed67faSmbalmer # single-version convenience libraries. Whenever we create 43373eed67faSmbalmer # different ones for PIC/non-PIC, this we'll have to duplicate 43383eed67faSmbalmer # the extraction. 43393eed67faSmbalmer reload_conv_objs= 43403eed67faSmbalmer gentop= 43413eed67faSmbalmer # reload_cmds runs $LD directly, so let us get rid of 43423eed67faSmbalmer # -Wl from whole_archive_flag_spec and hope we can get by with 43433eed67faSmbalmer # turning comma into space.. 43443eed67faSmbalmer wl= 43453eed67faSmbalmer 43463eed67faSmbalmer if test -n "$convenience"; then 43473eed67faSmbalmer if test -n "$whole_archive_flag_spec"; then 43483eed67faSmbalmer eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 43493eed67faSmbalmer reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` 43503eed67faSmbalmer else 43513eed67faSmbalmer gentop="$output_objdir/${obj}x" 43523eed67faSmbalmer generated="$generated $gentop" 43533eed67faSmbalmer 43543eed67faSmbalmer func_extract_archives $gentop $convenience 43553eed67faSmbalmer reload_conv_objs="$reload_objs $func_extract_archives_result" 43563eed67faSmbalmer fi 43573eed67faSmbalmer fi 43583eed67faSmbalmer 43593eed67faSmbalmer # Create the old-style object. 43603eed67faSmbalmer reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 43613eed67faSmbalmer 43623eed67faSmbalmer output="$obj" 43633eed67faSmbalmer cmds=$reload_cmds 43643eed67faSmbalmer save_ifs="$IFS"; IFS='~' 43653eed67faSmbalmer for cmd in $cmds; do 43663eed67faSmbalmer IFS="$save_ifs" 43673eed67faSmbalmer eval cmd=\"$cmd\" 43683eed67faSmbalmer $show "$cmd" 43693eed67faSmbalmer $run eval "$cmd" || exit $? 43703eed67faSmbalmer done 43713eed67faSmbalmer IFS="$save_ifs" 43723eed67faSmbalmer 43733eed67faSmbalmer # Exit if we aren't doing a library object file. 43743eed67faSmbalmer if test -z "$libobj"; then 43753eed67faSmbalmer if test -n "$gentop"; then 43763eed67faSmbalmer $show "${rm}r $gentop" 43773eed67faSmbalmer $run ${rm}r $gentop 43783eed67faSmbalmer fi 43793eed67faSmbalmer 43803eed67faSmbalmer exit $EXIT_SUCCESS 43813eed67faSmbalmer fi 43823eed67faSmbalmer 43833eed67faSmbalmer if test "$build_libtool_libs" != yes; then 43843eed67faSmbalmer if test -n "$gentop"; then 43853eed67faSmbalmer $show "${rm}r $gentop" 43863eed67faSmbalmer $run ${rm}r $gentop 43873eed67faSmbalmer fi 43883eed67faSmbalmer 43893eed67faSmbalmer # Create an invalid libtool object if no PIC, so that we don't 43903eed67faSmbalmer # accidentally link it into a program. 43913eed67faSmbalmer # $show "echo timestamp > $libobj" 43923eed67faSmbalmer # $run eval "echo timestamp > $libobj" || exit $? 43933eed67faSmbalmer exit $EXIT_SUCCESS 43943eed67faSmbalmer fi 43953eed67faSmbalmer 43963eed67faSmbalmer if test -n "$pic_flag" || test "$pic_mode" != default; then 43973eed67faSmbalmer # Only do commands if we really have different PIC objects. 43983eed67faSmbalmer reload_objs="$libobjs $reload_conv_objs" 43993eed67faSmbalmer output="$libobj" 44003eed67faSmbalmer cmds=$reload_cmds 44013eed67faSmbalmer save_ifs="$IFS"; IFS='~' 44023eed67faSmbalmer for cmd in $cmds; do 44033eed67faSmbalmer IFS="$save_ifs" 44043eed67faSmbalmer eval cmd=\"$cmd\" 44053eed67faSmbalmer $show "$cmd" 44063eed67faSmbalmer $run eval "$cmd" || exit $? 44073eed67faSmbalmer done 44083eed67faSmbalmer IFS="$save_ifs" 44093eed67faSmbalmer fi 44103eed67faSmbalmer 44113eed67faSmbalmer if test -n "$gentop"; then 44123eed67faSmbalmer $show "${rm}r $gentop" 44133eed67faSmbalmer $run ${rm}r $gentop 44143eed67faSmbalmer fi 44153eed67faSmbalmer 44163eed67faSmbalmer exit $EXIT_SUCCESS 44173eed67faSmbalmer ;; 44183eed67faSmbalmer 44193eed67faSmbalmer prog) 44203eed67faSmbalmer case $host in 44213eed67faSmbalmer *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 44223eed67faSmbalmer esac 44233eed67faSmbalmer if test -n "$vinfo"; then 44243eed67faSmbalmer $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 44253eed67faSmbalmer fi 44263eed67faSmbalmer 44273eed67faSmbalmer if test -n "$release"; then 44283eed67faSmbalmer $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 44293eed67faSmbalmer fi 44303eed67faSmbalmer 44313eed67faSmbalmer if test "$preload" = yes; then 44323eed67faSmbalmer if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 44333eed67faSmbalmer test "$dlopen_self_static" = unknown; then 44343eed67faSmbalmer $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 44353eed67faSmbalmer fi 44363eed67faSmbalmer fi 44373eed67faSmbalmer 44383eed67faSmbalmer case $host in 44393eed67faSmbalmer *-*-rhapsody* | *-*-darwin1.[012]) 44403eed67faSmbalmer # On Rhapsody replace the C library is the System framework 44413eed67faSmbalmer compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 44423eed67faSmbalmer finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 44433eed67faSmbalmer ;; 44443eed67faSmbalmer esac 44453eed67faSmbalmer 44463eed67faSmbalmer case $host in 44473eed67faSmbalmer *darwin*) 44483eed67faSmbalmer # Don't allow lazy linking, it breaks C++ global constructors 44493eed67faSmbalmer if test "$tagname" = CXX ; then 44503eed67faSmbalmer compile_command="$compile_command ${wl}-bind_at_load" 44513eed67faSmbalmer finalize_command="$finalize_command ${wl}-bind_at_load" 44523eed67faSmbalmer fi 44533eed67faSmbalmer ;; 44543eed67faSmbalmer esac 44553eed67faSmbalmer 44563eed67faSmbalmer 44573eed67faSmbalmer # move library search paths that coincide with paths to not yet 44583eed67faSmbalmer # installed libraries to the beginning of the library search list 44593eed67faSmbalmer new_libs= 44603eed67faSmbalmer for path in $notinst_path; do 44613eed67faSmbalmer case " $new_libs " in 44623eed67faSmbalmer *" -L$path/$objdir "*) ;; 44633eed67faSmbalmer *) 44643eed67faSmbalmer case " $compile_deplibs " in 44653eed67faSmbalmer *" -L$path/$objdir "*) 44663eed67faSmbalmer new_libs="$new_libs -L$path/$objdir" ;; 44673eed67faSmbalmer esac 44683eed67faSmbalmer ;; 44693eed67faSmbalmer esac 44703eed67faSmbalmer done 44713eed67faSmbalmer for deplib in $compile_deplibs; do 44723eed67faSmbalmer case $deplib in 44733eed67faSmbalmer -L*) 44743eed67faSmbalmer case " $new_libs " in 44753eed67faSmbalmer *" $deplib "*) ;; 44763eed67faSmbalmer *) new_libs="$new_libs $deplib" ;; 44773eed67faSmbalmer esac 44783eed67faSmbalmer ;; 44793eed67faSmbalmer *) new_libs="$new_libs $deplib" ;; 44803eed67faSmbalmer esac 44813eed67faSmbalmer done 44823eed67faSmbalmer compile_deplibs="$new_libs" 44833eed67faSmbalmer 44843eed67faSmbalmer 44853eed67faSmbalmer compile_command="$compile_command $compile_deplibs" 44863eed67faSmbalmer finalize_command="$finalize_command $finalize_deplibs" 44873eed67faSmbalmer 44883eed67faSmbalmer if test -n "$rpath$xrpath"; then 44893eed67faSmbalmer # If the user specified any rpath flags, then add them. 44903eed67faSmbalmer for libdir in $rpath $xrpath; do 44913eed67faSmbalmer # This is the magic to use -rpath. 44923eed67faSmbalmer case "$finalize_rpath " in 44933eed67faSmbalmer *" $libdir "*) ;; 44943eed67faSmbalmer *) finalize_rpath="$finalize_rpath $libdir" ;; 44953eed67faSmbalmer esac 44963eed67faSmbalmer done 44973eed67faSmbalmer fi 44983eed67faSmbalmer 44993eed67faSmbalmer # Now hardcode the library paths 45003eed67faSmbalmer rpath= 45013eed67faSmbalmer hardcode_libdirs= 45023eed67faSmbalmer for libdir in $compile_rpath $finalize_rpath; do 45033eed67faSmbalmer if test -n "$hardcode_libdir_flag_spec"; then 45043eed67faSmbalmer if test -n "$hardcode_libdir_separator"; then 45053eed67faSmbalmer if test -z "$hardcode_libdirs"; then 45063eed67faSmbalmer hardcode_libdirs="$libdir" 45073eed67faSmbalmer else 45083eed67faSmbalmer # Just accumulate the unique libdirs. 45093eed67faSmbalmer case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 45103eed67faSmbalmer *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 45113eed67faSmbalmer ;; 45123eed67faSmbalmer *) 45133eed67faSmbalmer hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 45143eed67faSmbalmer ;; 45153eed67faSmbalmer esac 45163eed67faSmbalmer fi 45173eed67faSmbalmer else 45183eed67faSmbalmer eval flag=\"$hardcode_libdir_flag_spec\" 45193eed67faSmbalmer rpath="$rpath $flag" 45203eed67faSmbalmer fi 45213eed67faSmbalmer elif test -n "$runpath_var"; then 45223eed67faSmbalmer case "$perm_rpath " in 45233eed67faSmbalmer *" $libdir "*) ;; 45243eed67faSmbalmer *) perm_rpath="$perm_rpath $libdir" ;; 45253eed67faSmbalmer esac 45263eed67faSmbalmer fi 45273eed67faSmbalmer case $host in 45283eed67faSmbalmer *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 45293eed67faSmbalmer testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 45303eed67faSmbalmer case :$dllsearchpath: in 45313eed67faSmbalmer *":$libdir:"*) ;; 45323eed67faSmbalmer *) dllsearchpath="$dllsearchpath:$libdir";; 45333eed67faSmbalmer esac 45343eed67faSmbalmer case :$dllsearchpath: in 45353eed67faSmbalmer *":$testbindir:"*) ;; 45363eed67faSmbalmer *) dllsearchpath="$dllsearchpath:$testbindir";; 45373eed67faSmbalmer esac 45383eed67faSmbalmer ;; 45393eed67faSmbalmer esac 45403eed67faSmbalmer done 45413eed67faSmbalmer # Substitute the hardcoded libdirs into the rpath. 45423eed67faSmbalmer if test -n "$hardcode_libdir_separator" && 45433eed67faSmbalmer test -n "$hardcode_libdirs"; then 45443eed67faSmbalmer libdir="$hardcode_libdirs" 45453eed67faSmbalmer eval rpath=\" $hardcode_libdir_flag_spec\" 45463eed67faSmbalmer fi 45473eed67faSmbalmer compile_rpath="$rpath" 45483eed67faSmbalmer 45493eed67faSmbalmer rpath= 45503eed67faSmbalmer hardcode_libdirs= 45513eed67faSmbalmer for libdir in $finalize_rpath; do 45523eed67faSmbalmer if test -n "$hardcode_libdir_flag_spec"; then 45533eed67faSmbalmer if test -n "$hardcode_libdir_separator"; then 45543eed67faSmbalmer if test -z "$hardcode_libdirs"; then 45553eed67faSmbalmer hardcode_libdirs="$libdir" 45563eed67faSmbalmer else 45573eed67faSmbalmer # Just accumulate the unique libdirs. 45583eed67faSmbalmer case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 45593eed67faSmbalmer *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 45603eed67faSmbalmer ;; 45613eed67faSmbalmer *) 45623eed67faSmbalmer hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 45633eed67faSmbalmer ;; 45643eed67faSmbalmer esac 45653eed67faSmbalmer fi 45663eed67faSmbalmer else 45673eed67faSmbalmer eval flag=\"$hardcode_libdir_flag_spec\" 45683eed67faSmbalmer rpath="$rpath $flag" 45693eed67faSmbalmer fi 45703eed67faSmbalmer elif test -n "$runpath_var"; then 45713eed67faSmbalmer case "$finalize_perm_rpath " in 45723eed67faSmbalmer *" $libdir "*) ;; 45733eed67faSmbalmer *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 45743eed67faSmbalmer esac 45753eed67faSmbalmer fi 45763eed67faSmbalmer done 45773eed67faSmbalmer # Substitute the hardcoded libdirs into the rpath. 45783eed67faSmbalmer if test -n "$hardcode_libdir_separator" && 45793eed67faSmbalmer test -n "$hardcode_libdirs"; then 45803eed67faSmbalmer libdir="$hardcode_libdirs" 45813eed67faSmbalmer eval rpath=\" $hardcode_libdir_flag_spec\" 45823eed67faSmbalmer fi 45833eed67faSmbalmer finalize_rpath="$rpath" 45843eed67faSmbalmer 45853eed67faSmbalmer if test -n "$libobjs" && test "$build_old_libs" = yes; then 45863eed67faSmbalmer # Transform all the library objects into standard objects. 45873eed67faSmbalmer compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 45883eed67faSmbalmer finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 45893eed67faSmbalmer fi 45903eed67faSmbalmer 45913eed67faSmbalmer dlsyms= 45923eed67faSmbalmer if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 45933eed67faSmbalmer if test -n "$NM" && test -n "$global_symbol_pipe"; then 45943eed67faSmbalmer dlsyms="${outputname}S.c" 45953eed67faSmbalmer else 45963eed67faSmbalmer $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 45973eed67faSmbalmer fi 45983eed67faSmbalmer fi 45993eed67faSmbalmer 46003eed67faSmbalmer if test -n "$dlsyms"; then 46013eed67faSmbalmer case $dlsyms in 46023eed67faSmbalmer "") ;; 46033eed67faSmbalmer *.c) 46043eed67faSmbalmer # Discover the nlist of each of the dlfiles. 46053eed67faSmbalmer nlist="$output_objdir/${outputname}.nm" 46063eed67faSmbalmer 46073eed67faSmbalmer $show "$rm $nlist ${nlist}S ${nlist}T" 46083eed67faSmbalmer $run $rm "$nlist" "${nlist}S" "${nlist}T" 46093eed67faSmbalmer 46103eed67faSmbalmer # Parse the name list into a source file. 46113eed67faSmbalmer $show "creating $output_objdir/$dlsyms" 46123eed67faSmbalmer 46133eed67faSmbalmer test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 46143eed67faSmbalmer/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 46153eed67faSmbalmer/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 46163eed67faSmbalmer 46173eed67faSmbalmer#ifdef __cplusplus 46183eed67faSmbalmerextern \"C\" { 46193eed67faSmbalmer#endif 46203eed67faSmbalmer 46213eed67faSmbalmer/* Prevent the only kind of declaration conflicts we can make. */ 46223eed67faSmbalmer#define lt_preloaded_symbols some_other_symbol 46233eed67faSmbalmer 46243eed67faSmbalmer/* External symbol declarations for the compiler. */\ 46253eed67faSmbalmer" 46263eed67faSmbalmer 46273eed67faSmbalmer if test "$dlself" = yes; then 46283eed67faSmbalmer $show "generating symbol list for \`$output'" 46293eed67faSmbalmer 46303eed67faSmbalmer test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 46313eed67faSmbalmer 46323eed67faSmbalmer # Add our own program objects to the symbol list. 46333eed67faSmbalmer progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 46343eed67faSmbalmer for arg in $progfiles; do 46353eed67faSmbalmer $show "extracting global C symbols from \`$arg'" 46363eed67faSmbalmer $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 46373eed67faSmbalmer done 46383eed67faSmbalmer 46393eed67faSmbalmer if test -n "$exclude_expsyms"; then 46403eed67faSmbalmer $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 46413eed67faSmbalmer $run eval '$mv "$nlist"T "$nlist"' 46423eed67faSmbalmer fi 46433eed67faSmbalmer 46443eed67faSmbalmer if test -n "$export_symbols_regex"; then 46453eed67faSmbalmer $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 46463eed67faSmbalmer $run eval '$mv "$nlist"T "$nlist"' 46473eed67faSmbalmer fi 46483eed67faSmbalmer 46493eed67faSmbalmer # Prepare the list of exported symbols 46503eed67faSmbalmer if test -z "$export_symbols"; then 46513eed67faSmbalmer export_symbols="$output_objdir/$outputname.exp" 46523eed67faSmbalmer $run $rm $export_symbols 46533eed67faSmbalmer $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 46543eed67faSmbalmer case $host in 46553eed67faSmbalmer *cygwin* | *mingw* ) 46563eed67faSmbalmer $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 46573eed67faSmbalmer $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 46583eed67faSmbalmer ;; 46593eed67faSmbalmer esac 46603eed67faSmbalmer else 46613eed67faSmbalmer $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 46623eed67faSmbalmer $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 46633eed67faSmbalmer $run eval 'mv "$nlist"T "$nlist"' 46643eed67faSmbalmer case $host in 46653eed67faSmbalmer *cygwin* | *mingw* ) 46663eed67faSmbalmer $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 46673eed67faSmbalmer $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 46683eed67faSmbalmer ;; 46693eed67faSmbalmer esac 46703eed67faSmbalmer fi 46713eed67faSmbalmer fi 46723eed67faSmbalmer 46733eed67faSmbalmer for arg in $dlprefiles; do 46743eed67faSmbalmer $show "extracting global C symbols from \`$arg'" 46753eed67faSmbalmer name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 46763eed67faSmbalmer $run eval '$echo ": $name " >> "$nlist"' 46773eed67faSmbalmer $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 46783eed67faSmbalmer done 46793eed67faSmbalmer 46803eed67faSmbalmer if test -z "$run"; then 46813eed67faSmbalmer # Make sure we have at least an empty file. 46823eed67faSmbalmer test -f "$nlist" || : > "$nlist" 46833eed67faSmbalmer 46843eed67faSmbalmer if test -n "$exclude_expsyms"; then 46853eed67faSmbalmer $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 46863eed67faSmbalmer $mv "$nlist"T "$nlist" 46873eed67faSmbalmer fi 46883eed67faSmbalmer 46893eed67faSmbalmer # Try sorting and uniquifying the output. 46903eed67faSmbalmer if grep -v "^: " < "$nlist" | 46913eed67faSmbalmer if sort -k 3 </dev/null >/dev/null 2>&1; then 46923eed67faSmbalmer sort -k 3 46933eed67faSmbalmer else 46943eed67faSmbalmer sort +2 46953eed67faSmbalmer fi | 46963eed67faSmbalmer uniq > "$nlist"S; then 46973eed67faSmbalmer : 46983eed67faSmbalmer else 46993eed67faSmbalmer grep -v "^: " < "$nlist" > "$nlist"S 47003eed67faSmbalmer fi 47013eed67faSmbalmer 47023eed67faSmbalmer if test -f "$nlist"S; then 47033eed67faSmbalmer eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 47043eed67faSmbalmer else 47053eed67faSmbalmer $echo '/* NONE */' >> "$output_objdir/$dlsyms" 47063eed67faSmbalmer fi 47073eed67faSmbalmer 47083eed67faSmbalmer $echo >> "$output_objdir/$dlsyms" "\ 47093eed67faSmbalmer 47103eed67faSmbalmer#undef lt_preloaded_symbols 47113eed67faSmbalmer 47123eed67faSmbalmer#if defined (__STDC__) && __STDC__ 47133eed67faSmbalmer# define lt_ptr void * 47143eed67faSmbalmer#else 47153eed67faSmbalmer# define lt_ptr char * 47163eed67faSmbalmer# define const 47173eed67faSmbalmer#endif 47183eed67faSmbalmer 47193eed67faSmbalmer/* The mapping between symbol names and symbols. */ 47203eed67faSmbalmer" 47213eed67faSmbalmer 47223eed67faSmbalmer case $host in 47233eed67faSmbalmer *cygwin* | *mingw* ) 47243eed67faSmbalmer $echo >> "$output_objdir/$dlsyms" "\ 47253eed67faSmbalmer/* DATA imports from DLLs on WIN32 can't be const, because 47263eed67faSmbalmer runtime relocations are performed -- see ld's documentation 47273eed67faSmbalmer on pseudo-relocs */ 47283eed67faSmbalmerstruct { 47293eed67faSmbalmer" 47303eed67faSmbalmer ;; 47313eed67faSmbalmer * ) 47323eed67faSmbalmer $echo >> "$output_objdir/$dlsyms" "\ 47333eed67faSmbalmerconst struct { 47343eed67faSmbalmer" 47353eed67faSmbalmer ;; 47363eed67faSmbalmer esac 47373eed67faSmbalmer 47383eed67faSmbalmer 47393eed67faSmbalmer $echo >> "$output_objdir/$dlsyms" "\ 47403eed67faSmbalmer const char *name; 47413eed67faSmbalmer lt_ptr address; 47423eed67faSmbalmer} 47433eed67faSmbalmerlt_preloaded_symbols[] = 47443eed67faSmbalmer{\ 47453eed67faSmbalmer" 47463eed67faSmbalmer 47473eed67faSmbalmer eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 47483eed67faSmbalmer 47493eed67faSmbalmer $echo >> "$output_objdir/$dlsyms" "\ 47503eed67faSmbalmer {0, (lt_ptr) 0} 47513eed67faSmbalmer}; 47523eed67faSmbalmer 47533eed67faSmbalmer/* This works around a problem in FreeBSD linker */ 47543eed67faSmbalmer#ifdef FREEBSD_WORKAROUND 47553eed67faSmbalmerstatic const void *lt_preloaded_setup() { 47563eed67faSmbalmer return lt_preloaded_symbols; 47573eed67faSmbalmer} 47583eed67faSmbalmer#endif 47593eed67faSmbalmer 47603eed67faSmbalmer#ifdef __cplusplus 47613eed67faSmbalmer} 47623eed67faSmbalmer#endif\ 47633eed67faSmbalmer" 47643eed67faSmbalmer fi 47653eed67faSmbalmer 47663eed67faSmbalmer pic_flag_for_symtable= 47673eed67faSmbalmer case $host in 47683eed67faSmbalmer # compiling the symbol table file with pic_flag works around 47693eed67faSmbalmer # a FreeBSD bug that causes programs to crash when -lm is 47703eed67faSmbalmer # linked before any other PIC object. But we must not use 47713eed67faSmbalmer # pic_flag when linking with -static. The problem exists in 47723eed67faSmbalmer # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 47733eed67faSmbalmer *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 47743eed67faSmbalmer case "$compile_command " in 47753eed67faSmbalmer *" -static "*) ;; 47763eed67faSmbalmer *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 47773eed67faSmbalmer esac;; 47783eed67faSmbalmer *-*-hpux*) 47793eed67faSmbalmer case "$compile_command " in 47803eed67faSmbalmer *" -static "*) ;; 47813eed67faSmbalmer *) pic_flag_for_symtable=" $pic_flag";; 47823eed67faSmbalmer esac 47833eed67faSmbalmer esac 47843eed67faSmbalmer 47853eed67faSmbalmer # Now compile the dynamic symbol file. 47863eed67faSmbalmer $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 47873eed67faSmbalmer $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 47883eed67faSmbalmer 47893eed67faSmbalmer # Clean up the generated files. 47903eed67faSmbalmer $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 47913eed67faSmbalmer $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 47923eed67faSmbalmer 47933eed67faSmbalmer # Transform the symbol file into the correct name. 47943eed67faSmbalmer case $host in 47953eed67faSmbalmer *cygwin* | *mingw* ) 47963eed67faSmbalmer if test -f "$output_objdir/${outputname}.def" ; then 47973eed67faSmbalmer compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` 47983eed67faSmbalmer finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` 47993eed67faSmbalmer else 48003eed67faSmbalmer compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 48013eed67faSmbalmer finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 48023eed67faSmbalmer fi 48033eed67faSmbalmer ;; 48043eed67faSmbalmer * ) 48053eed67faSmbalmer compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 48063eed67faSmbalmer finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 48073eed67faSmbalmer ;; 48083eed67faSmbalmer esac 48093eed67faSmbalmer ;; 48103eed67faSmbalmer *) 48113eed67faSmbalmer $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 48123eed67faSmbalmer exit $EXIT_FAILURE 48133eed67faSmbalmer ;; 48143eed67faSmbalmer esac 48153eed67faSmbalmer else 48163eed67faSmbalmer # We keep going just in case the user didn't refer to 48173eed67faSmbalmer # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 48183eed67faSmbalmer # really was required. 48193eed67faSmbalmer 48203eed67faSmbalmer # Nullify the symbol file. 48213eed67faSmbalmer compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` 48223eed67faSmbalmer finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` 48233eed67faSmbalmer fi 48243eed67faSmbalmer 48253eed67faSmbalmer if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 48263eed67faSmbalmer # Replace the output file specification. 48273eed67faSmbalmer compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` 48283eed67faSmbalmer link_command="$compile_command$compile_rpath" 48293eed67faSmbalmer 48303eed67faSmbalmer # We have no uninstalled library dependencies, so finalize right now. 48313eed67faSmbalmer $show "$link_command" 48323eed67faSmbalmer $run eval "$link_command" 48333eed67faSmbalmer exit_status=$? 48343eed67faSmbalmer 48353eed67faSmbalmer # Delete the generated files. 48363eed67faSmbalmer if test -n "$dlsyms"; then 48373eed67faSmbalmer $show "$rm $output_objdir/${outputname}S.${objext}" 48383eed67faSmbalmer $run $rm "$output_objdir/${outputname}S.${objext}" 48393eed67faSmbalmer fi 48403eed67faSmbalmer 48413eed67faSmbalmer exit $exit_status 48423eed67faSmbalmer fi 48433eed67faSmbalmer 48443eed67faSmbalmer if test -n "$shlibpath_var"; then 48453eed67faSmbalmer # We should set the shlibpath_var 48463eed67faSmbalmer rpath= 48473eed67faSmbalmer for dir in $temp_rpath; do 48483eed67faSmbalmer case $dir in 48493eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) 48503eed67faSmbalmer # Absolute path. 48513eed67faSmbalmer rpath="$rpath$dir:" 48523eed67faSmbalmer ;; 48533eed67faSmbalmer *) 48543eed67faSmbalmer # Relative path: add a thisdir entry. 48553eed67faSmbalmer rpath="$rpath\$thisdir/$dir:" 48563eed67faSmbalmer ;; 48573eed67faSmbalmer esac 48583eed67faSmbalmer done 48593eed67faSmbalmer temp_rpath="$rpath" 48603eed67faSmbalmer fi 48613eed67faSmbalmer 48623eed67faSmbalmer if test -n "$compile_shlibpath$finalize_shlibpath"; then 48633eed67faSmbalmer compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 48643eed67faSmbalmer fi 48653eed67faSmbalmer if test -n "$finalize_shlibpath"; then 48663eed67faSmbalmer finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 48673eed67faSmbalmer fi 48683eed67faSmbalmer 48693eed67faSmbalmer compile_var= 48703eed67faSmbalmer finalize_var= 48713eed67faSmbalmer if test -n "$runpath_var"; then 48723eed67faSmbalmer if test -n "$perm_rpath"; then 48733eed67faSmbalmer # We should set the runpath_var. 48743eed67faSmbalmer rpath= 48753eed67faSmbalmer for dir in $perm_rpath; do 48763eed67faSmbalmer rpath="$rpath$dir:" 48773eed67faSmbalmer done 48783eed67faSmbalmer compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 48793eed67faSmbalmer fi 48803eed67faSmbalmer if test -n "$finalize_perm_rpath"; then 48813eed67faSmbalmer # We should set the runpath_var. 48823eed67faSmbalmer rpath= 48833eed67faSmbalmer for dir in $finalize_perm_rpath; do 48843eed67faSmbalmer rpath="$rpath$dir:" 48853eed67faSmbalmer done 48863eed67faSmbalmer finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 48873eed67faSmbalmer fi 48883eed67faSmbalmer fi 48893eed67faSmbalmer 48903eed67faSmbalmer if test "$no_install" = yes; then 48913eed67faSmbalmer # We don't need to create a wrapper script. 48923eed67faSmbalmer link_command="$compile_var$compile_command$compile_rpath" 48933eed67faSmbalmer # Replace the output file specification. 48943eed67faSmbalmer link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 48953eed67faSmbalmer # Delete the old output file. 48963eed67faSmbalmer $run $rm $output 48973eed67faSmbalmer # Link the executable and exit 48983eed67faSmbalmer $show "$link_command" 48993eed67faSmbalmer $run eval "$link_command" || exit $? 49003eed67faSmbalmer exit $EXIT_SUCCESS 49013eed67faSmbalmer fi 49023eed67faSmbalmer 49033eed67faSmbalmer if test "$hardcode_action" = relink; then 49043eed67faSmbalmer # Fast installation is not supported 49053eed67faSmbalmer link_command="$compile_var$compile_command$compile_rpath" 49063eed67faSmbalmer relink_command="$finalize_var$finalize_command$finalize_rpath" 49073eed67faSmbalmer 49083eed67faSmbalmer $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 49093eed67faSmbalmer $echo "$modename: \`$output' will be relinked during installation" 1>&2 49103eed67faSmbalmer else 49113eed67faSmbalmer if test "$fast_install" != no; then 49123eed67faSmbalmer link_command="$finalize_var$compile_command$finalize_rpath" 49133eed67faSmbalmer if test "$fast_install" = yes; then 49143eed67faSmbalmer relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` 49153eed67faSmbalmer else 49163eed67faSmbalmer # fast_install is set to needless 49173eed67faSmbalmer relink_command= 49183eed67faSmbalmer fi 49193eed67faSmbalmer else 49203eed67faSmbalmer link_command="$compile_var$compile_command$compile_rpath" 49213eed67faSmbalmer relink_command="$finalize_var$finalize_command$finalize_rpath" 49223eed67faSmbalmer fi 49233eed67faSmbalmer fi 49243eed67faSmbalmer 49253eed67faSmbalmer # Replace the output file specification. 49263eed67faSmbalmer link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 49273eed67faSmbalmer 49283eed67faSmbalmer # Delete the old output files. 49293eed67faSmbalmer $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 49303eed67faSmbalmer 49313eed67faSmbalmer $show "$link_command" 49323eed67faSmbalmer $run eval "$link_command" || exit $? 49333eed67faSmbalmer 49343eed67faSmbalmer # Now create the wrapper script. 49353eed67faSmbalmer $show "creating $output" 49363eed67faSmbalmer 49373eed67faSmbalmer # Quote the relink command for shipping. 49383eed67faSmbalmer if test -n "$relink_command"; then 49393eed67faSmbalmer # Preserve any variables that may affect compiler behavior 49403eed67faSmbalmer for var in $variables_saved_for_relink; do 49413eed67faSmbalmer if eval test -z \"\${$var+set}\"; then 49423eed67faSmbalmer relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 49433eed67faSmbalmer elif eval var_value=\$$var; test -z "$var_value"; then 49443eed67faSmbalmer relink_command="$var=; export $var; $relink_command" 49453eed67faSmbalmer else 49463eed67faSmbalmer var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 49473eed67faSmbalmer relink_command="$var=\"$var_value\"; export $var; $relink_command" 49483eed67faSmbalmer fi 49493eed67faSmbalmer done 49503eed67faSmbalmer relink_command="(cd `pwd`; $relink_command)" 49513eed67faSmbalmer relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` 49523eed67faSmbalmer fi 49533eed67faSmbalmer 49543eed67faSmbalmer # Quote $echo for shipping. 49553eed67faSmbalmer if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 49563eed67faSmbalmer case $progpath in 49573eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 49583eed67faSmbalmer *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 49593eed67faSmbalmer esac 49603eed67faSmbalmer qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 49613eed67faSmbalmer else 49623eed67faSmbalmer qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 49633eed67faSmbalmer fi 49643eed67faSmbalmer 49653eed67faSmbalmer # Only actually do things if our run command is non-null. 49663eed67faSmbalmer if test -z "$run"; then 49673eed67faSmbalmer # win32 will think the script is a binary if it has 49683eed67faSmbalmer # a .exe suffix, so we strip it off here. 49693eed67faSmbalmer case $output in 49703eed67faSmbalmer *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 49713eed67faSmbalmer esac 49723eed67faSmbalmer # test for cygwin because mv fails w/o .exe extensions 49733eed67faSmbalmer case $host in 49743eed67faSmbalmer *cygwin*) 49753eed67faSmbalmer exeext=.exe 49763eed67faSmbalmer outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 49773eed67faSmbalmer *) exeext= ;; 49783eed67faSmbalmer esac 49793eed67faSmbalmer case $host in 49803eed67faSmbalmer *cygwin* | *mingw* ) 49813eed67faSmbalmer output_name=`basename $output` 49823eed67faSmbalmer output_path=`dirname $output` 49833eed67faSmbalmer cwrappersource="$output_path/$objdir/lt-$output_name.c" 49843eed67faSmbalmer cwrapper="$output_path/$output_name.exe" 49853eed67faSmbalmer $rm $cwrappersource $cwrapper 49863eed67faSmbalmer trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 49873eed67faSmbalmer 49883eed67faSmbalmer cat > $cwrappersource <<EOF 49893eed67faSmbalmer 49903eed67faSmbalmer/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 49913eed67faSmbalmer Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 49923eed67faSmbalmer 49933eed67faSmbalmer The $output program cannot be directly executed until all the libtool 49943eed67faSmbalmer libraries that it depends on are installed. 49953eed67faSmbalmer 49963eed67faSmbalmer This wrapper executable should never be moved out of the build directory. 49973eed67faSmbalmer If it is, it will not operate correctly. 49983eed67faSmbalmer 49993eed67faSmbalmer Currently, it simply execs the wrapper *script* "/bin/sh $output", 50003eed67faSmbalmer but could eventually absorb all of the scripts functionality and 50013eed67faSmbalmer exec $objdir/$outputname directly. 50023eed67faSmbalmer*/ 50033eed67faSmbalmerEOF 50043eed67faSmbalmer cat >> $cwrappersource<<"EOF" 50053eed67faSmbalmer#include <stdio.h> 50063eed67faSmbalmer#include <stdlib.h> 50073eed67faSmbalmer#include <unistd.h> 50083eed67faSmbalmer#include <malloc.h> 50093eed67faSmbalmer#include <stdarg.h> 50103eed67faSmbalmer#include <assert.h> 50113eed67faSmbalmer#include <string.h> 50123eed67faSmbalmer#include <ctype.h> 50133eed67faSmbalmer#include <sys/stat.h> 50143eed67faSmbalmer 50153eed67faSmbalmer#if defined(PATH_MAX) 50163eed67faSmbalmer# define LT_PATHMAX PATH_MAX 50173eed67faSmbalmer#elif defined(MAXPATHLEN) 50183eed67faSmbalmer# define LT_PATHMAX MAXPATHLEN 50193eed67faSmbalmer#else 50203eed67faSmbalmer# define LT_PATHMAX 1024 50213eed67faSmbalmer#endif 50223eed67faSmbalmer 50233eed67faSmbalmer#ifndef DIR_SEPARATOR 50243eed67faSmbalmer# define DIR_SEPARATOR '/' 50253eed67faSmbalmer# define PATH_SEPARATOR ':' 50263eed67faSmbalmer#endif 50273eed67faSmbalmer 50283eed67faSmbalmer#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 50293eed67faSmbalmer defined (__OS2__) 50303eed67faSmbalmer# define HAVE_DOS_BASED_FILE_SYSTEM 50313eed67faSmbalmer# ifndef DIR_SEPARATOR_2 50323eed67faSmbalmer# define DIR_SEPARATOR_2 '\\' 50333eed67faSmbalmer# endif 50343eed67faSmbalmer# ifndef PATH_SEPARATOR_2 50353eed67faSmbalmer# define PATH_SEPARATOR_2 ';' 50363eed67faSmbalmer# endif 50373eed67faSmbalmer#endif 50383eed67faSmbalmer 50393eed67faSmbalmer#ifndef DIR_SEPARATOR_2 50403eed67faSmbalmer# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 50413eed67faSmbalmer#else /* DIR_SEPARATOR_2 */ 50423eed67faSmbalmer# define IS_DIR_SEPARATOR(ch) \ 50433eed67faSmbalmer (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 50443eed67faSmbalmer#endif /* DIR_SEPARATOR_2 */ 50453eed67faSmbalmer 50463eed67faSmbalmer#ifndef PATH_SEPARATOR_2 50473eed67faSmbalmer# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 50483eed67faSmbalmer#else /* PATH_SEPARATOR_2 */ 50493eed67faSmbalmer# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 50503eed67faSmbalmer#endif /* PATH_SEPARATOR_2 */ 50513eed67faSmbalmer 50523eed67faSmbalmer#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 50533eed67faSmbalmer#define XFREE(stale) do { \ 50543eed67faSmbalmer if (stale) { free ((void *) stale); stale = 0; } \ 50553eed67faSmbalmer} while (0) 50563eed67faSmbalmer 50573eed67faSmbalmer/* -DDEBUG is fairly common in CFLAGS. */ 50583eed67faSmbalmer#undef DEBUG 50593eed67faSmbalmer#if defined DEBUGWRAPPER 50603eed67faSmbalmer# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 50613eed67faSmbalmer#else 50623eed67faSmbalmer# define DEBUG(format, ...) 50633eed67faSmbalmer#endif 50643eed67faSmbalmer 50653eed67faSmbalmerconst char *program_name = NULL; 50663eed67faSmbalmer 50673eed67faSmbalmervoid * xmalloc (size_t num); 50683eed67faSmbalmerchar * xstrdup (const char *string); 50693eed67faSmbalmerconst char * base_name (const char *name); 50703eed67faSmbalmerchar * find_executable(const char *wrapper); 50713eed67faSmbalmerint check_executable(const char *path); 50723eed67faSmbalmerchar * strendzap(char *str, const char *pat); 50733eed67faSmbalmervoid lt_fatal (const char *message, ...); 50743eed67faSmbalmer 50753eed67faSmbalmerint 50763eed67faSmbalmermain (int argc, char *argv[]) 50773eed67faSmbalmer{ 50783eed67faSmbalmer char **newargz; 50793eed67faSmbalmer int i; 50803eed67faSmbalmer 50813eed67faSmbalmer program_name = (char *) xstrdup (base_name (argv[0])); 50823eed67faSmbalmer DEBUG("(main) argv[0] : %s\n",argv[0]); 50833eed67faSmbalmer DEBUG("(main) program_name : %s\n",program_name); 50843eed67faSmbalmer newargz = XMALLOC(char *, argc+2); 50853eed67faSmbalmerEOF 50863eed67faSmbalmer 50873eed67faSmbalmer cat >> $cwrappersource <<EOF 50883eed67faSmbalmer newargz[0] = (char *) xstrdup("$SHELL"); 50893eed67faSmbalmerEOF 50903eed67faSmbalmer 50913eed67faSmbalmer cat >> $cwrappersource <<"EOF" 50923eed67faSmbalmer newargz[1] = find_executable(argv[0]); 50933eed67faSmbalmer if (newargz[1] == NULL) 50943eed67faSmbalmer lt_fatal("Couldn't find %s", argv[0]); 50953eed67faSmbalmer DEBUG("(main) found exe at : %s\n",newargz[1]); 50963eed67faSmbalmer /* we know the script has the same name, without the .exe */ 50973eed67faSmbalmer /* so make sure newargz[1] doesn't end in .exe */ 50983eed67faSmbalmer strendzap(newargz[1],".exe"); 50993eed67faSmbalmer for (i = 1; i < argc; i++) 51003eed67faSmbalmer newargz[i+1] = xstrdup(argv[i]); 51013eed67faSmbalmer newargz[argc+1] = NULL; 51023eed67faSmbalmer 51033eed67faSmbalmer for (i=0; i<argc+1; i++) 51043eed67faSmbalmer { 51053eed67faSmbalmer DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 51063eed67faSmbalmer ; 51073eed67faSmbalmer } 51083eed67faSmbalmer 51093eed67faSmbalmerEOF 51103eed67faSmbalmer 51113eed67faSmbalmer case $host_os in 51123eed67faSmbalmer mingw*) 51133eed67faSmbalmer cat >> $cwrappersource <<EOF 51143eed67faSmbalmer execv("$SHELL",(char const **)newargz); 51153eed67faSmbalmerEOF 51163eed67faSmbalmer ;; 51173eed67faSmbalmer *) 51183eed67faSmbalmer cat >> $cwrappersource <<EOF 51193eed67faSmbalmer execv("$SHELL",newargz); 51203eed67faSmbalmerEOF 51213eed67faSmbalmer ;; 51223eed67faSmbalmer esac 51233eed67faSmbalmer 51243eed67faSmbalmer cat >> $cwrappersource <<"EOF" 51253eed67faSmbalmer return 127; 51263eed67faSmbalmer} 51273eed67faSmbalmer 51283eed67faSmbalmervoid * 51293eed67faSmbalmerxmalloc (size_t num) 51303eed67faSmbalmer{ 51313eed67faSmbalmer void * p = (void *) malloc (num); 51323eed67faSmbalmer if (!p) 51333eed67faSmbalmer lt_fatal ("Memory exhausted"); 51343eed67faSmbalmer 51353eed67faSmbalmer return p; 51363eed67faSmbalmer} 51373eed67faSmbalmer 51383eed67faSmbalmerchar * 51393eed67faSmbalmerxstrdup (const char *string) 51403eed67faSmbalmer{ 51413eed67faSmbalmer return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 51423eed67faSmbalmer; 51433eed67faSmbalmer} 51443eed67faSmbalmer 51453eed67faSmbalmerconst char * 51463eed67faSmbalmerbase_name (const char *name) 51473eed67faSmbalmer{ 51483eed67faSmbalmer const char *base; 51493eed67faSmbalmer 51503eed67faSmbalmer#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 51513eed67faSmbalmer /* Skip over the disk name in MSDOS pathnames. */ 51523eed67faSmbalmer if (isalpha ((unsigned char)name[0]) && name[1] == ':') 51533eed67faSmbalmer name += 2; 51543eed67faSmbalmer#endif 51553eed67faSmbalmer 51563eed67faSmbalmer for (base = name; *name; name++) 51573eed67faSmbalmer if (IS_DIR_SEPARATOR (*name)) 51583eed67faSmbalmer base = name + 1; 51593eed67faSmbalmer return base; 51603eed67faSmbalmer} 51613eed67faSmbalmer 51623eed67faSmbalmerint 51633eed67faSmbalmercheck_executable(const char * path) 51643eed67faSmbalmer{ 51653eed67faSmbalmer struct stat st; 51663eed67faSmbalmer 51673eed67faSmbalmer DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 51683eed67faSmbalmer if ((!path) || (!*path)) 51693eed67faSmbalmer return 0; 51703eed67faSmbalmer 51713eed67faSmbalmer if ((stat (path, &st) >= 0) && 51723eed67faSmbalmer ( 51733eed67faSmbalmer /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 51743eed67faSmbalmer#if defined (S_IXOTH) 51753eed67faSmbalmer ((st.st_mode & S_IXOTH) == S_IXOTH) || 51763eed67faSmbalmer#endif 51773eed67faSmbalmer#if defined (S_IXGRP) 51783eed67faSmbalmer ((st.st_mode & S_IXGRP) == S_IXGRP) || 51793eed67faSmbalmer#endif 51803eed67faSmbalmer ((st.st_mode & S_IXUSR) == S_IXUSR)) 51813eed67faSmbalmer ) 51823eed67faSmbalmer return 1; 51833eed67faSmbalmer else 51843eed67faSmbalmer return 0; 51853eed67faSmbalmer} 51863eed67faSmbalmer 51873eed67faSmbalmer/* Searches for the full path of the wrapper. Returns 51883eed67faSmbalmer newly allocated full path name if found, NULL otherwise */ 51893eed67faSmbalmerchar * 51903eed67faSmbalmerfind_executable (const char* wrapper) 51913eed67faSmbalmer{ 51923eed67faSmbalmer int has_slash = 0; 51933eed67faSmbalmer const char* p; 51943eed67faSmbalmer const char* p_next; 51953eed67faSmbalmer /* static buffer for getcwd */ 51963eed67faSmbalmer char tmp[LT_PATHMAX + 1]; 51973eed67faSmbalmer int tmp_len; 51983eed67faSmbalmer char* concat_name; 51993eed67faSmbalmer 52003eed67faSmbalmer DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 52013eed67faSmbalmer 52023eed67faSmbalmer if ((wrapper == NULL) || (*wrapper == '\0')) 52033eed67faSmbalmer return NULL; 52043eed67faSmbalmer 52053eed67faSmbalmer /* Absolute path? */ 52063eed67faSmbalmer#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 52073eed67faSmbalmer if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 52083eed67faSmbalmer { 52093eed67faSmbalmer concat_name = xstrdup (wrapper); 52103eed67faSmbalmer if (check_executable(concat_name)) 52113eed67faSmbalmer return concat_name; 52123eed67faSmbalmer XFREE(concat_name); 52133eed67faSmbalmer } 52143eed67faSmbalmer else 52153eed67faSmbalmer { 52163eed67faSmbalmer#endif 52173eed67faSmbalmer if (IS_DIR_SEPARATOR (wrapper[0])) 52183eed67faSmbalmer { 52193eed67faSmbalmer concat_name = xstrdup (wrapper); 52203eed67faSmbalmer if (check_executable(concat_name)) 52213eed67faSmbalmer return concat_name; 52223eed67faSmbalmer XFREE(concat_name); 52233eed67faSmbalmer } 52243eed67faSmbalmer#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 52253eed67faSmbalmer } 52263eed67faSmbalmer#endif 52273eed67faSmbalmer 52283eed67faSmbalmer for (p = wrapper; *p; p++) 52293eed67faSmbalmer if (*p == '/') 52303eed67faSmbalmer { 52313eed67faSmbalmer has_slash = 1; 52323eed67faSmbalmer break; 52333eed67faSmbalmer } 52343eed67faSmbalmer if (!has_slash) 52353eed67faSmbalmer { 52363eed67faSmbalmer /* no slashes; search PATH */ 52373eed67faSmbalmer const char* path = getenv ("PATH"); 52383eed67faSmbalmer if (path != NULL) 52393eed67faSmbalmer { 52403eed67faSmbalmer for (p = path; *p; p = p_next) 52413eed67faSmbalmer { 52423eed67faSmbalmer const char* q; 52433eed67faSmbalmer size_t p_len; 52443eed67faSmbalmer for (q = p; *q; q++) 52453eed67faSmbalmer if (IS_PATH_SEPARATOR(*q)) 52463eed67faSmbalmer break; 52473eed67faSmbalmer p_len = q - p; 52483eed67faSmbalmer p_next = (*q == '\0' ? q : q + 1); 52493eed67faSmbalmer if (p_len == 0) 52503eed67faSmbalmer { 52513eed67faSmbalmer /* empty path: current directory */ 52523eed67faSmbalmer if (getcwd (tmp, LT_PATHMAX) == NULL) 52533eed67faSmbalmer lt_fatal ("getcwd failed"); 52543eed67faSmbalmer tmp_len = strlen(tmp); 52553eed67faSmbalmer concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 52563eed67faSmbalmer memcpy (concat_name, tmp, tmp_len); 52573eed67faSmbalmer concat_name[tmp_len] = '/'; 52583eed67faSmbalmer strcpy (concat_name + tmp_len + 1, wrapper); 52593eed67faSmbalmer } 52603eed67faSmbalmer else 52613eed67faSmbalmer { 52623eed67faSmbalmer concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 52633eed67faSmbalmer memcpy (concat_name, p, p_len); 52643eed67faSmbalmer concat_name[p_len] = '/'; 52653eed67faSmbalmer strcpy (concat_name + p_len + 1, wrapper); 52663eed67faSmbalmer } 52673eed67faSmbalmer if (check_executable(concat_name)) 52683eed67faSmbalmer return concat_name; 52693eed67faSmbalmer XFREE(concat_name); 52703eed67faSmbalmer } 52713eed67faSmbalmer } 52723eed67faSmbalmer /* not found in PATH; assume curdir */ 52733eed67faSmbalmer } 52743eed67faSmbalmer /* Relative path | not found in path: prepend cwd */ 52753eed67faSmbalmer if (getcwd (tmp, LT_PATHMAX) == NULL) 52763eed67faSmbalmer lt_fatal ("getcwd failed"); 52773eed67faSmbalmer tmp_len = strlen(tmp); 52783eed67faSmbalmer concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 52793eed67faSmbalmer memcpy (concat_name, tmp, tmp_len); 52803eed67faSmbalmer concat_name[tmp_len] = '/'; 52813eed67faSmbalmer strcpy (concat_name + tmp_len + 1, wrapper); 52823eed67faSmbalmer 52833eed67faSmbalmer if (check_executable(concat_name)) 52843eed67faSmbalmer return concat_name; 52853eed67faSmbalmer XFREE(concat_name); 52863eed67faSmbalmer return NULL; 52873eed67faSmbalmer} 52883eed67faSmbalmer 52893eed67faSmbalmerchar * 52903eed67faSmbalmerstrendzap(char *str, const char *pat) 52913eed67faSmbalmer{ 52923eed67faSmbalmer size_t len, patlen; 52933eed67faSmbalmer 52943eed67faSmbalmer assert(str != NULL); 52953eed67faSmbalmer assert(pat != NULL); 52963eed67faSmbalmer 52973eed67faSmbalmer len = strlen(str); 52983eed67faSmbalmer patlen = strlen(pat); 52993eed67faSmbalmer 53003eed67faSmbalmer if (patlen <= len) 53013eed67faSmbalmer { 53023eed67faSmbalmer str += len - patlen; 53033eed67faSmbalmer if (strcmp(str, pat) == 0) 53043eed67faSmbalmer *str = '\0'; 53053eed67faSmbalmer } 53063eed67faSmbalmer return str; 53073eed67faSmbalmer} 53083eed67faSmbalmer 53093eed67faSmbalmerstatic void 53103eed67faSmbalmerlt_error_core (int exit_status, const char * mode, 53113eed67faSmbalmer const char * message, va_list ap) 53123eed67faSmbalmer{ 53133eed67faSmbalmer fprintf (stderr, "%s: %s: ", program_name, mode); 53143eed67faSmbalmer vfprintf (stderr, message, ap); 53153eed67faSmbalmer fprintf (stderr, ".\n"); 53163eed67faSmbalmer 53173eed67faSmbalmer if (exit_status >= 0) 53183eed67faSmbalmer exit (exit_status); 53193eed67faSmbalmer} 53203eed67faSmbalmer 53213eed67faSmbalmervoid 53223eed67faSmbalmerlt_fatal (const char *message, ...) 53233eed67faSmbalmer{ 53243eed67faSmbalmer va_list ap; 53253eed67faSmbalmer va_start (ap, message); 53263eed67faSmbalmer lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 53273eed67faSmbalmer va_end (ap); 53283eed67faSmbalmer} 53293eed67faSmbalmerEOF 53303eed67faSmbalmer # we should really use a build-platform specific compiler 53313eed67faSmbalmer # here, but OTOH, the wrappers (shell script and this C one) 53323eed67faSmbalmer # are only useful if you want to execute the "real" binary. 53333eed67faSmbalmer # Since the "real" binary is built for $host, then this 53343eed67faSmbalmer # wrapper might as well be built for $host, too. 53353eed67faSmbalmer $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 53363eed67faSmbalmer ;; 53373eed67faSmbalmer esac 53383eed67faSmbalmer $rm $output 53393eed67faSmbalmer trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 53403eed67faSmbalmer 53413eed67faSmbalmer $echo > $output "\ 53423eed67faSmbalmer#! $SHELL 53433eed67faSmbalmer 53443eed67faSmbalmer# $output - temporary wrapper script for $objdir/$outputname 53453eed67faSmbalmer# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 53463eed67faSmbalmer# 53473eed67faSmbalmer# The $output program cannot be directly executed until all the libtool 53483eed67faSmbalmer# libraries that it depends on are installed. 53493eed67faSmbalmer# 53503eed67faSmbalmer# This wrapper script should never be moved out of the build directory. 53513eed67faSmbalmer# If it is, it will not operate correctly. 53523eed67faSmbalmer 53533eed67faSmbalmer# Sed substitution that helps us do robust quoting. It backslashifies 53543eed67faSmbalmer# metacharacters that are still active within double-quoted strings. 53553eed67faSmbalmerXsed='${SED} -e 1s/^X//' 53563eed67faSmbalmersed_quote_subst='$sed_quote_subst' 53573eed67faSmbalmer 53583eed67faSmbalmer# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). 53593eed67faSmbalmerif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 53603eed67faSmbalmer emulate sh 53613eed67faSmbalmer NULLCMD=: 53623eed67faSmbalmer # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 53633eed67faSmbalmer # is contrary to our usage. Disable this feature. 53643eed67faSmbalmer alias -g '\${1+\"\$@\"}'='\"\$@\"' 53653eed67faSmbalmer setopt NO_GLOB_SUBST 53663eed67faSmbalmerelse 53673eed67faSmbalmer case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 53683eed67faSmbalmerfi 53693eed67faSmbalmerBIN_SH=xpg4; export BIN_SH # for Tru64 53703eed67faSmbalmerDUALCASE=1; export DUALCASE # for MKS sh 53713eed67faSmbalmer 53723eed67faSmbalmer# The HP-UX ksh and POSIX shell print the target directory to stdout 53733eed67faSmbalmer# if CDPATH is set. 53743eed67faSmbalmer(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 53753eed67faSmbalmer 53763eed67faSmbalmerrelink_command=\"$relink_command\" 53773eed67faSmbalmer 53783eed67faSmbalmer# This environment variable determines our operation mode. 53793eed67faSmbalmerif test \"\$libtool_install_magic\" = \"$magic\"; then 53803eed67faSmbalmer # install mode needs the following variable: 53813eed67faSmbalmer notinst_deplibs='$notinst_deplibs' 53823eed67faSmbalmerelse 53833eed67faSmbalmer # When we are sourced in execute mode, \$file and \$echo are already set. 53843eed67faSmbalmer if test \"\$libtool_execute_magic\" != \"$magic\"; then 53853eed67faSmbalmer echo=\"$qecho\" 53863eed67faSmbalmer file=\"\$0\" 53873eed67faSmbalmer # Make sure echo works. 53883eed67faSmbalmer if test \"X\$1\" = X--no-reexec; then 53893eed67faSmbalmer # Discard the --no-reexec flag, and continue. 53903eed67faSmbalmer shift 53913eed67faSmbalmer elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 53923eed67faSmbalmer # Yippee, \$echo works! 53933eed67faSmbalmer : 53943eed67faSmbalmer else 53953eed67faSmbalmer # Restart under the correct shell, and then maybe \$echo will work. 53963eed67faSmbalmer exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 53973eed67faSmbalmer fi 53983eed67faSmbalmer fi\ 53993eed67faSmbalmer" 54003eed67faSmbalmer $echo >> $output "\ 54013eed67faSmbalmer 54023eed67faSmbalmer # Find the directory that this script lives in. 54033eed67faSmbalmer thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 54043eed67faSmbalmer test \"x\$thisdir\" = \"x\$file\" && thisdir=. 54053eed67faSmbalmer 54063eed67faSmbalmer # Follow symbolic links until we get to the real thisdir. 54073eed67faSmbalmer file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 54083eed67faSmbalmer while test -n \"\$file\"; do 54093eed67faSmbalmer destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 54103eed67faSmbalmer 54113eed67faSmbalmer # If there was a directory component, then change thisdir. 54123eed67faSmbalmer if test \"x\$destdir\" != \"x\$file\"; then 54133eed67faSmbalmer case \"\$destdir\" in 54143eed67faSmbalmer [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 54153eed67faSmbalmer *) thisdir=\"\$thisdir/\$destdir\" ;; 54163eed67faSmbalmer esac 54173eed67faSmbalmer fi 54183eed67faSmbalmer 54193eed67faSmbalmer file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 54203eed67faSmbalmer file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 54213eed67faSmbalmer done 54223eed67faSmbalmer 54233eed67faSmbalmer # Try to get the absolute directory name. 54243eed67faSmbalmer absdir=\`cd \"\$thisdir\" && pwd\` 54253eed67faSmbalmer test -n \"\$absdir\" && thisdir=\"\$absdir\" 54263eed67faSmbalmer" 54273eed67faSmbalmer 54283eed67faSmbalmer if test "$fast_install" = yes; then 54293eed67faSmbalmer $echo >> $output "\ 54303eed67faSmbalmer program=lt-'$outputname'$exeext 54313eed67faSmbalmer progdir=\"\$thisdir/$objdir\" 54323eed67faSmbalmer 54333eed67faSmbalmer if test ! -f \"\$progdir/\$program\" || \\ 54343eed67faSmbalmer { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 54353eed67faSmbalmer test \"X\$file\" != \"X\$progdir/\$program\"; }; then 54363eed67faSmbalmer 54373eed67faSmbalmer file=\"\$\$-\$program\" 54383eed67faSmbalmer 54393eed67faSmbalmer if test ! -d \"\$progdir\"; then 54403eed67faSmbalmer $mkdir \"\$progdir\" 54413eed67faSmbalmer else 54423eed67faSmbalmer $rm \"\$progdir/\$file\" 54433eed67faSmbalmer fi" 54443eed67faSmbalmer 54453eed67faSmbalmer $echo >> $output "\ 54463eed67faSmbalmer 54473eed67faSmbalmer # relink executable if necessary 54483eed67faSmbalmer if test -n \"\$relink_command\"; then 54493eed67faSmbalmer if relink_command_output=\`eval \$relink_command 2>&1\`; then : 54503eed67faSmbalmer else 54513eed67faSmbalmer $echo \"\$relink_command_output\" >&2 54523eed67faSmbalmer $rm \"\$progdir/\$file\" 54533eed67faSmbalmer exit $EXIT_FAILURE 54543eed67faSmbalmer fi 54553eed67faSmbalmer fi 54563eed67faSmbalmer 54573eed67faSmbalmer $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 54583eed67faSmbalmer { $rm \"\$progdir/\$program\"; 54593eed67faSmbalmer $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 54603eed67faSmbalmer $rm \"\$progdir/\$file\" 54613eed67faSmbalmer fi" 54623eed67faSmbalmer else 54633eed67faSmbalmer $echo >> $output "\ 54643eed67faSmbalmer program='$outputname' 54653eed67faSmbalmer progdir=\"\$thisdir/$objdir\" 54663eed67faSmbalmer" 54673eed67faSmbalmer fi 54683eed67faSmbalmer 54693eed67faSmbalmer $echo >> $output "\ 54703eed67faSmbalmer 54713eed67faSmbalmer if test -f \"\$progdir/\$program\"; then" 54723eed67faSmbalmer 54733eed67faSmbalmer # Export our shlibpath_var if we have one. 54743eed67faSmbalmer if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 54753eed67faSmbalmer $echo >> $output "\ 54763eed67faSmbalmer # Add our own library path to $shlibpath_var 54773eed67faSmbalmer $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 54783eed67faSmbalmer 54793eed67faSmbalmer # Some systems cannot cope with colon-terminated $shlibpath_var 54803eed67faSmbalmer # The second colon is a workaround for a bug in BeOS R4 sed 54813eed67faSmbalmer $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 54823eed67faSmbalmer 54833eed67faSmbalmer export $shlibpath_var 54843eed67faSmbalmer" 54853eed67faSmbalmer fi 54863eed67faSmbalmer 54873eed67faSmbalmer # fixup the dll searchpath if we need to. 54883eed67faSmbalmer if test -n "$dllsearchpath"; then 54893eed67faSmbalmer $echo >> $output "\ 54903eed67faSmbalmer # Add the dll search path components to the executable PATH 54913eed67faSmbalmer PATH=$dllsearchpath:\$PATH 54923eed67faSmbalmer" 54933eed67faSmbalmer fi 54943eed67faSmbalmer 54953eed67faSmbalmer $echo >> $output "\ 54963eed67faSmbalmer if test \"\$libtool_execute_magic\" != \"$magic\"; then 54973eed67faSmbalmer # Run the actual program with our arguments. 54983eed67faSmbalmer" 54993eed67faSmbalmer case $host in 55003eed67faSmbalmer # Backslashes separate directories on plain windows 55013eed67faSmbalmer *-*-mingw | *-*-os2*) 55023eed67faSmbalmer $echo >> $output "\ 55033eed67faSmbalmer exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 55043eed67faSmbalmer" 55053eed67faSmbalmer ;; 55063eed67faSmbalmer 55073eed67faSmbalmer *) 55083eed67faSmbalmer $echo >> $output "\ 55093eed67faSmbalmer exec \"\$progdir/\$program\" \${1+\"\$@\"} 55103eed67faSmbalmer" 55113eed67faSmbalmer ;; 55123eed67faSmbalmer esac 55133eed67faSmbalmer $echo >> $output "\ 55143eed67faSmbalmer \$echo \"\$0: cannot exec \$program \$*\" 55153eed67faSmbalmer exit $EXIT_FAILURE 55163eed67faSmbalmer fi 55173eed67faSmbalmer else 55183eed67faSmbalmer # The program doesn't exist. 55193eed67faSmbalmer \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 55203eed67faSmbalmer \$echo \"This script is just a wrapper for \$program.\" 1>&2 55213eed67faSmbalmer $echo \"See the $PACKAGE documentation for more information.\" 1>&2 55223eed67faSmbalmer exit $EXIT_FAILURE 55233eed67faSmbalmer fi 55243eed67faSmbalmerfi\ 55253eed67faSmbalmer" 55263eed67faSmbalmer chmod +x $output 55273eed67faSmbalmer fi 55283eed67faSmbalmer exit $EXIT_SUCCESS 55293eed67faSmbalmer ;; 55303eed67faSmbalmer esac 55313eed67faSmbalmer 55323eed67faSmbalmer # See if we need to build an old-fashioned archive. 55333eed67faSmbalmer for oldlib in $oldlibs; do 55343eed67faSmbalmer 55353eed67faSmbalmer if test "$build_libtool_libs" = convenience; then 55363eed67faSmbalmer oldobjs="$libobjs_save" 55373eed67faSmbalmer addlibs="$convenience" 55383eed67faSmbalmer build_libtool_libs=no 55393eed67faSmbalmer else 55403eed67faSmbalmer if test "$build_libtool_libs" = module; then 55413eed67faSmbalmer oldobjs="$libobjs_save" 55423eed67faSmbalmer build_libtool_libs=no 55433eed67faSmbalmer else 55443eed67faSmbalmer oldobjs="$old_deplibs $non_pic_objects" 55453eed67faSmbalmer fi 55463eed67faSmbalmer addlibs="$old_convenience" 55473eed67faSmbalmer fi 55483eed67faSmbalmer 55493eed67faSmbalmer if test -n "$addlibs"; then 55503eed67faSmbalmer gentop="$output_objdir/${outputname}x" 55513eed67faSmbalmer generated="$generated $gentop" 55523eed67faSmbalmer 55533eed67faSmbalmer func_extract_archives $gentop $addlibs 55543eed67faSmbalmer oldobjs="$oldobjs $func_extract_archives_result" 55553eed67faSmbalmer fi 55563eed67faSmbalmer 55573eed67faSmbalmer # Do each command in the archive commands. 55583eed67faSmbalmer if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 55593eed67faSmbalmer cmds=$old_archive_from_new_cmds 55603eed67faSmbalmer else 55613eed67faSmbalmer # POSIX demands no paths to be encoded in archives. We have 55623eed67faSmbalmer # to avoid creating archives with duplicate basenames if we 55633eed67faSmbalmer # might have to extract them afterwards, e.g., when creating a 55643eed67faSmbalmer # static archive out of a convenience library, or when linking 55653eed67faSmbalmer # the entirety of a libtool archive into another (currently 55663eed67faSmbalmer # not supported by libtool). 55673eed67faSmbalmer if (for obj in $oldobjs 55683eed67faSmbalmer do 55693eed67faSmbalmer $echo "X$obj" | $Xsed -e 's%^.*/%%' 55703eed67faSmbalmer done | sort | sort -uc >/dev/null 2>&1); then 55713eed67faSmbalmer : 55723eed67faSmbalmer else 55733eed67faSmbalmer $echo "copying selected object files to avoid basename conflicts..." 55743eed67faSmbalmer 55753eed67faSmbalmer if test -z "$gentop"; then 55763eed67faSmbalmer gentop="$output_objdir/${outputname}x" 55773eed67faSmbalmer generated="$generated $gentop" 55783eed67faSmbalmer 55793eed67faSmbalmer $show "${rm}r $gentop" 55803eed67faSmbalmer $run ${rm}r "$gentop" 55813eed67faSmbalmer $show "$mkdir $gentop" 55823eed67faSmbalmer $run $mkdir "$gentop" 55833eed67faSmbalmer exit_status=$? 55843eed67faSmbalmer if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 55853eed67faSmbalmer exit $exit_status 55863eed67faSmbalmer fi 55873eed67faSmbalmer fi 55883eed67faSmbalmer 55893eed67faSmbalmer save_oldobjs=$oldobjs 55903eed67faSmbalmer oldobjs= 55913eed67faSmbalmer counter=1 55923eed67faSmbalmer for obj in $save_oldobjs 55933eed67faSmbalmer do 55943eed67faSmbalmer objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 55953eed67faSmbalmer case " $oldobjs " in 55963eed67faSmbalmer " ") oldobjs=$obj ;; 55973eed67faSmbalmer *[\ /]"$objbase "*) 55983eed67faSmbalmer while :; do 55993eed67faSmbalmer # Make sure we don't pick an alternate name that also 56003eed67faSmbalmer # overlaps. 56013eed67faSmbalmer newobj=lt$counter-$objbase 56023eed67faSmbalmer counter=`expr $counter + 1` 56033eed67faSmbalmer case " $oldobjs " in 56043eed67faSmbalmer *[\ /]"$newobj "*) ;; 56053eed67faSmbalmer *) if test ! -f "$gentop/$newobj"; then break; fi ;; 56063eed67faSmbalmer esac 56073eed67faSmbalmer done 56083eed67faSmbalmer $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 56093eed67faSmbalmer $run ln "$obj" "$gentop/$newobj" || 56103eed67faSmbalmer $run cp "$obj" "$gentop/$newobj" 56113eed67faSmbalmer oldobjs="$oldobjs $gentop/$newobj" 56123eed67faSmbalmer ;; 56133eed67faSmbalmer *) oldobjs="$oldobjs $obj" ;; 56143eed67faSmbalmer esac 56153eed67faSmbalmer done 56163eed67faSmbalmer fi 56173eed67faSmbalmer 56183eed67faSmbalmer eval cmds=\"$old_archive_cmds\" 56193eed67faSmbalmer 56203eed67faSmbalmer if len=`expr "X$cmds" : ".*"` && 56213eed67faSmbalmer test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 56223eed67faSmbalmer cmds=$old_archive_cmds 56233eed67faSmbalmer else 56243eed67faSmbalmer # the command line is too long to link in one step, link in parts 56253eed67faSmbalmer $echo "using piecewise archive linking..." 56263eed67faSmbalmer save_RANLIB=$RANLIB 56273eed67faSmbalmer RANLIB=: 56283eed67faSmbalmer objlist= 56293eed67faSmbalmer concat_cmds= 56303eed67faSmbalmer save_oldobjs=$oldobjs 56313eed67faSmbalmer 56323eed67faSmbalmer # Is there a better way of finding the last object in the list? 56333eed67faSmbalmer for obj in $save_oldobjs 56343eed67faSmbalmer do 56353eed67faSmbalmer last_oldobj=$obj 56363eed67faSmbalmer done 56373eed67faSmbalmer for obj in $save_oldobjs 56383eed67faSmbalmer do 56393eed67faSmbalmer oldobjs="$objlist $obj" 56403eed67faSmbalmer objlist="$objlist $obj" 56413eed67faSmbalmer eval test_cmds=\"$old_archive_cmds\" 56423eed67faSmbalmer if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 56433eed67faSmbalmer test "$len" -le "$max_cmd_len"; then 56443eed67faSmbalmer : 56453eed67faSmbalmer else 56463eed67faSmbalmer # the above command should be used before it gets too long 56473eed67faSmbalmer oldobjs=$objlist 56483eed67faSmbalmer if test "$obj" = "$last_oldobj" ; then 56493eed67faSmbalmer RANLIB=$save_RANLIB 56503eed67faSmbalmer fi 56513eed67faSmbalmer test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 56523eed67faSmbalmer eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 56533eed67faSmbalmer objlist= 56543eed67faSmbalmer fi 56553eed67faSmbalmer done 56563eed67faSmbalmer RANLIB=$save_RANLIB 56573eed67faSmbalmer oldobjs=$objlist 56583eed67faSmbalmer if test "X$oldobjs" = "X" ; then 56593eed67faSmbalmer eval cmds=\"\$concat_cmds\" 56603eed67faSmbalmer else 56613eed67faSmbalmer eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 56623eed67faSmbalmer fi 56633eed67faSmbalmer fi 56643eed67faSmbalmer fi 56653eed67faSmbalmer save_ifs="$IFS"; IFS='~' 56663eed67faSmbalmer for cmd in $cmds; do 56673eed67faSmbalmer eval cmd=\"$cmd\" 56683eed67faSmbalmer IFS="$save_ifs" 56693eed67faSmbalmer $show "$cmd" 56703eed67faSmbalmer $run eval "$cmd" || exit $? 56713eed67faSmbalmer done 56723eed67faSmbalmer IFS="$save_ifs" 56733eed67faSmbalmer done 56743eed67faSmbalmer 56753eed67faSmbalmer if test -n "$generated"; then 56763eed67faSmbalmer $show "${rm}r$generated" 56773eed67faSmbalmer $run ${rm}r$generated 56783eed67faSmbalmer fi 56793eed67faSmbalmer 56803eed67faSmbalmer # Now create the libtool archive. 56813eed67faSmbalmer case $output in 56823eed67faSmbalmer *.la) 56833eed67faSmbalmer old_library= 56843eed67faSmbalmer test "$build_old_libs" = yes && old_library="$libname.$libext" 56853eed67faSmbalmer $show "creating $output" 56863eed67faSmbalmer 56873eed67faSmbalmer # Preserve any variables that may affect compiler behavior 56883eed67faSmbalmer for var in $variables_saved_for_relink; do 56893eed67faSmbalmer if eval test -z \"\${$var+set}\"; then 56903eed67faSmbalmer relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 56913eed67faSmbalmer elif eval var_value=\$$var; test -z "$var_value"; then 56923eed67faSmbalmer relink_command="$var=; export $var; $relink_command" 56933eed67faSmbalmer else 56943eed67faSmbalmer var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 56953eed67faSmbalmer relink_command="$var=\"$var_value\"; export $var; $relink_command" 56963eed67faSmbalmer fi 56973eed67faSmbalmer done 56983eed67faSmbalmer # Quote the link command for shipping. 56993eed67faSmbalmer relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 57003eed67faSmbalmer relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` 57013eed67faSmbalmer if test "$hardcode_automatic" = yes ; then 57023eed67faSmbalmer relink_command= 57033eed67faSmbalmer fi 57043eed67faSmbalmer 57053eed67faSmbalmer 57063eed67faSmbalmer # Only create the output if not a dry run. 57073eed67faSmbalmer if test -z "$run"; then 57083eed67faSmbalmer for installed in no yes; do 57093eed67faSmbalmer if test "$installed" = yes; then 57103eed67faSmbalmer if test -z "$install_libdir"; then 57113eed67faSmbalmer break 57123eed67faSmbalmer fi 57133eed67faSmbalmer output="$output_objdir/$outputname"i 57143eed67faSmbalmer # Replace all uninstalled libtool libraries with the installed ones 57153eed67faSmbalmer newdependency_libs= 57163eed67faSmbalmer for deplib in $dependency_libs; do 57173eed67faSmbalmer case $deplib in 57183eed67faSmbalmer *.la) 57193eed67faSmbalmer name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 57203eed67faSmbalmer eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 57213eed67faSmbalmer if test -z "$libdir"; then 57223eed67faSmbalmer $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 57233eed67faSmbalmer exit $EXIT_FAILURE 57243eed67faSmbalmer fi 57253eed67faSmbalmer newdependency_libs="$newdependency_libs $libdir/$name" 57263eed67faSmbalmer ;; 57273eed67faSmbalmer *) newdependency_libs="$newdependency_libs $deplib" ;; 57283eed67faSmbalmer esac 57293eed67faSmbalmer done 57303eed67faSmbalmer dependency_libs="$newdependency_libs" 57313eed67faSmbalmer newdlfiles= 57323eed67faSmbalmer for lib in $dlfiles; do 57333eed67faSmbalmer name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 57343eed67faSmbalmer eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 57353eed67faSmbalmer if test -z "$libdir"; then 57363eed67faSmbalmer $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 57373eed67faSmbalmer exit $EXIT_FAILURE 57383eed67faSmbalmer fi 57393eed67faSmbalmer newdlfiles="$newdlfiles $libdir/$name" 57403eed67faSmbalmer done 57413eed67faSmbalmer dlfiles="$newdlfiles" 57423eed67faSmbalmer newdlprefiles= 57433eed67faSmbalmer for lib in $dlprefiles; do 57443eed67faSmbalmer name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 57453eed67faSmbalmer eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 57463eed67faSmbalmer if test -z "$libdir"; then 57473eed67faSmbalmer $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 57483eed67faSmbalmer exit $EXIT_FAILURE 57493eed67faSmbalmer fi 57503eed67faSmbalmer newdlprefiles="$newdlprefiles $libdir/$name" 57513eed67faSmbalmer done 57523eed67faSmbalmer dlprefiles="$newdlprefiles" 57533eed67faSmbalmer else 57543eed67faSmbalmer newdlfiles= 57553eed67faSmbalmer for lib in $dlfiles; do 57563eed67faSmbalmer case $lib in 57573eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 57583eed67faSmbalmer *) abs=`pwd`"/$lib" ;; 57593eed67faSmbalmer esac 57603eed67faSmbalmer newdlfiles="$newdlfiles $abs" 57613eed67faSmbalmer done 57623eed67faSmbalmer dlfiles="$newdlfiles" 57633eed67faSmbalmer newdlprefiles= 57643eed67faSmbalmer for lib in $dlprefiles; do 57653eed67faSmbalmer case $lib in 57663eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 57673eed67faSmbalmer *) abs=`pwd`"/$lib" ;; 57683eed67faSmbalmer esac 57693eed67faSmbalmer newdlprefiles="$newdlprefiles $abs" 57703eed67faSmbalmer done 57713eed67faSmbalmer dlprefiles="$newdlprefiles" 57723eed67faSmbalmer fi 57733eed67faSmbalmer $rm $output 57743eed67faSmbalmer # place dlname in correct position for cygwin 57753eed67faSmbalmer tdlname=$dlname 57763eed67faSmbalmer case $host,$output,$installed,$module,$dlname in 57773eed67faSmbalmer *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 57783eed67faSmbalmer esac 57793eed67faSmbalmer $echo > $output "\ 57803eed67faSmbalmer# $outputname - a libtool library file 57813eed67faSmbalmer# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 57823eed67faSmbalmer# 57833eed67faSmbalmer# Please DO NOT delete this file! 57843eed67faSmbalmer# It is necessary for linking the library. 57853eed67faSmbalmer 57863eed67faSmbalmer# The name that we can dlopen(3). 57873eed67faSmbalmerdlname='$tdlname' 57883eed67faSmbalmer 57893eed67faSmbalmer# Names of this library. 57903eed67faSmbalmerlibrary_names='$library_names' 57913eed67faSmbalmer 57923eed67faSmbalmer# The name of the static archive. 57933eed67faSmbalmerold_library='$old_library' 57943eed67faSmbalmer 57953eed67faSmbalmer# Libraries that this one depends upon. 57963eed67faSmbalmerdependency_libs='$dependency_libs' 57973eed67faSmbalmer 57983eed67faSmbalmer# Version information for $libname. 57993eed67faSmbalmercurrent=$current 58003eed67faSmbalmerage=$age 58013eed67faSmbalmerrevision=$revision 58023eed67faSmbalmer 58033eed67faSmbalmer# Is this an already installed library? 58043eed67faSmbalmerinstalled=$installed 58053eed67faSmbalmer 58063eed67faSmbalmer# Should we warn about portability when linking against -modules? 58073eed67faSmbalmershouldnotlink=$module 58083eed67faSmbalmer 58093eed67faSmbalmer# Files to dlopen/dlpreopen 58103eed67faSmbalmerdlopen='$dlfiles' 58113eed67faSmbalmerdlpreopen='$dlprefiles' 58123eed67faSmbalmer 58133eed67faSmbalmer# Directory that this library needs to be installed in: 58143eed67faSmbalmerlibdir='$install_libdir'" 58153eed67faSmbalmer if test "$installed" = no && test "$need_relink" = yes; then 58163eed67faSmbalmer $echo >> $output "\ 58173eed67faSmbalmerrelink_command=\"$relink_command\"" 58183eed67faSmbalmer fi 58193eed67faSmbalmer done 58203eed67faSmbalmer fi 58213eed67faSmbalmer 58223eed67faSmbalmer # Do a symbolic link so that the libtool archive can be found in 58233eed67faSmbalmer # LD_LIBRARY_PATH before the program is installed. 58243eed67faSmbalmer $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 58253eed67faSmbalmer $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 58263eed67faSmbalmer ;; 58273eed67faSmbalmer esac 58283eed67faSmbalmer exit $EXIT_SUCCESS 58293eed67faSmbalmer ;; 58303eed67faSmbalmer 58313eed67faSmbalmer # libtool install mode 58323eed67faSmbalmer install) 58333eed67faSmbalmer modename="$modename: install" 58343eed67faSmbalmer 58353eed67faSmbalmer # There may be an optional sh(1) argument at the beginning of 58363eed67faSmbalmer # install_prog (especially on Windows NT). 58373eed67faSmbalmer if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 58383eed67faSmbalmer # Allow the use of GNU shtool's install command. 58393eed67faSmbalmer $echo "X$nonopt" | grep shtool > /dev/null; then 58403eed67faSmbalmer # Aesthetically quote it. 58413eed67faSmbalmer arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 58423eed67faSmbalmer case $arg in 58433eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 58443eed67faSmbalmer arg="\"$arg\"" 58453eed67faSmbalmer ;; 58463eed67faSmbalmer esac 58473eed67faSmbalmer install_prog="$arg " 58483eed67faSmbalmer arg="$1" 58493eed67faSmbalmer shift 58503eed67faSmbalmer else 58513eed67faSmbalmer install_prog= 58523eed67faSmbalmer arg=$nonopt 58533eed67faSmbalmer fi 58543eed67faSmbalmer 58553eed67faSmbalmer # The real first argument should be the name of the installation program. 58563eed67faSmbalmer # Aesthetically quote it. 58573eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 58583eed67faSmbalmer case $arg in 58593eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 58603eed67faSmbalmer arg="\"$arg\"" 58613eed67faSmbalmer ;; 58623eed67faSmbalmer esac 58633eed67faSmbalmer install_prog="$install_prog$arg" 58643eed67faSmbalmer 58653eed67faSmbalmer # We need to accept at least all the BSD install flags. 58663eed67faSmbalmer dest= 58673eed67faSmbalmer files= 58683eed67faSmbalmer opts= 58693eed67faSmbalmer prev= 58703eed67faSmbalmer install_type= 58713eed67faSmbalmer isdir=no 58723eed67faSmbalmer stripme= 58733eed67faSmbalmer for arg 58743eed67faSmbalmer do 58753eed67faSmbalmer if test -n "$dest"; then 58763eed67faSmbalmer files="$files $dest" 58773eed67faSmbalmer dest=$arg 58783eed67faSmbalmer continue 58793eed67faSmbalmer fi 58803eed67faSmbalmer 58813eed67faSmbalmer case $arg in 58823eed67faSmbalmer -d) isdir=yes ;; 58833eed67faSmbalmer -f) 58843eed67faSmbalmer case " $install_prog " in 58853eed67faSmbalmer *[\\\ /]cp\ *) ;; 58863eed67faSmbalmer *) prev=$arg ;; 58873eed67faSmbalmer esac 58883eed67faSmbalmer ;; 58893eed67faSmbalmer -g | -m | -o) prev=$arg ;; 58903eed67faSmbalmer -s) 58913eed67faSmbalmer stripme=" -s" 58923eed67faSmbalmer continue 58933eed67faSmbalmer ;; 58943eed67faSmbalmer -*) 58953eed67faSmbalmer ;; 58963eed67faSmbalmer *) 58973eed67faSmbalmer # If the previous option needed an argument, then skip it. 58983eed67faSmbalmer if test -n "$prev"; then 58993eed67faSmbalmer prev= 59003eed67faSmbalmer else 59013eed67faSmbalmer dest=$arg 59023eed67faSmbalmer continue 59033eed67faSmbalmer fi 59043eed67faSmbalmer ;; 59053eed67faSmbalmer esac 59063eed67faSmbalmer 59073eed67faSmbalmer # Aesthetically quote the argument. 59083eed67faSmbalmer arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 59093eed67faSmbalmer case $arg in 59103eed67faSmbalmer *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 59113eed67faSmbalmer arg="\"$arg\"" 59123eed67faSmbalmer ;; 59133eed67faSmbalmer esac 59143eed67faSmbalmer install_prog="$install_prog $arg" 59153eed67faSmbalmer done 59163eed67faSmbalmer case " $install_prog " in 59173eed67faSmbalmer *[\\\ /]cp\ *) extra_mode=;; 59183eed67faSmbalmer *) extra_mode='-m 644';; 59193eed67faSmbalmer esac 59203eed67faSmbalmer 59213eed67faSmbalmer if test -z "$install_prog"; then 59223eed67faSmbalmer $echo "$modename: you must specify an install program" 1>&2 59233eed67faSmbalmer $echo "$help" 1>&2 59243eed67faSmbalmer exit $EXIT_FAILURE 59253eed67faSmbalmer fi 59263eed67faSmbalmer 59273eed67faSmbalmer if test -n "$prev"; then 59283eed67faSmbalmer $echo "$modename: the \`$prev' option requires an argument" 1>&2 59293eed67faSmbalmer $echo "$help" 1>&2 59303eed67faSmbalmer exit $EXIT_FAILURE 59313eed67faSmbalmer fi 59323eed67faSmbalmer 59333eed67faSmbalmer if test -z "$files"; then 59343eed67faSmbalmer if test -z "$dest"; then 59353eed67faSmbalmer $echo "$modename: no file or destination specified" 1>&2 59363eed67faSmbalmer else 59373eed67faSmbalmer $echo "$modename: you must specify a destination" 1>&2 59383eed67faSmbalmer fi 59393eed67faSmbalmer $echo "$help" 1>&2 59403eed67faSmbalmer exit $EXIT_FAILURE 59413eed67faSmbalmer fi 59423eed67faSmbalmer 59433eed67faSmbalmer # Strip any trailing slash from the destination. 59443eed67faSmbalmer dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 59453eed67faSmbalmer 59463eed67faSmbalmer # Check to see that the destination is a directory. 59473eed67faSmbalmer test -d "$dest" && isdir=yes 59483eed67faSmbalmer if test "$isdir" = yes; then 59493eed67faSmbalmer destdir="$dest" 59503eed67faSmbalmer destname= 59513eed67faSmbalmer else 59523eed67faSmbalmer destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 59533eed67faSmbalmer test "X$destdir" = "X$dest" && destdir=. 59543eed67faSmbalmer destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 59553eed67faSmbalmer 59563eed67faSmbalmer # Not a directory, so check to see that there is only one file specified. 59573eed67faSmbalmer set dummy $files 59583eed67faSmbalmer if test "$#" -gt 2; then 59593eed67faSmbalmer $echo "$modename: \`$dest' is not a directory" 1>&2 59603eed67faSmbalmer $echo "$help" 1>&2 59613eed67faSmbalmer exit $EXIT_FAILURE 59623eed67faSmbalmer fi 59633eed67faSmbalmer fi 59643eed67faSmbalmer case $destdir in 59653eed67faSmbalmer [\\/]* | [A-Za-z]:[\\/]*) ;; 59663eed67faSmbalmer *) 59673eed67faSmbalmer for file in $files; do 59683eed67faSmbalmer case $file in 59693eed67faSmbalmer *.lo) ;; 59703eed67faSmbalmer *) 59713eed67faSmbalmer $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 59723eed67faSmbalmer $echo "$help" 1>&2 59733eed67faSmbalmer exit $EXIT_FAILURE 59743eed67faSmbalmer ;; 59753eed67faSmbalmer esac 59763eed67faSmbalmer done 59773eed67faSmbalmer ;; 59783eed67faSmbalmer esac 59793eed67faSmbalmer 59803eed67faSmbalmer # This variable tells wrapper scripts just to set variables rather 59813eed67faSmbalmer # than running their programs. 59823eed67faSmbalmer libtool_install_magic="$magic" 59833eed67faSmbalmer 59843eed67faSmbalmer staticlibs= 59853eed67faSmbalmer future_libdirs= 59863eed67faSmbalmer current_libdirs= 59873eed67faSmbalmer for file in $files; do 59883eed67faSmbalmer 59893eed67faSmbalmer # Do each installation. 59903eed67faSmbalmer case $file in 59913eed67faSmbalmer *.$libext) 59923eed67faSmbalmer # Do the static libraries later. 59933eed67faSmbalmer staticlibs="$staticlibs $file" 59943eed67faSmbalmer ;; 59953eed67faSmbalmer 59963eed67faSmbalmer *.la) 59973eed67faSmbalmer # Check to see that this really is a libtool archive. 59983eed67faSmbalmer if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 59993eed67faSmbalmer else 60003eed67faSmbalmer $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 60013eed67faSmbalmer $echo "$help" 1>&2 60023eed67faSmbalmer exit $EXIT_FAILURE 60033eed67faSmbalmer fi 60043eed67faSmbalmer 60053eed67faSmbalmer library_names= 60063eed67faSmbalmer old_library= 60073eed67faSmbalmer relink_command= 60083eed67faSmbalmer # If there is no directory component, then add one. 60093eed67faSmbalmer case $file in 60103eed67faSmbalmer */* | *\\*) . $file ;; 60113eed67faSmbalmer *) . ./$file ;; 60123eed67faSmbalmer esac 60133eed67faSmbalmer 60143eed67faSmbalmer # Add the libdir to current_libdirs if it is the destination. 60153eed67faSmbalmer if test "X$destdir" = "X$libdir"; then 60163eed67faSmbalmer case "$current_libdirs " in 60173eed67faSmbalmer *" $libdir "*) ;; 60183eed67faSmbalmer *) current_libdirs="$current_libdirs $libdir" ;; 60193eed67faSmbalmer esac 60203eed67faSmbalmer else 60213eed67faSmbalmer # Note the libdir as a future libdir. 60223eed67faSmbalmer case "$future_libdirs " in 60233eed67faSmbalmer *" $libdir "*) ;; 60243eed67faSmbalmer *) future_libdirs="$future_libdirs $libdir" ;; 60253eed67faSmbalmer esac 60263eed67faSmbalmer fi 60273eed67faSmbalmer 60283eed67faSmbalmer dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 60293eed67faSmbalmer test "X$dir" = "X$file/" && dir= 60303eed67faSmbalmer dir="$dir$objdir" 60313eed67faSmbalmer 60323eed67faSmbalmer if test -n "$relink_command"; then 60333eed67faSmbalmer # Determine the prefix the user has applied to our future dir. 60343eed67faSmbalmer inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 60353eed67faSmbalmer 60363eed67faSmbalmer # Don't allow the user to place us outside of our expected 60373eed67faSmbalmer # location b/c this prevents finding dependent libraries that 60383eed67faSmbalmer # are installed to the same prefix. 60393eed67faSmbalmer # At present, this check doesn't affect windows .dll's that 60403eed67faSmbalmer # are installed into $libdir/../bin (currently, that works fine) 60413eed67faSmbalmer # but it's something to keep an eye on. 60423eed67faSmbalmer if test "$inst_prefix_dir" = "$destdir"; then 60433eed67faSmbalmer $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 60443eed67faSmbalmer exit $EXIT_FAILURE 60453eed67faSmbalmer fi 60463eed67faSmbalmer 60473eed67faSmbalmer if test -n "$inst_prefix_dir"; then 60483eed67faSmbalmer # Stick the inst_prefix_dir data into the link command. 60493eed67faSmbalmer relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` 60503eed67faSmbalmer else 60513eed67faSmbalmer relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` 60523eed67faSmbalmer fi 60533eed67faSmbalmer 60543eed67faSmbalmer $echo "$modename: warning: relinking \`$file'" 1>&2 60553eed67faSmbalmer $show "$relink_command" 60563eed67faSmbalmer if $run eval "$relink_command"; then : 60573eed67faSmbalmer else 60583eed67faSmbalmer $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 60593eed67faSmbalmer exit $EXIT_FAILURE 60603eed67faSmbalmer fi 60613eed67faSmbalmer fi 60623eed67faSmbalmer 60633eed67faSmbalmer # See the names of the shared library. 60643eed67faSmbalmer set dummy $library_names 60653eed67faSmbalmer if test -n "$2"; then 60663eed67faSmbalmer realname="$2" 60673eed67faSmbalmer shift 60683eed67faSmbalmer shift 60693eed67faSmbalmer 60703eed67faSmbalmer srcname="$realname" 60713eed67faSmbalmer test -n "$relink_command" && srcname="$realname"T 60723eed67faSmbalmer 60733eed67faSmbalmer # Install the shared library and build the symlinks. 60743eed67faSmbalmer $show "$install_prog $extra_mode $dir/$srcname $destdir/$realname" 60753eed67faSmbalmer $run eval "$install_prog $extra_mode $dir/$srcname $destdir/$realname" || exit $? 60763eed67faSmbalmer if test -n "$stripme" && test -n "$striplib"; then 60773eed67faSmbalmer $show "$striplib $destdir/$realname" 60783eed67faSmbalmer $run eval "$striplib $destdir/$realname" || exit $? 60793eed67faSmbalmer fi 60803eed67faSmbalmer 60813eed67faSmbalmer if test "$#" -gt 0; then 60823eed67faSmbalmer # Delete the old symlinks, and create new ones. 60833eed67faSmbalmer # Try `ln -sf' first, because the `ln' binary might depend on 60843eed67faSmbalmer # the symlink we replace! Solaris /bin/ln does not understand -f, 60853eed67faSmbalmer # so we also need to try rm && ln -s. 60863eed67faSmbalmer for linkname 60873eed67faSmbalmer do 60883eed67faSmbalmer if test "$linkname" != "$realname"; then 60893eed67faSmbalmer $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 60903eed67faSmbalmer $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 60913eed67faSmbalmer fi 60923eed67faSmbalmer done 60933eed67faSmbalmer fi 60943eed67faSmbalmer 60953eed67faSmbalmer # Do each command in the postinstall commands. 60963eed67faSmbalmer lib="$destdir/$realname" 60973eed67faSmbalmer cmds=$postinstall_cmds 60983eed67faSmbalmer save_ifs="$IFS"; IFS='~' 60993eed67faSmbalmer for cmd in $cmds; do 61003eed67faSmbalmer IFS="$save_ifs" 61013eed67faSmbalmer eval cmd=\"$cmd\" 61023eed67faSmbalmer $show "$cmd" 61033eed67faSmbalmer $run eval "$cmd" || { 61043eed67faSmbalmer lt_exit=$? 61053eed67faSmbalmer 61063eed67faSmbalmer # Restore the uninstalled library and exit 61073eed67faSmbalmer if test "$mode" = relink; then 61083eed67faSmbalmer $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 61093eed67faSmbalmer fi 61103eed67faSmbalmer 61113eed67faSmbalmer exit $lt_exit 61123eed67faSmbalmer } 61133eed67faSmbalmer done 61143eed67faSmbalmer IFS="$save_ifs" 61153eed67faSmbalmer fi 61163eed67faSmbalmer 61173eed67faSmbalmer # Install the pseudo-library for information purposes. 61183eed67faSmbalmer name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 61193eed67faSmbalmer instname="$dir/$name"i 61203eed67faSmbalmer $show "$install_prog $extra_mode $instname $destdir/$name" 61213eed67faSmbalmer $run eval "$install_prog $extra_mode $instname $destdir/$name" || exit $? 61223eed67faSmbalmer 61233eed67faSmbalmer # Maybe install the static library, too. 61243eed67faSmbalmer test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 61253eed67faSmbalmer ;; 61263eed67faSmbalmer 61273eed67faSmbalmer *.lo) 61283eed67faSmbalmer # Install (i.e. copy) a libtool object. 61293eed67faSmbalmer 61303eed67faSmbalmer # Figure out destination file name, if it wasn't already specified. 61313eed67faSmbalmer if test -n "$destname"; then 61323eed67faSmbalmer destfile="$destdir/$destname" 61333eed67faSmbalmer else 61343eed67faSmbalmer destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 61353eed67faSmbalmer destfile="$destdir/$destfile" 61363eed67faSmbalmer fi 61373eed67faSmbalmer 61383eed67faSmbalmer # Deduce the name of the destination old-style object file. 61393eed67faSmbalmer case $destfile in 61403eed67faSmbalmer *.lo) 61413eed67faSmbalmer staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 61423eed67faSmbalmer ;; 61433eed67faSmbalmer *.$objext) 61443eed67faSmbalmer staticdest="$destfile" 61453eed67faSmbalmer destfile= 61463eed67faSmbalmer ;; 61473eed67faSmbalmer *) 61483eed67faSmbalmer $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 61493eed67faSmbalmer $echo "$help" 1>&2 61503eed67faSmbalmer exit $EXIT_FAILURE 61513eed67faSmbalmer ;; 61523eed67faSmbalmer esac 61533eed67faSmbalmer 61543eed67faSmbalmer # Install the libtool object if requested. 61553eed67faSmbalmer if test -n "$destfile"; then 61563eed67faSmbalmer $show "$install_prog $extra_mode $file $destfile" 61573eed67faSmbalmer $run eval "$install_prog $extra_mode $file $destfile" || exit $? 61583eed67faSmbalmer fi 61593eed67faSmbalmer 61603eed67faSmbalmer # Install the old object if enabled. 61613eed67faSmbalmer if test "$build_old_libs" = yes; then 61623eed67faSmbalmer # Deduce the name of the old-style object file. 61633eed67faSmbalmer staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 61643eed67faSmbalmer 61653eed67faSmbalmer $show "$install_prog $extra_mode $staticobj $staticdest" 61663eed67faSmbalmer $run eval "$install_prog $extra_mode \$staticobj \$staticdest" || exit $? 61673eed67faSmbalmer fi 61683eed67faSmbalmer exit $EXIT_SUCCESS 61693eed67faSmbalmer ;; 61703eed67faSmbalmer 61713eed67faSmbalmer *) 61723eed67faSmbalmer # Figure out destination file name, if it wasn't already specified. 61733eed67faSmbalmer if test -n "$destname"; then 61743eed67faSmbalmer destfile="$destdir/$destname" 61753eed67faSmbalmer else 61763eed67faSmbalmer destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 61773eed67faSmbalmer destfile="$destdir/$destfile" 61783eed67faSmbalmer fi 61793eed67faSmbalmer 61803eed67faSmbalmer # If the file is missing, and there is a .exe on the end, strip it 61813eed67faSmbalmer # because it is most likely a libtool script we actually want to 61823eed67faSmbalmer # install 61833eed67faSmbalmer stripped_ext="" 61843eed67faSmbalmer case $file in 61853eed67faSmbalmer *.exe) 61863eed67faSmbalmer if test ! -f "$file"; then 61873eed67faSmbalmer file=`$echo $file|${SED} 's,.exe$,,'` 61883eed67faSmbalmer stripped_ext=".exe" 61893eed67faSmbalmer fi 61903eed67faSmbalmer ;; 61913eed67faSmbalmer esac 61923eed67faSmbalmer 61933eed67faSmbalmer # Do a test to see if this is really a libtool program. 61943eed67faSmbalmer case $host in 61953eed67faSmbalmer *cygwin*|*mingw*) 61963eed67faSmbalmer wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 61973eed67faSmbalmer ;; 61983eed67faSmbalmer *) 61993eed67faSmbalmer wrapper=$file 62003eed67faSmbalmer ;; 62013eed67faSmbalmer esac 62023eed67faSmbalmer if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 62033eed67faSmbalmer notinst_deplibs= 62043eed67faSmbalmer relink_command= 62053eed67faSmbalmer 62063eed67faSmbalmer # Note that it is not necessary on cygwin/mingw to append a dot to 62073eed67faSmbalmer # foo even if both foo and FILE.exe exist: automatic-append-.exe 62083eed67faSmbalmer # behavior happens only for exec(3), not for open(2)! Also, sourcing 62093eed67faSmbalmer # `FILE.' does not work on cygwin managed mounts. 62103eed67faSmbalmer # 62113eed67faSmbalmer # If there is no directory component, then add one. 62123eed67faSmbalmer case $wrapper in 62133eed67faSmbalmer */* | *\\*) . ${wrapper} ;; 62143eed67faSmbalmer *) . ./${wrapper} ;; 62153eed67faSmbalmer esac 62163eed67faSmbalmer 62173eed67faSmbalmer # Check the variables that should have been set. 62183eed67faSmbalmer if test -z "$notinst_deplibs"; then 62193eed67faSmbalmer $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 62203eed67faSmbalmer exit $EXIT_FAILURE 62213eed67faSmbalmer fi 62223eed67faSmbalmer 62233eed67faSmbalmer finalize=yes 62243eed67faSmbalmer for lib in $notinst_deplibs; do 62253eed67faSmbalmer # Check to see that each library is installed. 62263eed67faSmbalmer libdir= 62273eed67faSmbalmer if test -f "$lib"; then 62283eed67faSmbalmer # If there is no directory component, then add one. 62293eed67faSmbalmer case $lib in 62303eed67faSmbalmer */* | *\\*) . $lib ;; 62313eed67faSmbalmer *) . ./$lib ;; 62323eed67faSmbalmer esac 62333eed67faSmbalmer fi 62343eed67faSmbalmer libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 62353eed67faSmbalmer if test -n "$libdir" && test ! -f "$libfile"; then 62363eed67faSmbalmer $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 62373eed67faSmbalmer finalize=no 62383eed67faSmbalmer fi 62393eed67faSmbalmer done 62403eed67faSmbalmer 62413eed67faSmbalmer relink_command= 62423eed67faSmbalmer # Note that it is not necessary on cygwin/mingw to append a dot to 62433eed67faSmbalmer # foo even if both foo and FILE.exe exist: automatic-append-.exe 62443eed67faSmbalmer # behavior happens only for exec(3), not for open(2)! Also, sourcing 62453eed67faSmbalmer # `FILE.' does not work on cygwin managed mounts. 62463eed67faSmbalmer # 62473eed67faSmbalmer # If there is no directory component, then add one. 62483eed67faSmbalmer case $wrapper in 62493eed67faSmbalmer */* | *\\*) . ${wrapper} ;; 62503eed67faSmbalmer *) . ./${wrapper} ;; 62513eed67faSmbalmer esac 62523eed67faSmbalmer 62533eed67faSmbalmer outputname= 62543eed67faSmbalmer if test "$fast_install" = no && test -n "$relink_command"; then 62553eed67faSmbalmer if test "$finalize" = yes && test -z "$run"; then 62563eed67faSmbalmer tmpdir=`func_mktempdir` 62573eed67faSmbalmer file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 62583eed67faSmbalmer outputname="$tmpdir/$file" 62593eed67faSmbalmer # Replace the output file specification. 62603eed67faSmbalmer relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` 62613eed67faSmbalmer 62623eed67faSmbalmer $show "$relink_command" 62633eed67faSmbalmer if $run eval "$relink_command"; then : 62643eed67faSmbalmer else 62653eed67faSmbalmer $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 62663eed67faSmbalmer ${rm}r "$tmpdir" 62673eed67faSmbalmer continue 62683eed67faSmbalmer fi 62693eed67faSmbalmer file="$outputname" 62703eed67faSmbalmer else 62713eed67faSmbalmer $echo "$modename: warning: cannot relink \`$file'" 1>&2 62723eed67faSmbalmer fi 62733eed67faSmbalmer else 62743eed67faSmbalmer # Install the binary that we compiled earlier. 62753eed67faSmbalmer file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 62763eed67faSmbalmer fi 62773eed67faSmbalmer fi 62783eed67faSmbalmer 62793eed67faSmbalmer # remove .exe since cygwin /usr/bin/install will append another 62803eed67faSmbalmer # one anyway 62813eed67faSmbalmer case $install_prog,$host in 62823eed67faSmbalmer */usr/bin/install*,*cygwin*) 62833eed67faSmbalmer case $file:$destfile in 62843eed67faSmbalmer *.exe:*.exe) 62853eed67faSmbalmer # this is ok 62863eed67faSmbalmer ;; 62873eed67faSmbalmer *.exe:*) 62883eed67faSmbalmer destfile=$destfile.exe 62893eed67faSmbalmer ;; 62903eed67faSmbalmer *:*.exe) 62913eed67faSmbalmer destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 62923eed67faSmbalmer ;; 62933eed67faSmbalmer esac 62943eed67faSmbalmer ;; 62953eed67faSmbalmer esac 62963eed67faSmbalmer $show "$install_prog$stripme $file $destfile" 62973eed67faSmbalmer $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 62983eed67faSmbalmer test -n "$outputname" && ${rm}r "$tmpdir" 62993eed67faSmbalmer ;; 63003eed67faSmbalmer esac 63013eed67faSmbalmer done 63023eed67faSmbalmer 63033eed67faSmbalmer for file in $staticlibs; do 63043eed67faSmbalmer name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 63053eed67faSmbalmer 63063eed67faSmbalmer # Set up the ranlib parameters. 63073eed67faSmbalmer oldlib="$destdir/$name" 63083eed67faSmbalmer 63093eed67faSmbalmer $show "$install_prog $file $oldlib" 63103eed67faSmbalmer $run eval "$install_prog \$file \$oldlib" || exit $? 63113eed67faSmbalmer 63123eed67faSmbalmer if test -n "$stripme" && test -n "$old_striplib"; then 63133eed67faSmbalmer $show "$old_striplib $oldlib" 63143eed67faSmbalmer $run eval "$old_striplib $oldlib" || exit $? 63153eed67faSmbalmer fi 63163eed67faSmbalmer 63173eed67faSmbalmer # Do each command in the postinstall commands. 63183eed67faSmbalmer cmds=$old_postinstall_cmds 63193eed67faSmbalmer save_ifs="$IFS"; IFS='~' 63203eed67faSmbalmer for cmd in $cmds; do 63213eed67faSmbalmer IFS="$save_ifs" 63223eed67faSmbalmer eval cmd=\"$cmd\" 63233eed67faSmbalmer $show "$cmd" 63243eed67faSmbalmer $run eval "$cmd" || exit $? 63253eed67faSmbalmer done 63263eed67faSmbalmer IFS="$save_ifs" 63273eed67faSmbalmer done 63283eed67faSmbalmer 63293eed67faSmbalmer if test -n "$future_libdirs"; then 63303eed67faSmbalmer $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 63313eed67faSmbalmer fi 63323eed67faSmbalmer 63333eed67faSmbalmer if test -n "$current_libdirs"; then 63343eed67faSmbalmer # Maybe just do a dry run. 63353eed67faSmbalmer test -n "$run" && current_libdirs=" -n$current_libdirs" 63363eed67faSmbalmer exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 63373eed67faSmbalmer else 63383eed67faSmbalmer exit $EXIT_SUCCESS 63393eed67faSmbalmer fi 63403eed67faSmbalmer ;; 63413eed67faSmbalmer 63423eed67faSmbalmer # libtool finish mode 63433eed67faSmbalmer finish) 63443eed67faSmbalmer modename="$modename: finish" 63453eed67faSmbalmer libdirs="$nonopt" 63463eed67faSmbalmer admincmds= 63473eed67faSmbalmer 63483eed67faSmbalmer if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 63493eed67faSmbalmer for dir 63503eed67faSmbalmer do 63513eed67faSmbalmer libdirs="$libdirs $dir" 63523eed67faSmbalmer done 63533eed67faSmbalmer 63543eed67faSmbalmer for libdir in $libdirs; do 63553eed67faSmbalmer if test -n "$finish_cmds"; then 63563eed67faSmbalmer # Do each command in the finish commands. 63573eed67faSmbalmer cmds=$finish_cmds 63583eed67faSmbalmer save_ifs="$IFS"; IFS='~' 63593eed67faSmbalmer for cmd in $cmds; do 63603eed67faSmbalmer IFS="$save_ifs" 63613eed67faSmbalmer eval cmd=\"$cmd\" 63623eed67faSmbalmer $show "$cmd" 63633eed67faSmbalmer $run eval "$cmd" || admincmds="$admincmds 63643eed67faSmbalmer $cmd" 63653eed67faSmbalmer done 63663eed67faSmbalmer IFS="$save_ifs" 63673eed67faSmbalmer fi 63683eed67faSmbalmer if test -n "$finish_eval"; then 63693eed67faSmbalmer # Do the single finish_eval. 63703eed67faSmbalmer eval cmds=\"$finish_eval\" 63713eed67faSmbalmer $run eval "$cmds" || admincmds="$admincmds 63723eed67faSmbalmer $cmds" 63733eed67faSmbalmer fi 63743eed67faSmbalmer done 63753eed67faSmbalmer fi 63763eed67faSmbalmer 63773eed67faSmbalmer # Exit here if they wanted silent mode. 63783eed67faSmbalmer test "$show" = : && exit $EXIT_SUCCESS 63793eed67faSmbalmer 63803eed67faSmbalmer exit $EXIT_SUCCESS 63813eed67faSmbalmer ;; 63823eed67faSmbalmer 63833eed67faSmbalmer # libtool execute mode 63843eed67faSmbalmer execute) 63853eed67faSmbalmer modename="$modename: execute" 63863eed67faSmbalmer 63873eed67faSmbalmer # The first argument is the command name. 63883eed67faSmbalmer cmd="$nonopt" 63893eed67faSmbalmer if test -z "$cmd"; then 63903eed67faSmbalmer $echo "$modename: you must specify a COMMAND" 1>&2 63913eed67faSmbalmer $echo "$help" 63923eed67faSmbalmer exit $EXIT_FAILURE 63933eed67faSmbalmer fi 63943eed67faSmbalmer 63953eed67faSmbalmer # Handle -dlopen flags immediately. 63963eed67faSmbalmer for file in $execute_dlfiles; do 63973eed67faSmbalmer if test ! -f "$file"; then 63983eed67faSmbalmer $echo "$modename: \`$file' is not a file" 1>&2 63993eed67faSmbalmer $echo "$help" 1>&2 64003eed67faSmbalmer exit $EXIT_FAILURE 64013eed67faSmbalmer fi 64023eed67faSmbalmer 64033eed67faSmbalmer dir= 64043eed67faSmbalmer case $file in 64053eed67faSmbalmer *.la) 64063eed67faSmbalmer # Check to see that this really is a libtool archive. 64073eed67faSmbalmer if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 64083eed67faSmbalmer else 64093eed67faSmbalmer $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 64103eed67faSmbalmer $echo "$help" 1>&2 64113eed67faSmbalmer exit $EXIT_FAILURE 64123eed67faSmbalmer fi 64133eed67faSmbalmer 64143eed67faSmbalmer # Read the libtool library. 64153eed67faSmbalmer dlname= 64163eed67faSmbalmer library_names= 64173eed67faSmbalmer 64183eed67faSmbalmer # If there is no directory component, then add one. 64193eed67faSmbalmer case $file in 64203eed67faSmbalmer */* | *\\*) . $file ;; 64213eed67faSmbalmer *) . ./$file ;; 64223eed67faSmbalmer esac 64233eed67faSmbalmer 64243eed67faSmbalmer # Skip this library if it cannot be dlopened. 64253eed67faSmbalmer if test -z "$dlname"; then 64263eed67faSmbalmer # Warn if it was a shared library. 64273eed67faSmbalmer test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 64283eed67faSmbalmer continue 64293eed67faSmbalmer fi 64303eed67faSmbalmer 64313eed67faSmbalmer dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 64323eed67faSmbalmer test "X$dir" = "X$file" && dir=. 64333eed67faSmbalmer 64343eed67faSmbalmer if test -f "$dir/$objdir/$dlname"; then 64353eed67faSmbalmer dir="$dir/$objdir" 64363eed67faSmbalmer else 64373eed67faSmbalmer if test ! -f "$dir/$dlname"; then 64383eed67faSmbalmer $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 64393eed67faSmbalmer exit $EXIT_FAILURE 64403eed67faSmbalmer fi 64413eed67faSmbalmer fi 64423eed67faSmbalmer ;; 64433eed67faSmbalmer 64443eed67faSmbalmer *.lo) 64453eed67faSmbalmer # Just add the directory containing the .lo file. 64463eed67faSmbalmer dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 64473eed67faSmbalmer test "X$dir" = "X$file" && dir=. 64483eed67faSmbalmer ;; 64493eed67faSmbalmer 64503eed67faSmbalmer *) 64513eed67faSmbalmer $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 64523eed67faSmbalmer continue 64533eed67faSmbalmer ;; 64543eed67faSmbalmer esac 64553eed67faSmbalmer 64563eed67faSmbalmer # Get the absolute pathname. 64573eed67faSmbalmer absdir=`cd "$dir" && pwd` 64583eed67faSmbalmer test -n "$absdir" && dir="$absdir" 64593eed67faSmbalmer 64603eed67faSmbalmer # Now add the directory to shlibpath_var. 64613eed67faSmbalmer if eval "test -z \"\$$shlibpath_var\""; then 64623eed67faSmbalmer eval "$shlibpath_var=\"\$dir\"" 64633eed67faSmbalmer else 64643eed67faSmbalmer eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 64653eed67faSmbalmer fi 64663eed67faSmbalmer done 64673eed67faSmbalmer 64683eed67faSmbalmer # This variable tells wrapper scripts just to set shlibpath_var 64693eed67faSmbalmer # rather than running their programs. 64703eed67faSmbalmer libtool_execute_magic="$magic" 64713eed67faSmbalmer 64723eed67faSmbalmer # Check if any of the arguments is a wrapper script. 64733eed67faSmbalmer args= 64743eed67faSmbalmer for file 64753eed67faSmbalmer do 64763eed67faSmbalmer case $file in 64773eed67faSmbalmer -*) ;; 64783eed67faSmbalmer *) 64793eed67faSmbalmer # Do a test to see if this is really a libtool program. 64803eed67faSmbalmer if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 64813eed67faSmbalmer # If there is no directory component, then add one. 64823eed67faSmbalmer case $file in 64833eed67faSmbalmer */* | *\\*) . $file ;; 64843eed67faSmbalmer *) . ./$file ;; 64853eed67faSmbalmer esac 64863eed67faSmbalmer 64873eed67faSmbalmer # Transform arg to wrapped name. 64883eed67faSmbalmer file="$progdir/$program" 64893eed67faSmbalmer fi 64903eed67faSmbalmer ;; 64913eed67faSmbalmer esac 64923eed67faSmbalmer # Quote arguments (to preserve shell metacharacters). 64933eed67faSmbalmer file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 64943eed67faSmbalmer args="$args \"$file\"" 64953eed67faSmbalmer done 64963eed67faSmbalmer 64973eed67faSmbalmer if test -z "$run"; then 64983eed67faSmbalmer if test -n "$shlibpath_var"; then 64993eed67faSmbalmer # Export the shlibpath_var. 65003eed67faSmbalmer eval "export $shlibpath_var" 65013eed67faSmbalmer fi 65023eed67faSmbalmer 65033eed67faSmbalmer # Restore saved environment variables 65043eed67faSmbalmer for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 65053eed67faSmbalmer do 65063eed67faSmbalmer eval "if test \"\${save_$lt_var+set}\" = set; then 65073eed67faSmbalmer $lt_var=\$save_$lt_var; export $lt_var 65083eed67faSmbalmer fi" 65093eed67faSmbalmer done 65103eed67faSmbalmer 65113eed67faSmbalmer # Now prepare to actually exec the command. 65123eed67faSmbalmer exec_cmd="\$cmd$args" 65133eed67faSmbalmer else 65143eed67faSmbalmer # Display what would be done. 65153eed67faSmbalmer if test -n "$shlibpath_var"; then 65163eed67faSmbalmer eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 65173eed67faSmbalmer $echo "export $shlibpath_var" 65183eed67faSmbalmer fi 65193eed67faSmbalmer $echo "$cmd$args" 65203eed67faSmbalmer exit $EXIT_SUCCESS 65213eed67faSmbalmer fi 65223eed67faSmbalmer ;; 65233eed67faSmbalmer 65243eed67faSmbalmer # libtool clean and uninstall mode 65253eed67faSmbalmer clean | uninstall) 65263eed67faSmbalmer modename="$modename: $mode" 65273eed67faSmbalmer rm="$nonopt" 65283eed67faSmbalmer files= 65293eed67faSmbalmer rmforce= 65303eed67faSmbalmer exit_status=0 65313eed67faSmbalmer 65323eed67faSmbalmer # This variable tells wrapper scripts just to set variables rather 65333eed67faSmbalmer # than running their programs. 65343eed67faSmbalmer libtool_install_magic="$magic" 65353eed67faSmbalmer 65363eed67faSmbalmer for arg 65373eed67faSmbalmer do 65383eed67faSmbalmer case $arg in 65393eed67faSmbalmer -f) rm="$rm $arg"; rmforce=yes ;; 65403eed67faSmbalmer -*) rm="$rm $arg" ;; 65413eed67faSmbalmer *) files="$files $arg" ;; 65423eed67faSmbalmer esac 65433eed67faSmbalmer done 65443eed67faSmbalmer 65453eed67faSmbalmer if test -z "$rm"; then 65463eed67faSmbalmer $echo "$modename: you must specify an RM program" 1>&2 65473eed67faSmbalmer $echo "$help" 1>&2 65483eed67faSmbalmer exit $EXIT_FAILURE 65493eed67faSmbalmer fi 65503eed67faSmbalmer 65513eed67faSmbalmer rmdirs= 65523eed67faSmbalmer 65533eed67faSmbalmer origobjdir="$objdir" 65543eed67faSmbalmer for file in $files; do 65553eed67faSmbalmer dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 65563eed67faSmbalmer if test "X$dir" = "X$file"; then 65573eed67faSmbalmer dir=. 65583eed67faSmbalmer objdir="$origobjdir" 65593eed67faSmbalmer else 65603eed67faSmbalmer objdir="$dir/$origobjdir" 65613eed67faSmbalmer fi 65623eed67faSmbalmer name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 65633eed67faSmbalmer test "$mode" = uninstall && objdir="$dir" 65643eed67faSmbalmer 65653eed67faSmbalmer # Remember objdir for removal later, being careful to avoid duplicates 65663eed67faSmbalmer if test "$mode" = clean; then 65673eed67faSmbalmer case " $rmdirs " in 65683eed67faSmbalmer *" $objdir "*) ;; 65693eed67faSmbalmer *) rmdirs="$rmdirs $objdir" ;; 65703eed67faSmbalmer esac 65713eed67faSmbalmer fi 65723eed67faSmbalmer 65733eed67faSmbalmer # Don't error if the file doesn't exist and rm -f was used. 65743eed67faSmbalmer if (test -L "$file") >/dev/null 2>&1 \ 65753eed67faSmbalmer || (test -h "$file") >/dev/null 2>&1 \ 65763eed67faSmbalmer || test -f "$file"; then 65773eed67faSmbalmer : 65783eed67faSmbalmer elif test -d "$file"; then 65793eed67faSmbalmer exit_status=1 65803eed67faSmbalmer continue 65813eed67faSmbalmer elif test "$rmforce" = yes; then 65823eed67faSmbalmer continue 65833eed67faSmbalmer fi 65843eed67faSmbalmer 65853eed67faSmbalmer rmfiles="$file" 65863eed67faSmbalmer 65873eed67faSmbalmer case $name in 65883eed67faSmbalmer *.la) 65893eed67faSmbalmer # Possibly a libtool archive, so verify it. 65903eed67faSmbalmer if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 65913eed67faSmbalmer . $dir/$name 65923eed67faSmbalmer 65933eed67faSmbalmer # Delete the libtool libraries and symlinks. 65943eed67faSmbalmer for n in $library_names; do 65953eed67faSmbalmer rmfiles="$rmfiles $objdir/$n" 65963eed67faSmbalmer done 65973eed67faSmbalmer test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 65983eed67faSmbalmer 65993eed67faSmbalmer case "$mode" in 66003eed67faSmbalmer clean) 66013eed67faSmbalmer case " $library_names " in 66023eed67faSmbalmer # " " in the beginning catches empty $dlname 66033eed67faSmbalmer *" $dlname "*) ;; 66043eed67faSmbalmer *) rmfiles="$rmfiles $objdir/$dlname" ;; 66053eed67faSmbalmer esac 66063eed67faSmbalmer test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 66073eed67faSmbalmer ;; 66083eed67faSmbalmer uninstall) 66093eed67faSmbalmer if test -n "$library_names"; then 66103eed67faSmbalmer # Do each command in the postuninstall commands. 66113eed67faSmbalmer cmds=$postuninstall_cmds 66123eed67faSmbalmer save_ifs="$IFS"; IFS='~' 66133eed67faSmbalmer for cmd in $cmds; do 66143eed67faSmbalmer IFS="$save_ifs" 66153eed67faSmbalmer eval cmd=\"$cmd\" 66163eed67faSmbalmer $show "$cmd" 66173eed67faSmbalmer $run eval "$cmd" 66183eed67faSmbalmer if test "$?" -ne 0 && test "$rmforce" != yes; then 66193eed67faSmbalmer exit_status=1 66203eed67faSmbalmer fi 66213eed67faSmbalmer done 66223eed67faSmbalmer IFS="$save_ifs" 66233eed67faSmbalmer fi 66243eed67faSmbalmer 66253eed67faSmbalmer if test -n "$old_library"; then 66263eed67faSmbalmer # Do each command in the old_postuninstall commands. 66273eed67faSmbalmer cmds=$old_postuninstall_cmds 66283eed67faSmbalmer save_ifs="$IFS"; IFS='~' 66293eed67faSmbalmer for cmd in $cmds; do 66303eed67faSmbalmer IFS="$save_ifs" 66313eed67faSmbalmer eval cmd=\"$cmd\" 66323eed67faSmbalmer $show "$cmd" 66333eed67faSmbalmer $run eval "$cmd" 66343eed67faSmbalmer if test "$?" -ne 0 && test "$rmforce" != yes; then 66353eed67faSmbalmer exit_status=1 66363eed67faSmbalmer fi 66373eed67faSmbalmer done 66383eed67faSmbalmer IFS="$save_ifs" 66393eed67faSmbalmer fi 66403eed67faSmbalmer # FIXME: should reinstall the best remaining shared library. 66413eed67faSmbalmer ;; 66423eed67faSmbalmer esac 66433eed67faSmbalmer fi 66443eed67faSmbalmer ;; 66453eed67faSmbalmer 66463eed67faSmbalmer *.lo) 66473eed67faSmbalmer # Possibly a libtool object, so verify it. 66483eed67faSmbalmer if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 66493eed67faSmbalmer 66503eed67faSmbalmer # Read the .lo file 66513eed67faSmbalmer . $dir/$name 66523eed67faSmbalmer 66533eed67faSmbalmer # Add PIC object to the list of files to remove. 66543eed67faSmbalmer if test -n "$pic_object" \ 66553eed67faSmbalmer && test "$pic_object" != none; then 66563eed67faSmbalmer rmfiles="$rmfiles $dir/$pic_object" 66573eed67faSmbalmer fi 66583eed67faSmbalmer 66593eed67faSmbalmer # Add non-PIC object to the list of files to remove. 66603eed67faSmbalmer if test -n "$non_pic_object" \ 66613eed67faSmbalmer && test "$non_pic_object" != none; then 66623eed67faSmbalmer rmfiles="$rmfiles $dir/$non_pic_object" 66633eed67faSmbalmer fi 66643eed67faSmbalmer fi 66653eed67faSmbalmer ;; 66663eed67faSmbalmer 66673eed67faSmbalmer *) 66683eed67faSmbalmer if test "$mode" = clean ; then 66693eed67faSmbalmer noexename=$name 66703eed67faSmbalmer case $file in 66713eed67faSmbalmer *.exe) 66723eed67faSmbalmer file=`$echo $file|${SED} 's,.exe$,,'` 66733eed67faSmbalmer noexename=`$echo $name|${SED} 's,.exe$,,'` 66743eed67faSmbalmer # $file with .exe has already been added to rmfiles, 66753eed67faSmbalmer # add $file without .exe 66763eed67faSmbalmer rmfiles="$rmfiles $file" 66773eed67faSmbalmer ;; 66783eed67faSmbalmer esac 66793eed67faSmbalmer # Do a test to see if this is a libtool program. 66803eed67faSmbalmer if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 66813eed67faSmbalmer relink_command= 66823eed67faSmbalmer . $dir/$noexename 66833eed67faSmbalmer 66843eed67faSmbalmer # note $name still contains .exe if it was in $file originally 66853eed67faSmbalmer # as does the version of $file that was added into $rmfiles 66863eed67faSmbalmer rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 66873eed67faSmbalmer if test "$fast_install" = yes && test -n "$relink_command"; then 66883eed67faSmbalmer rmfiles="$rmfiles $objdir/lt-$name" 66893eed67faSmbalmer fi 66903eed67faSmbalmer if test "X$noexename" != "X$name" ; then 66913eed67faSmbalmer rmfiles="$rmfiles $objdir/lt-${noexename}.c" 66923eed67faSmbalmer fi 66933eed67faSmbalmer fi 66943eed67faSmbalmer fi 66953eed67faSmbalmer ;; 66963eed67faSmbalmer esac 66973eed67faSmbalmer $show "$rm $rmfiles" 66983eed67faSmbalmer $run $rm $rmfiles || exit_status=1 66993eed67faSmbalmer done 67003eed67faSmbalmer objdir="$origobjdir" 67013eed67faSmbalmer 67023eed67faSmbalmer # Try to remove the ${objdir}s in the directories where we deleted files 67033eed67faSmbalmer for dir in $rmdirs; do 67043eed67faSmbalmer if test -d "$dir"; then 67053eed67faSmbalmer $show "rmdir $dir" 67063eed67faSmbalmer $run rmdir $dir >/dev/null 2>&1 67073eed67faSmbalmer fi 67083eed67faSmbalmer done 67093eed67faSmbalmer 67103eed67faSmbalmer exit $exit_status 67113eed67faSmbalmer ;; 67123eed67faSmbalmer 67133eed67faSmbalmer "") 67143eed67faSmbalmer $echo "$modename: you must specify a MODE" 1>&2 67153eed67faSmbalmer $echo "$generic_help" 1>&2 67163eed67faSmbalmer exit $EXIT_FAILURE 67173eed67faSmbalmer ;; 67183eed67faSmbalmer esac 67193eed67faSmbalmer 67203eed67faSmbalmer if test -z "$exec_cmd"; then 67213eed67faSmbalmer $echo "$modename: invalid operation mode \`$mode'" 1>&2 67223eed67faSmbalmer $echo "$generic_help" 1>&2 67233eed67faSmbalmer exit $EXIT_FAILURE 67243eed67faSmbalmer fi 67253eed67faSmbalmerfi # test -z "$show_help" 67263eed67faSmbalmer 67273eed67faSmbalmerif test -n "$exec_cmd"; then 67283eed67faSmbalmer eval exec $exec_cmd 67293eed67faSmbalmer exit $EXIT_FAILURE 67303eed67faSmbalmerfi 67313eed67faSmbalmer 67323eed67faSmbalmer# We need to display help for each of the modes. 67333eed67faSmbalmercase $mode in 67343eed67faSmbalmer"") $echo \ 67353eed67faSmbalmer"Usage: $modename [OPTION]... [MODE-ARG]... 67363eed67faSmbalmer 67373eed67faSmbalmerProvide generalized library-building support services. 67383eed67faSmbalmer 67393eed67faSmbalmer --config show all configuration variables 67403eed67faSmbalmer --debug enable verbose shell tracing 67413eed67faSmbalmer-n, --dry-run display commands without modifying any files 67423eed67faSmbalmer --features display basic configuration information and exit 67433eed67faSmbalmer --finish same as \`--mode=finish' 67443eed67faSmbalmer --help display this help message and exit 67453eed67faSmbalmer --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 67463eed67faSmbalmer --quiet same as \`--silent' 67473eed67faSmbalmer --silent don't print informational messages 67483eed67faSmbalmer --tag=TAG use configuration variables from tag TAG 67493eed67faSmbalmer --version print version information 67503eed67faSmbalmer 67513eed67faSmbalmerMODE must be one of the following: 67523eed67faSmbalmer 67533eed67faSmbalmer clean remove files from the build directory 67543eed67faSmbalmer compile compile a source file into a libtool object 67553eed67faSmbalmer execute automatically set library path, then run a program 67563eed67faSmbalmer finish complete the installation of libtool libraries 67573eed67faSmbalmer install install libraries or executables 67583eed67faSmbalmer link create a library or an executable 67593eed67faSmbalmer uninstall remove libraries from an installed directory 67603eed67faSmbalmer 67613eed67faSmbalmerMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 67623eed67faSmbalmera more detailed description of MODE. 67633eed67faSmbalmer 67643eed67faSmbalmerReport bugs to <bug-libtool@gnu.org>." 67653eed67faSmbalmer exit $EXIT_SUCCESS 67663eed67faSmbalmer ;; 67673eed67faSmbalmer 67683eed67faSmbalmerclean) 67693eed67faSmbalmer $echo \ 67703eed67faSmbalmer"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 67713eed67faSmbalmer 67723eed67faSmbalmerRemove files from the build directory. 67733eed67faSmbalmer 67743eed67faSmbalmerRM is the name of the program to use to delete files associated with each FILE 67753eed67faSmbalmer(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 67763eed67faSmbalmerto RM. 67773eed67faSmbalmer 67783eed67faSmbalmerIf FILE is a libtool library, object or program, all the files associated 67793eed67faSmbalmerwith it are deleted. Otherwise, only FILE itself is deleted using RM." 67803eed67faSmbalmer ;; 67813eed67faSmbalmer 67823eed67faSmbalmercompile) 67833eed67faSmbalmer $echo \ 67843eed67faSmbalmer"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 67853eed67faSmbalmer 67863eed67faSmbalmerCompile a source file into a libtool library object. 67873eed67faSmbalmer 67883eed67faSmbalmerThis mode accepts the following additional options: 67893eed67faSmbalmer 67903eed67faSmbalmer -o OUTPUT-FILE set the output file name to OUTPUT-FILE 67913eed67faSmbalmer -prefer-pic try to building PIC objects only 67923eed67faSmbalmer -prefer-non-pic try to building non-PIC objects only 67933eed67faSmbalmer -static always build a \`.o' file suitable for static linking 67943eed67faSmbalmer 67953eed67faSmbalmerCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 67963eed67faSmbalmerfrom the given SOURCEFILE. 67973eed67faSmbalmer 67983eed67faSmbalmerThe output file name is determined by removing the directory component from 67993eed67faSmbalmerSOURCEFILE, then substituting the C source code suffix \`.c' with the 68003eed67faSmbalmerlibrary object suffix, \`.lo'." 68013eed67faSmbalmer ;; 68023eed67faSmbalmer 68033eed67faSmbalmerexecute) 68043eed67faSmbalmer $echo \ 68053eed67faSmbalmer"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 68063eed67faSmbalmer 68073eed67faSmbalmerAutomatically set library path, then run a program. 68083eed67faSmbalmer 68093eed67faSmbalmerThis mode accepts the following additional options: 68103eed67faSmbalmer 68113eed67faSmbalmer -dlopen FILE add the directory containing FILE to the library path 68123eed67faSmbalmer 68133eed67faSmbalmerThis mode sets the library path environment variable according to \`-dlopen' 68143eed67faSmbalmerflags. 68153eed67faSmbalmer 68163eed67faSmbalmerIf any of the ARGS are libtool executable wrappers, then they are translated 68173eed67faSmbalmerinto their corresponding uninstalled binary, and any of their required library 68183eed67faSmbalmerdirectories are added to the library path. 68193eed67faSmbalmer 68203eed67faSmbalmerThen, COMMAND is executed, with ARGS as arguments." 68213eed67faSmbalmer ;; 68223eed67faSmbalmer 68233eed67faSmbalmerfinish) 68243eed67faSmbalmer $echo \ 68253eed67faSmbalmer"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 68263eed67faSmbalmer 68273eed67faSmbalmerComplete the installation of libtool libraries. 68283eed67faSmbalmer 68293eed67faSmbalmerEach LIBDIR is a directory that contains libtool libraries. 68303eed67faSmbalmer 68313eed67faSmbalmerThe commands that this mode executes may require superuser privileges. Use 68323eed67faSmbalmerthe \`--dry-run' option if you just want to see what would be executed." 68333eed67faSmbalmer ;; 68343eed67faSmbalmer 68353eed67faSmbalmerinstall) 68363eed67faSmbalmer $echo \ 68373eed67faSmbalmer"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 68383eed67faSmbalmer 68393eed67faSmbalmerInstall executables or libraries. 68403eed67faSmbalmer 68413eed67faSmbalmerINSTALL-COMMAND is the installation command. The first component should be 68423eed67faSmbalmereither the \`install' or \`cp' program. 68433eed67faSmbalmer 68443eed67faSmbalmerThe rest of the components are interpreted as arguments to that command (only 68453eed67faSmbalmerBSD-compatible install options are recognized)." 68463eed67faSmbalmer ;; 68473eed67faSmbalmer 68483eed67faSmbalmerlink) 68493eed67faSmbalmer $echo \ 68503eed67faSmbalmer"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 68513eed67faSmbalmer 68523eed67faSmbalmerLink object files or libraries together to form another library, or to 68533eed67faSmbalmercreate an executable program. 68543eed67faSmbalmer 68553eed67faSmbalmerLINK-COMMAND is a command using the C compiler that you would use to create 68563eed67faSmbalmera program from several object files. 68573eed67faSmbalmer 68583eed67faSmbalmerThe following components of LINK-COMMAND are treated specially: 68593eed67faSmbalmer 68603eed67faSmbalmer -all-static do not do any dynamic linking at all 68613eed67faSmbalmer -avoid-version do not add a version suffix if possible 68623eed67faSmbalmer -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 68633eed67faSmbalmer -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 68643eed67faSmbalmer -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 68653eed67faSmbalmer -export-symbols SYMFILE 68663eed67faSmbalmer try to export only the symbols listed in SYMFILE 68673eed67faSmbalmer -export-symbols-regex REGEX 68683eed67faSmbalmer try to export only the symbols matching REGEX 68693eed67faSmbalmer -LLIBDIR search LIBDIR for required installed libraries 68703eed67faSmbalmer -lNAME OUTPUT-FILE requires the installed library libNAME 68713eed67faSmbalmer -module build a library that can dlopened 68723eed67faSmbalmer -no-fast-install disable the fast-install mode 68733eed67faSmbalmer -no-install link a not-installable executable 68743eed67faSmbalmer -no-undefined declare that a library does not refer to external symbols 68753eed67faSmbalmer -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 68763eed67faSmbalmer -objectlist FILE Use a list of object files found in FILE to specify objects 68773eed67faSmbalmer -precious-files-regex REGEX 68783eed67faSmbalmer don't remove output files matching REGEX 68793eed67faSmbalmer -release RELEASE specify package release information 68803eed67faSmbalmer -rpath LIBDIR the created library will eventually be installed in LIBDIR 68813eed67faSmbalmer -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 68823eed67faSmbalmer -static do not do any dynamic linking of uninstalled libtool libraries 68833eed67faSmbalmer -static-libtool-libs 68843eed67faSmbalmer do not do any dynamic linking of libtool libraries 68853eed67faSmbalmer -version-info CURRENT[:REVISION[:AGE]] 68863eed67faSmbalmer specify library version info [each variable defaults to 0] 68873eed67faSmbalmer 68883eed67faSmbalmerAll other options (arguments beginning with \`-') are ignored. 68893eed67faSmbalmer 68903eed67faSmbalmerEvery other argument is treated as a filename. Files ending in \`.la' are 68913eed67faSmbalmertreated as uninstalled libtool libraries, other files are standard or library 68923eed67faSmbalmerobject files. 68933eed67faSmbalmer 68943eed67faSmbalmerIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 68953eed67faSmbalmeronly library objects (\`.lo' files) may be specified, and \`-rpath' is 68963eed67faSmbalmerrequired, except when creating a convenience library. 68973eed67faSmbalmer 68983eed67faSmbalmerIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 68993eed67faSmbalmerusing \`ar' and \`ranlib', or on Windows using \`lib'. 69003eed67faSmbalmer 69013eed67faSmbalmerIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 69023eed67faSmbalmeris created, otherwise an executable program is created." 69033eed67faSmbalmer ;; 69043eed67faSmbalmer 69053eed67faSmbalmeruninstall) 69063eed67faSmbalmer $echo \ 69073eed67faSmbalmer"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 69083eed67faSmbalmer 69093eed67faSmbalmerRemove libraries from an installation directory. 69103eed67faSmbalmer 69113eed67faSmbalmerRM is the name of the program to use to delete files associated with each FILE 69123eed67faSmbalmer(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 69133eed67faSmbalmerto RM. 69143eed67faSmbalmer 69153eed67faSmbalmerIf FILE is a libtool library, all the files associated with it are deleted. 69163eed67faSmbalmerOtherwise, only FILE itself is deleted using RM." 69173eed67faSmbalmer ;; 69183eed67faSmbalmer 69193eed67faSmbalmer*) 69203eed67faSmbalmer $echo "$modename: invalid operation mode \`$mode'" 1>&2 69213eed67faSmbalmer $echo "$help" 1>&2 69223eed67faSmbalmer exit $EXIT_FAILURE 69233eed67faSmbalmer ;; 69243eed67faSmbalmeresac 69253eed67faSmbalmer 69263eed67faSmbalmer$echo 69273eed67faSmbalmer$echo "Try \`$modename --help' for more information about other modes." 69283eed67faSmbalmer 69293eed67faSmbalmerexit $? 69303eed67faSmbalmer 69313eed67faSmbalmer# The TAGs below are defined such that we never get into a situation 69323eed67faSmbalmer# in which we disable both kinds of libraries. Given conflicting 69333eed67faSmbalmer# choices, we go for a static library, that is the most portable, 69343eed67faSmbalmer# since we can't tell whether shared libraries were disabled because 69353eed67faSmbalmer# the user asked for that or because the platform doesn't support 69363eed67faSmbalmer# them. This is particularly important on AIX, because we don't 69373eed67faSmbalmer# support having both static and shared libraries enabled at the same 69383eed67faSmbalmer# time on that platform, so we default to a shared-only configuration. 69393eed67faSmbalmer# If a disable-shared tag is given, we'll fallback to a static-only 69403eed67faSmbalmer# configuration. But we'll never go from static-only to shared-only. 69413eed67faSmbalmer 69423eed67faSmbalmer# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 69433eed67faSmbalmerdisable_libs=shared 69443eed67faSmbalmer# ### END LIBTOOL TAG CONFIG: disable-shared 69453eed67faSmbalmer 69463eed67faSmbalmer# ### BEGIN LIBTOOL TAG CONFIG: disable-static 69473eed67faSmbalmerdisable_libs=static 69483eed67faSmbalmer# ### END LIBTOOL TAG CONFIG: disable-static 69493eed67faSmbalmer 69503eed67faSmbalmer# Local Variables: 69513eed67faSmbalmer# mode:shell-script 69523eed67faSmbalmer# sh-indentation:2 69533eed67faSmbalmer# End: 6954