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