ltmain.sh revision 943345d3
1943345d3Smrg# ltmain.sh - Provide generalized library-building support services. 2943345d3Smrg# NOTE: Changing this file will not affect anything until you rerun configure. 3943345d3Smrg# 4943345d3Smrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 5943345d3Smrg# Free Software Foundation, Inc. 6943345d3Smrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 7943345d3Smrg# 8943345d3Smrg# This program is free software; you can redistribute it and/or modify 9943345d3Smrg# it under the terms of the GNU General Public License as published by 10943345d3Smrg# the Free Software Foundation; either version 2 of the License, or 11943345d3Smrg# (at your option) any later version. 12943345d3Smrg# 13943345d3Smrg# This program is distributed in the hope that it will be useful, but 14943345d3Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 15943345d3Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16943345d3Smrg# General Public License for more details. 17943345d3Smrg# 18943345d3Smrg# You should have received a copy of the GNU General Public License 19943345d3Smrg# along with this program; if not, write to the Free Software 20943345d3Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21943345d3Smrg# 22943345d3Smrg# As a special exception to the GNU General Public License, if you 23943345d3Smrg# distribute this file as part of a program that contains a 24943345d3Smrg# configuration script generated by Autoconf, you may include it under 25943345d3Smrg# the same distribution terms that you use for the rest of that program. 26943345d3Smrg 27943345d3Smrgbasename="s,^.*/,,g" 28943345d3Smrg 29943345d3Smrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 30943345d3Smrg# is ksh but when the shell is invoked as "sh" and the current value of 31943345d3Smrg# the _XPG environment variable is not equal to 1 (one), the special 32943345d3Smrg# positional parameter $0, within a function call, is the name of the 33943345d3Smrg# function. 34943345d3Smrgprogpath="$0" 35943345d3Smrg 36943345d3Smrg# The name of this program: 37943345d3Smrgprogname=`echo "$progpath" | $SED $basename` 38943345d3Smrgmodename="$progname" 39943345d3Smrg 40943345d3Smrg# Global variables: 41943345d3SmrgEXIT_SUCCESS=0 42943345d3SmrgEXIT_FAILURE=1 43943345d3Smrg 44943345d3SmrgPROGRAM=ltmain.sh 45943345d3SmrgPACKAGE=libtool 46943345d3SmrgVERSION=1.5.22 47943345d3SmrgTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" 48943345d3Smrg 49943345d3Smrg# See if we are running on zsh, and set the options which allow our 50943345d3Smrg# commands through without removal of \ escapes. 51943345d3Smrgif test -n "${ZSH_VERSION+set}" ; then 52943345d3Smrg setopt NO_GLOB_SUBST 53943345d3Smrgfi 54943345d3Smrg 55943345d3Smrg# Check that we have a working $echo. 56943345d3Smrgif test "X$1" = X--no-reexec; then 57943345d3Smrg # Discard the --no-reexec flag, and continue. 58943345d3Smrg shift 59943345d3Smrgelif test "X$1" = X--fallback-echo; then 60943345d3Smrg # Avoid inline document here, it may be left over 61943345d3Smrg : 62943345d3Smrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 63943345d3Smrg # Yippee, $echo works! 64943345d3Smrg : 65943345d3Smrgelse 66943345d3Smrg # Restart under the correct shell, and then maybe $echo will work. 67943345d3Smrg exec $SHELL "$progpath" --no-reexec ${1+"$@"} 68943345d3Smrgfi 69943345d3Smrg 70943345d3Smrgif test "X$1" = X--fallback-echo; then 71943345d3Smrg # used as fallback echo 72943345d3Smrg shift 73943345d3Smrg cat <<EOF 74943345d3Smrg$* 75943345d3SmrgEOF 76943345d3Smrg exit $EXIT_SUCCESS 77943345d3Smrgfi 78943345d3Smrg 79943345d3Smrgdefault_mode= 80943345d3Smrghelp="Try \`$progname --help' for more information." 81943345d3Smrgmagic="%%%MAGIC variable%%%" 82943345d3Smrgmkdir="mkdir" 83943345d3Smrgmv="mv -f" 84943345d3Smrgrm="rm -f" 85943345d3Smrg 86943345d3Smrg# Sed substitution that helps us do robust quoting. It backslashifies 87943345d3Smrg# metacharacters that are still active within double-quoted strings. 88943345d3SmrgXsed="${SED}"' -e 1s/^X//' 89943345d3Smrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 90943345d3Smrg# test EBCDIC or ASCII 91943345d3Smrgcase `echo X|tr X '\101'` in 92943345d3Smrg A) # ASCII based system 93943345d3Smrg # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 94943345d3Smrg SP2NL='tr \040 \012' 95943345d3Smrg NL2SP='tr \015\012 \040\040' 96943345d3Smrg ;; 97943345d3Smrg *) # EBCDIC based system 98943345d3Smrg SP2NL='tr \100 \n' 99943345d3Smrg NL2SP='tr \r\n \100\100' 100943345d3Smrg ;; 101943345d3Smrgesac 102943345d3Smrg 103943345d3Smrg# NLS nuisances. 104943345d3Smrg# Only set LANG and LC_ALL to C if already set. 105943345d3Smrg# These must not be set unconditionally because not all systems understand 106943345d3Smrg# e.g. LANG=C (notably SCO). 107943345d3Smrg# We save the old values to restore during execute mode. 108943345d3Smrgif test "${LC_ALL+set}" = set; then 109943345d3Smrg save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL 110943345d3Smrgfi 111943345d3Smrgif test "${LANG+set}" = set; then 112943345d3Smrg save_LANG="$LANG"; LANG=C; export LANG 113943345d3Smrgfi 114943345d3Smrg 115943345d3Smrg# Make sure IFS has a sensible default 116943345d3Smrglt_nl=' 117943345d3Smrg' 118943345d3SmrgIFS=" $lt_nl" 119943345d3Smrg 120943345d3Smrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 121943345d3Smrg $echo "$modename: not configured to build any kind of library" 1>&2 122943345d3Smrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 123943345d3Smrg exit $EXIT_FAILURE 124943345d3Smrgfi 125943345d3Smrg 126943345d3Smrg# Global variables. 127943345d3Smrgmode=$default_mode 128943345d3Smrgnonopt= 129943345d3Smrgprev= 130943345d3Smrgprevopt= 131943345d3Smrgrun= 132943345d3Smrgshow="$echo" 133943345d3Smrgshow_help= 134943345d3Smrgexecute_dlfiles= 135943345d3Smrgduplicate_deps=no 136943345d3Smrgpreserve_args= 137943345d3Smrglo2o="s/\\.lo\$/.${objext}/" 138943345d3Smrgo2lo="s/\\.${objext}\$/.lo/" 139943345d3Smrg 140943345d3Smrg##################################### 141943345d3Smrg# Shell function definitions: 142943345d3Smrg# This seems to be the best place for them 143943345d3Smrg 144943345d3Smrg# func_mktempdir [string] 145943345d3Smrg# Make a temporary directory that won't clash with other running 146943345d3Smrg# libtool processes, and avoids race conditions if possible. If 147943345d3Smrg# given, STRING is the basename for that directory. 148943345d3Smrgfunc_mktempdir () 149943345d3Smrg{ 150943345d3Smrg my_template="${TMPDIR-/tmp}/${1-$progname}" 151943345d3Smrg 152943345d3Smrg if test "$run" = ":"; then 153943345d3Smrg # Return a directory name, but don't create it in dry-run mode 154943345d3Smrg my_tmpdir="${my_template}-$$" 155943345d3Smrg else 156943345d3Smrg 157943345d3Smrg # If mktemp works, use that first and foremost 158943345d3Smrg my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 159943345d3Smrg 160943345d3Smrg if test ! -d "$my_tmpdir"; then 161943345d3Smrg # Failing that, at least try and use $RANDOM to avoid a race 162943345d3Smrg my_tmpdir="${my_template}-${RANDOM-0}$$" 163943345d3Smrg 164943345d3Smrg save_mktempdir_umask=`umask` 165943345d3Smrg umask 0077 166943345d3Smrg $mkdir "$my_tmpdir" 167943345d3Smrg umask $save_mktempdir_umask 168943345d3Smrg fi 169943345d3Smrg 170943345d3Smrg # If we're not in dry-run mode, bomb out on failure 171943345d3Smrg test -d "$my_tmpdir" || { 172943345d3Smrg $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 173943345d3Smrg exit $EXIT_FAILURE 174943345d3Smrg } 175943345d3Smrg fi 176943345d3Smrg 177943345d3Smrg $echo "X$my_tmpdir" | $Xsed 178943345d3Smrg} 179943345d3Smrg 180943345d3Smrg 181943345d3Smrg# func_win32_libid arg 182943345d3Smrg# return the library type of file 'arg' 183943345d3Smrg# 184943345d3Smrg# Need a lot of goo to handle *both* DLLs and import libs 185943345d3Smrg# Has to be a shell function in order to 'eat' the argument 186943345d3Smrg# that is supplied when $file_magic_command is called. 187943345d3Smrgfunc_win32_libid () 188943345d3Smrg{ 189943345d3Smrg win32_libid_type="unknown" 190943345d3Smrg win32_fileres=`file -L $1 2>/dev/null` 191943345d3Smrg case $win32_fileres in 192943345d3Smrg *ar\ archive\ import\ library*) # definitely import 193943345d3Smrg win32_libid_type="x86 archive import" 194943345d3Smrg ;; 195943345d3Smrg *ar\ archive*) # could be an import, or static 196943345d3Smrg if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 197943345d3Smrg $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 198943345d3Smrg win32_nmres=`eval $NM -f posix -A $1 | \ 199943345d3Smrg $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` 200943345d3Smrg case $win32_nmres in 201943345d3Smrg import*) win32_libid_type="x86 archive import";; 202943345d3Smrg *) win32_libid_type="x86 archive static";; 203943345d3Smrg esac 204943345d3Smrg fi 205943345d3Smrg ;; 206943345d3Smrg *DLL*) 207943345d3Smrg win32_libid_type="x86 DLL" 208943345d3Smrg ;; 209943345d3Smrg *executable*) # but shell scripts are "executable" too... 210943345d3Smrg case $win32_fileres in 211943345d3Smrg *MS\ Windows\ PE\ Intel*) 212943345d3Smrg win32_libid_type="x86 DLL" 213943345d3Smrg ;; 214943345d3Smrg esac 215943345d3Smrg ;; 216943345d3Smrg esac 217943345d3Smrg $echo $win32_libid_type 218943345d3Smrg} 219943345d3Smrg 220943345d3Smrg 221943345d3Smrg# func_infer_tag arg 222943345d3Smrg# Infer tagged configuration to use if any are available and 223943345d3Smrg# if one wasn't chosen via the "--tag" command line option. 224943345d3Smrg# Only attempt this if the compiler in the base compile 225943345d3Smrg# command doesn't match the default compiler. 226943345d3Smrg# arg is usually of the form 'gcc ...' 227943345d3Smrgfunc_infer_tag () 228943345d3Smrg{ 229943345d3Smrg if test -n "$available_tags" && test -z "$tagname"; then 230943345d3Smrg CC_quoted= 231943345d3Smrg for arg in $CC; do 232943345d3Smrg case $arg in 233943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 234943345d3Smrg arg="\"$arg\"" 235943345d3Smrg ;; 236943345d3Smrg esac 237943345d3Smrg CC_quoted="$CC_quoted $arg" 238943345d3Smrg done 239943345d3Smrg case $@ in 240943345d3Smrg # Blanks in the command may have been stripped by the calling shell, 241943345d3Smrg # but not from the CC environment variable when configure was run. 242943345d3Smrg " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 243943345d3Smrg # Blanks at the start of $base_compile will cause this to fail 244943345d3Smrg # if we don't check for them as well. 245943345d3Smrg *) 246943345d3Smrg for z in $available_tags; do 247943345d3Smrg if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 248943345d3Smrg # Evaluate the configuration. 249943345d3Smrg eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 250943345d3Smrg CC_quoted= 251943345d3Smrg for arg in $CC; do 252943345d3Smrg # Double-quote args containing other shell metacharacters. 253943345d3Smrg case $arg in 254943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 255943345d3Smrg arg="\"$arg\"" 256943345d3Smrg ;; 257943345d3Smrg esac 258943345d3Smrg CC_quoted="$CC_quoted $arg" 259943345d3Smrg done 260943345d3Smrg case "$@ " in 261943345d3Smrg " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 262943345d3Smrg # The compiler in the base compile command matches 263943345d3Smrg # the one in the tagged configuration. 264943345d3Smrg # Assume this is the tagged configuration we want. 265943345d3Smrg tagname=$z 266943345d3Smrg break 267943345d3Smrg ;; 268943345d3Smrg esac 269943345d3Smrg fi 270943345d3Smrg done 271943345d3Smrg # If $tagname still isn't set, then no tagged configuration 272943345d3Smrg # was found and let the user know that the "--tag" command 273943345d3Smrg # line option must be used. 274943345d3Smrg if test -z "$tagname"; then 275943345d3Smrg $echo "$modename: unable to infer tagged configuration" 276943345d3Smrg $echo "$modename: specify a tag with \`--tag'" 1>&2 277943345d3Smrg exit $EXIT_FAILURE 278943345d3Smrg# else 279943345d3Smrg# $echo "$modename: using $tagname tagged configuration" 280943345d3Smrg fi 281943345d3Smrg ;; 282943345d3Smrg esac 283943345d3Smrg fi 284943345d3Smrg} 285943345d3Smrg 286943345d3Smrg 287943345d3Smrg# func_extract_an_archive dir oldlib 288943345d3Smrgfunc_extract_an_archive () 289943345d3Smrg{ 290943345d3Smrg f_ex_an_ar_dir="$1"; shift 291943345d3Smrg f_ex_an_ar_oldlib="$1" 292943345d3Smrg 293943345d3Smrg $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 294943345d3Smrg $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 295943345d3Smrg if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 296943345d3Smrg : 297943345d3Smrg else 298943345d3Smrg $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 299943345d3Smrg exit $EXIT_FAILURE 300943345d3Smrg fi 301943345d3Smrg} 302943345d3Smrg 303943345d3Smrg# func_extract_archives gentop oldlib ... 304943345d3Smrgfunc_extract_archives () 305943345d3Smrg{ 306943345d3Smrg my_gentop="$1"; shift 307943345d3Smrg my_oldlibs=${1+"$@"} 308943345d3Smrg my_oldobjs="" 309943345d3Smrg my_xlib="" 310943345d3Smrg my_xabs="" 311943345d3Smrg my_xdir="" 312943345d3Smrg my_status="" 313943345d3Smrg 314943345d3Smrg $show "${rm}r $my_gentop" 315943345d3Smrg $run ${rm}r "$my_gentop" 316943345d3Smrg $show "$mkdir $my_gentop" 317943345d3Smrg $run $mkdir "$my_gentop" 318943345d3Smrg my_status=$? 319943345d3Smrg if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 320943345d3Smrg exit $my_status 321943345d3Smrg fi 322943345d3Smrg 323943345d3Smrg for my_xlib in $my_oldlibs; do 324943345d3Smrg # Extract the objects. 325943345d3Smrg case $my_xlib in 326943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 327943345d3Smrg *) my_xabs=`pwd`"/$my_xlib" ;; 328943345d3Smrg esac 329943345d3Smrg my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 330943345d3Smrg my_xdir="$my_gentop/$my_xlib" 331943345d3Smrg 332943345d3Smrg $show "${rm}r $my_xdir" 333943345d3Smrg $run ${rm}r "$my_xdir" 334943345d3Smrg $show "$mkdir $my_xdir" 335943345d3Smrg $run $mkdir "$my_xdir" 336943345d3Smrg exit_status=$? 337943345d3Smrg if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 338943345d3Smrg exit $exit_status 339943345d3Smrg fi 340943345d3Smrg case $host in 341943345d3Smrg *-darwin*) 342943345d3Smrg $show "Extracting $my_xabs" 343943345d3Smrg # Do not bother doing anything if just a dry run 344943345d3Smrg if test -z "$run"; then 345943345d3Smrg darwin_orig_dir=`pwd` 346943345d3Smrg cd $my_xdir || exit $? 347943345d3Smrg darwin_archive=$my_xabs 348943345d3Smrg darwin_curdir=`pwd` 349943345d3Smrg darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 350943345d3Smrg darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 351943345d3Smrg if test -n "$darwin_arches"; then 352943345d3Smrg darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 353943345d3Smrg darwin_arch= 354943345d3Smrg $show "$darwin_base_archive has multiple architectures $darwin_arches" 355943345d3Smrg for darwin_arch in $darwin_arches ; do 356943345d3Smrg mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 357943345d3Smrg lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 358943345d3Smrg cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 359943345d3Smrg func_extract_an_archive "`pwd`" "${darwin_base_archive}" 360943345d3Smrg cd "$darwin_curdir" 361943345d3Smrg $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 362943345d3Smrg done # $darwin_arches 363943345d3Smrg ## Okay now we have a bunch of thin objects, gotta fatten them up :) 364943345d3Smrg darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 365943345d3Smrg darwin_file= 366943345d3Smrg darwin_files= 367943345d3Smrg for darwin_file in $darwin_filelist; do 368943345d3Smrg darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 369943345d3Smrg lipo -create -output "$darwin_file" $darwin_files 370943345d3Smrg done # $darwin_filelist 371943345d3Smrg ${rm}r unfat-$$ 372943345d3Smrg cd "$darwin_orig_dir" 373943345d3Smrg else 374943345d3Smrg cd "$darwin_orig_dir" 375943345d3Smrg func_extract_an_archive "$my_xdir" "$my_xabs" 376943345d3Smrg fi # $darwin_arches 377943345d3Smrg fi # $run 378943345d3Smrg ;; 379943345d3Smrg *) 380943345d3Smrg func_extract_an_archive "$my_xdir" "$my_xabs" 381943345d3Smrg ;; 382943345d3Smrg esac 383943345d3Smrg my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 384943345d3Smrg done 385943345d3Smrg func_extract_archives_result="$my_oldobjs" 386943345d3Smrg} 387943345d3Smrg# End of Shell function definitions 388943345d3Smrg##################################### 389943345d3Smrg 390943345d3Smrg# Darwin sucks 391943345d3Smrgeval std_shrext=\"$shrext_cmds\" 392943345d3Smrg 393943345d3Smrgdisable_libs=no 394943345d3Smrg 395943345d3Smrg# Parse our command line options once, thoroughly. 396943345d3Smrgwhile test "$#" -gt 0 397943345d3Smrgdo 398943345d3Smrg arg="$1" 399943345d3Smrg shift 400943345d3Smrg 401943345d3Smrg case $arg in 402943345d3Smrg -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 403943345d3Smrg *) optarg= ;; 404943345d3Smrg esac 405943345d3Smrg 406943345d3Smrg # If the previous option needs an argument, assign it. 407943345d3Smrg if test -n "$prev"; then 408943345d3Smrg case $prev in 409943345d3Smrg execute_dlfiles) 410943345d3Smrg execute_dlfiles="$execute_dlfiles $arg" 411943345d3Smrg ;; 412943345d3Smrg tag) 413943345d3Smrg tagname="$arg" 414943345d3Smrg preserve_args="${preserve_args}=$arg" 415943345d3Smrg 416943345d3Smrg # Check whether tagname contains only valid characters 417943345d3Smrg case $tagname in 418943345d3Smrg *[!-_A-Za-z0-9,/]*) 419943345d3Smrg $echo "$progname: invalid tag name: $tagname" 1>&2 420943345d3Smrg exit $EXIT_FAILURE 421943345d3Smrg ;; 422943345d3Smrg esac 423943345d3Smrg 424943345d3Smrg case $tagname in 425943345d3Smrg CC) 426943345d3Smrg # Don't test for the "default" C tag, as we know, it's there, but 427943345d3Smrg # not specially marked. 428943345d3Smrg ;; 429943345d3Smrg *) 430943345d3Smrg if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 431943345d3Smrg taglist="$taglist $tagname" 432943345d3Smrg # Evaluate the configuration. 433943345d3Smrg eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 434943345d3Smrg else 435943345d3Smrg $echo "$progname: ignoring unknown tag $tagname" 1>&2 436943345d3Smrg fi 437943345d3Smrg ;; 438943345d3Smrg esac 439943345d3Smrg ;; 440943345d3Smrg *) 441943345d3Smrg eval "$prev=\$arg" 442943345d3Smrg ;; 443943345d3Smrg esac 444943345d3Smrg 445943345d3Smrg prev= 446943345d3Smrg prevopt= 447943345d3Smrg continue 448943345d3Smrg fi 449943345d3Smrg 450943345d3Smrg # Have we seen a non-optional argument yet? 451943345d3Smrg case $arg in 452943345d3Smrg --help) 453943345d3Smrg show_help=yes 454943345d3Smrg ;; 455943345d3Smrg 456943345d3Smrg --version) 457943345d3Smrg $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" 458943345d3Smrg $echo 459943345d3Smrg $echo "Copyright (C) 2005 Free Software Foundation, Inc." 460943345d3Smrg $echo "This is free software; see the source for copying conditions. There is NO" 461943345d3Smrg $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 462943345d3Smrg exit $? 463943345d3Smrg ;; 464943345d3Smrg 465943345d3Smrg --config) 466943345d3Smrg ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 467943345d3Smrg # Now print the configurations for the tags. 468943345d3Smrg for tagname in $taglist; do 469943345d3Smrg ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 470943345d3Smrg done 471943345d3Smrg exit $? 472943345d3Smrg ;; 473943345d3Smrg 474943345d3Smrg --debug) 475943345d3Smrg $echo "$progname: enabling shell trace mode" 476943345d3Smrg set -x 477943345d3Smrg preserve_args="$preserve_args $arg" 478943345d3Smrg ;; 479943345d3Smrg 480943345d3Smrg --dry-run | -n) 481943345d3Smrg run=: 482943345d3Smrg ;; 483943345d3Smrg 484943345d3Smrg --features) 485943345d3Smrg $echo "host: $host" 486943345d3Smrg if test "$build_libtool_libs" = yes; then 487943345d3Smrg $echo "enable shared libraries" 488943345d3Smrg else 489943345d3Smrg $echo "disable shared libraries" 490943345d3Smrg fi 491943345d3Smrg if test "$build_old_libs" = yes; then 492943345d3Smrg $echo "enable static libraries" 493943345d3Smrg else 494943345d3Smrg $echo "disable static libraries" 495943345d3Smrg fi 496943345d3Smrg exit $? 497943345d3Smrg ;; 498943345d3Smrg 499943345d3Smrg --finish) mode="finish" ;; 500943345d3Smrg 501943345d3Smrg --mode) prevopt="--mode" prev=mode ;; 502943345d3Smrg --mode=*) mode="$optarg" ;; 503943345d3Smrg 504943345d3Smrg --preserve-dup-deps) duplicate_deps="yes" ;; 505943345d3Smrg 506943345d3Smrg --quiet | --silent) 507943345d3Smrg show=: 508943345d3Smrg preserve_args="$preserve_args $arg" 509943345d3Smrg ;; 510943345d3Smrg 511943345d3Smrg --tag) 512943345d3Smrg prevopt="--tag" 513943345d3Smrg prev=tag 514943345d3Smrg preserve_args="$preserve_args --tag" 515943345d3Smrg ;; 516943345d3Smrg --tag=*) 517943345d3Smrg set tag "$optarg" ${1+"$@"} 518943345d3Smrg shift 519943345d3Smrg prev=tag 520943345d3Smrg preserve_args="$preserve_args --tag" 521943345d3Smrg ;; 522943345d3Smrg 523943345d3Smrg -dlopen) 524943345d3Smrg prevopt="-dlopen" 525943345d3Smrg prev=execute_dlfiles 526943345d3Smrg ;; 527943345d3Smrg 528943345d3Smrg -*) 529943345d3Smrg $echo "$modename: unrecognized option \`$arg'" 1>&2 530943345d3Smrg $echo "$help" 1>&2 531943345d3Smrg exit $EXIT_FAILURE 532943345d3Smrg ;; 533943345d3Smrg 534943345d3Smrg *) 535943345d3Smrg nonopt="$arg" 536943345d3Smrg break 537943345d3Smrg ;; 538943345d3Smrg esac 539943345d3Smrgdone 540943345d3Smrg 541943345d3Smrgif test -n "$prevopt"; then 542943345d3Smrg $echo "$modename: option \`$prevopt' requires an argument" 1>&2 543943345d3Smrg $echo "$help" 1>&2 544943345d3Smrg exit $EXIT_FAILURE 545943345d3Smrgfi 546943345d3Smrg 547943345d3Smrgcase $disable_libs in 548943345d3Smrgno) 549943345d3Smrg ;; 550943345d3Smrgshared) 551943345d3Smrg build_libtool_libs=no 552943345d3Smrg build_old_libs=yes 553943345d3Smrg ;; 554943345d3Smrgstatic) 555943345d3Smrg build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 556943345d3Smrg ;; 557943345d3Smrgesac 558943345d3Smrg 559943345d3Smrg# If this variable is set in any of the actions, the command in it 560943345d3Smrg# will be execed at the end. This prevents here-documents from being 561943345d3Smrg# left over by shells. 562943345d3Smrgexec_cmd= 563943345d3Smrg 564943345d3Smrgif test -z "$show_help"; then 565943345d3Smrg 566943345d3Smrg # Infer the operation mode. 567943345d3Smrg if test -z "$mode"; then 568943345d3Smrg $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 569943345d3Smrg $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 570943345d3Smrg case $nonopt in 571943345d3Smrg *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 572943345d3Smrg mode=link 573943345d3Smrg for arg 574943345d3Smrg do 575943345d3Smrg case $arg in 576943345d3Smrg -c) 577943345d3Smrg mode=compile 578943345d3Smrg break 579943345d3Smrg ;; 580943345d3Smrg esac 581943345d3Smrg done 582943345d3Smrg ;; 583943345d3Smrg *db | *dbx | *strace | *truss) 584943345d3Smrg mode=execute 585943345d3Smrg ;; 586943345d3Smrg *install*|cp|mv) 587943345d3Smrg mode=install 588943345d3Smrg ;; 589943345d3Smrg *rm) 590943345d3Smrg mode=uninstall 591943345d3Smrg ;; 592943345d3Smrg *) 593943345d3Smrg # If we have no mode, but dlfiles were specified, then do execute mode. 594943345d3Smrg test -n "$execute_dlfiles" && mode=execute 595943345d3Smrg 596943345d3Smrg # Just use the default operation mode. 597943345d3Smrg if test -z "$mode"; then 598943345d3Smrg if test -n "$nonopt"; then 599943345d3Smrg $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 600943345d3Smrg else 601943345d3Smrg $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 602943345d3Smrg fi 603943345d3Smrg fi 604943345d3Smrg ;; 605943345d3Smrg esac 606943345d3Smrg fi 607943345d3Smrg 608943345d3Smrg # Only execute mode is allowed to have -dlopen flags. 609943345d3Smrg if test -n "$execute_dlfiles" && test "$mode" != execute; then 610943345d3Smrg $echo "$modename: unrecognized option \`-dlopen'" 1>&2 611943345d3Smrg $echo "$help" 1>&2 612943345d3Smrg exit $EXIT_FAILURE 613943345d3Smrg fi 614943345d3Smrg 615943345d3Smrg # Change the help message to a mode-specific one. 616943345d3Smrg generic_help="$help" 617943345d3Smrg help="Try \`$modename --help --mode=$mode' for more information." 618943345d3Smrg 619943345d3Smrg # These modes are in order of execution frequency so that they run quickly. 620943345d3Smrg case $mode in 621943345d3Smrg # libtool compile mode 622943345d3Smrg compile) 623943345d3Smrg modename="$modename: compile" 624943345d3Smrg # Get the compilation command and the source file. 625943345d3Smrg base_compile= 626943345d3Smrg srcfile="$nonopt" # always keep a non-empty value in "srcfile" 627943345d3Smrg suppress_opt=yes 628943345d3Smrg suppress_output= 629943345d3Smrg arg_mode=normal 630943345d3Smrg libobj= 631943345d3Smrg later= 632943345d3Smrg 633943345d3Smrg for arg 634943345d3Smrg do 635943345d3Smrg case $arg_mode in 636943345d3Smrg arg ) 637943345d3Smrg # do not "continue". Instead, add this to base_compile 638943345d3Smrg lastarg="$arg" 639943345d3Smrg arg_mode=normal 640943345d3Smrg ;; 641943345d3Smrg 642943345d3Smrg target ) 643943345d3Smrg libobj="$arg" 644943345d3Smrg arg_mode=normal 645943345d3Smrg continue 646943345d3Smrg ;; 647943345d3Smrg 648943345d3Smrg normal ) 649943345d3Smrg # Accept any command-line options. 650943345d3Smrg case $arg in 651943345d3Smrg -o) 652943345d3Smrg if test -n "$libobj" ; then 653943345d3Smrg $echo "$modename: you cannot specify \`-o' more than once" 1>&2 654943345d3Smrg exit $EXIT_FAILURE 655943345d3Smrg fi 656943345d3Smrg arg_mode=target 657943345d3Smrg continue 658943345d3Smrg ;; 659943345d3Smrg 660943345d3Smrg -static | -prefer-pic | -prefer-non-pic) 661943345d3Smrg later="$later $arg" 662943345d3Smrg continue 663943345d3Smrg ;; 664943345d3Smrg 665943345d3Smrg -no-suppress) 666943345d3Smrg suppress_opt=no 667943345d3Smrg continue 668943345d3Smrg ;; 669943345d3Smrg 670943345d3Smrg -Xcompiler) 671943345d3Smrg arg_mode=arg # the next one goes into the "base_compile" arg list 672943345d3Smrg continue # The current "srcfile" will either be retained or 673943345d3Smrg ;; # replaced later. I would guess that would be a bug. 674943345d3Smrg 675943345d3Smrg -Wc,*) 676943345d3Smrg args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 677943345d3Smrg lastarg= 678943345d3Smrg save_ifs="$IFS"; IFS=',' 679943345d3Smrg for arg in $args; do 680943345d3Smrg IFS="$save_ifs" 681943345d3Smrg 682943345d3Smrg # Double-quote args containing other shell metacharacters. 683943345d3Smrg # Many Bourne shells cannot handle close brackets correctly 684943345d3Smrg # in scan sets, so we specify it separately. 685943345d3Smrg case $arg in 686943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 687943345d3Smrg arg="\"$arg\"" 688943345d3Smrg ;; 689943345d3Smrg esac 690943345d3Smrg lastarg="$lastarg $arg" 691943345d3Smrg done 692943345d3Smrg IFS="$save_ifs" 693943345d3Smrg lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 694943345d3Smrg 695943345d3Smrg # Add the arguments to base_compile. 696943345d3Smrg base_compile="$base_compile $lastarg" 697943345d3Smrg continue 698943345d3Smrg ;; 699943345d3Smrg 700943345d3Smrg * ) 701943345d3Smrg # Accept the current argument as the source file. 702943345d3Smrg # The previous "srcfile" becomes the current argument. 703943345d3Smrg # 704943345d3Smrg lastarg="$srcfile" 705943345d3Smrg srcfile="$arg" 706943345d3Smrg ;; 707943345d3Smrg esac # case $arg 708943345d3Smrg ;; 709943345d3Smrg esac # case $arg_mode 710943345d3Smrg 711943345d3Smrg # Aesthetically quote the previous argument. 712943345d3Smrg lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 713943345d3Smrg 714943345d3Smrg case $lastarg in 715943345d3Smrg # Double-quote args containing other shell metacharacters. 716943345d3Smrg # Many Bourne shells cannot handle close brackets correctly 717943345d3Smrg # in scan sets, and some SunOS ksh mistreat backslash-escaping 718943345d3Smrg # in scan sets (worked around with variable expansion), 719943345d3Smrg # and furthermore cannot handle '|' '&' '(' ')' in scan sets 720943345d3Smrg # at all, so we specify them separately. 721943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 722943345d3Smrg lastarg="\"$lastarg\"" 723943345d3Smrg ;; 724943345d3Smrg esac 725943345d3Smrg 726943345d3Smrg base_compile="$base_compile $lastarg" 727943345d3Smrg done # for arg 728943345d3Smrg 729943345d3Smrg case $arg_mode in 730943345d3Smrg arg) 731943345d3Smrg $echo "$modename: you must specify an argument for -Xcompile" 732943345d3Smrg exit $EXIT_FAILURE 733943345d3Smrg ;; 734943345d3Smrg target) 735943345d3Smrg $echo "$modename: you must specify a target with \`-o'" 1>&2 736943345d3Smrg exit $EXIT_FAILURE 737943345d3Smrg ;; 738943345d3Smrg *) 739943345d3Smrg # Get the name of the library object. 740943345d3Smrg [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 741943345d3Smrg ;; 742943345d3Smrg esac 743943345d3Smrg 744943345d3Smrg # Recognize several different file suffixes. 745943345d3Smrg # If the user specifies -o file.o, it is replaced with file.lo 746943345d3Smrg xform='[cCFSifmso]' 747943345d3Smrg case $libobj in 748943345d3Smrg *.ada) xform=ada ;; 749943345d3Smrg *.adb) xform=adb ;; 750943345d3Smrg *.ads) xform=ads ;; 751943345d3Smrg *.asm) xform=asm ;; 752943345d3Smrg *.c++) xform=c++ ;; 753943345d3Smrg *.cc) xform=cc ;; 754943345d3Smrg *.ii) xform=ii ;; 755943345d3Smrg *.class) xform=class ;; 756943345d3Smrg *.cpp) xform=cpp ;; 757943345d3Smrg *.cxx) xform=cxx ;; 758943345d3Smrg *.f90) xform=f90 ;; 759943345d3Smrg *.for) xform=for ;; 760943345d3Smrg *.java) xform=java ;; 761943345d3Smrg esac 762943345d3Smrg 763943345d3Smrg libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 764943345d3Smrg 765943345d3Smrg case $libobj in 766943345d3Smrg *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 767943345d3Smrg *) 768943345d3Smrg $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 769943345d3Smrg exit $EXIT_FAILURE 770943345d3Smrg ;; 771943345d3Smrg esac 772943345d3Smrg 773943345d3Smrg func_infer_tag $base_compile 774943345d3Smrg 775943345d3Smrg for arg in $later; do 776943345d3Smrg case $arg in 777943345d3Smrg -static) 778943345d3Smrg build_old_libs=yes 779943345d3Smrg continue 780943345d3Smrg ;; 781943345d3Smrg 782943345d3Smrg -prefer-pic) 783943345d3Smrg pic_mode=yes 784943345d3Smrg continue 785943345d3Smrg ;; 786943345d3Smrg 787943345d3Smrg -prefer-non-pic) 788943345d3Smrg pic_mode=no 789943345d3Smrg continue 790943345d3Smrg ;; 791943345d3Smrg esac 792943345d3Smrg done 793943345d3Smrg 794943345d3Smrg qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 795943345d3Smrg case $qlibobj in 796943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 797943345d3Smrg qlibobj="\"$qlibobj\"" ;; 798943345d3Smrg esac 799943345d3Smrg test "X$libobj" != "X$qlibobj" \ 800943345d3Smrg && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 801943345d3Smrg && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 802943345d3Smrg objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 803943345d3Smrg xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 804943345d3Smrg if test "X$xdir" = "X$obj"; then 805943345d3Smrg xdir= 806943345d3Smrg else 807943345d3Smrg xdir=$xdir/ 808943345d3Smrg fi 809943345d3Smrg lobj=${xdir}$objdir/$objname 810943345d3Smrg 811943345d3Smrg if test -z "$base_compile"; then 812943345d3Smrg $echo "$modename: you must specify a compilation command" 1>&2 813943345d3Smrg $echo "$help" 1>&2 814943345d3Smrg exit $EXIT_FAILURE 815943345d3Smrg fi 816943345d3Smrg 817943345d3Smrg # Delete any leftover library objects. 818943345d3Smrg if test "$build_old_libs" = yes; then 819943345d3Smrg removelist="$obj $lobj $libobj ${libobj}T" 820943345d3Smrg else 821943345d3Smrg removelist="$lobj $libobj ${libobj}T" 822943345d3Smrg fi 823943345d3Smrg 824943345d3Smrg $run $rm $removelist 825943345d3Smrg trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 826943345d3Smrg 827943345d3Smrg # On Cygwin there's no "real" PIC flag so we must build both object types 828943345d3Smrg case $host_os in 829943345d3Smrg cygwin* | mingw* | pw32* | os2*) 830943345d3Smrg pic_mode=default 831943345d3Smrg ;; 832943345d3Smrg esac 833943345d3Smrg if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 834943345d3Smrg # non-PIC code in shared libraries is not supported 835943345d3Smrg pic_mode=default 836943345d3Smrg fi 837943345d3Smrg 838943345d3Smrg # Calculate the filename of the output object if compiler does 839943345d3Smrg # not support -o with -c 840943345d3Smrg if test "$compiler_c_o" = no; then 841943345d3Smrg output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 842943345d3Smrg lockfile="$output_obj.lock" 843943345d3Smrg removelist="$removelist $output_obj $lockfile" 844943345d3Smrg trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 845943345d3Smrg else 846943345d3Smrg output_obj= 847943345d3Smrg need_locks=no 848943345d3Smrg lockfile= 849943345d3Smrg fi 850943345d3Smrg 851943345d3Smrg # Lock this critical section if it is needed 852943345d3Smrg # We use this script file to make the link, it avoids creating a new file 853943345d3Smrg if test "$need_locks" = yes; then 854943345d3Smrg until $run ln "$progpath" "$lockfile" 2>/dev/null; do 855943345d3Smrg $show "Waiting for $lockfile to be removed" 856943345d3Smrg sleep 2 857943345d3Smrg done 858943345d3Smrg elif test "$need_locks" = warn; then 859943345d3Smrg if test -f "$lockfile"; then 860943345d3Smrg $echo "\ 861943345d3Smrg*** ERROR, $lockfile exists and contains: 862943345d3Smrg`cat $lockfile 2>/dev/null` 863943345d3Smrg 864943345d3SmrgThis indicates that another process is trying to use the same 865943345d3Smrgtemporary object file, and libtool could not work around it because 866943345d3Smrgyour compiler does not support \`-c' and \`-o' together. If you 867943345d3Smrgrepeat this compilation, it may succeed, by chance, but you had better 868943345d3Smrgavoid parallel builds (make -j) in this platform, or get a better 869943345d3Smrgcompiler." 870943345d3Smrg 871943345d3Smrg $run $rm $removelist 872943345d3Smrg exit $EXIT_FAILURE 873943345d3Smrg fi 874943345d3Smrg $echo "$srcfile" > "$lockfile" 875943345d3Smrg fi 876943345d3Smrg 877943345d3Smrg if test -n "$fix_srcfile_path"; then 878943345d3Smrg eval srcfile=\"$fix_srcfile_path\" 879943345d3Smrg fi 880943345d3Smrg qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 881943345d3Smrg case $qsrcfile in 882943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 883943345d3Smrg qsrcfile="\"$qsrcfile\"" ;; 884943345d3Smrg esac 885943345d3Smrg 886943345d3Smrg $run $rm "$libobj" "${libobj}T" 887943345d3Smrg 888943345d3Smrg # Create a libtool object file (analogous to a ".la" file), 889943345d3Smrg # but don't create it if we're doing a dry run. 890943345d3Smrg test -z "$run" && cat > ${libobj}T <<EOF 891943345d3Smrg# $libobj - a libtool object file 892943345d3Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 893943345d3Smrg# 894943345d3Smrg# Please DO NOT delete this file! 895943345d3Smrg# It is necessary for linking the library. 896943345d3Smrg 897943345d3Smrg# Name of the PIC object. 898943345d3SmrgEOF 899943345d3Smrg 900943345d3Smrg # Only build a PIC object if we are building libtool libraries. 901943345d3Smrg if test "$build_libtool_libs" = yes; then 902943345d3Smrg # Without this assignment, base_compile gets emptied. 903943345d3Smrg fbsd_hideous_sh_bug=$base_compile 904943345d3Smrg 905943345d3Smrg if test "$pic_mode" != no; then 906943345d3Smrg command="$base_compile $qsrcfile $pic_flag" 907943345d3Smrg else 908943345d3Smrg # Don't build PIC code 909943345d3Smrg command="$base_compile $qsrcfile" 910943345d3Smrg fi 911943345d3Smrg 912943345d3Smrg if test ! -d "${xdir}$objdir"; then 913943345d3Smrg $show "$mkdir ${xdir}$objdir" 914943345d3Smrg $run $mkdir ${xdir}$objdir 915943345d3Smrg exit_status=$? 916943345d3Smrg if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 917943345d3Smrg exit $exit_status 918943345d3Smrg fi 919943345d3Smrg fi 920943345d3Smrg 921943345d3Smrg if test -z "$output_obj"; then 922943345d3Smrg # Place PIC objects in $objdir 923943345d3Smrg command="$command -o $lobj" 924943345d3Smrg fi 925943345d3Smrg 926943345d3Smrg $run $rm "$lobj" "$output_obj" 927943345d3Smrg 928943345d3Smrg $show "$command" 929943345d3Smrg if $run eval "$command"; then : 930943345d3Smrg else 931943345d3Smrg test -n "$output_obj" && $run $rm $removelist 932943345d3Smrg exit $EXIT_FAILURE 933943345d3Smrg fi 934943345d3Smrg 935943345d3Smrg if test "$need_locks" = warn && 936943345d3Smrg test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 937943345d3Smrg $echo "\ 938943345d3Smrg*** ERROR, $lockfile contains: 939943345d3Smrg`cat $lockfile 2>/dev/null` 940943345d3Smrg 941943345d3Smrgbut it should contain: 942943345d3Smrg$srcfile 943943345d3Smrg 944943345d3SmrgThis indicates that another process is trying to use the same 945943345d3Smrgtemporary object file, and libtool could not work around it because 946943345d3Smrgyour compiler does not support \`-c' and \`-o' together. If you 947943345d3Smrgrepeat this compilation, it may succeed, by chance, but you had better 948943345d3Smrgavoid parallel builds (make -j) in this platform, or get a better 949943345d3Smrgcompiler." 950943345d3Smrg 951943345d3Smrg $run $rm $removelist 952943345d3Smrg exit $EXIT_FAILURE 953943345d3Smrg fi 954943345d3Smrg 955943345d3Smrg # Just move the object if needed, then go on to compile the next one 956943345d3Smrg if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 957943345d3Smrg $show "$mv $output_obj $lobj" 958943345d3Smrg if $run $mv $output_obj $lobj; then : 959943345d3Smrg else 960943345d3Smrg error=$? 961943345d3Smrg $run $rm $removelist 962943345d3Smrg exit $error 963943345d3Smrg fi 964943345d3Smrg fi 965943345d3Smrg 966943345d3Smrg # Append the name of the PIC object to the libtool object file. 967943345d3Smrg test -z "$run" && cat >> ${libobj}T <<EOF 968943345d3Smrgpic_object='$objdir/$objname' 969943345d3Smrg 970943345d3SmrgEOF 971943345d3Smrg 972943345d3Smrg # Allow error messages only from the first compilation. 973943345d3Smrg if test "$suppress_opt" = yes; then 974943345d3Smrg suppress_output=' >/dev/null 2>&1' 975943345d3Smrg fi 976943345d3Smrg else 977943345d3Smrg # No PIC object so indicate it doesn't exist in the libtool 978943345d3Smrg # object file. 979943345d3Smrg test -z "$run" && cat >> ${libobj}T <<EOF 980943345d3Smrgpic_object=none 981943345d3Smrg 982943345d3SmrgEOF 983943345d3Smrg fi 984943345d3Smrg 985943345d3Smrg # Only build a position-dependent object if we build old libraries. 986943345d3Smrg if test "$build_old_libs" = yes; then 987943345d3Smrg if test "$pic_mode" != yes; then 988943345d3Smrg # Don't build PIC code 989943345d3Smrg command="$base_compile $qsrcfile" 990943345d3Smrg else 991943345d3Smrg command="$base_compile $qsrcfile $pic_flag" 992943345d3Smrg fi 993943345d3Smrg if test "$compiler_c_o" = yes; then 994943345d3Smrg command="$command -o $obj" 995943345d3Smrg fi 996943345d3Smrg 997943345d3Smrg # Suppress compiler output if we already did a PIC compilation. 998943345d3Smrg command="$command$suppress_output" 999943345d3Smrg $run $rm "$obj" "$output_obj" 1000943345d3Smrg $show "$command" 1001943345d3Smrg if $run eval "$command"; then : 1002943345d3Smrg else 1003943345d3Smrg $run $rm $removelist 1004943345d3Smrg exit $EXIT_FAILURE 1005943345d3Smrg fi 1006943345d3Smrg 1007943345d3Smrg if test "$need_locks" = warn && 1008943345d3Smrg test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1009943345d3Smrg $echo "\ 1010943345d3Smrg*** ERROR, $lockfile contains: 1011943345d3Smrg`cat $lockfile 2>/dev/null` 1012943345d3Smrg 1013943345d3Smrgbut it should contain: 1014943345d3Smrg$srcfile 1015943345d3Smrg 1016943345d3SmrgThis indicates that another process is trying to use the same 1017943345d3Smrgtemporary object file, and libtool could not work around it because 1018943345d3Smrgyour compiler does not support \`-c' and \`-o' together. If you 1019943345d3Smrgrepeat this compilation, it may succeed, by chance, but you had better 1020943345d3Smrgavoid parallel builds (make -j) in this platform, or get a better 1021943345d3Smrgcompiler." 1022943345d3Smrg 1023943345d3Smrg $run $rm $removelist 1024943345d3Smrg exit $EXIT_FAILURE 1025943345d3Smrg fi 1026943345d3Smrg 1027943345d3Smrg # Just move the object if needed 1028943345d3Smrg if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1029943345d3Smrg $show "$mv $output_obj $obj" 1030943345d3Smrg if $run $mv $output_obj $obj; then : 1031943345d3Smrg else 1032943345d3Smrg error=$? 1033943345d3Smrg $run $rm $removelist 1034943345d3Smrg exit $error 1035943345d3Smrg fi 1036943345d3Smrg fi 1037943345d3Smrg 1038943345d3Smrg # Append the name of the non-PIC object the libtool object file. 1039943345d3Smrg # Only append if the libtool object file exists. 1040943345d3Smrg test -z "$run" && cat >> ${libobj}T <<EOF 1041943345d3Smrg# Name of the non-PIC object. 1042943345d3Smrgnon_pic_object='$objname' 1043943345d3Smrg 1044943345d3SmrgEOF 1045943345d3Smrg else 1046943345d3Smrg # Append the name of the non-PIC object the libtool object file. 1047943345d3Smrg # Only append if the libtool object file exists. 1048943345d3Smrg test -z "$run" && cat >> ${libobj}T <<EOF 1049943345d3Smrg# Name of the non-PIC object. 1050943345d3Smrgnon_pic_object=none 1051943345d3Smrg 1052943345d3SmrgEOF 1053943345d3Smrg fi 1054943345d3Smrg 1055943345d3Smrg $run $mv "${libobj}T" "${libobj}" 1056943345d3Smrg 1057943345d3Smrg # Unlock the critical section if it was locked 1058943345d3Smrg if test "$need_locks" != no; then 1059943345d3Smrg $run $rm "$lockfile" 1060943345d3Smrg fi 1061943345d3Smrg 1062943345d3Smrg exit $EXIT_SUCCESS 1063943345d3Smrg ;; 1064943345d3Smrg 1065943345d3Smrg # libtool link mode 1066943345d3Smrg link | relink) 1067943345d3Smrg modename="$modename: link" 1068943345d3Smrg case $host in 1069943345d3Smrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1070943345d3Smrg # It is impossible to link a dll without this setting, and 1071943345d3Smrg # we shouldn't force the makefile maintainer to figure out 1072943345d3Smrg # which system we are compiling for in order to pass an extra 1073943345d3Smrg # flag for every libtool invocation. 1074943345d3Smrg # allow_undefined=no 1075943345d3Smrg 1076943345d3Smrg # FIXME: Unfortunately, there are problems with the above when trying 1077943345d3Smrg # to make a dll which has undefined symbols, in which case not 1078943345d3Smrg # even a static library is built. For now, we need to specify 1079943345d3Smrg # -no-undefined on the libtool link line when we can be certain 1080943345d3Smrg # that all symbols are satisfied, otherwise we get a static library. 1081943345d3Smrg allow_undefined=yes 1082943345d3Smrg ;; 1083943345d3Smrg *) 1084943345d3Smrg allow_undefined=yes 1085943345d3Smrg ;; 1086943345d3Smrg esac 1087943345d3Smrg libtool_args="$nonopt" 1088943345d3Smrg base_compile="$nonopt $@" 1089943345d3Smrg compile_command="$nonopt" 1090943345d3Smrg finalize_command="$nonopt" 1091943345d3Smrg 1092943345d3Smrg compile_rpath= 1093943345d3Smrg finalize_rpath= 1094943345d3Smrg compile_shlibpath= 1095943345d3Smrg finalize_shlibpath= 1096943345d3Smrg convenience= 1097943345d3Smrg old_convenience= 1098943345d3Smrg deplibs= 1099943345d3Smrg old_deplibs= 1100943345d3Smrg compiler_flags= 1101943345d3Smrg linker_flags= 1102943345d3Smrg dllsearchpath= 1103943345d3Smrg lib_search_path=`pwd` 1104943345d3Smrg inst_prefix_dir= 1105943345d3Smrg 1106943345d3Smrg avoid_version=no 1107943345d3Smrg dlfiles= 1108943345d3Smrg dlprefiles= 1109943345d3Smrg dlself=no 1110943345d3Smrg export_dynamic=no 1111943345d3Smrg export_symbols= 1112943345d3Smrg export_symbols_regex= 1113943345d3Smrg generated= 1114943345d3Smrg libobjs= 1115943345d3Smrg ltlibs= 1116943345d3Smrg module=no 1117943345d3Smrg no_install=no 1118943345d3Smrg objs= 1119943345d3Smrg non_pic_objects= 1120943345d3Smrg notinst_path= # paths that contain not-installed libtool libraries 1121943345d3Smrg precious_files_regex= 1122943345d3Smrg prefer_static_libs=no 1123943345d3Smrg preload=no 1124943345d3Smrg prev= 1125943345d3Smrg prevarg= 1126943345d3Smrg release= 1127943345d3Smrg rpath= 1128943345d3Smrg xrpath= 1129943345d3Smrg perm_rpath= 1130943345d3Smrg temp_rpath= 1131943345d3Smrg thread_safe=no 1132943345d3Smrg vinfo= 1133943345d3Smrg vinfo_number=no 1134943345d3Smrg 1135943345d3Smrg func_infer_tag $base_compile 1136943345d3Smrg 1137943345d3Smrg # We need to know -static, to get the right output filenames. 1138943345d3Smrg for arg 1139943345d3Smrg do 1140943345d3Smrg case $arg in 1141943345d3Smrg -all-static | -static) 1142943345d3Smrg if test "X$arg" = "X-all-static"; then 1143943345d3Smrg if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 1144943345d3Smrg $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 1145943345d3Smrg fi 1146943345d3Smrg if test -n "$link_static_flag"; then 1147943345d3Smrg dlopen_self=$dlopen_self_static 1148943345d3Smrg fi 1149943345d3Smrg prefer_static_libs=yes 1150943345d3Smrg else 1151943345d3Smrg if test -z "$pic_flag" && test -n "$link_static_flag"; then 1152943345d3Smrg dlopen_self=$dlopen_self_static 1153943345d3Smrg fi 1154943345d3Smrg prefer_static_libs=built 1155943345d3Smrg fi 1156943345d3Smrg build_libtool_libs=no 1157943345d3Smrg build_old_libs=yes 1158943345d3Smrg break 1159943345d3Smrg ;; 1160943345d3Smrg esac 1161943345d3Smrg done 1162943345d3Smrg 1163943345d3Smrg # See if our shared archives depend on static archives. 1164943345d3Smrg test -n "$old_archive_from_new_cmds" && build_old_libs=yes 1165943345d3Smrg 1166943345d3Smrg # Go through the arguments, transforming them on the way. 1167943345d3Smrg while test "$#" -gt 0; do 1168943345d3Smrg arg="$1" 1169943345d3Smrg shift 1170943345d3Smrg case $arg in 1171943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1172943345d3Smrg qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 1173943345d3Smrg ;; 1174943345d3Smrg *) qarg=$arg ;; 1175943345d3Smrg esac 1176943345d3Smrg libtool_args="$libtool_args $qarg" 1177943345d3Smrg 1178943345d3Smrg # If the previous option needs an argument, assign it. 1179943345d3Smrg if test -n "$prev"; then 1180943345d3Smrg case $prev in 1181943345d3Smrg output) 1182943345d3Smrg compile_command="$compile_command @OUTPUT@" 1183943345d3Smrg finalize_command="$finalize_command @OUTPUT@" 1184943345d3Smrg ;; 1185943345d3Smrg esac 1186943345d3Smrg 1187943345d3Smrg case $prev in 1188943345d3Smrg dlfiles|dlprefiles) 1189943345d3Smrg if test "$preload" = no; then 1190943345d3Smrg # Add the symbol object into the linking commands. 1191943345d3Smrg compile_command="$compile_command @SYMFILE@" 1192943345d3Smrg finalize_command="$finalize_command @SYMFILE@" 1193943345d3Smrg preload=yes 1194943345d3Smrg fi 1195943345d3Smrg case $arg in 1196943345d3Smrg *.la | *.lo) ;; # We handle these cases below. 1197943345d3Smrg force) 1198943345d3Smrg if test "$dlself" = no; then 1199943345d3Smrg dlself=needless 1200943345d3Smrg export_dynamic=yes 1201943345d3Smrg fi 1202943345d3Smrg prev= 1203943345d3Smrg continue 1204943345d3Smrg ;; 1205943345d3Smrg self) 1206943345d3Smrg if test "$prev" = dlprefiles; then 1207943345d3Smrg dlself=yes 1208943345d3Smrg elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 1209943345d3Smrg dlself=yes 1210943345d3Smrg else 1211943345d3Smrg dlself=needless 1212943345d3Smrg export_dynamic=yes 1213943345d3Smrg fi 1214943345d3Smrg prev= 1215943345d3Smrg continue 1216943345d3Smrg ;; 1217943345d3Smrg *) 1218943345d3Smrg if test "$prev" = dlfiles; then 1219943345d3Smrg dlfiles="$dlfiles $arg" 1220943345d3Smrg else 1221943345d3Smrg dlprefiles="$dlprefiles $arg" 1222943345d3Smrg fi 1223943345d3Smrg prev= 1224943345d3Smrg continue 1225943345d3Smrg ;; 1226943345d3Smrg esac 1227943345d3Smrg ;; 1228943345d3Smrg expsyms) 1229943345d3Smrg export_symbols="$arg" 1230943345d3Smrg if test ! -f "$arg"; then 1231943345d3Smrg $echo "$modename: symbol file \`$arg' does not exist" 1232943345d3Smrg exit $EXIT_FAILURE 1233943345d3Smrg fi 1234943345d3Smrg prev= 1235943345d3Smrg continue 1236943345d3Smrg ;; 1237943345d3Smrg expsyms_regex) 1238943345d3Smrg export_symbols_regex="$arg" 1239943345d3Smrg prev= 1240943345d3Smrg continue 1241943345d3Smrg ;; 1242943345d3Smrg inst_prefix) 1243943345d3Smrg inst_prefix_dir="$arg" 1244943345d3Smrg prev= 1245943345d3Smrg continue 1246943345d3Smrg ;; 1247943345d3Smrg precious_regex) 1248943345d3Smrg precious_files_regex="$arg" 1249943345d3Smrg prev= 1250943345d3Smrg continue 1251943345d3Smrg ;; 1252943345d3Smrg release) 1253943345d3Smrg release="-$arg" 1254943345d3Smrg prev= 1255943345d3Smrg continue 1256943345d3Smrg ;; 1257943345d3Smrg objectlist) 1258943345d3Smrg if test -f "$arg"; then 1259943345d3Smrg save_arg=$arg 1260943345d3Smrg moreargs= 1261943345d3Smrg for fil in `cat $save_arg` 1262943345d3Smrg do 1263943345d3Smrg# moreargs="$moreargs $fil" 1264943345d3Smrg arg=$fil 1265943345d3Smrg # A libtool-controlled object. 1266943345d3Smrg 1267943345d3Smrg # Check to see that this really is a libtool object. 1268943345d3Smrg if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1269943345d3Smrg pic_object= 1270943345d3Smrg non_pic_object= 1271943345d3Smrg 1272943345d3Smrg # Read the .lo file 1273943345d3Smrg # If there is no directory component, then add one. 1274943345d3Smrg case $arg in 1275943345d3Smrg */* | *\\*) . $arg ;; 1276943345d3Smrg *) . ./$arg ;; 1277943345d3Smrg esac 1278943345d3Smrg 1279943345d3Smrg if test -z "$pic_object" || \ 1280943345d3Smrg test -z "$non_pic_object" || 1281943345d3Smrg test "$pic_object" = none && \ 1282943345d3Smrg test "$non_pic_object" = none; then 1283943345d3Smrg $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1284943345d3Smrg exit $EXIT_FAILURE 1285943345d3Smrg fi 1286943345d3Smrg 1287943345d3Smrg # Extract subdirectory from the argument. 1288943345d3Smrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1289943345d3Smrg if test "X$xdir" = "X$arg"; then 1290943345d3Smrg xdir= 1291943345d3Smrg else 1292943345d3Smrg xdir="$xdir/" 1293943345d3Smrg fi 1294943345d3Smrg 1295943345d3Smrg if test "$pic_object" != none; then 1296943345d3Smrg # Prepend the subdirectory the object is found in. 1297943345d3Smrg pic_object="$xdir$pic_object" 1298943345d3Smrg 1299943345d3Smrg if test "$prev" = dlfiles; then 1300943345d3Smrg if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1301943345d3Smrg dlfiles="$dlfiles $pic_object" 1302943345d3Smrg prev= 1303943345d3Smrg continue 1304943345d3Smrg else 1305943345d3Smrg # If libtool objects are unsupported, then we need to preload. 1306943345d3Smrg prev=dlprefiles 1307943345d3Smrg fi 1308943345d3Smrg fi 1309943345d3Smrg 1310943345d3Smrg # CHECK ME: I think I busted this. -Ossama 1311943345d3Smrg if test "$prev" = dlprefiles; then 1312943345d3Smrg # Preload the old-style object. 1313943345d3Smrg dlprefiles="$dlprefiles $pic_object" 1314943345d3Smrg prev= 1315943345d3Smrg fi 1316943345d3Smrg 1317943345d3Smrg # A PIC object. 1318943345d3Smrg libobjs="$libobjs $pic_object" 1319943345d3Smrg arg="$pic_object" 1320943345d3Smrg fi 1321943345d3Smrg 1322943345d3Smrg # Non-PIC object. 1323943345d3Smrg if test "$non_pic_object" != none; then 1324943345d3Smrg # Prepend the subdirectory the object is found in. 1325943345d3Smrg non_pic_object="$xdir$non_pic_object" 1326943345d3Smrg 1327943345d3Smrg # A standard non-PIC object 1328943345d3Smrg non_pic_objects="$non_pic_objects $non_pic_object" 1329943345d3Smrg if test -z "$pic_object" || test "$pic_object" = none ; then 1330943345d3Smrg arg="$non_pic_object" 1331943345d3Smrg fi 1332943345d3Smrg else 1333943345d3Smrg # If the PIC object exists, use it instead. 1334943345d3Smrg # $xdir was prepended to $pic_object above. 1335943345d3Smrg non_pic_object="$pic_object" 1336943345d3Smrg non_pic_objects="$non_pic_objects $non_pic_object" 1337943345d3Smrg fi 1338943345d3Smrg else 1339943345d3Smrg # Only an error if not doing a dry-run. 1340943345d3Smrg if test -z "$run"; then 1341943345d3Smrg $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1342943345d3Smrg exit $EXIT_FAILURE 1343943345d3Smrg else 1344943345d3Smrg # Dry-run case. 1345943345d3Smrg 1346943345d3Smrg # Extract subdirectory from the argument. 1347943345d3Smrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1348943345d3Smrg if test "X$xdir" = "X$arg"; then 1349943345d3Smrg xdir= 1350943345d3Smrg else 1351943345d3Smrg xdir="$xdir/" 1352943345d3Smrg fi 1353943345d3Smrg 1354943345d3Smrg pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1355943345d3Smrg non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1356943345d3Smrg libobjs="$libobjs $pic_object" 1357943345d3Smrg non_pic_objects="$non_pic_objects $non_pic_object" 1358943345d3Smrg fi 1359943345d3Smrg fi 1360943345d3Smrg done 1361943345d3Smrg else 1362943345d3Smrg $echo "$modename: link input file \`$save_arg' does not exist" 1363943345d3Smrg exit $EXIT_FAILURE 1364943345d3Smrg fi 1365943345d3Smrg arg=$save_arg 1366943345d3Smrg prev= 1367943345d3Smrg continue 1368943345d3Smrg ;; 1369943345d3Smrg rpath | xrpath) 1370943345d3Smrg # We need an absolute path. 1371943345d3Smrg case $arg in 1372943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1373943345d3Smrg *) 1374943345d3Smrg $echo "$modename: only absolute run-paths are allowed" 1>&2 1375943345d3Smrg exit $EXIT_FAILURE 1376943345d3Smrg ;; 1377943345d3Smrg esac 1378943345d3Smrg if test "$prev" = rpath; then 1379943345d3Smrg case "$rpath " in 1380943345d3Smrg *" $arg "*) ;; 1381943345d3Smrg *) rpath="$rpath $arg" ;; 1382943345d3Smrg esac 1383943345d3Smrg else 1384943345d3Smrg case "$xrpath " in 1385943345d3Smrg *" $arg "*) ;; 1386943345d3Smrg *) xrpath="$xrpath $arg" ;; 1387943345d3Smrg esac 1388943345d3Smrg fi 1389943345d3Smrg prev= 1390943345d3Smrg continue 1391943345d3Smrg ;; 1392943345d3Smrg xcompiler) 1393943345d3Smrg compiler_flags="$compiler_flags $qarg" 1394943345d3Smrg prev= 1395943345d3Smrg compile_command="$compile_command $qarg" 1396943345d3Smrg finalize_command="$finalize_command $qarg" 1397943345d3Smrg continue 1398943345d3Smrg ;; 1399943345d3Smrg xlinker) 1400943345d3Smrg linker_flags="$linker_flags $qarg" 1401943345d3Smrg compiler_flags="$compiler_flags $wl$qarg" 1402943345d3Smrg prev= 1403943345d3Smrg compile_command="$compile_command $wl$qarg" 1404943345d3Smrg finalize_command="$finalize_command $wl$qarg" 1405943345d3Smrg continue 1406943345d3Smrg ;; 1407943345d3Smrg xcclinker) 1408943345d3Smrg linker_flags="$linker_flags $qarg" 1409943345d3Smrg compiler_flags="$compiler_flags $qarg" 1410943345d3Smrg prev= 1411943345d3Smrg compile_command="$compile_command $qarg" 1412943345d3Smrg finalize_command="$finalize_command $qarg" 1413943345d3Smrg continue 1414943345d3Smrg ;; 1415943345d3Smrg shrext) 1416943345d3Smrg shrext_cmds="$arg" 1417943345d3Smrg prev= 1418943345d3Smrg continue 1419943345d3Smrg ;; 1420943345d3Smrg darwin_framework|darwin_framework_skip) 1421943345d3Smrg test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 1422943345d3Smrg compile_command="$compile_command $arg" 1423943345d3Smrg finalize_command="$finalize_command $arg" 1424943345d3Smrg prev= 1425943345d3Smrg continue 1426943345d3Smrg ;; 1427943345d3Smrg *) 1428943345d3Smrg eval "$prev=\"\$arg\"" 1429943345d3Smrg prev= 1430943345d3Smrg continue 1431943345d3Smrg ;; 1432943345d3Smrg esac 1433943345d3Smrg fi # test -n "$prev" 1434943345d3Smrg 1435943345d3Smrg prevarg="$arg" 1436943345d3Smrg 1437943345d3Smrg case $arg in 1438943345d3Smrg -all-static) 1439943345d3Smrg if test -n "$link_static_flag"; then 1440943345d3Smrg compile_command="$compile_command $link_static_flag" 1441943345d3Smrg finalize_command="$finalize_command $link_static_flag" 1442943345d3Smrg fi 1443943345d3Smrg continue 1444943345d3Smrg ;; 1445943345d3Smrg 1446943345d3Smrg -allow-undefined) 1447943345d3Smrg # FIXME: remove this flag sometime in the future. 1448943345d3Smrg $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 1449943345d3Smrg continue 1450943345d3Smrg ;; 1451943345d3Smrg 1452943345d3Smrg -avoid-version) 1453943345d3Smrg avoid_version=yes 1454943345d3Smrg continue 1455943345d3Smrg ;; 1456943345d3Smrg 1457943345d3Smrg -dlopen) 1458943345d3Smrg prev=dlfiles 1459943345d3Smrg continue 1460943345d3Smrg ;; 1461943345d3Smrg 1462943345d3Smrg -dlpreopen) 1463943345d3Smrg prev=dlprefiles 1464943345d3Smrg continue 1465943345d3Smrg ;; 1466943345d3Smrg 1467943345d3Smrg -export-dynamic) 1468943345d3Smrg export_dynamic=yes 1469943345d3Smrg continue 1470943345d3Smrg ;; 1471943345d3Smrg 1472943345d3Smrg -export-symbols | -export-symbols-regex) 1473943345d3Smrg if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 1474943345d3Smrg $echo "$modename: more than one -exported-symbols argument is not allowed" 1475943345d3Smrg exit $EXIT_FAILURE 1476943345d3Smrg fi 1477943345d3Smrg if test "X$arg" = "X-export-symbols"; then 1478943345d3Smrg prev=expsyms 1479943345d3Smrg else 1480943345d3Smrg prev=expsyms_regex 1481943345d3Smrg fi 1482943345d3Smrg continue 1483943345d3Smrg ;; 1484943345d3Smrg 1485943345d3Smrg -framework|-arch|-isysroot) 1486943345d3Smrg case " $CC " in 1487943345d3Smrg *" ${arg} ${1} "* | *" ${arg} ${1} "*) 1488943345d3Smrg prev=darwin_framework_skip ;; 1489943345d3Smrg *) compiler_flags="$compiler_flags $arg" 1490943345d3Smrg prev=darwin_framework ;; 1491943345d3Smrg esac 1492943345d3Smrg compile_command="$compile_command $arg" 1493943345d3Smrg finalize_command="$finalize_command $arg" 1494943345d3Smrg continue 1495943345d3Smrg ;; 1496943345d3Smrg 1497943345d3Smrg -inst-prefix-dir) 1498943345d3Smrg prev=inst_prefix 1499943345d3Smrg continue 1500943345d3Smrg ;; 1501943345d3Smrg 1502943345d3Smrg # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 1503943345d3Smrg # so, if we see these flags be careful not to treat them like -L 1504943345d3Smrg -L[A-Z][A-Z]*:*) 1505943345d3Smrg case $with_gcc/$host in 1506943345d3Smrg no/*-*-irix* | /*-*-irix*) 1507943345d3Smrg compile_command="$compile_command $arg" 1508943345d3Smrg finalize_command="$finalize_command $arg" 1509943345d3Smrg ;; 1510943345d3Smrg esac 1511943345d3Smrg continue 1512943345d3Smrg ;; 1513943345d3Smrg 1514943345d3Smrg -L*) 1515943345d3Smrg dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 1516943345d3Smrg # We need an absolute path. 1517943345d3Smrg case $dir in 1518943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1519943345d3Smrg *) 1520943345d3Smrg absdir=`cd "$dir" && pwd` 1521943345d3Smrg if test -z "$absdir"; then 1522943345d3Smrg $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 1523943345d3Smrg absdir="$dir" 1524943345d3Smrg notinst_path="$notinst_path $dir" 1525943345d3Smrg fi 1526943345d3Smrg dir="$absdir" 1527943345d3Smrg ;; 1528943345d3Smrg esac 1529943345d3Smrg case "$deplibs " in 1530943345d3Smrg *" -L$dir "*) ;; 1531943345d3Smrg *) 1532943345d3Smrg deplibs="$deplibs -L$dir" 1533943345d3Smrg lib_search_path="$lib_search_path $dir" 1534943345d3Smrg ;; 1535943345d3Smrg esac 1536943345d3Smrg case $host in 1537943345d3Smrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1538943345d3Smrg testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 1539943345d3Smrg case :$dllsearchpath: in 1540943345d3Smrg *":$dir:"*) ;; 1541943345d3Smrg *) dllsearchpath="$dllsearchpath:$dir";; 1542943345d3Smrg esac 1543943345d3Smrg case :$dllsearchpath: in 1544943345d3Smrg *":$testbindir:"*) ;; 1545943345d3Smrg *) dllsearchpath="$dllsearchpath:$testbindir";; 1546943345d3Smrg esac 1547943345d3Smrg ;; 1548943345d3Smrg esac 1549943345d3Smrg continue 1550943345d3Smrg ;; 1551943345d3Smrg 1552943345d3Smrg -l*) 1553943345d3Smrg if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 1554943345d3Smrg case $host in 1555943345d3Smrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 1556943345d3Smrg # These systems don't actually have a C or math library (as such) 1557943345d3Smrg continue 1558943345d3Smrg ;; 1559943345d3Smrg *-*-os2*) 1560943345d3Smrg # These systems don't actually have a C library (as such) 1561943345d3Smrg test "X$arg" = "X-lc" && continue 1562943345d3Smrg ;; 1563943345d3Smrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1564943345d3Smrg # Do not include libc due to us having libc/libc_r. 1565943345d3Smrg test "X$arg" = "X-lc" && continue 1566943345d3Smrg ;; 1567943345d3Smrg *-*-rhapsody* | *-*-darwin1.[012]) 1568943345d3Smrg # Rhapsody C and math libraries are in the System framework 1569943345d3Smrg deplibs="$deplibs -framework System" 1570943345d3Smrg continue 1571943345d3Smrg ;; 1572943345d3Smrg *-*-sco3.2v5* | *-*-sco5v6*) 1573943345d3Smrg # Causes problems with __ctype 1574943345d3Smrg test "X$arg" = "X-lc" && continue 1575943345d3Smrg ;; 1576943345d3Smrg *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 1577943345d3Smrg # Compiler inserts libc in the correct place for threads to work 1578943345d3Smrg test "X$arg" = "X-lc" && continue 1579943345d3Smrg ;; 1580943345d3Smrg esac 1581943345d3Smrg elif test "X$arg" = "X-lc_r"; then 1582943345d3Smrg case $host in 1583943345d3Smrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1584943345d3Smrg # Do not include libc_r directly, use -pthread flag. 1585943345d3Smrg continue 1586943345d3Smrg ;; 1587943345d3Smrg esac 1588943345d3Smrg fi 1589943345d3Smrg deplibs="$deplibs $arg" 1590943345d3Smrg continue 1591943345d3Smrg ;; 1592943345d3Smrg 1593943345d3Smrg # Tru64 UNIX uses -model [arg] to determine the layout of C++ 1594943345d3Smrg # classes, name mangling, and exception handling. 1595943345d3Smrg -model) 1596943345d3Smrg compile_command="$compile_command $arg" 1597943345d3Smrg compiler_flags="$compiler_flags $arg" 1598943345d3Smrg finalize_command="$finalize_command $arg" 1599943345d3Smrg prev=xcompiler 1600943345d3Smrg continue 1601943345d3Smrg ;; 1602943345d3Smrg 1603943345d3Smrg -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 1604943345d3Smrg compiler_flags="$compiler_flags $arg" 1605943345d3Smrg compile_command="$compile_command $arg" 1606943345d3Smrg finalize_command="$finalize_command $arg" 1607943345d3Smrg continue 1608943345d3Smrg ;; 1609943345d3Smrg 1610943345d3Smrg -module) 1611943345d3Smrg module=yes 1612943345d3Smrg continue 1613943345d3Smrg ;; 1614943345d3Smrg 1615943345d3Smrg # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 1616943345d3Smrg # -r[0-9][0-9]* specifies the processor on the SGI compiler 1617943345d3Smrg # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 1618943345d3Smrg # +DA*, +DD* enable 64-bit mode on the HP compiler 1619943345d3Smrg # -q* pass through compiler args for the IBM compiler 1620943345d3Smrg # -m* pass through architecture-specific compiler args for GCC 1621943345d3Smrg # -m*, -t[45]*, -txscale* pass through architecture-specific 1622943345d3Smrg # compiler args for GCC 1623943345d3Smrg # -pg pass through profiling flag for GCC 1624943345d3Smrg # @file GCC response files 1625943345d3Smrg -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ 1626943345d3Smrg -t[45]*|-txscale*|@*) 1627943345d3Smrg 1628943345d3Smrg # Unknown arguments in both finalize_command and compile_command need 1629943345d3Smrg # to be aesthetically quoted because they are evaled later. 1630943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1631943345d3Smrg case $arg in 1632943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1633943345d3Smrg arg="\"$arg\"" 1634943345d3Smrg ;; 1635943345d3Smrg esac 1636943345d3Smrg compile_command="$compile_command $arg" 1637943345d3Smrg finalize_command="$finalize_command $arg" 1638943345d3Smrg compiler_flags="$compiler_flags $arg" 1639943345d3Smrg continue 1640943345d3Smrg ;; 1641943345d3Smrg 1642943345d3Smrg -shrext) 1643943345d3Smrg prev=shrext 1644943345d3Smrg continue 1645943345d3Smrg ;; 1646943345d3Smrg 1647943345d3Smrg -no-fast-install) 1648943345d3Smrg fast_install=no 1649943345d3Smrg continue 1650943345d3Smrg ;; 1651943345d3Smrg 1652943345d3Smrg -no-install) 1653943345d3Smrg case $host in 1654943345d3Smrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1655943345d3Smrg # The PATH hackery in wrapper scripts is required on Windows 1656943345d3Smrg # in order for the loader to find any dlls it needs. 1657943345d3Smrg $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 1658943345d3Smrg $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 1659943345d3Smrg fast_install=no 1660943345d3Smrg ;; 1661943345d3Smrg *) no_install=yes ;; 1662943345d3Smrg esac 1663943345d3Smrg continue 1664943345d3Smrg ;; 1665943345d3Smrg 1666943345d3Smrg -no-undefined) 1667943345d3Smrg allow_undefined=no 1668943345d3Smrg continue 1669943345d3Smrg ;; 1670943345d3Smrg 1671943345d3Smrg -objectlist) 1672943345d3Smrg prev=objectlist 1673943345d3Smrg continue 1674943345d3Smrg ;; 1675943345d3Smrg 1676943345d3Smrg -o) prev=output ;; 1677943345d3Smrg 1678943345d3Smrg -precious-files-regex) 1679943345d3Smrg prev=precious_regex 1680943345d3Smrg continue 1681943345d3Smrg ;; 1682943345d3Smrg 1683943345d3Smrg -release) 1684943345d3Smrg prev=release 1685943345d3Smrg continue 1686943345d3Smrg ;; 1687943345d3Smrg 1688943345d3Smrg -rpath) 1689943345d3Smrg prev=rpath 1690943345d3Smrg continue 1691943345d3Smrg ;; 1692943345d3Smrg 1693943345d3Smrg -R) 1694943345d3Smrg prev=xrpath 1695943345d3Smrg continue 1696943345d3Smrg ;; 1697943345d3Smrg 1698943345d3Smrg -R*) 1699943345d3Smrg dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 1700943345d3Smrg # We need an absolute path. 1701943345d3Smrg case $dir in 1702943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1703943345d3Smrg *) 1704943345d3Smrg $echo "$modename: only absolute run-paths are allowed" 1>&2 1705943345d3Smrg exit $EXIT_FAILURE 1706943345d3Smrg ;; 1707943345d3Smrg esac 1708943345d3Smrg case "$xrpath " in 1709943345d3Smrg *" $dir "*) ;; 1710943345d3Smrg *) xrpath="$xrpath $dir" ;; 1711943345d3Smrg esac 1712943345d3Smrg continue 1713943345d3Smrg ;; 1714943345d3Smrg 1715943345d3Smrg -static) 1716943345d3Smrg # The effects of -static are defined in a previous loop. 1717943345d3Smrg # We used to do the same as -all-static on platforms that 1718943345d3Smrg # didn't have a PIC flag, but the assumption that the effects 1719943345d3Smrg # would be equivalent was wrong. It would break on at least 1720943345d3Smrg # Digital Unix and AIX. 1721943345d3Smrg continue 1722943345d3Smrg ;; 1723943345d3Smrg 1724943345d3Smrg -thread-safe) 1725943345d3Smrg thread_safe=yes 1726943345d3Smrg continue 1727943345d3Smrg ;; 1728943345d3Smrg 1729943345d3Smrg -version-info) 1730943345d3Smrg prev=vinfo 1731943345d3Smrg continue 1732943345d3Smrg ;; 1733943345d3Smrg -version-number) 1734943345d3Smrg prev=vinfo 1735943345d3Smrg vinfo_number=yes 1736943345d3Smrg continue 1737943345d3Smrg ;; 1738943345d3Smrg 1739943345d3Smrg -Wc,*) 1740943345d3Smrg args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 1741943345d3Smrg arg= 1742943345d3Smrg save_ifs="$IFS"; IFS=',' 1743943345d3Smrg for flag in $args; do 1744943345d3Smrg IFS="$save_ifs" 1745943345d3Smrg case $flag in 1746943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1747943345d3Smrg flag="\"$flag\"" 1748943345d3Smrg ;; 1749943345d3Smrg esac 1750943345d3Smrg arg="$arg $wl$flag" 1751943345d3Smrg compiler_flags="$compiler_flags $flag" 1752943345d3Smrg done 1753943345d3Smrg IFS="$save_ifs" 1754943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1755943345d3Smrg ;; 1756943345d3Smrg 1757943345d3Smrg -Wl,*) 1758943345d3Smrg args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 1759943345d3Smrg arg= 1760943345d3Smrg save_ifs="$IFS"; IFS=',' 1761943345d3Smrg for flag in $args; do 1762943345d3Smrg IFS="$save_ifs" 1763943345d3Smrg case $flag in 1764943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1765943345d3Smrg flag="\"$flag\"" 1766943345d3Smrg ;; 1767943345d3Smrg esac 1768943345d3Smrg arg="$arg $wl$flag" 1769943345d3Smrg compiler_flags="$compiler_flags $wl$flag" 1770943345d3Smrg linker_flags="$linker_flags $flag" 1771943345d3Smrg done 1772943345d3Smrg IFS="$save_ifs" 1773943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1774943345d3Smrg ;; 1775943345d3Smrg 1776943345d3Smrg -Xcompiler) 1777943345d3Smrg prev=xcompiler 1778943345d3Smrg continue 1779943345d3Smrg ;; 1780943345d3Smrg 1781943345d3Smrg -Xlinker) 1782943345d3Smrg prev=xlinker 1783943345d3Smrg continue 1784943345d3Smrg ;; 1785943345d3Smrg 1786943345d3Smrg -XCClinker) 1787943345d3Smrg prev=xcclinker 1788943345d3Smrg continue 1789943345d3Smrg ;; 1790943345d3Smrg 1791943345d3Smrg # Some other compiler flag. 1792943345d3Smrg -* | +*) 1793943345d3Smrg # Unknown arguments in both finalize_command and compile_command need 1794943345d3Smrg # to be aesthetically quoted because they are evaled later. 1795943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1796943345d3Smrg case $arg in 1797943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1798943345d3Smrg arg="\"$arg\"" 1799943345d3Smrg ;; 1800943345d3Smrg esac 1801943345d3Smrg ;; 1802943345d3Smrg 1803943345d3Smrg *.$objext) 1804943345d3Smrg # A standard object. 1805943345d3Smrg objs="$objs $arg" 1806943345d3Smrg ;; 1807943345d3Smrg 1808943345d3Smrg *.lo) 1809943345d3Smrg # A libtool-controlled object. 1810943345d3Smrg 1811943345d3Smrg # Check to see that this really is a libtool object. 1812943345d3Smrg if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1813943345d3Smrg pic_object= 1814943345d3Smrg non_pic_object= 1815943345d3Smrg 1816943345d3Smrg # Read the .lo file 1817943345d3Smrg # If there is no directory component, then add one. 1818943345d3Smrg case $arg in 1819943345d3Smrg */* | *\\*) . $arg ;; 1820943345d3Smrg *) . ./$arg ;; 1821943345d3Smrg esac 1822943345d3Smrg 1823943345d3Smrg if test -z "$pic_object" || \ 1824943345d3Smrg test -z "$non_pic_object" || 1825943345d3Smrg test "$pic_object" = none && \ 1826943345d3Smrg test "$non_pic_object" = none; then 1827943345d3Smrg $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1828943345d3Smrg exit $EXIT_FAILURE 1829943345d3Smrg fi 1830943345d3Smrg 1831943345d3Smrg # Extract subdirectory from the argument. 1832943345d3Smrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1833943345d3Smrg if test "X$xdir" = "X$arg"; then 1834943345d3Smrg xdir= 1835943345d3Smrg else 1836943345d3Smrg xdir="$xdir/" 1837943345d3Smrg fi 1838943345d3Smrg 1839943345d3Smrg if test "$pic_object" != none; then 1840943345d3Smrg # Prepend the subdirectory the object is found in. 1841943345d3Smrg pic_object="$xdir$pic_object" 1842943345d3Smrg 1843943345d3Smrg if test "$prev" = dlfiles; then 1844943345d3Smrg if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1845943345d3Smrg dlfiles="$dlfiles $pic_object" 1846943345d3Smrg prev= 1847943345d3Smrg continue 1848943345d3Smrg else 1849943345d3Smrg # If libtool objects are unsupported, then we need to preload. 1850943345d3Smrg prev=dlprefiles 1851943345d3Smrg fi 1852943345d3Smrg fi 1853943345d3Smrg 1854943345d3Smrg # CHECK ME: I think I busted this. -Ossama 1855943345d3Smrg if test "$prev" = dlprefiles; then 1856943345d3Smrg # Preload the old-style object. 1857943345d3Smrg dlprefiles="$dlprefiles $pic_object" 1858943345d3Smrg prev= 1859943345d3Smrg fi 1860943345d3Smrg 1861943345d3Smrg # A PIC object. 1862943345d3Smrg libobjs="$libobjs $pic_object" 1863943345d3Smrg arg="$pic_object" 1864943345d3Smrg fi 1865943345d3Smrg 1866943345d3Smrg # Non-PIC object. 1867943345d3Smrg if test "$non_pic_object" != none; then 1868943345d3Smrg # Prepend the subdirectory the object is found in. 1869943345d3Smrg non_pic_object="$xdir$non_pic_object" 1870943345d3Smrg 1871943345d3Smrg # A standard non-PIC object 1872943345d3Smrg non_pic_objects="$non_pic_objects $non_pic_object" 1873943345d3Smrg if test -z "$pic_object" || test "$pic_object" = none ; then 1874943345d3Smrg arg="$non_pic_object" 1875943345d3Smrg fi 1876943345d3Smrg else 1877943345d3Smrg # If the PIC object exists, use it instead. 1878943345d3Smrg # $xdir was prepended to $pic_object above. 1879943345d3Smrg non_pic_object="$pic_object" 1880943345d3Smrg non_pic_objects="$non_pic_objects $non_pic_object" 1881943345d3Smrg fi 1882943345d3Smrg else 1883943345d3Smrg # Only an error if not doing a dry-run. 1884943345d3Smrg if test -z "$run"; then 1885943345d3Smrg $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1886943345d3Smrg exit $EXIT_FAILURE 1887943345d3Smrg else 1888943345d3Smrg # Dry-run case. 1889943345d3Smrg 1890943345d3Smrg # Extract subdirectory from the argument. 1891943345d3Smrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1892943345d3Smrg if test "X$xdir" = "X$arg"; then 1893943345d3Smrg xdir= 1894943345d3Smrg else 1895943345d3Smrg xdir="$xdir/" 1896943345d3Smrg fi 1897943345d3Smrg 1898943345d3Smrg pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1899943345d3Smrg non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1900943345d3Smrg libobjs="$libobjs $pic_object" 1901943345d3Smrg non_pic_objects="$non_pic_objects $non_pic_object" 1902943345d3Smrg fi 1903943345d3Smrg fi 1904943345d3Smrg ;; 1905943345d3Smrg 1906943345d3Smrg *.$libext) 1907943345d3Smrg # An archive. 1908943345d3Smrg deplibs="$deplibs $arg" 1909943345d3Smrg old_deplibs="$old_deplibs $arg" 1910943345d3Smrg continue 1911943345d3Smrg ;; 1912943345d3Smrg 1913943345d3Smrg *.la) 1914943345d3Smrg # A libtool-controlled library. 1915943345d3Smrg 1916943345d3Smrg if test "$prev" = dlfiles; then 1917943345d3Smrg # This library was specified with -dlopen. 1918943345d3Smrg dlfiles="$dlfiles $arg" 1919943345d3Smrg prev= 1920943345d3Smrg elif test "$prev" = dlprefiles; then 1921943345d3Smrg # The library was specified with -dlpreopen. 1922943345d3Smrg dlprefiles="$dlprefiles $arg" 1923943345d3Smrg prev= 1924943345d3Smrg else 1925943345d3Smrg deplibs="$deplibs $arg" 1926943345d3Smrg fi 1927943345d3Smrg continue 1928943345d3Smrg ;; 1929943345d3Smrg 1930943345d3Smrg # Some other compiler argument. 1931943345d3Smrg *) 1932943345d3Smrg # Unknown arguments in both finalize_command and compile_command need 1933943345d3Smrg # to be aesthetically quoted because they are evaled later. 1934943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1935943345d3Smrg case $arg in 1936943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1937943345d3Smrg arg="\"$arg\"" 1938943345d3Smrg ;; 1939943345d3Smrg esac 1940943345d3Smrg ;; 1941943345d3Smrg esac # arg 1942943345d3Smrg 1943943345d3Smrg # Now actually substitute the argument into the commands. 1944943345d3Smrg if test -n "$arg"; then 1945943345d3Smrg compile_command="$compile_command $arg" 1946943345d3Smrg finalize_command="$finalize_command $arg" 1947943345d3Smrg fi 1948943345d3Smrg done # argument parsing loop 1949943345d3Smrg 1950943345d3Smrg if test -n "$prev"; then 1951943345d3Smrg $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 1952943345d3Smrg $echo "$help" 1>&2 1953943345d3Smrg exit $EXIT_FAILURE 1954943345d3Smrg fi 1955943345d3Smrg 1956943345d3Smrg if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 1957943345d3Smrg eval arg=\"$export_dynamic_flag_spec\" 1958943345d3Smrg compile_command="$compile_command $arg" 1959943345d3Smrg finalize_command="$finalize_command $arg" 1960943345d3Smrg fi 1961943345d3Smrg 1962943345d3Smrg oldlibs= 1963943345d3Smrg # calculate the name of the file, without its directory 1964943345d3Smrg outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 1965943345d3Smrg libobjs_save="$libobjs" 1966943345d3Smrg 1967943345d3Smrg if test -n "$shlibpath_var"; then 1968943345d3Smrg # get the directories listed in $shlibpath_var 1969943345d3Smrg eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 1970943345d3Smrg else 1971943345d3Smrg shlib_search_path= 1972943345d3Smrg fi 1973943345d3Smrg eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 1974943345d3Smrg eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 1975943345d3Smrg 1976943345d3Smrg output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 1977943345d3Smrg if test "X$output_objdir" = "X$output"; then 1978943345d3Smrg output_objdir="$objdir" 1979943345d3Smrg else 1980943345d3Smrg output_objdir="$output_objdir/$objdir" 1981943345d3Smrg fi 1982943345d3Smrg # Create the object directory. 1983943345d3Smrg if test ! -d "$output_objdir"; then 1984943345d3Smrg $show "$mkdir $output_objdir" 1985943345d3Smrg $run $mkdir $output_objdir 1986943345d3Smrg exit_status=$? 1987943345d3Smrg if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 1988943345d3Smrg exit $exit_status 1989943345d3Smrg fi 1990943345d3Smrg fi 1991943345d3Smrg 1992943345d3Smrg # Determine the type of output 1993943345d3Smrg case $output in 1994943345d3Smrg "") 1995943345d3Smrg $echo "$modename: you must specify an output file" 1>&2 1996943345d3Smrg $echo "$help" 1>&2 1997943345d3Smrg exit $EXIT_FAILURE 1998943345d3Smrg ;; 1999943345d3Smrg *.$libext) linkmode=oldlib ;; 2000943345d3Smrg *.lo | *.$objext) linkmode=obj ;; 2001943345d3Smrg *.la) linkmode=lib ;; 2002943345d3Smrg *) linkmode=prog ;; # Anything else should be a program. 2003943345d3Smrg esac 2004943345d3Smrg 2005943345d3Smrg case $host in 2006943345d3Smrg *cygwin* | *mingw* | *pw32*) 2007943345d3Smrg # don't eliminate duplications in $postdeps and $predeps 2008943345d3Smrg duplicate_compiler_generated_deps=yes 2009943345d3Smrg ;; 2010943345d3Smrg *) 2011943345d3Smrg duplicate_compiler_generated_deps=$duplicate_deps 2012943345d3Smrg ;; 2013943345d3Smrg esac 2014943345d3Smrg specialdeplibs= 2015943345d3Smrg 2016943345d3Smrg libs= 2017943345d3Smrg # Find all interdependent deplibs by searching for libraries 2018943345d3Smrg # that are linked more than once (e.g. -la -lb -la) 2019943345d3Smrg for deplib in $deplibs; do 2020943345d3Smrg if test "X$duplicate_deps" = "Xyes" ; then 2021943345d3Smrg case "$libs " in 2022943345d3Smrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2023943345d3Smrg esac 2024943345d3Smrg fi 2025943345d3Smrg libs="$libs $deplib" 2026943345d3Smrg done 2027943345d3Smrg 2028943345d3Smrg if test "$linkmode" = lib; then 2029943345d3Smrg libs="$predeps $libs $compiler_lib_search_path $postdeps" 2030943345d3Smrg 2031943345d3Smrg # Compute libraries that are listed more than once in $predeps 2032943345d3Smrg # $postdeps and mark them as special (i.e., whose duplicates are 2033943345d3Smrg # not to be eliminated). 2034943345d3Smrg pre_post_deps= 2035943345d3Smrg if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 2036943345d3Smrg for pre_post_dep in $predeps $postdeps; do 2037943345d3Smrg case "$pre_post_deps " in 2038943345d3Smrg *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 2039943345d3Smrg esac 2040943345d3Smrg pre_post_deps="$pre_post_deps $pre_post_dep" 2041943345d3Smrg done 2042943345d3Smrg fi 2043943345d3Smrg pre_post_deps= 2044943345d3Smrg fi 2045943345d3Smrg 2046943345d3Smrg deplibs= 2047943345d3Smrg newdependency_libs= 2048943345d3Smrg newlib_search_path= 2049943345d3Smrg need_relink=no # whether we're linking any uninstalled libtool libraries 2050943345d3Smrg notinst_deplibs= # not-installed libtool libraries 2051943345d3Smrg case $linkmode in 2052943345d3Smrg lib) 2053943345d3Smrg passes="conv link" 2054943345d3Smrg for file in $dlfiles $dlprefiles; do 2055943345d3Smrg case $file in 2056943345d3Smrg *.la) ;; 2057943345d3Smrg *) 2058943345d3Smrg $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 2059943345d3Smrg exit $EXIT_FAILURE 2060943345d3Smrg ;; 2061943345d3Smrg esac 2062943345d3Smrg done 2063943345d3Smrg ;; 2064943345d3Smrg prog) 2065943345d3Smrg compile_deplibs= 2066943345d3Smrg finalize_deplibs= 2067943345d3Smrg alldeplibs=no 2068943345d3Smrg newdlfiles= 2069943345d3Smrg newdlprefiles= 2070943345d3Smrg passes="conv scan dlopen dlpreopen link" 2071943345d3Smrg ;; 2072943345d3Smrg *) passes="conv" 2073943345d3Smrg ;; 2074943345d3Smrg esac 2075943345d3Smrg for pass in $passes; do 2076943345d3Smrg if test "$linkmode,$pass" = "lib,link" || 2077943345d3Smrg test "$linkmode,$pass" = "prog,scan"; then 2078943345d3Smrg libs="$deplibs" 2079943345d3Smrg deplibs= 2080943345d3Smrg fi 2081943345d3Smrg if test "$linkmode" = prog; then 2082943345d3Smrg case $pass in 2083943345d3Smrg dlopen) libs="$dlfiles" ;; 2084943345d3Smrg dlpreopen) libs="$dlprefiles" ;; 2085943345d3Smrg link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; 2086943345d3Smrg esac 2087943345d3Smrg fi 2088943345d3Smrg if test "$pass" = dlopen; then 2089943345d3Smrg # Collect dlpreopened libraries 2090943345d3Smrg save_deplibs="$deplibs" 2091943345d3Smrg deplibs= 2092943345d3Smrg fi 2093943345d3Smrg for deplib in $libs; do 2094943345d3Smrg lib= 2095943345d3Smrg found=no 2096943345d3Smrg case $deplib in 2097943345d3Smrg -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 2098943345d3Smrg if test "$linkmode,$pass" = "prog,link"; then 2099943345d3Smrg compile_deplibs="$deplib $compile_deplibs" 2100943345d3Smrg finalize_deplibs="$deplib $finalize_deplibs" 2101943345d3Smrg else 2102943345d3Smrg compiler_flags="$compiler_flags $deplib" 2103943345d3Smrg fi 2104943345d3Smrg continue 2105943345d3Smrg ;; 2106943345d3Smrg -l*) 2107943345d3Smrg if test "$linkmode" != lib && test "$linkmode" != prog; then 2108943345d3Smrg $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 2109943345d3Smrg continue 2110943345d3Smrg fi 2111943345d3Smrg name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 2112943345d3Smrg for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do 2113943345d3Smrg for search_ext in .la $std_shrext .so .a; do 2114943345d3Smrg # Search the libtool library 2115943345d3Smrg lib="$searchdir/lib${name}${search_ext}" 2116943345d3Smrg if test -f "$lib"; then 2117943345d3Smrg if test "$search_ext" = ".la"; then 2118943345d3Smrg found=yes 2119943345d3Smrg else 2120943345d3Smrg found=no 2121943345d3Smrg fi 2122943345d3Smrg break 2 2123943345d3Smrg fi 2124943345d3Smrg done 2125943345d3Smrg done 2126943345d3Smrg if test "$found" != yes; then 2127943345d3Smrg # deplib doesn't seem to be a libtool library 2128943345d3Smrg if test "$linkmode,$pass" = "prog,link"; then 2129943345d3Smrg compile_deplibs="$deplib $compile_deplibs" 2130943345d3Smrg finalize_deplibs="$deplib $finalize_deplibs" 2131943345d3Smrg else 2132943345d3Smrg deplibs="$deplib $deplibs" 2133943345d3Smrg test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2134943345d3Smrg fi 2135943345d3Smrg continue 2136943345d3Smrg else # deplib is a libtool library 2137943345d3Smrg # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 2138943345d3Smrg # We need to do some special things here, and not later. 2139943345d3Smrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 2140943345d3Smrg case " $predeps $postdeps " in 2141943345d3Smrg *" $deplib "*) 2142943345d3Smrg if (${SED} -e '2q' $lib | 2143943345d3Smrg grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 2144943345d3Smrg library_names= 2145943345d3Smrg old_library= 2146943345d3Smrg case $lib in 2147943345d3Smrg */* | *\\*) . $lib ;; 2148943345d3Smrg *) . ./$lib ;; 2149943345d3Smrg esac 2150943345d3Smrg for l in $old_library $library_names; do 2151943345d3Smrg ll="$l" 2152943345d3Smrg done 2153943345d3Smrg if test "X$ll" = "X$old_library" ; then # only static version available 2154943345d3Smrg found=no 2155943345d3Smrg ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2156943345d3Smrg test "X$ladir" = "X$lib" && ladir="." 2157943345d3Smrg lib=$ladir/$old_library 2158943345d3Smrg if test "$linkmode,$pass" = "prog,link"; then 2159943345d3Smrg compile_deplibs="$deplib $compile_deplibs" 2160943345d3Smrg finalize_deplibs="$deplib $finalize_deplibs" 2161943345d3Smrg else 2162943345d3Smrg deplibs="$deplib $deplibs" 2163943345d3Smrg test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2164943345d3Smrg fi 2165943345d3Smrg continue 2166943345d3Smrg fi 2167943345d3Smrg fi 2168943345d3Smrg ;; 2169943345d3Smrg *) ;; 2170943345d3Smrg esac 2171943345d3Smrg fi 2172943345d3Smrg fi 2173943345d3Smrg ;; # -l 2174943345d3Smrg -L*) 2175943345d3Smrg case $linkmode in 2176943345d3Smrg lib) 2177943345d3Smrg deplibs="$deplib $deplibs" 2178943345d3Smrg test "$pass" = conv && continue 2179943345d3Smrg newdependency_libs="$deplib $newdependency_libs" 2180943345d3Smrg newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2181943345d3Smrg ;; 2182943345d3Smrg prog) 2183943345d3Smrg if test "$pass" = conv; then 2184943345d3Smrg deplibs="$deplib $deplibs" 2185943345d3Smrg continue 2186943345d3Smrg fi 2187943345d3Smrg if test "$pass" = scan; then 2188943345d3Smrg deplibs="$deplib $deplibs" 2189943345d3Smrg else 2190943345d3Smrg compile_deplibs="$deplib $compile_deplibs" 2191943345d3Smrg finalize_deplibs="$deplib $finalize_deplibs" 2192943345d3Smrg fi 2193943345d3Smrg newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2194943345d3Smrg ;; 2195943345d3Smrg *) 2196943345d3Smrg $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 2197943345d3Smrg ;; 2198943345d3Smrg esac # linkmode 2199943345d3Smrg continue 2200943345d3Smrg ;; # -L 2201943345d3Smrg -R*) 2202943345d3Smrg if test "$pass" = link; then 2203943345d3Smrg dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 2204943345d3Smrg # Make sure the xrpath contains only unique directories. 2205943345d3Smrg case "$xrpath " in 2206943345d3Smrg *" $dir "*) ;; 2207943345d3Smrg *) xrpath="$xrpath $dir" ;; 2208943345d3Smrg esac 2209943345d3Smrg fi 2210943345d3Smrg deplibs="$deplib $deplibs" 2211943345d3Smrg continue 2212943345d3Smrg ;; 2213943345d3Smrg *.la) lib="$deplib" ;; 2214943345d3Smrg *.$libext) 2215943345d3Smrg if test "$pass" = conv; then 2216943345d3Smrg deplibs="$deplib $deplibs" 2217943345d3Smrg continue 2218943345d3Smrg fi 2219943345d3Smrg case $linkmode in 2220943345d3Smrg lib) 2221943345d3Smrg valid_a_lib=no 2222943345d3Smrg case $deplibs_check_method in 2223943345d3Smrg match_pattern*) 2224943345d3Smrg set dummy $deplibs_check_method 2225943345d3Smrg match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 2226943345d3Smrg if eval $echo \"$deplib\" 2>/dev/null \ 2227943345d3Smrg | $SED 10q \ 2228943345d3Smrg | $EGREP "$match_pattern_regex" > /dev/null; then 2229943345d3Smrg valid_a_lib=yes 2230943345d3Smrg fi 2231943345d3Smrg ;; 2232943345d3Smrg pass_all) 2233943345d3Smrg valid_a_lib=yes 2234943345d3Smrg ;; 2235943345d3Smrg esac 2236943345d3Smrg if test "$valid_a_lib" != yes; then 2237943345d3Smrg $echo 2238943345d3Smrg $echo "*** Warning: Trying to link with static lib archive $deplib." 2239943345d3Smrg $echo "*** I have the capability to make that library automatically link in when" 2240943345d3Smrg $echo "*** you link to this library. But I can only do this if you have a" 2241943345d3Smrg $echo "*** shared version of the library, which you do not appear to have" 2242943345d3Smrg $echo "*** because the file extensions .$libext of this argument makes me believe" 2243943345d3Smrg $echo "*** that it is just a static archive that I should not used here." 2244943345d3Smrg else 2245943345d3Smrg $echo 2246943345d3Smrg $echo "*** Warning: Linking the shared library $output against the" 2247943345d3Smrg $echo "*** static library $deplib is not portable!" 2248943345d3Smrg deplibs="$deplib $deplibs" 2249943345d3Smrg fi 2250943345d3Smrg continue 2251943345d3Smrg ;; 2252943345d3Smrg prog) 2253943345d3Smrg if test "$pass" != link; then 2254943345d3Smrg deplibs="$deplib $deplibs" 2255943345d3Smrg else 2256943345d3Smrg compile_deplibs="$deplib $compile_deplibs" 2257943345d3Smrg finalize_deplibs="$deplib $finalize_deplibs" 2258943345d3Smrg fi 2259943345d3Smrg continue 2260943345d3Smrg ;; 2261943345d3Smrg esac # linkmode 2262943345d3Smrg ;; # *.$libext 2263943345d3Smrg *.lo | *.$objext) 2264943345d3Smrg if test "$pass" = conv; then 2265943345d3Smrg deplibs="$deplib $deplibs" 2266943345d3Smrg elif test "$linkmode" = prog; then 2267943345d3Smrg if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 2268943345d3Smrg # If there is no dlopen support or we're linking statically, 2269943345d3Smrg # we need to preload. 2270943345d3Smrg newdlprefiles="$newdlprefiles $deplib" 2271943345d3Smrg compile_deplibs="$deplib $compile_deplibs" 2272943345d3Smrg finalize_deplibs="$deplib $finalize_deplibs" 2273943345d3Smrg else 2274943345d3Smrg newdlfiles="$newdlfiles $deplib" 2275943345d3Smrg fi 2276943345d3Smrg fi 2277943345d3Smrg continue 2278943345d3Smrg ;; 2279943345d3Smrg %DEPLIBS%) 2280943345d3Smrg alldeplibs=yes 2281943345d3Smrg continue 2282943345d3Smrg ;; 2283943345d3Smrg esac # case $deplib 2284943345d3Smrg if test "$found" = yes || test -f "$lib"; then : 2285943345d3Smrg else 2286943345d3Smrg $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 2287943345d3Smrg exit $EXIT_FAILURE 2288943345d3Smrg fi 2289943345d3Smrg 2290943345d3Smrg # Check to see that this really is a libtool archive. 2291943345d3Smrg if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 2292943345d3Smrg else 2293943345d3Smrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 2294943345d3Smrg exit $EXIT_FAILURE 2295943345d3Smrg fi 2296943345d3Smrg 2297943345d3Smrg ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2298943345d3Smrg test "X$ladir" = "X$lib" && ladir="." 2299943345d3Smrg 2300943345d3Smrg dlname= 2301943345d3Smrg dlopen= 2302943345d3Smrg dlpreopen= 2303943345d3Smrg libdir= 2304943345d3Smrg library_names= 2305943345d3Smrg old_library= 2306943345d3Smrg # If the library was installed with an old release of libtool, 2307943345d3Smrg # it will not redefine variables installed, or shouldnotlink 2308943345d3Smrg installed=yes 2309943345d3Smrg shouldnotlink=no 2310943345d3Smrg avoidtemprpath= 2311943345d3Smrg 2312943345d3Smrg 2313943345d3Smrg # Read the .la file 2314943345d3Smrg case $lib in 2315943345d3Smrg */* | *\\*) . $lib ;; 2316943345d3Smrg *) . ./$lib ;; 2317943345d3Smrg esac 2318943345d3Smrg 2319943345d3Smrg if test "$linkmode,$pass" = "lib,link" || 2320943345d3Smrg test "$linkmode,$pass" = "prog,scan" || 2321943345d3Smrg { test "$linkmode" != prog && test "$linkmode" != lib; }; then 2322943345d3Smrg test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 2323943345d3Smrg test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 2324943345d3Smrg fi 2325943345d3Smrg 2326943345d3Smrg if test "$pass" = conv; then 2327943345d3Smrg # Only check for convenience libraries 2328943345d3Smrg deplibs="$lib $deplibs" 2329943345d3Smrg if test -z "$libdir"; then 2330943345d3Smrg if test -z "$old_library"; then 2331943345d3Smrg $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2332943345d3Smrg exit $EXIT_FAILURE 2333943345d3Smrg fi 2334943345d3Smrg # It is a libtool convenience library, so add in its objects. 2335943345d3Smrg convenience="$convenience $ladir/$objdir/$old_library" 2336943345d3Smrg old_convenience="$old_convenience $ladir/$objdir/$old_library" 2337943345d3Smrg tmp_libs= 2338943345d3Smrg for deplib in $dependency_libs; do 2339943345d3Smrg deplibs="$deplib $deplibs" 2340943345d3Smrg if test "X$duplicate_deps" = "Xyes" ; then 2341943345d3Smrg case "$tmp_libs " in 2342943345d3Smrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2343943345d3Smrg esac 2344943345d3Smrg fi 2345943345d3Smrg tmp_libs="$tmp_libs $deplib" 2346943345d3Smrg done 2347943345d3Smrg elif test "$linkmode" != prog && test "$linkmode" != lib; then 2348943345d3Smrg $echo "$modename: \`$lib' is not a convenience library" 1>&2 2349943345d3Smrg exit $EXIT_FAILURE 2350943345d3Smrg fi 2351943345d3Smrg continue 2352943345d3Smrg fi # $pass = conv 2353943345d3Smrg 2354943345d3Smrg 2355943345d3Smrg # Get the name of the library we link against. 2356943345d3Smrg linklib= 2357943345d3Smrg for l in $old_library $library_names; do 2358943345d3Smrg linklib="$l" 2359943345d3Smrg done 2360943345d3Smrg if test -z "$linklib"; then 2361943345d3Smrg $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2362943345d3Smrg exit $EXIT_FAILURE 2363943345d3Smrg fi 2364943345d3Smrg 2365943345d3Smrg # This library was specified with -dlopen. 2366943345d3Smrg if test "$pass" = dlopen; then 2367943345d3Smrg if test -z "$libdir"; then 2368943345d3Smrg $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 2369943345d3Smrg exit $EXIT_FAILURE 2370943345d3Smrg fi 2371943345d3Smrg if test -z "$dlname" || 2372943345d3Smrg test "$dlopen_support" != yes || 2373943345d3Smrg test "$build_libtool_libs" = no; then 2374943345d3Smrg # If there is no dlname, no dlopen support or we're linking 2375943345d3Smrg # statically, we need to preload. We also need to preload any 2376943345d3Smrg # dependent libraries so libltdl's deplib preloader doesn't 2377943345d3Smrg # bomb out in the load deplibs phase. 2378943345d3Smrg dlprefiles="$dlprefiles $lib $dependency_libs" 2379943345d3Smrg else 2380943345d3Smrg newdlfiles="$newdlfiles $lib" 2381943345d3Smrg fi 2382943345d3Smrg continue 2383943345d3Smrg fi # $pass = dlopen 2384943345d3Smrg 2385943345d3Smrg # We need an absolute path. 2386943345d3Smrg case $ladir in 2387943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 2388943345d3Smrg *) 2389943345d3Smrg abs_ladir=`cd "$ladir" && pwd` 2390943345d3Smrg if test -z "$abs_ladir"; then 2391943345d3Smrg $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 2392943345d3Smrg $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 2393943345d3Smrg abs_ladir="$ladir" 2394943345d3Smrg fi 2395943345d3Smrg ;; 2396943345d3Smrg esac 2397943345d3Smrg laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 2398943345d3Smrg 2399943345d3Smrg # Find the relevant object directory and library name. 2400943345d3Smrg if test "X$installed" = Xyes; then 2401943345d3Smrg if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2402943345d3Smrg $echo "$modename: warning: library \`$lib' was moved." 1>&2 2403943345d3Smrg dir="$ladir" 2404943345d3Smrg absdir="$abs_ladir" 2405943345d3Smrg libdir="$abs_ladir" 2406943345d3Smrg else 2407943345d3Smrg dir="$libdir" 2408943345d3Smrg absdir="$libdir" 2409943345d3Smrg fi 2410943345d3Smrg test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 2411943345d3Smrg else 2412943345d3Smrg if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2413943345d3Smrg dir="$ladir" 2414943345d3Smrg absdir="$abs_ladir" 2415943345d3Smrg # Remove this search path later 2416943345d3Smrg notinst_path="$notinst_path $abs_ladir" 2417943345d3Smrg else 2418943345d3Smrg dir="$ladir/$objdir" 2419943345d3Smrg absdir="$abs_ladir/$objdir" 2420943345d3Smrg # Remove this search path later 2421943345d3Smrg notinst_path="$notinst_path $abs_ladir" 2422943345d3Smrg fi 2423943345d3Smrg fi # $installed = yes 2424943345d3Smrg name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 2425943345d3Smrg 2426943345d3Smrg # This library was specified with -dlpreopen. 2427943345d3Smrg if test "$pass" = dlpreopen; then 2428943345d3Smrg if test -z "$libdir"; then 2429943345d3Smrg $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 2430943345d3Smrg exit $EXIT_FAILURE 2431943345d3Smrg fi 2432943345d3Smrg # Prefer using a static library (so that no silly _DYNAMIC symbols 2433943345d3Smrg # are required to link). 2434943345d3Smrg if test -n "$old_library"; then 2435943345d3Smrg newdlprefiles="$newdlprefiles $dir/$old_library" 2436943345d3Smrg # Otherwise, use the dlname, so that lt_dlopen finds it. 2437943345d3Smrg elif test -n "$dlname"; then 2438943345d3Smrg newdlprefiles="$newdlprefiles $dir/$dlname" 2439943345d3Smrg else 2440943345d3Smrg newdlprefiles="$newdlprefiles $dir/$linklib" 2441943345d3Smrg fi 2442943345d3Smrg fi # $pass = dlpreopen 2443943345d3Smrg 2444943345d3Smrg if test -z "$libdir"; then 2445943345d3Smrg # Link the convenience library 2446943345d3Smrg if test "$linkmode" = lib; then 2447943345d3Smrg deplibs="$dir/$old_library $deplibs" 2448943345d3Smrg elif test "$linkmode,$pass" = "prog,link"; then 2449943345d3Smrg compile_deplibs="$dir/$old_library $compile_deplibs" 2450943345d3Smrg finalize_deplibs="$dir/$old_library $finalize_deplibs" 2451943345d3Smrg else 2452943345d3Smrg deplibs="$lib $deplibs" # used for prog,scan pass 2453943345d3Smrg fi 2454943345d3Smrg continue 2455943345d3Smrg fi 2456943345d3Smrg 2457943345d3Smrg 2458943345d3Smrg if test "$linkmode" = prog && test "$pass" != link; then 2459943345d3Smrg newlib_search_path="$newlib_search_path $ladir" 2460943345d3Smrg deplibs="$lib $deplibs" 2461943345d3Smrg 2462943345d3Smrg linkalldeplibs=no 2463943345d3Smrg if test "$link_all_deplibs" != no || test -z "$library_names" || 2464943345d3Smrg test "$build_libtool_libs" = no; then 2465943345d3Smrg linkalldeplibs=yes 2466943345d3Smrg fi 2467943345d3Smrg 2468943345d3Smrg tmp_libs= 2469943345d3Smrg for deplib in $dependency_libs; do 2470943345d3Smrg case $deplib in 2471943345d3Smrg -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 2472943345d3Smrg esac 2473943345d3Smrg # Need to link against all dependency_libs? 2474943345d3Smrg if test "$linkalldeplibs" = yes; then 2475943345d3Smrg deplibs="$deplib $deplibs" 2476943345d3Smrg else 2477943345d3Smrg # Need to hardcode shared library paths 2478943345d3Smrg # or/and link against static libraries 2479943345d3Smrg newdependency_libs="$deplib $newdependency_libs" 2480943345d3Smrg fi 2481943345d3Smrg if test "X$duplicate_deps" = "Xyes" ; then 2482943345d3Smrg case "$tmp_libs " in 2483943345d3Smrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2484943345d3Smrg esac 2485943345d3Smrg fi 2486943345d3Smrg tmp_libs="$tmp_libs $deplib" 2487943345d3Smrg done # for deplib 2488943345d3Smrg continue 2489943345d3Smrg fi # $linkmode = prog... 2490943345d3Smrg 2491943345d3Smrg if test "$linkmode,$pass" = "prog,link"; then 2492943345d3Smrg if test -n "$library_names" && 2493943345d3Smrg { test "$prefer_static_libs" = no || test -z "$old_library"; }; then 2494943345d3Smrg # We need to hardcode the library path 2495943345d3Smrg if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 2496943345d3Smrg # Make sure the rpath contains only unique directories. 2497943345d3Smrg case "$temp_rpath " in 2498943345d3Smrg *" $dir "*) ;; 2499943345d3Smrg *" $absdir "*) ;; 2500943345d3Smrg *) temp_rpath="$temp_rpath $absdir" ;; 2501943345d3Smrg esac 2502943345d3Smrg fi 2503943345d3Smrg 2504943345d3Smrg # Hardcode the library path. 2505943345d3Smrg # Skip directories that are in the system default run-time 2506943345d3Smrg # search path. 2507943345d3Smrg case " $sys_lib_dlsearch_path " in 2508943345d3Smrg *" $absdir "*) ;; 2509943345d3Smrg *) 2510943345d3Smrg case "$compile_rpath " in 2511943345d3Smrg *" $absdir "*) ;; 2512943345d3Smrg *) compile_rpath="$compile_rpath $absdir" 2513943345d3Smrg esac 2514943345d3Smrg ;; 2515943345d3Smrg esac 2516943345d3Smrg case " $sys_lib_dlsearch_path " in 2517943345d3Smrg *" $libdir "*) ;; 2518943345d3Smrg *) 2519943345d3Smrg case "$finalize_rpath " in 2520943345d3Smrg *" $libdir "*) ;; 2521943345d3Smrg *) finalize_rpath="$finalize_rpath $libdir" 2522943345d3Smrg esac 2523943345d3Smrg ;; 2524943345d3Smrg esac 2525943345d3Smrg fi # $linkmode,$pass = prog,link... 2526943345d3Smrg 2527943345d3Smrg if test "$alldeplibs" = yes && 2528943345d3Smrg { test "$deplibs_check_method" = pass_all || 2529943345d3Smrg { test "$build_libtool_libs" = yes && 2530943345d3Smrg test -n "$library_names"; }; }; then 2531943345d3Smrg # We only need to search for static libraries 2532943345d3Smrg continue 2533943345d3Smrg fi 2534943345d3Smrg fi 2535943345d3Smrg 2536943345d3Smrg link_static=no # Whether the deplib will be linked statically 2537943345d3Smrg use_static_libs=$prefer_static_libs 2538943345d3Smrg if test "$use_static_libs" = built && test "$installed" = yes ; then 2539943345d3Smrg use_static_libs=no 2540943345d3Smrg fi 2541943345d3Smrg if test -n "$library_names" && 2542943345d3Smrg { test "$use_static_libs" = no || test -z "$old_library"; }; then 2543943345d3Smrg if test "$installed" = no; then 2544943345d3Smrg notinst_deplibs="$notinst_deplibs $lib" 2545943345d3Smrg need_relink=yes 2546943345d3Smrg fi 2547943345d3Smrg # This is a shared library 2548943345d3Smrg 2549943345d3Smrg # Warn about portability, can't link against -module's on 2550943345d3Smrg # some systems (darwin) 2551943345d3Smrg if test "$shouldnotlink" = yes && test "$pass" = link ; then 2552943345d3Smrg $echo 2553943345d3Smrg if test "$linkmode" = prog; then 2554943345d3Smrg $echo "*** Warning: Linking the executable $output against the loadable module" 2555943345d3Smrg else 2556943345d3Smrg $echo "*** Warning: Linking the shared library $output against the loadable module" 2557943345d3Smrg fi 2558943345d3Smrg $echo "*** $linklib is not portable!" 2559943345d3Smrg fi 2560943345d3Smrg if test "$linkmode" = lib && 2561943345d3Smrg test "$hardcode_into_libs" = yes; then 2562943345d3Smrg # Hardcode the library path. 2563943345d3Smrg # Skip directories that are in the system default run-time 2564943345d3Smrg # search path. 2565943345d3Smrg case " $sys_lib_dlsearch_path " in 2566943345d3Smrg *" $absdir "*) ;; 2567943345d3Smrg *) 2568943345d3Smrg case "$compile_rpath " in 2569943345d3Smrg *" $absdir "*) ;; 2570943345d3Smrg *) compile_rpath="$compile_rpath $absdir" 2571943345d3Smrg esac 2572943345d3Smrg ;; 2573943345d3Smrg esac 2574943345d3Smrg case " $sys_lib_dlsearch_path " in 2575943345d3Smrg *" $libdir "*) ;; 2576943345d3Smrg *) 2577943345d3Smrg case "$finalize_rpath " in 2578943345d3Smrg *" $libdir "*) ;; 2579943345d3Smrg *) finalize_rpath="$finalize_rpath $libdir" 2580943345d3Smrg esac 2581943345d3Smrg ;; 2582943345d3Smrg esac 2583943345d3Smrg fi 2584943345d3Smrg 2585943345d3Smrg if test -n "$old_archive_from_expsyms_cmds"; then 2586943345d3Smrg # figure out the soname 2587943345d3Smrg set dummy $library_names 2588943345d3Smrg realname="$2" 2589943345d3Smrg shift; shift 2590943345d3Smrg libname=`eval \\$echo \"$libname_spec\"` 2591943345d3Smrg # use dlname if we got it. it's perfectly good, no? 2592943345d3Smrg if test -n "$dlname"; then 2593943345d3Smrg soname="$dlname" 2594943345d3Smrg elif test -n "$soname_spec"; then 2595943345d3Smrg # bleh windows 2596943345d3Smrg case $host in 2597943345d3Smrg *cygwin* | mingw*) 2598943345d3Smrg major=`expr $current - $age` 2599943345d3Smrg versuffix="-$major" 2600943345d3Smrg ;; 2601943345d3Smrg esac 2602943345d3Smrg eval soname=\"$soname_spec\" 2603943345d3Smrg else 2604943345d3Smrg soname="$realname" 2605943345d3Smrg fi 2606943345d3Smrg 2607943345d3Smrg # Make a new name for the extract_expsyms_cmds to use 2608943345d3Smrg soroot="$soname" 2609943345d3Smrg soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 2610943345d3Smrg newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 2611943345d3Smrg 2612943345d3Smrg # If the library has no export list, then create one now 2613943345d3Smrg if test -f "$output_objdir/$soname-def"; then : 2614943345d3Smrg else 2615943345d3Smrg $show "extracting exported symbol list from \`$soname'" 2616943345d3Smrg save_ifs="$IFS"; IFS='~' 2617943345d3Smrg cmds=$extract_expsyms_cmds 2618943345d3Smrg for cmd in $cmds; do 2619943345d3Smrg IFS="$save_ifs" 2620943345d3Smrg eval cmd=\"$cmd\" 2621943345d3Smrg $show "$cmd" 2622943345d3Smrg $run eval "$cmd" || exit $? 2623943345d3Smrg done 2624943345d3Smrg IFS="$save_ifs" 2625943345d3Smrg fi 2626943345d3Smrg 2627943345d3Smrg # Create $newlib 2628943345d3Smrg if test -f "$output_objdir/$newlib"; then :; else 2629943345d3Smrg $show "generating import library for \`$soname'" 2630943345d3Smrg save_ifs="$IFS"; IFS='~' 2631943345d3Smrg cmds=$old_archive_from_expsyms_cmds 2632943345d3Smrg for cmd in $cmds; do 2633943345d3Smrg IFS="$save_ifs" 2634943345d3Smrg eval cmd=\"$cmd\" 2635943345d3Smrg $show "$cmd" 2636943345d3Smrg $run eval "$cmd" || exit $? 2637943345d3Smrg done 2638943345d3Smrg IFS="$save_ifs" 2639943345d3Smrg fi 2640943345d3Smrg # make sure the library variables are pointing to the new library 2641943345d3Smrg dir=$output_objdir 2642943345d3Smrg linklib=$newlib 2643943345d3Smrg fi # test -n "$old_archive_from_expsyms_cmds" 2644943345d3Smrg 2645943345d3Smrg if test "$linkmode" = prog || test "$mode" != relink; then 2646943345d3Smrg add_shlibpath= 2647943345d3Smrg add_dir= 2648943345d3Smrg add= 2649943345d3Smrg lib_linked=yes 2650943345d3Smrg case $hardcode_action in 2651943345d3Smrg immediate | unsupported) 2652943345d3Smrg if test "$hardcode_direct" = no; then 2653943345d3Smrg add="$dir/$linklib" 2654943345d3Smrg case $host in 2655943345d3Smrg *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 2656943345d3Smrg *-*-sysv4*uw2*) add_dir="-L$dir" ;; 2657943345d3Smrg *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 2658943345d3Smrg *-*-unixware7*) add_dir="-L$dir" ;; 2659943345d3Smrg *-*-darwin* ) 2660943345d3Smrg # if the lib is a module then we can not link against 2661943345d3Smrg # it, someone is ignoring the new warnings I added 2662943345d3Smrg if /usr/bin/file -L $add 2> /dev/null | 2663943345d3Smrg $EGREP ": [^:]* bundle" >/dev/null ; then 2664943345d3Smrg $echo "** Warning, lib $linklib is a module, not a shared library" 2665943345d3Smrg if test -z "$old_library" ; then 2666943345d3Smrg $echo 2667943345d3Smrg $echo "** And there doesn't seem to be a static archive available" 2668943345d3Smrg $echo "** The link will probably fail, sorry" 2669943345d3Smrg else 2670943345d3Smrg add="$dir/$old_library" 2671943345d3Smrg fi 2672943345d3Smrg fi 2673943345d3Smrg esac 2674943345d3Smrg elif test "$hardcode_minus_L" = no; then 2675943345d3Smrg case $host in 2676943345d3Smrg *-*-sunos*) add_shlibpath="$dir" ;; 2677943345d3Smrg esac 2678943345d3Smrg add_dir="-L$dir" 2679943345d3Smrg add="-l$name" 2680943345d3Smrg elif test "$hardcode_shlibpath_var" = no; then 2681943345d3Smrg add_shlibpath="$dir" 2682943345d3Smrg add="-l$name" 2683943345d3Smrg else 2684943345d3Smrg lib_linked=no 2685943345d3Smrg fi 2686943345d3Smrg ;; 2687943345d3Smrg relink) 2688943345d3Smrg if test "$hardcode_direct" = yes; then 2689943345d3Smrg add="$dir/$linklib" 2690943345d3Smrg elif test "$hardcode_minus_L" = yes; then 2691943345d3Smrg add_dir="-L$dir" 2692943345d3Smrg # Try looking first in the location we're being installed to. 2693943345d3Smrg if test -n "$inst_prefix_dir"; then 2694943345d3Smrg case $libdir in 2695943345d3Smrg [\\/]*) 2696943345d3Smrg add_dir="$add_dir -L$inst_prefix_dir$libdir" 2697943345d3Smrg ;; 2698943345d3Smrg esac 2699943345d3Smrg fi 2700943345d3Smrg add="-l$name" 2701943345d3Smrg elif test "$hardcode_shlibpath_var" = yes; then 2702943345d3Smrg add_shlibpath="$dir" 2703943345d3Smrg add="-l$name" 2704943345d3Smrg else 2705943345d3Smrg lib_linked=no 2706943345d3Smrg fi 2707943345d3Smrg ;; 2708943345d3Smrg *) lib_linked=no ;; 2709943345d3Smrg esac 2710943345d3Smrg 2711943345d3Smrg if test "$lib_linked" != yes; then 2712943345d3Smrg $echo "$modename: configuration error: unsupported hardcode properties" 2713943345d3Smrg exit $EXIT_FAILURE 2714943345d3Smrg fi 2715943345d3Smrg 2716943345d3Smrg if test -n "$add_shlibpath"; then 2717943345d3Smrg case :$compile_shlibpath: in 2718943345d3Smrg *":$add_shlibpath:"*) ;; 2719943345d3Smrg *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 2720943345d3Smrg esac 2721943345d3Smrg fi 2722943345d3Smrg if test "$linkmode" = prog; then 2723943345d3Smrg test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 2724943345d3Smrg test -n "$add" && compile_deplibs="$add $compile_deplibs" 2725943345d3Smrg else 2726943345d3Smrg test -n "$add_dir" && deplibs="$add_dir $deplibs" 2727943345d3Smrg test -n "$add" && deplibs="$add $deplibs" 2728943345d3Smrg if test "$hardcode_direct" != yes && \ 2729943345d3Smrg test "$hardcode_minus_L" != yes && \ 2730943345d3Smrg test "$hardcode_shlibpath_var" = yes; then 2731943345d3Smrg case :$finalize_shlibpath: in 2732943345d3Smrg *":$libdir:"*) ;; 2733943345d3Smrg *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2734943345d3Smrg esac 2735943345d3Smrg fi 2736943345d3Smrg fi 2737943345d3Smrg fi 2738943345d3Smrg 2739943345d3Smrg if test "$linkmode" = prog || test "$mode" = relink; then 2740943345d3Smrg add_shlibpath= 2741943345d3Smrg add_dir= 2742943345d3Smrg add= 2743943345d3Smrg # Finalize command for both is simple: just hardcode it. 2744943345d3Smrg if test "$hardcode_direct" = yes; then 2745943345d3Smrg add="$libdir/$linklib" 2746943345d3Smrg elif test "$hardcode_minus_L" = yes; then 2747943345d3Smrg add_dir="-L$libdir" 2748943345d3Smrg add="-l$name" 2749943345d3Smrg elif test "$hardcode_shlibpath_var" = yes; then 2750943345d3Smrg case :$finalize_shlibpath: in 2751943345d3Smrg *":$libdir:"*) ;; 2752943345d3Smrg *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2753943345d3Smrg esac 2754943345d3Smrg add="-l$name" 2755943345d3Smrg elif test "$hardcode_automatic" = yes; then 2756943345d3Smrg if test -n "$inst_prefix_dir" && 2757943345d3Smrg test -f "$inst_prefix_dir$libdir/$linklib" ; then 2758943345d3Smrg add="$inst_prefix_dir$libdir/$linklib" 2759943345d3Smrg else 2760943345d3Smrg add="$libdir/$linklib" 2761943345d3Smrg fi 2762943345d3Smrg else 2763943345d3Smrg # We cannot seem to hardcode it, guess we'll fake it. 2764943345d3Smrg add_dir="-L$libdir" 2765943345d3Smrg # Try looking first in the location we're being installed to. 2766943345d3Smrg if test -n "$inst_prefix_dir"; then 2767943345d3Smrg case $libdir in 2768943345d3Smrg [\\/]*) 2769943345d3Smrg add_dir="$add_dir -L$inst_prefix_dir$libdir" 2770943345d3Smrg ;; 2771943345d3Smrg esac 2772943345d3Smrg fi 2773943345d3Smrg add="-l$name" 2774943345d3Smrg fi 2775943345d3Smrg 2776943345d3Smrg if test "$linkmode" = prog; then 2777943345d3Smrg test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 2778943345d3Smrg test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 2779943345d3Smrg else 2780943345d3Smrg test -n "$add_dir" && deplibs="$add_dir $deplibs" 2781943345d3Smrg test -n "$add" && deplibs="$add $deplibs" 2782943345d3Smrg fi 2783943345d3Smrg fi 2784943345d3Smrg elif test "$linkmode" = prog; then 2785943345d3Smrg # Here we assume that one of hardcode_direct or hardcode_minus_L 2786943345d3Smrg # is not unsupported. This is valid on all known static and 2787943345d3Smrg # shared platforms. 2788943345d3Smrg if test "$hardcode_direct" != unsupported; then 2789943345d3Smrg test -n "$old_library" && linklib="$old_library" 2790943345d3Smrg compile_deplibs="$dir/$linklib $compile_deplibs" 2791943345d3Smrg finalize_deplibs="$dir/$linklib $finalize_deplibs" 2792943345d3Smrg else 2793943345d3Smrg compile_deplibs="-l$name -L$dir $compile_deplibs" 2794943345d3Smrg finalize_deplibs="-l$name -L$dir $finalize_deplibs" 2795943345d3Smrg fi 2796943345d3Smrg elif test "$build_libtool_libs" = yes; then 2797943345d3Smrg # Not a shared library 2798943345d3Smrg if test "$deplibs_check_method" != pass_all; then 2799943345d3Smrg # We're trying link a shared library against a static one 2800943345d3Smrg # but the system doesn't support it. 2801943345d3Smrg 2802943345d3Smrg # Just print a warning and add the library to dependency_libs so 2803943345d3Smrg # that the program can be linked against the static library. 2804943345d3Smrg $echo 2805943345d3Smrg $echo "*** Warning: This system can not link to static lib archive $lib." 2806943345d3Smrg $echo "*** I have the capability to make that library automatically link in when" 2807943345d3Smrg $echo "*** you link to this library. But I can only do this if you have a" 2808943345d3Smrg $echo "*** shared version of the library, which you do not appear to have." 2809943345d3Smrg if test "$module" = yes; then 2810943345d3Smrg $echo "*** But as you try to build a module library, libtool will still create " 2811943345d3Smrg $echo "*** a static module, that should work as long as the dlopening application" 2812943345d3Smrg $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 2813943345d3Smrg if test -z "$global_symbol_pipe"; then 2814943345d3Smrg $echo 2815943345d3Smrg $echo "*** However, this would only work if libtool was able to extract symbol" 2816943345d3Smrg $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 2817943345d3Smrg $echo "*** not find such a program. So, this module is probably useless." 2818943345d3Smrg $echo "*** \`nm' from GNU binutils and a full rebuild may help." 2819943345d3Smrg fi 2820943345d3Smrg if test "$build_old_libs" = no; then 2821943345d3Smrg build_libtool_libs=module 2822943345d3Smrg build_old_libs=yes 2823943345d3Smrg else 2824943345d3Smrg build_libtool_libs=no 2825943345d3Smrg fi 2826943345d3Smrg fi 2827943345d3Smrg else 2828943345d3Smrg deplibs="$dir/$old_library $deplibs" 2829943345d3Smrg link_static=yes 2830943345d3Smrg fi 2831943345d3Smrg fi # link shared/static library? 2832943345d3Smrg 2833943345d3Smrg if test "$linkmode" = lib; then 2834943345d3Smrg if test -n "$dependency_libs" && 2835943345d3Smrg { test "$hardcode_into_libs" != yes || 2836943345d3Smrg test "$build_old_libs" = yes || 2837943345d3Smrg test "$link_static" = yes; }; then 2838943345d3Smrg # Extract -R from dependency_libs 2839943345d3Smrg temp_deplibs= 2840943345d3Smrg for libdir in $dependency_libs; do 2841943345d3Smrg case $libdir in 2842943345d3Smrg -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 2843943345d3Smrg case " $xrpath " in 2844943345d3Smrg *" $temp_xrpath "*) ;; 2845943345d3Smrg *) xrpath="$xrpath $temp_xrpath";; 2846943345d3Smrg esac;; 2847943345d3Smrg *) temp_deplibs="$temp_deplibs $libdir";; 2848943345d3Smrg esac 2849943345d3Smrg done 2850943345d3Smrg dependency_libs="$temp_deplibs" 2851943345d3Smrg fi 2852943345d3Smrg 2853943345d3Smrg newlib_search_path="$newlib_search_path $absdir" 2854943345d3Smrg # Link against this library 2855943345d3Smrg test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 2856943345d3Smrg # ... and its dependency_libs 2857943345d3Smrg tmp_libs= 2858943345d3Smrg for deplib in $dependency_libs; do 2859943345d3Smrg newdependency_libs="$deplib $newdependency_libs" 2860943345d3Smrg if test "X$duplicate_deps" = "Xyes" ; then 2861943345d3Smrg case "$tmp_libs " in 2862943345d3Smrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2863943345d3Smrg esac 2864943345d3Smrg fi 2865943345d3Smrg tmp_libs="$tmp_libs $deplib" 2866943345d3Smrg done 2867943345d3Smrg 2868943345d3Smrg if test "$link_all_deplibs" != no; then 2869943345d3Smrg # Add the search paths of all dependency libraries 2870943345d3Smrg for deplib in $dependency_libs; do 2871943345d3Smrg case $deplib in 2872943345d3Smrg -L*) path="$deplib" ;; 2873943345d3Smrg *.la) 2874943345d3Smrg dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 2875943345d3Smrg test "X$dir" = "X$deplib" && dir="." 2876943345d3Smrg # We need an absolute path. 2877943345d3Smrg case $dir in 2878943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 2879943345d3Smrg *) 2880943345d3Smrg absdir=`cd "$dir" && pwd` 2881943345d3Smrg if test -z "$absdir"; then 2882943345d3Smrg $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 2883943345d3Smrg absdir="$dir" 2884943345d3Smrg fi 2885943345d3Smrg ;; 2886943345d3Smrg esac 2887943345d3Smrg if grep "^installed=no" $deplib > /dev/null; then 2888943345d3Smrg path="$absdir/$objdir" 2889943345d3Smrg else 2890943345d3Smrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 2891943345d3Smrg if test -z "$libdir"; then 2892943345d3Smrg $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 2893943345d3Smrg exit $EXIT_FAILURE 2894943345d3Smrg fi 2895943345d3Smrg if test "$absdir" != "$libdir"; then 2896943345d3Smrg $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 2897943345d3Smrg fi 2898943345d3Smrg path="$absdir" 2899943345d3Smrg fi 2900943345d3Smrg depdepl= 2901943345d3Smrg case $host in 2902943345d3Smrg *-*-darwin*) 2903943345d3Smrg # we do not want to link against static libs, 2904943345d3Smrg # but need to link against shared 2905943345d3Smrg eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 2906943345d3Smrg if test -n "$deplibrary_names" ; then 2907943345d3Smrg for tmp in $deplibrary_names ; do 2908943345d3Smrg depdepl=$tmp 2909943345d3Smrg done 2910943345d3Smrg if test -f "$path/$depdepl" ; then 2911943345d3Smrg depdepl="$path/$depdepl" 2912943345d3Smrg fi 2913943345d3Smrg # do not add paths which are already there 2914943345d3Smrg case " $newlib_search_path " in 2915943345d3Smrg *" $path "*) ;; 2916943345d3Smrg *) newlib_search_path="$newlib_search_path $path";; 2917943345d3Smrg esac 2918943345d3Smrg fi 2919943345d3Smrg path="" 2920943345d3Smrg ;; 2921943345d3Smrg *) 2922943345d3Smrg path="-L$path" 2923943345d3Smrg ;; 2924943345d3Smrg esac 2925943345d3Smrg ;; 2926943345d3Smrg -l*) 2927943345d3Smrg case $host in 2928943345d3Smrg *-*-darwin*) 2929943345d3Smrg # Again, we only want to link against shared libraries 2930943345d3Smrg eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 2931943345d3Smrg for tmp in $newlib_search_path ; do 2932943345d3Smrg if test -f "$tmp/lib$tmp_libs.dylib" ; then 2933943345d3Smrg eval depdepl="$tmp/lib$tmp_libs.dylib" 2934943345d3Smrg break 2935943345d3Smrg fi 2936943345d3Smrg done 2937943345d3Smrg path="" 2938943345d3Smrg ;; 2939943345d3Smrg *) continue ;; 2940943345d3Smrg esac 2941943345d3Smrg ;; 2942943345d3Smrg *) continue ;; 2943943345d3Smrg esac 2944943345d3Smrg case " $deplibs " in 2945943345d3Smrg *" $path "*) ;; 2946943345d3Smrg *) deplibs="$path $deplibs" ;; 2947943345d3Smrg esac 2948943345d3Smrg case " $deplibs " in 2949943345d3Smrg *" $depdepl "*) ;; 2950943345d3Smrg *) deplibs="$depdepl $deplibs" ;; 2951943345d3Smrg esac 2952943345d3Smrg done 2953943345d3Smrg fi # link_all_deplibs != no 2954943345d3Smrg fi # linkmode = lib 2955943345d3Smrg done # for deplib in $libs 2956943345d3Smrg dependency_libs="$newdependency_libs" 2957943345d3Smrg if test "$pass" = dlpreopen; then 2958943345d3Smrg # Link the dlpreopened libraries before other libraries 2959943345d3Smrg for deplib in $save_deplibs; do 2960943345d3Smrg deplibs="$deplib $deplibs" 2961943345d3Smrg done 2962943345d3Smrg fi 2963943345d3Smrg if test "$pass" != dlopen; then 2964943345d3Smrg if test "$pass" != conv; then 2965943345d3Smrg # Make sure lib_search_path contains only unique directories. 2966943345d3Smrg lib_search_path= 2967943345d3Smrg for dir in $newlib_search_path; do 2968943345d3Smrg case "$lib_search_path " in 2969943345d3Smrg *" $dir "*) ;; 2970943345d3Smrg *) lib_search_path="$lib_search_path $dir" ;; 2971943345d3Smrg esac 2972943345d3Smrg done 2973943345d3Smrg newlib_search_path= 2974943345d3Smrg fi 2975943345d3Smrg 2976943345d3Smrg if test "$linkmode,$pass" != "prog,link"; then 2977943345d3Smrg vars="deplibs" 2978943345d3Smrg else 2979943345d3Smrg vars="compile_deplibs finalize_deplibs" 2980943345d3Smrg fi 2981943345d3Smrg for var in $vars dependency_libs; do 2982943345d3Smrg # Add libraries to $var in reverse order 2983943345d3Smrg eval tmp_libs=\"\$$var\" 2984943345d3Smrg new_libs= 2985943345d3Smrg for deplib in $tmp_libs; do 2986943345d3Smrg # FIXME: Pedantically, this is the right thing to do, so 2987943345d3Smrg # that some nasty dependency loop isn't accidentally 2988943345d3Smrg # broken: 2989943345d3Smrg #new_libs="$deplib $new_libs" 2990943345d3Smrg # Pragmatically, this seems to cause very few problems in 2991943345d3Smrg # practice: 2992943345d3Smrg case $deplib in 2993943345d3Smrg -L*) new_libs="$deplib $new_libs" ;; 2994943345d3Smrg -R*) ;; 2995943345d3Smrg *) 2996943345d3Smrg # And here is the reason: when a library appears more 2997943345d3Smrg # than once as an explicit dependence of a library, or 2998943345d3Smrg # is implicitly linked in more than once by the 2999943345d3Smrg # compiler, it is considered special, and multiple 3000943345d3Smrg # occurrences thereof are not removed. Compare this 3001943345d3Smrg # with having the same library being listed as a 3002943345d3Smrg # dependency of multiple other libraries: in this case, 3003943345d3Smrg # we know (pedantically, we assume) the library does not 3004943345d3Smrg # need to be listed more than once, so we keep only the 3005943345d3Smrg # last copy. This is not always right, but it is rare 3006943345d3Smrg # enough that we require users that really mean to play 3007943345d3Smrg # such unportable linking tricks to link the library 3008943345d3Smrg # using -Wl,-lname, so that libtool does not consider it 3009943345d3Smrg # for duplicate removal. 3010943345d3Smrg case " $specialdeplibs " in 3011943345d3Smrg *" $deplib "*) new_libs="$deplib $new_libs" ;; 3012943345d3Smrg *) 3013943345d3Smrg case " $new_libs " in 3014943345d3Smrg *" $deplib "*) ;; 3015943345d3Smrg *) new_libs="$deplib $new_libs" ;; 3016943345d3Smrg esac 3017943345d3Smrg ;; 3018943345d3Smrg esac 3019943345d3Smrg ;; 3020943345d3Smrg esac 3021943345d3Smrg done 3022943345d3Smrg tmp_libs= 3023943345d3Smrg for deplib in $new_libs; do 3024943345d3Smrg case $deplib in 3025943345d3Smrg -L*) 3026943345d3Smrg case " $tmp_libs " in 3027943345d3Smrg *" $deplib "*) ;; 3028943345d3Smrg *) tmp_libs="$tmp_libs $deplib" ;; 3029943345d3Smrg esac 3030943345d3Smrg ;; 3031943345d3Smrg *) tmp_libs="$tmp_libs $deplib" ;; 3032943345d3Smrg esac 3033943345d3Smrg done 3034943345d3Smrg eval $var=\"$tmp_libs\" 3035943345d3Smrg done # for var 3036943345d3Smrg fi 3037943345d3Smrg # Last step: remove runtime libs from dependency_libs 3038943345d3Smrg # (they stay in deplibs) 3039943345d3Smrg tmp_libs= 3040943345d3Smrg for i in $dependency_libs ; do 3041943345d3Smrg case " $predeps $postdeps $compiler_lib_search_path " in 3042943345d3Smrg *" $i "*) 3043943345d3Smrg i="" 3044943345d3Smrg ;; 3045943345d3Smrg esac 3046943345d3Smrg if test -n "$i" ; then 3047943345d3Smrg tmp_libs="$tmp_libs $i" 3048943345d3Smrg fi 3049943345d3Smrg done 3050943345d3Smrg dependency_libs=$tmp_libs 3051943345d3Smrg done # for pass 3052943345d3Smrg if test "$linkmode" = prog; then 3053943345d3Smrg dlfiles="$newdlfiles" 3054943345d3Smrg dlprefiles="$newdlprefiles" 3055943345d3Smrg fi 3056943345d3Smrg 3057943345d3Smrg case $linkmode in 3058943345d3Smrg oldlib) 3059943345d3Smrg if test -n "$deplibs"; then 3060943345d3Smrg $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 3061943345d3Smrg fi 3062943345d3Smrg 3063943345d3Smrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 3064943345d3Smrg $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 3065943345d3Smrg fi 3066943345d3Smrg 3067943345d3Smrg if test -n "$rpath"; then 3068943345d3Smrg $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 3069943345d3Smrg fi 3070943345d3Smrg 3071943345d3Smrg if test -n "$xrpath"; then 3072943345d3Smrg $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 3073943345d3Smrg fi 3074943345d3Smrg 3075943345d3Smrg if test -n "$vinfo"; then 3076943345d3Smrg $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 3077943345d3Smrg fi 3078943345d3Smrg 3079943345d3Smrg if test -n "$release"; then 3080943345d3Smrg $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 3081943345d3Smrg fi 3082943345d3Smrg 3083943345d3Smrg if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 3084943345d3Smrg $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 3085943345d3Smrg fi 3086943345d3Smrg 3087943345d3Smrg # Now set the variables for building old libraries. 3088943345d3Smrg build_libtool_libs=no 3089943345d3Smrg oldlibs="$output" 3090943345d3Smrg objs="$objs$old_deplibs" 3091943345d3Smrg ;; 3092943345d3Smrg 3093943345d3Smrg lib) 3094943345d3Smrg # Make sure we only generate libraries of the form `libNAME.la'. 3095943345d3Smrg case $outputname in 3096943345d3Smrg lib*) 3097943345d3Smrg name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 3098943345d3Smrg eval shared_ext=\"$shrext_cmds\" 3099943345d3Smrg eval libname=\"$libname_spec\" 3100943345d3Smrg ;; 3101943345d3Smrg *) 3102943345d3Smrg if test "$module" = no; then 3103943345d3Smrg $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 3104943345d3Smrg $echo "$help" 1>&2 3105943345d3Smrg exit $EXIT_FAILURE 3106943345d3Smrg fi 3107943345d3Smrg if test "$need_lib_prefix" != no; then 3108943345d3Smrg # Add the "lib" prefix for modules if required 3109943345d3Smrg name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3110943345d3Smrg eval shared_ext=\"$shrext_cmds\" 3111943345d3Smrg eval libname=\"$libname_spec\" 3112943345d3Smrg else 3113943345d3Smrg libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3114943345d3Smrg fi 3115943345d3Smrg ;; 3116943345d3Smrg esac 3117943345d3Smrg 3118943345d3Smrg if test -n "$objs"; then 3119943345d3Smrg if test "$deplibs_check_method" != pass_all; then 3120943345d3Smrg $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 3121943345d3Smrg exit $EXIT_FAILURE 3122943345d3Smrg else 3123943345d3Smrg $echo 3124943345d3Smrg $echo "*** Warning: Linking the shared library $output against the non-libtool" 3125943345d3Smrg $echo "*** objects $objs is not portable!" 3126943345d3Smrg libobjs="$libobjs $objs" 3127943345d3Smrg fi 3128943345d3Smrg fi 3129943345d3Smrg 3130943345d3Smrg if test "$dlself" != no; then 3131943345d3Smrg $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 3132943345d3Smrg fi 3133943345d3Smrg 3134943345d3Smrg set dummy $rpath 3135943345d3Smrg if test "$#" -gt 2; then 3136943345d3Smrg $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 3137943345d3Smrg fi 3138943345d3Smrg install_libdir="$2" 3139943345d3Smrg 3140943345d3Smrg oldlibs= 3141943345d3Smrg if test -z "$rpath"; then 3142943345d3Smrg if test "$build_libtool_libs" = yes; then 3143943345d3Smrg # Building a libtool convenience library. 3144943345d3Smrg # Some compilers have problems with a `.al' extension so 3145943345d3Smrg # convenience libraries should have the same extension an 3146943345d3Smrg # archive normally would. 3147943345d3Smrg oldlibs="$output_objdir/$libname.$libext $oldlibs" 3148943345d3Smrg build_libtool_libs=convenience 3149943345d3Smrg build_old_libs=yes 3150943345d3Smrg fi 3151943345d3Smrg 3152943345d3Smrg if test -n "$vinfo"; then 3153943345d3Smrg $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 3154943345d3Smrg fi 3155943345d3Smrg 3156943345d3Smrg if test -n "$release"; then 3157943345d3Smrg $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 3158943345d3Smrg fi 3159943345d3Smrg else 3160943345d3Smrg 3161943345d3Smrg # Parse the version information argument. 3162943345d3Smrg save_ifs="$IFS"; IFS=':' 3163943345d3Smrg set dummy $vinfo 0 0 0 3164943345d3Smrg IFS="$save_ifs" 3165943345d3Smrg 3166943345d3Smrg if test -n "$8"; then 3167943345d3Smrg $echo "$modename: too many parameters to \`-version-info'" 1>&2 3168943345d3Smrg $echo "$help" 1>&2 3169943345d3Smrg exit $EXIT_FAILURE 3170943345d3Smrg fi 3171943345d3Smrg 3172943345d3Smrg # convert absolute version numbers to libtool ages 3173943345d3Smrg # this retains compatibility with .la files and attempts 3174943345d3Smrg # to make the code below a bit more comprehensible 3175943345d3Smrg 3176943345d3Smrg case $vinfo_number in 3177943345d3Smrg yes) 3178943345d3Smrg number_major="$2" 3179943345d3Smrg number_minor="$3" 3180943345d3Smrg number_revision="$4" 3181943345d3Smrg # 3182943345d3Smrg # There are really only two kinds -- those that 3183943345d3Smrg # use the current revision as the major version 3184943345d3Smrg # and those that subtract age and use age as 3185943345d3Smrg # a minor version. But, then there is irix 3186943345d3Smrg # which has an extra 1 added just for fun 3187943345d3Smrg # 3188943345d3Smrg case $version_type in 3189943345d3Smrg darwin|linux|osf|windows) 3190943345d3Smrg current=`expr $number_major + $number_minor` 3191943345d3Smrg age="$number_minor" 3192943345d3Smrg revision="$number_revision" 3193943345d3Smrg ;; 3194943345d3Smrg freebsd-aout|freebsd-elf|sunos) 3195943345d3Smrg current="$number_major" 3196943345d3Smrg revision="$number_minor" 3197943345d3Smrg age="0" 3198943345d3Smrg ;; 3199943345d3Smrg irix|nonstopux) 3200943345d3Smrg current=`expr $number_major + $number_minor - 1` 3201943345d3Smrg age="$number_minor" 3202943345d3Smrg revision="$number_minor" 3203943345d3Smrg ;; 3204943345d3Smrg esac 3205943345d3Smrg ;; 3206943345d3Smrg no) 3207943345d3Smrg current="$2" 3208943345d3Smrg revision="$3" 3209943345d3Smrg age="$4" 3210943345d3Smrg ;; 3211943345d3Smrg esac 3212943345d3Smrg 3213943345d3Smrg # Check that each of the things are valid numbers. 3214943345d3Smrg case $current in 3215943345d3Smrg 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]) ;; 3216943345d3Smrg *) 3217943345d3Smrg $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 3218943345d3Smrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3219943345d3Smrg exit $EXIT_FAILURE 3220943345d3Smrg ;; 3221943345d3Smrg esac 3222943345d3Smrg 3223943345d3Smrg case $revision in 3224943345d3Smrg 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]) ;; 3225943345d3Smrg *) 3226943345d3Smrg $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 3227943345d3Smrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3228943345d3Smrg exit $EXIT_FAILURE 3229943345d3Smrg ;; 3230943345d3Smrg esac 3231943345d3Smrg 3232943345d3Smrg case $age in 3233943345d3Smrg 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]) ;; 3234943345d3Smrg *) 3235943345d3Smrg $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 3236943345d3Smrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3237943345d3Smrg exit $EXIT_FAILURE 3238943345d3Smrg ;; 3239943345d3Smrg esac 3240943345d3Smrg 3241943345d3Smrg if test "$age" -gt "$current"; then 3242943345d3Smrg $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 3243943345d3Smrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3244943345d3Smrg exit $EXIT_FAILURE 3245943345d3Smrg fi 3246943345d3Smrg 3247943345d3Smrg # Calculate the version variables. 3248943345d3Smrg major= 3249943345d3Smrg versuffix= 3250943345d3Smrg verstring= 3251943345d3Smrg case $version_type in 3252943345d3Smrg none) ;; 3253943345d3Smrg 3254943345d3Smrg darwin) 3255943345d3Smrg # Like Linux, but with the current version available in 3256943345d3Smrg # verstring for coding it into the library header 3257943345d3Smrg major=.`expr $current - $age` 3258943345d3Smrg versuffix="$major.$age.$revision" 3259943345d3Smrg # Darwin ld doesn't like 0 for these options... 3260943345d3Smrg minor_current=`expr $current + 1` 3261943345d3Smrg verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 3262943345d3Smrg ;; 3263943345d3Smrg 3264943345d3Smrg freebsd-aout) 3265943345d3Smrg major=".$current" 3266943345d3Smrg versuffix=".$current.$revision"; 3267943345d3Smrg ;; 3268943345d3Smrg 3269943345d3Smrg freebsd-elf) 3270943345d3Smrg major=".$current" 3271943345d3Smrg versuffix=".$current"; 3272943345d3Smrg ;; 3273943345d3Smrg 3274943345d3Smrg irix | nonstopux) 3275943345d3Smrg major=`expr $current - $age + 1` 3276943345d3Smrg 3277943345d3Smrg case $version_type in 3278943345d3Smrg nonstopux) verstring_prefix=nonstopux ;; 3279943345d3Smrg *) verstring_prefix=sgi ;; 3280943345d3Smrg esac 3281943345d3Smrg verstring="$verstring_prefix$major.$revision" 3282943345d3Smrg 3283943345d3Smrg # Add in all the interfaces that we are compatible with. 3284943345d3Smrg loop=$revision 3285943345d3Smrg while test "$loop" -ne 0; do 3286943345d3Smrg iface=`expr $revision - $loop` 3287943345d3Smrg loop=`expr $loop - 1` 3288943345d3Smrg verstring="$verstring_prefix$major.$iface:$verstring" 3289943345d3Smrg done 3290943345d3Smrg 3291943345d3Smrg # Before this point, $major must not contain `.'. 3292943345d3Smrg major=.$major 3293943345d3Smrg versuffix="$major.$revision" 3294943345d3Smrg ;; 3295943345d3Smrg 3296943345d3Smrg linux) 3297943345d3Smrg major=.`expr $current - $age` 3298943345d3Smrg versuffix="$major.$age.$revision" 3299943345d3Smrg ;; 3300943345d3Smrg 3301943345d3Smrg osf) 3302943345d3Smrg major=.`expr $current - $age` 3303943345d3Smrg versuffix=".$current.$age.$revision" 3304943345d3Smrg verstring="$current.$age.$revision" 3305943345d3Smrg 3306943345d3Smrg # Add in all the interfaces that we are compatible with. 3307943345d3Smrg loop=$age 3308943345d3Smrg while test "$loop" -ne 0; do 3309943345d3Smrg iface=`expr $current - $loop` 3310943345d3Smrg loop=`expr $loop - 1` 3311943345d3Smrg verstring="$verstring:${iface}.0" 3312943345d3Smrg done 3313943345d3Smrg 3314943345d3Smrg # Make executables depend on our current version. 3315943345d3Smrg verstring="$verstring:${current}.0" 3316943345d3Smrg ;; 3317943345d3Smrg 3318943345d3Smrg sunos) 3319943345d3Smrg major=".$current" 3320943345d3Smrg versuffix=".$current.$revision" 3321943345d3Smrg ;; 3322943345d3Smrg 3323943345d3Smrg windows) 3324943345d3Smrg # Use '-' rather than '.', since we only want one 3325943345d3Smrg # extension on DOS 8.3 filesystems. 3326943345d3Smrg major=`expr $current - $age` 3327943345d3Smrg versuffix="-$major" 3328943345d3Smrg ;; 3329943345d3Smrg 3330943345d3Smrg *) 3331943345d3Smrg $echo "$modename: unknown library version type \`$version_type'" 1>&2 3332943345d3Smrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3333943345d3Smrg exit $EXIT_FAILURE 3334943345d3Smrg ;; 3335943345d3Smrg esac 3336943345d3Smrg 3337943345d3Smrg # Clear the version info if we defaulted, and they specified a release. 3338943345d3Smrg if test -z "$vinfo" && test -n "$release"; then 3339943345d3Smrg major= 3340943345d3Smrg case $version_type in 3341943345d3Smrg darwin) 3342943345d3Smrg # we can't check for "0.0" in archive_cmds due to quoting 3343943345d3Smrg # problems, so we reset it completely 3344943345d3Smrg verstring= 3345943345d3Smrg ;; 3346943345d3Smrg *) 3347943345d3Smrg verstring="0.0" 3348943345d3Smrg ;; 3349943345d3Smrg esac 3350943345d3Smrg if test "$need_version" = no; then 3351943345d3Smrg versuffix= 3352943345d3Smrg else 3353943345d3Smrg versuffix=".0.0" 3354943345d3Smrg fi 3355943345d3Smrg fi 3356943345d3Smrg 3357943345d3Smrg # Remove version info from name if versioning should be avoided 3358943345d3Smrg if test "$avoid_version" = yes && test "$need_version" = no; then 3359943345d3Smrg major= 3360943345d3Smrg versuffix= 3361943345d3Smrg verstring="" 3362943345d3Smrg fi 3363943345d3Smrg 3364943345d3Smrg # Check to see if the archive will have undefined symbols. 3365943345d3Smrg if test "$allow_undefined" = yes; then 3366943345d3Smrg if test "$allow_undefined_flag" = unsupported; then 3367943345d3Smrg $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 3368943345d3Smrg build_libtool_libs=no 3369943345d3Smrg build_old_libs=yes 3370943345d3Smrg fi 3371943345d3Smrg else 3372943345d3Smrg # Don't allow undefined symbols. 3373943345d3Smrg allow_undefined_flag="$no_undefined_flag" 3374943345d3Smrg fi 3375943345d3Smrg fi 3376943345d3Smrg 3377943345d3Smrg if test "$mode" != relink; then 3378943345d3Smrg # Remove our outputs, but don't remove object files since they 3379943345d3Smrg # may have been created when compiling PIC objects. 3380943345d3Smrg removelist= 3381943345d3Smrg tempremovelist=`$echo "$output_objdir/*"` 3382943345d3Smrg for p in $tempremovelist; do 3383943345d3Smrg case $p in 3384943345d3Smrg *.$objext) 3385943345d3Smrg ;; 3386943345d3Smrg $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 3387943345d3Smrg if test "X$precious_files_regex" != "X"; then 3388943345d3Smrg if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 3389943345d3Smrg then 3390943345d3Smrg continue 3391943345d3Smrg fi 3392943345d3Smrg fi 3393943345d3Smrg removelist="$removelist $p" 3394943345d3Smrg ;; 3395943345d3Smrg *) ;; 3396943345d3Smrg esac 3397943345d3Smrg done 3398943345d3Smrg if test -n "$removelist"; then 3399943345d3Smrg $show "${rm}r $removelist" 3400943345d3Smrg $run ${rm}r $removelist 3401943345d3Smrg fi 3402943345d3Smrg fi 3403943345d3Smrg 3404943345d3Smrg # Now set the variables for building old libraries. 3405943345d3Smrg if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 3406943345d3Smrg oldlibs="$oldlibs $output_objdir/$libname.$libext" 3407943345d3Smrg 3408943345d3Smrg # Transform .lo files to .o files. 3409943345d3Smrg oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 3410943345d3Smrg fi 3411943345d3Smrg 3412943345d3Smrg # Eliminate all temporary directories. 3413943345d3Smrg for path in $notinst_path; do 3414943345d3Smrg lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 3415943345d3Smrg deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 3416943345d3Smrg dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 3417943345d3Smrg done 3418943345d3Smrg 3419943345d3Smrg if test -n "$xrpath"; then 3420943345d3Smrg # If the user specified any rpath flags, then add them. 3421943345d3Smrg temp_xrpath= 3422943345d3Smrg for libdir in $xrpath; do 3423943345d3Smrg temp_xrpath="$temp_xrpath -R$libdir" 3424943345d3Smrg case "$finalize_rpath " in 3425943345d3Smrg *" $libdir "*) ;; 3426943345d3Smrg *) finalize_rpath="$finalize_rpath $libdir" ;; 3427943345d3Smrg esac 3428943345d3Smrg done 3429943345d3Smrg if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 3430943345d3Smrg dependency_libs="$temp_xrpath $dependency_libs" 3431943345d3Smrg fi 3432943345d3Smrg fi 3433943345d3Smrg 3434943345d3Smrg # Make sure dlfiles contains only unique files that won't be dlpreopened 3435943345d3Smrg old_dlfiles="$dlfiles" 3436943345d3Smrg dlfiles= 3437943345d3Smrg for lib in $old_dlfiles; do 3438943345d3Smrg case " $dlprefiles $dlfiles " in 3439943345d3Smrg *" $lib "*) ;; 3440943345d3Smrg *) dlfiles="$dlfiles $lib" ;; 3441943345d3Smrg esac 3442943345d3Smrg done 3443943345d3Smrg 3444943345d3Smrg # Make sure dlprefiles contains only unique files 3445943345d3Smrg old_dlprefiles="$dlprefiles" 3446943345d3Smrg dlprefiles= 3447943345d3Smrg for lib in $old_dlprefiles; do 3448943345d3Smrg case "$dlprefiles " in 3449943345d3Smrg *" $lib "*) ;; 3450943345d3Smrg *) dlprefiles="$dlprefiles $lib" ;; 3451943345d3Smrg esac 3452943345d3Smrg done 3453943345d3Smrg 3454943345d3Smrg if test "$build_libtool_libs" = yes; then 3455943345d3Smrg if test -n "$rpath"; then 3456943345d3Smrg case $host in 3457943345d3Smrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 3458943345d3Smrg # these systems don't actually have a c library (as such)! 3459943345d3Smrg ;; 3460943345d3Smrg *-*-rhapsody* | *-*-darwin1.[012]) 3461943345d3Smrg # Rhapsody C library is in the System framework 3462943345d3Smrg deplibs="$deplibs -framework System" 3463943345d3Smrg ;; 3464943345d3Smrg *-*-netbsd*) 3465943345d3Smrg # Don't link with libc until the a.out ld.so is fixed. 3466943345d3Smrg ;; 3467943345d3Smrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 3468943345d3Smrg # Do not include libc due to us having libc/libc_r. 3469943345d3Smrg ;; 3470943345d3Smrg *-*-sco3.2v5* | *-*-sco5v6*) 3471943345d3Smrg # Causes problems with __ctype 3472943345d3Smrg ;; 3473943345d3Smrg *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 3474943345d3Smrg # Compiler inserts libc in the correct place for threads to work 3475943345d3Smrg ;; 3476943345d3Smrg *) 3477943345d3Smrg # Add libc to deplibs on all other systems if necessary. 3478943345d3Smrg if test "$build_libtool_need_lc" = "yes"; then 3479943345d3Smrg deplibs="$deplibs -lc" 3480943345d3Smrg fi 3481943345d3Smrg ;; 3482943345d3Smrg esac 3483943345d3Smrg fi 3484943345d3Smrg 3485943345d3Smrg # Transform deplibs into only deplibs that can be linked in shared. 3486943345d3Smrg name_save=$name 3487943345d3Smrg libname_save=$libname 3488943345d3Smrg release_save=$release 3489943345d3Smrg versuffix_save=$versuffix 3490943345d3Smrg major_save=$major 3491943345d3Smrg # I'm not sure if I'm treating the release correctly. I think 3492943345d3Smrg # release should show up in the -l (ie -lgmp5) so we don't want to 3493943345d3Smrg # add it in twice. Is that correct? 3494943345d3Smrg release="" 3495943345d3Smrg versuffix="" 3496943345d3Smrg major="" 3497943345d3Smrg newdeplibs= 3498943345d3Smrg droppeddeps=no 3499943345d3Smrg case $deplibs_check_method in 3500943345d3Smrg pass_all) 3501943345d3Smrg # Don't check for shared/static. Everything works. 3502943345d3Smrg # This might be a little naive. We might want to check 3503943345d3Smrg # whether the library exists or not. But this is on 3504943345d3Smrg # osf3 & osf4 and I'm not really sure... Just 3505943345d3Smrg # implementing what was already the behavior. 3506943345d3Smrg newdeplibs=$deplibs 3507943345d3Smrg ;; 3508943345d3Smrg test_compile) 3509943345d3Smrg # This code stresses the "libraries are programs" paradigm to its 3510943345d3Smrg # limits. Maybe even breaks it. We compile a program, linking it 3511943345d3Smrg # against the deplibs as a proxy for the library. Then we can check 3512943345d3Smrg # whether they linked in statically or dynamically with ldd. 3513943345d3Smrg $rm conftest.c 3514943345d3Smrg cat > conftest.c <<EOF 3515943345d3Smrg int main() { return 0; } 3516943345d3SmrgEOF 3517943345d3Smrg $rm conftest 3518943345d3Smrg $LTCC $LTCFLAGS -o conftest conftest.c $deplibs 3519943345d3Smrg if test "$?" -eq 0 ; then 3520943345d3Smrg ldd_output=`ldd conftest` 3521943345d3Smrg for i in $deplibs; do 3522943345d3Smrg name=`expr $i : '-l\(.*\)'` 3523943345d3Smrg # If $name is empty we are operating on a -L argument. 3524943345d3Smrg if test "$name" != "" && test "$name" -ne "0"; then 3525943345d3Smrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3526943345d3Smrg case " $predeps $postdeps " in 3527943345d3Smrg *" $i "*) 3528943345d3Smrg newdeplibs="$newdeplibs $i" 3529943345d3Smrg i="" 3530943345d3Smrg ;; 3531943345d3Smrg esac 3532943345d3Smrg fi 3533943345d3Smrg if test -n "$i" ; then 3534943345d3Smrg libname=`eval \\$echo \"$libname_spec\"` 3535943345d3Smrg deplib_matches=`eval \\$echo \"$library_names_spec\"` 3536943345d3Smrg set dummy $deplib_matches 3537943345d3Smrg deplib_match=$2 3538943345d3Smrg if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3539943345d3Smrg newdeplibs="$newdeplibs $i" 3540943345d3Smrg else 3541943345d3Smrg droppeddeps=yes 3542943345d3Smrg $echo 3543943345d3Smrg $echo "*** Warning: dynamic linker does not accept needed library $i." 3544943345d3Smrg $echo "*** I have the capability to make that library automatically link in when" 3545943345d3Smrg $echo "*** you link to this library. But I can only do this if you have a" 3546943345d3Smrg $echo "*** shared version of the library, which I believe you do not have" 3547943345d3Smrg $echo "*** because a test_compile did reveal that the linker did not use it for" 3548943345d3Smrg $echo "*** its dynamic dependency list that programs get resolved with at runtime." 3549943345d3Smrg fi 3550943345d3Smrg fi 3551943345d3Smrg else 3552943345d3Smrg newdeplibs="$newdeplibs $i" 3553943345d3Smrg fi 3554943345d3Smrg done 3555943345d3Smrg else 3556943345d3Smrg # Error occurred in the first compile. Let's try to salvage 3557943345d3Smrg # the situation: Compile a separate program for each library. 3558943345d3Smrg for i in $deplibs; do 3559943345d3Smrg name=`expr $i : '-l\(.*\)'` 3560943345d3Smrg # If $name is empty we are operating on a -L argument. 3561943345d3Smrg if test "$name" != "" && test "$name" != "0"; then 3562943345d3Smrg $rm conftest 3563943345d3Smrg $LTCC $LTCFLAGS -o conftest conftest.c $i 3564943345d3Smrg # Did it work? 3565943345d3Smrg if test "$?" -eq 0 ; then 3566943345d3Smrg ldd_output=`ldd conftest` 3567943345d3Smrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3568943345d3Smrg case " $predeps $postdeps " in 3569943345d3Smrg *" $i "*) 3570943345d3Smrg newdeplibs="$newdeplibs $i" 3571943345d3Smrg i="" 3572943345d3Smrg ;; 3573943345d3Smrg esac 3574943345d3Smrg fi 3575943345d3Smrg if test -n "$i" ; then 3576943345d3Smrg libname=`eval \\$echo \"$libname_spec\"` 3577943345d3Smrg deplib_matches=`eval \\$echo \"$library_names_spec\"` 3578943345d3Smrg set dummy $deplib_matches 3579943345d3Smrg deplib_match=$2 3580943345d3Smrg if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3581943345d3Smrg newdeplibs="$newdeplibs $i" 3582943345d3Smrg else 3583943345d3Smrg droppeddeps=yes 3584943345d3Smrg $echo 3585943345d3Smrg $echo "*** Warning: dynamic linker does not accept needed library $i." 3586943345d3Smrg $echo "*** I have the capability to make that library automatically link in when" 3587943345d3Smrg $echo "*** you link to this library. But I can only do this if you have a" 3588943345d3Smrg $echo "*** shared version of the library, which you do not appear to have" 3589943345d3Smrg $echo "*** because a test_compile did reveal that the linker did not use this one" 3590943345d3Smrg $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 3591943345d3Smrg fi 3592943345d3Smrg fi 3593943345d3Smrg else 3594943345d3Smrg droppeddeps=yes 3595943345d3Smrg $echo 3596943345d3Smrg $echo "*** Warning! Library $i is needed by this library but I was not able to" 3597943345d3Smrg $echo "*** make it link in! You will probably need to install it or some" 3598943345d3Smrg $echo "*** library that it depends on before this library will be fully" 3599943345d3Smrg $echo "*** functional. Installing it before continuing would be even better." 3600943345d3Smrg fi 3601943345d3Smrg else 3602943345d3Smrg newdeplibs="$newdeplibs $i" 3603943345d3Smrg fi 3604943345d3Smrg done 3605943345d3Smrg fi 3606943345d3Smrg ;; 3607943345d3Smrg file_magic*) 3608943345d3Smrg set dummy $deplibs_check_method 3609943345d3Smrg file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3610943345d3Smrg for a_deplib in $deplibs; do 3611943345d3Smrg name=`expr $a_deplib : '-l\(.*\)'` 3612943345d3Smrg # If $name is empty we are operating on a -L argument. 3613943345d3Smrg if test "$name" != "" && test "$name" != "0"; then 3614943345d3Smrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3615943345d3Smrg case " $predeps $postdeps " in 3616943345d3Smrg *" $a_deplib "*) 3617943345d3Smrg newdeplibs="$newdeplibs $a_deplib" 3618943345d3Smrg a_deplib="" 3619943345d3Smrg ;; 3620943345d3Smrg esac 3621943345d3Smrg fi 3622943345d3Smrg if test -n "$a_deplib" ; then 3623943345d3Smrg libname=`eval \\$echo \"$libname_spec\"` 3624943345d3Smrg for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3625943345d3Smrg potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3626943345d3Smrg for potent_lib in $potential_libs; do 3627943345d3Smrg # Follow soft links. 3628943345d3Smrg if ls -lLd "$potent_lib" 2>/dev/null \ 3629943345d3Smrg | grep " -> " >/dev/null; then 3630943345d3Smrg continue 3631943345d3Smrg fi 3632943345d3Smrg # The statement above tries to avoid entering an 3633943345d3Smrg # endless loop below, in case of cyclic links. 3634943345d3Smrg # We might still enter an endless loop, since a link 3635943345d3Smrg # loop can be closed while we follow links, 3636943345d3Smrg # but so what? 3637943345d3Smrg potlib="$potent_lib" 3638943345d3Smrg while test -h "$potlib" 2>/dev/null; do 3639943345d3Smrg potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 3640943345d3Smrg case $potliblink in 3641943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 3642943345d3Smrg *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 3643943345d3Smrg esac 3644943345d3Smrg done 3645943345d3Smrg if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 3646943345d3Smrg | ${SED} 10q \ 3647943345d3Smrg | $EGREP "$file_magic_regex" > /dev/null; then 3648943345d3Smrg newdeplibs="$newdeplibs $a_deplib" 3649943345d3Smrg a_deplib="" 3650943345d3Smrg break 2 3651943345d3Smrg fi 3652943345d3Smrg done 3653943345d3Smrg done 3654943345d3Smrg fi 3655943345d3Smrg if test -n "$a_deplib" ; then 3656943345d3Smrg droppeddeps=yes 3657943345d3Smrg $echo 3658943345d3Smrg $echo "*** Warning: linker path does not have real file for library $a_deplib." 3659943345d3Smrg $echo "*** I have the capability to make that library automatically link in when" 3660943345d3Smrg $echo "*** you link to this library. But I can only do this if you have a" 3661943345d3Smrg $echo "*** shared version of the library, which you do not appear to have" 3662943345d3Smrg $echo "*** because I did check the linker path looking for a file starting" 3663943345d3Smrg if test -z "$potlib" ; then 3664943345d3Smrg $echo "*** with $libname but no candidates were found. (...for file magic test)" 3665943345d3Smrg else 3666943345d3Smrg $echo "*** with $libname and none of the candidates passed a file format test" 3667943345d3Smrg $echo "*** using a file magic. Last file checked: $potlib" 3668943345d3Smrg fi 3669943345d3Smrg fi 3670943345d3Smrg else 3671943345d3Smrg # Add a -L argument. 3672943345d3Smrg newdeplibs="$newdeplibs $a_deplib" 3673943345d3Smrg fi 3674943345d3Smrg done # Gone through all deplibs. 3675943345d3Smrg ;; 3676943345d3Smrg match_pattern*) 3677943345d3Smrg set dummy $deplibs_check_method 3678943345d3Smrg match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3679943345d3Smrg for a_deplib in $deplibs; do 3680943345d3Smrg name=`expr $a_deplib : '-l\(.*\)'` 3681943345d3Smrg # If $name is empty we are operating on a -L argument. 3682943345d3Smrg if test -n "$name" && test "$name" != "0"; then 3683943345d3Smrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3684943345d3Smrg case " $predeps $postdeps " in 3685943345d3Smrg *" $a_deplib "*) 3686943345d3Smrg newdeplibs="$newdeplibs $a_deplib" 3687943345d3Smrg a_deplib="" 3688943345d3Smrg ;; 3689943345d3Smrg esac 3690943345d3Smrg fi 3691943345d3Smrg if test -n "$a_deplib" ; then 3692943345d3Smrg libname=`eval \\$echo \"$libname_spec\"` 3693943345d3Smrg for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3694943345d3Smrg potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3695943345d3Smrg for potent_lib in $potential_libs; do 3696943345d3Smrg potlib="$potent_lib" # see symlink-check above in file_magic test 3697943345d3Smrg if eval $echo \"$potent_lib\" 2>/dev/null \ 3698943345d3Smrg | ${SED} 10q \ 3699943345d3Smrg | $EGREP "$match_pattern_regex" > /dev/null; then 3700943345d3Smrg newdeplibs="$newdeplibs $a_deplib" 3701943345d3Smrg a_deplib="" 3702943345d3Smrg break 2 3703943345d3Smrg fi 3704943345d3Smrg done 3705943345d3Smrg done 3706943345d3Smrg fi 3707943345d3Smrg if test -n "$a_deplib" ; then 3708943345d3Smrg droppeddeps=yes 3709943345d3Smrg $echo 3710943345d3Smrg $echo "*** Warning: linker path does not have real file for library $a_deplib." 3711943345d3Smrg $echo "*** I have the capability to make that library automatically link in when" 3712943345d3Smrg $echo "*** you link to this library. But I can only do this if you have a" 3713943345d3Smrg $echo "*** shared version of the library, which you do not appear to have" 3714943345d3Smrg $echo "*** because I did check the linker path looking for a file starting" 3715943345d3Smrg if test -z "$potlib" ; then 3716943345d3Smrg $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 3717943345d3Smrg else 3718943345d3Smrg $echo "*** with $libname and none of the candidates passed a file format test" 3719943345d3Smrg $echo "*** using a regex pattern. Last file checked: $potlib" 3720943345d3Smrg fi 3721943345d3Smrg fi 3722943345d3Smrg else 3723943345d3Smrg # Add a -L argument. 3724943345d3Smrg newdeplibs="$newdeplibs $a_deplib" 3725943345d3Smrg fi 3726943345d3Smrg done # Gone through all deplibs. 3727943345d3Smrg ;; 3728943345d3Smrg none | unknown | *) 3729943345d3Smrg newdeplibs="" 3730943345d3Smrg tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 3731943345d3Smrg -e 's/ -[LR][^ ]*//g'` 3732943345d3Smrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3733943345d3Smrg for i in $predeps $postdeps ; do 3734943345d3Smrg # can't use Xsed below, because $i might contain '/' 3735943345d3Smrg tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 3736943345d3Smrg done 3737943345d3Smrg fi 3738943345d3Smrg if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 3739943345d3Smrg | grep . >/dev/null; then 3740943345d3Smrg $echo 3741943345d3Smrg if test "X$deplibs_check_method" = "Xnone"; then 3742943345d3Smrg $echo "*** Warning: inter-library dependencies are not supported in this platform." 3743943345d3Smrg else 3744943345d3Smrg $echo "*** Warning: inter-library dependencies are not known to be supported." 3745943345d3Smrg fi 3746943345d3Smrg $echo "*** All declared inter-library dependencies are being dropped." 3747943345d3Smrg droppeddeps=yes 3748943345d3Smrg fi 3749943345d3Smrg ;; 3750943345d3Smrg esac 3751943345d3Smrg versuffix=$versuffix_save 3752943345d3Smrg major=$major_save 3753943345d3Smrg release=$release_save 3754943345d3Smrg libname=$libname_save 3755943345d3Smrg name=$name_save 3756943345d3Smrg 3757943345d3Smrg case $host in 3758943345d3Smrg *-*-rhapsody* | *-*-darwin1.[012]) 3759943345d3Smrg # On Rhapsody replace the C library is the System framework 3760943345d3Smrg newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 3761943345d3Smrg ;; 3762943345d3Smrg esac 3763943345d3Smrg 3764943345d3Smrg if test "$droppeddeps" = yes; then 3765943345d3Smrg if test "$module" = yes; then 3766943345d3Smrg $echo 3767943345d3Smrg $echo "*** Warning: libtool could not satisfy all declared inter-library" 3768943345d3Smrg $echo "*** dependencies of module $libname. Therefore, libtool will create" 3769943345d3Smrg $echo "*** a static module, that should work as long as the dlopening" 3770943345d3Smrg $echo "*** application is linked with the -dlopen flag." 3771943345d3Smrg if test -z "$global_symbol_pipe"; then 3772943345d3Smrg $echo 3773943345d3Smrg $echo "*** However, this would only work if libtool was able to extract symbol" 3774943345d3Smrg $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 3775943345d3Smrg $echo "*** not find such a program. So, this module is probably useless." 3776943345d3Smrg $echo "*** \`nm' from GNU binutils and a full rebuild may help." 3777943345d3Smrg fi 3778943345d3Smrg if test "$build_old_libs" = no; then 3779943345d3Smrg oldlibs="$output_objdir/$libname.$libext" 3780943345d3Smrg build_libtool_libs=module 3781943345d3Smrg build_old_libs=yes 3782943345d3Smrg else 3783943345d3Smrg build_libtool_libs=no 3784943345d3Smrg fi 3785943345d3Smrg else 3786943345d3Smrg $echo "*** The inter-library dependencies that have been dropped here will be" 3787943345d3Smrg $echo "*** automatically added whenever a program is linked with this library" 3788943345d3Smrg $echo "*** or is declared to -dlopen it." 3789943345d3Smrg 3790943345d3Smrg if test "$allow_undefined" = no; then 3791943345d3Smrg $echo 3792943345d3Smrg $echo "*** Since this library must not contain undefined symbols," 3793943345d3Smrg $echo "*** because either the platform does not support them or" 3794943345d3Smrg $echo "*** it was explicitly requested with -no-undefined," 3795943345d3Smrg $echo "*** libtool will only create a static version of it." 3796943345d3Smrg if test "$build_old_libs" = no; then 3797943345d3Smrg oldlibs="$output_objdir/$libname.$libext" 3798943345d3Smrg build_libtool_libs=module 3799943345d3Smrg build_old_libs=yes 3800943345d3Smrg else 3801943345d3Smrg build_libtool_libs=no 3802943345d3Smrg fi 3803943345d3Smrg fi 3804943345d3Smrg fi 3805943345d3Smrg fi 3806943345d3Smrg # Done checking deplibs! 3807943345d3Smrg deplibs=$newdeplibs 3808943345d3Smrg fi 3809943345d3Smrg 3810943345d3Smrg 3811943345d3Smrg # move library search paths that coincide with paths to not yet 3812943345d3Smrg # installed libraries to the beginning of the library search list 3813943345d3Smrg new_libs= 3814943345d3Smrg for path in $notinst_path; do 3815943345d3Smrg case " $new_libs " in 3816943345d3Smrg *" -L$path/$objdir "*) ;; 3817943345d3Smrg *) 3818943345d3Smrg case " $deplibs " in 3819943345d3Smrg *" -L$path/$objdir "*) 3820943345d3Smrg new_libs="$new_libs -L$path/$objdir" ;; 3821943345d3Smrg esac 3822943345d3Smrg ;; 3823943345d3Smrg esac 3824943345d3Smrg done 3825943345d3Smrg for deplib in $deplibs; do 3826943345d3Smrg case $deplib in 3827943345d3Smrg -L*) 3828943345d3Smrg case " $new_libs " in 3829943345d3Smrg *" $deplib "*) ;; 3830943345d3Smrg *) new_libs="$new_libs $deplib" ;; 3831943345d3Smrg esac 3832943345d3Smrg ;; 3833943345d3Smrg *) new_libs="$new_libs $deplib" ;; 3834943345d3Smrg esac 3835943345d3Smrg done 3836943345d3Smrg deplibs="$new_libs" 3837943345d3Smrg 3838943345d3Smrg 3839943345d3Smrg # All the library-specific variables (install_libdir is set above). 3840943345d3Smrg library_names= 3841943345d3Smrg old_library= 3842943345d3Smrg dlname= 3843943345d3Smrg 3844943345d3Smrg # Test again, we may have decided not to build it any more 3845943345d3Smrg if test "$build_libtool_libs" = yes; then 3846943345d3Smrg if test "$hardcode_into_libs" = yes; then 3847943345d3Smrg # Hardcode the library paths 3848943345d3Smrg hardcode_libdirs= 3849943345d3Smrg dep_rpath= 3850943345d3Smrg rpath="$finalize_rpath" 3851943345d3Smrg test "$mode" != relink && rpath="$compile_rpath$rpath" 3852943345d3Smrg for libdir in $rpath; do 3853943345d3Smrg if test -n "$hardcode_libdir_flag_spec"; then 3854943345d3Smrg if test -n "$hardcode_libdir_separator"; then 3855943345d3Smrg if test -z "$hardcode_libdirs"; then 3856943345d3Smrg hardcode_libdirs="$libdir" 3857943345d3Smrg else 3858943345d3Smrg # Just accumulate the unique libdirs. 3859943345d3Smrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 3860943345d3Smrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 3861943345d3Smrg ;; 3862943345d3Smrg *) 3863943345d3Smrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 3864943345d3Smrg ;; 3865943345d3Smrg esac 3866943345d3Smrg fi 3867943345d3Smrg else 3868943345d3Smrg eval flag=\"$hardcode_libdir_flag_spec\" 3869943345d3Smrg dep_rpath="$dep_rpath $flag" 3870943345d3Smrg fi 3871943345d3Smrg elif test -n "$runpath_var"; then 3872943345d3Smrg case "$perm_rpath " in 3873943345d3Smrg *" $libdir "*) ;; 3874943345d3Smrg *) perm_rpath="$perm_rpath $libdir" ;; 3875943345d3Smrg esac 3876943345d3Smrg fi 3877943345d3Smrg done 3878943345d3Smrg # Substitute the hardcoded libdirs into the rpath. 3879943345d3Smrg if test -n "$hardcode_libdir_separator" && 3880943345d3Smrg test -n "$hardcode_libdirs"; then 3881943345d3Smrg libdir="$hardcode_libdirs" 3882943345d3Smrg if test -n "$hardcode_libdir_flag_spec_ld"; then 3883943345d3Smrg eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 3884943345d3Smrg else 3885943345d3Smrg eval dep_rpath=\"$hardcode_libdir_flag_spec\" 3886943345d3Smrg fi 3887943345d3Smrg fi 3888943345d3Smrg if test -n "$runpath_var" && test -n "$perm_rpath"; then 3889943345d3Smrg # We should set the runpath_var. 3890943345d3Smrg rpath= 3891943345d3Smrg for dir in $perm_rpath; do 3892943345d3Smrg rpath="$rpath$dir:" 3893943345d3Smrg done 3894943345d3Smrg eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 3895943345d3Smrg fi 3896943345d3Smrg test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 3897943345d3Smrg fi 3898943345d3Smrg 3899943345d3Smrg shlibpath="$finalize_shlibpath" 3900943345d3Smrg test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 3901943345d3Smrg if test -n "$shlibpath"; then 3902943345d3Smrg eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 3903943345d3Smrg fi 3904943345d3Smrg 3905943345d3Smrg # Get the real and link names of the library. 3906943345d3Smrg eval shared_ext=\"$shrext_cmds\" 3907943345d3Smrg eval library_names=\"$library_names_spec\" 3908943345d3Smrg set dummy $library_names 3909943345d3Smrg realname="$2" 3910943345d3Smrg shift; shift 3911943345d3Smrg 3912943345d3Smrg if test -n "$soname_spec"; then 3913943345d3Smrg eval soname=\"$soname_spec\" 3914943345d3Smrg else 3915943345d3Smrg soname="$realname" 3916943345d3Smrg fi 3917943345d3Smrg if test -z "$dlname"; then 3918943345d3Smrg dlname=$soname 3919943345d3Smrg fi 3920943345d3Smrg 3921943345d3Smrg lib="$output_objdir/$realname" 3922943345d3Smrg linknames= 3923943345d3Smrg for link 3924943345d3Smrg do 3925943345d3Smrg linknames="$linknames $link" 3926943345d3Smrg done 3927943345d3Smrg 3928943345d3Smrg # Use standard objects if they are pic 3929943345d3Smrg test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 3930943345d3Smrg 3931943345d3Smrg # Prepare the list of exported symbols 3932943345d3Smrg if test -z "$export_symbols"; then 3933943345d3Smrg if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 3934943345d3Smrg $show "generating symbol list for \`$libname.la'" 3935943345d3Smrg export_symbols="$output_objdir/$libname.exp" 3936943345d3Smrg $run $rm $export_symbols 3937943345d3Smrg cmds=$export_symbols_cmds 3938943345d3Smrg save_ifs="$IFS"; IFS='~' 3939943345d3Smrg for cmd in $cmds; do 3940943345d3Smrg IFS="$save_ifs" 3941943345d3Smrg eval cmd=\"$cmd\" 3942943345d3Smrg if len=`expr "X$cmd" : ".*"` && 3943943345d3Smrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 3944943345d3Smrg $show "$cmd" 3945943345d3Smrg $run eval "$cmd" || exit $? 3946943345d3Smrg skipped_export=false 3947943345d3Smrg else 3948943345d3Smrg # The command line is too long to execute in one step. 3949943345d3Smrg $show "using reloadable object file for export list..." 3950943345d3Smrg skipped_export=: 3951943345d3Smrg # Break out early, otherwise skipped_export may be 3952943345d3Smrg # set to false by a later but shorter cmd. 3953943345d3Smrg break 3954943345d3Smrg fi 3955943345d3Smrg done 3956943345d3Smrg IFS="$save_ifs" 3957943345d3Smrg if test -n "$export_symbols_regex"; then 3958943345d3Smrg $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 3959943345d3Smrg $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 3960943345d3Smrg $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 3961943345d3Smrg $run eval '$mv "${export_symbols}T" "$export_symbols"' 3962943345d3Smrg fi 3963943345d3Smrg fi 3964943345d3Smrg fi 3965943345d3Smrg 3966943345d3Smrg if test -n "$export_symbols" && test -n "$include_expsyms"; then 3967943345d3Smrg $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 3968943345d3Smrg fi 3969943345d3Smrg 3970943345d3Smrg tmp_deplibs= 3971943345d3Smrg for test_deplib in $deplibs; do 3972943345d3Smrg case " $convenience " in 3973943345d3Smrg *" $test_deplib "*) ;; 3974943345d3Smrg *) 3975943345d3Smrg tmp_deplibs="$tmp_deplibs $test_deplib" 3976943345d3Smrg ;; 3977943345d3Smrg esac 3978943345d3Smrg done 3979943345d3Smrg deplibs="$tmp_deplibs" 3980943345d3Smrg 3981943345d3Smrg if test -n "$convenience"; then 3982943345d3Smrg if test -n "$whole_archive_flag_spec"; then 3983943345d3Smrg save_libobjs=$libobjs 3984943345d3Smrg eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 3985943345d3Smrg else 3986943345d3Smrg gentop="$output_objdir/${outputname}x" 3987943345d3Smrg generated="$generated $gentop" 3988943345d3Smrg 3989943345d3Smrg func_extract_archives $gentop $convenience 3990943345d3Smrg libobjs="$libobjs $func_extract_archives_result" 3991943345d3Smrg fi 3992943345d3Smrg fi 3993943345d3Smrg 3994943345d3Smrg if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 3995943345d3Smrg eval flag=\"$thread_safe_flag_spec\" 3996943345d3Smrg linker_flags="$linker_flags $flag" 3997943345d3Smrg fi 3998943345d3Smrg 3999943345d3Smrg # Make a backup of the uninstalled library when relinking 4000943345d3Smrg if test "$mode" = relink; then 4001943345d3Smrg $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 4002943345d3Smrg fi 4003943345d3Smrg 4004943345d3Smrg # Do each of the archive commands. 4005943345d3Smrg if test "$module" = yes && test -n "$module_cmds" ; then 4006943345d3Smrg if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4007943345d3Smrg eval test_cmds=\"$module_expsym_cmds\" 4008943345d3Smrg cmds=$module_expsym_cmds 4009943345d3Smrg else 4010943345d3Smrg eval test_cmds=\"$module_cmds\" 4011943345d3Smrg cmds=$module_cmds 4012943345d3Smrg fi 4013943345d3Smrg else 4014943345d3Smrg if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4015943345d3Smrg eval test_cmds=\"$archive_expsym_cmds\" 4016943345d3Smrg cmds=$archive_expsym_cmds 4017943345d3Smrg else 4018943345d3Smrg eval test_cmds=\"$archive_cmds\" 4019943345d3Smrg cmds=$archive_cmds 4020943345d3Smrg fi 4021943345d3Smrg fi 4022943345d3Smrg 4023943345d3Smrg if test "X$skipped_export" != "X:" && 4024943345d3Smrg len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4025943345d3Smrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4026943345d3Smrg : 4027943345d3Smrg else 4028943345d3Smrg # The command line is too long to link in one step, link piecewise. 4029943345d3Smrg $echo "creating reloadable object files..." 4030943345d3Smrg 4031943345d3Smrg # Save the value of $output and $libobjs because we want to 4032943345d3Smrg # use them later. If we have whole_archive_flag_spec, we 4033943345d3Smrg # want to use save_libobjs as it was before 4034943345d3Smrg # whole_archive_flag_spec was expanded, because we can't 4035943345d3Smrg # assume the linker understands whole_archive_flag_spec. 4036943345d3Smrg # This may have to be revisited, in case too many 4037943345d3Smrg # convenience libraries get linked in and end up exceeding 4038943345d3Smrg # the spec. 4039943345d3Smrg if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 4040943345d3Smrg save_libobjs=$libobjs 4041943345d3Smrg fi 4042943345d3Smrg save_output=$output 4043943345d3Smrg output_la=`$echo "X$output" | $Xsed -e "$basename"` 4044943345d3Smrg 4045943345d3Smrg # Clear the reloadable object creation command queue and 4046943345d3Smrg # initialize k to one. 4047943345d3Smrg test_cmds= 4048943345d3Smrg concat_cmds= 4049943345d3Smrg objlist= 4050943345d3Smrg delfiles= 4051943345d3Smrg last_robj= 4052943345d3Smrg k=1 4053943345d3Smrg output=$output_objdir/$output_la-${k}.$objext 4054943345d3Smrg # Loop over the list of objects to be linked. 4055943345d3Smrg for obj in $save_libobjs 4056943345d3Smrg do 4057943345d3Smrg eval test_cmds=\"$reload_cmds $objlist $last_robj\" 4058943345d3Smrg if test "X$objlist" = X || 4059943345d3Smrg { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4060943345d3Smrg test "$len" -le "$max_cmd_len"; }; then 4061943345d3Smrg objlist="$objlist $obj" 4062943345d3Smrg else 4063943345d3Smrg # The command $test_cmds is almost too long, add a 4064943345d3Smrg # command to the queue. 4065943345d3Smrg if test "$k" -eq 1 ; then 4066943345d3Smrg # The first file doesn't have a previous command to add. 4067943345d3Smrg eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 4068943345d3Smrg else 4069943345d3Smrg # All subsequent reloadable object files will link in 4070943345d3Smrg # the last one created. 4071943345d3Smrg eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 4072943345d3Smrg fi 4073943345d3Smrg last_robj=$output_objdir/$output_la-${k}.$objext 4074943345d3Smrg k=`expr $k + 1` 4075943345d3Smrg output=$output_objdir/$output_la-${k}.$objext 4076943345d3Smrg objlist=$obj 4077943345d3Smrg len=1 4078943345d3Smrg fi 4079943345d3Smrg done 4080943345d3Smrg # Handle the remaining objects by creating one last 4081943345d3Smrg # reloadable object file. All subsequent reloadable object 4082943345d3Smrg # files will link in the last one created. 4083943345d3Smrg test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 4084943345d3Smrg eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 4085943345d3Smrg 4086943345d3Smrg if ${skipped_export-false}; then 4087943345d3Smrg $show "generating symbol list for \`$libname.la'" 4088943345d3Smrg export_symbols="$output_objdir/$libname.exp" 4089943345d3Smrg $run $rm $export_symbols 4090943345d3Smrg libobjs=$output 4091943345d3Smrg # Append the command to create the export file. 4092943345d3Smrg eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 4093943345d3Smrg fi 4094943345d3Smrg 4095943345d3Smrg # Set up a command to remove the reloadable object files 4096943345d3Smrg # after they are used. 4097943345d3Smrg i=0 4098943345d3Smrg while test "$i" -lt "$k" 4099943345d3Smrg do 4100943345d3Smrg i=`expr $i + 1` 4101943345d3Smrg delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 4102943345d3Smrg done 4103943345d3Smrg 4104943345d3Smrg $echo "creating a temporary reloadable object file: $output" 4105943345d3Smrg 4106943345d3Smrg # Loop through the commands generated above and execute them. 4107943345d3Smrg save_ifs="$IFS"; IFS='~' 4108943345d3Smrg for cmd in $concat_cmds; do 4109943345d3Smrg IFS="$save_ifs" 4110943345d3Smrg $show "$cmd" 4111943345d3Smrg $run eval "$cmd" || exit $? 4112943345d3Smrg done 4113943345d3Smrg IFS="$save_ifs" 4114943345d3Smrg 4115943345d3Smrg libobjs=$output 4116943345d3Smrg # Restore the value of output. 4117943345d3Smrg output=$save_output 4118943345d3Smrg 4119943345d3Smrg if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 4120943345d3Smrg eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4121943345d3Smrg fi 4122943345d3Smrg # Expand the library linking commands again to reset the 4123943345d3Smrg # value of $libobjs for piecewise linking. 4124943345d3Smrg 4125943345d3Smrg # Do each of the archive commands. 4126943345d3Smrg if test "$module" = yes && test -n "$module_cmds" ; then 4127943345d3Smrg if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4128943345d3Smrg cmds=$module_expsym_cmds 4129943345d3Smrg else 4130943345d3Smrg cmds=$module_cmds 4131943345d3Smrg fi 4132943345d3Smrg else 4133943345d3Smrg if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4134943345d3Smrg cmds=$archive_expsym_cmds 4135943345d3Smrg else 4136943345d3Smrg cmds=$archive_cmds 4137943345d3Smrg fi 4138943345d3Smrg fi 4139943345d3Smrg 4140943345d3Smrg # Append the command to remove the reloadable object files 4141943345d3Smrg # to the just-reset $cmds. 4142943345d3Smrg eval cmds=\"\$cmds~\$rm $delfiles\" 4143943345d3Smrg fi 4144943345d3Smrg save_ifs="$IFS"; IFS='~' 4145943345d3Smrg for cmd in $cmds; do 4146943345d3Smrg IFS="$save_ifs" 4147943345d3Smrg eval cmd=\"$cmd\" 4148943345d3Smrg $show "$cmd" 4149943345d3Smrg $run eval "$cmd" || { 4150943345d3Smrg lt_exit=$? 4151943345d3Smrg 4152943345d3Smrg # Restore the uninstalled library and exit 4153943345d3Smrg if test "$mode" = relink; then 4154943345d3Smrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 4155943345d3Smrg fi 4156943345d3Smrg 4157943345d3Smrg exit $lt_exit 4158943345d3Smrg } 4159943345d3Smrg done 4160943345d3Smrg IFS="$save_ifs" 4161943345d3Smrg 4162943345d3Smrg # Restore the uninstalled library and exit 4163943345d3Smrg if test "$mode" = relink; then 4164943345d3Smrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 4165943345d3Smrg 4166943345d3Smrg if test -n "$convenience"; then 4167943345d3Smrg if test -z "$whole_archive_flag_spec"; then 4168943345d3Smrg $show "${rm}r $gentop" 4169943345d3Smrg $run ${rm}r "$gentop" 4170943345d3Smrg fi 4171943345d3Smrg fi 4172943345d3Smrg 4173943345d3Smrg exit $EXIT_SUCCESS 4174943345d3Smrg fi 4175943345d3Smrg 4176943345d3Smrg # Create links to the real library. 4177943345d3Smrg for linkname in $linknames; do 4178943345d3Smrg if test "$realname" != "$linkname"; then 4179943345d3Smrg $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 4180943345d3Smrg $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 4181943345d3Smrg fi 4182943345d3Smrg done 4183943345d3Smrg 4184943345d3Smrg # If -module or -export-dynamic was specified, set the dlname. 4185943345d3Smrg if test "$module" = yes || test "$export_dynamic" = yes; then 4186943345d3Smrg # On all known operating systems, these are identical. 4187943345d3Smrg dlname="$soname" 4188943345d3Smrg fi 4189943345d3Smrg fi 4190943345d3Smrg ;; 4191943345d3Smrg 4192943345d3Smrg obj) 4193943345d3Smrg if test -n "$deplibs"; then 4194943345d3Smrg $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 4195943345d3Smrg fi 4196943345d3Smrg 4197943345d3Smrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4198943345d3Smrg $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 4199943345d3Smrg fi 4200943345d3Smrg 4201943345d3Smrg if test -n "$rpath"; then 4202943345d3Smrg $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 4203943345d3Smrg fi 4204943345d3Smrg 4205943345d3Smrg if test -n "$xrpath"; then 4206943345d3Smrg $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 4207943345d3Smrg fi 4208943345d3Smrg 4209943345d3Smrg if test -n "$vinfo"; then 4210943345d3Smrg $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 4211943345d3Smrg fi 4212943345d3Smrg 4213943345d3Smrg if test -n "$release"; then 4214943345d3Smrg $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 4215943345d3Smrg fi 4216943345d3Smrg 4217943345d3Smrg case $output in 4218943345d3Smrg *.lo) 4219943345d3Smrg if test -n "$objs$old_deplibs"; then 4220943345d3Smrg $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 4221943345d3Smrg exit $EXIT_FAILURE 4222943345d3Smrg fi 4223943345d3Smrg libobj="$output" 4224943345d3Smrg obj=`$echo "X$output" | $Xsed -e "$lo2o"` 4225943345d3Smrg ;; 4226943345d3Smrg *) 4227943345d3Smrg libobj= 4228943345d3Smrg obj="$output" 4229943345d3Smrg ;; 4230943345d3Smrg esac 4231943345d3Smrg 4232943345d3Smrg # Delete the old objects. 4233943345d3Smrg $run $rm $obj $libobj 4234943345d3Smrg 4235943345d3Smrg # Objects from convenience libraries. This assumes 4236943345d3Smrg # single-version convenience libraries. Whenever we create 4237943345d3Smrg # different ones for PIC/non-PIC, this we'll have to duplicate 4238943345d3Smrg # the extraction. 4239943345d3Smrg reload_conv_objs= 4240943345d3Smrg gentop= 4241943345d3Smrg # reload_cmds runs $LD directly, so let us get rid of 4242943345d3Smrg # -Wl from whole_archive_flag_spec 4243943345d3Smrg wl= 4244943345d3Smrg 4245943345d3Smrg if test -n "$convenience"; then 4246943345d3Smrg if test -n "$whole_archive_flag_spec"; then 4247943345d3Smrg eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" 4248943345d3Smrg else 4249943345d3Smrg gentop="$output_objdir/${obj}x" 4250943345d3Smrg generated="$generated $gentop" 4251943345d3Smrg 4252943345d3Smrg func_extract_archives $gentop $convenience 4253943345d3Smrg reload_conv_objs="$reload_objs $func_extract_archives_result" 4254943345d3Smrg fi 4255943345d3Smrg fi 4256943345d3Smrg 4257943345d3Smrg # Create the old-style object. 4258943345d3Smrg 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 4259943345d3Smrg 4260943345d3Smrg output="$obj" 4261943345d3Smrg cmds=$reload_cmds 4262943345d3Smrg save_ifs="$IFS"; IFS='~' 4263943345d3Smrg for cmd in $cmds; do 4264943345d3Smrg IFS="$save_ifs" 4265943345d3Smrg eval cmd=\"$cmd\" 4266943345d3Smrg $show "$cmd" 4267943345d3Smrg $run eval "$cmd" || exit $? 4268943345d3Smrg done 4269943345d3Smrg IFS="$save_ifs" 4270943345d3Smrg 4271943345d3Smrg # Exit if we aren't doing a library object file. 4272943345d3Smrg if test -z "$libobj"; then 4273943345d3Smrg if test -n "$gentop"; then 4274943345d3Smrg $show "${rm}r $gentop" 4275943345d3Smrg $run ${rm}r $gentop 4276943345d3Smrg fi 4277943345d3Smrg 4278943345d3Smrg exit $EXIT_SUCCESS 4279943345d3Smrg fi 4280943345d3Smrg 4281943345d3Smrg if test "$build_libtool_libs" != yes; then 4282943345d3Smrg if test -n "$gentop"; then 4283943345d3Smrg $show "${rm}r $gentop" 4284943345d3Smrg $run ${rm}r $gentop 4285943345d3Smrg fi 4286943345d3Smrg 4287943345d3Smrg # Create an invalid libtool object if no PIC, so that we don't 4288943345d3Smrg # accidentally link it into a program. 4289943345d3Smrg # $show "echo timestamp > $libobj" 4290943345d3Smrg # $run eval "echo timestamp > $libobj" || exit $? 4291943345d3Smrg exit $EXIT_SUCCESS 4292943345d3Smrg fi 4293943345d3Smrg 4294943345d3Smrg if test -n "$pic_flag" || test "$pic_mode" != default; then 4295943345d3Smrg # Only do commands if we really have different PIC objects. 4296943345d3Smrg reload_objs="$libobjs $reload_conv_objs" 4297943345d3Smrg output="$libobj" 4298943345d3Smrg cmds=$reload_cmds 4299943345d3Smrg save_ifs="$IFS"; IFS='~' 4300943345d3Smrg for cmd in $cmds; do 4301943345d3Smrg IFS="$save_ifs" 4302943345d3Smrg eval cmd=\"$cmd\" 4303943345d3Smrg $show "$cmd" 4304943345d3Smrg $run eval "$cmd" || exit $? 4305943345d3Smrg done 4306943345d3Smrg IFS="$save_ifs" 4307943345d3Smrg fi 4308943345d3Smrg 4309943345d3Smrg if test -n "$gentop"; then 4310943345d3Smrg $show "${rm}r $gentop" 4311943345d3Smrg $run ${rm}r $gentop 4312943345d3Smrg fi 4313943345d3Smrg 4314943345d3Smrg exit $EXIT_SUCCESS 4315943345d3Smrg ;; 4316943345d3Smrg 4317943345d3Smrg prog) 4318943345d3Smrg case $host in 4319943345d3Smrg *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 4320943345d3Smrg esac 4321943345d3Smrg if test -n "$vinfo"; then 4322943345d3Smrg $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 4323943345d3Smrg fi 4324943345d3Smrg 4325943345d3Smrg if test -n "$release"; then 4326943345d3Smrg $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 4327943345d3Smrg fi 4328943345d3Smrg 4329943345d3Smrg if test "$preload" = yes; then 4330943345d3Smrg if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 4331943345d3Smrg test "$dlopen_self_static" = unknown; then 4332943345d3Smrg $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 4333943345d3Smrg fi 4334943345d3Smrg fi 4335943345d3Smrg 4336943345d3Smrg case $host in 4337943345d3Smrg *-*-rhapsody* | *-*-darwin1.[012]) 4338943345d3Smrg # On Rhapsody replace the C library is the System framework 4339943345d3Smrg compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4340943345d3Smrg finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4341943345d3Smrg ;; 4342943345d3Smrg esac 4343943345d3Smrg 4344943345d3Smrg case $host in 4345943345d3Smrg *darwin*) 4346943345d3Smrg # Don't allow lazy linking, it breaks C++ global constructors 4347943345d3Smrg if test "$tagname" = CXX ; then 4348943345d3Smrg compile_command="$compile_command ${wl}-bind_at_load" 4349943345d3Smrg finalize_command="$finalize_command ${wl}-bind_at_load" 4350943345d3Smrg fi 4351943345d3Smrg ;; 4352943345d3Smrg esac 4353943345d3Smrg 4354943345d3Smrg 4355943345d3Smrg # move library search paths that coincide with paths to not yet 4356943345d3Smrg # installed libraries to the beginning of the library search list 4357943345d3Smrg new_libs= 4358943345d3Smrg for path in $notinst_path; do 4359943345d3Smrg case " $new_libs " in 4360943345d3Smrg *" -L$path/$objdir "*) ;; 4361943345d3Smrg *) 4362943345d3Smrg case " $compile_deplibs " in 4363943345d3Smrg *" -L$path/$objdir "*) 4364943345d3Smrg new_libs="$new_libs -L$path/$objdir" ;; 4365943345d3Smrg esac 4366943345d3Smrg ;; 4367943345d3Smrg esac 4368943345d3Smrg done 4369943345d3Smrg for deplib in $compile_deplibs; do 4370943345d3Smrg case $deplib in 4371943345d3Smrg -L*) 4372943345d3Smrg case " $new_libs " in 4373943345d3Smrg *" $deplib "*) ;; 4374943345d3Smrg *) new_libs="$new_libs $deplib" ;; 4375943345d3Smrg esac 4376943345d3Smrg ;; 4377943345d3Smrg *) new_libs="$new_libs $deplib" ;; 4378943345d3Smrg esac 4379943345d3Smrg done 4380943345d3Smrg compile_deplibs="$new_libs" 4381943345d3Smrg 4382943345d3Smrg 4383943345d3Smrg compile_command="$compile_command $compile_deplibs" 4384943345d3Smrg finalize_command="$finalize_command $finalize_deplibs" 4385943345d3Smrg 4386943345d3Smrg if test -n "$rpath$xrpath"; then 4387943345d3Smrg # If the user specified any rpath flags, then add them. 4388943345d3Smrg for libdir in $rpath $xrpath; do 4389943345d3Smrg # This is the magic to use -rpath. 4390943345d3Smrg case "$finalize_rpath " in 4391943345d3Smrg *" $libdir "*) ;; 4392943345d3Smrg *) finalize_rpath="$finalize_rpath $libdir" ;; 4393943345d3Smrg esac 4394943345d3Smrg done 4395943345d3Smrg fi 4396943345d3Smrg 4397943345d3Smrg # Now hardcode the library paths 4398943345d3Smrg rpath= 4399943345d3Smrg hardcode_libdirs= 4400943345d3Smrg for libdir in $compile_rpath $finalize_rpath; do 4401943345d3Smrg if test -n "$hardcode_libdir_flag_spec"; then 4402943345d3Smrg if test -n "$hardcode_libdir_separator"; then 4403943345d3Smrg if test -z "$hardcode_libdirs"; then 4404943345d3Smrg hardcode_libdirs="$libdir" 4405943345d3Smrg else 4406943345d3Smrg # Just accumulate the unique libdirs. 4407943345d3Smrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4408943345d3Smrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4409943345d3Smrg ;; 4410943345d3Smrg *) 4411943345d3Smrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4412943345d3Smrg ;; 4413943345d3Smrg esac 4414943345d3Smrg fi 4415943345d3Smrg else 4416943345d3Smrg eval flag=\"$hardcode_libdir_flag_spec\" 4417943345d3Smrg rpath="$rpath $flag" 4418943345d3Smrg fi 4419943345d3Smrg elif test -n "$runpath_var"; then 4420943345d3Smrg case "$perm_rpath " in 4421943345d3Smrg *" $libdir "*) ;; 4422943345d3Smrg *) perm_rpath="$perm_rpath $libdir" ;; 4423943345d3Smrg esac 4424943345d3Smrg fi 4425943345d3Smrg case $host in 4426943345d3Smrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4427943345d3Smrg testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 4428943345d3Smrg case :$dllsearchpath: in 4429943345d3Smrg *":$libdir:"*) ;; 4430943345d3Smrg *) dllsearchpath="$dllsearchpath:$libdir";; 4431943345d3Smrg esac 4432943345d3Smrg case :$dllsearchpath: in 4433943345d3Smrg *":$testbindir:"*) ;; 4434943345d3Smrg *) dllsearchpath="$dllsearchpath:$testbindir";; 4435943345d3Smrg esac 4436943345d3Smrg ;; 4437943345d3Smrg esac 4438943345d3Smrg done 4439943345d3Smrg # Substitute the hardcoded libdirs into the rpath. 4440943345d3Smrg if test -n "$hardcode_libdir_separator" && 4441943345d3Smrg test -n "$hardcode_libdirs"; then 4442943345d3Smrg libdir="$hardcode_libdirs" 4443943345d3Smrg eval rpath=\" $hardcode_libdir_flag_spec\" 4444943345d3Smrg fi 4445943345d3Smrg compile_rpath="$rpath" 4446943345d3Smrg 4447943345d3Smrg rpath= 4448943345d3Smrg hardcode_libdirs= 4449943345d3Smrg for libdir in $finalize_rpath; do 4450943345d3Smrg if test -n "$hardcode_libdir_flag_spec"; then 4451943345d3Smrg if test -n "$hardcode_libdir_separator"; then 4452943345d3Smrg if test -z "$hardcode_libdirs"; then 4453943345d3Smrg hardcode_libdirs="$libdir" 4454943345d3Smrg else 4455943345d3Smrg # Just accumulate the unique libdirs. 4456943345d3Smrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4457943345d3Smrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4458943345d3Smrg ;; 4459943345d3Smrg *) 4460943345d3Smrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4461943345d3Smrg ;; 4462943345d3Smrg esac 4463943345d3Smrg fi 4464943345d3Smrg else 4465943345d3Smrg eval flag=\"$hardcode_libdir_flag_spec\" 4466943345d3Smrg rpath="$rpath $flag" 4467943345d3Smrg fi 4468943345d3Smrg elif test -n "$runpath_var"; then 4469943345d3Smrg case "$finalize_perm_rpath " in 4470943345d3Smrg *" $libdir "*) ;; 4471943345d3Smrg *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 4472943345d3Smrg esac 4473943345d3Smrg fi 4474943345d3Smrg done 4475943345d3Smrg # Substitute the hardcoded libdirs into the rpath. 4476943345d3Smrg if test -n "$hardcode_libdir_separator" && 4477943345d3Smrg test -n "$hardcode_libdirs"; then 4478943345d3Smrg libdir="$hardcode_libdirs" 4479943345d3Smrg eval rpath=\" $hardcode_libdir_flag_spec\" 4480943345d3Smrg fi 4481943345d3Smrg finalize_rpath="$rpath" 4482943345d3Smrg 4483943345d3Smrg if test -n "$libobjs" && test "$build_old_libs" = yes; then 4484943345d3Smrg # Transform all the library objects into standard objects. 4485943345d3Smrg compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4486943345d3Smrg finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4487943345d3Smrg fi 4488943345d3Smrg 4489943345d3Smrg dlsyms= 4490943345d3Smrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4491943345d3Smrg if test -n "$NM" && test -n "$global_symbol_pipe"; then 4492943345d3Smrg dlsyms="${outputname}S.c" 4493943345d3Smrg else 4494943345d3Smrg $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 4495943345d3Smrg fi 4496943345d3Smrg fi 4497943345d3Smrg 4498943345d3Smrg if test -n "$dlsyms"; then 4499943345d3Smrg case $dlsyms in 4500943345d3Smrg "") ;; 4501943345d3Smrg *.c) 4502943345d3Smrg # Discover the nlist of each of the dlfiles. 4503943345d3Smrg nlist="$output_objdir/${outputname}.nm" 4504943345d3Smrg 4505943345d3Smrg $show "$rm $nlist ${nlist}S ${nlist}T" 4506943345d3Smrg $run $rm "$nlist" "${nlist}S" "${nlist}T" 4507943345d3Smrg 4508943345d3Smrg # Parse the name list into a source file. 4509943345d3Smrg $show "creating $output_objdir/$dlsyms" 4510943345d3Smrg 4511943345d3Smrg test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 4512943345d3Smrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 4513943345d3Smrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 4514943345d3Smrg 4515943345d3Smrg#ifdef __cplusplus 4516943345d3Smrgextern \"C\" { 4517943345d3Smrg#endif 4518943345d3Smrg 4519943345d3Smrg/* Prevent the only kind of declaration conflicts we can make. */ 4520943345d3Smrg#define lt_preloaded_symbols some_other_symbol 4521943345d3Smrg 4522943345d3Smrg/* External symbol declarations for the compiler. */\ 4523943345d3Smrg" 4524943345d3Smrg 4525943345d3Smrg if test "$dlself" = yes; then 4526943345d3Smrg $show "generating symbol list for \`$output'" 4527943345d3Smrg 4528943345d3Smrg test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 4529943345d3Smrg 4530943345d3Smrg # Add our own program objects to the symbol list. 4531943345d3Smrg progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4532943345d3Smrg for arg in $progfiles; do 4533943345d3Smrg $show "extracting global C symbols from \`$arg'" 4534943345d3Smrg $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4535943345d3Smrg done 4536943345d3Smrg 4537943345d3Smrg if test -n "$exclude_expsyms"; then 4538943345d3Smrg $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 4539943345d3Smrg $run eval '$mv "$nlist"T "$nlist"' 4540943345d3Smrg fi 4541943345d3Smrg 4542943345d3Smrg if test -n "$export_symbols_regex"; then 4543943345d3Smrg $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 4544943345d3Smrg $run eval '$mv "$nlist"T "$nlist"' 4545943345d3Smrg fi 4546943345d3Smrg 4547943345d3Smrg # Prepare the list of exported symbols 4548943345d3Smrg if test -z "$export_symbols"; then 4549943345d3Smrg export_symbols="$output_objdir/$outputname.exp" 4550943345d3Smrg $run $rm $export_symbols 4551943345d3Smrg $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 4552943345d3Smrg case $host in 4553943345d3Smrg *cygwin* | *mingw* ) 4554943345d3Smrg $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4555943345d3Smrg $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 4556943345d3Smrg ;; 4557943345d3Smrg esac 4558943345d3Smrg else 4559943345d3Smrg $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 4560943345d3Smrg $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 4561943345d3Smrg $run eval 'mv "$nlist"T "$nlist"' 4562943345d3Smrg case $host in 4563943345d3Smrg *cygwin* | *mingw* ) 4564943345d3Smrg $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4565943345d3Smrg $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 4566943345d3Smrg ;; 4567943345d3Smrg esac 4568943345d3Smrg fi 4569943345d3Smrg fi 4570943345d3Smrg 4571943345d3Smrg for arg in $dlprefiles; do 4572943345d3Smrg $show "extracting global C symbols from \`$arg'" 4573943345d3Smrg name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 4574943345d3Smrg $run eval '$echo ": $name " >> "$nlist"' 4575943345d3Smrg $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4576943345d3Smrg done 4577943345d3Smrg 4578943345d3Smrg if test -z "$run"; then 4579943345d3Smrg # Make sure we have at least an empty file. 4580943345d3Smrg test -f "$nlist" || : > "$nlist" 4581943345d3Smrg 4582943345d3Smrg if test -n "$exclude_expsyms"; then 4583943345d3Smrg $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 4584943345d3Smrg $mv "$nlist"T "$nlist" 4585943345d3Smrg fi 4586943345d3Smrg 4587943345d3Smrg # Try sorting and uniquifying the output. 4588943345d3Smrg if grep -v "^: " < "$nlist" | 4589943345d3Smrg if sort -k 3 </dev/null >/dev/null 2>&1; then 4590943345d3Smrg sort -k 3 4591943345d3Smrg else 4592943345d3Smrg sort +2 4593943345d3Smrg fi | 4594943345d3Smrg uniq > "$nlist"S; then 4595943345d3Smrg : 4596943345d3Smrg else 4597943345d3Smrg grep -v "^: " < "$nlist" > "$nlist"S 4598943345d3Smrg fi 4599943345d3Smrg 4600943345d3Smrg if test -f "$nlist"S; then 4601943345d3Smrg eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 4602943345d3Smrg else 4603943345d3Smrg $echo '/* NONE */' >> "$output_objdir/$dlsyms" 4604943345d3Smrg fi 4605943345d3Smrg 4606943345d3Smrg $echo >> "$output_objdir/$dlsyms" "\ 4607943345d3Smrg 4608943345d3Smrg#undef lt_preloaded_symbols 4609943345d3Smrg 4610943345d3Smrg#if defined (__STDC__) && __STDC__ 4611943345d3Smrg# define lt_ptr void * 4612943345d3Smrg#else 4613943345d3Smrg# define lt_ptr char * 4614943345d3Smrg# define const 4615943345d3Smrg#endif 4616943345d3Smrg 4617943345d3Smrg/* The mapping between symbol names and symbols. */ 4618943345d3Smrg" 4619943345d3Smrg 4620943345d3Smrg case $host in 4621943345d3Smrg *cygwin* | *mingw* ) 4622943345d3Smrg $echo >> "$output_objdir/$dlsyms" "\ 4623943345d3Smrg/* DATA imports from DLLs on WIN32 can't be const, because 4624943345d3Smrg runtime relocations are performed -- see ld's documentation 4625943345d3Smrg on pseudo-relocs */ 4626943345d3Smrgstruct { 4627943345d3Smrg" 4628943345d3Smrg ;; 4629943345d3Smrg * ) 4630943345d3Smrg $echo >> "$output_objdir/$dlsyms" "\ 4631943345d3Smrgconst struct { 4632943345d3Smrg" 4633943345d3Smrg ;; 4634943345d3Smrg esac 4635943345d3Smrg 4636943345d3Smrg 4637943345d3Smrg $echo >> "$output_objdir/$dlsyms" "\ 4638943345d3Smrg const char *name; 4639943345d3Smrg lt_ptr address; 4640943345d3Smrg} 4641943345d3Smrglt_preloaded_symbols[] = 4642943345d3Smrg{\ 4643943345d3Smrg" 4644943345d3Smrg 4645943345d3Smrg eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 4646943345d3Smrg 4647943345d3Smrg $echo >> "$output_objdir/$dlsyms" "\ 4648943345d3Smrg {0, (lt_ptr) 0} 4649943345d3Smrg}; 4650943345d3Smrg 4651943345d3Smrg/* This works around a problem in FreeBSD linker */ 4652943345d3Smrg#ifdef FREEBSD_WORKAROUND 4653943345d3Smrgstatic const void *lt_preloaded_setup() { 4654943345d3Smrg return lt_preloaded_symbols; 4655943345d3Smrg} 4656943345d3Smrg#endif 4657943345d3Smrg 4658943345d3Smrg#ifdef __cplusplus 4659943345d3Smrg} 4660943345d3Smrg#endif\ 4661943345d3Smrg" 4662943345d3Smrg fi 4663943345d3Smrg 4664943345d3Smrg pic_flag_for_symtable= 4665943345d3Smrg case $host in 4666943345d3Smrg # compiling the symbol table file with pic_flag works around 4667943345d3Smrg # a FreeBSD bug that causes programs to crash when -lm is 4668943345d3Smrg # linked before any other PIC object. But we must not use 4669943345d3Smrg # pic_flag when linking with -static. The problem exists in 4670943345d3Smrg # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 4671943345d3Smrg *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 4672943345d3Smrg case "$compile_command " in 4673943345d3Smrg *" -static "*) ;; 4674943345d3Smrg *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 4675943345d3Smrg esac;; 4676943345d3Smrg *-*-hpux*) 4677943345d3Smrg case "$compile_command " in 4678943345d3Smrg *" -static "*) ;; 4679943345d3Smrg *) pic_flag_for_symtable=" $pic_flag";; 4680943345d3Smrg esac 4681943345d3Smrg esac 4682943345d3Smrg 4683943345d3Smrg # Now compile the dynamic symbol file. 4684943345d3Smrg $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 4685943345d3Smrg $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 4686943345d3Smrg 4687943345d3Smrg # Clean up the generated files. 4688943345d3Smrg $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 4689943345d3Smrg $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 4690943345d3Smrg 4691943345d3Smrg # Transform the symbol file into the correct name. 4692943345d3Smrg case $host in 4693943345d3Smrg *cygwin* | *mingw* ) 4694943345d3Smrg if test -f "$output_objdir/${outputname}.def" ; then 4695943345d3Smrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 4696943345d3Smrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 4697943345d3Smrg else 4698943345d3Smrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4699943345d3Smrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4700943345d3Smrg fi 4701943345d3Smrg ;; 4702943345d3Smrg * ) 4703943345d3Smrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4704943345d3Smrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4705943345d3Smrg ;; 4706943345d3Smrg esac 4707943345d3Smrg ;; 4708943345d3Smrg *) 4709943345d3Smrg $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 4710943345d3Smrg exit $EXIT_FAILURE 4711943345d3Smrg ;; 4712943345d3Smrg esac 4713943345d3Smrg else 4714943345d3Smrg # We keep going just in case the user didn't refer to 4715943345d3Smrg # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 4716943345d3Smrg # really was required. 4717943345d3Smrg 4718943345d3Smrg # Nullify the symbol file. 4719943345d3Smrg compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 4720943345d3Smrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 4721943345d3Smrg fi 4722943345d3Smrg 4723943345d3Smrg if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 4724943345d3Smrg # Replace the output file specification. 4725943345d3Smrg compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4726943345d3Smrg link_command="$compile_command$compile_rpath" 4727943345d3Smrg 4728943345d3Smrg # We have no uninstalled library dependencies, so finalize right now. 4729943345d3Smrg $show "$link_command" 4730943345d3Smrg $run eval "$link_command" 4731943345d3Smrg exit_status=$? 4732943345d3Smrg 4733943345d3Smrg # Delete the generated files. 4734943345d3Smrg if test -n "$dlsyms"; then 4735943345d3Smrg $show "$rm $output_objdir/${outputname}S.${objext}" 4736943345d3Smrg $run $rm "$output_objdir/${outputname}S.${objext}" 4737943345d3Smrg fi 4738943345d3Smrg 4739943345d3Smrg exit $exit_status 4740943345d3Smrg fi 4741943345d3Smrg 4742943345d3Smrg if test -n "$shlibpath_var"; then 4743943345d3Smrg # We should set the shlibpath_var 4744943345d3Smrg rpath= 4745943345d3Smrg for dir in $temp_rpath; do 4746943345d3Smrg case $dir in 4747943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) 4748943345d3Smrg # Absolute path. 4749943345d3Smrg rpath="$rpath$dir:" 4750943345d3Smrg ;; 4751943345d3Smrg *) 4752943345d3Smrg # Relative path: add a thisdir entry. 4753943345d3Smrg rpath="$rpath\$thisdir/$dir:" 4754943345d3Smrg ;; 4755943345d3Smrg esac 4756943345d3Smrg done 4757943345d3Smrg temp_rpath="$rpath" 4758943345d3Smrg fi 4759943345d3Smrg 4760943345d3Smrg if test -n "$compile_shlibpath$finalize_shlibpath"; then 4761943345d3Smrg compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 4762943345d3Smrg fi 4763943345d3Smrg if test -n "$finalize_shlibpath"; then 4764943345d3Smrg finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 4765943345d3Smrg fi 4766943345d3Smrg 4767943345d3Smrg compile_var= 4768943345d3Smrg finalize_var= 4769943345d3Smrg if test -n "$runpath_var"; then 4770943345d3Smrg if test -n "$perm_rpath"; then 4771943345d3Smrg # We should set the runpath_var. 4772943345d3Smrg rpath= 4773943345d3Smrg for dir in $perm_rpath; do 4774943345d3Smrg rpath="$rpath$dir:" 4775943345d3Smrg done 4776943345d3Smrg compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 4777943345d3Smrg fi 4778943345d3Smrg if test -n "$finalize_perm_rpath"; then 4779943345d3Smrg # We should set the runpath_var. 4780943345d3Smrg rpath= 4781943345d3Smrg for dir in $finalize_perm_rpath; do 4782943345d3Smrg rpath="$rpath$dir:" 4783943345d3Smrg done 4784943345d3Smrg finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 4785943345d3Smrg fi 4786943345d3Smrg fi 4787943345d3Smrg 4788943345d3Smrg if test "$no_install" = yes; then 4789943345d3Smrg # We don't need to create a wrapper script. 4790943345d3Smrg link_command="$compile_var$compile_command$compile_rpath" 4791943345d3Smrg # Replace the output file specification. 4792943345d3Smrg link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4793943345d3Smrg # Delete the old output file. 4794943345d3Smrg $run $rm $output 4795943345d3Smrg # Link the executable and exit 4796943345d3Smrg $show "$link_command" 4797943345d3Smrg $run eval "$link_command" || exit $? 4798943345d3Smrg exit $EXIT_SUCCESS 4799943345d3Smrg fi 4800943345d3Smrg 4801943345d3Smrg if test "$hardcode_action" = relink; then 4802943345d3Smrg # Fast installation is not supported 4803943345d3Smrg link_command="$compile_var$compile_command$compile_rpath" 4804943345d3Smrg relink_command="$finalize_var$finalize_command$finalize_rpath" 4805943345d3Smrg 4806943345d3Smrg $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 4807943345d3Smrg $echo "$modename: \`$output' will be relinked during installation" 1>&2 4808943345d3Smrg else 4809943345d3Smrg if test "$fast_install" != no; then 4810943345d3Smrg link_command="$finalize_var$compile_command$finalize_rpath" 4811943345d3Smrg if test "$fast_install" = yes; then 4812943345d3Smrg relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 4813943345d3Smrg else 4814943345d3Smrg # fast_install is set to needless 4815943345d3Smrg relink_command= 4816943345d3Smrg fi 4817943345d3Smrg else 4818943345d3Smrg link_command="$compile_var$compile_command$compile_rpath" 4819943345d3Smrg relink_command="$finalize_var$finalize_command$finalize_rpath" 4820943345d3Smrg fi 4821943345d3Smrg fi 4822943345d3Smrg 4823943345d3Smrg # Replace the output file specification. 4824943345d3Smrg link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 4825943345d3Smrg 4826943345d3Smrg # Delete the old output files. 4827943345d3Smrg $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 4828943345d3Smrg 4829943345d3Smrg $show "$link_command" 4830943345d3Smrg $run eval "$link_command" || exit $? 4831943345d3Smrg 4832943345d3Smrg # Now create the wrapper script. 4833943345d3Smrg $show "creating $output" 4834943345d3Smrg 4835943345d3Smrg # Quote the relink command for shipping. 4836943345d3Smrg if test -n "$relink_command"; then 4837943345d3Smrg # Preserve any variables that may affect compiler behavior 4838943345d3Smrg for var in $variables_saved_for_relink; do 4839943345d3Smrg if eval test -z \"\${$var+set}\"; then 4840943345d3Smrg relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 4841943345d3Smrg elif eval var_value=\$$var; test -z "$var_value"; then 4842943345d3Smrg relink_command="$var=; export $var; $relink_command" 4843943345d3Smrg else 4844943345d3Smrg var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 4845943345d3Smrg relink_command="$var=\"$var_value\"; export $var; $relink_command" 4846943345d3Smrg fi 4847943345d3Smrg done 4848943345d3Smrg relink_command="(cd `pwd`; $relink_command)" 4849943345d3Smrg relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 4850943345d3Smrg fi 4851943345d3Smrg 4852943345d3Smrg # Quote $echo for shipping. 4853943345d3Smrg if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 4854943345d3Smrg case $progpath in 4855943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 4856943345d3Smrg *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 4857943345d3Smrg esac 4858943345d3Smrg qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 4859943345d3Smrg else 4860943345d3Smrg qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 4861943345d3Smrg fi 4862943345d3Smrg 4863943345d3Smrg # Only actually do things if our run command is non-null. 4864943345d3Smrg if test -z "$run"; then 4865943345d3Smrg # win32 will think the script is a binary if it has 4866943345d3Smrg # a .exe suffix, so we strip it off here. 4867943345d3Smrg case $output in 4868943345d3Smrg *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 4869943345d3Smrg esac 4870943345d3Smrg # test for cygwin because mv fails w/o .exe extensions 4871943345d3Smrg case $host in 4872943345d3Smrg *cygwin*) 4873943345d3Smrg exeext=.exe 4874943345d3Smrg outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 4875943345d3Smrg *) exeext= ;; 4876943345d3Smrg esac 4877943345d3Smrg case $host in 4878943345d3Smrg *cygwin* | *mingw* ) 4879943345d3Smrg output_name=`basename $output` 4880943345d3Smrg output_path=`dirname $output` 4881943345d3Smrg cwrappersource="$output_path/$objdir/lt-$output_name.c" 4882943345d3Smrg cwrapper="$output_path/$output_name.exe" 4883943345d3Smrg $rm $cwrappersource $cwrapper 4884943345d3Smrg trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 4885943345d3Smrg 4886943345d3Smrg cat > $cwrappersource <<EOF 4887943345d3Smrg 4888943345d3Smrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 4889943345d3Smrg Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 4890943345d3Smrg 4891943345d3Smrg The $output program cannot be directly executed until all the libtool 4892943345d3Smrg libraries that it depends on are installed. 4893943345d3Smrg 4894943345d3Smrg This wrapper executable should never be moved out of the build directory. 4895943345d3Smrg If it is, it will not operate correctly. 4896943345d3Smrg 4897943345d3Smrg Currently, it simply execs the wrapper *script* "/bin/sh $output", 4898943345d3Smrg but could eventually absorb all of the scripts functionality and 4899943345d3Smrg exec $objdir/$outputname directly. 4900943345d3Smrg*/ 4901943345d3SmrgEOF 4902943345d3Smrg cat >> $cwrappersource<<"EOF" 4903943345d3Smrg#include <stdio.h> 4904943345d3Smrg#include <stdlib.h> 4905943345d3Smrg#include <unistd.h> 4906943345d3Smrg#include <malloc.h> 4907943345d3Smrg#include <stdarg.h> 4908943345d3Smrg#include <assert.h> 4909943345d3Smrg#include <string.h> 4910943345d3Smrg#include <ctype.h> 4911943345d3Smrg#include <sys/stat.h> 4912943345d3Smrg 4913943345d3Smrg#if defined(PATH_MAX) 4914943345d3Smrg# define LT_PATHMAX PATH_MAX 4915943345d3Smrg#elif defined(MAXPATHLEN) 4916943345d3Smrg# define LT_PATHMAX MAXPATHLEN 4917943345d3Smrg#else 4918943345d3Smrg# define LT_PATHMAX 1024 4919943345d3Smrg#endif 4920943345d3Smrg 4921943345d3Smrg#ifndef DIR_SEPARATOR 4922943345d3Smrg# define DIR_SEPARATOR '/' 4923943345d3Smrg# define PATH_SEPARATOR ':' 4924943345d3Smrg#endif 4925943345d3Smrg 4926943345d3Smrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 4927943345d3Smrg defined (__OS2__) 4928943345d3Smrg# define HAVE_DOS_BASED_FILE_SYSTEM 4929943345d3Smrg# ifndef DIR_SEPARATOR_2 4930943345d3Smrg# define DIR_SEPARATOR_2 '\\' 4931943345d3Smrg# endif 4932943345d3Smrg# ifndef PATH_SEPARATOR_2 4933943345d3Smrg# define PATH_SEPARATOR_2 ';' 4934943345d3Smrg# endif 4935943345d3Smrg#endif 4936943345d3Smrg 4937943345d3Smrg#ifndef DIR_SEPARATOR_2 4938943345d3Smrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 4939943345d3Smrg#else /* DIR_SEPARATOR_2 */ 4940943345d3Smrg# define IS_DIR_SEPARATOR(ch) \ 4941943345d3Smrg (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 4942943345d3Smrg#endif /* DIR_SEPARATOR_2 */ 4943943345d3Smrg 4944943345d3Smrg#ifndef PATH_SEPARATOR_2 4945943345d3Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 4946943345d3Smrg#else /* PATH_SEPARATOR_2 */ 4947943345d3Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 4948943345d3Smrg#endif /* PATH_SEPARATOR_2 */ 4949943345d3Smrg 4950943345d3Smrg#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 4951943345d3Smrg#define XFREE(stale) do { \ 4952943345d3Smrg if (stale) { free ((void *) stale); stale = 0; } \ 4953943345d3Smrg} while (0) 4954943345d3Smrg 4955943345d3Smrg/* -DDEBUG is fairly common in CFLAGS. */ 4956943345d3Smrg#undef DEBUG 4957943345d3Smrg#if defined DEBUGWRAPPER 4958943345d3Smrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 4959943345d3Smrg#else 4960943345d3Smrg# define DEBUG(format, ...) 4961943345d3Smrg#endif 4962943345d3Smrg 4963943345d3Smrgconst char *program_name = NULL; 4964943345d3Smrg 4965943345d3Smrgvoid * xmalloc (size_t num); 4966943345d3Smrgchar * xstrdup (const char *string); 4967943345d3Smrgconst char * base_name (const char *name); 4968943345d3Smrgchar * find_executable(const char *wrapper); 4969943345d3Smrgint check_executable(const char *path); 4970943345d3Smrgchar * strendzap(char *str, const char *pat); 4971943345d3Smrgvoid lt_fatal (const char *message, ...); 4972943345d3Smrg 4973943345d3Smrgint 4974943345d3Smrgmain (int argc, char *argv[]) 4975943345d3Smrg{ 4976943345d3Smrg char **newargz; 4977943345d3Smrg int i; 4978943345d3Smrg 4979943345d3Smrg program_name = (char *) xstrdup (base_name (argv[0])); 4980943345d3Smrg DEBUG("(main) argv[0] : %s\n",argv[0]); 4981943345d3Smrg DEBUG("(main) program_name : %s\n",program_name); 4982943345d3Smrg newargz = XMALLOC(char *, argc+2); 4983943345d3SmrgEOF 4984943345d3Smrg 4985943345d3Smrg cat >> $cwrappersource <<EOF 4986943345d3Smrg newargz[0] = (char *) xstrdup("$SHELL"); 4987943345d3SmrgEOF 4988943345d3Smrg 4989943345d3Smrg cat >> $cwrappersource <<"EOF" 4990943345d3Smrg newargz[1] = find_executable(argv[0]); 4991943345d3Smrg if (newargz[1] == NULL) 4992943345d3Smrg lt_fatal("Couldn't find %s", argv[0]); 4993943345d3Smrg DEBUG("(main) found exe at : %s\n",newargz[1]); 4994943345d3Smrg /* we know the script has the same name, without the .exe */ 4995943345d3Smrg /* so make sure newargz[1] doesn't end in .exe */ 4996943345d3Smrg strendzap(newargz[1],".exe"); 4997943345d3Smrg for (i = 1; i < argc; i++) 4998943345d3Smrg newargz[i+1] = xstrdup(argv[i]); 4999943345d3Smrg newargz[argc+1] = NULL; 5000943345d3Smrg 5001943345d3Smrg for (i=0; i<argc+1; i++) 5002943345d3Smrg { 5003943345d3Smrg DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 5004943345d3Smrg ; 5005943345d3Smrg } 5006943345d3Smrg 5007943345d3SmrgEOF 5008943345d3Smrg 5009943345d3Smrg case $host_os in 5010943345d3Smrg mingw*) 5011943345d3Smrg cat >> $cwrappersource <<EOF 5012943345d3Smrg execv("$SHELL",(char const **)newargz); 5013943345d3SmrgEOF 5014943345d3Smrg ;; 5015943345d3Smrg *) 5016943345d3Smrg cat >> $cwrappersource <<EOF 5017943345d3Smrg execv("$SHELL",newargz); 5018943345d3SmrgEOF 5019943345d3Smrg ;; 5020943345d3Smrg esac 5021943345d3Smrg 5022943345d3Smrg cat >> $cwrappersource <<"EOF" 5023943345d3Smrg return 127; 5024943345d3Smrg} 5025943345d3Smrg 5026943345d3Smrgvoid * 5027943345d3Smrgxmalloc (size_t num) 5028943345d3Smrg{ 5029943345d3Smrg void * p = (void *) malloc (num); 5030943345d3Smrg if (!p) 5031943345d3Smrg lt_fatal ("Memory exhausted"); 5032943345d3Smrg 5033943345d3Smrg return p; 5034943345d3Smrg} 5035943345d3Smrg 5036943345d3Smrgchar * 5037943345d3Smrgxstrdup (const char *string) 5038943345d3Smrg{ 5039943345d3Smrg return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 5040943345d3Smrg; 5041943345d3Smrg} 5042943345d3Smrg 5043943345d3Smrgconst char * 5044943345d3Smrgbase_name (const char *name) 5045943345d3Smrg{ 5046943345d3Smrg const char *base; 5047943345d3Smrg 5048943345d3Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5049943345d3Smrg /* Skip over the disk name in MSDOS pathnames. */ 5050943345d3Smrg if (isalpha ((unsigned char)name[0]) && name[1] == ':') 5051943345d3Smrg name += 2; 5052943345d3Smrg#endif 5053943345d3Smrg 5054943345d3Smrg for (base = name; *name; name++) 5055943345d3Smrg if (IS_DIR_SEPARATOR (*name)) 5056943345d3Smrg base = name + 1; 5057943345d3Smrg return base; 5058943345d3Smrg} 5059943345d3Smrg 5060943345d3Smrgint 5061943345d3Smrgcheck_executable(const char * path) 5062943345d3Smrg{ 5063943345d3Smrg struct stat st; 5064943345d3Smrg 5065943345d3Smrg DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 5066943345d3Smrg if ((!path) || (!*path)) 5067943345d3Smrg return 0; 5068943345d3Smrg 5069943345d3Smrg if ((stat (path, &st) >= 0) && 5070943345d3Smrg ( 5071943345d3Smrg /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 5072943345d3Smrg#if defined (S_IXOTH) 5073943345d3Smrg ((st.st_mode & S_IXOTH) == S_IXOTH) || 5074943345d3Smrg#endif 5075943345d3Smrg#if defined (S_IXGRP) 5076943345d3Smrg ((st.st_mode & S_IXGRP) == S_IXGRP) || 5077943345d3Smrg#endif 5078943345d3Smrg ((st.st_mode & S_IXUSR) == S_IXUSR)) 5079943345d3Smrg ) 5080943345d3Smrg return 1; 5081943345d3Smrg else 5082943345d3Smrg return 0; 5083943345d3Smrg} 5084943345d3Smrg 5085943345d3Smrg/* Searches for the full path of the wrapper. Returns 5086943345d3Smrg newly allocated full path name if found, NULL otherwise */ 5087943345d3Smrgchar * 5088943345d3Smrgfind_executable (const char* wrapper) 5089943345d3Smrg{ 5090943345d3Smrg int has_slash = 0; 5091943345d3Smrg const char* p; 5092943345d3Smrg const char* p_next; 5093943345d3Smrg /* static buffer for getcwd */ 5094943345d3Smrg char tmp[LT_PATHMAX + 1]; 5095943345d3Smrg int tmp_len; 5096943345d3Smrg char* concat_name; 5097943345d3Smrg 5098943345d3Smrg DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 5099943345d3Smrg 5100943345d3Smrg if ((wrapper == NULL) || (*wrapper == '\0')) 5101943345d3Smrg return NULL; 5102943345d3Smrg 5103943345d3Smrg /* Absolute path? */ 5104943345d3Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5105943345d3Smrg if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 5106943345d3Smrg { 5107943345d3Smrg concat_name = xstrdup (wrapper); 5108943345d3Smrg if (check_executable(concat_name)) 5109943345d3Smrg return concat_name; 5110943345d3Smrg XFREE(concat_name); 5111943345d3Smrg } 5112943345d3Smrg else 5113943345d3Smrg { 5114943345d3Smrg#endif 5115943345d3Smrg if (IS_DIR_SEPARATOR (wrapper[0])) 5116943345d3Smrg { 5117943345d3Smrg concat_name = xstrdup (wrapper); 5118943345d3Smrg if (check_executable(concat_name)) 5119943345d3Smrg return concat_name; 5120943345d3Smrg XFREE(concat_name); 5121943345d3Smrg } 5122943345d3Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5123943345d3Smrg } 5124943345d3Smrg#endif 5125943345d3Smrg 5126943345d3Smrg for (p = wrapper; *p; p++) 5127943345d3Smrg if (*p == '/') 5128943345d3Smrg { 5129943345d3Smrg has_slash = 1; 5130943345d3Smrg break; 5131943345d3Smrg } 5132943345d3Smrg if (!has_slash) 5133943345d3Smrg { 5134943345d3Smrg /* no slashes; search PATH */ 5135943345d3Smrg const char* path = getenv ("PATH"); 5136943345d3Smrg if (path != NULL) 5137943345d3Smrg { 5138943345d3Smrg for (p = path; *p; p = p_next) 5139943345d3Smrg { 5140943345d3Smrg const char* q; 5141943345d3Smrg size_t p_len; 5142943345d3Smrg for (q = p; *q; q++) 5143943345d3Smrg if (IS_PATH_SEPARATOR(*q)) 5144943345d3Smrg break; 5145943345d3Smrg p_len = q - p; 5146943345d3Smrg p_next = (*q == '\0' ? q : q + 1); 5147943345d3Smrg if (p_len == 0) 5148943345d3Smrg { 5149943345d3Smrg /* empty path: current directory */ 5150943345d3Smrg if (getcwd (tmp, LT_PATHMAX) == NULL) 5151943345d3Smrg lt_fatal ("getcwd failed"); 5152943345d3Smrg tmp_len = strlen(tmp); 5153943345d3Smrg concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5154943345d3Smrg memcpy (concat_name, tmp, tmp_len); 5155943345d3Smrg concat_name[tmp_len] = '/'; 5156943345d3Smrg strcpy (concat_name + tmp_len + 1, wrapper); 5157943345d3Smrg } 5158943345d3Smrg else 5159943345d3Smrg { 5160943345d3Smrg concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 5161943345d3Smrg memcpy (concat_name, p, p_len); 5162943345d3Smrg concat_name[p_len] = '/'; 5163943345d3Smrg strcpy (concat_name + p_len + 1, wrapper); 5164943345d3Smrg } 5165943345d3Smrg if (check_executable(concat_name)) 5166943345d3Smrg return concat_name; 5167943345d3Smrg XFREE(concat_name); 5168943345d3Smrg } 5169943345d3Smrg } 5170943345d3Smrg /* not found in PATH; assume curdir */ 5171943345d3Smrg } 5172943345d3Smrg /* Relative path | not found in path: prepend cwd */ 5173943345d3Smrg if (getcwd (tmp, LT_PATHMAX) == NULL) 5174943345d3Smrg lt_fatal ("getcwd failed"); 5175943345d3Smrg tmp_len = strlen(tmp); 5176943345d3Smrg concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5177943345d3Smrg memcpy (concat_name, tmp, tmp_len); 5178943345d3Smrg concat_name[tmp_len] = '/'; 5179943345d3Smrg strcpy (concat_name + tmp_len + 1, wrapper); 5180943345d3Smrg 5181943345d3Smrg if (check_executable(concat_name)) 5182943345d3Smrg return concat_name; 5183943345d3Smrg XFREE(concat_name); 5184943345d3Smrg return NULL; 5185943345d3Smrg} 5186943345d3Smrg 5187943345d3Smrgchar * 5188943345d3Smrgstrendzap(char *str, const char *pat) 5189943345d3Smrg{ 5190943345d3Smrg size_t len, patlen; 5191943345d3Smrg 5192943345d3Smrg assert(str != NULL); 5193943345d3Smrg assert(pat != NULL); 5194943345d3Smrg 5195943345d3Smrg len = strlen(str); 5196943345d3Smrg patlen = strlen(pat); 5197943345d3Smrg 5198943345d3Smrg if (patlen <= len) 5199943345d3Smrg { 5200943345d3Smrg str += len - patlen; 5201943345d3Smrg if (strcmp(str, pat) == 0) 5202943345d3Smrg *str = '\0'; 5203943345d3Smrg } 5204943345d3Smrg return str; 5205943345d3Smrg} 5206943345d3Smrg 5207943345d3Smrgstatic void 5208943345d3Smrglt_error_core (int exit_status, const char * mode, 5209943345d3Smrg const char * message, va_list ap) 5210943345d3Smrg{ 5211943345d3Smrg fprintf (stderr, "%s: %s: ", program_name, mode); 5212943345d3Smrg vfprintf (stderr, message, ap); 5213943345d3Smrg fprintf (stderr, ".\n"); 5214943345d3Smrg 5215943345d3Smrg if (exit_status >= 0) 5216943345d3Smrg exit (exit_status); 5217943345d3Smrg} 5218943345d3Smrg 5219943345d3Smrgvoid 5220943345d3Smrglt_fatal (const char *message, ...) 5221943345d3Smrg{ 5222943345d3Smrg va_list ap; 5223943345d3Smrg va_start (ap, message); 5224943345d3Smrg lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 5225943345d3Smrg va_end (ap); 5226943345d3Smrg} 5227943345d3SmrgEOF 5228943345d3Smrg # we should really use a build-platform specific compiler 5229943345d3Smrg # here, but OTOH, the wrappers (shell script and this C one) 5230943345d3Smrg # are only useful if you want to execute the "real" binary. 5231943345d3Smrg # Since the "real" binary is built for $host, then this 5232943345d3Smrg # wrapper might as well be built for $host, too. 5233943345d3Smrg $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 5234943345d3Smrg ;; 5235943345d3Smrg esac 5236943345d3Smrg $rm $output 5237943345d3Smrg trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 5238943345d3Smrg 5239943345d3Smrg $echo > $output "\ 5240943345d3Smrg#! $SHELL 5241943345d3Smrg 5242943345d3Smrg# $output - temporary wrapper script for $objdir/$outputname 5243943345d3Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5244943345d3Smrg# 5245943345d3Smrg# The $output program cannot be directly executed until all the libtool 5246943345d3Smrg# libraries that it depends on are installed. 5247943345d3Smrg# 5248943345d3Smrg# This wrapper script should never be moved out of the build directory. 5249943345d3Smrg# If it is, it will not operate correctly. 5250943345d3Smrg 5251943345d3Smrg# Sed substitution that helps us do robust quoting. It backslashifies 5252943345d3Smrg# metacharacters that are still active within double-quoted strings. 5253943345d3SmrgXsed='${SED} -e 1s/^X//' 5254943345d3Smrgsed_quote_subst='$sed_quote_subst' 5255943345d3Smrg 5256943345d3Smrg# The HP-UX ksh and POSIX shell print the target directory to stdout 5257943345d3Smrg# if CDPATH is set. 5258943345d3Smrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 5259943345d3Smrg 5260943345d3Smrgrelink_command=\"$relink_command\" 5261943345d3Smrg 5262943345d3Smrg# This environment variable determines our operation mode. 5263943345d3Smrgif test \"\$libtool_install_magic\" = \"$magic\"; then 5264943345d3Smrg # install mode needs the following variable: 5265943345d3Smrg notinst_deplibs='$notinst_deplibs' 5266943345d3Smrgelse 5267943345d3Smrg # When we are sourced in execute mode, \$file and \$echo are already set. 5268943345d3Smrg if test \"\$libtool_execute_magic\" != \"$magic\"; then 5269943345d3Smrg echo=\"$qecho\" 5270943345d3Smrg file=\"\$0\" 5271943345d3Smrg # Make sure echo works. 5272943345d3Smrg if test \"X\$1\" = X--no-reexec; then 5273943345d3Smrg # Discard the --no-reexec flag, and continue. 5274943345d3Smrg shift 5275943345d3Smrg elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 5276943345d3Smrg # Yippee, \$echo works! 5277943345d3Smrg : 5278943345d3Smrg else 5279943345d3Smrg # Restart under the correct shell, and then maybe \$echo will work. 5280943345d3Smrg exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 5281943345d3Smrg fi 5282943345d3Smrg fi\ 5283943345d3Smrg" 5284943345d3Smrg $echo >> $output "\ 5285943345d3Smrg 5286943345d3Smrg # Find the directory that this script lives in. 5287943345d3Smrg thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 5288943345d3Smrg test \"x\$thisdir\" = \"x\$file\" && thisdir=. 5289943345d3Smrg 5290943345d3Smrg # Follow symbolic links until we get to the real thisdir. 5291943345d3Smrg file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 5292943345d3Smrg while test -n \"\$file\"; do 5293943345d3Smrg destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 5294943345d3Smrg 5295943345d3Smrg # If there was a directory component, then change thisdir. 5296943345d3Smrg if test \"x\$destdir\" != \"x\$file\"; then 5297943345d3Smrg case \"\$destdir\" in 5298943345d3Smrg [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 5299943345d3Smrg *) thisdir=\"\$thisdir/\$destdir\" ;; 5300943345d3Smrg esac 5301943345d3Smrg fi 5302943345d3Smrg 5303943345d3Smrg file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 5304943345d3Smrg file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 5305943345d3Smrg done 5306943345d3Smrg 5307943345d3Smrg # Try to get the absolute directory name. 5308943345d3Smrg absdir=\`cd \"\$thisdir\" && pwd\` 5309943345d3Smrg test -n \"\$absdir\" && thisdir=\"\$absdir\" 5310943345d3Smrg" 5311943345d3Smrg 5312943345d3Smrg if test "$fast_install" = yes; then 5313943345d3Smrg $echo >> $output "\ 5314943345d3Smrg program=lt-'$outputname'$exeext 5315943345d3Smrg progdir=\"\$thisdir/$objdir\" 5316943345d3Smrg 5317943345d3Smrg if test ! -f \"\$progdir/\$program\" || \\ 5318943345d3Smrg { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 5319943345d3Smrg test \"X\$file\" != \"X\$progdir/\$program\"; }; then 5320943345d3Smrg 5321943345d3Smrg file=\"\$\$-\$program\" 5322943345d3Smrg 5323943345d3Smrg if test ! -d \"\$progdir\"; then 5324943345d3Smrg $mkdir \"\$progdir\" 5325943345d3Smrg else 5326943345d3Smrg $rm \"\$progdir/\$file\" 5327943345d3Smrg fi" 5328943345d3Smrg 5329943345d3Smrg $echo >> $output "\ 5330943345d3Smrg 5331943345d3Smrg # relink executable if necessary 5332943345d3Smrg if test -n \"\$relink_command\"; then 5333943345d3Smrg if relink_command_output=\`eval \$relink_command 2>&1\`; then : 5334943345d3Smrg else 5335943345d3Smrg $echo \"\$relink_command_output\" >&2 5336943345d3Smrg $rm \"\$progdir/\$file\" 5337943345d3Smrg exit $EXIT_FAILURE 5338943345d3Smrg fi 5339943345d3Smrg fi 5340943345d3Smrg 5341943345d3Smrg $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 5342943345d3Smrg { $rm \"\$progdir/\$program\"; 5343943345d3Smrg $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 5344943345d3Smrg $rm \"\$progdir/\$file\" 5345943345d3Smrg fi" 5346943345d3Smrg else 5347943345d3Smrg $echo >> $output "\ 5348943345d3Smrg program='$outputname' 5349943345d3Smrg progdir=\"\$thisdir/$objdir\" 5350943345d3Smrg" 5351943345d3Smrg fi 5352943345d3Smrg 5353943345d3Smrg $echo >> $output "\ 5354943345d3Smrg 5355943345d3Smrg if test -f \"\$progdir/\$program\"; then" 5356943345d3Smrg 5357943345d3Smrg # Export our shlibpath_var if we have one. 5358943345d3Smrg if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 5359943345d3Smrg $echo >> $output "\ 5360943345d3Smrg # Add our own library path to $shlibpath_var 5361943345d3Smrg $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 5362943345d3Smrg 5363943345d3Smrg # Some systems cannot cope with colon-terminated $shlibpath_var 5364943345d3Smrg # The second colon is a workaround for a bug in BeOS R4 sed 5365943345d3Smrg $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 5366943345d3Smrg 5367943345d3Smrg export $shlibpath_var 5368943345d3Smrg" 5369943345d3Smrg fi 5370943345d3Smrg 5371943345d3Smrg # fixup the dll searchpath if we need to. 5372943345d3Smrg if test -n "$dllsearchpath"; then 5373943345d3Smrg $echo >> $output "\ 5374943345d3Smrg # Add the dll search path components to the executable PATH 5375943345d3Smrg PATH=$dllsearchpath:\$PATH 5376943345d3Smrg" 5377943345d3Smrg fi 5378943345d3Smrg 5379943345d3Smrg $echo >> $output "\ 5380943345d3Smrg if test \"\$libtool_execute_magic\" != \"$magic\"; then 5381943345d3Smrg # Run the actual program with our arguments. 5382943345d3Smrg" 5383943345d3Smrg case $host in 5384943345d3Smrg # Backslashes separate directories on plain windows 5385943345d3Smrg *-*-mingw | *-*-os2*) 5386943345d3Smrg $echo >> $output "\ 5387943345d3Smrg exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 5388943345d3Smrg" 5389943345d3Smrg ;; 5390943345d3Smrg 5391943345d3Smrg *) 5392943345d3Smrg $echo >> $output "\ 5393943345d3Smrg exec \"\$progdir/\$program\" \${1+\"\$@\"} 5394943345d3Smrg" 5395943345d3Smrg ;; 5396943345d3Smrg esac 5397943345d3Smrg $echo >> $output "\ 5398943345d3Smrg \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" 5399943345d3Smrg exit $EXIT_FAILURE 5400943345d3Smrg fi 5401943345d3Smrg else 5402943345d3Smrg # The program doesn't exist. 5403943345d3Smrg \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 5404943345d3Smrg \$echo \"This script is just a wrapper for \$program.\" 1>&2 5405943345d3Smrg $echo \"See the $PACKAGE documentation for more information.\" 1>&2 5406943345d3Smrg exit $EXIT_FAILURE 5407943345d3Smrg fi 5408943345d3Smrgfi\ 5409943345d3Smrg" 5410943345d3Smrg chmod +x $output 5411943345d3Smrg fi 5412943345d3Smrg exit $EXIT_SUCCESS 5413943345d3Smrg ;; 5414943345d3Smrg esac 5415943345d3Smrg 5416943345d3Smrg # See if we need to build an old-fashioned archive. 5417943345d3Smrg for oldlib in $oldlibs; do 5418943345d3Smrg 5419943345d3Smrg if test "$build_libtool_libs" = convenience; then 5420943345d3Smrg oldobjs="$libobjs_save" 5421943345d3Smrg addlibs="$convenience" 5422943345d3Smrg build_libtool_libs=no 5423943345d3Smrg else 5424943345d3Smrg if test "$build_libtool_libs" = module; then 5425943345d3Smrg oldobjs="$libobjs_save" 5426943345d3Smrg build_libtool_libs=no 5427943345d3Smrg else 5428943345d3Smrg oldobjs="$old_deplibs $non_pic_objects" 5429943345d3Smrg fi 5430943345d3Smrg addlibs="$old_convenience" 5431943345d3Smrg fi 5432943345d3Smrg 5433943345d3Smrg if test -n "$addlibs"; then 5434943345d3Smrg gentop="$output_objdir/${outputname}x" 5435943345d3Smrg generated="$generated $gentop" 5436943345d3Smrg 5437943345d3Smrg func_extract_archives $gentop $addlibs 5438943345d3Smrg oldobjs="$oldobjs $func_extract_archives_result" 5439943345d3Smrg fi 5440943345d3Smrg 5441943345d3Smrg # Do each command in the archive commands. 5442943345d3Smrg if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 5443943345d3Smrg cmds=$old_archive_from_new_cmds 5444943345d3Smrg else 5445943345d3Smrg # POSIX demands no paths to be encoded in archives. We have 5446943345d3Smrg # to avoid creating archives with duplicate basenames if we 5447943345d3Smrg # might have to extract them afterwards, e.g., when creating a 5448943345d3Smrg # static archive out of a convenience library, or when linking 5449943345d3Smrg # the entirety of a libtool archive into another (currently 5450943345d3Smrg # not supported by libtool). 5451943345d3Smrg if (for obj in $oldobjs 5452943345d3Smrg do 5453943345d3Smrg $echo "X$obj" | $Xsed -e 's%^.*/%%' 5454943345d3Smrg done | sort | sort -uc >/dev/null 2>&1); then 5455943345d3Smrg : 5456943345d3Smrg else 5457943345d3Smrg $echo "copying selected object files to avoid basename conflicts..." 5458943345d3Smrg 5459943345d3Smrg if test -z "$gentop"; then 5460943345d3Smrg gentop="$output_objdir/${outputname}x" 5461943345d3Smrg generated="$generated $gentop" 5462943345d3Smrg 5463943345d3Smrg $show "${rm}r $gentop" 5464943345d3Smrg $run ${rm}r "$gentop" 5465943345d3Smrg $show "$mkdir $gentop" 5466943345d3Smrg $run $mkdir "$gentop" 5467943345d3Smrg exit_status=$? 5468943345d3Smrg if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 5469943345d3Smrg exit $exit_status 5470943345d3Smrg fi 5471943345d3Smrg fi 5472943345d3Smrg 5473943345d3Smrg save_oldobjs=$oldobjs 5474943345d3Smrg oldobjs= 5475943345d3Smrg counter=1 5476943345d3Smrg for obj in $save_oldobjs 5477943345d3Smrg do 5478943345d3Smrg objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 5479943345d3Smrg case " $oldobjs " in 5480943345d3Smrg " ") oldobjs=$obj ;; 5481943345d3Smrg *[\ /]"$objbase "*) 5482943345d3Smrg while :; do 5483943345d3Smrg # Make sure we don't pick an alternate name that also 5484943345d3Smrg # overlaps. 5485943345d3Smrg newobj=lt$counter-$objbase 5486943345d3Smrg counter=`expr $counter + 1` 5487943345d3Smrg case " $oldobjs " in 5488943345d3Smrg *[\ /]"$newobj "*) ;; 5489943345d3Smrg *) if test ! -f "$gentop/$newobj"; then break; fi ;; 5490943345d3Smrg esac 5491943345d3Smrg done 5492943345d3Smrg $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 5493943345d3Smrg $run ln "$obj" "$gentop/$newobj" || 5494943345d3Smrg $run cp "$obj" "$gentop/$newobj" 5495943345d3Smrg oldobjs="$oldobjs $gentop/$newobj" 5496943345d3Smrg ;; 5497943345d3Smrg *) oldobjs="$oldobjs $obj" ;; 5498943345d3Smrg esac 5499943345d3Smrg done 5500943345d3Smrg fi 5501943345d3Smrg 5502943345d3Smrg eval cmds=\"$old_archive_cmds\" 5503943345d3Smrg 5504943345d3Smrg if len=`expr "X$cmds" : ".*"` && 5505943345d3Smrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 5506943345d3Smrg cmds=$old_archive_cmds 5507943345d3Smrg else 5508943345d3Smrg # the command line is too long to link in one step, link in parts 5509943345d3Smrg $echo "using piecewise archive linking..." 5510943345d3Smrg save_RANLIB=$RANLIB 5511943345d3Smrg RANLIB=: 5512943345d3Smrg objlist= 5513943345d3Smrg concat_cmds= 5514943345d3Smrg save_oldobjs=$oldobjs 5515943345d3Smrg 5516943345d3Smrg # Is there a better way of finding the last object in the list? 5517943345d3Smrg for obj in $save_oldobjs 5518943345d3Smrg do 5519943345d3Smrg last_oldobj=$obj 5520943345d3Smrg done 5521943345d3Smrg for obj in $save_oldobjs 5522943345d3Smrg do 5523943345d3Smrg oldobjs="$objlist $obj" 5524943345d3Smrg objlist="$objlist $obj" 5525943345d3Smrg eval test_cmds=\"$old_archive_cmds\" 5526943345d3Smrg if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 5527943345d3Smrg test "$len" -le "$max_cmd_len"; then 5528943345d3Smrg : 5529943345d3Smrg else 5530943345d3Smrg # the above command should be used before it gets too long 5531943345d3Smrg oldobjs=$objlist 5532943345d3Smrg if test "$obj" = "$last_oldobj" ; then 5533943345d3Smrg RANLIB=$save_RANLIB 5534943345d3Smrg fi 5535943345d3Smrg test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 5536943345d3Smrg eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 5537943345d3Smrg objlist= 5538943345d3Smrg fi 5539943345d3Smrg done 5540943345d3Smrg RANLIB=$save_RANLIB 5541943345d3Smrg oldobjs=$objlist 5542943345d3Smrg if test "X$oldobjs" = "X" ; then 5543943345d3Smrg eval cmds=\"\$concat_cmds\" 5544943345d3Smrg else 5545943345d3Smrg eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 5546943345d3Smrg fi 5547943345d3Smrg fi 5548943345d3Smrg fi 5549943345d3Smrg save_ifs="$IFS"; IFS='~' 5550943345d3Smrg for cmd in $cmds; do 5551943345d3Smrg eval cmd=\"$cmd\" 5552943345d3Smrg IFS="$save_ifs" 5553943345d3Smrg $show "$cmd" 5554943345d3Smrg $run eval "$cmd" || exit $? 5555943345d3Smrg done 5556943345d3Smrg IFS="$save_ifs" 5557943345d3Smrg done 5558943345d3Smrg 5559943345d3Smrg if test -n "$generated"; then 5560943345d3Smrg $show "${rm}r$generated" 5561943345d3Smrg $run ${rm}r$generated 5562943345d3Smrg fi 5563943345d3Smrg 5564943345d3Smrg # Now create the libtool archive. 5565943345d3Smrg case $output in 5566943345d3Smrg *.la) 5567943345d3Smrg old_library= 5568943345d3Smrg test "$build_old_libs" = yes && old_library="$libname.$libext" 5569943345d3Smrg $show "creating $output" 5570943345d3Smrg 5571943345d3Smrg # Preserve any variables that may affect compiler behavior 5572943345d3Smrg for var in $variables_saved_for_relink; do 5573943345d3Smrg if eval test -z \"\${$var+set}\"; then 5574943345d3Smrg relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 5575943345d3Smrg elif eval var_value=\$$var; test -z "$var_value"; then 5576943345d3Smrg relink_command="$var=; export $var; $relink_command" 5577943345d3Smrg else 5578943345d3Smrg var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 5579943345d3Smrg relink_command="$var=\"$var_value\"; export $var; $relink_command" 5580943345d3Smrg fi 5581943345d3Smrg done 5582943345d3Smrg # Quote the link command for shipping. 5583943345d3Smrg relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 5584943345d3Smrg relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 5585943345d3Smrg if test "$hardcode_automatic" = yes ; then 5586943345d3Smrg relink_command= 5587943345d3Smrg fi 5588943345d3Smrg 5589943345d3Smrg 5590943345d3Smrg # Only create the output if not a dry run. 5591943345d3Smrg if test -z "$run"; then 5592943345d3Smrg for installed in no yes; do 5593943345d3Smrg if test "$installed" = yes; then 5594943345d3Smrg if test -z "$install_libdir"; then 5595943345d3Smrg break 5596943345d3Smrg fi 5597943345d3Smrg output="$output_objdir/$outputname"i 5598943345d3Smrg # Replace all uninstalled libtool libraries with the installed ones 5599943345d3Smrg newdependency_libs= 5600943345d3Smrg for deplib in $dependency_libs; do 5601943345d3Smrg case $deplib in 5602943345d3Smrg *.la) 5603943345d3Smrg name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 5604943345d3Smrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 5605943345d3Smrg if test -z "$libdir"; then 5606943345d3Smrg $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 5607943345d3Smrg exit $EXIT_FAILURE 5608943345d3Smrg fi 5609943345d3Smrg newdependency_libs="$newdependency_libs $libdir/$name" 5610943345d3Smrg ;; 5611943345d3Smrg *) newdependency_libs="$newdependency_libs $deplib" ;; 5612943345d3Smrg esac 5613943345d3Smrg done 5614943345d3Smrg dependency_libs="$newdependency_libs" 5615943345d3Smrg newdlfiles= 5616943345d3Smrg for lib in $dlfiles; do 5617943345d3Smrg name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5618943345d3Smrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5619943345d3Smrg if test -z "$libdir"; then 5620943345d3Smrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5621943345d3Smrg exit $EXIT_FAILURE 5622943345d3Smrg fi 5623943345d3Smrg newdlfiles="$newdlfiles $libdir/$name" 5624943345d3Smrg done 5625943345d3Smrg dlfiles="$newdlfiles" 5626943345d3Smrg newdlprefiles= 5627943345d3Smrg for lib in $dlprefiles; do 5628943345d3Smrg name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5629943345d3Smrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5630943345d3Smrg if test -z "$libdir"; then 5631943345d3Smrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5632943345d3Smrg exit $EXIT_FAILURE 5633943345d3Smrg fi 5634943345d3Smrg newdlprefiles="$newdlprefiles $libdir/$name" 5635943345d3Smrg done 5636943345d3Smrg dlprefiles="$newdlprefiles" 5637943345d3Smrg else 5638943345d3Smrg newdlfiles= 5639943345d3Smrg for lib in $dlfiles; do 5640943345d3Smrg case $lib in 5641943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5642943345d3Smrg *) abs=`pwd`"/$lib" ;; 5643943345d3Smrg esac 5644943345d3Smrg newdlfiles="$newdlfiles $abs" 5645943345d3Smrg done 5646943345d3Smrg dlfiles="$newdlfiles" 5647943345d3Smrg newdlprefiles= 5648943345d3Smrg for lib in $dlprefiles; do 5649943345d3Smrg case $lib in 5650943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5651943345d3Smrg *) abs=`pwd`"/$lib" ;; 5652943345d3Smrg esac 5653943345d3Smrg newdlprefiles="$newdlprefiles $abs" 5654943345d3Smrg done 5655943345d3Smrg dlprefiles="$newdlprefiles" 5656943345d3Smrg fi 5657943345d3Smrg $rm $output 5658943345d3Smrg # place dlname in correct position for cygwin 5659943345d3Smrg tdlname=$dlname 5660943345d3Smrg case $host,$output,$installed,$module,$dlname in 5661943345d3Smrg *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 5662943345d3Smrg esac 5663943345d3Smrg $echo > $output "\ 5664943345d3Smrg# $outputname - a libtool library file 5665943345d3Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5666943345d3Smrg# 5667943345d3Smrg# Please DO NOT delete this file! 5668943345d3Smrg# It is necessary for linking the library. 5669943345d3Smrg 5670943345d3Smrg# The name that we can dlopen(3). 5671943345d3Smrgdlname='$tdlname' 5672943345d3Smrg 5673943345d3Smrg# Names of this library. 5674943345d3Smrglibrary_names='$library_names' 5675943345d3Smrg 5676943345d3Smrg# The name of the static archive. 5677943345d3Smrgold_library='$old_library' 5678943345d3Smrg 5679943345d3Smrg# Libraries that this one depends upon. 5680943345d3Smrgdependency_libs='$dependency_libs' 5681943345d3Smrg 5682943345d3Smrg# Version information for $libname. 5683943345d3Smrgcurrent=$current 5684943345d3Smrgage=$age 5685943345d3Smrgrevision=$revision 5686943345d3Smrg 5687943345d3Smrg# Is this an already installed library? 5688943345d3Smrginstalled=$installed 5689943345d3Smrg 5690943345d3Smrg# Should we warn about portability when linking against -modules? 5691943345d3Smrgshouldnotlink=$module 5692943345d3Smrg 5693943345d3Smrg# Files to dlopen/dlpreopen 5694943345d3Smrgdlopen='$dlfiles' 5695943345d3Smrgdlpreopen='$dlprefiles' 5696943345d3Smrg 5697943345d3Smrg# Directory that this library needs to be installed in: 5698943345d3Smrglibdir='$install_libdir'" 5699943345d3Smrg if test "$installed" = no && test "$need_relink" = yes; then 5700943345d3Smrg $echo >> $output "\ 5701943345d3Smrgrelink_command=\"$relink_command\"" 5702943345d3Smrg fi 5703943345d3Smrg done 5704943345d3Smrg fi 5705943345d3Smrg 5706943345d3Smrg # Do a symbolic link so that the libtool archive can be found in 5707943345d3Smrg # LD_LIBRARY_PATH before the program is installed. 5708943345d3Smrg $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 5709943345d3Smrg $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 5710943345d3Smrg ;; 5711943345d3Smrg esac 5712943345d3Smrg exit $EXIT_SUCCESS 5713943345d3Smrg ;; 5714943345d3Smrg 5715943345d3Smrg # libtool install mode 5716943345d3Smrg install) 5717943345d3Smrg modename="$modename: install" 5718943345d3Smrg 5719943345d3Smrg # There may be an optional sh(1) argument at the beginning of 5720943345d3Smrg # install_prog (especially on Windows NT). 5721943345d3Smrg if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 5722943345d3Smrg # Allow the use of GNU shtool's install command. 5723943345d3Smrg $echo "X$nonopt" | grep shtool > /dev/null; then 5724943345d3Smrg # Aesthetically quote it. 5725943345d3Smrg arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 5726943345d3Smrg case $arg in 5727943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5728943345d3Smrg arg="\"$arg\"" 5729943345d3Smrg ;; 5730943345d3Smrg esac 5731943345d3Smrg install_prog="$arg " 5732943345d3Smrg arg="$1" 5733943345d3Smrg shift 5734943345d3Smrg else 5735943345d3Smrg install_prog= 5736943345d3Smrg arg=$nonopt 5737943345d3Smrg fi 5738943345d3Smrg 5739943345d3Smrg # The real first argument should be the name of the installation program. 5740943345d3Smrg # Aesthetically quote it. 5741943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5742943345d3Smrg case $arg in 5743943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5744943345d3Smrg arg="\"$arg\"" 5745943345d3Smrg ;; 5746943345d3Smrg esac 5747943345d3Smrg install_prog="$install_prog$arg" 5748943345d3Smrg 5749943345d3Smrg # We need to accept at least all the BSD install flags. 5750943345d3Smrg dest= 5751943345d3Smrg files= 5752943345d3Smrg opts= 5753943345d3Smrg prev= 5754943345d3Smrg install_type= 5755943345d3Smrg isdir=no 5756943345d3Smrg stripme= 5757943345d3Smrg for arg 5758943345d3Smrg do 5759943345d3Smrg if test -n "$dest"; then 5760943345d3Smrg files="$files $dest" 5761943345d3Smrg dest=$arg 5762943345d3Smrg continue 5763943345d3Smrg fi 5764943345d3Smrg 5765943345d3Smrg case $arg in 5766943345d3Smrg -d) isdir=yes ;; 5767943345d3Smrg -f) 5768943345d3Smrg case " $install_prog " in 5769943345d3Smrg *[\\\ /]cp\ *) ;; 5770943345d3Smrg *) prev=$arg ;; 5771943345d3Smrg esac 5772943345d3Smrg ;; 5773943345d3Smrg -g | -m | -o) prev=$arg ;; 5774943345d3Smrg -s) 5775943345d3Smrg stripme=" -s" 5776943345d3Smrg continue 5777943345d3Smrg ;; 5778943345d3Smrg -*) 5779943345d3Smrg ;; 5780943345d3Smrg *) 5781943345d3Smrg # If the previous option needed an argument, then skip it. 5782943345d3Smrg if test -n "$prev"; then 5783943345d3Smrg prev= 5784943345d3Smrg else 5785943345d3Smrg dest=$arg 5786943345d3Smrg continue 5787943345d3Smrg fi 5788943345d3Smrg ;; 5789943345d3Smrg esac 5790943345d3Smrg 5791943345d3Smrg # Aesthetically quote the argument. 5792943345d3Smrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5793943345d3Smrg case $arg in 5794943345d3Smrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5795943345d3Smrg arg="\"$arg\"" 5796943345d3Smrg ;; 5797943345d3Smrg esac 5798943345d3Smrg install_prog="$install_prog $arg" 5799943345d3Smrg done 5800943345d3Smrg 5801943345d3Smrg if test -z "$install_prog"; then 5802943345d3Smrg $echo "$modename: you must specify an install program" 1>&2 5803943345d3Smrg $echo "$help" 1>&2 5804943345d3Smrg exit $EXIT_FAILURE 5805943345d3Smrg fi 5806943345d3Smrg 5807943345d3Smrg if test -n "$prev"; then 5808943345d3Smrg $echo "$modename: the \`$prev' option requires an argument" 1>&2 5809943345d3Smrg $echo "$help" 1>&2 5810943345d3Smrg exit $EXIT_FAILURE 5811943345d3Smrg fi 5812943345d3Smrg 5813943345d3Smrg if test -z "$files"; then 5814943345d3Smrg if test -z "$dest"; then 5815943345d3Smrg $echo "$modename: no file or destination specified" 1>&2 5816943345d3Smrg else 5817943345d3Smrg $echo "$modename: you must specify a destination" 1>&2 5818943345d3Smrg fi 5819943345d3Smrg $echo "$help" 1>&2 5820943345d3Smrg exit $EXIT_FAILURE 5821943345d3Smrg fi 5822943345d3Smrg 5823943345d3Smrg # Strip any trailing slash from the destination. 5824943345d3Smrg dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 5825943345d3Smrg 5826943345d3Smrg # Check to see that the destination is a directory. 5827943345d3Smrg test -d "$dest" && isdir=yes 5828943345d3Smrg if test "$isdir" = yes; then 5829943345d3Smrg destdir="$dest" 5830943345d3Smrg destname= 5831943345d3Smrg else 5832943345d3Smrg destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 5833943345d3Smrg test "X$destdir" = "X$dest" && destdir=. 5834943345d3Smrg destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 5835943345d3Smrg 5836943345d3Smrg # Not a directory, so check to see that there is only one file specified. 5837943345d3Smrg set dummy $files 5838943345d3Smrg if test "$#" -gt 2; then 5839943345d3Smrg $echo "$modename: \`$dest' is not a directory" 1>&2 5840943345d3Smrg $echo "$help" 1>&2 5841943345d3Smrg exit $EXIT_FAILURE 5842943345d3Smrg fi 5843943345d3Smrg fi 5844943345d3Smrg case $destdir in 5845943345d3Smrg [\\/]* | [A-Za-z]:[\\/]*) ;; 5846943345d3Smrg *) 5847943345d3Smrg for file in $files; do 5848943345d3Smrg case $file in 5849943345d3Smrg *.lo) ;; 5850943345d3Smrg *) 5851943345d3Smrg $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 5852943345d3Smrg $echo "$help" 1>&2 5853943345d3Smrg exit $EXIT_FAILURE 5854943345d3Smrg ;; 5855943345d3Smrg esac 5856943345d3Smrg done 5857943345d3Smrg ;; 5858943345d3Smrg esac 5859943345d3Smrg 5860943345d3Smrg # This variable tells wrapper scripts just to set variables rather 5861943345d3Smrg # than running their programs. 5862943345d3Smrg libtool_install_magic="$magic" 5863943345d3Smrg 5864943345d3Smrg staticlibs= 5865943345d3Smrg future_libdirs= 5866943345d3Smrg current_libdirs= 5867943345d3Smrg for file in $files; do 5868943345d3Smrg 5869943345d3Smrg # Do each installation. 5870943345d3Smrg case $file in 5871943345d3Smrg *.$libext) 5872943345d3Smrg # Do the static libraries later. 5873943345d3Smrg staticlibs="$staticlibs $file" 5874943345d3Smrg ;; 5875943345d3Smrg 5876943345d3Smrg *.la) 5877943345d3Smrg # Check to see that this really is a libtool archive. 5878943345d3Smrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 5879943345d3Smrg else 5880943345d3Smrg $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 5881943345d3Smrg $echo "$help" 1>&2 5882943345d3Smrg exit $EXIT_FAILURE 5883943345d3Smrg fi 5884943345d3Smrg 5885943345d3Smrg library_names= 5886943345d3Smrg old_library= 5887943345d3Smrg relink_command= 5888943345d3Smrg # If there is no directory component, then add one. 5889943345d3Smrg case $file in 5890943345d3Smrg */* | *\\*) . $file ;; 5891943345d3Smrg *) . ./$file ;; 5892943345d3Smrg esac 5893943345d3Smrg 5894943345d3Smrg # Add the libdir to current_libdirs if it is the destination. 5895943345d3Smrg if test "X$destdir" = "X$libdir"; then 5896943345d3Smrg case "$current_libdirs " in 5897943345d3Smrg *" $libdir "*) ;; 5898943345d3Smrg *) current_libdirs="$current_libdirs $libdir" ;; 5899943345d3Smrg esac 5900943345d3Smrg else 5901943345d3Smrg # Note the libdir as a future libdir. 5902943345d3Smrg case "$future_libdirs " in 5903943345d3Smrg *" $libdir "*) ;; 5904943345d3Smrg *) future_libdirs="$future_libdirs $libdir" ;; 5905943345d3Smrg esac 5906943345d3Smrg fi 5907943345d3Smrg 5908943345d3Smrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 5909943345d3Smrg test "X$dir" = "X$file/" && dir= 5910943345d3Smrg dir="$dir$objdir" 5911943345d3Smrg 5912943345d3Smrg if test -n "$relink_command"; then 5913943345d3Smrg # Determine the prefix the user has applied to our future dir. 5914943345d3Smrg inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 5915943345d3Smrg 5916943345d3Smrg # Don't allow the user to place us outside of our expected 5917943345d3Smrg # location b/c this prevents finding dependent libraries that 5918943345d3Smrg # are installed to the same prefix. 5919943345d3Smrg # At present, this check doesn't affect windows .dll's that 5920943345d3Smrg # are installed into $libdir/../bin (currently, that works fine) 5921943345d3Smrg # but it's something to keep an eye on. 5922943345d3Smrg if test "$inst_prefix_dir" = "$destdir"; then 5923943345d3Smrg $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 5924943345d3Smrg exit $EXIT_FAILURE 5925943345d3Smrg fi 5926943345d3Smrg 5927943345d3Smrg if test -n "$inst_prefix_dir"; then 5928943345d3Smrg # Stick the inst_prefix_dir data into the link command. 5929943345d3Smrg relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 5930943345d3Smrg else 5931943345d3Smrg relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 5932943345d3Smrg fi 5933943345d3Smrg 5934943345d3Smrg $echo "$modename: warning: relinking \`$file'" 1>&2 5935943345d3Smrg $show "$relink_command" 5936943345d3Smrg if $run eval "$relink_command"; then : 5937943345d3Smrg else 5938943345d3Smrg $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 5939943345d3Smrg exit $EXIT_FAILURE 5940943345d3Smrg fi 5941943345d3Smrg fi 5942943345d3Smrg 5943943345d3Smrg # See the names of the shared library. 5944943345d3Smrg set dummy $library_names 5945943345d3Smrg if test -n "$2"; then 5946943345d3Smrg realname="$2" 5947943345d3Smrg shift 5948943345d3Smrg shift 5949943345d3Smrg 5950943345d3Smrg srcname="$realname" 5951943345d3Smrg test -n "$relink_command" && srcname="$realname"T 5952943345d3Smrg 5953943345d3Smrg # Install the shared library and build the symlinks. 5954943345d3Smrg $show "$install_prog $dir/$srcname $destdir/$realname" 5955943345d3Smrg $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? 5956943345d3Smrg if test -n "$stripme" && test -n "$striplib"; then 5957943345d3Smrg $show "$striplib $destdir/$realname" 5958943345d3Smrg $run eval "$striplib $destdir/$realname" || exit $? 5959943345d3Smrg fi 5960943345d3Smrg 5961943345d3Smrg if test "$#" -gt 0; then 5962943345d3Smrg # Delete the old symlinks, and create new ones. 5963943345d3Smrg # Try `ln -sf' first, because the `ln' binary might depend on 5964943345d3Smrg # the symlink we replace! Solaris /bin/ln does not understand -f, 5965943345d3Smrg # so we also need to try rm && ln -s. 5966943345d3Smrg for linkname 5967943345d3Smrg do 5968943345d3Smrg if test "$linkname" != "$realname"; then 5969943345d3Smrg $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 5970943345d3Smrg $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 5971943345d3Smrg fi 5972943345d3Smrg done 5973943345d3Smrg fi 5974943345d3Smrg 5975943345d3Smrg # Do each command in the postinstall commands. 5976943345d3Smrg lib="$destdir/$realname" 5977943345d3Smrg cmds=$postinstall_cmds 5978943345d3Smrg save_ifs="$IFS"; IFS='~' 5979943345d3Smrg for cmd in $cmds; do 5980943345d3Smrg IFS="$save_ifs" 5981943345d3Smrg eval cmd=\"$cmd\" 5982943345d3Smrg $show "$cmd" 5983943345d3Smrg $run eval "$cmd" || { 5984943345d3Smrg lt_exit=$? 5985943345d3Smrg 5986943345d3Smrg # Restore the uninstalled library and exit 5987943345d3Smrg if test "$mode" = relink; then 5988943345d3Smrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 5989943345d3Smrg fi 5990943345d3Smrg 5991943345d3Smrg exit $lt_exit 5992943345d3Smrg } 5993943345d3Smrg done 5994943345d3Smrg IFS="$save_ifs" 5995943345d3Smrg fi 5996943345d3Smrg 5997943345d3Smrg # Install the pseudo-library for information purposes. 5998943345d3Smrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 5999943345d3Smrg instname="$dir/$name"i 6000943345d3Smrg $show "$install_prog $instname $destdir/$name" 6001943345d3Smrg $run eval "$install_prog $instname $destdir/$name" || exit $? 6002943345d3Smrg 6003943345d3Smrg # Maybe install the static library, too. 6004943345d3Smrg test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 6005943345d3Smrg ;; 6006943345d3Smrg 6007943345d3Smrg *.lo) 6008943345d3Smrg # Install (i.e. copy) a libtool object. 6009943345d3Smrg 6010943345d3Smrg # Figure out destination file name, if it wasn't already specified. 6011943345d3Smrg if test -n "$destname"; then 6012943345d3Smrg destfile="$destdir/$destname" 6013943345d3Smrg else 6014943345d3Smrg destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6015943345d3Smrg destfile="$destdir/$destfile" 6016943345d3Smrg fi 6017943345d3Smrg 6018943345d3Smrg # Deduce the name of the destination old-style object file. 6019943345d3Smrg case $destfile in 6020943345d3Smrg *.lo) 6021943345d3Smrg staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 6022943345d3Smrg ;; 6023943345d3Smrg *.$objext) 6024943345d3Smrg staticdest="$destfile" 6025943345d3Smrg destfile= 6026943345d3Smrg ;; 6027943345d3Smrg *) 6028943345d3Smrg $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 6029943345d3Smrg $echo "$help" 1>&2 6030943345d3Smrg exit $EXIT_FAILURE 6031943345d3Smrg ;; 6032943345d3Smrg esac 6033943345d3Smrg 6034943345d3Smrg # Install the libtool object if requested. 6035943345d3Smrg if test -n "$destfile"; then 6036943345d3Smrg $show "$install_prog $file $destfile" 6037943345d3Smrg $run eval "$install_prog $file $destfile" || exit $? 6038943345d3Smrg fi 6039943345d3Smrg 6040943345d3Smrg # Install the old object if enabled. 6041943345d3Smrg if test "$build_old_libs" = yes; then 6042943345d3Smrg # Deduce the name of the old-style object file. 6043943345d3Smrg staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 6044943345d3Smrg 6045943345d3Smrg $show "$install_prog $staticobj $staticdest" 6046943345d3Smrg $run eval "$install_prog \$staticobj \$staticdest" || exit $? 6047943345d3Smrg fi 6048943345d3Smrg exit $EXIT_SUCCESS 6049943345d3Smrg ;; 6050943345d3Smrg 6051943345d3Smrg *) 6052943345d3Smrg # Figure out destination file name, if it wasn't already specified. 6053943345d3Smrg if test -n "$destname"; then 6054943345d3Smrg destfile="$destdir/$destname" 6055943345d3Smrg else 6056943345d3Smrg destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6057943345d3Smrg destfile="$destdir/$destfile" 6058943345d3Smrg fi 6059943345d3Smrg 6060943345d3Smrg # If the file is missing, and there is a .exe on the end, strip it 6061943345d3Smrg # because it is most likely a libtool script we actually want to 6062943345d3Smrg # install 6063943345d3Smrg stripped_ext="" 6064943345d3Smrg case $file in 6065943345d3Smrg *.exe) 6066943345d3Smrg if test ! -f "$file"; then 6067943345d3Smrg file=`$echo $file|${SED} 's,.exe$,,'` 6068943345d3Smrg stripped_ext=".exe" 6069943345d3Smrg fi 6070943345d3Smrg ;; 6071943345d3Smrg esac 6072943345d3Smrg 6073943345d3Smrg # Do a test to see if this is really a libtool program. 6074943345d3Smrg case $host in 6075943345d3Smrg *cygwin*|*mingw*) 6076943345d3Smrg wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 6077943345d3Smrg ;; 6078943345d3Smrg *) 6079943345d3Smrg wrapper=$file 6080943345d3Smrg ;; 6081943345d3Smrg esac 6082943345d3Smrg if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 6083943345d3Smrg notinst_deplibs= 6084943345d3Smrg relink_command= 6085943345d3Smrg 6086943345d3Smrg # Note that it is not necessary on cygwin/mingw to append a dot to 6087943345d3Smrg # foo even if both foo and FILE.exe exist: automatic-append-.exe 6088943345d3Smrg # behavior happens only for exec(3), not for open(2)! Also, sourcing 6089943345d3Smrg # `FILE.' does not work on cygwin managed mounts. 6090943345d3Smrg # 6091943345d3Smrg # If there is no directory component, then add one. 6092943345d3Smrg case $wrapper in 6093943345d3Smrg */* | *\\*) . ${wrapper} ;; 6094943345d3Smrg *) . ./${wrapper} ;; 6095943345d3Smrg esac 6096943345d3Smrg 6097943345d3Smrg # Check the variables that should have been set. 6098943345d3Smrg if test -z "$notinst_deplibs"; then 6099943345d3Smrg $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 6100943345d3Smrg exit $EXIT_FAILURE 6101943345d3Smrg fi 6102943345d3Smrg 6103943345d3Smrg finalize=yes 6104943345d3Smrg for lib in $notinst_deplibs; do 6105943345d3Smrg # Check to see that each library is installed. 6106943345d3Smrg libdir= 6107943345d3Smrg if test -f "$lib"; then 6108943345d3Smrg # If there is no directory component, then add one. 6109943345d3Smrg case $lib in 6110943345d3Smrg */* | *\\*) . $lib ;; 6111943345d3Smrg *) . ./$lib ;; 6112943345d3Smrg esac 6113943345d3Smrg fi 6114943345d3Smrg libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 6115943345d3Smrg if test -n "$libdir" && test ! -f "$libfile"; then 6116943345d3Smrg $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 6117943345d3Smrg finalize=no 6118943345d3Smrg fi 6119943345d3Smrg done 6120943345d3Smrg 6121943345d3Smrg relink_command= 6122943345d3Smrg # Note that it is not necessary on cygwin/mingw to append a dot to 6123943345d3Smrg # foo even if both foo and FILE.exe exist: automatic-append-.exe 6124943345d3Smrg # behavior happens only for exec(3), not for open(2)! Also, sourcing 6125943345d3Smrg # `FILE.' does not work on cygwin managed mounts. 6126943345d3Smrg # 6127943345d3Smrg # If there is no directory component, then add one. 6128943345d3Smrg case $wrapper in 6129943345d3Smrg */* | *\\*) . ${wrapper} ;; 6130943345d3Smrg *) . ./${wrapper} ;; 6131943345d3Smrg esac 6132943345d3Smrg 6133943345d3Smrg outputname= 6134943345d3Smrg if test "$fast_install" = no && test -n "$relink_command"; then 6135943345d3Smrg if test "$finalize" = yes && test -z "$run"; then 6136943345d3Smrg tmpdir=`func_mktempdir` 6137943345d3Smrg file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 6138943345d3Smrg outputname="$tmpdir/$file" 6139943345d3Smrg # Replace the output file specification. 6140943345d3Smrg relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` 6141943345d3Smrg 6142943345d3Smrg $show "$relink_command" 6143943345d3Smrg if $run eval "$relink_command"; then : 6144943345d3Smrg else 6145943345d3Smrg $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6146943345d3Smrg ${rm}r "$tmpdir" 6147943345d3Smrg continue 6148943345d3Smrg fi 6149943345d3Smrg file="$outputname" 6150943345d3Smrg else 6151943345d3Smrg $echo "$modename: warning: cannot relink \`$file'" 1>&2 6152943345d3Smrg fi 6153943345d3Smrg else 6154943345d3Smrg # Install the binary that we compiled earlier. 6155943345d3Smrg file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 6156943345d3Smrg fi 6157943345d3Smrg fi 6158943345d3Smrg 6159943345d3Smrg # remove .exe since cygwin /usr/bin/install will append another 6160943345d3Smrg # one anyway 6161943345d3Smrg case $install_prog,$host in 6162943345d3Smrg */usr/bin/install*,*cygwin*) 6163943345d3Smrg case $file:$destfile in 6164943345d3Smrg *.exe:*.exe) 6165943345d3Smrg # this is ok 6166943345d3Smrg ;; 6167943345d3Smrg *.exe:*) 6168943345d3Smrg destfile=$destfile.exe 6169943345d3Smrg ;; 6170943345d3Smrg *:*.exe) 6171943345d3Smrg destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 6172943345d3Smrg ;; 6173943345d3Smrg esac 6174943345d3Smrg ;; 6175943345d3Smrg esac 6176943345d3Smrg $show "$install_prog$stripme $file $destfile" 6177943345d3Smrg $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 6178943345d3Smrg test -n "$outputname" && ${rm}r "$tmpdir" 6179943345d3Smrg ;; 6180943345d3Smrg esac 6181943345d3Smrg done 6182943345d3Smrg 6183943345d3Smrg for file in $staticlibs; do 6184943345d3Smrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6185943345d3Smrg 6186943345d3Smrg # Set up the ranlib parameters. 6187943345d3Smrg oldlib="$destdir/$name" 6188943345d3Smrg 6189943345d3Smrg $show "$install_prog $file $oldlib" 6190943345d3Smrg $run eval "$install_prog \$file \$oldlib" || exit $? 6191943345d3Smrg 6192943345d3Smrg if test -n "$stripme" && test -n "$old_striplib"; then 6193943345d3Smrg $show "$old_striplib $oldlib" 6194943345d3Smrg $run eval "$old_striplib $oldlib" || exit $? 6195943345d3Smrg fi 6196943345d3Smrg 6197943345d3Smrg # Do each command in the postinstall commands. 6198943345d3Smrg cmds=$old_postinstall_cmds 6199943345d3Smrg save_ifs="$IFS"; IFS='~' 6200943345d3Smrg for cmd in $cmds; do 6201943345d3Smrg IFS="$save_ifs" 6202943345d3Smrg eval cmd=\"$cmd\" 6203943345d3Smrg $show "$cmd" 6204943345d3Smrg $run eval "$cmd" || exit $? 6205943345d3Smrg done 6206943345d3Smrg IFS="$save_ifs" 6207943345d3Smrg done 6208943345d3Smrg 6209943345d3Smrg if test -n "$future_libdirs"; then 6210943345d3Smrg $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 6211943345d3Smrg fi 6212943345d3Smrg 6213943345d3Smrg if test -n "$current_libdirs"; then 6214943345d3Smrg # Maybe just do a dry run. 6215943345d3Smrg test -n "$run" && current_libdirs=" -n$current_libdirs" 6216943345d3Smrg exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 6217943345d3Smrg else 6218943345d3Smrg exit $EXIT_SUCCESS 6219943345d3Smrg fi 6220943345d3Smrg ;; 6221943345d3Smrg 6222943345d3Smrg # libtool finish mode 6223943345d3Smrg finish) 6224943345d3Smrg modename="$modename: finish" 6225943345d3Smrg libdirs="$nonopt" 6226943345d3Smrg admincmds= 6227943345d3Smrg 6228943345d3Smrg if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 6229943345d3Smrg for dir 6230943345d3Smrg do 6231943345d3Smrg libdirs="$libdirs $dir" 6232943345d3Smrg done 6233943345d3Smrg 6234943345d3Smrg for libdir in $libdirs; do 6235943345d3Smrg if test -n "$finish_cmds"; then 6236943345d3Smrg # Do each command in the finish commands. 6237943345d3Smrg cmds=$finish_cmds 6238943345d3Smrg save_ifs="$IFS"; IFS='~' 6239943345d3Smrg for cmd in $cmds; do 6240943345d3Smrg IFS="$save_ifs" 6241943345d3Smrg eval cmd=\"$cmd\" 6242943345d3Smrg $show "$cmd" 6243943345d3Smrg $run eval "$cmd" || admincmds="$admincmds 6244943345d3Smrg $cmd" 6245943345d3Smrg done 6246943345d3Smrg IFS="$save_ifs" 6247943345d3Smrg fi 6248943345d3Smrg if test -n "$finish_eval"; then 6249943345d3Smrg # Do the single finish_eval. 6250943345d3Smrg eval cmds=\"$finish_eval\" 6251943345d3Smrg $run eval "$cmds" || admincmds="$admincmds 6252943345d3Smrg $cmds" 6253943345d3Smrg fi 6254943345d3Smrg done 6255943345d3Smrg fi 6256943345d3Smrg 6257943345d3Smrg # Exit here if they wanted silent mode. 6258943345d3Smrg test "$show" = : && exit $EXIT_SUCCESS 6259943345d3Smrg 6260943345d3Smrg $echo "X----------------------------------------------------------------------" | $Xsed 6261943345d3Smrg $echo "Libraries have been installed in:" 6262943345d3Smrg for libdir in $libdirs; do 6263943345d3Smrg $echo " $libdir" 6264943345d3Smrg done 6265943345d3Smrg $echo 6266943345d3Smrg $echo "If you ever happen to want to link against installed libraries" 6267943345d3Smrg $echo "in a given directory, LIBDIR, you must either use libtool, and" 6268943345d3Smrg $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 6269943345d3Smrg $echo "flag during linking and do at least one of the following:" 6270943345d3Smrg if test -n "$shlibpath_var"; then 6271943345d3Smrg $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 6272943345d3Smrg $echo " during execution" 6273943345d3Smrg fi 6274943345d3Smrg if test -n "$runpath_var"; then 6275943345d3Smrg $echo " - add LIBDIR to the \`$runpath_var' environment variable" 6276943345d3Smrg $echo " during linking" 6277943345d3Smrg fi 6278943345d3Smrg if test -n "$hardcode_libdir_flag_spec"; then 6279943345d3Smrg libdir=LIBDIR 6280943345d3Smrg eval flag=\"$hardcode_libdir_flag_spec\" 6281943345d3Smrg 6282943345d3Smrg $echo " - use the \`$flag' linker flag" 6283943345d3Smrg fi 6284943345d3Smrg if test -n "$admincmds"; then 6285943345d3Smrg $echo " - have your system administrator run these commands:$admincmds" 6286943345d3Smrg fi 6287943345d3Smrg if test -f /etc/ld.so.conf; then 6288943345d3Smrg $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 6289943345d3Smrg fi 6290943345d3Smrg $echo 6291943345d3Smrg $echo "See any operating system documentation about shared libraries for" 6292943345d3Smrg $echo "more information, such as the ld(1) and ld.so(8) manual pages." 6293943345d3Smrg $echo "X----------------------------------------------------------------------" | $Xsed 6294943345d3Smrg exit $EXIT_SUCCESS 6295943345d3Smrg ;; 6296943345d3Smrg 6297943345d3Smrg # libtool execute mode 6298943345d3Smrg execute) 6299943345d3Smrg modename="$modename: execute" 6300943345d3Smrg 6301943345d3Smrg # The first argument is the command name. 6302943345d3Smrg cmd="$nonopt" 6303943345d3Smrg if test -z "$cmd"; then 6304943345d3Smrg $echo "$modename: you must specify a COMMAND" 1>&2 6305943345d3Smrg $echo "$help" 6306943345d3Smrg exit $EXIT_FAILURE 6307943345d3Smrg fi 6308943345d3Smrg 6309943345d3Smrg # Handle -dlopen flags immediately. 6310943345d3Smrg for file in $execute_dlfiles; do 6311943345d3Smrg if test ! -f "$file"; then 6312943345d3Smrg $echo "$modename: \`$file' is not a file" 1>&2 6313943345d3Smrg $echo "$help" 1>&2 6314943345d3Smrg exit $EXIT_FAILURE 6315943345d3Smrg fi 6316943345d3Smrg 6317943345d3Smrg dir= 6318943345d3Smrg case $file in 6319943345d3Smrg *.la) 6320943345d3Smrg # Check to see that this really is a libtool archive. 6321943345d3Smrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 6322943345d3Smrg else 6323943345d3Smrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 6324943345d3Smrg $echo "$help" 1>&2 6325943345d3Smrg exit $EXIT_FAILURE 6326943345d3Smrg fi 6327943345d3Smrg 6328943345d3Smrg # Read the libtool library. 6329943345d3Smrg dlname= 6330943345d3Smrg library_names= 6331943345d3Smrg 6332943345d3Smrg # If there is no directory component, then add one. 6333943345d3Smrg case $file in 6334943345d3Smrg */* | *\\*) . $file ;; 6335943345d3Smrg *) . ./$file ;; 6336943345d3Smrg esac 6337943345d3Smrg 6338943345d3Smrg # Skip this library if it cannot be dlopened. 6339943345d3Smrg if test -z "$dlname"; then 6340943345d3Smrg # Warn if it was a shared library. 6341943345d3Smrg test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 6342943345d3Smrg continue 6343943345d3Smrg fi 6344943345d3Smrg 6345943345d3Smrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6346943345d3Smrg test "X$dir" = "X$file" && dir=. 6347943345d3Smrg 6348943345d3Smrg if test -f "$dir/$objdir/$dlname"; then 6349943345d3Smrg dir="$dir/$objdir" 6350943345d3Smrg else 6351943345d3Smrg $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 6352943345d3Smrg exit $EXIT_FAILURE 6353943345d3Smrg fi 6354943345d3Smrg ;; 6355943345d3Smrg 6356943345d3Smrg *.lo) 6357943345d3Smrg # Just add the directory containing the .lo file. 6358943345d3Smrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6359943345d3Smrg test "X$dir" = "X$file" && dir=. 6360943345d3Smrg ;; 6361943345d3Smrg 6362943345d3Smrg *) 6363943345d3Smrg $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 6364943345d3Smrg continue 6365943345d3Smrg ;; 6366943345d3Smrg esac 6367943345d3Smrg 6368943345d3Smrg # Get the absolute pathname. 6369943345d3Smrg absdir=`cd "$dir" && pwd` 6370943345d3Smrg test -n "$absdir" && dir="$absdir" 6371943345d3Smrg 6372943345d3Smrg # Now add the directory to shlibpath_var. 6373943345d3Smrg if eval "test -z \"\$$shlibpath_var\""; then 6374943345d3Smrg eval "$shlibpath_var=\"\$dir\"" 6375943345d3Smrg else 6376943345d3Smrg eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 6377943345d3Smrg fi 6378943345d3Smrg done 6379943345d3Smrg 6380943345d3Smrg # This variable tells wrapper scripts just to set shlibpath_var 6381943345d3Smrg # rather than running their programs. 6382943345d3Smrg libtool_execute_magic="$magic" 6383943345d3Smrg 6384943345d3Smrg # Check if any of the arguments is a wrapper script. 6385943345d3Smrg args= 6386943345d3Smrg for file 6387943345d3Smrg do 6388943345d3Smrg case $file in 6389943345d3Smrg -*) ;; 6390943345d3Smrg *) 6391943345d3Smrg # Do a test to see if this is really a libtool program. 6392943345d3Smrg if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6393943345d3Smrg # If there is no directory component, then add one. 6394943345d3Smrg case $file in 6395943345d3Smrg */* | *\\*) . $file ;; 6396943345d3Smrg *) . ./$file ;; 6397943345d3Smrg esac 6398943345d3Smrg 6399943345d3Smrg # Transform arg to wrapped name. 6400943345d3Smrg file="$progdir/$program" 6401943345d3Smrg fi 6402943345d3Smrg ;; 6403943345d3Smrg esac 6404943345d3Smrg # Quote arguments (to preserve shell metacharacters). 6405943345d3Smrg file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 6406943345d3Smrg args="$args \"$file\"" 6407943345d3Smrg done 6408943345d3Smrg 6409943345d3Smrg if test -z "$run"; then 6410943345d3Smrg if test -n "$shlibpath_var"; then 6411943345d3Smrg # Export the shlibpath_var. 6412943345d3Smrg eval "export $shlibpath_var" 6413943345d3Smrg fi 6414943345d3Smrg 6415943345d3Smrg # Restore saved environment variables 6416943345d3Smrg if test "${save_LC_ALL+set}" = set; then 6417943345d3Smrg LC_ALL="$save_LC_ALL"; export LC_ALL 6418943345d3Smrg fi 6419943345d3Smrg if test "${save_LANG+set}" = set; then 6420943345d3Smrg LANG="$save_LANG"; export LANG 6421943345d3Smrg fi 6422943345d3Smrg 6423943345d3Smrg # Now prepare to actually exec the command. 6424943345d3Smrg exec_cmd="\$cmd$args" 6425943345d3Smrg else 6426943345d3Smrg # Display what would be done. 6427943345d3Smrg if test -n "$shlibpath_var"; then 6428943345d3Smrg eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 6429943345d3Smrg $echo "export $shlibpath_var" 6430943345d3Smrg fi 6431943345d3Smrg $echo "$cmd$args" 6432943345d3Smrg exit $EXIT_SUCCESS 6433943345d3Smrg fi 6434943345d3Smrg ;; 6435943345d3Smrg 6436943345d3Smrg # libtool clean and uninstall mode 6437943345d3Smrg clean | uninstall) 6438943345d3Smrg modename="$modename: $mode" 6439943345d3Smrg rm="$nonopt" 6440943345d3Smrg files= 6441943345d3Smrg rmforce= 6442943345d3Smrg exit_status=0 6443943345d3Smrg 6444943345d3Smrg # This variable tells wrapper scripts just to set variables rather 6445943345d3Smrg # than running their programs. 6446943345d3Smrg libtool_install_magic="$magic" 6447943345d3Smrg 6448943345d3Smrg for arg 6449943345d3Smrg do 6450943345d3Smrg case $arg in 6451943345d3Smrg -f) rm="$rm $arg"; rmforce=yes ;; 6452943345d3Smrg -*) rm="$rm $arg" ;; 6453943345d3Smrg *) files="$files $arg" ;; 6454943345d3Smrg esac 6455943345d3Smrg done 6456943345d3Smrg 6457943345d3Smrg if test -z "$rm"; then 6458943345d3Smrg $echo "$modename: you must specify an RM program" 1>&2 6459943345d3Smrg $echo "$help" 1>&2 6460943345d3Smrg exit $EXIT_FAILURE 6461943345d3Smrg fi 6462943345d3Smrg 6463943345d3Smrg rmdirs= 6464943345d3Smrg 6465943345d3Smrg origobjdir="$objdir" 6466943345d3Smrg for file in $files; do 6467943345d3Smrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6468943345d3Smrg if test "X$dir" = "X$file"; then 6469943345d3Smrg dir=. 6470943345d3Smrg objdir="$origobjdir" 6471943345d3Smrg else 6472943345d3Smrg objdir="$dir/$origobjdir" 6473943345d3Smrg fi 6474943345d3Smrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6475943345d3Smrg test "$mode" = uninstall && objdir="$dir" 6476943345d3Smrg 6477943345d3Smrg # Remember objdir for removal later, being careful to avoid duplicates 6478943345d3Smrg if test "$mode" = clean; then 6479943345d3Smrg case " $rmdirs " in 6480943345d3Smrg *" $objdir "*) ;; 6481943345d3Smrg *) rmdirs="$rmdirs $objdir" ;; 6482943345d3Smrg esac 6483943345d3Smrg fi 6484943345d3Smrg 6485943345d3Smrg # Don't error if the file doesn't exist and rm -f was used. 6486943345d3Smrg if (test -L "$file") >/dev/null 2>&1 \ 6487943345d3Smrg || (test -h "$file") >/dev/null 2>&1 \ 6488943345d3Smrg || test -f "$file"; then 6489943345d3Smrg : 6490943345d3Smrg elif test -d "$file"; then 6491943345d3Smrg exit_status=1 6492943345d3Smrg continue 6493943345d3Smrg elif test "$rmforce" = yes; then 6494943345d3Smrg continue 6495943345d3Smrg fi 6496943345d3Smrg 6497943345d3Smrg rmfiles="$file" 6498943345d3Smrg 6499943345d3Smrg case $name in 6500943345d3Smrg *.la) 6501943345d3Smrg # Possibly a libtool archive, so verify it. 6502943345d3Smrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6503943345d3Smrg . $dir/$name 6504943345d3Smrg 6505943345d3Smrg # Delete the libtool libraries and symlinks. 6506943345d3Smrg for n in $library_names; do 6507943345d3Smrg rmfiles="$rmfiles $objdir/$n" 6508943345d3Smrg done 6509943345d3Smrg test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 6510943345d3Smrg 6511943345d3Smrg case "$mode" in 6512943345d3Smrg clean) 6513943345d3Smrg case " $library_names " in 6514943345d3Smrg # " " in the beginning catches empty $dlname 6515943345d3Smrg *" $dlname "*) ;; 6516943345d3Smrg *) rmfiles="$rmfiles $objdir/$dlname" ;; 6517943345d3Smrg esac 6518943345d3Smrg test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 6519943345d3Smrg ;; 6520943345d3Smrg uninstall) 6521943345d3Smrg if test -n "$library_names"; then 6522943345d3Smrg # Do each command in the postuninstall commands. 6523943345d3Smrg cmds=$postuninstall_cmds 6524943345d3Smrg save_ifs="$IFS"; IFS='~' 6525943345d3Smrg for cmd in $cmds; do 6526943345d3Smrg IFS="$save_ifs" 6527943345d3Smrg eval cmd=\"$cmd\" 6528943345d3Smrg $show "$cmd" 6529943345d3Smrg $run eval "$cmd" 6530943345d3Smrg if test "$?" -ne 0 && test "$rmforce" != yes; then 6531943345d3Smrg exit_status=1 6532943345d3Smrg fi 6533943345d3Smrg done 6534943345d3Smrg IFS="$save_ifs" 6535943345d3Smrg fi 6536943345d3Smrg 6537943345d3Smrg if test -n "$old_library"; then 6538943345d3Smrg # Do each command in the old_postuninstall commands. 6539943345d3Smrg cmds=$old_postuninstall_cmds 6540943345d3Smrg save_ifs="$IFS"; IFS='~' 6541943345d3Smrg for cmd in $cmds; do 6542943345d3Smrg IFS="$save_ifs" 6543943345d3Smrg eval cmd=\"$cmd\" 6544943345d3Smrg $show "$cmd" 6545943345d3Smrg $run eval "$cmd" 6546943345d3Smrg if test "$?" -ne 0 && test "$rmforce" != yes; then 6547943345d3Smrg exit_status=1 6548943345d3Smrg fi 6549943345d3Smrg done 6550943345d3Smrg IFS="$save_ifs" 6551943345d3Smrg fi 6552943345d3Smrg # FIXME: should reinstall the best remaining shared library. 6553943345d3Smrg ;; 6554943345d3Smrg esac 6555943345d3Smrg fi 6556943345d3Smrg ;; 6557943345d3Smrg 6558943345d3Smrg *.lo) 6559943345d3Smrg # Possibly a libtool object, so verify it. 6560943345d3Smrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6561943345d3Smrg 6562943345d3Smrg # Read the .lo file 6563943345d3Smrg . $dir/$name 6564943345d3Smrg 6565943345d3Smrg # Add PIC object to the list of files to remove. 6566943345d3Smrg if test -n "$pic_object" \ 6567943345d3Smrg && test "$pic_object" != none; then 6568943345d3Smrg rmfiles="$rmfiles $dir/$pic_object" 6569943345d3Smrg fi 6570943345d3Smrg 6571943345d3Smrg # Add non-PIC object to the list of files to remove. 6572943345d3Smrg if test -n "$non_pic_object" \ 6573943345d3Smrg && test "$non_pic_object" != none; then 6574943345d3Smrg rmfiles="$rmfiles $dir/$non_pic_object" 6575943345d3Smrg fi 6576943345d3Smrg fi 6577943345d3Smrg ;; 6578943345d3Smrg 6579943345d3Smrg *) 6580943345d3Smrg if test "$mode" = clean ; then 6581943345d3Smrg noexename=$name 6582943345d3Smrg case $file in 6583943345d3Smrg *.exe) 6584943345d3Smrg file=`$echo $file|${SED} 's,.exe$,,'` 6585943345d3Smrg noexename=`$echo $name|${SED} 's,.exe$,,'` 6586943345d3Smrg # $file with .exe has already been added to rmfiles, 6587943345d3Smrg # add $file without .exe 6588943345d3Smrg rmfiles="$rmfiles $file" 6589943345d3Smrg ;; 6590943345d3Smrg esac 6591943345d3Smrg # Do a test to see if this is a libtool program. 6592943345d3Smrg if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6593943345d3Smrg relink_command= 6594943345d3Smrg . $dir/$noexename 6595943345d3Smrg 6596943345d3Smrg # note $name still contains .exe if it was in $file originally 6597943345d3Smrg # as does the version of $file that was added into $rmfiles 6598943345d3Smrg rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 6599943345d3Smrg if test "$fast_install" = yes && test -n "$relink_command"; then 6600943345d3Smrg rmfiles="$rmfiles $objdir/lt-$name" 6601943345d3Smrg fi 6602943345d3Smrg if test "X$noexename" != "X$name" ; then 6603943345d3Smrg rmfiles="$rmfiles $objdir/lt-${noexename}.c" 6604943345d3Smrg fi 6605943345d3Smrg fi 6606943345d3Smrg fi 6607943345d3Smrg ;; 6608943345d3Smrg esac 6609943345d3Smrg $show "$rm $rmfiles" 6610943345d3Smrg $run $rm $rmfiles || exit_status=1 6611943345d3Smrg done 6612943345d3Smrg objdir="$origobjdir" 6613943345d3Smrg 6614943345d3Smrg # Try to remove the ${objdir}s in the directories where we deleted files 6615943345d3Smrg for dir in $rmdirs; do 6616943345d3Smrg if test -d "$dir"; then 6617943345d3Smrg $show "rmdir $dir" 6618943345d3Smrg $run rmdir $dir >/dev/null 2>&1 6619943345d3Smrg fi 6620943345d3Smrg done 6621943345d3Smrg 6622943345d3Smrg exit $exit_status 6623943345d3Smrg ;; 6624943345d3Smrg 6625943345d3Smrg "") 6626943345d3Smrg $echo "$modename: you must specify a MODE" 1>&2 6627943345d3Smrg $echo "$generic_help" 1>&2 6628943345d3Smrg exit $EXIT_FAILURE 6629943345d3Smrg ;; 6630943345d3Smrg esac 6631943345d3Smrg 6632943345d3Smrg if test -z "$exec_cmd"; then 6633943345d3Smrg $echo "$modename: invalid operation mode \`$mode'" 1>&2 6634943345d3Smrg $echo "$generic_help" 1>&2 6635943345d3Smrg exit $EXIT_FAILURE 6636943345d3Smrg fi 6637943345d3Smrgfi # test -z "$show_help" 6638943345d3Smrg 6639943345d3Smrgif test -n "$exec_cmd"; then 6640943345d3Smrg eval exec $exec_cmd 6641943345d3Smrg exit $EXIT_FAILURE 6642943345d3Smrgfi 6643943345d3Smrg 6644943345d3Smrg# We need to display help for each of the modes. 6645943345d3Smrgcase $mode in 6646943345d3Smrg"") $echo \ 6647943345d3Smrg"Usage: $modename [OPTION]... [MODE-ARG]... 6648943345d3Smrg 6649943345d3SmrgProvide generalized library-building support services. 6650943345d3Smrg 6651943345d3Smrg --config show all configuration variables 6652943345d3Smrg --debug enable verbose shell tracing 6653943345d3Smrg-n, --dry-run display commands without modifying any files 6654943345d3Smrg --features display basic configuration information and exit 6655943345d3Smrg --finish same as \`--mode=finish' 6656943345d3Smrg --help display this help message and exit 6657943345d3Smrg --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 6658943345d3Smrg --quiet same as \`--silent' 6659943345d3Smrg --silent don't print informational messages 6660943345d3Smrg --tag=TAG use configuration variables from tag TAG 6661943345d3Smrg --version print version information 6662943345d3Smrg 6663943345d3SmrgMODE must be one of the following: 6664943345d3Smrg 6665943345d3Smrg clean remove files from the build directory 6666943345d3Smrg compile compile a source file into a libtool object 6667943345d3Smrg execute automatically set library path, then run a program 6668943345d3Smrg finish complete the installation of libtool libraries 6669943345d3Smrg install install libraries or executables 6670943345d3Smrg link create a library or an executable 6671943345d3Smrg uninstall remove libraries from an installed directory 6672943345d3Smrg 6673943345d3SmrgMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 6674943345d3Smrga more detailed description of MODE. 6675943345d3Smrg 6676943345d3SmrgReport bugs to <bug-libtool@gnu.org>." 6677943345d3Smrg exit $EXIT_SUCCESS 6678943345d3Smrg ;; 6679943345d3Smrg 6680943345d3Smrgclean) 6681943345d3Smrg $echo \ 6682943345d3Smrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 6683943345d3Smrg 6684943345d3SmrgRemove files from the build directory. 6685943345d3Smrg 6686943345d3SmrgRM is the name of the program to use to delete files associated with each FILE 6687943345d3Smrg(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6688943345d3Smrgto RM. 6689943345d3Smrg 6690943345d3SmrgIf FILE is a libtool library, object or program, all the files associated 6691943345d3Smrgwith it are deleted. Otherwise, only FILE itself is deleted using RM." 6692943345d3Smrg ;; 6693943345d3Smrg 6694943345d3Smrgcompile) 6695943345d3Smrg $echo \ 6696943345d3Smrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 6697943345d3Smrg 6698943345d3SmrgCompile a source file into a libtool library object. 6699943345d3Smrg 6700943345d3SmrgThis mode accepts the following additional options: 6701943345d3Smrg 6702943345d3Smrg -o OUTPUT-FILE set the output file name to OUTPUT-FILE 6703943345d3Smrg -prefer-pic try to building PIC objects only 6704943345d3Smrg -prefer-non-pic try to building non-PIC objects only 6705943345d3Smrg -static always build a \`.o' file suitable for static linking 6706943345d3Smrg 6707943345d3SmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 6708943345d3Smrgfrom the given SOURCEFILE. 6709943345d3Smrg 6710943345d3SmrgThe output file name is determined by removing the directory component from 6711943345d3SmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the 6712943345d3Smrglibrary object suffix, \`.lo'." 6713943345d3Smrg ;; 6714943345d3Smrg 6715943345d3Smrgexecute) 6716943345d3Smrg $echo \ 6717943345d3Smrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 6718943345d3Smrg 6719943345d3SmrgAutomatically set library path, then run a program. 6720943345d3Smrg 6721943345d3SmrgThis mode accepts the following additional options: 6722943345d3Smrg 6723943345d3Smrg -dlopen FILE add the directory containing FILE to the library path 6724943345d3Smrg 6725943345d3SmrgThis mode sets the library path environment variable according to \`-dlopen' 6726943345d3Smrgflags. 6727943345d3Smrg 6728943345d3SmrgIf any of the ARGS are libtool executable wrappers, then they are translated 6729943345d3Smrginto their corresponding uninstalled binary, and any of their required library 6730943345d3Smrgdirectories are added to the library path. 6731943345d3Smrg 6732943345d3SmrgThen, COMMAND is executed, with ARGS as arguments." 6733943345d3Smrg ;; 6734943345d3Smrg 6735943345d3Smrgfinish) 6736943345d3Smrg $echo \ 6737943345d3Smrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 6738943345d3Smrg 6739943345d3SmrgComplete the installation of libtool libraries. 6740943345d3Smrg 6741943345d3SmrgEach LIBDIR is a directory that contains libtool libraries. 6742943345d3Smrg 6743943345d3SmrgThe commands that this mode executes may require superuser privileges. Use 6744943345d3Smrgthe \`--dry-run' option if you just want to see what would be executed." 6745943345d3Smrg ;; 6746943345d3Smrg 6747943345d3Smrginstall) 6748943345d3Smrg $echo \ 6749943345d3Smrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 6750943345d3Smrg 6751943345d3SmrgInstall executables or libraries. 6752943345d3Smrg 6753943345d3SmrgINSTALL-COMMAND is the installation command. The first component should be 6754943345d3Smrgeither the \`install' or \`cp' program. 6755943345d3Smrg 6756943345d3SmrgThe rest of the components are interpreted as arguments to that command (only 6757943345d3SmrgBSD-compatible install options are recognized)." 6758943345d3Smrg ;; 6759943345d3Smrg 6760943345d3Smrglink) 6761943345d3Smrg $echo \ 6762943345d3Smrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 6763943345d3Smrg 6764943345d3SmrgLink object files or libraries together to form another library, or to 6765943345d3Smrgcreate an executable program. 6766943345d3Smrg 6767943345d3SmrgLINK-COMMAND is a command using the C compiler that you would use to create 6768943345d3Smrga program from several object files. 6769943345d3Smrg 6770943345d3SmrgThe following components of LINK-COMMAND are treated specially: 6771943345d3Smrg 6772943345d3Smrg -all-static do not do any dynamic linking at all 6773943345d3Smrg -avoid-version do not add a version suffix if possible 6774943345d3Smrg -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 6775943345d3Smrg -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 6776943345d3Smrg -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 6777943345d3Smrg -export-symbols SYMFILE 6778943345d3Smrg try to export only the symbols listed in SYMFILE 6779943345d3Smrg -export-symbols-regex REGEX 6780943345d3Smrg try to export only the symbols matching REGEX 6781943345d3Smrg -LLIBDIR search LIBDIR for required installed libraries 6782943345d3Smrg -lNAME OUTPUT-FILE requires the installed library libNAME 6783943345d3Smrg -module build a library that can dlopened 6784943345d3Smrg -no-fast-install disable the fast-install mode 6785943345d3Smrg -no-install link a not-installable executable 6786943345d3Smrg -no-undefined declare that a library does not refer to external symbols 6787943345d3Smrg -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 6788943345d3Smrg -objectlist FILE Use a list of object files found in FILE to specify objects 6789943345d3Smrg -precious-files-regex REGEX 6790943345d3Smrg don't remove output files matching REGEX 6791943345d3Smrg -release RELEASE specify package release information 6792943345d3Smrg -rpath LIBDIR the created library will eventually be installed in LIBDIR 6793943345d3Smrg -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 6794943345d3Smrg -static do not do any dynamic linking of libtool libraries 6795943345d3Smrg -version-info CURRENT[:REVISION[:AGE]] 6796943345d3Smrg specify library version info [each variable defaults to 0] 6797943345d3Smrg 6798943345d3SmrgAll other options (arguments beginning with \`-') are ignored. 6799943345d3Smrg 6800943345d3SmrgEvery other argument is treated as a filename. Files ending in \`.la' are 6801943345d3Smrgtreated as uninstalled libtool libraries, other files are standard or library 6802943345d3Smrgobject files. 6803943345d3Smrg 6804943345d3SmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 6805943345d3Smrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is 6806943345d3Smrgrequired, except when creating a convenience library. 6807943345d3Smrg 6808943345d3SmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 6809943345d3Smrgusing \`ar' and \`ranlib', or on Windows using \`lib'. 6810943345d3Smrg 6811943345d3SmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 6812943345d3Smrgis created, otherwise an executable program is created." 6813943345d3Smrg ;; 6814943345d3Smrg 6815943345d3Smrguninstall) 6816943345d3Smrg $echo \ 6817943345d3Smrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 6818943345d3Smrg 6819943345d3SmrgRemove libraries from an installation directory. 6820943345d3Smrg 6821943345d3SmrgRM is the name of the program to use to delete files associated with each FILE 6822943345d3Smrg(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6823943345d3Smrgto RM. 6824943345d3Smrg 6825943345d3SmrgIf FILE is a libtool library, all the files associated with it are deleted. 6826943345d3SmrgOtherwise, only FILE itself is deleted using RM." 6827943345d3Smrg ;; 6828943345d3Smrg 6829943345d3Smrg*) 6830943345d3Smrg $echo "$modename: invalid operation mode \`$mode'" 1>&2 6831943345d3Smrg $echo "$help" 1>&2 6832943345d3Smrg exit $EXIT_FAILURE 6833943345d3Smrg ;; 6834943345d3Smrgesac 6835943345d3Smrg 6836943345d3Smrg$echo 6837943345d3Smrg$echo "Try \`$modename --help' for more information about other modes." 6838943345d3Smrg 6839943345d3Smrgexit $? 6840943345d3Smrg 6841943345d3Smrg# The TAGs below are defined such that we never get into a situation 6842943345d3Smrg# in which we disable both kinds of libraries. Given conflicting 6843943345d3Smrg# choices, we go for a static library, that is the most portable, 6844943345d3Smrg# since we can't tell whether shared libraries were disabled because 6845943345d3Smrg# the user asked for that or because the platform doesn't support 6846943345d3Smrg# them. This is particularly important on AIX, because we don't 6847943345d3Smrg# support having both static and shared libraries enabled at the same 6848943345d3Smrg# time on that platform, so we default to a shared-only configuration. 6849943345d3Smrg# If a disable-shared tag is given, we'll fallback to a static-only 6850943345d3Smrg# configuration. But we'll never go from static-only to shared-only. 6851943345d3Smrg 6852943345d3Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 6853943345d3Smrgdisable_libs=shared 6854943345d3Smrg# ### END LIBTOOL TAG CONFIG: disable-shared 6855943345d3Smrg 6856943345d3Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static 6857943345d3Smrgdisable_libs=static 6858943345d3Smrg# ### END LIBTOOL TAG CONFIG: disable-static 6859943345d3Smrg 6860943345d3Smrg# Local Variables: 6861943345d3Smrg# mode:shell-script 6862943345d3Smrg# sh-indentation:2 6863943345d3Smrg# End: 6864