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