ltmain.sh revision ab47cfaa
1ab47cfaaSmrg# ltmain.sh - Provide generalized library-building support services. 2ab47cfaaSmrg# NOTE: Changing this file will not affect anything until you rerun configure. 3ab47cfaaSmrg# 4ab47cfaaSmrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 5ab47cfaaSmrg# Free Software Foundation, Inc. 6ab47cfaaSmrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 7ab47cfaaSmrg# 8ab47cfaaSmrg# This program is free software; you can redistribute it and/or modify 9ab47cfaaSmrg# it under the terms of the GNU General Public License as published by 10ab47cfaaSmrg# the Free Software Foundation; either version 2 of the License, or 11ab47cfaaSmrg# (at your option) any later version. 12ab47cfaaSmrg# 13ab47cfaaSmrg# This program is distributed in the hope that it will be useful, but 14ab47cfaaSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of 15ab47cfaaSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16ab47cfaaSmrg# General Public License for more details. 17ab47cfaaSmrg# 18ab47cfaaSmrg# You should have received a copy of the GNU General Public License 19ab47cfaaSmrg# along with this program; if not, write to the Free Software 20ab47cfaaSmrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21ab47cfaaSmrg# 22ab47cfaaSmrg# As a special exception to the GNU General Public License, if you 23ab47cfaaSmrg# distribute this file as part of a program that contains a 24ab47cfaaSmrg# configuration script generated by Autoconf, you may include it under 25ab47cfaaSmrg# the same distribution terms that you use for the rest of that program. 26ab47cfaaSmrg 27ab47cfaaSmrgbasename="s,^.*/,,g" 28ab47cfaaSmrg 29ab47cfaaSmrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 30ab47cfaaSmrg# is ksh but when the shell is invoked as "sh" and the current value of 31ab47cfaaSmrg# the _XPG environment variable is not equal to 1 (one), the special 32ab47cfaaSmrg# positional parameter $0, within a function call, is the name of the 33ab47cfaaSmrg# function. 34ab47cfaaSmrgprogpath="$0" 35ab47cfaaSmrg 36ab47cfaaSmrg# The name of this program: 37ab47cfaaSmrgprogname=`echo "$progpath" | $SED $basename` 38ab47cfaaSmrgmodename="$progname" 39ab47cfaaSmrg 40ab47cfaaSmrg# Global variables: 41ab47cfaaSmrgEXIT_SUCCESS=0 42ab47cfaaSmrgEXIT_FAILURE=1 43ab47cfaaSmrg 44ab47cfaaSmrgPROGRAM=ltmain.sh 45ab47cfaaSmrgPACKAGE=libtool 46ab47cfaaSmrgVERSION="1.5.22 Debian 1.5.22-4" 47ab47cfaaSmrgTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" 48ab47cfaaSmrg 49ab47cfaaSmrg# See if we are running on zsh, and set the options which allow our 50ab47cfaaSmrg# commands through without removal of \ escapes. 51ab47cfaaSmrgif test -n "${ZSH_VERSION+set}" ; then 52ab47cfaaSmrg setopt NO_GLOB_SUBST 53ab47cfaaSmrgfi 54ab47cfaaSmrg 55ab47cfaaSmrg# Check that we have a working $echo. 56ab47cfaaSmrgif test "X$1" = X--no-reexec; then 57ab47cfaaSmrg # Discard the --no-reexec flag, and continue. 58ab47cfaaSmrg shift 59ab47cfaaSmrgelif test "X$1" = X--fallback-echo; then 60ab47cfaaSmrg # Avoid inline document here, it may be left over 61ab47cfaaSmrg : 62ab47cfaaSmrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 63ab47cfaaSmrg # Yippee, $echo works! 64ab47cfaaSmrg : 65ab47cfaaSmrgelse 66ab47cfaaSmrg # Restart under the correct shell, and then maybe $echo will work. 67ab47cfaaSmrg exec $SHELL "$progpath" --no-reexec ${1+"$@"} 68ab47cfaaSmrgfi 69ab47cfaaSmrg 70ab47cfaaSmrgif test "X$1" = X--fallback-echo; then 71ab47cfaaSmrg # used as fallback echo 72ab47cfaaSmrg shift 73ab47cfaaSmrg cat <<EOF 74ab47cfaaSmrg$* 75ab47cfaaSmrgEOF 76ab47cfaaSmrg exit $EXIT_SUCCESS 77ab47cfaaSmrgfi 78ab47cfaaSmrg 79ab47cfaaSmrgdefault_mode= 80ab47cfaaSmrghelp="Try \`$progname --help' for more information." 81ab47cfaaSmrgmagic="%%%MAGIC variable%%%" 82ab47cfaaSmrgmkdir="mkdir" 83ab47cfaaSmrgmv="mv -f" 84ab47cfaaSmrgrm="rm -f" 85ab47cfaaSmrg 86ab47cfaaSmrg# Sed substitution that helps us do robust quoting. It backslashifies 87ab47cfaaSmrg# metacharacters that are still active within double-quoted strings. 88ab47cfaaSmrgXsed="${SED}"' -e 1s/^X//' 89ab47cfaaSmrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 90ab47cfaaSmrg# test EBCDIC or ASCII 91ab47cfaaSmrgcase `echo X|tr X '\101'` in 92ab47cfaaSmrg A) # ASCII based system 93ab47cfaaSmrg # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 94ab47cfaaSmrg SP2NL='tr \040 \012' 95ab47cfaaSmrg NL2SP='tr \015\012 \040\040' 96ab47cfaaSmrg ;; 97ab47cfaaSmrg *) # EBCDIC based system 98ab47cfaaSmrg SP2NL='tr \100 \n' 99ab47cfaaSmrg NL2SP='tr \r\n \100\100' 100ab47cfaaSmrg ;; 101ab47cfaaSmrgesac 102ab47cfaaSmrg 103ab47cfaaSmrg# NLS nuisances. 104ab47cfaaSmrg# Only set LANG and LC_ALL to C if already set. 105ab47cfaaSmrg# These must not be set unconditionally because not all systems understand 106ab47cfaaSmrg# e.g. LANG=C (notably SCO). 107ab47cfaaSmrg# We save the old values to restore during execute mode. 108ab47cfaaSmrgif test "${LC_ALL+set}" = set; then 109ab47cfaaSmrg save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL 110ab47cfaaSmrgfi 111ab47cfaaSmrgif test "${LANG+set}" = set; then 112ab47cfaaSmrg save_LANG="$LANG"; LANG=C; export LANG 113ab47cfaaSmrgfi 114ab47cfaaSmrg 115ab47cfaaSmrg# Make sure IFS has a sensible default 116ab47cfaaSmrglt_nl=' 117ab47cfaaSmrg' 118ab47cfaaSmrgIFS=" $lt_nl" 119ab47cfaaSmrg 120ab47cfaaSmrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 121ab47cfaaSmrg $echo "$modename: not configured to build any kind of library" 1>&2 122ab47cfaaSmrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 123ab47cfaaSmrg exit $EXIT_FAILURE 124ab47cfaaSmrgfi 125ab47cfaaSmrg 126ab47cfaaSmrg# Global variables. 127ab47cfaaSmrgmode=$default_mode 128ab47cfaaSmrgnonopt= 129ab47cfaaSmrgprev= 130ab47cfaaSmrgprevopt= 131ab47cfaaSmrgrun= 132ab47cfaaSmrgshow="$echo" 133ab47cfaaSmrgshow_help= 134ab47cfaaSmrgexecute_dlfiles= 135ab47cfaaSmrgduplicate_deps=no 136ab47cfaaSmrgpreserve_args= 137ab47cfaaSmrglo2o="s/\\.lo\$/.${objext}/" 138ab47cfaaSmrgo2lo="s/\\.${objext}\$/.lo/" 139ab47cfaaSmrg 140ab47cfaaSmrg##################################### 141ab47cfaaSmrg# Shell function definitions: 142ab47cfaaSmrg# This seems to be the best place for them 143ab47cfaaSmrg 144ab47cfaaSmrg# func_mktempdir [string] 145ab47cfaaSmrg# Make a temporary directory that won't clash with other running 146ab47cfaaSmrg# libtool processes, and avoids race conditions if possible. If 147ab47cfaaSmrg# given, STRING is the basename for that directory. 148ab47cfaaSmrgfunc_mktempdir () 149ab47cfaaSmrg{ 150ab47cfaaSmrg my_template="${TMPDIR-/tmp}/${1-$progname}" 151ab47cfaaSmrg 152ab47cfaaSmrg if test "$run" = ":"; then 153ab47cfaaSmrg # Return a directory name, but don't create it in dry-run mode 154ab47cfaaSmrg my_tmpdir="${my_template}-$$" 155ab47cfaaSmrg else 156ab47cfaaSmrg 157ab47cfaaSmrg # If mktemp works, use that first and foremost 158ab47cfaaSmrg my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 159ab47cfaaSmrg 160ab47cfaaSmrg if test ! -d "$my_tmpdir"; then 161ab47cfaaSmrg # Failing that, at least try and use $RANDOM to avoid a race 162ab47cfaaSmrg my_tmpdir="${my_template}-${RANDOM-0}$$" 163ab47cfaaSmrg 164ab47cfaaSmrg save_mktempdir_umask=`umask` 165ab47cfaaSmrg umask 0077 166ab47cfaaSmrg $mkdir "$my_tmpdir" 167ab47cfaaSmrg umask $save_mktempdir_umask 168ab47cfaaSmrg fi 169ab47cfaaSmrg 170ab47cfaaSmrg # If we're not in dry-run mode, bomb out on failure 171ab47cfaaSmrg test -d "$my_tmpdir" || { 172ab47cfaaSmrg $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 173ab47cfaaSmrg exit $EXIT_FAILURE 174ab47cfaaSmrg } 175ab47cfaaSmrg fi 176ab47cfaaSmrg 177ab47cfaaSmrg $echo "X$my_tmpdir" | $Xsed 178ab47cfaaSmrg} 179ab47cfaaSmrg 180ab47cfaaSmrg 181ab47cfaaSmrg# func_win32_libid arg 182ab47cfaaSmrg# return the library type of file 'arg' 183ab47cfaaSmrg# 184ab47cfaaSmrg# Need a lot of goo to handle *both* DLLs and import libs 185ab47cfaaSmrg# Has to be a shell function in order to 'eat' the argument 186ab47cfaaSmrg# that is supplied when $file_magic_command is called. 187ab47cfaaSmrgfunc_win32_libid () 188ab47cfaaSmrg{ 189ab47cfaaSmrg win32_libid_type="unknown" 190ab47cfaaSmrg win32_fileres=`file -L $1 2>/dev/null` 191ab47cfaaSmrg case $win32_fileres in 192ab47cfaaSmrg *ar\ archive\ import\ library*) # definitely import 193ab47cfaaSmrg win32_libid_type="x86 archive import" 194ab47cfaaSmrg ;; 195ab47cfaaSmrg *ar\ archive*) # could be an import, or static 196ab47cfaaSmrg if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 197ab47cfaaSmrg $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 198ab47cfaaSmrg win32_nmres=`eval $NM -f posix -A $1 | \ 199ab47cfaaSmrg $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` 200ab47cfaaSmrg case $win32_nmres in 201ab47cfaaSmrg import*) win32_libid_type="x86 archive import";; 202ab47cfaaSmrg *) win32_libid_type="x86 archive static";; 203ab47cfaaSmrg esac 204ab47cfaaSmrg fi 205ab47cfaaSmrg ;; 206ab47cfaaSmrg *DLL*) 207ab47cfaaSmrg win32_libid_type="x86 DLL" 208ab47cfaaSmrg ;; 209ab47cfaaSmrg *executable*) # but shell scripts are "executable" too... 210ab47cfaaSmrg case $win32_fileres in 211ab47cfaaSmrg *MS\ Windows\ PE\ Intel*) 212ab47cfaaSmrg win32_libid_type="x86 DLL" 213ab47cfaaSmrg ;; 214ab47cfaaSmrg esac 215ab47cfaaSmrg ;; 216ab47cfaaSmrg esac 217ab47cfaaSmrg $echo $win32_libid_type 218ab47cfaaSmrg} 219ab47cfaaSmrg 220ab47cfaaSmrg 221ab47cfaaSmrg# func_infer_tag arg 222ab47cfaaSmrg# Infer tagged configuration to use if any are available and 223ab47cfaaSmrg# if one wasn't chosen via the "--tag" command line option. 224ab47cfaaSmrg# Only attempt this if the compiler in the base compile 225ab47cfaaSmrg# command doesn't match the default compiler. 226ab47cfaaSmrg# arg is usually of the form 'gcc ...' 227ab47cfaaSmrgfunc_infer_tag () 228ab47cfaaSmrg{ 229ab47cfaaSmrg if test -n "$available_tags" && test -z "$tagname"; then 230ab47cfaaSmrg CC_quoted= 231ab47cfaaSmrg for arg in $CC; do 232ab47cfaaSmrg case $arg in 233ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 234ab47cfaaSmrg arg="\"$arg\"" 235ab47cfaaSmrg ;; 236ab47cfaaSmrg esac 237ab47cfaaSmrg CC_quoted="$CC_quoted $arg" 238ab47cfaaSmrg done 239ab47cfaaSmrg case $@ in 240ab47cfaaSmrg # Blanks in the command may have been stripped by the calling shell, 241ab47cfaaSmrg # but not from the CC environment variable when configure was run. 242ab47cfaaSmrg " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 243ab47cfaaSmrg # Blanks at the start of $base_compile will cause this to fail 244ab47cfaaSmrg # if we don't check for them as well. 245ab47cfaaSmrg *) 246ab47cfaaSmrg for z in $available_tags; do 247ab47cfaaSmrg if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 248ab47cfaaSmrg # Evaluate the configuration. 249ab47cfaaSmrg eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 250ab47cfaaSmrg CC_quoted= 251ab47cfaaSmrg for arg in $CC; do 252ab47cfaaSmrg # Double-quote args containing other shell metacharacters. 253ab47cfaaSmrg case $arg in 254ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 255ab47cfaaSmrg arg="\"$arg\"" 256ab47cfaaSmrg ;; 257ab47cfaaSmrg esac 258ab47cfaaSmrg CC_quoted="$CC_quoted $arg" 259ab47cfaaSmrg done 260ab47cfaaSmrg case "$@ " in 261ab47cfaaSmrg " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 262ab47cfaaSmrg # The compiler in the base compile command matches 263ab47cfaaSmrg # the one in the tagged configuration. 264ab47cfaaSmrg # Assume this is the tagged configuration we want. 265ab47cfaaSmrg tagname=$z 266ab47cfaaSmrg break 267ab47cfaaSmrg ;; 268ab47cfaaSmrg esac 269ab47cfaaSmrg fi 270ab47cfaaSmrg done 271ab47cfaaSmrg # If $tagname still isn't set, then no tagged configuration 272ab47cfaaSmrg # was found and let the user know that the "--tag" command 273ab47cfaaSmrg # line option must be used. 274ab47cfaaSmrg if test -z "$tagname"; then 275ab47cfaaSmrg $echo "$modename: unable to infer tagged configuration" 276ab47cfaaSmrg $echo "$modename: specify a tag with \`--tag'" 1>&2 277ab47cfaaSmrg exit $EXIT_FAILURE 278ab47cfaaSmrg# else 279ab47cfaaSmrg# $echo "$modename: using $tagname tagged configuration" 280ab47cfaaSmrg fi 281ab47cfaaSmrg ;; 282ab47cfaaSmrg esac 283ab47cfaaSmrg fi 284ab47cfaaSmrg} 285ab47cfaaSmrg 286ab47cfaaSmrg 287ab47cfaaSmrg# func_extract_an_archive dir oldlib 288ab47cfaaSmrgfunc_extract_an_archive () 289ab47cfaaSmrg{ 290ab47cfaaSmrg f_ex_an_ar_dir="$1"; shift 291ab47cfaaSmrg f_ex_an_ar_oldlib="$1" 292ab47cfaaSmrg 293ab47cfaaSmrg $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 294ab47cfaaSmrg $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 295ab47cfaaSmrg if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 296ab47cfaaSmrg : 297ab47cfaaSmrg else 298ab47cfaaSmrg $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 299ab47cfaaSmrg exit $EXIT_FAILURE 300ab47cfaaSmrg fi 301ab47cfaaSmrg} 302ab47cfaaSmrg 303ab47cfaaSmrg# func_extract_archives gentop oldlib ... 304ab47cfaaSmrgfunc_extract_archives () 305ab47cfaaSmrg{ 306ab47cfaaSmrg my_gentop="$1"; shift 307ab47cfaaSmrg my_oldlibs=${1+"$@"} 308ab47cfaaSmrg my_oldobjs="" 309ab47cfaaSmrg my_xlib="" 310ab47cfaaSmrg my_xabs="" 311ab47cfaaSmrg my_xdir="" 312ab47cfaaSmrg my_status="" 313ab47cfaaSmrg 314ab47cfaaSmrg $show "${rm}r $my_gentop" 315ab47cfaaSmrg $run ${rm}r "$my_gentop" 316ab47cfaaSmrg $show "$mkdir $my_gentop" 317ab47cfaaSmrg $run $mkdir "$my_gentop" 318ab47cfaaSmrg my_status=$? 319ab47cfaaSmrg if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 320ab47cfaaSmrg exit $my_status 321ab47cfaaSmrg fi 322ab47cfaaSmrg 323ab47cfaaSmrg for my_xlib in $my_oldlibs; do 324ab47cfaaSmrg # Extract the objects. 325ab47cfaaSmrg case $my_xlib in 326ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 327ab47cfaaSmrg *) my_xabs=`pwd`"/$my_xlib" ;; 328ab47cfaaSmrg esac 329ab47cfaaSmrg my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 330ab47cfaaSmrg my_xdir="$my_gentop/$my_xlib" 331ab47cfaaSmrg 332ab47cfaaSmrg $show "${rm}r $my_xdir" 333ab47cfaaSmrg $run ${rm}r "$my_xdir" 334ab47cfaaSmrg $show "$mkdir $my_xdir" 335ab47cfaaSmrg $run $mkdir "$my_xdir" 336ab47cfaaSmrg exit_status=$? 337ab47cfaaSmrg if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 338ab47cfaaSmrg exit $exit_status 339ab47cfaaSmrg fi 340ab47cfaaSmrg case $host in 341ab47cfaaSmrg *-darwin*) 342ab47cfaaSmrg $show "Extracting $my_xabs" 343ab47cfaaSmrg # Do not bother doing anything if just a dry run 344ab47cfaaSmrg if test -z "$run"; then 345ab47cfaaSmrg darwin_orig_dir=`pwd` 346ab47cfaaSmrg cd $my_xdir || exit $? 347ab47cfaaSmrg darwin_archive=$my_xabs 348ab47cfaaSmrg darwin_curdir=`pwd` 349ab47cfaaSmrg darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 350ab47cfaaSmrg darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 351ab47cfaaSmrg if test -n "$darwin_arches"; then 352ab47cfaaSmrg darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 353ab47cfaaSmrg darwin_arch= 354ab47cfaaSmrg $show "$darwin_base_archive has multiple architectures $darwin_arches" 355ab47cfaaSmrg for darwin_arch in $darwin_arches ; do 356ab47cfaaSmrg mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 357ab47cfaaSmrg lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 358ab47cfaaSmrg cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 359ab47cfaaSmrg func_extract_an_archive "`pwd`" "${darwin_base_archive}" 360ab47cfaaSmrg cd "$darwin_curdir" 361ab47cfaaSmrg $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 362ab47cfaaSmrg done # $darwin_arches 363ab47cfaaSmrg ## Okay now we have a bunch of thin objects, gotta fatten them up :) 364ab47cfaaSmrg darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 365ab47cfaaSmrg darwin_file= 366ab47cfaaSmrg darwin_files= 367ab47cfaaSmrg for darwin_file in $darwin_filelist; do 368ab47cfaaSmrg darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 369ab47cfaaSmrg lipo -create -output "$darwin_file" $darwin_files 370ab47cfaaSmrg done # $darwin_filelist 371ab47cfaaSmrg ${rm}r unfat-$$ 372ab47cfaaSmrg cd "$darwin_orig_dir" 373ab47cfaaSmrg else 374ab47cfaaSmrg cd "$darwin_orig_dir" 375ab47cfaaSmrg func_extract_an_archive "$my_xdir" "$my_xabs" 376ab47cfaaSmrg fi # $darwin_arches 377ab47cfaaSmrg fi # $run 378ab47cfaaSmrg ;; 379ab47cfaaSmrg *) 380ab47cfaaSmrg func_extract_an_archive "$my_xdir" "$my_xabs" 381ab47cfaaSmrg ;; 382ab47cfaaSmrg esac 383ab47cfaaSmrg my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 384ab47cfaaSmrg done 385ab47cfaaSmrg func_extract_archives_result="$my_oldobjs" 386ab47cfaaSmrg} 387ab47cfaaSmrg# End of Shell function definitions 388ab47cfaaSmrg##################################### 389ab47cfaaSmrg 390ab47cfaaSmrg# Darwin sucks 391ab47cfaaSmrgeval std_shrext=\"$shrext_cmds\" 392ab47cfaaSmrg 393ab47cfaaSmrgdisable_libs=no 394ab47cfaaSmrg 395ab47cfaaSmrg# Parse our command line options once, thoroughly. 396ab47cfaaSmrgwhile test "$#" -gt 0 397ab47cfaaSmrgdo 398ab47cfaaSmrg arg="$1" 399ab47cfaaSmrg shift 400ab47cfaaSmrg 401ab47cfaaSmrg case $arg in 402ab47cfaaSmrg -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 403ab47cfaaSmrg *) optarg= ;; 404ab47cfaaSmrg esac 405ab47cfaaSmrg 406ab47cfaaSmrg # If the previous option needs an argument, assign it. 407ab47cfaaSmrg if test -n "$prev"; then 408ab47cfaaSmrg case $prev in 409ab47cfaaSmrg execute_dlfiles) 410ab47cfaaSmrg execute_dlfiles="$execute_dlfiles $arg" 411ab47cfaaSmrg ;; 412ab47cfaaSmrg tag) 413ab47cfaaSmrg tagname="$arg" 414ab47cfaaSmrg preserve_args="${preserve_args}=$arg" 415ab47cfaaSmrg 416ab47cfaaSmrg # Check whether tagname contains only valid characters 417ab47cfaaSmrg case $tagname in 418ab47cfaaSmrg *[!-_A-Za-z0-9,/]*) 419ab47cfaaSmrg $echo "$progname: invalid tag name: $tagname" 1>&2 420ab47cfaaSmrg exit $EXIT_FAILURE 421ab47cfaaSmrg ;; 422ab47cfaaSmrg esac 423ab47cfaaSmrg 424ab47cfaaSmrg case $tagname in 425ab47cfaaSmrg CC) 426ab47cfaaSmrg # Don't test for the "default" C tag, as we know, it's there, but 427ab47cfaaSmrg # not specially marked. 428ab47cfaaSmrg ;; 429ab47cfaaSmrg *) 430ab47cfaaSmrg if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 431ab47cfaaSmrg taglist="$taglist $tagname" 432ab47cfaaSmrg # Evaluate the configuration. 433ab47cfaaSmrg eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 434ab47cfaaSmrg else 435ab47cfaaSmrg $echo "$progname: ignoring unknown tag $tagname" 1>&2 436ab47cfaaSmrg fi 437ab47cfaaSmrg ;; 438ab47cfaaSmrg esac 439ab47cfaaSmrg ;; 440ab47cfaaSmrg *) 441ab47cfaaSmrg eval "$prev=\$arg" 442ab47cfaaSmrg ;; 443ab47cfaaSmrg esac 444ab47cfaaSmrg 445ab47cfaaSmrg prev= 446ab47cfaaSmrg prevopt= 447ab47cfaaSmrg continue 448ab47cfaaSmrg fi 449ab47cfaaSmrg 450ab47cfaaSmrg # Have we seen a non-optional argument yet? 451ab47cfaaSmrg case $arg in 452ab47cfaaSmrg --help) 453ab47cfaaSmrg show_help=yes 454ab47cfaaSmrg ;; 455ab47cfaaSmrg 456ab47cfaaSmrg --version) 457ab47cfaaSmrg $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" 458ab47cfaaSmrg $echo 459ab47cfaaSmrg $echo "Copyright (C) 2005 Free Software Foundation, Inc." 460ab47cfaaSmrg $echo "This is free software; see the source for copying conditions. There is NO" 461ab47cfaaSmrg $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 462ab47cfaaSmrg exit $? 463ab47cfaaSmrg ;; 464ab47cfaaSmrg 465ab47cfaaSmrg --config) 466ab47cfaaSmrg ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 467ab47cfaaSmrg # Now print the configurations for the tags. 468ab47cfaaSmrg for tagname in $taglist; do 469ab47cfaaSmrg ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 470ab47cfaaSmrg done 471ab47cfaaSmrg exit $? 472ab47cfaaSmrg ;; 473ab47cfaaSmrg 474ab47cfaaSmrg --debug) 475ab47cfaaSmrg $echo "$progname: enabling shell trace mode" 476ab47cfaaSmrg set -x 477ab47cfaaSmrg preserve_args="$preserve_args $arg" 478ab47cfaaSmrg ;; 479ab47cfaaSmrg 480ab47cfaaSmrg --dry-run | -n) 481ab47cfaaSmrg run=: 482ab47cfaaSmrg ;; 483ab47cfaaSmrg 484ab47cfaaSmrg --features) 485ab47cfaaSmrg $echo "host: $host" 486ab47cfaaSmrg if test "$build_libtool_libs" = yes; then 487ab47cfaaSmrg $echo "enable shared libraries" 488ab47cfaaSmrg else 489ab47cfaaSmrg $echo "disable shared libraries" 490ab47cfaaSmrg fi 491ab47cfaaSmrg if test "$build_old_libs" = yes; then 492ab47cfaaSmrg $echo "enable static libraries" 493ab47cfaaSmrg else 494ab47cfaaSmrg $echo "disable static libraries" 495ab47cfaaSmrg fi 496ab47cfaaSmrg exit $? 497ab47cfaaSmrg ;; 498ab47cfaaSmrg 499ab47cfaaSmrg --finish) mode="finish" ;; 500ab47cfaaSmrg 501ab47cfaaSmrg --mode) prevopt="--mode" prev=mode ;; 502ab47cfaaSmrg --mode=*) mode="$optarg" ;; 503ab47cfaaSmrg 504ab47cfaaSmrg --preserve-dup-deps) duplicate_deps="yes" ;; 505ab47cfaaSmrg 506ab47cfaaSmrg --quiet | --silent) 507ab47cfaaSmrg show=: 508ab47cfaaSmrg preserve_args="$preserve_args $arg" 509ab47cfaaSmrg ;; 510ab47cfaaSmrg 511ab47cfaaSmrg --tag) 512ab47cfaaSmrg prevopt="--tag" 513ab47cfaaSmrg prev=tag 514ab47cfaaSmrg preserve_args="$preserve_args --tag" 515ab47cfaaSmrg ;; 516ab47cfaaSmrg --tag=*) 517ab47cfaaSmrg set tag "$optarg" ${1+"$@"} 518ab47cfaaSmrg shift 519ab47cfaaSmrg prev=tag 520ab47cfaaSmrg preserve_args="$preserve_args --tag" 521ab47cfaaSmrg ;; 522ab47cfaaSmrg 523ab47cfaaSmrg -dlopen) 524ab47cfaaSmrg prevopt="-dlopen" 525ab47cfaaSmrg prev=execute_dlfiles 526ab47cfaaSmrg ;; 527ab47cfaaSmrg 528ab47cfaaSmrg -*) 529ab47cfaaSmrg $echo "$modename: unrecognized option \`$arg'" 1>&2 530ab47cfaaSmrg $echo "$help" 1>&2 531ab47cfaaSmrg exit $EXIT_FAILURE 532ab47cfaaSmrg ;; 533ab47cfaaSmrg 534ab47cfaaSmrg *) 535ab47cfaaSmrg nonopt="$arg" 536ab47cfaaSmrg break 537ab47cfaaSmrg ;; 538ab47cfaaSmrg esac 539ab47cfaaSmrgdone 540ab47cfaaSmrg 541ab47cfaaSmrgif test -n "$prevopt"; then 542ab47cfaaSmrg $echo "$modename: option \`$prevopt' requires an argument" 1>&2 543ab47cfaaSmrg $echo "$help" 1>&2 544ab47cfaaSmrg exit $EXIT_FAILURE 545ab47cfaaSmrgfi 546ab47cfaaSmrg 547ab47cfaaSmrgcase $disable_libs in 548ab47cfaaSmrgno) 549ab47cfaaSmrg ;; 550ab47cfaaSmrgshared) 551ab47cfaaSmrg build_libtool_libs=no 552ab47cfaaSmrg build_old_libs=yes 553ab47cfaaSmrg ;; 554ab47cfaaSmrgstatic) 555ab47cfaaSmrg build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 556ab47cfaaSmrg ;; 557ab47cfaaSmrgesac 558ab47cfaaSmrg 559ab47cfaaSmrg# If this variable is set in any of the actions, the command in it 560ab47cfaaSmrg# will be execed at the end. This prevents here-documents from being 561ab47cfaaSmrg# left over by shells. 562ab47cfaaSmrgexec_cmd= 563ab47cfaaSmrg 564ab47cfaaSmrgif test -z "$show_help"; then 565ab47cfaaSmrg 566ab47cfaaSmrg # Infer the operation mode. 567ab47cfaaSmrg if test -z "$mode"; then 568ab47cfaaSmrg $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 569ab47cfaaSmrg $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 570ab47cfaaSmrg case $nonopt in 571ab47cfaaSmrg *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 572ab47cfaaSmrg mode=link 573ab47cfaaSmrg for arg 574ab47cfaaSmrg do 575ab47cfaaSmrg case $arg in 576ab47cfaaSmrg -c) 577ab47cfaaSmrg mode=compile 578ab47cfaaSmrg break 579ab47cfaaSmrg ;; 580ab47cfaaSmrg esac 581ab47cfaaSmrg done 582ab47cfaaSmrg ;; 583ab47cfaaSmrg *db | *dbx | *strace | *truss) 584ab47cfaaSmrg mode=execute 585ab47cfaaSmrg ;; 586ab47cfaaSmrg *install*|cp|mv) 587ab47cfaaSmrg mode=install 588ab47cfaaSmrg ;; 589ab47cfaaSmrg *rm) 590ab47cfaaSmrg mode=uninstall 591ab47cfaaSmrg ;; 592ab47cfaaSmrg *) 593ab47cfaaSmrg # If we have no mode, but dlfiles were specified, then do execute mode. 594ab47cfaaSmrg test -n "$execute_dlfiles" && mode=execute 595ab47cfaaSmrg 596ab47cfaaSmrg # Just use the default operation mode. 597ab47cfaaSmrg if test -z "$mode"; then 598ab47cfaaSmrg if test -n "$nonopt"; then 599ab47cfaaSmrg $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 600ab47cfaaSmrg else 601ab47cfaaSmrg $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 602ab47cfaaSmrg fi 603ab47cfaaSmrg fi 604ab47cfaaSmrg ;; 605ab47cfaaSmrg esac 606ab47cfaaSmrg fi 607ab47cfaaSmrg 608ab47cfaaSmrg # Only execute mode is allowed to have -dlopen flags. 609ab47cfaaSmrg if test -n "$execute_dlfiles" && test "$mode" != execute; then 610ab47cfaaSmrg $echo "$modename: unrecognized option \`-dlopen'" 1>&2 611ab47cfaaSmrg $echo "$help" 1>&2 612ab47cfaaSmrg exit $EXIT_FAILURE 613ab47cfaaSmrg fi 614ab47cfaaSmrg 615ab47cfaaSmrg # Change the help message to a mode-specific one. 616ab47cfaaSmrg generic_help="$help" 617ab47cfaaSmrg help="Try \`$modename --help --mode=$mode' for more information." 618ab47cfaaSmrg 619ab47cfaaSmrg # These modes are in order of execution frequency so that they run quickly. 620ab47cfaaSmrg case $mode in 621ab47cfaaSmrg # libtool compile mode 622ab47cfaaSmrg compile) 623ab47cfaaSmrg modename="$modename: compile" 624ab47cfaaSmrg # Get the compilation command and the source file. 625ab47cfaaSmrg base_compile= 626ab47cfaaSmrg srcfile="$nonopt" # always keep a non-empty value in "srcfile" 627ab47cfaaSmrg suppress_opt=yes 628ab47cfaaSmrg suppress_output= 629ab47cfaaSmrg arg_mode=normal 630ab47cfaaSmrg libobj= 631ab47cfaaSmrg later= 632ab47cfaaSmrg 633ab47cfaaSmrg for arg 634ab47cfaaSmrg do 635ab47cfaaSmrg case $arg_mode in 636ab47cfaaSmrg arg ) 637ab47cfaaSmrg # do not "continue". Instead, add this to base_compile 638ab47cfaaSmrg lastarg="$arg" 639ab47cfaaSmrg arg_mode=normal 640ab47cfaaSmrg ;; 641ab47cfaaSmrg 642ab47cfaaSmrg target ) 643ab47cfaaSmrg libobj="$arg" 644ab47cfaaSmrg arg_mode=normal 645ab47cfaaSmrg continue 646ab47cfaaSmrg ;; 647ab47cfaaSmrg 648ab47cfaaSmrg normal ) 649ab47cfaaSmrg # Accept any command-line options. 650ab47cfaaSmrg case $arg in 651ab47cfaaSmrg -o) 652ab47cfaaSmrg if test -n "$libobj" ; then 653ab47cfaaSmrg $echo "$modename: you cannot specify \`-o' more than once" 1>&2 654ab47cfaaSmrg exit $EXIT_FAILURE 655ab47cfaaSmrg fi 656ab47cfaaSmrg arg_mode=target 657ab47cfaaSmrg continue 658ab47cfaaSmrg ;; 659ab47cfaaSmrg 660ab47cfaaSmrg -static | -prefer-pic | -prefer-non-pic) 661ab47cfaaSmrg later="$later $arg" 662ab47cfaaSmrg continue 663ab47cfaaSmrg ;; 664ab47cfaaSmrg 665ab47cfaaSmrg -no-suppress) 666ab47cfaaSmrg suppress_opt=no 667ab47cfaaSmrg continue 668ab47cfaaSmrg ;; 669ab47cfaaSmrg 670ab47cfaaSmrg -Xcompiler) 671ab47cfaaSmrg arg_mode=arg # the next one goes into the "base_compile" arg list 672ab47cfaaSmrg continue # The current "srcfile" will either be retained or 673ab47cfaaSmrg ;; # replaced later. I would guess that would be a bug. 674ab47cfaaSmrg 675ab47cfaaSmrg -Wc,*) 676ab47cfaaSmrg args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 677ab47cfaaSmrg lastarg= 678ab47cfaaSmrg save_ifs="$IFS"; IFS=',' 679ab47cfaaSmrg for arg in $args; do 680ab47cfaaSmrg IFS="$save_ifs" 681ab47cfaaSmrg 682ab47cfaaSmrg # Double-quote args containing other shell metacharacters. 683ab47cfaaSmrg # Many Bourne shells cannot handle close brackets correctly 684ab47cfaaSmrg # in scan sets, so we specify it separately. 685ab47cfaaSmrg case $arg in 686ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 687ab47cfaaSmrg arg="\"$arg\"" 688ab47cfaaSmrg ;; 689ab47cfaaSmrg esac 690ab47cfaaSmrg lastarg="$lastarg $arg" 691ab47cfaaSmrg done 692ab47cfaaSmrg IFS="$save_ifs" 693ab47cfaaSmrg lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 694ab47cfaaSmrg 695ab47cfaaSmrg # Add the arguments to base_compile. 696ab47cfaaSmrg base_compile="$base_compile $lastarg" 697ab47cfaaSmrg continue 698ab47cfaaSmrg ;; 699ab47cfaaSmrg 700ab47cfaaSmrg * ) 701ab47cfaaSmrg # Accept the current argument as the source file. 702ab47cfaaSmrg # The previous "srcfile" becomes the current argument. 703ab47cfaaSmrg # 704ab47cfaaSmrg lastarg="$srcfile" 705ab47cfaaSmrg srcfile="$arg" 706ab47cfaaSmrg ;; 707ab47cfaaSmrg esac # case $arg 708ab47cfaaSmrg ;; 709ab47cfaaSmrg esac # case $arg_mode 710ab47cfaaSmrg 711ab47cfaaSmrg # Aesthetically quote the previous argument. 712ab47cfaaSmrg lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 713ab47cfaaSmrg 714ab47cfaaSmrg case $lastarg in 715ab47cfaaSmrg # Double-quote args containing other shell metacharacters. 716ab47cfaaSmrg # Many Bourne shells cannot handle close brackets correctly 717ab47cfaaSmrg # in scan sets, and some SunOS ksh mistreat backslash-escaping 718ab47cfaaSmrg # in scan sets (worked around with variable expansion), 719ab47cfaaSmrg # and furthermore cannot handle '|' '&' '(' ')' in scan sets 720ab47cfaaSmrg # at all, so we specify them separately. 721ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 722ab47cfaaSmrg lastarg="\"$lastarg\"" 723ab47cfaaSmrg ;; 724ab47cfaaSmrg esac 725ab47cfaaSmrg 726ab47cfaaSmrg base_compile="$base_compile $lastarg" 727ab47cfaaSmrg done # for arg 728ab47cfaaSmrg 729ab47cfaaSmrg case $arg_mode in 730ab47cfaaSmrg arg) 731ab47cfaaSmrg $echo "$modename: you must specify an argument for -Xcompile" 732ab47cfaaSmrg exit $EXIT_FAILURE 733ab47cfaaSmrg ;; 734ab47cfaaSmrg target) 735ab47cfaaSmrg $echo "$modename: you must specify a target with \`-o'" 1>&2 736ab47cfaaSmrg exit $EXIT_FAILURE 737ab47cfaaSmrg ;; 738ab47cfaaSmrg *) 739ab47cfaaSmrg # Get the name of the library object. 740ab47cfaaSmrg [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 741ab47cfaaSmrg ;; 742ab47cfaaSmrg esac 743ab47cfaaSmrg 744ab47cfaaSmrg # Recognize several different file suffixes. 745ab47cfaaSmrg # If the user specifies -o file.o, it is replaced with file.lo 746ab47cfaaSmrg xform='[cCFSifmso]' 747ab47cfaaSmrg case $libobj in 748ab47cfaaSmrg *.ada) xform=ada ;; 749ab47cfaaSmrg *.adb) xform=adb ;; 750ab47cfaaSmrg *.ads) xform=ads ;; 751ab47cfaaSmrg *.asm) xform=asm ;; 752ab47cfaaSmrg *.c++) xform=c++ ;; 753ab47cfaaSmrg *.cc) xform=cc ;; 754ab47cfaaSmrg *.ii) xform=ii ;; 755ab47cfaaSmrg *.class) xform=class ;; 756ab47cfaaSmrg *.cpp) xform=cpp ;; 757ab47cfaaSmrg *.cxx) xform=cxx ;; 758ab47cfaaSmrg *.f90) xform=f90 ;; 759ab47cfaaSmrg *.for) xform=for ;; 760ab47cfaaSmrg *.java) xform=java ;; 761ab47cfaaSmrg esac 762ab47cfaaSmrg 763ab47cfaaSmrg libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 764ab47cfaaSmrg 765ab47cfaaSmrg case $libobj in 766ab47cfaaSmrg *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 767ab47cfaaSmrg *) 768ab47cfaaSmrg $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 769ab47cfaaSmrg exit $EXIT_FAILURE 770ab47cfaaSmrg ;; 771ab47cfaaSmrg esac 772ab47cfaaSmrg 773ab47cfaaSmrg func_infer_tag $base_compile 774ab47cfaaSmrg 775ab47cfaaSmrg for arg in $later; do 776ab47cfaaSmrg case $arg in 777ab47cfaaSmrg -static) 778ab47cfaaSmrg build_old_libs=yes 779ab47cfaaSmrg continue 780ab47cfaaSmrg ;; 781ab47cfaaSmrg 782ab47cfaaSmrg -prefer-pic) 783ab47cfaaSmrg pic_mode=yes 784ab47cfaaSmrg continue 785ab47cfaaSmrg ;; 786ab47cfaaSmrg 787ab47cfaaSmrg -prefer-non-pic) 788ab47cfaaSmrg pic_mode=no 789ab47cfaaSmrg continue 790ab47cfaaSmrg ;; 791ab47cfaaSmrg esac 792ab47cfaaSmrg done 793ab47cfaaSmrg 794ab47cfaaSmrg qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 795ab47cfaaSmrg case $qlibobj in 796ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 797ab47cfaaSmrg qlibobj="\"$qlibobj\"" ;; 798ab47cfaaSmrg esac 799ab47cfaaSmrg test "X$libobj" != "X$qlibobj" \ 800ab47cfaaSmrg && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 801ab47cfaaSmrg && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 802ab47cfaaSmrg objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 803ab47cfaaSmrg xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 804ab47cfaaSmrg if test "X$xdir" = "X$obj"; then 805ab47cfaaSmrg xdir= 806ab47cfaaSmrg else 807ab47cfaaSmrg xdir=$xdir/ 808ab47cfaaSmrg fi 809ab47cfaaSmrg lobj=${xdir}$objdir/$objname 810ab47cfaaSmrg 811ab47cfaaSmrg if test -z "$base_compile"; then 812ab47cfaaSmrg $echo "$modename: you must specify a compilation command" 1>&2 813ab47cfaaSmrg $echo "$help" 1>&2 814ab47cfaaSmrg exit $EXIT_FAILURE 815ab47cfaaSmrg fi 816ab47cfaaSmrg 817ab47cfaaSmrg # Delete any leftover library objects. 818ab47cfaaSmrg if test "$build_old_libs" = yes; then 819ab47cfaaSmrg removelist="$obj $lobj $libobj ${libobj}T" 820ab47cfaaSmrg else 821ab47cfaaSmrg removelist="$lobj $libobj ${libobj}T" 822ab47cfaaSmrg fi 823ab47cfaaSmrg 824ab47cfaaSmrg $run $rm $removelist 825ab47cfaaSmrg trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 826ab47cfaaSmrg 827ab47cfaaSmrg # On Cygwin there's no "real" PIC flag so we must build both object types 828ab47cfaaSmrg case $host_os in 829ab47cfaaSmrg cygwin* | mingw* | pw32* | os2*) 830ab47cfaaSmrg pic_mode=default 831ab47cfaaSmrg ;; 832ab47cfaaSmrg esac 833ab47cfaaSmrg if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 834ab47cfaaSmrg # non-PIC code in shared libraries is not supported 835ab47cfaaSmrg pic_mode=default 836ab47cfaaSmrg fi 837ab47cfaaSmrg 838ab47cfaaSmrg # Calculate the filename of the output object if compiler does 839ab47cfaaSmrg # not support -o with -c 840ab47cfaaSmrg if test "$compiler_c_o" = no; then 841ab47cfaaSmrg output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 842ab47cfaaSmrg lockfile="$output_obj.lock" 843ab47cfaaSmrg removelist="$removelist $output_obj $lockfile" 844ab47cfaaSmrg trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 845ab47cfaaSmrg else 846ab47cfaaSmrg output_obj= 847ab47cfaaSmrg need_locks=no 848ab47cfaaSmrg lockfile= 849ab47cfaaSmrg fi 850ab47cfaaSmrg 851ab47cfaaSmrg # Lock this critical section if it is needed 852ab47cfaaSmrg # We use this script file to make the link, it avoids creating a new file 853ab47cfaaSmrg if test "$need_locks" = yes; then 854ab47cfaaSmrg until $run ln "$progpath" "$lockfile" 2>/dev/null; do 855ab47cfaaSmrg $show "Waiting for $lockfile to be removed" 856ab47cfaaSmrg sleep 2 857ab47cfaaSmrg done 858ab47cfaaSmrg elif test "$need_locks" = warn; then 859ab47cfaaSmrg if test -f "$lockfile"; then 860ab47cfaaSmrg $echo "\ 861ab47cfaaSmrg*** ERROR, $lockfile exists and contains: 862ab47cfaaSmrg`cat $lockfile 2>/dev/null` 863ab47cfaaSmrg 864ab47cfaaSmrgThis indicates that another process is trying to use the same 865ab47cfaaSmrgtemporary object file, and libtool could not work around it because 866ab47cfaaSmrgyour compiler does not support \`-c' and \`-o' together. If you 867ab47cfaaSmrgrepeat this compilation, it may succeed, by chance, but you had better 868ab47cfaaSmrgavoid parallel builds (make -j) in this platform, or get a better 869ab47cfaaSmrgcompiler." 870ab47cfaaSmrg 871ab47cfaaSmrg $run $rm $removelist 872ab47cfaaSmrg exit $EXIT_FAILURE 873ab47cfaaSmrg fi 874ab47cfaaSmrg $echo "$srcfile" > "$lockfile" 875ab47cfaaSmrg fi 876ab47cfaaSmrg 877ab47cfaaSmrg if test -n "$fix_srcfile_path"; then 878ab47cfaaSmrg eval srcfile=\"$fix_srcfile_path\" 879ab47cfaaSmrg fi 880ab47cfaaSmrg qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 881ab47cfaaSmrg case $qsrcfile in 882ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 883ab47cfaaSmrg qsrcfile="\"$qsrcfile\"" ;; 884ab47cfaaSmrg esac 885ab47cfaaSmrg 886ab47cfaaSmrg $run $rm "$libobj" "${libobj}T" 887ab47cfaaSmrg 888ab47cfaaSmrg # Create a libtool object file (analogous to a ".la" file), 889ab47cfaaSmrg # but don't create it if we're doing a dry run. 890ab47cfaaSmrg test -z "$run" && cat > ${libobj}T <<EOF 891ab47cfaaSmrg# $libobj - a libtool object file 892ab47cfaaSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 893ab47cfaaSmrg# 894ab47cfaaSmrg# Please DO NOT delete this file! 895ab47cfaaSmrg# It is necessary for linking the library. 896ab47cfaaSmrg 897ab47cfaaSmrg# Name of the PIC object. 898ab47cfaaSmrgEOF 899ab47cfaaSmrg 900ab47cfaaSmrg # Only build a PIC object if we are building libtool libraries. 901ab47cfaaSmrg if test "$build_libtool_libs" = yes; then 902ab47cfaaSmrg # Without this assignment, base_compile gets emptied. 903ab47cfaaSmrg fbsd_hideous_sh_bug=$base_compile 904ab47cfaaSmrg 905ab47cfaaSmrg if test "$pic_mode" != no; then 906ab47cfaaSmrg command="$base_compile $qsrcfile $pic_flag" 907ab47cfaaSmrg else 908ab47cfaaSmrg # Don't build PIC code 909ab47cfaaSmrg command="$base_compile $qsrcfile" 910ab47cfaaSmrg fi 911ab47cfaaSmrg 912ab47cfaaSmrg if test ! -d "${xdir}$objdir"; then 913ab47cfaaSmrg $show "$mkdir ${xdir}$objdir" 914ab47cfaaSmrg $run $mkdir ${xdir}$objdir 915ab47cfaaSmrg exit_status=$? 916ab47cfaaSmrg if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 917ab47cfaaSmrg exit $exit_status 918ab47cfaaSmrg fi 919ab47cfaaSmrg fi 920ab47cfaaSmrg 921ab47cfaaSmrg if test -z "$output_obj"; then 922ab47cfaaSmrg # Place PIC objects in $objdir 923ab47cfaaSmrg command="$command -o $lobj" 924ab47cfaaSmrg fi 925ab47cfaaSmrg 926ab47cfaaSmrg $run $rm "$lobj" "$output_obj" 927ab47cfaaSmrg 928ab47cfaaSmrg $show "$command" 929ab47cfaaSmrg if $run eval "$command"; then : 930ab47cfaaSmrg else 931ab47cfaaSmrg test -n "$output_obj" && $run $rm $removelist 932ab47cfaaSmrg exit $EXIT_FAILURE 933ab47cfaaSmrg fi 934ab47cfaaSmrg 935ab47cfaaSmrg if test "$need_locks" = warn && 936ab47cfaaSmrg test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 937ab47cfaaSmrg $echo "\ 938ab47cfaaSmrg*** ERROR, $lockfile contains: 939ab47cfaaSmrg`cat $lockfile 2>/dev/null` 940ab47cfaaSmrg 941ab47cfaaSmrgbut it should contain: 942ab47cfaaSmrg$srcfile 943ab47cfaaSmrg 944ab47cfaaSmrgThis indicates that another process is trying to use the same 945ab47cfaaSmrgtemporary object file, and libtool could not work around it because 946ab47cfaaSmrgyour compiler does not support \`-c' and \`-o' together. If you 947ab47cfaaSmrgrepeat this compilation, it may succeed, by chance, but you had better 948ab47cfaaSmrgavoid parallel builds (make -j) in this platform, or get a better 949ab47cfaaSmrgcompiler." 950ab47cfaaSmrg 951ab47cfaaSmrg $run $rm $removelist 952ab47cfaaSmrg exit $EXIT_FAILURE 953ab47cfaaSmrg fi 954ab47cfaaSmrg 955ab47cfaaSmrg # Just move the object if needed, then go on to compile the next one 956ab47cfaaSmrg if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 957ab47cfaaSmrg $show "$mv $output_obj $lobj" 958ab47cfaaSmrg if $run $mv $output_obj $lobj; then : 959ab47cfaaSmrg else 960ab47cfaaSmrg error=$? 961ab47cfaaSmrg $run $rm $removelist 962ab47cfaaSmrg exit $error 963ab47cfaaSmrg fi 964ab47cfaaSmrg fi 965ab47cfaaSmrg 966ab47cfaaSmrg # Append the name of the PIC object to the libtool object file. 967ab47cfaaSmrg test -z "$run" && cat >> ${libobj}T <<EOF 968ab47cfaaSmrgpic_object='$objdir/$objname' 969ab47cfaaSmrg 970ab47cfaaSmrgEOF 971ab47cfaaSmrg 972ab47cfaaSmrg # Allow error messages only from the first compilation. 973ab47cfaaSmrg if test "$suppress_opt" = yes; then 974ab47cfaaSmrg suppress_output=' >/dev/null 2>&1' 975ab47cfaaSmrg fi 976ab47cfaaSmrg else 977ab47cfaaSmrg # No PIC object so indicate it doesn't exist in the libtool 978ab47cfaaSmrg # object file. 979ab47cfaaSmrg test -z "$run" && cat >> ${libobj}T <<EOF 980ab47cfaaSmrgpic_object=none 981ab47cfaaSmrg 982ab47cfaaSmrgEOF 983ab47cfaaSmrg fi 984ab47cfaaSmrg 985ab47cfaaSmrg # Only build a position-dependent object if we build old libraries. 986ab47cfaaSmrg if test "$build_old_libs" = yes; then 987ab47cfaaSmrg if test "$pic_mode" != yes; then 988ab47cfaaSmrg # Don't build PIC code 989ab47cfaaSmrg command="$base_compile $qsrcfile" 990ab47cfaaSmrg else 991ab47cfaaSmrg command="$base_compile $qsrcfile $pic_flag" 992ab47cfaaSmrg fi 993ab47cfaaSmrg if test "$compiler_c_o" = yes; then 994ab47cfaaSmrg command="$command -o $obj" 995ab47cfaaSmrg fi 996ab47cfaaSmrg 997ab47cfaaSmrg # Suppress compiler output if we already did a PIC compilation. 998ab47cfaaSmrg command="$command$suppress_output" 999ab47cfaaSmrg $run $rm "$obj" "$output_obj" 1000ab47cfaaSmrg $show "$command" 1001ab47cfaaSmrg if $run eval "$command"; then : 1002ab47cfaaSmrg else 1003ab47cfaaSmrg $run $rm $removelist 1004ab47cfaaSmrg exit $EXIT_FAILURE 1005ab47cfaaSmrg fi 1006ab47cfaaSmrg 1007ab47cfaaSmrg if test "$need_locks" = warn && 1008ab47cfaaSmrg test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1009ab47cfaaSmrg $echo "\ 1010ab47cfaaSmrg*** ERROR, $lockfile contains: 1011ab47cfaaSmrg`cat $lockfile 2>/dev/null` 1012ab47cfaaSmrg 1013ab47cfaaSmrgbut it should contain: 1014ab47cfaaSmrg$srcfile 1015ab47cfaaSmrg 1016ab47cfaaSmrgThis indicates that another process is trying to use the same 1017ab47cfaaSmrgtemporary object file, and libtool could not work around it because 1018ab47cfaaSmrgyour compiler does not support \`-c' and \`-o' together. If you 1019ab47cfaaSmrgrepeat this compilation, it may succeed, by chance, but you had better 1020ab47cfaaSmrgavoid parallel builds (make -j) in this platform, or get a better 1021ab47cfaaSmrgcompiler." 1022ab47cfaaSmrg 1023ab47cfaaSmrg $run $rm $removelist 1024ab47cfaaSmrg exit $EXIT_FAILURE 1025ab47cfaaSmrg fi 1026ab47cfaaSmrg 1027ab47cfaaSmrg # Just move the object if needed 1028ab47cfaaSmrg if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1029ab47cfaaSmrg $show "$mv $output_obj $obj" 1030ab47cfaaSmrg if $run $mv $output_obj $obj; then : 1031ab47cfaaSmrg else 1032ab47cfaaSmrg error=$? 1033ab47cfaaSmrg $run $rm $removelist 1034ab47cfaaSmrg exit $error 1035ab47cfaaSmrg fi 1036ab47cfaaSmrg fi 1037ab47cfaaSmrg 1038ab47cfaaSmrg # Append the name of the non-PIC object the libtool object file. 1039ab47cfaaSmrg # Only append if the libtool object file exists. 1040ab47cfaaSmrg test -z "$run" && cat >> ${libobj}T <<EOF 1041ab47cfaaSmrg# Name of the non-PIC object. 1042ab47cfaaSmrgnon_pic_object='$objname' 1043ab47cfaaSmrg 1044ab47cfaaSmrgEOF 1045ab47cfaaSmrg else 1046ab47cfaaSmrg # Append the name of the non-PIC object the libtool object file. 1047ab47cfaaSmrg # Only append if the libtool object file exists. 1048ab47cfaaSmrg test -z "$run" && cat >> ${libobj}T <<EOF 1049ab47cfaaSmrg# Name of the non-PIC object. 1050ab47cfaaSmrgnon_pic_object=none 1051ab47cfaaSmrg 1052ab47cfaaSmrgEOF 1053ab47cfaaSmrg fi 1054ab47cfaaSmrg 1055ab47cfaaSmrg $run $mv "${libobj}T" "${libobj}" 1056ab47cfaaSmrg 1057ab47cfaaSmrg # Unlock the critical section if it was locked 1058ab47cfaaSmrg if test "$need_locks" != no; then 1059ab47cfaaSmrg $run $rm "$lockfile" 1060ab47cfaaSmrg fi 1061ab47cfaaSmrg 1062ab47cfaaSmrg exit $EXIT_SUCCESS 1063ab47cfaaSmrg ;; 1064ab47cfaaSmrg 1065ab47cfaaSmrg # libtool link mode 1066ab47cfaaSmrg link | relink) 1067ab47cfaaSmrg modename="$modename: link" 1068ab47cfaaSmrg case $host in 1069ab47cfaaSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1070ab47cfaaSmrg # It is impossible to link a dll without this setting, and 1071ab47cfaaSmrg # we shouldn't force the makefile maintainer to figure out 1072ab47cfaaSmrg # which system we are compiling for in order to pass an extra 1073ab47cfaaSmrg # flag for every libtool invocation. 1074ab47cfaaSmrg # allow_undefined=no 1075ab47cfaaSmrg 1076ab47cfaaSmrg # FIXME: Unfortunately, there are problems with the above when trying 1077ab47cfaaSmrg # to make a dll which has undefined symbols, in which case not 1078ab47cfaaSmrg # even a static library is built. For now, we need to specify 1079ab47cfaaSmrg # -no-undefined on the libtool link line when we can be certain 1080ab47cfaaSmrg # that all symbols are satisfied, otherwise we get a static library. 1081ab47cfaaSmrg allow_undefined=yes 1082ab47cfaaSmrg ;; 1083ab47cfaaSmrg *) 1084ab47cfaaSmrg allow_undefined=yes 1085ab47cfaaSmrg ;; 1086ab47cfaaSmrg esac 1087ab47cfaaSmrg libtool_args="$nonopt" 1088ab47cfaaSmrg base_compile="$nonopt $@" 1089ab47cfaaSmrg compile_command="$nonopt" 1090ab47cfaaSmrg finalize_command="$nonopt" 1091ab47cfaaSmrg 1092ab47cfaaSmrg compile_rpath= 1093ab47cfaaSmrg finalize_rpath= 1094ab47cfaaSmrg compile_shlibpath= 1095ab47cfaaSmrg finalize_shlibpath= 1096ab47cfaaSmrg convenience= 1097ab47cfaaSmrg old_convenience= 1098ab47cfaaSmrg deplibs= 1099ab47cfaaSmrg old_deplibs= 1100ab47cfaaSmrg compiler_flags= 1101ab47cfaaSmrg linker_flags= 1102ab47cfaaSmrg dllsearchpath= 1103ab47cfaaSmrg lib_search_path=`pwd` 1104ab47cfaaSmrg inst_prefix_dir= 1105ab47cfaaSmrg 1106ab47cfaaSmrg avoid_version=no 1107ab47cfaaSmrg dlfiles= 1108ab47cfaaSmrg dlprefiles= 1109ab47cfaaSmrg dlself=no 1110ab47cfaaSmrg export_dynamic=no 1111ab47cfaaSmrg export_symbols= 1112ab47cfaaSmrg export_symbols_regex= 1113ab47cfaaSmrg generated= 1114ab47cfaaSmrg libobjs= 1115ab47cfaaSmrg ltlibs= 1116ab47cfaaSmrg module=no 1117ab47cfaaSmrg no_install=no 1118ab47cfaaSmrg objs= 1119ab47cfaaSmrg non_pic_objects= 1120ab47cfaaSmrg notinst_path= # paths that contain not-installed libtool libraries 1121ab47cfaaSmrg precious_files_regex= 1122ab47cfaaSmrg prefer_static_libs=no 1123ab47cfaaSmrg preload=no 1124ab47cfaaSmrg prev= 1125ab47cfaaSmrg prevarg= 1126ab47cfaaSmrg release= 1127ab47cfaaSmrg rpath= 1128ab47cfaaSmrg xrpath= 1129ab47cfaaSmrg perm_rpath= 1130ab47cfaaSmrg temp_rpath= 1131ab47cfaaSmrg thread_safe=no 1132ab47cfaaSmrg vinfo= 1133ab47cfaaSmrg vinfo_number=no 1134ab47cfaaSmrg 1135ab47cfaaSmrg func_infer_tag $base_compile 1136ab47cfaaSmrg 1137ab47cfaaSmrg # We need to know -static, to get the right output filenames. 1138ab47cfaaSmrg for arg 1139ab47cfaaSmrg do 1140ab47cfaaSmrg case $arg in 1141ab47cfaaSmrg -all-static | -static) 1142ab47cfaaSmrg if test "X$arg" = "X-all-static"; then 1143ab47cfaaSmrg if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 1144ab47cfaaSmrg $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 1145ab47cfaaSmrg fi 1146ab47cfaaSmrg if test -n "$link_static_flag"; then 1147ab47cfaaSmrg dlopen_self=$dlopen_self_static 1148ab47cfaaSmrg fi 1149ab47cfaaSmrg prefer_static_libs=yes 1150ab47cfaaSmrg else 1151ab47cfaaSmrg if test -z "$pic_flag" && test -n "$link_static_flag"; then 1152ab47cfaaSmrg dlopen_self=$dlopen_self_static 1153ab47cfaaSmrg fi 1154ab47cfaaSmrg prefer_static_libs=built 1155ab47cfaaSmrg fi 1156ab47cfaaSmrg build_libtool_libs=no 1157ab47cfaaSmrg build_old_libs=yes 1158ab47cfaaSmrg break 1159ab47cfaaSmrg ;; 1160ab47cfaaSmrg esac 1161ab47cfaaSmrg done 1162ab47cfaaSmrg 1163ab47cfaaSmrg # See if our shared archives depend on static archives. 1164ab47cfaaSmrg test -n "$old_archive_from_new_cmds" && build_old_libs=yes 1165ab47cfaaSmrg 1166ab47cfaaSmrg # Go through the arguments, transforming them on the way. 1167ab47cfaaSmrg while test "$#" -gt 0; do 1168ab47cfaaSmrg arg="$1" 1169ab47cfaaSmrg shift 1170ab47cfaaSmrg case $arg in 1171ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1172ab47cfaaSmrg qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 1173ab47cfaaSmrg ;; 1174ab47cfaaSmrg *) qarg=$arg ;; 1175ab47cfaaSmrg esac 1176ab47cfaaSmrg libtool_args="$libtool_args $qarg" 1177ab47cfaaSmrg 1178ab47cfaaSmrg # If the previous option needs an argument, assign it. 1179ab47cfaaSmrg if test -n "$prev"; then 1180ab47cfaaSmrg case $prev in 1181ab47cfaaSmrg output) 1182ab47cfaaSmrg compile_command="$compile_command @OUTPUT@" 1183ab47cfaaSmrg finalize_command="$finalize_command @OUTPUT@" 1184ab47cfaaSmrg ;; 1185ab47cfaaSmrg esac 1186ab47cfaaSmrg 1187ab47cfaaSmrg case $prev in 1188ab47cfaaSmrg dlfiles|dlprefiles) 1189ab47cfaaSmrg if test "$preload" = no; then 1190ab47cfaaSmrg # Add the symbol object into the linking commands. 1191ab47cfaaSmrg compile_command="$compile_command @SYMFILE@" 1192ab47cfaaSmrg finalize_command="$finalize_command @SYMFILE@" 1193ab47cfaaSmrg preload=yes 1194ab47cfaaSmrg fi 1195ab47cfaaSmrg case $arg in 1196ab47cfaaSmrg *.la | *.lo) ;; # We handle these cases below. 1197ab47cfaaSmrg force) 1198ab47cfaaSmrg if test "$dlself" = no; then 1199ab47cfaaSmrg dlself=needless 1200ab47cfaaSmrg export_dynamic=yes 1201ab47cfaaSmrg fi 1202ab47cfaaSmrg prev= 1203ab47cfaaSmrg continue 1204ab47cfaaSmrg ;; 1205ab47cfaaSmrg self) 1206ab47cfaaSmrg if test "$prev" = dlprefiles; then 1207ab47cfaaSmrg dlself=yes 1208ab47cfaaSmrg elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 1209ab47cfaaSmrg dlself=yes 1210ab47cfaaSmrg else 1211ab47cfaaSmrg dlself=needless 1212ab47cfaaSmrg export_dynamic=yes 1213ab47cfaaSmrg fi 1214ab47cfaaSmrg prev= 1215ab47cfaaSmrg continue 1216ab47cfaaSmrg ;; 1217ab47cfaaSmrg *) 1218ab47cfaaSmrg if test "$prev" = dlfiles; then 1219ab47cfaaSmrg dlfiles="$dlfiles $arg" 1220ab47cfaaSmrg else 1221ab47cfaaSmrg dlprefiles="$dlprefiles $arg" 1222ab47cfaaSmrg fi 1223ab47cfaaSmrg prev= 1224ab47cfaaSmrg continue 1225ab47cfaaSmrg ;; 1226ab47cfaaSmrg esac 1227ab47cfaaSmrg ;; 1228ab47cfaaSmrg expsyms) 1229ab47cfaaSmrg export_symbols="$arg" 1230ab47cfaaSmrg if test ! -f "$arg"; then 1231ab47cfaaSmrg $echo "$modename: symbol file \`$arg' does not exist" 1232ab47cfaaSmrg exit $EXIT_FAILURE 1233ab47cfaaSmrg fi 1234ab47cfaaSmrg prev= 1235ab47cfaaSmrg continue 1236ab47cfaaSmrg ;; 1237ab47cfaaSmrg expsyms_regex) 1238ab47cfaaSmrg export_symbols_regex="$arg" 1239ab47cfaaSmrg prev= 1240ab47cfaaSmrg continue 1241ab47cfaaSmrg ;; 1242ab47cfaaSmrg inst_prefix) 1243ab47cfaaSmrg inst_prefix_dir="$arg" 1244ab47cfaaSmrg prev= 1245ab47cfaaSmrg continue 1246ab47cfaaSmrg ;; 1247ab47cfaaSmrg precious_regex) 1248ab47cfaaSmrg precious_files_regex="$arg" 1249ab47cfaaSmrg prev= 1250ab47cfaaSmrg continue 1251ab47cfaaSmrg ;; 1252ab47cfaaSmrg release) 1253ab47cfaaSmrg release="-$arg" 1254ab47cfaaSmrg prev= 1255ab47cfaaSmrg continue 1256ab47cfaaSmrg ;; 1257ab47cfaaSmrg objectlist) 1258ab47cfaaSmrg if test -f "$arg"; then 1259ab47cfaaSmrg save_arg=$arg 1260ab47cfaaSmrg moreargs= 1261ab47cfaaSmrg for fil in `cat $save_arg` 1262ab47cfaaSmrg do 1263ab47cfaaSmrg# moreargs="$moreargs $fil" 1264ab47cfaaSmrg arg=$fil 1265ab47cfaaSmrg # A libtool-controlled object. 1266ab47cfaaSmrg 1267ab47cfaaSmrg # Check to see that this really is a libtool object. 1268ab47cfaaSmrg if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1269ab47cfaaSmrg pic_object= 1270ab47cfaaSmrg non_pic_object= 1271ab47cfaaSmrg 1272ab47cfaaSmrg # Read the .lo file 1273ab47cfaaSmrg # If there is no directory component, then add one. 1274ab47cfaaSmrg case $arg in 1275ab47cfaaSmrg */* | *\\*) . $arg ;; 1276ab47cfaaSmrg *) . ./$arg ;; 1277ab47cfaaSmrg esac 1278ab47cfaaSmrg 1279ab47cfaaSmrg if test -z "$pic_object" || \ 1280ab47cfaaSmrg test -z "$non_pic_object" || 1281ab47cfaaSmrg test "$pic_object" = none && \ 1282ab47cfaaSmrg test "$non_pic_object" = none; then 1283ab47cfaaSmrg $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1284ab47cfaaSmrg exit $EXIT_FAILURE 1285ab47cfaaSmrg fi 1286ab47cfaaSmrg 1287ab47cfaaSmrg # Extract subdirectory from the argument. 1288ab47cfaaSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1289ab47cfaaSmrg if test "X$xdir" = "X$arg"; then 1290ab47cfaaSmrg xdir= 1291ab47cfaaSmrg else 1292ab47cfaaSmrg xdir="$xdir/" 1293ab47cfaaSmrg fi 1294ab47cfaaSmrg 1295ab47cfaaSmrg if test "$pic_object" != none; then 1296ab47cfaaSmrg # Prepend the subdirectory the object is found in. 1297ab47cfaaSmrg pic_object="$xdir$pic_object" 1298ab47cfaaSmrg 1299ab47cfaaSmrg if test "$prev" = dlfiles; then 1300ab47cfaaSmrg if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1301ab47cfaaSmrg dlfiles="$dlfiles $pic_object" 1302ab47cfaaSmrg prev= 1303ab47cfaaSmrg continue 1304ab47cfaaSmrg else 1305ab47cfaaSmrg # If libtool objects are unsupported, then we need to preload. 1306ab47cfaaSmrg prev=dlprefiles 1307ab47cfaaSmrg fi 1308ab47cfaaSmrg fi 1309ab47cfaaSmrg 1310ab47cfaaSmrg # CHECK ME: I think I busted this. -Ossama 1311ab47cfaaSmrg if test "$prev" = dlprefiles; then 1312ab47cfaaSmrg # Preload the old-style object. 1313ab47cfaaSmrg dlprefiles="$dlprefiles $pic_object" 1314ab47cfaaSmrg prev= 1315ab47cfaaSmrg fi 1316ab47cfaaSmrg 1317ab47cfaaSmrg # A PIC object. 1318ab47cfaaSmrg libobjs="$libobjs $pic_object" 1319ab47cfaaSmrg arg="$pic_object" 1320ab47cfaaSmrg fi 1321ab47cfaaSmrg 1322ab47cfaaSmrg # Non-PIC object. 1323ab47cfaaSmrg if test "$non_pic_object" != none; then 1324ab47cfaaSmrg # Prepend the subdirectory the object is found in. 1325ab47cfaaSmrg non_pic_object="$xdir$non_pic_object" 1326ab47cfaaSmrg 1327ab47cfaaSmrg # A standard non-PIC object 1328ab47cfaaSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1329ab47cfaaSmrg if test -z "$pic_object" || test "$pic_object" = none ; then 1330ab47cfaaSmrg arg="$non_pic_object" 1331ab47cfaaSmrg fi 1332ab47cfaaSmrg else 1333ab47cfaaSmrg # If the PIC object exists, use it instead. 1334ab47cfaaSmrg # $xdir was prepended to $pic_object above. 1335ab47cfaaSmrg non_pic_object="$pic_object" 1336ab47cfaaSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1337ab47cfaaSmrg fi 1338ab47cfaaSmrg else 1339ab47cfaaSmrg # Only an error if not doing a dry-run. 1340ab47cfaaSmrg if test -z "$run"; then 1341ab47cfaaSmrg $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1342ab47cfaaSmrg exit $EXIT_FAILURE 1343ab47cfaaSmrg else 1344ab47cfaaSmrg # Dry-run case. 1345ab47cfaaSmrg 1346ab47cfaaSmrg # Extract subdirectory from the argument. 1347ab47cfaaSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1348ab47cfaaSmrg if test "X$xdir" = "X$arg"; then 1349ab47cfaaSmrg xdir= 1350ab47cfaaSmrg else 1351ab47cfaaSmrg xdir="$xdir/" 1352ab47cfaaSmrg fi 1353ab47cfaaSmrg 1354ab47cfaaSmrg pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1355ab47cfaaSmrg non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1356ab47cfaaSmrg libobjs="$libobjs $pic_object" 1357ab47cfaaSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1358ab47cfaaSmrg fi 1359ab47cfaaSmrg fi 1360ab47cfaaSmrg done 1361ab47cfaaSmrg else 1362ab47cfaaSmrg $echo "$modename: link input file \`$save_arg' does not exist" 1363ab47cfaaSmrg exit $EXIT_FAILURE 1364ab47cfaaSmrg fi 1365ab47cfaaSmrg arg=$save_arg 1366ab47cfaaSmrg prev= 1367ab47cfaaSmrg continue 1368ab47cfaaSmrg ;; 1369ab47cfaaSmrg rpath | xrpath) 1370ab47cfaaSmrg # We need an absolute path. 1371ab47cfaaSmrg case $arg in 1372ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1373ab47cfaaSmrg *) 1374ab47cfaaSmrg $echo "$modename: only absolute run-paths are allowed" 1>&2 1375ab47cfaaSmrg exit $EXIT_FAILURE 1376ab47cfaaSmrg ;; 1377ab47cfaaSmrg esac 1378ab47cfaaSmrg if test "$prev" = rpath; then 1379ab47cfaaSmrg case "$rpath " in 1380ab47cfaaSmrg *" $arg "*) ;; 1381ab47cfaaSmrg *) rpath="$rpath $arg" ;; 1382ab47cfaaSmrg esac 1383ab47cfaaSmrg else 1384ab47cfaaSmrg case "$xrpath " in 1385ab47cfaaSmrg *" $arg "*) ;; 1386ab47cfaaSmrg *) xrpath="$xrpath $arg" ;; 1387ab47cfaaSmrg esac 1388ab47cfaaSmrg fi 1389ab47cfaaSmrg prev= 1390ab47cfaaSmrg continue 1391ab47cfaaSmrg ;; 1392ab47cfaaSmrg xcompiler) 1393ab47cfaaSmrg compiler_flags="$compiler_flags $qarg" 1394ab47cfaaSmrg prev= 1395ab47cfaaSmrg compile_command="$compile_command $qarg" 1396ab47cfaaSmrg finalize_command="$finalize_command $qarg" 1397ab47cfaaSmrg continue 1398ab47cfaaSmrg ;; 1399ab47cfaaSmrg xlinker) 1400ab47cfaaSmrg linker_flags="$linker_flags $qarg" 1401ab47cfaaSmrg compiler_flags="$compiler_flags $wl$qarg" 1402ab47cfaaSmrg prev= 1403ab47cfaaSmrg compile_command="$compile_command $wl$qarg" 1404ab47cfaaSmrg finalize_command="$finalize_command $wl$qarg" 1405ab47cfaaSmrg continue 1406ab47cfaaSmrg ;; 1407ab47cfaaSmrg xcclinker) 1408ab47cfaaSmrg linker_flags="$linker_flags $qarg" 1409ab47cfaaSmrg compiler_flags="$compiler_flags $qarg" 1410ab47cfaaSmrg prev= 1411ab47cfaaSmrg compile_command="$compile_command $qarg" 1412ab47cfaaSmrg finalize_command="$finalize_command $qarg" 1413ab47cfaaSmrg continue 1414ab47cfaaSmrg ;; 1415ab47cfaaSmrg shrext) 1416ab47cfaaSmrg shrext_cmds="$arg" 1417ab47cfaaSmrg prev= 1418ab47cfaaSmrg continue 1419ab47cfaaSmrg ;; 1420ab47cfaaSmrg darwin_framework|darwin_framework_skip) 1421ab47cfaaSmrg test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 1422ab47cfaaSmrg compile_command="$compile_command $arg" 1423ab47cfaaSmrg finalize_command="$finalize_command $arg" 1424ab47cfaaSmrg prev= 1425ab47cfaaSmrg continue 1426ab47cfaaSmrg ;; 1427ab47cfaaSmrg *) 1428ab47cfaaSmrg eval "$prev=\"\$arg\"" 1429ab47cfaaSmrg prev= 1430ab47cfaaSmrg continue 1431ab47cfaaSmrg ;; 1432ab47cfaaSmrg esac 1433ab47cfaaSmrg fi # test -n "$prev" 1434ab47cfaaSmrg 1435ab47cfaaSmrg prevarg="$arg" 1436ab47cfaaSmrg 1437ab47cfaaSmrg case $arg in 1438ab47cfaaSmrg -all-static) 1439ab47cfaaSmrg if test -n "$link_static_flag"; then 1440ab47cfaaSmrg compile_command="$compile_command $link_static_flag" 1441ab47cfaaSmrg finalize_command="$finalize_command $link_static_flag" 1442ab47cfaaSmrg fi 1443ab47cfaaSmrg continue 1444ab47cfaaSmrg ;; 1445ab47cfaaSmrg 1446ab47cfaaSmrg -allow-undefined) 1447ab47cfaaSmrg # FIXME: remove this flag sometime in the future. 1448ab47cfaaSmrg $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 1449ab47cfaaSmrg continue 1450ab47cfaaSmrg ;; 1451ab47cfaaSmrg 1452ab47cfaaSmrg -avoid-version) 1453ab47cfaaSmrg avoid_version=yes 1454ab47cfaaSmrg continue 1455ab47cfaaSmrg ;; 1456ab47cfaaSmrg 1457ab47cfaaSmrg -dlopen) 1458ab47cfaaSmrg prev=dlfiles 1459ab47cfaaSmrg continue 1460ab47cfaaSmrg ;; 1461ab47cfaaSmrg 1462ab47cfaaSmrg -dlpreopen) 1463ab47cfaaSmrg prev=dlprefiles 1464ab47cfaaSmrg continue 1465ab47cfaaSmrg ;; 1466ab47cfaaSmrg 1467ab47cfaaSmrg -export-dynamic) 1468ab47cfaaSmrg export_dynamic=yes 1469ab47cfaaSmrg continue 1470ab47cfaaSmrg ;; 1471ab47cfaaSmrg 1472ab47cfaaSmrg -export-symbols | -export-symbols-regex) 1473ab47cfaaSmrg if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 1474ab47cfaaSmrg $echo "$modename: more than one -exported-symbols argument is not allowed" 1475ab47cfaaSmrg exit $EXIT_FAILURE 1476ab47cfaaSmrg fi 1477ab47cfaaSmrg if test "X$arg" = "X-export-symbols"; then 1478ab47cfaaSmrg prev=expsyms 1479ab47cfaaSmrg else 1480ab47cfaaSmrg prev=expsyms_regex 1481ab47cfaaSmrg fi 1482ab47cfaaSmrg continue 1483ab47cfaaSmrg ;; 1484ab47cfaaSmrg 1485ab47cfaaSmrg -framework|-arch|-isysroot) 1486ab47cfaaSmrg case " $CC " in 1487ab47cfaaSmrg *" ${arg} ${1} "* | *" ${arg} ${1} "*) 1488ab47cfaaSmrg prev=darwin_framework_skip ;; 1489ab47cfaaSmrg *) compiler_flags="$compiler_flags $arg" 1490ab47cfaaSmrg prev=darwin_framework ;; 1491ab47cfaaSmrg esac 1492ab47cfaaSmrg compile_command="$compile_command $arg" 1493ab47cfaaSmrg finalize_command="$finalize_command $arg" 1494ab47cfaaSmrg continue 1495ab47cfaaSmrg ;; 1496ab47cfaaSmrg 1497ab47cfaaSmrg -inst-prefix-dir) 1498ab47cfaaSmrg prev=inst_prefix 1499ab47cfaaSmrg continue 1500ab47cfaaSmrg ;; 1501ab47cfaaSmrg 1502ab47cfaaSmrg # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 1503ab47cfaaSmrg # so, if we see these flags be careful not to treat them like -L 1504ab47cfaaSmrg -L[A-Z][A-Z]*:*) 1505ab47cfaaSmrg case $with_gcc/$host in 1506ab47cfaaSmrg no/*-*-irix* | /*-*-irix*) 1507ab47cfaaSmrg compile_command="$compile_command $arg" 1508ab47cfaaSmrg finalize_command="$finalize_command $arg" 1509ab47cfaaSmrg ;; 1510ab47cfaaSmrg esac 1511ab47cfaaSmrg continue 1512ab47cfaaSmrg ;; 1513ab47cfaaSmrg 1514ab47cfaaSmrg -L*) 1515ab47cfaaSmrg dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 1516ab47cfaaSmrg # We need an absolute path. 1517ab47cfaaSmrg case $dir in 1518ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1519ab47cfaaSmrg *) 1520ab47cfaaSmrg absdir=`cd "$dir" && pwd` 1521ab47cfaaSmrg if test -z "$absdir"; then 1522ab47cfaaSmrg $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 1523ab47cfaaSmrg absdir="$dir" 1524ab47cfaaSmrg notinst_path="$notinst_path $dir" 1525ab47cfaaSmrg fi 1526ab47cfaaSmrg dir="$absdir" 1527ab47cfaaSmrg ;; 1528ab47cfaaSmrg esac 1529ab47cfaaSmrg case "$deplibs " in 1530ab47cfaaSmrg *" -L$dir "*) ;; 1531ab47cfaaSmrg *) 1532ab47cfaaSmrg deplibs="$deplibs -L$dir" 1533ab47cfaaSmrg lib_search_path="$lib_search_path $dir" 1534ab47cfaaSmrg ;; 1535ab47cfaaSmrg esac 1536ab47cfaaSmrg case $host in 1537ab47cfaaSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1538ab47cfaaSmrg testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 1539ab47cfaaSmrg case :$dllsearchpath: in 1540ab47cfaaSmrg *":$dir:"*) ;; 1541ab47cfaaSmrg *) dllsearchpath="$dllsearchpath:$dir";; 1542ab47cfaaSmrg esac 1543ab47cfaaSmrg case :$dllsearchpath: in 1544ab47cfaaSmrg *":$testbindir:"*) ;; 1545ab47cfaaSmrg *) dllsearchpath="$dllsearchpath:$testbindir";; 1546ab47cfaaSmrg esac 1547ab47cfaaSmrg ;; 1548ab47cfaaSmrg esac 1549ab47cfaaSmrg continue 1550ab47cfaaSmrg ;; 1551ab47cfaaSmrg 1552ab47cfaaSmrg -l*) 1553ab47cfaaSmrg if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 1554ab47cfaaSmrg case $host in 1555ab47cfaaSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 1556ab47cfaaSmrg # These systems don't actually have a C or math library (as such) 1557ab47cfaaSmrg continue 1558ab47cfaaSmrg ;; 1559ab47cfaaSmrg *-*-os2*) 1560ab47cfaaSmrg # These systems don't actually have a C library (as such) 1561ab47cfaaSmrg test "X$arg" = "X-lc" && continue 1562ab47cfaaSmrg ;; 1563ab47cfaaSmrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1564ab47cfaaSmrg # Do not include libc due to us having libc/libc_r. 1565ab47cfaaSmrg test "X$arg" = "X-lc" && continue 1566ab47cfaaSmrg ;; 1567ab47cfaaSmrg *-*-rhapsody* | *-*-darwin1.[012]) 1568ab47cfaaSmrg # Rhapsody C and math libraries are in the System framework 1569ab47cfaaSmrg deplibs="$deplibs -framework System" 1570ab47cfaaSmrg continue 1571ab47cfaaSmrg ;; 1572ab47cfaaSmrg *-*-sco3.2v5* | *-*-sco5v6*) 1573ab47cfaaSmrg # Causes problems with __ctype 1574ab47cfaaSmrg test "X$arg" = "X-lc" && continue 1575ab47cfaaSmrg ;; 1576ab47cfaaSmrg *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 1577ab47cfaaSmrg # Compiler inserts libc in the correct place for threads to work 1578ab47cfaaSmrg test "X$arg" = "X-lc" && continue 1579ab47cfaaSmrg ;; 1580ab47cfaaSmrg esac 1581ab47cfaaSmrg elif test "X$arg" = "X-lc_r"; then 1582ab47cfaaSmrg case $host in 1583ab47cfaaSmrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1584ab47cfaaSmrg # Do not include libc_r directly, use -pthread flag. 1585ab47cfaaSmrg continue 1586ab47cfaaSmrg ;; 1587ab47cfaaSmrg esac 1588ab47cfaaSmrg fi 1589ab47cfaaSmrg deplibs="$deplibs $arg" 1590ab47cfaaSmrg continue 1591ab47cfaaSmrg ;; 1592ab47cfaaSmrg 1593ab47cfaaSmrg # Tru64 UNIX uses -model [arg] to determine the layout of C++ 1594ab47cfaaSmrg # classes, name mangling, and exception handling. 1595ab47cfaaSmrg -model) 1596ab47cfaaSmrg compile_command="$compile_command $arg" 1597ab47cfaaSmrg compiler_flags="$compiler_flags $arg" 1598ab47cfaaSmrg finalize_command="$finalize_command $arg" 1599ab47cfaaSmrg prev=xcompiler 1600ab47cfaaSmrg continue 1601ab47cfaaSmrg ;; 1602ab47cfaaSmrg 1603ab47cfaaSmrg -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 1604ab47cfaaSmrg compiler_flags="$compiler_flags $arg" 1605ab47cfaaSmrg compile_command="$compile_command $arg" 1606ab47cfaaSmrg finalize_command="$finalize_command $arg" 1607ab47cfaaSmrg continue 1608ab47cfaaSmrg ;; 1609ab47cfaaSmrg 1610ab47cfaaSmrg -module) 1611ab47cfaaSmrg module=yes 1612ab47cfaaSmrg continue 1613ab47cfaaSmrg ;; 1614ab47cfaaSmrg 1615ab47cfaaSmrg # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 1616ab47cfaaSmrg # -r[0-9][0-9]* specifies the processor on the SGI compiler 1617ab47cfaaSmrg # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 1618ab47cfaaSmrg # +DA*, +DD* enable 64-bit mode on the HP compiler 1619ab47cfaaSmrg # -q* pass through compiler args for the IBM compiler 1620ab47cfaaSmrg # -m* pass through architecture-specific compiler args for GCC 1621ab47cfaaSmrg # -m*, -t[45]*, -txscale* pass through architecture-specific 1622ab47cfaaSmrg # compiler args for GCC 1623ab47cfaaSmrg # -pg pass through profiling flag for GCC 1624ab47cfaaSmrg # @file GCC response files 1625ab47cfaaSmrg -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ 1626ab47cfaaSmrg -t[45]*|-txscale*|@*) 1627ab47cfaaSmrg 1628ab47cfaaSmrg # Unknown arguments in both finalize_command and compile_command need 1629ab47cfaaSmrg # to be aesthetically quoted because they are evaled later. 1630ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1631ab47cfaaSmrg case $arg in 1632ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1633ab47cfaaSmrg arg="\"$arg\"" 1634ab47cfaaSmrg ;; 1635ab47cfaaSmrg esac 1636ab47cfaaSmrg compile_command="$compile_command $arg" 1637ab47cfaaSmrg finalize_command="$finalize_command $arg" 1638ab47cfaaSmrg compiler_flags="$compiler_flags $arg" 1639ab47cfaaSmrg continue 1640ab47cfaaSmrg ;; 1641ab47cfaaSmrg 1642ab47cfaaSmrg -shrext) 1643ab47cfaaSmrg prev=shrext 1644ab47cfaaSmrg continue 1645ab47cfaaSmrg ;; 1646ab47cfaaSmrg 1647ab47cfaaSmrg -no-fast-install) 1648ab47cfaaSmrg fast_install=no 1649ab47cfaaSmrg continue 1650ab47cfaaSmrg ;; 1651ab47cfaaSmrg 1652ab47cfaaSmrg -no-install) 1653ab47cfaaSmrg case $host in 1654ab47cfaaSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1655ab47cfaaSmrg # The PATH hackery in wrapper scripts is required on Windows 1656ab47cfaaSmrg # in order for the loader to find any dlls it needs. 1657ab47cfaaSmrg $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 1658ab47cfaaSmrg $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 1659ab47cfaaSmrg fast_install=no 1660ab47cfaaSmrg ;; 1661ab47cfaaSmrg *) no_install=yes ;; 1662ab47cfaaSmrg esac 1663ab47cfaaSmrg continue 1664ab47cfaaSmrg ;; 1665ab47cfaaSmrg 1666ab47cfaaSmrg -no-undefined) 1667ab47cfaaSmrg allow_undefined=no 1668ab47cfaaSmrg continue 1669ab47cfaaSmrg ;; 1670ab47cfaaSmrg 1671ab47cfaaSmrg -objectlist) 1672ab47cfaaSmrg prev=objectlist 1673ab47cfaaSmrg continue 1674ab47cfaaSmrg ;; 1675ab47cfaaSmrg 1676ab47cfaaSmrg -o) prev=output ;; 1677ab47cfaaSmrg 1678ab47cfaaSmrg -precious-files-regex) 1679ab47cfaaSmrg prev=precious_regex 1680ab47cfaaSmrg continue 1681ab47cfaaSmrg ;; 1682ab47cfaaSmrg 1683ab47cfaaSmrg -release) 1684ab47cfaaSmrg prev=release 1685ab47cfaaSmrg continue 1686ab47cfaaSmrg ;; 1687ab47cfaaSmrg 1688ab47cfaaSmrg -rpath) 1689ab47cfaaSmrg prev=rpath 1690ab47cfaaSmrg continue 1691ab47cfaaSmrg ;; 1692ab47cfaaSmrg 1693ab47cfaaSmrg -R) 1694ab47cfaaSmrg prev=xrpath 1695ab47cfaaSmrg continue 1696ab47cfaaSmrg ;; 1697ab47cfaaSmrg 1698ab47cfaaSmrg -R*) 1699ab47cfaaSmrg dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 1700ab47cfaaSmrg # We need an absolute path. 1701ab47cfaaSmrg case $dir in 1702ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1703ab47cfaaSmrg *) 1704ab47cfaaSmrg $echo "$modename: only absolute run-paths are allowed" 1>&2 1705ab47cfaaSmrg exit $EXIT_FAILURE 1706ab47cfaaSmrg ;; 1707ab47cfaaSmrg esac 1708ab47cfaaSmrg case "$xrpath " in 1709ab47cfaaSmrg *" $dir "*) ;; 1710ab47cfaaSmrg *) xrpath="$xrpath $dir" ;; 1711ab47cfaaSmrg esac 1712ab47cfaaSmrg continue 1713ab47cfaaSmrg ;; 1714ab47cfaaSmrg 1715ab47cfaaSmrg -static) 1716ab47cfaaSmrg # The effects of -static are defined in a previous loop. 1717ab47cfaaSmrg # We used to do the same as -all-static on platforms that 1718ab47cfaaSmrg # didn't have a PIC flag, but the assumption that the effects 1719ab47cfaaSmrg # would be equivalent was wrong. It would break on at least 1720ab47cfaaSmrg # Digital Unix and AIX. 1721ab47cfaaSmrg continue 1722ab47cfaaSmrg ;; 1723ab47cfaaSmrg 1724ab47cfaaSmrg -thread-safe) 1725ab47cfaaSmrg thread_safe=yes 1726ab47cfaaSmrg continue 1727ab47cfaaSmrg ;; 1728ab47cfaaSmrg 1729ab47cfaaSmrg -version-info) 1730ab47cfaaSmrg prev=vinfo 1731ab47cfaaSmrg continue 1732ab47cfaaSmrg ;; 1733ab47cfaaSmrg -version-number) 1734ab47cfaaSmrg prev=vinfo 1735ab47cfaaSmrg vinfo_number=yes 1736ab47cfaaSmrg continue 1737ab47cfaaSmrg ;; 1738ab47cfaaSmrg 1739ab47cfaaSmrg -Wc,*) 1740ab47cfaaSmrg args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 1741ab47cfaaSmrg arg= 1742ab47cfaaSmrg save_ifs="$IFS"; IFS=',' 1743ab47cfaaSmrg for flag in $args; do 1744ab47cfaaSmrg IFS="$save_ifs" 1745ab47cfaaSmrg case $flag in 1746ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1747ab47cfaaSmrg flag="\"$flag\"" 1748ab47cfaaSmrg ;; 1749ab47cfaaSmrg esac 1750ab47cfaaSmrg arg="$arg $wl$flag" 1751ab47cfaaSmrg compiler_flags="$compiler_flags $flag" 1752ab47cfaaSmrg done 1753ab47cfaaSmrg IFS="$save_ifs" 1754ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1755ab47cfaaSmrg ;; 1756ab47cfaaSmrg 1757ab47cfaaSmrg -Wl,*) 1758ab47cfaaSmrg args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 1759ab47cfaaSmrg arg= 1760ab47cfaaSmrg save_ifs="$IFS"; IFS=',' 1761ab47cfaaSmrg for flag in $args; do 1762ab47cfaaSmrg IFS="$save_ifs" 1763ab47cfaaSmrg case $flag in 1764ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1765ab47cfaaSmrg flag="\"$flag\"" 1766ab47cfaaSmrg ;; 1767ab47cfaaSmrg esac 1768ab47cfaaSmrg arg="$arg $wl$flag" 1769ab47cfaaSmrg compiler_flags="$compiler_flags $wl$flag" 1770ab47cfaaSmrg linker_flags="$linker_flags $flag" 1771ab47cfaaSmrg done 1772ab47cfaaSmrg IFS="$save_ifs" 1773ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1774ab47cfaaSmrg ;; 1775ab47cfaaSmrg 1776ab47cfaaSmrg -Xcompiler) 1777ab47cfaaSmrg prev=xcompiler 1778ab47cfaaSmrg continue 1779ab47cfaaSmrg ;; 1780ab47cfaaSmrg 1781ab47cfaaSmrg -Xlinker) 1782ab47cfaaSmrg prev=xlinker 1783ab47cfaaSmrg continue 1784ab47cfaaSmrg ;; 1785ab47cfaaSmrg 1786ab47cfaaSmrg -XCClinker) 1787ab47cfaaSmrg prev=xcclinker 1788ab47cfaaSmrg continue 1789ab47cfaaSmrg ;; 1790ab47cfaaSmrg 1791ab47cfaaSmrg # Some other compiler flag. 1792ab47cfaaSmrg -* | +*) 1793ab47cfaaSmrg # Unknown arguments in both finalize_command and compile_command need 1794ab47cfaaSmrg # to be aesthetically quoted because they are evaled later. 1795ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1796ab47cfaaSmrg case $arg in 1797ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1798ab47cfaaSmrg arg="\"$arg\"" 1799ab47cfaaSmrg ;; 1800ab47cfaaSmrg esac 1801ab47cfaaSmrg ;; 1802ab47cfaaSmrg 1803ab47cfaaSmrg *.$objext) 1804ab47cfaaSmrg # A standard object. 1805ab47cfaaSmrg objs="$objs $arg" 1806ab47cfaaSmrg ;; 1807ab47cfaaSmrg 1808ab47cfaaSmrg *.lo) 1809ab47cfaaSmrg # A libtool-controlled object. 1810ab47cfaaSmrg 1811ab47cfaaSmrg # Check to see that this really is a libtool object. 1812ab47cfaaSmrg if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1813ab47cfaaSmrg pic_object= 1814ab47cfaaSmrg non_pic_object= 1815ab47cfaaSmrg 1816ab47cfaaSmrg # Read the .lo file 1817ab47cfaaSmrg # If there is no directory component, then add one. 1818ab47cfaaSmrg case $arg in 1819ab47cfaaSmrg */* | *\\*) . $arg ;; 1820ab47cfaaSmrg *) . ./$arg ;; 1821ab47cfaaSmrg esac 1822ab47cfaaSmrg 1823ab47cfaaSmrg if test -z "$pic_object" || \ 1824ab47cfaaSmrg test -z "$non_pic_object" || 1825ab47cfaaSmrg test "$pic_object" = none && \ 1826ab47cfaaSmrg test "$non_pic_object" = none; then 1827ab47cfaaSmrg $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1828ab47cfaaSmrg exit $EXIT_FAILURE 1829ab47cfaaSmrg fi 1830ab47cfaaSmrg 1831ab47cfaaSmrg # Extract subdirectory from the argument. 1832ab47cfaaSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1833ab47cfaaSmrg if test "X$xdir" = "X$arg"; then 1834ab47cfaaSmrg xdir= 1835ab47cfaaSmrg else 1836ab47cfaaSmrg xdir="$xdir/" 1837ab47cfaaSmrg fi 1838ab47cfaaSmrg 1839ab47cfaaSmrg if test "$pic_object" != none; then 1840ab47cfaaSmrg # Prepend the subdirectory the object is found in. 1841ab47cfaaSmrg pic_object="$xdir$pic_object" 1842ab47cfaaSmrg 1843ab47cfaaSmrg if test "$prev" = dlfiles; then 1844ab47cfaaSmrg if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1845ab47cfaaSmrg dlfiles="$dlfiles $pic_object" 1846ab47cfaaSmrg prev= 1847ab47cfaaSmrg continue 1848ab47cfaaSmrg else 1849ab47cfaaSmrg # If libtool objects are unsupported, then we need to preload. 1850ab47cfaaSmrg prev=dlprefiles 1851ab47cfaaSmrg fi 1852ab47cfaaSmrg fi 1853ab47cfaaSmrg 1854ab47cfaaSmrg # CHECK ME: I think I busted this. -Ossama 1855ab47cfaaSmrg if test "$prev" = dlprefiles; then 1856ab47cfaaSmrg # Preload the old-style object. 1857ab47cfaaSmrg dlprefiles="$dlprefiles $pic_object" 1858ab47cfaaSmrg prev= 1859ab47cfaaSmrg fi 1860ab47cfaaSmrg 1861ab47cfaaSmrg # A PIC object. 1862ab47cfaaSmrg libobjs="$libobjs $pic_object" 1863ab47cfaaSmrg arg="$pic_object" 1864ab47cfaaSmrg fi 1865ab47cfaaSmrg 1866ab47cfaaSmrg # Non-PIC object. 1867ab47cfaaSmrg if test "$non_pic_object" != none; then 1868ab47cfaaSmrg # Prepend the subdirectory the object is found in. 1869ab47cfaaSmrg non_pic_object="$xdir$non_pic_object" 1870ab47cfaaSmrg 1871ab47cfaaSmrg # A standard non-PIC object 1872ab47cfaaSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1873ab47cfaaSmrg if test -z "$pic_object" || test "$pic_object" = none ; then 1874ab47cfaaSmrg arg="$non_pic_object" 1875ab47cfaaSmrg fi 1876ab47cfaaSmrg else 1877ab47cfaaSmrg # If the PIC object exists, use it instead. 1878ab47cfaaSmrg # $xdir was prepended to $pic_object above. 1879ab47cfaaSmrg non_pic_object="$pic_object" 1880ab47cfaaSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1881ab47cfaaSmrg fi 1882ab47cfaaSmrg else 1883ab47cfaaSmrg # Only an error if not doing a dry-run. 1884ab47cfaaSmrg if test -z "$run"; then 1885ab47cfaaSmrg $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1886ab47cfaaSmrg exit $EXIT_FAILURE 1887ab47cfaaSmrg else 1888ab47cfaaSmrg # Dry-run case. 1889ab47cfaaSmrg 1890ab47cfaaSmrg # Extract subdirectory from the argument. 1891ab47cfaaSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1892ab47cfaaSmrg if test "X$xdir" = "X$arg"; then 1893ab47cfaaSmrg xdir= 1894ab47cfaaSmrg else 1895ab47cfaaSmrg xdir="$xdir/" 1896ab47cfaaSmrg fi 1897ab47cfaaSmrg 1898ab47cfaaSmrg pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1899ab47cfaaSmrg non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1900ab47cfaaSmrg libobjs="$libobjs $pic_object" 1901ab47cfaaSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1902ab47cfaaSmrg fi 1903ab47cfaaSmrg fi 1904ab47cfaaSmrg ;; 1905ab47cfaaSmrg 1906ab47cfaaSmrg *.$libext) 1907ab47cfaaSmrg # An archive. 1908ab47cfaaSmrg deplibs="$deplibs $arg" 1909ab47cfaaSmrg old_deplibs="$old_deplibs $arg" 1910ab47cfaaSmrg continue 1911ab47cfaaSmrg ;; 1912ab47cfaaSmrg 1913ab47cfaaSmrg *.la) 1914ab47cfaaSmrg # A libtool-controlled library. 1915ab47cfaaSmrg 1916ab47cfaaSmrg if test "$prev" = dlfiles; then 1917ab47cfaaSmrg # This library was specified with -dlopen. 1918ab47cfaaSmrg dlfiles="$dlfiles $arg" 1919ab47cfaaSmrg prev= 1920ab47cfaaSmrg elif test "$prev" = dlprefiles; then 1921ab47cfaaSmrg # The library was specified with -dlpreopen. 1922ab47cfaaSmrg dlprefiles="$dlprefiles $arg" 1923ab47cfaaSmrg prev= 1924ab47cfaaSmrg else 1925ab47cfaaSmrg deplibs="$deplibs $arg" 1926ab47cfaaSmrg fi 1927ab47cfaaSmrg continue 1928ab47cfaaSmrg ;; 1929ab47cfaaSmrg 1930ab47cfaaSmrg # Some other compiler argument. 1931ab47cfaaSmrg *) 1932ab47cfaaSmrg # Unknown arguments in both finalize_command and compile_command need 1933ab47cfaaSmrg # to be aesthetically quoted because they are evaled later. 1934ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1935ab47cfaaSmrg case $arg in 1936ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1937ab47cfaaSmrg arg="\"$arg\"" 1938ab47cfaaSmrg ;; 1939ab47cfaaSmrg esac 1940ab47cfaaSmrg ;; 1941ab47cfaaSmrg esac # arg 1942ab47cfaaSmrg 1943ab47cfaaSmrg # Now actually substitute the argument into the commands. 1944ab47cfaaSmrg if test -n "$arg"; then 1945ab47cfaaSmrg compile_command="$compile_command $arg" 1946ab47cfaaSmrg finalize_command="$finalize_command $arg" 1947ab47cfaaSmrg fi 1948ab47cfaaSmrg done # argument parsing loop 1949ab47cfaaSmrg 1950ab47cfaaSmrg if test -n "$prev"; then 1951ab47cfaaSmrg $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 1952ab47cfaaSmrg $echo "$help" 1>&2 1953ab47cfaaSmrg exit $EXIT_FAILURE 1954ab47cfaaSmrg fi 1955ab47cfaaSmrg 1956ab47cfaaSmrg if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 1957ab47cfaaSmrg eval arg=\"$export_dynamic_flag_spec\" 1958ab47cfaaSmrg compile_command="$compile_command $arg" 1959ab47cfaaSmrg finalize_command="$finalize_command $arg" 1960ab47cfaaSmrg fi 1961ab47cfaaSmrg 1962ab47cfaaSmrg oldlibs= 1963ab47cfaaSmrg # calculate the name of the file, without its directory 1964ab47cfaaSmrg outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 1965ab47cfaaSmrg libobjs_save="$libobjs" 1966ab47cfaaSmrg 1967ab47cfaaSmrg if test -n "$shlibpath_var"; then 1968ab47cfaaSmrg # get the directories listed in $shlibpath_var 1969ab47cfaaSmrg eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 1970ab47cfaaSmrg else 1971ab47cfaaSmrg shlib_search_path= 1972ab47cfaaSmrg fi 1973ab47cfaaSmrg eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 1974ab47cfaaSmrg eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 1975ab47cfaaSmrg 1976ab47cfaaSmrg output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 1977ab47cfaaSmrg if test "X$output_objdir" = "X$output"; then 1978ab47cfaaSmrg output_objdir="$objdir" 1979ab47cfaaSmrg else 1980ab47cfaaSmrg output_objdir="$output_objdir/$objdir" 1981ab47cfaaSmrg fi 1982ab47cfaaSmrg # Create the object directory. 1983ab47cfaaSmrg if test ! -d "$output_objdir"; then 1984ab47cfaaSmrg $show "$mkdir $output_objdir" 1985ab47cfaaSmrg $run $mkdir $output_objdir 1986ab47cfaaSmrg exit_status=$? 1987ab47cfaaSmrg if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 1988ab47cfaaSmrg exit $exit_status 1989ab47cfaaSmrg fi 1990ab47cfaaSmrg fi 1991ab47cfaaSmrg 1992ab47cfaaSmrg # Determine the type of output 1993ab47cfaaSmrg case $output in 1994ab47cfaaSmrg "") 1995ab47cfaaSmrg $echo "$modename: you must specify an output file" 1>&2 1996ab47cfaaSmrg $echo "$help" 1>&2 1997ab47cfaaSmrg exit $EXIT_FAILURE 1998ab47cfaaSmrg ;; 1999ab47cfaaSmrg *.$libext) linkmode=oldlib ;; 2000ab47cfaaSmrg *.lo | *.$objext) linkmode=obj ;; 2001ab47cfaaSmrg *.la) linkmode=lib ;; 2002ab47cfaaSmrg *) linkmode=prog ;; # Anything else should be a program. 2003ab47cfaaSmrg esac 2004ab47cfaaSmrg 2005ab47cfaaSmrg case $host in 2006ab47cfaaSmrg *cygwin* | *mingw* | *pw32*) 2007ab47cfaaSmrg # don't eliminate duplications in $postdeps and $predeps 2008ab47cfaaSmrg duplicate_compiler_generated_deps=yes 2009ab47cfaaSmrg ;; 2010ab47cfaaSmrg *) 2011ab47cfaaSmrg duplicate_compiler_generated_deps=$duplicate_deps 2012ab47cfaaSmrg ;; 2013ab47cfaaSmrg esac 2014ab47cfaaSmrg specialdeplibs= 2015ab47cfaaSmrg 2016ab47cfaaSmrg libs= 2017ab47cfaaSmrg # Find all interdependent deplibs by searching for libraries 2018ab47cfaaSmrg # that are linked more than once (e.g. -la -lb -la) 2019ab47cfaaSmrg for deplib in $deplibs; do 2020ab47cfaaSmrg if test "X$duplicate_deps" = "Xyes" ; then 2021ab47cfaaSmrg case "$libs " in 2022ab47cfaaSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2023ab47cfaaSmrg esac 2024ab47cfaaSmrg fi 2025ab47cfaaSmrg libs="$libs $deplib" 2026ab47cfaaSmrg done 2027ab47cfaaSmrg 2028ab47cfaaSmrg if test "$linkmode" = lib; then 2029ab47cfaaSmrg libs="$predeps $libs $compiler_lib_search_path $postdeps" 2030ab47cfaaSmrg 2031ab47cfaaSmrg # Compute libraries that are listed more than once in $predeps 2032ab47cfaaSmrg # $postdeps and mark them as special (i.e., whose duplicates are 2033ab47cfaaSmrg # not to be eliminated). 2034ab47cfaaSmrg pre_post_deps= 2035ab47cfaaSmrg if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 2036ab47cfaaSmrg for pre_post_dep in $predeps $postdeps; do 2037ab47cfaaSmrg case "$pre_post_deps " in 2038ab47cfaaSmrg *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 2039ab47cfaaSmrg esac 2040ab47cfaaSmrg pre_post_deps="$pre_post_deps $pre_post_dep" 2041ab47cfaaSmrg done 2042ab47cfaaSmrg fi 2043ab47cfaaSmrg pre_post_deps= 2044ab47cfaaSmrg fi 2045ab47cfaaSmrg 2046ab47cfaaSmrg deplibs= 2047ab47cfaaSmrg newdependency_libs= 2048ab47cfaaSmrg newlib_search_path= 2049ab47cfaaSmrg need_relink=no # whether we're linking any uninstalled libtool libraries 2050ab47cfaaSmrg notinst_deplibs= # not-installed libtool libraries 2051ab47cfaaSmrg case $linkmode in 2052ab47cfaaSmrg lib) 2053ab47cfaaSmrg passes="conv link" 2054ab47cfaaSmrg for file in $dlfiles $dlprefiles; do 2055ab47cfaaSmrg case $file in 2056ab47cfaaSmrg *.la) ;; 2057ab47cfaaSmrg *) 2058ab47cfaaSmrg $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 2059ab47cfaaSmrg exit $EXIT_FAILURE 2060ab47cfaaSmrg ;; 2061ab47cfaaSmrg esac 2062ab47cfaaSmrg done 2063ab47cfaaSmrg ;; 2064ab47cfaaSmrg prog) 2065ab47cfaaSmrg compile_deplibs= 2066ab47cfaaSmrg finalize_deplibs= 2067ab47cfaaSmrg alldeplibs=no 2068ab47cfaaSmrg newdlfiles= 2069ab47cfaaSmrg newdlprefiles= 2070ab47cfaaSmrg passes="conv scan dlopen dlpreopen link" 2071ab47cfaaSmrg ;; 2072ab47cfaaSmrg *) passes="conv" 2073ab47cfaaSmrg ;; 2074ab47cfaaSmrg esac 2075ab47cfaaSmrg for pass in $passes; do 2076ab47cfaaSmrg if test "$linkmode,$pass" = "lib,link" || 2077ab47cfaaSmrg test "$linkmode,$pass" = "prog,scan"; then 2078ab47cfaaSmrg libs="$deplibs" 2079ab47cfaaSmrg deplibs= 2080ab47cfaaSmrg fi 2081ab47cfaaSmrg if test "$linkmode" = prog; then 2082ab47cfaaSmrg case $pass in 2083ab47cfaaSmrg dlopen) libs="$dlfiles" ;; 2084ab47cfaaSmrg dlpreopen) libs="$dlprefiles" ;; 2085ab47cfaaSmrg link) 2086ab47cfaaSmrg libs="$deplibs %DEPLIBS%" 2087ab47cfaaSmrg test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" 2088ab47cfaaSmrg ;; 2089ab47cfaaSmrg esac 2090ab47cfaaSmrg fi 2091ab47cfaaSmrg if test "$pass" = dlopen; then 2092ab47cfaaSmrg # Collect dlpreopened libraries 2093ab47cfaaSmrg save_deplibs="$deplibs" 2094ab47cfaaSmrg deplibs= 2095ab47cfaaSmrg fi 2096ab47cfaaSmrg for deplib in $libs; do 2097ab47cfaaSmrg lib= 2098ab47cfaaSmrg found=no 2099ab47cfaaSmrg case $deplib in 2100ab47cfaaSmrg -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 2101ab47cfaaSmrg if test "$linkmode,$pass" = "prog,link"; then 2102ab47cfaaSmrg compile_deplibs="$deplib $compile_deplibs" 2103ab47cfaaSmrg finalize_deplibs="$deplib $finalize_deplibs" 2104ab47cfaaSmrg else 2105ab47cfaaSmrg compiler_flags="$compiler_flags $deplib" 2106ab47cfaaSmrg fi 2107ab47cfaaSmrg continue 2108ab47cfaaSmrg ;; 2109ab47cfaaSmrg -l*) 2110ab47cfaaSmrg if test "$linkmode" != lib && test "$linkmode" != prog; then 2111ab47cfaaSmrg $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 2112ab47cfaaSmrg continue 2113ab47cfaaSmrg fi 2114ab47cfaaSmrg name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 2115ab47cfaaSmrg for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do 2116ab47cfaaSmrg for search_ext in .la $std_shrext .so .a; do 2117ab47cfaaSmrg # Search the libtool library 2118ab47cfaaSmrg lib="$searchdir/lib${name}${search_ext}" 2119ab47cfaaSmrg if test -f "$lib"; then 2120ab47cfaaSmrg if test "$search_ext" = ".la"; then 2121ab47cfaaSmrg found=yes 2122ab47cfaaSmrg else 2123ab47cfaaSmrg found=no 2124ab47cfaaSmrg fi 2125ab47cfaaSmrg break 2 2126ab47cfaaSmrg fi 2127ab47cfaaSmrg done 2128ab47cfaaSmrg done 2129ab47cfaaSmrg if test "$found" != yes; then 2130ab47cfaaSmrg # deplib doesn't seem to be a libtool library 2131ab47cfaaSmrg if test "$linkmode,$pass" = "prog,link"; then 2132ab47cfaaSmrg compile_deplibs="$deplib $compile_deplibs" 2133ab47cfaaSmrg finalize_deplibs="$deplib $finalize_deplibs" 2134ab47cfaaSmrg else 2135ab47cfaaSmrg deplibs="$deplib $deplibs" 2136ab47cfaaSmrg test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2137ab47cfaaSmrg fi 2138ab47cfaaSmrg continue 2139ab47cfaaSmrg else # deplib is a libtool library 2140ab47cfaaSmrg # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 2141ab47cfaaSmrg # We need to do some special things here, and not later. 2142ab47cfaaSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 2143ab47cfaaSmrg case " $predeps $postdeps " in 2144ab47cfaaSmrg *" $deplib "*) 2145ab47cfaaSmrg if (${SED} -e '2q' $lib | 2146ab47cfaaSmrg grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 2147ab47cfaaSmrg library_names= 2148ab47cfaaSmrg old_library= 2149ab47cfaaSmrg case $lib in 2150ab47cfaaSmrg */* | *\\*) . $lib ;; 2151ab47cfaaSmrg *) . ./$lib ;; 2152ab47cfaaSmrg esac 2153ab47cfaaSmrg for l in $old_library $library_names; do 2154ab47cfaaSmrg ll="$l" 2155ab47cfaaSmrg done 2156ab47cfaaSmrg if test "X$ll" = "X$old_library" ; then # only static version available 2157ab47cfaaSmrg found=no 2158ab47cfaaSmrg ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2159ab47cfaaSmrg test "X$ladir" = "X$lib" && ladir="." 2160ab47cfaaSmrg lib=$ladir/$old_library 2161ab47cfaaSmrg if test "$linkmode,$pass" = "prog,link"; then 2162ab47cfaaSmrg compile_deplibs="$deplib $compile_deplibs" 2163ab47cfaaSmrg finalize_deplibs="$deplib $finalize_deplibs" 2164ab47cfaaSmrg else 2165ab47cfaaSmrg deplibs="$deplib $deplibs" 2166ab47cfaaSmrg test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2167ab47cfaaSmrg fi 2168ab47cfaaSmrg continue 2169ab47cfaaSmrg fi 2170ab47cfaaSmrg fi 2171ab47cfaaSmrg ;; 2172ab47cfaaSmrg *) ;; 2173ab47cfaaSmrg esac 2174ab47cfaaSmrg fi 2175ab47cfaaSmrg fi 2176ab47cfaaSmrg ;; # -l 2177ab47cfaaSmrg -L*) 2178ab47cfaaSmrg case $linkmode in 2179ab47cfaaSmrg lib) 2180ab47cfaaSmrg deplibs="$deplib $deplibs" 2181ab47cfaaSmrg test "$pass" = conv && continue 2182ab47cfaaSmrg newdependency_libs="$deplib $newdependency_libs" 2183ab47cfaaSmrg newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2184ab47cfaaSmrg ;; 2185ab47cfaaSmrg prog) 2186ab47cfaaSmrg if test "$pass" = conv; then 2187ab47cfaaSmrg deplibs="$deplib $deplibs" 2188ab47cfaaSmrg continue 2189ab47cfaaSmrg fi 2190ab47cfaaSmrg if test "$pass" = scan; then 2191ab47cfaaSmrg deplibs="$deplib $deplibs" 2192ab47cfaaSmrg else 2193ab47cfaaSmrg compile_deplibs="$deplib $compile_deplibs" 2194ab47cfaaSmrg finalize_deplibs="$deplib $finalize_deplibs" 2195ab47cfaaSmrg fi 2196ab47cfaaSmrg newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2197ab47cfaaSmrg ;; 2198ab47cfaaSmrg *) 2199ab47cfaaSmrg $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 2200ab47cfaaSmrg ;; 2201ab47cfaaSmrg esac # linkmode 2202ab47cfaaSmrg continue 2203ab47cfaaSmrg ;; # -L 2204ab47cfaaSmrg -R*) 2205ab47cfaaSmrg if test "$pass" = link; then 2206ab47cfaaSmrg dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 2207ab47cfaaSmrg # Make sure the xrpath contains only unique directories. 2208ab47cfaaSmrg case "$xrpath " in 2209ab47cfaaSmrg *" $dir "*) ;; 2210ab47cfaaSmrg *) xrpath="$xrpath $dir" ;; 2211ab47cfaaSmrg esac 2212ab47cfaaSmrg fi 2213ab47cfaaSmrg deplibs="$deplib $deplibs" 2214ab47cfaaSmrg continue 2215ab47cfaaSmrg ;; 2216ab47cfaaSmrg *.la) lib="$deplib" ;; 2217ab47cfaaSmrg *.$libext) 2218ab47cfaaSmrg if test "$pass" = conv; then 2219ab47cfaaSmrg deplibs="$deplib $deplibs" 2220ab47cfaaSmrg continue 2221ab47cfaaSmrg fi 2222ab47cfaaSmrg case $linkmode in 2223ab47cfaaSmrg lib) 2224ab47cfaaSmrg valid_a_lib=no 2225ab47cfaaSmrg case $deplibs_check_method in 2226ab47cfaaSmrg match_pattern*) 2227ab47cfaaSmrg set dummy $deplibs_check_method 2228ab47cfaaSmrg match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 2229ab47cfaaSmrg if eval $echo \"$deplib\" 2>/dev/null \ 2230ab47cfaaSmrg | $SED 10q \ 2231ab47cfaaSmrg | $EGREP "$match_pattern_regex" > /dev/null; then 2232ab47cfaaSmrg valid_a_lib=yes 2233ab47cfaaSmrg fi 2234ab47cfaaSmrg ;; 2235ab47cfaaSmrg pass_all) 2236ab47cfaaSmrg valid_a_lib=yes 2237ab47cfaaSmrg ;; 2238ab47cfaaSmrg esac 2239ab47cfaaSmrg if test "$valid_a_lib" != yes; then 2240ab47cfaaSmrg $echo 2241ab47cfaaSmrg $echo "*** Warning: Trying to link with static lib archive $deplib." 2242ab47cfaaSmrg $echo "*** I have the capability to make that library automatically link in when" 2243ab47cfaaSmrg $echo "*** you link to this library. But I can only do this if you have a" 2244ab47cfaaSmrg $echo "*** shared version of the library, which you do not appear to have" 2245ab47cfaaSmrg $echo "*** because the file extensions .$libext of this argument makes me believe" 2246ab47cfaaSmrg $echo "*** that it is just a static archive that I should not used here." 2247ab47cfaaSmrg else 2248ab47cfaaSmrg $echo 2249ab47cfaaSmrg $echo "*** Warning: Linking the shared library $output against the" 2250ab47cfaaSmrg $echo "*** static library $deplib is not portable!" 2251ab47cfaaSmrg deplibs="$deplib $deplibs" 2252ab47cfaaSmrg fi 2253ab47cfaaSmrg continue 2254ab47cfaaSmrg ;; 2255ab47cfaaSmrg prog) 2256ab47cfaaSmrg if test "$pass" != link; then 2257ab47cfaaSmrg deplibs="$deplib $deplibs" 2258ab47cfaaSmrg else 2259ab47cfaaSmrg compile_deplibs="$deplib $compile_deplibs" 2260ab47cfaaSmrg finalize_deplibs="$deplib $finalize_deplibs" 2261ab47cfaaSmrg fi 2262ab47cfaaSmrg continue 2263ab47cfaaSmrg ;; 2264ab47cfaaSmrg esac # linkmode 2265ab47cfaaSmrg ;; # *.$libext 2266ab47cfaaSmrg *.lo | *.$objext) 2267ab47cfaaSmrg if test "$pass" = conv; then 2268ab47cfaaSmrg deplibs="$deplib $deplibs" 2269ab47cfaaSmrg elif test "$linkmode" = prog; then 2270ab47cfaaSmrg if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 2271ab47cfaaSmrg # If there is no dlopen support or we're linking statically, 2272ab47cfaaSmrg # we need to preload. 2273ab47cfaaSmrg newdlprefiles="$newdlprefiles $deplib" 2274ab47cfaaSmrg compile_deplibs="$deplib $compile_deplibs" 2275ab47cfaaSmrg finalize_deplibs="$deplib $finalize_deplibs" 2276ab47cfaaSmrg else 2277ab47cfaaSmrg newdlfiles="$newdlfiles $deplib" 2278ab47cfaaSmrg fi 2279ab47cfaaSmrg fi 2280ab47cfaaSmrg continue 2281ab47cfaaSmrg ;; 2282ab47cfaaSmrg %DEPLIBS%) 2283ab47cfaaSmrg alldeplibs=yes 2284ab47cfaaSmrg continue 2285ab47cfaaSmrg ;; 2286ab47cfaaSmrg esac # case $deplib 2287ab47cfaaSmrg if test "$found" = yes || test -f "$lib"; then : 2288ab47cfaaSmrg else 2289ab47cfaaSmrg $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 2290ab47cfaaSmrg exit $EXIT_FAILURE 2291ab47cfaaSmrg fi 2292ab47cfaaSmrg 2293ab47cfaaSmrg # Check to see that this really is a libtool archive. 2294ab47cfaaSmrg if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 2295ab47cfaaSmrg else 2296ab47cfaaSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 2297ab47cfaaSmrg exit $EXIT_FAILURE 2298ab47cfaaSmrg fi 2299ab47cfaaSmrg 2300ab47cfaaSmrg ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2301ab47cfaaSmrg test "X$ladir" = "X$lib" && ladir="." 2302ab47cfaaSmrg 2303ab47cfaaSmrg dlname= 2304ab47cfaaSmrg dlopen= 2305ab47cfaaSmrg dlpreopen= 2306ab47cfaaSmrg libdir= 2307ab47cfaaSmrg library_names= 2308ab47cfaaSmrg old_library= 2309ab47cfaaSmrg # If the library was installed with an old release of libtool, 2310ab47cfaaSmrg # it will not redefine variables installed, or shouldnotlink 2311ab47cfaaSmrg installed=yes 2312ab47cfaaSmrg shouldnotlink=no 2313ab47cfaaSmrg avoidtemprpath= 2314ab47cfaaSmrg 2315ab47cfaaSmrg 2316ab47cfaaSmrg # Read the .la file 2317ab47cfaaSmrg case $lib in 2318ab47cfaaSmrg */* | *\\*) . $lib ;; 2319ab47cfaaSmrg *) . ./$lib ;; 2320ab47cfaaSmrg esac 2321ab47cfaaSmrg 2322ab47cfaaSmrg if test "$linkmode,$pass" = "lib,link" || 2323ab47cfaaSmrg test "$linkmode,$pass" = "prog,scan" || 2324ab47cfaaSmrg { test "$linkmode" != prog && test "$linkmode" != lib; }; then 2325ab47cfaaSmrg test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 2326ab47cfaaSmrg test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 2327ab47cfaaSmrg fi 2328ab47cfaaSmrg 2329ab47cfaaSmrg if test "$pass" = conv; then 2330ab47cfaaSmrg # Only check for convenience libraries 2331ab47cfaaSmrg deplibs="$lib $deplibs" 2332ab47cfaaSmrg if test -z "$libdir"; then 2333ab47cfaaSmrg if test -z "$old_library"; then 2334ab47cfaaSmrg $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2335ab47cfaaSmrg exit $EXIT_FAILURE 2336ab47cfaaSmrg fi 2337ab47cfaaSmrg # It is a libtool convenience library, so add in its objects. 2338ab47cfaaSmrg convenience="$convenience $ladir/$objdir/$old_library" 2339ab47cfaaSmrg old_convenience="$old_convenience $ladir/$objdir/$old_library" 2340ab47cfaaSmrg tmp_libs= 2341ab47cfaaSmrg for deplib in $dependency_libs; do 2342ab47cfaaSmrg deplibs="$deplib $deplibs" 2343ab47cfaaSmrg if test "X$duplicate_deps" = "Xyes" ; then 2344ab47cfaaSmrg case "$tmp_libs " in 2345ab47cfaaSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2346ab47cfaaSmrg esac 2347ab47cfaaSmrg fi 2348ab47cfaaSmrg tmp_libs="$tmp_libs $deplib" 2349ab47cfaaSmrg done 2350ab47cfaaSmrg elif test "$linkmode" != prog && test "$linkmode" != lib; then 2351ab47cfaaSmrg $echo "$modename: \`$lib' is not a convenience library" 1>&2 2352ab47cfaaSmrg exit $EXIT_FAILURE 2353ab47cfaaSmrg fi 2354ab47cfaaSmrg continue 2355ab47cfaaSmrg fi # $pass = conv 2356ab47cfaaSmrg 2357ab47cfaaSmrg 2358ab47cfaaSmrg # Get the name of the library we link against. 2359ab47cfaaSmrg linklib= 2360ab47cfaaSmrg for l in $old_library $library_names; do 2361ab47cfaaSmrg linklib="$l" 2362ab47cfaaSmrg done 2363ab47cfaaSmrg if test -z "$linklib"; then 2364ab47cfaaSmrg $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2365ab47cfaaSmrg exit $EXIT_FAILURE 2366ab47cfaaSmrg fi 2367ab47cfaaSmrg 2368ab47cfaaSmrg # This library was specified with -dlopen. 2369ab47cfaaSmrg if test "$pass" = dlopen; then 2370ab47cfaaSmrg if test -z "$libdir"; then 2371ab47cfaaSmrg $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 2372ab47cfaaSmrg exit $EXIT_FAILURE 2373ab47cfaaSmrg fi 2374ab47cfaaSmrg if test -z "$dlname" || 2375ab47cfaaSmrg test "$dlopen_support" != yes || 2376ab47cfaaSmrg test "$build_libtool_libs" = no; then 2377ab47cfaaSmrg # If there is no dlname, no dlopen support or we're linking 2378ab47cfaaSmrg # statically, we need to preload. We also need to preload any 2379ab47cfaaSmrg # dependent libraries so libltdl's deplib preloader doesn't 2380ab47cfaaSmrg # bomb out in the load deplibs phase. 2381ab47cfaaSmrg dlprefiles="$dlprefiles $lib $dependency_libs" 2382ab47cfaaSmrg else 2383ab47cfaaSmrg newdlfiles="$newdlfiles $lib" 2384ab47cfaaSmrg fi 2385ab47cfaaSmrg continue 2386ab47cfaaSmrg fi # $pass = dlopen 2387ab47cfaaSmrg 2388ab47cfaaSmrg # We need an absolute path. 2389ab47cfaaSmrg case $ladir in 2390ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 2391ab47cfaaSmrg *) 2392ab47cfaaSmrg abs_ladir=`cd "$ladir" && pwd` 2393ab47cfaaSmrg if test -z "$abs_ladir"; then 2394ab47cfaaSmrg $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 2395ab47cfaaSmrg $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 2396ab47cfaaSmrg abs_ladir="$ladir" 2397ab47cfaaSmrg fi 2398ab47cfaaSmrg ;; 2399ab47cfaaSmrg esac 2400ab47cfaaSmrg laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 2401ab47cfaaSmrg 2402ab47cfaaSmrg # Find the relevant object directory and library name. 2403ab47cfaaSmrg if test "X$installed" = Xyes; then 2404ab47cfaaSmrg if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2405ab47cfaaSmrg $echo "$modename: warning: library \`$lib' was moved." 1>&2 2406ab47cfaaSmrg dir="$ladir" 2407ab47cfaaSmrg absdir="$abs_ladir" 2408ab47cfaaSmrg libdir="$abs_ladir" 2409ab47cfaaSmrg else 2410ab47cfaaSmrg dir="$libdir" 2411ab47cfaaSmrg absdir="$libdir" 2412ab47cfaaSmrg fi 2413ab47cfaaSmrg test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 2414ab47cfaaSmrg else 2415ab47cfaaSmrg if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2416ab47cfaaSmrg dir="$ladir" 2417ab47cfaaSmrg absdir="$abs_ladir" 2418ab47cfaaSmrg # Remove this search path later 2419ab47cfaaSmrg notinst_path="$notinst_path $abs_ladir" 2420ab47cfaaSmrg else 2421ab47cfaaSmrg dir="$ladir/$objdir" 2422ab47cfaaSmrg absdir="$abs_ladir/$objdir" 2423ab47cfaaSmrg # Remove this search path later 2424ab47cfaaSmrg notinst_path="$notinst_path $abs_ladir" 2425ab47cfaaSmrg fi 2426ab47cfaaSmrg fi # $installed = yes 2427ab47cfaaSmrg name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 2428ab47cfaaSmrg 2429ab47cfaaSmrg # This library was specified with -dlpreopen. 2430ab47cfaaSmrg if test "$pass" = dlpreopen; then 2431ab47cfaaSmrg if test -z "$libdir"; then 2432ab47cfaaSmrg $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 2433ab47cfaaSmrg exit $EXIT_FAILURE 2434ab47cfaaSmrg fi 2435ab47cfaaSmrg # Prefer using a static library (so that no silly _DYNAMIC symbols 2436ab47cfaaSmrg # are required to link). 2437ab47cfaaSmrg if test -n "$old_library"; then 2438ab47cfaaSmrg newdlprefiles="$newdlprefiles $dir/$old_library" 2439ab47cfaaSmrg # Otherwise, use the dlname, so that lt_dlopen finds it. 2440ab47cfaaSmrg elif test -n "$dlname"; then 2441ab47cfaaSmrg newdlprefiles="$newdlprefiles $dir/$dlname" 2442ab47cfaaSmrg else 2443ab47cfaaSmrg newdlprefiles="$newdlprefiles $dir/$linklib" 2444ab47cfaaSmrg fi 2445ab47cfaaSmrg fi # $pass = dlpreopen 2446ab47cfaaSmrg 2447ab47cfaaSmrg if test -z "$libdir"; then 2448ab47cfaaSmrg # Link the convenience library 2449ab47cfaaSmrg if test "$linkmode" = lib; then 2450ab47cfaaSmrg deplibs="$dir/$old_library $deplibs" 2451ab47cfaaSmrg elif test "$linkmode,$pass" = "prog,link"; then 2452ab47cfaaSmrg compile_deplibs="$dir/$old_library $compile_deplibs" 2453ab47cfaaSmrg finalize_deplibs="$dir/$old_library $finalize_deplibs" 2454ab47cfaaSmrg else 2455ab47cfaaSmrg deplibs="$lib $deplibs" # used for prog,scan pass 2456ab47cfaaSmrg fi 2457ab47cfaaSmrg continue 2458ab47cfaaSmrg fi 2459ab47cfaaSmrg 2460ab47cfaaSmrg 2461ab47cfaaSmrg if test "$linkmode" = prog && test "$pass" != link; then 2462ab47cfaaSmrg newlib_search_path="$newlib_search_path $ladir" 2463ab47cfaaSmrg deplibs="$lib $deplibs" 2464ab47cfaaSmrg 2465ab47cfaaSmrg linkalldeplibs=no 2466ab47cfaaSmrg if test "$link_all_deplibs" != no || test -z "$library_names" || 2467ab47cfaaSmrg test "$build_libtool_libs" = no; then 2468ab47cfaaSmrg linkalldeplibs=yes 2469ab47cfaaSmrg fi 2470ab47cfaaSmrg 2471ab47cfaaSmrg tmp_libs= 2472ab47cfaaSmrg for deplib in $dependency_libs; do 2473ab47cfaaSmrg case $deplib in 2474ab47cfaaSmrg -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 2475ab47cfaaSmrg esac 2476ab47cfaaSmrg # Need to link against all dependency_libs? 2477ab47cfaaSmrg if test "$linkalldeplibs" = yes; then 2478ab47cfaaSmrg deplibs="$deplib $deplibs" 2479ab47cfaaSmrg else 2480ab47cfaaSmrg # Need to hardcode shared library paths 2481ab47cfaaSmrg # or/and link against static libraries 2482ab47cfaaSmrg newdependency_libs="$deplib $newdependency_libs" 2483ab47cfaaSmrg fi 2484ab47cfaaSmrg if test "X$duplicate_deps" = "Xyes" ; then 2485ab47cfaaSmrg case "$tmp_libs " in 2486ab47cfaaSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2487ab47cfaaSmrg esac 2488ab47cfaaSmrg fi 2489ab47cfaaSmrg tmp_libs="$tmp_libs $deplib" 2490ab47cfaaSmrg done # for deplib 2491ab47cfaaSmrg continue 2492ab47cfaaSmrg fi # $linkmode = prog... 2493ab47cfaaSmrg 2494ab47cfaaSmrg if test "$linkmode,$pass" = "prog,link"; then 2495ab47cfaaSmrg if test -n "$library_names" && 2496ab47cfaaSmrg { test "$prefer_static_libs" = no || test -z "$old_library"; }; then 2497ab47cfaaSmrg # We need to hardcode the library path 2498ab47cfaaSmrg if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 2499ab47cfaaSmrg # Make sure the rpath contains only unique directories. 2500ab47cfaaSmrg case "$temp_rpath " in 2501ab47cfaaSmrg *" $dir "*) ;; 2502ab47cfaaSmrg *" $absdir "*) ;; 2503ab47cfaaSmrg *) temp_rpath="$temp_rpath $absdir" ;; 2504ab47cfaaSmrg esac 2505ab47cfaaSmrg fi 2506ab47cfaaSmrg 2507ab47cfaaSmrg # Hardcode the library path. 2508ab47cfaaSmrg # Skip directories that are in the system default run-time 2509ab47cfaaSmrg # search path. 2510ab47cfaaSmrg case " $sys_lib_dlsearch_path " in 2511ab47cfaaSmrg *" $absdir "*) ;; 2512ab47cfaaSmrg *) 2513ab47cfaaSmrg case "$compile_rpath " in 2514ab47cfaaSmrg *" $absdir "*) ;; 2515ab47cfaaSmrg *) compile_rpath="$compile_rpath $absdir" 2516ab47cfaaSmrg esac 2517ab47cfaaSmrg ;; 2518ab47cfaaSmrg esac 2519ab47cfaaSmrg case " $sys_lib_dlsearch_path " in 2520ab47cfaaSmrg *" $libdir "*) ;; 2521ab47cfaaSmrg *) 2522ab47cfaaSmrg case "$finalize_rpath " in 2523ab47cfaaSmrg *" $libdir "*) ;; 2524ab47cfaaSmrg *) finalize_rpath="$finalize_rpath $libdir" 2525ab47cfaaSmrg esac 2526ab47cfaaSmrg ;; 2527ab47cfaaSmrg esac 2528ab47cfaaSmrg fi # $linkmode,$pass = prog,link... 2529ab47cfaaSmrg 2530ab47cfaaSmrg if test "$alldeplibs" = yes && 2531ab47cfaaSmrg { test "$deplibs_check_method" = pass_all || 2532ab47cfaaSmrg { test "$build_libtool_libs" = yes && 2533ab47cfaaSmrg test -n "$library_names"; }; }; then 2534ab47cfaaSmrg # We only need to search for static libraries 2535ab47cfaaSmrg continue 2536ab47cfaaSmrg fi 2537ab47cfaaSmrg fi 2538ab47cfaaSmrg 2539ab47cfaaSmrg link_static=no # Whether the deplib will be linked statically 2540ab47cfaaSmrg use_static_libs=$prefer_static_libs 2541ab47cfaaSmrg if test "$use_static_libs" = built && test "$installed" = yes ; then 2542ab47cfaaSmrg use_static_libs=no 2543ab47cfaaSmrg fi 2544ab47cfaaSmrg if test -n "$library_names" && 2545ab47cfaaSmrg { test "$use_static_libs" = no || test -z "$old_library"; }; then 2546ab47cfaaSmrg if test "$installed" = no; then 2547ab47cfaaSmrg notinst_deplibs="$notinst_deplibs $lib" 2548ab47cfaaSmrg need_relink=yes 2549ab47cfaaSmrg fi 2550ab47cfaaSmrg # This is a shared library 2551ab47cfaaSmrg 2552ab47cfaaSmrg # Warn about portability, can't link against -module's on 2553ab47cfaaSmrg # some systems (darwin) 2554ab47cfaaSmrg if test "$shouldnotlink" = yes && test "$pass" = link ; then 2555ab47cfaaSmrg $echo 2556ab47cfaaSmrg if test "$linkmode" = prog; then 2557ab47cfaaSmrg $echo "*** Warning: Linking the executable $output against the loadable module" 2558ab47cfaaSmrg else 2559ab47cfaaSmrg $echo "*** Warning: Linking the shared library $output against the loadable module" 2560ab47cfaaSmrg fi 2561ab47cfaaSmrg $echo "*** $linklib is not portable!" 2562ab47cfaaSmrg fi 2563ab47cfaaSmrg if test "$linkmode" = lib && 2564ab47cfaaSmrg test "$hardcode_into_libs" = yes; then 2565ab47cfaaSmrg # Hardcode the library path. 2566ab47cfaaSmrg # Skip directories that are in the system default run-time 2567ab47cfaaSmrg # search path. 2568ab47cfaaSmrg case " $sys_lib_dlsearch_path " in 2569ab47cfaaSmrg *" $absdir "*) ;; 2570ab47cfaaSmrg *) 2571ab47cfaaSmrg case "$compile_rpath " in 2572ab47cfaaSmrg *" $absdir "*) ;; 2573ab47cfaaSmrg *) compile_rpath="$compile_rpath $absdir" 2574ab47cfaaSmrg esac 2575ab47cfaaSmrg ;; 2576ab47cfaaSmrg esac 2577ab47cfaaSmrg case " $sys_lib_dlsearch_path " in 2578ab47cfaaSmrg *" $libdir "*) ;; 2579ab47cfaaSmrg *) 2580ab47cfaaSmrg case "$finalize_rpath " in 2581ab47cfaaSmrg *" $libdir "*) ;; 2582ab47cfaaSmrg *) finalize_rpath="$finalize_rpath $libdir" 2583ab47cfaaSmrg esac 2584ab47cfaaSmrg ;; 2585ab47cfaaSmrg esac 2586ab47cfaaSmrg fi 2587ab47cfaaSmrg 2588ab47cfaaSmrg if test -n "$old_archive_from_expsyms_cmds"; then 2589ab47cfaaSmrg # figure out the soname 2590ab47cfaaSmrg set dummy $library_names 2591ab47cfaaSmrg realname="$2" 2592ab47cfaaSmrg shift; shift 2593ab47cfaaSmrg libname=`eval \\$echo \"$libname_spec\"` 2594ab47cfaaSmrg # use dlname if we got it. it's perfectly good, no? 2595ab47cfaaSmrg if test -n "$dlname"; then 2596ab47cfaaSmrg soname="$dlname" 2597ab47cfaaSmrg elif test -n "$soname_spec"; then 2598ab47cfaaSmrg # bleh windows 2599ab47cfaaSmrg case $host in 2600ab47cfaaSmrg *cygwin* | mingw*) 2601ab47cfaaSmrg major=`expr $current - $age` 2602ab47cfaaSmrg versuffix="-$major" 2603ab47cfaaSmrg ;; 2604ab47cfaaSmrg esac 2605ab47cfaaSmrg eval soname=\"$soname_spec\" 2606ab47cfaaSmrg else 2607ab47cfaaSmrg soname="$realname" 2608ab47cfaaSmrg fi 2609ab47cfaaSmrg 2610ab47cfaaSmrg # Make a new name for the extract_expsyms_cmds to use 2611ab47cfaaSmrg soroot="$soname" 2612ab47cfaaSmrg soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 2613ab47cfaaSmrg newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 2614ab47cfaaSmrg 2615ab47cfaaSmrg # If the library has no export list, then create one now 2616ab47cfaaSmrg if test -f "$output_objdir/$soname-def"; then : 2617ab47cfaaSmrg else 2618ab47cfaaSmrg $show "extracting exported symbol list from \`$soname'" 2619ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 2620ab47cfaaSmrg cmds=$extract_expsyms_cmds 2621ab47cfaaSmrg for cmd in $cmds; do 2622ab47cfaaSmrg IFS="$save_ifs" 2623ab47cfaaSmrg eval cmd=\"$cmd\" 2624ab47cfaaSmrg $show "$cmd" 2625ab47cfaaSmrg $run eval "$cmd" || exit $? 2626ab47cfaaSmrg done 2627ab47cfaaSmrg IFS="$save_ifs" 2628ab47cfaaSmrg fi 2629ab47cfaaSmrg 2630ab47cfaaSmrg # Create $newlib 2631ab47cfaaSmrg if test -f "$output_objdir/$newlib"; then :; else 2632ab47cfaaSmrg $show "generating import library for \`$soname'" 2633ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 2634ab47cfaaSmrg cmds=$old_archive_from_expsyms_cmds 2635ab47cfaaSmrg for cmd in $cmds; do 2636ab47cfaaSmrg IFS="$save_ifs" 2637ab47cfaaSmrg eval cmd=\"$cmd\" 2638ab47cfaaSmrg $show "$cmd" 2639ab47cfaaSmrg $run eval "$cmd" || exit $? 2640ab47cfaaSmrg done 2641ab47cfaaSmrg IFS="$save_ifs" 2642ab47cfaaSmrg fi 2643ab47cfaaSmrg # make sure the library variables are pointing to the new library 2644ab47cfaaSmrg dir=$output_objdir 2645ab47cfaaSmrg linklib=$newlib 2646ab47cfaaSmrg fi # test -n "$old_archive_from_expsyms_cmds" 2647ab47cfaaSmrg 2648ab47cfaaSmrg if test "$linkmode" = prog || test "$mode" != relink; then 2649ab47cfaaSmrg add_shlibpath= 2650ab47cfaaSmrg add_dir= 2651ab47cfaaSmrg add= 2652ab47cfaaSmrg lib_linked=yes 2653ab47cfaaSmrg case $hardcode_action in 2654ab47cfaaSmrg immediate | unsupported) 2655ab47cfaaSmrg if test "$hardcode_direct" = no; then 2656ab47cfaaSmrg add="$dir/$linklib" 2657ab47cfaaSmrg case $host in 2658ab47cfaaSmrg *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 2659ab47cfaaSmrg *-*-sysv4*uw2*) add_dir="-L$dir" ;; 2660ab47cfaaSmrg *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 2661ab47cfaaSmrg *-*-unixware7*) add_dir="-L$dir" ;; 2662ab47cfaaSmrg *-*-darwin* ) 2663ab47cfaaSmrg # if the lib is a module then we can not link against 2664ab47cfaaSmrg # it, someone is ignoring the new warnings I added 2665ab47cfaaSmrg if /usr/bin/file -L $add 2> /dev/null | 2666ab47cfaaSmrg $EGREP ": [^:]* bundle" >/dev/null ; then 2667ab47cfaaSmrg $echo "** Warning, lib $linklib is a module, not a shared library" 2668ab47cfaaSmrg if test -z "$old_library" ; then 2669ab47cfaaSmrg $echo 2670ab47cfaaSmrg $echo "** And there doesn't seem to be a static archive available" 2671ab47cfaaSmrg $echo "** The link will probably fail, sorry" 2672ab47cfaaSmrg else 2673ab47cfaaSmrg add="$dir/$old_library" 2674ab47cfaaSmrg fi 2675ab47cfaaSmrg fi 2676ab47cfaaSmrg esac 2677ab47cfaaSmrg elif test "$hardcode_minus_L" = no; then 2678ab47cfaaSmrg case $host in 2679ab47cfaaSmrg *-*-sunos*) add_shlibpath="$dir" ;; 2680ab47cfaaSmrg esac 2681ab47cfaaSmrg add_dir="-L$dir" 2682ab47cfaaSmrg add="-l$name" 2683ab47cfaaSmrg elif test "$hardcode_shlibpath_var" = no; then 2684ab47cfaaSmrg add_shlibpath="$dir" 2685ab47cfaaSmrg add="-l$name" 2686ab47cfaaSmrg else 2687ab47cfaaSmrg lib_linked=no 2688ab47cfaaSmrg fi 2689ab47cfaaSmrg ;; 2690ab47cfaaSmrg relink) 2691ab47cfaaSmrg if test "$hardcode_direct" = yes; then 2692ab47cfaaSmrg add="$dir/$linklib" 2693ab47cfaaSmrg elif test "$hardcode_minus_L" = yes; then 2694ab47cfaaSmrg add_dir="-L$dir" 2695ab47cfaaSmrg # Try looking first in the location we're being installed to. 2696ab47cfaaSmrg if test -n "$inst_prefix_dir"; then 2697ab47cfaaSmrg case $libdir in 2698ab47cfaaSmrg [\\/]*) 2699ab47cfaaSmrg add_dir="$add_dir -L$inst_prefix_dir$libdir" 2700ab47cfaaSmrg ;; 2701ab47cfaaSmrg esac 2702ab47cfaaSmrg fi 2703ab47cfaaSmrg add="-l$name" 2704ab47cfaaSmrg elif test "$hardcode_shlibpath_var" = yes; then 2705ab47cfaaSmrg add_shlibpath="$dir" 2706ab47cfaaSmrg add="-l$name" 2707ab47cfaaSmrg else 2708ab47cfaaSmrg lib_linked=no 2709ab47cfaaSmrg fi 2710ab47cfaaSmrg ;; 2711ab47cfaaSmrg *) lib_linked=no ;; 2712ab47cfaaSmrg esac 2713ab47cfaaSmrg 2714ab47cfaaSmrg if test "$lib_linked" != yes; then 2715ab47cfaaSmrg $echo "$modename: configuration error: unsupported hardcode properties" 2716ab47cfaaSmrg exit $EXIT_FAILURE 2717ab47cfaaSmrg fi 2718ab47cfaaSmrg 2719ab47cfaaSmrg if test -n "$add_shlibpath"; then 2720ab47cfaaSmrg case :$compile_shlibpath: in 2721ab47cfaaSmrg *":$add_shlibpath:"*) ;; 2722ab47cfaaSmrg *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 2723ab47cfaaSmrg esac 2724ab47cfaaSmrg fi 2725ab47cfaaSmrg if test "$linkmode" = prog; then 2726ab47cfaaSmrg test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 2727ab47cfaaSmrg test -n "$add" && compile_deplibs="$add $compile_deplibs" 2728ab47cfaaSmrg else 2729ab47cfaaSmrg test -n "$add_dir" && deplibs="$add_dir $deplibs" 2730ab47cfaaSmrg test -n "$add" && deplibs="$add $deplibs" 2731ab47cfaaSmrg if test "$hardcode_direct" != yes && \ 2732ab47cfaaSmrg test "$hardcode_minus_L" != yes && \ 2733ab47cfaaSmrg test "$hardcode_shlibpath_var" = yes; then 2734ab47cfaaSmrg case :$finalize_shlibpath: in 2735ab47cfaaSmrg *":$libdir:"*) ;; 2736ab47cfaaSmrg *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2737ab47cfaaSmrg esac 2738ab47cfaaSmrg fi 2739ab47cfaaSmrg fi 2740ab47cfaaSmrg fi 2741ab47cfaaSmrg 2742ab47cfaaSmrg if test "$linkmode" = prog || test "$mode" = relink; then 2743ab47cfaaSmrg add_shlibpath= 2744ab47cfaaSmrg add_dir= 2745ab47cfaaSmrg add= 2746ab47cfaaSmrg # Finalize command for both is simple: just hardcode it. 2747ab47cfaaSmrg if test "$hardcode_direct" = yes; then 2748ab47cfaaSmrg add="$libdir/$linklib" 2749ab47cfaaSmrg elif test "$hardcode_minus_L" = yes; then 2750ab47cfaaSmrg add_dir="-L$libdir" 2751ab47cfaaSmrg add="-l$name" 2752ab47cfaaSmrg elif test "$hardcode_shlibpath_var" = yes; then 2753ab47cfaaSmrg case :$finalize_shlibpath: in 2754ab47cfaaSmrg *":$libdir:"*) ;; 2755ab47cfaaSmrg *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2756ab47cfaaSmrg esac 2757ab47cfaaSmrg add="-l$name" 2758ab47cfaaSmrg elif test "$hardcode_automatic" = yes; then 2759ab47cfaaSmrg if test -n "$inst_prefix_dir" && 2760ab47cfaaSmrg test -f "$inst_prefix_dir$libdir/$linklib" ; then 2761ab47cfaaSmrg add="$inst_prefix_dir$libdir/$linklib" 2762ab47cfaaSmrg else 2763ab47cfaaSmrg add="$libdir/$linklib" 2764ab47cfaaSmrg fi 2765ab47cfaaSmrg else 2766ab47cfaaSmrg # We cannot seem to hardcode it, guess we'll fake it. 2767ab47cfaaSmrg add_dir="-L$libdir" 2768ab47cfaaSmrg # Try looking first in the location we're being installed to. 2769ab47cfaaSmrg if test -n "$inst_prefix_dir"; then 2770ab47cfaaSmrg case $libdir in 2771ab47cfaaSmrg [\\/]*) 2772ab47cfaaSmrg add_dir="$add_dir -L$inst_prefix_dir$libdir" 2773ab47cfaaSmrg ;; 2774ab47cfaaSmrg esac 2775ab47cfaaSmrg fi 2776ab47cfaaSmrg add="-l$name" 2777ab47cfaaSmrg fi 2778ab47cfaaSmrg 2779ab47cfaaSmrg if test "$linkmode" = prog; then 2780ab47cfaaSmrg test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 2781ab47cfaaSmrg test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 2782ab47cfaaSmrg else 2783ab47cfaaSmrg test -n "$add_dir" && deplibs="$add_dir $deplibs" 2784ab47cfaaSmrg test -n "$add" && deplibs="$add $deplibs" 2785ab47cfaaSmrg fi 2786ab47cfaaSmrg fi 2787ab47cfaaSmrg elif test "$linkmode" = prog; then 2788ab47cfaaSmrg # Here we assume that one of hardcode_direct or hardcode_minus_L 2789ab47cfaaSmrg # is not unsupported. This is valid on all known static and 2790ab47cfaaSmrg # shared platforms. 2791ab47cfaaSmrg if test "$hardcode_direct" != unsupported; then 2792ab47cfaaSmrg test -n "$old_library" && linklib="$old_library" 2793ab47cfaaSmrg compile_deplibs="$dir/$linklib $compile_deplibs" 2794ab47cfaaSmrg finalize_deplibs="$dir/$linklib $finalize_deplibs" 2795ab47cfaaSmrg else 2796ab47cfaaSmrg compile_deplibs="-l$name -L$dir $compile_deplibs" 2797ab47cfaaSmrg finalize_deplibs="-l$name -L$dir $finalize_deplibs" 2798ab47cfaaSmrg fi 2799ab47cfaaSmrg elif test "$build_libtool_libs" = yes; then 2800ab47cfaaSmrg # Not a shared library 2801ab47cfaaSmrg if test "$deplibs_check_method" != pass_all; then 2802ab47cfaaSmrg # We're trying link a shared library against a static one 2803ab47cfaaSmrg # but the system doesn't support it. 2804ab47cfaaSmrg 2805ab47cfaaSmrg # Just print a warning and add the library to dependency_libs so 2806ab47cfaaSmrg # that the program can be linked against the static library. 2807ab47cfaaSmrg $echo 2808ab47cfaaSmrg $echo "*** Warning: This system can not link to static lib archive $lib." 2809ab47cfaaSmrg $echo "*** I have the capability to make that library automatically link in when" 2810ab47cfaaSmrg $echo "*** you link to this library. But I can only do this if you have a" 2811ab47cfaaSmrg $echo "*** shared version of the library, which you do not appear to have." 2812ab47cfaaSmrg if test "$module" = yes; then 2813ab47cfaaSmrg $echo "*** But as you try to build a module library, libtool will still create " 2814ab47cfaaSmrg $echo "*** a static module, that should work as long as the dlopening application" 2815ab47cfaaSmrg $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 2816ab47cfaaSmrg if test -z "$global_symbol_pipe"; then 2817ab47cfaaSmrg $echo 2818ab47cfaaSmrg $echo "*** However, this would only work if libtool was able to extract symbol" 2819ab47cfaaSmrg $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 2820ab47cfaaSmrg $echo "*** not find such a program. So, this module is probably useless." 2821ab47cfaaSmrg $echo "*** \`nm' from GNU binutils and a full rebuild may help." 2822ab47cfaaSmrg fi 2823ab47cfaaSmrg if test "$build_old_libs" = no; then 2824ab47cfaaSmrg build_libtool_libs=module 2825ab47cfaaSmrg build_old_libs=yes 2826ab47cfaaSmrg else 2827ab47cfaaSmrg build_libtool_libs=no 2828ab47cfaaSmrg fi 2829ab47cfaaSmrg fi 2830ab47cfaaSmrg else 2831ab47cfaaSmrg deplibs="$dir/$old_library $deplibs" 2832ab47cfaaSmrg link_static=yes 2833ab47cfaaSmrg fi 2834ab47cfaaSmrg fi # link shared/static library? 2835ab47cfaaSmrg 2836ab47cfaaSmrg if test "$linkmode" = lib; then 2837ab47cfaaSmrg if test -n "$dependency_libs" && 2838ab47cfaaSmrg { test "$hardcode_into_libs" != yes || 2839ab47cfaaSmrg test "$build_old_libs" = yes || 2840ab47cfaaSmrg test "$link_static" = yes; }; then 2841ab47cfaaSmrg # Extract -R from dependency_libs 2842ab47cfaaSmrg temp_deplibs= 2843ab47cfaaSmrg for libdir in $dependency_libs; do 2844ab47cfaaSmrg case $libdir in 2845ab47cfaaSmrg -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 2846ab47cfaaSmrg case " $xrpath " in 2847ab47cfaaSmrg *" $temp_xrpath "*) ;; 2848ab47cfaaSmrg *) xrpath="$xrpath $temp_xrpath";; 2849ab47cfaaSmrg esac;; 2850ab47cfaaSmrg *) temp_deplibs="$temp_deplibs $libdir";; 2851ab47cfaaSmrg esac 2852ab47cfaaSmrg done 2853ab47cfaaSmrg dependency_libs="$temp_deplibs" 2854ab47cfaaSmrg fi 2855ab47cfaaSmrg 2856ab47cfaaSmrg newlib_search_path="$newlib_search_path $absdir" 2857ab47cfaaSmrg # Link against this library 2858ab47cfaaSmrg test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 2859ab47cfaaSmrg # ... and its dependency_libs 2860ab47cfaaSmrg tmp_libs= 2861ab47cfaaSmrg for deplib in $dependency_libs; do 2862ab47cfaaSmrg newdependency_libs="$deplib $newdependency_libs" 2863ab47cfaaSmrg if test "X$duplicate_deps" = "Xyes" ; then 2864ab47cfaaSmrg case "$tmp_libs " in 2865ab47cfaaSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2866ab47cfaaSmrg esac 2867ab47cfaaSmrg fi 2868ab47cfaaSmrg tmp_libs="$tmp_libs $deplib" 2869ab47cfaaSmrg done 2870ab47cfaaSmrg 2871ab47cfaaSmrg if test "$link_all_deplibs" != no; then 2872ab47cfaaSmrg # Add the search paths of all dependency libraries 2873ab47cfaaSmrg for deplib in $dependency_libs; do 2874ab47cfaaSmrg case $deplib in 2875ab47cfaaSmrg -L*) path="$deplib" ;; 2876ab47cfaaSmrg *.la) 2877ab47cfaaSmrg dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 2878ab47cfaaSmrg test "X$dir" = "X$deplib" && dir="." 2879ab47cfaaSmrg # We need an absolute path. 2880ab47cfaaSmrg case $dir in 2881ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 2882ab47cfaaSmrg *) 2883ab47cfaaSmrg absdir=`cd "$dir" && pwd` 2884ab47cfaaSmrg if test -z "$absdir"; then 2885ab47cfaaSmrg $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 2886ab47cfaaSmrg absdir="$dir" 2887ab47cfaaSmrg fi 2888ab47cfaaSmrg ;; 2889ab47cfaaSmrg esac 2890ab47cfaaSmrg if grep "^installed=no" $deplib > /dev/null; then 2891ab47cfaaSmrg path="$absdir/$objdir" 2892ab47cfaaSmrg else 2893ab47cfaaSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 2894ab47cfaaSmrg if test -z "$libdir"; then 2895ab47cfaaSmrg $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 2896ab47cfaaSmrg exit $EXIT_FAILURE 2897ab47cfaaSmrg fi 2898ab47cfaaSmrg if test "$absdir" != "$libdir"; then 2899ab47cfaaSmrg $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 2900ab47cfaaSmrg fi 2901ab47cfaaSmrg path="$absdir" 2902ab47cfaaSmrg fi 2903ab47cfaaSmrg depdepl= 2904ab47cfaaSmrg case $host in 2905ab47cfaaSmrg *-*-darwin*) 2906ab47cfaaSmrg # we do not want to link against static libs, 2907ab47cfaaSmrg # but need to link against shared 2908ab47cfaaSmrg eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 2909ab47cfaaSmrg if test -n "$deplibrary_names" ; then 2910ab47cfaaSmrg for tmp in $deplibrary_names ; do 2911ab47cfaaSmrg depdepl=$tmp 2912ab47cfaaSmrg done 2913ab47cfaaSmrg if test -f "$path/$depdepl" ; then 2914ab47cfaaSmrg depdepl="$path/$depdepl" 2915ab47cfaaSmrg fi 2916ab47cfaaSmrg # do not add paths which are already there 2917ab47cfaaSmrg case " $newlib_search_path " in 2918ab47cfaaSmrg *" $path "*) ;; 2919ab47cfaaSmrg *) newlib_search_path="$newlib_search_path $path";; 2920ab47cfaaSmrg esac 2921ab47cfaaSmrg fi 2922ab47cfaaSmrg path="" 2923ab47cfaaSmrg ;; 2924ab47cfaaSmrg *) 2925ab47cfaaSmrg path="-L$path" 2926ab47cfaaSmrg ;; 2927ab47cfaaSmrg esac 2928ab47cfaaSmrg ;; 2929ab47cfaaSmrg -l*) 2930ab47cfaaSmrg case $host in 2931ab47cfaaSmrg *-*-darwin*) 2932ab47cfaaSmrg # Again, we only want to link against shared libraries 2933ab47cfaaSmrg eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 2934ab47cfaaSmrg for tmp in $newlib_search_path ; do 2935ab47cfaaSmrg if test -f "$tmp/lib$tmp_libs.dylib" ; then 2936ab47cfaaSmrg eval depdepl="$tmp/lib$tmp_libs.dylib" 2937ab47cfaaSmrg break 2938ab47cfaaSmrg fi 2939ab47cfaaSmrg done 2940ab47cfaaSmrg path="" 2941ab47cfaaSmrg ;; 2942ab47cfaaSmrg *) continue ;; 2943ab47cfaaSmrg esac 2944ab47cfaaSmrg ;; 2945ab47cfaaSmrg *) continue ;; 2946ab47cfaaSmrg esac 2947ab47cfaaSmrg case " $deplibs " in 2948ab47cfaaSmrg *" $path "*) ;; 2949ab47cfaaSmrg *) deplibs="$path $deplibs" ;; 2950ab47cfaaSmrg esac 2951ab47cfaaSmrg case " $deplibs " in 2952ab47cfaaSmrg *" $depdepl "*) ;; 2953ab47cfaaSmrg *) deplibs="$depdepl $deplibs" ;; 2954ab47cfaaSmrg esac 2955ab47cfaaSmrg done 2956ab47cfaaSmrg fi # link_all_deplibs != no 2957ab47cfaaSmrg fi # linkmode = lib 2958ab47cfaaSmrg done # for deplib in $libs 2959ab47cfaaSmrg dependency_libs="$newdependency_libs" 2960ab47cfaaSmrg if test "$pass" = dlpreopen; then 2961ab47cfaaSmrg # Link the dlpreopened libraries before other libraries 2962ab47cfaaSmrg for deplib in $save_deplibs; do 2963ab47cfaaSmrg deplibs="$deplib $deplibs" 2964ab47cfaaSmrg done 2965ab47cfaaSmrg fi 2966ab47cfaaSmrg if test "$pass" != dlopen; then 2967ab47cfaaSmrg if test "$pass" != conv; then 2968ab47cfaaSmrg # Make sure lib_search_path contains only unique directories. 2969ab47cfaaSmrg lib_search_path= 2970ab47cfaaSmrg for dir in $newlib_search_path; do 2971ab47cfaaSmrg case "$lib_search_path " in 2972ab47cfaaSmrg *" $dir "*) ;; 2973ab47cfaaSmrg *) lib_search_path="$lib_search_path $dir" ;; 2974ab47cfaaSmrg esac 2975ab47cfaaSmrg done 2976ab47cfaaSmrg newlib_search_path= 2977ab47cfaaSmrg fi 2978ab47cfaaSmrg 2979ab47cfaaSmrg if test "$linkmode,$pass" != "prog,link"; then 2980ab47cfaaSmrg vars="deplibs" 2981ab47cfaaSmrg else 2982ab47cfaaSmrg vars="compile_deplibs finalize_deplibs" 2983ab47cfaaSmrg fi 2984ab47cfaaSmrg for var in $vars dependency_libs; do 2985ab47cfaaSmrg # Add libraries to $var in reverse order 2986ab47cfaaSmrg eval tmp_libs=\"\$$var\" 2987ab47cfaaSmrg new_libs= 2988ab47cfaaSmrg for deplib in $tmp_libs; do 2989ab47cfaaSmrg # FIXME: Pedantically, this is the right thing to do, so 2990ab47cfaaSmrg # that some nasty dependency loop isn't accidentally 2991ab47cfaaSmrg # broken: 2992ab47cfaaSmrg #new_libs="$deplib $new_libs" 2993ab47cfaaSmrg # Pragmatically, this seems to cause very few problems in 2994ab47cfaaSmrg # practice: 2995ab47cfaaSmrg case $deplib in 2996ab47cfaaSmrg -L*) new_libs="$deplib $new_libs" ;; 2997ab47cfaaSmrg -R*) ;; 2998ab47cfaaSmrg *) 2999ab47cfaaSmrg # And here is the reason: when a library appears more 3000ab47cfaaSmrg # than once as an explicit dependence of a library, or 3001ab47cfaaSmrg # is implicitly linked in more than once by the 3002ab47cfaaSmrg # compiler, it is considered special, and multiple 3003ab47cfaaSmrg # occurrences thereof are not removed. Compare this 3004ab47cfaaSmrg # with having the same library being listed as a 3005ab47cfaaSmrg # dependency of multiple other libraries: in this case, 3006ab47cfaaSmrg # we know (pedantically, we assume) the library does not 3007ab47cfaaSmrg # need to be listed more than once, so we keep only the 3008ab47cfaaSmrg # last copy. This is not always right, but it is rare 3009ab47cfaaSmrg # enough that we require users that really mean to play 3010ab47cfaaSmrg # such unportable linking tricks to link the library 3011ab47cfaaSmrg # using -Wl,-lname, so that libtool does not consider it 3012ab47cfaaSmrg # for duplicate removal. 3013ab47cfaaSmrg case " $specialdeplibs " in 3014ab47cfaaSmrg *" $deplib "*) new_libs="$deplib $new_libs" ;; 3015ab47cfaaSmrg *) 3016ab47cfaaSmrg case " $new_libs " in 3017ab47cfaaSmrg *" $deplib "*) ;; 3018ab47cfaaSmrg *) new_libs="$deplib $new_libs" ;; 3019ab47cfaaSmrg esac 3020ab47cfaaSmrg ;; 3021ab47cfaaSmrg esac 3022ab47cfaaSmrg ;; 3023ab47cfaaSmrg esac 3024ab47cfaaSmrg done 3025ab47cfaaSmrg tmp_libs= 3026ab47cfaaSmrg for deplib in $new_libs; do 3027ab47cfaaSmrg case $deplib in 3028ab47cfaaSmrg -L*) 3029ab47cfaaSmrg case " $tmp_libs " in 3030ab47cfaaSmrg *" $deplib "*) ;; 3031ab47cfaaSmrg *) tmp_libs="$tmp_libs $deplib" ;; 3032ab47cfaaSmrg esac 3033ab47cfaaSmrg ;; 3034ab47cfaaSmrg *) tmp_libs="$tmp_libs $deplib" ;; 3035ab47cfaaSmrg esac 3036ab47cfaaSmrg done 3037ab47cfaaSmrg eval $var=\"$tmp_libs\" 3038ab47cfaaSmrg done # for var 3039ab47cfaaSmrg fi 3040ab47cfaaSmrg # Last step: remove runtime libs from dependency_libs 3041ab47cfaaSmrg # (they stay in deplibs) 3042ab47cfaaSmrg tmp_libs= 3043ab47cfaaSmrg for i in $dependency_libs ; do 3044ab47cfaaSmrg case " $predeps $postdeps $compiler_lib_search_path " in 3045ab47cfaaSmrg *" $i "*) 3046ab47cfaaSmrg i="" 3047ab47cfaaSmrg ;; 3048ab47cfaaSmrg esac 3049ab47cfaaSmrg if test -n "$i" ; then 3050ab47cfaaSmrg tmp_libs="$tmp_libs $i" 3051ab47cfaaSmrg fi 3052ab47cfaaSmrg done 3053ab47cfaaSmrg dependency_libs=$tmp_libs 3054ab47cfaaSmrg done # for pass 3055ab47cfaaSmrg if test "$linkmode" = prog; then 3056ab47cfaaSmrg dlfiles="$newdlfiles" 3057ab47cfaaSmrg dlprefiles="$newdlprefiles" 3058ab47cfaaSmrg fi 3059ab47cfaaSmrg 3060ab47cfaaSmrg case $linkmode in 3061ab47cfaaSmrg oldlib) 3062ab47cfaaSmrg if test -n "$deplibs"; then 3063ab47cfaaSmrg $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 3064ab47cfaaSmrg fi 3065ab47cfaaSmrg 3066ab47cfaaSmrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 3067ab47cfaaSmrg $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 3068ab47cfaaSmrg fi 3069ab47cfaaSmrg 3070ab47cfaaSmrg if test -n "$rpath"; then 3071ab47cfaaSmrg $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 3072ab47cfaaSmrg fi 3073ab47cfaaSmrg 3074ab47cfaaSmrg if test -n "$xrpath"; then 3075ab47cfaaSmrg $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 3076ab47cfaaSmrg fi 3077ab47cfaaSmrg 3078ab47cfaaSmrg if test -n "$vinfo"; then 3079ab47cfaaSmrg $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 3080ab47cfaaSmrg fi 3081ab47cfaaSmrg 3082ab47cfaaSmrg if test -n "$release"; then 3083ab47cfaaSmrg $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 3084ab47cfaaSmrg fi 3085ab47cfaaSmrg 3086ab47cfaaSmrg if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 3087ab47cfaaSmrg $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 3088ab47cfaaSmrg fi 3089ab47cfaaSmrg 3090ab47cfaaSmrg # Now set the variables for building old libraries. 3091ab47cfaaSmrg build_libtool_libs=no 3092ab47cfaaSmrg oldlibs="$output" 3093ab47cfaaSmrg objs="$objs$old_deplibs" 3094ab47cfaaSmrg ;; 3095ab47cfaaSmrg 3096ab47cfaaSmrg lib) 3097ab47cfaaSmrg # Make sure we only generate libraries of the form `libNAME.la'. 3098ab47cfaaSmrg case $outputname in 3099ab47cfaaSmrg lib*) 3100ab47cfaaSmrg name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 3101ab47cfaaSmrg eval shared_ext=\"$shrext_cmds\" 3102ab47cfaaSmrg eval libname=\"$libname_spec\" 3103ab47cfaaSmrg ;; 3104ab47cfaaSmrg *) 3105ab47cfaaSmrg if test "$module" = no; then 3106ab47cfaaSmrg $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 3107ab47cfaaSmrg $echo "$help" 1>&2 3108ab47cfaaSmrg exit $EXIT_FAILURE 3109ab47cfaaSmrg fi 3110ab47cfaaSmrg if test "$need_lib_prefix" != no; then 3111ab47cfaaSmrg # Add the "lib" prefix for modules if required 3112ab47cfaaSmrg name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3113ab47cfaaSmrg eval shared_ext=\"$shrext_cmds\" 3114ab47cfaaSmrg eval libname=\"$libname_spec\" 3115ab47cfaaSmrg else 3116ab47cfaaSmrg libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3117ab47cfaaSmrg fi 3118ab47cfaaSmrg ;; 3119ab47cfaaSmrg esac 3120ab47cfaaSmrg 3121ab47cfaaSmrg if test -n "$objs"; then 3122ab47cfaaSmrg if test "$deplibs_check_method" != pass_all; then 3123ab47cfaaSmrg $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 3124ab47cfaaSmrg exit $EXIT_FAILURE 3125ab47cfaaSmrg else 3126ab47cfaaSmrg $echo 3127ab47cfaaSmrg $echo "*** Warning: Linking the shared library $output against the non-libtool" 3128ab47cfaaSmrg $echo "*** objects $objs is not portable!" 3129ab47cfaaSmrg libobjs="$libobjs $objs" 3130ab47cfaaSmrg fi 3131ab47cfaaSmrg fi 3132ab47cfaaSmrg 3133ab47cfaaSmrg if test "$dlself" != no; then 3134ab47cfaaSmrg $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 3135ab47cfaaSmrg fi 3136ab47cfaaSmrg 3137ab47cfaaSmrg set dummy $rpath 3138ab47cfaaSmrg if test "$#" -gt 2; then 3139ab47cfaaSmrg $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 3140ab47cfaaSmrg fi 3141ab47cfaaSmrg install_libdir="$2" 3142ab47cfaaSmrg 3143ab47cfaaSmrg oldlibs= 3144ab47cfaaSmrg if test -z "$rpath"; then 3145ab47cfaaSmrg if test "$build_libtool_libs" = yes; then 3146ab47cfaaSmrg # Building a libtool convenience library. 3147ab47cfaaSmrg # Some compilers have problems with a `.al' extension so 3148ab47cfaaSmrg # convenience libraries should have the same extension an 3149ab47cfaaSmrg # archive normally would. 3150ab47cfaaSmrg oldlibs="$output_objdir/$libname.$libext $oldlibs" 3151ab47cfaaSmrg build_libtool_libs=convenience 3152ab47cfaaSmrg build_old_libs=yes 3153ab47cfaaSmrg fi 3154ab47cfaaSmrg 3155ab47cfaaSmrg if test -n "$vinfo"; then 3156ab47cfaaSmrg $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 3157ab47cfaaSmrg fi 3158ab47cfaaSmrg 3159ab47cfaaSmrg if test -n "$release"; then 3160ab47cfaaSmrg $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 3161ab47cfaaSmrg fi 3162ab47cfaaSmrg else 3163ab47cfaaSmrg 3164ab47cfaaSmrg # Parse the version information argument. 3165ab47cfaaSmrg save_ifs="$IFS"; IFS=':' 3166ab47cfaaSmrg set dummy $vinfo 0 0 0 3167ab47cfaaSmrg IFS="$save_ifs" 3168ab47cfaaSmrg 3169ab47cfaaSmrg if test -n "$8"; then 3170ab47cfaaSmrg $echo "$modename: too many parameters to \`-version-info'" 1>&2 3171ab47cfaaSmrg $echo "$help" 1>&2 3172ab47cfaaSmrg exit $EXIT_FAILURE 3173ab47cfaaSmrg fi 3174ab47cfaaSmrg 3175ab47cfaaSmrg # convert absolute version numbers to libtool ages 3176ab47cfaaSmrg # this retains compatibility with .la files and attempts 3177ab47cfaaSmrg # to make the code below a bit more comprehensible 3178ab47cfaaSmrg 3179ab47cfaaSmrg case $vinfo_number in 3180ab47cfaaSmrg yes) 3181ab47cfaaSmrg number_major="$2" 3182ab47cfaaSmrg number_minor="$3" 3183ab47cfaaSmrg number_revision="$4" 3184ab47cfaaSmrg # 3185ab47cfaaSmrg # There are really only two kinds -- those that 3186ab47cfaaSmrg # use the current revision as the major version 3187ab47cfaaSmrg # and those that subtract age and use age as 3188ab47cfaaSmrg # a minor version. But, then there is irix 3189ab47cfaaSmrg # which has an extra 1 added just for fun 3190ab47cfaaSmrg # 3191ab47cfaaSmrg case $version_type in 3192ab47cfaaSmrg darwin|linux|osf|windows) 3193ab47cfaaSmrg current=`expr $number_major + $number_minor` 3194ab47cfaaSmrg age="$number_minor" 3195ab47cfaaSmrg revision="$number_revision" 3196ab47cfaaSmrg ;; 3197ab47cfaaSmrg freebsd-aout|freebsd-elf|sunos) 3198ab47cfaaSmrg current="$number_major" 3199ab47cfaaSmrg revision="$number_minor" 3200ab47cfaaSmrg age="0" 3201ab47cfaaSmrg ;; 3202ab47cfaaSmrg irix|nonstopux) 3203ab47cfaaSmrg current=`expr $number_major + $number_minor - 1` 3204ab47cfaaSmrg age="$number_minor" 3205ab47cfaaSmrg revision="$number_minor" 3206ab47cfaaSmrg ;; 3207ab47cfaaSmrg *) 3208ab47cfaaSmrg $echo "$modename: unknown library version type \`$version_type'" 1>&2 3209ab47cfaaSmrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3210ab47cfaaSmrg exit $EXIT_FAILURE 3211ab47cfaaSmrg ;; 3212ab47cfaaSmrg esac 3213ab47cfaaSmrg ;; 3214ab47cfaaSmrg no) 3215ab47cfaaSmrg current="$2" 3216ab47cfaaSmrg revision="$3" 3217ab47cfaaSmrg age="$4" 3218ab47cfaaSmrg ;; 3219ab47cfaaSmrg esac 3220ab47cfaaSmrg 3221ab47cfaaSmrg # Check that each of the things are valid numbers. 3222ab47cfaaSmrg case $current in 3223ab47cfaaSmrg 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]) ;; 3224ab47cfaaSmrg *) 3225ab47cfaaSmrg $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 3226ab47cfaaSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3227ab47cfaaSmrg exit $EXIT_FAILURE 3228ab47cfaaSmrg ;; 3229ab47cfaaSmrg esac 3230ab47cfaaSmrg 3231ab47cfaaSmrg case $revision in 3232ab47cfaaSmrg 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]) ;; 3233ab47cfaaSmrg *) 3234ab47cfaaSmrg $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 3235ab47cfaaSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3236ab47cfaaSmrg exit $EXIT_FAILURE 3237ab47cfaaSmrg ;; 3238ab47cfaaSmrg esac 3239ab47cfaaSmrg 3240ab47cfaaSmrg case $age in 3241ab47cfaaSmrg 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]) ;; 3242ab47cfaaSmrg *) 3243ab47cfaaSmrg $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 3244ab47cfaaSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3245ab47cfaaSmrg exit $EXIT_FAILURE 3246ab47cfaaSmrg ;; 3247ab47cfaaSmrg esac 3248ab47cfaaSmrg 3249ab47cfaaSmrg if test "$age" -gt "$current"; then 3250ab47cfaaSmrg $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 3251ab47cfaaSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3252ab47cfaaSmrg exit $EXIT_FAILURE 3253ab47cfaaSmrg fi 3254ab47cfaaSmrg 3255ab47cfaaSmrg # Calculate the version variables. 3256ab47cfaaSmrg major= 3257ab47cfaaSmrg versuffix= 3258ab47cfaaSmrg verstring= 3259ab47cfaaSmrg case $version_type in 3260ab47cfaaSmrg none) ;; 3261ab47cfaaSmrg 3262ab47cfaaSmrg darwin) 3263ab47cfaaSmrg # Like Linux, but with the current version available in 3264ab47cfaaSmrg # verstring for coding it into the library header 3265ab47cfaaSmrg major=.`expr $current - $age` 3266ab47cfaaSmrg versuffix="$major.$age.$revision" 3267ab47cfaaSmrg # Darwin ld doesn't like 0 for these options... 3268ab47cfaaSmrg minor_current=`expr $current + 1` 3269ab47cfaaSmrg verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 3270ab47cfaaSmrg ;; 3271ab47cfaaSmrg 3272ab47cfaaSmrg freebsd-aout) 3273ab47cfaaSmrg major=".$current" 3274ab47cfaaSmrg versuffix=".$current.$revision"; 3275ab47cfaaSmrg ;; 3276ab47cfaaSmrg 3277ab47cfaaSmrg freebsd-elf) 3278ab47cfaaSmrg major=".$current" 3279ab47cfaaSmrg versuffix=".$current"; 3280ab47cfaaSmrg ;; 3281ab47cfaaSmrg 3282ab47cfaaSmrg irix | nonstopux) 3283ab47cfaaSmrg major=`expr $current - $age + 1` 3284ab47cfaaSmrg 3285ab47cfaaSmrg case $version_type in 3286ab47cfaaSmrg nonstopux) verstring_prefix=nonstopux ;; 3287ab47cfaaSmrg *) verstring_prefix=sgi ;; 3288ab47cfaaSmrg esac 3289ab47cfaaSmrg verstring="$verstring_prefix$major.$revision" 3290ab47cfaaSmrg 3291ab47cfaaSmrg # Add in all the interfaces that we are compatible with. 3292ab47cfaaSmrg loop=$revision 3293ab47cfaaSmrg while test "$loop" -ne 0; do 3294ab47cfaaSmrg iface=`expr $revision - $loop` 3295ab47cfaaSmrg loop=`expr $loop - 1` 3296ab47cfaaSmrg verstring="$verstring_prefix$major.$iface:$verstring" 3297ab47cfaaSmrg done 3298ab47cfaaSmrg 3299ab47cfaaSmrg # Before this point, $major must not contain `.'. 3300ab47cfaaSmrg major=.$major 3301ab47cfaaSmrg versuffix="$major.$revision" 3302ab47cfaaSmrg ;; 3303ab47cfaaSmrg 3304ab47cfaaSmrg linux) 3305ab47cfaaSmrg major=.`expr $current - $age` 3306ab47cfaaSmrg versuffix="$major.$age.$revision" 3307ab47cfaaSmrg ;; 3308ab47cfaaSmrg 3309ab47cfaaSmrg osf) 3310ab47cfaaSmrg major=.`expr $current - $age` 3311ab47cfaaSmrg versuffix=".$current.$age.$revision" 3312ab47cfaaSmrg verstring="$current.$age.$revision" 3313ab47cfaaSmrg 3314ab47cfaaSmrg # Add in all the interfaces that we are compatible with. 3315ab47cfaaSmrg loop=$age 3316ab47cfaaSmrg while test "$loop" -ne 0; do 3317ab47cfaaSmrg iface=`expr $current - $loop` 3318ab47cfaaSmrg loop=`expr $loop - 1` 3319ab47cfaaSmrg verstring="$verstring:${iface}.0" 3320ab47cfaaSmrg done 3321ab47cfaaSmrg 3322ab47cfaaSmrg # Make executables depend on our current version. 3323ab47cfaaSmrg verstring="$verstring:${current}.0" 3324ab47cfaaSmrg ;; 3325ab47cfaaSmrg 3326ab47cfaaSmrg sunos) 3327ab47cfaaSmrg major=".$current" 3328ab47cfaaSmrg versuffix=".$current.$revision" 3329ab47cfaaSmrg ;; 3330ab47cfaaSmrg 3331ab47cfaaSmrg windows) 3332ab47cfaaSmrg # Use '-' rather than '.', since we only want one 3333ab47cfaaSmrg # extension on DOS 8.3 filesystems. 3334ab47cfaaSmrg major=`expr $current - $age` 3335ab47cfaaSmrg versuffix="-$major" 3336ab47cfaaSmrg ;; 3337ab47cfaaSmrg 3338ab47cfaaSmrg *) 3339ab47cfaaSmrg $echo "$modename: unknown library version type \`$version_type'" 1>&2 3340ab47cfaaSmrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3341ab47cfaaSmrg exit $EXIT_FAILURE 3342ab47cfaaSmrg ;; 3343ab47cfaaSmrg esac 3344ab47cfaaSmrg 3345ab47cfaaSmrg # Clear the version info if we defaulted, and they specified a release. 3346ab47cfaaSmrg if test -z "$vinfo" && test -n "$release"; then 3347ab47cfaaSmrg major= 3348ab47cfaaSmrg case $version_type in 3349ab47cfaaSmrg darwin) 3350ab47cfaaSmrg # we can't check for "0.0" in archive_cmds due to quoting 3351ab47cfaaSmrg # problems, so we reset it completely 3352ab47cfaaSmrg verstring= 3353ab47cfaaSmrg ;; 3354ab47cfaaSmrg *) 3355ab47cfaaSmrg verstring="0.0" 3356ab47cfaaSmrg ;; 3357ab47cfaaSmrg esac 3358ab47cfaaSmrg if test "$need_version" = no; then 3359ab47cfaaSmrg versuffix= 3360ab47cfaaSmrg else 3361ab47cfaaSmrg versuffix=".0.0" 3362ab47cfaaSmrg fi 3363ab47cfaaSmrg fi 3364ab47cfaaSmrg 3365ab47cfaaSmrg # Remove version info from name if versioning should be avoided 3366ab47cfaaSmrg if test "$avoid_version" = yes && test "$need_version" = no; then 3367ab47cfaaSmrg major= 3368ab47cfaaSmrg versuffix= 3369ab47cfaaSmrg verstring="" 3370ab47cfaaSmrg fi 3371ab47cfaaSmrg 3372ab47cfaaSmrg # Check to see if the archive will have undefined symbols. 3373ab47cfaaSmrg if test "$allow_undefined" = yes; then 3374ab47cfaaSmrg if test "$allow_undefined_flag" = unsupported; then 3375ab47cfaaSmrg $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 3376ab47cfaaSmrg build_libtool_libs=no 3377ab47cfaaSmrg build_old_libs=yes 3378ab47cfaaSmrg fi 3379ab47cfaaSmrg else 3380ab47cfaaSmrg # Don't allow undefined symbols. 3381ab47cfaaSmrg allow_undefined_flag="$no_undefined_flag" 3382ab47cfaaSmrg fi 3383ab47cfaaSmrg fi 3384ab47cfaaSmrg 3385ab47cfaaSmrg if test "$mode" != relink; then 3386ab47cfaaSmrg # Remove our outputs, but don't remove object files since they 3387ab47cfaaSmrg # may have been created when compiling PIC objects. 3388ab47cfaaSmrg removelist= 3389ab47cfaaSmrg tempremovelist=`$echo "$output_objdir/*"` 3390ab47cfaaSmrg for p in $tempremovelist; do 3391ab47cfaaSmrg case $p in 3392ab47cfaaSmrg *.$objext) 3393ab47cfaaSmrg ;; 3394ab47cfaaSmrg $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 3395ab47cfaaSmrg if test "X$precious_files_regex" != "X"; then 3396ab47cfaaSmrg if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 3397ab47cfaaSmrg then 3398ab47cfaaSmrg continue 3399ab47cfaaSmrg fi 3400ab47cfaaSmrg fi 3401ab47cfaaSmrg removelist="$removelist $p" 3402ab47cfaaSmrg ;; 3403ab47cfaaSmrg *) ;; 3404ab47cfaaSmrg esac 3405ab47cfaaSmrg done 3406ab47cfaaSmrg if test -n "$removelist"; then 3407ab47cfaaSmrg $show "${rm}r $removelist" 3408ab47cfaaSmrg $run ${rm}r $removelist 3409ab47cfaaSmrg fi 3410ab47cfaaSmrg fi 3411ab47cfaaSmrg 3412ab47cfaaSmrg # Now set the variables for building old libraries. 3413ab47cfaaSmrg if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 3414ab47cfaaSmrg oldlibs="$oldlibs $output_objdir/$libname.$libext" 3415ab47cfaaSmrg 3416ab47cfaaSmrg # Transform .lo files to .o files. 3417ab47cfaaSmrg oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 3418ab47cfaaSmrg fi 3419ab47cfaaSmrg 3420ab47cfaaSmrg # Eliminate all temporary directories. 3421ab47cfaaSmrg for path in $notinst_path; do 3422ab47cfaaSmrg lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 3423ab47cfaaSmrg deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 3424ab47cfaaSmrg dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 3425ab47cfaaSmrg done 3426ab47cfaaSmrg 3427ab47cfaaSmrg if test -n "$xrpath"; then 3428ab47cfaaSmrg # If the user specified any rpath flags, then add them. 3429ab47cfaaSmrg temp_xrpath= 3430ab47cfaaSmrg for libdir in $xrpath; do 3431ab47cfaaSmrg temp_xrpath="$temp_xrpath -R$libdir" 3432ab47cfaaSmrg case "$finalize_rpath " in 3433ab47cfaaSmrg *" $libdir "*) ;; 3434ab47cfaaSmrg *) finalize_rpath="$finalize_rpath $libdir" ;; 3435ab47cfaaSmrg esac 3436ab47cfaaSmrg done 3437ab47cfaaSmrg if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 3438ab47cfaaSmrg dependency_libs="$temp_xrpath $dependency_libs" 3439ab47cfaaSmrg fi 3440ab47cfaaSmrg fi 3441ab47cfaaSmrg 3442ab47cfaaSmrg # Make sure dlfiles contains only unique files that won't be dlpreopened 3443ab47cfaaSmrg old_dlfiles="$dlfiles" 3444ab47cfaaSmrg dlfiles= 3445ab47cfaaSmrg for lib in $old_dlfiles; do 3446ab47cfaaSmrg case " $dlprefiles $dlfiles " in 3447ab47cfaaSmrg *" $lib "*) ;; 3448ab47cfaaSmrg *) dlfiles="$dlfiles $lib" ;; 3449ab47cfaaSmrg esac 3450ab47cfaaSmrg done 3451ab47cfaaSmrg 3452ab47cfaaSmrg # Make sure dlprefiles contains only unique files 3453ab47cfaaSmrg old_dlprefiles="$dlprefiles" 3454ab47cfaaSmrg dlprefiles= 3455ab47cfaaSmrg for lib in $old_dlprefiles; do 3456ab47cfaaSmrg case "$dlprefiles " in 3457ab47cfaaSmrg *" $lib "*) ;; 3458ab47cfaaSmrg *) dlprefiles="$dlprefiles $lib" ;; 3459ab47cfaaSmrg esac 3460ab47cfaaSmrg done 3461ab47cfaaSmrg 3462ab47cfaaSmrg if test "$build_libtool_libs" = yes; then 3463ab47cfaaSmrg if test -n "$rpath"; then 3464ab47cfaaSmrg case $host in 3465ab47cfaaSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 3466ab47cfaaSmrg # these systems don't actually have a c library (as such)! 3467ab47cfaaSmrg ;; 3468ab47cfaaSmrg *-*-rhapsody* | *-*-darwin1.[012]) 3469ab47cfaaSmrg # Rhapsody C library is in the System framework 3470ab47cfaaSmrg deplibs="$deplibs -framework System" 3471ab47cfaaSmrg ;; 3472ab47cfaaSmrg *-*-netbsd*) 3473ab47cfaaSmrg # Don't link with libc until the a.out ld.so is fixed. 3474ab47cfaaSmrg ;; 3475ab47cfaaSmrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 3476ab47cfaaSmrg # Do not include libc due to us having libc/libc_r. 3477ab47cfaaSmrg ;; 3478ab47cfaaSmrg *-*-sco3.2v5* | *-*-sco5v6*) 3479ab47cfaaSmrg # Causes problems with __ctype 3480ab47cfaaSmrg ;; 3481ab47cfaaSmrg *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 3482ab47cfaaSmrg # Compiler inserts libc in the correct place for threads to work 3483ab47cfaaSmrg ;; 3484ab47cfaaSmrg *) 3485ab47cfaaSmrg # Add libc to deplibs on all other systems if necessary. 3486ab47cfaaSmrg if test "$build_libtool_need_lc" = "yes"; then 3487ab47cfaaSmrg deplibs="$deplibs -lc" 3488ab47cfaaSmrg fi 3489ab47cfaaSmrg ;; 3490ab47cfaaSmrg esac 3491ab47cfaaSmrg fi 3492ab47cfaaSmrg 3493ab47cfaaSmrg # Transform deplibs into only deplibs that can be linked in shared. 3494ab47cfaaSmrg name_save=$name 3495ab47cfaaSmrg libname_save=$libname 3496ab47cfaaSmrg release_save=$release 3497ab47cfaaSmrg versuffix_save=$versuffix 3498ab47cfaaSmrg major_save=$major 3499ab47cfaaSmrg # I'm not sure if I'm treating the release correctly. I think 3500ab47cfaaSmrg # release should show up in the -l (ie -lgmp5) so we don't want to 3501ab47cfaaSmrg # add it in twice. Is that correct? 3502ab47cfaaSmrg release="" 3503ab47cfaaSmrg versuffix="" 3504ab47cfaaSmrg major="" 3505ab47cfaaSmrg newdeplibs= 3506ab47cfaaSmrg droppeddeps=no 3507ab47cfaaSmrg case $deplibs_check_method in 3508ab47cfaaSmrg pass_all) 3509ab47cfaaSmrg # Don't check for shared/static. Everything works. 3510ab47cfaaSmrg # This might be a little naive. We might want to check 3511ab47cfaaSmrg # whether the library exists or not. But this is on 3512ab47cfaaSmrg # osf3 & osf4 and I'm not really sure... Just 3513ab47cfaaSmrg # implementing what was already the behavior. 3514ab47cfaaSmrg newdeplibs=$deplibs 3515ab47cfaaSmrg ;; 3516ab47cfaaSmrg test_compile) 3517ab47cfaaSmrg # This code stresses the "libraries are programs" paradigm to its 3518ab47cfaaSmrg # limits. Maybe even breaks it. We compile a program, linking it 3519ab47cfaaSmrg # against the deplibs as a proxy for the library. Then we can check 3520ab47cfaaSmrg # whether they linked in statically or dynamically with ldd. 3521ab47cfaaSmrg $rm conftest.c 3522ab47cfaaSmrg cat > conftest.c <<EOF 3523ab47cfaaSmrg int main() { return 0; } 3524ab47cfaaSmrgEOF 3525ab47cfaaSmrg $rm conftest 3526ab47cfaaSmrg $LTCC $LTCFLAGS -o conftest conftest.c $deplibs 3527ab47cfaaSmrg if test "$?" -eq 0 ; then 3528ab47cfaaSmrg ldd_output=`ldd conftest` 3529ab47cfaaSmrg for i in $deplibs; do 3530ab47cfaaSmrg name=`expr $i : '-l\(.*\)'` 3531ab47cfaaSmrg # If $name is empty we are operating on a -L argument. 3532ab47cfaaSmrg if test "$name" != "" && test "$name" -ne "0"; then 3533ab47cfaaSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3534ab47cfaaSmrg case " $predeps $postdeps " in 3535ab47cfaaSmrg *" $i "*) 3536ab47cfaaSmrg newdeplibs="$newdeplibs $i" 3537ab47cfaaSmrg i="" 3538ab47cfaaSmrg ;; 3539ab47cfaaSmrg esac 3540ab47cfaaSmrg fi 3541ab47cfaaSmrg if test -n "$i" ; then 3542ab47cfaaSmrg libname=`eval \\$echo \"$libname_spec\"` 3543ab47cfaaSmrg deplib_matches=`eval \\$echo \"$library_names_spec\"` 3544ab47cfaaSmrg set dummy $deplib_matches 3545ab47cfaaSmrg deplib_match=$2 3546ab47cfaaSmrg if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3547ab47cfaaSmrg newdeplibs="$newdeplibs $i" 3548ab47cfaaSmrg else 3549ab47cfaaSmrg droppeddeps=yes 3550ab47cfaaSmrg $echo 3551ab47cfaaSmrg $echo "*** Warning: dynamic linker does not accept needed library $i." 3552ab47cfaaSmrg $echo "*** I have the capability to make that library automatically link in when" 3553ab47cfaaSmrg $echo "*** you link to this library. But I can only do this if you have a" 3554ab47cfaaSmrg $echo "*** shared version of the library, which I believe you do not have" 3555ab47cfaaSmrg $echo "*** because a test_compile did reveal that the linker did not use it for" 3556ab47cfaaSmrg $echo "*** its dynamic dependency list that programs get resolved with at runtime." 3557ab47cfaaSmrg fi 3558ab47cfaaSmrg fi 3559ab47cfaaSmrg else 3560ab47cfaaSmrg newdeplibs="$newdeplibs $i" 3561ab47cfaaSmrg fi 3562ab47cfaaSmrg done 3563ab47cfaaSmrg else 3564ab47cfaaSmrg # Error occurred in the first compile. Let's try to salvage 3565ab47cfaaSmrg # the situation: Compile a separate program for each library. 3566ab47cfaaSmrg for i in $deplibs; do 3567ab47cfaaSmrg name=`expr $i : '-l\(.*\)'` 3568ab47cfaaSmrg # If $name is empty we are operating on a -L argument. 3569ab47cfaaSmrg if test "$name" != "" && test "$name" != "0"; then 3570ab47cfaaSmrg $rm conftest 3571ab47cfaaSmrg $LTCC $LTCFLAGS -o conftest conftest.c $i 3572ab47cfaaSmrg # Did it work? 3573ab47cfaaSmrg if test "$?" -eq 0 ; then 3574ab47cfaaSmrg ldd_output=`ldd conftest` 3575ab47cfaaSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3576ab47cfaaSmrg case " $predeps $postdeps " in 3577ab47cfaaSmrg *" $i "*) 3578ab47cfaaSmrg newdeplibs="$newdeplibs $i" 3579ab47cfaaSmrg i="" 3580ab47cfaaSmrg ;; 3581ab47cfaaSmrg esac 3582ab47cfaaSmrg fi 3583ab47cfaaSmrg if test -n "$i" ; then 3584ab47cfaaSmrg libname=`eval \\$echo \"$libname_spec\"` 3585ab47cfaaSmrg deplib_matches=`eval \\$echo \"$library_names_spec\"` 3586ab47cfaaSmrg set dummy $deplib_matches 3587ab47cfaaSmrg deplib_match=$2 3588ab47cfaaSmrg if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3589ab47cfaaSmrg newdeplibs="$newdeplibs $i" 3590ab47cfaaSmrg else 3591ab47cfaaSmrg droppeddeps=yes 3592ab47cfaaSmrg $echo 3593ab47cfaaSmrg $echo "*** Warning: dynamic linker does not accept needed library $i." 3594ab47cfaaSmrg $echo "*** I have the capability to make that library automatically link in when" 3595ab47cfaaSmrg $echo "*** you link to this library. But I can only do this if you have a" 3596ab47cfaaSmrg $echo "*** shared version of the library, which you do not appear to have" 3597ab47cfaaSmrg $echo "*** because a test_compile did reveal that the linker did not use this one" 3598ab47cfaaSmrg $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 3599ab47cfaaSmrg fi 3600ab47cfaaSmrg fi 3601ab47cfaaSmrg else 3602ab47cfaaSmrg droppeddeps=yes 3603ab47cfaaSmrg $echo 3604ab47cfaaSmrg $echo "*** Warning! Library $i is needed by this library but I was not able to" 3605ab47cfaaSmrg $echo "*** make it link in! You will probably need to install it or some" 3606ab47cfaaSmrg $echo "*** library that it depends on before this library will be fully" 3607ab47cfaaSmrg $echo "*** functional. Installing it before continuing would be even better." 3608ab47cfaaSmrg fi 3609ab47cfaaSmrg else 3610ab47cfaaSmrg newdeplibs="$newdeplibs $i" 3611ab47cfaaSmrg fi 3612ab47cfaaSmrg done 3613ab47cfaaSmrg fi 3614ab47cfaaSmrg ;; 3615ab47cfaaSmrg file_magic*) 3616ab47cfaaSmrg set dummy $deplibs_check_method 3617ab47cfaaSmrg file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3618ab47cfaaSmrg for a_deplib in $deplibs; do 3619ab47cfaaSmrg name=`expr $a_deplib : '-l\(.*\)'` 3620ab47cfaaSmrg # If $name is empty we are operating on a -L argument. 3621ab47cfaaSmrg if test "$name" != "" && test "$name" != "0"; then 3622ab47cfaaSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3623ab47cfaaSmrg case " $predeps $postdeps " in 3624ab47cfaaSmrg *" $a_deplib "*) 3625ab47cfaaSmrg newdeplibs="$newdeplibs $a_deplib" 3626ab47cfaaSmrg a_deplib="" 3627ab47cfaaSmrg ;; 3628ab47cfaaSmrg esac 3629ab47cfaaSmrg fi 3630ab47cfaaSmrg if test -n "$a_deplib" ; then 3631ab47cfaaSmrg libname=`eval \\$echo \"$libname_spec\"` 3632ab47cfaaSmrg for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3633ab47cfaaSmrg potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3634ab47cfaaSmrg for potent_lib in $potential_libs; do 3635ab47cfaaSmrg # Follow soft links. 3636ab47cfaaSmrg if ls -lLd "$potent_lib" 2>/dev/null \ 3637ab47cfaaSmrg | grep " -> " >/dev/null; then 3638ab47cfaaSmrg continue 3639ab47cfaaSmrg fi 3640ab47cfaaSmrg # The statement above tries to avoid entering an 3641ab47cfaaSmrg # endless loop below, in case of cyclic links. 3642ab47cfaaSmrg # We might still enter an endless loop, since a link 3643ab47cfaaSmrg # loop can be closed while we follow links, 3644ab47cfaaSmrg # but so what? 3645ab47cfaaSmrg potlib="$potent_lib" 3646ab47cfaaSmrg while test -h "$potlib" 2>/dev/null; do 3647ab47cfaaSmrg potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 3648ab47cfaaSmrg case $potliblink in 3649ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 3650ab47cfaaSmrg *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 3651ab47cfaaSmrg esac 3652ab47cfaaSmrg done 3653ab47cfaaSmrg if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 3654ab47cfaaSmrg | ${SED} 10q \ 3655ab47cfaaSmrg | $EGREP "$file_magic_regex" > /dev/null; then 3656ab47cfaaSmrg newdeplibs="$newdeplibs $a_deplib" 3657ab47cfaaSmrg a_deplib="" 3658ab47cfaaSmrg break 2 3659ab47cfaaSmrg fi 3660ab47cfaaSmrg done 3661ab47cfaaSmrg done 3662ab47cfaaSmrg fi 3663ab47cfaaSmrg if test -n "$a_deplib" ; then 3664ab47cfaaSmrg droppeddeps=yes 3665ab47cfaaSmrg $echo 3666ab47cfaaSmrg $echo "*** Warning: linker path does not have real file for library $a_deplib." 3667ab47cfaaSmrg $echo "*** I have the capability to make that library automatically link in when" 3668ab47cfaaSmrg $echo "*** you link to this library. But I can only do this if you have a" 3669ab47cfaaSmrg $echo "*** shared version of the library, which you do not appear to have" 3670ab47cfaaSmrg $echo "*** because I did check the linker path looking for a file starting" 3671ab47cfaaSmrg if test -z "$potlib" ; then 3672ab47cfaaSmrg $echo "*** with $libname but no candidates were found. (...for file magic test)" 3673ab47cfaaSmrg else 3674ab47cfaaSmrg $echo "*** with $libname and none of the candidates passed a file format test" 3675ab47cfaaSmrg $echo "*** using a file magic. Last file checked: $potlib" 3676ab47cfaaSmrg fi 3677ab47cfaaSmrg fi 3678ab47cfaaSmrg else 3679ab47cfaaSmrg # Add a -L argument. 3680ab47cfaaSmrg newdeplibs="$newdeplibs $a_deplib" 3681ab47cfaaSmrg fi 3682ab47cfaaSmrg done # Gone through all deplibs. 3683ab47cfaaSmrg ;; 3684ab47cfaaSmrg match_pattern*) 3685ab47cfaaSmrg set dummy $deplibs_check_method 3686ab47cfaaSmrg match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3687ab47cfaaSmrg for a_deplib in $deplibs; do 3688ab47cfaaSmrg name=`expr $a_deplib : '-l\(.*\)'` 3689ab47cfaaSmrg # If $name is empty we are operating on a -L argument. 3690ab47cfaaSmrg if test -n "$name" && test "$name" != "0"; then 3691ab47cfaaSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3692ab47cfaaSmrg case " $predeps $postdeps " in 3693ab47cfaaSmrg *" $a_deplib "*) 3694ab47cfaaSmrg newdeplibs="$newdeplibs $a_deplib" 3695ab47cfaaSmrg a_deplib="" 3696ab47cfaaSmrg ;; 3697ab47cfaaSmrg esac 3698ab47cfaaSmrg fi 3699ab47cfaaSmrg if test -n "$a_deplib" ; then 3700ab47cfaaSmrg libname=`eval \\$echo \"$libname_spec\"` 3701ab47cfaaSmrg for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3702ab47cfaaSmrg potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3703ab47cfaaSmrg for potent_lib in $potential_libs; do 3704ab47cfaaSmrg potlib="$potent_lib" # see symlink-check above in file_magic test 3705ab47cfaaSmrg if eval $echo \"$potent_lib\" 2>/dev/null \ 3706ab47cfaaSmrg | ${SED} 10q \ 3707ab47cfaaSmrg | $EGREP "$match_pattern_regex" > /dev/null; then 3708ab47cfaaSmrg newdeplibs="$newdeplibs $a_deplib" 3709ab47cfaaSmrg a_deplib="" 3710ab47cfaaSmrg break 2 3711ab47cfaaSmrg fi 3712ab47cfaaSmrg done 3713ab47cfaaSmrg done 3714ab47cfaaSmrg fi 3715ab47cfaaSmrg if test -n "$a_deplib" ; then 3716ab47cfaaSmrg droppeddeps=yes 3717ab47cfaaSmrg $echo 3718ab47cfaaSmrg $echo "*** Warning: linker path does not have real file for library $a_deplib." 3719ab47cfaaSmrg $echo "*** I have the capability to make that library automatically link in when" 3720ab47cfaaSmrg $echo "*** you link to this library. But I can only do this if you have a" 3721ab47cfaaSmrg $echo "*** shared version of the library, which you do not appear to have" 3722ab47cfaaSmrg $echo "*** because I did check the linker path looking for a file starting" 3723ab47cfaaSmrg if test -z "$potlib" ; then 3724ab47cfaaSmrg $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 3725ab47cfaaSmrg else 3726ab47cfaaSmrg $echo "*** with $libname and none of the candidates passed a file format test" 3727ab47cfaaSmrg $echo "*** using a regex pattern. Last file checked: $potlib" 3728ab47cfaaSmrg fi 3729ab47cfaaSmrg fi 3730ab47cfaaSmrg else 3731ab47cfaaSmrg # Add a -L argument. 3732ab47cfaaSmrg newdeplibs="$newdeplibs $a_deplib" 3733ab47cfaaSmrg fi 3734ab47cfaaSmrg done # Gone through all deplibs. 3735ab47cfaaSmrg ;; 3736ab47cfaaSmrg none | unknown | *) 3737ab47cfaaSmrg newdeplibs="" 3738ab47cfaaSmrg tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 3739ab47cfaaSmrg -e 's/ -[LR][^ ]*//g'` 3740ab47cfaaSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3741ab47cfaaSmrg for i in $predeps $postdeps ; do 3742ab47cfaaSmrg # can't use Xsed below, because $i might contain '/' 3743ab47cfaaSmrg tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 3744ab47cfaaSmrg done 3745ab47cfaaSmrg fi 3746ab47cfaaSmrg if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 3747ab47cfaaSmrg | grep . >/dev/null; then 3748ab47cfaaSmrg $echo 3749ab47cfaaSmrg if test "X$deplibs_check_method" = "Xnone"; then 3750ab47cfaaSmrg $echo "*** Warning: inter-library dependencies are not supported in this platform." 3751ab47cfaaSmrg else 3752ab47cfaaSmrg $echo "*** Warning: inter-library dependencies are not known to be supported." 3753ab47cfaaSmrg fi 3754ab47cfaaSmrg $echo "*** All declared inter-library dependencies are being dropped." 3755ab47cfaaSmrg droppeddeps=yes 3756ab47cfaaSmrg fi 3757ab47cfaaSmrg ;; 3758ab47cfaaSmrg esac 3759ab47cfaaSmrg versuffix=$versuffix_save 3760ab47cfaaSmrg major=$major_save 3761ab47cfaaSmrg release=$release_save 3762ab47cfaaSmrg libname=$libname_save 3763ab47cfaaSmrg name=$name_save 3764ab47cfaaSmrg 3765ab47cfaaSmrg case $host in 3766ab47cfaaSmrg *-*-rhapsody* | *-*-darwin1.[012]) 3767ab47cfaaSmrg # On Rhapsody replace the C library is the System framework 3768ab47cfaaSmrg newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 3769ab47cfaaSmrg ;; 3770ab47cfaaSmrg esac 3771ab47cfaaSmrg 3772ab47cfaaSmrg if test "$droppeddeps" = yes; then 3773ab47cfaaSmrg if test "$module" = yes; then 3774ab47cfaaSmrg $echo 3775ab47cfaaSmrg $echo "*** Warning: libtool could not satisfy all declared inter-library" 3776ab47cfaaSmrg $echo "*** dependencies of module $libname. Therefore, libtool will create" 3777ab47cfaaSmrg $echo "*** a static module, that should work as long as the dlopening" 3778ab47cfaaSmrg $echo "*** application is linked with the -dlopen flag." 3779ab47cfaaSmrg if test -z "$global_symbol_pipe"; then 3780ab47cfaaSmrg $echo 3781ab47cfaaSmrg $echo "*** However, this would only work if libtool was able to extract symbol" 3782ab47cfaaSmrg $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 3783ab47cfaaSmrg $echo "*** not find such a program. So, this module is probably useless." 3784ab47cfaaSmrg $echo "*** \`nm' from GNU binutils and a full rebuild may help." 3785ab47cfaaSmrg fi 3786ab47cfaaSmrg if test "$build_old_libs" = no; then 3787ab47cfaaSmrg oldlibs="$output_objdir/$libname.$libext" 3788ab47cfaaSmrg build_libtool_libs=module 3789ab47cfaaSmrg build_old_libs=yes 3790ab47cfaaSmrg else 3791ab47cfaaSmrg build_libtool_libs=no 3792ab47cfaaSmrg fi 3793ab47cfaaSmrg else 3794ab47cfaaSmrg $echo "*** The inter-library dependencies that have been dropped here will be" 3795ab47cfaaSmrg $echo "*** automatically added whenever a program is linked with this library" 3796ab47cfaaSmrg $echo "*** or is declared to -dlopen it." 3797ab47cfaaSmrg 3798ab47cfaaSmrg if test "$allow_undefined" = no; then 3799ab47cfaaSmrg $echo 3800ab47cfaaSmrg $echo "*** Since this library must not contain undefined symbols," 3801ab47cfaaSmrg $echo "*** because either the platform does not support them or" 3802ab47cfaaSmrg $echo "*** it was explicitly requested with -no-undefined," 3803ab47cfaaSmrg $echo "*** libtool will only create a static version of it." 3804ab47cfaaSmrg if test "$build_old_libs" = no; then 3805ab47cfaaSmrg oldlibs="$output_objdir/$libname.$libext" 3806ab47cfaaSmrg build_libtool_libs=module 3807ab47cfaaSmrg build_old_libs=yes 3808ab47cfaaSmrg else 3809ab47cfaaSmrg build_libtool_libs=no 3810ab47cfaaSmrg fi 3811ab47cfaaSmrg fi 3812ab47cfaaSmrg fi 3813ab47cfaaSmrg fi 3814ab47cfaaSmrg # Done checking deplibs! 3815ab47cfaaSmrg deplibs=$newdeplibs 3816ab47cfaaSmrg fi 3817ab47cfaaSmrg 3818ab47cfaaSmrg 3819ab47cfaaSmrg # move library search paths that coincide with paths to not yet 3820ab47cfaaSmrg # installed libraries to the beginning of the library search list 3821ab47cfaaSmrg new_libs= 3822ab47cfaaSmrg for path in $notinst_path; do 3823ab47cfaaSmrg case " $new_libs " in 3824ab47cfaaSmrg *" -L$path/$objdir "*) ;; 3825ab47cfaaSmrg *) 3826ab47cfaaSmrg case " $deplibs " in 3827ab47cfaaSmrg *" -L$path/$objdir "*) 3828ab47cfaaSmrg new_libs="$new_libs -L$path/$objdir" ;; 3829ab47cfaaSmrg esac 3830ab47cfaaSmrg ;; 3831ab47cfaaSmrg esac 3832ab47cfaaSmrg done 3833ab47cfaaSmrg for deplib in $deplibs; do 3834ab47cfaaSmrg case $deplib in 3835ab47cfaaSmrg -L*) 3836ab47cfaaSmrg case " $new_libs " in 3837ab47cfaaSmrg *" $deplib "*) ;; 3838ab47cfaaSmrg *) new_libs="$new_libs $deplib" ;; 3839ab47cfaaSmrg esac 3840ab47cfaaSmrg ;; 3841ab47cfaaSmrg *) new_libs="$new_libs $deplib" ;; 3842ab47cfaaSmrg esac 3843ab47cfaaSmrg done 3844ab47cfaaSmrg deplibs="$new_libs" 3845ab47cfaaSmrg 3846ab47cfaaSmrg 3847ab47cfaaSmrg # All the library-specific variables (install_libdir is set above). 3848ab47cfaaSmrg library_names= 3849ab47cfaaSmrg old_library= 3850ab47cfaaSmrg dlname= 3851ab47cfaaSmrg 3852ab47cfaaSmrg # Test again, we may have decided not to build it any more 3853ab47cfaaSmrg if test "$build_libtool_libs" = yes; then 3854ab47cfaaSmrg if test "$hardcode_into_libs" = yes; then 3855ab47cfaaSmrg # Hardcode the library paths 3856ab47cfaaSmrg hardcode_libdirs= 3857ab47cfaaSmrg dep_rpath= 3858ab47cfaaSmrg rpath="$finalize_rpath" 3859ab47cfaaSmrg test "$mode" != relink && rpath="$compile_rpath$rpath" 3860ab47cfaaSmrg for libdir in $rpath; do 3861ab47cfaaSmrg if test -n "$hardcode_libdir_flag_spec"; then 3862ab47cfaaSmrg if test -n "$hardcode_libdir_separator"; then 3863ab47cfaaSmrg if test -z "$hardcode_libdirs"; then 3864ab47cfaaSmrg hardcode_libdirs="$libdir" 3865ab47cfaaSmrg else 3866ab47cfaaSmrg # Just accumulate the unique libdirs. 3867ab47cfaaSmrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 3868ab47cfaaSmrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 3869ab47cfaaSmrg ;; 3870ab47cfaaSmrg *) 3871ab47cfaaSmrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 3872ab47cfaaSmrg ;; 3873ab47cfaaSmrg esac 3874ab47cfaaSmrg fi 3875ab47cfaaSmrg else 3876ab47cfaaSmrg eval flag=\"$hardcode_libdir_flag_spec\" 3877ab47cfaaSmrg dep_rpath="$dep_rpath $flag" 3878ab47cfaaSmrg fi 3879ab47cfaaSmrg elif test -n "$runpath_var"; then 3880ab47cfaaSmrg case "$perm_rpath " in 3881ab47cfaaSmrg *" $libdir "*) ;; 3882ab47cfaaSmrg *) perm_rpath="$perm_rpath $libdir" ;; 3883ab47cfaaSmrg esac 3884ab47cfaaSmrg fi 3885ab47cfaaSmrg done 3886ab47cfaaSmrg # Substitute the hardcoded libdirs into the rpath. 3887ab47cfaaSmrg if test -n "$hardcode_libdir_separator" && 3888ab47cfaaSmrg test -n "$hardcode_libdirs"; then 3889ab47cfaaSmrg libdir="$hardcode_libdirs" 3890ab47cfaaSmrg if test -n "$hardcode_libdir_flag_spec_ld"; then 3891ab47cfaaSmrg eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 3892ab47cfaaSmrg else 3893ab47cfaaSmrg eval dep_rpath=\"$hardcode_libdir_flag_spec\" 3894ab47cfaaSmrg fi 3895ab47cfaaSmrg fi 3896ab47cfaaSmrg if test -n "$runpath_var" && test -n "$perm_rpath"; then 3897ab47cfaaSmrg # We should set the runpath_var. 3898ab47cfaaSmrg rpath= 3899ab47cfaaSmrg for dir in $perm_rpath; do 3900ab47cfaaSmrg rpath="$rpath$dir:" 3901ab47cfaaSmrg done 3902ab47cfaaSmrg eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 3903ab47cfaaSmrg fi 3904ab47cfaaSmrg test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 3905ab47cfaaSmrg fi 3906ab47cfaaSmrg 3907ab47cfaaSmrg shlibpath="$finalize_shlibpath" 3908ab47cfaaSmrg test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 3909ab47cfaaSmrg if test -n "$shlibpath"; then 3910ab47cfaaSmrg eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 3911ab47cfaaSmrg fi 3912ab47cfaaSmrg 3913ab47cfaaSmrg # Get the real and link names of the library. 3914ab47cfaaSmrg eval shared_ext=\"$shrext_cmds\" 3915ab47cfaaSmrg eval library_names=\"$library_names_spec\" 3916ab47cfaaSmrg set dummy $library_names 3917ab47cfaaSmrg realname="$2" 3918ab47cfaaSmrg shift; shift 3919ab47cfaaSmrg 3920ab47cfaaSmrg if test -n "$soname_spec"; then 3921ab47cfaaSmrg eval soname=\"$soname_spec\" 3922ab47cfaaSmrg else 3923ab47cfaaSmrg soname="$realname" 3924ab47cfaaSmrg fi 3925ab47cfaaSmrg if test -z "$dlname"; then 3926ab47cfaaSmrg dlname=$soname 3927ab47cfaaSmrg fi 3928ab47cfaaSmrg 3929ab47cfaaSmrg lib="$output_objdir/$realname" 3930ab47cfaaSmrg linknames= 3931ab47cfaaSmrg for link 3932ab47cfaaSmrg do 3933ab47cfaaSmrg linknames="$linknames $link" 3934ab47cfaaSmrg done 3935ab47cfaaSmrg 3936ab47cfaaSmrg # Use standard objects if they are pic 3937ab47cfaaSmrg test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 3938ab47cfaaSmrg 3939ab47cfaaSmrg # Prepare the list of exported symbols 3940ab47cfaaSmrg if test -z "$export_symbols"; then 3941ab47cfaaSmrg if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 3942ab47cfaaSmrg $show "generating symbol list for \`$libname.la'" 3943ab47cfaaSmrg export_symbols="$output_objdir/$libname.exp" 3944ab47cfaaSmrg $run $rm $export_symbols 3945ab47cfaaSmrg cmds=$export_symbols_cmds 3946ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 3947ab47cfaaSmrg for cmd in $cmds; do 3948ab47cfaaSmrg IFS="$save_ifs" 3949ab47cfaaSmrg eval cmd=\"$cmd\" 3950ab47cfaaSmrg if len=`expr "X$cmd" : ".*"` && 3951ab47cfaaSmrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 3952ab47cfaaSmrg $show "$cmd" 3953ab47cfaaSmrg $run eval "$cmd" || exit $? 3954ab47cfaaSmrg skipped_export=false 3955ab47cfaaSmrg else 3956ab47cfaaSmrg # The command line is too long to execute in one step. 3957ab47cfaaSmrg $show "using reloadable object file for export list..." 3958ab47cfaaSmrg skipped_export=: 3959ab47cfaaSmrg # Break out early, otherwise skipped_export may be 3960ab47cfaaSmrg # set to false by a later but shorter cmd. 3961ab47cfaaSmrg break 3962ab47cfaaSmrg fi 3963ab47cfaaSmrg done 3964ab47cfaaSmrg IFS="$save_ifs" 3965ab47cfaaSmrg if test -n "$export_symbols_regex"; then 3966ab47cfaaSmrg $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 3967ab47cfaaSmrg $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 3968ab47cfaaSmrg $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 3969ab47cfaaSmrg $run eval '$mv "${export_symbols}T" "$export_symbols"' 3970ab47cfaaSmrg fi 3971ab47cfaaSmrg fi 3972ab47cfaaSmrg fi 3973ab47cfaaSmrg 3974ab47cfaaSmrg if test -n "$export_symbols" && test -n "$include_expsyms"; then 3975ab47cfaaSmrg $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 3976ab47cfaaSmrg fi 3977ab47cfaaSmrg 3978ab47cfaaSmrg tmp_deplibs= 3979ab47cfaaSmrg for test_deplib in $deplibs; do 3980ab47cfaaSmrg case " $convenience " in 3981ab47cfaaSmrg *" $test_deplib "*) ;; 3982ab47cfaaSmrg *) 3983ab47cfaaSmrg tmp_deplibs="$tmp_deplibs $test_deplib" 3984ab47cfaaSmrg ;; 3985ab47cfaaSmrg esac 3986ab47cfaaSmrg done 3987ab47cfaaSmrg deplibs="$tmp_deplibs" 3988ab47cfaaSmrg 3989ab47cfaaSmrg if test -n "$convenience"; then 3990ab47cfaaSmrg if test -n "$whole_archive_flag_spec"; then 3991ab47cfaaSmrg save_libobjs=$libobjs 3992ab47cfaaSmrg eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 3993ab47cfaaSmrg else 3994ab47cfaaSmrg gentop="$output_objdir/${outputname}x" 3995ab47cfaaSmrg generated="$generated $gentop" 3996ab47cfaaSmrg 3997ab47cfaaSmrg func_extract_archives $gentop $convenience 3998ab47cfaaSmrg libobjs="$libobjs $func_extract_archives_result" 3999ab47cfaaSmrg fi 4000ab47cfaaSmrg fi 4001ab47cfaaSmrg 4002ab47cfaaSmrg if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 4003ab47cfaaSmrg eval flag=\"$thread_safe_flag_spec\" 4004ab47cfaaSmrg linker_flags="$linker_flags $flag" 4005ab47cfaaSmrg fi 4006ab47cfaaSmrg 4007ab47cfaaSmrg # Make a backup of the uninstalled library when relinking 4008ab47cfaaSmrg if test "$mode" = relink; then 4009ab47cfaaSmrg $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 4010ab47cfaaSmrg fi 4011ab47cfaaSmrg 4012ab47cfaaSmrg # Do each of the archive commands. 4013ab47cfaaSmrg if test "$module" = yes && test -n "$module_cmds" ; then 4014ab47cfaaSmrg if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4015ab47cfaaSmrg eval test_cmds=\"$module_expsym_cmds\" 4016ab47cfaaSmrg cmds=$module_expsym_cmds 4017ab47cfaaSmrg else 4018ab47cfaaSmrg eval test_cmds=\"$module_cmds\" 4019ab47cfaaSmrg cmds=$module_cmds 4020ab47cfaaSmrg fi 4021ab47cfaaSmrg else 4022ab47cfaaSmrg if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4023ab47cfaaSmrg eval test_cmds=\"$archive_expsym_cmds\" 4024ab47cfaaSmrg cmds=$archive_expsym_cmds 4025ab47cfaaSmrg else 4026ab47cfaaSmrg eval test_cmds=\"$archive_cmds\" 4027ab47cfaaSmrg cmds=$archive_cmds 4028ab47cfaaSmrg fi 4029ab47cfaaSmrg fi 4030ab47cfaaSmrg 4031ab47cfaaSmrg if test "X$skipped_export" != "X:" && 4032ab47cfaaSmrg len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4033ab47cfaaSmrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4034ab47cfaaSmrg : 4035ab47cfaaSmrg else 4036ab47cfaaSmrg # The command line is too long to link in one step, link piecewise. 4037ab47cfaaSmrg $echo "creating reloadable object files..." 4038ab47cfaaSmrg 4039ab47cfaaSmrg # Save the value of $output and $libobjs because we want to 4040ab47cfaaSmrg # use them later. If we have whole_archive_flag_spec, we 4041ab47cfaaSmrg # want to use save_libobjs as it was before 4042ab47cfaaSmrg # whole_archive_flag_spec was expanded, because we can't 4043ab47cfaaSmrg # assume the linker understands whole_archive_flag_spec. 4044ab47cfaaSmrg # This may have to be revisited, in case too many 4045ab47cfaaSmrg # convenience libraries get linked in and end up exceeding 4046ab47cfaaSmrg # the spec. 4047ab47cfaaSmrg if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 4048ab47cfaaSmrg save_libobjs=$libobjs 4049ab47cfaaSmrg fi 4050ab47cfaaSmrg save_output=$output 4051ab47cfaaSmrg output_la=`$echo "X$output" | $Xsed -e "$basename"` 4052ab47cfaaSmrg 4053ab47cfaaSmrg # Clear the reloadable object creation command queue and 4054ab47cfaaSmrg # initialize k to one. 4055ab47cfaaSmrg test_cmds= 4056ab47cfaaSmrg concat_cmds= 4057ab47cfaaSmrg objlist= 4058ab47cfaaSmrg delfiles= 4059ab47cfaaSmrg last_robj= 4060ab47cfaaSmrg k=1 4061ab47cfaaSmrg output=$output_objdir/$output_la-${k}.$objext 4062ab47cfaaSmrg # Loop over the list of objects to be linked. 4063ab47cfaaSmrg for obj in $save_libobjs 4064ab47cfaaSmrg do 4065ab47cfaaSmrg eval test_cmds=\"$reload_cmds $objlist $last_robj\" 4066ab47cfaaSmrg if test "X$objlist" = X || 4067ab47cfaaSmrg { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4068ab47cfaaSmrg test "$len" -le "$max_cmd_len"; }; then 4069ab47cfaaSmrg objlist="$objlist $obj" 4070ab47cfaaSmrg else 4071ab47cfaaSmrg # The command $test_cmds is almost too long, add a 4072ab47cfaaSmrg # command to the queue. 4073ab47cfaaSmrg if test "$k" -eq 1 ; then 4074ab47cfaaSmrg # The first file doesn't have a previous command to add. 4075ab47cfaaSmrg eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 4076ab47cfaaSmrg else 4077ab47cfaaSmrg # All subsequent reloadable object files will link in 4078ab47cfaaSmrg # the last one created. 4079ab47cfaaSmrg eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 4080ab47cfaaSmrg fi 4081ab47cfaaSmrg last_robj=$output_objdir/$output_la-${k}.$objext 4082ab47cfaaSmrg k=`expr $k + 1` 4083ab47cfaaSmrg output=$output_objdir/$output_la-${k}.$objext 4084ab47cfaaSmrg objlist=$obj 4085ab47cfaaSmrg len=1 4086ab47cfaaSmrg fi 4087ab47cfaaSmrg done 4088ab47cfaaSmrg # Handle the remaining objects by creating one last 4089ab47cfaaSmrg # reloadable object file. All subsequent reloadable object 4090ab47cfaaSmrg # files will link in the last one created. 4091ab47cfaaSmrg test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 4092ab47cfaaSmrg eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 4093ab47cfaaSmrg 4094ab47cfaaSmrg if ${skipped_export-false}; then 4095ab47cfaaSmrg $show "generating symbol list for \`$libname.la'" 4096ab47cfaaSmrg export_symbols="$output_objdir/$libname.exp" 4097ab47cfaaSmrg $run $rm $export_symbols 4098ab47cfaaSmrg libobjs=$output 4099ab47cfaaSmrg # Append the command to create the export file. 4100ab47cfaaSmrg eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 4101ab47cfaaSmrg fi 4102ab47cfaaSmrg 4103ab47cfaaSmrg # Set up a command to remove the reloadable object files 4104ab47cfaaSmrg # after they are used. 4105ab47cfaaSmrg i=0 4106ab47cfaaSmrg while test "$i" -lt "$k" 4107ab47cfaaSmrg do 4108ab47cfaaSmrg i=`expr $i + 1` 4109ab47cfaaSmrg delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 4110ab47cfaaSmrg done 4111ab47cfaaSmrg 4112ab47cfaaSmrg $echo "creating a temporary reloadable object file: $output" 4113ab47cfaaSmrg 4114ab47cfaaSmrg # Loop through the commands generated above and execute them. 4115ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 4116ab47cfaaSmrg for cmd in $concat_cmds; do 4117ab47cfaaSmrg IFS="$save_ifs" 4118ab47cfaaSmrg $show "$cmd" 4119ab47cfaaSmrg $run eval "$cmd" || exit $? 4120ab47cfaaSmrg done 4121ab47cfaaSmrg IFS="$save_ifs" 4122ab47cfaaSmrg 4123ab47cfaaSmrg libobjs=$output 4124ab47cfaaSmrg # Restore the value of output. 4125ab47cfaaSmrg output=$save_output 4126ab47cfaaSmrg 4127ab47cfaaSmrg if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 4128ab47cfaaSmrg eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4129ab47cfaaSmrg fi 4130ab47cfaaSmrg # Expand the library linking commands again to reset the 4131ab47cfaaSmrg # value of $libobjs for piecewise linking. 4132ab47cfaaSmrg 4133ab47cfaaSmrg # Do each of the archive commands. 4134ab47cfaaSmrg if test "$module" = yes && test -n "$module_cmds" ; then 4135ab47cfaaSmrg if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4136ab47cfaaSmrg cmds=$module_expsym_cmds 4137ab47cfaaSmrg else 4138ab47cfaaSmrg cmds=$module_cmds 4139ab47cfaaSmrg fi 4140ab47cfaaSmrg else 4141ab47cfaaSmrg if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4142ab47cfaaSmrg cmds=$archive_expsym_cmds 4143ab47cfaaSmrg else 4144ab47cfaaSmrg cmds=$archive_cmds 4145ab47cfaaSmrg fi 4146ab47cfaaSmrg fi 4147ab47cfaaSmrg 4148ab47cfaaSmrg # Append the command to remove the reloadable object files 4149ab47cfaaSmrg # to the just-reset $cmds. 4150ab47cfaaSmrg eval cmds=\"\$cmds~\$rm $delfiles\" 4151ab47cfaaSmrg fi 4152ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 4153ab47cfaaSmrg for cmd in $cmds; do 4154ab47cfaaSmrg IFS="$save_ifs" 4155ab47cfaaSmrg eval cmd=\"$cmd\" 4156ab47cfaaSmrg $show "$cmd" 4157ab47cfaaSmrg $run eval "$cmd" || { 4158ab47cfaaSmrg lt_exit=$? 4159ab47cfaaSmrg 4160ab47cfaaSmrg # Restore the uninstalled library and exit 4161ab47cfaaSmrg if test "$mode" = relink; then 4162ab47cfaaSmrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 4163ab47cfaaSmrg fi 4164ab47cfaaSmrg 4165ab47cfaaSmrg exit $lt_exit 4166ab47cfaaSmrg } 4167ab47cfaaSmrg done 4168ab47cfaaSmrg IFS="$save_ifs" 4169ab47cfaaSmrg 4170ab47cfaaSmrg # Restore the uninstalled library and exit 4171ab47cfaaSmrg if test "$mode" = relink; then 4172ab47cfaaSmrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 4173ab47cfaaSmrg 4174ab47cfaaSmrg if test -n "$convenience"; then 4175ab47cfaaSmrg if test -z "$whole_archive_flag_spec"; then 4176ab47cfaaSmrg $show "${rm}r $gentop" 4177ab47cfaaSmrg $run ${rm}r "$gentop" 4178ab47cfaaSmrg fi 4179ab47cfaaSmrg fi 4180ab47cfaaSmrg 4181ab47cfaaSmrg exit $EXIT_SUCCESS 4182ab47cfaaSmrg fi 4183ab47cfaaSmrg 4184ab47cfaaSmrg # Create links to the real library. 4185ab47cfaaSmrg for linkname in $linknames; do 4186ab47cfaaSmrg if test "$realname" != "$linkname"; then 4187ab47cfaaSmrg $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 4188ab47cfaaSmrg $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 4189ab47cfaaSmrg fi 4190ab47cfaaSmrg done 4191ab47cfaaSmrg 4192ab47cfaaSmrg # If -module or -export-dynamic was specified, set the dlname. 4193ab47cfaaSmrg if test "$module" = yes || test "$export_dynamic" = yes; then 4194ab47cfaaSmrg # On all known operating systems, these are identical. 4195ab47cfaaSmrg dlname="$soname" 4196ab47cfaaSmrg fi 4197ab47cfaaSmrg fi 4198ab47cfaaSmrg ;; 4199ab47cfaaSmrg 4200ab47cfaaSmrg obj) 4201ab47cfaaSmrg if test -n "$deplibs"; then 4202ab47cfaaSmrg $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 4203ab47cfaaSmrg fi 4204ab47cfaaSmrg 4205ab47cfaaSmrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4206ab47cfaaSmrg $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 4207ab47cfaaSmrg fi 4208ab47cfaaSmrg 4209ab47cfaaSmrg if test -n "$rpath"; then 4210ab47cfaaSmrg $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 4211ab47cfaaSmrg fi 4212ab47cfaaSmrg 4213ab47cfaaSmrg if test -n "$xrpath"; then 4214ab47cfaaSmrg $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 4215ab47cfaaSmrg fi 4216ab47cfaaSmrg 4217ab47cfaaSmrg if test -n "$vinfo"; then 4218ab47cfaaSmrg $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 4219ab47cfaaSmrg fi 4220ab47cfaaSmrg 4221ab47cfaaSmrg if test -n "$release"; then 4222ab47cfaaSmrg $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 4223ab47cfaaSmrg fi 4224ab47cfaaSmrg 4225ab47cfaaSmrg case $output in 4226ab47cfaaSmrg *.lo) 4227ab47cfaaSmrg if test -n "$objs$old_deplibs"; then 4228ab47cfaaSmrg $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 4229ab47cfaaSmrg exit $EXIT_FAILURE 4230ab47cfaaSmrg fi 4231ab47cfaaSmrg libobj="$output" 4232ab47cfaaSmrg obj=`$echo "X$output" | $Xsed -e "$lo2o"` 4233ab47cfaaSmrg ;; 4234ab47cfaaSmrg *) 4235ab47cfaaSmrg libobj= 4236ab47cfaaSmrg obj="$output" 4237ab47cfaaSmrg ;; 4238ab47cfaaSmrg esac 4239ab47cfaaSmrg 4240ab47cfaaSmrg # Delete the old objects. 4241ab47cfaaSmrg $run $rm $obj $libobj 4242ab47cfaaSmrg 4243ab47cfaaSmrg # Objects from convenience libraries. This assumes 4244ab47cfaaSmrg # single-version convenience libraries. Whenever we create 4245ab47cfaaSmrg # different ones for PIC/non-PIC, this we'll have to duplicate 4246ab47cfaaSmrg # the extraction. 4247ab47cfaaSmrg reload_conv_objs= 4248ab47cfaaSmrg gentop= 4249ab47cfaaSmrg # reload_cmds runs $LD directly, so let us get rid of 4250ab47cfaaSmrg # -Wl from whole_archive_flag_spec 4251ab47cfaaSmrg wl= 4252ab47cfaaSmrg 4253ab47cfaaSmrg if test -n "$convenience"; then 4254ab47cfaaSmrg if test -n "$whole_archive_flag_spec"; then 4255ab47cfaaSmrg eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" 4256ab47cfaaSmrg else 4257ab47cfaaSmrg gentop="$output_objdir/${obj}x" 4258ab47cfaaSmrg generated="$generated $gentop" 4259ab47cfaaSmrg 4260ab47cfaaSmrg func_extract_archives $gentop $convenience 4261ab47cfaaSmrg reload_conv_objs="$reload_objs $func_extract_archives_result" 4262ab47cfaaSmrg fi 4263ab47cfaaSmrg fi 4264ab47cfaaSmrg 4265ab47cfaaSmrg # Create the old-style object. 4266ab47cfaaSmrg 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 4267ab47cfaaSmrg 4268ab47cfaaSmrg output="$obj" 4269ab47cfaaSmrg cmds=$reload_cmds 4270ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 4271ab47cfaaSmrg for cmd in $cmds; do 4272ab47cfaaSmrg IFS="$save_ifs" 4273ab47cfaaSmrg eval cmd=\"$cmd\" 4274ab47cfaaSmrg $show "$cmd" 4275ab47cfaaSmrg $run eval "$cmd" || exit $? 4276ab47cfaaSmrg done 4277ab47cfaaSmrg IFS="$save_ifs" 4278ab47cfaaSmrg 4279ab47cfaaSmrg # Exit if we aren't doing a library object file. 4280ab47cfaaSmrg if test -z "$libobj"; then 4281ab47cfaaSmrg if test -n "$gentop"; then 4282ab47cfaaSmrg $show "${rm}r $gentop" 4283ab47cfaaSmrg $run ${rm}r $gentop 4284ab47cfaaSmrg fi 4285ab47cfaaSmrg 4286ab47cfaaSmrg exit $EXIT_SUCCESS 4287ab47cfaaSmrg fi 4288ab47cfaaSmrg 4289ab47cfaaSmrg if test "$build_libtool_libs" != yes; then 4290ab47cfaaSmrg if test -n "$gentop"; then 4291ab47cfaaSmrg $show "${rm}r $gentop" 4292ab47cfaaSmrg $run ${rm}r $gentop 4293ab47cfaaSmrg fi 4294ab47cfaaSmrg 4295ab47cfaaSmrg # Create an invalid libtool object if no PIC, so that we don't 4296ab47cfaaSmrg # accidentally link it into a program. 4297ab47cfaaSmrg # $show "echo timestamp > $libobj" 4298ab47cfaaSmrg # $run eval "echo timestamp > $libobj" || exit $? 4299ab47cfaaSmrg exit $EXIT_SUCCESS 4300ab47cfaaSmrg fi 4301ab47cfaaSmrg 4302ab47cfaaSmrg if test -n "$pic_flag" || test "$pic_mode" != default; then 4303ab47cfaaSmrg # Only do commands if we really have different PIC objects. 4304ab47cfaaSmrg reload_objs="$libobjs $reload_conv_objs" 4305ab47cfaaSmrg output="$libobj" 4306ab47cfaaSmrg cmds=$reload_cmds 4307ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 4308ab47cfaaSmrg for cmd in $cmds; do 4309ab47cfaaSmrg IFS="$save_ifs" 4310ab47cfaaSmrg eval cmd=\"$cmd\" 4311ab47cfaaSmrg $show "$cmd" 4312ab47cfaaSmrg $run eval "$cmd" || exit $? 4313ab47cfaaSmrg done 4314ab47cfaaSmrg IFS="$save_ifs" 4315ab47cfaaSmrg fi 4316ab47cfaaSmrg 4317ab47cfaaSmrg if test -n "$gentop"; then 4318ab47cfaaSmrg $show "${rm}r $gentop" 4319ab47cfaaSmrg $run ${rm}r $gentop 4320ab47cfaaSmrg fi 4321ab47cfaaSmrg 4322ab47cfaaSmrg exit $EXIT_SUCCESS 4323ab47cfaaSmrg ;; 4324ab47cfaaSmrg 4325ab47cfaaSmrg prog) 4326ab47cfaaSmrg case $host in 4327ab47cfaaSmrg *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 4328ab47cfaaSmrg esac 4329ab47cfaaSmrg if test -n "$vinfo"; then 4330ab47cfaaSmrg $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 4331ab47cfaaSmrg fi 4332ab47cfaaSmrg 4333ab47cfaaSmrg if test -n "$release"; then 4334ab47cfaaSmrg $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 4335ab47cfaaSmrg fi 4336ab47cfaaSmrg 4337ab47cfaaSmrg if test "$preload" = yes; then 4338ab47cfaaSmrg if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 4339ab47cfaaSmrg test "$dlopen_self_static" = unknown; then 4340ab47cfaaSmrg $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 4341ab47cfaaSmrg fi 4342ab47cfaaSmrg fi 4343ab47cfaaSmrg 4344ab47cfaaSmrg case $host in 4345ab47cfaaSmrg *-*-rhapsody* | *-*-darwin1.[012]) 4346ab47cfaaSmrg # On Rhapsody replace the C library is the System framework 4347ab47cfaaSmrg compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4348ab47cfaaSmrg finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4349ab47cfaaSmrg ;; 4350ab47cfaaSmrg esac 4351ab47cfaaSmrg 4352ab47cfaaSmrg case $host in 4353ab47cfaaSmrg *darwin*) 4354ab47cfaaSmrg # Don't allow lazy linking, it breaks C++ global constructors 4355ab47cfaaSmrg if test "$tagname" = CXX ; then 4356ab47cfaaSmrg compile_command="$compile_command ${wl}-bind_at_load" 4357ab47cfaaSmrg finalize_command="$finalize_command ${wl}-bind_at_load" 4358ab47cfaaSmrg fi 4359ab47cfaaSmrg ;; 4360ab47cfaaSmrg esac 4361ab47cfaaSmrg 4362ab47cfaaSmrg 4363ab47cfaaSmrg # move library search paths that coincide with paths to not yet 4364ab47cfaaSmrg # installed libraries to the beginning of the library search list 4365ab47cfaaSmrg new_libs= 4366ab47cfaaSmrg for path in $notinst_path; do 4367ab47cfaaSmrg case " $new_libs " in 4368ab47cfaaSmrg *" -L$path/$objdir "*) ;; 4369ab47cfaaSmrg *) 4370ab47cfaaSmrg case " $compile_deplibs " in 4371ab47cfaaSmrg *" -L$path/$objdir "*) 4372ab47cfaaSmrg new_libs="$new_libs -L$path/$objdir" ;; 4373ab47cfaaSmrg esac 4374ab47cfaaSmrg ;; 4375ab47cfaaSmrg esac 4376ab47cfaaSmrg done 4377ab47cfaaSmrg for deplib in $compile_deplibs; do 4378ab47cfaaSmrg case $deplib in 4379ab47cfaaSmrg -L*) 4380ab47cfaaSmrg case " $new_libs " in 4381ab47cfaaSmrg *" $deplib "*) ;; 4382ab47cfaaSmrg *) new_libs="$new_libs $deplib" ;; 4383ab47cfaaSmrg esac 4384ab47cfaaSmrg ;; 4385ab47cfaaSmrg *) new_libs="$new_libs $deplib" ;; 4386ab47cfaaSmrg esac 4387ab47cfaaSmrg done 4388ab47cfaaSmrg compile_deplibs="$new_libs" 4389ab47cfaaSmrg 4390ab47cfaaSmrg 4391ab47cfaaSmrg compile_command="$compile_command $compile_deplibs" 4392ab47cfaaSmrg finalize_command="$finalize_command $finalize_deplibs" 4393ab47cfaaSmrg 4394ab47cfaaSmrg if test -n "$rpath$xrpath"; then 4395ab47cfaaSmrg # If the user specified any rpath flags, then add them. 4396ab47cfaaSmrg for libdir in $rpath $xrpath; do 4397ab47cfaaSmrg # This is the magic to use -rpath. 4398ab47cfaaSmrg case "$finalize_rpath " in 4399ab47cfaaSmrg *" $libdir "*) ;; 4400ab47cfaaSmrg *) finalize_rpath="$finalize_rpath $libdir" ;; 4401ab47cfaaSmrg esac 4402ab47cfaaSmrg done 4403ab47cfaaSmrg fi 4404ab47cfaaSmrg 4405ab47cfaaSmrg # Now hardcode the library paths 4406ab47cfaaSmrg rpath= 4407ab47cfaaSmrg hardcode_libdirs= 4408ab47cfaaSmrg for libdir in $compile_rpath $finalize_rpath; do 4409ab47cfaaSmrg if test -n "$hardcode_libdir_flag_spec"; then 4410ab47cfaaSmrg if test -n "$hardcode_libdir_separator"; then 4411ab47cfaaSmrg if test -z "$hardcode_libdirs"; then 4412ab47cfaaSmrg hardcode_libdirs="$libdir" 4413ab47cfaaSmrg else 4414ab47cfaaSmrg # Just accumulate the unique libdirs. 4415ab47cfaaSmrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4416ab47cfaaSmrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4417ab47cfaaSmrg ;; 4418ab47cfaaSmrg *) 4419ab47cfaaSmrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4420ab47cfaaSmrg ;; 4421ab47cfaaSmrg esac 4422ab47cfaaSmrg fi 4423ab47cfaaSmrg else 4424ab47cfaaSmrg eval flag=\"$hardcode_libdir_flag_spec\" 4425ab47cfaaSmrg rpath="$rpath $flag" 4426ab47cfaaSmrg fi 4427ab47cfaaSmrg elif test -n "$runpath_var"; then 4428ab47cfaaSmrg case "$perm_rpath " in 4429ab47cfaaSmrg *" $libdir "*) ;; 4430ab47cfaaSmrg *) perm_rpath="$perm_rpath $libdir" ;; 4431ab47cfaaSmrg esac 4432ab47cfaaSmrg fi 4433ab47cfaaSmrg case $host in 4434ab47cfaaSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4435ab47cfaaSmrg testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 4436ab47cfaaSmrg case :$dllsearchpath: in 4437ab47cfaaSmrg *":$libdir:"*) ;; 4438ab47cfaaSmrg *) dllsearchpath="$dllsearchpath:$libdir";; 4439ab47cfaaSmrg esac 4440ab47cfaaSmrg case :$dllsearchpath: in 4441ab47cfaaSmrg *":$testbindir:"*) ;; 4442ab47cfaaSmrg *) dllsearchpath="$dllsearchpath:$testbindir";; 4443ab47cfaaSmrg esac 4444ab47cfaaSmrg ;; 4445ab47cfaaSmrg esac 4446ab47cfaaSmrg done 4447ab47cfaaSmrg # Substitute the hardcoded libdirs into the rpath. 4448ab47cfaaSmrg if test -n "$hardcode_libdir_separator" && 4449ab47cfaaSmrg test -n "$hardcode_libdirs"; then 4450ab47cfaaSmrg libdir="$hardcode_libdirs" 4451ab47cfaaSmrg eval rpath=\" $hardcode_libdir_flag_spec\" 4452ab47cfaaSmrg fi 4453ab47cfaaSmrg compile_rpath="$rpath" 4454ab47cfaaSmrg 4455ab47cfaaSmrg rpath= 4456ab47cfaaSmrg hardcode_libdirs= 4457ab47cfaaSmrg for libdir in $finalize_rpath; do 4458ab47cfaaSmrg if test -n "$hardcode_libdir_flag_spec"; then 4459ab47cfaaSmrg if test -n "$hardcode_libdir_separator"; then 4460ab47cfaaSmrg if test -z "$hardcode_libdirs"; then 4461ab47cfaaSmrg hardcode_libdirs="$libdir" 4462ab47cfaaSmrg else 4463ab47cfaaSmrg # Just accumulate the unique libdirs. 4464ab47cfaaSmrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4465ab47cfaaSmrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4466ab47cfaaSmrg ;; 4467ab47cfaaSmrg *) 4468ab47cfaaSmrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4469ab47cfaaSmrg ;; 4470ab47cfaaSmrg esac 4471ab47cfaaSmrg fi 4472ab47cfaaSmrg else 4473ab47cfaaSmrg eval flag=\"$hardcode_libdir_flag_spec\" 4474ab47cfaaSmrg rpath="$rpath $flag" 4475ab47cfaaSmrg fi 4476ab47cfaaSmrg elif test -n "$runpath_var"; then 4477ab47cfaaSmrg case "$finalize_perm_rpath " in 4478ab47cfaaSmrg *" $libdir "*) ;; 4479ab47cfaaSmrg *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 4480ab47cfaaSmrg esac 4481ab47cfaaSmrg fi 4482ab47cfaaSmrg done 4483ab47cfaaSmrg # Substitute the hardcoded libdirs into the rpath. 4484ab47cfaaSmrg if test -n "$hardcode_libdir_separator" && 4485ab47cfaaSmrg test -n "$hardcode_libdirs"; then 4486ab47cfaaSmrg libdir="$hardcode_libdirs" 4487ab47cfaaSmrg eval rpath=\" $hardcode_libdir_flag_spec\" 4488ab47cfaaSmrg fi 4489ab47cfaaSmrg finalize_rpath="$rpath" 4490ab47cfaaSmrg 4491ab47cfaaSmrg if test -n "$libobjs" && test "$build_old_libs" = yes; then 4492ab47cfaaSmrg # Transform all the library objects into standard objects. 4493ab47cfaaSmrg compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4494ab47cfaaSmrg finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4495ab47cfaaSmrg fi 4496ab47cfaaSmrg 4497ab47cfaaSmrg dlsyms= 4498ab47cfaaSmrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4499ab47cfaaSmrg if test -n "$NM" && test -n "$global_symbol_pipe"; then 4500ab47cfaaSmrg dlsyms="${outputname}S.c" 4501ab47cfaaSmrg else 4502ab47cfaaSmrg $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 4503ab47cfaaSmrg fi 4504ab47cfaaSmrg fi 4505ab47cfaaSmrg 4506ab47cfaaSmrg if test -n "$dlsyms"; then 4507ab47cfaaSmrg case $dlsyms in 4508ab47cfaaSmrg "") ;; 4509ab47cfaaSmrg *.c) 4510ab47cfaaSmrg # Discover the nlist of each of the dlfiles. 4511ab47cfaaSmrg nlist="$output_objdir/${outputname}.nm" 4512ab47cfaaSmrg 4513ab47cfaaSmrg $show "$rm $nlist ${nlist}S ${nlist}T" 4514ab47cfaaSmrg $run $rm "$nlist" "${nlist}S" "${nlist}T" 4515ab47cfaaSmrg 4516ab47cfaaSmrg # Parse the name list into a source file. 4517ab47cfaaSmrg $show "creating $output_objdir/$dlsyms" 4518ab47cfaaSmrg 4519ab47cfaaSmrg test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 4520ab47cfaaSmrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 4521ab47cfaaSmrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 4522ab47cfaaSmrg 4523ab47cfaaSmrg#ifdef __cplusplus 4524ab47cfaaSmrgextern \"C\" { 4525ab47cfaaSmrg#endif 4526ab47cfaaSmrg 4527ab47cfaaSmrg/* Prevent the only kind of declaration conflicts we can make. */ 4528ab47cfaaSmrg#define lt_preloaded_symbols some_other_symbol 4529ab47cfaaSmrg 4530ab47cfaaSmrg/* External symbol declarations for the compiler. */\ 4531ab47cfaaSmrg" 4532ab47cfaaSmrg 4533ab47cfaaSmrg if test "$dlself" = yes; then 4534ab47cfaaSmrg $show "generating symbol list for \`$output'" 4535ab47cfaaSmrg 4536ab47cfaaSmrg test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 4537ab47cfaaSmrg 4538ab47cfaaSmrg # Add our own program objects to the symbol list. 4539ab47cfaaSmrg progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4540ab47cfaaSmrg for arg in $progfiles; do 4541ab47cfaaSmrg $show "extracting global C symbols from \`$arg'" 4542ab47cfaaSmrg $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4543ab47cfaaSmrg done 4544ab47cfaaSmrg 4545ab47cfaaSmrg if test -n "$exclude_expsyms"; then 4546ab47cfaaSmrg $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 4547ab47cfaaSmrg $run eval '$mv "$nlist"T "$nlist"' 4548ab47cfaaSmrg fi 4549ab47cfaaSmrg 4550ab47cfaaSmrg if test -n "$export_symbols_regex"; then 4551ab47cfaaSmrg $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 4552ab47cfaaSmrg $run eval '$mv "$nlist"T "$nlist"' 4553ab47cfaaSmrg fi 4554ab47cfaaSmrg 4555ab47cfaaSmrg # Prepare the list of exported symbols 4556ab47cfaaSmrg if test -z "$export_symbols"; then 4557ab47cfaaSmrg export_symbols="$output_objdir/$outputname.exp" 4558ab47cfaaSmrg $run $rm $export_symbols 4559ab47cfaaSmrg $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 4560ab47cfaaSmrg case $host in 4561ab47cfaaSmrg *cygwin* | *mingw* ) 4562ab47cfaaSmrg $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4563ab47cfaaSmrg $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 4564ab47cfaaSmrg ;; 4565ab47cfaaSmrg esac 4566ab47cfaaSmrg else 4567ab47cfaaSmrg $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 4568ab47cfaaSmrg $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 4569ab47cfaaSmrg $run eval 'mv "$nlist"T "$nlist"' 4570ab47cfaaSmrg case $host in 4571ab47cfaaSmrg *cygwin* | *mingw* ) 4572ab47cfaaSmrg $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4573ab47cfaaSmrg $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 4574ab47cfaaSmrg ;; 4575ab47cfaaSmrg esac 4576ab47cfaaSmrg fi 4577ab47cfaaSmrg fi 4578ab47cfaaSmrg 4579ab47cfaaSmrg for arg in $dlprefiles; do 4580ab47cfaaSmrg $show "extracting global C symbols from \`$arg'" 4581ab47cfaaSmrg name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 4582ab47cfaaSmrg $run eval '$echo ": $name " >> "$nlist"' 4583ab47cfaaSmrg $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4584ab47cfaaSmrg done 4585ab47cfaaSmrg 4586ab47cfaaSmrg if test -z "$run"; then 4587ab47cfaaSmrg # Make sure we have at least an empty file. 4588ab47cfaaSmrg test -f "$nlist" || : > "$nlist" 4589ab47cfaaSmrg 4590ab47cfaaSmrg if test -n "$exclude_expsyms"; then 4591ab47cfaaSmrg $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 4592ab47cfaaSmrg $mv "$nlist"T "$nlist" 4593ab47cfaaSmrg fi 4594ab47cfaaSmrg 4595ab47cfaaSmrg # Try sorting and uniquifying the output. 4596ab47cfaaSmrg if grep -v "^: " < "$nlist" | 4597ab47cfaaSmrg if sort -k 3 </dev/null >/dev/null 2>&1; then 4598ab47cfaaSmrg sort -k 3 4599ab47cfaaSmrg else 4600ab47cfaaSmrg sort +2 4601ab47cfaaSmrg fi | 4602ab47cfaaSmrg uniq > "$nlist"S; then 4603ab47cfaaSmrg : 4604ab47cfaaSmrg else 4605ab47cfaaSmrg grep -v "^: " < "$nlist" > "$nlist"S 4606ab47cfaaSmrg fi 4607ab47cfaaSmrg 4608ab47cfaaSmrg if test -f "$nlist"S; then 4609ab47cfaaSmrg eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 4610ab47cfaaSmrg else 4611ab47cfaaSmrg $echo '/* NONE */' >> "$output_objdir/$dlsyms" 4612ab47cfaaSmrg fi 4613ab47cfaaSmrg 4614ab47cfaaSmrg $echo >> "$output_objdir/$dlsyms" "\ 4615ab47cfaaSmrg 4616ab47cfaaSmrg#undef lt_preloaded_symbols 4617ab47cfaaSmrg 4618ab47cfaaSmrg#if defined (__STDC__) && __STDC__ 4619ab47cfaaSmrg# define lt_ptr void * 4620ab47cfaaSmrg#else 4621ab47cfaaSmrg# define lt_ptr char * 4622ab47cfaaSmrg# define const 4623ab47cfaaSmrg#endif 4624ab47cfaaSmrg 4625ab47cfaaSmrg/* The mapping between symbol names and symbols. */ 4626ab47cfaaSmrg" 4627ab47cfaaSmrg 4628ab47cfaaSmrg case $host in 4629ab47cfaaSmrg *cygwin* | *mingw* ) 4630ab47cfaaSmrg $echo >> "$output_objdir/$dlsyms" "\ 4631ab47cfaaSmrg/* DATA imports from DLLs on WIN32 can't be const, because 4632ab47cfaaSmrg runtime relocations are performed -- see ld's documentation 4633ab47cfaaSmrg on pseudo-relocs */ 4634ab47cfaaSmrgstruct { 4635ab47cfaaSmrg" 4636ab47cfaaSmrg ;; 4637ab47cfaaSmrg * ) 4638ab47cfaaSmrg $echo >> "$output_objdir/$dlsyms" "\ 4639ab47cfaaSmrgconst struct { 4640ab47cfaaSmrg" 4641ab47cfaaSmrg ;; 4642ab47cfaaSmrg esac 4643ab47cfaaSmrg 4644ab47cfaaSmrg 4645ab47cfaaSmrg $echo >> "$output_objdir/$dlsyms" "\ 4646ab47cfaaSmrg const char *name; 4647ab47cfaaSmrg lt_ptr address; 4648ab47cfaaSmrg} 4649ab47cfaaSmrglt_preloaded_symbols[] = 4650ab47cfaaSmrg{\ 4651ab47cfaaSmrg" 4652ab47cfaaSmrg 4653ab47cfaaSmrg eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 4654ab47cfaaSmrg 4655ab47cfaaSmrg $echo >> "$output_objdir/$dlsyms" "\ 4656ab47cfaaSmrg {0, (lt_ptr) 0} 4657ab47cfaaSmrg}; 4658ab47cfaaSmrg 4659ab47cfaaSmrg/* This works around a problem in FreeBSD linker */ 4660ab47cfaaSmrg#ifdef FREEBSD_WORKAROUND 4661ab47cfaaSmrgstatic const void *lt_preloaded_setup() { 4662ab47cfaaSmrg return lt_preloaded_symbols; 4663ab47cfaaSmrg} 4664ab47cfaaSmrg#endif 4665ab47cfaaSmrg 4666ab47cfaaSmrg#ifdef __cplusplus 4667ab47cfaaSmrg} 4668ab47cfaaSmrg#endif\ 4669ab47cfaaSmrg" 4670ab47cfaaSmrg fi 4671ab47cfaaSmrg 4672ab47cfaaSmrg pic_flag_for_symtable= 4673ab47cfaaSmrg case $host in 4674ab47cfaaSmrg # compiling the symbol table file with pic_flag works around 4675ab47cfaaSmrg # a FreeBSD bug that causes programs to crash when -lm is 4676ab47cfaaSmrg # linked before any other PIC object. But we must not use 4677ab47cfaaSmrg # pic_flag when linking with -static. The problem exists in 4678ab47cfaaSmrg # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 4679ab47cfaaSmrg *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 4680ab47cfaaSmrg case "$compile_command " in 4681ab47cfaaSmrg *" -static "*) ;; 4682ab47cfaaSmrg *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 4683ab47cfaaSmrg esac;; 4684ab47cfaaSmrg *-*-hpux*) 4685ab47cfaaSmrg case "$compile_command " in 4686ab47cfaaSmrg *" -static "*) ;; 4687ab47cfaaSmrg *) pic_flag_for_symtable=" $pic_flag";; 4688ab47cfaaSmrg esac 4689ab47cfaaSmrg esac 4690ab47cfaaSmrg 4691ab47cfaaSmrg # Now compile the dynamic symbol file. 4692ab47cfaaSmrg $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 4693ab47cfaaSmrg $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 4694ab47cfaaSmrg 4695ab47cfaaSmrg # Clean up the generated files. 4696ab47cfaaSmrg $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 4697ab47cfaaSmrg $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 4698ab47cfaaSmrg 4699ab47cfaaSmrg # Transform the symbol file into the correct name. 4700ab47cfaaSmrg case $host in 4701ab47cfaaSmrg *cygwin* | *mingw* ) 4702ab47cfaaSmrg if test -f "$output_objdir/${outputname}.def" ; then 4703ab47cfaaSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 4704ab47cfaaSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 4705ab47cfaaSmrg else 4706ab47cfaaSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4707ab47cfaaSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4708ab47cfaaSmrg fi 4709ab47cfaaSmrg ;; 4710ab47cfaaSmrg * ) 4711ab47cfaaSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4712ab47cfaaSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4713ab47cfaaSmrg ;; 4714ab47cfaaSmrg esac 4715ab47cfaaSmrg ;; 4716ab47cfaaSmrg *) 4717ab47cfaaSmrg $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 4718ab47cfaaSmrg exit $EXIT_FAILURE 4719ab47cfaaSmrg ;; 4720ab47cfaaSmrg esac 4721ab47cfaaSmrg else 4722ab47cfaaSmrg # We keep going just in case the user didn't refer to 4723ab47cfaaSmrg # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 4724ab47cfaaSmrg # really was required. 4725ab47cfaaSmrg 4726ab47cfaaSmrg # Nullify the symbol file. 4727ab47cfaaSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 4728ab47cfaaSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 4729ab47cfaaSmrg fi 4730ab47cfaaSmrg 4731ab47cfaaSmrg if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 4732ab47cfaaSmrg # Replace the output file specification. 4733ab47cfaaSmrg compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4734ab47cfaaSmrg link_command="$compile_command$compile_rpath" 4735ab47cfaaSmrg 4736ab47cfaaSmrg # We have no uninstalled library dependencies, so finalize right now. 4737ab47cfaaSmrg $show "$link_command" 4738ab47cfaaSmrg $run eval "$link_command" 4739ab47cfaaSmrg exit_status=$? 4740ab47cfaaSmrg 4741ab47cfaaSmrg # Delete the generated files. 4742ab47cfaaSmrg if test -n "$dlsyms"; then 4743ab47cfaaSmrg $show "$rm $output_objdir/${outputname}S.${objext}" 4744ab47cfaaSmrg $run $rm "$output_objdir/${outputname}S.${objext}" 4745ab47cfaaSmrg fi 4746ab47cfaaSmrg 4747ab47cfaaSmrg exit $exit_status 4748ab47cfaaSmrg fi 4749ab47cfaaSmrg 4750ab47cfaaSmrg if test -n "$shlibpath_var"; then 4751ab47cfaaSmrg # We should set the shlibpath_var 4752ab47cfaaSmrg rpath= 4753ab47cfaaSmrg for dir in $temp_rpath; do 4754ab47cfaaSmrg case $dir in 4755ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) 4756ab47cfaaSmrg # Absolute path. 4757ab47cfaaSmrg rpath="$rpath$dir:" 4758ab47cfaaSmrg ;; 4759ab47cfaaSmrg *) 4760ab47cfaaSmrg # Relative path: add a thisdir entry. 4761ab47cfaaSmrg rpath="$rpath\$thisdir/$dir:" 4762ab47cfaaSmrg ;; 4763ab47cfaaSmrg esac 4764ab47cfaaSmrg done 4765ab47cfaaSmrg temp_rpath="$rpath" 4766ab47cfaaSmrg fi 4767ab47cfaaSmrg 4768ab47cfaaSmrg if test -n "$compile_shlibpath$finalize_shlibpath"; then 4769ab47cfaaSmrg compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 4770ab47cfaaSmrg fi 4771ab47cfaaSmrg if test -n "$finalize_shlibpath"; then 4772ab47cfaaSmrg finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 4773ab47cfaaSmrg fi 4774ab47cfaaSmrg 4775ab47cfaaSmrg compile_var= 4776ab47cfaaSmrg finalize_var= 4777ab47cfaaSmrg if test -n "$runpath_var"; then 4778ab47cfaaSmrg if test -n "$perm_rpath"; then 4779ab47cfaaSmrg # We should set the runpath_var. 4780ab47cfaaSmrg rpath= 4781ab47cfaaSmrg for dir in $perm_rpath; do 4782ab47cfaaSmrg rpath="$rpath$dir:" 4783ab47cfaaSmrg done 4784ab47cfaaSmrg compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 4785ab47cfaaSmrg fi 4786ab47cfaaSmrg if test -n "$finalize_perm_rpath"; then 4787ab47cfaaSmrg # We should set the runpath_var. 4788ab47cfaaSmrg rpath= 4789ab47cfaaSmrg for dir in $finalize_perm_rpath; do 4790ab47cfaaSmrg rpath="$rpath$dir:" 4791ab47cfaaSmrg done 4792ab47cfaaSmrg finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 4793ab47cfaaSmrg fi 4794ab47cfaaSmrg fi 4795ab47cfaaSmrg 4796ab47cfaaSmrg if test "$no_install" = yes; then 4797ab47cfaaSmrg # We don't need to create a wrapper script. 4798ab47cfaaSmrg link_command="$compile_var$compile_command$compile_rpath" 4799ab47cfaaSmrg # Replace the output file specification. 4800ab47cfaaSmrg link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4801ab47cfaaSmrg # Delete the old output file. 4802ab47cfaaSmrg $run $rm $output 4803ab47cfaaSmrg # Link the executable and exit 4804ab47cfaaSmrg $show "$link_command" 4805ab47cfaaSmrg $run eval "$link_command" || exit $? 4806ab47cfaaSmrg exit $EXIT_SUCCESS 4807ab47cfaaSmrg fi 4808ab47cfaaSmrg 4809ab47cfaaSmrg if test "$hardcode_action" = relink; then 4810ab47cfaaSmrg # Fast installation is not supported 4811ab47cfaaSmrg link_command="$compile_var$compile_command$compile_rpath" 4812ab47cfaaSmrg relink_command="$finalize_var$finalize_command$finalize_rpath" 4813ab47cfaaSmrg 4814ab47cfaaSmrg $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 4815ab47cfaaSmrg $echo "$modename: \`$output' will be relinked during installation" 1>&2 4816ab47cfaaSmrg else 4817ab47cfaaSmrg if test "$fast_install" != no; then 4818ab47cfaaSmrg link_command="$finalize_var$compile_command$finalize_rpath" 4819ab47cfaaSmrg if test "$fast_install" = yes; then 4820ab47cfaaSmrg relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 4821ab47cfaaSmrg else 4822ab47cfaaSmrg # fast_install is set to needless 4823ab47cfaaSmrg relink_command= 4824ab47cfaaSmrg fi 4825ab47cfaaSmrg else 4826ab47cfaaSmrg link_command="$compile_var$compile_command$compile_rpath" 4827ab47cfaaSmrg relink_command="$finalize_var$finalize_command$finalize_rpath" 4828ab47cfaaSmrg fi 4829ab47cfaaSmrg fi 4830ab47cfaaSmrg 4831ab47cfaaSmrg # Replace the output file specification. 4832ab47cfaaSmrg link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 4833ab47cfaaSmrg 4834ab47cfaaSmrg # Delete the old output files. 4835ab47cfaaSmrg $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 4836ab47cfaaSmrg 4837ab47cfaaSmrg $show "$link_command" 4838ab47cfaaSmrg $run eval "$link_command" || exit $? 4839ab47cfaaSmrg 4840ab47cfaaSmrg # Now create the wrapper script. 4841ab47cfaaSmrg $show "creating $output" 4842ab47cfaaSmrg 4843ab47cfaaSmrg # Quote the relink command for shipping. 4844ab47cfaaSmrg if test -n "$relink_command"; then 4845ab47cfaaSmrg # Preserve any variables that may affect compiler behavior 4846ab47cfaaSmrg for var in $variables_saved_for_relink; do 4847ab47cfaaSmrg if eval test -z \"\${$var+set}\"; then 4848ab47cfaaSmrg relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 4849ab47cfaaSmrg elif eval var_value=\$$var; test -z "$var_value"; then 4850ab47cfaaSmrg relink_command="$var=; export $var; $relink_command" 4851ab47cfaaSmrg else 4852ab47cfaaSmrg var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 4853ab47cfaaSmrg relink_command="$var=\"$var_value\"; export $var; $relink_command" 4854ab47cfaaSmrg fi 4855ab47cfaaSmrg done 4856ab47cfaaSmrg relink_command="(cd `pwd`; $relink_command)" 4857ab47cfaaSmrg relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 4858ab47cfaaSmrg fi 4859ab47cfaaSmrg 4860ab47cfaaSmrg # Quote $echo for shipping. 4861ab47cfaaSmrg if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 4862ab47cfaaSmrg case $progpath in 4863ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 4864ab47cfaaSmrg *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 4865ab47cfaaSmrg esac 4866ab47cfaaSmrg qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 4867ab47cfaaSmrg else 4868ab47cfaaSmrg qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 4869ab47cfaaSmrg fi 4870ab47cfaaSmrg 4871ab47cfaaSmrg # Only actually do things if our run command is non-null. 4872ab47cfaaSmrg if test -z "$run"; then 4873ab47cfaaSmrg # win32 will think the script is a binary if it has 4874ab47cfaaSmrg # a .exe suffix, so we strip it off here. 4875ab47cfaaSmrg case $output in 4876ab47cfaaSmrg *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 4877ab47cfaaSmrg esac 4878ab47cfaaSmrg # test for cygwin because mv fails w/o .exe extensions 4879ab47cfaaSmrg case $host in 4880ab47cfaaSmrg *cygwin*) 4881ab47cfaaSmrg exeext=.exe 4882ab47cfaaSmrg outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 4883ab47cfaaSmrg *) exeext= ;; 4884ab47cfaaSmrg esac 4885ab47cfaaSmrg case $host in 4886ab47cfaaSmrg *cygwin* | *mingw* ) 4887ab47cfaaSmrg output_name=`basename $output` 4888ab47cfaaSmrg output_path=`dirname $output` 4889ab47cfaaSmrg cwrappersource="$output_path/$objdir/lt-$output_name.c" 4890ab47cfaaSmrg cwrapper="$output_path/$output_name.exe" 4891ab47cfaaSmrg $rm $cwrappersource $cwrapper 4892ab47cfaaSmrg trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 4893ab47cfaaSmrg 4894ab47cfaaSmrg cat > $cwrappersource <<EOF 4895ab47cfaaSmrg 4896ab47cfaaSmrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 4897ab47cfaaSmrg Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 4898ab47cfaaSmrg 4899ab47cfaaSmrg The $output program cannot be directly executed until all the libtool 4900ab47cfaaSmrg libraries that it depends on are installed. 4901ab47cfaaSmrg 4902ab47cfaaSmrg This wrapper executable should never be moved out of the build directory. 4903ab47cfaaSmrg If it is, it will not operate correctly. 4904ab47cfaaSmrg 4905ab47cfaaSmrg Currently, it simply execs the wrapper *script* "/bin/sh $output", 4906ab47cfaaSmrg but could eventually absorb all of the scripts functionality and 4907ab47cfaaSmrg exec $objdir/$outputname directly. 4908ab47cfaaSmrg*/ 4909ab47cfaaSmrgEOF 4910ab47cfaaSmrg cat >> $cwrappersource<<"EOF" 4911ab47cfaaSmrg#include <stdio.h> 4912ab47cfaaSmrg#include <stdlib.h> 4913ab47cfaaSmrg#include <unistd.h> 4914ab47cfaaSmrg#include <malloc.h> 4915ab47cfaaSmrg#include <stdarg.h> 4916ab47cfaaSmrg#include <assert.h> 4917ab47cfaaSmrg#include <string.h> 4918ab47cfaaSmrg#include <ctype.h> 4919ab47cfaaSmrg#include <sys/stat.h> 4920ab47cfaaSmrg 4921ab47cfaaSmrg#if defined(PATH_MAX) 4922ab47cfaaSmrg# define LT_PATHMAX PATH_MAX 4923ab47cfaaSmrg#elif defined(MAXPATHLEN) 4924ab47cfaaSmrg# define LT_PATHMAX MAXPATHLEN 4925ab47cfaaSmrg#else 4926ab47cfaaSmrg# define LT_PATHMAX 1024 4927ab47cfaaSmrg#endif 4928ab47cfaaSmrg 4929ab47cfaaSmrg#ifndef DIR_SEPARATOR 4930ab47cfaaSmrg# define DIR_SEPARATOR '/' 4931ab47cfaaSmrg# define PATH_SEPARATOR ':' 4932ab47cfaaSmrg#endif 4933ab47cfaaSmrg 4934ab47cfaaSmrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 4935ab47cfaaSmrg defined (__OS2__) 4936ab47cfaaSmrg# define HAVE_DOS_BASED_FILE_SYSTEM 4937ab47cfaaSmrg# ifndef DIR_SEPARATOR_2 4938ab47cfaaSmrg# define DIR_SEPARATOR_2 '\\' 4939ab47cfaaSmrg# endif 4940ab47cfaaSmrg# ifndef PATH_SEPARATOR_2 4941ab47cfaaSmrg# define PATH_SEPARATOR_2 ';' 4942ab47cfaaSmrg# endif 4943ab47cfaaSmrg#endif 4944ab47cfaaSmrg 4945ab47cfaaSmrg#ifndef DIR_SEPARATOR_2 4946ab47cfaaSmrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 4947ab47cfaaSmrg#else /* DIR_SEPARATOR_2 */ 4948ab47cfaaSmrg# define IS_DIR_SEPARATOR(ch) \ 4949ab47cfaaSmrg (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 4950ab47cfaaSmrg#endif /* DIR_SEPARATOR_2 */ 4951ab47cfaaSmrg 4952ab47cfaaSmrg#ifndef PATH_SEPARATOR_2 4953ab47cfaaSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 4954ab47cfaaSmrg#else /* PATH_SEPARATOR_2 */ 4955ab47cfaaSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 4956ab47cfaaSmrg#endif /* PATH_SEPARATOR_2 */ 4957ab47cfaaSmrg 4958ab47cfaaSmrg#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 4959ab47cfaaSmrg#define XFREE(stale) do { \ 4960ab47cfaaSmrg if (stale) { free ((void *) stale); stale = 0; } \ 4961ab47cfaaSmrg} while (0) 4962ab47cfaaSmrg 4963ab47cfaaSmrg/* -DDEBUG is fairly common in CFLAGS. */ 4964ab47cfaaSmrg#undef DEBUG 4965ab47cfaaSmrg#if defined DEBUGWRAPPER 4966ab47cfaaSmrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 4967ab47cfaaSmrg#else 4968ab47cfaaSmrg# define DEBUG(format, ...) 4969ab47cfaaSmrg#endif 4970ab47cfaaSmrg 4971ab47cfaaSmrgconst char *program_name = NULL; 4972ab47cfaaSmrg 4973ab47cfaaSmrgvoid * xmalloc (size_t num); 4974ab47cfaaSmrgchar * xstrdup (const char *string); 4975ab47cfaaSmrgconst char * base_name (const char *name); 4976ab47cfaaSmrgchar * find_executable(const char *wrapper); 4977ab47cfaaSmrgint check_executable(const char *path); 4978ab47cfaaSmrgchar * strendzap(char *str, const char *pat); 4979ab47cfaaSmrgvoid lt_fatal (const char *message, ...); 4980ab47cfaaSmrg 4981ab47cfaaSmrgint 4982ab47cfaaSmrgmain (int argc, char *argv[]) 4983ab47cfaaSmrg{ 4984ab47cfaaSmrg char **newargz; 4985ab47cfaaSmrg int i; 4986ab47cfaaSmrg 4987ab47cfaaSmrg program_name = (char *) xstrdup (base_name (argv[0])); 4988ab47cfaaSmrg DEBUG("(main) argv[0] : %s\n",argv[0]); 4989ab47cfaaSmrg DEBUG("(main) program_name : %s\n",program_name); 4990ab47cfaaSmrg newargz = XMALLOC(char *, argc+2); 4991ab47cfaaSmrgEOF 4992ab47cfaaSmrg 4993ab47cfaaSmrg cat >> $cwrappersource <<EOF 4994ab47cfaaSmrg newargz[0] = (char *) xstrdup("$SHELL"); 4995ab47cfaaSmrgEOF 4996ab47cfaaSmrg 4997ab47cfaaSmrg cat >> $cwrappersource <<"EOF" 4998ab47cfaaSmrg newargz[1] = find_executable(argv[0]); 4999ab47cfaaSmrg if (newargz[1] == NULL) 5000ab47cfaaSmrg lt_fatal("Couldn't find %s", argv[0]); 5001ab47cfaaSmrg DEBUG("(main) found exe at : %s\n",newargz[1]); 5002ab47cfaaSmrg /* we know the script has the same name, without the .exe */ 5003ab47cfaaSmrg /* so make sure newargz[1] doesn't end in .exe */ 5004ab47cfaaSmrg strendzap(newargz[1],".exe"); 5005ab47cfaaSmrg for (i = 1; i < argc; i++) 5006ab47cfaaSmrg newargz[i+1] = xstrdup(argv[i]); 5007ab47cfaaSmrg newargz[argc+1] = NULL; 5008ab47cfaaSmrg 5009ab47cfaaSmrg for (i=0; i<argc+1; i++) 5010ab47cfaaSmrg { 5011ab47cfaaSmrg DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 5012ab47cfaaSmrg ; 5013ab47cfaaSmrg } 5014ab47cfaaSmrg 5015ab47cfaaSmrgEOF 5016ab47cfaaSmrg 5017ab47cfaaSmrg case $host_os in 5018ab47cfaaSmrg mingw*) 5019ab47cfaaSmrg cat >> $cwrappersource <<EOF 5020ab47cfaaSmrg execv("$SHELL",(char const **)newargz); 5021ab47cfaaSmrgEOF 5022ab47cfaaSmrg ;; 5023ab47cfaaSmrg *) 5024ab47cfaaSmrg cat >> $cwrappersource <<EOF 5025ab47cfaaSmrg execv("$SHELL",newargz); 5026ab47cfaaSmrgEOF 5027ab47cfaaSmrg ;; 5028ab47cfaaSmrg esac 5029ab47cfaaSmrg 5030ab47cfaaSmrg cat >> $cwrappersource <<"EOF" 5031ab47cfaaSmrg return 127; 5032ab47cfaaSmrg} 5033ab47cfaaSmrg 5034ab47cfaaSmrgvoid * 5035ab47cfaaSmrgxmalloc (size_t num) 5036ab47cfaaSmrg{ 5037ab47cfaaSmrg void * p = (void *) malloc (num); 5038ab47cfaaSmrg if (!p) 5039ab47cfaaSmrg lt_fatal ("Memory exhausted"); 5040ab47cfaaSmrg 5041ab47cfaaSmrg return p; 5042ab47cfaaSmrg} 5043ab47cfaaSmrg 5044ab47cfaaSmrgchar * 5045ab47cfaaSmrgxstrdup (const char *string) 5046ab47cfaaSmrg{ 5047ab47cfaaSmrg return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 5048ab47cfaaSmrg; 5049ab47cfaaSmrg} 5050ab47cfaaSmrg 5051ab47cfaaSmrgconst char * 5052ab47cfaaSmrgbase_name (const char *name) 5053ab47cfaaSmrg{ 5054ab47cfaaSmrg const char *base; 5055ab47cfaaSmrg 5056ab47cfaaSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5057ab47cfaaSmrg /* Skip over the disk name in MSDOS pathnames. */ 5058ab47cfaaSmrg if (isalpha ((unsigned char)name[0]) && name[1] == ':') 5059ab47cfaaSmrg name += 2; 5060ab47cfaaSmrg#endif 5061ab47cfaaSmrg 5062ab47cfaaSmrg for (base = name; *name; name++) 5063ab47cfaaSmrg if (IS_DIR_SEPARATOR (*name)) 5064ab47cfaaSmrg base = name + 1; 5065ab47cfaaSmrg return base; 5066ab47cfaaSmrg} 5067ab47cfaaSmrg 5068ab47cfaaSmrgint 5069ab47cfaaSmrgcheck_executable(const char * path) 5070ab47cfaaSmrg{ 5071ab47cfaaSmrg struct stat st; 5072ab47cfaaSmrg 5073ab47cfaaSmrg DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 5074ab47cfaaSmrg if ((!path) || (!*path)) 5075ab47cfaaSmrg return 0; 5076ab47cfaaSmrg 5077ab47cfaaSmrg if ((stat (path, &st) >= 0) && 5078ab47cfaaSmrg ( 5079ab47cfaaSmrg /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 5080ab47cfaaSmrg#if defined (S_IXOTH) 5081ab47cfaaSmrg ((st.st_mode & S_IXOTH) == S_IXOTH) || 5082ab47cfaaSmrg#endif 5083ab47cfaaSmrg#if defined (S_IXGRP) 5084ab47cfaaSmrg ((st.st_mode & S_IXGRP) == S_IXGRP) || 5085ab47cfaaSmrg#endif 5086ab47cfaaSmrg ((st.st_mode & S_IXUSR) == S_IXUSR)) 5087ab47cfaaSmrg ) 5088ab47cfaaSmrg return 1; 5089ab47cfaaSmrg else 5090ab47cfaaSmrg return 0; 5091ab47cfaaSmrg} 5092ab47cfaaSmrg 5093ab47cfaaSmrg/* Searches for the full path of the wrapper. Returns 5094ab47cfaaSmrg newly allocated full path name if found, NULL otherwise */ 5095ab47cfaaSmrgchar * 5096ab47cfaaSmrgfind_executable (const char* wrapper) 5097ab47cfaaSmrg{ 5098ab47cfaaSmrg int has_slash = 0; 5099ab47cfaaSmrg const char* p; 5100ab47cfaaSmrg const char* p_next; 5101ab47cfaaSmrg /* static buffer for getcwd */ 5102ab47cfaaSmrg char tmp[LT_PATHMAX + 1]; 5103ab47cfaaSmrg int tmp_len; 5104ab47cfaaSmrg char* concat_name; 5105ab47cfaaSmrg 5106ab47cfaaSmrg DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 5107ab47cfaaSmrg 5108ab47cfaaSmrg if ((wrapper == NULL) || (*wrapper == '\0')) 5109ab47cfaaSmrg return NULL; 5110ab47cfaaSmrg 5111ab47cfaaSmrg /* Absolute path? */ 5112ab47cfaaSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5113ab47cfaaSmrg if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 5114ab47cfaaSmrg { 5115ab47cfaaSmrg concat_name = xstrdup (wrapper); 5116ab47cfaaSmrg if (check_executable(concat_name)) 5117ab47cfaaSmrg return concat_name; 5118ab47cfaaSmrg XFREE(concat_name); 5119ab47cfaaSmrg } 5120ab47cfaaSmrg else 5121ab47cfaaSmrg { 5122ab47cfaaSmrg#endif 5123ab47cfaaSmrg if (IS_DIR_SEPARATOR (wrapper[0])) 5124ab47cfaaSmrg { 5125ab47cfaaSmrg concat_name = xstrdup (wrapper); 5126ab47cfaaSmrg if (check_executable(concat_name)) 5127ab47cfaaSmrg return concat_name; 5128ab47cfaaSmrg XFREE(concat_name); 5129ab47cfaaSmrg } 5130ab47cfaaSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5131ab47cfaaSmrg } 5132ab47cfaaSmrg#endif 5133ab47cfaaSmrg 5134ab47cfaaSmrg for (p = wrapper; *p; p++) 5135ab47cfaaSmrg if (*p == '/') 5136ab47cfaaSmrg { 5137ab47cfaaSmrg has_slash = 1; 5138ab47cfaaSmrg break; 5139ab47cfaaSmrg } 5140ab47cfaaSmrg if (!has_slash) 5141ab47cfaaSmrg { 5142ab47cfaaSmrg /* no slashes; search PATH */ 5143ab47cfaaSmrg const char* path = getenv ("PATH"); 5144ab47cfaaSmrg if (path != NULL) 5145ab47cfaaSmrg { 5146ab47cfaaSmrg for (p = path; *p; p = p_next) 5147ab47cfaaSmrg { 5148ab47cfaaSmrg const char* q; 5149ab47cfaaSmrg size_t p_len; 5150ab47cfaaSmrg for (q = p; *q; q++) 5151ab47cfaaSmrg if (IS_PATH_SEPARATOR(*q)) 5152ab47cfaaSmrg break; 5153ab47cfaaSmrg p_len = q - p; 5154ab47cfaaSmrg p_next = (*q == '\0' ? q : q + 1); 5155ab47cfaaSmrg if (p_len == 0) 5156ab47cfaaSmrg { 5157ab47cfaaSmrg /* empty path: current directory */ 5158ab47cfaaSmrg if (getcwd (tmp, LT_PATHMAX) == NULL) 5159ab47cfaaSmrg lt_fatal ("getcwd failed"); 5160ab47cfaaSmrg tmp_len = strlen(tmp); 5161ab47cfaaSmrg concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5162ab47cfaaSmrg memcpy (concat_name, tmp, tmp_len); 5163ab47cfaaSmrg concat_name[tmp_len] = '/'; 5164ab47cfaaSmrg strcpy (concat_name + tmp_len + 1, wrapper); 5165ab47cfaaSmrg } 5166ab47cfaaSmrg else 5167ab47cfaaSmrg { 5168ab47cfaaSmrg concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 5169ab47cfaaSmrg memcpy (concat_name, p, p_len); 5170ab47cfaaSmrg concat_name[p_len] = '/'; 5171ab47cfaaSmrg strcpy (concat_name + p_len + 1, wrapper); 5172ab47cfaaSmrg } 5173ab47cfaaSmrg if (check_executable(concat_name)) 5174ab47cfaaSmrg return concat_name; 5175ab47cfaaSmrg XFREE(concat_name); 5176ab47cfaaSmrg } 5177ab47cfaaSmrg } 5178ab47cfaaSmrg /* not found in PATH; assume curdir */ 5179ab47cfaaSmrg } 5180ab47cfaaSmrg /* Relative path | not found in path: prepend cwd */ 5181ab47cfaaSmrg if (getcwd (tmp, LT_PATHMAX) == NULL) 5182ab47cfaaSmrg lt_fatal ("getcwd failed"); 5183ab47cfaaSmrg tmp_len = strlen(tmp); 5184ab47cfaaSmrg concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5185ab47cfaaSmrg memcpy (concat_name, tmp, tmp_len); 5186ab47cfaaSmrg concat_name[tmp_len] = '/'; 5187ab47cfaaSmrg strcpy (concat_name + tmp_len + 1, wrapper); 5188ab47cfaaSmrg 5189ab47cfaaSmrg if (check_executable(concat_name)) 5190ab47cfaaSmrg return concat_name; 5191ab47cfaaSmrg XFREE(concat_name); 5192ab47cfaaSmrg return NULL; 5193ab47cfaaSmrg} 5194ab47cfaaSmrg 5195ab47cfaaSmrgchar * 5196ab47cfaaSmrgstrendzap(char *str, const char *pat) 5197ab47cfaaSmrg{ 5198ab47cfaaSmrg size_t len, patlen; 5199ab47cfaaSmrg 5200ab47cfaaSmrg assert(str != NULL); 5201ab47cfaaSmrg assert(pat != NULL); 5202ab47cfaaSmrg 5203ab47cfaaSmrg len = strlen(str); 5204ab47cfaaSmrg patlen = strlen(pat); 5205ab47cfaaSmrg 5206ab47cfaaSmrg if (patlen <= len) 5207ab47cfaaSmrg { 5208ab47cfaaSmrg str += len - patlen; 5209ab47cfaaSmrg if (strcmp(str, pat) == 0) 5210ab47cfaaSmrg *str = '\0'; 5211ab47cfaaSmrg } 5212ab47cfaaSmrg return str; 5213ab47cfaaSmrg} 5214ab47cfaaSmrg 5215ab47cfaaSmrgstatic void 5216ab47cfaaSmrglt_error_core (int exit_status, const char * mode, 5217ab47cfaaSmrg const char * message, va_list ap) 5218ab47cfaaSmrg{ 5219ab47cfaaSmrg fprintf (stderr, "%s: %s: ", program_name, mode); 5220ab47cfaaSmrg vfprintf (stderr, message, ap); 5221ab47cfaaSmrg fprintf (stderr, ".\n"); 5222ab47cfaaSmrg 5223ab47cfaaSmrg if (exit_status >= 0) 5224ab47cfaaSmrg exit (exit_status); 5225ab47cfaaSmrg} 5226ab47cfaaSmrg 5227ab47cfaaSmrgvoid 5228ab47cfaaSmrglt_fatal (const char *message, ...) 5229ab47cfaaSmrg{ 5230ab47cfaaSmrg va_list ap; 5231ab47cfaaSmrg va_start (ap, message); 5232ab47cfaaSmrg lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 5233ab47cfaaSmrg va_end (ap); 5234ab47cfaaSmrg} 5235ab47cfaaSmrgEOF 5236ab47cfaaSmrg # we should really use a build-platform specific compiler 5237ab47cfaaSmrg # here, but OTOH, the wrappers (shell script and this C one) 5238ab47cfaaSmrg # are only useful if you want to execute the "real" binary. 5239ab47cfaaSmrg # Since the "real" binary is built for $host, then this 5240ab47cfaaSmrg # wrapper might as well be built for $host, too. 5241ab47cfaaSmrg $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 5242ab47cfaaSmrg ;; 5243ab47cfaaSmrg esac 5244ab47cfaaSmrg $rm $output 5245ab47cfaaSmrg trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 5246ab47cfaaSmrg 5247ab47cfaaSmrg $echo > $output "\ 5248ab47cfaaSmrg#! $SHELL 5249ab47cfaaSmrg 5250ab47cfaaSmrg# $output - temporary wrapper script for $objdir/$outputname 5251ab47cfaaSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5252ab47cfaaSmrg# 5253ab47cfaaSmrg# The $output program cannot be directly executed until all the libtool 5254ab47cfaaSmrg# libraries that it depends on are installed. 5255ab47cfaaSmrg# 5256ab47cfaaSmrg# This wrapper script should never be moved out of the build directory. 5257ab47cfaaSmrg# If it is, it will not operate correctly. 5258ab47cfaaSmrg 5259ab47cfaaSmrg# Sed substitution that helps us do robust quoting. It backslashifies 5260ab47cfaaSmrg# metacharacters that are still active within double-quoted strings. 5261ab47cfaaSmrgXsed='${SED} -e 1s/^X//' 5262ab47cfaaSmrgsed_quote_subst='$sed_quote_subst' 5263ab47cfaaSmrg 5264ab47cfaaSmrg# The HP-UX ksh and POSIX shell print the target directory to stdout 5265ab47cfaaSmrg# if CDPATH is set. 5266ab47cfaaSmrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 5267ab47cfaaSmrg 5268ab47cfaaSmrgrelink_command=\"$relink_command\" 5269ab47cfaaSmrg 5270ab47cfaaSmrg# This environment variable determines our operation mode. 5271ab47cfaaSmrgif test \"\$libtool_install_magic\" = \"$magic\"; then 5272ab47cfaaSmrg # install mode needs the following variable: 5273ab47cfaaSmrg notinst_deplibs='$notinst_deplibs' 5274ab47cfaaSmrgelse 5275ab47cfaaSmrg # When we are sourced in execute mode, \$file and \$echo are already set. 5276ab47cfaaSmrg if test \"\$libtool_execute_magic\" != \"$magic\"; then 5277ab47cfaaSmrg echo=\"$qecho\" 5278ab47cfaaSmrg file=\"\$0\" 5279ab47cfaaSmrg # Make sure echo works. 5280ab47cfaaSmrg if test \"X\$1\" = X--no-reexec; then 5281ab47cfaaSmrg # Discard the --no-reexec flag, and continue. 5282ab47cfaaSmrg shift 5283ab47cfaaSmrg elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 5284ab47cfaaSmrg # Yippee, \$echo works! 5285ab47cfaaSmrg : 5286ab47cfaaSmrg else 5287ab47cfaaSmrg # Restart under the correct shell, and then maybe \$echo will work. 5288ab47cfaaSmrg exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 5289ab47cfaaSmrg fi 5290ab47cfaaSmrg fi\ 5291ab47cfaaSmrg" 5292ab47cfaaSmrg $echo >> $output "\ 5293ab47cfaaSmrg 5294ab47cfaaSmrg # Find the directory that this script lives in. 5295ab47cfaaSmrg thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 5296ab47cfaaSmrg test \"x\$thisdir\" = \"x\$file\" && thisdir=. 5297ab47cfaaSmrg 5298ab47cfaaSmrg # Follow symbolic links until we get to the real thisdir. 5299ab47cfaaSmrg file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 5300ab47cfaaSmrg while test -n \"\$file\"; do 5301ab47cfaaSmrg destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 5302ab47cfaaSmrg 5303ab47cfaaSmrg # If there was a directory component, then change thisdir. 5304ab47cfaaSmrg if test \"x\$destdir\" != \"x\$file\"; then 5305ab47cfaaSmrg case \"\$destdir\" in 5306ab47cfaaSmrg [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 5307ab47cfaaSmrg *) thisdir=\"\$thisdir/\$destdir\" ;; 5308ab47cfaaSmrg esac 5309ab47cfaaSmrg fi 5310ab47cfaaSmrg 5311ab47cfaaSmrg file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 5312ab47cfaaSmrg file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 5313ab47cfaaSmrg done 5314ab47cfaaSmrg 5315ab47cfaaSmrg # Try to get the absolute directory name. 5316ab47cfaaSmrg absdir=\`cd \"\$thisdir\" && pwd\` 5317ab47cfaaSmrg test -n \"\$absdir\" && thisdir=\"\$absdir\" 5318ab47cfaaSmrg" 5319ab47cfaaSmrg 5320ab47cfaaSmrg if test "$fast_install" = yes; then 5321ab47cfaaSmrg $echo >> $output "\ 5322ab47cfaaSmrg program=lt-'$outputname'$exeext 5323ab47cfaaSmrg progdir=\"\$thisdir/$objdir\" 5324ab47cfaaSmrg 5325ab47cfaaSmrg if test ! -f \"\$progdir/\$program\" || \\ 5326ab47cfaaSmrg { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 5327ab47cfaaSmrg test \"X\$file\" != \"X\$progdir/\$program\"; }; then 5328ab47cfaaSmrg 5329ab47cfaaSmrg file=\"\$\$-\$program\" 5330ab47cfaaSmrg 5331ab47cfaaSmrg if test ! -d \"\$progdir\"; then 5332ab47cfaaSmrg $mkdir \"\$progdir\" 5333ab47cfaaSmrg else 5334ab47cfaaSmrg $rm \"\$progdir/\$file\" 5335ab47cfaaSmrg fi" 5336ab47cfaaSmrg 5337ab47cfaaSmrg $echo >> $output "\ 5338ab47cfaaSmrg 5339ab47cfaaSmrg # relink executable if necessary 5340ab47cfaaSmrg if test -n \"\$relink_command\"; then 5341ab47cfaaSmrg if relink_command_output=\`eval \$relink_command 2>&1\`; then : 5342ab47cfaaSmrg else 5343ab47cfaaSmrg $echo \"\$relink_command_output\" >&2 5344ab47cfaaSmrg $rm \"\$progdir/\$file\" 5345ab47cfaaSmrg exit $EXIT_FAILURE 5346ab47cfaaSmrg fi 5347ab47cfaaSmrg fi 5348ab47cfaaSmrg 5349ab47cfaaSmrg $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 5350ab47cfaaSmrg { $rm \"\$progdir/\$program\"; 5351ab47cfaaSmrg $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 5352ab47cfaaSmrg $rm \"\$progdir/\$file\" 5353ab47cfaaSmrg fi" 5354ab47cfaaSmrg else 5355ab47cfaaSmrg $echo >> $output "\ 5356ab47cfaaSmrg program='$outputname' 5357ab47cfaaSmrg progdir=\"\$thisdir/$objdir\" 5358ab47cfaaSmrg" 5359ab47cfaaSmrg fi 5360ab47cfaaSmrg 5361ab47cfaaSmrg $echo >> $output "\ 5362ab47cfaaSmrg 5363ab47cfaaSmrg if test -f \"\$progdir/\$program\"; then" 5364ab47cfaaSmrg 5365ab47cfaaSmrg # Export our shlibpath_var if we have one. 5366ab47cfaaSmrg if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 5367ab47cfaaSmrg $echo >> $output "\ 5368ab47cfaaSmrg # Add our own library path to $shlibpath_var 5369ab47cfaaSmrg $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 5370ab47cfaaSmrg 5371ab47cfaaSmrg # Some systems cannot cope with colon-terminated $shlibpath_var 5372ab47cfaaSmrg # The second colon is a workaround for a bug in BeOS R4 sed 5373ab47cfaaSmrg $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 5374ab47cfaaSmrg 5375ab47cfaaSmrg export $shlibpath_var 5376ab47cfaaSmrg" 5377ab47cfaaSmrg fi 5378ab47cfaaSmrg 5379ab47cfaaSmrg # fixup the dll searchpath if we need to. 5380ab47cfaaSmrg if test -n "$dllsearchpath"; then 5381ab47cfaaSmrg $echo >> $output "\ 5382ab47cfaaSmrg # Add the dll search path components to the executable PATH 5383ab47cfaaSmrg PATH=$dllsearchpath:\$PATH 5384ab47cfaaSmrg" 5385ab47cfaaSmrg fi 5386ab47cfaaSmrg 5387ab47cfaaSmrg $echo >> $output "\ 5388ab47cfaaSmrg if test \"\$libtool_execute_magic\" != \"$magic\"; then 5389ab47cfaaSmrg # Run the actual program with our arguments. 5390ab47cfaaSmrg" 5391ab47cfaaSmrg case $host in 5392ab47cfaaSmrg # Backslashes separate directories on plain windows 5393ab47cfaaSmrg *-*-mingw | *-*-os2*) 5394ab47cfaaSmrg $echo >> $output "\ 5395ab47cfaaSmrg exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 5396ab47cfaaSmrg" 5397ab47cfaaSmrg ;; 5398ab47cfaaSmrg 5399ab47cfaaSmrg *) 5400ab47cfaaSmrg $echo >> $output "\ 5401ab47cfaaSmrg exec \"\$progdir/\$program\" \${1+\"\$@\"} 5402ab47cfaaSmrg" 5403ab47cfaaSmrg ;; 5404ab47cfaaSmrg esac 5405ab47cfaaSmrg $echo >> $output "\ 5406ab47cfaaSmrg \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" 5407ab47cfaaSmrg exit $EXIT_FAILURE 5408ab47cfaaSmrg fi 5409ab47cfaaSmrg else 5410ab47cfaaSmrg # The program doesn't exist. 5411ab47cfaaSmrg \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 5412ab47cfaaSmrg \$echo \"This script is just a wrapper for \$program.\" 1>&2 5413ab47cfaaSmrg $echo \"See the $PACKAGE documentation for more information.\" 1>&2 5414ab47cfaaSmrg exit $EXIT_FAILURE 5415ab47cfaaSmrg fi 5416ab47cfaaSmrgfi\ 5417ab47cfaaSmrg" 5418ab47cfaaSmrg chmod +x $output 5419ab47cfaaSmrg fi 5420ab47cfaaSmrg exit $EXIT_SUCCESS 5421ab47cfaaSmrg ;; 5422ab47cfaaSmrg esac 5423ab47cfaaSmrg 5424ab47cfaaSmrg # See if we need to build an old-fashioned archive. 5425ab47cfaaSmrg for oldlib in $oldlibs; do 5426ab47cfaaSmrg 5427ab47cfaaSmrg if test "$build_libtool_libs" = convenience; then 5428ab47cfaaSmrg oldobjs="$libobjs_save" 5429ab47cfaaSmrg addlibs="$convenience" 5430ab47cfaaSmrg build_libtool_libs=no 5431ab47cfaaSmrg else 5432ab47cfaaSmrg if test "$build_libtool_libs" = module; then 5433ab47cfaaSmrg oldobjs="$libobjs_save" 5434ab47cfaaSmrg build_libtool_libs=no 5435ab47cfaaSmrg else 5436ab47cfaaSmrg oldobjs="$old_deplibs $non_pic_objects" 5437ab47cfaaSmrg fi 5438ab47cfaaSmrg addlibs="$old_convenience" 5439ab47cfaaSmrg fi 5440ab47cfaaSmrg 5441ab47cfaaSmrg if test -n "$addlibs"; then 5442ab47cfaaSmrg gentop="$output_objdir/${outputname}x" 5443ab47cfaaSmrg generated="$generated $gentop" 5444ab47cfaaSmrg 5445ab47cfaaSmrg func_extract_archives $gentop $addlibs 5446ab47cfaaSmrg oldobjs="$oldobjs $func_extract_archives_result" 5447ab47cfaaSmrg fi 5448ab47cfaaSmrg 5449ab47cfaaSmrg # Do each command in the archive commands. 5450ab47cfaaSmrg if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 5451ab47cfaaSmrg cmds=$old_archive_from_new_cmds 5452ab47cfaaSmrg else 5453ab47cfaaSmrg # POSIX demands no paths to be encoded in archives. We have 5454ab47cfaaSmrg # to avoid creating archives with duplicate basenames if we 5455ab47cfaaSmrg # might have to extract them afterwards, e.g., when creating a 5456ab47cfaaSmrg # static archive out of a convenience library, or when linking 5457ab47cfaaSmrg # the entirety of a libtool archive into another (currently 5458ab47cfaaSmrg # not supported by libtool). 5459ab47cfaaSmrg if (for obj in $oldobjs 5460ab47cfaaSmrg do 5461ab47cfaaSmrg $echo "X$obj" | $Xsed -e 's%^.*/%%' 5462ab47cfaaSmrg done | sort | sort -uc >/dev/null 2>&1); then 5463ab47cfaaSmrg : 5464ab47cfaaSmrg else 5465ab47cfaaSmrg $echo "copying selected object files to avoid basename conflicts..." 5466ab47cfaaSmrg 5467ab47cfaaSmrg if test -z "$gentop"; then 5468ab47cfaaSmrg gentop="$output_objdir/${outputname}x" 5469ab47cfaaSmrg generated="$generated $gentop" 5470ab47cfaaSmrg 5471ab47cfaaSmrg $show "${rm}r $gentop" 5472ab47cfaaSmrg $run ${rm}r "$gentop" 5473ab47cfaaSmrg $show "$mkdir $gentop" 5474ab47cfaaSmrg $run $mkdir "$gentop" 5475ab47cfaaSmrg exit_status=$? 5476ab47cfaaSmrg if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 5477ab47cfaaSmrg exit $exit_status 5478ab47cfaaSmrg fi 5479ab47cfaaSmrg fi 5480ab47cfaaSmrg 5481ab47cfaaSmrg save_oldobjs=$oldobjs 5482ab47cfaaSmrg oldobjs= 5483ab47cfaaSmrg counter=1 5484ab47cfaaSmrg for obj in $save_oldobjs 5485ab47cfaaSmrg do 5486ab47cfaaSmrg objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 5487ab47cfaaSmrg case " $oldobjs " in 5488ab47cfaaSmrg " ") oldobjs=$obj ;; 5489ab47cfaaSmrg *[\ /]"$objbase "*) 5490ab47cfaaSmrg while :; do 5491ab47cfaaSmrg # Make sure we don't pick an alternate name that also 5492ab47cfaaSmrg # overlaps. 5493ab47cfaaSmrg newobj=lt$counter-$objbase 5494ab47cfaaSmrg counter=`expr $counter + 1` 5495ab47cfaaSmrg case " $oldobjs " in 5496ab47cfaaSmrg *[\ /]"$newobj "*) ;; 5497ab47cfaaSmrg *) if test ! -f "$gentop/$newobj"; then break; fi ;; 5498ab47cfaaSmrg esac 5499ab47cfaaSmrg done 5500ab47cfaaSmrg $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 5501ab47cfaaSmrg $run ln "$obj" "$gentop/$newobj" || 5502ab47cfaaSmrg $run cp "$obj" "$gentop/$newobj" 5503ab47cfaaSmrg oldobjs="$oldobjs $gentop/$newobj" 5504ab47cfaaSmrg ;; 5505ab47cfaaSmrg *) oldobjs="$oldobjs $obj" ;; 5506ab47cfaaSmrg esac 5507ab47cfaaSmrg done 5508ab47cfaaSmrg fi 5509ab47cfaaSmrg 5510ab47cfaaSmrg eval cmds=\"$old_archive_cmds\" 5511ab47cfaaSmrg 5512ab47cfaaSmrg if len=`expr "X$cmds" : ".*"` && 5513ab47cfaaSmrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 5514ab47cfaaSmrg cmds=$old_archive_cmds 5515ab47cfaaSmrg else 5516ab47cfaaSmrg # the command line is too long to link in one step, link in parts 5517ab47cfaaSmrg $echo "using piecewise archive linking..." 5518ab47cfaaSmrg save_RANLIB=$RANLIB 5519ab47cfaaSmrg RANLIB=: 5520ab47cfaaSmrg objlist= 5521ab47cfaaSmrg concat_cmds= 5522ab47cfaaSmrg save_oldobjs=$oldobjs 5523ab47cfaaSmrg 5524ab47cfaaSmrg # Is there a better way of finding the last object in the list? 5525ab47cfaaSmrg for obj in $save_oldobjs 5526ab47cfaaSmrg do 5527ab47cfaaSmrg last_oldobj=$obj 5528ab47cfaaSmrg done 5529ab47cfaaSmrg for obj in $save_oldobjs 5530ab47cfaaSmrg do 5531ab47cfaaSmrg oldobjs="$objlist $obj" 5532ab47cfaaSmrg objlist="$objlist $obj" 5533ab47cfaaSmrg eval test_cmds=\"$old_archive_cmds\" 5534ab47cfaaSmrg if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 5535ab47cfaaSmrg test "$len" -le "$max_cmd_len"; then 5536ab47cfaaSmrg : 5537ab47cfaaSmrg else 5538ab47cfaaSmrg # the above command should be used before it gets too long 5539ab47cfaaSmrg oldobjs=$objlist 5540ab47cfaaSmrg if test "$obj" = "$last_oldobj" ; then 5541ab47cfaaSmrg RANLIB=$save_RANLIB 5542ab47cfaaSmrg fi 5543ab47cfaaSmrg test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 5544ab47cfaaSmrg eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 5545ab47cfaaSmrg objlist= 5546ab47cfaaSmrg fi 5547ab47cfaaSmrg done 5548ab47cfaaSmrg RANLIB=$save_RANLIB 5549ab47cfaaSmrg oldobjs=$objlist 5550ab47cfaaSmrg if test "X$oldobjs" = "X" ; then 5551ab47cfaaSmrg eval cmds=\"\$concat_cmds\" 5552ab47cfaaSmrg else 5553ab47cfaaSmrg eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 5554ab47cfaaSmrg fi 5555ab47cfaaSmrg fi 5556ab47cfaaSmrg fi 5557ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 5558ab47cfaaSmrg for cmd in $cmds; do 5559ab47cfaaSmrg eval cmd=\"$cmd\" 5560ab47cfaaSmrg IFS="$save_ifs" 5561ab47cfaaSmrg $show "$cmd" 5562ab47cfaaSmrg $run eval "$cmd" || exit $? 5563ab47cfaaSmrg done 5564ab47cfaaSmrg IFS="$save_ifs" 5565ab47cfaaSmrg done 5566ab47cfaaSmrg 5567ab47cfaaSmrg if test -n "$generated"; then 5568ab47cfaaSmrg $show "${rm}r$generated" 5569ab47cfaaSmrg $run ${rm}r$generated 5570ab47cfaaSmrg fi 5571ab47cfaaSmrg 5572ab47cfaaSmrg # Now create the libtool archive. 5573ab47cfaaSmrg case $output in 5574ab47cfaaSmrg *.la) 5575ab47cfaaSmrg old_library= 5576ab47cfaaSmrg test "$build_old_libs" = yes && old_library="$libname.$libext" 5577ab47cfaaSmrg $show "creating $output" 5578ab47cfaaSmrg 5579ab47cfaaSmrg # Preserve any variables that may affect compiler behavior 5580ab47cfaaSmrg for var in $variables_saved_for_relink; do 5581ab47cfaaSmrg if eval test -z \"\${$var+set}\"; then 5582ab47cfaaSmrg relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 5583ab47cfaaSmrg elif eval var_value=\$$var; test -z "$var_value"; then 5584ab47cfaaSmrg relink_command="$var=; export $var; $relink_command" 5585ab47cfaaSmrg else 5586ab47cfaaSmrg var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 5587ab47cfaaSmrg relink_command="$var=\"$var_value\"; export $var; $relink_command" 5588ab47cfaaSmrg fi 5589ab47cfaaSmrg done 5590ab47cfaaSmrg # Quote the link command for shipping. 5591ab47cfaaSmrg relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 5592ab47cfaaSmrg relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 5593ab47cfaaSmrg if test "$hardcode_automatic" = yes ; then 5594ab47cfaaSmrg relink_command= 5595ab47cfaaSmrg fi 5596ab47cfaaSmrg 5597ab47cfaaSmrg 5598ab47cfaaSmrg # Only create the output if not a dry run. 5599ab47cfaaSmrg if test -z "$run"; then 5600ab47cfaaSmrg for installed in no yes; do 5601ab47cfaaSmrg if test "$installed" = yes; then 5602ab47cfaaSmrg if test -z "$install_libdir"; then 5603ab47cfaaSmrg break 5604ab47cfaaSmrg fi 5605ab47cfaaSmrg output="$output_objdir/$outputname"i 5606ab47cfaaSmrg # Replace all uninstalled libtool libraries with the installed ones 5607ab47cfaaSmrg newdependency_libs= 5608ab47cfaaSmrg for deplib in $dependency_libs; do 5609ab47cfaaSmrg case $deplib in 5610ab47cfaaSmrg *.la) 5611ab47cfaaSmrg name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 5612ab47cfaaSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 5613ab47cfaaSmrg if test -z "$libdir"; then 5614ab47cfaaSmrg $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 5615ab47cfaaSmrg exit $EXIT_FAILURE 5616ab47cfaaSmrg fi 5617ab47cfaaSmrg newdependency_libs="$newdependency_libs $libdir/$name" 5618ab47cfaaSmrg ;; 5619ab47cfaaSmrg *) newdependency_libs="$newdependency_libs $deplib" ;; 5620ab47cfaaSmrg esac 5621ab47cfaaSmrg done 5622ab47cfaaSmrg dependency_libs="$newdependency_libs" 5623ab47cfaaSmrg newdlfiles= 5624ab47cfaaSmrg for lib in $dlfiles; do 5625ab47cfaaSmrg name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5626ab47cfaaSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5627ab47cfaaSmrg if test -z "$libdir"; then 5628ab47cfaaSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5629ab47cfaaSmrg exit $EXIT_FAILURE 5630ab47cfaaSmrg fi 5631ab47cfaaSmrg newdlfiles="$newdlfiles $libdir/$name" 5632ab47cfaaSmrg done 5633ab47cfaaSmrg dlfiles="$newdlfiles" 5634ab47cfaaSmrg newdlprefiles= 5635ab47cfaaSmrg for lib in $dlprefiles; do 5636ab47cfaaSmrg name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5637ab47cfaaSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5638ab47cfaaSmrg if test -z "$libdir"; then 5639ab47cfaaSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5640ab47cfaaSmrg exit $EXIT_FAILURE 5641ab47cfaaSmrg fi 5642ab47cfaaSmrg newdlprefiles="$newdlprefiles $libdir/$name" 5643ab47cfaaSmrg done 5644ab47cfaaSmrg dlprefiles="$newdlprefiles" 5645ab47cfaaSmrg else 5646ab47cfaaSmrg newdlfiles= 5647ab47cfaaSmrg for lib in $dlfiles; do 5648ab47cfaaSmrg case $lib in 5649ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5650ab47cfaaSmrg *) abs=`pwd`"/$lib" ;; 5651ab47cfaaSmrg esac 5652ab47cfaaSmrg newdlfiles="$newdlfiles $abs" 5653ab47cfaaSmrg done 5654ab47cfaaSmrg dlfiles="$newdlfiles" 5655ab47cfaaSmrg newdlprefiles= 5656ab47cfaaSmrg for lib in $dlprefiles; do 5657ab47cfaaSmrg case $lib in 5658ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5659ab47cfaaSmrg *) abs=`pwd`"/$lib" ;; 5660ab47cfaaSmrg esac 5661ab47cfaaSmrg newdlprefiles="$newdlprefiles $abs" 5662ab47cfaaSmrg done 5663ab47cfaaSmrg dlprefiles="$newdlprefiles" 5664ab47cfaaSmrg fi 5665ab47cfaaSmrg $rm $output 5666ab47cfaaSmrg # place dlname in correct position for cygwin 5667ab47cfaaSmrg tdlname=$dlname 5668ab47cfaaSmrg case $host,$output,$installed,$module,$dlname in 5669ab47cfaaSmrg *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 5670ab47cfaaSmrg esac 5671ab47cfaaSmrg $echo > $output "\ 5672ab47cfaaSmrg# $outputname - a libtool library file 5673ab47cfaaSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5674ab47cfaaSmrg# 5675ab47cfaaSmrg# Please DO NOT delete this file! 5676ab47cfaaSmrg# It is necessary for linking the library. 5677ab47cfaaSmrg 5678ab47cfaaSmrg# The name that we can dlopen(3). 5679ab47cfaaSmrgdlname='$tdlname' 5680ab47cfaaSmrg 5681ab47cfaaSmrg# Names of this library. 5682ab47cfaaSmrglibrary_names='$library_names' 5683ab47cfaaSmrg 5684ab47cfaaSmrg# The name of the static archive. 5685ab47cfaaSmrgold_library='$old_library' 5686ab47cfaaSmrg 5687ab47cfaaSmrg# Libraries that this one depends upon. 5688ab47cfaaSmrgdependency_libs='$dependency_libs' 5689ab47cfaaSmrg 5690ab47cfaaSmrg# Version information for $libname. 5691ab47cfaaSmrgcurrent=$current 5692ab47cfaaSmrgage=$age 5693ab47cfaaSmrgrevision=$revision 5694ab47cfaaSmrg 5695ab47cfaaSmrg# Is this an already installed library? 5696ab47cfaaSmrginstalled=$installed 5697ab47cfaaSmrg 5698ab47cfaaSmrg# Should we warn about portability when linking against -modules? 5699ab47cfaaSmrgshouldnotlink=$module 5700ab47cfaaSmrg 5701ab47cfaaSmrg# Files to dlopen/dlpreopen 5702ab47cfaaSmrgdlopen='$dlfiles' 5703ab47cfaaSmrgdlpreopen='$dlprefiles' 5704ab47cfaaSmrg 5705ab47cfaaSmrg# Directory that this library needs to be installed in: 5706ab47cfaaSmrglibdir='$install_libdir'" 5707ab47cfaaSmrg if test "$installed" = no && test "$need_relink" = yes; then 5708ab47cfaaSmrg $echo >> $output "\ 5709ab47cfaaSmrgrelink_command=\"$relink_command\"" 5710ab47cfaaSmrg fi 5711ab47cfaaSmrg done 5712ab47cfaaSmrg fi 5713ab47cfaaSmrg 5714ab47cfaaSmrg # Do a symbolic link so that the libtool archive can be found in 5715ab47cfaaSmrg # LD_LIBRARY_PATH before the program is installed. 5716ab47cfaaSmrg $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 5717ab47cfaaSmrg $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 5718ab47cfaaSmrg ;; 5719ab47cfaaSmrg esac 5720ab47cfaaSmrg exit $EXIT_SUCCESS 5721ab47cfaaSmrg ;; 5722ab47cfaaSmrg 5723ab47cfaaSmrg # libtool install mode 5724ab47cfaaSmrg install) 5725ab47cfaaSmrg modename="$modename: install" 5726ab47cfaaSmrg 5727ab47cfaaSmrg # There may be an optional sh(1) argument at the beginning of 5728ab47cfaaSmrg # install_prog (especially on Windows NT). 5729ab47cfaaSmrg if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 5730ab47cfaaSmrg # Allow the use of GNU shtool's install command. 5731ab47cfaaSmrg $echo "X$nonopt" | grep shtool > /dev/null; then 5732ab47cfaaSmrg # Aesthetically quote it. 5733ab47cfaaSmrg arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 5734ab47cfaaSmrg case $arg in 5735ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5736ab47cfaaSmrg arg="\"$arg\"" 5737ab47cfaaSmrg ;; 5738ab47cfaaSmrg esac 5739ab47cfaaSmrg install_prog="$arg " 5740ab47cfaaSmrg arg="$1" 5741ab47cfaaSmrg shift 5742ab47cfaaSmrg else 5743ab47cfaaSmrg install_prog= 5744ab47cfaaSmrg arg=$nonopt 5745ab47cfaaSmrg fi 5746ab47cfaaSmrg 5747ab47cfaaSmrg # The real first argument should be the name of the installation program. 5748ab47cfaaSmrg # Aesthetically quote it. 5749ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5750ab47cfaaSmrg case $arg in 5751ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5752ab47cfaaSmrg arg="\"$arg\"" 5753ab47cfaaSmrg ;; 5754ab47cfaaSmrg esac 5755ab47cfaaSmrg install_prog="$install_prog$arg" 5756ab47cfaaSmrg 5757ab47cfaaSmrg # We need to accept at least all the BSD install flags. 5758ab47cfaaSmrg dest= 5759ab47cfaaSmrg files= 5760ab47cfaaSmrg opts= 5761ab47cfaaSmrg prev= 5762ab47cfaaSmrg install_type= 5763ab47cfaaSmrg isdir=no 5764ab47cfaaSmrg stripme= 5765ab47cfaaSmrg for arg 5766ab47cfaaSmrg do 5767ab47cfaaSmrg if test -n "$dest"; then 5768ab47cfaaSmrg files="$files $dest" 5769ab47cfaaSmrg dest=$arg 5770ab47cfaaSmrg continue 5771ab47cfaaSmrg fi 5772ab47cfaaSmrg 5773ab47cfaaSmrg case $arg in 5774ab47cfaaSmrg -d) isdir=yes ;; 5775ab47cfaaSmrg -f) 5776ab47cfaaSmrg case " $install_prog " in 5777ab47cfaaSmrg *[\\\ /]cp\ *) ;; 5778ab47cfaaSmrg *) prev=$arg ;; 5779ab47cfaaSmrg esac 5780ab47cfaaSmrg ;; 5781ab47cfaaSmrg -g | -m | -o) prev=$arg ;; 5782ab47cfaaSmrg -s) 5783ab47cfaaSmrg stripme=" -s" 5784ab47cfaaSmrg continue 5785ab47cfaaSmrg ;; 5786ab47cfaaSmrg -*) 5787ab47cfaaSmrg ;; 5788ab47cfaaSmrg *) 5789ab47cfaaSmrg # If the previous option needed an argument, then skip it. 5790ab47cfaaSmrg if test -n "$prev"; then 5791ab47cfaaSmrg prev= 5792ab47cfaaSmrg else 5793ab47cfaaSmrg dest=$arg 5794ab47cfaaSmrg continue 5795ab47cfaaSmrg fi 5796ab47cfaaSmrg ;; 5797ab47cfaaSmrg esac 5798ab47cfaaSmrg 5799ab47cfaaSmrg # Aesthetically quote the argument. 5800ab47cfaaSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5801ab47cfaaSmrg case $arg in 5802ab47cfaaSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5803ab47cfaaSmrg arg="\"$arg\"" 5804ab47cfaaSmrg ;; 5805ab47cfaaSmrg esac 5806ab47cfaaSmrg install_prog="$install_prog $arg" 5807ab47cfaaSmrg done 5808ab47cfaaSmrg 5809ab47cfaaSmrg if test -z "$install_prog"; then 5810ab47cfaaSmrg $echo "$modename: you must specify an install program" 1>&2 5811ab47cfaaSmrg $echo "$help" 1>&2 5812ab47cfaaSmrg exit $EXIT_FAILURE 5813ab47cfaaSmrg fi 5814ab47cfaaSmrg 5815ab47cfaaSmrg if test -n "$prev"; then 5816ab47cfaaSmrg $echo "$modename: the \`$prev' option requires an argument" 1>&2 5817ab47cfaaSmrg $echo "$help" 1>&2 5818ab47cfaaSmrg exit $EXIT_FAILURE 5819ab47cfaaSmrg fi 5820ab47cfaaSmrg 5821ab47cfaaSmrg if test -z "$files"; then 5822ab47cfaaSmrg if test -z "$dest"; then 5823ab47cfaaSmrg $echo "$modename: no file or destination specified" 1>&2 5824ab47cfaaSmrg else 5825ab47cfaaSmrg $echo "$modename: you must specify a destination" 1>&2 5826ab47cfaaSmrg fi 5827ab47cfaaSmrg $echo "$help" 1>&2 5828ab47cfaaSmrg exit $EXIT_FAILURE 5829ab47cfaaSmrg fi 5830ab47cfaaSmrg 5831ab47cfaaSmrg # Strip any trailing slash from the destination. 5832ab47cfaaSmrg dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 5833ab47cfaaSmrg 5834ab47cfaaSmrg # Check to see that the destination is a directory. 5835ab47cfaaSmrg test -d "$dest" && isdir=yes 5836ab47cfaaSmrg if test "$isdir" = yes; then 5837ab47cfaaSmrg destdir="$dest" 5838ab47cfaaSmrg destname= 5839ab47cfaaSmrg else 5840ab47cfaaSmrg destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 5841ab47cfaaSmrg test "X$destdir" = "X$dest" && destdir=. 5842ab47cfaaSmrg destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 5843ab47cfaaSmrg 5844ab47cfaaSmrg # Not a directory, so check to see that there is only one file specified. 5845ab47cfaaSmrg set dummy $files 5846ab47cfaaSmrg if test "$#" -gt 2; then 5847ab47cfaaSmrg $echo "$modename: \`$dest' is not a directory" 1>&2 5848ab47cfaaSmrg $echo "$help" 1>&2 5849ab47cfaaSmrg exit $EXIT_FAILURE 5850ab47cfaaSmrg fi 5851ab47cfaaSmrg fi 5852ab47cfaaSmrg case $destdir in 5853ab47cfaaSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 5854ab47cfaaSmrg *) 5855ab47cfaaSmrg for file in $files; do 5856ab47cfaaSmrg case $file in 5857ab47cfaaSmrg *.lo) ;; 5858ab47cfaaSmrg *) 5859ab47cfaaSmrg $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 5860ab47cfaaSmrg $echo "$help" 1>&2 5861ab47cfaaSmrg exit $EXIT_FAILURE 5862ab47cfaaSmrg ;; 5863ab47cfaaSmrg esac 5864ab47cfaaSmrg done 5865ab47cfaaSmrg ;; 5866ab47cfaaSmrg esac 5867ab47cfaaSmrg 5868ab47cfaaSmrg # This variable tells wrapper scripts just to set variables rather 5869ab47cfaaSmrg # than running their programs. 5870ab47cfaaSmrg libtool_install_magic="$magic" 5871ab47cfaaSmrg 5872ab47cfaaSmrg staticlibs= 5873ab47cfaaSmrg future_libdirs= 5874ab47cfaaSmrg current_libdirs= 5875ab47cfaaSmrg for file in $files; do 5876ab47cfaaSmrg 5877ab47cfaaSmrg # Do each installation. 5878ab47cfaaSmrg case $file in 5879ab47cfaaSmrg *.$libext) 5880ab47cfaaSmrg # Do the static libraries later. 5881ab47cfaaSmrg staticlibs="$staticlibs $file" 5882ab47cfaaSmrg ;; 5883ab47cfaaSmrg 5884ab47cfaaSmrg *.la) 5885ab47cfaaSmrg # Check to see that this really is a libtool archive. 5886ab47cfaaSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 5887ab47cfaaSmrg else 5888ab47cfaaSmrg $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 5889ab47cfaaSmrg $echo "$help" 1>&2 5890ab47cfaaSmrg exit $EXIT_FAILURE 5891ab47cfaaSmrg fi 5892ab47cfaaSmrg 5893ab47cfaaSmrg library_names= 5894ab47cfaaSmrg old_library= 5895ab47cfaaSmrg relink_command= 5896ab47cfaaSmrg # If there is no directory component, then add one. 5897ab47cfaaSmrg case $file in 5898ab47cfaaSmrg */* | *\\*) . $file ;; 5899ab47cfaaSmrg *) . ./$file ;; 5900ab47cfaaSmrg esac 5901ab47cfaaSmrg 5902ab47cfaaSmrg # Add the libdir to current_libdirs if it is the destination. 5903ab47cfaaSmrg if test "X$destdir" = "X$libdir"; then 5904ab47cfaaSmrg case "$current_libdirs " in 5905ab47cfaaSmrg *" $libdir "*) ;; 5906ab47cfaaSmrg *) current_libdirs="$current_libdirs $libdir" ;; 5907ab47cfaaSmrg esac 5908ab47cfaaSmrg else 5909ab47cfaaSmrg # Note the libdir as a future libdir. 5910ab47cfaaSmrg case "$future_libdirs " in 5911ab47cfaaSmrg *" $libdir "*) ;; 5912ab47cfaaSmrg *) future_libdirs="$future_libdirs $libdir" ;; 5913ab47cfaaSmrg esac 5914ab47cfaaSmrg fi 5915ab47cfaaSmrg 5916ab47cfaaSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 5917ab47cfaaSmrg test "X$dir" = "X$file/" && dir= 5918ab47cfaaSmrg dir="$dir$objdir" 5919ab47cfaaSmrg 5920ab47cfaaSmrg if test -n "$relink_command"; then 5921ab47cfaaSmrg # Determine the prefix the user has applied to our future dir. 5922ab47cfaaSmrg inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 5923ab47cfaaSmrg 5924ab47cfaaSmrg # Don't allow the user to place us outside of our expected 5925ab47cfaaSmrg # location b/c this prevents finding dependent libraries that 5926ab47cfaaSmrg # are installed to the same prefix. 5927ab47cfaaSmrg # At present, this check doesn't affect windows .dll's that 5928ab47cfaaSmrg # are installed into $libdir/../bin (currently, that works fine) 5929ab47cfaaSmrg # but it's something to keep an eye on. 5930ab47cfaaSmrg if test "$inst_prefix_dir" = "$destdir"; then 5931ab47cfaaSmrg $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 5932ab47cfaaSmrg exit $EXIT_FAILURE 5933ab47cfaaSmrg fi 5934ab47cfaaSmrg 5935ab47cfaaSmrg if test -n "$inst_prefix_dir"; then 5936ab47cfaaSmrg # Stick the inst_prefix_dir data into the link command. 5937ab47cfaaSmrg relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 5938ab47cfaaSmrg else 5939ab47cfaaSmrg relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 5940ab47cfaaSmrg fi 5941ab47cfaaSmrg 5942ab47cfaaSmrg $echo "$modename: warning: relinking \`$file'" 1>&2 5943ab47cfaaSmrg $show "$relink_command" 5944ab47cfaaSmrg if $run eval "$relink_command"; then : 5945ab47cfaaSmrg else 5946ab47cfaaSmrg $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 5947ab47cfaaSmrg exit $EXIT_FAILURE 5948ab47cfaaSmrg fi 5949ab47cfaaSmrg fi 5950ab47cfaaSmrg 5951ab47cfaaSmrg # See the names of the shared library. 5952ab47cfaaSmrg set dummy $library_names 5953ab47cfaaSmrg if test -n "$2"; then 5954ab47cfaaSmrg realname="$2" 5955ab47cfaaSmrg shift 5956ab47cfaaSmrg shift 5957ab47cfaaSmrg 5958ab47cfaaSmrg srcname="$realname" 5959ab47cfaaSmrg test -n "$relink_command" && srcname="$realname"T 5960ab47cfaaSmrg 5961ab47cfaaSmrg # Install the shared library and build the symlinks. 5962ab47cfaaSmrg $show "$install_prog $dir/$srcname $destdir/$realname" 5963ab47cfaaSmrg $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? 5964ab47cfaaSmrg if test -n "$stripme" && test -n "$striplib"; then 5965ab47cfaaSmrg $show "$striplib $destdir/$realname" 5966ab47cfaaSmrg $run eval "$striplib $destdir/$realname" || exit $? 5967ab47cfaaSmrg fi 5968ab47cfaaSmrg 5969ab47cfaaSmrg if test "$#" -gt 0; then 5970ab47cfaaSmrg # Delete the old symlinks, and create new ones. 5971ab47cfaaSmrg # Try `ln -sf' first, because the `ln' binary might depend on 5972ab47cfaaSmrg # the symlink we replace! Solaris /bin/ln does not understand -f, 5973ab47cfaaSmrg # so we also need to try rm && ln -s. 5974ab47cfaaSmrg for linkname 5975ab47cfaaSmrg do 5976ab47cfaaSmrg if test "$linkname" != "$realname"; then 5977ab47cfaaSmrg $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 5978ab47cfaaSmrg $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 5979ab47cfaaSmrg fi 5980ab47cfaaSmrg done 5981ab47cfaaSmrg fi 5982ab47cfaaSmrg 5983ab47cfaaSmrg # Do each command in the postinstall commands. 5984ab47cfaaSmrg lib="$destdir/$realname" 5985ab47cfaaSmrg cmds=$postinstall_cmds 5986ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 5987ab47cfaaSmrg for cmd in $cmds; do 5988ab47cfaaSmrg IFS="$save_ifs" 5989ab47cfaaSmrg eval cmd=\"$cmd\" 5990ab47cfaaSmrg $show "$cmd" 5991ab47cfaaSmrg $run eval "$cmd" || { 5992ab47cfaaSmrg lt_exit=$? 5993ab47cfaaSmrg 5994ab47cfaaSmrg # Restore the uninstalled library and exit 5995ab47cfaaSmrg if test "$mode" = relink; then 5996ab47cfaaSmrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 5997ab47cfaaSmrg fi 5998ab47cfaaSmrg 5999ab47cfaaSmrg exit $lt_exit 6000ab47cfaaSmrg } 6001ab47cfaaSmrg done 6002ab47cfaaSmrg IFS="$save_ifs" 6003ab47cfaaSmrg fi 6004ab47cfaaSmrg 6005ab47cfaaSmrg # Install the pseudo-library for information purposes. 6006ab47cfaaSmrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6007ab47cfaaSmrg instname="$dir/$name"i 6008ab47cfaaSmrg $show "$install_prog $instname $destdir/$name" 6009ab47cfaaSmrg $run eval "$install_prog $instname $destdir/$name" || exit $? 6010ab47cfaaSmrg 6011ab47cfaaSmrg # Maybe install the static library, too. 6012ab47cfaaSmrg test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 6013ab47cfaaSmrg ;; 6014ab47cfaaSmrg 6015ab47cfaaSmrg *.lo) 6016ab47cfaaSmrg # Install (i.e. copy) a libtool object. 6017ab47cfaaSmrg 6018ab47cfaaSmrg # Figure out destination file name, if it wasn't already specified. 6019ab47cfaaSmrg if test -n "$destname"; then 6020ab47cfaaSmrg destfile="$destdir/$destname" 6021ab47cfaaSmrg else 6022ab47cfaaSmrg destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6023ab47cfaaSmrg destfile="$destdir/$destfile" 6024ab47cfaaSmrg fi 6025ab47cfaaSmrg 6026ab47cfaaSmrg # Deduce the name of the destination old-style object file. 6027ab47cfaaSmrg case $destfile in 6028ab47cfaaSmrg *.lo) 6029ab47cfaaSmrg staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 6030ab47cfaaSmrg ;; 6031ab47cfaaSmrg *.$objext) 6032ab47cfaaSmrg staticdest="$destfile" 6033ab47cfaaSmrg destfile= 6034ab47cfaaSmrg ;; 6035ab47cfaaSmrg *) 6036ab47cfaaSmrg $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 6037ab47cfaaSmrg $echo "$help" 1>&2 6038ab47cfaaSmrg exit $EXIT_FAILURE 6039ab47cfaaSmrg ;; 6040ab47cfaaSmrg esac 6041ab47cfaaSmrg 6042ab47cfaaSmrg # Install the libtool object if requested. 6043ab47cfaaSmrg if test -n "$destfile"; then 6044ab47cfaaSmrg $show "$install_prog $file $destfile" 6045ab47cfaaSmrg $run eval "$install_prog $file $destfile" || exit $? 6046ab47cfaaSmrg fi 6047ab47cfaaSmrg 6048ab47cfaaSmrg # Install the old object if enabled. 6049ab47cfaaSmrg if test "$build_old_libs" = yes; then 6050ab47cfaaSmrg # Deduce the name of the old-style object file. 6051ab47cfaaSmrg staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 6052ab47cfaaSmrg 6053ab47cfaaSmrg $show "$install_prog $staticobj $staticdest" 6054ab47cfaaSmrg $run eval "$install_prog \$staticobj \$staticdest" || exit $? 6055ab47cfaaSmrg fi 6056ab47cfaaSmrg exit $EXIT_SUCCESS 6057ab47cfaaSmrg ;; 6058ab47cfaaSmrg 6059ab47cfaaSmrg *) 6060ab47cfaaSmrg # Figure out destination file name, if it wasn't already specified. 6061ab47cfaaSmrg if test -n "$destname"; then 6062ab47cfaaSmrg destfile="$destdir/$destname" 6063ab47cfaaSmrg else 6064ab47cfaaSmrg destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6065ab47cfaaSmrg destfile="$destdir/$destfile" 6066ab47cfaaSmrg fi 6067ab47cfaaSmrg 6068ab47cfaaSmrg # If the file is missing, and there is a .exe on the end, strip it 6069ab47cfaaSmrg # because it is most likely a libtool script we actually want to 6070ab47cfaaSmrg # install 6071ab47cfaaSmrg stripped_ext="" 6072ab47cfaaSmrg case $file in 6073ab47cfaaSmrg *.exe) 6074ab47cfaaSmrg if test ! -f "$file"; then 6075ab47cfaaSmrg file=`$echo $file|${SED} 's,.exe$,,'` 6076ab47cfaaSmrg stripped_ext=".exe" 6077ab47cfaaSmrg fi 6078ab47cfaaSmrg ;; 6079ab47cfaaSmrg esac 6080ab47cfaaSmrg 6081ab47cfaaSmrg # Do a test to see if this is really a libtool program. 6082ab47cfaaSmrg case $host in 6083ab47cfaaSmrg *cygwin*|*mingw*) 6084ab47cfaaSmrg wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 6085ab47cfaaSmrg ;; 6086ab47cfaaSmrg *) 6087ab47cfaaSmrg wrapper=$file 6088ab47cfaaSmrg ;; 6089ab47cfaaSmrg esac 6090ab47cfaaSmrg if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 6091ab47cfaaSmrg notinst_deplibs= 6092ab47cfaaSmrg relink_command= 6093ab47cfaaSmrg 6094ab47cfaaSmrg # Note that it is not necessary on cygwin/mingw to append a dot to 6095ab47cfaaSmrg # foo even if both foo and FILE.exe exist: automatic-append-.exe 6096ab47cfaaSmrg # behavior happens only for exec(3), not for open(2)! Also, sourcing 6097ab47cfaaSmrg # `FILE.' does not work on cygwin managed mounts. 6098ab47cfaaSmrg # 6099ab47cfaaSmrg # If there is no directory component, then add one. 6100ab47cfaaSmrg case $wrapper in 6101ab47cfaaSmrg */* | *\\*) . ${wrapper} ;; 6102ab47cfaaSmrg *) . ./${wrapper} ;; 6103ab47cfaaSmrg esac 6104ab47cfaaSmrg 6105ab47cfaaSmrg # Check the variables that should have been set. 6106ab47cfaaSmrg if test -z "$notinst_deplibs"; then 6107ab47cfaaSmrg $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 6108ab47cfaaSmrg exit $EXIT_FAILURE 6109ab47cfaaSmrg fi 6110ab47cfaaSmrg 6111ab47cfaaSmrg finalize=yes 6112ab47cfaaSmrg for lib in $notinst_deplibs; do 6113ab47cfaaSmrg # Check to see that each library is installed. 6114ab47cfaaSmrg libdir= 6115ab47cfaaSmrg if test -f "$lib"; then 6116ab47cfaaSmrg # If there is no directory component, then add one. 6117ab47cfaaSmrg case $lib in 6118ab47cfaaSmrg */* | *\\*) . $lib ;; 6119ab47cfaaSmrg *) . ./$lib ;; 6120ab47cfaaSmrg esac 6121ab47cfaaSmrg fi 6122ab47cfaaSmrg libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 6123ab47cfaaSmrg if test -n "$libdir" && test ! -f "$libfile"; then 6124ab47cfaaSmrg $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 6125ab47cfaaSmrg finalize=no 6126ab47cfaaSmrg fi 6127ab47cfaaSmrg done 6128ab47cfaaSmrg 6129ab47cfaaSmrg relink_command= 6130ab47cfaaSmrg # Note that it is not necessary on cygwin/mingw to append a dot to 6131ab47cfaaSmrg # foo even if both foo and FILE.exe exist: automatic-append-.exe 6132ab47cfaaSmrg # behavior happens only for exec(3), not for open(2)! Also, sourcing 6133ab47cfaaSmrg # `FILE.' does not work on cygwin managed mounts. 6134ab47cfaaSmrg # 6135ab47cfaaSmrg # If there is no directory component, then add one. 6136ab47cfaaSmrg case $wrapper in 6137ab47cfaaSmrg */* | *\\*) . ${wrapper} ;; 6138ab47cfaaSmrg *) . ./${wrapper} ;; 6139ab47cfaaSmrg esac 6140ab47cfaaSmrg 6141ab47cfaaSmrg outputname= 6142ab47cfaaSmrg if test "$fast_install" = no && test -n "$relink_command"; then 6143ab47cfaaSmrg if test "$finalize" = yes && test -z "$run"; then 6144ab47cfaaSmrg tmpdir=`func_mktempdir` 6145ab47cfaaSmrg file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 6146ab47cfaaSmrg outputname="$tmpdir/$file" 6147ab47cfaaSmrg # Replace the output file specification. 6148ab47cfaaSmrg relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` 6149ab47cfaaSmrg 6150ab47cfaaSmrg $show "$relink_command" 6151ab47cfaaSmrg if $run eval "$relink_command"; then : 6152ab47cfaaSmrg else 6153ab47cfaaSmrg $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6154ab47cfaaSmrg ${rm}r "$tmpdir" 6155ab47cfaaSmrg continue 6156ab47cfaaSmrg fi 6157ab47cfaaSmrg file="$outputname" 6158ab47cfaaSmrg else 6159ab47cfaaSmrg $echo "$modename: warning: cannot relink \`$file'" 1>&2 6160ab47cfaaSmrg fi 6161ab47cfaaSmrg else 6162ab47cfaaSmrg # Install the binary that we compiled earlier. 6163ab47cfaaSmrg file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 6164ab47cfaaSmrg fi 6165ab47cfaaSmrg fi 6166ab47cfaaSmrg 6167ab47cfaaSmrg # remove .exe since cygwin /usr/bin/install will append another 6168ab47cfaaSmrg # one anyway 6169ab47cfaaSmrg case $install_prog,$host in 6170ab47cfaaSmrg */usr/bin/install*,*cygwin*) 6171ab47cfaaSmrg case $file:$destfile in 6172ab47cfaaSmrg *.exe:*.exe) 6173ab47cfaaSmrg # this is ok 6174ab47cfaaSmrg ;; 6175ab47cfaaSmrg *.exe:*) 6176ab47cfaaSmrg destfile=$destfile.exe 6177ab47cfaaSmrg ;; 6178ab47cfaaSmrg *:*.exe) 6179ab47cfaaSmrg destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 6180ab47cfaaSmrg ;; 6181ab47cfaaSmrg esac 6182ab47cfaaSmrg ;; 6183ab47cfaaSmrg esac 6184ab47cfaaSmrg $show "$install_prog$stripme $file $destfile" 6185ab47cfaaSmrg $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 6186ab47cfaaSmrg test -n "$outputname" && ${rm}r "$tmpdir" 6187ab47cfaaSmrg ;; 6188ab47cfaaSmrg esac 6189ab47cfaaSmrg done 6190ab47cfaaSmrg 6191ab47cfaaSmrg for file in $staticlibs; do 6192ab47cfaaSmrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6193ab47cfaaSmrg 6194ab47cfaaSmrg # Set up the ranlib parameters. 6195ab47cfaaSmrg oldlib="$destdir/$name" 6196ab47cfaaSmrg 6197ab47cfaaSmrg $show "$install_prog $file $oldlib" 6198ab47cfaaSmrg $run eval "$install_prog \$file \$oldlib" || exit $? 6199ab47cfaaSmrg 6200ab47cfaaSmrg if test -n "$stripme" && test -n "$old_striplib"; then 6201ab47cfaaSmrg $show "$old_striplib $oldlib" 6202ab47cfaaSmrg $run eval "$old_striplib $oldlib" || exit $? 6203ab47cfaaSmrg fi 6204ab47cfaaSmrg 6205ab47cfaaSmrg # Do each command in the postinstall commands. 6206ab47cfaaSmrg cmds=$old_postinstall_cmds 6207ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 6208ab47cfaaSmrg for cmd in $cmds; do 6209ab47cfaaSmrg IFS="$save_ifs" 6210ab47cfaaSmrg eval cmd=\"$cmd\" 6211ab47cfaaSmrg $show "$cmd" 6212ab47cfaaSmrg $run eval "$cmd" || exit $? 6213ab47cfaaSmrg done 6214ab47cfaaSmrg IFS="$save_ifs" 6215ab47cfaaSmrg done 6216ab47cfaaSmrg 6217ab47cfaaSmrg if test -n "$future_libdirs"; then 6218ab47cfaaSmrg $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 6219ab47cfaaSmrg fi 6220ab47cfaaSmrg 6221ab47cfaaSmrg if test -n "$current_libdirs"; then 6222ab47cfaaSmrg # Maybe just do a dry run. 6223ab47cfaaSmrg test -n "$run" && current_libdirs=" -n$current_libdirs" 6224ab47cfaaSmrg exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 6225ab47cfaaSmrg else 6226ab47cfaaSmrg exit $EXIT_SUCCESS 6227ab47cfaaSmrg fi 6228ab47cfaaSmrg ;; 6229ab47cfaaSmrg 6230ab47cfaaSmrg # libtool finish mode 6231ab47cfaaSmrg finish) 6232ab47cfaaSmrg modename="$modename: finish" 6233ab47cfaaSmrg libdirs="$nonopt" 6234ab47cfaaSmrg admincmds= 6235ab47cfaaSmrg 6236ab47cfaaSmrg if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 6237ab47cfaaSmrg for dir 6238ab47cfaaSmrg do 6239ab47cfaaSmrg libdirs="$libdirs $dir" 6240ab47cfaaSmrg done 6241ab47cfaaSmrg 6242ab47cfaaSmrg for libdir in $libdirs; do 6243ab47cfaaSmrg if test -n "$finish_cmds"; then 6244ab47cfaaSmrg # Do each command in the finish commands. 6245ab47cfaaSmrg cmds=$finish_cmds 6246ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 6247ab47cfaaSmrg for cmd in $cmds; do 6248ab47cfaaSmrg IFS="$save_ifs" 6249ab47cfaaSmrg eval cmd=\"$cmd\" 6250ab47cfaaSmrg $show "$cmd" 6251ab47cfaaSmrg $run eval "$cmd" || admincmds="$admincmds 6252ab47cfaaSmrg $cmd" 6253ab47cfaaSmrg done 6254ab47cfaaSmrg IFS="$save_ifs" 6255ab47cfaaSmrg fi 6256ab47cfaaSmrg if test -n "$finish_eval"; then 6257ab47cfaaSmrg # Do the single finish_eval. 6258ab47cfaaSmrg eval cmds=\"$finish_eval\" 6259ab47cfaaSmrg $run eval "$cmds" || admincmds="$admincmds 6260ab47cfaaSmrg $cmds" 6261ab47cfaaSmrg fi 6262ab47cfaaSmrg done 6263ab47cfaaSmrg fi 6264ab47cfaaSmrg 6265ab47cfaaSmrg # Exit here if they wanted silent mode. 6266ab47cfaaSmrg test "$show" = : && exit $EXIT_SUCCESS 6267ab47cfaaSmrg 6268ab47cfaaSmrg $echo "X----------------------------------------------------------------------" | $Xsed 6269ab47cfaaSmrg $echo "Libraries have been installed in:" 6270ab47cfaaSmrg for libdir in $libdirs; do 6271ab47cfaaSmrg $echo " $libdir" 6272ab47cfaaSmrg done 6273ab47cfaaSmrg $echo 6274ab47cfaaSmrg $echo "If you ever happen to want to link against installed libraries" 6275ab47cfaaSmrg $echo "in a given directory, LIBDIR, you must either use libtool, and" 6276ab47cfaaSmrg $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 6277ab47cfaaSmrg $echo "flag during linking and do at least one of the following:" 6278ab47cfaaSmrg if test -n "$shlibpath_var"; then 6279ab47cfaaSmrg $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 6280ab47cfaaSmrg $echo " during execution" 6281ab47cfaaSmrg fi 6282ab47cfaaSmrg if test -n "$runpath_var"; then 6283ab47cfaaSmrg $echo " - add LIBDIR to the \`$runpath_var' environment variable" 6284ab47cfaaSmrg $echo " during linking" 6285ab47cfaaSmrg fi 6286ab47cfaaSmrg if test -n "$hardcode_libdir_flag_spec"; then 6287ab47cfaaSmrg libdir=LIBDIR 6288ab47cfaaSmrg eval flag=\"$hardcode_libdir_flag_spec\" 6289ab47cfaaSmrg 6290ab47cfaaSmrg $echo " - use the \`$flag' linker flag" 6291ab47cfaaSmrg fi 6292ab47cfaaSmrg if test -n "$admincmds"; then 6293ab47cfaaSmrg $echo " - have your system administrator run these commands:$admincmds" 6294ab47cfaaSmrg fi 6295ab47cfaaSmrg if test -f /etc/ld.so.conf; then 6296ab47cfaaSmrg $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 6297ab47cfaaSmrg fi 6298ab47cfaaSmrg $echo 6299ab47cfaaSmrg $echo "See any operating system documentation about shared libraries for" 6300ab47cfaaSmrg $echo "more information, such as the ld(1) and ld.so(8) manual pages." 6301ab47cfaaSmrg $echo "X----------------------------------------------------------------------" | $Xsed 6302ab47cfaaSmrg exit $EXIT_SUCCESS 6303ab47cfaaSmrg ;; 6304ab47cfaaSmrg 6305ab47cfaaSmrg # libtool execute mode 6306ab47cfaaSmrg execute) 6307ab47cfaaSmrg modename="$modename: execute" 6308ab47cfaaSmrg 6309ab47cfaaSmrg # The first argument is the command name. 6310ab47cfaaSmrg cmd="$nonopt" 6311ab47cfaaSmrg if test -z "$cmd"; then 6312ab47cfaaSmrg $echo "$modename: you must specify a COMMAND" 1>&2 6313ab47cfaaSmrg $echo "$help" 6314ab47cfaaSmrg exit $EXIT_FAILURE 6315ab47cfaaSmrg fi 6316ab47cfaaSmrg 6317ab47cfaaSmrg # Handle -dlopen flags immediately. 6318ab47cfaaSmrg for file in $execute_dlfiles; do 6319ab47cfaaSmrg if test ! -f "$file"; then 6320ab47cfaaSmrg $echo "$modename: \`$file' is not a file" 1>&2 6321ab47cfaaSmrg $echo "$help" 1>&2 6322ab47cfaaSmrg exit $EXIT_FAILURE 6323ab47cfaaSmrg fi 6324ab47cfaaSmrg 6325ab47cfaaSmrg dir= 6326ab47cfaaSmrg case $file in 6327ab47cfaaSmrg *.la) 6328ab47cfaaSmrg # Check to see that this really is a libtool archive. 6329ab47cfaaSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 6330ab47cfaaSmrg else 6331ab47cfaaSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 6332ab47cfaaSmrg $echo "$help" 1>&2 6333ab47cfaaSmrg exit $EXIT_FAILURE 6334ab47cfaaSmrg fi 6335ab47cfaaSmrg 6336ab47cfaaSmrg # Read the libtool library. 6337ab47cfaaSmrg dlname= 6338ab47cfaaSmrg library_names= 6339ab47cfaaSmrg 6340ab47cfaaSmrg # If there is no directory component, then add one. 6341ab47cfaaSmrg case $file in 6342ab47cfaaSmrg */* | *\\*) . $file ;; 6343ab47cfaaSmrg *) . ./$file ;; 6344ab47cfaaSmrg esac 6345ab47cfaaSmrg 6346ab47cfaaSmrg # Skip this library if it cannot be dlopened. 6347ab47cfaaSmrg if test -z "$dlname"; then 6348ab47cfaaSmrg # Warn if it was a shared library. 6349ab47cfaaSmrg test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 6350ab47cfaaSmrg continue 6351ab47cfaaSmrg fi 6352ab47cfaaSmrg 6353ab47cfaaSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6354ab47cfaaSmrg test "X$dir" = "X$file" && dir=. 6355ab47cfaaSmrg 6356ab47cfaaSmrg if test -f "$dir/$objdir/$dlname"; then 6357ab47cfaaSmrg dir="$dir/$objdir" 6358ab47cfaaSmrg else 6359ab47cfaaSmrg $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 6360ab47cfaaSmrg exit $EXIT_FAILURE 6361ab47cfaaSmrg fi 6362ab47cfaaSmrg ;; 6363ab47cfaaSmrg 6364ab47cfaaSmrg *.lo) 6365ab47cfaaSmrg # Just add the directory containing the .lo file. 6366ab47cfaaSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6367ab47cfaaSmrg test "X$dir" = "X$file" && dir=. 6368ab47cfaaSmrg ;; 6369ab47cfaaSmrg 6370ab47cfaaSmrg *) 6371ab47cfaaSmrg $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 6372ab47cfaaSmrg continue 6373ab47cfaaSmrg ;; 6374ab47cfaaSmrg esac 6375ab47cfaaSmrg 6376ab47cfaaSmrg # Get the absolute pathname. 6377ab47cfaaSmrg absdir=`cd "$dir" && pwd` 6378ab47cfaaSmrg test -n "$absdir" && dir="$absdir" 6379ab47cfaaSmrg 6380ab47cfaaSmrg # Now add the directory to shlibpath_var. 6381ab47cfaaSmrg if eval "test -z \"\$$shlibpath_var\""; then 6382ab47cfaaSmrg eval "$shlibpath_var=\"\$dir\"" 6383ab47cfaaSmrg else 6384ab47cfaaSmrg eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 6385ab47cfaaSmrg fi 6386ab47cfaaSmrg done 6387ab47cfaaSmrg 6388ab47cfaaSmrg # This variable tells wrapper scripts just to set shlibpath_var 6389ab47cfaaSmrg # rather than running their programs. 6390ab47cfaaSmrg libtool_execute_magic="$magic" 6391ab47cfaaSmrg 6392ab47cfaaSmrg # Check if any of the arguments is a wrapper script. 6393ab47cfaaSmrg args= 6394ab47cfaaSmrg for file 6395ab47cfaaSmrg do 6396ab47cfaaSmrg case $file in 6397ab47cfaaSmrg -*) ;; 6398ab47cfaaSmrg *) 6399ab47cfaaSmrg # Do a test to see if this is really a libtool program. 6400ab47cfaaSmrg if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6401ab47cfaaSmrg # If there is no directory component, then add one. 6402ab47cfaaSmrg case $file in 6403ab47cfaaSmrg */* | *\\*) . $file ;; 6404ab47cfaaSmrg *) . ./$file ;; 6405ab47cfaaSmrg esac 6406ab47cfaaSmrg 6407ab47cfaaSmrg # Transform arg to wrapped name. 6408ab47cfaaSmrg file="$progdir/$program" 6409ab47cfaaSmrg fi 6410ab47cfaaSmrg ;; 6411ab47cfaaSmrg esac 6412ab47cfaaSmrg # Quote arguments (to preserve shell metacharacters). 6413ab47cfaaSmrg file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 6414ab47cfaaSmrg args="$args \"$file\"" 6415ab47cfaaSmrg done 6416ab47cfaaSmrg 6417ab47cfaaSmrg if test -z "$run"; then 6418ab47cfaaSmrg if test -n "$shlibpath_var"; then 6419ab47cfaaSmrg # Export the shlibpath_var. 6420ab47cfaaSmrg eval "export $shlibpath_var" 6421ab47cfaaSmrg fi 6422ab47cfaaSmrg 6423ab47cfaaSmrg # Restore saved environment variables 6424ab47cfaaSmrg if test "${save_LC_ALL+set}" = set; then 6425ab47cfaaSmrg LC_ALL="$save_LC_ALL"; export LC_ALL 6426ab47cfaaSmrg fi 6427ab47cfaaSmrg if test "${save_LANG+set}" = set; then 6428ab47cfaaSmrg LANG="$save_LANG"; export LANG 6429ab47cfaaSmrg fi 6430ab47cfaaSmrg 6431ab47cfaaSmrg # Now prepare to actually exec the command. 6432ab47cfaaSmrg exec_cmd="\$cmd$args" 6433ab47cfaaSmrg else 6434ab47cfaaSmrg # Display what would be done. 6435ab47cfaaSmrg if test -n "$shlibpath_var"; then 6436ab47cfaaSmrg eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 6437ab47cfaaSmrg $echo "export $shlibpath_var" 6438ab47cfaaSmrg fi 6439ab47cfaaSmrg $echo "$cmd$args" 6440ab47cfaaSmrg exit $EXIT_SUCCESS 6441ab47cfaaSmrg fi 6442ab47cfaaSmrg ;; 6443ab47cfaaSmrg 6444ab47cfaaSmrg # libtool clean and uninstall mode 6445ab47cfaaSmrg clean | uninstall) 6446ab47cfaaSmrg modename="$modename: $mode" 6447ab47cfaaSmrg rm="$nonopt" 6448ab47cfaaSmrg files= 6449ab47cfaaSmrg rmforce= 6450ab47cfaaSmrg exit_status=0 6451ab47cfaaSmrg 6452ab47cfaaSmrg # This variable tells wrapper scripts just to set variables rather 6453ab47cfaaSmrg # than running their programs. 6454ab47cfaaSmrg libtool_install_magic="$magic" 6455ab47cfaaSmrg 6456ab47cfaaSmrg for arg 6457ab47cfaaSmrg do 6458ab47cfaaSmrg case $arg in 6459ab47cfaaSmrg -f) rm="$rm $arg"; rmforce=yes ;; 6460ab47cfaaSmrg -*) rm="$rm $arg" ;; 6461ab47cfaaSmrg *) files="$files $arg" ;; 6462ab47cfaaSmrg esac 6463ab47cfaaSmrg done 6464ab47cfaaSmrg 6465ab47cfaaSmrg if test -z "$rm"; then 6466ab47cfaaSmrg $echo "$modename: you must specify an RM program" 1>&2 6467ab47cfaaSmrg $echo "$help" 1>&2 6468ab47cfaaSmrg exit $EXIT_FAILURE 6469ab47cfaaSmrg fi 6470ab47cfaaSmrg 6471ab47cfaaSmrg rmdirs= 6472ab47cfaaSmrg 6473ab47cfaaSmrg origobjdir="$objdir" 6474ab47cfaaSmrg for file in $files; do 6475ab47cfaaSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6476ab47cfaaSmrg if test "X$dir" = "X$file"; then 6477ab47cfaaSmrg dir=. 6478ab47cfaaSmrg objdir="$origobjdir" 6479ab47cfaaSmrg else 6480ab47cfaaSmrg objdir="$dir/$origobjdir" 6481ab47cfaaSmrg fi 6482ab47cfaaSmrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6483ab47cfaaSmrg test "$mode" = uninstall && objdir="$dir" 6484ab47cfaaSmrg 6485ab47cfaaSmrg # Remember objdir for removal later, being careful to avoid duplicates 6486ab47cfaaSmrg if test "$mode" = clean; then 6487ab47cfaaSmrg case " $rmdirs " in 6488ab47cfaaSmrg *" $objdir "*) ;; 6489ab47cfaaSmrg *) rmdirs="$rmdirs $objdir" ;; 6490ab47cfaaSmrg esac 6491ab47cfaaSmrg fi 6492ab47cfaaSmrg 6493ab47cfaaSmrg # Don't error if the file doesn't exist and rm -f was used. 6494ab47cfaaSmrg if (test -L "$file") >/dev/null 2>&1 \ 6495ab47cfaaSmrg || (test -h "$file") >/dev/null 2>&1 \ 6496ab47cfaaSmrg || test -f "$file"; then 6497ab47cfaaSmrg : 6498ab47cfaaSmrg elif test -d "$file"; then 6499ab47cfaaSmrg exit_status=1 6500ab47cfaaSmrg continue 6501ab47cfaaSmrg elif test "$rmforce" = yes; then 6502ab47cfaaSmrg continue 6503ab47cfaaSmrg fi 6504ab47cfaaSmrg 6505ab47cfaaSmrg rmfiles="$file" 6506ab47cfaaSmrg 6507ab47cfaaSmrg case $name in 6508ab47cfaaSmrg *.la) 6509ab47cfaaSmrg # Possibly a libtool archive, so verify it. 6510ab47cfaaSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6511ab47cfaaSmrg . $dir/$name 6512ab47cfaaSmrg 6513ab47cfaaSmrg # Delete the libtool libraries and symlinks. 6514ab47cfaaSmrg for n in $library_names; do 6515ab47cfaaSmrg rmfiles="$rmfiles $objdir/$n" 6516ab47cfaaSmrg done 6517ab47cfaaSmrg test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 6518ab47cfaaSmrg 6519ab47cfaaSmrg case "$mode" in 6520ab47cfaaSmrg clean) 6521ab47cfaaSmrg case " $library_names " in 6522ab47cfaaSmrg # " " in the beginning catches empty $dlname 6523ab47cfaaSmrg *" $dlname "*) ;; 6524ab47cfaaSmrg *) rmfiles="$rmfiles $objdir/$dlname" ;; 6525ab47cfaaSmrg esac 6526ab47cfaaSmrg test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 6527ab47cfaaSmrg ;; 6528ab47cfaaSmrg uninstall) 6529ab47cfaaSmrg if test -n "$library_names"; then 6530ab47cfaaSmrg # Do each command in the postuninstall commands. 6531ab47cfaaSmrg cmds=$postuninstall_cmds 6532ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 6533ab47cfaaSmrg for cmd in $cmds; do 6534ab47cfaaSmrg IFS="$save_ifs" 6535ab47cfaaSmrg eval cmd=\"$cmd\" 6536ab47cfaaSmrg $show "$cmd" 6537ab47cfaaSmrg $run eval "$cmd" 6538ab47cfaaSmrg if test "$?" -ne 0 && test "$rmforce" != yes; then 6539ab47cfaaSmrg exit_status=1 6540ab47cfaaSmrg fi 6541ab47cfaaSmrg done 6542ab47cfaaSmrg IFS="$save_ifs" 6543ab47cfaaSmrg fi 6544ab47cfaaSmrg 6545ab47cfaaSmrg if test -n "$old_library"; then 6546ab47cfaaSmrg # Do each command in the old_postuninstall commands. 6547ab47cfaaSmrg cmds=$old_postuninstall_cmds 6548ab47cfaaSmrg save_ifs="$IFS"; IFS='~' 6549ab47cfaaSmrg for cmd in $cmds; do 6550ab47cfaaSmrg IFS="$save_ifs" 6551ab47cfaaSmrg eval cmd=\"$cmd\" 6552ab47cfaaSmrg $show "$cmd" 6553ab47cfaaSmrg $run eval "$cmd" 6554ab47cfaaSmrg if test "$?" -ne 0 && test "$rmforce" != yes; then 6555ab47cfaaSmrg exit_status=1 6556ab47cfaaSmrg fi 6557ab47cfaaSmrg done 6558ab47cfaaSmrg IFS="$save_ifs" 6559ab47cfaaSmrg fi 6560ab47cfaaSmrg # FIXME: should reinstall the best remaining shared library. 6561ab47cfaaSmrg ;; 6562ab47cfaaSmrg esac 6563ab47cfaaSmrg fi 6564ab47cfaaSmrg ;; 6565ab47cfaaSmrg 6566ab47cfaaSmrg *.lo) 6567ab47cfaaSmrg # Possibly a libtool object, so verify it. 6568ab47cfaaSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6569ab47cfaaSmrg 6570ab47cfaaSmrg # Read the .lo file 6571ab47cfaaSmrg . $dir/$name 6572ab47cfaaSmrg 6573ab47cfaaSmrg # Add PIC object to the list of files to remove. 6574ab47cfaaSmrg if test -n "$pic_object" \ 6575ab47cfaaSmrg && test "$pic_object" != none; then 6576ab47cfaaSmrg rmfiles="$rmfiles $dir/$pic_object" 6577ab47cfaaSmrg fi 6578ab47cfaaSmrg 6579ab47cfaaSmrg # Add non-PIC object to the list of files to remove. 6580ab47cfaaSmrg if test -n "$non_pic_object" \ 6581ab47cfaaSmrg && test "$non_pic_object" != none; then 6582ab47cfaaSmrg rmfiles="$rmfiles $dir/$non_pic_object" 6583ab47cfaaSmrg fi 6584ab47cfaaSmrg fi 6585ab47cfaaSmrg ;; 6586ab47cfaaSmrg 6587ab47cfaaSmrg *) 6588ab47cfaaSmrg if test "$mode" = clean ; then 6589ab47cfaaSmrg noexename=$name 6590ab47cfaaSmrg case $file in 6591ab47cfaaSmrg *.exe) 6592ab47cfaaSmrg file=`$echo $file|${SED} 's,.exe$,,'` 6593ab47cfaaSmrg noexename=`$echo $name|${SED} 's,.exe$,,'` 6594ab47cfaaSmrg # $file with .exe has already been added to rmfiles, 6595ab47cfaaSmrg # add $file without .exe 6596ab47cfaaSmrg rmfiles="$rmfiles $file" 6597ab47cfaaSmrg ;; 6598ab47cfaaSmrg esac 6599ab47cfaaSmrg # Do a test to see if this is a libtool program. 6600ab47cfaaSmrg if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6601ab47cfaaSmrg relink_command= 6602ab47cfaaSmrg . $dir/$noexename 6603ab47cfaaSmrg 6604ab47cfaaSmrg # note $name still contains .exe if it was in $file originally 6605ab47cfaaSmrg # as does the version of $file that was added into $rmfiles 6606ab47cfaaSmrg rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 6607ab47cfaaSmrg if test "$fast_install" = yes && test -n "$relink_command"; then 6608ab47cfaaSmrg rmfiles="$rmfiles $objdir/lt-$name" 6609ab47cfaaSmrg fi 6610ab47cfaaSmrg if test "X$noexename" != "X$name" ; then 6611ab47cfaaSmrg rmfiles="$rmfiles $objdir/lt-${noexename}.c" 6612ab47cfaaSmrg fi 6613ab47cfaaSmrg fi 6614ab47cfaaSmrg fi 6615ab47cfaaSmrg ;; 6616ab47cfaaSmrg esac 6617ab47cfaaSmrg $show "$rm $rmfiles" 6618ab47cfaaSmrg $run $rm $rmfiles || exit_status=1 6619ab47cfaaSmrg done 6620ab47cfaaSmrg objdir="$origobjdir" 6621ab47cfaaSmrg 6622ab47cfaaSmrg # Try to remove the ${objdir}s in the directories where we deleted files 6623ab47cfaaSmrg for dir in $rmdirs; do 6624ab47cfaaSmrg if test -d "$dir"; then 6625ab47cfaaSmrg $show "rmdir $dir" 6626ab47cfaaSmrg $run rmdir $dir >/dev/null 2>&1 6627ab47cfaaSmrg fi 6628ab47cfaaSmrg done 6629ab47cfaaSmrg 6630ab47cfaaSmrg exit $exit_status 6631ab47cfaaSmrg ;; 6632ab47cfaaSmrg 6633ab47cfaaSmrg "") 6634ab47cfaaSmrg $echo "$modename: you must specify a MODE" 1>&2 6635ab47cfaaSmrg $echo "$generic_help" 1>&2 6636ab47cfaaSmrg exit $EXIT_FAILURE 6637ab47cfaaSmrg ;; 6638ab47cfaaSmrg esac 6639ab47cfaaSmrg 6640ab47cfaaSmrg if test -z "$exec_cmd"; then 6641ab47cfaaSmrg $echo "$modename: invalid operation mode \`$mode'" 1>&2 6642ab47cfaaSmrg $echo "$generic_help" 1>&2 6643ab47cfaaSmrg exit $EXIT_FAILURE 6644ab47cfaaSmrg fi 6645ab47cfaaSmrgfi # test -z "$show_help" 6646ab47cfaaSmrg 6647ab47cfaaSmrgif test -n "$exec_cmd"; then 6648ab47cfaaSmrg eval exec $exec_cmd 6649ab47cfaaSmrg exit $EXIT_FAILURE 6650ab47cfaaSmrgfi 6651ab47cfaaSmrg 6652ab47cfaaSmrg# We need to display help for each of the modes. 6653ab47cfaaSmrgcase $mode in 6654ab47cfaaSmrg"") $echo \ 6655ab47cfaaSmrg"Usage: $modename [OPTION]... [MODE-ARG]... 6656ab47cfaaSmrg 6657ab47cfaaSmrgProvide generalized library-building support services. 6658ab47cfaaSmrg 6659ab47cfaaSmrg --config show all configuration variables 6660ab47cfaaSmrg --debug enable verbose shell tracing 6661ab47cfaaSmrg-n, --dry-run display commands without modifying any files 6662ab47cfaaSmrg --features display basic configuration information and exit 6663ab47cfaaSmrg --finish same as \`--mode=finish' 6664ab47cfaaSmrg --help display this help message and exit 6665ab47cfaaSmrg --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 6666ab47cfaaSmrg --quiet same as \`--silent' 6667ab47cfaaSmrg --silent don't print informational messages 6668ab47cfaaSmrg --tag=TAG use configuration variables from tag TAG 6669ab47cfaaSmrg --version print version information 6670ab47cfaaSmrg 6671ab47cfaaSmrgMODE must be one of the following: 6672ab47cfaaSmrg 6673ab47cfaaSmrg clean remove files from the build directory 6674ab47cfaaSmrg compile compile a source file into a libtool object 6675ab47cfaaSmrg execute automatically set library path, then run a program 6676ab47cfaaSmrg finish complete the installation of libtool libraries 6677ab47cfaaSmrg install install libraries or executables 6678ab47cfaaSmrg link create a library or an executable 6679ab47cfaaSmrg uninstall remove libraries from an installed directory 6680ab47cfaaSmrg 6681ab47cfaaSmrgMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 6682ab47cfaaSmrga more detailed description of MODE. 6683ab47cfaaSmrg 6684ab47cfaaSmrgReport bugs to <bug-libtool@gnu.org>." 6685ab47cfaaSmrg exit $EXIT_SUCCESS 6686ab47cfaaSmrg ;; 6687ab47cfaaSmrg 6688ab47cfaaSmrgclean) 6689ab47cfaaSmrg $echo \ 6690ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 6691ab47cfaaSmrg 6692ab47cfaaSmrgRemove files from the build directory. 6693ab47cfaaSmrg 6694ab47cfaaSmrgRM is the name of the program to use to delete files associated with each FILE 6695ab47cfaaSmrg(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6696ab47cfaaSmrgto RM. 6697ab47cfaaSmrg 6698ab47cfaaSmrgIf FILE is a libtool library, object or program, all the files associated 6699ab47cfaaSmrgwith it are deleted. Otherwise, only FILE itself is deleted using RM." 6700ab47cfaaSmrg ;; 6701ab47cfaaSmrg 6702ab47cfaaSmrgcompile) 6703ab47cfaaSmrg $echo \ 6704ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 6705ab47cfaaSmrg 6706ab47cfaaSmrgCompile a source file into a libtool library object. 6707ab47cfaaSmrg 6708ab47cfaaSmrgThis mode accepts the following additional options: 6709ab47cfaaSmrg 6710ab47cfaaSmrg -o OUTPUT-FILE set the output file name to OUTPUT-FILE 6711ab47cfaaSmrg -prefer-pic try to building PIC objects only 6712ab47cfaaSmrg -prefer-non-pic try to building non-PIC objects only 6713ab47cfaaSmrg -static always build a \`.o' file suitable for static linking 6714ab47cfaaSmrg 6715ab47cfaaSmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 6716ab47cfaaSmrgfrom the given SOURCEFILE. 6717ab47cfaaSmrg 6718ab47cfaaSmrgThe output file name is determined by removing the directory component from 6719ab47cfaaSmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the 6720ab47cfaaSmrglibrary object suffix, \`.lo'." 6721ab47cfaaSmrg ;; 6722ab47cfaaSmrg 6723ab47cfaaSmrgexecute) 6724ab47cfaaSmrg $echo \ 6725ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 6726ab47cfaaSmrg 6727ab47cfaaSmrgAutomatically set library path, then run a program. 6728ab47cfaaSmrg 6729ab47cfaaSmrgThis mode accepts the following additional options: 6730ab47cfaaSmrg 6731ab47cfaaSmrg -dlopen FILE add the directory containing FILE to the library path 6732ab47cfaaSmrg 6733ab47cfaaSmrgThis mode sets the library path environment variable according to \`-dlopen' 6734ab47cfaaSmrgflags. 6735ab47cfaaSmrg 6736ab47cfaaSmrgIf any of the ARGS are libtool executable wrappers, then they are translated 6737ab47cfaaSmrginto their corresponding uninstalled binary, and any of their required library 6738ab47cfaaSmrgdirectories are added to the library path. 6739ab47cfaaSmrg 6740ab47cfaaSmrgThen, COMMAND is executed, with ARGS as arguments." 6741ab47cfaaSmrg ;; 6742ab47cfaaSmrg 6743ab47cfaaSmrgfinish) 6744ab47cfaaSmrg $echo \ 6745ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 6746ab47cfaaSmrg 6747ab47cfaaSmrgComplete the installation of libtool libraries. 6748ab47cfaaSmrg 6749ab47cfaaSmrgEach LIBDIR is a directory that contains libtool libraries. 6750ab47cfaaSmrg 6751ab47cfaaSmrgThe commands that this mode executes may require superuser privileges. Use 6752ab47cfaaSmrgthe \`--dry-run' option if you just want to see what would be executed." 6753ab47cfaaSmrg ;; 6754ab47cfaaSmrg 6755ab47cfaaSmrginstall) 6756ab47cfaaSmrg $echo \ 6757ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 6758ab47cfaaSmrg 6759ab47cfaaSmrgInstall executables or libraries. 6760ab47cfaaSmrg 6761ab47cfaaSmrgINSTALL-COMMAND is the installation command. The first component should be 6762ab47cfaaSmrgeither the \`install' or \`cp' program. 6763ab47cfaaSmrg 6764ab47cfaaSmrgThe rest of the components are interpreted as arguments to that command (only 6765ab47cfaaSmrgBSD-compatible install options are recognized)." 6766ab47cfaaSmrg ;; 6767ab47cfaaSmrg 6768ab47cfaaSmrglink) 6769ab47cfaaSmrg $echo \ 6770ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 6771ab47cfaaSmrg 6772ab47cfaaSmrgLink object files or libraries together to form another library, or to 6773ab47cfaaSmrgcreate an executable program. 6774ab47cfaaSmrg 6775ab47cfaaSmrgLINK-COMMAND is a command using the C compiler that you would use to create 6776ab47cfaaSmrga program from several object files. 6777ab47cfaaSmrg 6778ab47cfaaSmrgThe following components of LINK-COMMAND are treated specially: 6779ab47cfaaSmrg 6780ab47cfaaSmrg -all-static do not do any dynamic linking at all 6781ab47cfaaSmrg -avoid-version do not add a version suffix if possible 6782ab47cfaaSmrg -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 6783ab47cfaaSmrg -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 6784ab47cfaaSmrg -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 6785ab47cfaaSmrg -export-symbols SYMFILE 6786ab47cfaaSmrg try to export only the symbols listed in SYMFILE 6787ab47cfaaSmrg -export-symbols-regex REGEX 6788ab47cfaaSmrg try to export only the symbols matching REGEX 6789ab47cfaaSmrg -LLIBDIR search LIBDIR for required installed libraries 6790ab47cfaaSmrg -lNAME OUTPUT-FILE requires the installed library libNAME 6791ab47cfaaSmrg -module build a library that can dlopened 6792ab47cfaaSmrg -no-fast-install disable the fast-install mode 6793ab47cfaaSmrg -no-install link a not-installable executable 6794ab47cfaaSmrg -no-undefined declare that a library does not refer to external symbols 6795ab47cfaaSmrg -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 6796ab47cfaaSmrg -objectlist FILE Use a list of object files found in FILE to specify objects 6797ab47cfaaSmrg -precious-files-regex REGEX 6798ab47cfaaSmrg don't remove output files matching REGEX 6799ab47cfaaSmrg -release RELEASE specify package release information 6800ab47cfaaSmrg -rpath LIBDIR the created library will eventually be installed in LIBDIR 6801ab47cfaaSmrg -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 6802ab47cfaaSmrg -static do not do any dynamic linking of libtool libraries 6803ab47cfaaSmrg -version-info CURRENT[:REVISION[:AGE]] 6804ab47cfaaSmrg specify library version info [each variable defaults to 0] 6805ab47cfaaSmrg 6806ab47cfaaSmrgAll other options (arguments beginning with \`-') are ignored. 6807ab47cfaaSmrg 6808ab47cfaaSmrgEvery other argument is treated as a filename. Files ending in \`.la' are 6809ab47cfaaSmrgtreated as uninstalled libtool libraries, other files are standard or library 6810ab47cfaaSmrgobject files. 6811ab47cfaaSmrg 6812ab47cfaaSmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 6813ab47cfaaSmrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is 6814ab47cfaaSmrgrequired, except when creating a convenience library. 6815ab47cfaaSmrg 6816ab47cfaaSmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 6817ab47cfaaSmrgusing \`ar' and \`ranlib', or on Windows using \`lib'. 6818ab47cfaaSmrg 6819ab47cfaaSmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 6820ab47cfaaSmrgis created, otherwise an executable program is created." 6821ab47cfaaSmrg ;; 6822ab47cfaaSmrg 6823ab47cfaaSmrguninstall) 6824ab47cfaaSmrg $echo \ 6825ab47cfaaSmrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 6826ab47cfaaSmrg 6827ab47cfaaSmrgRemove libraries from an installation directory. 6828ab47cfaaSmrg 6829ab47cfaaSmrgRM is the name of the program to use to delete files associated with each FILE 6830ab47cfaaSmrg(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6831ab47cfaaSmrgto RM. 6832ab47cfaaSmrg 6833ab47cfaaSmrgIf FILE is a libtool library, all the files associated with it are deleted. 6834ab47cfaaSmrgOtherwise, only FILE itself is deleted using RM." 6835ab47cfaaSmrg ;; 6836ab47cfaaSmrg 6837ab47cfaaSmrg*) 6838ab47cfaaSmrg $echo "$modename: invalid operation mode \`$mode'" 1>&2 6839ab47cfaaSmrg $echo "$help" 1>&2 6840ab47cfaaSmrg exit $EXIT_FAILURE 6841ab47cfaaSmrg ;; 6842ab47cfaaSmrgesac 6843ab47cfaaSmrg 6844ab47cfaaSmrg$echo 6845ab47cfaaSmrg$echo "Try \`$modename --help' for more information about other modes." 6846ab47cfaaSmrg 6847ab47cfaaSmrgexit $? 6848ab47cfaaSmrg 6849ab47cfaaSmrg# The TAGs below are defined such that we never get into a situation 6850ab47cfaaSmrg# in which we disable both kinds of libraries. Given conflicting 6851ab47cfaaSmrg# choices, we go for a static library, that is the most portable, 6852ab47cfaaSmrg# since we can't tell whether shared libraries were disabled because 6853ab47cfaaSmrg# the user asked for that or because the platform doesn't support 6854ab47cfaaSmrg# them. This is particularly important on AIX, because we don't 6855ab47cfaaSmrg# support having both static and shared libraries enabled at the same 6856ab47cfaaSmrg# time on that platform, so we default to a shared-only configuration. 6857ab47cfaaSmrg# If a disable-shared tag is given, we'll fallback to a static-only 6858ab47cfaaSmrg# configuration. But we'll never go from static-only to shared-only. 6859ab47cfaaSmrg 6860ab47cfaaSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 6861ab47cfaaSmrgdisable_libs=shared 6862ab47cfaaSmrg# ### END LIBTOOL TAG CONFIG: disable-shared 6863ab47cfaaSmrg 6864ab47cfaaSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static 6865ab47cfaaSmrgdisable_libs=static 6866ab47cfaaSmrg# ### END LIBTOOL TAG CONFIG: disable-static 6867ab47cfaaSmrg 6868ab47cfaaSmrg# Local Variables: 6869ab47cfaaSmrg# mode:shell-script 6870ab47cfaaSmrg# sh-indentation:2 6871ab47cfaaSmrg# End: 6872