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