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