ltmain.sh revision 266e564d
1266e564dSmrg# ltmain.sh - Provide generalized library-building support services. 2266e564dSmrg# NOTE: Changing this file will not affect anything until you rerun configure. 3266e564dSmrg# 4266e564dSmrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 5266e564dSmrg# Free Software Foundation, Inc. 6266e564dSmrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 7266e564dSmrg# 8266e564dSmrg# This program is free software; you can redistribute it and/or modify 9266e564dSmrg# it under the terms of the GNU General Public License as published by 10266e564dSmrg# the Free Software Foundation; either version 2 of the License, or 11266e564dSmrg# (at your option) any later version. 12266e564dSmrg# 13266e564dSmrg# This program is distributed in the hope that it will be useful, but 14266e564dSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of 15266e564dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16266e564dSmrg# General Public License for more details. 17266e564dSmrg# 18266e564dSmrg# You should have received a copy of the GNU General Public License 19266e564dSmrg# along with this program; if not, write to the Free Software 20266e564dSmrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21266e564dSmrg# 22266e564dSmrg# As a special exception to the GNU General Public License, if you 23266e564dSmrg# distribute this file as part of a program that contains a 24266e564dSmrg# configuration script generated by Autoconf, you may include it under 25266e564dSmrg# the same distribution terms that you use for the rest of that program. 26266e564dSmrg 27266e564dSmrgbasename="s,^.*/,,g" 28266e564dSmrg 29266e564dSmrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 30266e564dSmrg# is ksh but when the shell is invoked as "sh" and the current value of 31266e564dSmrg# the _XPG environment variable is not equal to 1 (one), the special 32266e564dSmrg# positional parameter $0, within a function call, is the name of the 33266e564dSmrg# function. 34266e564dSmrgprogpath="$0" 35266e564dSmrg 36266e564dSmrg# The name of this program: 37266e564dSmrgprogname=`echo "$progpath" | $SED $basename` 38266e564dSmrgmodename="$progname" 39266e564dSmrg 40266e564dSmrg# Global variables: 41266e564dSmrgEXIT_SUCCESS=0 42266e564dSmrgEXIT_FAILURE=1 43266e564dSmrg 44266e564dSmrgPROGRAM=ltmain.sh 45266e564dSmrgPACKAGE=libtool 46266e564dSmrgVERSION=1.5.22 47266e564dSmrgTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" 48266e564dSmrg 49266e564dSmrg# See if we are running on zsh, and set the options which allow our 50266e564dSmrg# commands through without removal of \ escapes. 51266e564dSmrgif test -n "${ZSH_VERSION+set}" ; then 52266e564dSmrg setopt NO_GLOB_SUBST 53266e564dSmrgfi 54266e564dSmrg 55266e564dSmrg# Check that we have a working $echo. 56266e564dSmrgif test "X$1" = X--no-reexec; then 57266e564dSmrg # Discard the --no-reexec flag, and continue. 58266e564dSmrg shift 59266e564dSmrgelif test "X$1" = X--fallback-echo; then 60266e564dSmrg # Avoid inline document here, it may be left over 61266e564dSmrg : 62266e564dSmrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 63266e564dSmrg # Yippee, $echo works! 64266e564dSmrg : 65266e564dSmrgelse 66266e564dSmrg # Restart under the correct shell, and then maybe $echo will work. 67266e564dSmrg exec $SHELL "$progpath" --no-reexec ${1+"$@"} 68266e564dSmrgfi 69266e564dSmrg 70266e564dSmrgif test "X$1" = X--fallback-echo; then 71266e564dSmrg # used as fallback echo 72266e564dSmrg shift 73266e564dSmrg cat <<EOF 74266e564dSmrg$* 75266e564dSmrgEOF 76266e564dSmrg exit $EXIT_SUCCESS 77266e564dSmrgfi 78266e564dSmrg 79266e564dSmrgdefault_mode= 80266e564dSmrghelp="Try \`$progname --help' for more information." 81266e564dSmrgmagic="%%%MAGIC variable%%%" 82266e564dSmrgmkdir="mkdir" 83266e564dSmrgmv="mv -f" 84266e564dSmrgrm="rm -f" 85266e564dSmrg 86266e564dSmrg# Sed substitution that helps us do robust quoting. It backslashifies 87266e564dSmrg# metacharacters that are still active within double-quoted strings. 88266e564dSmrgXsed="${SED}"' -e 1s/^X//' 89266e564dSmrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 90266e564dSmrg# test EBCDIC or ASCII 91266e564dSmrgcase `echo X|tr X '\101'` in 92266e564dSmrg A) # ASCII based system 93266e564dSmrg # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 94266e564dSmrg SP2NL='tr \040 \012' 95266e564dSmrg NL2SP='tr \015\012 \040\040' 96266e564dSmrg ;; 97266e564dSmrg *) # EBCDIC based system 98266e564dSmrg SP2NL='tr \100 \n' 99266e564dSmrg NL2SP='tr \r\n \100\100' 100266e564dSmrg ;; 101266e564dSmrgesac 102266e564dSmrg 103266e564dSmrg# NLS nuisances. 104266e564dSmrg# Only set LANG and LC_ALL to C if already set. 105266e564dSmrg# These must not be set unconditionally because not all systems understand 106266e564dSmrg# e.g. LANG=C (notably SCO). 107266e564dSmrg# We save the old values to restore during execute mode. 108266e564dSmrgif test "${LC_ALL+set}" = set; then 109266e564dSmrg save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL 110266e564dSmrgfi 111266e564dSmrgif test "${LANG+set}" = set; then 112266e564dSmrg save_LANG="$LANG"; LANG=C; export LANG 113266e564dSmrgfi 114266e564dSmrg 115266e564dSmrg# Make sure IFS has a sensible default 116266e564dSmrglt_nl=' 117266e564dSmrg' 118266e564dSmrgIFS=" $lt_nl" 119266e564dSmrg 120266e564dSmrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 121266e564dSmrg $echo "$modename: not configured to build any kind of library" 1>&2 122266e564dSmrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 123266e564dSmrg exit $EXIT_FAILURE 124266e564dSmrgfi 125266e564dSmrg 126266e564dSmrg# Global variables. 127266e564dSmrgmode=$default_mode 128266e564dSmrgnonopt= 129266e564dSmrgprev= 130266e564dSmrgprevopt= 131266e564dSmrgrun= 132266e564dSmrgshow="$echo" 133266e564dSmrgshow_help= 134266e564dSmrgexecute_dlfiles= 135266e564dSmrgduplicate_deps=no 136266e564dSmrgpreserve_args= 137266e564dSmrglo2o="s/\\.lo\$/.${objext}/" 138266e564dSmrgo2lo="s/\\.${objext}\$/.lo/" 139266e564dSmrg 140266e564dSmrg##################################### 141266e564dSmrg# Shell function definitions: 142266e564dSmrg# This seems to be the best place for them 143266e564dSmrg 144266e564dSmrg# func_mktempdir [string] 145266e564dSmrg# Make a temporary directory that won't clash with other running 146266e564dSmrg# libtool processes, and avoids race conditions if possible. If 147266e564dSmrg# given, STRING is the basename for that directory. 148266e564dSmrgfunc_mktempdir () 149266e564dSmrg{ 150266e564dSmrg my_template="${TMPDIR-/tmp}/${1-$progname}" 151266e564dSmrg 152266e564dSmrg if test "$run" = ":"; then 153266e564dSmrg # Return a directory name, but don't create it in dry-run mode 154266e564dSmrg my_tmpdir="${my_template}-$$" 155266e564dSmrg else 156266e564dSmrg 157266e564dSmrg # If mktemp works, use that first and foremost 158266e564dSmrg my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 159266e564dSmrg 160266e564dSmrg if test ! -d "$my_tmpdir"; then 161266e564dSmrg # Failing that, at least try and use $RANDOM to avoid a race 162266e564dSmrg my_tmpdir="${my_template}-${RANDOM-0}$$" 163266e564dSmrg 164266e564dSmrg save_mktempdir_umask=`umask` 165266e564dSmrg umask 0077 166266e564dSmrg $mkdir "$my_tmpdir" 167266e564dSmrg umask $save_mktempdir_umask 168266e564dSmrg fi 169266e564dSmrg 170266e564dSmrg # If we're not in dry-run mode, bomb out on failure 171266e564dSmrg test -d "$my_tmpdir" || { 172266e564dSmrg $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 173266e564dSmrg exit $EXIT_FAILURE 174266e564dSmrg } 175266e564dSmrg fi 176266e564dSmrg 177266e564dSmrg $echo "X$my_tmpdir" | $Xsed 178266e564dSmrg} 179266e564dSmrg 180266e564dSmrg 181266e564dSmrg# func_win32_libid arg 182266e564dSmrg# return the library type of file 'arg' 183266e564dSmrg# 184266e564dSmrg# Need a lot of goo to handle *both* DLLs and import libs 185266e564dSmrg# Has to be a shell function in order to 'eat' the argument 186266e564dSmrg# that is supplied when $file_magic_command is called. 187266e564dSmrgfunc_win32_libid () 188266e564dSmrg{ 189266e564dSmrg win32_libid_type="unknown" 190266e564dSmrg win32_fileres=`file -L $1 2>/dev/null` 191266e564dSmrg case $win32_fileres in 192266e564dSmrg *ar\ archive\ import\ library*) # definitely import 193266e564dSmrg win32_libid_type="x86 archive import" 194266e564dSmrg ;; 195266e564dSmrg *ar\ archive*) # could be an import, or static 196266e564dSmrg if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 197266e564dSmrg $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 198266e564dSmrg win32_nmres=`eval $NM -f posix -A $1 | \ 199266e564dSmrg $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` 200266e564dSmrg case $win32_nmres in 201266e564dSmrg import*) win32_libid_type="x86 archive import";; 202266e564dSmrg *) win32_libid_type="x86 archive static";; 203266e564dSmrg esac 204266e564dSmrg fi 205266e564dSmrg ;; 206266e564dSmrg *DLL*) 207266e564dSmrg win32_libid_type="x86 DLL" 208266e564dSmrg ;; 209266e564dSmrg *executable*) # but shell scripts are "executable" too... 210266e564dSmrg case $win32_fileres in 211266e564dSmrg *MS\ Windows\ PE\ Intel*) 212266e564dSmrg win32_libid_type="x86 DLL" 213266e564dSmrg ;; 214266e564dSmrg esac 215266e564dSmrg ;; 216266e564dSmrg esac 217266e564dSmrg $echo $win32_libid_type 218266e564dSmrg} 219266e564dSmrg 220266e564dSmrg 221266e564dSmrg# func_infer_tag arg 222266e564dSmrg# Infer tagged configuration to use if any are available and 223266e564dSmrg# if one wasn't chosen via the "--tag" command line option. 224266e564dSmrg# Only attempt this if the compiler in the base compile 225266e564dSmrg# command doesn't match the default compiler. 226266e564dSmrg# arg is usually of the form 'gcc ...' 227266e564dSmrgfunc_infer_tag () 228266e564dSmrg{ 229266e564dSmrg if test -n "$available_tags" && test -z "$tagname"; then 230266e564dSmrg CC_quoted= 231266e564dSmrg for arg in $CC; do 232266e564dSmrg case $arg in 233266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 234266e564dSmrg arg="\"$arg\"" 235266e564dSmrg ;; 236266e564dSmrg esac 237266e564dSmrg CC_quoted="$CC_quoted $arg" 238266e564dSmrg done 239266e564dSmrg case $@ in 240266e564dSmrg # Blanks in the command may have been stripped by the calling shell, 241266e564dSmrg # but not from the CC environment variable when configure was run. 242266e564dSmrg " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 243266e564dSmrg # Blanks at the start of $base_compile will cause this to fail 244266e564dSmrg # if we don't check for them as well. 245266e564dSmrg *) 246266e564dSmrg for z in $available_tags; do 247266e564dSmrg if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 248266e564dSmrg # Evaluate the configuration. 249266e564dSmrg eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 250266e564dSmrg CC_quoted= 251266e564dSmrg for arg in $CC; do 252266e564dSmrg # Double-quote args containing other shell metacharacters. 253266e564dSmrg case $arg in 254266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 255266e564dSmrg arg="\"$arg\"" 256266e564dSmrg ;; 257266e564dSmrg esac 258266e564dSmrg CC_quoted="$CC_quoted $arg" 259266e564dSmrg done 260266e564dSmrg case "$@ " in 261266e564dSmrg " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 262266e564dSmrg # The compiler in the base compile command matches 263266e564dSmrg # the one in the tagged configuration. 264266e564dSmrg # Assume this is the tagged configuration we want. 265266e564dSmrg tagname=$z 266266e564dSmrg break 267266e564dSmrg ;; 268266e564dSmrg esac 269266e564dSmrg fi 270266e564dSmrg done 271266e564dSmrg # If $tagname still isn't set, then no tagged configuration 272266e564dSmrg # was found and let the user know that the "--tag" command 273266e564dSmrg # line option must be used. 274266e564dSmrg if test -z "$tagname"; then 275266e564dSmrg $echo "$modename: unable to infer tagged configuration" 276266e564dSmrg $echo "$modename: specify a tag with \`--tag'" 1>&2 277266e564dSmrg exit $EXIT_FAILURE 278266e564dSmrg# else 279266e564dSmrg# $echo "$modename: using $tagname tagged configuration" 280266e564dSmrg fi 281266e564dSmrg ;; 282266e564dSmrg esac 283266e564dSmrg fi 284266e564dSmrg} 285266e564dSmrg 286266e564dSmrg 287266e564dSmrg# func_extract_an_archive dir oldlib 288266e564dSmrgfunc_extract_an_archive () 289266e564dSmrg{ 290266e564dSmrg f_ex_an_ar_dir="$1"; shift 291266e564dSmrg f_ex_an_ar_oldlib="$1" 292266e564dSmrg 293266e564dSmrg $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 294266e564dSmrg $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 295266e564dSmrg if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 296266e564dSmrg : 297266e564dSmrg else 298266e564dSmrg $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 299266e564dSmrg exit $EXIT_FAILURE 300266e564dSmrg fi 301266e564dSmrg} 302266e564dSmrg 303266e564dSmrg# func_extract_archives gentop oldlib ... 304266e564dSmrgfunc_extract_archives () 305266e564dSmrg{ 306266e564dSmrg my_gentop="$1"; shift 307266e564dSmrg my_oldlibs=${1+"$@"} 308266e564dSmrg my_oldobjs="" 309266e564dSmrg my_xlib="" 310266e564dSmrg my_xabs="" 311266e564dSmrg my_xdir="" 312266e564dSmrg my_status="" 313266e564dSmrg 314266e564dSmrg $show "${rm}r $my_gentop" 315266e564dSmrg $run ${rm}r "$my_gentop" 316266e564dSmrg $show "$mkdir $my_gentop" 317266e564dSmrg $run $mkdir "$my_gentop" 318266e564dSmrg my_status=$? 319266e564dSmrg if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 320266e564dSmrg exit $my_status 321266e564dSmrg fi 322266e564dSmrg 323266e564dSmrg for my_xlib in $my_oldlibs; do 324266e564dSmrg # Extract the objects. 325266e564dSmrg case $my_xlib in 326266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 327266e564dSmrg *) my_xabs=`pwd`"/$my_xlib" ;; 328266e564dSmrg esac 329266e564dSmrg my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 330266e564dSmrg my_xdir="$my_gentop/$my_xlib" 331266e564dSmrg 332266e564dSmrg $show "${rm}r $my_xdir" 333266e564dSmrg $run ${rm}r "$my_xdir" 334266e564dSmrg $show "$mkdir $my_xdir" 335266e564dSmrg $run $mkdir "$my_xdir" 336266e564dSmrg exit_status=$? 337266e564dSmrg if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 338266e564dSmrg exit $exit_status 339266e564dSmrg fi 340266e564dSmrg case $host in 341266e564dSmrg *-darwin*) 342266e564dSmrg $show "Extracting $my_xabs" 343266e564dSmrg # Do not bother doing anything if just a dry run 344266e564dSmrg if test -z "$run"; then 345266e564dSmrg darwin_orig_dir=`pwd` 346266e564dSmrg cd $my_xdir || exit $? 347266e564dSmrg darwin_archive=$my_xabs 348266e564dSmrg darwin_curdir=`pwd` 349266e564dSmrg darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 350266e564dSmrg darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 351266e564dSmrg if test -n "$darwin_arches"; then 352266e564dSmrg darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 353266e564dSmrg darwin_arch= 354266e564dSmrg $show "$darwin_base_archive has multiple architectures $darwin_arches" 355266e564dSmrg for darwin_arch in $darwin_arches ; do 356266e564dSmrg mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 357266e564dSmrg lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 358266e564dSmrg cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 359266e564dSmrg func_extract_an_archive "`pwd`" "${darwin_base_archive}" 360266e564dSmrg cd "$darwin_curdir" 361266e564dSmrg $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 362266e564dSmrg done # $darwin_arches 363266e564dSmrg ## Okay now we have a bunch of thin objects, gotta fatten them up :) 364266e564dSmrg darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 365266e564dSmrg darwin_file= 366266e564dSmrg darwin_files= 367266e564dSmrg for darwin_file in $darwin_filelist; do 368266e564dSmrg darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 369266e564dSmrg lipo -create -output "$darwin_file" $darwin_files 370266e564dSmrg done # $darwin_filelist 371266e564dSmrg ${rm}r unfat-$$ 372266e564dSmrg cd "$darwin_orig_dir" 373266e564dSmrg else 374266e564dSmrg cd "$darwin_orig_dir" 375266e564dSmrg func_extract_an_archive "$my_xdir" "$my_xabs" 376266e564dSmrg fi # $darwin_arches 377266e564dSmrg fi # $run 378266e564dSmrg ;; 379266e564dSmrg *) 380266e564dSmrg func_extract_an_archive "$my_xdir" "$my_xabs" 381266e564dSmrg ;; 382266e564dSmrg esac 383266e564dSmrg my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 384266e564dSmrg done 385266e564dSmrg func_extract_archives_result="$my_oldobjs" 386266e564dSmrg} 387266e564dSmrg# End of Shell function definitions 388266e564dSmrg##################################### 389266e564dSmrg 390266e564dSmrg# Darwin sucks 391266e564dSmrgeval std_shrext=\"$shrext_cmds\" 392266e564dSmrg 393266e564dSmrgdisable_libs=no 394266e564dSmrg 395266e564dSmrg# Parse our command line options once, thoroughly. 396266e564dSmrgwhile test "$#" -gt 0 397266e564dSmrgdo 398266e564dSmrg arg="$1" 399266e564dSmrg shift 400266e564dSmrg 401266e564dSmrg case $arg in 402266e564dSmrg -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 403266e564dSmrg *) optarg= ;; 404266e564dSmrg esac 405266e564dSmrg 406266e564dSmrg # If the previous option needs an argument, assign it. 407266e564dSmrg if test -n "$prev"; then 408266e564dSmrg case $prev in 409266e564dSmrg execute_dlfiles) 410266e564dSmrg execute_dlfiles="$execute_dlfiles $arg" 411266e564dSmrg ;; 412266e564dSmrg tag) 413266e564dSmrg tagname="$arg" 414266e564dSmrg preserve_args="${preserve_args}=$arg" 415266e564dSmrg 416266e564dSmrg # Check whether tagname contains only valid characters 417266e564dSmrg case $tagname in 418266e564dSmrg *[!-_A-Za-z0-9,/]*) 419266e564dSmrg $echo "$progname: invalid tag name: $tagname" 1>&2 420266e564dSmrg exit $EXIT_FAILURE 421266e564dSmrg ;; 422266e564dSmrg esac 423266e564dSmrg 424266e564dSmrg case $tagname in 425266e564dSmrg CC) 426266e564dSmrg # Don't test for the "default" C tag, as we know, it's there, but 427266e564dSmrg # not specially marked. 428266e564dSmrg ;; 429266e564dSmrg *) 430266e564dSmrg if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 431266e564dSmrg taglist="$taglist $tagname" 432266e564dSmrg # Evaluate the configuration. 433266e564dSmrg eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 434266e564dSmrg else 435266e564dSmrg $echo "$progname: ignoring unknown tag $tagname" 1>&2 436266e564dSmrg fi 437266e564dSmrg ;; 438266e564dSmrg esac 439266e564dSmrg ;; 440266e564dSmrg *) 441266e564dSmrg eval "$prev=\$arg" 442266e564dSmrg ;; 443266e564dSmrg esac 444266e564dSmrg 445266e564dSmrg prev= 446266e564dSmrg prevopt= 447266e564dSmrg continue 448266e564dSmrg fi 449266e564dSmrg 450266e564dSmrg # Have we seen a non-optional argument yet? 451266e564dSmrg case $arg in 452266e564dSmrg --help) 453266e564dSmrg show_help=yes 454266e564dSmrg ;; 455266e564dSmrg 456266e564dSmrg --version) 457266e564dSmrg $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" 458266e564dSmrg $echo 459266e564dSmrg $echo "Copyright (C) 2005 Free Software Foundation, Inc." 460266e564dSmrg $echo "This is free software; see the source for copying conditions. There is NO" 461266e564dSmrg $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 462266e564dSmrg exit $? 463266e564dSmrg ;; 464266e564dSmrg 465266e564dSmrg --config) 466266e564dSmrg ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 467266e564dSmrg # Now print the configurations for the tags. 468266e564dSmrg for tagname in $taglist; do 469266e564dSmrg ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 470266e564dSmrg done 471266e564dSmrg exit $? 472266e564dSmrg ;; 473266e564dSmrg 474266e564dSmrg --debug) 475266e564dSmrg $echo "$progname: enabling shell trace mode" 476266e564dSmrg set -x 477266e564dSmrg preserve_args="$preserve_args $arg" 478266e564dSmrg ;; 479266e564dSmrg 480266e564dSmrg --dry-run | -n) 481266e564dSmrg run=: 482266e564dSmrg ;; 483266e564dSmrg 484266e564dSmrg --features) 485266e564dSmrg $echo "host: $host" 486266e564dSmrg if test "$build_libtool_libs" = yes; then 487266e564dSmrg $echo "enable shared libraries" 488266e564dSmrg else 489266e564dSmrg $echo "disable shared libraries" 490266e564dSmrg fi 491266e564dSmrg if test "$build_old_libs" = yes; then 492266e564dSmrg $echo "enable static libraries" 493266e564dSmrg else 494266e564dSmrg $echo "disable static libraries" 495266e564dSmrg fi 496266e564dSmrg exit $? 497266e564dSmrg ;; 498266e564dSmrg 499266e564dSmrg --finish) mode="finish" ;; 500266e564dSmrg 501266e564dSmrg --mode) prevopt="--mode" prev=mode ;; 502266e564dSmrg --mode=*) mode="$optarg" ;; 503266e564dSmrg 504266e564dSmrg --preserve-dup-deps) duplicate_deps="yes" ;; 505266e564dSmrg 506266e564dSmrg --quiet | --silent) 507266e564dSmrg show=: 508266e564dSmrg preserve_args="$preserve_args $arg" 509266e564dSmrg ;; 510266e564dSmrg 511266e564dSmrg --tag) 512266e564dSmrg prevopt="--tag" 513266e564dSmrg prev=tag 514266e564dSmrg preserve_args="$preserve_args --tag" 515266e564dSmrg ;; 516266e564dSmrg --tag=*) 517266e564dSmrg set tag "$optarg" ${1+"$@"} 518266e564dSmrg shift 519266e564dSmrg prev=tag 520266e564dSmrg preserve_args="$preserve_args --tag" 521266e564dSmrg ;; 522266e564dSmrg 523266e564dSmrg -dlopen) 524266e564dSmrg prevopt="-dlopen" 525266e564dSmrg prev=execute_dlfiles 526266e564dSmrg ;; 527266e564dSmrg 528266e564dSmrg -*) 529266e564dSmrg $echo "$modename: unrecognized option \`$arg'" 1>&2 530266e564dSmrg $echo "$help" 1>&2 531266e564dSmrg exit $EXIT_FAILURE 532266e564dSmrg ;; 533266e564dSmrg 534266e564dSmrg *) 535266e564dSmrg nonopt="$arg" 536266e564dSmrg break 537266e564dSmrg ;; 538266e564dSmrg esac 539266e564dSmrgdone 540266e564dSmrg 541266e564dSmrgif test -n "$prevopt"; then 542266e564dSmrg $echo "$modename: option \`$prevopt' requires an argument" 1>&2 543266e564dSmrg $echo "$help" 1>&2 544266e564dSmrg exit $EXIT_FAILURE 545266e564dSmrgfi 546266e564dSmrg 547266e564dSmrgcase $disable_libs in 548266e564dSmrgno) 549266e564dSmrg ;; 550266e564dSmrgshared) 551266e564dSmrg build_libtool_libs=no 552266e564dSmrg build_old_libs=yes 553266e564dSmrg ;; 554266e564dSmrgstatic) 555266e564dSmrg build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 556266e564dSmrg ;; 557266e564dSmrgesac 558266e564dSmrg 559266e564dSmrg# If this variable is set in any of the actions, the command in it 560266e564dSmrg# will be execed at the end. This prevents here-documents from being 561266e564dSmrg# left over by shells. 562266e564dSmrgexec_cmd= 563266e564dSmrg 564266e564dSmrgif test -z "$show_help"; then 565266e564dSmrg 566266e564dSmrg # Infer the operation mode. 567266e564dSmrg if test -z "$mode"; then 568266e564dSmrg $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 569266e564dSmrg $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 570266e564dSmrg case $nonopt in 571266e564dSmrg *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 572266e564dSmrg mode=link 573266e564dSmrg for arg 574266e564dSmrg do 575266e564dSmrg case $arg in 576266e564dSmrg -c) 577266e564dSmrg mode=compile 578266e564dSmrg break 579266e564dSmrg ;; 580266e564dSmrg esac 581266e564dSmrg done 582266e564dSmrg ;; 583266e564dSmrg *db | *dbx | *strace | *truss) 584266e564dSmrg mode=execute 585266e564dSmrg ;; 586266e564dSmrg *install*|cp|mv) 587266e564dSmrg mode=install 588266e564dSmrg ;; 589266e564dSmrg *rm) 590266e564dSmrg mode=uninstall 591266e564dSmrg ;; 592266e564dSmrg *) 593266e564dSmrg # If we have no mode, but dlfiles were specified, then do execute mode. 594266e564dSmrg test -n "$execute_dlfiles" && mode=execute 595266e564dSmrg 596266e564dSmrg # Just use the default operation mode. 597266e564dSmrg if test -z "$mode"; then 598266e564dSmrg if test -n "$nonopt"; then 599266e564dSmrg $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 600266e564dSmrg else 601266e564dSmrg $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 602266e564dSmrg fi 603266e564dSmrg fi 604266e564dSmrg ;; 605266e564dSmrg esac 606266e564dSmrg fi 607266e564dSmrg 608266e564dSmrg # Only execute mode is allowed to have -dlopen flags. 609266e564dSmrg if test -n "$execute_dlfiles" && test "$mode" != execute; then 610266e564dSmrg $echo "$modename: unrecognized option \`-dlopen'" 1>&2 611266e564dSmrg $echo "$help" 1>&2 612266e564dSmrg exit $EXIT_FAILURE 613266e564dSmrg fi 614266e564dSmrg 615266e564dSmrg # Change the help message to a mode-specific one. 616266e564dSmrg generic_help="$help" 617266e564dSmrg help="Try \`$modename --help --mode=$mode' for more information." 618266e564dSmrg 619266e564dSmrg # These modes are in order of execution frequency so that they run quickly. 620266e564dSmrg case $mode in 621266e564dSmrg # libtool compile mode 622266e564dSmrg compile) 623266e564dSmrg modename="$modename: compile" 624266e564dSmrg # Get the compilation command and the source file. 625266e564dSmrg base_compile= 626266e564dSmrg srcfile="$nonopt" # always keep a non-empty value in "srcfile" 627266e564dSmrg suppress_opt=yes 628266e564dSmrg suppress_output= 629266e564dSmrg arg_mode=normal 630266e564dSmrg libobj= 631266e564dSmrg later= 632266e564dSmrg 633266e564dSmrg for arg 634266e564dSmrg do 635266e564dSmrg case $arg_mode in 636266e564dSmrg arg ) 637266e564dSmrg # do not "continue". Instead, add this to base_compile 638266e564dSmrg lastarg="$arg" 639266e564dSmrg arg_mode=normal 640266e564dSmrg ;; 641266e564dSmrg 642266e564dSmrg target ) 643266e564dSmrg libobj="$arg" 644266e564dSmrg arg_mode=normal 645266e564dSmrg continue 646266e564dSmrg ;; 647266e564dSmrg 648266e564dSmrg normal ) 649266e564dSmrg # Accept any command-line options. 650266e564dSmrg case $arg in 651266e564dSmrg -o) 652266e564dSmrg if test -n "$libobj" ; then 653266e564dSmrg $echo "$modename: you cannot specify \`-o' more than once" 1>&2 654266e564dSmrg exit $EXIT_FAILURE 655266e564dSmrg fi 656266e564dSmrg arg_mode=target 657266e564dSmrg continue 658266e564dSmrg ;; 659266e564dSmrg 660266e564dSmrg -static | -prefer-pic | -prefer-non-pic) 661266e564dSmrg later="$later $arg" 662266e564dSmrg continue 663266e564dSmrg ;; 664266e564dSmrg 665266e564dSmrg -no-suppress) 666266e564dSmrg suppress_opt=no 667266e564dSmrg continue 668266e564dSmrg ;; 669266e564dSmrg 670266e564dSmrg -Xcompiler) 671266e564dSmrg arg_mode=arg # the next one goes into the "base_compile" arg list 672266e564dSmrg continue # The current "srcfile" will either be retained or 673266e564dSmrg ;; # replaced later. I would guess that would be a bug. 674266e564dSmrg 675266e564dSmrg -Wc,*) 676266e564dSmrg args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 677266e564dSmrg lastarg= 678266e564dSmrg save_ifs="$IFS"; IFS=',' 679266e564dSmrg for arg in $args; do 680266e564dSmrg IFS="$save_ifs" 681266e564dSmrg 682266e564dSmrg # Double-quote args containing other shell metacharacters. 683266e564dSmrg # Many Bourne shells cannot handle close brackets correctly 684266e564dSmrg # in scan sets, so we specify it separately. 685266e564dSmrg case $arg in 686266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 687266e564dSmrg arg="\"$arg\"" 688266e564dSmrg ;; 689266e564dSmrg esac 690266e564dSmrg lastarg="$lastarg $arg" 691266e564dSmrg done 692266e564dSmrg IFS="$save_ifs" 693266e564dSmrg lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 694266e564dSmrg 695266e564dSmrg # Add the arguments to base_compile. 696266e564dSmrg base_compile="$base_compile $lastarg" 697266e564dSmrg continue 698266e564dSmrg ;; 699266e564dSmrg 700266e564dSmrg * ) 701266e564dSmrg # Accept the current argument as the source file. 702266e564dSmrg # The previous "srcfile" becomes the current argument. 703266e564dSmrg # 704266e564dSmrg lastarg="$srcfile" 705266e564dSmrg srcfile="$arg" 706266e564dSmrg ;; 707266e564dSmrg esac # case $arg 708266e564dSmrg ;; 709266e564dSmrg esac # case $arg_mode 710266e564dSmrg 711266e564dSmrg # Aesthetically quote the previous argument. 712266e564dSmrg lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 713266e564dSmrg 714266e564dSmrg case $lastarg in 715266e564dSmrg # Double-quote args containing other shell metacharacters. 716266e564dSmrg # Many Bourne shells cannot handle close brackets correctly 717266e564dSmrg # in scan sets, and some SunOS ksh mistreat backslash-escaping 718266e564dSmrg # in scan sets (worked around with variable expansion), 719266e564dSmrg # and furthermore cannot handle '|' '&' '(' ')' in scan sets 720266e564dSmrg # at all, so we specify them separately. 721266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 722266e564dSmrg lastarg="\"$lastarg\"" 723266e564dSmrg ;; 724266e564dSmrg esac 725266e564dSmrg 726266e564dSmrg base_compile="$base_compile $lastarg" 727266e564dSmrg done # for arg 728266e564dSmrg 729266e564dSmrg case $arg_mode in 730266e564dSmrg arg) 731266e564dSmrg $echo "$modename: you must specify an argument for -Xcompile" 732266e564dSmrg exit $EXIT_FAILURE 733266e564dSmrg ;; 734266e564dSmrg target) 735266e564dSmrg $echo "$modename: you must specify a target with \`-o'" 1>&2 736266e564dSmrg exit $EXIT_FAILURE 737266e564dSmrg ;; 738266e564dSmrg *) 739266e564dSmrg # Get the name of the library object. 740266e564dSmrg [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 741266e564dSmrg ;; 742266e564dSmrg esac 743266e564dSmrg 744266e564dSmrg # Recognize several different file suffixes. 745266e564dSmrg # If the user specifies -o file.o, it is replaced with file.lo 746266e564dSmrg xform='[cCFSifmso]' 747266e564dSmrg case $libobj in 748266e564dSmrg *.ada) xform=ada ;; 749266e564dSmrg *.adb) xform=adb ;; 750266e564dSmrg *.ads) xform=ads ;; 751266e564dSmrg *.asm) xform=asm ;; 752266e564dSmrg *.c++) xform=c++ ;; 753266e564dSmrg *.cc) xform=cc ;; 754266e564dSmrg *.ii) xform=ii ;; 755266e564dSmrg *.class) xform=class ;; 756266e564dSmrg *.cpp) xform=cpp ;; 757266e564dSmrg *.cxx) xform=cxx ;; 758266e564dSmrg *.f90) xform=f90 ;; 759266e564dSmrg *.for) xform=for ;; 760266e564dSmrg *.java) xform=java ;; 761266e564dSmrg esac 762266e564dSmrg 763266e564dSmrg libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 764266e564dSmrg 765266e564dSmrg case $libobj in 766266e564dSmrg *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 767266e564dSmrg *) 768266e564dSmrg $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 769266e564dSmrg exit $EXIT_FAILURE 770266e564dSmrg ;; 771266e564dSmrg esac 772266e564dSmrg 773266e564dSmrg func_infer_tag $base_compile 774266e564dSmrg 775266e564dSmrg for arg in $later; do 776266e564dSmrg case $arg in 777266e564dSmrg -static) 778266e564dSmrg build_old_libs=yes 779266e564dSmrg continue 780266e564dSmrg ;; 781266e564dSmrg 782266e564dSmrg -prefer-pic) 783266e564dSmrg pic_mode=yes 784266e564dSmrg continue 785266e564dSmrg ;; 786266e564dSmrg 787266e564dSmrg -prefer-non-pic) 788266e564dSmrg pic_mode=no 789266e564dSmrg continue 790266e564dSmrg ;; 791266e564dSmrg esac 792266e564dSmrg done 793266e564dSmrg 794266e564dSmrg qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 795266e564dSmrg case $qlibobj in 796266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 797266e564dSmrg qlibobj="\"$qlibobj\"" ;; 798266e564dSmrg esac 799266e564dSmrg test "X$libobj" != "X$qlibobj" \ 800266e564dSmrg && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 801266e564dSmrg && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 802266e564dSmrg objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 803266e564dSmrg xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 804266e564dSmrg if test "X$xdir" = "X$obj"; then 805266e564dSmrg xdir= 806266e564dSmrg else 807266e564dSmrg xdir=$xdir/ 808266e564dSmrg fi 809266e564dSmrg lobj=${xdir}$objdir/$objname 810266e564dSmrg 811266e564dSmrg if test -z "$base_compile"; then 812266e564dSmrg $echo "$modename: you must specify a compilation command" 1>&2 813266e564dSmrg $echo "$help" 1>&2 814266e564dSmrg exit $EXIT_FAILURE 815266e564dSmrg fi 816266e564dSmrg 817266e564dSmrg # Delete any leftover library objects. 818266e564dSmrg if test "$build_old_libs" = yes; then 819266e564dSmrg removelist="$obj $lobj $libobj ${libobj}T" 820266e564dSmrg else 821266e564dSmrg removelist="$lobj $libobj ${libobj}T" 822266e564dSmrg fi 823266e564dSmrg 824266e564dSmrg $run $rm $removelist 825266e564dSmrg trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 826266e564dSmrg 827266e564dSmrg # On Cygwin there's no "real" PIC flag so we must build both object types 828266e564dSmrg case $host_os in 829266e564dSmrg cygwin* | mingw* | pw32* | os2*) 830266e564dSmrg pic_mode=default 831266e564dSmrg ;; 832266e564dSmrg esac 833266e564dSmrg if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 834266e564dSmrg # non-PIC code in shared libraries is not supported 835266e564dSmrg pic_mode=default 836266e564dSmrg fi 837266e564dSmrg 838266e564dSmrg # Calculate the filename of the output object if compiler does 839266e564dSmrg # not support -o with -c 840266e564dSmrg if test "$compiler_c_o" = no; then 841266e564dSmrg output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 842266e564dSmrg lockfile="$output_obj.lock" 843266e564dSmrg removelist="$removelist $output_obj $lockfile" 844266e564dSmrg trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 845266e564dSmrg else 846266e564dSmrg output_obj= 847266e564dSmrg need_locks=no 848266e564dSmrg lockfile= 849266e564dSmrg fi 850266e564dSmrg 851266e564dSmrg # Lock this critical section if it is needed 852266e564dSmrg # We use this script file to make the link, it avoids creating a new file 853266e564dSmrg if test "$need_locks" = yes; then 854266e564dSmrg until $run ln "$progpath" "$lockfile" 2>/dev/null; do 855266e564dSmrg $show "Waiting for $lockfile to be removed" 856266e564dSmrg sleep 2 857266e564dSmrg done 858266e564dSmrg elif test "$need_locks" = warn; then 859266e564dSmrg if test -f "$lockfile"; then 860266e564dSmrg $echo "\ 861266e564dSmrg*** ERROR, $lockfile exists and contains: 862266e564dSmrg`cat $lockfile 2>/dev/null` 863266e564dSmrg 864266e564dSmrgThis indicates that another process is trying to use the same 865266e564dSmrgtemporary object file, and libtool could not work around it because 866266e564dSmrgyour compiler does not support \`-c' and \`-o' together. If you 867266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better 868266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better 869266e564dSmrgcompiler." 870266e564dSmrg 871266e564dSmrg $run $rm $removelist 872266e564dSmrg exit $EXIT_FAILURE 873266e564dSmrg fi 874266e564dSmrg $echo "$srcfile" > "$lockfile" 875266e564dSmrg fi 876266e564dSmrg 877266e564dSmrg if test -n "$fix_srcfile_path"; then 878266e564dSmrg eval srcfile=\"$fix_srcfile_path\" 879266e564dSmrg fi 880266e564dSmrg qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 881266e564dSmrg case $qsrcfile in 882266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 883266e564dSmrg qsrcfile="\"$qsrcfile\"" ;; 884266e564dSmrg esac 885266e564dSmrg 886266e564dSmrg $run $rm "$libobj" "${libobj}T" 887266e564dSmrg 888266e564dSmrg # Create a libtool object file (analogous to a ".la" file), 889266e564dSmrg # but don't create it if we're doing a dry run. 890266e564dSmrg test -z "$run" && cat > ${libobj}T <<EOF 891266e564dSmrg# $libobj - a libtool object file 892266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 893266e564dSmrg# 894266e564dSmrg# Please DO NOT delete this file! 895266e564dSmrg# It is necessary for linking the library. 896266e564dSmrg 897266e564dSmrg# Name of the PIC object. 898266e564dSmrgEOF 899266e564dSmrg 900266e564dSmrg # Only build a PIC object if we are building libtool libraries. 901266e564dSmrg if test "$build_libtool_libs" = yes; then 902266e564dSmrg # Without this assignment, base_compile gets emptied. 903266e564dSmrg fbsd_hideous_sh_bug=$base_compile 904266e564dSmrg 905266e564dSmrg if test "$pic_mode" != no; then 906266e564dSmrg command="$base_compile $qsrcfile $pic_flag" 907266e564dSmrg else 908266e564dSmrg # Don't build PIC code 909266e564dSmrg command="$base_compile $qsrcfile" 910266e564dSmrg fi 911266e564dSmrg 912266e564dSmrg if test ! -d "${xdir}$objdir"; then 913266e564dSmrg $show "$mkdir ${xdir}$objdir" 914266e564dSmrg $run $mkdir ${xdir}$objdir 915266e564dSmrg exit_status=$? 916266e564dSmrg if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 917266e564dSmrg exit $exit_status 918266e564dSmrg fi 919266e564dSmrg fi 920266e564dSmrg 921266e564dSmrg if test -z "$output_obj"; then 922266e564dSmrg # Place PIC objects in $objdir 923266e564dSmrg command="$command -o $lobj" 924266e564dSmrg fi 925266e564dSmrg 926266e564dSmrg $run $rm "$lobj" "$output_obj" 927266e564dSmrg 928266e564dSmrg $show "$command" 929266e564dSmrg if $run eval "$command"; then : 930266e564dSmrg else 931266e564dSmrg test -n "$output_obj" && $run $rm $removelist 932266e564dSmrg exit $EXIT_FAILURE 933266e564dSmrg fi 934266e564dSmrg 935266e564dSmrg if test "$need_locks" = warn && 936266e564dSmrg test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 937266e564dSmrg $echo "\ 938266e564dSmrg*** ERROR, $lockfile contains: 939266e564dSmrg`cat $lockfile 2>/dev/null` 940266e564dSmrg 941266e564dSmrgbut it should contain: 942266e564dSmrg$srcfile 943266e564dSmrg 944266e564dSmrgThis indicates that another process is trying to use the same 945266e564dSmrgtemporary object file, and libtool could not work around it because 946266e564dSmrgyour compiler does not support \`-c' and \`-o' together. If you 947266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better 948266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better 949266e564dSmrgcompiler." 950266e564dSmrg 951266e564dSmrg $run $rm $removelist 952266e564dSmrg exit $EXIT_FAILURE 953266e564dSmrg fi 954266e564dSmrg 955266e564dSmrg # Just move the object if needed, then go on to compile the next one 956266e564dSmrg if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 957266e564dSmrg $show "$mv $output_obj $lobj" 958266e564dSmrg if $run $mv $output_obj $lobj; then : 959266e564dSmrg else 960266e564dSmrg error=$? 961266e564dSmrg $run $rm $removelist 962266e564dSmrg exit $error 963266e564dSmrg fi 964266e564dSmrg fi 965266e564dSmrg 966266e564dSmrg # Append the name of the PIC object to the libtool object file. 967266e564dSmrg test -z "$run" && cat >> ${libobj}T <<EOF 968266e564dSmrgpic_object='$objdir/$objname' 969266e564dSmrg 970266e564dSmrgEOF 971266e564dSmrg 972266e564dSmrg # Allow error messages only from the first compilation. 973266e564dSmrg if test "$suppress_opt" = yes; then 974266e564dSmrg suppress_output=' >/dev/null 2>&1' 975266e564dSmrg fi 976266e564dSmrg else 977266e564dSmrg # No PIC object so indicate it doesn't exist in the libtool 978266e564dSmrg # object file. 979266e564dSmrg test -z "$run" && cat >> ${libobj}T <<EOF 980266e564dSmrgpic_object=none 981266e564dSmrg 982266e564dSmrgEOF 983266e564dSmrg fi 984266e564dSmrg 985266e564dSmrg # Only build a position-dependent object if we build old libraries. 986266e564dSmrg if test "$build_old_libs" = yes; then 987266e564dSmrg if test "$pic_mode" != yes; then 988266e564dSmrg # Don't build PIC code 989266e564dSmrg command="$base_compile $qsrcfile" 990266e564dSmrg else 991266e564dSmrg command="$base_compile $qsrcfile $pic_flag" 992266e564dSmrg fi 993266e564dSmrg if test "$compiler_c_o" = yes; then 994266e564dSmrg command="$command -o $obj" 995266e564dSmrg fi 996266e564dSmrg 997266e564dSmrg # Suppress compiler output if we already did a PIC compilation. 998266e564dSmrg command="$command$suppress_output" 999266e564dSmrg $run $rm "$obj" "$output_obj" 1000266e564dSmrg $show "$command" 1001266e564dSmrg if $run eval "$command"; then : 1002266e564dSmrg else 1003266e564dSmrg $run $rm $removelist 1004266e564dSmrg exit $EXIT_FAILURE 1005266e564dSmrg fi 1006266e564dSmrg 1007266e564dSmrg if test "$need_locks" = warn && 1008266e564dSmrg test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1009266e564dSmrg $echo "\ 1010266e564dSmrg*** ERROR, $lockfile contains: 1011266e564dSmrg`cat $lockfile 2>/dev/null` 1012266e564dSmrg 1013266e564dSmrgbut it should contain: 1014266e564dSmrg$srcfile 1015266e564dSmrg 1016266e564dSmrgThis indicates that another process is trying to use the same 1017266e564dSmrgtemporary object file, and libtool could not work around it because 1018266e564dSmrgyour compiler does not support \`-c' and \`-o' together. If you 1019266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better 1020266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better 1021266e564dSmrgcompiler." 1022266e564dSmrg 1023266e564dSmrg $run $rm $removelist 1024266e564dSmrg exit $EXIT_FAILURE 1025266e564dSmrg fi 1026266e564dSmrg 1027266e564dSmrg # Just move the object if needed 1028266e564dSmrg if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1029266e564dSmrg $show "$mv $output_obj $obj" 1030266e564dSmrg if $run $mv $output_obj $obj; then : 1031266e564dSmrg else 1032266e564dSmrg error=$? 1033266e564dSmrg $run $rm $removelist 1034266e564dSmrg exit $error 1035266e564dSmrg fi 1036266e564dSmrg fi 1037266e564dSmrg 1038266e564dSmrg # Append the name of the non-PIC object the libtool object file. 1039266e564dSmrg # Only append if the libtool object file exists. 1040266e564dSmrg test -z "$run" && cat >> ${libobj}T <<EOF 1041266e564dSmrg# Name of the non-PIC object. 1042266e564dSmrgnon_pic_object='$objname' 1043266e564dSmrg 1044266e564dSmrgEOF 1045266e564dSmrg else 1046266e564dSmrg # Append the name of the non-PIC object the libtool object file. 1047266e564dSmrg # Only append if the libtool object file exists. 1048266e564dSmrg test -z "$run" && cat >> ${libobj}T <<EOF 1049266e564dSmrg# Name of the non-PIC object. 1050266e564dSmrgnon_pic_object=none 1051266e564dSmrg 1052266e564dSmrgEOF 1053266e564dSmrg fi 1054266e564dSmrg 1055266e564dSmrg $run $mv "${libobj}T" "${libobj}" 1056266e564dSmrg 1057266e564dSmrg # Unlock the critical section if it was locked 1058266e564dSmrg if test "$need_locks" != no; then 1059266e564dSmrg $run $rm "$lockfile" 1060266e564dSmrg fi 1061266e564dSmrg 1062266e564dSmrg exit $EXIT_SUCCESS 1063266e564dSmrg ;; 1064266e564dSmrg 1065266e564dSmrg # libtool link mode 1066266e564dSmrg link | relink) 1067266e564dSmrg modename="$modename: link" 1068266e564dSmrg case $host in 1069266e564dSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1070266e564dSmrg # It is impossible to link a dll without this setting, and 1071266e564dSmrg # we shouldn't force the makefile maintainer to figure out 1072266e564dSmrg # which system we are compiling for in order to pass an extra 1073266e564dSmrg # flag for every libtool invocation. 1074266e564dSmrg # allow_undefined=no 1075266e564dSmrg 1076266e564dSmrg # FIXME: Unfortunately, there are problems with the above when trying 1077266e564dSmrg # to make a dll which has undefined symbols, in which case not 1078266e564dSmrg # even a static library is built. For now, we need to specify 1079266e564dSmrg # -no-undefined on the libtool link line when we can be certain 1080266e564dSmrg # that all symbols are satisfied, otherwise we get a static library. 1081266e564dSmrg allow_undefined=yes 1082266e564dSmrg ;; 1083266e564dSmrg *) 1084266e564dSmrg allow_undefined=yes 1085266e564dSmrg ;; 1086266e564dSmrg esac 1087266e564dSmrg libtool_args="$nonopt" 1088266e564dSmrg base_compile="$nonopt $@" 1089266e564dSmrg compile_command="$nonopt" 1090266e564dSmrg finalize_command="$nonopt" 1091266e564dSmrg 1092266e564dSmrg compile_rpath= 1093266e564dSmrg finalize_rpath= 1094266e564dSmrg compile_shlibpath= 1095266e564dSmrg finalize_shlibpath= 1096266e564dSmrg convenience= 1097266e564dSmrg old_convenience= 1098266e564dSmrg deplibs= 1099266e564dSmrg old_deplibs= 1100266e564dSmrg compiler_flags= 1101266e564dSmrg linker_flags= 1102266e564dSmrg dllsearchpath= 1103266e564dSmrg lib_search_path=`pwd` 1104266e564dSmrg inst_prefix_dir= 1105266e564dSmrg 1106266e564dSmrg avoid_version=no 1107266e564dSmrg dlfiles= 1108266e564dSmrg dlprefiles= 1109266e564dSmrg dlself=no 1110266e564dSmrg export_dynamic=no 1111266e564dSmrg export_symbols= 1112266e564dSmrg export_symbols_regex= 1113266e564dSmrg generated= 1114266e564dSmrg libobjs= 1115266e564dSmrg ltlibs= 1116266e564dSmrg module=no 1117266e564dSmrg no_install=no 1118266e564dSmrg objs= 1119266e564dSmrg non_pic_objects= 1120266e564dSmrg notinst_path= # paths that contain not-installed libtool libraries 1121266e564dSmrg precious_files_regex= 1122266e564dSmrg prefer_static_libs=no 1123266e564dSmrg preload=no 1124266e564dSmrg prev= 1125266e564dSmrg prevarg= 1126266e564dSmrg release= 1127266e564dSmrg rpath= 1128266e564dSmrg xrpath= 1129266e564dSmrg perm_rpath= 1130266e564dSmrg temp_rpath= 1131266e564dSmrg thread_safe=no 1132266e564dSmrg vinfo= 1133266e564dSmrg vinfo_number=no 1134266e564dSmrg 1135266e564dSmrg func_infer_tag $base_compile 1136266e564dSmrg 1137266e564dSmrg # We need to know -static, to get the right output filenames. 1138266e564dSmrg for arg 1139266e564dSmrg do 1140266e564dSmrg case $arg in 1141266e564dSmrg -all-static | -static) 1142266e564dSmrg if test "X$arg" = "X-all-static"; then 1143266e564dSmrg if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 1144266e564dSmrg $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 1145266e564dSmrg fi 1146266e564dSmrg if test -n "$link_static_flag"; then 1147266e564dSmrg dlopen_self=$dlopen_self_static 1148266e564dSmrg fi 1149266e564dSmrg prefer_static_libs=yes 1150266e564dSmrg else 1151266e564dSmrg if test -z "$pic_flag" && test -n "$link_static_flag"; then 1152266e564dSmrg dlopen_self=$dlopen_self_static 1153266e564dSmrg fi 1154266e564dSmrg prefer_static_libs=built 1155266e564dSmrg fi 1156266e564dSmrg build_libtool_libs=no 1157266e564dSmrg build_old_libs=yes 1158266e564dSmrg break 1159266e564dSmrg ;; 1160266e564dSmrg esac 1161266e564dSmrg done 1162266e564dSmrg 1163266e564dSmrg # See if our shared archives depend on static archives. 1164266e564dSmrg test -n "$old_archive_from_new_cmds" && build_old_libs=yes 1165266e564dSmrg 1166266e564dSmrg # Go through the arguments, transforming them on the way. 1167266e564dSmrg while test "$#" -gt 0; do 1168266e564dSmrg arg="$1" 1169266e564dSmrg shift 1170266e564dSmrg case $arg in 1171266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1172266e564dSmrg qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 1173266e564dSmrg ;; 1174266e564dSmrg *) qarg=$arg ;; 1175266e564dSmrg esac 1176266e564dSmrg libtool_args="$libtool_args $qarg" 1177266e564dSmrg 1178266e564dSmrg # If the previous option needs an argument, assign it. 1179266e564dSmrg if test -n "$prev"; then 1180266e564dSmrg case $prev in 1181266e564dSmrg output) 1182266e564dSmrg compile_command="$compile_command @OUTPUT@" 1183266e564dSmrg finalize_command="$finalize_command @OUTPUT@" 1184266e564dSmrg ;; 1185266e564dSmrg esac 1186266e564dSmrg 1187266e564dSmrg case $prev in 1188266e564dSmrg dlfiles|dlprefiles) 1189266e564dSmrg if test "$preload" = no; then 1190266e564dSmrg # Add the symbol object into the linking commands. 1191266e564dSmrg compile_command="$compile_command @SYMFILE@" 1192266e564dSmrg finalize_command="$finalize_command @SYMFILE@" 1193266e564dSmrg preload=yes 1194266e564dSmrg fi 1195266e564dSmrg case $arg in 1196266e564dSmrg *.la | *.lo) ;; # We handle these cases below. 1197266e564dSmrg force) 1198266e564dSmrg if test "$dlself" = no; then 1199266e564dSmrg dlself=needless 1200266e564dSmrg export_dynamic=yes 1201266e564dSmrg fi 1202266e564dSmrg prev= 1203266e564dSmrg continue 1204266e564dSmrg ;; 1205266e564dSmrg self) 1206266e564dSmrg if test "$prev" = dlprefiles; then 1207266e564dSmrg dlself=yes 1208266e564dSmrg elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 1209266e564dSmrg dlself=yes 1210266e564dSmrg else 1211266e564dSmrg dlself=needless 1212266e564dSmrg export_dynamic=yes 1213266e564dSmrg fi 1214266e564dSmrg prev= 1215266e564dSmrg continue 1216266e564dSmrg ;; 1217266e564dSmrg *) 1218266e564dSmrg if test "$prev" = dlfiles; then 1219266e564dSmrg dlfiles="$dlfiles $arg" 1220266e564dSmrg else 1221266e564dSmrg dlprefiles="$dlprefiles $arg" 1222266e564dSmrg fi 1223266e564dSmrg prev= 1224266e564dSmrg continue 1225266e564dSmrg ;; 1226266e564dSmrg esac 1227266e564dSmrg ;; 1228266e564dSmrg expsyms) 1229266e564dSmrg export_symbols="$arg" 1230266e564dSmrg if test ! -f "$arg"; then 1231266e564dSmrg $echo "$modename: symbol file \`$arg' does not exist" 1232266e564dSmrg exit $EXIT_FAILURE 1233266e564dSmrg fi 1234266e564dSmrg prev= 1235266e564dSmrg continue 1236266e564dSmrg ;; 1237266e564dSmrg expsyms_regex) 1238266e564dSmrg export_symbols_regex="$arg" 1239266e564dSmrg prev= 1240266e564dSmrg continue 1241266e564dSmrg ;; 1242266e564dSmrg inst_prefix) 1243266e564dSmrg inst_prefix_dir="$arg" 1244266e564dSmrg prev= 1245266e564dSmrg continue 1246266e564dSmrg ;; 1247266e564dSmrg precious_regex) 1248266e564dSmrg precious_files_regex="$arg" 1249266e564dSmrg prev= 1250266e564dSmrg continue 1251266e564dSmrg ;; 1252266e564dSmrg release) 1253266e564dSmrg release="-$arg" 1254266e564dSmrg prev= 1255266e564dSmrg continue 1256266e564dSmrg ;; 1257266e564dSmrg objectlist) 1258266e564dSmrg if test -f "$arg"; then 1259266e564dSmrg save_arg=$arg 1260266e564dSmrg moreargs= 1261266e564dSmrg for fil in `cat $save_arg` 1262266e564dSmrg do 1263266e564dSmrg# moreargs="$moreargs $fil" 1264266e564dSmrg arg=$fil 1265266e564dSmrg # A libtool-controlled object. 1266266e564dSmrg 1267266e564dSmrg # Check to see that this really is a libtool object. 1268266e564dSmrg if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1269266e564dSmrg pic_object= 1270266e564dSmrg non_pic_object= 1271266e564dSmrg 1272266e564dSmrg # Read the .lo file 1273266e564dSmrg # If there is no directory component, then add one. 1274266e564dSmrg case $arg in 1275266e564dSmrg */* | *\\*) . $arg ;; 1276266e564dSmrg *) . ./$arg ;; 1277266e564dSmrg esac 1278266e564dSmrg 1279266e564dSmrg if test -z "$pic_object" || \ 1280266e564dSmrg test -z "$non_pic_object" || 1281266e564dSmrg test "$pic_object" = none && \ 1282266e564dSmrg test "$non_pic_object" = none; then 1283266e564dSmrg $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1284266e564dSmrg exit $EXIT_FAILURE 1285266e564dSmrg fi 1286266e564dSmrg 1287266e564dSmrg # Extract subdirectory from the argument. 1288266e564dSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1289266e564dSmrg if test "X$xdir" = "X$arg"; then 1290266e564dSmrg xdir= 1291266e564dSmrg else 1292266e564dSmrg xdir="$xdir/" 1293266e564dSmrg fi 1294266e564dSmrg 1295266e564dSmrg if test "$pic_object" != none; then 1296266e564dSmrg # Prepend the subdirectory the object is found in. 1297266e564dSmrg pic_object="$xdir$pic_object" 1298266e564dSmrg 1299266e564dSmrg if test "$prev" = dlfiles; then 1300266e564dSmrg if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1301266e564dSmrg dlfiles="$dlfiles $pic_object" 1302266e564dSmrg prev= 1303266e564dSmrg continue 1304266e564dSmrg else 1305266e564dSmrg # If libtool objects are unsupported, then we need to preload. 1306266e564dSmrg prev=dlprefiles 1307266e564dSmrg fi 1308266e564dSmrg fi 1309266e564dSmrg 1310266e564dSmrg # CHECK ME: I think I busted this. -Ossama 1311266e564dSmrg if test "$prev" = dlprefiles; then 1312266e564dSmrg # Preload the old-style object. 1313266e564dSmrg dlprefiles="$dlprefiles $pic_object" 1314266e564dSmrg prev= 1315266e564dSmrg fi 1316266e564dSmrg 1317266e564dSmrg # A PIC object. 1318266e564dSmrg libobjs="$libobjs $pic_object" 1319266e564dSmrg arg="$pic_object" 1320266e564dSmrg fi 1321266e564dSmrg 1322266e564dSmrg # Non-PIC object. 1323266e564dSmrg if test "$non_pic_object" != none; then 1324266e564dSmrg # Prepend the subdirectory the object is found in. 1325266e564dSmrg non_pic_object="$xdir$non_pic_object" 1326266e564dSmrg 1327266e564dSmrg # A standard non-PIC object 1328266e564dSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1329266e564dSmrg if test -z "$pic_object" || test "$pic_object" = none ; then 1330266e564dSmrg arg="$non_pic_object" 1331266e564dSmrg fi 1332266e564dSmrg else 1333266e564dSmrg # If the PIC object exists, use it instead. 1334266e564dSmrg # $xdir was prepended to $pic_object above. 1335266e564dSmrg non_pic_object="$pic_object" 1336266e564dSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1337266e564dSmrg fi 1338266e564dSmrg else 1339266e564dSmrg # Only an error if not doing a dry-run. 1340266e564dSmrg if test -z "$run"; then 1341266e564dSmrg $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1342266e564dSmrg exit $EXIT_FAILURE 1343266e564dSmrg else 1344266e564dSmrg # Dry-run case. 1345266e564dSmrg 1346266e564dSmrg # Extract subdirectory from the argument. 1347266e564dSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1348266e564dSmrg if test "X$xdir" = "X$arg"; then 1349266e564dSmrg xdir= 1350266e564dSmrg else 1351266e564dSmrg xdir="$xdir/" 1352266e564dSmrg fi 1353266e564dSmrg 1354266e564dSmrg pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1355266e564dSmrg non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1356266e564dSmrg libobjs="$libobjs $pic_object" 1357266e564dSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1358266e564dSmrg fi 1359266e564dSmrg fi 1360266e564dSmrg done 1361266e564dSmrg else 1362266e564dSmrg $echo "$modename: link input file \`$save_arg' does not exist" 1363266e564dSmrg exit $EXIT_FAILURE 1364266e564dSmrg fi 1365266e564dSmrg arg=$save_arg 1366266e564dSmrg prev= 1367266e564dSmrg continue 1368266e564dSmrg ;; 1369266e564dSmrg rpath | xrpath) 1370266e564dSmrg # We need an absolute path. 1371266e564dSmrg case $arg in 1372266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1373266e564dSmrg *) 1374266e564dSmrg $echo "$modename: only absolute run-paths are allowed" 1>&2 1375266e564dSmrg exit $EXIT_FAILURE 1376266e564dSmrg ;; 1377266e564dSmrg esac 1378266e564dSmrg if test "$prev" = rpath; then 1379266e564dSmrg case "$rpath " in 1380266e564dSmrg *" $arg "*) ;; 1381266e564dSmrg *) rpath="$rpath $arg" ;; 1382266e564dSmrg esac 1383266e564dSmrg else 1384266e564dSmrg case "$xrpath " in 1385266e564dSmrg *" $arg "*) ;; 1386266e564dSmrg *) xrpath="$xrpath $arg" ;; 1387266e564dSmrg esac 1388266e564dSmrg fi 1389266e564dSmrg prev= 1390266e564dSmrg continue 1391266e564dSmrg ;; 1392266e564dSmrg xcompiler) 1393266e564dSmrg compiler_flags="$compiler_flags $qarg" 1394266e564dSmrg prev= 1395266e564dSmrg compile_command="$compile_command $qarg" 1396266e564dSmrg finalize_command="$finalize_command $qarg" 1397266e564dSmrg continue 1398266e564dSmrg ;; 1399266e564dSmrg xlinker) 1400266e564dSmrg linker_flags="$linker_flags $qarg" 1401266e564dSmrg compiler_flags="$compiler_flags $wl$qarg" 1402266e564dSmrg prev= 1403266e564dSmrg compile_command="$compile_command $wl$qarg" 1404266e564dSmrg finalize_command="$finalize_command $wl$qarg" 1405266e564dSmrg continue 1406266e564dSmrg ;; 1407266e564dSmrg xcclinker) 1408266e564dSmrg linker_flags="$linker_flags $qarg" 1409266e564dSmrg compiler_flags="$compiler_flags $qarg" 1410266e564dSmrg prev= 1411266e564dSmrg compile_command="$compile_command $qarg" 1412266e564dSmrg finalize_command="$finalize_command $qarg" 1413266e564dSmrg continue 1414266e564dSmrg ;; 1415266e564dSmrg shrext) 1416266e564dSmrg shrext_cmds="$arg" 1417266e564dSmrg prev= 1418266e564dSmrg continue 1419266e564dSmrg ;; 1420266e564dSmrg darwin_framework|darwin_framework_skip) 1421266e564dSmrg test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 1422266e564dSmrg compile_command="$compile_command $arg" 1423266e564dSmrg finalize_command="$finalize_command $arg" 1424266e564dSmrg prev= 1425266e564dSmrg continue 1426266e564dSmrg ;; 1427266e564dSmrg *) 1428266e564dSmrg eval "$prev=\"\$arg\"" 1429266e564dSmrg prev= 1430266e564dSmrg continue 1431266e564dSmrg ;; 1432266e564dSmrg esac 1433266e564dSmrg fi # test -n "$prev" 1434266e564dSmrg 1435266e564dSmrg prevarg="$arg" 1436266e564dSmrg 1437266e564dSmrg case $arg in 1438266e564dSmrg -all-static) 1439266e564dSmrg if test -n "$link_static_flag"; then 1440266e564dSmrg compile_command="$compile_command $link_static_flag" 1441266e564dSmrg finalize_command="$finalize_command $link_static_flag" 1442266e564dSmrg fi 1443266e564dSmrg continue 1444266e564dSmrg ;; 1445266e564dSmrg 1446266e564dSmrg -allow-undefined) 1447266e564dSmrg # FIXME: remove this flag sometime in the future. 1448266e564dSmrg $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 1449266e564dSmrg continue 1450266e564dSmrg ;; 1451266e564dSmrg 1452266e564dSmrg -avoid-version) 1453266e564dSmrg avoid_version=yes 1454266e564dSmrg continue 1455266e564dSmrg ;; 1456266e564dSmrg 1457266e564dSmrg -dlopen) 1458266e564dSmrg prev=dlfiles 1459266e564dSmrg continue 1460266e564dSmrg ;; 1461266e564dSmrg 1462266e564dSmrg -dlpreopen) 1463266e564dSmrg prev=dlprefiles 1464266e564dSmrg continue 1465266e564dSmrg ;; 1466266e564dSmrg 1467266e564dSmrg -export-dynamic) 1468266e564dSmrg export_dynamic=yes 1469266e564dSmrg continue 1470266e564dSmrg ;; 1471266e564dSmrg 1472266e564dSmrg -export-symbols | -export-symbols-regex) 1473266e564dSmrg if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 1474266e564dSmrg $echo "$modename: more than one -exported-symbols argument is not allowed" 1475266e564dSmrg exit $EXIT_FAILURE 1476266e564dSmrg fi 1477266e564dSmrg if test "X$arg" = "X-export-symbols"; then 1478266e564dSmrg prev=expsyms 1479266e564dSmrg else 1480266e564dSmrg prev=expsyms_regex 1481266e564dSmrg fi 1482266e564dSmrg continue 1483266e564dSmrg ;; 1484266e564dSmrg 1485266e564dSmrg -framework|-arch|-isysroot) 1486266e564dSmrg case " $CC " in 1487266e564dSmrg *" ${arg} ${1} "* | *" ${arg} ${1} "*) 1488266e564dSmrg prev=darwin_framework_skip ;; 1489266e564dSmrg *) compiler_flags="$compiler_flags $arg" 1490266e564dSmrg prev=darwin_framework ;; 1491266e564dSmrg esac 1492266e564dSmrg compile_command="$compile_command $arg" 1493266e564dSmrg finalize_command="$finalize_command $arg" 1494266e564dSmrg continue 1495266e564dSmrg ;; 1496266e564dSmrg 1497266e564dSmrg -inst-prefix-dir) 1498266e564dSmrg prev=inst_prefix 1499266e564dSmrg continue 1500266e564dSmrg ;; 1501266e564dSmrg 1502266e564dSmrg # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 1503266e564dSmrg # so, if we see these flags be careful not to treat them like -L 1504266e564dSmrg -L[A-Z][A-Z]*:*) 1505266e564dSmrg case $with_gcc/$host in 1506266e564dSmrg no/*-*-irix* | /*-*-irix*) 1507266e564dSmrg compile_command="$compile_command $arg" 1508266e564dSmrg finalize_command="$finalize_command $arg" 1509266e564dSmrg ;; 1510266e564dSmrg esac 1511266e564dSmrg continue 1512266e564dSmrg ;; 1513266e564dSmrg 1514266e564dSmrg -L*) 1515266e564dSmrg dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 1516266e564dSmrg # We need an absolute path. 1517266e564dSmrg case $dir in 1518266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1519266e564dSmrg *) 1520266e564dSmrg absdir=`cd "$dir" && pwd` 1521266e564dSmrg if test -z "$absdir"; then 1522266e564dSmrg $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 1523266e564dSmrg absdir="$dir" 1524266e564dSmrg notinst_path="$notinst_path $dir" 1525266e564dSmrg fi 1526266e564dSmrg dir="$absdir" 1527266e564dSmrg ;; 1528266e564dSmrg esac 1529266e564dSmrg case "$deplibs " in 1530266e564dSmrg *" -L$dir "*) ;; 1531266e564dSmrg *) 1532266e564dSmrg deplibs="$deplibs -L$dir" 1533266e564dSmrg lib_search_path="$lib_search_path $dir" 1534266e564dSmrg ;; 1535266e564dSmrg esac 1536266e564dSmrg case $host in 1537266e564dSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1538266e564dSmrg testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 1539266e564dSmrg case :$dllsearchpath: in 1540266e564dSmrg *":$dir:"*) ;; 1541266e564dSmrg *) dllsearchpath="$dllsearchpath:$dir";; 1542266e564dSmrg esac 1543266e564dSmrg case :$dllsearchpath: in 1544266e564dSmrg *":$testbindir:"*) ;; 1545266e564dSmrg *) dllsearchpath="$dllsearchpath:$testbindir";; 1546266e564dSmrg esac 1547266e564dSmrg ;; 1548266e564dSmrg esac 1549266e564dSmrg continue 1550266e564dSmrg ;; 1551266e564dSmrg 1552266e564dSmrg -l*) 1553266e564dSmrg if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 1554266e564dSmrg case $host in 1555266e564dSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 1556266e564dSmrg # These systems don't actually have a C or math library (as such) 1557266e564dSmrg continue 1558266e564dSmrg ;; 1559266e564dSmrg *-*-os2*) 1560266e564dSmrg # These systems don't actually have a C library (as such) 1561266e564dSmrg test "X$arg" = "X-lc" && continue 1562266e564dSmrg ;; 1563266e564dSmrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1564266e564dSmrg # Do not include libc due to us having libc/libc_r. 1565266e564dSmrg test "X$arg" = "X-lc" && continue 1566266e564dSmrg ;; 1567266e564dSmrg *-*-rhapsody* | *-*-darwin1.[012]) 1568266e564dSmrg # Rhapsody C and math libraries are in the System framework 1569266e564dSmrg deplibs="$deplibs -framework System" 1570266e564dSmrg continue 1571266e564dSmrg ;; 1572266e564dSmrg *-*-sco3.2v5* | *-*-sco5v6*) 1573266e564dSmrg # Causes problems with __ctype 1574266e564dSmrg test "X$arg" = "X-lc" && continue 1575266e564dSmrg ;; 1576266e564dSmrg *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 1577266e564dSmrg # Compiler inserts libc in the correct place for threads to work 1578266e564dSmrg test "X$arg" = "X-lc" && continue 1579266e564dSmrg ;; 1580266e564dSmrg esac 1581266e564dSmrg elif test "X$arg" = "X-lc_r"; then 1582266e564dSmrg case $host in 1583266e564dSmrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1584266e564dSmrg # Do not include libc_r directly, use -pthread flag. 1585266e564dSmrg continue 1586266e564dSmrg ;; 1587266e564dSmrg esac 1588266e564dSmrg fi 1589266e564dSmrg deplibs="$deplibs $arg" 1590266e564dSmrg continue 1591266e564dSmrg ;; 1592266e564dSmrg 1593266e564dSmrg # Tru64 UNIX uses -model [arg] to determine the layout of C++ 1594266e564dSmrg # classes, name mangling, and exception handling. 1595266e564dSmrg -model) 1596266e564dSmrg compile_command="$compile_command $arg" 1597266e564dSmrg compiler_flags="$compiler_flags $arg" 1598266e564dSmrg finalize_command="$finalize_command $arg" 1599266e564dSmrg prev=xcompiler 1600266e564dSmrg continue 1601266e564dSmrg ;; 1602266e564dSmrg 1603266e564dSmrg -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 1604266e564dSmrg compiler_flags="$compiler_flags $arg" 1605266e564dSmrg compile_command="$compile_command $arg" 1606266e564dSmrg finalize_command="$finalize_command $arg" 1607266e564dSmrg continue 1608266e564dSmrg ;; 1609266e564dSmrg 1610266e564dSmrg -module) 1611266e564dSmrg module=yes 1612266e564dSmrg continue 1613266e564dSmrg ;; 1614266e564dSmrg 1615266e564dSmrg # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 1616266e564dSmrg # -r[0-9][0-9]* specifies the processor on the SGI compiler 1617266e564dSmrg # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 1618266e564dSmrg # +DA*, +DD* enable 64-bit mode on the HP compiler 1619266e564dSmrg # -q* pass through compiler args for the IBM compiler 1620266e564dSmrg # -m* pass through architecture-specific compiler args for GCC 1621266e564dSmrg # -m*, -t[45]*, -txscale* pass through architecture-specific 1622266e564dSmrg # compiler args for GCC 1623266e564dSmrg # -pg pass through profiling flag for GCC 1624266e564dSmrg # @file GCC response files 1625266e564dSmrg -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ 1626266e564dSmrg -t[45]*|-txscale*|@*) 1627266e564dSmrg 1628266e564dSmrg # Unknown arguments in both finalize_command and compile_command need 1629266e564dSmrg # to be aesthetically quoted because they are evaled later. 1630266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1631266e564dSmrg case $arg in 1632266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1633266e564dSmrg arg="\"$arg\"" 1634266e564dSmrg ;; 1635266e564dSmrg esac 1636266e564dSmrg compile_command="$compile_command $arg" 1637266e564dSmrg finalize_command="$finalize_command $arg" 1638266e564dSmrg compiler_flags="$compiler_flags $arg" 1639266e564dSmrg continue 1640266e564dSmrg ;; 1641266e564dSmrg 1642266e564dSmrg -shrext) 1643266e564dSmrg prev=shrext 1644266e564dSmrg continue 1645266e564dSmrg ;; 1646266e564dSmrg 1647266e564dSmrg -no-fast-install) 1648266e564dSmrg fast_install=no 1649266e564dSmrg continue 1650266e564dSmrg ;; 1651266e564dSmrg 1652266e564dSmrg -no-install) 1653266e564dSmrg case $host in 1654266e564dSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1655266e564dSmrg # The PATH hackery in wrapper scripts is required on Windows 1656266e564dSmrg # in order for the loader to find any dlls it needs. 1657266e564dSmrg $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 1658266e564dSmrg $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 1659266e564dSmrg fast_install=no 1660266e564dSmrg ;; 1661266e564dSmrg *) no_install=yes ;; 1662266e564dSmrg esac 1663266e564dSmrg continue 1664266e564dSmrg ;; 1665266e564dSmrg 1666266e564dSmrg -no-undefined) 1667266e564dSmrg allow_undefined=no 1668266e564dSmrg continue 1669266e564dSmrg ;; 1670266e564dSmrg 1671266e564dSmrg -objectlist) 1672266e564dSmrg prev=objectlist 1673266e564dSmrg continue 1674266e564dSmrg ;; 1675266e564dSmrg 1676266e564dSmrg -o) prev=output ;; 1677266e564dSmrg 1678266e564dSmrg -precious-files-regex) 1679266e564dSmrg prev=precious_regex 1680266e564dSmrg continue 1681266e564dSmrg ;; 1682266e564dSmrg 1683266e564dSmrg -release) 1684266e564dSmrg prev=release 1685266e564dSmrg continue 1686266e564dSmrg ;; 1687266e564dSmrg 1688266e564dSmrg -rpath) 1689266e564dSmrg prev=rpath 1690266e564dSmrg continue 1691266e564dSmrg ;; 1692266e564dSmrg 1693266e564dSmrg -R) 1694266e564dSmrg prev=xrpath 1695266e564dSmrg continue 1696266e564dSmrg ;; 1697266e564dSmrg 1698266e564dSmrg -R*) 1699266e564dSmrg dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 1700266e564dSmrg # We need an absolute path. 1701266e564dSmrg case $dir in 1702266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 1703266e564dSmrg *) 1704266e564dSmrg $echo "$modename: only absolute run-paths are allowed" 1>&2 1705266e564dSmrg exit $EXIT_FAILURE 1706266e564dSmrg ;; 1707266e564dSmrg esac 1708266e564dSmrg case "$xrpath " in 1709266e564dSmrg *" $dir "*) ;; 1710266e564dSmrg *) xrpath="$xrpath $dir" ;; 1711266e564dSmrg esac 1712266e564dSmrg continue 1713266e564dSmrg ;; 1714266e564dSmrg 1715266e564dSmrg -static) 1716266e564dSmrg # The effects of -static are defined in a previous loop. 1717266e564dSmrg # We used to do the same as -all-static on platforms that 1718266e564dSmrg # didn't have a PIC flag, but the assumption that the effects 1719266e564dSmrg # would be equivalent was wrong. It would break on at least 1720266e564dSmrg # Digital Unix and AIX. 1721266e564dSmrg continue 1722266e564dSmrg ;; 1723266e564dSmrg 1724266e564dSmrg -thread-safe) 1725266e564dSmrg thread_safe=yes 1726266e564dSmrg continue 1727266e564dSmrg ;; 1728266e564dSmrg 1729266e564dSmrg -version-info) 1730266e564dSmrg prev=vinfo 1731266e564dSmrg continue 1732266e564dSmrg ;; 1733266e564dSmrg -version-number) 1734266e564dSmrg prev=vinfo 1735266e564dSmrg vinfo_number=yes 1736266e564dSmrg continue 1737266e564dSmrg ;; 1738266e564dSmrg 1739266e564dSmrg -Wc,*) 1740266e564dSmrg args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 1741266e564dSmrg arg= 1742266e564dSmrg save_ifs="$IFS"; IFS=',' 1743266e564dSmrg for flag in $args; do 1744266e564dSmrg IFS="$save_ifs" 1745266e564dSmrg case $flag in 1746266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1747266e564dSmrg flag="\"$flag\"" 1748266e564dSmrg ;; 1749266e564dSmrg esac 1750266e564dSmrg arg="$arg $wl$flag" 1751266e564dSmrg compiler_flags="$compiler_flags $flag" 1752266e564dSmrg done 1753266e564dSmrg IFS="$save_ifs" 1754266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1755266e564dSmrg ;; 1756266e564dSmrg 1757266e564dSmrg -Wl,*) 1758266e564dSmrg args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 1759266e564dSmrg arg= 1760266e564dSmrg save_ifs="$IFS"; IFS=',' 1761266e564dSmrg for flag in $args; do 1762266e564dSmrg IFS="$save_ifs" 1763266e564dSmrg case $flag in 1764266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1765266e564dSmrg flag="\"$flag\"" 1766266e564dSmrg ;; 1767266e564dSmrg esac 1768266e564dSmrg arg="$arg $wl$flag" 1769266e564dSmrg compiler_flags="$compiler_flags $wl$flag" 1770266e564dSmrg linker_flags="$linker_flags $flag" 1771266e564dSmrg done 1772266e564dSmrg IFS="$save_ifs" 1773266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1774266e564dSmrg ;; 1775266e564dSmrg 1776266e564dSmrg -Xcompiler) 1777266e564dSmrg prev=xcompiler 1778266e564dSmrg continue 1779266e564dSmrg ;; 1780266e564dSmrg 1781266e564dSmrg -Xlinker) 1782266e564dSmrg prev=xlinker 1783266e564dSmrg continue 1784266e564dSmrg ;; 1785266e564dSmrg 1786266e564dSmrg -XCClinker) 1787266e564dSmrg prev=xcclinker 1788266e564dSmrg continue 1789266e564dSmrg ;; 1790266e564dSmrg 1791266e564dSmrg # Some other compiler flag. 1792266e564dSmrg -* | +*) 1793266e564dSmrg # Unknown arguments in both finalize_command and compile_command need 1794266e564dSmrg # to be aesthetically quoted because they are evaled later. 1795266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1796266e564dSmrg case $arg in 1797266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1798266e564dSmrg arg="\"$arg\"" 1799266e564dSmrg ;; 1800266e564dSmrg esac 1801266e564dSmrg ;; 1802266e564dSmrg 1803266e564dSmrg *.$objext) 1804266e564dSmrg # A standard object. 1805266e564dSmrg objs="$objs $arg" 1806266e564dSmrg ;; 1807266e564dSmrg 1808266e564dSmrg *.lo) 1809266e564dSmrg # A libtool-controlled object. 1810266e564dSmrg 1811266e564dSmrg # Check to see that this really is a libtool object. 1812266e564dSmrg if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1813266e564dSmrg pic_object= 1814266e564dSmrg non_pic_object= 1815266e564dSmrg 1816266e564dSmrg # Read the .lo file 1817266e564dSmrg # If there is no directory component, then add one. 1818266e564dSmrg case $arg in 1819266e564dSmrg */* | *\\*) . $arg ;; 1820266e564dSmrg *) . ./$arg ;; 1821266e564dSmrg esac 1822266e564dSmrg 1823266e564dSmrg if test -z "$pic_object" || \ 1824266e564dSmrg test -z "$non_pic_object" || 1825266e564dSmrg test "$pic_object" = none && \ 1826266e564dSmrg test "$non_pic_object" = none; then 1827266e564dSmrg $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1828266e564dSmrg exit $EXIT_FAILURE 1829266e564dSmrg fi 1830266e564dSmrg 1831266e564dSmrg # Extract subdirectory from the argument. 1832266e564dSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1833266e564dSmrg if test "X$xdir" = "X$arg"; then 1834266e564dSmrg xdir= 1835266e564dSmrg else 1836266e564dSmrg xdir="$xdir/" 1837266e564dSmrg fi 1838266e564dSmrg 1839266e564dSmrg if test "$pic_object" != none; then 1840266e564dSmrg # Prepend the subdirectory the object is found in. 1841266e564dSmrg pic_object="$xdir$pic_object" 1842266e564dSmrg 1843266e564dSmrg if test "$prev" = dlfiles; then 1844266e564dSmrg if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1845266e564dSmrg dlfiles="$dlfiles $pic_object" 1846266e564dSmrg prev= 1847266e564dSmrg continue 1848266e564dSmrg else 1849266e564dSmrg # If libtool objects are unsupported, then we need to preload. 1850266e564dSmrg prev=dlprefiles 1851266e564dSmrg fi 1852266e564dSmrg fi 1853266e564dSmrg 1854266e564dSmrg # CHECK ME: I think I busted this. -Ossama 1855266e564dSmrg if test "$prev" = dlprefiles; then 1856266e564dSmrg # Preload the old-style object. 1857266e564dSmrg dlprefiles="$dlprefiles $pic_object" 1858266e564dSmrg prev= 1859266e564dSmrg fi 1860266e564dSmrg 1861266e564dSmrg # A PIC object. 1862266e564dSmrg libobjs="$libobjs $pic_object" 1863266e564dSmrg arg="$pic_object" 1864266e564dSmrg fi 1865266e564dSmrg 1866266e564dSmrg # Non-PIC object. 1867266e564dSmrg if test "$non_pic_object" != none; then 1868266e564dSmrg # Prepend the subdirectory the object is found in. 1869266e564dSmrg non_pic_object="$xdir$non_pic_object" 1870266e564dSmrg 1871266e564dSmrg # A standard non-PIC object 1872266e564dSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1873266e564dSmrg if test -z "$pic_object" || test "$pic_object" = none ; then 1874266e564dSmrg arg="$non_pic_object" 1875266e564dSmrg fi 1876266e564dSmrg else 1877266e564dSmrg # If the PIC object exists, use it instead. 1878266e564dSmrg # $xdir was prepended to $pic_object above. 1879266e564dSmrg non_pic_object="$pic_object" 1880266e564dSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1881266e564dSmrg fi 1882266e564dSmrg else 1883266e564dSmrg # Only an error if not doing a dry-run. 1884266e564dSmrg if test -z "$run"; then 1885266e564dSmrg $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1886266e564dSmrg exit $EXIT_FAILURE 1887266e564dSmrg else 1888266e564dSmrg # Dry-run case. 1889266e564dSmrg 1890266e564dSmrg # Extract subdirectory from the argument. 1891266e564dSmrg xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1892266e564dSmrg if test "X$xdir" = "X$arg"; then 1893266e564dSmrg xdir= 1894266e564dSmrg else 1895266e564dSmrg xdir="$xdir/" 1896266e564dSmrg fi 1897266e564dSmrg 1898266e564dSmrg pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1899266e564dSmrg non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1900266e564dSmrg libobjs="$libobjs $pic_object" 1901266e564dSmrg non_pic_objects="$non_pic_objects $non_pic_object" 1902266e564dSmrg fi 1903266e564dSmrg fi 1904266e564dSmrg ;; 1905266e564dSmrg 1906266e564dSmrg *.$libext) 1907266e564dSmrg # An archive. 1908266e564dSmrg deplibs="$deplibs $arg" 1909266e564dSmrg old_deplibs="$old_deplibs $arg" 1910266e564dSmrg continue 1911266e564dSmrg ;; 1912266e564dSmrg 1913266e564dSmrg *.la) 1914266e564dSmrg # A libtool-controlled library. 1915266e564dSmrg 1916266e564dSmrg if test "$prev" = dlfiles; then 1917266e564dSmrg # This library was specified with -dlopen. 1918266e564dSmrg dlfiles="$dlfiles $arg" 1919266e564dSmrg prev= 1920266e564dSmrg elif test "$prev" = dlprefiles; then 1921266e564dSmrg # The library was specified with -dlpreopen. 1922266e564dSmrg dlprefiles="$dlprefiles $arg" 1923266e564dSmrg prev= 1924266e564dSmrg else 1925266e564dSmrg deplibs="$deplibs $arg" 1926266e564dSmrg fi 1927266e564dSmrg continue 1928266e564dSmrg ;; 1929266e564dSmrg 1930266e564dSmrg # Some other compiler argument. 1931266e564dSmrg *) 1932266e564dSmrg # Unknown arguments in both finalize_command and compile_command need 1933266e564dSmrg # to be aesthetically quoted because they are evaled later. 1934266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1935266e564dSmrg case $arg in 1936266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1937266e564dSmrg arg="\"$arg\"" 1938266e564dSmrg ;; 1939266e564dSmrg esac 1940266e564dSmrg ;; 1941266e564dSmrg esac # arg 1942266e564dSmrg 1943266e564dSmrg # Now actually substitute the argument into the commands. 1944266e564dSmrg if test -n "$arg"; then 1945266e564dSmrg compile_command="$compile_command $arg" 1946266e564dSmrg finalize_command="$finalize_command $arg" 1947266e564dSmrg fi 1948266e564dSmrg done # argument parsing loop 1949266e564dSmrg 1950266e564dSmrg if test -n "$prev"; then 1951266e564dSmrg $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 1952266e564dSmrg $echo "$help" 1>&2 1953266e564dSmrg exit $EXIT_FAILURE 1954266e564dSmrg fi 1955266e564dSmrg 1956266e564dSmrg if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 1957266e564dSmrg eval arg=\"$export_dynamic_flag_spec\" 1958266e564dSmrg compile_command="$compile_command $arg" 1959266e564dSmrg finalize_command="$finalize_command $arg" 1960266e564dSmrg fi 1961266e564dSmrg 1962266e564dSmrg oldlibs= 1963266e564dSmrg # calculate the name of the file, without its directory 1964266e564dSmrg outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 1965266e564dSmrg libobjs_save="$libobjs" 1966266e564dSmrg 1967266e564dSmrg if test -n "$shlibpath_var"; then 1968266e564dSmrg # get the directories listed in $shlibpath_var 1969266e564dSmrg eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 1970266e564dSmrg else 1971266e564dSmrg shlib_search_path= 1972266e564dSmrg fi 1973266e564dSmrg eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 1974266e564dSmrg eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 1975266e564dSmrg 1976266e564dSmrg output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 1977266e564dSmrg if test "X$output_objdir" = "X$output"; then 1978266e564dSmrg output_objdir="$objdir" 1979266e564dSmrg else 1980266e564dSmrg output_objdir="$output_objdir/$objdir" 1981266e564dSmrg fi 1982266e564dSmrg # Create the object directory. 1983266e564dSmrg if test ! -d "$output_objdir"; then 1984266e564dSmrg $show "$mkdir $output_objdir" 1985266e564dSmrg $run $mkdir $output_objdir 1986266e564dSmrg exit_status=$? 1987266e564dSmrg if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 1988266e564dSmrg exit $exit_status 1989266e564dSmrg fi 1990266e564dSmrg fi 1991266e564dSmrg 1992266e564dSmrg # Determine the type of output 1993266e564dSmrg case $output in 1994266e564dSmrg "") 1995266e564dSmrg $echo "$modename: you must specify an output file" 1>&2 1996266e564dSmrg $echo "$help" 1>&2 1997266e564dSmrg exit $EXIT_FAILURE 1998266e564dSmrg ;; 1999266e564dSmrg *.$libext) linkmode=oldlib ;; 2000266e564dSmrg *.lo | *.$objext) linkmode=obj ;; 2001266e564dSmrg *.la) linkmode=lib ;; 2002266e564dSmrg *) linkmode=prog ;; # Anything else should be a program. 2003266e564dSmrg esac 2004266e564dSmrg 2005266e564dSmrg case $host in 2006266e564dSmrg *cygwin* | *mingw* | *pw32*) 2007266e564dSmrg # don't eliminate duplications in $postdeps and $predeps 2008266e564dSmrg duplicate_compiler_generated_deps=yes 2009266e564dSmrg ;; 2010266e564dSmrg *) 2011266e564dSmrg duplicate_compiler_generated_deps=$duplicate_deps 2012266e564dSmrg ;; 2013266e564dSmrg esac 2014266e564dSmrg specialdeplibs= 2015266e564dSmrg 2016266e564dSmrg libs= 2017266e564dSmrg # Find all interdependent deplibs by searching for libraries 2018266e564dSmrg # that are linked more than once (e.g. -la -lb -la) 2019266e564dSmrg for deplib in $deplibs; do 2020266e564dSmrg if test "X$duplicate_deps" = "Xyes" ; then 2021266e564dSmrg case "$libs " in 2022266e564dSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2023266e564dSmrg esac 2024266e564dSmrg fi 2025266e564dSmrg libs="$libs $deplib" 2026266e564dSmrg done 2027266e564dSmrg 2028266e564dSmrg if test "$linkmode" = lib; then 2029266e564dSmrg libs="$predeps $libs $compiler_lib_search_path $postdeps" 2030266e564dSmrg 2031266e564dSmrg # Compute libraries that are listed more than once in $predeps 2032266e564dSmrg # $postdeps and mark them as special (i.e., whose duplicates are 2033266e564dSmrg # not to be eliminated). 2034266e564dSmrg pre_post_deps= 2035266e564dSmrg if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 2036266e564dSmrg for pre_post_dep in $predeps $postdeps; do 2037266e564dSmrg case "$pre_post_deps " in 2038266e564dSmrg *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 2039266e564dSmrg esac 2040266e564dSmrg pre_post_deps="$pre_post_deps $pre_post_dep" 2041266e564dSmrg done 2042266e564dSmrg fi 2043266e564dSmrg pre_post_deps= 2044266e564dSmrg fi 2045266e564dSmrg 2046266e564dSmrg deplibs= 2047266e564dSmrg newdependency_libs= 2048266e564dSmrg newlib_search_path= 2049266e564dSmrg need_relink=no # whether we're linking any uninstalled libtool libraries 2050266e564dSmrg notinst_deplibs= # not-installed libtool libraries 2051266e564dSmrg case $linkmode in 2052266e564dSmrg lib) 2053266e564dSmrg passes="conv link" 2054266e564dSmrg for file in $dlfiles $dlprefiles; do 2055266e564dSmrg case $file in 2056266e564dSmrg *.la) ;; 2057266e564dSmrg *) 2058266e564dSmrg $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 2059266e564dSmrg exit $EXIT_FAILURE 2060266e564dSmrg ;; 2061266e564dSmrg esac 2062266e564dSmrg done 2063266e564dSmrg ;; 2064266e564dSmrg prog) 2065266e564dSmrg compile_deplibs= 2066266e564dSmrg finalize_deplibs= 2067266e564dSmrg alldeplibs=no 2068266e564dSmrg newdlfiles= 2069266e564dSmrg newdlprefiles= 2070266e564dSmrg passes="conv scan dlopen dlpreopen link" 2071266e564dSmrg ;; 2072266e564dSmrg *) passes="conv" 2073266e564dSmrg ;; 2074266e564dSmrg esac 2075266e564dSmrg for pass in $passes; do 2076266e564dSmrg if test "$linkmode,$pass" = "lib,link" || 2077266e564dSmrg test "$linkmode,$pass" = "prog,scan"; then 2078266e564dSmrg libs="$deplibs" 2079266e564dSmrg deplibs= 2080266e564dSmrg fi 2081266e564dSmrg if test "$linkmode" = prog; then 2082266e564dSmrg case $pass in 2083266e564dSmrg dlopen) libs="$dlfiles" ;; 2084266e564dSmrg dlpreopen) libs="$dlprefiles" ;; 2085266e564dSmrg link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; 2086266e564dSmrg esac 2087266e564dSmrg fi 2088266e564dSmrg if test "$pass" = dlopen; then 2089266e564dSmrg # Collect dlpreopened libraries 2090266e564dSmrg save_deplibs="$deplibs" 2091266e564dSmrg deplibs= 2092266e564dSmrg fi 2093266e564dSmrg for deplib in $libs; do 2094266e564dSmrg lib= 2095266e564dSmrg found=no 2096266e564dSmrg case $deplib in 2097266e564dSmrg -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 2098266e564dSmrg if test "$linkmode,$pass" = "prog,link"; then 2099266e564dSmrg compile_deplibs="$deplib $compile_deplibs" 2100266e564dSmrg finalize_deplibs="$deplib $finalize_deplibs" 2101266e564dSmrg else 2102266e564dSmrg compiler_flags="$compiler_flags $deplib" 2103266e564dSmrg fi 2104266e564dSmrg continue 2105266e564dSmrg ;; 2106266e564dSmrg -l*) 2107266e564dSmrg if test "$linkmode" != lib && test "$linkmode" != prog; then 2108266e564dSmrg $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 2109266e564dSmrg continue 2110266e564dSmrg fi 2111266e564dSmrg name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 2112266e564dSmrg for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do 2113266e564dSmrg for search_ext in .la $std_shrext .so .a; do 2114266e564dSmrg # Search the libtool library 2115266e564dSmrg lib="$searchdir/lib${name}${search_ext}" 2116266e564dSmrg if test -f "$lib"; then 2117266e564dSmrg if test "$search_ext" = ".la"; then 2118266e564dSmrg found=yes 2119266e564dSmrg else 2120266e564dSmrg found=no 2121266e564dSmrg fi 2122266e564dSmrg break 2 2123266e564dSmrg fi 2124266e564dSmrg done 2125266e564dSmrg done 2126266e564dSmrg if test "$found" != yes; then 2127266e564dSmrg # deplib doesn't seem to be a libtool library 2128266e564dSmrg if test "$linkmode,$pass" = "prog,link"; then 2129266e564dSmrg compile_deplibs="$deplib $compile_deplibs" 2130266e564dSmrg finalize_deplibs="$deplib $finalize_deplibs" 2131266e564dSmrg else 2132266e564dSmrg deplibs="$deplib $deplibs" 2133266e564dSmrg test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2134266e564dSmrg fi 2135266e564dSmrg continue 2136266e564dSmrg else # deplib is a libtool library 2137266e564dSmrg # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 2138266e564dSmrg # We need to do some special things here, and not later. 2139266e564dSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 2140266e564dSmrg case " $predeps $postdeps " in 2141266e564dSmrg *" $deplib "*) 2142266e564dSmrg if (${SED} -e '2q' $lib | 2143266e564dSmrg grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 2144266e564dSmrg library_names= 2145266e564dSmrg old_library= 2146266e564dSmrg case $lib in 2147266e564dSmrg */* | *\\*) . $lib ;; 2148266e564dSmrg *) . ./$lib ;; 2149266e564dSmrg esac 2150266e564dSmrg for l in $old_library $library_names; do 2151266e564dSmrg ll="$l" 2152266e564dSmrg done 2153266e564dSmrg if test "X$ll" = "X$old_library" ; then # only static version available 2154266e564dSmrg found=no 2155266e564dSmrg ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2156266e564dSmrg test "X$ladir" = "X$lib" && ladir="." 2157266e564dSmrg lib=$ladir/$old_library 2158266e564dSmrg if test "$linkmode,$pass" = "prog,link"; then 2159266e564dSmrg compile_deplibs="$deplib $compile_deplibs" 2160266e564dSmrg finalize_deplibs="$deplib $finalize_deplibs" 2161266e564dSmrg else 2162266e564dSmrg deplibs="$deplib $deplibs" 2163266e564dSmrg test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2164266e564dSmrg fi 2165266e564dSmrg continue 2166266e564dSmrg fi 2167266e564dSmrg fi 2168266e564dSmrg ;; 2169266e564dSmrg *) ;; 2170266e564dSmrg esac 2171266e564dSmrg fi 2172266e564dSmrg fi 2173266e564dSmrg ;; # -l 2174266e564dSmrg -L*) 2175266e564dSmrg case $linkmode in 2176266e564dSmrg lib) 2177266e564dSmrg deplibs="$deplib $deplibs" 2178266e564dSmrg test "$pass" = conv && continue 2179266e564dSmrg newdependency_libs="$deplib $newdependency_libs" 2180266e564dSmrg newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2181266e564dSmrg ;; 2182266e564dSmrg prog) 2183266e564dSmrg if test "$pass" = conv; then 2184266e564dSmrg deplibs="$deplib $deplibs" 2185266e564dSmrg continue 2186266e564dSmrg fi 2187266e564dSmrg if test "$pass" = scan; then 2188266e564dSmrg deplibs="$deplib $deplibs" 2189266e564dSmrg else 2190266e564dSmrg compile_deplibs="$deplib $compile_deplibs" 2191266e564dSmrg finalize_deplibs="$deplib $finalize_deplibs" 2192266e564dSmrg fi 2193266e564dSmrg newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2194266e564dSmrg ;; 2195266e564dSmrg *) 2196266e564dSmrg $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 2197266e564dSmrg ;; 2198266e564dSmrg esac # linkmode 2199266e564dSmrg continue 2200266e564dSmrg ;; # -L 2201266e564dSmrg -R*) 2202266e564dSmrg if test "$pass" = link; then 2203266e564dSmrg dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 2204266e564dSmrg # Make sure the xrpath contains only unique directories. 2205266e564dSmrg case "$xrpath " in 2206266e564dSmrg *" $dir "*) ;; 2207266e564dSmrg *) xrpath="$xrpath $dir" ;; 2208266e564dSmrg esac 2209266e564dSmrg fi 2210266e564dSmrg deplibs="$deplib $deplibs" 2211266e564dSmrg continue 2212266e564dSmrg ;; 2213266e564dSmrg *.la) lib="$deplib" ;; 2214266e564dSmrg *.$libext) 2215266e564dSmrg if test "$pass" = conv; then 2216266e564dSmrg deplibs="$deplib $deplibs" 2217266e564dSmrg continue 2218266e564dSmrg fi 2219266e564dSmrg case $linkmode in 2220266e564dSmrg lib) 2221266e564dSmrg valid_a_lib=no 2222266e564dSmrg case $deplibs_check_method in 2223266e564dSmrg match_pattern*) 2224266e564dSmrg set dummy $deplibs_check_method 2225266e564dSmrg match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 2226266e564dSmrg if eval $echo \"$deplib\" 2>/dev/null \ 2227266e564dSmrg | $SED 10q \ 2228266e564dSmrg | $EGREP "$match_pattern_regex" > /dev/null; then 2229266e564dSmrg valid_a_lib=yes 2230266e564dSmrg fi 2231266e564dSmrg ;; 2232266e564dSmrg pass_all) 2233266e564dSmrg valid_a_lib=yes 2234266e564dSmrg ;; 2235266e564dSmrg esac 2236266e564dSmrg if test "$valid_a_lib" != yes; then 2237266e564dSmrg $echo 2238266e564dSmrg $echo "*** Warning: Trying to link with static lib archive $deplib." 2239266e564dSmrg $echo "*** I have the capability to make that library automatically link in when" 2240266e564dSmrg $echo "*** you link to this library. But I can only do this if you have a" 2241266e564dSmrg $echo "*** shared version of the library, which you do not appear to have" 2242266e564dSmrg $echo "*** because the file extensions .$libext of this argument makes me believe" 2243266e564dSmrg $echo "*** that it is just a static archive that I should not used here." 2244266e564dSmrg else 2245266e564dSmrg $echo 2246266e564dSmrg $echo "*** Warning: Linking the shared library $output against the" 2247266e564dSmrg $echo "*** static library $deplib is not portable!" 2248266e564dSmrg deplibs="$deplib $deplibs" 2249266e564dSmrg fi 2250266e564dSmrg continue 2251266e564dSmrg ;; 2252266e564dSmrg prog) 2253266e564dSmrg if test "$pass" != link; then 2254266e564dSmrg deplibs="$deplib $deplibs" 2255266e564dSmrg else 2256266e564dSmrg compile_deplibs="$deplib $compile_deplibs" 2257266e564dSmrg finalize_deplibs="$deplib $finalize_deplibs" 2258266e564dSmrg fi 2259266e564dSmrg continue 2260266e564dSmrg ;; 2261266e564dSmrg esac # linkmode 2262266e564dSmrg ;; # *.$libext 2263266e564dSmrg *.lo | *.$objext) 2264266e564dSmrg if test "$pass" = conv; then 2265266e564dSmrg deplibs="$deplib $deplibs" 2266266e564dSmrg elif test "$linkmode" = prog; then 2267266e564dSmrg if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 2268266e564dSmrg # If there is no dlopen support or we're linking statically, 2269266e564dSmrg # we need to preload. 2270266e564dSmrg newdlprefiles="$newdlprefiles $deplib" 2271266e564dSmrg compile_deplibs="$deplib $compile_deplibs" 2272266e564dSmrg finalize_deplibs="$deplib $finalize_deplibs" 2273266e564dSmrg else 2274266e564dSmrg newdlfiles="$newdlfiles $deplib" 2275266e564dSmrg fi 2276266e564dSmrg fi 2277266e564dSmrg continue 2278266e564dSmrg ;; 2279266e564dSmrg %DEPLIBS%) 2280266e564dSmrg alldeplibs=yes 2281266e564dSmrg continue 2282266e564dSmrg ;; 2283266e564dSmrg esac # case $deplib 2284266e564dSmrg if test "$found" = yes || test -f "$lib"; then : 2285266e564dSmrg else 2286266e564dSmrg $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 2287266e564dSmrg exit $EXIT_FAILURE 2288266e564dSmrg fi 2289266e564dSmrg 2290266e564dSmrg # Check to see that this really is a libtool archive. 2291266e564dSmrg if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 2292266e564dSmrg else 2293266e564dSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 2294266e564dSmrg exit $EXIT_FAILURE 2295266e564dSmrg fi 2296266e564dSmrg 2297266e564dSmrg ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2298266e564dSmrg test "X$ladir" = "X$lib" && ladir="." 2299266e564dSmrg 2300266e564dSmrg dlname= 2301266e564dSmrg dlopen= 2302266e564dSmrg dlpreopen= 2303266e564dSmrg libdir= 2304266e564dSmrg library_names= 2305266e564dSmrg old_library= 2306266e564dSmrg # If the library was installed with an old release of libtool, 2307266e564dSmrg # it will not redefine variables installed, or shouldnotlink 2308266e564dSmrg installed=yes 2309266e564dSmrg shouldnotlink=no 2310266e564dSmrg avoidtemprpath= 2311266e564dSmrg 2312266e564dSmrg 2313266e564dSmrg # Read the .la file 2314266e564dSmrg case $lib in 2315266e564dSmrg */* | *\\*) . $lib ;; 2316266e564dSmrg *) . ./$lib ;; 2317266e564dSmrg esac 2318266e564dSmrg 2319266e564dSmrg if test "$linkmode,$pass" = "lib,link" || 2320266e564dSmrg test "$linkmode,$pass" = "prog,scan" || 2321266e564dSmrg { test "$linkmode" != prog && test "$linkmode" != lib; }; then 2322266e564dSmrg test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 2323266e564dSmrg test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 2324266e564dSmrg fi 2325266e564dSmrg 2326266e564dSmrg if test "$pass" = conv; then 2327266e564dSmrg # Only check for convenience libraries 2328266e564dSmrg deplibs="$lib $deplibs" 2329266e564dSmrg if test -z "$libdir"; then 2330266e564dSmrg if test -z "$old_library"; then 2331266e564dSmrg $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2332266e564dSmrg exit $EXIT_FAILURE 2333266e564dSmrg fi 2334266e564dSmrg # It is a libtool convenience library, so add in its objects. 2335266e564dSmrg convenience="$convenience $ladir/$objdir/$old_library" 2336266e564dSmrg old_convenience="$old_convenience $ladir/$objdir/$old_library" 2337266e564dSmrg tmp_libs= 2338266e564dSmrg for deplib in $dependency_libs; do 2339266e564dSmrg deplibs="$deplib $deplibs" 2340266e564dSmrg if test "X$duplicate_deps" = "Xyes" ; then 2341266e564dSmrg case "$tmp_libs " in 2342266e564dSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2343266e564dSmrg esac 2344266e564dSmrg fi 2345266e564dSmrg tmp_libs="$tmp_libs $deplib" 2346266e564dSmrg done 2347266e564dSmrg elif test "$linkmode" != prog && test "$linkmode" != lib; then 2348266e564dSmrg $echo "$modename: \`$lib' is not a convenience library" 1>&2 2349266e564dSmrg exit $EXIT_FAILURE 2350266e564dSmrg fi 2351266e564dSmrg continue 2352266e564dSmrg fi # $pass = conv 2353266e564dSmrg 2354266e564dSmrg 2355266e564dSmrg # Get the name of the library we link against. 2356266e564dSmrg linklib= 2357266e564dSmrg for l in $old_library $library_names; do 2358266e564dSmrg linklib="$l" 2359266e564dSmrg done 2360266e564dSmrg if test -z "$linklib"; then 2361266e564dSmrg $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2362266e564dSmrg exit $EXIT_FAILURE 2363266e564dSmrg fi 2364266e564dSmrg 2365266e564dSmrg # This library was specified with -dlopen. 2366266e564dSmrg if test "$pass" = dlopen; then 2367266e564dSmrg if test -z "$libdir"; then 2368266e564dSmrg $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 2369266e564dSmrg exit $EXIT_FAILURE 2370266e564dSmrg fi 2371266e564dSmrg if test -z "$dlname" || 2372266e564dSmrg test "$dlopen_support" != yes || 2373266e564dSmrg test "$build_libtool_libs" = no; then 2374266e564dSmrg # If there is no dlname, no dlopen support or we're linking 2375266e564dSmrg # statically, we need to preload. We also need to preload any 2376266e564dSmrg # dependent libraries so libltdl's deplib preloader doesn't 2377266e564dSmrg # bomb out in the load deplibs phase. 2378266e564dSmrg dlprefiles="$dlprefiles $lib $dependency_libs" 2379266e564dSmrg else 2380266e564dSmrg newdlfiles="$newdlfiles $lib" 2381266e564dSmrg fi 2382266e564dSmrg continue 2383266e564dSmrg fi # $pass = dlopen 2384266e564dSmrg 2385266e564dSmrg # We need an absolute path. 2386266e564dSmrg case $ladir in 2387266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 2388266e564dSmrg *) 2389266e564dSmrg abs_ladir=`cd "$ladir" && pwd` 2390266e564dSmrg if test -z "$abs_ladir"; then 2391266e564dSmrg $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 2392266e564dSmrg $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 2393266e564dSmrg abs_ladir="$ladir" 2394266e564dSmrg fi 2395266e564dSmrg ;; 2396266e564dSmrg esac 2397266e564dSmrg laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 2398266e564dSmrg 2399266e564dSmrg # Find the relevant object directory and library name. 2400266e564dSmrg if test "X$installed" = Xyes; then 2401266e564dSmrg if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2402266e564dSmrg $echo "$modename: warning: library \`$lib' was moved." 1>&2 2403266e564dSmrg dir="$ladir" 2404266e564dSmrg absdir="$abs_ladir" 2405266e564dSmrg libdir="$abs_ladir" 2406266e564dSmrg else 2407266e564dSmrg dir="$libdir" 2408266e564dSmrg absdir="$libdir" 2409266e564dSmrg fi 2410266e564dSmrg test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 2411266e564dSmrg else 2412266e564dSmrg if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2413266e564dSmrg dir="$ladir" 2414266e564dSmrg absdir="$abs_ladir" 2415266e564dSmrg # Remove this search path later 2416266e564dSmrg notinst_path="$notinst_path $abs_ladir" 2417266e564dSmrg else 2418266e564dSmrg dir="$ladir/$objdir" 2419266e564dSmrg absdir="$abs_ladir/$objdir" 2420266e564dSmrg # Remove this search path later 2421266e564dSmrg notinst_path="$notinst_path $abs_ladir" 2422266e564dSmrg fi 2423266e564dSmrg fi # $installed = yes 2424266e564dSmrg name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 2425266e564dSmrg 2426266e564dSmrg # This library was specified with -dlpreopen. 2427266e564dSmrg if test "$pass" = dlpreopen; then 2428266e564dSmrg if test -z "$libdir"; then 2429266e564dSmrg $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 2430266e564dSmrg exit $EXIT_FAILURE 2431266e564dSmrg fi 2432266e564dSmrg # Prefer using a static library (so that no silly _DYNAMIC symbols 2433266e564dSmrg # are required to link). 2434266e564dSmrg if test -n "$old_library"; then 2435266e564dSmrg newdlprefiles="$newdlprefiles $dir/$old_library" 2436266e564dSmrg # Otherwise, use the dlname, so that lt_dlopen finds it. 2437266e564dSmrg elif test -n "$dlname"; then 2438266e564dSmrg newdlprefiles="$newdlprefiles $dir/$dlname" 2439266e564dSmrg else 2440266e564dSmrg newdlprefiles="$newdlprefiles $dir/$linklib" 2441266e564dSmrg fi 2442266e564dSmrg fi # $pass = dlpreopen 2443266e564dSmrg 2444266e564dSmrg if test -z "$libdir"; then 2445266e564dSmrg # Link the convenience library 2446266e564dSmrg if test "$linkmode" = lib; then 2447266e564dSmrg deplibs="$dir/$old_library $deplibs" 2448266e564dSmrg elif test "$linkmode,$pass" = "prog,link"; then 2449266e564dSmrg compile_deplibs="$dir/$old_library $compile_deplibs" 2450266e564dSmrg finalize_deplibs="$dir/$old_library $finalize_deplibs" 2451266e564dSmrg else 2452266e564dSmrg deplibs="$lib $deplibs" # used for prog,scan pass 2453266e564dSmrg fi 2454266e564dSmrg continue 2455266e564dSmrg fi 2456266e564dSmrg 2457266e564dSmrg 2458266e564dSmrg if test "$linkmode" = prog && test "$pass" != link; then 2459266e564dSmrg newlib_search_path="$newlib_search_path $ladir" 2460266e564dSmrg deplibs="$lib $deplibs" 2461266e564dSmrg 2462266e564dSmrg linkalldeplibs=no 2463266e564dSmrg if test "$link_all_deplibs" != no || test -z "$library_names" || 2464266e564dSmrg test "$build_libtool_libs" = no; then 2465266e564dSmrg linkalldeplibs=yes 2466266e564dSmrg fi 2467266e564dSmrg 2468266e564dSmrg tmp_libs= 2469266e564dSmrg for deplib in $dependency_libs; do 2470266e564dSmrg case $deplib in 2471266e564dSmrg -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 2472266e564dSmrg esac 2473266e564dSmrg # Need to link against all dependency_libs? 2474266e564dSmrg if test "$linkalldeplibs" = yes; then 2475266e564dSmrg deplibs="$deplib $deplibs" 2476266e564dSmrg else 2477266e564dSmrg # Need to hardcode shared library paths 2478266e564dSmrg # or/and link against static libraries 2479266e564dSmrg newdependency_libs="$deplib $newdependency_libs" 2480266e564dSmrg fi 2481266e564dSmrg if test "X$duplicate_deps" = "Xyes" ; then 2482266e564dSmrg case "$tmp_libs " in 2483266e564dSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2484266e564dSmrg esac 2485266e564dSmrg fi 2486266e564dSmrg tmp_libs="$tmp_libs $deplib" 2487266e564dSmrg done # for deplib 2488266e564dSmrg continue 2489266e564dSmrg fi # $linkmode = prog... 2490266e564dSmrg 2491266e564dSmrg if test "$linkmode,$pass" = "prog,link"; then 2492266e564dSmrg if test -n "$library_names" && 2493266e564dSmrg { test "$prefer_static_libs" = no || test -z "$old_library"; }; then 2494266e564dSmrg # We need to hardcode the library path 2495266e564dSmrg if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 2496266e564dSmrg # Make sure the rpath contains only unique directories. 2497266e564dSmrg case "$temp_rpath " in 2498266e564dSmrg *" $dir "*) ;; 2499266e564dSmrg *" $absdir "*) ;; 2500266e564dSmrg *) temp_rpath="$temp_rpath $absdir" ;; 2501266e564dSmrg esac 2502266e564dSmrg fi 2503266e564dSmrg 2504266e564dSmrg # Hardcode the library path. 2505266e564dSmrg # Skip directories that are in the system default run-time 2506266e564dSmrg # search path. 2507266e564dSmrg case " $sys_lib_dlsearch_path " in 2508266e564dSmrg *" $absdir "*) ;; 2509266e564dSmrg *) 2510266e564dSmrg case "$compile_rpath " in 2511266e564dSmrg *" $absdir "*) ;; 2512266e564dSmrg *) compile_rpath="$compile_rpath $absdir" 2513266e564dSmrg esac 2514266e564dSmrg ;; 2515266e564dSmrg esac 2516266e564dSmrg case " $sys_lib_dlsearch_path " in 2517266e564dSmrg *" $libdir "*) ;; 2518266e564dSmrg *) 2519266e564dSmrg case "$finalize_rpath " in 2520266e564dSmrg *" $libdir "*) ;; 2521266e564dSmrg *) finalize_rpath="$finalize_rpath $libdir" 2522266e564dSmrg esac 2523266e564dSmrg ;; 2524266e564dSmrg esac 2525266e564dSmrg fi # $linkmode,$pass = prog,link... 2526266e564dSmrg 2527266e564dSmrg if test "$alldeplibs" = yes && 2528266e564dSmrg { test "$deplibs_check_method" = pass_all || 2529266e564dSmrg { test "$build_libtool_libs" = yes && 2530266e564dSmrg test -n "$library_names"; }; }; then 2531266e564dSmrg # We only need to search for static libraries 2532266e564dSmrg continue 2533266e564dSmrg fi 2534266e564dSmrg fi 2535266e564dSmrg 2536266e564dSmrg link_static=no # Whether the deplib will be linked statically 2537266e564dSmrg use_static_libs=$prefer_static_libs 2538266e564dSmrg if test "$use_static_libs" = built && test "$installed" = yes ; then 2539266e564dSmrg use_static_libs=no 2540266e564dSmrg fi 2541266e564dSmrg if test -n "$library_names" && 2542266e564dSmrg { test "$use_static_libs" = no || test -z "$old_library"; }; then 2543266e564dSmrg if test "$installed" = no; then 2544266e564dSmrg notinst_deplibs="$notinst_deplibs $lib" 2545266e564dSmrg need_relink=yes 2546266e564dSmrg fi 2547266e564dSmrg # This is a shared library 2548266e564dSmrg 2549266e564dSmrg # Warn about portability, can't link against -module's on 2550266e564dSmrg # some systems (darwin) 2551266e564dSmrg if test "$shouldnotlink" = yes && test "$pass" = link ; then 2552266e564dSmrg $echo 2553266e564dSmrg if test "$linkmode" = prog; then 2554266e564dSmrg $echo "*** Warning: Linking the executable $output against the loadable module" 2555266e564dSmrg else 2556266e564dSmrg $echo "*** Warning: Linking the shared library $output against the loadable module" 2557266e564dSmrg fi 2558266e564dSmrg $echo "*** $linklib is not portable!" 2559266e564dSmrg fi 2560266e564dSmrg if test "$linkmode" = lib && 2561266e564dSmrg test "$hardcode_into_libs" = yes; then 2562266e564dSmrg # Hardcode the library path. 2563266e564dSmrg # Skip directories that are in the system default run-time 2564266e564dSmrg # search path. 2565266e564dSmrg case " $sys_lib_dlsearch_path " in 2566266e564dSmrg *" $absdir "*) ;; 2567266e564dSmrg *) 2568266e564dSmrg case "$compile_rpath " in 2569266e564dSmrg *" $absdir "*) ;; 2570266e564dSmrg *) compile_rpath="$compile_rpath $absdir" 2571266e564dSmrg esac 2572266e564dSmrg ;; 2573266e564dSmrg esac 2574266e564dSmrg case " $sys_lib_dlsearch_path " in 2575266e564dSmrg *" $libdir "*) ;; 2576266e564dSmrg *) 2577266e564dSmrg case "$finalize_rpath " in 2578266e564dSmrg *" $libdir "*) ;; 2579266e564dSmrg *) finalize_rpath="$finalize_rpath $libdir" 2580266e564dSmrg esac 2581266e564dSmrg ;; 2582266e564dSmrg esac 2583266e564dSmrg fi 2584266e564dSmrg 2585266e564dSmrg if test -n "$old_archive_from_expsyms_cmds"; then 2586266e564dSmrg # figure out the soname 2587266e564dSmrg set dummy $library_names 2588266e564dSmrg realname="$2" 2589266e564dSmrg shift; shift 2590266e564dSmrg libname=`eval \\$echo \"$libname_spec\"` 2591266e564dSmrg # use dlname if we got it. it's perfectly good, no? 2592266e564dSmrg if test -n "$dlname"; then 2593266e564dSmrg soname="$dlname" 2594266e564dSmrg elif test -n "$soname_spec"; then 2595266e564dSmrg # bleh windows 2596266e564dSmrg case $host in 2597266e564dSmrg *cygwin* | mingw*) 2598266e564dSmrg major=`expr $current - $age` 2599266e564dSmrg versuffix="-$major" 2600266e564dSmrg ;; 2601266e564dSmrg esac 2602266e564dSmrg eval soname=\"$soname_spec\" 2603266e564dSmrg else 2604266e564dSmrg soname="$realname" 2605266e564dSmrg fi 2606266e564dSmrg 2607266e564dSmrg # Make a new name for the extract_expsyms_cmds to use 2608266e564dSmrg soroot="$soname" 2609266e564dSmrg soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 2610266e564dSmrg newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 2611266e564dSmrg 2612266e564dSmrg # If the library has no export list, then create one now 2613266e564dSmrg if test -f "$output_objdir/$soname-def"; then : 2614266e564dSmrg else 2615266e564dSmrg $show "extracting exported symbol list from \`$soname'" 2616266e564dSmrg save_ifs="$IFS"; IFS='~' 2617266e564dSmrg cmds=$extract_expsyms_cmds 2618266e564dSmrg for cmd in $cmds; do 2619266e564dSmrg IFS="$save_ifs" 2620266e564dSmrg eval cmd=\"$cmd\" 2621266e564dSmrg $show "$cmd" 2622266e564dSmrg $run eval "$cmd" || exit $? 2623266e564dSmrg done 2624266e564dSmrg IFS="$save_ifs" 2625266e564dSmrg fi 2626266e564dSmrg 2627266e564dSmrg # Create $newlib 2628266e564dSmrg if test -f "$output_objdir/$newlib"; then :; else 2629266e564dSmrg $show "generating import library for \`$soname'" 2630266e564dSmrg save_ifs="$IFS"; IFS='~' 2631266e564dSmrg cmds=$old_archive_from_expsyms_cmds 2632266e564dSmrg for cmd in $cmds; do 2633266e564dSmrg IFS="$save_ifs" 2634266e564dSmrg eval cmd=\"$cmd\" 2635266e564dSmrg $show "$cmd" 2636266e564dSmrg $run eval "$cmd" || exit $? 2637266e564dSmrg done 2638266e564dSmrg IFS="$save_ifs" 2639266e564dSmrg fi 2640266e564dSmrg # make sure the library variables are pointing to the new library 2641266e564dSmrg dir=$output_objdir 2642266e564dSmrg linklib=$newlib 2643266e564dSmrg fi # test -n "$old_archive_from_expsyms_cmds" 2644266e564dSmrg 2645266e564dSmrg if test "$linkmode" = prog || test "$mode" != relink; then 2646266e564dSmrg add_shlibpath= 2647266e564dSmrg add_dir= 2648266e564dSmrg add= 2649266e564dSmrg lib_linked=yes 2650266e564dSmrg case $hardcode_action in 2651266e564dSmrg immediate | unsupported) 2652266e564dSmrg if test "$hardcode_direct" = no; then 2653266e564dSmrg add="$dir/$linklib" 2654266e564dSmrg case $host in 2655266e564dSmrg *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 2656266e564dSmrg *-*-sysv4*uw2*) add_dir="-L$dir" ;; 2657266e564dSmrg *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 2658266e564dSmrg *-*-unixware7*) add_dir="-L$dir" ;; 2659266e564dSmrg *-*-darwin* ) 2660266e564dSmrg # if the lib is a module then we can not link against 2661266e564dSmrg # it, someone is ignoring the new warnings I added 2662266e564dSmrg if /usr/bin/file -L $add 2> /dev/null | 2663266e564dSmrg $EGREP ": [^:]* bundle" >/dev/null ; then 2664266e564dSmrg $echo "** Warning, lib $linklib is a module, not a shared library" 2665266e564dSmrg if test -z "$old_library" ; then 2666266e564dSmrg $echo 2667266e564dSmrg $echo "** And there doesn't seem to be a static archive available" 2668266e564dSmrg $echo "** The link will probably fail, sorry" 2669266e564dSmrg else 2670266e564dSmrg add="$dir/$old_library" 2671266e564dSmrg fi 2672266e564dSmrg fi 2673266e564dSmrg esac 2674266e564dSmrg elif test "$hardcode_minus_L" = no; then 2675266e564dSmrg case $host in 2676266e564dSmrg *-*-sunos*) add_shlibpath="$dir" ;; 2677266e564dSmrg esac 2678266e564dSmrg add_dir="-L$dir" 2679266e564dSmrg add="-l$name" 2680266e564dSmrg elif test "$hardcode_shlibpath_var" = no; then 2681266e564dSmrg add_shlibpath="$dir" 2682266e564dSmrg add="-l$name" 2683266e564dSmrg else 2684266e564dSmrg lib_linked=no 2685266e564dSmrg fi 2686266e564dSmrg ;; 2687266e564dSmrg relink) 2688266e564dSmrg if test "$hardcode_direct" = yes; then 2689266e564dSmrg add="$dir/$linklib" 2690266e564dSmrg elif test "$hardcode_minus_L" = yes; then 2691266e564dSmrg add_dir="-L$dir" 2692266e564dSmrg # Try looking first in the location we're being installed to. 2693266e564dSmrg if test -n "$inst_prefix_dir"; then 2694266e564dSmrg case $libdir in 2695266e564dSmrg [\\/]*) 2696266e564dSmrg add_dir="$add_dir -L$inst_prefix_dir$libdir" 2697266e564dSmrg ;; 2698266e564dSmrg esac 2699266e564dSmrg fi 2700266e564dSmrg add="-l$name" 2701266e564dSmrg elif test "$hardcode_shlibpath_var" = yes; then 2702266e564dSmrg add_shlibpath="$dir" 2703266e564dSmrg add="-l$name" 2704266e564dSmrg else 2705266e564dSmrg lib_linked=no 2706266e564dSmrg fi 2707266e564dSmrg ;; 2708266e564dSmrg *) lib_linked=no ;; 2709266e564dSmrg esac 2710266e564dSmrg 2711266e564dSmrg if test "$lib_linked" != yes; then 2712266e564dSmrg $echo "$modename: configuration error: unsupported hardcode properties" 2713266e564dSmrg exit $EXIT_FAILURE 2714266e564dSmrg fi 2715266e564dSmrg 2716266e564dSmrg if test -n "$add_shlibpath"; then 2717266e564dSmrg case :$compile_shlibpath: in 2718266e564dSmrg *":$add_shlibpath:"*) ;; 2719266e564dSmrg *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 2720266e564dSmrg esac 2721266e564dSmrg fi 2722266e564dSmrg if test "$linkmode" = prog; then 2723266e564dSmrg test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 2724266e564dSmrg test -n "$add" && compile_deplibs="$add $compile_deplibs" 2725266e564dSmrg else 2726266e564dSmrg test -n "$add_dir" && deplibs="$add_dir $deplibs" 2727266e564dSmrg test -n "$add" && deplibs="$add $deplibs" 2728266e564dSmrg if test "$hardcode_direct" != yes && \ 2729266e564dSmrg test "$hardcode_minus_L" != yes && \ 2730266e564dSmrg test "$hardcode_shlibpath_var" = yes; then 2731266e564dSmrg case :$finalize_shlibpath: in 2732266e564dSmrg *":$libdir:"*) ;; 2733266e564dSmrg *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2734266e564dSmrg esac 2735266e564dSmrg fi 2736266e564dSmrg fi 2737266e564dSmrg fi 2738266e564dSmrg 2739266e564dSmrg if test "$linkmode" = prog || test "$mode" = relink; then 2740266e564dSmrg add_shlibpath= 2741266e564dSmrg add_dir= 2742266e564dSmrg add= 2743266e564dSmrg # Finalize command for both is simple: just hardcode it. 2744266e564dSmrg if test "$hardcode_direct" = yes; then 2745266e564dSmrg add="$libdir/$linklib" 2746266e564dSmrg elif test "$hardcode_minus_L" = yes; then 2747266e564dSmrg add_dir="-L$libdir" 2748266e564dSmrg add="-l$name" 2749266e564dSmrg elif test "$hardcode_shlibpath_var" = yes; then 2750266e564dSmrg case :$finalize_shlibpath: in 2751266e564dSmrg *":$libdir:"*) ;; 2752266e564dSmrg *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2753266e564dSmrg esac 2754266e564dSmrg add="-l$name" 2755266e564dSmrg elif test "$hardcode_automatic" = yes; then 2756266e564dSmrg if test -n "$inst_prefix_dir" && 2757266e564dSmrg test -f "$inst_prefix_dir$libdir/$linklib" ; then 2758266e564dSmrg add="$inst_prefix_dir$libdir/$linklib" 2759266e564dSmrg else 2760266e564dSmrg add="$libdir/$linklib" 2761266e564dSmrg fi 2762266e564dSmrg else 2763266e564dSmrg # We cannot seem to hardcode it, guess we'll fake it. 2764266e564dSmrg add_dir="-L$libdir" 2765266e564dSmrg # Try looking first in the location we're being installed to. 2766266e564dSmrg if test -n "$inst_prefix_dir"; then 2767266e564dSmrg case $libdir in 2768266e564dSmrg [\\/]*) 2769266e564dSmrg add_dir="$add_dir -L$inst_prefix_dir$libdir" 2770266e564dSmrg ;; 2771266e564dSmrg esac 2772266e564dSmrg fi 2773266e564dSmrg add="-l$name" 2774266e564dSmrg fi 2775266e564dSmrg 2776266e564dSmrg if test "$linkmode" = prog; then 2777266e564dSmrg test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 2778266e564dSmrg test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 2779266e564dSmrg else 2780266e564dSmrg test -n "$add_dir" && deplibs="$add_dir $deplibs" 2781266e564dSmrg test -n "$add" && deplibs="$add $deplibs" 2782266e564dSmrg fi 2783266e564dSmrg fi 2784266e564dSmrg elif test "$linkmode" = prog; then 2785266e564dSmrg # Here we assume that one of hardcode_direct or hardcode_minus_L 2786266e564dSmrg # is not unsupported. This is valid on all known static and 2787266e564dSmrg # shared platforms. 2788266e564dSmrg if test "$hardcode_direct" != unsupported; then 2789266e564dSmrg test -n "$old_library" && linklib="$old_library" 2790266e564dSmrg compile_deplibs="$dir/$linklib $compile_deplibs" 2791266e564dSmrg finalize_deplibs="$dir/$linklib $finalize_deplibs" 2792266e564dSmrg else 2793266e564dSmrg compile_deplibs="-l$name -L$dir $compile_deplibs" 2794266e564dSmrg finalize_deplibs="-l$name -L$dir $finalize_deplibs" 2795266e564dSmrg fi 2796266e564dSmrg elif test "$build_libtool_libs" = yes; then 2797266e564dSmrg # Not a shared library 2798266e564dSmrg if test "$deplibs_check_method" != pass_all; then 2799266e564dSmrg # We're trying link a shared library against a static one 2800266e564dSmrg # but the system doesn't support it. 2801266e564dSmrg 2802266e564dSmrg # Just print a warning and add the library to dependency_libs so 2803266e564dSmrg # that the program can be linked against the static library. 2804266e564dSmrg $echo 2805266e564dSmrg $echo "*** Warning: This system can not link to static lib archive $lib." 2806266e564dSmrg $echo "*** I have the capability to make that library automatically link in when" 2807266e564dSmrg $echo "*** you link to this library. But I can only do this if you have a" 2808266e564dSmrg $echo "*** shared version of the library, which you do not appear to have." 2809266e564dSmrg if test "$module" = yes; then 2810266e564dSmrg $echo "*** But as you try to build a module library, libtool will still create " 2811266e564dSmrg $echo "*** a static module, that should work as long as the dlopening application" 2812266e564dSmrg $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 2813266e564dSmrg if test -z "$global_symbol_pipe"; then 2814266e564dSmrg $echo 2815266e564dSmrg $echo "*** However, this would only work if libtool was able to extract symbol" 2816266e564dSmrg $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 2817266e564dSmrg $echo "*** not find such a program. So, this module is probably useless." 2818266e564dSmrg $echo "*** \`nm' from GNU binutils and a full rebuild may help." 2819266e564dSmrg fi 2820266e564dSmrg if test "$build_old_libs" = no; then 2821266e564dSmrg build_libtool_libs=module 2822266e564dSmrg build_old_libs=yes 2823266e564dSmrg else 2824266e564dSmrg build_libtool_libs=no 2825266e564dSmrg fi 2826266e564dSmrg fi 2827266e564dSmrg else 2828266e564dSmrg deplibs="$dir/$old_library $deplibs" 2829266e564dSmrg link_static=yes 2830266e564dSmrg fi 2831266e564dSmrg fi # link shared/static library? 2832266e564dSmrg 2833266e564dSmrg if test "$linkmode" = lib; then 2834266e564dSmrg if test -n "$dependency_libs" && 2835266e564dSmrg { test "$hardcode_into_libs" != yes || 2836266e564dSmrg test "$build_old_libs" = yes || 2837266e564dSmrg test "$link_static" = yes; }; then 2838266e564dSmrg # Extract -R from dependency_libs 2839266e564dSmrg temp_deplibs= 2840266e564dSmrg for libdir in $dependency_libs; do 2841266e564dSmrg case $libdir in 2842266e564dSmrg -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 2843266e564dSmrg case " $xrpath " in 2844266e564dSmrg *" $temp_xrpath "*) ;; 2845266e564dSmrg *) xrpath="$xrpath $temp_xrpath";; 2846266e564dSmrg esac;; 2847266e564dSmrg *) temp_deplibs="$temp_deplibs $libdir";; 2848266e564dSmrg esac 2849266e564dSmrg done 2850266e564dSmrg dependency_libs="$temp_deplibs" 2851266e564dSmrg fi 2852266e564dSmrg 2853266e564dSmrg newlib_search_path="$newlib_search_path $absdir" 2854266e564dSmrg # Link against this library 2855266e564dSmrg test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 2856266e564dSmrg # ... and its dependency_libs 2857266e564dSmrg tmp_libs= 2858266e564dSmrg for deplib in $dependency_libs; do 2859266e564dSmrg newdependency_libs="$deplib $newdependency_libs" 2860266e564dSmrg if test "X$duplicate_deps" = "Xyes" ; then 2861266e564dSmrg case "$tmp_libs " in 2862266e564dSmrg *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2863266e564dSmrg esac 2864266e564dSmrg fi 2865266e564dSmrg tmp_libs="$tmp_libs $deplib" 2866266e564dSmrg done 2867266e564dSmrg 2868266e564dSmrg if test "$link_all_deplibs" != no; then 2869266e564dSmrg # Add the search paths of all dependency libraries 2870266e564dSmrg for deplib in $dependency_libs; do 2871266e564dSmrg case $deplib in 2872266e564dSmrg -L*) path="$deplib" ;; 2873266e564dSmrg *.la) 2874266e564dSmrg dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 2875266e564dSmrg test "X$dir" = "X$deplib" && dir="." 2876266e564dSmrg # We need an absolute path. 2877266e564dSmrg case $dir in 2878266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 2879266e564dSmrg *) 2880266e564dSmrg absdir=`cd "$dir" && pwd` 2881266e564dSmrg if test -z "$absdir"; then 2882266e564dSmrg $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 2883266e564dSmrg absdir="$dir" 2884266e564dSmrg fi 2885266e564dSmrg ;; 2886266e564dSmrg esac 2887266e564dSmrg if grep "^installed=no" $deplib > /dev/null; then 2888266e564dSmrg path="$absdir/$objdir" 2889266e564dSmrg else 2890266e564dSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 2891266e564dSmrg if test -z "$libdir"; then 2892266e564dSmrg $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 2893266e564dSmrg exit $EXIT_FAILURE 2894266e564dSmrg fi 2895266e564dSmrg if test "$absdir" != "$libdir"; then 2896266e564dSmrg $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 2897266e564dSmrg fi 2898266e564dSmrg path="$absdir" 2899266e564dSmrg fi 2900266e564dSmrg depdepl= 2901266e564dSmrg case $host in 2902266e564dSmrg *-*-darwin*) 2903266e564dSmrg # we do not want to link against static libs, 2904266e564dSmrg # but need to link against shared 2905266e564dSmrg eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 2906266e564dSmrg if test -n "$deplibrary_names" ; then 2907266e564dSmrg for tmp in $deplibrary_names ; do 2908266e564dSmrg depdepl=$tmp 2909266e564dSmrg done 2910266e564dSmrg if test -f "$path/$depdepl" ; then 2911266e564dSmrg depdepl="$path/$depdepl" 2912266e564dSmrg fi 2913266e564dSmrg # do not add paths which are already there 2914266e564dSmrg case " $newlib_search_path " in 2915266e564dSmrg *" $path "*) ;; 2916266e564dSmrg *) newlib_search_path="$newlib_search_path $path";; 2917266e564dSmrg esac 2918266e564dSmrg fi 2919266e564dSmrg path="" 2920266e564dSmrg ;; 2921266e564dSmrg *) 2922266e564dSmrg path="-L$path" 2923266e564dSmrg ;; 2924266e564dSmrg esac 2925266e564dSmrg ;; 2926266e564dSmrg -l*) 2927266e564dSmrg case $host in 2928266e564dSmrg *-*-darwin*) 2929266e564dSmrg # Again, we only want to link against shared libraries 2930266e564dSmrg eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 2931266e564dSmrg for tmp in $newlib_search_path ; do 2932266e564dSmrg if test -f "$tmp/lib$tmp_libs.dylib" ; then 2933266e564dSmrg eval depdepl="$tmp/lib$tmp_libs.dylib" 2934266e564dSmrg break 2935266e564dSmrg fi 2936266e564dSmrg done 2937266e564dSmrg path="" 2938266e564dSmrg ;; 2939266e564dSmrg *) continue ;; 2940266e564dSmrg esac 2941266e564dSmrg ;; 2942266e564dSmrg *) continue ;; 2943266e564dSmrg esac 2944266e564dSmrg case " $deplibs " in 2945266e564dSmrg *" $path "*) ;; 2946266e564dSmrg *) deplibs="$path $deplibs" ;; 2947266e564dSmrg esac 2948266e564dSmrg case " $deplibs " in 2949266e564dSmrg *" $depdepl "*) ;; 2950266e564dSmrg *) deplibs="$depdepl $deplibs" ;; 2951266e564dSmrg esac 2952266e564dSmrg done 2953266e564dSmrg fi # link_all_deplibs != no 2954266e564dSmrg fi # linkmode = lib 2955266e564dSmrg done # for deplib in $libs 2956266e564dSmrg dependency_libs="$newdependency_libs" 2957266e564dSmrg if test "$pass" = dlpreopen; then 2958266e564dSmrg # Link the dlpreopened libraries before other libraries 2959266e564dSmrg for deplib in $save_deplibs; do 2960266e564dSmrg deplibs="$deplib $deplibs" 2961266e564dSmrg done 2962266e564dSmrg fi 2963266e564dSmrg if test "$pass" != dlopen; then 2964266e564dSmrg if test "$pass" != conv; then 2965266e564dSmrg # Make sure lib_search_path contains only unique directories. 2966266e564dSmrg lib_search_path= 2967266e564dSmrg for dir in $newlib_search_path; do 2968266e564dSmrg case "$lib_search_path " in 2969266e564dSmrg *" $dir "*) ;; 2970266e564dSmrg *) lib_search_path="$lib_search_path $dir" ;; 2971266e564dSmrg esac 2972266e564dSmrg done 2973266e564dSmrg newlib_search_path= 2974266e564dSmrg fi 2975266e564dSmrg 2976266e564dSmrg if test "$linkmode,$pass" != "prog,link"; then 2977266e564dSmrg vars="deplibs" 2978266e564dSmrg else 2979266e564dSmrg vars="compile_deplibs finalize_deplibs" 2980266e564dSmrg fi 2981266e564dSmrg for var in $vars dependency_libs; do 2982266e564dSmrg # Add libraries to $var in reverse order 2983266e564dSmrg eval tmp_libs=\"\$$var\" 2984266e564dSmrg new_libs= 2985266e564dSmrg for deplib in $tmp_libs; do 2986266e564dSmrg # FIXME: Pedantically, this is the right thing to do, so 2987266e564dSmrg # that some nasty dependency loop isn't accidentally 2988266e564dSmrg # broken: 2989266e564dSmrg #new_libs="$deplib $new_libs" 2990266e564dSmrg # Pragmatically, this seems to cause very few problems in 2991266e564dSmrg # practice: 2992266e564dSmrg case $deplib in 2993266e564dSmrg -L*) new_libs="$deplib $new_libs" ;; 2994266e564dSmrg -R*) ;; 2995266e564dSmrg *) 2996266e564dSmrg # And here is the reason: when a library appears more 2997266e564dSmrg # than once as an explicit dependence of a library, or 2998266e564dSmrg # is implicitly linked in more than once by the 2999266e564dSmrg # compiler, it is considered special, and multiple 3000266e564dSmrg # occurrences thereof are not removed. Compare this 3001266e564dSmrg # with having the same library being listed as a 3002266e564dSmrg # dependency of multiple other libraries: in this case, 3003266e564dSmrg # we know (pedantically, we assume) the library does not 3004266e564dSmrg # need to be listed more than once, so we keep only the 3005266e564dSmrg # last copy. This is not always right, but it is rare 3006266e564dSmrg # enough that we require users that really mean to play 3007266e564dSmrg # such unportable linking tricks to link the library 3008266e564dSmrg # using -Wl,-lname, so that libtool does not consider it 3009266e564dSmrg # for duplicate removal. 3010266e564dSmrg case " $specialdeplibs " in 3011266e564dSmrg *" $deplib "*) new_libs="$deplib $new_libs" ;; 3012266e564dSmrg *) 3013266e564dSmrg case " $new_libs " in 3014266e564dSmrg *" $deplib "*) ;; 3015266e564dSmrg *) new_libs="$deplib $new_libs" ;; 3016266e564dSmrg esac 3017266e564dSmrg ;; 3018266e564dSmrg esac 3019266e564dSmrg ;; 3020266e564dSmrg esac 3021266e564dSmrg done 3022266e564dSmrg tmp_libs= 3023266e564dSmrg for deplib in $new_libs; do 3024266e564dSmrg case $deplib in 3025266e564dSmrg -L*) 3026266e564dSmrg case " $tmp_libs " in 3027266e564dSmrg *" $deplib "*) ;; 3028266e564dSmrg *) tmp_libs="$tmp_libs $deplib" ;; 3029266e564dSmrg esac 3030266e564dSmrg ;; 3031266e564dSmrg *) tmp_libs="$tmp_libs $deplib" ;; 3032266e564dSmrg esac 3033266e564dSmrg done 3034266e564dSmrg eval $var=\"$tmp_libs\" 3035266e564dSmrg done # for var 3036266e564dSmrg fi 3037266e564dSmrg # Last step: remove runtime libs from dependency_libs 3038266e564dSmrg # (they stay in deplibs) 3039266e564dSmrg tmp_libs= 3040266e564dSmrg for i in $dependency_libs ; do 3041266e564dSmrg case " $predeps $postdeps $compiler_lib_search_path " in 3042266e564dSmrg *" $i "*) 3043266e564dSmrg i="" 3044266e564dSmrg ;; 3045266e564dSmrg esac 3046266e564dSmrg if test -n "$i" ; then 3047266e564dSmrg tmp_libs="$tmp_libs $i" 3048266e564dSmrg fi 3049266e564dSmrg done 3050266e564dSmrg dependency_libs=$tmp_libs 3051266e564dSmrg done # for pass 3052266e564dSmrg if test "$linkmode" = prog; then 3053266e564dSmrg dlfiles="$newdlfiles" 3054266e564dSmrg dlprefiles="$newdlprefiles" 3055266e564dSmrg fi 3056266e564dSmrg 3057266e564dSmrg case $linkmode in 3058266e564dSmrg oldlib) 3059266e564dSmrg if test -n "$deplibs"; then 3060266e564dSmrg $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 3061266e564dSmrg fi 3062266e564dSmrg 3063266e564dSmrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 3064266e564dSmrg $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 3065266e564dSmrg fi 3066266e564dSmrg 3067266e564dSmrg if test -n "$rpath"; then 3068266e564dSmrg $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 3069266e564dSmrg fi 3070266e564dSmrg 3071266e564dSmrg if test -n "$xrpath"; then 3072266e564dSmrg $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 3073266e564dSmrg fi 3074266e564dSmrg 3075266e564dSmrg if test -n "$vinfo"; then 3076266e564dSmrg $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 3077266e564dSmrg fi 3078266e564dSmrg 3079266e564dSmrg if test -n "$release"; then 3080266e564dSmrg $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 3081266e564dSmrg fi 3082266e564dSmrg 3083266e564dSmrg if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 3084266e564dSmrg $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 3085266e564dSmrg fi 3086266e564dSmrg 3087266e564dSmrg # Now set the variables for building old libraries. 3088266e564dSmrg build_libtool_libs=no 3089266e564dSmrg oldlibs="$output" 3090266e564dSmrg objs="$objs$old_deplibs" 3091266e564dSmrg ;; 3092266e564dSmrg 3093266e564dSmrg lib) 3094266e564dSmrg # Make sure we only generate libraries of the form `libNAME.la'. 3095266e564dSmrg case $outputname in 3096266e564dSmrg lib*) 3097266e564dSmrg name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 3098266e564dSmrg eval shared_ext=\"$shrext_cmds\" 3099266e564dSmrg eval libname=\"$libname_spec\" 3100266e564dSmrg ;; 3101266e564dSmrg *) 3102266e564dSmrg if test "$module" = no; then 3103266e564dSmrg $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 3104266e564dSmrg $echo "$help" 1>&2 3105266e564dSmrg exit $EXIT_FAILURE 3106266e564dSmrg fi 3107266e564dSmrg if test "$need_lib_prefix" != no; then 3108266e564dSmrg # Add the "lib" prefix for modules if required 3109266e564dSmrg name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3110266e564dSmrg eval shared_ext=\"$shrext_cmds\" 3111266e564dSmrg eval libname=\"$libname_spec\" 3112266e564dSmrg else 3113266e564dSmrg libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3114266e564dSmrg fi 3115266e564dSmrg ;; 3116266e564dSmrg esac 3117266e564dSmrg 3118266e564dSmrg if test -n "$objs"; then 3119266e564dSmrg if test "$deplibs_check_method" != pass_all; then 3120266e564dSmrg $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 3121266e564dSmrg exit $EXIT_FAILURE 3122266e564dSmrg else 3123266e564dSmrg $echo 3124266e564dSmrg $echo "*** Warning: Linking the shared library $output against the non-libtool" 3125266e564dSmrg $echo "*** objects $objs is not portable!" 3126266e564dSmrg libobjs="$libobjs $objs" 3127266e564dSmrg fi 3128266e564dSmrg fi 3129266e564dSmrg 3130266e564dSmrg if test "$dlself" != no; then 3131266e564dSmrg $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 3132266e564dSmrg fi 3133266e564dSmrg 3134266e564dSmrg set dummy $rpath 3135266e564dSmrg if test "$#" -gt 2; then 3136266e564dSmrg $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 3137266e564dSmrg fi 3138266e564dSmrg install_libdir="$2" 3139266e564dSmrg 3140266e564dSmrg oldlibs= 3141266e564dSmrg if test -z "$rpath"; then 3142266e564dSmrg if test "$build_libtool_libs" = yes; then 3143266e564dSmrg # Building a libtool convenience library. 3144266e564dSmrg # Some compilers have problems with a `.al' extension so 3145266e564dSmrg # convenience libraries should have the same extension an 3146266e564dSmrg # archive normally would. 3147266e564dSmrg oldlibs="$output_objdir/$libname.$libext $oldlibs" 3148266e564dSmrg build_libtool_libs=convenience 3149266e564dSmrg build_old_libs=yes 3150266e564dSmrg fi 3151266e564dSmrg 3152266e564dSmrg if test -n "$vinfo"; then 3153266e564dSmrg $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 3154266e564dSmrg fi 3155266e564dSmrg 3156266e564dSmrg if test -n "$release"; then 3157266e564dSmrg $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 3158266e564dSmrg fi 3159266e564dSmrg else 3160266e564dSmrg 3161266e564dSmrg # Parse the version information argument. 3162266e564dSmrg save_ifs="$IFS"; IFS=':' 3163266e564dSmrg set dummy $vinfo 0 0 0 3164266e564dSmrg IFS="$save_ifs" 3165266e564dSmrg 3166266e564dSmrg if test -n "$8"; then 3167266e564dSmrg $echo "$modename: too many parameters to \`-version-info'" 1>&2 3168266e564dSmrg $echo "$help" 1>&2 3169266e564dSmrg exit $EXIT_FAILURE 3170266e564dSmrg fi 3171266e564dSmrg 3172266e564dSmrg # convert absolute version numbers to libtool ages 3173266e564dSmrg # this retains compatibility with .la files and attempts 3174266e564dSmrg # to make the code below a bit more comprehensible 3175266e564dSmrg 3176266e564dSmrg case $vinfo_number in 3177266e564dSmrg yes) 3178266e564dSmrg number_major="$2" 3179266e564dSmrg number_minor="$3" 3180266e564dSmrg number_revision="$4" 3181266e564dSmrg # 3182266e564dSmrg # There are really only two kinds -- those that 3183266e564dSmrg # use the current revision as the major version 3184266e564dSmrg # and those that subtract age and use age as 3185266e564dSmrg # a minor version. But, then there is irix 3186266e564dSmrg # which has an extra 1 added just for fun 3187266e564dSmrg # 3188266e564dSmrg case $version_type in 3189266e564dSmrg darwin|linux|osf|windows) 3190266e564dSmrg current=`expr $number_major + $number_minor` 3191266e564dSmrg age="$number_minor" 3192266e564dSmrg revision="$number_revision" 3193266e564dSmrg ;; 3194266e564dSmrg freebsd-aout|freebsd-elf|sunos) 3195266e564dSmrg current="$number_major" 3196266e564dSmrg revision="$number_minor" 3197266e564dSmrg age="0" 3198266e564dSmrg ;; 3199266e564dSmrg irix|nonstopux) 3200266e564dSmrg current=`expr $number_major + $number_minor - 1` 3201266e564dSmrg age="$number_minor" 3202266e564dSmrg revision="$number_minor" 3203266e564dSmrg ;; 3204266e564dSmrg esac 3205266e564dSmrg ;; 3206266e564dSmrg no) 3207266e564dSmrg current="$2" 3208266e564dSmrg revision="$3" 3209266e564dSmrg age="$4" 3210266e564dSmrg ;; 3211266e564dSmrg esac 3212266e564dSmrg 3213266e564dSmrg # Check that each of the things are valid numbers. 3214266e564dSmrg case $current in 3215266e564dSmrg 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]) ;; 3216266e564dSmrg *) 3217266e564dSmrg $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 3218266e564dSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3219266e564dSmrg exit $EXIT_FAILURE 3220266e564dSmrg ;; 3221266e564dSmrg esac 3222266e564dSmrg 3223266e564dSmrg case $revision in 3224266e564dSmrg 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]) ;; 3225266e564dSmrg *) 3226266e564dSmrg $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 3227266e564dSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3228266e564dSmrg exit $EXIT_FAILURE 3229266e564dSmrg ;; 3230266e564dSmrg esac 3231266e564dSmrg 3232266e564dSmrg case $age in 3233266e564dSmrg 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]) ;; 3234266e564dSmrg *) 3235266e564dSmrg $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 3236266e564dSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3237266e564dSmrg exit $EXIT_FAILURE 3238266e564dSmrg ;; 3239266e564dSmrg esac 3240266e564dSmrg 3241266e564dSmrg if test "$age" -gt "$current"; then 3242266e564dSmrg $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 3243266e564dSmrg $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3244266e564dSmrg exit $EXIT_FAILURE 3245266e564dSmrg fi 3246266e564dSmrg 3247266e564dSmrg # Calculate the version variables. 3248266e564dSmrg major= 3249266e564dSmrg versuffix= 3250266e564dSmrg verstring= 3251266e564dSmrg case $version_type in 3252266e564dSmrg none) ;; 3253266e564dSmrg 3254266e564dSmrg darwin) 3255266e564dSmrg # Like Linux, but with the current version available in 3256266e564dSmrg # verstring for coding it into the library header 3257266e564dSmrg major=.`expr $current - $age` 3258266e564dSmrg versuffix="$major.$age.$revision" 3259266e564dSmrg # Darwin ld doesn't like 0 for these options... 3260266e564dSmrg minor_current=`expr $current + 1` 3261266e564dSmrg verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 3262266e564dSmrg ;; 3263266e564dSmrg 3264266e564dSmrg freebsd-aout) 3265266e564dSmrg major=".$current" 3266266e564dSmrg versuffix=".$current.$revision"; 3267266e564dSmrg ;; 3268266e564dSmrg 3269266e564dSmrg freebsd-elf) 3270266e564dSmrg major=".$current" 3271266e564dSmrg versuffix=".$current"; 3272266e564dSmrg ;; 3273266e564dSmrg 3274266e564dSmrg irix | nonstopux) 3275266e564dSmrg major=`expr $current - $age + 1` 3276266e564dSmrg 3277266e564dSmrg case $version_type in 3278266e564dSmrg nonstopux) verstring_prefix=nonstopux ;; 3279266e564dSmrg *) verstring_prefix=sgi ;; 3280266e564dSmrg esac 3281266e564dSmrg verstring="$verstring_prefix$major.$revision" 3282266e564dSmrg 3283266e564dSmrg # Add in all the interfaces that we are compatible with. 3284266e564dSmrg loop=$revision 3285266e564dSmrg while test "$loop" -ne 0; do 3286266e564dSmrg iface=`expr $revision - $loop` 3287266e564dSmrg loop=`expr $loop - 1` 3288266e564dSmrg verstring="$verstring_prefix$major.$iface:$verstring" 3289266e564dSmrg done 3290266e564dSmrg 3291266e564dSmrg # Before this point, $major must not contain `.'. 3292266e564dSmrg major=.$major 3293266e564dSmrg versuffix="$major.$revision" 3294266e564dSmrg ;; 3295266e564dSmrg 3296266e564dSmrg linux) 3297266e564dSmrg major=.`expr $current - $age` 3298266e564dSmrg versuffix="$major.$age.$revision" 3299266e564dSmrg ;; 3300266e564dSmrg 3301266e564dSmrg osf) 3302266e564dSmrg major=.`expr $current - $age` 3303266e564dSmrg versuffix=".$current.$age.$revision" 3304266e564dSmrg verstring="$current.$age.$revision" 3305266e564dSmrg 3306266e564dSmrg # Add in all the interfaces that we are compatible with. 3307266e564dSmrg loop=$age 3308266e564dSmrg while test "$loop" -ne 0; do 3309266e564dSmrg iface=`expr $current - $loop` 3310266e564dSmrg loop=`expr $loop - 1` 3311266e564dSmrg verstring="$verstring:${iface}.0" 3312266e564dSmrg done 3313266e564dSmrg 3314266e564dSmrg # Make executables depend on our current version. 3315266e564dSmrg verstring="$verstring:${current}.0" 3316266e564dSmrg ;; 3317266e564dSmrg 3318266e564dSmrg sunos) 3319266e564dSmrg major=".$current" 3320266e564dSmrg versuffix=".$current.$revision" 3321266e564dSmrg ;; 3322266e564dSmrg 3323266e564dSmrg windows) 3324266e564dSmrg # Use '-' rather than '.', since we only want one 3325266e564dSmrg # extension on DOS 8.3 filesystems. 3326266e564dSmrg major=`expr $current - $age` 3327266e564dSmrg versuffix="-$major" 3328266e564dSmrg ;; 3329266e564dSmrg 3330266e564dSmrg *) 3331266e564dSmrg $echo "$modename: unknown library version type \`$version_type'" 1>&2 3332266e564dSmrg $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3333266e564dSmrg exit $EXIT_FAILURE 3334266e564dSmrg ;; 3335266e564dSmrg esac 3336266e564dSmrg 3337266e564dSmrg # Clear the version info if we defaulted, and they specified a release. 3338266e564dSmrg if test -z "$vinfo" && test -n "$release"; then 3339266e564dSmrg major= 3340266e564dSmrg case $version_type in 3341266e564dSmrg darwin) 3342266e564dSmrg # we can't check for "0.0" in archive_cmds due to quoting 3343266e564dSmrg # problems, so we reset it completely 3344266e564dSmrg verstring= 3345266e564dSmrg ;; 3346266e564dSmrg *) 3347266e564dSmrg verstring="0.0" 3348266e564dSmrg ;; 3349266e564dSmrg esac 3350266e564dSmrg if test "$need_version" = no; then 3351266e564dSmrg versuffix= 3352266e564dSmrg else 3353266e564dSmrg versuffix=".0.0" 3354266e564dSmrg fi 3355266e564dSmrg fi 3356266e564dSmrg 3357266e564dSmrg # Remove version info from name if versioning should be avoided 3358266e564dSmrg if test "$avoid_version" = yes && test "$need_version" = no; then 3359266e564dSmrg major= 3360266e564dSmrg versuffix= 3361266e564dSmrg verstring="" 3362266e564dSmrg fi 3363266e564dSmrg 3364266e564dSmrg # Check to see if the archive will have undefined symbols. 3365266e564dSmrg if test "$allow_undefined" = yes; then 3366266e564dSmrg if test "$allow_undefined_flag" = unsupported; then 3367266e564dSmrg $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 3368266e564dSmrg build_libtool_libs=no 3369266e564dSmrg build_old_libs=yes 3370266e564dSmrg fi 3371266e564dSmrg else 3372266e564dSmrg # Don't allow undefined symbols. 3373266e564dSmrg allow_undefined_flag="$no_undefined_flag" 3374266e564dSmrg fi 3375266e564dSmrg fi 3376266e564dSmrg 3377266e564dSmrg if test "$mode" != relink; then 3378266e564dSmrg # Remove our outputs, but don't remove object files since they 3379266e564dSmrg # may have been created when compiling PIC objects. 3380266e564dSmrg removelist= 3381266e564dSmrg tempremovelist=`$echo "$output_objdir/*"` 3382266e564dSmrg for p in $tempremovelist; do 3383266e564dSmrg case $p in 3384266e564dSmrg *.$objext) 3385266e564dSmrg ;; 3386266e564dSmrg $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 3387266e564dSmrg if test "X$precious_files_regex" != "X"; then 3388266e564dSmrg if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 3389266e564dSmrg then 3390266e564dSmrg continue 3391266e564dSmrg fi 3392266e564dSmrg fi 3393266e564dSmrg removelist="$removelist $p" 3394266e564dSmrg ;; 3395266e564dSmrg *) ;; 3396266e564dSmrg esac 3397266e564dSmrg done 3398266e564dSmrg if test -n "$removelist"; then 3399266e564dSmrg $show "${rm}r $removelist" 3400266e564dSmrg $run ${rm}r $removelist 3401266e564dSmrg fi 3402266e564dSmrg fi 3403266e564dSmrg 3404266e564dSmrg # Now set the variables for building old libraries. 3405266e564dSmrg if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 3406266e564dSmrg oldlibs="$oldlibs $output_objdir/$libname.$libext" 3407266e564dSmrg 3408266e564dSmrg # Transform .lo files to .o files. 3409266e564dSmrg oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 3410266e564dSmrg fi 3411266e564dSmrg 3412266e564dSmrg # Eliminate all temporary directories. 3413266e564dSmrg for path in $notinst_path; do 3414266e564dSmrg lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 3415266e564dSmrg deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 3416266e564dSmrg dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 3417266e564dSmrg done 3418266e564dSmrg 3419266e564dSmrg if test -n "$xrpath"; then 3420266e564dSmrg # If the user specified any rpath flags, then add them. 3421266e564dSmrg temp_xrpath= 3422266e564dSmrg for libdir in $xrpath; do 3423266e564dSmrg temp_xrpath="$temp_xrpath -R$libdir" 3424266e564dSmrg case "$finalize_rpath " in 3425266e564dSmrg *" $libdir "*) ;; 3426266e564dSmrg *) finalize_rpath="$finalize_rpath $libdir" ;; 3427266e564dSmrg esac 3428266e564dSmrg done 3429266e564dSmrg if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 3430266e564dSmrg dependency_libs="$temp_xrpath $dependency_libs" 3431266e564dSmrg fi 3432266e564dSmrg fi 3433266e564dSmrg 3434266e564dSmrg # Make sure dlfiles contains only unique files that won't be dlpreopened 3435266e564dSmrg old_dlfiles="$dlfiles" 3436266e564dSmrg dlfiles= 3437266e564dSmrg for lib in $old_dlfiles; do 3438266e564dSmrg case " $dlprefiles $dlfiles " in 3439266e564dSmrg *" $lib "*) ;; 3440266e564dSmrg *) dlfiles="$dlfiles $lib" ;; 3441266e564dSmrg esac 3442266e564dSmrg done 3443266e564dSmrg 3444266e564dSmrg # Make sure dlprefiles contains only unique files 3445266e564dSmrg old_dlprefiles="$dlprefiles" 3446266e564dSmrg dlprefiles= 3447266e564dSmrg for lib in $old_dlprefiles; do 3448266e564dSmrg case "$dlprefiles " in 3449266e564dSmrg *" $lib "*) ;; 3450266e564dSmrg *) dlprefiles="$dlprefiles $lib" ;; 3451266e564dSmrg esac 3452266e564dSmrg done 3453266e564dSmrg 3454266e564dSmrg if test "$build_libtool_libs" = yes; then 3455266e564dSmrg if test -n "$rpath"; then 3456266e564dSmrg case $host in 3457266e564dSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 3458266e564dSmrg # these systems don't actually have a c library (as such)! 3459266e564dSmrg ;; 3460266e564dSmrg *-*-rhapsody* | *-*-darwin1.[012]) 3461266e564dSmrg # Rhapsody C library is in the System framework 3462266e564dSmrg deplibs="$deplibs -framework System" 3463266e564dSmrg ;; 3464266e564dSmrg *-*-netbsd*) 3465266e564dSmrg # Don't link with libc until the a.out ld.so is fixed. 3466266e564dSmrg ;; 3467266e564dSmrg *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 3468266e564dSmrg # Do not include libc due to us having libc/libc_r. 3469266e564dSmrg ;; 3470266e564dSmrg *-*-sco3.2v5* | *-*-sco5v6*) 3471266e564dSmrg # Causes problems with __ctype 3472266e564dSmrg ;; 3473266e564dSmrg *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 3474266e564dSmrg # Compiler inserts libc in the correct place for threads to work 3475266e564dSmrg ;; 3476266e564dSmrg *) 3477266e564dSmrg # Add libc to deplibs on all other systems if necessary. 3478266e564dSmrg if test "$build_libtool_need_lc" = "yes"; then 3479266e564dSmrg deplibs="$deplibs -lc" 3480266e564dSmrg fi 3481266e564dSmrg ;; 3482266e564dSmrg esac 3483266e564dSmrg fi 3484266e564dSmrg 3485266e564dSmrg # Transform deplibs into only deplibs that can be linked in shared. 3486266e564dSmrg name_save=$name 3487266e564dSmrg libname_save=$libname 3488266e564dSmrg release_save=$release 3489266e564dSmrg versuffix_save=$versuffix 3490266e564dSmrg major_save=$major 3491266e564dSmrg # I'm not sure if I'm treating the release correctly. I think 3492266e564dSmrg # release should show up in the -l (ie -lgmp5) so we don't want to 3493266e564dSmrg # add it in twice. Is that correct? 3494266e564dSmrg release="" 3495266e564dSmrg versuffix="" 3496266e564dSmrg major="" 3497266e564dSmrg newdeplibs= 3498266e564dSmrg droppeddeps=no 3499266e564dSmrg case $deplibs_check_method in 3500266e564dSmrg pass_all) 3501266e564dSmrg # Don't check for shared/static. Everything works. 3502266e564dSmrg # This might be a little naive. We might want to check 3503266e564dSmrg # whether the library exists or not. But this is on 3504266e564dSmrg # osf3 & osf4 and I'm not really sure... Just 3505266e564dSmrg # implementing what was already the behavior. 3506266e564dSmrg newdeplibs=$deplibs 3507266e564dSmrg ;; 3508266e564dSmrg test_compile) 3509266e564dSmrg # This code stresses the "libraries are programs" paradigm to its 3510266e564dSmrg # limits. Maybe even breaks it. We compile a program, linking it 3511266e564dSmrg # against the deplibs as a proxy for the library. Then we can check 3512266e564dSmrg # whether they linked in statically or dynamically with ldd. 3513266e564dSmrg $rm conftest.c 3514266e564dSmrg cat > conftest.c <<EOF 3515266e564dSmrg int main() { return 0; } 3516266e564dSmrgEOF 3517266e564dSmrg $rm conftest 3518266e564dSmrg $LTCC $LTCFLAGS -o conftest conftest.c $deplibs 3519266e564dSmrg if test "$?" -eq 0 ; then 3520266e564dSmrg ldd_output=`ldd conftest` 3521266e564dSmrg for i in $deplibs; do 3522266e564dSmrg name=`expr $i : '-l\(.*\)'` 3523266e564dSmrg # If $name is empty we are operating on a -L argument. 3524266e564dSmrg if test "$name" != "" && test "$name" -ne "0"; then 3525266e564dSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3526266e564dSmrg case " $predeps $postdeps " in 3527266e564dSmrg *" $i "*) 3528266e564dSmrg newdeplibs="$newdeplibs $i" 3529266e564dSmrg i="" 3530266e564dSmrg ;; 3531266e564dSmrg esac 3532266e564dSmrg fi 3533266e564dSmrg if test -n "$i" ; then 3534266e564dSmrg libname=`eval \\$echo \"$libname_spec\"` 3535266e564dSmrg deplib_matches=`eval \\$echo \"$library_names_spec\"` 3536266e564dSmrg set dummy $deplib_matches 3537266e564dSmrg deplib_match=$2 3538266e564dSmrg if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3539266e564dSmrg newdeplibs="$newdeplibs $i" 3540266e564dSmrg else 3541266e564dSmrg droppeddeps=yes 3542266e564dSmrg $echo 3543266e564dSmrg $echo "*** Warning: dynamic linker does not accept needed library $i." 3544266e564dSmrg $echo "*** I have the capability to make that library automatically link in when" 3545266e564dSmrg $echo "*** you link to this library. But I can only do this if you have a" 3546266e564dSmrg $echo "*** shared version of the library, which I believe you do not have" 3547266e564dSmrg $echo "*** because a test_compile did reveal that the linker did not use it for" 3548266e564dSmrg $echo "*** its dynamic dependency list that programs get resolved with at runtime." 3549266e564dSmrg fi 3550266e564dSmrg fi 3551266e564dSmrg else 3552266e564dSmrg newdeplibs="$newdeplibs $i" 3553266e564dSmrg fi 3554266e564dSmrg done 3555266e564dSmrg else 3556266e564dSmrg # Error occurred in the first compile. Let's try to salvage 3557266e564dSmrg # the situation: Compile a separate program for each library. 3558266e564dSmrg for i in $deplibs; do 3559266e564dSmrg name=`expr $i : '-l\(.*\)'` 3560266e564dSmrg # If $name is empty we are operating on a -L argument. 3561266e564dSmrg if test "$name" != "" && test "$name" != "0"; then 3562266e564dSmrg $rm conftest 3563266e564dSmrg $LTCC $LTCFLAGS -o conftest conftest.c $i 3564266e564dSmrg # Did it work? 3565266e564dSmrg if test "$?" -eq 0 ; then 3566266e564dSmrg ldd_output=`ldd conftest` 3567266e564dSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3568266e564dSmrg case " $predeps $postdeps " in 3569266e564dSmrg *" $i "*) 3570266e564dSmrg newdeplibs="$newdeplibs $i" 3571266e564dSmrg i="" 3572266e564dSmrg ;; 3573266e564dSmrg esac 3574266e564dSmrg fi 3575266e564dSmrg if test -n "$i" ; then 3576266e564dSmrg libname=`eval \\$echo \"$libname_spec\"` 3577266e564dSmrg deplib_matches=`eval \\$echo \"$library_names_spec\"` 3578266e564dSmrg set dummy $deplib_matches 3579266e564dSmrg deplib_match=$2 3580266e564dSmrg if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3581266e564dSmrg newdeplibs="$newdeplibs $i" 3582266e564dSmrg else 3583266e564dSmrg droppeddeps=yes 3584266e564dSmrg $echo 3585266e564dSmrg $echo "*** Warning: dynamic linker does not accept needed library $i." 3586266e564dSmrg $echo "*** I have the capability to make that library automatically link in when" 3587266e564dSmrg $echo "*** you link to this library. But I can only do this if you have a" 3588266e564dSmrg $echo "*** shared version of the library, which you do not appear to have" 3589266e564dSmrg $echo "*** because a test_compile did reveal that the linker did not use this one" 3590266e564dSmrg $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 3591266e564dSmrg fi 3592266e564dSmrg fi 3593266e564dSmrg else 3594266e564dSmrg droppeddeps=yes 3595266e564dSmrg $echo 3596266e564dSmrg $echo "*** Warning! Library $i is needed by this library but I was not able to" 3597266e564dSmrg $echo "*** make it link in! You will probably need to install it or some" 3598266e564dSmrg $echo "*** library that it depends on before this library will be fully" 3599266e564dSmrg $echo "*** functional. Installing it before continuing would be even better." 3600266e564dSmrg fi 3601266e564dSmrg else 3602266e564dSmrg newdeplibs="$newdeplibs $i" 3603266e564dSmrg fi 3604266e564dSmrg done 3605266e564dSmrg fi 3606266e564dSmrg ;; 3607266e564dSmrg file_magic*) 3608266e564dSmrg set dummy $deplibs_check_method 3609266e564dSmrg file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3610266e564dSmrg for a_deplib in $deplibs; do 3611266e564dSmrg name=`expr $a_deplib : '-l\(.*\)'` 3612266e564dSmrg # If $name is empty we are operating on a -L argument. 3613266e564dSmrg if test "$name" != "" && test "$name" != "0"; then 3614266e564dSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3615266e564dSmrg case " $predeps $postdeps " in 3616266e564dSmrg *" $a_deplib "*) 3617266e564dSmrg newdeplibs="$newdeplibs $a_deplib" 3618266e564dSmrg a_deplib="" 3619266e564dSmrg ;; 3620266e564dSmrg esac 3621266e564dSmrg fi 3622266e564dSmrg if test -n "$a_deplib" ; then 3623266e564dSmrg libname=`eval \\$echo \"$libname_spec\"` 3624266e564dSmrg for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3625266e564dSmrg potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3626266e564dSmrg for potent_lib in $potential_libs; do 3627266e564dSmrg # Follow soft links. 3628266e564dSmrg if ls -lLd "$potent_lib" 2>/dev/null \ 3629266e564dSmrg | grep " -> " >/dev/null; then 3630266e564dSmrg continue 3631266e564dSmrg fi 3632266e564dSmrg # The statement above tries to avoid entering an 3633266e564dSmrg # endless loop below, in case of cyclic links. 3634266e564dSmrg # We might still enter an endless loop, since a link 3635266e564dSmrg # loop can be closed while we follow links, 3636266e564dSmrg # but so what? 3637266e564dSmrg potlib="$potent_lib" 3638266e564dSmrg while test -h "$potlib" 2>/dev/null; do 3639266e564dSmrg potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 3640266e564dSmrg case $potliblink in 3641266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 3642266e564dSmrg *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 3643266e564dSmrg esac 3644266e564dSmrg done 3645266e564dSmrg if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 3646266e564dSmrg | ${SED} 10q \ 3647266e564dSmrg | $EGREP "$file_magic_regex" > /dev/null; then 3648266e564dSmrg newdeplibs="$newdeplibs $a_deplib" 3649266e564dSmrg a_deplib="" 3650266e564dSmrg break 2 3651266e564dSmrg fi 3652266e564dSmrg done 3653266e564dSmrg done 3654266e564dSmrg fi 3655266e564dSmrg if test -n "$a_deplib" ; then 3656266e564dSmrg droppeddeps=yes 3657266e564dSmrg $echo 3658266e564dSmrg $echo "*** Warning: linker path does not have real file for library $a_deplib." 3659266e564dSmrg $echo "*** I have the capability to make that library automatically link in when" 3660266e564dSmrg $echo "*** you link to this library. But I can only do this if you have a" 3661266e564dSmrg $echo "*** shared version of the library, which you do not appear to have" 3662266e564dSmrg $echo "*** because I did check the linker path looking for a file starting" 3663266e564dSmrg if test -z "$potlib" ; then 3664266e564dSmrg $echo "*** with $libname but no candidates were found. (...for file magic test)" 3665266e564dSmrg else 3666266e564dSmrg $echo "*** with $libname and none of the candidates passed a file format test" 3667266e564dSmrg $echo "*** using a file magic. Last file checked: $potlib" 3668266e564dSmrg fi 3669266e564dSmrg fi 3670266e564dSmrg else 3671266e564dSmrg # Add a -L argument. 3672266e564dSmrg newdeplibs="$newdeplibs $a_deplib" 3673266e564dSmrg fi 3674266e564dSmrg done # Gone through all deplibs. 3675266e564dSmrg ;; 3676266e564dSmrg match_pattern*) 3677266e564dSmrg set dummy $deplibs_check_method 3678266e564dSmrg match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3679266e564dSmrg for a_deplib in $deplibs; do 3680266e564dSmrg name=`expr $a_deplib : '-l\(.*\)'` 3681266e564dSmrg # If $name is empty we are operating on a -L argument. 3682266e564dSmrg if test -n "$name" && test "$name" != "0"; then 3683266e564dSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3684266e564dSmrg case " $predeps $postdeps " in 3685266e564dSmrg *" $a_deplib "*) 3686266e564dSmrg newdeplibs="$newdeplibs $a_deplib" 3687266e564dSmrg a_deplib="" 3688266e564dSmrg ;; 3689266e564dSmrg esac 3690266e564dSmrg fi 3691266e564dSmrg if test -n "$a_deplib" ; then 3692266e564dSmrg libname=`eval \\$echo \"$libname_spec\"` 3693266e564dSmrg for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3694266e564dSmrg potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3695266e564dSmrg for potent_lib in $potential_libs; do 3696266e564dSmrg potlib="$potent_lib" # see symlink-check above in file_magic test 3697266e564dSmrg if eval $echo \"$potent_lib\" 2>/dev/null \ 3698266e564dSmrg | ${SED} 10q \ 3699266e564dSmrg | $EGREP "$match_pattern_regex" > /dev/null; then 3700266e564dSmrg newdeplibs="$newdeplibs $a_deplib" 3701266e564dSmrg a_deplib="" 3702266e564dSmrg break 2 3703266e564dSmrg fi 3704266e564dSmrg done 3705266e564dSmrg done 3706266e564dSmrg fi 3707266e564dSmrg if test -n "$a_deplib" ; then 3708266e564dSmrg droppeddeps=yes 3709266e564dSmrg $echo 3710266e564dSmrg $echo "*** Warning: linker path does not have real file for library $a_deplib." 3711266e564dSmrg $echo "*** I have the capability to make that library automatically link in when" 3712266e564dSmrg $echo "*** you link to this library. But I can only do this if you have a" 3713266e564dSmrg $echo "*** shared version of the library, which you do not appear to have" 3714266e564dSmrg $echo "*** because I did check the linker path looking for a file starting" 3715266e564dSmrg if test -z "$potlib" ; then 3716266e564dSmrg $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 3717266e564dSmrg else 3718266e564dSmrg $echo "*** with $libname and none of the candidates passed a file format test" 3719266e564dSmrg $echo "*** using a regex pattern. Last file checked: $potlib" 3720266e564dSmrg fi 3721266e564dSmrg fi 3722266e564dSmrg else 3723266e564dSmrg # Add a -L argument. 3724266e564dSmrg newdeplibs="$newdeplibs $a_deplib" 3725266e564dSmrg fi 3726266e564dSmrg done # Gone through all deplibs. 3727266e564dSmrg ;; 3728266e564dSmrg none | unknown | *) 3729266e564dSmrg newdeplibs="" 3730266e564dSmrg tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 3731266e564dSmrg -e 's/ -[LR][^ ]*//g'` 3732266e564dSmrg if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3733266e564dSmrg for i in $predeps $postdeps ; do 3734266e564dSmrg # can't use Xsed below, because $i might contain '/' 3735266e564dSmrg tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 3736266e564dSmrg done 3737266e564dSmrg fi 3738266e564dSmrg if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 3739266e564dSmrg | grep . >/dev/null; then 3740266e564dSmrg $echo 3741266e564dSmrg if test "X$deplibs_check_method" = "Xnone"; then 3742266e564dSmrg $echo "*** Warning: inter-library dependencies are not supported in this platform." 3743266e564dSmrg else 3744266e564dSmrg $echo "*** Warning: inter-library dependencies are not known to be supported." 3745266e564dSmrg fi 3746266e564dSmrg $echo "*** All declared inter-library dependencies are being dropped." 3747266e564dSmrg droppeddeps=yes 3748266e564dSmrg fi 3749266e564dSmrg ;; 3750266e564dSmrg esac 3751266e564dSmrg versuffix=$versuffix_save 3752266e564dSmrg major=$major_save 3753266e564dSmrg release=$release_save 3754266e564dSmrg libname=$libname_save 3755266e564dSmrg name=$name_save 3756266e564dSmrg 3757266e564dSmrg case $host in 3758266e564dSmrg *-*-rhapsody* | *-*-darwin1.[012]) 3759266e564dSmrg # On Rhapsody replace the C library is the System framework 3760266e564dSmrg newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 3761266e564dSmrg ;; 3762266e564dSmrg esac 3763266e564dSmrg 3764266e564dSmrg if test "$droppeddeps" = yes; then 3765266e564dSmrg if test "$module" = yes; then 3766266e564dSmrg $echo 3767266e564dSmrg $echo "*** Warning: libtool could not satisfy all declared inter-library" 3768266e564dSmrg $echo "*** dependencies of module $libname. Therefore, libtool will create" 3769266e564dSmrg $echo "*** a static module, that should work as long as the dlopening" 3770266e564dSmrg $echo "*** application is linked with the -dlopen flag." 3771266e564dSmrg if test -z "$global_symbol_pipe"; then 3772266e564dSmrg $echo 3773266e564dSmrg $echo "*** However, this would only work if libtool was able to extract symbol" 3774266e564dSmrg $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 3775266e564dSmrg $echo "*** not find such a program. So, this module is probably useless." 3776266e564dSmrg $echo "*** \`nm' from GNU binutils and a full rebuild may help." 3777266e564dSmrg fi 3778266e564dSmrg if test "$build_old_libs" = no; then 3779266e564dSmrg oldlibs="$output_objdir/$libname.$libext" 3780266e564dSmrg build_libtool_libs=module 3781266e564dSmrg build_old_libs=yes 3782266e564dSmrg else 3783266e564dSmrg build_libtool_libs=no 3784266e564dSmrg fi 3785266e564dSmrg else 3786266e564dSmrg $echo "*** The inter-library dependencies that have been dropped here will be" 3787266e564dSmrg $echo "*** automatically added whenever a program is linked with this library" 3788266e564dSmrg $echo "*** or is declared to -dlopen it." 3789266e564dSmrg 3790266e564dSmrg if test "$allow_undefined" = no; then 3791266e564dSmrg $echo 3792266e564dSmrg $echo "*** Since this library must not contain undefined symbols," 3793266e564dSmrg $echo "*** because either the platform does not support them or" 3794266e564dSmrg $echo "*** it was explicitly requested with -no-undefined," 3795266e564dSmrg $echo "*** libtool will only create a static version of it." 3796266e564dSmrg if test "$build_old_libs" = no; then 3797266e564dSmrg oldlibs="$output_objdir/$libname.$libext" 3798266e564dSmrg build_libtool_libs=module 3799266e564dSmrg build_old_libs=yes 3800266e564dSmrg else 3801266e564dSmrg build_libtool_libs=no 3802266e564dSmrg fi 3803266e564dSmrg fi 3804266e564dSmrg fi 3805266e564dSmrg fi 3806266e564dSmrg # Done checking deplibs! 3807266e564dSmrg deplibs=$newdeplibs 3808266e564dSmrg fi 3809266e564dSmrg 3810266e564dSmrg 3811266e564dSmrg # move library search paths that coincide with paths to not yet 3812266e564dSmrg # installed libraries to the beginning of the library search list 3813266e564dSmrg new_libs= 3814266e564dSmrg for path in $notinst_path; do 3815266e564dSmrg case " $new_libs " in 3816266e564dSmrg *" -L$path/$objdir "*) ;; 3817266e564dSmrg *) 3818266e564dSmrg case " $deplibs " in 3819266e564dSmrg *" -L$path/$objdir "*) 3820266e564dSmrg new_libs="$new_libs -L$path/$objdir" ;; 3821266e564dSmrg esac 3822266e564dSmrg ;; 3823266e564dSmrg esac 3824266e564dSmrg done 3825266e564dSmrg for deplib in $deplibs; do 3826266e564dSmrg case $deplib in 3827266e564dSmrg -L*) 3828266e564dSmrg case " $new_libs " in 3829266e564dSmrg *" $deplib "*) ;; 3830266e564dSmrg *) new_libs="$new_libs $deplib" ;; 3831266e564dSmrg esac 3832266e564dSmrg ;; 3833266e564dSmrg *) new_libs="$new_libs $deplib" ;; 3834266e564dSmrg esac 3835266e564dSmrg done 3836266e564dSmrg deplibs="$new_libs" 3837266e564dSmrg 3838266e564dSmrg 3839266e564dSmrg # All the library-specific variables (install_libdir is set above). 3840266e564dSmrg library_names= 3841266e564dSmrg old_library= 3842266e564dSmrg dlname= 3843266e564dSmrg 3844266e564dSmrg # Test again, we may have decided not to build it any more 3845266e564dSmrg if test "$build_libtool_libs" = yes; then 3846266e564dSmrg if test "$hardcode_into_libs" = yes; then 3847266e564dSmrg # Hardcode the library paths 3848266e564dSmrg hardcode_libdirs= 3849266e564dSmrg dep_rpath= 3850266e564dSmrg rpath="$finalize_rpath" 3851266e564dSmrg test "$mode" != relink && rpath="$compile_rpath$rpath" 3852266e564dSmrg for libdir in $rpath; do 3853266e564dSmrg if test -n "$hardcode_libdir_flag_spec"; then 3854266e564dSmrg if test -n "$hardcode_libdir_separator"; then 3855266e564dSmrg if test -z "$hardcode_libdirs"; then 3856266e564dSmrg hardcode_libdirs="$libdir" 3857266e564dSmrg else 3858266e564dSmrg # Just accumulate the unique libdirs. 3859266e564dSmrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 3860266e564dSmrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 3861266e564dSmrg ;; 3862266e564dSmrg *) 3863266e564dSmrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 3864266e564dSmrg ;; 3865266e564dSmrg esac 3866266e564dSmrg fi 3867266e564dSmrg else 3868266e564dSmrg eval flag=\"$hardcode_libdir_flag_spec\" 3869266e564dSmrg dep_rpath="$dep_rpath $flag" 3870266e564dSmrg fi 3871266e564dSmrg elif test -n "$runpath_var"; then 3872266e564dSmrg case "$perm_rpath " in 3873266e564dSmrg *" $libdir "*) ;; 3874266e564dSmrg *) perm_rpath="$perm_rpath $libdir" ;; 3875266e564dSmrg esac 3876266e564dSmrg fi 3877266e564dSmrg done 3878266e564dSmrg # Substitute the hardcoded libdirs into the rpath. 3879266e564dSmrg if test -n "$hardcode_libdir_separator" && 3880266e564dSmrg test -n "$hardcode_libdirs"; then 3881266e564dSmrg libdir="$hardcode_libdirs" 3882266e564dSmrg if test -n "$hardcode_libdir_flag_spec_ld"; then 3883266e564dSmrg eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 3884266e564dSmrg else 3885266e564dSmrg eval dep_rpath=\"$hardcode_libdir_flag_spec\" 3886266e564dSmrg fi 3887266e564dSmrg fi 3888266e564dSmrg if test -n "$runpath_var" && test -n "$perm_rpath"; then 3889266e564dSmrg # We should set the runpath_var. 3890266e564dSmrg rpath= 3891266e564dSmrg for dir in $perm_rpath; do 3892266e564dSmrg rpath="$rpath$dir:" 3893266e564dSmrg done 3894266e564dSmrg eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 3895266e564dSmrg fi 3896266e564dSmrg test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 3897266e564dSmrg fi 3898266e564dSmrg 3899266e564dSmrg shlibpath="$finalize_shlibpath" 3900266e564dSmrg test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 3901266e564dSmrg if test -n "$shlibpath"; then 3902266e564dSmrg eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 3903266e564dSmrg fi 3904266e564dSmrg 3905266e564dSmrg # Get the real and link names of the library. 3906266e564dSmrg eval shared_ext=\"$shrext_cmds\" 3907266e564dSmrg eval library_names=\"$library_names_spec\" 3908266e564dSmrg set dummy $library_names 3909266e564dSmrg realname="$2" 3910266e564dSmrg shift; shift 3911266e564dSmrg 3912266e564dSmrg if test -n "$soname_spec"; then 3913266e564dSmrg eval soname=\"$soname_spec\" 3914266e564dSmrg else 3915266e564dSmrg soname="$realname" 3916266e564dSmrg fi 3917266e564dSmrg if test -z "$dlname"; then 3918266e564dSmrg dlname=$soname 3919266e564dSmrg fi 3920266e564dSmrg 3921266e564dSmrg lib="$output_objdir/$realname" 3922266e564dSmrg linknames= 3923266e564dSmrg for link 3924266e564dSmrg do 3925266e564dSmrg linknames="$linknames $link" 3926266e564dSmrg done 3927266e564dSmrg 3928266e564dSmrg # Use standard objects if they are pic 3929266e564dSmrg test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 3930266e564dSmrg 3931266e564dSmrg # Prepare the list of exported symbols 3932266e564dSmrg if test -z "$export_symbols"; then 3933266e564dSmrg if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 3934266e564dSmrg $show "generating symbol list for \`$libname.la'" 3935266e564dSmrg export_symbols="$output_objdir/$libname.exp" 3936266e564dSmrg $run $rm $export_symbols 3937266e564dSmrg cmds=$export_symbols_cmds 3938266e564dSmrg save_ifs="$IFS"; IFS='~' 3939266e564dSmrg for cmd in $cmds; do 3940266e564dSmrg IFS="$save_ifs" 3941266e564dSmrg eval cmd=\"$cmd\" 3942266e564dSmrg if len=`expr "X$cmd" : ".*"` && 3943266e564dSmrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 3944266e564dSmrg $show "$cmd" 3945266e564dSmrg $run eval "$cmd" || exit $? 3946266e564dSmrg skipped_export=false 3947266e564dSmrg else 3948266e564dSmrg # The command line is too long to execute in one step. 3949266e564dSmrg $show "using reloadable object file for export list..." 3950266e564dSmrg skipped_export=: 3951266e564dSmrg # Break out early, otherwise skipped_export may be 3952266e564dSmrg # set to false by a later but shorter cmd. 3953266e564dSmrg break 3954266e564dSmrg fi 3955266e564dSmrg done 3956266e564dSmrg IFS="$save_ifs" 3957266e564dSmrg if test -n "$export_symbols_regex"; then 3958266e564dSmrg $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 3959266e564dSmrg $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 3960266e564dSmrg $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 3961266e564dSmrg $run eval '$mv "${export_symbols}T" "$export_symbols"' 3962266e564dSmrg fi 3963266e564dSmrg fi 3964266e564dSmrg fi 3965266e564dSmrg 3966266e564dSmrg if test -n "$export_symbols" && test -n "$include_expsyms"; then 3967266e564dSmrg $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 3968266e564dSmrg fi 3969266e564dSmrg 3970266e564dSmrg tmp_deplibs= 3971266e564dSmrg for test_deplib in $deplibs; do 3972266e564dSmrg case " $convenience " in 3973266e564dSmrg *" $test_deplib "*) ;; 3974266e564dSmrg *) 3975266e564dSmrg tmp_deplibs="$tmp_deplibs $test_deplib" 3976266e564dSmrg ;; 3977266e564dSmrg esac 3978266e564dSmrg done 3979266e564dSmrg deplibs="$tmp_deplibs" 3980266e564dSmrg 3981266e564dSmrg if test -n "$convenience"; then 3982266e564dSmrg if test -n "$whole_archive_flag_spec"; then 3983266e564dSmrg save_libobjs=$libobjs 3984266e564dSmrg eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 3985266e564dSmrg else 3986266e564dSmrg gentop="$output_objdir/${outputname}x" 3987266e564dSmrg generated="$generated $gentop" 3988266e564dSmrg 3989266e564dSmrg func_extract_archives $gentop $convenience 3990266e564dSmrg libobjs="$libobjs $func_extract_archives_result" 3991266e564dSmrg fi 3992266e564dSmrg fi 3993266e564dSmrg 3994266e564dSmrg if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 3995266e564dSmrg eval flag=\"$thread_safe_flag_spec\" 3996266e564dSmrg linker_flags="$linker_flags $flag" 3997266e564dSmrg fi 3998266e564dSmrg 3999266e564dSmrg # Make a backup of the uninstalled library when relinking 4000266e564dSmrg if test "$mode" = relink; then 4001266e564dSmrg $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 4002266e564dSmrg fi 4003266e564dSmrg 4004266e564dSmrg # Do each of the archive commands. 4005266e564dSmrg if test "$module" = yes && test -n "$module_cmds" ; then 4006266e564dSmrg if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4007266e564dSmrg eval test_cmds=\"$module_expsym_cmds\" 4008266e564dSmrg cmds=$module_expsym_cmds 4009266e564dSmrg else 4010266e564dSmrg eval test_cmds=\"$module_cmds\" 4011266e564dSmrg cmds=$module_cmds 4012266e564dSmrg fi 4013266e564dSmrg else 4014266e564dSmrg if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4015266e564dSmrg eval test_cmds=\"$archive_expsym_cmds\" 4016266e564dSmrg cmds=$archive_expsym_cmds 4017266e564dSmrg else 4018266e564dSmrg eval test_cmds=\"$archive_cmds\" 4019266e564dSmrg cmds=$archive_cmds 4020266e564dSmrg fi 4021266e564dSmrg fi 4022266e564dSmrg 4023266e564dSmrg if test "X$skipped_export" != "X:" && 4024266e564dSmrg len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4025266e564dSmrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4026266e564dSmrg : 4027266e564dSmrg else 4028266e564dSmrg # The command line is too long to link in one step, link piecewise. 4029266e564dSmrg $echo "creating reloadable object files..." 4030266e564dSmrg 4031266e564dSmrg # Save the value of $output and $libobjs because we want to 4032266e564dSmrg # use them later. If we have whole_archive_flag_spec, we 4033266e564dSmrg # want to use save_libobjs as it was before 4034266e564dSmrg # whole_archive_flag_spec was expanded, because we can't 4035266e564dSmrg # assume the linker understands whole_archive_flag_spec. 4036266e564dSmrg # This may have to be revisited, in case too many 4037266e564dSmrg # convenience libraries get linked in and end up exceeding 4038266e564dSmrg # the spec. 4039266e564dSmrg if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 4040266e564dSmrg save_libobjs=$libobjs 4041266e564dSmrg fi 4042266e564dSmrg save_output=$output 4043266e564dSmrg output_la=`$echo "X$output" | $Xsed -e "$basename"` 4044266e564dSmrg 4045266e564dSmrg # Clear the reloadable object creation command queue and 4046266e564dSmrg # initialize k to one. 4047266e564dSmrg test_cmds= 4048266e564dSmrg concat_cmds= 4049266e564dSmrg objlist= 4050266e564dSmrg delfiles= 4051266e564dSmrg last_robj= 4052266e564dSmrg k=1 4053266e564dSmrg output=$output_objdir/$output_la-${k}.$objext 4054266e564dSmrg # Loop over the list of objects to be linked. 4055266e564dSmrg for obj in $save_libobjs 4056266e564dSmrg do 4057266e564dSmrg eval test_cmds=\"$reload_cmds $objlist $last_robj\" 4058266e564dSmrg if test "X$objlist" = X || 4059266e564dSmrg { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4060266e564dSmrg test "$len" -le "$max_cmd_len"; }; then 4061266e564dSmrg objlist="$objlist $obj" 4062266e564dSmrg else 4063266e564dSmrg # The command $test_cmds is almost too long, add a 4064266e564dSmrg # command to the queue. 4065266e564dSmrg if test "$k" -eq 1 ; then 4066266e564dSmrg # The first file doesn't have a previous command to add. 4067266e564dSmrg eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 4068266e564dSmrg else 4069266e564dSmrg # All subsequent reloadable object files will link in 4070266e564dSmrg # the last one created. 4071266e564dSmrg eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 4072266e564dSmrg fi 4073266e564dSmrg last_robj=$output_objdir/$output_la-${k}.$objext 4074266e564dSmrg k=`expr $k + 1` 4075266e564dSmrg output=$output_objdir/$output_la-${k}.$objext 4076266e564dSmrg objlist=$obj 4077266e564dSmrg len=1 4078266e564dSmrg fi 4079266e564dSmrg done 4080266e564dSmrg # Handle the remaining objects by creating one last 4081266e564dSmrg # reloadable object file. All subsequent reloadable object 4082266e564dSmrg # files will link in the last one created. 4083266e564dSmrg test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 4084266e564dSmrg eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 4085266e564dSmrg 4086266e564dSmrg if ${skipped_export-false}; then 4087266e564dSmrg $show "generating symbol list for \`$libname.la'" 4088266e564dSmrg export_symbols="$output_objdir/$libname.exp" 4089266e564dSmrg $run $rm $export_symbols 4090266e564dSmrg libobjs=$output 4091266e564dSmrg # Append the command to create the export file. 4092266e564dSmrg eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 4093266e564dSmrg fi 4094266e564dSmrg 4095266e564dSmrg # Set up a command to remove the reloadable object files 4096266e564dSmrg # after they are used. 4097266e564dSmrg i=0 4098266e564dSmrg while test "$i" -lt "$k" 4099266e564dSmrg do 4100266e564dSmrg i=`expr $i + 1` 4101266e564dSmrg delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 4102266e564dSmrg done 4103266e564dSmrg 4104266e564dSmrg $echo "creating a temporary reloadable object file: $output" 4105266e564dSmrg 4106266e564dSmrg # Loop through the commands generated above and execute them. 4107266e564dSmrg save_ifs="$IFS"; IFS='~' 4108266e564dSmrg for cmd in $concat_cmds; do 4109266e564dSmrg IFS="$save_ifs" 4110266e564dSmrg $show "$cmd" 4111266e564dSmrg $run eval "$cmd" || exit $? 4112266e564dSmrg done 4113266e564dSmrg IFS="$save_ifs" 4114266e564dSmrg 4115266e564dSmrg libobjs=$output 4116266e564dSmrg # Restore the value of output. 4117266e564dSmrg output=$save_output 4118266e564dSmrg 4119266e564dSmrg if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 4120266e564dSmrg eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4121266e564dSmrg fi 4122266e564dSmrg # Expand the library linking commands again to reset the 4123266e564dSmrg # value of $libobjs for piecewise linking. 4124266e564dSmrg 4125266e564dSmrg # Do each of the archive commands. 4126266e564dSmrg if test "$module" = yes && test -n "$module_cmds" ; then 4127266e564dSmrg if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4128266e564dSmrg cmds=$module_expsym_cmds 4129266e564dSmrg else 4130266e564dSmrg cmds=$module_cmds 4131266e564dSmrg fi 4132266e564dSmrg else 4133266e564dSmrg if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4134266e564dSmrg cmds=$archive_expsym_cmds 4135266e564dSmrg else 4136266e564dSmrg cmds=$archive_cmds 4137266e564dSmrg fi 4138266e564dSmrg fi 4139266e564dSmrg 4140266e564dSmrg # Append the command to remove the reloadable object files 4141266e564dSmrg # to the just-reset $cmds. 4142266e564dSmrg eval cmds=\"\$cmds~\$rm $delfiles\" 4143266e564dSmrg fi 4144266e564dSmrg save_ifs="$IFS"; IFS='~' 4145266e564dSmrg for cmd in $cmds; do 4146266e564dSmrg IFS="$save_ifs" 4147266e564dSmrg eval cmd=\"$cmd\" 4148266e564dSmrg $show "$cmd" 4149266e564dSmrg $run eval "$cmd" || { 4150266e564dSmrg lt_exit=$? 4151266e564dSmrg 4152266e564dSmrg # Restore the uninstalled library and exit 4153266e564dSmrg if test "$mode" = relink; then 4154266e564dSmrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 4155266e564dSmrg fi 4156266e564dSmrg 4157266e564dSmrg exit $lt_exit 4158266e564dSmrg } 4159266e564dSmrg done 4160266e564dSmrg IFS="$save_ifs" 4161266e564dSmrg 4162266e564dSmrg # Restore the uninstalled library and exit 4163266e564dSmrg if test "$mode" = relink; then 4164266e564dSmrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 4165266e564dSmrg 4166266e564dSmrg if test -n "$convenience"; then 4167266e564dSmrg if test -z "$whole_archive_flag_spec"; then 4168266e564dSmrg $show "${rm}r $gentop" 4169266e564dSmrg $run ${rm}r "$gentop" 4170266e564dSmrg fi 4171266e564dSmrg fi 4172266e564dSmrg 4173266e564dSmrg exit $EXIT_SUCCESS 4174266e564dSmrg fi 4175266e564dSmrg 4176266e564dSmrg # Create links to the real library. 4177266e564dSmrg for linkname in $linknames; do 4178266e564dSmrg if test "$realname" != "$linkname"; then 4179266e564dSmrg $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 4180266e564dSmrg $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 4181266e564dSmrg fi 4182266e564dSmrg done 4183266e564dSmrg 4184266e564dSmrg # If -module or -export-dynamic was specified, set the dlname. 4185266e564dSmrg if test "$module" = yes || test "$export_dynamic" = yes; then 4186266e564dSmrg # On all known operating systems, these are identical. 4187266e564dSmrg dlname="$soname" 4188266e564dSmrg fi 4189266e564dSmrg fi 4190266e564dSmrg ;; 4191266e564dSmrg 4192266e564dSmrg obj) 4193266e564dSmrg if test -n "$deplibs"; then 4194266e564dSmrg $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 4195266e564dSmrg fi 4196266e564dSmrg 4197266e564dSmrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4198266e564dSmrg $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 4199266e564dSmrg fi 4200266e564dSmrg 4201266e564dSmrg if test -n "$rpath"; then 4202266e564dSmrg $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 4203266e564dSmrg fi 4204266e564dSmrg 4205266e564dSmrg if test -n "$xrpath"; then 4206266e564dSmrg $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 4207266e564dSmrg fi 4208266e564dSmrg 4209266e564dSmrg if test -n "$vinfo"; then 4210266e564dSmrg $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 4211266e564dSmrg fi 4212266e564dSmrg 4213266e564dSmrg if test -n "$release"; then 4214266e564dSmrg $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 4215266e564dSmrg fi 4216266e564dSmrg 4217266e564dSmrg case $output in 4218266e564dSmrg *.lo) 4219266e564dSmrg if test -n "$objs$old_deplibs"; then 4220266e564dSmrg $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 4221266e564dSmrg exit $EXIT_FAILURE 4222266e564dSmrg fi 4223266e564dSmrg libobj="$output" 4224266e564dSmrg obj=`$echo "X$output" | $Xsed -e "$lo2o"` 4225266e564dSmrg ;; 4226266e564dSmrg *) 4227266e564dSmrg libobj= 4228266e564dSmrg obj="$output" 4229266e564dSmrg ;; 4230266e564dSmrg esac 4231266e564dSmrg 4232266e564dSmrg # Delete the old objects. 4233266e564dSmrg $run $rm $obj $libobj 4234266e564dSmrg 4235266e564dSmrg # Objects from convenience libraries. This assumes 4236266e564dSmrg # single-version convenience libraries. Whenever we create 4237266e564dSmrg # different ones for PIC/non-PIC, this we'll have to duplicate 4238266e564dSmrg # the extraction. 4239266e564dSmrg reload_conv_objs= 4240266e564dSmrg gentop= 4241266e564dSmrg # reload_cmds runs $LD directly, so let us get rid of 4242266e564dSmrg # -Wl from whole_archive_flag_spec 4243266e564dSmrg wl= 4244266e564dSmrg 4245266e564dSmrg if test -n "$convenience"; then 4246266e564dSmrg if test -n "$whole_archive_flag_spec"; then 4247266e564dSmrg eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" 4248266e564dSmrg else 4249266e564dSmrg gentop="$output_objdir/${obj}x" 4250266e564dSmrg generated="$generated $gentop" 4251266e564dSmrg 4252266e564dSmrg func_extract_archives $gentop $convenience 4253266e564dSmrg reload_conv_objs="$reload_objs $func_extract_archives_result" 4254266e564dSmrg fi 4255266e564dSmrg fi 4256266e564dSmrg 4257266e564dSmrg # Create the old-style object. 4258266e564dSmrg 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 4259266e564dSmrg 4260266e564dSmrg output="$obj" 4261266e564dSmrg cmds=$reload_cmds 4262266e564dSmrg save_ifs="$IFS"; IFS='~' 4263266e564dSmrg for cmd in $cmds; do 4264266e564dSmrg IFS="$save_ifs" 4265266e564dSmrg eval cmd=\"$cmd\" 4266266e564dSmrg $show "$cmd" 4267266e564dSmrg $run eval "$cmd" || exit $? 4268266e564dSmrg done 4269266e564dSmrg IFS="$save_ifs" 4270266e564dSmrg 4271266e564dSmrg # Exit if we aren't doing a library object file. 4272266e564dSmrg if test -z "$libobj"; then 4273266e564dSmrg if test -n "$gentop"; then 4274266e564dSmrg $show "${rm}r $gentop" 4275266e564dSmrg $run ${rm}r $gentop 4276266e564dSmrg fi 4277266e564dSmrg 4278266e564dSmrg exit $EXIT_SUCCESS 4279266e564dSmrg fi 4280266e564dSmrg 4281266e564dSmrg if test "$build_libtool_libs" != yes; then 4282266e564dSmrg if test -n "$gentop"; then 4283266e564dSmrg $show "${rm}r $gentop" 4284266e564dSmrg $run ${rm}r $gentop 4285266e564dSmrg fi 4286266e564dSmrg 4287266e564dSmrg # Create an invalid libtool object if no PIC, so that we don't 4288266e564dSmrg # accidentally link it into a program. 4289266e564dSmrg # $show "echo timestamp > $libobj" 4290266e564dSmrg # $run eval "echo timestamp > $libobj" || exit $? 4291266e564dSmrg exit $EXIT_SUCCESS 4292266e564dSmrg fi 4293266e564dSmrg 4294266e564dSmrg if test -n "$pic_flag" || test "$pic_mode" != default; then 4295266e564dSmrg # Only do commands if we really have different PIC objects. 4296266e564dSmrg reload_objs="$libobjs $reload_conv_objs" 4297266e564dSmrg output="$libobj" 4298266e564dSmrg cmds=$reload_cmds 4299266e564dSmrg save_ifs="$IFS"; IFS='~' 4300266e564dSmrg for cmd in $cmds; do 4301266e564dSmrg IFS="$save_ifs" 4302266e564dSmrg eval cmd=\"$cmd\" 4303266e564dSmrg $show "$cmd" 4304266e564dSmrg $run eval "$cmd" || exit $? 4305266e564dSmrg done 4306266e564dSmrg IFS="$save_ifs" 4307266e564dSmrg fi 4308266e564dSmrg 4309266e564dSmrg if test -n "$gentop"; then 4310266e564dSmrg $show "${rm}r $gentop" 4311266e564dSmrg $run ${rm}r $gentop 4312266e564dSmrg fi 4313266e564dSmrg 4314266e564dSmrg exit $EXIT_SUCCESS 4315266e564dSmrg ;; 4316266e564dSmrg 4317266e564dSmrg prog) 4318266e564dSmrg case $host in 4319266e564dSmrg *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 4320266e564dSmrg esac 4321266e564dSmrg if test -n "$vinfo"; then 4322266e564dSmrg $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 4323266e564dSmrg fi 4324266e564dSmrg 4325266e564dSmrg if test -n "$release"; then 4326266e564dSmrg $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 4327266e564dSmrg fi 4328266e564dSmrg 4329266e564dSmrg if test "$preload" = yes; then 4330266e564dSmrg if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 4331266e564dSmrg test "$dlopen_self_static" = unknown; then 4332266e564dSmrg $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 4333266e564dSmrg fi 4334266e564dSmrg fi 4335266e564dSmrg 4336266e564dSmrg case $host in 4337266e564dSmrg *-*-rhapsody* | *-*-darwin1.[012]) 4338266e564dSmrg # On Rhapsody replace the C library is the System framework 4339266e564dSmrg compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4340266e564dSmrg finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4341266e564dSmrg ;; 4342266e564dSmrg esac 4343266e564dSmrg 4344266e564dSmrg case $host in 4345266e564dSmrg *darwin*) 4346266e564dSmrg # Don't allow lazy linking, it breaks C++ global constructors 4347266e564dSmrg if test "$tagname" = CXX ; then 4348266e564dSmrg compile_command="$compile_command ${wl}-bind_at_load" 4349266e564dSmrg finalize_command="$finalize_command ${wl}-bind_at_load" 4350266e564dSmrg fi 4351266e564dSmrg ;; 4352266e564dSmrg esac 4353266e564dSmrg 4354266e564dSmrg 4355266e564dSmrg # move library search paths that coincide with paths to not yet 4356266e564dSmrg # installed libraries to the beginning of the library search list 4357266e564dSmrg new_libs= 4358266e564dSmrg for path in $notinst_path; do 4359266e564dSmrg case " $new_libs " in 4360266e564dSmrg *" -L$path/$objdir "*) ;; 4361266e564dSmrg *) 4362266e564dSmrg case " $compile_deplibs " in 4363266e564dSmrg *" -L$path/$objdir "*) 4364266e564dSmrg new_libs="$new_libs -L$path/$objdir" ;; 4365266e564dSmrg esac 4366266e564dSmrg ;; 4367266e564dSmrg esac 4368266e564dSmrg done 4369266e564dSmrg for deplib in $compile_deplibs; do 4370266e564dSmrg case $deplib in 4371266e564dSmrg -L*) 4372266e564dSmrg case " $new_libs " in 4373266e564dSmrg *" $deplib "*) ;; 4374266e564dSmrg *) new_libs="$new_libs $deplib" ;; 4375266e564dSmrg esac 4376266e564dSmrg ;; 4377266e564dSmrg *) new_libs="$new_libs $deplib" ;; 4378266e564dSmrg esac 4379266e564dSmrg done 4380266e564dSmrg compile_deplibs="$new_libs" 4381266e564dSmrg 4382266e564dSmrg 4383266e564dSmrg compile_command="$compile_command $compile_deplibs" 4384266e564dSmrg finalize_command="$finalize_command $finalize_deplibs" 4385266e564dSmrg 4386266e564dSmrg if test -n "$rpath$xrpath"; then 4387266e564dSmrg # If the user specified any rpath flags, then add them. 4388266e564dSmrg for libdir in $rpath $xrpath; do 4389266e564dSmrg # This is the magic to use -rpath. 4390266e564dSmrg case "$finalize_rpath " in 4391266e564dSmrg *" $libdir "*) ;; 4392266e564dSmrg *) finalize_rpath="$finalize_rpath $libdir" ;; 4393266e564dSmrg esac 4394266e564dSmrg done 4395266e564dSmrg fi 4396266e564dSmrg 4397266e564dSmrg # Now hardcode the library paths 4398266e564dSmrg rpath= 4399266e564dSmrg hardcode_libdirs= 4400266e564dSmrg for libdir in $compile_rpath $finalize_rpath; do 4401266e564dSmrg if test -n "$hardcode_libdir_flag_spec"; then 4402266e564dSmrg if test -n "$hardcode_libdir_separator"; then 4403266e564dSmrg if test -z "$hardcode_libdirs"; then 4404266e564dSmrg hardcode_libdirs="$libdir" 4405266e564dSmrg else 4406266e564dSmrg # Just accumulate the unique libdirs. 4407266e564dSmrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4408266e564dSmrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4409266e564dSmrg ;; 4410266e564dSmrg *) 4411266e564dSmrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4412266e564dSmrg ;; 4413266e564dSmrg esac 4414266e564dSmrg fi 4415266e564dSmrg else 4416266e564dSmrg eval flag=\"$hardcode_libdir_flag_spec\" 4417266e564dSmrg rpath="$rpath $flag" 4418266e564dSmrg fi 4419266e564dSmrg elif test -n "$runpath_var"; then 4420266e564dSmrg case "$perm_rpath " in 4421266e564dSmrg *" $libdir "*) ;; 4422266e564dSmrg *) perm_rpath="$perm_rpath $libdir" ;; 4423266e564dSmrg esac 4424266e564dSmrg fi 4425266e564dSmrg case $host in 4426266e564dSmrg *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4427266e564dSmrg testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 4428266e564dSmrg case :$dllsearchpath: in 4429266e564dSmrg *":$libdir:"*) ;; 4430266e564dSmrg *) dllsearchpath="$dllsearchpath:$libdir";; 4431266e564dSmrg esac 4432266e564dSmrg case :$dllsearchpath: in 4433266e564dSmrg *":$testbindir:"*) ;; 4434266e564dSmrg *) dllsearchpath="$dllsearchpath:$testbindir";; 4435266e564dSmrg esac 4436266e564dSmrg ;; 4437266e564dSmrg esac 4438266e564dSmrg done 4439266e564dSmrg # Substitute the hardcoded libdirs into the rpath. 4440266e564dSmrg if test -n "$hardcode_libdir_separator" && 4441266e564dSmrg test -n "$hardcode_libdirs"; then 4442266e564dSmrg libdir="$hardcode_libdirs" 4443266e564dSmrg eval rpath=\" $hardcode_libdir_flag_spec\" 4444266e564dSmrg fi 4445266e564dSmrg compile_rpath="$rpath" 4446266e564dSmrg 4447266e564dSmrg rpath= 4448266e564dSmrg hardcode_libdirs= 4449266e564dSmrg for libdir in $finalize_rpath; do 4450266e564dSmrg if test -n "$hardcode_libdir_flag_spec"; then 4451266e564dSmrg if test -n "$hardcode_libdir_separator"; then 4452266e564dSmrg if test -z "$hardcode_libdirs"; then 4453266e564dSmrg hardcode_libdirs="$libdir" 4454266e564dSmrg else 4455266e564dSmrg # Just accumulate the unique libdirs. 4456266e564dSmrg case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4457266e564dSmrg *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4458266e564dSmrg ;; 4459266e564dSmrg *) 4460266e564dSmrg hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4461266e564dSmrg ;; 4462266e564dSmrg esac 4463266e564dSmrg fi 4464266e564dSmrg else 4465266e564dSmrg eval flag=\"$hardcode_libdir_flag_spec\" 4466266e564dSmrg rpath="$rpath $flag" 4467266e564dSmrg fi 4468266e564dSmrg elif test -n "$runpath_var"; then 4469266e564dSmrg case "$finalize_perm_rpath " in 4470266e564dSmrg *" $libdir "*) ;; 4471266e564dSmrg *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 4472266e564dSmrg esac 4473266e564dSmrg fi 4474266e564dSmrg done 4475266e564dSmrg # Substitute the hardcoded libdirs into the rpath. 4476266e564dSmrg if test -n "$hardcode_libdir_separator" && 4477266e564dSmrg test -n "$hardcode_libdirs"; then 4478266e564dSmrg libdir="$hardcode_libdirs" 4479266e564dSmrg eval rpath=\" $hardcode_libdir_flag_spec\" 4480266e564dSmrg fi 4481266e564dSmrg finalize_rpath="$rpath" 4482266e564dSmrg 4483266e564dSmrg if test -n "$libobjs" && test "$build_old_libs" = yes; then 4484266e564dSmrg # Transform all the library objects into standard objects. 4485266e564dSmrg compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4486266e564dSmrg finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4487266e564dSmrg fi 4488266e564dSmrg 4489266e564dSmrg dlsyms= 4490266e564dSmrg if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4491266e564dSmrg if test -n "$NM" && test -n "$global_symbol_pipe"; then 4492266e564dSmrg dlsyms="${outputname}S.c" 4493266e564dSmrg else 4494266e564dSmrg $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 4495266e564dSmrg fi 4496266e564dSmrg fi 4497266e564dSmrg 4498266e564dSmrg if test -n "$dlsyms"; then 4499266e564dSmrg case $dlsyms in 4500266e564dSmrg "") ;; 4501266e564dSmrg *.c) 4502266e564dSmrg # Discover the nlist of each of the dlfiles. 4503266e564dSmrg nlist="$output_objdir/${outputname}.nm" 4504266e564dSmrg 4505266e564dSmrg $show "$rm $nlist ${nlist}S ${nlist}T" 4506266e564dSmrg $run $rm "$nlist" "${nlist}S" "${nlist}T" 4507266e564dSmrg 4508266e564dSmrg # Parse the name list into a source file. 4509266e564dSmrg $show "creating $output_objdir/$dlsyms" 4510266e564dSmrg 4511266e564dSmrg test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 4512266e564dSmrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 4513266e564dSmrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 4514266e564dSmrg 4515266e564dSmrg#ifdef __cplusplus 4516266e564dSmrgextern \"C\" { 4517266e564dSmrg#endif 4518266e564dSmrg 4519266e564dSmrg/* Prevent the only kind of declaration conflicts we can make. */ 4520266e564dSmrg#define lt_preloaded_symbols some_other_symbol 4521266e564dSmrg 4522266e564dSmrg/* External symbol declarations for the compiler. */\ 4523266e564dSmrg" 4524266e564dSmrg 4525266e564dSmrg if test "$dlself" = yes; then 4526266e564dSmrg $show "generating symbol list for \`$output'" 4527266e564dSmrg 4528266e564dSmrg test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 4529266e564dSmrg 4530266e564dSmrg # Add our own program objects to the symbol list. 4531266e564dSmrg progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4532266e564dSmrg for arg in $progfiles; do 4533266e564dSmrg $show "extracting global C symbols from \`$arg'" 4534266e564dSmrg $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4535266e564dSmrg done 4536266e564dSmrg 4537266e564dSmrg if test -n "$exclude_expsyms"; then 4538266e564dSmrg $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 4539266e564dSmrg $run eval '$mv "$nlist"T "$nlist"' 4540266e564dSmrg fi 4541266e564dSmrg 4542266e564dSmrg if test -n "$export_symbols_regex"; then 4543266e564dSmrg $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 4544266e564dSmrg $run eval '$mv "$nlist"T "$nlist"' 4545266e564dSmrg fi 4546266e564dSmrg 4547266e564dSmrg # Prepare the list of exported symbols 4548266e564dSmrg if test -z "$export_symbols"; then 4549266e564dSmrg export_symbols="$output_objdir/$outputname.exp" 4550266e564dSmrg $run $rm $export_symbols 4551266e564dSmrg $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 4552266e564dSmrg case $host in 4553266e564dSmrg *cygwin* | *mingw* ) 4554266e564dSmrg $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4555266e564dSmrg $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 4556266e564dSmrg ;; 4557266e564dSmrg esac 4558266e564dSmrg else 4559266e564dSmrg $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 4560266e564dSmrg $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 4561266e564dSmrg $run eval 'mv "$nlist"T "$nlist"' 4562266e564dSmrg case $host in 4563266e564dSmrg *cygwin* | *mingw* ) 4564266e564dSmrg $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4565266e564dSmrg $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 4566266e564dSmrg ;; 4567266e564dSmrg esac 4568266e564dSmrg fi 4569266e564dSmrg fi 4570266e564dSmrg 4571266e564dSmrg for arg in $dlprefiles; do 4572266e564dSmrg $show "extracting global C symbols from \`$arg'" 4573266e564dSmrg name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 4574266e564dSmrg $run eval '$echo ": $name " >> "$nlist"' 4575266e564dSmrg $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4576266e564dSmrg done 4577266e564dSmrg 4578266e564dSmrg if test -z "$run"; then 4579266e564dSmrg # Make sure we have at least an empty file. 4580266e564dSmrg test -f "$nlist" || : > "$nlist" 4581266e564dSmrg 4582266e564dSmrg if test -n "$exclude_expsyms"; then 4583266e564dSmrg $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 4584266e564dSmrg $mv "$nlist"T "$nlist" 4585266e564dSmrg fi 4586266e564dSmrg 4587266e564dSmrg # Try sorting and uniquifying the output. 4588266e564dSmrg if grep -v "^: " < "$nlist" | 4589266e564dSmrg if sort -k 3 </dev/null >/dev/null 2>&1; then 4590266e564dSmrg sort -k 3 4591266e564dSmrg else 4592266e564dSmrg sort +2 4593266e564dSmrg fi | 4594266e564dSmrg uniq > "$nlist"S; then 4595266e564dSmrg : 4596266e564dSmrg else 4597266e564dSmrg grep -v "^: " < "$nlist" > "$nlist"S 4598266e564dSmrg fi 4599266e564dSmrg 4600266e564dSmrg if test -f "$nlist"S; then 4601266e564dSmrg eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 4602266e564dSmrg else 4603266e564dSmrg $echo '/* NONE */' >> "$output_objdir/$dlsyms" 4604266e564dSmrg fi 4605266e564dSmrg 4606266e564dSmrg $echo >> "$output_objdir/$dlsyms" "\ 4607266e564dSmrg 4608266e564dSmrg#undef lt_preloaded_symbols 4609266e564dSmrg 4610266e564dSmrg#if defined (__STDC__) && __STDC__ 4611266e564dSmrg# define lt_ptr void * 4612266e564dSmrg#else 4613266e564dSmrg# define lt_ptr char * 4614266e564dSmrg# define const 4615266e564dSmrg#endif 4616266e564dSmrg 4617266e564dSmrg/* The mapping between symbol names and symbols. */ 4618266e564dSmrg" 4619266e564dSmrg 4620266e564dSmrg case $host in 4621266e564dSmrg *cygwin* | *mingw* ) 4622266e564dSmrg $echo >> "$output_objdir/$dlsyms" "\ 4623266e564dSmrg/* DATA imports from DLLs on WIN32 can't be const, because 4624266e564dSmrg runtime relocations are performed -- see ld's documentation 4625266e564dSmrg on pseudo-relocs */ 4626266e564dSmrgstruct { 4627266e564dSmrg" 4628266e564dSmrg ;; 4629266e564dSmrg * ) 4630266e564dSmrg $echo >> "$output_objdir/$dlsyms" "\ 4631266e564dSmrgconst struct { 4632266e564dSmrg" 4633266e564dSmrg ;; 4634266e564dSmrg esac 4635266e564dSmrg 4636266e564dSmrg 4637266e564dSmrg $echo >> "$output_objdir/$dlsyms" "\ 4638266e564dSmrg const char *name; 4639266e564dSmrg lt_ptr address; 4640266e564dSmrg} 4641266e564dSmrglt_preloaded_symbols[] = 4642266e564dSmrg{\ 4643266e564dSmrg" 4644266e564dSmrg 4645266e564dSmrg eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 4646266e564dSmrg 4647266e564dSmrg $echo >> "$output_objdir/$dlsyms" "\ 4648266e564dSmrg {0, (lt_ptr) 0} 4649266e564dSmrg}; 4650266e564dSmrg 4651266e564dSmrg/* This works around a problem in FreeBSD linker */ 4652266e564dSmrg#ifdef FREEBSD_WORKAROUND 4653266e564dSmrgstatic const void *lt_preloaded_setup() { 4654266e564dSmrg return lt_preloaded_symbols; 4655266e564dSmrg} 4656266e564dSmrg#endif 4657266e564dSmrg 4658266e564dSmrg#ifdef __cplusplus 4659266e564dSmrg} 4660266e564dSmrg#endif\ 4661266e564dSmrg" 4662266e564dSmrg fi 4663266e564dSmrg 4664266e564dSmrg pic_flag_for_symtable= 4665266e564dSmrg case $host in 4666266e564dSmrg # compiling the symbol table file with pic_flag works around 4667266e564dSmrg # a FreeBSD bug that causes programs to crash when -lm is 4668266e564dSmrg # linked before any other PIC object. But we must not use 4669266e564dSmrg # pic_flag when linking with -static. The problem exists in 4670266e564dSmrg # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 4671266e564dSmrg *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 4672266e564dSmrg case "$compile_command " in 4673266e564dSmrg *" -static "*) ;; 4674266e564dSmrg *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 4675266e564dSmrg esac;; 4676266e564dSmrg *-*-hpux*) 4677266e564dSmrg case "$compile_command " in 4678266e564dSmrg *" -static "*) ;; 4679266e564dSmrg *) pic_flag_for_symtable=" $pic_flag";; 4680266e564dSmrg esac 4681266e564dSmrg esac 4682266e564dSmrg 4683266e564dSmrg # Now compile the dynamic symbol file. 4684266e564dSmrg $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 4685266e564dSmrg $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 4686266e564dSmrg 4687266e564dSmrg # Clean up the generated files. 4688266e564dSmrg $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 4689266e564dSmrg $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 4690266e564dSmrg 4691266e564dSmrg # Transform the symbol file into the correct name. 4692266e564dSmrg case $host in 4693266e564dSmrg *cygwin* | *mingw* ) 4694266e564dSmrg if test -f "$output_objdir/${outputname}.def" ; then 4695266e564dSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 4696266e564dSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 4697266e564dSmrg else 4698266e564dSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4699266e564dSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4700266e564dSmrg fi 4701266e564dSmrg ;; 4702266e564dSmrg * ) 4703266e564dSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4704266e564dSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 4705266e564dSmrg ;; 4706266e564dSmrg esac 4707266e564dSmrg ;; 4708266e564dSmrg *) 4709266e564dSmrg $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 4710266e564dSmrg exit $EXIT_FAILURE 4711266e564dSmrg ;; 4712266e564dSmrg esac 4713266e564dSmrg else 4714266e564dSmrg # We keep going just in case the user didn't refer to 4715266e564dSmrg # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 4716266e564dSmrg # really was required. 4717266e564dSmrg 4718266e564dSmrg # Nullify the symbol file. 4719266e564dSmrg compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 4720266e564dSmrg finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 4721266e564dSmrg fi 4722266e564dSmrg 4723266e564dSmrg if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 4724266e564dSmrg # Replace the output file specification. 4725266e564dSmrg compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4726266e564dSmrg link_command="$compile_command$compile_rpath" 4727266e564dSmrg 4728266e564dSmrg # We have no uninstalled library dependencies, so finalize right now. 4729266e564dSmrg $show "$link_command" 4730266e564dSmrg $run eval "$link_command" 4731266e564dSmrg exit_status=$? 4732266e564dSmrg 4733266e564dSmrg # Delete the generated files. 4734266e564dSmrg if test -n "$dlsyms"; then 4735266e564dSmrg $show "$rm $output_objdir/${outputname}S.${objext}" 4736266e564dSmrg $run $rm "$output_objdir/${outputname}S.${objext}" 4737266e564dSmrg fi 4738266e564dSmrg 4739266e564dSmrg exit $exit_status 4740266e564dSmrg fi 4741266e564dSmrg 4742266e564dSmrg if test -n "$shlibpath_var"; then 4743266e564dSmrg # We should set the shlibpath_var 4744266e564dSmrg rpath= 4745266e564dSmrg for dir in $temp_rpath; do 4746266e564dSmrg case $dir in 4747266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) 4748266e564dSmrg # Absolute path. 4749266e564dSmrg rpath="$rpath$dir:" 4750266e564dSmrg ;; 4751266e564dSmrg *) 4752266e564dSmrg # Relative path: add a thisdir entry. 4753266e564dSmrg rpath="$rpath\$thisdir/$dir:" 4754266e564dSmrg ;; 4755266e564dSmrg esac 4756266e564dSmrg done 4757266e564dSmrg temp_rpath="$rpath" 4758266e564dSmrg fi 4759266e564dSmrg 4760266e564dSmrg if test -n "$compile_shlibpath$finalize_shlibpath"; then 4761266e564dSmrg compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 4762266e564dSmrg fi 4763266e564dSmrg if test -n "$finalize_shlibpath"; then 4764266e564dSmrg finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 4765266e564dSmrg fi 4766266e564dSmrg 4767266e564dSmrg compile_var= 4768266e564dSmrg finalize_var= 4769266e564dSmrg if test -n "$runpath_var"; then 4770266e564dSmrg if test -n "$perm_rpath"; then 4771266e564dSmrg # We should set the runpath_var. 4772266e564dSmrg rpath= 4773266e564dSmrg for dir in $perm_rpath; do 4774266e564dSmrg rpath="$rpath$dir:" 4775266e564dSmrg done 4776266e564dSmrg compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 4777266e564dSmrg fi 4778266e564dSmrg if test -n "$finalize_perm_rpath"; then 4779266e564dSmrg # We should set the runpath_var. 4780266e564dSmrg rpath= 4781266e564dSmrg for dir in $finalize_perm_rpath; do 4782266e564dSmrg rpath="$rpath$dir:" 4783266e564dSmrg done 4784266e564dSmrg finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 4785266e564dSmrg fi 4786266e564dSmrg fi 4787266e564dSmrg 4788266e564dSmrg if test "$no_install" = yes; then 4789266e564dSmrg # We don't need to create a wrapper script. 4790266e564dSmrg link_command="$compile_var$compile_command$compile_rpath" 4791266e564dSmrg # Replace the output file specification. 4792266e564dSmrg link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4793266e564dSmrg # Delete the old output file. 4794266e564dSmrg $run $rm $output 4795266e564dSmrg # Link the executable and exit 4796266e564dSmrg $show "$link_command" 4797266e564dSmrg $run eval "$link_command" || exit $? 4798266e564dSmrg exit $EXIT_SUCCESS 4799266e564dSmrg fi 4800266e564dSmrg 4801266e564dSmrg if test "$hardcode_action" = relink; then 4802266e564dSmrg # Fast installation is not supported 4803266e564dSmrg link_command="$compile_var$compile_command$compile_rpath" 4804266e564dSmrg relink_command="$finalize_var$finalize_command$finalize_rpath" 4805266e564dSmrg 4806266e564dSmrg $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 4807266e564dSmrg $echo "$modename: \`$output' will be relinked during installation" 1>&2 4808266e564dSmrg else 4809266e564dSmrg if test "$fast_install" != no; then 4810266e564dSmrg link_command="$finalize_var$compile_command$finalize_rpath" 4811266e564dSmrg if test "$fast_install" = yes; then 4812266e564dSmrg relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 4813266e564dSmrg else 4814266e564dSmrg # fast_install is set to needless 4815266e564dSmrg relink_command= 4816266e564dSmrg fi 4817266e564dSmrg else 4818266e564dSmrg link_command="$compile_var$compile_command$compile_rpath" 4819266e564dSmrg relink_command="$finalize_var$finalize_command$finalize_rpath" 4820266e564dSmrg fi 4821266e564dSmrg fi 4822266e564dSmrg 4823266e564dSmrg # Replace the output file specification. 4824266e564dSmrg link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 4825266e564dSmrg 4826266e564dSmrg # Delete the old output files. 4827266e564dSmrg $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 4828266e564dSmrg 4829266e564dSmrg $show "$link_command" 4830266e564dSmrg $run eval "$link_command" || exit $? 4831266e564dSmrg 4832266e564dSmrg # Now create the wrapper script. 4833266e564dSmrg $show "creating $output" 4834266e564dSmrg 4835266e564dSmrg # Quote the relink command for shipping. 4836266e564dSmrg if test -n "$relink_command"; then 4837266e564dSmrg # Preserve any variables that may affect compiler behavior 4838266e564dSmrg for var in $variables_saved_for_relink; do 4839266e564dSmrg if eval test -z \"\${$var+set}\"; then 4840266e564dSmrg relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 4841266e564dSmrg elif eval var_value=\$$var; test -z "$var_value"; then 4842266e564dSmrg relink_command="$var=; export $var; $relink_command" 4843266e564dSmrg else 4844266e564dSmrg var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 4845266e564dSmrg relink_command="$var=\"$var_value\"; export $var; $relink_command" 4846266e564dSmrg fi 4847266e564dSmrg done 4848266e564dSmrg relink_command="(cd `pwd`; $relink_command)" 4849266e564dSmrg relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 4850266e564dSmrg fi 4851266e564dSmrg 4852266e564dSmrg # Quote $echo for shipping. 4853266e564dSmrg if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 4854266e564dSmrg case $progpath in 4855266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 4856266e564dSmrg *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 4857266e564dSmrg esac 4858266e564dSmrg qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 4859266e564dSmrg else 4860266e564dSmrg qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 4861266e564dSmrg fi 4862266e564dSmrg 4863266e564dSmrg # Only actually do things if our run command is non-null. 4864266e564dSmrg if test -z "$run"; then 4865266e564dSmrg # win32 will think the script is a binary if it has 4866266e564dSmrg # a .exe suffix, so we strip it off here. 4867266e564dSmrg case $output in 4868266e564dSmrg *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 4869266e564dSmrg esac 4870266e564dSmrg # test for cygwin because mv fails w/o .exe extensions 4871266e564dSmrg case $host in 4872266e564dSmrg *cygwin*) 4873266e564dSmrg exeext=.exe 4874266e564dSmrg outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 4875266e564dSmrg *) exeext= ;; 4876266e564dSmrg esac 4877266e564dSmrg case $host in 4878266e564dSmrg *cygwin* | *mingw* ) 4879266e564dSmrg output_name=`basename $output` 4880266e564dSmrg output_path=`dirname $output` 4881266e564dSmrg cwrappersource="$output_path/$objdir/lt-$output_name.c" 4882266e564dSmrg cwrapper="$output_path/$output_name.exe" 4883266e564dSmrg $rm $cwrappersource $cwrapper 4884266e564dSmrg trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 4885266e564dSmrg 4886266e564dSmrg cat > $cwrappersource <<EOF 4887266e564dSmrg 4888266e564dSmrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 4889266e564dSmrg Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 4890266e564dSmrg 4891266e564dSmrg The $output program cannot be directly executed until all the libtool 4892266e564dSmrg libraries that it depends on are installed. 4893266e564dSmrg 4894266e564dSmrg This wrapper executable should never be moved out of the build directory. 4895266e564dSmrg If it is, it will not operate correctly. 4896266e564dSmrg 4897266e564dSmrg Currently, it simply execs the wrapper *script* "/bin/sh $output", 4898266e564dSmrg but could eventually absorb all of the scripts functionality and 4899266e564dSmrg exec $objdir/$outputname directly. 4900266e564dSmrg*/ 4901266e564dSmrgEOF 4902266e564dSmrg cat >> $cwrappersource<<"EOF" 4903266e564dSmrg#include <stdio.h> 4904266e564dSmrg#include <stdlib.h> 4905266e564dSmrg#include <unistd.h> 4906266e564dSmrg#include <malloc.h> 4907266e564dSmrg#include <stdarg.h> 4908266e564dSmrg#include <assert.h> 4909266e564dSmrg#include <string.h> 4910266e564dSmrg#include <ctype.h> 4911266e564dSmrg#include <sys/stat.h> 4912266e564dSmrg 4913266e564dSmrg#if defined(PATH_MAX) 4914266e564dSmrg# define LT_PATHMAX PATH_MAX 4915266e564dSmrg#elif defined(MAXPATHLEN) 4916266e564dSmrg# define LT_PATHMAX MAXPATHLEN 4917266e564dSmrg#else 4918266e564dSmrg# define LT_PATHMAX 1024 4919266e564dSmrg#endif 4920266e564dSmrg 4921266e564dSmrg#ifndef DIR_SEPARATOR 4922266e564dSmrg# define DIR_SEPARATOR '/' 4923266e564dSmrg# define PATH_SEPARATOR ':' 4924266e564dSmrg#endif 4925266e564dSmrg 4926266e564dSmrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 4927266e564dSmrg defined (__OS2__) 4928266e564dSmrg# define HAVE_DOS_BASED_FILE_SYSTEM 4929266e564dSmrg# ifndef DIR_SEPARATOR_2 4930266e564dSmrg# define DIR_SEPARATOR_2 '\\' 4931266e564dSmrg# endif 4932266e564dSmrg# ifndef PATH_SEPARATOR_2 4933266e564dSmrg# define PATH_SEPARATOR_2 ';' 4934266e564dSmrg# endif 4935266e564dSmrg#endif 4936266e564dSmrg 4937266e564dSmrg#ifndef DIR_SEPARATOR_2 4938266e564dSmrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 4939266e564dSmrg#else /* DIR_SEPARATOR_2 */ 4940266e564dSmrg# define IS_DIR_SEPARATOR(ch) \ 4941266e564dSmrg (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 4942266e564dSmrg#endif /* DIR_SEPARATOR_2 */ 4943266e564dSmrg 4944266e564dSmrg#ifndef PATH_SEPARATOR_2 4945266e564dSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 4946266e564dSmrg#else /* PATH_SEPARATOR_2 */ 4947266e564dSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 4948266e564dSmrg#endif /* PATH_SEPARATOR_2 */ 4949266e564dSmrg 4950266e564dSmrg#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 4951266e564dSmrg#define XFREE(stale) do { \ 4952266e564dSmrg if (stale) { free ((void *) stale); stale = 0; } \ 4953266e564dSmrg} while (0) 4954266e564dSmrg 4955266e564dSmrg/* -DDEBUG is fairly common in CFLAGS. */ 4956266e564dSmrg#undef DEBUG 4957266e564dSmrg#if defined DEBUGWRAPPER 4958266e564dSmrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 4959266e564dSmrg#else 4960266e564dSmrg# define DEBUG(format, ...) 4961266e564dSmrg#endif 4962266e564dSmrg 4963266e564dSmrgconst char *program_name = NULL; 4964266e564dSmrg 4965266e564dSmrgvoid * xmalloc (size_t num); 4966266e564dSmrgchar * xstrdup (const char *string); 4967266e564dSmrgconst char * base_name (const char *name); 4968266e564dSmrgchar * find_executable(const char *wrapper); 4969266e564dSmrgint check_executable(const char *path); 4970266e564dSmrgchar * strendzap(char *str, const char *pat); 4971266e564dSmrgvoid lt_fatal (const char *message, ...); 4972266e564dSmrg 4973266e564dSmrgint 4974266e564dSmrgmain (int argc, char *argv[]) 4975266e564dSmrg{ 4976266e564dSmrg char **newargz; 4977266e564dSmrg int i; 4978266e564dSmrg 4979266e564dSmrg program_name = (char *) xstrdup (base_name (argv[0])); 4980266e564dSmrg DEBUG("(main) argv[0] : %s\n",argv[0]); 4981266e564dSmrg DEBUG("(main) program_name : %s\n",program_name); 4982266e564dSmrg newargz = XMALLOC(char *, argc+2); 4983266e564dSmrgEOF 4984266e564dSmrg 4985266e564dSmrg cat >> $cwrappersource <<EOF 4986266e564dSmrg newargz[0] = (char *) xstrdup("$SHELL"); 4987266e564dSmrgEOF 4988266e564dSmrg 4989266e564dSmrg cat >> $cwrappersource <<"EOF" 4990266e564dSmrg newargz[1] = find_executable(argv[0]); 4991266e564dSmrg if (newargz[1] == NULL) 4992266e564dSmrg lt_fatal("Couldn't find %s", argv[0]); 4993266e564dSmrg DEBUG("(main) found exe at : %s\n",newargz[1]); 4994266e564dSmrg /* we know the script has the same name, without the .exe */ 4995266e564dSmrg /* so make sure newargz[1] doesn't end in .exe */ 4996266e564dSmrg strendzap(newargz[1],".exe"); 4997266e564dSmrg for (i = 1; i < argc; i++) 4998266e564dSmrg newargz[i+1] = xstrdup(argv[i]); 4999266e564dSmrg newargz[argc+1] = NULL; 5000266e564dSmrg 5001266e564dSmrg for (i=0; i<argc+1; i++) 5002266e564dSmrg { 5003266e564dSmrg DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 5004266e564dSmrg ; 5005266e564dSmrg } 5006266e564dSmrg 5007266e564dSmrgEOF 5008266e564dSmrg 5009266e564dSmrg case $host_os in 5010266e564dSmrg mingw*) 5011266e564dSmrg cat >> $cwrappersource <<EOF 5012266e564dSmrg execv("$SHELL",(char const **)newargz); 5013266e564dSmrgEOF 5014266e564dSmrg ;; 5015266e564dSmrg *) 5016266e564dSmrg cat >> $cwrappersource <<EOF 5017266e564dSmrg execv("$SHELL",newargz); 5018266e564dSmrgEOF 5019266e564dSmrg ;; 5020266e564dSmrg esac 5021266e564dSmrg 5022266e564dSmrg cat >> $cwrappersource <<"EOF" 5023266e564dSmrg return 127; 5024266e564dSmrg} 5025266e564dSmrg 5026266e564dSmrgvoid * 5027266e564dSmrgxmalloc (size_t num) 5028266e564dSmrg{ 5029266e564dSmrg void * p = (void *) malloc (num); 5030266e564dSmrg if (!p) 5031266e564dSmrg lt_fatal ("Memory exhausted"); 5032266e564dSmrg 5033266e564dSmrg return p; 5034266e564dSmrg} 5035266e564dSmrg 5036266e564dSmrgchar * 5037266e564dSmrgxstrdup (const char *string) 5038266e564dSmrg{ 5039266e564dSmrg return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 5040266e564dSmrg; 5041266e564dSmrg} 5042266e564dSmrg 5043266e564dSmrgconst char * 5044266e564dSmrgbase_name (const char *name) 5045266e564dSmrg{ 5046266e564dSmrg const char *base; 5047266e564dSmrg 5048266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5049266e564dSmrg /* Skip over the disk name in MSDOS pathnames. */ 5050266e564dSmrg if (isalpha ((unsigned char)name[0]) && name[1] == ':') 5051266e564dSmrg name += 2; 5052266e564dSmrg#endif 5053266e564dSmrg 5054266e564dSmrg for (base = name; *name; name++) 5055266e564dSmrg if (IS_DIR_SEPARATOR (*name)) 5056266e564dSmrg base = name + 1; 5057266e564dSmrg return base; 5058266e564dSmrg} 5059266e564dSmrg 5060266e564dSmrgint 5061266e564dSmrgcheck_executable(const char * path) 5062266e564dSmrg{ 5063266e564dSmrg struct stat st; 5064266e564dSmrg 5065266e564dSmrg DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 5066266e564dSmrg if ((!path) || (!*path)) 5067266e564dSmrg return 0; 5068266e564dSmrg 5069266e564dSmrg if ((stat (path, &st) >= 0) && 5070266e564dSmrg ( 5071266e564dSmrg /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 5072266e564dSmrg#if defined (S_IXOTH) 5073266e564dSmrg ((st.st_mode & S_IXOTH) == S_IXOTH) || 5074266e564dSmrg#endif 5075266e564dSmrg#if defined (S_IXGRP) 5076266e564dSmrg ((st.st_mode & S_IXGRP) == S_IXGRP) || 5077266e564dSmrg#endif 5078266e564dSmrg ((st.st_mode & S_IXUSR) == S_IXUSR)) 5079266e564dSmrg ) 5080266e564dSmrg return 1; 5081266e564dSmrg else 5082266e564dSmrg return 0; 5083266e564dSmrg} 5084266e564dSmrg 5085266e564dSmrg/* Searches for the full path of the wrapper. Returns 5086266e564dSmrg newly allocated full path name if found, NULL otherwise */ 5087266e564dSmrgchar * 5088266e564dSmrgfind_executable (const char* wrapper) 5089266e564dSmrg{ 5090266e564dSmrg int has_slash = 0; 5091266e564dSmrg const char* p; 5092266e564dSmrg const char* p_next; 5093266e564dSmrg /* static buffer for getcwd */ 5094266e564dSmrg char tmp[LT_PATHMAX + 1]; 5095266e564dSmrg int tmp_len; 5096266e564dSmrg char* concat_name; 5097266e564dSmrg 5098266e564dSmrg DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 5099266e564dSmrg 5100266e564dSmrg if ((wrapper == NULL) || (*wrapper == '\0')) 5101266e564dSmrg return NULL; 5102266e564dSmrg 5103266e564dSmrg /* Absolute path? */ 5104266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5105266e564dSmrg if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 5106266e564dSmrg { 5107266e564dSmrg concat_name = xstrdup (wrapper); 5108266e564dSmrg if (check_executable(concat_name)) 5109266e564dSmrg return concat_name; 5110266e564dSmrg XFREE(concat_name); 5111266e564dSmrg } 5112266e564dSmrg else 5113266e564dSmrg { 5114266e564dSmrg#endif 5115266e564dSmrg if (IS_DIR_SEPARATOR (wrapper[0])) 5116266e564dSmrg { 5117266e564dSmrg concat_name = xstrdup (wrapper); 5118266e564dSmrg if (check_executable(concat_name)) 5119266e564dSmrg return concat_name; 5120266e564dSmrg XFREE(concat_name); 5121266e564dSmrg } 5122266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5123266e564dSmrg } 5124266e564dSmrg#endif 5125266e564dSmrg 5126266e564dSmrg for (p = wrapper; *p; p++) 5127266e564dSmrg if (*p == '/') 5128266e564dSmrg { 5129266e564dSmrg has_slash = 1; 5130266e564dSmrg break; 5131266e564dSmrg } 5132266e564dSmrg if (!has_slash) 5133266e564dSmrg { 5134266e564dSmrg /* no slashes; search PATH */ 5135266e564dSmrg const char* path = getenv ("PATH"); 5136266e564dSmrg if (path != NULL) 5137266e564dSmrg { 5138266e564dSmrg for (p = path; *p; p = p_next) 5139266e564dSmrg { 5140266e564dSmrg const char* q; 5141266e564dSmrg size_t p_len; 5142266e564dSmrg for (q = p; *q; q++) 5143266e564dSmrg if (IS_PATH_SEPARATOR(*q)) 5144266e564dSmrg break; 5145266e564dSmrg p_len = q - p; 5146266e564dSmrg p_next = (*q == '\0' ? q : q + 1); 5147266e564dSmrg if (p_len == 0) 5148266e564dSmrg { 5149266e564dSmrg /* empty path: current directory */ 5150266e564dSmrg if (getcwd (tmp, LT_PATHMAX) == NULL) 5151266e564dSmrg lt_fatal ("getcwd failed"); 5152266e564dSmrg tmp_len = strlen(tmp); 5153266e564dSmrg concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5154266e564dSmrg memcpy (concat_name, tmp, tmp_len); 5155266e564dSmrg concat_name[tmp_len] = '/'; 5156266e564dSmrg strcpy (concat_name + tmp_len + 1, wrapper); 5157266e564dSmrg } 5158266e564dSmrg else 5159266e564dSmrg { 5160266e564dSmrg concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 5161266e564dSmrg memcpy (concat_name, p, p_len); 5162266e564dSmrg concat_name[p_len] = '/'; 5163266e564dSmrg strcpy (concat_name + p_len + 1, wrapper); 5164266e564dSmrg } 5165266e564dSmrg if (check_executable(concat_name)) 5166266e564dSmrg return concat_name; 5167266e564dSmrg XFREE(concat_name); 5168266e564dSmrg } 5169266e564dSmrg } 5170266e564dSmrg /* not found in PATH; assume curdir */ 5171266e564dSmrg } 5172266e564dSmrg /* Relative path | not found in path: prepend cwd */ 5173266e564dSmrg if (getcwd (tmp, LT_PATHMAX) == NULL) 5174266e564dSmrg lt_fatal ("getcwd failed"); 5175266e564dSmrg tmp_len = strlen(tmp); 5176266e564dSmrg concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5177266e564dSmrg memcpy (concat_name, tmp, tmp_len); 5178266e564dSmrg concat_name[tmp_len] = '/'; 5179266e564dSmrg strcpy (concat_name + tmp_len + 1, wrapper); 5180266e564dSmrg 5181266e564dSmrg if (check_executable(concat_name)) 5182266e564dSmrg return concat_name; 5183266e564dSmrg XFREE(concat_name); 5184266e564dSmrg return NULL; 5185266e564dSmrg} 5186266e564dSmrg 5187266e564dSmrgchar * 5188266e564dSmrgstrendzap(char *str, const char *pat) 5189266e564dSmrg{ 5190266e564dSmrg size_t len, patlen; 5191266e564dSmrg 5192266e564dSmrg assert(str != NULL); 5193266e564dSmrg assert(pat != NULL); 5194266e564dSmrg 5195266e564dSmrg len = strlen(str); 5196266e564dSmrg patlen = strlen(pat); 5197266e564dSmrg 5198266e564dSmrg if (patlen <= len) 5199266e564dSmrg { 5200266e564dSmrg str += len - patlen; 5201266e564dSmrg if (strcmp(str, pat) == 0) 5202266e564dSmrg *str = '\0'; 5203266e564dSmrg } 5204266e564dSmrg return str; 5205266e564dSmrg} 5206266e564dSmrg 5207266e564dSmrgstatic void 5208266e564dSmrglt_error_core (int exit_status, const char * mode, 5209266e564dSmrg const char * message, va_list ap) 5210266e564dSmrg{ 5211266e564dSmrg fprintf (stderr, "%s: %s: ", program_name, mode); 5212266e564dSmrg vfprintf (stderr, message, ap); 5213266e564dSmrg fprintf (stderr, ".\n"); 5214266e564dSmrg 5215266e564dSmrg if (exit_status >= 0) 5216266e564dSmrg exit (exit_status); 5217266e564dSmrg} 5218266e564dSmrg 5219266e564dSmrgvoid 5220266e564dSmrglt_fatal (const char *message, ...) 5221266e564dSmrg{ 5222266e564dSmrg va_list ap; 5223266e564dSmrg va_start (ap, message); 5224266e564dSmrg lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 5225266e564dSmrg va_end (ap); 5226266e564dSmrg} 5227266e564dSmrgEOF 5228266e564dSmrg # we should really use a build-platform specific compiler 5229266e564dSmrg # here, but OTOH, the wrappers (shell script and this C one) 5230266e564dSmrg # are only useful if you want to execute the "real" binary. 5231266e564dSmrg # Since the "real" binary is built for $host, then this 5232266e564dSmrg # wrapper might as well be built for $host, too. 5233266e564dSmrg $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 5234266e564dSmrg ;; 5235266e564dSmrg esac 5236266e564dSmrg $rm $output 5237266e564dSmrg trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 5238266e564dSmrg 5239266e564dSmrg $echo > $output "\ 5240266e564dSmrg#! $SHELL 5241266e564dSmrg 5242266e564dSmrg# $output - temporary wrapper script for $objdir/$outputname 5243266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5244266e564dSmrg# 5245266e564dSmrg# The $output program cannot be directly executed until all the libtool 5246266e564dSmrg# libraries that it depends on are installed. 5247266e564dSmrg# 5248266e564dSmrg# This wrapper script should never be moved out of the build directory. 5249266e564dSmrg# If it is, it will not operate correctly. 5250266e564dSmrg 5251266e564dSmrg# Sed substitution that helps us do robust quoting. It backslashifies 5252266e564dSmrg# metacharacters that are still active within double-quoted strings. 5253266e564dSmrgXsed='${SED} -e 1s/^X//' 5254266e564dSmrgsed_quote_subst='$sed_quote_subst' 5255266e564dSmrg 5256266e564dSmrg# The HP-UX ksh and POSIX shell print the target directory to stdout 5257266e564dSmrg# if CDPATH is set. 5258266e564dSmrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 5259266e564dSmrg 5260266e564dSmrgrelink_command=\"$relink_command\" 5261266e564dSmrg 5262266e564dSmrg# This environment variable determines our operation mode. 5263266e564dSmrgif test \"\$libtool_install_magic\" = \"$magic\"; then 5264266e564dSmrg # install mode needs the following variable: 5265266e564dSmrg notinst_deplibs='$notinst_deplibs' 5266266e564dSmrgelse 5267266e564dSmrg # When we are sourced in execute mode, \$file and \$echo are already set. 5268266e564dSmrg if test \"\$libtool_execute_magic\" != \"$magic\"; then 5269266e564dSmrg echo=\"$qecho\" 5270266e564dSmrg file=\"\$0\" 5271266e564dSmrg # Make sure echo works. 5272266e564dSmrg if test \"X\$1\" = X--no-reexec; then 5273266e564dSmrg # Discard the --no-reexec flag, and continue. 5274266e564dSmrg shift 5275266e564dSmrg elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 5276266e564dSmrg # Yippee, \$echo works! 5277266e564dSmrg : 5278266e564dSmrg else 5279266e564dSmrg # Restart under the correct shell, and then maybe \$echo will work. 5280266e564dSmrg exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 5281266e564dSmrg fi 5282266e564dSmrg fi\ 5283266e564dSmrg" 5284266e564dSmrg $echo >> $output "\ 5285266e564dSmrg 5286266e564dSmrg # Find the directory that this script lives in. 5287266e564dSmrg thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 5288266e564dSmrg test \"x\$thisdir\" = \"x\$file\" && thisdir=. 5289266e564dSmrg 5290266e564dSmrg # Follow symbolic links until we get to the real thisdir. 5291266e564dSmrg file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 5292266e564dSmrg while test -n \"\$file\"; do 5293266e564dSmrg destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 5294266e564dSmrg 5295266e564dSmrg # If there was a directory component, then change thisdir. 5296266e564dSmrg if test \"x\$destdir\" != \"x\$file\"; then 5297266e564dSmrg case \"\$destdir\" in 5298266e564dSmrg [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 5299266e564dSmrg *) thisdir=\"\$thisdir/\$destdir\" ;; 5300266e564dSmrg esac 5301266e564dSmrg fi 5302266e564dSmrg 5303266e564dSmrg file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 5304266e564dSmrg file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 5305266e564dSmrg done 5306266e564dSmrg 5307266e564dSmrg # Try to get the absolute directory name. 5308266e564dSmrg absdir=\`cd \"\$thisdir\" && pwd\` 5309266e564dSmrg test -n \"\$absdir\" && thisdir=\"\$absdir\" 5310266e564dSmrg" 5311266e564dSmrg 5312266e564dSmrg if test "$fast_install" = yes; then 5313266e564dSmrg $echo >> $output "\ 5314266e564dSmrg program=lt-'$outputname'$exeext 5315266e564dSmrg progdir=\"\$thisdir/$objdir\" 5316266e564dSmrg 5317266e564dSmrg if test ! -f \"\$progdir/\$program\" || \\ 5318266e564dSmrg { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 5319266e564dSmrg test \"X\$file\" != \"X\$progdir/\$program\"; }; then 5320266e564dSmrg 5321266e564dSmrg file=\"\$\$-\$program\" 5322266e564dSmrg 5323266e564dSmrg if test ! -d \"\$progdir\"; then 5324266e564dSmrg $mkdir \"\$progdir\" 5325266e564dSmrg else 5326266e564dSmrg $rm \"\$progdir/\$file\" 5327266e564dSmrg fi" 5328266e564dSmrg 5329266e564dSmrg $echo >> $output "\ 5330266e564dSmrg 5331266e564dSmrg # relink executable if necessary 5332266e564dSmrg if test -n \"\$relink_command\"; then 5333266e564dSmrg if relink_command_output=\`eval \$relink_command 2>&1\`; then : 5334266e564dSmrg else 5335266e564dSmrg $echo \"\$relink_command_output\" >&2 5336266e564dSmrg $rm \"\$progdir/\$file\" 5337266e564dSmrg exit $EXIT_FAILURE 5338266e564dSmrg fi 5339266e564dSmrg fi 5340266e564dSmrg 5341266e564dSmrg $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 5342266e564dSmrg { $rm \"\$progdir/\$program\"; 5343266e564dSmrg $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 5344266e564dSmrg $rm \"\$progdir/\$file\" 5345266e564dSmrg fi" 5346266e564dSmrg else 5347266e564dSmrg $echo >> $output "\ 5348266e564dSmrg program='$outputname' 5349266e564dSmrg progdir=\"\$thisdir/$objdir\" 5350266e564dSmrg" 5351266e564dSmrg fi 5352266e564dSmrg 5353266e564dSmrg $echo >> $output "\ 5354266e564dSmrg 5355266e564dSmrg if test -f \"\$progdir/\$program\"; then" 5356266e564dSmrg 5357266e564dSmrg # Export our shlibpath_var if we have one. 5358266e564dSmrg if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 5359266e564dSmrg $echo >> $output "\ 5360266e564dSmrg # Add our own library path to $shlibpath_var 5361266e564dSmrg $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 5362266e564dSmrg 5363266e564dSmrg # Some systems cannot cope with colon-terminated $shlibpath_var 5364266e564dSmrg # The second colon is a workaround for a bug in BeOS R4 sed 5365266e564dSmrg $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 5366266e564dSmrg 5367266e564dSmrg export $shlibpath_var 5368266e564dSmrg" 5369266e564dSmrg fi 5370266e564dSmrg 5371266e564dSmrg # fixup the dll searchpath if we need to. 5372266e564dSmrg if test -n "$dllsearchpath"; then 5373266e564dSmrg $echo >> $output "\ 5374266e564dSmrg # Add the dll search path components to the executable PATH 5375266e564dSmrg PATH=$dllsearchpath:\$PATH 5376266e564dSmrg" 5377266e564dSmrg fi 5378266e564dSmrg 5379266e564dSmrg $echo >> $output "\ 5380266e564dSmrg if test \"\$libtool_execute_magic\" != \"$magic\"; then 5381266e564dSmrg # Run the actual program with our arguments. 5382266e564dSmrg" 5383266e564dSmrg case $host in 5384266e564dSmrg # Backslashes separate directories on plain windows 5385266e564dSmrg *-*-mingw | *-*-os2*) 5386266e564dSmrg $echo >> $output "\ 5387266e564dSmrg exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 5388266e564dSmrg" 5389266e564dSmrg ;; 5390266e564dSmrg 5391266e564dSmrg *) 5392266e564dSmrg $echo >> $output "\ 5393266e564dSmrg exec \"\$progdir/\$program\" \${1+\"\$@\"} 5394266e564dSmrg" 5395266e564dSmrg ;; 5396266e564dSmrg esac 5397266e564dSmrg $echo >> $output "\ 5398266e564dSmrg \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" 5399266e564dSmrg exit $EXIT_FAILURE 5400266e564dSmrg fi 5401266e564dSmrg else 5402266e564dSmrg # The program doesn't exist. 5403266e564dSmrg \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 5404266e564dSmrg \$echo \"This script is just a wrapper for \$program.\" 1>&2 5405266e564dSmrg $echo \"See the $PACKAGE documentation for more information.\" 1>&2 5406266e564dSmrg exit $EXIT_FAILURE 5407266e564dSmrg fi 5408266e564dSmrgfi\ 5409266e564dSmrg" 5410266e564dSmrg chmod +x $output 5411266e564dSmrg fi 5412266e564dSmrg exit $EXIT_SUCCESS 5413266e564dSmrg ;; 5414266e564dSmrg esac 5415266e564dSmrg 5416266e564dSmrg # See if we need to build an old-fashioned archive. 5417266e564dSmrg for oldlib in $oldlibs; do 5418266e564dSmrg 5419266e564dSmrg if test "$build_libtool_libs" = convenience; then 5420266e564dSmrg oldobjs="$libobjs_save" 5421266e564dSmrg addlibs="$convenience" 5422266e564dSmrg build_libtool_libs=no 5423266e564dSmrg else 5424266e564dSmrg if test "$build_libtool_libs" = module; then 5425266e564dSmrg oldobjs="$libobjs_save" 5426266e564dSmrg build_libtool_libs=no 5427266e564dSmrg else 5428266e564dSmrg oldobjs="$old_deplibs $non_pic_objects" 5429266e564dSmrg fi 5430266e564dSmrg addlibs="$old_convenience" 5431266e564dSmrg fi 5432266e564dSmrg 5433266e564dSmrg if test -n "$addlibs"; then 5434266e564dSmrg gentop="$output_objdir/${outputname}x" 5435266e564dSmrg generated="$generated $gentop" 5436266e564dSmrg 5437266e564dSmrg func_extract_archives $gentop $addlibs 5438266e564dSmrg oldobjs="$oldobjs $func_extract_archives_result" 5439266e564dSmrg fi 5440266e564dSmrg 5441266e564dSmrg # Do each command in the archive commands. 5442266e564dSmrg if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 5443266e564dSmrg cmds=$old_archive_from_new_cmds 5444266e564dSmrg else 5445266e564dSmrg # POSIX demands no paths to be encoded in archives. We have 5446266e564dSmrg # to avoid creating archives with duplicate basenames if we 5447266e564dSmrg # might have to extract them afterwards, e.g., when creating a 5448266e564dSmrg # static archive out of a convenience library, or when linking 5449266e564dSmrg # the entirety of a libtool archive into another (currently 5450266e564dSmrg # not supported by libtool). 5451266e564dSmrg if (for obj in $oldobjs 5452266e564dSmrg do 5453266e564dSmrg $echo "X$obj" | $Xsed -e 's%^.*/%%' 5454266e564dSmrg done | sort | sort -uc >/dev/null 2>&1); then 5455266e564dSmrg : 5456266e564dSmrg else 5457266e564dSmrg $echo "copying selected object files to avoid basename conflicts..." 5458266e564dSmrg 5459266e564dSmrg if test -z "$gentop"; then 5460266e564dSmrg gentop="$output_objdir/${outputname}x" 5461266e564dSmrg generated="$generated $gentop" 5462266e564dSmrg 5463266e564dSmrg $show "${rm}r $gentop" 5464266e564dSmrg $run ${rm}r "$gentop" 5465266e564dSmrg $show "$mkdir $gentop" 5466266e564dSmrg $run $mkdir "$gentop" 5467266e564dSmrg exit_status=$? 5468266e564dSmrg if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 5469266e564dSmrg exit $exit_status 5470266e564dSmrg fi 5471266e564dSmrg fi 5472266e564dSmrg 5473266e564dSmrg save_oldobjs=$oldobjs 5474266e564dSmrg oldobjs= 5475266e564dSmrg counter=1 5476266e564dSmrg for obj in $save_oldobjs 5477266e564dSmrg do 5478266e564dSmrg objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 5479266e564dSmrg case " $oldobjs " in 5480266e564dSmrg " ") oldobjs=$obj ;; 5481266e564dSmrg *[\ /]"$objbase "*) 5482266e564dSmrg while :; do 5483266e564dSmrg # Make sure we don't pick an alternate name that also 5484266e564dSmrg # overlaps. 5485266e564dSmrg newobj=lt$counter-$objbase 5486266e564dSmrg counter=`expr $counter + 1` 5487266e564dSmrg case " $oldobjs " in 5488266e564dSmrg *[\ /]"$newobj "*) ;; 5489266e564dSmrg *) if test ! -f "$gentop/$newobj"; then break; fi ;; 5490266e564dSmrg esac 5491266e564dSmrg done 5492266e564dSmrg $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 5493266e564dSmrg $run ln "$obj" "$gentop/$newobj" || 5494266e564dSmrg $run cp "$obj" "$gentop/$newobj" 5495266e564dSmrg oldobjs="$oldobjs $gentop/$newobj" 5496266e564dSmrg ;; 5497266e564dSmrg *) oldobjs="$oldobjs $obj" ;; 5498266e564dSmrg esac 5499266e564dSmrg done 5500266e564dSmrg fi 5501266e564dSmrg 5502266e564dSmrg eval cmds=\"$old_archive_cmds\" 5503266e564dSmrg 5504266e564dSmrg if len=`expr "X$cmds" : ".*"` && 5505266e564dSmrg test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 5506266e564dSmrg cmds=$old_archive_cmds 5507266e564dSmrg else 5508266e564dSmrg # the command line is too long to link in one step, link in parts 5509266e564dSmrg $echo "using piecewise archive linking..." 5510266e564dSmrg save_RANLIB=$RANLIB 5511266e564dSmrg RANLIB=: 5512266e564dSmrg objlist= 5513266e564dSmrg concat_cmds= 5514266e564dSmrg save_oldobjs=$oldobjs 5515266e564dSmrg 5516266e564dSmrg # Is there a better way of finding the last object in the list? 5517266e564dSmrg for obj in $save_oldobjs 5518266e564dSmrg do 5519266e564dSmrg last_oldobj=$obj 5520266e564dSmrg done 5521266e564dSmrg for obj in $save_oldobjs 5522266e564dSmrg do 5523266e564dSmrg oldobjs="$objlist $obj" 5524266e564dSmrg objlist="$objlist $obj" 5525266e564dSmrg eval test_cmds=\"$old_archive_cmds\" 5526266e564dSmrg if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 5527266e564dSmrg test "$len" -le "$max_cmd_len"; then 5528266e564dSmrg : 5529266e564dSmrg else 5530266e564dSmrg # the above command should be used before it gets too long 5531266e564dSmrg oldobjs=$objlist 5532266e564dSmrg if test "$obj" = "$last_oldobj" ; then 5533266e564dSmrg RANLIB=$save_RANLIB 5534266e564dSmrg fi 5535266e564dSmrg test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 5536266e564dSmrg eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 5537266e564dSmrg objlist= 5538266e564dSmrg fi 5539266e564dSmrg done 5540266e564dSmrg RANLIB=$save_RANLIB 5541266e564dSmrg oldobjs=$objlist 5542266e564dSmrg if test "X$oldobjs" = "X" ; then 5543266e564dSmrg eval cmds=\"\$concat_cmds\" 5544266e564dSmrg else 5545266e564dSmrg eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 5546266e564dSmrg fi 5547266e564dSmrg fi 5548266e564dSmrg fi 5549266e564dSmrg save_ifs="$IFS"; IFS='~' 5550266e564dSmrg for cmd in $cmds; do 5551266e564dSmrg eval cmd=\"$cmd\" 5552266e564dSmrg IFS="$save_ifs" 5553266e564dSmrg $show "$cmd" 5554266e564dSmrg $run eval "$cmd" || exit $? 5555266e564dSmrg done 5556266e564dSmrg IFS="$save_ifs" 5557266e564dSmrg done 5558266e564dSmrg 5559266e564dSmrg if test -n "$generated"; then 5560266e564dSmrg $show "${rm}r$generated" 5561266e564dSmrg $run ${rm}r$generated 5562266e564dSmrg fi 5563266e564dSmrg 5564266e564dSmrg # Now create the libtool archive. 5565266e564dSmrg case $output in 5566266e564dSmrg *.la) 5567266e564dSmrg old_library= 5568266e564dSmrg test "$build_old_libs" = yes && old_library="$libname.$libext" 5569266e564dSmrg $show "creating $output" 5570266e564dSmrg 5571266e564dSmrg # Preserve any variables that may affect compiler behavior 5572266e564dSmrg for var in $variables_saved_for_relink; do 5573266e564dSmrg if eval test -z \"\${$var+set}\"; then 5574266e564dSmrg relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 5575266e564dSmrg elif eval var_value=\$$var; test -z "$var_value"; then 5576266e564dSmrg relink_command="$var=; export $var; $relink_command" 5577266e564dSmrg else 5578266e564dSmrg var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 5579266e564dSmrg relink_command="$var=\"$var_value\"; export $var; $relink_command" 5580266e564dSmrg fi 5581266e564dSmrg done 5582266e564dSmrg # Quote the link command for shipping. 5583266e564dSmrg relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 5584266e564dSmrg relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 5585266e564dSmrg if test "$hardcode_automatic" = yes ; then 5586266e564dSmrg relink_command= 5587266e564dSmrg fi 5588266e564dSmrg 5589266e564dSmrg 5590266e564dSmrg # Only create the output if not a dry run. 5591266e564dSmrg if test -z "$run"; then 5592266e564dSmrg for installed in no yes; do 5593266e564dSmrg if test "$installed" = yes; then 5594266e564dSmrg if test -z "$install_libdir"; then 5595266e564dSmrg break 5596266e564dSmrg fi 5597266e564dSmrg output="$output_objdir/$outputname"i 5598266e564dSmrg # Replace all uninstalled libtool libraries with the installed ones 5599266e564dSmrg newdependency_libs= 5600266e564dSmrg for deplib in $dependency_libs; do 5601266e564dSmrg case $deplib in 5602266e564dSmrg *.la) 5603266e564dSmrg name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 5604266e564dSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 5605266e564dSmrg if test -z "$libdir"; then 5606266e564dSmrg $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 5607266e564dSmrg exit $EXIT_FAILURE 5608266e564dSmrg fi 5609266e564dSmrg newdependency_libs="$newdependency_libs $libdir/$name" 5610266e564dSmrg ;; 5611266e564dSmrg *) newdependency_libs="$newdependency_libs $deplib" ;; 5612266e564dSmrg esac 5613266e564dSmrg done 5614266e564dSmrg dependency_libs="$newdependency_libs" 5615266e564dSmrg newdlfiles= 5616266e564dSmrg for lib in $dlfiles; do 5617266e564dSmrg name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5618266e564dSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5619266e564dSmrg if test -z "$libdir"; then 5620266e564dSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5621266e564dSmrg exit $EXIT_FAILURE 5622266e564dSmrg fi 5623266e564dSmrg newdlfiles="$newdlfiles $libdir/$name" 5624266e564dSmrg done 5625266e564dSmrg dlfiles="$newdlfiles" 5626266e564dSmrg newdlprefiles= 5627266e564dSmrg for lib in $dlprefiles; do 5628266e564dSmrg name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5629266e564dSmrg eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5630266e564dSmrg if test -z "$libdir"; then 5631266e564dSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5632266e564dSmrg exit $EXIT_FAILURE 5633266e564dSmrg fi 5634266e564dSmrg newdlprefiles="$newdlprefiles $libdir/$name" 5635266e564dSmrg done 5636266e564dSmrg dlprefiles="$newdlprefiles" 5637266e564dSmrg else 5638266e564dSmrg newdlfiles= 5639266e564dSmrg for lib in $dlfiles; do 5640266e564dSmrg case $lib in 5641266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5642266e564dSmrg *) abs=`pwd`"/$lib" ;; 5643266e564dSmrg esac 5644266e564dSmrg newdlfiles="$newdlfiles $abs" 5645266e564dSmrg done 5646266e564dSmrg dlfiles="$newdlfiles" 5647266e564dSmrg newdlprefiles= 5648266e564dSmrg for lib in $dlprefiles; do 5649266e564dSmrg case $lib in 5650266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5651266e564dSmrg *) abs=`pwd`"/$lib" ;; 5652266e564dSmrg esac 5653266e564dSmrg newdlprefiles="$newdlprefiles $abs" 5654266e564dSmrg done 5655266e564dSmrg dlprefiles="$newdlprefiles" 5656266e564dSmrg fi 5657266e564dSmrg $rm $output 5658266e564dSmrg # place dlname in correct position for cygwin 5659266e564dSmrg tdlname=$dlname 5660266e564dSmrg case $host,$output,$installed,$module,$dlname in 5661266e564dSmrg *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 5662266e564dSmrg esac 5663266e564dSmrg $echo > $output "\ 5664266e564dSmrg# $outputname - a libtool library file 5665266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5666266e564dSmrg# 5667266e564dSmrg# Please DO NOT delete this file! 5668266e564dSmrg# It is necessary for linking the library. 5669266e564dSmrg 5670266e564dSmrg# The name that we can dlopen(3). 5671266e564dSmrgdlname='$tdlname' 5672266e564dSmrg 5673266e564dSmrg# Names of this library. 5674266e564dSmrglibrary_names='$library_names' 5675266e564dSmrg 5676266e564dSmrg# The name of the static archive. 5677266e564dSmrgold_library='$old_library' 5678266e564dSmrg 5679266e564dSmrg# Libraries that this one depends upon. 5680266e564dSmrgdependency_libs='$dependency_libs' 5681266e564dSmrg 5682266e564dSmrg# Version information for $libname. 5683266e564dSmrgcurrent=$current 5684266e564dSmrgage=$age 5685266e564dSmrgrevision=$revision 5686266e564dSmrg 5687266e564dSmrg# Is this an already installed library? 5688266e564dSmrginstalled=$installed 5689266e564dSmrg 5690266e564dSmrg# Should we warn about portability when linking against -modules? 5691266e564dSmrgshouldnotlink=$module 5692266e564dSmrg 5693266e564dSmrg# Files to dlopen/dlpreopen 5694266e564dSmrgdlopen='$dlfiles' 5695266e564dSmrgdlpreopen='$dlprefiles' 5696266e564dSmrg 5697266e564dSmrg# Directory that this library needs to be installed in: 5698266e564dSmrglibdir='$install_libdir'" 5699266e564dSmrg if test "$installed" = no && test "$need_relink" = yes; then 5700266e564dSmrg $echo >> $output "\ 5701266e564dSmrgrelink_command=\"$relink_command\"" 5702266e564dSmrg fi 5703266e564dSmrg done 5704266e564dSmrg fi 5705266e564dSmrg 5706266e564dSmrg # Do a symbolic link so that the libtool archive can be found in 5707266e564dSmrg # LD_LIBRARY_PATH before the program is installed. 5708266e564dSmrg $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 5709266e564dSmrg $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 5710266e564dSmrg ;; 5711266e564dSmrg esac 5712266e564dSmrg exit $EXIT_SUCCESS 5713266e564dSmrg ;; 5714266e564dSmrg 5715266e564dSmrg # libtool install mode 5716266e564dSmrg install) 5717266e564dSmrg modename="$modename: install" 5718266e564dSmrg 5719266e564dSmrg # There may be an optional sh(1) argument at the beginning of 5720266e564dSmrg # install_prog (especially on Windows NT). 5721266e564dSmrg if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 5722266e564dSmrg # Allow the use of GNU shtool's install command. 5723266e564dSmrg $echo "X$nonopt" | grep shtool > /dev/null; then 5724266e564dSmrg # Aesthetically quote it. 5725266e564dSmrg arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 5726266e564dSmrg case $arg in 5727266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5728266e564dSmrg arg="\"$arg\"" 5729266e564dSmrg ;; 5730266e564dSmrg esac 5731266e564dSmrg install_prog="$arg " 5732266e564dSmrg arg="$1" 5733266e564dSmrg shift 5734266e564dSmrg else 5735266e564dSmrg install_prog= 5736266e564dSmrg arg=$nonopt 5737266e564dSmrg fi 5738266e564dSmrg 5739266e564dSmrg # The real first argument should be the name of the installation program. 5740266e564dSmrg # Aesthetically quote it. 5741266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5742266e564dSmrg case $arg in 5743266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5744266e564dSmrg arg="\"$arg\"" 5745266e564dSmrg ;; 5746266e564dSmrg esac 5747266e564dSmrg install_prog="$install_prog$arg" 5748266e564dSmrg 5749266e564dSmrg # We need to accept at least all the BSD install flags. 5750266e564dSmrg dest= 5751266e564dSmrg files= 5752266e564dSmrg opts= 5753266e564dSmrg prev= 5754266e564dSmrg install_type= 5755266e564dSmrg isdir=no 5756266e564dSmrg stripme= 5757266e564dSmrg for arg 5758266e564dSmrg do 5759266e564dSmrg if test -n "$dest"; then 5760266e564dSmrg files="$files $dest" 5761266e564dSmrg dest=$arg 5762266e564dSmrg continue 5763266e564dSmrg fi 5764266e564dSmrg 5765266e564dSmrg case $arg in 5766266e564dSmrg -d) isdir=yes ;; 5767266e564dSmrg -f) 5768266e564dSmrg case " $install_prog " in 5769266e564dSmrg *[\\\ /]cp\ *) ;; 5770266e564dSmrg *) prev=$arg ;; 5771266e564dSmrg esac 5772266e564dSmrg ;; 5773266e564dSmrg -g | -m | -o) prev=$arg ;; 5774266e564dSmrg -s) 5775266e564dSmrg stripme=" -s" 5776266e564dSmrg continue 5777266e564dSmrg ;; 5778266e564dSmrg -*) 5779266e564dSmrg ;; 5780266e564dSmrg *) 5781266e564dSmrg # If the previous option needed an argument, then skip it. 5782266e564dSmrg if test -n "$prev"; then 5783266e564dSmrg prev= 5784266e564dSmrg else 5785266e564dSmrg dest=$arg 5786266e564dSmrg continue 5787266e564dSmrg fi 5788266e564dSmrg ;; 5789266e564dSmrg esac 5790266e564dSmrg 5791266e564dSmrg # Aesthetically quote the argument. 5792266e564dSmrg arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5793266e564dSmrg case $arg in 5794266e564dSmrg *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5795266e564dSmrg arg="\"$arg\"" 5796266e564dSmrg ;; 5797266e564dSmrg esac 5798266e564dSmrg install_prog="$install_prog $arg" 5799266e564dSmrg done 5800266e564dSmrg 5801266e564dSmrg if test -z "$install_prog"; then 5802266e564dSmrg $echo "$modename: you must specify an install program" 1>&2 5803266e564dSmrg $echo "$help" 1>&2 5804266e564dSmrg exit $EXIT_FAILURE 5805266e564dSmrg fi 5806266e564dSmrg 5807266e564dSmrg if test -n "$prev"; then 5808266e564dSmrg $echo "$modename: the \`$prev' option requires an argument" 1>&2 5809266e564dSmrg $echo "$help" 1>&2 5810266e564dSmrg exit $EXIT_FAILURE 5811266e564dSmrg fi 5812266e564dSmrg 5813266e564dSmrg if test -z "$files"; then 5814266e564dSmrg if test -z "$dest"; then 5815266e564dSmrg $echo "$modename: no file or destination specified" 1>&2 5816266e564dSmrg else 5817266e564dSmrg $echo "$modename: you must specify a destination" 1>&2 5818266e564dSmrg fi 5819266e564dSmrg $echo "$help" 1>&2 5820266e564dSmrg exit $EXIT_FAILURE 5821266e564dSmrg fi 5822266e564dSmrg 5823266e564dSmrg # Strip any trailing slash from the destination. 5824266e564dSmrg dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 5825266e564dSmrg 5826266e564dSmrg # Check to see that the destination is a directory. 5827266e564dSmrg test -d "$dest" && isdir=yes 5828266e564dSmrg if test "$isdir" = yes; then 5829266e564dSmrg destdir="$dest" 5830266e564dSmrg destname= 5831266e564dSmrg else 5832266e564dSmrg destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 5833266e564dSmrg test "X$destdir" = "X$dest" && destdir=. 5834266e564dSmrg destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 5835266e564dSmrg 5836266e564dSmrg # Not a directory, so check to see that there is only one file specified. 5837266e564dSmrg set dummy $files 5838266e564dSmrg if test "$#" -gt 2; then 5839266e564dSmrg $echo "$modename: \`$dest' is not a directory" 1>&2 5840266e564dSmrg $echo "$help" 1>&2 5841266e564dSmrg exit $EXIT_FAILURE 5842266e564dSmrg fi 5843266e564dSmrg fi 5844266e564dSmrg case $destdir in 5845266e564dSmrg [\\/]* | [A-Za-z]:[\\/]*) ;; 5846266e564dSmrg *) 5847266e564dSmrg for file in $files; do 5848266e564dSmrg case $file in 5849266e564dSmrg *.lo) ;; 5850266e564dSmrg *) 5851266e564dSmrg $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 5852266e564dSmrg $echo "$help" 1>&2 5853266e564dSmrg exit $EXIT_FAILURE 5854266e564dSmrg ;; 5855266e564dSmrg esac 5856266e564dSmrg done 5857266e564dSmrg ;; 5858266e564dSmrg esac 5859266e564dSmrg 5860266e564dSmrg # This variable tells wrapper scripts just to set variables rather 5861266e564dSmrg # than running their programs. 5862266e564dSmrg libtool_install_magic="$magic" 5863266e564dSmrg 5864266e564dSmrg staticlibs= 5865266e564dSmrg future_libdirs= 5866266e564dSmrg current_libdirs= 5867266e564dSmrg for file in $files; do 5868266e564dSmrg 5869266e564dSmrg # Do each installation. 5870266e564dSmrg case $file in 5871266e564dSmrg *.$libext) 5872266e564dSmrg # Do the static libraries later. 5873266e564dSmrg staticlibs="$staticlibs $file" 5874266e564dSmrg ;; 5875266e564dSmrg 5876266e564dSmrg *.la) 5877266e564dSmrg # Check to see that this really is a libtool archive. 5878266e564dSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 5879266e564dSmrg else 5880266e564dSmrg $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 5881266e564dSmrg $echo "$help" 1>&2 5882266e564dSmrg exit $EXIT_FAILURE 5883266e564dSmrg fi 5884266e564dSmrg 5885266e564dSmrg library_names= 5886266e564dSmrg old_library= 5887266e564dSmrg relink_command= 5888266e564dSmrg # If there is no directory component, then add one. 5889266e564dSmrg case $file in 5890266e564dSmrg */* | *\\*) . $file ;; 5891266e564dSmrg *) . ./$file ;; 5892266e564dSmrg esac 5893266e564dSmrg 5894266e564dSmrg # Add the libdir to current_libdirs if it is the destination. 5895266e564dSmrg if test "X$destdir" = "X$libdir"; then 5896266e564dSmrg case "$current_libdirs " in 5897266e564dSmrg *" $libdir "*) ;; 5898266e564dSmrg *) current_libdirs="$current_libdirs $libdir" ;; 5899266e564dSmrg esac 5900266e564dSmrg else 5901266e564dSmrg # Note the libdir as a future libdir. 5902266e564dSmrg case "$future_libdirs " in 5903266e564dSmrg *" $libdir "*) ;; 5904266e564dSmrg *) future_libdirs="$future_libdirs $libdir" ;; 5905266e564dSmrg esac 5906266e564dSmrg fi 5907266e564dSmrg 5908266e564dSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 5909266e564dSmrg test "X$dir" = "X$file/" && dir= 5910266e564dSmrg dir="$dir$objdir" 5911266e564dSmrg 5912266e564dSmrg if test -n "$relink_command"; then 5913266e564dSmrg # Determine the prefix the user has applied to our future dir. 5914266e564dSmrg inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 5915266e564dSmrg 5916266e564dSmrg # Don't allow the user to place us outside of our expected 5917266e564dSmrg # location b/c this prevents finding dependent libraries that 5918266e564dSmrg # are installed to the same prefix. 5919266e564dSmrg # At present, this check doesn't affect windows .dll's that 5920266e564dSmrg # are installed into $libdir/../bin (currently, that works fine) 5921266e564dSmrg # but it's something to keep an eye on. 5922266e564dSmrg if test "$inst_prefix_dir" = "$destdir"; then 5923266e564dSmrg $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 5924266e564dSmrg exit $EXIT_FAILURE 5925266e564dSmrg fi 5926266e564dSmrg 5927266e564dSmrg if test -n "$inst_prefix_dir"; then 5928266e564dSmrg # Stick the inst_prefix_dir data into the link command. 5929266e564dSmrg relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 5930266e564dSmrg else 5931266e564dSmrg relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 5932266e564dSmrg fi 5933266e564dSmrg 5934266e564dSmrg $echo "$modename: warning: relinking \`$file'" 1>&2 5935266e564dSmrg $show "$relink_command" 5936266e564dSmrg if $run eval "$relink_command"; then : 5937266e564dSmrg else 5938266e564dSmrg $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 5939266e564dSmrg exit $EXIT_FAILURE 5940266e564dSmrg fi 5941266e564dSmrg fi 5942266e564dSmrg 5943266e564dSmrg # See the names of the shared library. 5944266e564dSmrg set dummy $library_names 5945266e564dSmrg if test -n "$2"; then 5946266e564dSmrg realname="$2" 5947266e564dSmrg shift 5948266e564dSmrg shift 5949266e564dSmrg 5950266e564dSmrg srcname="$realname" 5951266e564dSmrg test -n "$relink_command" && srcname="$realname"T 5952266e564dSmrg 5953266e564dSmrg # Install the shared library and build the symlinks. 5954266e564dSmrg $show "$install_prog $dir/$srcname $destdir/$realname" 5955266e564dSmrg $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? 5956266e564dSmrg if test -n "$stripme" && test -n "$striplib"; then 5957266e564dSmrg $show "$striplib $destdir/$realname" 5958266e564dSmrg $run eval "$striplib $destdir/$realname" || exit $? 5959266e564dSmrg fi 5960266e564dSmrg 5961266e564dSmrg if test "$#" -gt 0; then 5962266e564dSmrg # Delete the old symlinks, and create new ones. 5963266e564dSmrg # Try `ln -sf' first, because the `ln' binary might depend on 5964266e564dSmrg # the symlink we replace! Solaris /bin/ln does not understand -f, 5965266e564dSmrg # so we also need to try rm && ln -s. 5966266e564dSmrg for linkname 5967266e564dSmrg do 5968266e564dSmrg if test "$linkname" != "$realname"; then 5969266e564dSmrg $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 5970266e564dSmrg $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 5971266e564dSmrg fi 5972266e564dSmrg done 5973266e564dSmrg fi 5974266e564dSmrg 5975266e564dSmrg # Do each command in the postinstall commands. 5976266e564dSmrg lib="$destdir/$realname" 5977266e564dSmrg cmds=$postinstall_cmds 5978266e564dSmrg save_ifs="$IFS"; IFS='~' 5979266e564dSmrg for cmd in $cmds; do 5980266e564dSmrg IFS="$save_ifs" 5981266e564dSmrg eval cmd=\"$cmd\" 5982266e564dSmrg $show "$cmd" 5983266e564dSmrg $run eval "$cmd" || { 5984266e564dSmrg lt_exit=$? 5985266e564dSmrg 5986266e564dSmrg # Restore the uninstalled library and exit 5987266e564dSmrg if test "$mode" = relink; then 5988266e564dSmrg $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 5989266e564dSmrg fi 5990266e564dSmrg 5991266e564dSmrg exit $lt_exit 5992266e564dSmrg } 5993266e564dSmrg done 5994266e564dSmrg IFS="$save_ifs" 5995266e564dSmrg fi 5996266e564dSmrg 5997266e564dSmrg # Install the pseudo-library for information purposes. 5998266e564dSmrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 5999266e564dSmrg instname="$dir/$name"i 6000266e564dSmrg $show "$install_prog $instname $destdir/$name" 6001266e564dSmrg $run eval "$install_prog $instname $destdir/$name" || exit $? 6002266e564dSmrg 6003266e564dSmrg # Maybe install the static library, too. 6004266e564dSmrg test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 6005266e564dSmrg ;; 6006266e564dSmrg 6007266e564dSmrg *.lo) 6008266e564dSmrg # Install (i.e. copy) a libtool object. 6009266e564dSmrg 6010266e564dSmrg # Figure out destination file name, if it wasn't already specified. 6011266e564dSmrg if test -n "$destname"; then 6012266e564dSmrg destfile="$destdir/$destname" 6013266e564dSmrg else 6014266e564dSmrg destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6015266e564dSmrg destfile="$destdir/$destfile" 6016266e564dSmrg fi 6017266e564dSmrg 6018266e564dSmrg # Deduce the name of the destination old-style object file. 6019266e564dSmrg case $destfile in 6020266e564dSmrg *.lo) 6021266e564dSmrg staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 6022266e564dSmrg ;; 6023266e564dSmrg *.$objext) 6024266e564dSmrg staticdest="$destfile" 6025266e564dSmrg destfile= 6026266e564dSmrg ;; 6027266e564dSmrg *) 6028266e564dSmrg $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 6029266e564dSmrg $echo "$help" 1>&2 6030266e564dSmrg exit $EXIT_FAILURE 6031266e564dSmrg ;; 6032266e564dSmrg esac 6033266e564dSmrg 6034266e564dSmrg # Install the libtool object if requested. 6035266e564dSmrg if test -n "$destfile"; then 6036266e564dSmrg $show "$install_prog $file $destfile" 6037266e564dSmrg $run eval "$install_prog $file $destfile" || exit $? 6038266e564dSmrg fi 6039266e564dSmrg 6040266e564dSmrg # Install the old object if enabled. 6041266e564dSmrg if test "$build_old_libs" = yes; then 6042266e564dSmrg # Deduce the name of the old-style object file. 6043266e564dSmrg staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 6044266e564dSmrg 6045266e564dSmrg $show "$install_prog $staticobj $staticdest" 6046266e564dSmrg $run eval "$install_prog \$staticobj \$staticdest" || exit $? 6047266e564dSmrg fi 6048266e564dSmrg exit $EXIT_SUCCESS 6049266e564dSmrg ;; 6050266e564dSmrg 6051266e564dSmrg *) 6052266e564dSmrg # Figure out destination file name, if it wasn't already specified. 6053266e564dSmrg if test -n "$destname"; then 6054266e564dSmrg destfile="$destdir/$destname" 6055266e564dSmrg else 6056266e564dSmrg destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6057266e564dSmrg destfile="$destdir/$destfile" 6058266e564dSmrg fi 6059266e564dSmrg 6060266e564dSmrg # If the file is missing, and there is a .exe on the end, strip it 6061266e564dSmrg # because it is most likely a libtool script we actually want to 6062266e564dSmrg # install 6063266e564dSmrg stripped_ext="" 6064266e564dSmrg case $file in 6065266e564dSmrg *.exe) 6066266e564dSmrg if test ! -f "$file"; then 6067266e564dSmrg file=`$echo $file|${SED} 's,.exe$,,'` 6068266e564dSmrg stripped_ext=".exe" 6069266e564dSmrg fi 6070266e564dSmrg ;; 6071266e564dSmrg esac 6072266e564dSmrg 6073266e564dSmrg # Do a test to see if this is really a libtool program. 6074266e564dSmrg case $host in 6075266e564dSmrg *cygwin*|*mingw*) 6076266e564dSmrg wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 6077266e564dSmrg ;; 6078266e564dSmrg *) 6079266e564dSmrg wrapper=$file 6080266e564dSmrg ;; 6081266e564dSmrg esac 6082266e564dSmrg if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 6083266e564dSmrg notinst_deplibs= 6084266e564dSmrg relink_command= 6085266e564dSmrg 6086266e564dSmrg # Note that it is not necessary on cygwin/mingw to append a dot to 6087266e564dSmrg # foo even if both foo and FILE.exe exist: automatic-append-.exe 6088266e564dSmrg # behavior happens only for exec(3), not for open(2)! Also, sourcing 6089266e564dSmrg # `FILE.' does not work on cygwin managed mounts. 6090266e564dSmrg # 6091266e564dSmrg # If there is no directory component, then add one. 6092266e564dSmrg case $wrapper in 6093266e564dSmrg */* | *\\*) . ${wrapper} ;; 6094266e564dSmrg *) . ./${wrapper} ;; 6095266e564dSmrg esac 6096266e564dSmrg 6097266e564dSmrg # Check the variables that should have been set. 6098266e564dSmrg if test -z "$notinst_deplibs"; then 6099266e564dSmrg $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 6100266e564dSmrg exit $EXIT_FAILURE 6101266e564dSmrg fi 6102266e564dSmrg 6103266e564dSmrg finalize=yes 6104266e564dSmrg for lib in $notinst_deplibs; do 6105266e564dSmrg # Check to see that each library is installed. 6106266e564dSmrg libdir= 6107266e564dSmrg if test -f "$lib"; then 6108266e564dSmrg # If there is no directory component, then add one. 6109266e564dSmrg case $lib in 6110266e564dSmrg */* | *\\*) . $lib ;; 6111266e564dSmrg *) . ./$lib ;; 6112266e564dSmrg esac 6113266e564dSmrg fi 6114266e564dSmrg libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 6115266e564dSmrg if test -n "$libdir" && test ! -f "$libfile"; then 6116266e564dSmrg $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 6117266e564dSmrg finalize=no 6118266e564dSmrg fi 6119266e564dSmrg done 6120266e564dSmrg 6121266e564dSmrg relink_command= 6122266e564dSmrg # Note that it is not necessary on cygwin/mingw to append a dot to 6123266e564dSmrg # foo even if both foo and FILE.exe exist: automatic-append-.exe 6124266e564dSmrg # behavior happens only for exec(3), not for open(2)! Also, sourcing 6125266e564dSmrg # `FILE.' does not work on cygwin managed mounts. 6126266e564dSmrg # 6127266e564dSmrg # If there is no directory component, then add one. 6128266e564dSmrg case $wrapper in 6129266e564dSmrg */* | *\\*) . ${wrapper} ;; 6130266e564dSmrg *) . ./${wrapper} ;; 6131266e564dSmrg esac 6132266e564dSmrg 6133266e564dSmrg outputname= 6134266e564dSmrg if test "$fast_install" = no && test -n "$relink_command"; then 6135266e564dSmrg if test "$finalize" = yes && test -z "$run"; then 6136266e564dSmrg tmpdir=`func_mktempdir` 6137266e564dSmrg file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 6138266e564dSmrg outputname="$tmpdir/$file" 6139266e564dSmrg # Replace the output file specification. 6140266e564dSmrg relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` 6141266e564dSmrg 6142266e564dSmrg $show "$relink_command" 6143266e564dSmrg if $run eval "$relink_command"; then : 6144266e564dSmrg else 6145266e564dSmrg $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6146266e564dSmrg ${rm}r "$tmpdir" 6147266e564dSmrg continue 6148266e564dSmrg fi 6149266e564dSmrg file="$outputname" 6150266e564dSmrg else 6151266e564dSmrg $echo "$modename: warning: cannot relink \`$file'" 1>&2 6152266e564dSmrg fi 6153266e564dSmrg else 6154266e564dSmrg # Install the binary that we compiled earlier. 6155266e564dSmrg file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 6156266e564dSmrg fi 6157266e564dSmrg fi 6158266e564dSmrg 6159266e564dSmrg # remove .exe since cygwin /usr/bin/install will append another 6160266e564dSmrg # one anyway 6161266e564dSmrg case $install_prog,$host in 6162266e564dSmrg */usr/bin/install*,*cygwin*) 6163266e564dSmrg case $file:$destfile in 6164266e564dSmrg *.exe:*.exe) 6165266e564dSmrg # this is ok 6166266e564dSmrg ;; 6167266e564dSmrg *.exe:*) 6168266e564dSmrg destfile=$destfile.exe 6169266e564dSmrg ;; 6170266e564dSmrg *:*.exe) 6171266e564dSmrg destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 6172266e564dSmrg ;; 6173266e564dSmrg esac 6174266e564dSmrg ;; 6175266e564dSmrg esac 6176266e564dSmrg $show "$install_prog$stripme $file $destfile" 6177266e564dSmrg $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 6178266e564dSmrg test -n "$outputname" && ${rm}r "$tmpdir" 6179266e564dSmrg ;; 6180266e564dSmrg esac 6181266e564dSmrg done 6182266e564dSmrg 6183266e564dSmrg for file in $staticlibs; do 6184266e564dSmrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6185266e564dSmrg 6186266e564dSmrg # Set up the ranlib parameters. 6187266e564dSmrg oldlib="$destdir/$name" 6188266e564dSmrg 6189266e564dSmrg $show "$install_prog $file $oldlib" 6190266e564dSmrg $run eval "$install_prog \$file \$oldlib" || exit $? 6191266e564dSmrg 6192266e564dSmrg if test -n "$stripme" && test -n "$old_striplib"; then 6193266e564dSmrg $show "$old_striplib $oldlib" 6194266e564dSmrg $run eval "$old_striplib $oldlib" || exit $? 6195266e564dSmrg fi 6196266e564dSmrg 6197266e564dSmrg # Do each command in the postinstall commands. 6198266e564dSmrg cmds=$old_postinstall_cmds 6199266e564dSmrg save_ifs="$IFS"; IFS='~' 6200266e564dSmrg for cmd in $cmds; do 6201266e564dSmrg IFS="$save_ifs" 6202266e564dSmrg eval cmd=\"$cmd\" 6203266e564dSmrg $show "$cmd" 6204266e564dSmrg $run eval "$cmd" || exit $? 6205266e564dSmrg done 6206266e564dSmrg IFS="$save_ifs" 6207266e564dSmrg done 6208266e564dSmrg 6209266e564dSmrg if test -n "$future_libdirs"; then 6210266e564dSmrg $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 6211266e564dSmrg fi 6212266e564dSmrg 6213266e564dSmrg if test -n "$current_libdirs"; then 6214266e564dSmrg # Maybe just do a dry run. 6215266e564dSmrg test -n "$run" && current_libdirs=" -n$current_libdirs" 6216266e564dSmrg exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 6217266e564dSmrg else 6218266e564dSmrg exit $EXIT_SUCCESS 6219266e564dSmrg fi 6220266e564dSmrg ;; 6221266e564dSmrg 6222266e564dSmrg # libtool finish mode 6223266e564dSmrg finish) 6224266e564dSmrg modename="$modename: finish" 6225266e564dSmrg libdirs="$nonopt" 6226266e564dSmrg admincmds= 6227266e564dSmrg 6228266e564dSmrg if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 6229266e564dSmrg for dir 6230266e564dSmrg do 6231266e564dSmrg libdirs="$libdirs $dir" 6232266e564dSmrg done 6233266e564dSmrg 6234266e564dSmrg for libdir in $libdirs; do 6235266e564dSmrg if test -n "$finish_cmds"; then 6236266e564dSmrg # Do each command in the finish commands. 6237266e564dSmrg cmds=$finish_cmds 6238266e564dSmrg save_ifs="$IFS"; IFS='~' 6239266e564dSmrg for cmd in $cmds; do 6240266e564dSmrg IFS="$save_ifs" 6241266e564dSmrg eval cmd=\"$cmd\" 6242266e564dSmrg $show "$cmd" 6243266e564dSmrg $run eval "$cmd" || admincmds="$admincmds 6244266e564dSmrg $cmd" 6245266e564dSmrg done 6246266e564dSmrg IFS="$save_ifs" 6247266e564dSmrg fi 6248266e564dSmrg if test -n "$finish_eval"; then 6249266e564dSmrg # Do the single finish_eval. 6250266e564dSmrg eval cmds=\"$finish_eval\" 6251266e564dSmrg $run eval "$cmds" || admincmds="$admincmds 6252266e564dSmrg $cmds" 6253266e564dSmrg fi 6254266e564dSmrg done 6255266e564dSmrg fi 6256266e564dSmrg 6257266e564dSmrg # Exit here if they wanted silent mode. 6258266e564dSmrg test "$show" = : && exit $EXIT_SUCCESS 6259266e564dSmrg 6260266e564dSmrg $echo "X----------------------------------------------------------------------" | $Xsed 6261266e564dSmrg $echo "Libraries have been installed in:" 6262266e564dSmrg for libdir in $libdirs; do 6263266e564dSmrg $echo " $libdir" 6264266e564dSmrg done 6265266e564dSmrg $echo 6266266e564dSmrg $echo "If you ever happen to want to link against installed libraries" 6267266e564dSmrg $echo "in a given directory, LIBDIR, you must either use libtool, and" 6268266e564dSmrg $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 6269266e564dSmrg $echo "flag during linking and do at least one of the following:" 6270266e564dSmrg if test -n "$shlibpath_var"; then 6271266e564dSmrg $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 6272266e564dSmrg $echo " during execution" 6273266e564dSmrg fi 6274266e564dSmrg if test -n "$runpath_var"; then 6275266e564dSmrg $echo " - add LIBDIR to the \`$runpath_var' environment variable" 6276266e564dSmrg $echo " during linking" 6277266e564dSmrg fi 6278266e564dSmrg if test -n "$hardcode_libdir_flag_spec"; then 6279266e564dSmrg libdir=LIBDIR 6280266e564dSmrg eval flag=\"$hardcode_libdir_flag_spec\" 6281266e564dSmrg 6282266e564dSmrg $echo " - use the \`$flag' linker flag" 6283266e564dSmrg fi 6284266e564dSmrg if test -n "$admincmds"; then 6285266e564dSmrg $echo " - have your system administrator run these commands:$admincmds" 6286266e564dSmrg fi 6287266e564dSmrg if test -f /etc/ld.so.conf; then 6288266e564dSmrg $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 6289266e564dSmrg fi 6290266e564dSmrg $echo 6291266e564dSmrg $echo "See any operating system documentation about shared libraries for" 6292266e564dSmrg $echo "more information, such as the ld(1) and ld.so(8) manual pages." 6293266e564dSmrg $echo "X----------------------------------------------------------------------" | $Xsed 6294266e564dSmrg exit $EXIT_SUCCESS 6295266e564dSmrg ;; 6296266e564dSmrg 6297266e564dSmrg # libtool execute mode 6298266e564dSmrg execute) 6299266e564dSmrg modename="$modename: execute" 6300266e564dSmrg 6301266e564dSmrg # The first argument is the command name. 6302266e564dSmrg cmd="$nonopt" 6303266e564dSmrg if test -z "$cmd"; then 6304266e564dSmrg $echo "$modename: you must specify a COMMAND" 1>&2 6305266e564dSmrg $echo "$help" 6306266e564dSmrg exit $EXIT_FAILURE 6307266e564dSmrg fi 6308266e564dSmrg 6309266e564dSmrg # Handle -dlopen flags immediately. 6310266e564dSmrg for file in $execute_dlfiles; do 6311266e564dSmrg if test ! -f "$file"; then 6312266e564dSmrg $echo "$modename: \`$file' is not a file" 1>&2 6313266e564dSmrg $echo "$help" 1>&2 6314266e564dSmrg exit $EXIT_FAILURE 6315266e564dSmrg fi 6316266e564dSmrg 6317266e564dSmrg dir= 6318266e564dSmrg case $file in 6319266e564dSmrg *.la) 6320266e564dSmrg # Check to see that this really is a libtool archive. 6321266e564dSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 6322266e564dSmrg else 6323266e564dSmrg $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 6324266e564dSmrg $echo "$help" 1>&2 6325266e564dSmrg exit $EXIT_FAILURE 6326266e564dSmrg fi 6327266e564dSmrg 6328266e564dSmrg # Read the libtool library. 6329266e564dSmrg dlname= 6330266e564dSmrg library_names= 6331266e564dSmrg 6332266e564dSmrg # If there is no directory component, then add one. 6333266e564dSmrg case $file in 6334266e564dSmrg */* | *\\*) . $file ;; 6335266e564dSmrg *) . ./$file ;; 6336266e564dSmrg esac 6337266e564dSmrg 6338266e564dSmrg # Skip this library if it cannot be dlopened. 6339266e564dSmrg if test -z "$dlname"; then 6340266e564dSmrg # Warn if it was a shared library. 6341266e564dSmrg test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 6342266e564dSmrg continue 6343266e564dSmrg fi 6344266e564dSmrg 6345266e564dSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6346266e564dSmrg test "X$dir" = "X$file" && dir=. 6347266e564dSmrg 6348266e564dSmrg if test -f "$dir/$objdir/$dlname"; then 6349266e564dSmrg dir="$dir/$objdir" 6350266e564dSmrg else 6351266e564dSmrg $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 6352266e564dSmrg exit $EXIT_FAILURE 6353266e564dSmrg fi 6354266e564dSmrg ;; 6355266e564dSmrg 6356266e564dSmrg *.lo) 6357266e564dSmrg # Just add the directory containing the .lo file. 6358266e564dSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6359266e564dSmrg test "X$dir" = "X$file" && dir=. 6360266e564dSmrg ;; 6361266e564dSmrg 6362266e564dSmrg *) 6363266e564dSmrg $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 6364266e564dSmrg continue 6365266e564dSmrg ;; 6366266e564dSmrg esac 6367266e564dSmrg 6368266e564dSmrg # Get the absolute pathname. 6369266e564dSmrg absdir=`cd "$dir" && pwd` 6370266e564dSmrg test -n "$absdir" && dir="$absdir" 6371266e564dSmrg 6372266e564dSmrg # Now add the directory to shlibpath_var. 6373266e564dSmrg if eval "test -z \"\$$shlibpath_var\""; then 6374266e564dSmrg eval "$shlibpath_var=\"\$dir\"" 6375266e564dSmrg else 6376266e564dSmrg eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 6377266e564dSmrg fi 6378266e564dSmrg done 6379266e564dSmrg 6380266e564dSmrg # This variable tells wrapper scripts just to set shlibpath_var 6381266e564dSmrg # rather than running their programs. 6382266e564dSmrg libtool_execute_magic="$magic" 6383266e564dSmrg 6384266e564dSmrg # Check if any of the arguments is a wrapper script. 6385266e564dSmrg args= 6386266e564dSmrg for file 6387266e564dSmrg do 6388266e564dSmrg case $file in 6389266e564dSmrg -*) ;; 6390266e564dSmrg *) 6391266e564dSmrg # Do a test to see if this is really a libtool program. 6392266e564dSmrg if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6393266e564dSmrg # If there is no directory component, then add one. 6394266e564dSmrg case $file in 6395266e564dSmrg */* | *\\*) . $file ;; 6396266e564dSmrg *) . ./$file ;; 6397266e564dSmrg esac 6398266e564dSmrg 6399266e564dSmrg # Transform arg to wrapped name. 6400266e564dSmrg file="$progdir/$program" 6401266e564dSmrg fi 6402266e564dSmrg ;; 6403266e564dSmrg esac 6404266e564dSmrg # Quote arguments (to preserve shell metacharacters). 6405266e564dSmrg file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 6406266e564dSmrg args="$args \"$file\"" 6407266e564dSmrg done 6408266e564dSmrg 6409266e564dSmrg if test -z "$run"; then 6410266e564dSmrg if test -n "$shlibpath_var"; then 6411266e564dSmrg # Export the shlibpath_var. 6412266e564dSmrg eval "export $shlibpath_var" 6413266e564dSmrg fi 6414266e564dSmrg 6415266e564dSmrg # Restore saved environment variables 6416266e564dSmrg if test "${save_LC_ALL+set}" = set; then 6417266e564dSmrg LC_ALL="$save_LC_ALL"; export LC_ALL 6418266e564dSmrg fi 6419266e564dSmrg if test "${save_LANG+set}" = set; then 6420266e564dSmrg LANG="$save_LANG"; export LANG 6421266e564dSmrg fi 6422266e564dSmrg 6423266e564dSmrg # Now prepare to actually exec the command. 6424266e564dSmrg exec_cmd="\$cmd$args" 6425266e564dSmrg else 6426266e564dSmrg # Display what would be done. 6427266e564dSmrg if test -n "$shlibpath_var"; then 6428266e564dSmrg eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 6429266e564dSmrg $echo "export $shlibpath_var" 6430266e564dSmrg fi 6431266e564dSmrg $echo "$cmd$args" 6432266e564dSmrg exit $EXIT_SUCCESS 6433266e564dSmrg fi 6434266e564dSmrg ;; 6435266e564dSmrg 6436266e564dSmrg # libtool clean and uninstall mode 6437266e564dSmrg clean | uninstall) 6438266e564dSmrg modename="$modename: $mode" 6439266e564dSmrg rm="$nonopt" 6440266e564dSmrg files= 6441266e564dSmrg rmforce= 6442266e564dSmrg exit_status=0 6443266e564dSmrg 6444266e564dSmrg # This variable tells wrapper scripts just to set variables rather 6445266e564dSmrg # than running their programs. 6446266e564dSmrg libtool_install_magic="$magic" 6447266e564dSmrg 6448266e564dSmrg for arg 6449266e564dSmrg do 6450266e564dSmrg case $arg in 6451266e564dSmrg -f) rm="$rm $arg"; rmforce=yes ;; 6452266e564dSmrg -*) rm="$rm $arg" ;; 6453266e564dSmrg *) files="$files $arg" ;; 6454266e564dSmrg esac 6455266e564dSmrg done 6456266e564dSmrg 6457266e564dSmrg if test -z "$rm"; then 6458266e564dSmrg $echo "$modename: you must specify an RM program" 1>&2 6459266e564dSmrg $echo "$help" 1>&2 6460266e564dSmrg exit $EXIT_FAILURE 6461266e564dSmrg fi 6462266e564dSmrg 6463266e564dSmrg rmdirs= 6464266e564dSmrg 6465266e564dSmrg origobjdir="$objdir" 6466266e564dSmrg for file in $files; do 6467266e564dSmrg dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6468266e564dSmrg if test "X$dir" = "X$file"; then 6469266e564dSmrg dir=. 6470266e564dSmrg objdir="$origobjdir" 6471266e564dSmrg else 6472266e564dSmrg objdir="$dir/$origobjdir" 6473266e564dSmrg fi 6474266e564dSmrg name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6475266e564dSmrg test "$mode" = uninstall && objdir="$dir" 6476266e564dSmrg 6477266e564dSmrg # Remember objdir for removal later, being careful to avoid duplicates 6478266e564dSmrg if test "$mode" = clean; then 6479266e564dSmrg case " $rmdirs " in 6480266e564dSmrg *" $objdir "*) ;; 6481266e564dSmrg *) rmdirs="$rmdirs $objdir" ;; 6482266e564dSmrg esac 6483266e564dSmrg fi 6484266e564dSmrg 6485266e564dSmrg # Don't error if the file doesn't exist and rm -f was used. 6486266e564dSmrg if (test -L "$file") >/dev/null 2>&1 \ 6487266e564dSmrg || (test -h "$file") >/dev/null 2>&1 \ 6488266e564dSmrg || test -f "$file"; then 6489266e564dSmrg : 6490266e564dSmrg elif test -d "$file"; then 6491266e564dSmrg exit_status=1 6492266e564dSmrg continue 6493266e564dSmrg elif test "$rmforce" = yes; then 6494266e564dSmrg continue 6495266e564dSmrg fi 6496266e564dSmrg 6497266e564dSmrg rmfiles="$file" 6498266e564dSmrg 6499266e564dSmrg case $name in 6500266e564dSmrg *.la) 6501266e564dSmrg # Possibly a libtool archive, so verify it. 6502266e564dSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6503266e564dSmrg . $dir/$name 6504266e564dSmrg 6505266e564dSmrg # Delete the libtool libraries and symlinks. 6506266e564dSmrg for n in $library_names; do 6507266e564dSmrg rmfiles="$rmfiles $objdir/$n" 6508266e564dSmrg done 6509266e564dSmrg test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 6510266e564dSmrg 6511266e564dSmrg case "$mode" in 6512266e564dSmrg clean) 6513266e564dSmrg case " $library_names " in 6514266e564dSmrg # " " in the beginning catches empty $dlname 6515266e564dSmrg *" $dlname "*) ;; 6516266e564dSmrg *) rmfiles="$rmfiles $objdir/$dlname" ;; 6517266e564dSmrg esac 6518266e564dSmrg test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 6519266e564dSmrg ;; 6520266e564dSmrg uninstall) 6521266e564dSmrg if test -n "$library_names"; then 6522266e564dSmrg # Do each command in the postuninstall commands. 6523266e564dSmrg cmds=$postuninstall_cmds 6524266e564dSmrg save_ifs="$IFS"; IFS='~' 6525266e564dSmrg for cmd in $cmds; do 6526266e564dSmrg IFS="$save_ifs" 6527266e564dSmrg eval cmd=\"$cmd\" 6528266e564dSmrg $show "$cmd" 6529266e564dSmrg $run eval "$cmd" 6530266e564dSmrg if test "$?" -ne 0 && test "$rmforce" != yes; then 6531266e564dSmrg exit_status=1 6532266e564dSmrg fi 6533266e564dSmrg done 6534266e564dSmrg IFS="$save_ifs" 6535266e564dSmrg fi 6536266e564dSmrg 6537266e564dSmrg if test -n "$old_library"; then 6538266e564dSmrg # Do each command in the old_postuninstall commands. 6539266e564dSmrg cmds=$old_postuninstall_cmds 6540266e564dSmrg save_ifs="$IFS"; IFS='~' 6541266e564dSmrg for cmd in $cmds; do 6542266e564dSmrg IFS="$save_ifs" 6543266e564dSmrg eval cmd=\"$cmd\" 6544266e564dSmrg $show "$cmd" 6545266e564dSmrg $run eval "$cmd" 6546266e564dSmrg if test "$?" -ne 0 && test "$rmforce" != yes; then 6547266e564dSmrg exit_status=1 6548266e564dSmrg fi 6549266e564dSmrg done 6550266e564dSmrg IFS="$save_ifs" 6551266e564dSmrg fi 6552266e564dSmrg # FIXME: should reinstall the best remaining shared library. 6553266e564dSmrg ;; 6554266e564dSmrg esac 6555266e564dSmrg fi 6556266e564dSmrg ;; 6557266e564dSmrg 6558266e564dSmrg *.lo) 6559266e564dSmrg # Possibly a libtool object, so verify it. 6560266e564dSmrg if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6561266e564dSmrg 6562266e564dSmrg # Read the .lo file 6563266e564dSmrg . $dir/$name 6564266e564dSmrg 6565266e564dSmrg # Add PIC object to the list of files to remove. 6566266e564dSmrg if test -n "$pic_object" \ 6567266e564dSmrg && test "$pic_object" != none; then 6568266e564dSmrg rmfiles="$rmfiles $dir/$pic_object" 6569266e564dSmrg fi 6570266e564dSmrg 6571266e564dSmrg # Add non-PIC object to the list of files to remove. 6572266e564dSmrg if test -n "$non_pic_object" \ 6573266e564dSmrg && test "$non_pic_object" != none; then 6574266e564dSmrg rmfiles="$rmfiles $dir/$non_pic_object" 6575266e564dSmrg fi 6576266e564dSmrg fi 6577266e564dSmrg ;; 6578266e564dSmrg 6579266e564dSmrg *) 6580266e564dSmrg if test "$mode" = clean ; then 6581266e564dSmrg noexename=$name 6582266e564dSmrg case $file in 6583266e564dSmrg *.exe) 6584266e564dSmrg file=`$echo $file|${SED} 's,.exe$,,'` 6585266e564dSmrg noexename=`$echo $name|${SED} 's,.exe$,,'` 6586266e564dSmrg # $file with .exe has already been added to rmfiles, 6587266e564dSmrg # add $file without .exe 6588266e564dSmrg rmfiles="$rmfiles $file" 6589266e564dSmrg ;; 6590266e564dSmrg esac 6591266e564dSmrg # Do a test to see if this is a libtool program. 6592266e564dSmrg if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6593266e564dSmrg relink_command= 6594266e564dSmrg . $dir/$noexename 6595266e564dSmrg 6596266e564dSmrg # note $name still contains .exe if it was in $file originally 6597266e564dSmrg # as does the version of $file that was added into $rmfiles 6598266e564dSmrg rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 6599266e564dSmrg if test "$fast_install" = yes && test -n "$relink_command"; then 6600266e564dSmrg rmfiles="$rmfiles $objdir/lt-$name" 6601266e564dSmrg fi 6602266e564dSmrg if test "X$noexename" != "X$name" ; then 6603266e564dSmrg rmfiles="$rmfiles $objdir/lt-${noexename}.c" 6604266e564dSmrg fi 6605266e564dSmrg fi 6606266e564dSmrg fi 6607266e564dSmrg ;; 6608266e564dSmrg esac 6609266e564dSmrg $show "$rm $rmfiles" 6610266e564dSmrg $run $rm $rmfiles || exit_status=1 6611266e564dSmrg done 6612266e564dSmrg objdir="$origobjdir" 6613266e564dSmrg 6614266e564dSmrg # Try to remove the ${objdir}s in the directories where we deleted files 6615266e564dSmrg for dir in $rmdirs; do 6616266e564dSmrg if test -d "$dir"; then 6617266e564dSmrg $show "rmdir $dir" 6618266e564dSmrg $run rmdir $dir >/dev/null 2>&1 6619266e564dSmrg fi 6620266e564dSmrg done 6621266e564dSmrg 6622266e564dSmrg exit $exit_status 6623266e564dSmrg ;; 6624266e564dSmrg 6625266e564dSmrg "") 6626266e564dSmrg $echo "$modename: you must specify a MODE" 1>&2 6627266e564dSmrg $echo "$generic_help" 1>&2 6628266e564dSmrg exit $EXIT_FAILURE 6629266e564dSmrg ;; 6630266e564dSmrg esac 6631266e564dSmrg 6632266e564dSmrg if test -z "$exec_cmd"; then 6633266e564dSmrg $echo "$modename: invalid operation mode \`$mode'" 1>&2 6634266e564dSmrg $echo "$generic_help" 1>&2 6635266e564dSmrg exit $EXIT_FAILURE 6636266e564dSmrg fi 6637266e564dSmrgfi # test -z "$show_help" 6638266e564dSmrg 6639266e564dSmrgif test -n "$exec_cmd"; then 6640266e564dSmrg eval exec $exec_cmd 6641266e564dSmrg exit $EXIT_FAILURE 6642266e564dSmrgfi 6643266e564dSmrg 6644266e564dSmrg# We need to display help for each of the modes. 6645266e564dSmrgcase $mode in 6646266e564dSmrg"") $echo \ 6647266e564dSmrg"Usage: $modename [OPTION]... [MODE-ARG]... 6648266e564dSmrg 6649266e564dSmrgProvide generalized library-building support services. 6650266e564dSmrg 6651266e564dSmrg --config show all configuration variables 6652266e564dSmrg --debug enable verbose shell tracing 6653266e564dSmrg-n, --dry-run display commands without modifying any files 6654266e564dSmrg --features display basic configuration information and exit 6655266e564dSmrg --finish same as \`--mode=finish' 6656266e564dSmrg --help display this help message and exit 6657266e564dSmrg --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 6658266e564dSmrg --quiet same as \`--silent' 6659266e564dSmrg --silent don't print informational messages 6660266e564dSmrg --tag=TAG use configuration variables from tag TAG 6661266e564dSmrg --version print version information 6662266e564dSmrg 6663266e564dSmrgMODE must be one of the following: 6664266e564dSmrg 6665266e564dSmrg clean remove files from the build directory 6666266e564dSmrg compile compile a source file into a libtool object 6667266e564dSmrg execute automatically set library path, then run a program 6668266e564dSmrg finish complete the installation of libtool libraries 6669266e564dSmrg install install libraries or executables 6670266e564dSmrg link create a library or an executable 6671266e564dSmrg uninstall remove libraries from an installed directory 6672266e564dSmrg 6673266e564dSmrgMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 6674266e564dSmrga more detailed description of MODE. 6675266e564dSmrg 6676266e564dSmrgReport bugs to <bug-libtool@gnu.org>." 6677266e564dSmrg exit $EXIT_SUCCESS 6678266e564dSmrg ;; 6679266e564dSmrg 6680266e564dSmrgclean) 6681266e564dSmrg $echo \ 6682266e564dSmrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 6683266e564dSmrg 6684266e564dSmrgRemove files from the build directory. 6685266e564dSmrg 6686266e564dSmrgRM is the name of the program to use to delete files associated with each FILE 6687266e564dSmrg(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6688266e564dSmrgto RM. 6689266e564dSmrg 6690266e564dSmrgIf FILE is a libtool library, object or program, all the files associated 6691266e564dSmrgwith it are deleted. Otherwise, only FILE itself is deleted using RM." 6692266e564dSmrg ;; 6693266e564dSmrg 6694266e564dSmrgcompile) 6695266e564dSmrg $echo \ 6696266e564dSmrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 6697266e564dSmrg 6698266e564dSmrgCompile a source file into a libtool library object. 6699266e564dSmrg 6700266e564dSmrgThis mode accepts the following additional options: 6701266e564dSmrg 6702266e564dSmrg -o OUTPUT-FILE set the output file name to OUTPUT-FILE 6703266e564dSmrg -prefer-pic try to building PIC objects only 6704266e564dSmrg -prefer-non-pic try to building non-PIC objects only 6705266e564dSmrg -static always build a \`.o' file suitable for static linking 6706266e564dSmrg 6707266e564dSmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 6708266e564dSmrgfrom the given SOURCEFILE. 6709266e564dSmrg 6710266e564dSmrgThe output file name is determined by removing the directory component from 6711266e564dSmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the 6712266e564dSmrglibrary object suffix, \`.lo'." 6713266e564dSmrg ;; 6714266e564dSmrg 6715266e564dSmrgexecute) 6716266e564dSmrg $echo \ 6717266e564dSmrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 6718266e564dSmrg 6719266e564dSmrgAutomatically set library path, then run a program. 6720266e564dSmrg 6721266e564dSmrgThis mode accepts the following additional options: 6722266e564dSmrg 6723266e564dSmrg -dlopen FILE add the directory containing FILE to the library path 6724266e564dSmrg 6725266e564dSmrgThis mode sets the library path environment variable according to \`-dlopen' 6726266e564dSmrgflags. 6727266e564dSmrg 6728266e564dSmrgIf any of the ARGS are libtool executable wrappers, then they are translated 6729266e564dSmrginto their corresponding uninstalled binary, and any of their required library 6730266e564dSmrgdirectories are added to the library path. 6731266e564dSmrg 6732266e564dSmrgThen, COMMAND is executed, with ARGS as arguments." 6733266e564dSmrg ;; 6734266e564dSmrg 6735266e564dSmrgfinish) 6736266e564dSmrg $echo \ 6737266e564dSmrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 6738266e564dSmrg 6739266e564dSmrgComplete the installation of libtool libraries. 6740266e564dSmrg 6741266e564dSmrgEach LIBDIR is a directory that contains libtool libraries. 6742266e564dSmrg 6743266e564dSmrgThe commands that this mode executes may require superuser privileges. Use 6744266e564dSmrgthe \`--dry-run' option if you just want to see what would be executed." 6745266e564dSmrg ;; 6746266e564dSmrg 6747266e564dSmrginstall) 6748266e564dSmrg $echo \ 6749266e564dSmrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 6750266e564dSmrg 6751266e564dSmrgInstall executables or libraries. 6752266e564dSmrg 6753266e564dSmrgINSTALL-COMMAND is the installation command. The first component should be 6754266e564dSmrgeither the \`install' or \`cp' program. 6755266e564dSmrg 6756266e564dSmrgThe rest of the components are interpreted as arguments to that command (only 6757266e564dSmrgBSD-compatible install options are recognized)." 6758266e564dSmrg ;; 6759266e564dSmrg 6760266e564dSmrglink) 6761266e564dSmrg $echo \ 6762266e564dSmrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 6763266e564dSmrg 6764266e564dSmrgLink object files or libraries together to form another library, or to 6765266e564dSmrgcreate an executable program. 6766266e564dSmrg 6767266e564dSmrgLINK-COMMAND is a command using the C compiler that you would use to create 6768266e564dSmrga program from several object files. 6769266e564dSmrg 6770266e564dSmrgThe following components of LINK-COMMAND are treated specially: 6771266e564dSmrg 6772266e564dSmrg -all-static do not do any dynamic linking at all 6773266e564dSmrg -avoid-version do not add a version suffix if possible 6774266e564dSmrg -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 6775266e564dSmrg -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 6776266e564dSmrg -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 6777266e564dSmrg -export-symbols SYMFILE 6778266e564dSmrg try to export only the symbols listed in SYMFILE 6779266e564dSmrg -export-symbols-regex REGEX 6780266e564dSmrg try to export only the symbols matching REGEX 6781266e564dSmrg -LLIBDIR search LIBDIR for required installed libraries 6782266e564dSmrg -lNAME OUTPUT-FILE requires the installed library libNAME 6783266e564dSmrg -module build a library that can dlopened 6784266e564dSmrg -no-fast-install disable the fast-install mode 6785266e564dSmrg -no-install link a not-installable executable 6786266e564dSmrg -no-undefined declare that a library does not refer to external symbols 6787266e564dSmrg -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 6788266e564dSmrg -objectlist FILE Use a list of object files found in FILE to specify objects 6789266e564dSmrg -precious-files-regex REGEX 6790266e564dSmrg don't remove output files matching REGEX 6791266e564dSmrg -release RELEASE specify package release information 6792266e564dSmrg -rpath LIBDIR the created library will eventually be installed in LIBDIR 6793266e564dSmrg -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 6794266e564dSmrg -static do not do any dynamic linking of libtool libraries 6795266e564dSmrg -version-info CURRENT[:REVISION[:AGE]] 6796266e564dSmrg specify library version info [each variable defaults to 0] 6797266e564dSmrg 6798266e564dSmrgAll other options (arguments beginning with \`-') are ignored. 6799266e564dSmrg 6800266e564dSmrgEvery other argument is treated as a filename. Files ending in \`.la' are 6801266e564dSmrgtreated as uninstalled libtool libraries, other files are standard or library 6802266e564dSmrgobject files. 6803266e564dSmrg 6804266e564dSmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 6805266e564dSmrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is 6806266e564dSmrgrequired, except when creating a convenience library. 6807266e564dSmrg 6808266e564dSmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 6809266e564dSmrgusing \`ar' and \`ranlib', or on Windows using \`lib'. 6810266e564dSmrg 6811266e564dSmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 6812266e564dSmrgis created, otherwise an executable program is created." 6813266e564dSmrg ;; 6814266e564dSmrg 6815266e564dSmrguninstall) 6816266e564dSmrg $echo \ 6817266e564dSmrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 6818266e564dSmrg 6819266e564dSmrgRemove libraries from an installation directory. 6820266e564dSmrg 6821266e564dSmrgRM is the name of the program to use to delete files associated with each FILE 6822266e564dSmrg(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6823266e564dSmrgto RM. 6824266e564dSmrg 6825266e564dSmrgIf FILE is a libtool library, all the files associated with it are deleted. 6826266e564dSmrgOtherwise, only FILE itself is deleted using RM." 6827266e564dSmrg ;; 6828266e564dSmrg 6829266e564dSmrg*) 6830266e564dSmrg $echo "$modename: invalid operation mode \`$mode'" 1>&2 6831266e564dSmrg $echo "$help" 1>&2 6832266e564dSmrg exit $EXIT_FAILURE 6833266e564dSmrg ;; 6834266e564dSmrgesac 6835266e564dSmrg 6836266e564dSmrg$echo 6837266e564dSmrg$echo "Try \`$modename --help' for more information about other modes." 6838266e564dSmrg 6839266e564dSmrgexit $? 6840266e564dSmrg 6841266e564dSmrg# The TAGs below are defined such that we never get into a situation 6842266e564dSmrg# in which we disable both kinds of libraries. Given conflicting 6843266e564dSmrg# choices, we go for a static library, that is the most portable, 6844266e564dSmrg# since we can't tell whether shared libraries were disabled because 6845266e564dSmrg# the user asked for that or because the platform doesn't support 6846266e564dSmrg# them. This is particularly important on AIX, because we don't 6847266e564dSmrg# support having both static and shared libraries enabled at the same 6848266e564dSmrg# time on that platform, so we default to a shared-only configuration. 6849266e564dSmrg# If a disable-shared tag is given, we'll fallback to a static-only 6850266e564dSmrg# configuration. But we'll never go from static-only to shared-only. 6851266e564dSmrg 6852266e564dSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 6853266e564dSmrgdisable_libs=shared 6854266e564dSmrg# ### END LIBTOOL TAG CONFIG: disable-shared 6855266e564dSmrg 6856266e564dSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static 6857266e564dSmrgdisable_libs=static 6858266e564dSmrg# ### END LIBTOOL TAG CONFIG: disable-static 6859266e564dSmrg 6860266e564dSmrg# Local Variables: 6861266e564dSmrg# mode:shell-script 6862266e564dSmrg# sh-indentation:2 6863266e564dSmrg# End: 6864