Annotation of OpenXM/src/ox_toolkit/ltmain.sh, Revision 1.1
1.1 ! ohara 1: # ltmain.sh - Provide generalized library-building support services.
! 2: # NOTE: Changing this file will not affect anything until you rerun ltconfig.
! 3: #
! 4: # Copyright (C) 1996-1999 Free Software Foundation, Inc.
! 5: # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
! 6: #
! 7: # This program is free software; you can redistribute it and/or modify
! 8: # it under the terms of the GNU General Public License as published by
! 9: # the Free Software Foundation; either version 2 of the License, or
! 10: # (at your option) any later version.
! 11: #
! 12: # This program is distributed in the hope that it will be useful, but
! 13: # WITHOUT ANY WARRANTY; without even the implied warranty of
! 14: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! 15: # General Public License for more details.
! 16: #
! 17: # You should have received a copy of the GNU General Public License
! 18: # along with this program; if not, write to the Free Software
! 19: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! 20: #
! 21: # As a special exception to the GNU General Public License, if you
! 22: # distribute this file as part of a program that contains a
! 23: # configuration script generated by Autoconf, you may include it under
! 24: # the same distribution terms that you use for the rest of that program.
! 25:
! 26: EXPR_COMPAT=1
! 27: export EXPR_COMPAT
! 28:
! 29: # Check that we have a working $echo.
! 30: if test "X$1" = X--no-reexec; then
! 31: # Discard the --no-reexec flag, and continue.
! 32: shift
! 33: elif test "X$1" = X--fallback-echo; then
! 34: # Avoid inline document here, it may be left over
! 35: :
! 36: elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
! 37: # Yippee, $echo works!
! 38: :
! 39: else
! 40: # Restart under the correct shell, and then maybe $echo will work.
! 41: exec $SHELL "$0" --no-reexec ${1+"$@"}
! 42: fi
! 43:
! 44: if test "X$1" = X--fallback-echo; then
! 45: # used as fallback echo
! 46: shift
! 47: cat <<EOF
! 48: $*
! 49: EOF
! 50: exit 0
! 51: fi
! 52:
! 53: # The name of this program.
! 54: progname=`$echo "$0" | sed 's%^.*/%%'`
! 55: modename="$progname"
! 56:
! 57: # Constants.
! 58: PROGRAM=ltmain.sh
! 59: PACKAGE=libtool
! 60: VERSION=1.3.5-freebsd-ports
! 61: TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
! 62:
! 63: default_mode=
! 64: help="Try \`$progname --help' for more information."
! 65: magic="%%%MAGIC variable%%%"
! 66: mkdir="mkdir"
! 67: mv="mv -f"
! 68: rm="rm -f"
! 69:
! 70: # Sed substitution that helps us do robust quoting. It backslashifies
! 71: # metacharacters that are still active within double-quoted strings.
! 72: Xsed='sed -e 1s/^X//'
! 73: sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
! 74: SP2NL='tr \040 \012'
! 75: NL2SP='tr \015\012 \040\040'
! 76:
! 77: # NLS nuisances.
! 78: # Only set LANG and LC_ALL to C if already set.
! 79: # These must not be set unconditionally because not all systems understand
! 80: # e.g. LANG=C (notably SCO).
! 81: # We save the old values to restore during execute mode.
! 82: if test "${LC_ALL+set}" = set; then
! 83: save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
! 84: fi
! 85: if test "${LANG+set}" = set; then
! 86: save_LANG="$LANG"; LANG=C; export LANG
! 87: fi
! 88:
! 89: if test "$LTCONFIG_VERSION" != "$VERSION"; then
! 90: echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
! 91: echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
! 92: exit 1
! 93: fi
! 94:
! 95: if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
! 96: echo "$modename: not configured to build any kind of library" 1>&2
! 97: echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
! 98: exit 1
! 99: fi
! 100:
! 101: # Global variables.
! 102: mode=$default_mode
! 103: nonopt=
! 104: prev=
! 105: prevopt=
! 106: run=
! 107: show="$echo"
! 108: show_help=
! 109: execute_dlfiles=
! 110: lo2o="s/\\.lo\$/.${objext}/"
! 111: o2lo="s/\\.${objext}\$/.lo/"
! 112:
! 113: # Parse our command line options once, thoroughly.
! 114: while test $# -gt 0
! 115: do
! 116: arg="$1"
! 117: shift
! 118:
! 119: case "$arg" in
! 120: -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
! 121: *) optarg= ;;
! 122: esac
! 123:
! 124: # If the previous option needs an argument, assign it.
! 125: if test -n "$prev"; then
! 126: case "$prev" in
! 127: execute_dlfiles)
! 128: eval "$prev=\"\$$prev \$arg\""
! 129: ;;
! 130: *)
! 131: eval "$prev=\$arg"
! 132: ;;
! 133: esac
! 134:
! 135: prev=
! 136: prevopt=
! 137: continue
! 138: fi
! 139:
! 140: # Have we seen a non-optional argument yet?
! 141: case "$arg" in
! 142: --help)
! 143: show_help=yes
! 144: ;;
! 145:
! 146: --version)
! 147: echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
! 148: exit 0
! 149: ;;
! 150:
! 151: --config)
! 152: sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
! 153: exit 0
! 154: ;;
! 155:
! 156: --debug)
! 157: echo "$progname: enabling shell trace mode"
! 158: set -x
! 159: ;;
! 160:
! 161: --dry-run | -n)
! 162: run=:
! 163: ;;
! 164:
! 165: --features)
! 166: echo "host: $host"
! 167: if test "$build_libtool_libs" = yes; then
! 168: echo "enable shared libraries"
! 169: else
! 170: echo "disable shared libraries"
! 171: fi
! 172: if test "$build_old_libs" = yes; then
! 173: echo "enable static libraries"
! 174: else
! 175: echo "disable static libraries"
! 176: fi
! 177: exit 0
! 178: ;;
! 179:
! 180: --finish) mode="finish" ;;
! 181:
! 182: --mode) prevopt="--mode" prev=mode ;;
! 183: --mode=*) mode="$optarg" ;;
! 184:
! 185: --quiet | --silent)
! 186: show=:
! 187: ;;
! 188:
! 189: -dlopen)
! 190: prevopt="-dlopen"
! 191: prev=execute_dlfiles
! 192: ;;
! 193:
! 194: -*)
! 195: $echo "$modename: unrecognized option \`$arg'" 1>&2
! 196: $echo "$help" 1>&2
! 197: exit 1
! 198: ;;
! 199:
! 200: *)
! 201: nonopt="$arg"
! 202: break
! 203: ;;
! 204: esac
! 205: done
! 206:
! 207: if test -n "$prevopt"; then
! 208: $echo "$modename: option \`$prevopt' requires an argument" 1>&2
! 209: $echo "$help" 1>&2
! 210: exit 1
! 211: fi
! 212:
! 213: if test -z "$show_help"; then
! 214:
! 215: # Infer the operation mode.
! 216: if test -z "$mode"; then
! 217: case "$nonopt" in
! 218: *cc | *++ | gcc* | *-gcc*)
! 219: mode=link
! 220: for arg
! 221: do
! 222: case "$arg" in
! 223: -c)
! 224: mode=compile
! 225: break
! 226: ;;
! 227: esac
! 228: done
! 229: ;;
! 230: *db | *dbx | *strace | *truss)
! 231: mode=execute
! 232: ;;
! 233: *install*|cp|mv)
! 234: mode=install
! 235: ;;
! 236: *rm)
! 237: mode=uninstall
! 238: ;;
! 239: *)
! 240: # If we have no mode, but dlfiles were specified, then do execute mode.
! 241: test -n "$execute_dlfiles" && mode=execute
! 242:
! 243: # Just use the default operation mode.
! 244: if test -z "$mode"; then
! 245: if test -n "$nonopt"; then
! 246: $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
! 247: else
! 248: $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
! 249: fi
! 250: fi
! 251: ;;
! 252: esac
! 253: fi
! 254:
! 255: # Only execute mode is allowed to have -dlopen flags.
! 256: if test -n "$execute_dlfiles" && test "$mode" != execute; then
! 257: $echo "$modename: unrecognized option \`-dlopen'" 1>&2
! 258: $echo "$help" 1>&2
! 259: exit 1
! 260: fi
! 261:
! 262: # Change the help message to a mode-specific one.
! 263: generic_help="$help"
! 264: help="Try \`$modename --help --mode=$mode' for more information."
! 265:
! 266: # These modes are in order of execution frequency so that they run quickly.
! 267: case "$mode" in
! 268: # libtool compile mode
! 269: compile)
! 270: modename="$modename: compile"
! 271: # Get the compilation command and the source file.
! 272: base_compile=
! 273: lastarg=
! 274: srcfile="$nonopt"
! 275: suppress_output=
! 276:
! 277: user_target=no
! 278: for arg
! 279: do
! 280: # Accept any command-line options.
! 281: case "$arg" in
! 282: -o)
! 283: if test "$user_target" != "no"; then
! 284: $echo "$modename: you cannot specify \`-o' more than once" 1>&2
! 285: exit 1
! 286: fi
! 287: user_target=next
! 288: ;;
! 289:
! 290: -static)
! 291: build_old_libs=yes
! 292: continue
! 293: ;;
! 294: esac
! 295:
! 296: case "$user_target" in
! 297: next)
! 298: # The next one is the -o target name
! 299: user_target=yes
! 300: continue
! 301: ;;
! 302: yes)
! 303: # We got the output file
! 304: user_target=set
! 305: libobj="$arg"
! 306: continue
! 307: ;;
! 308: esac
! 309:
! 310: # Accept the current argument as the source file.
! 311: lastarg="$srcfile"
! 312: srcfile="$arg"
! 313:
! 314: # Aesthetically quote the previous argument.
! 315:
! 316: # Backslashify any backslashes, double quotes, and dollar signs.
! 317: # These are the only characters that are still specially
! 318: # interpreted inside of double-quoted scrings.
! 319: lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
! 320:
! 321: # Double-quote args containing other shell metacharacters.
! 322: # Many Bourne shells cannot handle close brackets correctly in scan
! 323: # sets, so we specify it separately.
! 324: case "$lastarg" in
! 325: *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
! 326: lastarg="\"$lastarg\""
! 327: ;;
! 328: esac
! 329:
! 330: # Add the previous argument to base_compile.
! 331: if test -z "$base_compile"; then
! 332: base_compile="$lastarg"
! 333: else
! 334: base_compile="$base_compile $lastarg"
! 335: fi
! 336: done
! 337:
! 338: case "$user_target" in
! 339: set)
! 340: ;;
! 341: no)
! 342: # Get the name of the library object.
! 343: libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
! 344: ;;
! 345: *)
! 346: $echo "$modename: you must specify a target with \`-o'" 1>&2
! 347: exit 1
! 348: ;;
! 349: esac
! 350:
! 351: # Recognize several different file suffixes.
! 352: # If the user specifies -o file.o, it is replaced with file.lo
! 353: xform='[cCFSfmso]'
! 354: case "$libobj" in
! 355: *.ada) xform=ada ;;
! 356: *.adb) xform=adb ;;
! 357: *.ads) xform=ads ;;
! 358: *.asm) xform=asm ;;
! 359: *.c++) xform=c++ ;;
! 360: *.cc) xform=cc ;;
! 361: *.cpp) xform=cpp ;;
! 362: *.cxx) xform=cxx ;;
! 363: *.f90) xform=f90 ;;
! 364: *.for) xform=for ;;
! 365: esac
! 366:
! 367: libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
! 368:
! 369: case "$libobj" in
! 370: *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
! 371: *)
! 372: $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
! 373: exit 1
! 374: ;;
! 375: esac
! 376:
! 377: if test -z "$base_compile"; then
! 378: $echo "$modename: you must specify a compilation command" 1>&2
! 379: $echo "$help" 1>&2
! 380: exit 1
! 381: fi
! 382:
! 383: # Delete any leftover library objects.
! 384: if test "$build_old_libs" = yes; then
! 385: removelist="$obj $libobj"
! 386: else
! 387: removelist="$libobj"
! 388: fi
! 389:
! 390: $run $rm $removelist
! 391: trap "$run $rm $removelist; exit 1" 1 2 15
! 392:
! 393: # Calculate the filename of the output object if compiler does
! 394: # not support -o with -c
! 395: if test "$compiler_c_o" = no; then
! 396: output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
! 397: lockfile="$output_obj.lock"
! 398: removelist="$removelist $output_obj $lockfile"
! 399: trap "$run $rm $removelist; exit 1" 1 2 15
! 400: else
! 401: need_locks=no
! 402: lockfile=
! 403: fi
! 404:
! 405: # Lock this critical section if it is needed
! 406: # We use this script file to make the link, it avoids creating a new file
! 407: if test "$need_locks" = yes; then
! 408: until ln "$0" "$lockfile" 2>/dev/null; do
! 409: $show "Waiting for $lockfile to be removed"
! 410: sleep 2
! 411: done
! 412: elif test "$need_locks" = warn; then
! 413: if test -f "$lockfile"; then
! 414: echo "\
! 415: *** ERROR, $lockfile exists and contains:
! 416: `cat $lockfile 2>/dev/null`
! 417:
! 418: This indicates that another process is trying to use the same
! 419: temporary object file, and libtool could not work around it because
! 420: your compiler does not support \`-c' and \`-o' together. If you
! 421: repeat this compilation, it may succeed, by chance, but you had better
! 422: avoid parallel builds (make -j) in this platform, or get a better
! 423: compiler."
! 424:
! 425: $run $rm $removelist
! 426: exit 1
! 427: fi
! 428: echo $srcfile > "$lockfile"
! 429: fi
! 430:
! 431: if test -n "$fix_srcfile_path"; then
! 432: eval srcfile=\"$fix_srcfile_path\"
! 433: fi
! 434:
! 435: # Only build a PIC object if we are building libtool libraries.
! 436: if test "$build_libtool_libs" = yes; then
! 437: # Without this assignment, base_compile gets emptied.
! 438: fbsd_hideous_sh_bug=$base_compile
! 439:
! 440: # All platforms use -DPIC, to notify preprocessed assembler code.
! 441: command="$base_compile $srcfile $pic_flag -DPIC"
! 442: if test "$build_old_libs" = yes; then
! 443: lo_libobj="$libobj"
! 444: dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
! 445: if test "X$dir" = "X$libobj"; then
! 446: dir="$objdir"
! 447: else
! 448: dir="$dir/$objdir"
! 449: fi
! 450: libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
! 451:
! 452: if test -d "$dir"; then
! 453: $show "$rm $libobj"
! 454: $run $rm $libobj
! 455: else
! 456: $show "$mkdir $dir"
! 457: $run $mkdir $dir
! 458: status=$?
! 459: if test $status -ne 0 && test ! -d $dir; then
! 460: exit $status
! 461: fi
! 462: fi
! 463: fi
! 464: if test "$compiler_o_lo" = yes; then
! 465: output_obj="$libobj"
! 466: command="$command -o $output_obj"
! 467: elif test "$compiler_c_o" = yes; then
! 468: output_obj="$obj"
! 469: command="$command -o $output_obj"
! 470: fi
! 471:
! 472: $run $rm "$output_obj"
! 473: $show "$command"
! 474: if $run eval "$command"; then :
! 475: else
! 476: test -n "$output_obj" && $run $rm $removelist
! 477: exit 1
! 478: fi
! 479:
! 480: if test "$need_locks" = warn &&
! 481: test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
! 482: echo "\
! 483: *** ERROR, $lockfile contains:
! 484: `cat $lockfile 2>/dev/null`
! 485:
! 486: but it should contain:
! 487: $srcfile
! 488:
! 489: This indicates that another process is trying to use the same
! 490: temporary object file, and libtool could not work around it because
! 491: your compiler does not support \`-c' and \`-o' together. If you
! 492: repeat this compilation, it may succeed, by chance, but you had better
! 493: avoid parallel builds (make -j) in this platform, or get a better
! 494: compiler."
! 495:
! 496: $run $rm $removelist
! 497: exit 1
! 498: fi
! 499:
! 500: # Just move the object if needed, then go on to compile the next one
! 501: if test x"$output_obj" != x"$libobj"; then
! 502: $show "$mv $output_obj $libobj"
! 503: if $run $mv $output_obj $libobj; then :
! 504: else
! 505: error=$?
! 506: $run $rm $removelist
! 507: exit $error
! 508: fi
! 509: fi
! 510:
! 511: # If we have no pic_flag, then copy the object into place and finish.
! 512: if test -z "$pic_flag" && test "$build_old_libs" = yes; then
! 513: # Rename the .lo from within objdir to obj
! 514: if test -f $obj; then
! 515: $show $rm $obj
! 516: $run $rm $obj
! 517: fi
! 518:
! 519: $show "$mv $libobj $obj"
! 520: if $run $mv $libobj $obj; then :
! 521: else
! 522: error=$?
! 523: $run $rm $removelist
! 524: exit $error
! 525: fi
! 526:
! 527: xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
! 528: if test "X$xdir" = "X$obj"; then
! 529: xdir="."
! 530: else
! 531: xdir="$xdir"
! 532: fi
! 533: baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
! 534: libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
! 535: # Now arrange that obj and lo_libobj become the same file
! 536: $show "(cd $xdir && $LN_S $baseobj $libobj)"
! 537: if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
! 538: exit 0
! 539: else
! 540: error=$?
! 541: $run $rm $removelist
! 542: exit $error
! 543: fi
! 544: fi
! 545:
! 546: # Allow error messages only from the first compilation.
! 547: suppress_output=' >/dev/null 2>&1'
! 548: fi
! 549:
! 550: # Only build a position-dependent object if we build old libraries.
! 551: if test "$build_old_libs" = yes; then
! 552: command="$base_compile $srcfile"
! 553: if test "$compiler_c_o" = yes; then
! 554: command="$command -o $obj"
! 555: output_obj="$obj"
! 556: fi
! 557:
! 558: # Suppress compiler output if we already did a PIC compilation.
! 559: command="$command$suppress_output"
! 560: $run $rm "$output_obj"
! 561: $show "$command"
! 562: if $run eval "$command"; then :
! 563: else
! 564: $run $rm $removelist
! 565: exit 1
! 566: fi
! 567:
! 568: if test "$need_locks" = warn &&
! 569: test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
! 570: echo "\
! 571: *** ERROR, $lockfile contains:
! 572: `cat $lockfile 2>/dev/null`
! 573:
! 574: but it should contain:
! 575: $srcfile
! 576:
! 577: This indicates that another process is trying to use the same
! 578: temporary object file, and libtool could not work around it because
! 579: your compiler does not support \`-c' and \`-o' together. If you
! 580: repeat this compilation, it may succeed, by chance, but you had better
! 581: avoid parallel builds (make -j) in this platform, or get a better
! 582: compiler."
! 583:
! 584: $run $rm $removelist
! 585: exit 1
! 586: fi
! 587:
! 588: # Just move the object if needed
! 589: if test x"$output_obj" != x"$obj"; then
! 590: $show "$mv $output_obj $obj"
! 591: if $run $mv $output_obj $obj; then :
! 592: else
! 593: error=$?
! 594: $run $rm $removelist
! 595: exit $error
! 596: fi
! 597: fi
! 598:
! 599: # Create an invalid libtool object if no PIC, so that we do not
! 600: # accidentally link it into a program.
! 601: if test "$build_libtool_libs" != yes; then
! 602: $show "echo timestamp > $libobj"
! 603: $run eval "echo timestamp > \$libobj" || exit $?
! 604: else
! 605: # Move the .lo from within objdir
! 606: $show "$mv $libobj $lo_libobj"
! 607: if $run $mv $libobj $lo_libobj; then :
! 608: else
! 609: error=$?
! 610: $run $rm $removelist
! 611: exit $error
! 612: fi
! 613: fi
! 614: fi
! 615:
! 616: # Unlock the critical section if it was locked
! 617: if test "$need_locks" != no; then
! 618: $rm "$lockfile"
! 619: fi
! 620:
! 621: exit 0
! 622: ;;
! 623:
! 624: # libtool link mode
! 625: link)
! 626: modename="$modename: link"
! 627: case "$host" in
! 628: *-*-cygwin* | *-*-mingw* | *-*-os2*)
! 629: # It is impossible to link a dll without this setting, and
! 630: # we shouldn't force the makefile maintainer to figure out
! 631: # which system we are compiling for in order to pass an extra
! 632: # flag for every libtool invokation.
! 633: # allow_undefined=no
! 634:
! 635: # FIXME: Unfortunately, there are problems with the above when trying
! 636: # to make a dll which has undefined symbols, in which case not
! 637: # even a static library is built. For now, we need to specify
! 638: # -no-undefined on the libtool link line when we can be certain
! 639: # that all symbols are satisfied, otherwise we get a static library.
! 640: allow_undefined=yes
! 641:
! 642: # This is a source program that is used to create dlls on Windows
! 643: # Don't remove nor modify the starting and closing comments
! 644: # /* ltdll.c starts here */
! 645: # #define WIN32_LEAN_AND_MEAN
! 646: # #include <windows.h>
! 647: # #undef WIN32_LEAN_AND_MEAN
! 648: # #include <stdio.h>
! 649: #
! 650: # #ifndef __CYGWIN__
! 651: # # ifdef __CYGWIN32__
! 652: # # define __CYGWIN__ __CYGWIN32__
! 653: # # endif
! 654: # #endif
! 655: #
! 656: # #ifdef __cplusplus
! 657: # extern "C" {
! 658: # #endif
! 659: # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
! 660: # #ifdef __cplusplus
! 661: # }
! 662: # #endif
! 663: #
! 664: # #ifdef __CYGWIN__
! 665: # #include <cygwin/cygwin_dll.h>
! 666: # DECLARE_CYGWIN_DLL( DllMain );
! 667: # #endif
! 668: # HINSTANCE __hDllInstance_base;
! 669: #
! 670: # BOOL APIENTRY
! 671: # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
! 672: # {
! 673: # __hDllInstance_base = hInst;
! 674: # return TRUE;
! 675: # }
! 676: # /* ltdll.c ends here */
! 677: # This is a source program that is used to create import libraries
! 678: # on Windows for dlls which lack them. Don't remove nor modify the
! 679: # starting and closing comments
! 680: # /* impgen.c starts here */
! 681: # /* Copyright (C) 1999 Free Software Foundation, Inc.
! 682: #
! 683: # This file is part of GNU libtool.
! 684: #
! 685: # This program is free software; you can redistribute it and/or modify
! 686: # it under the terms of the GNU General Public License as published by
! 687: # the Free Software Foundation; either version 2 of the License, or
! 688: # (at your option) any later version.
! 689: #
! 690: # This program is distributed in the hope that it will be useful,
! 691: # but WITHOUT ANY WARRANTY; without even the implied warranty of
! 692: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 693: # GNU General Public License for more details.
! 694: #
! 695: # You should have received a copy of the GNU General Public License
! 696: # along with this program; if not, write to the Free Software
! 697: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! 698: # */
! 699: #
! 700: # #include <stdio.h> /* for printf() */
! 701: # #include <unistd.h> /* for open(), lseek(), read() */
! 702: # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
! 703: # #include <string.h> /* for strdup() */
! 704: #
! 705: # static unsigned int
! 706: # pe_get16 (fd, offset)
! 707: # int fd;
! 708: # int offset;
! 709: # {
! 710: # unsigned char b[2];
! 711: # lseek (fd, offset, SEEK_SET);
! 712: # read (fd, b, 2);
! 713: # return b[0] + (b[1]<<8);
! 714: # }
! 715: #
! 716: # static unsigned int
! 717: # pe_get32 (fd, offset)
! 718: # int fd;
! 719: # int offset;
! 720: # {
! 721: # unsigned char b[4];
! 722: # lseek (fd, offset, SEEK_SET);
! 723: # read (fd, b, 4);
! 724: # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
! 725: # }
! 726: #
! 727: # static unsigned int
! 728: # pe_as32 (ptr)
! 729: # void *ptr;
! 730: # {
! 731: # unsigned char *b = ptr;
! 732: # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
! 733: # }
! 734: #
! 735: # int
! 736: # main (argc, argv)
! 737: # int argc;
! 738: # char *argv[];
! 739: # {
! 740: # int dll;
! 741: # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
! 742: # unsigned long export_rva, export_size, nsections, secptr, expptr;
! 743: # unsigned long name_rvas, nexp;
! 744: # unsigned char *expdata, *erva;
! 745: # char *filename, *dll_name;
! 746: #
! 747: # filename = argv[1];
! 748: #
! 749: # dll = open(filename, O_RDONLY|O_BINARY);
! 750: # if (!dll)
! 751: # return 1;
! 752: #
! 753: # dll_name = filename;
! 754: #
! 755: # for (i=0; filename[i]; i++)
! 756: # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
! 757: # dll_name = filename + i +1;
! 758: #
! 759: # pe_header_offset = pe_get32 (dll, 0x3c);
! 760: # opthdr_ofs = pe_header_offset + 4 + 20;
! 761: # num_entries = pe_get32 (dll, opthdr_ofs + 92);
! 762: #
! 763: # if (num_entries < 1) /* no exports */
! 764: # return 1;
! 765: #
! 766: # export_rva = pe_get32 (dll, opthdr_ofs + 96);
! 767: # export_size = pe_get32 (dll, opthdr_ofs + 100);
! 768: # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
! 769: # secptr = (pe_header_offset + 4 + 20 +
! 770: # pe_get16 (dll, pe_header_offset + 4 + 16));
! 771: #
! 772: # expptr = 0;
! 773: # for (i = 0; i < nsections; i++)
! 774: # {
! 775: # char sname[8];
! 776: # unsigned long secptr1 = secptr + 40 * i;
! 777: # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
! 778: # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
! 779: # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
! 780: # lseek(dll, secptr1, SEEK_SET);
! 781: # read(dll, sname, 8);
! 782: # if (vaddr <= export_rva && vaddr+vsize > export_rva)
! 783: # {
! 784: # expptr = fptr + (export_rva - vaddr);
! 785: # if (export_rva + export_size > vaddr + vsize)
! 786: # export_size = vsize - (export_rva - vaddr);
! 787: # break;
! 788: # }
! 789: # }
! 790: #
! 791: # expdata = (unsigned char*)malloc(export_size);
! 792: # lseek (dll, expptr, SEEK_SET);
! 793: # read (dll, expdata, export_size);
! 794: # erva = expdata - export_rva;
! 795: #
! 796: # nexp = pe_as32 (expdata+24);
! 797: # name_rvas = pe_as32 (expdata+32);
! 798: #
! 799: # printf ("EXPORTS\n");
! 800: # for (i = 0; i<nexp; i++)
! 801: # {
! 802: # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
! 803: # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
! 804: # }
! 805: #
! 806: # return 0;
! 807: # }
! 808: # /* impgen.c ends here */
! 809: ;;
! 810: *)
! 811: allow_undefined=yes
! 812: ;;
! 813: esac
! 814: compile_command="$nonopt"
! 815: finalize_command="$nonopt"
! 816:
! 817: compile_rpath=
! 818: finalize_rpath=
! 819: compile_shlibpath=
! 820: finalize_shlibpath=
! 821: convenience=
! 822: old_convenience=
! 823: deplibs=
! 824: linkopts=
! 825:
! 826: if test -n "$shlibpath_var"; then
! 827: # get the directories listed in $shlibpath_var
! 828: eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
! 829: else
! 830: lib_search_path=
! 831: fi
! 832: # now prepend the system-specific ones
! 833: eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
! 834: eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
! 835:
! 836: avoid_version=no
! 837: dlfiles=
! 838: dlprefiles=
! 839: dlself=no
! 840: export_dynamic=no
! 841: export_symbols=
! 842: export_symbols_regex=
! 843: generated=
! 844: libobjs=
! 845: link_against_libtool_libs=
! 846: ltlibs=
! 847: module=no
! 848: objs=
! 849: prefer_static_libs=no
! 850: preload=no
! 851: prev=
! 852: prevarg=
! 853: release=
! 854: rpath=
! 855: xrpath=
! 856: perm_rpath=
! 857: temp_rpath=
! 858: thread_safe=no
! 859: vinfo=
! 860:
! 861: # We need to know -static, to get the right output filenames.
! 862: for arg
! 863: do
! 864: case "$arg" in
! 865: -all-static | -static)
! 866: if test "X$arg" = "X-all-static"; then
! 867: if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
! 868: $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
! 869: fi
! 870: if test -n "$link_static_flag"; then
! 871: dlopen_self=$dlopen_self_static
! 872: fi
! 873: else
! 874: if test -z "$pic_flag" && test -n "$link_static_flag"; then
! 875: dlopen_self=$dlopen_self_static
! 876: fi
! 877: fi
! 878: build_libtool_libs=no
! 879: build_old_libs=yes
! 880: prefer_static_libs=yes
! 881: break
! 882: ;;
! 883: esac
! 884: done
! 885:
! 886: # See if our shared archives depend on static archives.
! 887: test -n "$old_archive_from_new_cmds" && build_old_libs=yes
! 888:
! 889: # Go through the arguments, transforming them on the way.
! 890: while test $# -gt 0; do
! 891: arg="$1"
! 892: shift
! 893:
! 894: # If the previous option needs an argument, assign it.
! 895: if test -n "$prev"; then
! 896: case "$prev" in
! 897: output)
! 898: compile_command="$compile_command @OUTPUT@"
! 899: finalize_command="$finalize_command @OUTPUT@"
! 900: ;;
! 901: esac
! 902:
! 903: case "$prev" in
! 904: dlfiles|dlprefiles)
! 905: if test "$preload" = no; then
! 906: # Add the symbol object into the linking commands.
! 907: compile_command="$compile_command @SYMFILE@"
! 908: finalize_command="$finalize_command @SYMFILE@"
! 909: preload=yes
! 910: fi
! 911: case "$arg" in
! 912: *.la | *.lo) ;; # We handle these cases below.
! 913: force)
! 914: if test "$dlself" = no; then
! 915: dlself=needless
! 916: export_dynamic=yes
! 917: fi
! 918: prev=
! 919: continue
! 920: ;;
! 921: self)
! 922: if test "$prev" = dlprefiles; then
! 923: dlself=yes
! 924: elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
! 925: dlself=yes
! 926: else
! 927: dlself=needless
! 928: export_dynamic=yes
! 929: fi
! 930: prev=
! 931: continue
! 932: ;;
! 933: *)
! 934: if test "$prev" = dlfiles; then
! 935: dlfiles="$dlfiles $arg"
! 936: else
! 937: dlprefiles="$dlprefiles $arg"
! 938: fi
! 939: prev=
! 940: ;;
! 941: esac
! 942: ;;
! 943: expsyms)
! 944: export_symbols="$arg"
! 945: if test ! -f "$arg"; then
! 946: $echo "$modename: symbol file \`$arg' does not exist"
! 947: exit 1
! 948: fi
! 949: prev=
! 950: continue
! 951: ;;
! 952: expsyms_regex)
! 953: export_symbols_regex="$arg"
! 954: prev=
! 955: continue
! 956: ;;
! 957: release)
! 958: if test "$release_suffix" = all; then
! 959: release="$arg"
! 960: elif test "$release_suffix" = yes; then
! 961: release="-$arg"
! 962: fi
! 963: prev=
! 964: continue
! 965: ;;
! 966: rpath | xrpath)
! 967: # We need an absolute path.
! 968: case "$arg" in
! 969: [\\/]* | [A-Za-z]:[\\/]*) ;;
! 970: *)
! 971: $echo "$modename: only absolute run-paths are allowed" 1>&2
! 972: exit 1
! 973: ;;
! 974: esac
! 975: if test "$prev" = rpath; then
! 976: case "$rpath " in
! 977: *" $arg "*) ;;
! 978: *) rpath="$rpath $arg" ;;
! 979: esac
! 980: else
! 981: case "$xrpath " in
! 982: *" $arg "*) ;;
! 983: *) xrpath="$xrpath $arg" ;;
! 984: esac
! 985: fi
! 986: prev=
! 987: continue
! 988: ;;
! 989: *)
! 990: eval "$prev=\"\$arg\""
! 991: prev=
! 992: continue
! 993: ;;
! 994: esac
! 995: fi
! 996:
! 997: prevarg="$arg"
! 998:
! 999: case "$arg" in
! 1000: -all-static)
! 1001: if test -n "$link_static_flag"; then
! 1002: compile_command="$compile_command $link_static_flag"
! 1003: finalize_command="$finalize_command $link_static_flag"
! 1004: fi
! 1005: continue
! 1006: ;;
! 1007:
! 1008: -allow-undefined)
! 1009: # FIXME: remove this flag sometime in the future.
! 1010: $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
! 1011: continue
! 1012: ;;
! 1013:
! 1014: -avoid-version)
! 1015: build_old_libs=no
! 1016: avoid_version=yes
! 1017: continue
! 1018: ;;
! 1019:
! 1020: -dlopen)
! 1021: prev=dlfiles
! 1022: continue
! 1023: ;;
! 1024:
! 1025: -dlpreopen)
! 1026: prev=dlprefiles
! 1027: continue
! 1028: ;;
! 1029:
! 1030: -export-dynamic)
! 1031: export_dynamic=yes
! 1032: continue
! 1033: ;;
! 1034:
! 1035: -export-symbols | -export-symbols-regex)
! 1036: if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
! 1037: $echo "$modename: not more than one -exported-symbols argument allowed"
! 1038: exit 1
! 1039: fi
! 1040: if test "X$arg" = "X-export-symbols"; then
! 1041: prev=expsyms
! 1042: else
! 1043: prev=expsyms_regex
! 1044: fi
! 1045: continue
! 1046: ;;
! 1047:
! 1048: -L*)
! 1049: dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
! 1050: # We need an absolute path.
! 1051: case "$dir" in
! 1052: [\\/]* | [A-Za-z]:[\\/]*) ;;
! 1053: *)
! 1054: absdir=`cd "$dir" && pwd`
! 1055: if test -z "$absdir"; then
! 1056: $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
! 1057: $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
! 1058: absdir="$dir"
! 1059: fi
! 1060: dir="$absdir"
! 1061: ;;
! 1062: esac
! 1063: case " $deplibs " in
! 1064: *" $arg "*) ;;
! 1065: *) deplibs="$deplibs $arg";;
! 1066: esac
! 1067: case " $lib_search_path " in
! 1068: *" $dir "*) ;;
! 1069: *) lib_search_path="$lib_search_path $dir";;
! 1070: esac
! 1071: case "$host" in
! 1072: *-*-cygwin* | *-*-mingw* | *-*-os2*)
! 1073: dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
! 1074: case ":$dllsearchpath:" in
! 1075: ::) dllsearchpath="$dllsearchdir";;
! 1076: *":$dllsearchdir:"*) ;;
! 1077: *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
! 1078: esac
! 1079: ;;
! 1080: esac
! 1081: ;;
! 1082:
! 1083: -l*)
! 1084: if test "$arg" = "-lc"; then
! 1085: case "$host" in
! 1086: *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
! 1087: # These systems don't actually have c library (as such)
! 1088: continue
! 1089: ;;
! 1090: esac
! 1091: elif test "$arg" = "-lm"; then
! 1092: case "$host" in
! 1093: *-*-cygwin* | *-*-beos*)
! 1094: # These systems don't actually have math library (as such)
! 1095: continue
! 1096: ;;
! 1097: esac
! 1098: fi
! 1099: deplibs="$deplibs $arg"
! 1100: ;;
! 1101:
! 1102: -?thread)
! 1103: deplibs="$deplibs $arg"
! 1104: ;;
! 1105:
! 1106: -module)
! 1107: module=yes
! 1108: continue
! 1109: ;;
! 1110:
! 1111: -no-undefined)
! 1112: allow_undefined=no
! 1113: continue
! 1114: ;;
! 1115:
! 1116: -o) prev=output ;;
! 1117:
! 1118: -release)
! 1119: prev=release
! 1120: continue
! 1121: ;;
! 1122:
! 1123: -rpath)
! 1124: prev=rpath
! 1125: continue
! 1126: ;;
! 1127:
! 1128: -R)
! 1129: prev=xrpath
! 1130: continue
! 1131: ;;
! 1132:
! 1133: -R*)
! 1134: dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
! 1135: # We need an absolute path.
! 1136: case "$dir" in
! 1137: [\\/]* | [A-Za-z]:[\\/]*) ;;
! 1138: *)
! 1139: $echo "$modename: only absolute run-paths are allowed" 1>&2
! 1140: exit 1
! 1141: ;;
! 1142: esac
! 1143: case "$xrpath " in
! 1144: *" $dir "*) ;;
! 1145: *) xrpath="$xrpath $dir" ;;
! 1146: esac
! 1147: continue
! 1148: ;;
! 1149:
! 1150: -static)
! 1151: # If we have no pic_flag, then this is the same as -all-static.
! 1152: if test -z "$pic_flag" && test -n "$link_static_flag"; then
! 1153: compile_command="$compile_command $link_static_flag"
! 1154: finalize_command="$finalize_command $link_static_flag"
! 1155: fi
! 1156: continue
! 1157: ;;
! 1158:
! 1159: -thread-safe)
! 1160: thread_safe=yes
! 1161: continue
! 1162: ;;
! 1163:
! 1164: -version-info)
! 1165: prev=vinfo
! 1166: continue
! 1167: ;;
! 1168:
! 1169: # Some other compiler flag.
! 1170: -* | +*)
! 1171: # Unknown arguments in both finalize_command and compile_command need
! 1172: # to be aesthetically quoted because they are evaled later.
! 1173: arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
! 1174: case "$arg" in
! 1175: *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
! 1176: arg="\"$arg\""
! 1177: ;;
! 1178: esac
! 1179: ;;
! 1180:
! 1181: *.o | *.obj | *.a | *.lib)
! 1182: # A standard object.
! 1183: libobjs="$libobjs $arg"
! 1184: ;;
! 1185:
! 1186: *.lo)
! 1187: # A library object.
! 1188: if test "$prev" = dlfiles; then
! 1189: dlfiles="$dlfiles $arg"
! 1190: if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
! 1191: prev=
! 1192: continue
! 1193: else
! 1194: # If libtool objects are unsupported, then we need to preload.
! 1195: prev=dlprefiles
! 1196: fi
! 1197: fi
! 1198:
! 1199: if test "$prev" = dlprefiles; then
! 1200: # Preload the old-style object.
! 1201: dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
! 1202: prev=
! 1203: fi
! 1204: libobjs="$libobjs $arg"
! 1205: ;;
! 1206:
! 1207: *.la)
! 1208: # A libtool-controlled library.
! 1209:
! 1210: dlname=
! 1211: libdir=
! 1212: library_names=
! 1213: old_library=
! 1214:
! 1215: # Check to see that this really is a libtool archive.
! 1216: if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
! 1217: else
! 1218: $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
! 1219: exit 1
! 1220: fi
! 1221:
! 1222: # If the library was installed with an old release of libtool,
! 1223: # it will not redefine variable installed.
! 1224: installed=yes
! 1225:
! 1226: # Read the .la file
! 1227: # If there is no directory component, then add one.
! 1228: case "$arg" in
! 1229: */* | *\\*) . $arg ;;
! 1230: *) . ./$arg ;;
! 1231: esac
! 1232:
! 1233: # Get the name of the library we link against.
! 1234: linklib=
! 1235: for l in $old_library $library_names; do
! 1236: linklib="$l"
! 1237: done
! 1238:
! 1239: if test -z "$linklib"; then
! 1240: $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
! 1241: exit 1
! 1242: fi
! 1243:
! 1244: # Find the relevant object directory and library name.
! 1245: name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
! 1246:
! 1247: if test "X$installed" = Xyes; then
! 1248: dir="$libdir"
! 1249: else
! 1250: dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
! 1251: if test "X$dir" = "X$arg"; then
! 1252: dir="$objdir"
! 1253: else
! 1254: dir="$dir/$objdir"
! 1255: fi
! 1256: fi
! 1257:
! 1258: if test -n "$dependency_libs"; then
! 1259: # Extract -R and -L from dependency_libs
! 1260: temp_deplibs=
! 1261: for deplib in $dependency_libs; do
! 1262: case "$deplib" in
! 1263: -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
! 1264: case " $rpath $xrpath " in
! 1265: *" $temp_xrpath "*) ;;
! 1266: *) xrpath="$xrpath $temp_xrpath";;
! 1267: esac;;
! 1268: -L*) case "$compile_command $temp_deplibs " in
! 1269: *" $deplib "*) ;;
! 1270: *) temp_deplibs="$temp_deplibs $deplib";;
! 1271: esac
! 1272: temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
! 1273: case " $lib_search_path " in
! 1274: *" $temp_dir "*) ;;
! 1275: *) lib_search_path="$lib_search_path $temp_dir";;
! 1276: esac
! 1277: ;;
! 1278: *) temp_deplibs="$temp_deplibs $deplib";;
! 1279: esac
! 1280: done
! 1281: dependency_libs="$temp_deplibs"
! 1282: fi
! 1283:
! 1284: if test -z "$libdir"; then
! 1285: # It is a libtool convenience library, so add in its objects.
! 1286: convenience="$convenience $dir/$old_library"
! 1287: old_convenience="$old_convenience $dir/$old_library"
! 1288: deplibs="$deplibs$dependency_libs"
! 1289: compile_command="$compile_command $dir/$old_library$dependency_libs"
! 1290: finalize_command="$finalize_command $dir/$old_library$dependency_libs"
! 1291: continue
! 1292: fi
! 1293:
! 1294: # This library was specified with -dlopen.
! 1295: if test "$prev" = dlfiles; then
! 1296: dlfiles="$dlfiles $arg"
! 1297: if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
! 1298: # If there is no dlname, no dlopen support or we're linking statically,
! 1299: # we need to preload.
! 1300: prev=dlprefiles
! 1301: else
! 1302: # We should not create a dependency on this library, but we
! 1303: # may need any libraries it requires.
! 1304: compile_command="$compile_command$dependency_libs"
! 1305: finalize_command="$finalize_command$dependency_libs"
! 1306: prev=
! 1307: continue
! 1308: fi
! 1309: fi
! 1310:
! 1311: # The library was specified with -dlpreopen.
! 1312: if test "$prev" = dlprefiles; then
! 1313: # Prefer using a static library (so that no silly _DYNAMIC symbols
! 1314: # are required to link).
! 1315: if test -n "$old_library"; then
! 1316: dlprefiles="$dlprefiles $dir/$old_library"
! 1317: else
! 1318: dlprefiles="$dlprefiles $dir/$linklib"
! 1319: fi
! 1320: prev=
! 1321: fi
! 1322:
! 1323: if test -n "$library_names" &&
! 1324: { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
! 1325: link_against_libtool_libs="$link_against_libtool_libs $arg"
! 1326: if test -n "$shlibpath_var"; then
! 1327: # Make sure the rpath contains only unique directories.
! 1328: case "$temp_rpath " in
! 1329: *" $dir "*) ;;
! 1330: *) temp_rpath="$temp_rpath $dir" ;;
! 1331: esac
! 1332: fi
! 1333:
! 1334: # We need an absolute path.
! 1335: case "$dir" in
! 1336: [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
! 1337: *)
! 1338: absdir=`cd "$dir" && pwd`
! 1339: if test -z "$absdir"; then
! 1340: $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
! 1341: $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
! 1342: absdir="$dir"
! 1343: fi
! 1344: ;;
! 1345: esac
! 1346:
! 1347: # This is the magic to use -rpath.
! 1348: # Skip directories that are in the system default run-time
! 1349: # search path, unless they have been requested with -R.
! 1350: case " $sys_lib_dlsearch_path " in
! 1351: *" $absdir "*) ;;
! 1352: *)
! 1353: case "$compile_rpath " in
! 1354: *" $absdir "*) ;;
! 1355: *) compile_rpath="$compile_rpath $absdir"
! 1356: esac
! 1357: ;;
! 1358: esac
! 1359:
! 1360: case " $sys_lib_dlsearch_path " in
! 1361: *" $libdir "*) ;;
! 1362: *)
! 1363: case "$finalize_rpath " in
! 1364: *" $libdir "*) ;;
! 1365: *) finalize_rpath="$finalize_rpath $libdir"
! 1366: esac
! 1367: ;;
! 1368: esac
! 1369:
! 1370: lib_linked=yes
! 1371: case "$hardcode_action" in
! 1372: immediate | unsupported)
! 1373: if test "$hardcode_direct" = no; then
! 1374: compile_command="$compile_command $dir/$linklib"
! 1375: deplibs="$deplibs $dir/$linklib"
! 1376: case "$host" in
! 1377: *-*-cygwin* | *-*-mingw* | *-*-os2*)
! 1378: dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
! 1379: if test -n "$dllsearchpath"; then
! 1380: dllsearchpath="$dllsearchpath:$dllsearchdir"
! 1381: else
! 1382: dllsearchpath="$dllsearchdir"
! 1383: fi
! 1384: ;;
! 1385: esac
! 1386: elif test "$hardcode_minus_L" = no; then
! 1387: case "$host" in
! 1388: *-*-sunos*)
! 1389: compile_shlibpath="$compile_shlibpath$dir:"
! 1390: ;;
! 1391: esac
! 1392: case "$compile_command " in
! 1393: *" -L$dir "*) ;;
! 1394: *) compile_command="$compile_command -L$dir";;
! 1395: esac
! 1396: compile_command="$compile_command -l$name"
! 1397: deplibs="$deplibs -L$dir -l$name"
! 1398: elif test "$hardcode_shlibpath_var" = no; then
! 1399: case ":$compile_shlibpath:" in
! 1400: *":$dir:"*) ;;
! 1401: *) compile_shlibpath="$compile_shlibpath$dir:";;
! 1402: esac
! 1403: compile_command="$compile_command -l$name"
! 1404: deplibs="$deplibs -l$name"
! 1405: else
! 1406: lib_linked=no
! 1407: fi
! 1408: ;;
! 1409:
! 1410: relink)
! 1411: if test "$hardcode_direct" = yes; then
! 1412: compile_command="$compile_command $absdir/$linklib"
! 1413: deplibs="$deplibs $absdir/$linklib"
! 1414: elif test "$hardcode_minus_L" = yes; then
! 1415: case "$compile_command " in
! 1416: *" -L$absdir "*) ;;
! 1417: *) compile_command="$compile_command -L$absdir";;
! 1418: esac
! 1419: compile_command="$compile_command -l$name"
! 1420: deplibs="$deplibs -L$absdir -l$name"
! 1421: elif test "$hardcode_shlibpath_var" = yes; then
! 1422: case ":$compile_shlibpath:" in
! 1423: *":$absdir:"*) ;;
! 1424: *) compile_shlibpath="$compile_shlibpath$absdir:";;
! 1425: esac
! 1426: compile_command="$compile_command -l$name"
! 1427: deplibs="$deplibs -l$name"
! 1428: else
! 1429: lib_linked=no
! 1430: fi
! 1431: ;;
! 1432:
! 1433: *)
! 1434: lib_linked=no
! 1435: ;;
! 1436: esac
! 1437:
! 1438: if test "$lib_linked" != yes; then
! 1439: $echo "$modename: configuration error: unsupported hardcode properties"
! 1440: exit 1
! 1441: fi
! 1442:
! 1443: # Finalize command for both is simple: just hardcode it.
! 1444: if test "$hardcode_direct" = yes; then
! 1445: finalize_command="$finalize_command $libdir/$linklib"
! 1446: elif test "$hardcode_minus_L" = yes; then
! 1447: case "$finalize_command " in
! 1448: *" -L$libdir "*) ;;
! 1449: *) finalize_command="$finalize_command -L$libdir";;
! 1450: esac
! 1451: finalize_command="$finalize_command -l$name"
! 1452: elif test "$hardcode_shlibpath_var" = yes; then
! 1453: case ":$finalize_shlibpath:" in
! 1454: *":$libdir:"*) ;;
! 1455: *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
! 1456: esac
! 1457: finalize_command="$finalize_command -l$name"
! 1458: else
! 1459: # We cannot seem to hardcode it, guess we'll fake it.
! 1460: case "$finalize_command " in
! 1461: *" -L$dir "*) ;;
! 1462: *) finalize_command="$finalize_command -L$libdir";;
! 1463: esac
! 1464: finalize_command="$finalize_command -l$name"
! 1465: fi
! 1466: else
! 1467: # Transform directly to old archives if we don't build new libraries.
! 1468: if test -n "$pic_flag" && test -z "$old_library"; then
! 1469: $echo "$modename: cannot find static library for \`$arg'" 1>&2
! 1470: exit 1
! 1471: fi
! 1472:
! 1473: # Here we assume that one of hardcode_direct or hardcode_minus_L
! 1474: # is not unsupported. This is valid on all known static and
! 1475: # shared platforms.
! 1476: if test "$hardcode_direct" != unsupported; then
! 1477: test -n "$old_library" && linklib="$old_library"
! 1478: compile_command="$compile_command $dir/$linklib"
! 1479: finalize_command="$finalize_command $dir/$linklib"
! 1480: else
! 1481: case "$compile_command " in
! 1482: *" -L$dir "*) ;;
! 1483: *) compile_command="$compile_command -L$dir";;
! 1484: esac
! 1485: compile_command="$compile_command -l$name"
! 1486: case "$finalize_command " in
! 1487: *" -L$dir "*) ;;
! 1488: *) finalize_command="$finalize_command -L$dir";;
! 1489: esac
! 1490: finalize_command="$finalize_command -l$name"
! 1491: fi
! 1492: fi
! 1493:
! 1494: # Add in any libraries that this one depends upon.
! 1495: compile_command="$compile_command$dependency_libs"
! 1496: finalize_command="$finalize_command$dependency_libs"
! 1497: continue
! 1498: ;;
! 1499:
! 1500: # Some other compiler argument.
! 1501: *)
! 1502: # Unknown arguments in both finalize_command and compile_command need
! 1503: # to be aesthetically quoted because they are evaled later.
! 1504: arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
! 1505: case "$arg" in
! 1506: *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
! 1507: arg="\"$arg\""
! 1508: ;;
! 1509: esac
! 1510: ;;
! 1511: esac
! 1512:
! 1513: # Now actually substitute the argument into the commands.
! 1514: if test -n "$arg"; then
! 1515: compile_command="$compile_command $arg"
! 1516: finalize_command="$finalize_command $arg"
! 1517: fi
! 1518: done
! 1519:
! 1520: if test -n "$prev"; then
! 1521: $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
! 1522: $echo "$help" 1>&2
! 1523: exit 1
! 1524: fi
! 1525:
! 1526: if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
! 1527: eval arg=\"$export_dynamic_flag_spec\"
! 1528: compile_command="$compile_command $arg"
! 1529: finalize_command="$finalize_command $arg"
! 1530: fi
! 1531:
! 1532: oldlibs=
! 1533: # calculate the name of the file, without its directory
! 1534: outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
! 1535: libobjs_save="$libobjs"
! 1536:
! 1537: case "$output" in
! 1538: "")
! 1539: $echo "$modename: you must specify an output file" 1>&2
! 1540: $echo "$help" 1>&2
! 1541: exit 1
! 1542: ;;
! 1543:
! 1544: *.a | *.lib)
! 1545: if test -n "$link_against_libtool_libs"; then
! 1546: $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
! 1547: exit 1
! 1548: fi
! 1549:
! 1550: if test -n "$deplibs"; then
! 1551: $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
! 1552: fi
! 1553:
! 1554: if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
! 1555: $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
! 1556: fi
! 1557:
! 1558: if test -n "$rpath"; then
! 1559: $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
! 1560: fi
! 1561:
! 1562: if test -n "$xrpath"; then
! 1563: $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
! 1564: fi
! 1565:
! 1566: if test -n "$vinfo"; then
! 1567: $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
! 1568: fi
! 1569:
! 1570: if test -n "$release"; then
! 1571: $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
! 1572: fi
! 1573:
! 1574: if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
! 1575: $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
! 1576: fi
! 1577:
! 1578: # Now set the variables for building old libraries.
! 1579: build_libtool_libs=no
! 1580: oldlibs="$output"
! 1581: ;;
! 1582:
! 1583: *.la)
! 1584: # Make sure we only generate libraries of the form `libNAME.la'.
! 1585: case "$outputname" in
! 1586: lib*)
! 1587: name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
! 1588: eval libname=\"$libname_spec\"
! 1589: ;;
! 1590: *)
! 1591: if test "$module" = no; then
! 1592: $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
! 1593: $echo "$help" 1>&2
! 1594: exit 1
! 1595: fi
! 1596: if test "$need_lib_prefix" != no; then
! 1597: # Add the "lib" prefix for modules if required
! 1598: name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
! 1599: eval libname=\"$libname_spec\"
! 1600: else
! 1601: libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
! 1602: fi
! 1603: ;;
! 1604: esac
! 1605:
! 1606: output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
! 1607: if test "X$output_objdir" = "X$output"; then
! 1608: output_objdir="$objdir"
! 1609: else
! 1610: output_objdir="$output_objdir/$objdir"
! 1611: fi
! 1612:
! 1613: if test -n "$objs"; then
! 1614: $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
! 1615: exit 1
! 1616: fi
! 1617:
! 1618: if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
! 1619: $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
! 1620: fi
! 1621:
! 1622: set dummy $rpath
! 1623: if test $# -gt 2; then
! 1624: $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
! 1625: fi
! 1626: install_libdir="$2"
! 1627:
! 1628: oldlibs=
! 1629: if test -z "$rpath"; then
! 1630: if test "$build_libtool_libs" = yes; then
! 1631: # Building a libtool convenience library.
! 1632: libext=al
! 1633: oldlibs="$output_objdir/$libname.$libext $oldlibs"
! 1634: build_libtool_libs=convenience
! 1635: build_old_libs=yes
! 1636: fi
! 1637: dependency_libs="$deplibs"
! 1638:
! 1639: if test -n "$vinfo"; then
! 1640: $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
! 1641: fi
! 1642:
! 1643: if test -n "$release"; then
! 1644: $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
! 1645: fi
! 1646: else
! 1647:
! 1648: # Parse the version information argument.
! 1649: IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
! 1650: set dummy $vinfo 0 0 0
! 1651: IFS="$save_ifs"
! 1652:
! 1653: if test -n "$8"; then
! 1654: $echo "$modename: too many parameters to \`-version-info'" 1>&2
! 1655: $echo "$help" 1>&2
! 1656: exit 1
! 1657: fi
! 1658:
! 1659: current="$2"
! 1660: revision="$3"
! 1661: age="$4"
! 1662:
! 1663: # Check that each of the things are valid numbers.
! 1664: case "$current" in
! 1665: 0 | [1-9] | [1-9][0-9]*) ;;
! 1666: *)
! 1667: $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
! 1668: $echo "$modename: \`$vinfo' is not valid version information" 1>&2
! 1669: exit 1
! 1670: ;;
! 1671: esac
! 1672:
! 1673: case "$revision" in
! 1674: 0 | [1-9] | [1-9][0-9]*) ;;
! 1675: *)
! 1676: $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
! 1677: $echo "$modename: \`$vinfo' is not valid version information" 1>&2
! 1678: exit 1
! 1679: ;;
! 1680: esac
! 1681:
! 1682: case "$age" in
! 1683: 0 | [1-9] | [1-9][0-9]*) ;;
! 1684: *)
! 1685: $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
! 1686: $echo "$modename: \`$vinfo' is not valid version information" 1>&2
! 1687: exit 1
! 1688: ;;
! 1689: esac
! 1690:
! 1691: if test $age -gt $current; then
! 1692: $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
! 1693: $echo "$modename: \`$vinfo' is not valid version information" 1>&2
! 1694: exit 1
! 1695: fi
! 1696:
! 1697: # Calculate the version variables.
! 1698: major=
! 1699: versuffix=
! 1700: verstring=
! 1701: case "$version_type" in
! 1702: none) ;;
! 1703:
! 1704: irix)
! 1705: major=`expr $current - $age + 1`
! 1706: versuffix="$major.$revision"
! 1707: verstring="sgi$major.$revision"
! 1708:
! 1709: # Add in all the interfaces that we are compatible with.
! 1710: loop=$revision
! 1711: while test $loop != 0; do
! 1712: iface=`expr $revision - $loop`
! 1713: loop=`expr $loop - 1`
! 1714: verstring="sgi$major.$iface:$verstring"
! 1715: done
! 1716: ;;
! 1717:
! 1718: linux)
! 1719: major=.`expr $current - $age`
! 1720: versuffix="$major.$age.$revision"
! 1721: ;;
! 1722:
! 1723: osf)
! 1724: major=`expr $current - $age`
! 1725: versuffix=".$current.$age.$revision"
! 1726: verstring="$current.$age.$revision"
! 1727:
! 1728: # Add in all the interfaces that we are compatible with.
! 1729: loop=$age
! 1730: while test $loop != 0; do
! 1731: iface=`expr $current - $loop`
! 1732: loop=`expr $loop - 1`
! 1733: verstring="$verstring:${iface}.0"
! 1734: done
! 1735:
! 1736: # Make executables depend on our current version.
! 1737: verstring="$verstring:${current}.0"
! 1738: ;;
! 1739:
! 1740: sunos)
! 1741: major=".$current"
! 1742: versuffix=".$current.$revision"
! 1743: ;;
! 1744:
! 1745: freebsd-aout)
! 1746: major=".$current"
! 1747: versuffix=".$current.$revision";
! 1748: ;;
! 1749:
! 1750: freebsd-elf)
! 1751: major=".$current"
! 1752: versuffix=".$current";
! 1753: ;;
! 1754:
! 1755: windows)
! 1756: # Like Linux, but with '-' rather than '.', since we only
! 1757: # want one extension on Windows 95.
! 1758: major=`expr $current - $age`
! 1759: versuffix="-$major-$age-$revision"
! 1760: ;;
! 1761:
! 1762: *)
! 1763: $echo "$modename: unknown library version type \`$version_type'" 1>&2
! 1764: echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
! 1765: exit 1
! 1766: ;;
! 1767: esac
! 1768:
! 1769: # Clear the version info if we defaulted, and they specified a release.
! 1770: if test -z "$vinfo" && test -n "$release"; then
! 1771: major=
! 1772: verstring="0.0"
! 1773: if test "$need_version" = no; then
! 1774: versuffix=
! 1775: else
! 1776: versuffix=".0.0"
! 1777: fi
! 1778: fi
! 1779:
! 1780: # Remove version info from name if versioning should be avoided
! 1781: if test "$avoid_version" = yes && test "$need_version" = no; then
! 1782: major=
! 1783: versuffix=
! 1784: verstring=""
! 1785: fi
! 1786:
! 1787: # Check to see if the archive will have undefined symbols.
! 1788: if test "$allow_undefined" = yes; then
! 1789: if test "$allow_undefined_flag" = unsupported; then
! 1790: $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
! 1791: build_libtool_libs=no
! 1792: build_old_libs=yes
! 1793: fi
! 1794: else
! 1795: # Don't allow undefined symbols.
! 1796: allow_undefined_flag="$no_undefined_flag"
! 1797: fi
! 1798:
! 1799: dependency_libs="$deplibs"
! 1800: case "$host" in
! 1801: *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
! 1802: # these systems don't actually have a c library (as such)!
! 1803: ;;
! 1804: *-*-rhapsody*)
! 1805: # rhapsody is a little odd...
! 1806: deplibs="$deplibs -framework System"
! 1807: ;;
! 1808: *-*-freebsd*)
! 1809: # FreeBSD doesn't need this...
! 1810: ;;
! 1811: *)
! 1812: # Add libc to deplibs on all other systems.
! 1813: deplibs="$deplibs -lc"
! 1814: ;;
! 1815: esac
! 1816: fi
! 1817:
! 1818: if test -n "$rpath$xrpath"; then
! 1819: # If the user specified any rpath flags, then add them.
! 1820: for libdir in $rpath $xrpath; do
! 1821: # This is the magic to use -rpath.
! 1822: case "$compile_rpath " in
! 1823: *" $libdir "*) ;;
! 1824: *) compile_rpath="$compile_rpath $libdir" ;;
! 1825: esac
! 1826: case "$finalize_rpath " in
! 1827: *" $libdir "*) ;;
! 1828: *) finalize_rpath="$finalize_rpath $libdir" ;;
! 1829: esac
! 1830: done
! 1831: fi
! 1832:
! 1833: # Now hardcode the library paths
! 1834: rpath=
! 1835: hardcode_libdirs=
! 1836: for libdir in $compile_rpath; do
! 1837: if test -n "$hardcode_libdir_flag_spec"; then
! 1838: if test -n "$hardcode_libdir_separator"; then
! 1839: if test -z "$hardcode_libdirs"; then
! 1840: hardcode_libdirs="$libdir"
! 1841: else
! 1842: # Just accumulate the unique libdirs.
! 1843: case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
! 1844: *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
! 1845: ;;
! 1846: *)
! 1847: hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
! 1848: ;;
! 1849: esac
! 1850: fi
! 1851: else
! 1852: eval flag=\"$hardcode_libdir_flag_spec\"
! 1853: rpath="$rpath $flag"
! 1854: fi
! 1855: elif test -n "$runpath_var"; then
! 1856: case "$perm_rpath " in
! 1857: *" $libdir "*) ;;
! 1858: *) perm_rpath="$perm_rpath $libdir" ;;
! 1859: esac
! 1860: fi
! 1861: done
! 1862: # Substitute the hardcoded libdirs into the rpath.
! 1863: if test -n "$hardcode_libdir_separator" &&
! 1864: test -n "$hardcode_libdirs"; then
! 1865: libdir="$hardcode_libdirs"
! 1866: eval rpath=\" $hardcode_libdir_flag_spec\"
! 1867: fi
! 1868: compile_rpath="$rpath"
! 1869:
! 1870: rpath=
! 1871: hardcode_libdirs=
! 1872: for libdir in $finalize_rpath; do
! 1873: if test -n "$hardcode_libdir_flag_spec"; then
! 1874: if test -n "$hardcode_libdir_separator"; then
! 1875: if test -z "$hardcode_libdirs"; then
! 1876: hardcode_libdirs="$libdir"
! 1877: else
! 1878: # Just accumulate the unique libdirs.
! 1879: case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
! 1880: *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
! 1881: ;;
! 1882: *)
! 1883: hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
! 1884: ;;
! 1885: esac
! 1886: fi
! 1887: else
! 1888: eval flag=\"$hardcode_libdir_flag_spec\"
! 1889: rpath="$rpath $flag"
! 1890: fi
! 1891: elif test -n "$runpath_var"; then
! 1892: case "$finalize_perm_rpath " in
! 1893: *" $libdir "*) ;;
! 1894: *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
! 1895: esac
! 1896: fi
! 1897: done
! 1898: # Substitute the hardcoded libdirs into the rpath.
! 1899: if test -n "$hardcode_libdir_separator" &&
! 1900: test -n "$hardcode_libdirs"; then
! 1901: libdir="$hardcode_libdirs"
! 1902: eval rpath=\" $hardcode_libdir_flag_spec\"
! 1903: fi
! 1904: finalize_rpath="$rpath"
! 1905:
! 1906: # Create the output directory, or remove our outputs if we need to.
! 1907: if test -d $output_objdir; then
! 1908: $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
! 1909: $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
! 1910: else
! 1911: $show "$mkdir $output_objdir"
! 1912: $run $mkdir $output_objdir
! 1913: status=$?
! 1914: if test $status -ne 0 && test ! -d $output_objdir; then
! 1915: exit $status
! 1916: fi
! 1917: fi
! 1918:
! 1919: # Now set the variables for building old libraries.
! 1920: if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
! 1921: if test "$release_suffix" = all; then
! 1922: oldlibs="$oldlibs $output_objdir/$libname$release.$libext"
! 1923: else
! 1924: oldlibs="$oldlibs $output_objdir/$libname.$libext"
! 1925: fi
! 1926:
! 1927: # Transform .lo files to .o files.
! 1928: oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
! 1929: fi
! 1930:
! 1931: if test "$build_libtool_libs" = yes; then
! 1932: # Transform deplibs into only deplibs that can be linked in shared.
! 1933: name_save=$name
! 1934: libname_save=$libname
! 1935: release_save=$release
! 1936: versuffix_save=$versuffix
! 1937: major_save=$major
! 1938: # I'm not sure if I'm treating the release correctly. I think
! 1939: # release should show up in the -l (ie -lgmp5) so we don't want to
! 1940: # add it in twice. Is that correct?
! 1941: release=""
! 1942: versuffix=""
! 1943: major=""
! 1944: newdeplibs=
! 1945: droppeddeps=no
! 1946: case "$deplibs_check_method" in
! 1947: pass_all)
! 1948: # Don't check for shared/static. Everything works.
! 1949: # This might be a little naive. We might want to check
! 1950: # whether the library exists or not. But this is on
! 1951: # osf3 & osf4 and I'm not really sure... Just
! 1952: # implementing what was already the behaviour.
! 1953: newdeplibs=$deplibs
! 1954: ;;
! 1955: test_compile)
! 1956: # This code stresses the "libraries are programs" paradigm to its
! 1957: # limits. Maybe even breaks it. We compile a program, linking it
! 1958: # against the deplibs as a proxy for the library. Then we can check
! 1959: # whether they linked in statically or dynamically with ldd.
! 1960: $rm conftest.c
! 1961: cat > conftest.c <<EOF
! 1962: int main() { return 0; }
! 1963: EOF
! 1964: $rm conftest
! 1965: $CC -o conftest conftest.c $deplibs
! 1966: if test $? -eq 0 ; then
! 1967: ldd_output=`ldd conftest`
! 1968: for i in $deplibs; do
! 1969: name="`expr $i : '-l\(.*\)'`"
! 1970: # If $name is empty we are operating on a -L argument.
! 1971: if test "$name" != "" ; then
! 1972: libname=`eval \\$echo \"$libname_spec\"`
! 1973: deplib_matches=`eval \\$echo \"$library_names_spec\"`
! 1974: set dummy $deplib_matches
! 1975: deplib_match=$2
! 1976: if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
! 1977: newdeplibs="$newdeplibs $i"
! 1978: else
! 1979: droppeddeps=yes
! 1980: echo
! 1981: echo "*** Warning: This library needs some functionality provided by $i."
! 1982: echo "*** I have the capability to make that library automatically link in when"
! 1983: echo "*** you link to this library. But I can only do this if you have a"
! 1984: echo "*** shared version of the library, which you do not appear to have."
! 1985: fi
! 1986: else
! 1987: newdeplibs="$newdeplibs $i"
! 1988: fi
! 1989: done
! 1990: else
! 1991: # Error occured in the first compile. Let's try to salvage the situation:
! 1992: # Compile a seperate program for each library.
! 1993: for i in $deplibs; do
! 1994: name="`expr $i : '-l\(.*\)'`"
! 1995: # If $name is empty we are operating on a -L argument.
! 1996: if test "$name" != "" ; then
! 1997: $rm conftest
! 1998: $CC -o conftest conftest.c $i
! 1999: # Did it work?
! 2000: if test $? -eq 0 ; then
! 2001: ldd_output=`ldd conftest`
! 2002: libname=`eval \\$echo \"$libname_spec\"`
! 2003: deplib_matches=`eval \\$echo \"$library_names_spec\"`
! 2004: set dummy $deplib_matches
! 2005: deplib_match=$2
! 2006: if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
! 2007: newdeplibs="$newdeplibs $i"
! 2008: else
! 2009: droppeddeps=yes
! 2010: echo
! 2011: echo "*** Warning: This library needs some functionality provided by $i."
! 2012: echo "*** I have the capability to make that library automatically link in when"
! 2013: echo "*** you link to this library. But I can only do this if you have a"
! 2014: echo "*** shared version of the library, which you do not appear to have."
! 2015: fi
! 2016: else
! 2017: droppeddeps=yes
! 2018: echo
! 2019: echo "*** Warning! Library $i is needed by this library but I was not able to"
! 2020: echo "*** make it link in! You will probably need to install it or some"
! 2021: echo "*** library that it depends on before this library will be fully"
! 2022: echo "*** functional. Installing it before continuing would be even better."
! 2023: fi
! 2024: else
! 2025: newdeplibs="$newdeplibs $i"
! 2026: fi
! 2027: done
! 2028: fi
! 2029: ;;
! 2030: file_magic*)
! 2031: set dummy $deplibs_check_method
! 2032: file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
! 2033: for a_deplib in $deplibs; do
! 2034: name="`expr $a_deplib : '-l\(.*\)'`"
! 2035: # If $name is empty we are operating on a -L argument.
! 2036: if test "$name" != "" ; then
! 2037: libname=`eval \\$echo \"$libname_spec\"`
! 2038: for i in $lib_search_path; do
! 2039: potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
! 2040: for potent_lib in $potential_libs; do
! 2041: # Follow soft links.
! 2042: if ls -lLd "$potent_lib" 2>/dev/null \
! 2043: | grep " -> " >/dev/null; then
! 2044: continue
! 2045: fi
! 2046: # The statement above tries to avoid entering an
! 2047: # endless loop below, in case of cyclic links.
! 2048: # We might still enter an endless loop, since a link
! 2049: # loop can be closed while we follow links,
! 2050: # but so what?
! 2051: potlib="$potent_lib"
! 2052: while test -h "$potlib" 2>/dev/null; do
! 2053: potliblink=`ls -ld $potlib | sed 's/.* -> //'`
! 2054: case "$potliblink" in
! 2055: [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
! 2056: *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
! 2057: esac
! 2058: done
! 2059: if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
! 2060: | sed 10q \
! 2061: | egrep "$file_magic_regex" > /dev/null; then
! 2062: newdeplibs="$newdeplibs $a_deplib"
! 2063: a_deplib=""
! 2064: break 2
! 2065: fi
! 2066: done
! 2067: done
! 2068: if test -n "$a_deplib" ; then
! 2069: droppeddeps=yes
! 2070: echo
! 2071: echo "*** Warning: This library needs some functionality provided by $a_deplib."
! 2072: echo "*** I have the capability to make that library automatically link in when"
! 2073: echo "*** you link to this library. But I can only do this if you have a"
! 2074: echo "*** shared version of the library, which you do not appear to have."
! 2075: fi
! 2076: else
! 2077: # Add a -L argument.
! 2078: newdeplibs="$newdeplibs $a_deplib"
! 2079: fi
! 2080: done # Gone through all deplibs.
! 2081: ;;
! 2082: none | unknown | *)
! 2083: newdeplibs=""
! 2084: if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
! 2085: -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
! 2086: grep . >/dev/null; then
! 2087: echo
! 2088: if test "X$deplibs_check_method" = "Xnone"; then
! 2089: echo "*** Warning: inter-library dependencies are not supported in this platform."
! 2090: else
! 2091: echo "*** Warning: inter-library dependencies are not known to be supported."
! 2092: fi
! 2093: echo "*** All declared inter-library dependencies are being dropped."
! 2094: droppeddeps=yes
! 2095: fi
! 2096: ;;
! 2097: esac
! 2098: versuffix=$versuffix_save
! 2099: major=$major_save
! 2100: release=$release_save
! 2101: libname=$libname_save
! 2102: name=$name_save
! 2103:
! 2104: if test "$droppeddeps" = yes; then
! 2105: if test "$module" = yes; then
! 2106: echo
! 2107: echo "*** Warning: libtool could not satisfy all declared inter-library"
! 2108: echo "*** dependencies of module $libname. Therefore, libtool will create"
! 2109: echo "*** a static module, that should work as long as the dlopening"
! 2110: echo "*** application is linked with the -dlopen flag."
! 2111: if test -z "$global_symbol_pipe"; then
! 2112: echo
! 2113: echo "*** However, this would only work if libtool was able to extract symbol"
! 2114: echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
! 2115: echo "*** not find such a program. So, this module is probably useless."
! 2116: echo "*** \`nm' from GNU binutils and a full rebuild may help."
! 2117: fi
! 2118: if test "$build_old_libs" = no; then
! 2119: if test "$release_suffix" = all; then
! 2120: oldlibs="$output_objdir/$libname$release.$libext"
! 2121: else
! 2122: oldlibs="$output_objdir/$libname.$libext"
! 2123: fi
! 2124: build_libtool_libs=module
! 2125: build_old_libs=yes
! 2126: else
! 2127: build_libtool_libs=no
! 2128: fi
! 2129: else
! 2130: echo "*** The inter-library dependencies that have been dropped here will be"
! 2131: echo "*** automatically added whenever a program is linked with this library"
! 2132: echo "*** or is declared to -dlopen it."
! 2133: fi
! 2134: fi
! 2135: # Done checking deplibs!
! 2136: deplibs=$newdeplibs
! 2137: fi
! 2138:
! 2139: # All the library-specific variables (install_libdir is set above).
! 2140: library_names=
! 2141: old_library=
! 2142: dlname=
! 2143:
! 2144: # Test again, we may have decided not to build it any more
! 2145: if test "$build_libtool_libs" = yes; then
! 2146: # Get the real and link names of the library.
! 2147: eval library_names=\"$library_names_spec\"
! 2148: set dummy $library_names
! 2149: realname="$2"
! 2150: shift; shift
! 2151:
! 2152: if test -n "$soname_spec"; then
! 2153: eval soname=\"$soname_spec\"
! 2154: else
! 2155: soname="$realname"
! 2156: fi
! 2157:
! 2158: lib="$output_objdir/$realname"
! 2159: for link
! 2160: do
! 2161: linknames="$linknames $link"
! 2162: done
! 2163:
! 2164: # Ensure that we have .o objects for linkers which dislike .lo
! 2165: # (e.g. aix) in case we are running --disable-static
! 2166: for obj in $libobjs; do
! 2167: xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
! 2168: if test "X$xdir" = "X$obj"; then
! 2169: xdir="."
! 2170: else
! 2171: xdir="$xdir"
! 2172: fi
! 2173: baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
! 2174: oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
! 2175: if test ! -f $xdir/$oldobj; then
! 2176: $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
! 2177: $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
! 2178: fi
! 2179: done
! 2180:
! 2181: # Use standard objects if they are pic
! 2182: test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
! 2183:
! 2184: # Prepare the list of exported symbols
! 2185: if test -z "$export_symbols"; then
! 2186: if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
! 2187: $show "generating symbol list for \`$libname.la'"
! 2188: export_symbols="$output_objdir/$libname.exp"
! 2189: $run $rm $export_symbols
! 2190: eval cmds=\"$export_symbols_cmds\"
! 2191: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 2192: for cmd in $cmds; do
! 2193: IFS="$save_ifs"
! 2194: $show "$cmd"
! 2195: $run eval "$cmd" || exit $?
! 2196: done
! 2197: IFS="$save_ifs"
! 2198: if test -n "$export_symbols_regex"; then
! 2199: $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
! 2200: $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
! 2201: $show "$mv \"${export_symbols}T\" \"$export_symbols\""
! 2202: $run eval '$mv "${export_symbols}T" "$export_symbols"'
! 2203: fi
! 2204: fi
! 2205: fi
! 2206:
! 2207: if test -n "$export_symbols" && test -n "$include_expsyms"; then
! 2208: $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
! 2209: fi
! 2210:
! 2211: if test -n "$convenience"; then
! 2212: if test -n "$whole_archive_flag_spec"; then
! 2213: eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
! 2214: else
! 2215: gentop="$output_objdir/${outputname}x"
! 2216: $show "${rm}r $gentop"
! 2217: $run ${rm}r "$gentop"
! 2218: $show "mkdir $gentop"
! 2219: $run mkdir "$gentop"
! 2220: status=$?
! 2221: if test $status -ne 0 && test ! -d "$gentop"; then
! 2222: exit $status
! 2223: fi
! 2224: generated="$generated $gentop"
! 2225:
! 2226: for xlib in $convenience; do
! 2227: # Extract the objects.
! 2228: case "$xlib" in
! 2229: [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
! 2230: *) xabs=`pwd`"/$xlib" ;;
! 2231: esac
! 2232: xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
! 2233: xdir="$gentop/$xlib"
! 2234:
! 2235: $show "${rm}r $xdir"
! 2236: $run ${rm}r "$xdir"
! 2237: $show "mkdir $xdir"
! 2238: $run mkdir "$xdir"
! 2239: status=$?
! 2240: if test $status -ne 0 && test ! -d "$xdir"; then
! 2241: exit $status
! 2242: fi
! 2243: $show "(cd $xdir && $AR x $xabs)"
! 2244: $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
! 2245:
! 2246: libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
! 2247: done
! 2248: fi
! 2249: fi
! 2250:
! 2251: if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
! 2252: eval flag=\"$thread_safe_flag_spec\"
! 2253: linkopts="$linkopts $flag"
! 2254: fi
! 2255:
! 2256: # Do each of the archive commands.
! 2257: if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
! 2258: eval cmds=\"$archive_expsym_cmds\"
! 2259: else
! 2260: eval cmds=\"$archive_cmds\"
! 2261: fi
! 2262: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 2263: for cmd in $cmds; do
! 2264: IFS="$save_ifs"
! 2265: $show "$cmd"
! 2266: $run eval "$cmd" || exit $?
! 2267: done
! 2268: IFS="$save_ifs"
! 2269:
! 2270: # Create links to the real library.
! 2271: for linkname in $linknames; do
! 2272: if test "$realname" != "$linkname"; then
! 2273: $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
! 2274: $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
! 2275: fi
! 2276: done
! 2277:
! 2278: # If -module or -export-dynamic was specified, set the dlname.
! 2279: if test "$module" = yes || test "$export_dynamic" = yes; then
! 2280: # On all known operating systems, these are identical.
! 2281: dlname="$soname"
! 2282: fi
! 2283: fi
! 2284: ;;
! 2285:
! 2286: *.lo | *.o | *.obj)
! 2287: if test -n "$link_against_libtool_libs"; then
! 2288: $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
! 2289: exit 1
! 2290: fi
! 2291:
! 2292: if test -n "$deplibs"; then
! 2293: $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
! 2294: fi
! 2295:
! 2296: if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
! 2297: $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
! 2298: fi
! 2299:
! 2300: if test -n "$rpath"; then
! 2301: $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
! 2302: fi
! 2303:
! 2304: if test -n "$xrpath"; then
! 2305: $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
! 2306: fi
! 2307:
! 2308: if test -n "$vinfo"; then
! 2309: $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
! 2310: fi
! 2311:
! 2312: if test -n "$release"; then
! 2313: $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
! 2314: fi
! 2315:
! 2316: case "$output" in
! 2317: *.lo)
! 2318: if test -n "$objs"; then
! 2319: $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
! 2320: exit 1
! 2321: fi
! 2322: libobj="$output"
! 2323: obj=`$echo "X$output" | $Xsed -e "$lo2o"`
! 2324: ;;
! 2325: *)
! 2326: libobj=
! 2327: obj="$output"
! 2328: ;;
! 2329: esac
! 2330:
! 2331: # Delete the old objects.
! 2332: $run $rm $obj $libobj
! 2333:
! 2334: # Objects from convenience libraries. This assumes
! 2335: # single-version convenience libraries. Whenever we create
! 2336: # different ones for PIC/non-PIC, this we'll have to duplicate
! 2337: # the extraction.
! 2338: reload_conv_objs=
! 2339: gentop=
! 2340: # reload_cmds runs $LD directly, so let us get rid of
! 2341: # -Wl from whole_archive_flag_spec
! 2342: wl=
! 2343:
! 2344: if test -n "$convenience"; then
! 2345: if test -n "$whole_archive_flag_spec"; then
! 2346: eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
! 2347: else
! 2348: gentop="$output_objdir/${obj}x"
! 2349: $show "${rm}r $gentop"
! 2350: $run ${rm}r "$gentop"
! 2351: $show "mkdir $gentop"
! 2352: $run mkdir "$gentop"
! 2353: status=$?
! 2354: if test $status -ne 0 && test ! -d "$gentop"; then
! 2355: exit $status
! 2356: fi
! 2357: generated="$generated $gentop"
! 2358:
! 2359: for xlib in $convenience; do
! 2360: # Extract the objects.
! 2361: case "$xlib" in
! 2362: [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
! 2363: *) xabs=`pwd`"/$xlib" ;;
! 2364: esac
! 2365: xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
! 2366: xdir="$gentop/$xlib"
! 2367:
! 2368: $show "${rm}r $xdir"
! 2369: $run ${rm}r "$xdir"
! 2370: $show "mkdir $xdir"
! 2371: $run mkdir "$xdir"
! 2372: status=$?
! 2373: if test $status -ne 0 && test ! -d "$xdir"; then
! 2374: exit $status
! 2375: fi
! 2376: $show "(cd $xdir && $AR x $xabs)"
! 2377: $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
! 2378:
! 2379: reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
! 2380: done
! 2381: fi
! 2382: fi
! 2383:
! 2384: # Create the old-style object.
! 2385: reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
! 2386:
! 2387: output="$obj"
! 2388: eval cmds=\"$reload_cmds\"
! 2389: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 2390: for cmd in $cmds; do
! 2391: IFS="$save_ifs"
! 2392: $show "$cmd"
! 2393: $run eval "$cmd" || exit $?
! 2394: done
! 2395: IFS="$save_ifs"
! 2396:
! 2397: # Exit if we aren't doing a library object file.
! 2398: if test -z "$libobj"; then
! 2399: if test -n "$gentop"; then
! 2400: $show "${rm}r $gentop"
! 2401: $run ${rm}r $gentop
! 2402: fi
! 2403:
! 2404: exit 0
! 2405: fi
! 2406:
! 2407: if test "$build_libtool_libs" != yes; then
! 2408: if test -n "$gentop"; then
! 2409: $show "${rm}r $gentop"
! 2410: $run ${rm}r $gentop
! 2411: fi
! 2412:
! 2413: # Create an invalid libtool object if no PIC, so that we don't
! 2414: # accidentally link it into a program.
! 2415: $show "echo timestamp > $libobj"
! 2416: $run eval "echo timestamp > $libobj" || exit $?
! 2417: exit 0
! 2418: fi
! 2419:
! 2420: if test -n "$pic_flag"; then
! 2421: # Only do commands if we really have different PIC objects.
! 2422: reload_objs="$libobjs $reload_conv_objs"
! 2423: output="$libobj"
! 2424: eval cmds=\"$reload_cmds\"
! 2425: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 2426: for cmd in $cmds; do
! 2427: IFS="$save_ifs"
! 2428: $show "$cmd"
! 2429: $run eval "$cmd" || exit $?
! 2430: done
! 2431: IFS="$save_ifs"
! 2432: else
! 2433: # Just create a symlink.
! 2434: $show $rm $libobj
! 2435: $run $rm $libobj
! 2436: xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
! 2437: if test "X$xdir" = "X$libobj"; then
! 2438: xdir="."
! 2439: else
! 2440: xdir="$xdir"
! 2441: fi
! 2442: baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
! 2443: oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
! 2444: $show "(cd $xdir && $LN_S $oldobj $baseobj)"
! 2445: $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
! 2446: fi
! 2447:
! 2448: if test -n "$gentop"; then
! 2449: $show "${rm}r $gentop"
! 2450: $run ${rm}r $gentop
! 2451: fi
! 2452:
! 2453: exit 0
! 2454: ;;
! 2455:
! 2456: # Anything else should be a program.
! 2457: *)
! 2458: if test -n "$vinfo"; then
! 2459: $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
! 2460: fi
! 2461:
! 2462: if test -n "$release"; then
! 2463: $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
! 2464: fi
! 2465:
! 2466: if test "$preload" = yes; then
! 2467: if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
! 2468: test "$dlopen_self_static" = unknown; then
! 2469: $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
! 2470: fi
! 2471: fi
! 2472:
! 2473: if test -n "$rpath$xrpath"; then
! 2474: # If the user specified any rpath flags, then add them.
! 2475: for libdir in $rpath $xrpath; do
! 2476: # This is the magic to use -rpath.
! 2477: case "$compile_rpath " in
! 2478: *" $libdir "*) ;;
! 2479: *) compile_rpath="$compile_rpath $libdir" ;;
! 2480: esac
! 2481: case "$finalize_rpath " in
! 2482: *" $libdir "*) ;;
! 2483: *) finalize_rpath="$finalize_rpath $libdir" ;;
! 2484: esac
! 2485: done
! 2486: fi
! 2487:
! 2488: # Now hardcode the library paths
! 2489: rpath=
! 2490: hardcode_libdirs=
! 2491: for libdir in $compile_rpath $finalize_rpath; do
! 2492: if test -n "$hardcode_libdir_flag_spec"; then
! 2493: if test -n "$hardcode_libdir_separator"; then
! 2494: if test -z "$hardcode_libdirs"; then
! 2495: hardcode_libdirs="$libdir"
! 2496: else
! 2497: # Just accumulate the unique libdirs.
! 2498: case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
! 2499: *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
! 2500: ;;
! 2501: *)
! 2502: hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
! 2503: ;;
! 2504: esac
! 2505: fi
! 2506: else
! 2507: eval flag=\"$hardcode_libdir_flag_spec\"
! 2508: rpath="$rpath $flag"
! 2509: fi
! 2510: elif test -n "$runpath_var"; then
! 2511: case "$perm_rpath " in
! 2512: *" $libdir "*) ;;
! 2513: *) perm_rpath="$perm_rpath $libdir" ;;
! 2514: esac
! 2515: fi
! 2516: done
! 2517: # Substitute the hardcoded libdirs into the rpath.
! 2518: if test -n "$hardcode_libdir_separator" &&
! 2519: test -n "$hardcode_libdirs"; then
! 2520: libdir="$hardcode_libdirs"
! 2521: eval rpath=\" $hardcode_libdir_flag_spec\"
! 2522: fi
! 2523: compile_rpath="$rpath"
! 2524:
! 2525: rpath=
! 2526: hardcode_libdirs=
! 2527: for libdir in $finalize_rpath; do
! 2528: if test -n "$hardcode_libdir_flag_spec"; then
! 2529: if test -n "$hardcode_libdir_separator"; then
! 2530: if test -z "$hardcode_libdirs"; then
! 2531: hardcode_libdirs="$libdir"
! 2532: else
! 2533: # Just accumulate the unique libdirs.
! 2534: case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
! 2535: *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
! 2536: ;;
! 2537: *)
! 2538: hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
! 2539: ;;
! 2540: esac
! 2541: fi
! 2542: else
! 2543: eval flag=\"$hardcode_libdir_flag_spec\"
! 2544: rpath="$rpath $flag"
! 2545: fi
! 2546: elif test -n "$runpath_var"; then
! 2547: case "$finalize_perm_rpath " in
! 2548: *" $libdir "*) ;;
! 2549: *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
! 2550: esac
! 2551: fi
! 2552: done
! 2553: # Substitute the hardcoded libdirs into the rpath.
! 2554: if test -n "$hardcode_libdir_separator" &&
! 2555: test -n "$hardcode_libdirs"; then
! 2556: libdir="$hardcode_libdirs"
! 2557: eval rpath=\" $hardcode_libdir_flag_spec\"
! 2558: fi
! 2559: finalize_rpath="$rpath"
! 2560:
! 2561: output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
! 2562: if test "X$output_objdir" = "X$output"; then
! 2563: output_objdir="$objdir"
! 2564: else
! 2565: output_objdir="$output_objdir/$objdir"
! 2566: fi
! 2567:
! 2568: # Create the binary in the object directory, then wrap it.
! 2569: if test ! -d $output_objdir; then
! 2570: $show "$mkdir $output_objdir"
! 2571: $run $mkdir $output_objdir
! 2572: status=$?
! 2573: if test $status -ne 0 && test ! -d $output_objdir; then
! 2574: exit $status
! 2575: fi
! 2576: fi
! 2577:
! 2578: if test -n "$libobjs" && test "$build_old_libs" = yes; then
! 2579: # Transform all the library objects into standard objects.
! 2580: compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
! 2581: finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
! 2582: fi
! 2583:
! 2584: dlsyms=
! 2585: if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
! 2586: if test -n "$NM" && test -n "$global_symbol_pipe"; then
! 2587: dlsyms="${outputname}S.c"
! 2588: else
! 2589: $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
! 2590: fi
! 2591: fi
! 2592:
! 2593: if test -n "$dlsyms"; then
! 2594: case "$dlsyms" in
! 2595: "") ;;
! 2596: *.c)
! 2597: # Discover the nlist of each of the dlfiles.
! 2598: nlist="$output_objdir/${outputname}.nm"
! 2599:
! 2600: $show "$rm $nlist ${nlist}S ${nlist}T"
! 2601: $run $rm "$nlist" "${nlist}S" "${nlist}T"
! 2602:
! 2603: # Parse the name list into a source file.
! 2604: $show "creating $output_objdir/$dlsyms"
! 2605:
! 2606: test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
! 2607: /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
! 2608: /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
! 2609:
! 2610: #ifdef __cplusplus
! 2611: extern \"C\" {
! 2612: #endif
! 2613:
! 2614: /* Prevent the only kind of declaration conflicts we can make. */
! 2615: #define lt_preloaded_symbols some_other_symbol
! 2616:
! 2617: /* External symbol declarations for the compiler. */\
! 2618: "
! 2619:
! 2620: if test "$dlself" = yes; then
! 2621: $show "generating symbol list for \`$output'"
! 2622:
! 2623: test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
! 2624:
! 2625: # Add our own program objects to the symbol list.
! 2626: progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
! 2627: for arg in $progfiles; do
! 2628: $show "extracting global C symbols from \`$arg'"
! 2629: $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
! 2630: done
! 2631:
! 2632: if test -n "$exclude_expsyms"; then
! 2633: $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
! 2634: $run eval '$mv "$nlist"T "$nlist"'
! 2635: fi
! 2636:
! 2637: if test -n "$export_symbols_regex"; then
! 2638: $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
! 2639: $run eval '$mv "$nlist"T "$nlist"'
! 2640: fi
! 2641:
! 2642: # Prepare the list of exported symbols
! 2643: if test -z "$export_symbols"; then
! 2644: export_symbols="$output_objdir/$output.exp"
! 2645: $run $rm $export_symbols
! 2646: $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
! 2647: else
! 2648: $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
! 2649: $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
! 2650: $run eval 'mv "$nlist"T "$nlist"'
! 2651: fi
! 2652: fi
! 2653:
! 2654: for arg in $dlprefiles; do
! 2655: $show "extracting global C symbols from \`$arg'"
! 2656: name=`echo "$arg" | sed -e 's%^.*/%%'`
! 2657: $run eval 'echo ": $name " >> "$nlist"'
! 2658: $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
! 2659: done
! 2660:
! 2661: if test -z "$run"; then
! 2662: # Make sure we have at least an empty file.
! 2663: test -f "$nlist" || : > "$nlist"
! 2664:
! 2665: if test -n "$exclude_expsyms"; then
! 2666: egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
! 2667: $mv "$nlist"T "$nlist"
! 2668: fi
! 2669:
! 2670: # Try sorting and uniquifying the output.
! 2671: if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
! 2672: :
! 2673: else
! 2674: grep -v "^: " < "$nlist" > "$nlist"S
! 2675: fi
! 2676:
! 2677: if test -f "$nlist"S; then
! 2678: eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
! 2679: else
! 2680: echo '/* NONE */' >> "$output_objdir/$dlsyms"
! 2681: fi
! 2682:
! 2683: $echo >> "$output_objdir/$dlsyms" "\
! 2684:
! 2685: #undef lt_preloaded_symbols
! 2686:
! 2687: #if defined (__STDC__) && __STDC__
! 2688: # define lt_ptr_t void *
! 2689: #else
! 2690: # define lt_ptr_t char *
! 2691: # define const
! 2692: #endif
! 2693:
! 2694: /* The mapping between symbol names and symbols. */
! 2695: const struct {
! 2696: const char *name;
! 2697: lt_ptr_t address;
! 2698: }
! 2699: lt_preloaded_symbols[] =
! 2700: {\
! 2701: "
! 2702:
! 2703: sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
! 2704: -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
! 2705: < "$nlist" >> "$output_objdir/$dlsyms"
! 2706:
! 2707: $echo >> "$output_objdir/$dlsyms" "\
! 2708: {0, (lt_ptr_t) 0}
! 2709: };
! 2710:
! 2711: /* This works around a problem in FreeBSD linker */
! 2712: #ifdef FREEBSD_WORKAROUND
! 2713: static const void *lt_preloaded_setup() {
! 2714: return lt_preloaded_symbols;
! 2715: }
! 2716: #endif
! 2717:
! 2718: #ifdef __cplusplus
! 2719: }
! 2720: #endif\
! 2721: "
! 2722: fi
! 2723:
! 2724: pic_flag_for_symtable=
! 2725: case "$host" in
! 2726: # compiling the symbol table file with pic_flag works around
! 2727: # a FreeBSD bug that causes programs to crash when -lm is
! 2728: # linked before any other PIC object. But we must not use
! 2729: # pic_flag when linking with -static. The problem exists in
! 2730: # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
! 2731: *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
! 2732: case "$compile_command " in
! 2733: *" -static "*) ;;
! 2734: *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
! 2735: esac;;
! 2736: *-*-hpux*)
! 2737: case "$compile_command " in
! 2738: *" -static "*) ;;
! 2739: *) pic_flag_for_symtable=" $pic_flag -DPIC";;
! 2740: esac
! 2741: esac
! 2742:
! 2743: # Now compile the dynamic symbol file.
! 2744: $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
! 2745: $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
! 2746:
! 2747: # Clean up the generated files.
! 2748: $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
! 2749: $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
! 2750:
! 2751: # Transform the symbol file into the correct name.
! 2752: compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
! 2753: finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
! 2754: ;;
! 2755: *)
! 2756: $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
! 2757: exit 1
! 2758: ;;
! 2759: esac
! 2760: else
! 2761: # We keep going just in case the user didn't refer to
! 2762: # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
! 2763: # really was required.
! 2764:
! 2765: # Nullify the symbol file.
! 2766: compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
! 2767: finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
! 2768: fi
! 2769:
! 2770: if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
! 2771: # Replace the output file specification.
! 2772: compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
! 2773: link_command="$compile_command$compile_rpath"
! 2774:
! 2775: # We have no uninstalled library dependencies, so finalize right now.
! 2776: $show "$link_command"
! 2777: $run eval "$link_command"
! 2778: status=$?
! 2779:
! 2780: # Delete the generated files.
! 2781: if test -n "$dlsyms"; then
! 2782: $show "$rm $output_objdir/${outputname}S.${objext}"
! 2783: $run $rm "$output_objdir/${outputname}S.${objext}"
! 2784: fi
! 2785:
! 2786: exit $status
! 2787: fi
! 2788:
! 2789: if test -n "$shlibpath_var"; then
! 2790: # We should set the shlibpath_var
! 2791: rpath=
! 2792: for dir in $temp_rpath; do
! 2793: case "$dir" in
! 2794: [\\/]* | [A-Za-z]:[\\/]*)
! 2795: # Absolute path.
! 2796: rpath="$rpath$dir:"
! 2797: ;;
! 2798: *)
! 2799: # Relative path: add a thisdir entry.
! 2800: rpath="$rpath\$thisdir/$dir:"
! 2801: ;;
! 2802: esac
! 2803: done
! 2804: temp_rpath="$rpath"
! 2805: fi
! 2806:
! 2807: if test -n "$compile_shlibpath$finalize_shlibpath"; then
! 2808: compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
! 2809: fi
! 2810: if test -n "$finalize_shlibpath"; then
! 2811: finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
! 2812: fi
! 2813:
! 2814: compile_var=
! 2815: finalize_var=
! 2816: if test -n "$runpath_var"; then
! 2817: if test -n "$perm_rpath"; then
! 2818: # We should set the runpath_var.
! 2819: rpath=
! 2820: for dir in $perm_rpath; do
! 2821: rpath="$rpath$dir:"
! 2822: done
! 2823: compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
! 2824: fi
! 2825: if test -n "$finalize_perm_rpath"; then
! 2826: # We should set the runpath_var.
! 2827: rpath=
! 2828: for dir in $finalize_perm_rpath; do
! 2829: rpath="$rpath$dir:"
! 2830: done
! 2831: finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
! 2832: fi
! 2833: fi
! 2834:
! 2835: if test "$hardcode_action" = relink; then
! 2836: # Fast installation is not supported
! 2837: link_command="$compile_var$compile_command$compile_rpath"
! 2838: relink_command="$finalize_var$finalize_command$finalize_rpath"
! 2839:
! 2840: $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
! 2841: $echo "$modename: \`$output' will be relinked during installation" 1>&2
! 2842: else
! 2843: if test "$fast_install" != no; then
! 2844: link_command="$finalize_var$compile_command$finalize_rpath"
! 2845: if test "$fast_install" = yes; then
! 2846: relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
! 2847: else
! 2848: # fast_install is set to needless
! 2849: relink_command=
! 2850: fi
! 2851: else
! 2852: link_command="$compile_var$compile_command$compile_rpath"
! 2853: relink_command="$finalize_var$finalize_command$finalize_rpath"
! 2854: fi
! 2855: fi
! 2856:
! 2857: # Replace the output file specification.
! 2858: link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
! 2859:
! 2860: # Delete the old output files.
! 2861: $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
! 2862:
! 2863: $show "$link_command"
! 2864: $run eval "$link_command" || exit $?
! 2865:
! 2866: # Now create the wrapper script.
! 2867: $show "creating $output"
! 2868:
! 2869: # Quote the relink command for shipping.
! 2870: if test -n "$relink_command"; then
! 2871: relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
! 2872: fi
! 2873:
! 2874: # Quote $echo for shipping.
! 2875: if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
! 2876: case "$0" in
! 2877: [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
! 2878: *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
! 2879: esac
! 2880: qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
! 2881: else
! 2882: qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
! 2883: fi
! 2884:
! 2885: # Only actually do things if our run command is non-null.
! 2886: if test -z "$run"; then
! 2887: # win32 will think the script is a binary if it has
! 2888: # a .exe suffix, so we strip it off here.
! 2889: case $output in
! 2890: *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
! 2891: esac
! 2892: $rm $output
! 2893: trap "$rm $output; exit 1" 1 2 15
! 2894:
! 2895: $echo > $output "\
! 2896: #! $SHELL
! 2897:
! 2898: # $output - temporary wrapper script for $objdir/$outputname
! 2899: # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
! 2900: #
! 2901: # The $output program cannot be directly executed until all the libtool
! 2902: # libraries that it depends on are installed.
! 2903: #
! 2904: # This wrapper script should never be moved out of the build directory.
! 2905: # If it is, it will not operate correctly.
! 2906:
! 2907: # Sed substitution that helps us do robust quoting. It backslashifies
! 2908: # metacharacters that are still active within double-quoted strings.
! 2909: Xsed='sed -e 1s/^X//'
! 2910: sed_quote_subst='$sed_quote_subst'
! 2911:
! 2912: # The HP-UX ksh and POSIX shell print the target directory to stdout
! 2913: # if CDPATH is set.
! 2914: if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
! 2915:
! 2916: relink_command=\"$relink_command\"
! 2917:
! 2918: # This environment variable determines our operation mode.
! 2919: if test \"\$libtool_install_magic\" = \"$magic\"; then
! 2920: # install mode needs the following variable:
! 2921: link_against_libtool_libs='$link_against_libtool_libs'
! 2922: else
! 2923: # When we are sourced in execute mode, \$file and \$echo are already set.
! 2924: if test \"\$libtool_execute_magic\" != \"$magic\"; then
! 2925: echo=\"$qecho\"
! 2926: file=\"\$0\"
! 2927: # Make sure echo works.
! 2928: if test \"X\$1\" = X--no-reexec; then
! 2929: # Discard the --no-reexec flag, and continue.
! 2930: shift
! 2931: elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
! 2932: # Yippee, \$echo works!
! 2933: :
! 2934: else
! 2935: # Restart under the correct shell, and then maybe \$echo will work.
! 2936: exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
! 2937: fi
! 2938: fi\
! 2939: "
! 2940: $echo >> $output "\
! 2941:
! 2942: # Find the directory that this script lives in.
! 2943: thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
! 2944: test \"x\$thisdir\" = \"x\$file\" && thisdir=.
! 2945:
! 2946: # Follow symbolic links until we get to the real thisdir.
! 2947: file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
! 2948: while test -n \"\$file\"; do
! 2949: destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
! 2950:
! 2951: # If there was a directory component, then change thisdir.
! 2952: if test \"x\$destdir\" != \"x\$file\"; then
! 2953: case \"\$destdir\" in
! 2954: [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
! 2955: *) thisdir=\"\$thisdir/\$destdir\" ;;
! 2956: esac
! 2957: fi
! 2958:
! 2959: file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
! 2960: file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
! 2961: done
! 2962:
! 2963: # Try to get the absolute directory name.
! 2964: absdir=\`cd \"\$thisdir\" && pwd\`
! 2965: test -n \"\$absdir\" && thisdir=\"\$absdir\"
! 2966: "
! 2967:
! 2968: if test "$fast_install" = yes; then
! 2969: echo >> $output "\
! 2970: program=lt-'$outputname'
! 2971: progdir=\"\$thisdir/$objdir\"
! 2972:
! 2973: if test ! -f \"\$progdir/\$program\" || \\
! 2974: { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
! 2975: test \"X\$file\" != \"X\$progdir/\$program\"; }; then
! 2976:
! 2977: file=\"\$\$-\$program\"
! 2978:
! 2979: if test ! -d \"\$progdir\"; then
! 2980: $mkdir \"\$progdir\"
! 2981: else
! 2982: $rm \"\$progdir/\$file\"
! 2983: fi"
! 2984:
! 2985: echo >> $output "\
! 2986:
! 2987: # relink executable if necessary
! 2988: if test -n \"\$relink_command\"; then
! 2989: if (cd \"\$thisdir\" && eval \$relink_command); then :
! 2990: else
! 2991: $rm \"\$progdir/\$file\"
! 2992: exit 1
! 2993: fi
! 2994: fi
! 2995:
! 2996: $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
! 2997: { $rm \"\$progdir/\$program\";
! 2998: $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
! 2999: $rm \"\$progdir/\$file\"
! 3000: fi"
! 3001: else
! 3002: echo >> $output "\
! 3003: program='$outputname'
! 3004: progdir=\"\$thisdir/$objdir\"
! 3005: "
! 3006: fi
! 3007:
! 3008: echo >> $output "\
! 3009:
! 3010: if test -f \"\$progdir/\$program\"; then"
! 3011:
! 3012: # Export our shlibpath_var if we have one.
! 3013: if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
! 3014: $echo >> $output "\
! 3015: # Add our own library path to $shlibpath_var
! 3016: $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
! 3017:
! 3018: # Some systems cannot cope with colon-terminated $shlibpath_var
! 3019: # The second colon is a workaround for a bug in BeOS R4 sed
! 3020: $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
! 3021:
! 3022: export $shlibpath_var
! 3023: "
! 3024: fi
! 3025:
! 3026: # fixup the dll searchpath if we need to.
! 3027: if test -n "$dllsearchpath"; then
! 3028: $echo >> $output "\
! 3029: # Add the dll search path components to the executable PATH
! 3030: PATH=$dllsearchpath:\$PATH
! 3031: "
! 3032: fi
! 3033:
! 3034: $echo >> $output "\
! 3035: if test \"\$libtool_execute_magic\" != \"$magic\"; then
! 3036: # Run the actual program with our arguments.
! 3037: "
! 3038: case $host in
! 3039: # win32 systems need to use the prog path for dll
! 3040: # lookup to work
! 3041: *-*-cygwin*)
! 3042: $echo >> $output "\
! 3043: exec \$progdir/\$program \${1+\"\$@\"}
! 3044: "
! 3045: ;;
! 3046:
! 3047: # Backslashes separate directories on plain windows
! 3048: *-*-mingw | *-*-os2*)
! 3049: $echo >> $output "\
! 3050: exec \$progdir\\\\\$program \${1+\"\$@\"}
! 3051: "
! 3052: ;;
! 3053:
! 3054: *)
! 3055: $echo >> $output "\
! 3056: # Export the path to the program.
! 3057: PATH=\"\$progdir:\$PATH\"
! 3058: export PATH
! 3059:
! 3060: exec \$program \${1+\"\$@\"}
! 3061: "
! 3062: ;;
! 3063: esac
! 3064: $echo >> $output "\
! 3065: \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
! 3066: exit 1
! 3067: fi
! 3068: else
! 3069: # The program doesn't exist.
! 3070: \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
! 3071: \$echo \"This script is just a wrapper for \$program.\" 1>&2
! 3072: echo \"See the $PACKAGE documentation for more information.\" 1>&2
! 3073: exit 1
! 3074: fi
! 3075: fi\
! 3076: "
! 3077: chmod +x $output
! 3078: fi
! 3079: exit 0
! 3080: ;;
! 3081: esac
! 3082:
! 3083: # See if we need to build an old-fashioned archive.
! 3084: for oldlib in $oldlibs; do
! 3085:
! 3086: if test "$build_libtool_libs" = convenience; then
! 3087: oldobjs="$libobjs_save"
! 3088: addlibs="$convenience"
! 3089: build_libtool_libs=no
! 3090: else
! 3091: if test "$build_libtool_libs" = module; then
! 3092: oldobjs="$libobjs_save"
! 3093: build_libtool_libs=no
! 3094: else
! 3095: oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
! 3096: fi
! 3097: addlibs="$old_convenience"
! 3098: fi
! 3099:
! 3100: if test -n "$addlibs"; then
! 3101: gentop="$output_objdir/${outputname}x"
! 3102: $show "${rm}r $gentop"
! 3103: $run ${rm}r "$gentop"
! 3104: $show "mkdir $gentop"
! 3105: $run mkdir "$gentop"
! 3106: status=$?
! 3107: if test $status -ne 0 && test ! -d "$gentop"; then
! 3108: exit $status
! 3109: fi
! 3110: generated="$generated $gentop"
! 3111:
! 3112: # Add in members from convenience archives.
! 3113: for xlib in $addlibs; do
! 3114: # Extract the objects.
! 3115: case "$xlib" in
! 3116: [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
! 3117: *) xabs=`pwd`"/$xlib" ;;
! 3118: esac
! 3119: xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
! 3120: xdir="$gentop/$xlib"
! 3121:
! 3122: $show "${rm}r $xdir"
! 3123: $run ${rm}r "$xdir"
! 3124: $show "mkdir $xdir"
! 3125: $run mkdir "$xdir"
! 3126: status=$?
! 3127: if test $status -ne 0 && test ! -d "$xdir"; then
! 3128: exit $status
! 3129: fi
! 3130: $show "(cd $xdir && $AR x $xabs)"
! 3131: $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
! 3132:
! 3133: oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
! 3134: done
! 3135: fi
! 3136:
! 3137: # Do each command in the archive commands.
! 3138: if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
! 3139: eval cmds=\"$old_archive_from_new_cmds\"
! 3140: else
! 3141: # Ensure that we have .o objects in place in case we decided
! 3142: # not to build a shared library, and have fallen back to building
! 3143: # static libs even though --disable-static was passed!
! 3144: for oldobj in $oldobjs; do
! 3145: if test ! -f $oldobj; then
! 3146: xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
! 3147: if test "X$xdir" = "X$oldobj"; then
! 3148: xdir="."
! 3149: else
! 3150: xdir="$xdir"
! 3151: fi
! 3152: baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
! 3153: obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
! 3154: $show "(cd $xdir && ${LN_S} $obj $baseobj)"
! 3155: $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
! 3156: fi
! 3157: done
! 3158:
! 3159: eval cmds=\"$old_archive_cmds\"
! 3160: fi
! 3161: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 3162: for cmd in $cmds; do
! 3163: IFS="$save_ifs"
! 3164: $show "$cmd"
! 3165: $run eval "$cmd" || exit $?
! 3166: done
! 3167: IFS="$save_ifs"
! 3168: done
! 3169:
! 3170: if test -n "$generated"; then
! 3171: $show "${rm}r$generated"
! 3172: $run ${rm}r$generated
! 3173: fi
! 3174:
! 3175: # Now create the libtool archive.
! 3176: case "$output" in
! 3177: *.la)
! 3178: old_library=
! 3179: if test "$release_suffix" = all; then
! 3180: test "$build_old_libs" = yes && old_library="$libname$release.$libext"
! 3181: else
! 3182: test "$build_old_libs" = yes && old_library="$libname.$libext"
! 3183: fi
! 3184: $show "creating $output"
! 3185:
! 3186: if test -n "$xrpath"; then
! 3187: temp_xrpath=
! 3188: for libdir in $xrpath; do
! 3189: temp_xrpath="$temp_xrpath -R$libdir"
! 3190: done
! 3191: dependency_libs="$temp_xrpath $dependency_libs"
! 3192: fi
! 3193:
! 3194: # Only create the output if not a dry run.
! 3195: if test -z "$run"; then
! 3196: for installed in no yes; do
! 3197: if test "$installed" = yes; then
! 3198: if test -z "$install_libdir"; then
! 3199: break
! 3200: fi
! 3201: output="$output_objdir/$outputname"i
! 3202: fi
! 3203: $rm $output
! 3204: $echo > $output "\
! 3205: # $outputname - a libtool library file
! 3206: # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
! 3207: #
! 3208: # Please DO NOT delete this file!
! 3209: # It is necessary for linking the library.
! 3210:
! 3211: # The name that we can dlopen(3).
! 3212: dlname='$dlname'
! 3213:
! 3214: # Names of this library.
! 3215: library_names='$library_names'
! 3216:
! 3217: # The name of the static archive.
! 3218: old_library='$old_library'
! 3219:
! 3220: # Libraries that this one depends upon.
! 3221: dependency_libs='$dependency_libs'
! 3222:
! 3223: # Version information for $libname.
! 3224: current=$current
! 3225: age=$age
! 3226: revision=$revision
! 3227:
! 3228: # Is this an already installed library?
! 3229: installed=$installed
! 3230:
! 3231: # Directory that this library needs to be installed in:
! 3232: libdir='$install_libdir'\
! 3233: "
! 3234: done
! 3235: fi
! 3236:
! 3237: # Do a symbolic link so that the libtool archive can be found in
! 3238: # LD_LIBRARY_PATH before the program is installed.
! 3239: $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
! 3240: $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
! 3241: ;;
! 3242: esac
! 3243: exit 0
! 3244: ;;
! 3245:
! 3246: # libtool install mode
! 3247: install)
! 3248: modename="$modename: install"
! 3249:
! 3250: # There may be an optional sh(1) argument at the beginning of
! 3251: # install_prog (especially on Windows NT).
! 3252: if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
! 3253: # Aesthetically quote it.
! 3254: arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
! 3255: case "$arg" in
! 3256: *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
! 3257: arg="\"$arg\""
! 3258: ;;
! 3259: esac
! 3260: install_prog="$arg "
! 3261: arg="$1"
! 3262: shift
! 3263: else
! 3264: install_prog=
! 3265: arg="$nonopt"
! 3266: fi
! 3267:
! 3268: # The real first argument should be the name of the installation program.
! 3269: # Aesthetically quote it.
! 3270: arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
! 3271: case "$arg" in
! 3272: *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
! 3273: arg="\"$arg\""
! 3274: ;;
! 3275: esac
! 3276: install_prog="$install_prog$arg"
! 3277:
! 3278: # We need to accept at least all the BSD install flags.
! 3279: dest=
! 3280: files=
! 3281: opts=
! 3282: prev=
! 3283: install_type=
! 3284: isdir=no
! 3285: stripme=
! 3286: for arg
! 3287: do
! 3288: if test -n "$dest"; then
! 3289: files="$files $dest"
! 3290: dest="$arg"
! 3291: continue
! 3292: fi
! 3293:
! 3294: case "$arg" in
! 3295: -d) isdir=yes ;;
! 3296: -f) prev="-f" ;;
! 3297: -g) prev="-g" ;;
! 3298: -m) prev="-m" ;;
! 3299: -o) prev="-o" ;;
! 3300: -s)
! 3301: stripme=" -s"
! 3302: continue
! 3303: ;;
! 3304: -*) ;;
! 3305:
! 3306: *)
! 3307: # If the previous option needed an argument, then skip it.
! 3308: if test -n "$prev"; then
! 3309: prev=
! 3310: else
! 3311: dest="$arg"
! 3312: continue
! 3313: fi
! 3314: ;;
! 3315: esac
! 3316:
! 3317: # Aesthetically quote the argument.
! 3318: arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
! 3319: case "$arg" in
! 3320: *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
! 3321: arg="\"$arg\""
! 3322: ;;
! 3323: esac
! 3324: install_prog="$install_prog $arg"
! 3325: done
! 3326:
! 3327: if test -z "$install_prog"; then
! 3328: $echo "$modename: you must specify an install program" 1>&2
! 3329: $echo "$help" 1>&2
! 3330: exit 1
! 3331: fi
! 3332:
! 3333: if test -n "$prev"; then
! 3334: $echo "$modename: the \`$prev' option requires an argument" 1>&2
! 3335: $echo "$help" 1>&2
! 3336: exit 1
! 3337: fi
! 3338:
! 3339: if test -z "$files"; then
! 3340: if test -z "$dest"; then
! 3341: $echo "$modename: no file or destination specified" 1>&2
! 3342: else
! 3343: $echo "$modename: you must specify a destination" 1>&2
! 3344: fi
! 3345: $echo "$help" 1>&2
! 3346: exit 1
! 3347: fi
! 3348:
! 3349: # Strip any trailing slash from the destination.
! 3350: dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
! 3351:
! 3352: # Check to see that the destination is a directory.
! 3353: test -d "$dest" && isdir=yes
! 3354: if test "$isdir" = yes; then
! 3355: destdir="$dest"
! 3356: destname=
! 3357: else
! 3358: destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
! 3359: test "X$destdir" = "X$dest" && destdir=.
! 3360: destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
! 3361:
! 3362: # Not a directory, so check to see that there is only one file specified.
! 3363: set dummy $files
! 3364: if test $# -gt 2; then
! 3365: $echo "$modename: \`$dest' is not a directory" 1>&2
! 3366: $echo "$help" 1>&2
! 3367: exit 1
! 3368: fi
! 3369: fi
! 3370: case "$destdir" in
! 3371: [\\/]* | [A-Za-z]:[\\/]*) ;;
! 3372: *)
! 3373: for file in $files; do
! 3374: case "$file" in
! 3375: *.lo) ;;
! 3376: *)
! 3377: $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
! 3378: $echo "$help" 1>&2
! 3379: exit 1
! 3380: ;;
! 3381: esac
! 3382: done
! 3383: ;;
! 3384: esac
! 3385:
! 3386: # This variable tells wrapper scripts just to set variables rather
! 3387: # than running their programs.
! 3388: libtool_install_magic="$magic"
! 3389:
! 3390: staticlibs=
! 3391: future_libdirs=
! 3392: current_libdirs=
! 3393: for file in $files; do
! 3394:
! 3395: # Do each installation.
! 3396: case "$file" in
! 3397: *.a | *.lib)
! 3398: # Do the static libraries later.
! 3399: staticlibs="$staticlibs $file"
! 3400: ;;
! 3401:
! 3402: *.la)
! 3403: # Check to see that this really is a libtool archive.
! 3404: if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
! 3405: else
! 3406: $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
! 3407: $echo "$help" 1>&2
! 3408: exit 1
! 3409: fi
! 3410:
! 3411: library_names=
! 3412: old_library=
! 3413: # If there is no directory component, then add one.
! 3414: case "$file" in
! 3415: */* | *\\*) . $file ;;
! 3416: *) . ./$file ;;
! 3417: esac
! 3418:
! 3419: # Add the libdir to current_libdirs if it is the destination.
! 3420: if test "X$destdir" = "X$libdir"; then
! 3421: case "$current_libdirs " in
! 3422: *" $libdir "*) ;;
! 3423: *) current_libdirs="$current_libdirs $libdir" ;;
! 3424: esac
! 3425: else
! 3426: # Note the libdir as a future libdir.
! 3427: case "$future_libdirs " in
! 3428: *" $libdir "*) ;;
! 3429: *) future_libdirs="$future_libdirs $libdir" ;;
! 3430: esac
! 3431: fi
! 3432:
! 3433: dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
! 3434: test "X$dir" = "X$file/" && dir=
! 3435: dir="$dir$objdir"
! 3436:
! 3437: # See the names of the shared library.
! 3438: set dummy $library_names
! 3439: if test -n "$2"; then
! 3440: realname="$2"
! 3441: shift
! 3442: shift
! 3443:
! 3444: # Install the shared library and build the symlinks.
! 3445: $show "$install_prog $dir/$realname $destdir/$realname"
! 3446: $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
! 3447:
! 3448: if test $# -gt 0; then
! 3449: # Delete the old symlinks, and create new ones.
! 3450: for linkname
! 3451: do
! 3452: if test "$linkname" != "$realname"; then
! 3453: $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
! 3454: $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
! 3455: fi
! 3456: done
! 3457: fi
! 3458:
! 3459: # Do each command in the postinstall commands.
! 3460: lib="$destdir/$realname"
! 3461: eval cmds=\"$postinstall_cmds\"
! 3462: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 3463: for cmd in $cmds; do
! 3464: IFS="$save_ifs"
! 3465: $show "$cmd"
! 3466: $run eval "$cmd" || exit $?
! 3467: done
! 3468: IFS="$save_ifs"
! 3469: fi
! 3470:
! 3471: # Install the pseudo-library for information purposes.
! 3472: if test "$install_ltlibs" = yes; then
! 3473: name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
! 3474: instname="$dir/$name"i
! 3475: $show "$install_prog $instname $destdir/$name"
! 3476: $run eval "$install_prog $instname $destdir/$name" || exit $?
! 3477: fi
! 3478:
! 3479: # Maybe install the static library, too.
! 3480: test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
! 3481: ;;
! 3482:
! 3483: *.lo)
! 3484: # Install (i.e. copy) a libtool object.
! 3485:
! 3486: # Figure out destination file name, if it wasn't already specified.
! 3487: if test -n "$destname"; then
! 3488: destfile="$destdir/$destname"
! 3489: else
! 3490: destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
! 3491: destfile="$destdir/$destfile"
! 3492: fi
! 3493:
! 3494: # Deduce the name of the destination old-style object file.
! 3495: case "$destfile" in
! 3496: *.lo)
! 3497: staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
! 3498: ;;
! 3499: *.o | *.obj)
! 3500: staticdest="$destfile"
! 3501: destfile=
! 3502: ;;
! 3503: *)
! 3504: $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
! 3505: $echo "$help" 1>&2
! 3506: exit 1
! 3507: ;;
! 3508: esac
! 3509:
! 3510: # Install the libtool object if requested.
! 3511: if test -n "$destfile"; then
! 3512: $show "$install_prog $file $destfile"
! 3513: $run eval "$install_prog $file $destfile" || exit $?
! 3514: fi
! 3515:
! 3516: # Install the old object if enabled.
! 3517: if test "$build_old_libs" = yes; then
! 3518: # Deduce the name of the old-style object file.
! 3519: staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
! 3520:
! 3521: $show "$install_prog $staticobj $staticdest"
! 3522: $run eval "$install_prog \$staticobj \$staticdest" || exit $?
! 3523: fi
! 3524: exit 0
! 3525: ;;
! 3526:
! 3527: *)
! 3528: # Figure out destination file name, if it wasn't already specified.
! 3529: if test -n "$destname"; then
! 3530: destfile="$destdir/$destname"
! 3531: else
! 3532: destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
! 3533: destfile="$destdir/$destfile"
! 3534: fi
! 3535:
! 3536: # Do a test to see if this is really a libtool program.
! 3537: if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
! 3538: link_against_libtool_libs=
! 3539: relink_command=
! 3540:
! 3541: # If there is no directory component, then add one.
! 3542: case "$file" in
! 3543: */* | *\\*) . $file ;;
! 3544: *) . ./$file ;;
! 3545: esac
! 3546:
! 3547: # Check the variables that should have been set.
! 3548: if test -z "$link_against_libtool_libs"; then
! 3549: $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
! 3550: exit 1
! 3551: fi
! 3552:
! 3553: finalize=yes
! 3554: for lib in $link_against_libtool_libs; do
! 3555: # Check to see that each library is installed.
! 3556: libdir=
! 3557: if test -f "$lib"; then
! 3558: # If there is no directory component, then add one.
! 3559: case "$lib" in
! 3560: */* | *\\*) . $lib ;;
! 3561: *) . ./$lib ;;
! 3562: esac
! 3563: fi
! 3564: libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
! 3565: if test -n "$libdir" && test ! -f "$libfile"; then
! 3566: finalize=no
! 3567: fi
! 3568: done
! 3569:
! 3570: outputname=
! 3571: if test "$fast_install" = no && test -n "$relink_command"; then
! 3572: if test "$finalize" = yes && test -z "$run"; then
! 3573: tmpdir="/tmp"
! 3574: test -n "$TMPDIR" && tmpdir="$TMPDIR"
! 3575: tmpdir="$tmpdir/libtool-$$"
! 3576: save_umask=`umask`
! 3577: umask 0077
! 3578: if $mkdir "$tmpdir"; then
! 3579: umask $save_umask
! 3580: else
! 3581: umask $save_umask
! 3582: $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
! 3583: continue
! 3584: fi
! 3585: outputname="$tmpdir/$file"
! 3586: # Replace the output file specification.
! 3587: relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
! 3588:
! 3589: $show "$relink_command"
! 3590: if $run eval "$relink_command"; then :
! 3591: else
! 3592: $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
! 3593: ${rm}r "$tmpdir"
! 3594: continue
! 3595: fi
! 3596: file="$outputname"
! 3597: else
! 3598: $echo "$modename: warning: cannot relink \`$file'" 1>&2
! 3599: fi
! 3600: else
! 3601: # Install the binary that we compiled earlier.
! 3602: file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
! 3603: fi
! 3604: fi
! 3605:
! 3606: $show "$install_prog$stripme $file $destfile"
! 3607: $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
! 3608: test -n "$outputname" && ${rm}r "$tmpdir"
! 3609: ;;
! 3610: esac
! 3611: done
! 3612:
! 3613: for file in $staticlibs; do
! 3614: name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
! 3615:
! 3616: # Set up the ranlib parameters.
! 3617: oldlib="$destdir/$name"
! 3618:
! 3619: $show "$install_prog $file $oldlib"
! 3620: $run eval "$install_prog \$file \$oldlib" || exit $?
! 3621:
! 3622: # Do each command in the postinstall commands.
! 3623: eval cmds=\"$old_postinstall_cmds\"
! 3624: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 3625: for cmd in $cmds; do
! 3626: IFS="$save_ifs"
! 3627: $show "$cmd"
! 3628: $run eval "$cmd" || exit $?
! 3629: done
! 3630: IFS="$save_ifs"
! 3631: done
! 3632:
! 3633: if test -n "$future_libdirs"; then
! 3634: $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
! 3635: fi
! 3636:
! 3637: if test -n "$current_libdirs"; then
! 3638: # Maybe just do a dry run.
! 3639: test -n "$run" && current_libdirs=" -n$current_libdirs"
! 3640: exec $SHELL $0 --finish$current_libdirs
! 3641: exit 1
! 3642: fi
! 3643:
! 3644: exit 0
! 3645: ;;
! 3646:
! 3647: # libtool finish mode
! 3648: finish)
! 3649: modename="$modename: finish"
! 3650: libdirs="$nonopt"
! 3651: admincmds=
! 3652:
! 3653: if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
! 3654: for dir
! 3655: do
! 3656: libdirs="$libdirs $dir"
! 3657: done
! 3658:
! 3659: for libdir in $libdirs; do
! 3660: if test -n "$finish_cmds"; then
! 3661: # Do each command in the finish commands.
! 3662: eval cmds=\"$finish_cmds\"
! 3663: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 3664: for cmd in $cmds; do
! 3665: IFS="$save_ifs"
! 3666: $show "$cmd"
! 3667: $run eval "$cmd" || admincmds="$admincmds
! 3668: $cmd"
! 3669: done
! 3670: IFS="$save_ifs"
! 3671: fi
! 3672: if test -n "$finish_eval"; then
! 3673: # Do the single finish_eval.
! 3674: eval cmds=\"$finish_eval\"
! 3675: $run eval "$cmds" || admincmds="$admincmds
! 3676: $cmds"
! 3677: fi
! 3678: done
! 3679: fi
! 3680:
! 3681: # Exit here if they wanted silent mode.
! 3682: test "$show" = : && exit 0
! 3683:
! 3684: echo "----------------------------------------------------------------------"
! 3685: echo "Libraries have been installed in:"
! 3686: for libdir in $libdirs; do
! 3687: echo " $libdir"
! 3688: done
! 3689: echo
! 3690: echo "If you ever happen to want to link against installed libraries"
! 3691: echo "in a given directory, LIBDIR, you must either use libtool, and"
! 3692: echo "specify the full pathname of the library, or use \`-LLIBDIR'"
! 3693: echo "flag during linking and do at least one of the following:"
! 3694: if test -n "$shlibpath_var"; then
! 3695: echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
! 3696: echo " during execution"
! 3697: fi
! 3698: if test -n "$runpath_var"; then
! 3699: echo " - add LIBDIR to the \`$runpath_var' environment variable"
! 3700: echo " during linking"
! 3701: fi
! 3702: if test -n "$hardcode_libdir_flag_spec"; then
! 3703: libdir=LIBDIR
! 3704: eval flag=\"$hardcode_libdir_flag_spec\"
! 3705:
! 3706: echo " - use the \`$flag' linker flag"
! 3707: fi
! 3708: if test -n "$admincmds"; then
! 3709: echo " - have your system administrator run these commands:$admincmds"
! 3710: fi
! 3711: if test -f /etc/ld.so.conf; then
! 3712: echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
! 3713: fi
! 3714: echo
! 3715: echo "See any operating system documentation about shared libraries for"
! 3716: echo "more information, such as the ld(1) and ld.so(8) manual pages."
! 3717: echo "----------------------------------------------------------------------"
! 3718: exit 0
! 3719: ;;
! 3720:
! 3721: # libtool execute mode
! 3722: execute)
! 3723: modename="$modename: execute"
! 3724:
! 3725: # The first argument is the command name.
! 3726: cmd="$nonopt"
! 3727: if test -z "$cmd"; then
! 3728: $echo "$modename: you must specify a COMMAND" 1>&2
! 3729: $echo "$help"
! 3730: exit 1
! 3731: fi
! 3732:
! 3733: # Handle -dlopen flags immediately.
! 3734: for file in $execute_dlfiles; do
! 3735: if test ! -f "$file"; then
! 3736: $echo "$modename: \`$file' is not a file" 1>&2
! 3737: $echo "$help" 1>&2
! 3738: exit 1
! 3739: fi
! 3740:
! 3741: dir=
! 3742: case "$file" in
! 3743: *.la)
! 3744: # Check to see that this really is a libtool archive.
! 3745: if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
! 3746: else
! 3747: $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
! 3748: $echo "$help" 1>&2
! 3749: exit 1
! 3750: fi
! 3751:
! 3752: # Read the libtool library.
! 3753: dlname=
! 3754: library_names=
! 3755:
! 3756: # If there is no directory component, then add one.
! 3757: case "$file" in
! 3758: */* | *\\*) . $file ;;
! 3759: *) . ./$file ;;
! 3760: esac
! 3761:
! 3762: # Skip this library if it cannot be dlopened.
! 3763: if test -z "$dlname"; then
! 3764: # Warn if it was a shared library.
! 3765: test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
! 3766: continue
! 3767: fi
! 3768:
! 3769: dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
! 3770: test "X$dir" = "X$file" && dir=.
! 3771:
! 3772: if test -f "$dir/$objdir/$dlname"; then
! 3773: dir="$dir/$objdir"
! 3774: else
! 3775: $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
! 3776: exit 1
! 3777: fi
! 3778: ;;
! 3779:
! 3780: *.lo)
! 3781: # Just add the directory containing the .lo file.
! 3782: dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
! 3783: test "X$dir" = "X$file" && dir=.
! 3784: ;;
! 3785:
! 3786: *)
! 3787: $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
! 3788: continue
! 3789: ;;
! 3790: esac
! 3791:
! 3792: # Get the absolute pathname.
! 3793: absdir=`cd "$dir" && pwd`
! 3794: test -n "$absdir" && dir="$absdir"
! 3795:
! 3796: # Now add the directory to shlibpath_var.
! 3797: if eval "test -z \"\$$shlibpath_var\""; then
! 3798: eval "$shlibpath_var=\"\$dir\""
! 3799: else
! 3800: eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
! 3801: fi
! 3802: done
! 3803:
! 3804: # This variable tells wrapper scripts just to set shlibpath_var
! 3805: # rather than running their programs.
! 3806: libtool_execute_magic="$magic"
! 3807:
! 3808: # Check if any of the arguments is a wrapper script.
! 3809: args=
! 3810: for file
! 3811: do
! 3812: case "$file" in
! 3813: -*) ;;
! 3814: *)
! 3815: # Do a test to see if this is really a libtool program.
! 3816: if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
! 3817: # If there is no directory component, then add one.
! 3818: case "$file" in
! 3819: */* | *\\*) . $file ;;
! 3820: *) . ./$file ;;
! 3821: esac
! 3822:
! 3823: # Transform arg to wrapped name.
! 3824: file="$progdir/$program"
! 3825: fi
! 3826: ;;
! 3827: esac
! 3828: # Quote arguments (to preserve shell metacharacters).
! 3829: file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
! 3830: args="$args \"$file\""
! 3831: done
! 3832:
! 3833: if test -z "$run"; then
! 3834: if test -n "$shlibpath_var"; then
! 3835: # Export the shlibpath_var.
! 3836: eval "export $shlibpath_var"
! 3837: fi
! 3838:
! 3839: # Restore saved enviroment variables
! 3840: if test "${save_LC_ALL+set}" = set; then
! 3841: LC_ALL="$save_LC_ALL"; export LC_ALL
! 3842: fi
! 3843: if test "${save_LANG+set}" = set; then
! 3844: LANG="$save_LANG"; export LANG
! 3845: fi
! 3846:
! 3847: # Now actually exec the command.
! 3848: eval "exec \$cmd$args"
! 3849:
! 3850: $echo "$modename: cannot exec \$cmd$args"
! 3851: exit 1
! 3852: else
! 3853: # Display what would be done.
! 3854: if test -n "$shlibpath_var"; then
! 3855: eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
! 3856: $echo "export $shlibpath_var"
! 3857: fi
! 3858: $echo "$cmd$args"
! 3859: exit 0
! 3860: fi
! 3861: ;;
! 3862:
! 3863: # libtool uninstall mode
! 3864: uninstall)
! 3865: modename="$modename: uninstall"
! 3866: rm="$nonopt"
! 3867: files=
! 3868:
! 3869: for arg
! 3870: do
! 3871: case "$arg" in
! 3872: -*) rm="$rm $arg" ;;
! 3873: *) files="$files $arg" ;;
! 3874: esac
! 3875: done
! 3876:
! 3877: if test -z "$rm"; then
! 3878: $echo "$modename: you must specify an RM program" 1>&2
! 3879: $echo "$help" 1>&2
! 3880: exit 1
! 3881: fi
! 3882:
! 3883: for file in $files; do
! 3884: dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
! 3885: test "X$dir" = "X$file" && dir=.
! 3886: name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
! 3887:
! 3888: rmfiles="$file"
! 3889:
! 3890: case "$name" in
! 3891: *.la)
! 3892: # Possibly a libtool archive, so verify it.
! 3893: if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
! 3894: . $dir/$name
! 3895:
! 3896: # Delete the libtool libraries and symlinks.
! 3897: for n in $library_names; do
! 3898: rmfiles="$rmfiles $dir/$n"
! 3899: done
! 3900: test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
! 3901:
! 3902: $show "$rm $rmfiles"
! 3903: $run $rm $rmfiles
! 3904:
! 3905: if test -n "$library_names"; then
! 3906: # Do each command in the postuninstall commands.
! 3907: eval cmds=\"$postuninstall_cmds\"
! 3908: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 3909: for cmd in $cmds; do
! 3910: IFS="$save_ifs"
! 3911: $show "$cmd"
! 3912: $run eval "$cmd"
! 3913: done
! 3914: IFS="$save_ifs"
! 3915: fi
! 3916:
! 3917: if test -n "$old_library"; then
! 3918: # Do each command in the old_postuninstall commands.
! 3919: eval cmds=\"$old_postuninstall_cmds\"
! 3920: IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
! 3921: for cmd in $cmds; do
! 3922: IFS="$save_ifs"
! 3923: $show "$cmd"
! 3924: $run eval "$cmd"
! 3925: done
! 3926: IFS="$save_ifs"
! 3927: fi
! 3928:
! 3929: # FIXME: should reinstall the best remaining shared library.
! 3930: fi
! 3931: ;;
! 3932:
! 3933: *.lo)
! 3934: if test "$build_old_libs" = yes; then
! 3935: oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
! 3936: rmfiles="$rmfiles $dir/$oldobj"
! 3937: fi
! 3938: $show "$rm $rmfiles"
! 3939: $run $rm $rmfiles
! 3940: ;;
! 3941:
! 3942: *)
! 3943: $show "$rm $rmfiles"
! 3944: $run $rm $rmfiles
! 3945: ;;
! 3946: esac
! 3947: done
! 3948: exit 0
! 3949: ;;
! 3950:
! 3951: "")
! 3952: $echo "$modename: you must specify a MODE" 1>&2
! 3953: $echo "$generic_help" 1>&2
! 3954: exit 1
! 3955: ;;
! 3956: esac
! 3957:
! 3958: $echo "$modename: invalid operation mode \`$mode'" 1>&2
! 3959: $echo "$generic_help" 1>&2
! 3960: exit 1
! 3961: fi # test -z "$show_help"
! 3962:
! 3963: # We need to display help for each of the modes.
! 3964: case "$mode" in
! 3965: "") $echo \
! 3966: "Usage: $modename [OPTION]... [MODE-ARG]...
! 3967:
! 3968: Provide generalized library-building support services.
! 3969:
! 3970: --config show all configuration variables
! 3971: --debug enable verbose shell tracing
! 3972: -n, --dry-run display commands without modifying any files
! 3973: --features display basic configuration information and exit
! 3974: --finish same as \`--mode=finish'
! 3975: --help display this help message and exit
! 3976: --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
! 3977: --quiet same as \`--silent'
! 3978: --silent don't print informational messages
! 3979: --version print version information
! 3980:
! 3981: MODE must be one of the following:
! 3982:
! 3983: compile compile a source file into a libtool object
! 3984: execute automatically set library path, then run a program
! 3985: finish complete the installation of libtool libraries
! 3986: install install libraries or executables
! 3987: link create a library or an executable
! 3988: uninstall remove libraries from an installed directory
! 3989:
! 3990: MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
! 3991: a more detailed description of MODE."
! 3992: exit 0
! 3993: ;;
! 3994:
! 3995: compile)
! 3996: $echo \
! 3997: "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
! 3998:
! 3999: Compile a source file into a libtool library object.
! 4000:
! 4001: This mode accepts the following additional options:
! 4002:
! 4003: -o OUTPUT-FILE set the output file name to OUTPUT-FILE
! 4004: -static always build a \`.o' file suitable for static linking
! 4005:
! 4006: COMPILE-COMMAND is a command to be used in creating a \`standard' object file
! 4007: from the given SOURCEFILE.
! 4008:
! 4009: The output file name is determined by removing the directory component from
! 4010: SOURCEFILE, then substituting the C source code suffix \`.c' with the
! 4011: library object suffix, \`.lo'."
! 4012: ;;
! 4013:
! 4014: execute)
! 4015: $echo \
! 4016: "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
! 4017:
! 4018: Automatically set library path, then run a program.
! 4019:
! 4020: This mode accepts the following additional options:
! 4021:
! 4022: -dlopen FILE add the directory containing FILE to the library path
! 4023:
! 4024: This mode sets the library path environment variable according to \`-dlopen'
! 4025: flags.
! 4026:
! 4027: If any of the ARGS are libtool executable wrappers, then they are translated
! 4028: into their corresponding uninstalled binary, and any of their required library
! 4029: directories are added to the library path.
! 4030:
! 4031: Then, COMMAND is executed, with ARGS as arguments."
! 4032: ;;
! 4033:
! 4034: finish)
! 4035: $echo \
! 4036: "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
! 4037:
! 4038: Complete the installation of libtool libraries.
! 4039:
! 4040: Each LIBDIR is a directory that contains libtool libraries.
! 4041:
! 4042: The commands that this mode executes may require superuser privileges. Use
! 4043: the \`--dry-run' option if you just want to see what would be executed."
! 4044: ;;
! 4045:
! 4046: install)
! 4047: $echo \
! 4048: "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
! 4049:
! 4050: Install executables or libraries.
! 4051:
! 4052: INSTALL-COMMAND is the installation command. The first component should be
! 4053: either the \`install' or \`cp' program.
! 4054:
! 4055: The rest of the components are interpreted as arguments to that command (only
! 4056: BSD-compatible install options are recognized)."
! 4057: ;;
! 4058:
! 4059: link)
! 4060: $echo \
! 4061: "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
! 4062:
! 4063: Link object files or libraries together to form another library, or to
! 4064: create an executable program.
! 4065:
! 4066: LINK-COMMAND is a command using the C compiler that you would use to create
! 4067: a program from several object files.
! 4068:
! 4069: The following components of LINK-COMMAND are treated specially:
! 4070:
! 4071: -all-static do not do any dynamic linking at all
! 4072: -avoid-version do not add a version suffix if possible
! 4073: -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
! 4074: -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
! 4075: -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
! 4076: -export-symbols SYMFILE
! 4077: try to export only the symbols listed in SYMFILE
! 4078: -export-symbols-regex REGEX
! 4079: try to export only the symbols matching REGEX
! 4080: -LLIBDIR search LIBDIR for required installed libraries
! 4081: -lNAME OUTPUT-FILE requires the installed library libNAME
! 4082: -module build a library that can dlopened
! 4083: -no-undefined declare that a library does not refer to external symbols
! 4084: -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
! 4085: -release RELEASE specify package release information
! 4086: -rpath LIBDIR the created library will eventually be installed in LIBDIR
! 4087: -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
! 4088: -static do not do any dynamic linking of libtool libraries
! 4089: -version-info CURRENT[:REVISION[:AGE]]
! 4090: specify library version info [each variable defaults to 0]
! 4091:
! 4092: All other options (arguments beginning with \`-') are ignored.
! 4093:
! 4094: Every other argument is treated as a filename. Files ending in \`.la' are
! 4095: treated as uninstalled libtool libraries, other files are standard or library
! 4096: object files.
! 4097:
! 4098: If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
! 4099: only library objects (\`.lo' files) may be specified, and \`-rpath' is
! 4100: required, except when creating a convenience library.
! 4101:
! 4102: If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
! 4103: using \`ar' and \`ranlib', or on Windows using \`lib'.
! 4104:
! 4105: If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
! 4106: is created, otherwise an executable program is created."
! 4107: ;;
! 4108:
! 4109: uninstall)
! 4110: $echo \
! 4111: "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
! 4112:
! 4113: Remove libraries from an installation directory.
! 4114:
! 4115: RM is the name of the program to use to delete files associated with each FILE
! 4116: (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
! 4117: to RM.
! 4118:
! 4119: If FILE is a libtool library, all the files associated with it are deleted.
! 4120: Otherwise, only FILE itself is deleted using RM."
! 4121: ;;
! 4122:
! 4123: *)
! 4124: $echo "$modename: invalid operation mode \`$mode'" 1>&2
! 4125: $echo "$help" 1>&2
! 4126: exit 1
! 4127: ;;
! 4128: esac
! 4129:
! 4130: echo
! 4131: $echo "Try \`$modename --help' for more information about other modes."
! 4132:
! 4133: exit 0
! 4134:
! 4135: # Local Variables:
! 4136: # mode:shell-script
! 4137: # sh-indentation:2
! 4138: # End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>