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