| [861874] | 1 | # Generated from ltmain.m4sh.
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | # ltmain.sh (GNU libtool) 2.2.6b
 | 
|---|
 | 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, 2007 2008 Free Software Foundation, Inc.
 | 
|---|
 | 7 | # This is free software; see the source for copying conditions.  There is NO
 | 
|---|
 | 8 | # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
|---|
 | 9 | 
 | 
|---|
 | 10 | # GNU Libtool is free software; you can redistribute it and/or modify
 | 
|---|
 | 11 | # it under the terms of the GNU General Public License as published by
 | 
|---|
 | 12 | # the Free Software Foundation; either version 2 of the License, or
 | 
|---|
 | 13 | # (at your option) any later version.
 | 
|---|
 | 14 | #
 | 
|---|
 | 15 | # As a special exception to the GNU General Public License,
 | 
|---|
 | 16 | # if you distribute this file as part of a program or library that
 | 
|---|
 | 17 | # is built using GNU Libtool, you may include this file under the
 | 
|---|
 | 18 | # same distribution terms that you use for the rest of that program.
 | 
|---|
 | 19 | #
 | 
|---|
 | 20 | # GNU Libtool is distributed in the hope that it will be useful, but
 | 
|---|
 | 21 | # WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
|---|
 | 22 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
|---|
 | 23 | # General Public License for more details.
 | 
|---|
 | 24 | #
 | 
|---|
 | 25 | # You should have received a copy of the GNU General Public License
 | 
|---|
 | 26 | # along with GNU Libtool; see the file COPYING.  If not, a copy
 | 
|---|
 | 27 | # can be downloaded from http://www.gnu.org/licenses/gpl.html,
 | 
|---|
 | 28 | # or obtained by writing to the Free Software Foundation, Inc.,
 | 
|---|
 | 29 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 | 
|---|
 | 30 | 
 | 
|---|
 | 31 | # Usage: $progname [OPTION]... [MODE-ARG]...
 | 
|---|
 | 32 | #
 | 
|---|
 | 33 | # Provide generalized library-building support services.
 | 
|---|
 | 34 | #
 | 
|---|
 | 35 | #     --config             show all configuration variables
 | 
|---|
 | 36 | #     --debug              enable verbose shell tracing
 | 
|---|
 | 37 | # -n, --dry-run            display commands without modifying any files
 | 
|---|
 | 38 | #     --features           display basic configuration information and exit
 | 
|---|
 | 39 | #     --mode=MODE          use operation mode MODE
 | 
|---|
 | 40 | #     --preserve-dup-deps  don't remove duplicate dependency libraries
 | 
|---|
 | 41 | #     --quiet, --silent    don't print informational messages
 | 
|---|
 | 42 | #     --tag=TAG            use configuration variables from tag TAG
 | 
|---|
 | 43 | # -v, --verbose            print informational messages (default)
 | 
|---|
 | 44 | #     --version            print version information
 | 
|---|
 | 45 | # -h, --help               print short or long help message
 | 
|---|
 | 46 | #
 | 
|---|
 | 47 | # MODE must be one of the following:
 | 
|---|
 | 48 | #
 | 
|---|
 | 49 | #       clean              remove files from the build directory
 | 
|---|
 | 50 | #       compile            compile a source file into a libtool object
 | 
|---|
 | 51 | #       execute            automatically set library path, then run a program
 | 
|---|
 | 52 | #       finish             complete the installation of libtool libraries
 | 
|---|
 | 53 | #       install            install libraries or executables
 | 
|---|
 | 54 | #       link               create a library or an executable
 | 
|---|
 | 55 | #       uninstall          remove libraries from an installed directory
 | 
|---|
 | 56 | #
 | 
|---|
 | 57 | # MODE-ARGS vary depending on the MODE.
 | 
|---|
 | 58 | # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 | 
|---|
 | 59 | #
 | 
|---|
 | 60 | # When reporting a bug, please describe a test case to reproduce it and
 | 
|---|
 | 61 | # include the following information:
 | 
|---|
 | 62 | #
 | 
|---|
 | 63 | #       host-triplet:   $host
 | 
|---|
 | 64 | #       shell:          $SHELL
 | 
|---|
 | 65 | #       compiler:               $LTCC
 | 
|---|
 | 66 | #       compiler flags:         $LTCFLAGS
 | 
|---|
 | 67 | #       linker:         $LD (gnu? $with_gnu_ld)
 | 
|---|
 | 68 | #       $progname:              (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
 | 
|---|
 | 69 | #       automake:               $automake_version
 | 
|---|
 | 70 | #       autoconf:               $autoconf_version
 | 
|---|
 | 71 | #
 | 
|---|
 | 72 | # Report bugs to <bug-libtool@gnu.org>.
 | 
|---|
 | 73 | 
 | 
|---|
 | 74 | PROGRAM=ltmain.sh
 | 
|---|
 | 75 | PACKAGE=libtool
 | 
|---|
 | 76 | VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
 | 
|---|
 | 77 | TIMESTAMP=""
 | 
|---|
 | 78 | package_revision=1.3017
 | 
|---|
 | 79 | 
 | 
|---|
 | 80 | # Be Bourne compatible
 | 
|---|
 | 81 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 | 
|---|
 | 82 |   emulate sh
 | 
|---|
 | 83 |   NULLCMD=:
 | 
|---|
 | 84 |   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 | 
|---|
 | 85 |   # is contrary to our usage.  Disable this feature.
 | 
|---|
 | 86 |   alias -g '${1+"$@"}'='"$@"'
 | 
|---|
 | 87 |   setopt NO_GLOB_SUBST
 | 
|---|
 | 88 | else
 | 
|---|
 | 89 |   case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 | 
|---|
 | 90 | fi
 | 
|---|
 | 91 | BIN_SH=xpg4; export BIN_SH # for Tru64
 | 
|---|
 | 92 | DUALCASE=1; export DUALCASE # for MKS sh
 | 
|---|
 | 93 | 
 | 
|---|
 | 94 | # NLS nuisances: We save the old values to restore during execute mode.
 | 
|---|
 | 95 | # Only set LANG and LC_ALL to C if already set.
 | 
|---|
 | 96 | # These must not be set unconditionally because not all systems understand
 | 
|---|
 | 97 | # e.g. LANG=C (notably SCO).
 | 
|---|
 | 98 | lt_user_locale=
 | 
|---|
 | 99 | lt_safe_locale=
 | 
|---|
 | 100 | for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 | 
|---|
 | 101 | do
 | 
|---|
 | 102 |   eval "if test \"\${$lt_var+set}\" = set; then
 | 
|---|
 | 103 |           save_$lt_var=\$$lt_var
 | 
|---|
 | 104 |           $lt_var=C
 | 
|---|
 | 105 |           export $lt_var
 | 
|---|
 | 106 |           lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
 | 
|---|
 | 107 |           lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
 | 
|---|
 | 108 |         fi"
 | 
|---|
 | 109 | done
 | 
|---|
 | 110 | 
 | 
|---|
 | 111 | $lt_unset CDPATH
 | 
|---|
 | 112 | 
 | 
|---|
 | 113 | 
 | 
|---|
 | 114 | 
 | 
|---|
 | 115 | 
 | 
|---|
 | 116 | 
 | 
|---|
 | 117 | : ${CP="cp -f"}
 | 
|---|
 | 118 | : ${ECHO="echo"}
 | 
|---|
 | 119 | : ${EGREP="/bin/grep -E"}
 | 
|---|
 | 120 | : ${FGREP="/bin/grep -F"}
 | 
|---|
 | 121 | : ${GREP="/bin/grep"}
 | 
|---|
 | 122 | : ${LN_S="ln -s"}
 | 
|---|
 | 123 | : ${MAKE="make"}
 | 
|---|
 | 124 | : ${MKDIR="mkdir"}
 | 
|---|
 | 125 | : ${MV="mv -f"}
 | 
|---|
 | 126 | : ${RM="rm -f"}
 | 
|---|
 | 127 | : ${SED="/bin/sed"}
 | 
|---|
 | 128 | : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 | 
|---|
 | 129 | : ${Xsed="$SED -e 1s/^X//"}
 | 
|---|
 | 130 | 
 | 
|---|
 | 131 | # Global variables:
 | 
|---|
 | 132 | EXIT_SUCCESS=0
 | 
|---|
 | 133 | EXIT_FAILURE=1
 | 
|---|
 | 134 | EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
 | 
|---|
 | 135 | EXIT_SKIP=77      # $? = 77 is used to indicate a skipped test to automake.
 | 
|---|
 | 136 | 
 | 
|---|
 | 137 | exit_status=$EXIT_SUCCESS
 | 
|---|
 | 138 | 
 | 
|---|
 | 139 | # Make sure IFS has a sensible default
 | 
|---|
 | 140 | lt_nl='
 | 
|---|
 | 141 | '
 | 
|---|
 | 142 | IFS="   $lt_nl"
 | 
|---|
 | 143 | 
 | 
|---|
 | 144 | dirname="s,/[^/]*$,,"
 | 
|---|
 | 145 | basename="s,^.*/,,"
 | 
|---|
 | 146 | 
 | 
|---|
 | 147 | # func_dirname_and_basename file append nondir_replacement
 | 
|---|
 | 148 | # perform func_basename and func_dirname in a single function
 | 
|---|
 | 149 | # call:
 | 
|---|
 | 150 | #   dirname:  Compute the dirname of FILE.  If nonempty,
 | 
|---|
 | 151 | #             add APPEND to the result, otherwise set result
 | 
|---|
 | 152 | #             to NONDIR_REPLACEMENT.
 | 
|---|
 | 153 | #             value returned in "$func_dirname_result"
 | 
|---|
 | 154 | #   basename: Compute filename of FILE.
 | 
|---|
 | 155 | #             value retuned in "$func_basename_result"
 | 
|---|
 | 156 | # Implementation must be kept synchronized with func_dirname
 | 
|---|
 | 157 | # and func_basename. For efficiency, we do not delegate to
 | 
|---|
 | 158 | # those functions but instead duplicate the functionality here.
 | 
|---|
 | 159 | func_dirname_and_basename ()
 | 
|---|
 | 160 | {
 | 
|---|
 | 161 |   # Extract subdirectory from the argument.
 | 
|---|
 | 162 |   func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
 | 
|---|
 | 163 |   if test "X$func_dirname_result" = "X${1}"; then
 | 
|---|
 | 164 |     func_dirname_result="${3}"
 | 
|---|
 | 165 |   else
 | 
|---|
 | 166 |     func_dirname_result="$func_dirname_result${2}"
 | 
|---|
 | 167 |   fi
 | 
|---|
 | 168 |   func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
 | 
|---|
 | 169 | }
 | 
|---|
 | 170 | 
 | 
|---|
 | 171 | # Generated shell functions inserted here.
 | 
|---|
 | 172 | 
 | 
|---|
 | 173 | # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 | 
|---|
 | 174 | # is ksh but when the shell is invoked as "sh" and the current value of
 | 
|---|
 | 175 | # the _XPG environment variable is not equal to 1 (one), the special
 | 
|---|
 | 176 | # positional parameter $0, within a function call, is the name of the
 | 
|---|
 | 177 | # function.
 | 
|---|
 | 178 | progpath="$0"
 | 
|---|
 | 179 | 
 | 
|---|
 | 180 | # The name of this program:
 | 
|---|
 | 181 | # In the unlikely event $progname began with a '-', it would play havoc with
 | 
|---|
 | 182 | # func_echo (imagine progname=-n), so we prepend ./ in that case:
 | 
|---|
 | 183 | func_dirname_and_basename "$progpath"
 | 
|---|
 | 184 | progname=$func_basename_result
 | 
|---|
 | 185 | case $progname in
 | 
|---|
 | 186 |   -*) progname=./$progname ;;
 | 
|---|
 | 187 | esac
 | 
|---|
 | 188 | 
 | 
|---|
 | 189 | # Make sure we have an absolute path for reexecution:
 | 
|---|
 | 190 | case $progpath in
 | 
|---|
 | 191 |   [\\/]*|[A-Za-z]:\\*) ;;
 | 
|---|
 | 192 |   *[\\/]*)
 | 
|---|
 | 193 |      progdir=$func_dirname_result
 | 
|---|
 | 194 |      progdir=`cd "$progdir" && pwd`
 | 
|---|
 | 195 |      progpath="$progdir/$progname"
 | 
|---|
 | 196 |      ;;
 | 
|---|
 | 197 |   *)
 | 
|---|
 | 198 |      save_IFS="$IFS"
 | 
|---|
 | 199 |      IFS=:
 | 
|---|
 | 200 |      for progdir in $PATH; do
 | 
|---|
 | 201 |        IFS="$save_IFS"
 | 
|---|
 | 202 |        test -x "$progdir/$progname" && break
 | 
|---|
 | 203 |      done
 | 
|---|
 | 204 |      IFS="$save_IFS"
 | 
|---|
 | 205 |      test -n "$progdir" || progdir=`pwd`
 | 
|---|
 | 206 |      progpath="$progdir/$progname"
 | 
|---|
 | 207 |      ;;
 | 
|---|
 | 208 | esac
 | 
|---|
 | 209 | 
 | 
|---|
 | 210 | # Sed substitution that helps us do robust quoting.  It backslashifies
 | 
|---|
 | 211 | # metacharacters that are still active within double-quoted strings.
 | 
|---|
 | 212 | Xsed="${SED}"' -e 1s/^X//'
 | 
|---|
 | 213 | sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 | 
|---|
 | 214 | 
 | 
|---|
 | 215 | # Same as above, but do not quote variable references.
 | 
|---|
 | 216 | double_quote_subst='s/\(["`\\]\)/\\\1/g'
 | 
|---|
 | 217 | 
 | 
|---|
 | 218 | # Re-`\' parameter expansions in output of double_quote_subst that were
 | 
|---|
 | 219 | # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 | 
|---|
 | 220 | # in input to double_quote_subst, that '$' was protected from expansion.
 | 
|---|
 | 221 | # Since each input `\' is now two `\'s, look for any number of runs of
 | 
|---|
 | 222 | # four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
 | 
|---|
 | 223 | bs='\\'
 | 
|---|
 | 224 | bs2='\\\\'
 | 
|---|
 | 225 | bs4='\\\\\\\\'
 | 
|---|
 | 226 | dollar='\$'
 | 
|---|
 | 227 | sed_double_backslash="\
 | 
|---|
 | 228 |   s/$bs4/&\\
 | 
|---|
 | 229 | /g
 | 
|---|
 | 230 |   s/^$bs2$dollar/$bs&/
 | 
|---|
 | 231 |   s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
 | 
|---|
 | 232 |   s/\n//g"
 | 
|---|
 | 233 | 
 | 
|---|
 | 234 | # Standard options:
 | 
|---|
 | 235 | opt_dry_run=false
 | 
|---|
 | 236 | opt_help=false
 | 
|---|
 | 237 | opt_quiet=false
 | 
|---|
 | 238 | opt_verbose=false
 | 
|---|
 | 239 | opt_warning=:
 | 
|---|
 | 240 | 
 | 
|---|
 | 241 | # func_echo arg...
 | 
|---|
 | 242 | # Echo program name prefixed message, along with the current mode
 | 
|---|
 | 243 | # name if it has been set yet.
 | 
|---|
 | 244 | func_echo ()
 | 
|---|
 | 245 | {
 | 
|---|
 | 246 |     $ECHO "$progname${mode+: }$mode: $*"
 | 
|---|
 | 247 | }
 | 
|---|
 | 248 | 
 | 
|---|
 | 249 | # func_verbose arg...
 | 
|---|
 | 250 | # Echo program name prefixed message in verbose mode only.
 | 
|---|
 | 251 | func_verbose ()
 | 
|---|
 | 252 | {
 | 
|---|
 | 253 |     $opt_verbose && func_echo ${1+"$@"}
 | 
|---|
 | 254 | 
 | 
|---|
 | 255 |     # A bug in bash halts the script if the last line of a function
 | 
|---|
 | 256 |     # fails when set -e is in force, so we need another command to
 | 
|---|
 | 257 |     # work around that:
 | 
|---|
 | 258 |     :
 | 
|---|
 | 259 | }
 | 
|---|
 | 260 | 
 | 
|---|
 | 261 | # func_error arg...
 | 
|---|
 | 262 | # Echo program name prefixed message to standard error.
 | 
|---|
 | 263 | func_error ()
 | 
|---|
 | 264 | {
 | 
|---|
 | 265 |     $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
 | 
|---|
 | 266 | }
 | 
|---|
 | 267 | 
 | 
|---|
 | 268 | # func_warning arg...
 | 
|---|
 | 269 | # Echo program name prefixed warning message to standard error.
 | 
|---|
 | 270 | func_warning ()
 | 
|---|
 | 271 | {
 | 
|---|
 | 272 |     $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
 | 
|---|
 | 273 | 
 | 
|---|
 | 274 |     # bash bug again:
 | 
|---|
 | 275 |     :
 | 
|---|
 | 276 | }
 | 
|---|
 | 277 | 
 | 
|---|
 | 278 | # func_fatal_error arg...
 | 
|---|
 | 279 | # Echo program name prefixed message to standard error, and exit.
 | 
|---|
 | 280 | func_fatal_error ()
 | 
|---|
 | 281 | {
 | 
|---|
 | 282 |     func_error ${1+"$@"}
 | 
|---|
 | 283 |     exit $EXIT_FAILURE
 | 
|---|
 | 284 | }
 | 
|---|
 | 285 | 
 | 
|---|
 | 286 | # func_fatal_help arg...
 | 
|---|
 | 287 | # Echo program name prefixed message to standard error, followed by
 | 
|---|
 | 288 | # a help hint, and exit.
 | 
|---|
 | 289 | func_fatal_help ()
 | 
|---|
 | 290 | {
 | 
|---|
 | 291 |     func_error ${1+"$@"}
 | 
|---|
 | 292 |     func_fatal_error "$help"
 | 
|---|
 | 293 | }
 | 
|---|
 | 294 | help="Try \`$progname --help' for more information."  ## default
 | 
|---|
 | 295 | 
 | 
|---|
 | 296 | 
 | 
|---|
 | 297 | # func_grep expression filename
 | 
|---|
 | 298 | # Check whether EXPRESSION matches any line of FILENAME, without output.
 | 
|---|
 | 299 | func_grep ()
 | 
|---|
 | 300 | {
 | 
|---|
 | 301 |     $GREP "$1" "$2" >/dev/null 2>&1
 | 
|---|
 | 302 | }
 | 
|---|
 | 303 | 
 | 
|---|
 | 304 | 
 | 
|---|
 | 305 | # func_mkdir_p directory-path
 | 
|---|
 | 306 | # Make sure the entire path to DIRECTORY-PATH is available.
 | 
|---|
 | 307 | func_mkdir_p ()
 | 
|---|
 | 308 | {
 | 
|---|
 | 309 |     my_directory_path="$1"
 | 
|---|
 | 310 |     my_dir_list=
 | 
|---|
 | 311 | 
 | 
|---|
 | 312 |     if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
 | 
|---|
 | 313 | 
 | 
|---|
 | 314 |       # Protect directory names starting with `-'
 | 
|---|
 | 315 |       case $my_directory_path in
 | 
|---|
 | 316 |         -*) my_directory_path="./$my_directory_path" ;;
 | 
|---|
 | 317 |       esac
 | 
|---|
 | 318 | 
 | 
|---|
 | 319 |       # While some portion of DIR does not yet exist...
 | 
|---|
 | 320 |       while test ! -d "$my_directory_path"; do
 | 
|---|
 | 321 |         # ...make a list in topmost first order.  Use a colon delimited
 | 
|---|
 | 322 |         # list incase some portion of path contains whitespace.
 | 
|---|
 | 323 |         my_dir_list="$my_directory_path:$my_dir_list"
 | 
|---|
 | 324 | 
 | 
|---|
 | 325 |         # If the last portion added has no slash in it, the list is done
 | 
|---|
 | 326 |         case $my_directory_path in */*) ;; *) break ;; esac
 | 
|---|
 | 327 | 
 | 
|---|
 | 328 |         # ...otherwise throw away the child directory and loop
 | 
|---|
 | 329 |         my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
 | 
|---|
 | 330 |       done
 | 
|---|
 | 331 |       my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
 | 
|---|
 | 332 | 
 | 
|---|
 | 333 |       save_mkdir_p_IFS="$IFS"; IFS=':'
 | 
|---|
 | 334 |       for my_dir in $my_dir_list; do
 | 
|---|
 | 335 |         IFS="$save_mkdir_p_IFS"
 | 
|---|
 | 336 |         # mkdir can fail with a `File exist' error if two processes
 | 
|---|
 | 337 |         # try to create one of the directories concurrently.  Don't
 | 
|---|
 | 338 |         # stop in that case!
 | 
|---|
 | 339 |         $MKDIR "$my_dir" 2>/dev/null || :
 | 
|---|
 | 340 |       done
 | 
|---|
 | 341 |       IFS="$save_mkdir_p_IFS"
 | 
|---|
 | 342 | 
 | 
|---|
 | 343 |       # Bail out if we (or some other process) failed to create a directory.
 | 
|---|
 | 344 |       test -d "$my_directory_path" || \
 | 
|---|
 | 345 |         func_fatal_error "Failed to create \`$1'"
 | 
|---|
 | 346 |     fi
 | 
|---|
 | 347 | }
 | 
|---|
 | 348 | 
 | 
|---|
 | 349 | 
 | 
|---|
 | 350 | # func_mktempdir [string]
 | 
|---|
 | 351 | # Make a temporary directory that won't clash with other running
 | 
|---|
 | 352 | # libtool processes, and avoids race conditions if possible.  If
 | 
|---|
 | 353 | # given, STRING is the basename for that directory.
 | 
|---|
 | 354 | func_mktempdir ()
 | 
|---|
 | 355 | {
 | 
|---|
 | 356 |     my_template="${TMPDIR-/tmp}/${1-$progname}"
 | 
|---|
 | 357 | 
 | 
|---|
 | 358 |     if test "$opt_dry_run" = ":"; then
 | 
|---|
 | 359 |       # Return a directory name, but don't create it in dry-run mode
 | 
|---|
 | 360 |       my_tmpdir="${my_template}-$$"
 | 
|---|
 | 361 |     else
 | 
|---|
 | 362 | 
 | 
|---|
 | 363 |       # If mktemp works, use that first and foremost
 | 
|---|
 | 364 |       my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
 | 
|---|
 | 365 | 
 | 
|---|
 | 366 |       if test ! -d "$my_tmpdir"; then
 | 
|---|
 | 367 |         # Failing that, at least try and use $RANDOM to avoid a race
 | 
|---|
 | 368 |         my_tmpdir="${my_template}-${RANDOM-0}$$"
 | 
|---|
 | 369 | 
 | 
|---|
 | 370 |         save_mktempdir_umask=`umask`
 | 
|---|
 | 371 |         umask 0077
 | 
|---|
 | 372 |         $MKDIR "$my_tmpdir"
 | 
|---|
 | 373 |         umask $save_mktempdir_umask
 | 
|---|
 | 374 |       fi
 | 
|---|
 | 375 | 
 | 
|---|
 | 376 |       # If we're not in dry-run mode, bomb out on failure
 | 
|---|
 | 377 |       test -d "$my_tmpdir" || \
 | 
|---|
 | 378 |         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
 | 
|---|
 | 379 |     fi
 | 
|---|
 | 380 | 
 | 
|---|
 | 381 |     $ECHO "X$my_tmpdir" | $Xsed
 | 
|---|
 | 382 | }
 | 
|---|
 | 383 | 
 | 
|---|
 | 384 | 
 | 
|---|
 | 385 | # func_quote_for_eval arg
 | 
|---|
 | 386 | # Aesthetically quote ARG to be evaled later.
 | 
|---|
 | 387 | # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
 | 
|---|
 | 388 | # is double-quoted, suitable for a subsequent eval, whereas
 | 
|---|
 | 389 | # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
 | 
|---|
 | 390 | # which are still active within double quotes backslashified.
 | 
|---|
 | 391 | func_quote_for_eval ()
 | 
|---|
 | 392 | {
 | 
|---|
 | 393 |     case $1 in
 | 
|---|
 | 394 |       *[\\\`\"\$]*)
 | 
|---|
 | 395 |         func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
 | 
|---|
 | 396 |       *)
 | 
|---|
 | 397 |         func_quote_for_eval_unquoted_result="$1" ;;
 | 
|---|
 | 398 |     esac
 | 
|---|
 | 399 | 
 | 
|---|
 | 400 |     case $func_quote_for_eval_unquoted_result in
 | 
|---|
 | 401 |       # Double-quote args containing shell metacharacters to delay
 | 
|---|
 | 402 |       # word splitting, command substitution and and variable
 | 
|---|
 | 403 |       # expansion for a subsequent eval.
 | 
|---|
 | 404 |       # Many Bourne shells cannot handle close brackets correctly
 | 
|---|
 | 405 |       # in scan sets, so we specify it separately.
 | 
|---|
 | 406 |       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 | 
|---|
 | 407 |         func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
 | 
|---|
 | 408 |         ;;
 | 
|---|
 | 409 |       *)
 | 
|---|
 | 410 |         func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
 | 
|---|
 | 411 |     esac
 | 
|---|
 | 412 | }
 | 
|---|
 | 413 | 
 | 
|---|
 | 414 | 
 | 
|---|
 | 415 | # func_quote_for_expand arg
 | 
|---|
 | 416 | # Aesthetically quote ARG to be evaled later; same as above,
 | 
|---|
 | 417 | # but do not quote variable references.
 | 
|---|
 | 418 | func_quote_for_expand ()
 | 
|---|
 | 419 | {
 | 
|---|
 | 420 |     case $1 in
 | 
|---|
 | 421 |       *[\\\`\"]*)
 | 
|---|
 | 422 |         my_arg=`$ECHO "X$1" | $Xsed \
 | 
|---|
 | 423 |             -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
 | 
|---|
 | 424 |       *)
 | 
|---|
 | 425 |         my_arg="$1" ;;
 | 
|---|
 | 426 |     esac
 | 
|---|
 | 427 | 
 | 
|---|
 | 428 |     case $my_arg in
 | 
|---|
 | 429 |       # Double-quote args containing shell metacharacters to delay
 | 
|---|
 | 430 |       # word splitting and command substitution for a subsequent eval.
 | 
|---|
 | 431 |       # Many Bourne shells cannot handle close brackets correctly
 | 
|---|
 | 432 |       # in scan sets, so we specify it separately.
 | 
|---|
 | 433 |       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 | 
|---|
 | 434 |         my_arg="\"$my_arg\""
 | 
|---|
 | 435 |         ;;
 | 
|---|
 | 436 |     esac
 | 
|---|
 | 437 | 
 | 
|---|
 | 438 |     func_quote_for_expand_result="$my_arg"
 | 
|---|
 | 439 | }
 | 
|---|
 | 440 | 
 | 
|---|
 | 441 | 
 | 
|---|
 | 442 | # func_show_eval cmd [fail_exp]
 | 
|---|
 | 443 | # Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
 | 
|---|
 | 444 | # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 | 
|---|
 | 445 | # is given, then evaluate it.
 | 
|---|
 | 446 | func_show_eval ()
 | 
|---|
 | 447 | {
 | 
|---|
 | 448 |     my_cmd="$1"
 | 
|---|
 | 449 |     my_fail_exp="${2-:}"
 | 
|---|
 | 450 | 
 | 
|---|
 | 451 |     ${opt_silent-false} || {
 | 
|---|
 | 452 |       func_quote_for_expand "$my_cmd"
 | 
|---|
 | 453 |       eval "func_echo $func_quote_for_expand_result"
 | 
|---|
 | 454 |     }
 | 
|---|
 | 455 | 
 | 
|---|
 | 456 |     if ${opt_dry_run-false}; then :; else
 | 
|---|
 | 457 |       eval "$my_cmd"
 | 
|---|
 | 458 |       my_status=$?
 | 
|---|
 | 459 |       if test "$my_status" -eq 0; then :; else
 | 
|---|
 | 460 |         eval "(exit $my_status); $my_fail_exp"
 | 
|---|
 | 461 |       fi
 | 
|---|
 | 462 |     fi
 | 
|---|
 | 463 | }
 | 
|---|
 | 464 | 
 | 
|---|
 | 465 | 
 | 
|---|
 | 466 | # func_show_eval_locale cmd [fail_exp]
 | 
|---|
 | 467 | # Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
 | 
|---|
 | 468 | # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 | 
|---|
 | 469 | # is given, then evaluate it.  Use the saved locale for evaluation.
 | 
|---|
 | 470 | func_show_eval_locale ()
 | 
|---|
 | 471 | {
 | 
|---|
 | 472 |     my_cmd="$1"
 | 
|---|
 | 473 |     my_fail_exp="${2-:}"
 | 
|---|
 | 474 | 
 | 
|---|
 | 475 |     ${opt_silent-false} || {
 | 
|---|
 | 476 |       func_quote_for_expand "$my_cmd"
 | 
|---|
 | 477 |       eval "func_echo $func_quote_for_expand_result"
 | 
|---|
 | 478 |     }
 | 
|---|
 | 479 | 
 | 
|---|
 | 480 |     if ${opt_dry_run-false}; then :; else
 | 
|---|
 | 481 |       eval "$lt_user_locale
 | 
|---|
 | 482 |             $my_cmd"
 | 
|---|
 | 483 |       my_status=$?
 | 
|---|
 | 484 |       eval "$lt_safe_locale"
 | 
|---|
 | 485 |       if test "$my_status" -eq 0; then :; else
 | 
|---|
 | 486 |         eval "(exit $my_status); $my_fail_exp"
 | 
|---|
 | 487 |       fi
 | 
|---|
 | 488 |     fi
 | 
|---|
 | 489 | }
 | 
|---|
 | 490 | 
 | 
|---|
 | 491 | 
 | 
|---|
 | 492 | 
 | 
|---|
 | 493 | 
 | 
|---|
 | 494 | 
 | 
|---|
 | 495 | # func_version
 | 
|---|
 | 496 | # Echo version message to standard output and exit.
 | 
|---|
 | 497 | func_version ()
 | 
|---|
 | 498 | {
 | 
|---|
 | 499 |     $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
 | 
|---|
 | 500 |         s/^# //
 | 
|---|
 | 501 |         s/^# *$//
 | 
|---|
 | 502 |         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
 | 
|---|
 | 503 |         p
 | 
|---|
 | 504 |      }' < "$progpath"
 | 
|---|
 | 505 |      exit $?
 | 
|---|
 | 506 | }
 | 
|---|
 | 507 | 
 | 
|---|
 | 508 | # func_usage
 | 
|---|
 | 509 | # Echo short help message to standard output and exit.
 | 
|---|
 | 510 | func_usage ()
 | 
|---|
 | 511 | {
 | 
|---|
 | 512 |     $SED -n '/^# Usage:/,/# -h/ {
 | 
|---|
 | 513 |         s/^# //
 | 
|---|
 | 514 |         s/^# *$//
 | 
|---|
 | 515 |         s/\$progname/'$progname'/
 | 
|---|
 | 516 |         p
 | 
|---|
 | 517 |     }' < "$progpath"
 | 
|---|
 | 518 |     $ECHO
 | 
|---|
 | 519 |     $ECHO "run \`$progname --help | more' for full usage"
 | 
|---|
 | 520 |     exit $?
 | 
|---|
 | 521 | }
 | 
|---|
 | 522 | 
 | 
|---|
 | 523 | # func_help
 | 
|---|
 | 524 | # Echo long help message to standard output and exit.
 | 
|---|
 | 525 | func_help ()
 | 
|---|
 | 526 | {
 | 
|---|
 | 527 |     $SED -n '/^# Usage:/,/# Report bugs to/ {
 | 
|---|
 | 528 |         s/^# //
 | 
|---|
 | 529 |         s/^# *$//
 | 
|---|
 | 530 |         s*\$progname*'$progname'*
 | 
|---|
 | 531 |         s*\$host*'"$host"'*
 | 
|---|
 | 532 |         s*\$SHELL*'"$SHELL"'*
 | 
|---|
 | 533 |         s*\$LTCC*'"$LTCC"'*
 | 
|---|
 | 534 |         s*\$LTCFLAGS*'"$LTCFLAGS"'*
 | 
|---|
 | 535 |         s*\$LD*'"$LD"'*
 | 
|---|
 | 536 |         s/\$with_gnu_ld/'"$with_gnu_ld"'/
 | 
|---|
 | 537 |         s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
 | 
|---|
 | 538 |         s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
 | 
|---|
 | 539 |         p
 | 
|---|
 | 540 |      }' < "$progpath"
 | 
|---|
 | 541 |     exit $?
 | 
|---|
 | 542 | }
 | 
|---|
 | 543 | 
 | 
|---|
 | 544 | # func_missing_arg argname
 | 
|---|
 | 545 | # Echo program name prefixed message to standard error and set global
 | 
|---|
 | 546 | # exit_cmd.
 | 
|---|
 | 547 | func_missing_arg ()
 | 
|---|
 | 548 | {
 | 
|---|
 | 549 |     func_error "missing argument for $1"
 | 
|---|
 | 550 |     exit_cmd=exit
 | 
|---|
 | 551 | }
 | 
|---|
 | 552 | 
 | 
|---|
 | 553 | exit_cmd=:
 | 
|---|
 | 554 | 
 | 
|---|
 | 555 | 
 | 
|---|
 | 556 | 
 | 
|---|
 | 557 | 
 | 
|---|
 | 558 | 
 | 
|---|
 | 559 | # Check that we have a working $ECHO.
 | 
|---|
 | 560 | if test "X$1" = X--no-reexec; then
 | 
|---|
 | 561 |   # Discard the --no-reexec flag, and continue.
 | 
|---|
 | 562 |   shift
 | 
|---|
 | 563 | elif test "X$1" = X--fallback-echo; then
 | 
|---|
 | 564 |   # Avoid inline document here, it may be left over
 | 
|---|
 | 565 |   :
 | 
|---|
 | 566 | elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
 | 
|---|
 | 567 |   # Yippee, $ECHO works!
 | 
|---|
 | 568 |   :
 | 
|---|
 | 569 | else
 | 
|---|
 | 570 |   # Restart under the correct shell, and then maybe $ECHO will work.
 | 
|---|
 | 571 |   exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 | 
|---|
 | 572 | fi
 | 
|---|
 | 573 | 
 | 
|---|
 | 574 | if test "X$1" = X--fallback-echo; then
 | 
|---|
 | 575 |   # used as fallback echo
 | 
|---|
 | 576 |   shift
 | 
|---|
 | 577 |   cat <<EOF
 | 
|---|
 | 578 | $*
 | 
|---|
 | 579 | EOF
 | 
|---|
 | 580 |   exit $EXIT_SUCCESS
 | 
|---|
 | 581 | fi
 | 
|---|
 | 582 | 
 | 
|---|
 | 583 | magic="%%%MAGIC variable%%%"
 | 
|---|
 | 584 | magic_exe="%%%MAGIC EXE variable%%%"
 | 
|---|
 | 585 | 
 | 
|---|
 | 586 | # Global variables.
 | 
|---|
 | 587 | # $mode is unset
 | 
|---|
 | 588 | nonopt=
 | 
|---|
 | 589 | execute_dlfiles=
 | 
|---|
 | 590 | preserve_args=
 | 
|---|
 | 591 | lo2o="s/\\.lo\$/.${objext}/"
 | 
|---|
 | 592 | o2lo="s/\\.${objext}\$/.lo/"
 | 
|---|
 | 593 | extracted_archives=
 | 
|---|
 | 594 | extracted_serial=0
 | 
|---|
 | 595 | 
 | 
|---|
 | 596 | opt_dry_run=false
 | 
|---|
 | 597 | opt_duplicate_deps=false
 | 
|---|
 | 598 | opt_silent=false
 | 
|---|
 | 599 | opt_debug=:
 | 
|---|
 | 600 | 
 | 
|---|
 | 601 | # If this variable is set in any of the actions, the command in it
 | 
|---|
 | 602 | # will be execed at the end.  This prevents here-documents from being
 | 
|---|
 | 603 | # left over by shells.
 | 
|---|
 | 604 | exec_cmd=
 | 
|---|
 | 605 | 
 | 
|---|
 | 606 | # func_fatal_configuration arg...
 | 
|---|
 | 607 | # Echo program name prefixed message to standard error, followed by
 | 
|---|
 | 608 | # a configuration failure hint, and exit.
 | 
|---|
 | 609 | func_fatal_configuration ()
 | 
|---|
 | 610 | {
 | 
|---|
 | 611 |     func_error ${1+"$@"}
 | 
|---|
 | 612 |     func_error "See the $PACKAGE documentation for more information."
 | 
|---|
 | 613 |     func_fatal_error "Fatal configuration error."
 | 
|---|
 | 614 | }
 | 
|---|
 | 615 | 
 | 
|---|
 | 616 | 
 | 
|---|
 | 617 | # func_config
 | 
|---|
 | 618 | # Display the configuration for all the tags in this script.
 | 
|---|
 | 619 | func_config ()
 | 
|---|
 | 620 | {
 | 
|---|
 | 621 |     re_begincf='^# ### BEGIN LIBTOOL'
 | 
|---|
 | 622 |     re_endcf='^# ### END LIBTOOL'
 | 
|---|
 | 623 | 
 | 
|---|
 | 624 |     # Default configuration.
 | 
|---|
 | 625 |     $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
 | 
|---|
 | 626 | 
 | 
|---|
 | 627 |     # Now print the configurations for the tags.
 | 
|---|
 | 628 |     for tagname in $taglist; do
 | 
|---|
 | 629 |       $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
 | 
|---|
 | 630 |     done
 | 
|---|
 | 631 | 
 | 
|---|
 | 632 |     exit $?
 | 
|---|
 | 633 | }
 | 
|---|
 | 634 | 
 | 
|---|
 | 635 | # func_features
 | 
|---|
 | 636 | # Display the features supported by this script.
 | 
|---|
 | 637 | func_features ()
 | 
|---|
 | 638 | {
 | 
|---|
 | 639 |     $ECHO "host: $host"
 | 
|---|
 | 640 |     if test "$build_libtool_libs" = yes; then
 | 
|---|
 | 641 |       $ECHO "enable shared libraries"
 | 
|---|
 | 642 |     else
 | 
|---|
 | 643 |       $ECHO "disable shared libraries"
 | 
|---|
 | 644 |     fi
 | 
|---|
 | 645 |     if test "$build_old_libs" = yes; then
 | 
|---|
 | 646 |       $ECHO "enable static libraries"
 | 
|---|
 | 647 |     else
 | 
|---|
 | 648 |       $ECHO "disable static libraries"
 | 
|---|
 | 649 |     fi
 | 
|---|
 | 650 | 
 | 
|---|
 | 651 |     exit $?
 | 
|---|
 | 652 | }
 | 
|---|
 | 653 | 
 | 
|---|
 | 654 | # func_enable_tag tagname
 | 
|---|
 | 655 | # Verify that TAGNAME is valid, and either flag an error and exit, or
 | 
|---|
 | 656 | # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 | 
|---|
 | 657 | # variable here.
 | 
|---|
 | 658 | func_enable_tag ()
 | 
|---|
 | 659 | {
 | 
|---|
 | 660 |   # Global variable:
 | 
|---|
 | 661 |   tagname="$1"
 | 
|---|
 | 662 | 
 | 
|---|
 | 663 |   re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
 | 
|---|
 | 664 |   re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
 | 
|---|
 | 665 |   sed_extractcf="/$re_begincf/,/$re_endcf/p"
 | 
|---|
 | 666 | 
 | 
|---|
 | 667 |   # Validate tagname.
 | 
|---|
 | 668 |   case $tagname in
 | 
|---|
 | 669 |     *[!-_A-Za-z0-9,/]*)
 | 
|---|
 | 670 |       func_fatal_error "invalid tag name: $tagname"
 | 
|---|
 | 671 |       ;;
 | 
|---|
 | 672 |   esac
 | 
|---|
 | 673 | 
 | 
|---|
 | 674 |   # Don't test for the "default" C tag, as we know it's
 | 
|---|
 | 675 |   # there but not specially marked.
 | 
|---|
 | 676 |   case $tagname in
 | 
|---|
 | 677 |     CC) ;;
 | 
|---|
 | 678 |     *)
 | 
|---|
 | 679 |       if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
 | 
|---|
 | 680 |         taglist="$taglist $tagname"
 | 
|---|
 | 681 | 
 | 
|---|
 | 682 |         # Evaluate the configuration.  Be careful to quote the path
 | 
|---|
 | 683 |         # and the sed script, to avoid splitting on whitespace, but
 | 
|---|
 | 684 |         # also don't use non-portable quotes within backquotes within
 | 
|---|
 | 685 |         # quotes we have to do it in 2 steps:
 | 
|---|
 | 686 |         extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
 | 
|---|
 | 687 |         eval "$extractedcf"
 | 
|---|
 | 688 |       else
 | 
|---|
 | 689 |         func_error "ignoring unknown tag $tagname"
 | 
|---|
 | 690 |       fi
 | 
|---|
 | 691 |       ;;
 | 
|---|
 | 692 |   esac
 | 
|---|
 | 693 | }
 | 
|---|
 | 694 | 
 | 
|---|
 | 695 | # Parse options once, thoroughly.  This comes as soon as possible in
 | 
|---|
 | 696 | # the script to make things like `libtool --version' happen quickly.
 | 
|---|
 | 697 | {
 | 
|---|
 | 698 | 
 | 
|---|
 | 699 |   # Shorthand for --mode=foo, only valid as the first argument
 | 
|---|
 | 700 |   case $1 in
 | 
|---|
 | 701 |   clean|clea|cle|cl)
 | 
|---|
 | 702 |     shift; set dummy --mode clean ${1+"$@"}; shift
 | 
|---|
 | 703 |     ;;
 | 
|---|
 | 704 |   compile|compil|compi|comp|com|co|c)
 | 
|---|
 | 705 |     shift; set dummy --mode compile ${1+"$@"}; shift
 | 
|---|
 | 706 |     ;;
 | 
|---|
 | 707 |   execute|execut|execu|exec|exe|ex|e)
 | 
|---|
 | 708 |     shift; set dummy --mode execute ${1+"$@"}; shift
 | 
|---|
 | 709 |     ;;
 | 
|---|
 | 710 |   finish|finis|fini|fin|fi|f)
 | 
|---|
 | 711 |     shift; set dummy --mode finish ${1+"$@"}; shift
 | 
|---|
 | 712 |     ;;
 | 
|---|
 | 713 |   install|instal|insta|inst|ins|in|i)
 | 
|---|
 | 714 |     shift; set dummy --mode install ${1+"$@"}; shift
 | 
|---|
 | 715 |     ;;
 | 
|---|
 | 716 |   link|lin|li|l)
 | 
|---|
 | 717 |     shift; set dummy --mode link ${1+"$@"}; shift
 | 
|---|
 | 718 |     ;;
 | 
|---|
 | 719 |   uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
 | 
|---|
 | 720 |     shift; set dummy --mode uninstall ${1+"$@"}; shift
 | 
|---|
 | 721 |     ;;
 | 
|---|
 | 722 |   esac
 | 
|---|
 | 723 | 
 | 
|---|
 | 724 |   # Parse non-mode specific arguments:
 | 
|---|
 | 725 |   while test "$#" -gt 0; do
 | 
|---|
 | 726 |     opt="$1"
 | 
|---|
 | 727 |     shift
 | 
|---|
 | 728 | 
 | 
|---|
 | 729 |     case $opt in
 | 
|---|
 | 730 |       --config)         func_config                                     ;;
 | 
|---|
 | 731 | 
 | 
|---|
 | 732 |       --debug)          preserve_args="$preserve_args $opt"
 | 
|---|
 | 733 |                         func_echo "enabling shell trace mode"
 | 
|---|
 | 734 |                         opt_debug='set -x'
 | 
|---|
 | 735 |                         $opt_debug
 | 
|---|
 | 736 |                         ;;
 | 
|---|
 | 737 | 
 | 
|---|
 | 738 |       -dlopen)          test "$#" -eq 0 && func_missing_arg "$opt" && break
 | 
|---|
 | 739 |                         execute_dlfiles="$execute_dlfiles $1"
 | 
|---|
 | 740 |                         shift
 | 
|---|
 | 741 |                         ;;
 | 
|---|
 | 742 | 
 | 
|---|
 | 743 |       --dry-run | -n)   opt_dry_run=:                                   ;;
 | 
|---|
 | 744 |       --features)       func_features                                   ;;
 | 
|---|
 | 745 |       --finish)         mode="finish"                                   ;;
 | 
|---|
 | 746 | 
 | 
|---|
 | 747 |       --mode)           test "$#" -eq 0 && func_missing_arg "$opt" && break
 | 
|---|
 | 748 |                         case $1 in
 | 
|---|
 | 749 |                           # Valid mode arguments:
 | 
|---|
 | 750 |                           clean)        ;;
 | 
|---|
 | 751 |                           compile)      ;;
 | 
|---|
 | 752 |                           execute)      ;;
 | 
|---|
 | 753 |                           finish)       ;;
 | 
|---|
 | 754 |                           install)      ;;
 | 
|---|
 | 755 |                           link)         ;;
 | 
|---|
 | 756 |                           relink)       ;;
 | 
|---|
 | 757 |                           uninstall)    ;;
 | 
|---|
 | 758 | 
 | 
|---|
 | 759 |                           # Catch anything else as an error
 | 
|---|
 | 760 |                           *) func_error "invalid argument for $opt"
 | 
|---|
 | 761 |                              exit_cmd=exit
 | 
|---|
 | 762 |                              break
 | 
|---|
 | 763 |                              ;;
 | 
|---|
 | 764 |                         esac
 | 
|---|
 | 765 | 
 | 
|---|
 | 766 |                         mode="$1"
 | 
|---|
 | 767 |                         shift
 | 
|---|
 | 768 |                         ;;
 | 
|---|
 | 769 | 
 | 
|---|
 | 770 |       --preserve-dup-deps)
 | 
|---|
 | 771 |                         opt_duplicate_deps=:                            ;;
 | 
|---|
 | 772 | 
 | 
|---|
 | 773 |       --quiet|--silent) preserve_args="$preserve_args $opt"
 | 
|---|
 | 774 |                         opt_silent=:
 | 
|---|
 | 775 |                         ;;
 | 
|---|
 | 776 | 
 | 
|---|
 | 777 |       --verbose| -v)    preserve_args="$preserve_args $opt"
 | 
|---|
 | 778 |                         opt_silent=false
 | 
|---|
 | 779 |                         ;;
 | 
|---|
 | 780 | 
 | 
|---|
 | 781 |       --tag)            test "$#" -eq 0 && func_missing_arg "$opt" && break
 | 
|---|
 | 782 |                         preserve_args="$preserve_args $opt $1"
 | 
|---|
 | 783 |                         func_enable_tag "$1"    # tagname is set here
 | 
|---|
 | 784 |                         shift
 | 
|---|
 | 785 |                         ;;
 | 
|---|
 | 786 | 
 | 
|---|
 | 787 |       # Separate optargs to long options:
 | 
|---|
 | 788 |       -dlopen=*|--mode=*|--tag=*)
 | 
|---|
 | 789 |                         func_opt_split "$opt"
 | 
|---|
 | 790 |                         set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
 | 
|---|
 | 791 |                         shift
 | 
|---|
 | 792 |                         ;;
 | 
|---|
 | 793 | 
 | 
|---|
 | 794 |       -\?|-h)           func_usage                                      ;;
 | 
|---|
 | 795 |       --help)           opt_help=:                                      ;;
 | 
|---|
 | 796 |       --version)        func_version                                    ;;
 | 
|---|
 | 797 | 
 | 
|---|
 | 798 |       -*)               func_fatal_help "unrecognized option \`$opt'"   ;;
 | 
|---|
 | 799 | 
 | 
|---|
 | 800 |       *)                nonopt="$opt"
 | 
|---|
 | 801 |                         break
 | 
|---|
 | 802 |                         ;;
 | 
|---|
 | 803 |     esac
 | 
|---|
 | 804 |   done
 | 
|---|
 | 805 | 
 | 
|---|
 | 806 | 
 | 
|---|
 | 807 |   case $host in
 | 
|---|
 | 808 |     *cygwin* | *mingw* | *pw32* | *cegcc*)
 | 
|---|
 | 809 |       # don't eliminate duplications in $postdeps and $predeps
 | 
|---|
 | 810 |       opt_duplicate_compiler_generated_deps=:
 | 
|---|
 | 811 |       ;;
 | 
|---|
 | 812 |     *)
 | 
|---|
 | 813 |       opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
 | 
|---|
 | 814 |       ;;
 | 
|---|
 | 815 |   esac
 | 
|---|
 | 816 | 
 | 
|---|
 | 817 |   # Having warned about all mis-specified options, bail out if
 | 
|---|
 | 818 |   # anything was wrong.
 | 
|---|
 | 819 |   $exit_cmd $EXIT_FAILURE
 | 
|---|
 | 820 | }
 | 
|---|
 | 821 | 
 | 
|---|
 | 822 | # func_check_version_match
 | 
|---|
 | 823 | # Ensure that we are using m4 macros, and libtool script from the same
 | 
|---|
 | 824 | # release of libtool.
 | 
|---|
 | 825 | func_check_version_match ()
 | 
|---|
 | 826 | {
 | 
|---|
 | 827 |   if test "$package_revision" != "$macro_revision"; then
 | 
|---|
 | 828 |     if test "$VERSION" != "$macro_version"; then
 | 
|---|
 | 829 |       if test -z "$macro_version"; then
 | 
|---|
 | 830 |         cat >&2 <<_LT_EOF
 | 
|---|
 | 831 | $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 | 
|---|
 | 832 | $progname: definition of this LT_INIT comes from an older release.
 | 
|---|
 | 833 | $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 | 
|---|
 | 834 | $progname: and run autoconf again.
 | 
|---|
 | 835 | _LT_EOF
 | 
|---|
 | 836 |       else
 | 
|---|
 | 837 |         cat >&2 <<_LT_EOF
 | 
|---|
 | 838 | $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 | 
|---|
 | 839 | $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 | 
|---|
 | 840 | $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 | 
|---|
 | 841 | $progname: and run autoconf again.
 | 
|---|
 | 842 | _LT_EOF
 | 
|---|
 | 843 |       fi
 | 
|---|
 | 844 |     else
 | 
|---|
 | 845 |       cat >&2 <<_LT_EOF
 | 
|---|
 | 846 | $progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 | 
|---|
 | 847 | $progname: but the definition of this LT_INIT comes from revision $macro_revision.
 | 
|---|
 | 848 | $progname: You should recreate aclocal.m4 with macros from revision $package_revision
 | 
|---|
 | 849 | $progname: of $PACKAGE $VERSION and run autoconf again.
 | 
|---|
 | 850 | _LT_EOF
 | 
|---|
 | 851 |     fi
 | 
|---|
 | 852 | 
 | 
|---|
 | 853 |     exit $EXIT_MISMATCH
 | 
|---|
 | 854 |   fi
 | 
|---|
 | 855 | }
 | 
|---|
 | 856 | 
 | 
|---|
 | 857 | 
 | 
|---|
 | 858 | ## ----------- ##
 | 
|---|
 | 859 | ##    Main.    ##
 | 
|---|
 | 860 | ## ----------- ##
 | 
|---|
 | 861 | 
 | 
|---|
 | 862 | $opt_help || {
 | 
|---|
 | 863 |   # Sanity checks first:
 | 
|---|
 | 864 |   func_check_version_match
 | 
|---|
 | 865 | 
 | 
|---|
 | 866 |   if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 | 
|---|
 | 867 |     func_fatal_configuration "not configured to build any kind of library"
 | 
|---|
 | 868 |   fi
 | 
|---|
 | 869 | 
 | 
|---|
 | 870 |   test -z "$mode" && func_fatal_error "error: you must specify a MODE."
 | 
|---|
 | 871 | 
 | 
|---|
 | 872 | 
 | 
|---|
 | 873 |   # Darwin sucks
 | 
|---|
 | 874 |   eval std_shrext=\"$shrext_cmds\"
 | 
|---|
 | 875 | 
 | 
|---|
 | 876 | 
 | 
|---|
 | 877 |   # Only execute mode is allowed to have -dlopen flags.
 | 
|---|
 | 878 |   if test -n "$execute_dlfiles" && test "$mode" != execute; then
 | 
|---|
 | 879 |     func_error "unrecognized option \`-dlopen'"
 | 
|---|
 | 880 |     $ECHO "$help" 1>&2
 | 
|---|
 | 881 |     exit $EXIT_FAILURE
 | 
|---|
 | 882 |   fi
 | 
|---|
 | 883 | 
 | 
|---|
 | 884 |   # Change the help message to a mode-specific one.
 | 
|---|
 | 885 |   generic_help="$help"
 | 
|---|
 | 886 |   help="Try \`$progname --help --mode=$mode' for more information."
 | 
|---|
 | 887 | }
 | 
|---|
 | 888 | 
 | 
|---|
 | 889 | 
 | 
|---|
 | 890 | # func_lalib_p file
 | 
|---|
 | 891 | # True iff FILE is a libtool `.la' library or `.lo' object file.
 | 
|---|
 | 892 | # This function is only a basic sanity check; it will hardly flush out
 | 
|---|
 | 893 | # determined imposters.
 | 
|---|
 | 894 | func_lalib_p ()
 | 
|---|
 | 895 | {
 | 
|---|
 | 896 |     test -f "$1" &&
 | 
|---|
 | 897 |       $SED -e 4q "$1" 2>/dev/null \
 | 
|---|
 | 898 |         | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
 | 
|---|
 | 899 | }
 | 
|---|
 | 900 | 
 | 
|---|
 | 901 | # func_lalib_unsafe_p file
 | 
|---|
 | 902 | # True iff FILE is a libtool `.la' library or `.lo' object file.
 | 
|---|
 | 903 | # This function implements the same check as func_lalib_p without
 | 
|---|
 | 904 | # resorting to external programs.  To this end, it redirects stdin and
 | 
|---|
 | 905 | # closes it afterwards, without saving the original file descriptor.
 | 
|---|
 | 906 | # As a safety measure, use it only where a negative result would be
 | 
|---|
 | 907 | # fatal anyway.  Works if `file' does not exist.
 | 
|---|
 | 908 | func_lalib_unsafe_p ()
 | 
|---|
 | 909 | {
 | 
|---|
 | 910 |     lalib_p=no
 | 
|---|
 | 911 |     if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
 | 
|---|
 | 912 |         for lalib_p_l in 1 2 3 4
 | 
|---|
 | 913 |         do
 | 
|---|
 | 914 |             read lalib_p_line
 | 
|---|
 | 915 |             case "$lalib_p_line" in
 | 
|---|
 | 916 |                 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
 | 
|---|
 | 917 |             esac
 | 
|---|
 | 918 |         done
 | 
|---|
 | 919 |         exec 0<&5 5<&-
 | 
|---|
 | 920 |     fi
 | 
|---|
 | 921 |     test "$lalib_p" = yes
 | 
|---|
 | 922 | }
 | 
|---|
 | 923 | 
 | 
|---|
 | 924 | # func_ltwrapper_script_p file
 | 
|---|
 | 925 | # True iff FILE is a libtool wrapper script
 | 
|---|
 | 926 | # This function is only a basic sanity check; it will hardly flush out
 | 
|---|
 | 927 | # determined imposters.
 | 
|---|
 | 928 | func_ltwrapper_script_p ()
 | 
|---|
 | 929 | {
 | 
|---|
 | 930 |     func_lalib_p "$1"
 | 
|---|
 | 931 | }
 | 
|---|
 | 932 | 
 | 
|---|
 | 933 | # func_ltwrapper_executable_p file
 | 
|---|
 | 934 | # True iff FILE is a libtool wrapper executable
 | 
|---|
 | 935 | # This function is only a basic sanity check; it will hardly flush out
 | 
|---|
 | 936 | # determined imposters.
 | 
|---|
 | 937 | func_ltwrapper_executable_p ()
 | 
|---|
 | 938 | {
 | 
|---|
 | 939 |     func_ltwrapper_exec_suffix=
 | 
|---|
 | 940 |     case $1 in
 | 
|---|
 | 941 |     *.exe) ;;
 | 
|---|
 | 942 |     *) func_ltwrapper_exec_suffix=.exe ;;
 | 
|---|
 | 943 |     esac
 | 
|---|
 | 944 |     $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
 | 
|---|
 | 945 | }
 | 
|---|
 | 946 | 
 | 
|---|
 | 947 | # func_ltwrapper_scriptname file
 | 
|---|
 | 948 | # Assumes file is an ltwrapper_executable
 | 
|---|
 | 949 | # uses $file to determine the appropriate filename for a
 | 
|---|
 | 950 | # temporary ltwrapper_script.
 | 
|---|
 | 951 | func_ltwrapper_scriptname ()
 | 
|---|
 | 952 | {
 | 
|---|
 | 953 |     func_ltwrapper_scriptname_result=""
 | 
|---|
 | 954 |     if func_ltwrapper_executable_p "$1"; then
 | 
|---|
 | 955 |         func_dirname_and_basename "$1" "" "."
 | 
|---|
 | 956 |         func_stripname '' '.exe' "$func_basename_result"
 | 
|---|
 | 957 |         func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 | 
|---|
 | 958 |     fi
 | 
|---|
 | 959 | }
 | 
|---|
 | 960 | 
 | 
|---|
 | 961 | # func_ltwrapper_p file
 | 
|---|
 | 962 | # True iff FILE is a libtool wrapper script or wrapper executable
 | 
|---|
 | 963 | # This function is only a basic sanity check; it will hardly flush out
 | 
|---|
 | 964 | # determined imposters.
 | 
|---|
 | 965 | func_ltwrapper_p ()
 | 
|---|
 | 966 | {
 | 
|---|
 | 967 |     func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
 | 
|---|
 | 968 | }
 | 
|---|
 | 969 | 
 | 
|---|
 | 970 | 
 | 
|---|
 | 971 | # func_execute_cmds commands fail_cmd
 | 
|---|
 | 972 | # Execute tilde-delimited COMMANDS.
 | 
|---|
 | 973 | # If FAIL_CMD is given, eval that upon failure.
 | 
|---|
 | 974 | # FAIL_CMD may read-access the current command in variable CMD!
 | 
|---|
 | 975 | func_execute_cmds ()
 | 
|---|
 | 976 | {
 | 
|---|
 | 977 |     $opt_debug
 | 
|---|
 | 978 |     save_ifs=$IFS; IFS='~'
 | 
|---|
 | 979 |     for cmd in $1; do
 | 
|---|
 | 980 |       IFS=$save_ifs
 | 
|---|
 | 981 |       eval cmd=\"$cmd\"
 | 
|---|
 | 982 |       func_show_eval "$cmd" "${2-:}"
 | 
|---|
 | 983 |     done
 | 
|---|
 | 984 |     IFS=$save_ifs
 | 
|---|
 | 985 | }
 | 
|---|
 | 986 | 
 | 
|---|
 | 987 | 
 | 
|---|
 | 988 | # func_source file
 | 
|---|
 | 989 | # Source FILE, adding directory component if necessary.
 | 
|---|
 | 990 | # Note that it is not necessary on cygwin/mingw to append a dot to
 | 
|---|
 | 991 | # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 | 
|---|
 | 992 | # behavior happens only for exec(3), not for open(2)!  Also, sourcing
 | 
|---|
 | 993 | # `FILE.' does not work on cygwin managed mounts.
 | 
|---|
 | 994 | func_source ()
 | 
|---|
 | 995 | {
 | 
|---|
 | 996 |     $opt_debug
 | 
|---|
 | 997 |     case $1 in
 | 
|---|
 | 998 |     */* | *\\*) . "$1" ;;
 | 
|---|
 | 999 |     *)          . "./$1" ;;
 | 
|---|
 | 1000 |     esac
 | 
|---|
 | 1001 | }
 | 
|---|
 | 1002 | 
 | 
|---|
 | 1003 | 
 | 
|---|
 | 1004 | # func_infer_tag arg
 | 
|---|
 | 1005 | # Infer tagged configuration to use if any are available and
 | 
|---|
 | 1006 | # if one wasn't chosen via the "--tag" command line option.
 | 
|---|
 | 1007 | # Only attempt this if the compiler in the base compile
 | 
|---|
 | 1008 | # command doesn't match the default compiler.
 | 
|---|
 | 1009 | # arg is usually of the form 'gcc ...'
 | 
|---|
 | 1010 | func_infer_tag ()
 | 
|---|
 | 1011 | {
 | 
|---|
 | 1012 |     $opt_debug
 | 
|---|
 | 1013 |     if test -n "$available_tags" && test -z "$tagname"; then
 | 
|---|
 | 1014 |       CC_quoted=
 | 
|---|
 | 1015 |       for arg in $CC; do
 | 
|---|
 | 1016 |         func_quote_for_eval "$arg"
 | 
|---|
 | 1017 |         CC_quoted="$CC_quoted $func_quote_for_eval_result"
 | 
|---|
 | 1018 |       done
 | 
|---|
 | 1019 |       case $@ in
 | 
|---|
 | 1020 |       # Blanks in the command may have been stripped by the calling shell,
 | 
|---|
 | 1021 |       # but not from the CC environment variable when configure was run.
 | 
|---|
 | 1022 |       " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
 | 
|---|
 | 1023 |       # Blanks at the start of $base_compile will cause this to fail
 | 
|---|
 | 1024 |       # if we don't check for them as well.
 | 
|---|
 | 1025 |       *)
 | 
|---|
 | 1026 |         for z in $available_tags; do
 | 
|---|
 | 1027 |           if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 | 
|---|
 | 1028 |             # Evaluate the configuration.
 | 
|---|
 | 1029 |             eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 | 
|---|
 | 1030 |             CC_quoted=
 | 
|---|
 | 1031 |             for arg in $CC; do
 | 
|---|
 | 1032 |               # Double-quote args containing other shell metacharacters.
 | 
|---|
 | 1033 |               func_quote_for_eval "$arg"
 | 
|---|
 | 1034 |               CC_quoted="$CC_quoted $func_quote_for_eval_result"
 | 
|---|
 | 1035 |             done
 | 
|---|
 | 1036 |             case "$@ " in
 | 
|---|
 | 1037 |               " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
 | 
|---|
 | 1038 |               # The compiler in the base compile command matches
 | 
|---|
 | 1039 |               # the one in the tagged configuration.
 | 
|---|
 | 1040 |               # Assume this is the tagged configuration we want.
 | 
|---|
 | 1041 |               tagname=$z
 | 
|---|
 | 1042 |               break
 | 
|---|
 | 1043 |               ;;
 | 
|---|
 | 1044 |             esac
 | 
|---|
 | 1045 |           fi
 | 
|---|
 | 1046 |         done
 | 
|---|
 | 1047 |         # If $tagname still isn't set, then no tagged configuration
 | 
|---|
 | 1048 |         # was found and let the user know that the "--tag" command
 | 
|---|
 | 1049 |         # line option must be used.
 | 
|---|
 | 1050 |         if test -z "$tagname"; then
 | 
|---|
 | 1051 |           func_echo "unable to infer tagged configuration"
 | 
|---|
 | 1052 |           func_fatal_error "specify a tag with \`--tag'"
 | 
|---|
 | 1053 | #       else
 | 
|---|
 | 1054 | #         func_verbose "using $tagname tagged configuration"
 | 
|---|
 | 1055 |         fi
 | 
|---|
 | 1056 |         ;;
 | 
|---|
 | 1057 |       esac
 | 
|---|
 | 1058 |     fi
 | 
|---|
 | 1059 | }
 | 
|---|
 | 1060 | 
 | 
|---|
 | 1061 | 
 | 
|---|
 | 1062 | 
 | 
|---|
 | 1063 | # func_write_libtool_object output_name pic_name nonpic_name
 | 
|---|
 | 1064 | # Create a libtool object file (analogous to a ".la" file),
 | 
|---|
 | 1065 | # but don't create it if we're doing a dry run.
 | 
|---|
 | 1066 | func_write_libtool_object ()
 | 
|---|
 | 1067 | {
 | 
|---|
 | 1068 |     write_libobj=${1}
 | 
|---|
 | 1069 |     if test "$build_libtool_libs" = yes; then
 | 
|---|
 | 1070 |       write_lobj=\'${2}\'
 | 
|---|
 | 1071 |     else
 | 
|---|
 | 1072 |       write_lobj=none
 | 
|---|
 | 1073 |     fi
 | 
|---|
 | 1074 | 
 | 
|---|
 | 1075 |     if test "$build_old_libs" = yes; then
 | 
|---|
 | 1076 |       write_oldobj=\'${3}\'
 | 
|---|
 | 1077 |     else
 | 
|---|
 | 1078 |       write_oldobj=none
 | 
|---|
 | 1079 |     fi
 | 
|---|
 | 1080 | 
 | 
|---|
 | 1081 |     $opt_dry_run || {
 | 
|---|
 | 1082 |       cat >${write_libobj}T <<EOF
 | 
|---|
 | 1083 | # $write_libobj - a libtool object file
 | 
|---|
 | 1084 | # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 | 
|---|
 | 1085 | #
 | 
|---|
 | 1086 | # Please DO NOT delete this file!
 | 
|---|
 | 1087 | # It is necessary for linking the library.
 | 
|---|
 | 1088 | 
 | 
|---|
 | 1089 | # Name of the PIC object.
 | 
|---|
 | 1090 | pic_object=$write_lobj
 | 
|---|
 | 1091 | 
 | 
|---|
 | 1092 | # Name of the non-PIC object
 | 
|---|
 | 1093 | non_pic_object=$write_oldobj
 | 
|---|
 | 1094 | 
 | 
|---|
 | 1095 | EOF
 | 
|---|
 | 1096 |       $MV "${write_libobj}T" "${write_libobj}"
 | 
|---|
 | 1097 |     }
 | 
|---|
 | 1098 | }
 | 
|---|
 | 1099 | 
 | 
|---|
 | 1100 | # func_mode_compile arg...
 | 
|---|
 | 1101 | func_mode_compile ()
 | 
|---|
 | 1102 | {
 | 
|---|
 | 1103 |     $opt_debug
 | 
|---|
 | 1104 |     # Get the compilation command and the source file.
 | 
|---|
 | 1105 |     base_compile=
 | 
|---|
 | 1106 |     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
 | 
|---|
 | 1107 |     suppress_opt=yes
 | 
|---|
 | 1108 |     suppress_output=
 | 
|---|
 | 1109 |     arg_mode=normal
 | 
|---|
 | 1110 |     libobj=
 | 
|---|
 | 1111 |     later=
 | 
|---|
 | 1112 |     pie_flag=
 | 
|---|
 | 1113 | 
 | 
|---|
 | 1114 |     for arg
 | 
|---|
 | 1115 |     do
 | 
|---|
 | 1116 |       case $arg_mode in
 | 
|---|
 | 1117 |       arg  )
 | 
|---|
 | 1118 |         # do not "continue".  Instead, add this to base_compile
 | 
|---|
 | 1119 |         lastarg="$arg"
 | 
|---|
 | 1120 |         arg_mode=normal
 | 
|---|
 | 1121 |         ;;
 | 
|---|
 | 1122 | 
 | 
|---|
 | 1123 |       target )
 | 
|---|
 | 1124 |         libobj="$arg"
 | 
|---|
 | 1125 |         arg_mode=normal
 | 
|---|
 | 1126 |         continue
 | 
|---|
 | 1127 |         ;;
 | 
|---|
 | 1128 | 
 | 
|---|
 | 1129 |       normal )
 | 
|---|
 | 1130 |         # Accept any command-line options.
 | 
|---|
 | 1131 |         case $arg in
 | 
|---|
 | 1132 |         -o)
 | 
|---|
 | 1133 |           test -n "$libobj" && \
 | 
|---|
 | 1134 |             func_fatal_error "you cannot specify \`-o' more than once"
 | 
|---|
 | 1135 |           arg_mode=target
 | 
|---|
 | 1136 |           continue
 | 
|---|
 | 1137 |           ;;
 | 
|---|
 | 1138 | 
 | 
|---|
 | 1139 |         -pie | -fpie | -fPIE)
 | 
|---|
 | 1140 |           pie_flag="$pie_flag $arg"
 | 
|---|
 | 1141 |           continue
 | 
|---|
 | 1142 |           ;;
 | 
|---|
 | 1143 | 
 | 
|---|
 | 1144 |         -shared | -static | -prefer-pic | -prefer-non-pic)
 | 
|---|
 | 1145 |           later="$later $arg"
 | 
|---|
 | 1146 |           continue
 | 
|---|
 | 1147 |           ;;
 | 
|---|
 | 1148 | 
 | 
|---|
 | 1149 |         -no-suppress)
 | 
|---|
 | 1150 |           suppress_opt=no
 | 
|---|
 | 1151 |           continue
 | 
|---|
 | 1152 |           ;;
 | 
|---|
 | 1153 | 
 | 
|---|
 | 1154 |         -Xcompiler)
 | 
|---|
 | 1155 |           arg_mode=arg  #  the next one goes into the "base_compile" arg list
 | 
|---|
 | 1156 |           continue      #  The current "srcfile" will either be retained or
 | 
|---|
 | 1157 |           ;;            #  replaced later.  I would guess that would be a bug.
 | 
|---|
 | 1158 | 
 | 
|---|
 | 1159 |         -Wc,*)
 | 
|---|
 | 1160 |           func_stripname '-Wc,' '' "$arg"
 | 
|---|
 | 1161 |           args=$func_stripname_result
 | 
|---|
 | 1162 |           lastarg=
 | 
|---|
 | 1163 |           save_ifs="$IFS"; IFS=','
 | 
|---|
 | 1164 |           for arg in $args; do
 | 
|---|
 | 1165 |             IFS="$save_ifs"
 | 
|---|
 | 1166 |             func_quote_for_eval "$arg"
 | 
|---|
 | 1167 |             lastarg="$lastarg $func_quote_for_eval_result"
 | 
|---|
 | 1168 |           done
 | 
|---|
 | 1169 |           IFS="$save_ifs"
 | 
|---|
 | 1170 |           func_stripname ' ' '' "$lastarg"
 | 
|---|
 | 1171 |           lastarg=$func_stripname_result
 | 
|---|
 | 1172 | 
 | 
|---|
 | 1173 |           # Add the arguments to base_compile.
 | 
|---|
 | 1174 |           base_compile="$base_compile $lastarg"
 | 
|---|
 | 1175 |           continue
 | 
|---|
 | 1176 |           ;;
 | 
|---|
 | 1177 | 
 | 
|---|
 | 1178 |         *)
 | 
|---|
 | 1179 |           # Accept the current argument as the source file.
 | 
|---|
 | 1180 |           # The previous "srcfile" becomes the current argument.
 | 
|---|
 | 1181 |           #
 | 
|---|
 | 1182 |           lastarg="$srcfile"
 | 
|---|
 | 1183 |           srcfile="$arg"
 | 
|---|
 | 1184 |           ;;
 | 
|---|
 | 1185 |         esac  #  case $arg
 | 
|---|
 | 1186 |         ;;
 | 
|---|
 | 1187 |       esac    #  case $arg_mode
 | 
|---|
 | 1188 | 
 | 
|---|
 | 1189 |       # Aesthetically quote the previous argument.
 | 
|---|
 | 1190 |       func_quote_for_eval "$lastarg"
 | 
|---|
 | 1191 |       base_compile="$base_compile $func_quote_for_eval_result"
 | 
|---|
 | 1192 |     done # for arg
 | 
|---|
 | 1193 | 
 | 
|---|
 | 1194 |     case $arg_mode in
 | 
|---|
 | 1195 |     arg)
 | 
|---|
 | 1196 |       func_fatal_error "you must specify an argument for -Xcompile"
 | 
|---|
 | 1197 |       ;;
 | 
|---|
 | 1198 |     target)
 | 
|---|
 | 1199 |       func_fatal_error "you must specify a target with \`-o'"
 | 
|---|
 | 1200 |       ;;
 | 
|---|
 | 1201 |     *)
 | 
|---|
 | 1202 |       # Get the name of the library object.
 | 
|---|
 | 1203 |       test -z "$libobj" && {
 | 
|---|
 | 1204 |         func_basename "$srcfile"
 | 
|---|
 | 1205 |         libobj="$func_basename_result"
 | 
|---|
 | 1206 |       }
 | 
|---|
 | 1207 |       ;;
 | 
|---|
 | 1208 |     esac
 | 
|---|
 | 1209 | 
 | 
|---|
 | 1210 |     # Recognize several different file suffixes.
 | 
|---|
 | 1211 |     # If the user specifies -o file.o, it is replaced with file.lo
 | 
|---|
 | 1212 |     case $libobj in
 | 
|---|
 | 1213 |     *.[cCFSifmso] | \
 | 
|---|
 | 1214 |     *.ada | *.adb | *.ads | *.asm | \
 | 
|---|
 | 1215 |     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
 | 
|---|
 | 1216 |     *.[fF][09]? | *.for | *.java | *.obj | *.sx)
 | 
|---|
 | 1217 |       func_xform "$libobj"
 | 
|---|
 | 1218 |       libobj=$func_xform_result
 | 
|---|
 | 1219 |       ;;
 | 
|---|
 | 1220 |     esac
 | 
|---|
 | 1221 | 
 | 
|---|
 | 1222 |     case $libobj in
 | 
|---|
 | 1223 |     *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
 | 
|---|
 | 1224 |     *)
 | 
|---|
 | 1225 |       func_fatal_error "cannot determine name of library object from \`$libobj'"
 | 
|---|
 | 1226 |       ;;
 | 
|---|
 | 1227 |     esac
 | 
|---|
 | 1228 | 
 | 
|---|
 | 1229 |     func_infer_tag $base_compile
 | 
|---|
 | 1230 | 
 | 
|---|
 | 1231 |     for arg in $later; do
 | 
|---|
 | 1232 |       case $arg in
 | 
|---|
 | 1233 |       -shared)
 | 
|---|
 | 1234 |         test "$build_libtool_libs" != yes && \
 | 
|---|
 | 1235 |           func_fatal_configuration "can not build a shared library"
 | 
|---|
 | 1236 |         build_old_libs=no
 | 
|---|
 | 1237 |         continue
 | 
|---|
 | 1238 |         ;;
 | 
|---|
 | 1239 | 
 | 
|---|
 | 1240 |       -static)
 | 
|---|
 | 1241 |         build_libtool_libs=no
 | 
|---|
 | 1242 |         build_old_libs=yes
 | 
|---|
 | 1243 |         continue
 | 
|---|
 | 1244 |         ;;
 | 
|---|
 | 1245 | 
 | 
|---|
 | 1246 |       -prefer-pic)
 | 
|---|
 | 1247 |         pic_mode=yes
 | 
|---|
 | 1248 |         continue
 | 
|---|
 | 1249 |         ;;
 | 
|---|
 | 1250 | 
 | 
|---|
 | 1251 |       -prefer-non-pic)
 | 
|---|
 | 1252 |         pic_mode=no
 | 
|---|
 | 1253 |         continue
 | 
|---|
 | 1254 |         ;;
 | 
|---|
 | 1255 |       esac
 | 
|---|
 | 1256 |     done
 | 
|---|
 | 1257 | 
 | 
|---|
 | 1258 |     func_quote_for_eval "$libobj"
 | 
|---|
 | 1259 |     test "X$libobj" != "X$func_quote_for_eval_result" \
 | 
|---|
 | 1260 |       && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'    &()|`$[]' \
 | 
|---|
 | 1261 |       && func_warning "libobj name \`$libobj' may not contain shell special characters."
 | 
|---|
 | 1262 |     func_dirname_and_basename "$obj" "/" ""
 | 
|---|
 | 1263 |     objname="$func_basename_result"
 | 
|---|
 | 1264 |     xdir="$func_dirname_result"
 | 
|---|
 | 1265 |     lobj=${xdir}$objdir/$objname
 | 
|---|
 | 1266 | 
 | 
|---|
 | 1267 |     test -z "$base_compile" && \
 | 
|---|
 | 1268 |       func_fatal_help "you must specify a compilation command"
 | 
|---|
 | 1269 | 
 | 
|---|
 | 1270 |     # Delete any leftover library objects.
 | 
|---|
 | 1271 |     if test "$build_old_libs" = yes; then
 | 
|---|
 | 1272 |       removelist="$obj $lobj $libobj ${libobj}T"
 | 
|---|
 | 1273 |     else
 | 
|---|
 | 1274 |       removelist="$lobj $libobj ${libobj}T"
 | 
|---|
 | 1275 |     fi
 | 
|---|
 | 1276 | 
 | 
|---|
 | 1277 |     # On Cygwin there's no "real" PIC flag so we must build both object types
 | 
|---|
 | 1278 |     case $host_os in
 | 
|---|
 | 1279 |     cygwin* | mingw* | pw32* | os2* | cegcc*)
 | 
|---|
 | 1280 |       pic_mode=default
 | 
|---|
 | 1281 |       ;;
 | 
|---|
 | 1282 |     esac
 | 
|---|
 | 1283 |     if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
 | 
|---|
 | 1284 |       # non-PIC code in shared libraries is not supported
 | 
|---|
 | 1285 |       pic_mode=default
 | 
|---|
 | 1286 |     fi
 | 
|---|
 | 1287 | 
 | 
|---|
 | 1288 |     # Calculate the filename of the output object if compiler does
 | 
|---|
 | 1289 |     # not support -o with -c
 | 
|---|
 | 1290 |     if test "$compiler_c_o" = no; then
 | 
|---|
 | 1291 |       output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 | 
|---|
 | 1292 |       lockfile="$output_obj.lock"
 | 
|---|
 | 1293 |     else
 | 
|---|
 | 1294 |       output_obj=
 | 
|---|
 | 1295 |       need_locks=no
 | 
|---|
 | 1296 |       lockfile=
 | 
|---|
 | 1297 |     fi
 | 
|---|
 | 1298 | 
 | 
|---|
 | 1299 |     # Lock this critical section if it is needed
 | 
|---|
 | 1300 |     # We use this script file to make the link, it avoids creating a new file
 | 
|---|
 | 1301 |     if test "$need_locks" = yes; then
 | 
|---|
 | 1302 |       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 | 
|---|
 | 1303 |         func_echo "Waiting for $lockfile to be removed"
 | 
|---|
 | 1304 |         sleep 2
 | 
|---|
 | 1305 |       done
 | 
|---|
 | 1306 |     elif test "$need_locks" = warn; then
 | 
|---|
 | 1307 |       if test -f "$lockfile"; then
 | 
|---|
 | 1308 |         $ECHO "\
 | 
|---|
 | 1309 | *** ERROR, $lockfile exists and contains:
 | 
|---|
 | 1310 | `cat $lockfile 2>/dev/null`
 | 
|---|
 | 1311 | 
 | 
|---|
 | 1312 | This indicates that another process is trying to use the same
 | 
|---|
 | 1313 | temporary object file, and libtool could not work around it because
 | 
|---|
 | 1314 | your compiler does not support \`-c' and \`-o' together.  If you
 | 
|---|
 | 1315 | repeat this compilation, it may succeed, by chance, but you had better
 | 
|---|
 | 1316 | avoid parallel builds (make -j) in this platform, or get a better
 | 
|---|
 | 1317 | compiler."
 | 
|---|
 | 1318 | 
 | 
|---|
 | 1319 |         $opt_dry_run || $RM $removelist
 | 
|---|
 | 1320 |         exit $EXIT_FAILURE
 | 
|---|
 | 1321 |       fi
 | 
|---|
 | 1322 |       removelist="$removelist $output_obj"
 | 
|---|
 | 1323 |       $ECHO "$srcfile" > "$lockfile"
 | 
|---|
 | 1324 |     fi
 | 
|---|
 | 1325 | 
 | 
|---|
 | 1326 |     $opt_dry_run || $RM $removelist
 | 
|---|
 | 1327 |     removelist="$removelist $lockfile"
 | 
|---|
 | 1328 |     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 | 
|---|
 | 1329 | 
 | 
|---|
 | 1330 |     if test -n "$fix_srcfile_path"; then
 | 
|---|
 | 1331 |       eval srcfile=\"$fix_srcfile_path\"
 | 
|---|
 | 1332 |     fi
 | 
|---|
 | 1333 |     func_quote_for_eval "$srcfile"
 | 
|---|
 | 1334 |     qsrcfile=$func_quote_for_eval_result
 | 
|---|
 | 1335 | 
 | 
|---|
 | 1336 |     # Only build a PIC object if we are building libtool libraries.
 | 
|---|
 | 1337 |     if test "$build_libtool_libs" = yes; then
 | 
|---|
 | 1338 |       # Without this assignment, base_compile gets emptied.
 | 
|---|
 | 1339 |       fbsd_hideous_sh_bug=$base_compile
 | 
|---|
 | 1340 | 
 | 
|---|
 | 1341 |       if test "$pic_mode" != no; then
 | 
|---|
 | 1342 |         command="$base_compile $qsrcfile $pic_flag"
 | 
|---|
 | 1343 |       else
 | 
|---|
 | 1344 |         # Don't build PIC code
 | 
|---|
 | 1345 |         command="$base_compile $qsrcfile"
 | 
|---|
 | 1346 |       fi
 | 
|---|
 | 1347 | 
 | 
|---|
 | 1348 |       func_mkdir_p "$xdir$objdir"
 | 
|---|
 | 1349 | 
 | 
|---|
 | 1350 |       if test -z "$output_obj"; then
 | 
|---|
 | 1351 |         # Place PIC objects in $objdir
 | 
|---|
 | 1352 |         command="$command -o $lobj"
 | 
|---|
 | 1353 |       fi
 | 
|---|
 | 1354 | 
 | 
|---|
 | 1355 |       func_show_eval_locale "$command"  \
 | 
|---|
 | 1356 |           'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 | 
|---|
 | 1357 | 
 | 
|---|
 | 1358 |       if test "$need_locks" = warn &&
 | 
|---|
 | 1359 |          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 | 
|---|
 | 1360 |         $ECHO "\
 | 
|---|
 | 1361 | *** ERROR, $lockfile contains:
 | 
|---|
 | 1362 | `cat $lockfile 2>/dev/null`
 | 
|---|
 | 1363 | 
 | 
|---|
 | 1364 | but it should contain:
 | 
|---|
 | 1365 | $srcfile
 | 
|---|
 | 1366 | 
 | 
|---|
 | 1367 | This indicates that another process is trying to use the same
 | 
|---|
 | 1368 | temporary object file, and libtool could not work around it because
 | 
|---|
 | 1369 | your compiler does not support \`-c' and \`-o' together.  If you
 | 
|---|
 | 1370 | repeat this compilation, it may succeed, by chance, but you had better
 | 
|---|
 | 1371 | avoid parallel builds (make -j) in this platform, or get a better
 | 
|---|
 | 1372 | compiler."
 | 
|---|
 | 1373 | 
 | 
|---|
 | 1374 |         $opt_dry_run || $RM $removelist
 | 
|---|
 | 1375 |         exit $EXIT_FAILURE
 | 
|---|
 | 1376 |       fi
 | 
|---|
 | 1377 | 
 | 
|---|
 | 1378 |       # Just move the object if needed, then go on to compile the next one
 | 
|---|
 | 1379 |       if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
 | 
|---|
 | 1380 |         func_show_eval '$MV "$output_obj" "$lobj"' \
 | 
|---|
 | 1381 |           'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 | 
|---|
 | 1382 |       fi
 | 
|---|
 | 1383 | 
 | 
|---|
 | 1384 |       # Allow error messages only from the first compilation.
 | 
|---|
 | 1385 |       if test "$suppress_opt" = yes; then
 | 
|---|
 | 1386 |         suppress_output=' >/dev/null 2>&1'
 | 
|---|
 | 1387 |       fi
 | 
|---|
 | 1388 |     fi
 | 
|---|
 | 1389 | 
 | 
|---|
 | 1390 |     # Only build a position-dependent object if we build old libraries.
 | 
|---|
 | 1391 |     if test "$build_old_libs" = yes; then
 | 
|---|
 | 1392 |       if test "$pic_mode" != yes; then
 | 
|---|
 | 1393 |         # Don't build PIC code
 | 
|---|
 | 1394 |         command="$base_compile $qsrcfile$pie_flag"
 | 
|---|
 | 1395 |       else
 | 
|---|
 | 1396 |         command="$base_compile $qsrcfile $pic_flag"
 | 
|---|
 | 1397 |       fi
 | 
|---|
 | 1398 |       if test "$compiler_c_o" = yes; then
 | 
|---|
 | 1399 |         command="$command -o $obj"
 | 
|---|
 | 1400 |       fi
 | 
|---|
 | 1401 | 
 | 
|---|
 | 1402 |       # Suppress compiler output if we already did a PIC compilation.
 | 
|---|
 | 1403 |       command="$command$suppress_output"
 | 
|---|
 | 1404 |       func_show_eval_locale "$command" \
 | 
|---|
 | 1405 |         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 | 
|---|
 | 1406 | 
 | 
|---|
 | 1407 |       if test "$need_locks" = warn &&
 | 
|---|
 | 1408 |          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 | 
|---|
 | 1409 |         $ECHO "\
 | 
|---|
 | 1410 | *** ERROR, $lockfile contains:
 | 
|---|
 | 1411 | `cat $lockfile 2>/dev/null`
 | 
|---|
 | 1412 | 
 | 
|---|
 | 1413 | but it should contain:
 | 
|---|
 | 1414 | $srcfile
 | 
|---|
 | 1415 | 
 | 
|---|
 | 1416 | This indicates that another process is trying to use the same
 | 
|---|
 | 1417 | temporary object file, and libtool could not work around it because
 | 
|---|
 | 1418 | your compiler does not support \`-c' and \`-o' together.  If you
 | 
|---|
 | 1419 | repeat this compilation, it may succeed, by chance, but you had better
 | 
|---|
 | 1420 | avoid parallel builds (make -j) in this platform, or get a better
 | 
|---|
 | 1421 | compiler."
 | 
|---|
 | 1422 | 
 | 
|---|
 | 1423 |         $opt_dry_run || $RM $removelist
 | 
|---|
 | 1424 |         exit $EXIT_FAILURE
 | 
|---|
 | 1425 |       fi
 | 
|---|
 | 1426 | 
 | 
|---|
 | 1427 |       # Just move the object if needed
 | 
|---|
 | 1428 |       if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
 | 
|---|
 | 1429 |         func_show_eval '$MV "$output_obj" "$obj"' \
 | 
|---|
 | 1430 |           'error=$?; $opt_dry_run || $RM $removelist; exit $error'
 | 
|---|
 | 1431 |       fi
 | 
|---|
 | 1432 |     fi
 | 
|---|
 | 1433 | 
 | 
|---|
 | 1434 |     $opt_dry_run || {
 | 
|---|
 | 1435 |       func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 | 
|---|
 | 1436 | 
 | 
|---|
 | 1437 |       # Unlock the critical section if it was locked
 | 
|---|
 | 1438 |       if test "$need_locks" != no; then
 | 
|---|
 | 1439 |         removelist=$lockfile
 | 
|---|
 | 1440 |         $RM "$lockfile"
 | 
|---|
 | 1441 |       fi
 | 
|---|
 | 1442 |     }
 | 
|---|
 | 1443 | 
 | 
|---|
 | 1444 |     exit $EXIT_SUCCESS
 | 
|---|
 | 1445 | }
 | 
|---|
 | 1446 | 
 | 
|---|
 | 1447 | $opt_help || {
 | 
|---|
 | 1448 | test "$mode" = compile && func_mode_compile ${1+"$@"}
 | 
|---|
 | 1449 | }
 | 
|---|
 | 1450 | 
 | 
|---|
 | 1451 | func_mode_help ()
 | 
|---|
 | 1452 | {
 | 
|---|
 | 1453 |     # We need to display help for each of the modes.
 | 
|---|
 | 1454 |     case $mode in
 | 
|---|
 | 1455 |       "")
 | 
|---|
 | 1456 |         # Generic help is extracted from the usage comments
 | 
|---|
 | 1457 |         # at the start of this file.
 | 
|---|
 | 1458 |         func_help
 | 
|---|
 | 1459 |         ;;
 | 
|---|
 | 1460 | 
 | 
|---|
 | 1461 |       clean)
 | 
|---|
 | 1462 |         $ECHO \
 | 
|---|
 | 1463 | "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 | 
|---|
 | 1464 | 
 | 
|---|
 | 1465 | Remove files from the build directory.
 | 
|---|
 | 1466 | 
 | 
|---|
 | 1467 | RM is the name of the program to use to delete files associated with each FILE
 | 
|---|
 | 1468 | (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 | 
|---|
 | 1469 | to RM.
 | 
|---|
 | 1470 | 
 | 
|---|
 | 1471 | If FILE is a libtool library, object or program, all the files associated
 | 
|---|
 | 1472 | with it are deleted. Otherwise, only FILE itself is deleted using RM."
 | 
|---|
 | 1473 |         ;;
 | 
|---|
 | 1474 | 
 | 
|---|
 | 1475 |       compile)
 | 
|---|
 | 1476 |       $ECHO \
 | 
|---|
 | 1477 | "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 | 
|---|
 | 1478 | 
 | 
|---|
 | 1479 | Compile a source file into a libtool library object.
 | 
|---|
 | 1480 | 
 | 
|---|
 | 1481 | This mode accepts the following additional options:
 | 
|---|
 | 1482 | 
 | 
|---|
 | 1483 |   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
 | 
|---|
 | 1484 |   -no-suppress      do not suppress compiler output for multiple passes
 | 
|---|
 | 1485 |   -prefer-pic       try to building PIC objects only
 | 
|---|
 | 1486 |   -prefer-non-pic   try to building non-PIC objects only
 | 
|---|
 | 1487 |   -shared           do not build a \`.o' file suitable for static linking
 | 
|---|
 | 1488 |   -static           only build a \`.o' file suitable for static linking
 | 
|---|
 | 1489 | 
 | 
|---|
 | 1490 | COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 | 
|---|
 | 1491 | from the given SOURCEFILE.
 | 
|---|
 | 1492 | 
 | 
|---|
 | 1493 | The output file name is determined by removing the directory component from
 | 
|---|
 | 1494 | SOURCEFILE, then substituting the C source code suffix \`.c' with the
 | 
|---|
 | 1495 | library object suffix, \`.lo'."
 | 
|---|
 | 1496 |         ;;
 | 
|---|
 | 1497 | 
 | 
|---|
 | 1498 |       execute)
 | 
|---|
 | 1499 |         $ECHO \
 | 
|---|
 | 1500 | "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
 | 
|---|
 | 1501 | 
 | 
|---|
 | 1502 | Automatically set library path, then run a program.
 | 
|---|
 | 1503 | 
 | 
|---|
 | 1504 | This mode accepts the following additional options:
 | 
|---|
 | 1505 | 
 | 
|---|
 | 1506 |   -dlopen FILE      add the directory containing FILE to the library path
 | 
|---|
 | 1507 | 
 | 
|---|
 | 1508 | This mode sets the library path environment variable according to \`-dlopen'
 | 
|---|
 | 1509 | flags.
 | 
|---|
 | 1510 | 
 | 
|---|
 | 1511 | If any of the ARGS are libtool executable wrappers, then they are translated
 | 
|---|
 | 1512 | into their corresponding uninstalled binary, and any of their required library
 | 
|---|
 | 1513 | directories are added to the library path.
 | 
|---|
 | 1514 | 
 | 
|---|
 | 1515 | Then, COMMAND is executed, with ARGS as arguments."
 | 
|---|
 | 1516 |         ;;
 | 
|---|
 | 1517 | 
 | 
|---|
 | 1518 |       finish)
 | 
|---|
 | 1519 |         $ECHO \
 | 
|---|
 | 1520 | "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
 | 
|---|
 | 1521 | 
 | 
|---|
 | 1522 | Complete the installation of libtool libraries.
 | 
|---|
 | 1523 | 
 | 
|---|
 | 1524 | Each LIBDIR is a directory that contains libtool libraries.
 | 
|---|
 | 1525 | 
 | 
|---|
 | 1526 | The commands that this mode executes may require superuser privileges.  Use
 | 
|---|
 | 1527 | the \`--dry-run' option if you just want to see what would be executed."
 | 
|---|
 | 1528 |         ;;
 | 
|---|
 | 1529 | 
 | 
|---|
 | 1530 |       install)
 | 
|---|
 | 1531 |         $ECHO \
 | 
|---|
 | 1532 | "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
 | 
|---|
 | 1533 | 
 | 
|---|
 | 1534 | Install executables or libraries.
 | 
|---|
 | 1535 | 
 | 
|---|
 | 1536 | INSTALL-COMMAND is the installation command.  The first component should be
 | 
|---|
 | 1537 | either the \`install' or \`cp' program.
 | 
|---|
 | 1538 | 
 | 
|---|
 | 1539 | The following components of INSTALL-COMMAND are treated specially:
 | 
|---|
 | 1540 | 
 | 
|---|
 | 1541 |   -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 | 
|---|
 | 1542 | 
 | 
|---|
 | 1543 | The rest of the components are interpreted as arguments to that command (only
 | 
|---|
 | 1544 | BSD-compatible install options are recognized)."
 | 
|---|
 | 1545 |         ;;
 | 
|---|
 | 1546 | 
 | 
|---|
 | 1547 |       link)
 | 
|---|
 | 1548 |         $ECHO \
 | 
|---|
 | 1549 | "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
 | 
|---|
 | 1550 | 
 | 
|---|
 | 1551 | Link object files or libraries together to form another library, or to
 | 
|---|
 | 1552 | create an executable program.
 | 
|---|
 | 1553 | 
 | 
|---|
 | 1554 | LINK-COMMAND is a command using the C compiler that you would use to create
 | 
|---|
 | 1555 | a program from several object files.
 | 
|---|
 | 1556 | 
 | 
|---|
 | 1557 | The following components of LINK-COMMAND are treated specially:
 | 
|---|
 | 1558 | 
 | 
|---|
 | 1559 |   -all-static       do not do any dynamic linking at all
 | 
|---|
 | 1560 |   -avoid-version    do not add a version suffix if possible
 | 
|---|
 | 1561 |   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
 | 
|---|
 | 1562 |   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
 | 
|---|
 | 1563 |   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
 | 
|---|
 | 1564 |   -export-symbols SYMFILE
 | 
|---|
 | 1565 |                     try to export only the symbols listed in SYMFILE
 | 
|---|
 | 1566 |   -export-symbols-regex REGEX
 | 
|---|
 | 1567 |                     try to export only the symbols matching REGEX
 | 
|---|
 | 1568 |   -LLIBDIR          search LIBDIR for required installed libraries
 | 
|---|
 | 1569 |   -lNAME            OUTPUT-FILE requires the installed library libNAME
 | 
|---|
 | 1570 |   -module           build a library that can dlopened
 | 
|---|
 | 1571 |   -no-fast-install  disable the fast-install mode
 | 
|---|
 | 1572 |   -no-install       link a not-installable executable
 | 
|---|
 | 1573 |   -no-undefined     declare that a library does not refer to external symbols
 | 
|---|
 | 1574 |   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
 | 
|---|
 | 1575 |   -objectlist FILE  Use a list of object files found in FILE to specify objects
 | 
|---|
 | 1576 |   -precious-files-regex REGEX
 | 
|---|
 | 1577 |                     don't remove output files matching REGEX
 | 
|---|
 | 1578 |   -release RELEASE  specify package release information
 | 
|---|
 | 1579 |   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
 | 
|---|
 | 1580 |   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
 | 
|---|
 | 1581 |   -shared           only do dynamic linking of libtool libraries
 | 
|---|
 | 1582 |   -shrext SUFFIX    override the standard shared library file extension
 | 
|---|
 | 1583 |   -static           do not do any dynamic linking of uninstalled libtool libraries
 | 
|---|
 | 1584 |   -static-libtool-libs
 | 
|---|
 | 1585 |                     do not do any dynamic linking of libtool libraries
 | 
|---|
 | 1586 |   -version-info CURRENT[:REVISION[:AGE]]
 | 
|---|
 | 1587 |                     specify library version info [each variable defaults to 0]
 | 
|---|
 | 1588 |   -weak LIBNAME     declare that the target provides the LIBNAME interface
 | 
|---|
 | 1589 | 
 | 
|---|
 | 1590 | All other options (arguments beginning with \`-') are ignored.
 | 
|---|
 | 1591 | 
 | 
|---|
 | 1592 | Every other argument is treated as a filename.  Files ending in \`.la' are
 | 
|---|
 | 1593 | treated as uninstalled libtool libraries, other files are standard or library
 | 
|---|
 | 1594 | object files.
 | 
|---|
 | 1595 | 
 | 
|---|
 | 1596 | If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
 | 
|---|
 | 1597 | only library objects (\`.lo' files) may be specified, and \`-rpath' is
 | 
|---|
 | 1598 | required, except when creating a convenience library.
 | 
|---|
 | 1599 | 
 | 
|---|
 | 1600 | If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
 | 
|---|
 | 1601 | using \`ar' and \`ranlib', or on Windows using \`lib'.
 | 
|---|
 | 1602 | 
 | 
|---|
 | 1603 | If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
 | 
|---|
 | 1604 | is created, otherwise an executable program is created."
 | 
|---|
 | 1605 |         ;;
 | 
|---|
 | 1606 | 
 | 
|---|
 | 1607 |       uninstall)
 | 
|---|
 | 1608 |         $ECHO \
 | 
|---|
 | 1609 | "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 | 
|---|
 | 1610 | 
 | 
|---|
 | 1611 | Remove libraries from an installation directory.
 | 
|---|
 | 1612 | 
 | 
|---|
 | 1613 | RM is the name of the program to use to delete files associated with each FILE
 | 
|---|
 | 1614 | (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 | 
|---|
 | 1615 | to RM.
 | 
|---|
 | 1616 | 
 | 
|---|
 | 1617 | If FILE is a libtool library, all the files associated with it are deleted.
 | 
|---|
 | 1618 | Otherwise, only FILE itself is deleted using RM."
 | 
|---|
 | 1619 |         ;;
 | 
|---|
 | 1620 | 
 | 
|---|
 | 1621 |       *)
 | 
|---|
 | 1622 |         func_fatal_help "invalid operation mode \`$mode'"
 | 
|---|
 | 1623 |         ;;
 | 
|---|
 | 1624 |     esac
 | 
|---|
 | 1625 | 
 | 
|---|
 | 1626 |     $ECHO
 | 
|---|
 | 1627 |     $ECHO "Try \`$progname --help' for more information about other modes."
 | 
|---|
 | 1628 | 
 | 
|---|
 | 1629 |     exit $?
 | 
|---|
 | 1630 | }
 | 
|---|
 | 1631 | 
 | 
|---|
 | 1632 |   # Now that we've collected a possible --mode arg, show help if necessary
 | 
|---|
 | 1633 |   $opt_help && func_mode_help
 | 
|---|
 | 1634 | 
 | 
|---|
 | 1635 | 
 | 
|---|
 | 1636 | # func_mode_execute arg...
 | 
|---|
 | 1637 | func_mode_execute ()
 | 
|---|
 | 1638 | {
 | 
|---|
 | 1639 |     $opt_debug
 | 
|---|
 | 1640 |     # The first argument is the command name.
 | 
|---|
 | 1641 |     cmd="$nonopt"
 | 
|---|
 | 1642 |     test -z "$cmd" && \
 | 
|---|
 | 1643 |       func_fatal_help "you must specify a COMMAND"
 | 
|---|
 | 1644 | 
 | 
|---|
 | 1645 |     # Handle -dlopen flags immediately.
 | 
|---|
 | 1646 |     for file in $execute_dlfiles; do
 | 
|---|
 | 1647 |       test -f "$file" \
 | 
|---|
 | 1648 |         || func_fatal_help "\`$file' is not a file"
 | 
|---|
 | 1649 | 
 | 
|---|
 | 1650 |       dir=
 | 
|---|
 | 1651 |       case $file in
 | 
|---|
 | 1652 |       *.la)
 | 
|---|
 | 1653 |         # Check to see that this really is a libtool archive.
 | 
|---|
 | 1654 |         func_lalib_unsafe_p "$file" \
 | 
|---|
 | 1655 |           || func_fatal_help "\`$lib' is not a valid libtool archive"
 | 
|---|
 | 1656 | 
 | 
|---|
 | 1657 |         # Read the libtool library.
 | 
|---|
 | 1658 |         dlname=
 | 
|---|
 | 1659 |         library_names=
 | 
|---|
 | 1660 |         func_source "$file"
 | 
|---|
 | 1661 | 
 | 
|---|
 | 1662 |         # Skip this library if it cannot be dlopened.
 | 
|---|
 | 1663 |         if test -z "$dlname"; then
 | 
|---|
 | 1664 |           # Warn if it was a shared library.
 | 
|---|
 | 1665 |           test -n "$library_names" && \
 | 
|---|
 | 1666 |             func_warning "\`$file' was not linked with \`-export-dynamic'"
 | 
|---|
 | 1667 |           continue
 | 
|---|
 | 1668 |         fi
 | 
|---|
 | 1669 | 
 | 
|---|
 | 1670 |         func_dirname "$file" "" "."
 | 
|---|
 | 1671 |         dir="$func_dirname_result"
 | 
|---|
 | 1672 | 
 | 
|---|
 | 1673 |         if test -f "$dir/$objdir/$dlname"; then
 | 
|---|
 | 1674 |           dir="$dir/$objdir"
 | 
|---|
 | 1675 |         else
 | 
|---|
 | 1676 |           if test ! -f "$dir/$dlname"; then
 | 
|---|
 | 1677 |             func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
 | 
|---|
 | 1678 |           fi
 | 
|---|
 | 1679 |         fi
 | 
|---|
 | 1680 |         ;;
 | 
|---|
 | 1681 | 
 | 
|---|
 | 1682 |       *.lo)
 | 
|---|
 | 1683 |         # Just add the directory containing the .lo file.
 | 
|---|
 | 1684 |         func_dirname "$file" "" "."
 | 
|---|
 | 1685 |         dir="$func_dirname_result"
 | 
|---|
 | 1686 |         ;;
 | 
|---|
 | 1687 | 
 | 
|---|
 | 1688 |       *)
 | 
|---|
 | 1689 |         func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
 | 
|---|
 | 1690 |         continue
 | 
|---|
 | 1691 |         ;;
 | 
|---|
 | 1692 |       esac
 | 
|---|
 | 1693 | 
 | 
|---|
 | 1694 |       # Get the absolute pathname.
 | 
|---|
 | 1695 |       absdir=`cd "$dir" && pwd`
 | 
|---|
 | 1696 |       test -n "$absdir" && dir="$absdir"
 | 
|---|
 | 1697 | 
 | 
|---|
 | 1698 |       # Now add the directory to shlibpath_var.
 | 
|---|
 | 1699 |       if eval "test -z \"\$$shlibpath_var\""; then
 | 
|---|
 | 1700 |         eval "$shlibpath_var=\"\$dir\""
 | 
|---|
 | 1701 |       else
 | 
|---|
 | 1702 |         eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
 | 
|---|
 | 1703 |       fi
 | 
|---|
 | 1704 |     done
 | 
|---|
 | 1705 | 
 | 
|---|
 | 1706 |     # This variable tells wrapper scripts just to set shlibpath_var
 | 
|---|
 | 1707 |     # rather than running their programs.
 | 
|---|
 | 1708 |     libtool_execute_magic="$magic"
 | 
|---|
 | 1709 | 
 | 
|---|
 | 1710 |     # Check if any of the arguments is a wrapper script.
 | 
|---|
 | 1711 |     args=
 | 
|---|
 | 1712 |     for file
 | 
|---|
 | 1713 |     do
 | 
|---|
 | 1714 |       case $file in
 | 
|---|
 | 1715 |       -*) ;;
 | 
|---|
 | 1716 |       *)
 | 
|---|
 | 1717 |         # Do a test to see if this is really a libtool program.
 | 
|---|
 | 1718 |         if func_ltwrapper_script_p "$file"; then
 | 
|---|
 | 1719 |           func_source "$file"
 | 
|---|
 | 1720 |           # Transform arg to wrapped name.
 | 
|---|
 | 1721 |           file="$progdir/$program"
 | 
|---|
 | 1722 |         elif func_ltwrapper_executable_p "$file"; then
 | 
|---|
 | 1723 |           func_ltwrapper_scriptname "$file"
 | 
|---|
 | 1724 |           func_source "$func_ltwrapper_scriptname_result"
 | 
|---|
 | 1725 |           # Transform arg to wrapped name.
 | 
|---|
 | 1726 |           file="$progdir/$program"
 | 
|---|
 | 1727 |         fi
 | 
|---|
 | 1728 |         ;;
 | 
|---|
 | 1729 |       esac
 | 
|---|
 | 1730 |       # Quote arguments (to preserve shell metacharacters).
 | 
|---|
 | 1731 |       func_quote_for_eval "$file"
 | 
|---|
 | 1732 |       args="$args $func_quote_for_eval_result"
 | 
|---|
 | 1733 |     done
 | 
|---|
 | 1734 | 
 | 
|---|
 | 1735 |     if test "X$opt_dry_run" = Xfalse; then
 | 
|---|
 | 1736 |       if test -n "$shlibpath_var"; then
 | 
|---|
 | 1737 |         # Export the shlibpath_var.
 | 
|---|
 | 1738 |         eval "export $shlibpath_var"
 | 
|---|
 | 1739 |       fi
 | 
|---|
 | 1740 | 
 | 
|---|
 | 1741 |       # Restore saved environment variables
 | 
|---|
 | 1742 |       for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 | 
|---|
 | 1743 |       do
 | 
|---|
 | 1744 |         eval "if test \"\${save_$lt_var+set}\" = set; then
 | 
|---|
 | 1745 |                 $lt_var=\$save_$lt_var; export $lt_var
 | 
|---|
 | 1746 |               else
 | 
|---|
 | 1747 |                 $lt_unset $lt_var
 | 
|---|
 | 1748 |               fi"
 | 
|---|
 | 1749 |       done
 | 
|---|
 | 1750 | 
 | 
|---|
 | 1751 |       # Now prepare to actually exec the command.
 | 
|---|
 | 1752 |       exec_cmd="\$cmd$args"
 | 
|---|
 | 1753 |     else
 | 
|---|
 | 1754 |       # Display what would be done.
 | 
|---|
 | 1755 |       if test -n "$shlibpath_var"; then
 | 
|---|
 | 1756 |         eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
 | 
|---|
 | 1757 |         $ECHO "export $shlibpath_var"
 | 
|---|
 | 1758 |       fi
 | 
|---|
 | 1759 |       $ECHO "$cmd$args"
 | 
|---|
 | 1760 |       exit $EXIT_SUCCESS
 | 
|---|
 | 1761 |     fi
 | 
|---|
 | 1762 | }
 | 
|---|
 | 1763 | 
 | 
|---|
 | 1764 | test "$mode" = execute && func_mode_execute ${1+"$@"}
 | 
|---|
 | 1765 | 
 | 
|---|
 | 1766 | 
 | 
|---|
 | 1767 | # func_mode_finish arg...
 | 
|---|
 | 1768 | func_mode_finish ()
 | 
|---|
 | 1769 | {
 | 
|---|
 | 1770 |     $opt_debug
 | 
|---|
 | 1771 |     libdirs="$nonopt"
 | 
|---|
 | 1772 |     admincmds=
 | 
|---|
 | 1773 | 
 | 
|---|
 | 1774 |     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 | 
|---|
 | 1775 |       for dir
 | 
|---|
 | 1776 |       do
 | 
|---|
 | 1777 |         libdirs="$libdirs $dir"
 | 
|---|
 | 1778 |       done
 | 
|---|
 | 1779 | 
 | 
|---|
 | 1780 |       for libdir in $libdirs; do
 | 
|---|
 | 1781 |         if test -n "$finish_cmds"; then
 | 
|---|
 | 1782 |           # Do each command in the finish commands.
 | 
|---|
 | 1783 |           func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
 | 
|---|
 | 1784 | '"$cmd"'"'
 | 
|---|
 | 1785 |         fi
 | 
|---|
 | 1786 |         if test -n "$finish_eval"; then
 | 
|---|
 | 1787 |           # Do the single finish_eval.
 | 
|---|
 | 1788 |           eval cmds=\"$finish_eval\"
 | 
|---|
 | 1789 |           $opt_dry_run || eval "$cmds" || admincmds="$admincmds
 | 
|---|
 | 1790 |        $cmds"
 | 
|---|
 | 1791 |         fi
 | 
|---|
 | 1792 |       done
 | 
|---|
 | 1793 |     fi
 | 
|---|
 | 1794 | 
 | 
|---|
 | 1795 |     # Exit here if they wanted silent mode.
 | 
|---|
 | 1796 |     $opt_silent && exit $EXIT_SUCCESS
 | 
|---|
 | 1797 | 
 | 
|---|
 | 1798 |     $ECHO "X----------------------------------------------------------------------" | $Xsed
 | 
|---|
 | 1799 |     $ECHO "Libraries have been installed in:"
 | 
|---|
 | 1800 |     for libdir in $libdirs; do
 | 
|---|
 | 1801 |       $ECHO "   $libdir"
 | 
|---|
 | 1802 |     done
 | 
|---|
 | 1803 |     $ECHO
 | 
|---|
 | 1804 |     $ECHO "If you ever happen to want to link against installed libraries"
 | 
|---|
 | 1805 |     $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
 | 
|---|
 | 1806 |     $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
 | 
|---|
 | 1807 |     $ECHO "flag during linking and do at least one of the following:"
 | 
|---|
 | 1808 |     if test -n "$shlibpath_var"; then
 | 
|---|
 | 1809 |       $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 | 
|---|
 | 1810 |       $ECHO "     during execution"
 | 
|---|
 | 1811 |     fi
 | 
|---|
 | 1812 |     if test -n "$runpath_var"; then
 | 
|---|
 | 1813 |       $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
 | 
|---|
 | 1814 |       $ECHO "     during linking"
 | 
|---|
 | 1815 |     fi
 | 
|---|
 | 1816 |     if test -n "$hardcode_libdir_flag_spec"; then
 | 
|---|
 | 1817 |       libdir=LIBDIR
 | 
|---|
 | 1818 |       eval flag=\"$hardcode_libdir_flag_spec\"
 | 
|---|
 | 1819 | 
 | 
|---|
 | 1820 |       $ECHO "   - use the \`$flag' linker flag"
 | 
|---|
 | 1821 |     fi
 | 
|---|
 | 1822 |     if test -n "$admincmds"; then
 | 
|---|
 | 1823 |       $ECHO "   - have your system administrator run these commands:$admincmds"
 | 
|---|
 | 1824 |     fi
 | 
|---|
 | 1825 |     if test -f /etc/ld.so.conf; then
 | 
|---|
 | 1826 |       $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 | 
|---|
 | 1827 |     fi
 | 
|---|
 | 1828 |     $ECHO
 | 
|---|
 | 1829 | 
 | 
|---|
 | 1830 |     $ECHO "See any operating system documentation about shared libraries for"
 | 
|---|
 | 1831 |     case $host in
 | 
|---|
 | 1832 |       solaris2.[6789]|solaris2.1[0-9])
 | 
|---|
 | 1833 |         $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
 | 
|---|
 | 1834 |         $ECHO "pages."
 | 
|---|
 | 1835 |         ;;
 | 
|---|
 | 1836 |       *)
 | 
|---|
 | 1837 |         $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
 | 
|---|
 | 1838 |         ;;
 | 
|---|
 | 1839 |     esac
 | 
|---|
 | 1840 |     $ECHO "X----------------------------------------------------------------------" | $Xsed
 | 
|---|
 | 1841 |     exit $EXIT_SUCCESS
 | 
|---|
 | 1842 | }
 | 
|---|
 | 1843 | 
 | 
|---|
 | 1844 | test "$mode" = finish && func_mode_finish ${1+"$@"}
 | 
|---|
 | 1845 | 
 | 
|---|
 | 1846 | 
 | 
|---|
 | 1847 | # func_mode_install arg...
 | 
|---|
 | 1848 | func_mode_install ()
 | 
|---|
 | 1849 | {
 | 
|---|
 | 1850 |     $opt_debug
 | 
|---|
 | 1851 |     # There may be an optional sh(1) argument at the beginning of
 | 
|---|
 | 1852 |     # install_prog (especially on Windows NT).
 | 
|---|
 | 1853 |     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
 | 
|---|
 | 1854 |        # Allow the use of GNU shtool's install command.
 | 
|---|
 | 1855 |        $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
 | 
|---|
 | 1856 |       # Aesthetically quote it.
 | 
|---|
 | 1857 |       func_quote_for_eval "$nonopt"
 | 
|---|
 | 1858 |       install_prog="$func_quote_for_eval_result "
 | 
|---|
 | 1859 |       arg=$1
 | 
|---|
 | 1860 |       shift
 | 
|---|
 | 1861 |     else
 | 
|---|
 | 1862 |       install_prog=
 | 
|---|
 | 1863 |       arg=$nonopt
 | 
|---|
 | 1864 |     fi
 | 
|---|
 | 1865 | 
 | 
|---|
 | 1866 |     # The real first argument should be the name of the installation program.
 | 
|---|
 | 1867 |     # Aesthetically quote it.
 | 
|---|
 | 1868 |     func_quote_for_eval "$arg"
 | 
|---|
 | 1869 |     install_prog="$install_prog$func_quote_for_eval_result"
 | 
|---|
 | 1870 | 
 | 
|---|
 | 1871 |     # We need to accept at least all the BSD install flags.
 | 
|---|
 | 1872 |     dest=
 | 
|---|
 | 1873 |     files=
 | 
|---|
 | 1874 |     opts=
 | 
|---|
 | 1875 |     prev=
 | 
|---|
 | 1876 |     install_type=
 | 
|---|
 | 1877 |     isdir=no
 | 
|---|
 | 1878 |     stripme=
 | 
|---|
 | 1879 |     for arg
 | 
|---|
 | 1880 |     do
 | 
|---|
 | 1881 |       if test -n "$dest"; then
 | 
|---|
 | 1882 |         files="$files $dest"
 | 
|---|
 | 1883 |         dest=$arg
 | 
|---|
 | 1884 |         continue
 | 
|---|
 | 1885 |       fi
 | 
|---|
 | 1886 | 
 | 
|---|
 | 1887 |       case $arg in
 | 
|---|
 | 1888 |       -d) isdir=yes ;;
 | 
|---|
 | 1889 |       -f)
 | 
|---|
 | 1890 |         case " $install_prog " in
 | 
|---|
 | 1891 |         *[\\\ /]cp\ *) ;;
 | 
|---|
 | 1892 |         *) prev=$arg ;;
 | 
|---|
 | 1893 |         esac
 | 
|---|
 | 1894 |         ;;
 | 
|---|
 | 1895 |       -g | -m | -o)
 | 
|---|
 | 1896 |         prev=$arg
 | 
|---|
 | 1897 |         ;;
 | 
|---|
 | 1898 |       -s)
 | 
|---|
 | 1899 |         stripme=" -s"
 | 
|---|
 | 1900 |         continue
 | 
|---|
 | 1901 |         ;;
 | 
|---|
 | 1902 |       -*)
 | 
|---|
 | 1903 |         ;;
 | 
|---|
 | 1904 |       *)
 | 
|---|
 | 1905 |         # If the previous option needed an argument, then skip it.
 | 
|---|
 | 1906 |         if test -n "$prev"; then
 | 
|---|
 | 1907 |           prev=
 | 
|---|
 | 1908 |         else
 | 
|---|
 | 1909 |           dest=$arg
 | 
|---|
 | 1910 |           continue
 | 
|---|
 | 1911 |         fi
 | 
|---|
 | 1912 |         ;;
 | 
|---|
 | 1913 |       esac
 | 
|---|
 | 1914 | 
 | 
|---|
 | 1915 |       # Aesthetically quote the argument.
 | 
|---|
 | 1916 |       func_quote_for_eval "$arg"
 | 
|---|
 | 1917 |       install_prog="$install_prog $func_quote_for_eval_result"
 | 
|---|
 | 1918 |     done
 | 
|---|
 | 1919 | 
 | 
|---|
 | 1920 |     test -z "$install_prog" && \
 | 
|---|
 | 1921 |       func_fatal_help "you must specify an install program"
 | 
|---|
 | 1922 | 
 | 
|---|
 | 1923 |     test -n "$prev" && \
 | 
|---|
 | 1924 |       func_fatal_help "the \`$prev' option requires an argument"
 | 
|---|
 | 1925 | 
 | 
|---|
 | 1926 |     if test -z "$files"; then
 | 
|---|
 | 1927 |       if test -z "$dest"; then
 | 
|---|
 | 1928 |         func_fatal_help "no file or destination specified"
 | 
|---|
 | 1929 |       else
 | 
|---|
 | 1930 |         func_fatal_help "you must specify a destination"
 | 
|---|
 | 1931 |       fi
 | 
|---|
 | 1932 |     fi
 | 
|---|
 | 1933 | 
 | 
|---|
 | 1934 |     # Strip any trailing slash from the destination.
 | 
|---|
 | 1935 |     func_stripname '' '/' "$dest"
 | 
|---|
 | 1936 |     dest=$func_stripname_result
 | 
|---|
 | 1937 | 
 | 
|---|
 | 1938 |     # Check to see that the destination is a directory.
 | 
|---|
 | 1939 |     test -d "$dest" && isdir=yes
 | 
|---|
 | 1940 |     if test "$isdir" = yes; then
 | 
|---|
 | 1941 |       destdir="$dest"
 | 
|---|
 | 1942 |       destname=
 | 
|---|
 | 1943 |     else
 | 
|---|
 | 1944 |       func_dirname_and_basename "$dest" "" "."
 | 
|---|
 | 1945 |       destdir="$func_dirname_result"
 | 
|---|
 | 1946 |       destname="$func_basename_result"
 | 
|---|
 | 1947 | 
 | 
|---|
 | 1948 |       # Not a directory, so check to see that there is only one file specified.
 | 
|---|
 | 1949 |       set dummy $files; shift
 | 
|---|
 | 1950 |       test "$#" -gt 1 && \
 | 
|---|
 | 1951 |         func_fatal_help "\`$dest' is not a directory"
 | 
|---|
 | 1952 |     fi
 | 
|---|
 | 1953 |     case $destdir in
 | 
|---|
 | 1954 |     [\\/]* | [A-Za-z]:[\\/]*) ;;
 | 
|---|
 | 1955 |     *)
 | 
|---|
 | 1956 |       for file in $files; do
 | 
|---|
 | 1957 |         case $file in
 | 
|---|
 | 1958 |         *.lo) ;;
 | 
|---|
 | 1959 |         *)
 | 
|---|
 | 1960 |           func_fatal_help "\`$destdir' must be an absolute directory name"
 | 
|---|
 | 1961 |           ;;
 | 
|---|
 | 1962 |         esac
 | 
|---|
 | 1963 |       done
 | 
|---|
 | 1964 |       ;;
 | 
|---|
 | 1965 |     esac
 | 
|---|
 | 1966 | 
 | 
|---|
 | 1967 |     # This variable tells wrapper scripts just to set variables rather
 | 
|---|
 | 1968 |     # than running their programs.
 | 
|---|
 | 1969 |     libtool_install_magic="$magic"
 | 
|---|
 | 1970 | 
 | 
|---|
 | 1971 |     staticlibs=
 | 
|---|
 | 1972 |     future_libdirs=
 | 
|---|
 | 1973 |     current_libdirs=
 | 
|---|
 | 1974 |     for file in $files; do
 | 
|---|
 | 1975 | 
 | 
|---|
 | 1976 |       # Do each installation.
 | 
|---|
 | 1977 |       case $file in
 | 
|---|
 | 1978 |       *.$libext)
 | 
|---|
 | 1979 |         # Do the static libraries later.
 | 
|---|
 | 1980 |         staticlibs="$staticlibs $file"
 | 
|---|
 | 1981 |         ;;
 | 
|---|
 | 1982 | 
 | 
|---|
 | 1983 |       *.la)
 | 
|---|
 | 1984 |         # Check to see that this really is a libtool archive.
 | 
|---|
 | 1985 |         func_lalib_unsafe_p "$file" \
 | 
|---|
 | 1986 |           || func_fatal_help "\`$file' is not a valid libtool archive"
 | 
|---|
 | 1987 | 
 | 
|---|
 | 1988 |         library_names=
 | 
|---|
 | 1989 |         old_library=
 | 
|---|
 | 1990 |         relink_command=
 | 
|---|
 | 1991 |         func_source "$file"
 | 
|---|
 | 1992 | 
 | 
|---|
 | 1993 |         # Add the libdir to current_libdirs if it is the destination.
 | 
|---|
 | 1994 |         if test "X$destdir" = "X$libdir"; then
 | 
|---|
 | 1995 |           case "$current_libdirs " in
 | 
|---|
 | 1996 |           *" $libdir "*) ;;
 | 
|---|
 | 1997 |           *) current_libdirs="$current_libdirs $libdir" ;;
 | 
|---|
 | 1998 |           esac
 | 
|---|
 | 1999 |         else
 | 
|---|
 | 2000 |           # Note the libdir as a future libdir.
 | 
|---|
 | 2001 |           case "$future_libdirs " in
 | 
|---|
 | 2002 |           *" $libdir "*) ;;
 | 
|---|
 | 2003 |           *) future_libdirs="$future_libdirs $libdir" ;;
 | 
|---|
 | 2004 |           esac
 | 
|---|
 | 2005 |         fi
 | 
|---|
 | 2006 | 
 | 
|---|
 | 2007 |         func_dirname "$file" "/" ""
 | 
|---|
 | 2008 |         dir="$func_dirname_result"
 | 
|---|
 | 2009 |         dir="$dir$objdir"
 | 
|---|
 | 2010 | 
 | 
|---|
 | 2011 |         if test -n "$relink_command"; then
 | 
|---|
 | 2012 |           # Determine the prefix the user has applied to our future dir.
 | 
|---|
 | 2013 |           inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
 | 
|---|
 | 2014 | 
 | 
|---|
 | 2015 |           # Don't allow the user to place us outside of our expected
 | 
|---|
 | 2016 |           # location b/c this prevents finding dependent libraries that
 | 
|---|
 | 2017 |           # are installed to the same prefix.
 | 
|---|
 | 2018 |           # At present, this check doesn't affect windows .dll's that
 | 
|---|
 | 2019 |           # are installed into $libdir/../bin (currently, that works fine)
 | 
|---|
 | 2020 |           # but it's something to keep an eye on.
 | 
|---|
 | 2021 |           test "$inst_prefix_dir" = "$destdir" && \
 | 
|---|
 | 2022 |             func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
 | 
|---|
 | 2023 | 
 | 
|---|
 | 2024 |           if test -n "$inst_prefix_dir"; then
 | 
|---|
 | 2025 |             # Stick the inst_prefix_dir data into the link command.
 | 
|---|
 | 2026 |             relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 | 
|---|
 | 2027 |           else
 | 
|---|
 | 2028 |             relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
 | 
|---|
 | 2029 |           fi
 | 
|---|
 | 2030 | 
 | 
|---|
 | 2031 |           func_warning "relinking \`$file'"
 | 
|---|
 | 2032 |           func_show_eval "$relink_command" \
 | 
|---|
 | 2033 |             'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
 | 
|---|
 | 2034 |         fi
 | 
|---|
 | 2035 | 
 | 
|---|
 | 2036 |         # See the names of the shared library.
 | 
|---|
 | 2037 |         set dummy $library_names; shift
 | 
|---|
 | 2038 |         if test -n "$1"; then
 | 
|---|
 | 2039 |           realname="$1"
 | 
|---|
 | 2040 |           shift
 | 
|---|
 | 2041 | 
 | 
|---|
 | 2042 |           srcname="$realname"
 | 
|---|
 | 2043 |           test -n "$relink_command" && srcname="$realname"T
 | 
|---|
 | 2044 | 
 | 
|---|
 | 2045 |           # Install the shared library and build the symlinks.
 | 
|---|
 | 2046 |           func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
 | 
|---|
 | 2047 |               'exit $?'
 | 
|---|
 | 2048 |           tstripme="$stripme"
 | 
|---|
 | 2049 |           case $host_os in
 | 
|---|
 | 2050 |           cygwin* | mingw* | pw32* | cegcc*)
 | 
|---|
 | 2051 |             case $realname in
 | 
|---|
 | 2052 |             *.dll.a)
 | 
|---|
 | 2053 |               tstripme=""
 | 
|---|
 | 2054 |               ;;
 | 
|---|
 | 2055 |             esac
 | 
|---|
 | 2056 |             ;;
 | 
|---|
 | 2057 |           esac
 | 
|---|
 | 2058 |           if test -n "$tstripme" && test -n "$striplib"; then
 | 
|---|
 | 2059 |             func_show_eval "$striplib $destdir/$realname" 'exit $?'
 | 
|---|
 | 2060 |           fi
 | 
|---|
 | 2061 | 
 | 
|---|
 | 2062 |           if test "$#" -gt 0; then
 | 
|---|
 | 2063 |             # Delete the old symlinks, and create new ones.
 | 
|---|
 | 2064 |             # Try `ln -sf' first, because the `ln' binary might depend on
 | 
|---|
 | 2065 |             # the symlink we replace!  Solaris /bin/ln does not understand -f,
 | 
|---|
 | 2066 |             # so we also need to try rm && ln -s.
 | 
|---|
 | 2067 |             for linkname
 | 
|---|
 | 2068 |             do
 | 
|---|
 | 2069 |               test "$linkname" != "$realname" \
 | 
|---|
 | 2070 |                 && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
 | 
|---|
 | 2071 |             done
 | 
|---|
 | 2072 |           fi
 | 
|---|
 | 2073 | 
 | 
|---|
 | 2074 |           # Do each command in the postinstall commands.
 | 
|---|
 | 2075 |           lib="$destdir/$realname"
 | 
|---|
 | 2076 |           func_execute_cmds "$postinstall_cmds" 'exit $?'
 | 
|---|
 | 2077 |         fi
 | 
|---|
 | 2078 | 
 | 
|---|
 | 2079 |         # Install the pseudo-library for information purposes.
 | 
|---|
 | 2080 |         func_basename "$file"
 | 
|---|
 | 2081 |         name="$func_basename_result"
 | 
|---|
 | 2082 |         instname="$dir/$name"i
 | 
|---|
 | 2083 |         func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 | 
|---|
 | 2084 | 
 | 
|---|
 | 2085 |         # Maybe install the static library, too.
 | 
|---|
 | 2086 |         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 | 
|---|
 | 2087 |         ;;
 | 
|---|
 | 2088 | 
 | 
|---|
 | 2089 |       *.lo)
 | 
|---|
 | 2090 |         # Install (i.e. copy) a libtool object.
 | 
|---|
 | 2091 | 
 | 
|---|
 | 2092 |         # Figure out destination file name, if it wasn't already specified.
 | 
|---|
 | 2093 |         if test -n "$destname"; then
 | 
|---|
 | 2094 |           destfile="$destdir/$destname"
 | 
|---|
 | 2095 |         else
 | 
|---|
 | 2096 |           func_basename "$file"
 | 
|---|
 | 2097 |           destfile="$func_basename_result"
 | 
|---|
 | 2098 |           destfile="$destdir/$destfile"
 | 
|---|
 | 2099 |         fi
 | 
|---|
 | 2100 | 
 | 
|---|
 | 2101 |         # Deduce the name of the destination old-style object file.
 | 
|---|
 | 2102 |         case $destfile in
 | 
|---|
 | 2103 |         *.lo)
 | 
|---|
 | 2104 |           func_lo2o "$destfile"
 | 
|---|
 | 2105 |           staticdest=$func_lo2o_result
 | 
|---|
 | 2106 |           ;;
 | 
|---|
 | 2107 |         *.$objext)
 | 
|---|
 | 2108 |           staticdest="$destfile"
 | 
|---|
 | 2109 |           destfile=
 | 
|---|
 | 2110 |           ;;
 | 
|---|
 | 2111 |         *)
 | 
|---|
 | 2112 |           func_fatal_help "cannot copy a libtool object to \`$destfile'"
 | 
|---|
 | 2113 |           ;;
 | 
|---|
 | 2114 |         esac
 | 
|---|
 | 2115 | 
 | 
|---|
 | 2116 |         # Install the libtool object if requested.
 | 
|---|
 | 2117 |         test -n "$destfile" && \
 | 
|---|
 | 2118 |           func_show_eval "$install_prog $file $destfile" 'exit $?'
 | 
|---|
 | 2119 | 
 | 
|---|
 | 2120 |         # Install the old object if enabled.
 | 
|---|
 | 2121 |         if test "$build_old_libs" = yes; then
 | 
|---|
 | 2122 |           # Deduce the name of the old-style object file.
 | 
|---|
 | 2123 |           func_lo2o "$file"
 | 
|---|
 | 2124 |           staticobj=$func_lo2o_result
 | 
|---|
 | 2125 |           func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
 | 
|---|
 | 2126 |         fi
 | 
|---|
 | 2127 |         exit $EXIT_SUCCESS
 | 
|---|
 | 2128 |         ;;
 | 
|---|
 | 2129 | 
 | 
|---|
 | 2130 |       *)
 | 
|---|
 | 2131 |         # Figure out destination file name, if it wasn't already specified.
 | 
|---|
 | 2132 |         if test -n "$destname"; then
 | 
|---|
 | 2133 |           destfile="$destdir/$destname"
 | 
|---|
 | 2134 |         else
 | 
|---|
 | 2135 |           func_basename "$file"
 | 
|---|
 | 2136 |           destfile="$func_basename_result"
 | 
|---|
 | 2137 |           destfile="$destdir/$destfile"
 | 
|---|
 | 2138 |         fi
 | 
|---|
 | 2139 | 
 | 
|---|
 | 2140 |         # If the file is missing, and there is a .exe on the end, strip it
 | 
|---|
 | 2141 |         # because it is most likely a libtool script we actually want to
 | 
|---|
 | 2142 |         # install
 | 
|---|
 | 2143 |         stripped_ext=""
 | 
|---|
 | 2144 |         case $file in
 | 
|---|
 | 2145 |           *.exe)
 | 
|---|
 | 2146 |             if test ! -f "$file"; then
 | 
|---|
 | 2147 |               func_stripname '' '.exe' "$file"
 | 
|---|
 | 2148 |               file=$func_stripname_result
 | 
|---|
 | 2149 |               stripped_ext=".exe"
 | 
|---|
 | 2150 |             fi
 | 
|---|
 | 2151 |             ;;
 | 
|---|
 | 2152 |         esac
 | 
|---|
 | 2153 | 
 | 
|---|
 | 2154 |         # Do a test to see if this is really a libtool program.
 | 
|---|
 | 2155 |         case $host in
 | 
|---|
 | 2156 |         *cygwin* | *mingw*)
 | 
|---|
 | 2157 |             if func_ltwrapper_executable_p "$file"; then
 | 
|---|
 | 2158 |               func_ltwrapper_scriptname "$file"
 | 
|---|
 | 2159 |               wrapper=$func_ltwrapper_scriptname_result
 | 
|---|
 | 2160 |             else
 | 
|---|
 | 2161 |               func_stripname '' '.exe' "$file"
 | 
|---|
 | 2162 |               wrapper=$func_stripname_result
 | 
|---|
 | 2163 |             fi
 | 
|---|
 | 2164 |             ;;
 | 
|---|
 | 2165 |         *)
 | 
|---|
 | 2166 |             wrapper=$file
 | 
|---|
 | 2167 |             ;;
 | 
|---|
 | 2168 |         esac
 | 
|---|
 | 2169 |         if func_ltwrapper_script_p "$wrapper"; then
 | 
|---|
 | 2170 |           notinst_deplibs=
 | 
|---|
 | 2171 |           relink_command=
 | 
|---|
 | 2172 | 
 | 
|---|
 | 2173 |           func_source "$wrapper"
 | 
|---|
 | 2174 | 
 | 
|---|
 | 2175 |           # Check the variables that should have been set.
 | 
|---|
 | 2176 |           test -z "$generated_by_libtool_version" && \
 | 
|---|
 | 2177 |             func_fatal_error "invalid libtool wrapper script \`$wrapper'"
 | 
|---|
 | 2178 | 
 | 
|---|
 | 2179 |           finalize=yes
 | 
|---|
 | 2180 |           for lib in $notinst_deplibs; do
 | 
|---|
 | 2181 |             # Check to see that each library is installed.
 | 
|---|
 | 2182 |             libdir=
 | 
|---|
 | 2183 |             if test -f "$lib"; then
 | 
|---|
 | 2184 |               func_source "$lib"
 | 
|---|
 | 2185 |             fi
 | 
|---|
 | 2186 |             libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 | 
|---|
 | 2187 |             if test -n "$libdir" && test ! -f "$libfile"; then
 | 
|---|
 | 2188 |               func_warning "\`$lib' has not been installed in \`$libdir'"
 | 
|---|
 | 2189 |               finalize=no
 | 
|---|
 | 2190 |             fi
 | 
|---|
 | 2191 |           done
 | 
|---|
 | 2192 | 
 | 
|---|
 | 2193 |           relink_command=
 | 
|---|
 | 2194 |           func_source "$wrapper"
 | 
|---|
 | 2195 | 
 | 
|---|
 | 2196 |           outputname=
 | 
|---|
 | 2197 |           if test "$fast_install" = no && test -n "$relink_command"; then
 | 
|---|
 | 2198 |             $opt_dry_run || {
 | 
|---|
 | 2199 |               if test "$finalize" = yes; then
 | 
|---|
 | 2200 |                 tmpdir=`func_mktempdir`
 | 
|---|
 | 2201 |                 func_basename "$file$stripped_ext"
 | 
|---|
 | 2202 |                 file="$func_basename_result"
 | 
|---|
 | 2203 |                 outputname="$tmpdir/$file"
 | 
|---|
 | 2204 |                 # Replace the output file specification.
 | 
|---|
 | 2205 |                 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
 | 
|---|
 | 2206 | 
 | 
|---|
 | 2207 |                 $opt_silent || {
 | 
|---|
 | 2208 |                   func_quote_for_expand "$relink_command"
 | 
|---|
 | 2209 |                   eval "func_echo $func_quote_for_expand_result"
 | 
|---|
 | 2210 |                 }
 | 
|---|
 | 2211 |                 if eval "$relink_command"; then :
 | 
|---|
 | 2212 |                   else
 | 
|---|
 | 2213 |                   func_error "error: relink \`$file' with the above command before installing it"
 | 
|---|
 | 2214 |                   $opt_dry_run || ${RM}r "$tmpdir"
 | 
|---|
 | 2215 |                   continue
 | 
|---|
 | 2216 |                 fi
 | 
|---|
 | 2217 |                 file="$outputname"
 | 
|---|
 | 2218 |               else
 | 
|---|
 | 2219 |                 func_warning "cannot relink \`$file'"
 | 
|---|
 | 2220 |               fi
 | 
|---|
 | 2221 |             }
 | 
|---|
 | 2222 |           else
 | 
|---|
 | 2223 |             # Install the binary that we compiled earlier.
 | 
|---|
 | 2224 |             file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 | 
|---|
 | 2225 |           fi
 | 
|---|
 | 2226 |         fi
 | 
|---|
 | 2227 | 
 | 
|---|
 | 2228 |         # remove .exe since cygwin /usr/bin/install will append another
 | 
|---|
 | 2229 |         # one anyway
 | 
|---|
 | 2230 |         case $install_prog,$host in
 | 
|---|
 | 2231 |         */usr/bin/install*,*cygwin*)
 | 
|---|
 | 2232 |           case $file:$destfile in
 | 
|---|
 | 2233 |           *.exe:*.exe)
 | 
|---|
 | 2234 |             # this is ok
 | 
|---|
 | 2235 |             ;;
 | 
|---|
 | 2236 |           *.exe:*)
 | 
|---|
 | 2237 |             destfile=$destfile.exe
 | 
|---|
 | 2238 |             ;;
 | 
|---|
 | 2239 |           *:*.exe)
 | 
|---|
 | 2240 |             func_stripname '' '.exe' "$destfile"
 | 
|---|
 | 2241 |             destfile=$func_stripname_result
 | 
|---|
 | 2242 |             ;;
 | 
|---|
 | 2243 |           esac
 | 
|---|
 | 2244 |           ;;
 | 
|---|
 | 2245 |         esac
 | 
|---|
 | 2246 |         func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
 | 
|---|
 | 2247 |         $opt_dry_run || if test -n "$outputname"; then
 | 
|---|
 | 2248 |           ${RM}r "$tmpdir"
 | 
|---|
 | 2249 |         fi
 | 
|---|
 | 2250 |         ;;
 | 
|---|
 | 2251 |       esac
 | 
|---|
 | 2252 |     done
 | 
|---|
 | 2253 | 
 | 
|---|
 | 2254 |     for file in $staticlibs; do
 | 
|---|
 | 2255 |       func_basename "$file"
 | 
|---|
 | 2256 |       name="$func_basename_result"
 | 
|---|
 | 2257 | 
 | 
|---|
 | 2258 |       # Set up the ranlib parameters.
 | 
|---|
 | 2259 |       oldlib="$destdir/$name"
 | 
|---|
 | 2260 | 
 | 
|---|
 | 2261 |       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 | 
|---|
 | 2262 | 
 | 
|---|
 | 2263 |       if test -n "$stripme" && test -n "$old_striplib"; then
 | 
|---|
 | 2264 |         func_show_eval "$old_striplib $oldlib" 'exit $?'
 | 
|---|
 | 2265 |       fi
 | 
|---|
 | 2266 | 
 | 
|---|
 | 2267 |       # Do each command in the postinstall commands.
 | 
|---|
 | 2268 |       func_execute_cmds "$old_postinstall_cmds" 'exit $?'
 | 
|---|
 | 2269 |     done
 | 
|---|
 | 2270 | 
 | 
|---|
 | 2271 |     test -n "$future_libdirs" && \
 | 
|---|
 | 2272 |       func_warning "remember to run \`$progname --finish$future_libdirs'"
 | 
|---|
 | 2273 | 
 | 
|---|
 | 2274 |     if test -n "$current_libdirs"; then
 | 
|---|
 | 2275 |       # Maybe just do a dry run.
 | 
|---|
 | 2276 |       $opt_dry_run && current_libdirs=" -n$current_libdirs"
 | 
|---|
 | 2277 |       exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
 | 
|---|
 | 2278 |     else
 | 
|---|
 | 2279 |       exit $EXIT_SUCCESS
 | 
|---|
 | 2280 |     fi
 | 
|---|
 | 2281 | }
 | 
|---|
 | 2282 | 
 | 
|---|
 | 2283 | test "$mode" = install && func_mode_install ${1+"$@"}
 | 
|---|
 | 2284 | 
 | 
|---|
 | 2285 | 
 | 
|---|
 | 2286 | # func_generate_dlsyms outputname originator pic_p
 | 
|---|
 | 2287 | # Extract symbols from dlprefiles and create ${outputname}S.o with
 | 
|---|
 | 2288 | # a dlpreopen symbol table.
 | 
|---|
 | 2289 | func_generate_dlsyms ()
 | 
|---|
 | 2290 | {
 | 
|---|
 | 2291 |     $opt_debug
 | 
|---|
 | 2292 |     my_outputname="$1"
 | 
|---|
 | 2293 |     my_originator="$2"
 | 
|---|
 | 2294 |     my_pic_p="${3-no}"
 | 
|---|
 | 2295 |     my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
 | 
|---|
 | 2296 |     my_dlsyms=
 | 
|---|
 | 2297 | 
 | 
|---|
 | 2298 |     if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 | 
|---|
 | 2299 |       if test -n "$NM" && test -n "$global_symbol_pipe"; then
 | 
|---|
 | 2300 |         my_dlsyms="${my_outputname}S.c"
 | 
|---|
 | 2301 |       else
 | 
|---|
 | 2302 |         func_error "not configured to extract global symbols from dlpreopened files"
 | 
|---|
 | 2303 |       fi
 | 
|---|
 | 2304 |     fi
 | 
|---|
 | 2305 | 
 | 
|---|
 | 2306 |     if test -n "$my_dlsyms"; then
 | 
|---|
 | 2307 |       case $my_dlsyms in
 | 
|---|
 | 2308 |       "") ;;
 | 
|---|
 | 2309 |       *.c)
 | 
|---|
 | 2310 |         # Discover the nlist of each of the dlfiles.
 | 
|---|
 | 2311 |         nlist="$output_objdir/${my_outputname}.nm"
 | 
|---|
 | 2312 | 
 | 
|---|
 | 2313 |         func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 | 
|---|
 | 2314 | 
 | 
|---|
 | 2315 |         # Parse the name list into a source file.
 | 
|---|
 | 2316 |         func_verbose "creating $output_objdir/$my_dlsyms"
 | 
|---|
 | 2317 | 
 | 
|---|
 | 2318 |         $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
 | 
|---|
 | 2319 | /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
 | 
|---|
 | 2320 | /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
 | 
|---|
 | 2321 | 
 | 
|---|
 | 2322 | #ifdef __cplusplus
 | 
|---|
 | 2323 | extern \"C\" {
 | 
|---|
 | 2324 | #endif
 | 
|---|
 | 2325 | 
 | 
|---|
 | 2326 | /* External symbol declarations for the compiler. */\
 | 
|---|
 | 2327 | "
 | 
|---|
 | 2328 | 
 | 
|---|
 | 2329 |         if test "$dlself" = yes; then
 | 
|---|
 | 2330 |           func_verbose "generating symbol list for \`$output'"
 | 
|---|
 | 2331 | 
 | 
|---|
 | 2332 |           $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 | 
|---|
 | 2333 | 
 | 
|---|
 | 2334 |           # Add our own program objects to the symbol list.
 | 
|---|
 | 2335 |           progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 | 
|---|
 | 2336 |           for progfile in $progfiles; do
 | 
|---|
 | 2337 |             func_verbose "extracting global C symbols from \`$progfile'"
 | 
|---|
 | 2338 |             $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
 | 
|---|
 | 2339 |           done
 | 
|---|
 | 2340 | 
 | 
|---|
 | 2341 |           if test -n "$exclude_expsyms"; then
 | 
|---|
 | 2342 |             $opt_dry_run || {
 | 
|---|
 | 2343 |               eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
 | 
|---|
 | 2344 |               eval '$MV "$nlist"T "$nlist"'
 | 
|---|
 | 2345 |             }
 | 
|---|
 | 2346 |           fi
 | 
|---|
 | 2347 | 
 | 
|---|
 | 2348 |           if test -n "$export_symbols_regex"; then
 | 
|---|
 | 2349 |             $opt_dry_run || {
 | 
|---|
 | 2350 |               eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
 | 
|---|
 | 2351 |               eval '$MV "$nlist"T "$nlist"'
 | 
|---|
 | 2352 |             }
 | 
|---|
 | 2353 |           fi
 | 
|---|
 | 2354 | 
 | 
|---|
 | 2355 |           # Prepare the list of exported symbols
 | 
|---|
 | 2356 |           if test -z "$export_symbols"; then
 | 
|---|
 | 2357 |             export_symbols="$output_objdir/$outputname.exp"
 | 
|---|
 | 2358 |             $opt_dry_run || {
 | 
|---|
 | 2359 |               $RM $export_symbols
 | 
|---|
 | 2360 |               eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 | 
|---|
 | 2361 |               case $host in
 | 
|---|
 | 2362 |               *cygwin* | *mingw* | *cegcc* )
 | 
|---|
 | 2363 |                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 | 
|---|
 | 2364 |                 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
 | 
|---|
 | 2365 |                 ;;
 | 
|---|
 | 2366 |               esac
 | 
|---|
 | 2367 |             }
 | 
|---|
 | 2368 |           else
 | 
|---|
 | 2369 |             $opt_dry_run || {
 | 
|---|
 | 2370 |               eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 | 
|---|
 | 2371 |               eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 | 
|---|
 | 2372 |               eval '$MV "$nlist"T "$nlist"'
 | 
|---|
 | 2373 |               case $host in
 | 
|---|
 | 2374 |                 *cygwin | *mingw* | *cegcc* )
 | 
|---|
 | 2375 |                   eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 | 
|---|
 | 2376 |                   eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 | 
|---|
 | 2377 |                   ;;
 | 
|---|
 | 2378 |               esac
 | 
|---|
 | 2379 |             }
 | 
|---|
 | 2380 |           fi
 | 
|---|
 | 2381 |         fi
 | 
|---|
 | 2382 | 
 | 
|---|
 | 2383 |         for dlprefile in $dlprefiles; do
 | 
|---|
 | 2384 |           func_verbose "extracting global C symbols from \`$dlprefile'"
 | 
|---|
 | 2385 |           func_basename "$dlprefile"
 | 
|---|
 | 2386 |           name="$func_basename_result"
 | 
|---|
 | 2387 |           $opt_dry_run || {
 | 
|---|
 | 2388 |             eval '$ECHO ": $name " >> "$nlist"'
 | 
|---|
 | 2389 |             eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 | 
|---|
 | 2390 |           }
 | 
|---|
 | 2391 |         done
 | 
|---|
 | 2392 | 
 | 
|---|
 | 2393 |         $opt_dry_run || {
 | 
|---|
 | 2394 |           # Make sure we have at least an empty file.
 | 
|---|
 | 2395 |           test -f "$nlist" || : > "$nlist"
 | 
|---|
 | 2396 | 
 | 
|---|
 | 2397 |           if test -n "$exclude_expsyms"; then
 | 
|---|
 | 2398 |             $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
 | 
|---|
 | 2399 |             $MV "$nlist"T "$nlist"
 | 
|---|
 | 2400 |           fi
 | 
|---|
 | 2401 | 
 | 
|---|
 | 2402 |           # Try sorting and uniquifying the output.
 | 
|---|
 | 2403 |           if $GREP -v "^: " < "$nlist" |
 | 
|---|
 | 2404 |               if sort -k 3 </dev/null >/dev/null 2>&1; then
 | 
|---|
 | 2405 |                 sort -k 3
 | 
|---|
 | 2406 |               else
 | 
|---|
 | 2407 |                 sort +2
 | 
|---|
 | 2408 |               fi |
 | 
|---|
 | 2409 |               uniq > "$nlist"S; then
 | 
|---|
 | 2410 |             :
 | 
|---|
 | 2411 |           else
 | 
|---|
 | 2412 |             $GREP -v "^: " < "$nlist" > "$nlist"S
 | 
|---|
 | 2413 |           fi
 | 
|---|
 | 2414 | 
 | 
|---|
 | 2415 |           if test -f "$nlist"S; then
 | 
|---|
 | 2416 |             eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
 | 
|---|
 | 2417 |           else
 | 
|---|
 | 2418 |             $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
 | 
|---|
 | 2419 |           fi
 | 
|---|
 | 2420 | 
 | 
|---|
 | 2421 |           $ECHO >> "$output_objdir/$my_dlsyms" "\
 | 
|---|
 | 2422 | 
 | 
|---|
 | 2423 | /* The mapping between symbol names and symbols.  */
 | 
|---|
 | 2424 | typedef struct {
 | 
|---|
 | 2425 |   const char *name;
 | 
|---|
 | 2426 |   void *address;
 | 
|---|
 | 2427 | } lt_dlsymlist;
 | 
|---|
 | 2428 | "
 | 
|---|
 | 2429 |           case $host in
 | 
|---|
 | 2430 |           *cygwin* | *mingw* | *cegcc* )
 | 
|---|
 | 2431 |             $ECHO >> "$output_objdir/$my_dlsyms" "\
 | 
|---|
 | 2432 | /* DATA imports from DLLs on WIN32 con't be const, because
 | 
|---|
 | 2433 |    runtime relocations are performed -- see ld's documentation
 | 
|---|
 | 2434 |    on pseudo-relocs.  */"
 | 
|---|
 | 2435 |             lt_dlsym_const= ;;
 | 
|---|
 | 2436 |           *osf5*)
 | 
|---|
 | 2437 |             echo >> "$output_objdir/$my_dlsyms" "\
 | 
|---|
 | 2438 | /* This system does not cope well with relocations in const data */"
 | 
|---|
 | 2439 |             lt_dlsym_const= ;;
 | 
|---|
 | 2440 |           *)
 | 
|---|
 | 2441 |             lt_dlsym_const=const ;;
 | 
|---|
 | 2442 |           esac
 | 
|---|
 | 2443 | 
 | 
|---|
 | 2444 |           $ECHO >> "$output_objdir/$my_dlsyms" "\
 | 
|---|
 | 2445 | extern $lt_dlsym_const lt_dlsymlist
 | 
|---|
 | 2446 | lt_${my_prefix}_LTX_preloaded_symbols[];
 | 
|---|
 | 2447 | $lt_dlsym_const lt_dlsymlist
 | 
|---|
 | 2448 | lt_${my_prefix}_LTX_preloaded_symbols[] =
 | 
|---|
 | 2449 | {\
 | 
|---|
 | 2450 |   { \"$my_originator\", (void *) 0 },"
 | 
|---|
 | 2451 | 
 | 
|---|
 | 2452 |           case $need_lib_prefix in
 | 
|---|
 | 2453 |           no)
 | 
|---|
 | 2454 |             eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
 | 
|---|
 | 2455 |             ;;
 | 
|---|
 | 2456 |           *)
 | 
|---|
 | 2457 |             eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
 | 
|---|
 | 2458 |             ;;
 | 
|---|
 | 2459 |           esac
 | 
|---|
 | 2460 |           $ECHO >> "$output_objdir/$my_dlsyms" "\
 | 
|---|
 | 2461 |   {0, (void *) 0}
 | 
|---|
 | 2462 | };
 | 
|---|
 | 2463 | 
 | 
|---|
 | 2464 | /* This works around a problem in FreeBSD linker */
 | 
|---|
 | 2465 | #ifdef FREEBSD_WORKAROUND
 | 
|---|
 | 2466 | static const void *lt_preloaded_setup() {
 | 
|---|
 | 2467 |   return lt_${my_prefix}_LTX_preloaded_symbols;
 | 
|---|
 | 2468 | }
 | 
|---|
 | 2469 | #endif
 | 
|---|
 | 2470 | 
 | 
|---|
 | 2471 | #ifdef __cplusplus
 | 
|---|
 | 2472 | }
 | 
|---|
 | 2473 | #endif\
 | 
|---|
 | 2474 | "
 | 
|---|
 | 2475 |         } # !$opt_dry_run
 | 
|---|
 | 2476 | 
 | 
|---|
 | 2477 |         pic_flag_for_symtable=
 | 
|---|
 | 2478 |         case "$compile_command " in
 | 
|---|
 | 2479 |         *" -static "*) ;;
 | 
|---|
 | 2480 |         *)
 | 
|---|
 | 2481 |           case $host in
 | 
|---|
 | 2482 |           # compiling the symbol table file with pic_flag works around
 | 
|---|
 | 2483 |           # a FreeBSD bug that causes programs to crash when -lm is
 | 
|---|
 | 2484 |           # linked before any other PIC object.  But we must not use
 | 
|---|
 | 2485 |           # pic_flag when linking with -static.  The problem exists in
 | 
|---|
 | 2486 |           # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
 | 
|---|
 | 2487 |           *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 | 
|---|
 | 2488 |             pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
 | 
|---|
 | 2489 |           *-*-hpux*)
 | 
|---|
 | 2490 |             pic_flag_for_symtable=" $pic_flag"  ;;
 | 
|---|
 | 2491 |           *)
 | 
|---|
 | 2492 |             if test "X$my_pic_p" != Xno; then
 | 
|---|
 | 2493 |               pic_flag_for_symtable=" $pic_flag"
 | 
|---|
 | 2494 |             fi
 | 
|---|
 | 2495 |             ;;
 | 
|---|
 | 2496 |           esac
 | 
|---|
 | 2497 |           ;;
 | 
|---|
 | 2498 |         esac
 | 
|---|
 | 2499 |         symtab_cflags=
 | 
|---|
 | 2500 |         for arg in $LTCFLAGS; do
 | 
|---|
 | 2501 |           case $arg in
 | 
|---|
 | 2502 |           -pie | -fpie | -fPIE) ;;
 | 
|---|
 | 2503 |           *) symtab_cflags="$symtab_cflags $arg" ;;
 | 
|---|
 | 2504 |           esac
 | 
|---|
 | 2505 |         done
 | 
|---|
 | 2506 | 
 | 
|---|
 | 2507 |         # Now compile the dynamic symbol file.
 | 
|---|
 | 2508 |         func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 | 
|---|
 | 2509 | 
 | 
|---|
 | 2510 |         # Clean up the generated files.
 | 
|---|
 | 2511 |         func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
 | 
|---|
 | 2512 | 
 | 
|---|
 | 2513 |         # Transform the symbol file into the correct name.
 | 
|---|
 | 2514 |         symfileobj="$output_objdir/${my_outputname}S.$objext"
 | 
|---|
 | 2515 |         case $host in
 | 
|---|
 | 2516 |         *cygwin* | *mingw* | *cegcc* )
 | 
|---|
 | 2517 |           if test -f "$output_objdir/$my_outputname.def"; then
 | 
|---|
 | 2518 |             compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 | 
|---|
 | 2519 |             finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 | 
|---|
 | 2520 |           else
 | 
|---|
 | 2521 |             compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 | 
|---|
 | 2522 |             finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 | 
|---|
 | 2523 |           fi
 | 
|---|
 | 2524 |           ;;
 | 
|---|
 | 2525 |         *)
 | 
|---|
 | 2526 |           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 | 
|---|
 | 2527 |           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 | 
|---|
 | 2528 |           ;;
 | 
|---|
 | 2529 |         esac
 | 
|---|
 | 2530 |         ;;
 | 
|---|
 | 2531 |       *)
 | 
|---|
 | 2532 |         func_fatal_error "unknown suffix for \`$my_dlsyms'"
 | 
|---|
 | 2533 |         ;;
 | 
|---|
 | 2534 |       esac
 | 
|---|
 | 2535 |     else
 | 
|---|
 | 2536 |       # We keep going just in case the user didn't refer to
 | 
|---|
 | 2537 |       # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
 | 
|---|
 | 2538 |       # really was required.
 | 
|---|
 | 2539 | 
 | 
|---|
 | 2540 |       # Nullify the symbol file.
 | 
|---|
 | 2541 |       compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
 | 
|---|
 | 2542 |       finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
 | 
|---|
 | 2543 |     fi
 | 
|---|
 | 2544 | }
 | 
|---|
 | 2545 | 
 | 
|---|
 | 2546 | # func_win32_libid arg
 | 
|---|
 | 2547 | # return the library type of file 'arg'
 | 
|---|
 | 2548 | #
 | 
|---|
 | 2549 | # Need a lot of goo to handle *both* DLLs and import libs
 | 
|---|
 | 2550 | # Has to be a shell function in order to 'eat' the argument
 | 
|---|
 | 2551 | # that is supplied when $file_magic_command is called.
 | 
|---|
 | 2552 | func_win32_libid ()
 | 
|---|
 | 2553 | {
 | 
|---|
 | 2554 |   $opt_debug
 | 
|---|
 | 2555 |   win32_libid_type="unknown"
 | 
|---|
 | 2556 |   win32_fileres=`file -L $1 2>/dev/null`
 | 
|---|
 | 2557 |   case $win32_fileres in
 | 
|---|
 | 2558 |   *ar\ archive\ import\ library*) # definitely import
 | 
|---|
 | 2559 |     win32_libid_type="x86 archive import"
 | 
|---|
 | 2560 |     ;;
 | 
|---|
 | 2561 |   *ar\ archive*) # could be an import, or static
 | 
|---|
 | 2562 |     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
 | 
|---|
 | 2563 |        $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
 | 
|---|
 | 2564 |       win32_nmres=`eval $NM -f posix -A $1 |
 | 
|---|
 | 2565 |         $SED -n -e '
 | 
|---|
 | 2566 |             1,100{
 | 
|---|
 | 2567 |                 / I /{
 | 
|---|
 | 2568 |                     s,.*,import,
 | 
|---|
 | 2569 |                     p
 | 
|---|
 | 2570 |                     q
 | 
|---|
 | 2571 |                 }
 | 
|---|
 | 2572 |             }'`
 | 
|---|
 | 2573 |       case $win32_nmres in
 | 
|---|
 | 2574 |       import*)  win32_libid_type="x86 archive import";;
 | 
|---|
 | 2575 |       *)        win32_libid_type="x86 archive static";;
 | 
|---|
 | 2576 |       esac
 | 
|---|
 | 2577 |     fi
 | 
|---|
 | 2578 |     ;;
 | 
|---|
 | 2579 |   *DLL*)
 | 
|---|
 | 2580 |     win32_libid_type="x86 DLL"
 | 
|---|
 | 2581 |     ;;
 | 
|---|
 | 2582 |   *executable*) # but shell scripts are "executable" too...
 | 
|---|
 | 2583 |     case $win32_fileres in
 | 
|---|
 | 2584 |     *MS\ Windows\ PE\ Intel*)
 | 
|---|
 | 2585 |       win32_libid_type="x86 DLL"
 | 
|---|
 | 2586 |       ;;
 | 
|---|
 | 2587 |     esac
 | 
|---|
 | 2588 |     ;;
 | 
|---|
 | 2589 |   esac
 | 
|---|
 | 2590 |   $ECHO "$win32_libid_type"
 | 
|---|
 | 2591 | }
 | 
|---|
 | 2592 | 
 | 
|---|
 | 2593 | 
 | 
|---|
 | 2594 | 
 | 
|---|
 | 2595 | # func_extract_an_archive dir oldlib
 | 
|---|
 | 2596 | func_extract_an_archive ()
 | 
|---|
 | 2597 | {
 | 
|---|
 | 2598 |     $opt_debug
 | 
|---|
 | 2599 |     f_ex_an_ar_dir="$1"; shift
 | 
|---|
 | 2600 |     f_ex_an_ar_oldlib="$1"
 | 
|---|
 | 2601 |     func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
 | 
|---|
 | 2602 |     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 | 
|---|
 | 2603 |      :
 | 
|---|
 | 2604 |     else
 | 
|---|
 | 2605 |       func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
 | 
|---|
 | 2606 |     fi
 | 
|---|
 | 2607 | }
 | 
|---|
 | 2608 | 
 | 
|---|
 | 2609 | 
 | 
|---|
 | 2610 | # func_extract_archives gentop oldlib ...
 | 
|---|
 | 2611 | func_extract_archives ()
 | 
|---|
 | 2612 | {
 | 
|---|
 | 2613 |     $opt_debug
 | 
|---|
 | 2614 |     my_gentop="$1"; shift
 | 
|---|
 | 2615 |     my_oldlibs=${1+"$@"}
 | 
|---|
 | 2616 |     my_oldobjs=""
 | 
|---|
 | 2617 |     my_xlib=""
 | 
|---|
 | 2618 |     my_xabs=""
 | 
|---|
 | 2619 |     my_xdir=""
 | 
|---|
 | 2620 | 
 | 
|---|
 | 2621 |     for my_xlib in $my_oldlibs; do
 | 
|---|
 | 2622 |       # Extract the objects.
 | 
|---|
 | 2623 |       case $my_xlib in
 | 
|---|
 | 2624 |         [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
 | 
|---|
 | 2625 |         *) my_xabs=`pwd`"/$my_xlib" ;;
 | 
|---|
 | 2626 |       esac
 | 
|---|
 | 2627 |       func_basename "$my_xlib"
 | 
|---|
 | 2628 |       my_xlib="$func_basename_result"
 | 
|---|
 | 2629 |       my_xlib_u=$my_xlib
 | 
|---|
 | 2630 |       while :; do
 | 
|---|
 | 2631 |         case " $extracted_archives " in
 | 
|---|
 | 2632 |         *" $my_xlib_u "*)
 | 
|---|
 | 2633 |           func_arith $extracted_serial + 1
 | 
|---|
 | 2634 |           extracted_serial=$func_arith_result
 | 
|---|
 | 2635 |           my_xlib_u=lt$extracted_serial-$my_xlib ;;
 | 
|---|
 | 2636 |         *) break ;;
 | 
|---|
 | 2637 |         esac
 | 
|---|
 | 2638 |       done
 | 
|---|
 | 2639 |       extracted_archives="$extracted_archives $my_xlib_u"
 | 
|---|
 | 2640 |       my_xdir="$my_gentop/$my_xlib_u"
 | 
|---|
 | 2641 | 
 | 
|---|
 | 2642 |       func_mkdir_p "$my_xdir"
 | 
|---|
 | 2643 | 
 | 
|---|
 | 2644 |       case $host in
 | 
|---|
 | 2645 |       *-darwin*)
 | 
|---|
 | 2646 |         func_verbose "Extracting $my_xabs"
 | 
|---|
 | 2647 |         # Do not bother doing anything if just a dry run
 | 
|---|
 | 2648 |         $opt_dry_run || {
 | 
|---|
 | 2649 |           darwin_orig_dir=`pwd`
 | 
|---|
 | 2650 |           cd $my_xdir || exit $?
 | 
|---|
 | 2651 |           darwin_archive=$my_xabs
 | 
|---|
 | 2652 |           darwin_curdir=`pwd`
 | 
|---|
 | 2653 |           darwin_base_archive=`basename "$darwin_archive"`
 | 
|---|
 | 2654 |           darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
 | 
|---|
 | 2655 |           if test -n "$darwin_arches"; then
 | 
|---|
 | 2656 |             darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
 | 
|---|
 | 2657 |             darwin_arch=
 | 
|---|
 | 2658 |             func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
 | 
|---|
 | 2659 |             for darwin_arch in  $darwin_arches ; do
 | 
|---|
 | 2660 |               func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 | 
|---|
 | 2661 |               $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
 | 
|---|
 | 2662 |               cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 | 
|---|
 | 2663 |               func_extract_an_archive "`pwd`" "${darwin_base_archive}"
 | 
|---|
 | 2664 |               cd "$darwin_curdir"
 | 
|---|
 | 2665 |               $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
 | 
|---|
 | 2666 |             done # $darwin_arches
 | 
|---|
 | 2667 |             ## Okay now we've a bunch of thin objects, gotta fatten them up :)
 | 
|---|
 | 2668 |             darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
 | 
|---|
 | 2669 |             darwin_file=
 | 
|---|
 | 2670 |             darwin_files=
 | 
|---|
 | 2671 |             for darwin_file in $darwin_filelist; do
 | 
|---|
 | 2672 |               darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 | 
|---|
 | 2673 |               $LIPO -create -output "$darwin_file" $darwin_files
 | 
|---|
 | 2674 |             done # $darwin_filelist
 | 
|---|
 | 2675 |             $RM -rf unfat-$$
 | 
|---|
 | 2676 |             cd "$darwin_orig_dir"
 | 
|---|
 | 2677 |           else
 | 
|---|
 | 2678 |             cd $darwin_orig_dir
 | 
|---|
 | 2679 |             func_extract_an_archive "$my_xdir" "$my_xabs"
 | 
|---|
 | 2680 |           fi # $darwin_arches
 | 
|---|
 | 2681 |         } # !$opt_dry_run
 | 
|---|
 | 2682 |         ;;
 | 
|---|
 | 2683 |       *)
 | 
|---|
 | 2684 |         func_extract_an_archive "$my_xdir" "$my_xabs"
 | 
|---|
 | 2685 |         ;;
 | 
|---|
 | 2686 |       esac
 | 
|---|
 | 2687 |       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 | 
|---|
 | 2688 |     done
 | 
|---|
 | 2689 | 
 | 
|---|
 | 2690 |     func_extract_archives_result="$my_oldobjs"
 | 
|---|
 | 2691 | }
 | 
|---|
 | 2692 | 
 | 
|---|
 | 2693 | 
 | 
|---|
 | 2694 | 
 | 
|---|
 | 2695 | # func_emit_wrapper_part1 [arg=no]
 | 
|---|
 | 2696 | #
 | 
|---|
 | 2697 | # Emit the first part of a libtool wrapper script on stdout.
 | 
|---|
 | 2698 | # For more information, see the description associated with
 | 
|---|
 | 2699 | # func_emit_wrapper(), below.
 | 
|---|
 | 2700 | func_emit_wrapper_part1 ()
 | 
|---|
 | 2701 | {
 | 
|---|
 | 2702 |         func_emit_wrapper_part1_arg1=no
 | 
|---|
 | 2703 |         if test -n "$1" ; then
 | 
|---|
 | 2704 |           func_emit_wrapper_part1_arg1=$1
 | 
|---|
 | 2705 |         fi
 | 
|---|
 | 2706 | 
 | 
|---|
 | 2707 |         $ECHO "\
 | 
|---|
 | 2708 | #! $SHELL
 | 
|---|
 | 2709 | 
 | 
|---|
 | 2710 | # $output - temporary wrapper script for $objdir/$outputname
 | 
|---|
 | 2711 | # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 | 
|---|
 | 2712 | #
 | 
|---|
 | 2713 | # The $output program cannot be directly executed until all the libtool
 | 
|---|
 | 2714 | # libraries that it depends on are installed.
 | 
|---|
 | 2715 | #
 | 
|---|
 | 2716 | # This wrapper script should never be moved out of the build directory.
 | 
|---|
 | 2717 | # If it is, it will not operate correctly.
 | 
|---|
 | 2718 | 
 | 
|---|
 | 2719 | # Sed substitution that helps us do robust quoting.  It backslashifies
 | 
|---|
 | 2720 | # metacharacters that are still active within double-quoted strings.
 | 
|---|
 | 2721 | Xsed='${SED} -e 1s/^X//'
 | 
|---|
 | 2722 | sed_quote_subst='$sed_quote_subst'
 | 
|---|
 | 2723 | 
 | 
|---|
 | 2724 | # Be Bourne compatible
 | 
|---|
 | 2725 | if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
 | 
|---|
 | 2726 |   emulate sh
 | 
|---|
 | 2727 |   NULLCMD=:
 | 
|---|
 | 2728 |   # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
 | 
|---|
 | 2729 |   # is contrary to our usage.  Disable this feature.
 | 
|---|
 | 2730 |   alias -g '\${1+\"\$@\"}'='\"\$@\"'
 | 
|---|
 | 2731 |   setopt NO_GLOB_SUBST
 | 
|---|
 | 2732 | else
 | 
|---|
 | 2733 |   case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
 | 
|---|
 | 2734 | fi
 | 
|---|
 | 2735 | BIN_SH=xpg4; export BIN_SH # for Tru64
 | 
|---|
 | 2736 | DUALCASE=1; export DUALCASE # for MKS sh
 | 
|---|
 | 2737 | 
 | 
|---|
 | 2738 | # The HP-UX ksh and POSIX shell print the target directory to stdout
 | 
|---|
 | 2739 | # if CDPATH is set.
 | 
|---|
 | 2740 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 | 
|---|
 | 2741 | 
 | 
|---|
 | 2742 | relink_command=\"$relink_command\"
 | 
|---|
 | 2743 | 
 | 
|---|
 | 2744 | # This environment variable determines our operation mode.
 | 
|---|
 | 2745 | if test \"\$libtool_install_magic\" = \"$magic\"; then
 | 
|---|
 | 2746 |   # install mode needs the following variables:
 | 
|---|
 | 2747 |   generated_by_libtool_version='$macro_version'
 | 
|---|
 | 2748 |   notinst_deplibs='$notinst_deplibs'
 | 
|---|
 | 2749 | else
 | 
|---|
 | 2750 |   # When we are sourced in execute mode, \$file and \$ECHO are already set.
 | 
|---|
 | 2751 |   if test \"\$libtool_execute_magic\" != \"$magic\"; then
 | 
|---|
 | 2752 |     ECHO=\"$qecho\"
 | 
|---|
 | 2753 |     file=\"\$0\"
 | 
|---|
 | 2754 |     # Make sure echo works.
 | 
|---|
 | 2755 |     if test \"X\$1\" = X--no-reexec; then
 | 
|---|
 | 2756 |       # Discard the --no-reexec flag, and continue.
 | 
|---|
 | 2757 |       shift
 | 
|---|
 | 2758 |     elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
 | 
|---|
 | 2759 |       # Yippee, \$ECHO works!
 | 
|---|
 | 2760 |       :
 | 
|---|
 | 2761 |     else
 | 
|---|
 | 2762 |       # Restart under the correct shell, and then maybe \$ECHO will work.
 | 
|---|
 | 2763 |       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
 | 
|---|
 | 2764 |     fi
 | 
|---|
 | 2765 |   fi\
 | 
|---|
 | 2766 | "
 | 
|---|
 | 2767 |         $ECHO "\
 | 
|---|
 | 2768 | 
 | 
|---|
 | 2769 |   # Find the directory that this script lives in.
 | 
|---|
 | 2770 |   thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 | 
|---|
 | 2771 |   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 | 
|---|
 | 2772 | 
 | 
|---|
 | 2773 |   # Follow symbolic links until we get to the real thisdir.
 | 
|---|
 | 2774 |   file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 | 
|---|
 | 2775 |   while test -n \"\$file\"; do
 | 
|---|
 | 2776 |     destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 | 
|---|
 | 2777 | 
 | 
|---|
 | 2778 |     # If there was a directory component, then change thisdir.
 | 
|---|
 | 2779 |     if test \"x\$destdir\" != \"x\$file\"; then
 | 
|---|
 | 2780 |       case \"\$destdir\" in
 | 
|---|
 | 2781 |       [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
 | 
|---|
 | 2782 |       *) thisdir=\"\$thisdir/\$destdir\" ;;
 | 
|---|
 | 2783 |       esac
 | 
|---|
 | 2784 |     fi
 | 
|---|
 | 2785 | 
 | 
|---|
 | 2786 |     file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
 | 
|---|
 | 2787 |     file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 | 
|---|
 | 2788 |   done
 | 
|---|
 | 2789 | "
 | 
|---|
 | 2790 | }
 | 
|---|
 | 2791 | # end: func_emit_wrapper_part1
 | 
|---|
 | 2792 | 
 | 
|---|
 | 2793 | # func_emit_wrapper_part2 [arg=no]
 | 
|---|
 | 2794 | #
 | 
|---|
 | 2795 | # Emit the second part of a libtool wrapper script on stdout.
 | 
|---|
 | 2796 | # For more information, see the description associated with
 | 
|---|
 | 2797 | # func_emit_wrapper(), below.
 | 
|---|
 | 2798 | func_emit_wrapper_part2 ()
 | 
|---|
 | 2799 | {
 | 
|---|
 | 2800 |         func_emit_wrapper_part2_arg1=no
 | 
|---|
 | 2801 |         if test -n "$1" ; then
 | 
|---|
 | 2802 |           func_emit_wrapper_part2_arg1=$1
 | 
|---|
 | 2803 |         fi
 | 
|---|
 | 2804 | 
 | 
|---|
 | 2805 |         $ECHO "\
 | 
|---|
 | 2806 | 
 | 
|---|
 | 2807 |   # Usually 'no', except on cygwin/mingw when embedded into
 | 
|---|
 | 2808 |   # the cwrapper.
 | 
|---|
 | 2809 |   WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
 | 
|---|
 | 2810 |   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
 | 
|---|
 | 2811 |     # special case for '.'
 | 
|---|
 | 2812 |     if test \"\$thisdir\" = \".\"; then
 | 
|---|
 | 2813 |       thisdir=\`pwd\`
 | 
|---|
 | 2814 |     fi
 | 
|---|
 | 2815 |     # remove .libs from thisdir
 | 
|---|
 | 2816 |     case \"\$thisdir\" in
 | 
|---|
 | 2817 |     *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
 | 
|---|
 | 2818 |     $objdir )   thisdir=. ;;
 | 
|---|
 | 2819 |     esac
 | 
|---|
 | 2820 |   fi
 | 
|---|
 | 2821 | 
 | 
|---|
 | 2822 |   # Try to get the absolute directory name.
 | 
|---|
 | 2823 |   absdir=\`cd \"\$thisdir\" && pwd\`
 | 
|---|
 | 2824 |   test -n \"\$absdir\" && thisdir=\"\$absdir\"
 | 
|---|
 | 2825 | "
 | 
|---|
 | 2826 | 
 | 
|---|
 | 2827 |         if test "$fast_install" = yes; then
 | 
|---|
 | 2828 |           $ECHO "\
 | 
|---|
 | 2829 |   program=lt-'$outputname'$exeext
 | 
|---|
 | 2830 |   progdir=\"\$thisdir/$objdir\"
 | 
|---|
 | 2831 | 
 | 
|---|
 | 2832 |   if test ! -f \"\$progdir/\$program\" ||
 | 
|---|
 | 2833 |      { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
 | 
|---|
 | 2834 |        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 | 
|---|
 | 2835 | 
 | 
|---|
 | 2836 |     file=\"\$\$-\$program\"
 | 
|---|
 | 2837 | 
 | 
|---|
 | 2838 |     if test ! -d \"\$progdir\"; then
 | 
|---|
 | 2839 |       $MKDIR \"\$progdir\"
 | 
|---|
 | 2840 |     else
 | 
|---|
 | 2841 |       $RM \"\$progdir/\$file\"
 | 
|---|
 | 2842 |     fi"
 | 
|---|
 | 2843 | 
 | 
|---|
 | 2844 |           $ECHO "\
 | 
|---|
 | 2845 | 
 | 
|---|
 | 2846 |     # relink executable if necessary
 | 
|---|
 | 2847 |     if test -n \"\$relink_command\"; then
 | 
|---|
 | 2848 |       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
 | 
|---|
 | 2849 |       else
 | 
|---|
 | 2850 |         $ECHO \"\$relink_command_output\" >&2
 | 
|---|
 | 2851 |         $RM \"\$progdir/\$file\"
 | 
|---|
 | 2852 |         exit 1
 | 
|---|
 | 2853 |       fi
 | 
|---|
 | 2854 |     fi
 | 
|---|
 | 2855 | 
 | 
|---|
 | 2856 |     $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
 | 
|---|
 | 2857 |     { $RM \"\$progdir/\$program\";
 | 
|---|
 | 2858 |       $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
 | 
|---|
 | 2859 |     $RM \"\$progdir/\$file\"
 | 
|---|
 | 2860 |   fi"
 | 
|---|
 | 2861 |         else
 | 
|---|
 | 2862 |           $ECHO "\
 | 
|---|
 | 2863 |   program='$outputname'
 | 
|---|
 | 2864 |   progdir=\"\$thisdir/$objdir\"
 | 
|---|
 | 2865 | "
 | 
|---|
 | 2866 |         fi
 | 
|---|
 | 2867 | 
 | 
|---|
 | 2868 |         $ECHO "\
 | 
|---|
 | 2869 | 
 | 
|---|
 | 2870 |   if test -f \"\$progdir/\$program\"; then"
 | 
|---|
 | 2871 | 
 | 
|---|
 | 2872 |         # Export our shlibpath_var if we have one.
 | 
|---|
 | 2873 |         if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 | 
|---|
 | 2874 |           $ECHO "\
 | 
|---|
 | 2875 |     # Add our own library path to $shlibpath_var
 | 
|---|
 | 2876 |     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 | 
|---|
 | 2877 | 
 | 
|---|
 | 2878 |     # Some systems cannot cope with colon-terminated $shlibpath_var
 | 
|---|
 | 2879 |     # The second colon is a workaround for a bug in BeOS R4 sed
 | 
|---|
 | 2880 |     $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 | 
|---|
 | 2881 | 
 | 
|---|
 | 2882 |     export $shlibpath_var
 | 
|---|
 | 2883 | "
 | 
|---|
 | 2884 |         fi
 | 
|---|
 | 2885 | 
 | 
|---|
 | 2886 |         # fixup the dll searchpath if we need to.
 | 
|---|
 | 2887 |         if test -n "$dllsearchpath"; then
 | 
|---|
 | 2888 |           $ECHO "\
 | 
|---|
 | 2889 |     # Add the dll search path components to the executable PATH
 | 
|---|
 | 2890 |     PATH=$dllsearchpath:\$PATH
 | 
|---|
 | 2891 | "
 | 
|---|
 | 2892 |         fi
 | 
|---|
 | 2893 | 
 | 
|---|
 | 2894 |         $ECHO "\
 | 
|---|
 | 2895 |     if test \"\$libtool_execute_magic\" != \"$magic\"; then
 | 
|---|
 | 2896 |       # Run the actual program with our arguments.
 | 
|---|
 | 2897 | "
 | 
|---|
 | 2898 |         case $host in
 | 
|---|
 | 2899 |         # Backslashes separate directories on plain windows
 | 
|---|
 | 2900 |         *-*-mingw | *-*-os2* | *-cegcc*)
 | 
|---|
 | 2901 |           $ECHO "\
 | 
|---|
 | 2902 |       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 | 
|---|
 | 2903 | "
 | 
|---|
 | 2904 |           ;;
 | 
|---|
 | 2905 | 
 | 
|---|
 | 2906 |         *)
 | 
|---|
 | 2907 |           $ECHO "\
 | 
|---|
 | 2908 |       exec \"\$progdir/\$program\" \${1+\"\$@\"}
 | 
|---|
 | 2909 | "
 | 
|---|
 | 2910 |           ;;
 | 
|---|
 | 2911 |         esac
 | 
|---|
 | 2912 |         $ECHO "\
 | 
|---|
 | 2913 |       \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
 | 
|---|
 | 2914 |       exit 1
 | 
|---|
 | 2915 |     fi
 | 
|---|
 | 2916 |   else
 | 
|---|
 | 2917 |     # The program doesn't exist.
 | 
|---|
 | 2918 |     \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
 | 
|---|
 | 2919 |     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
 | 
|---|
 | 2920 |     $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
 | 
|---|
 | 2921 |     exit 1
 | 
|---|
 | 2922 |   fi
 | 
|---|
 | 2923 | fi\
 | 
|---|
 | 2924 | "
 | 
|---|
 | 2925 | }
 | 
|---|
 | 2926 | # end: func_emit_wrapper_part2
 | 
|---|
 | 2927 | 
 | 
|---|
 | 2928 | 
 | 
|---|
 | 2929 | # func_emit_wrapper [arg=no]
 | 
|---|
 | 2930 | #
 | 
|---|
 | 2931 | # Emit a libtool wrapper script on stdout.
 | 
|---|
 | 2932 | # Don't directly open a file because we may want to
 | 
|---|
 | 2933 | # incorporate the script contents within a cygwin/mingw
 | 
|---|
 | 2934 | # wrapper executable.  Must ONLY be called from within
 | 
|---|
 | 2935 | # func_mode_link because it depends on a number of variables
 | 
|---|
 | 2936 | # set therein.
 | 
|---|
 | 2937 | #
 | 
|---|
 | 2938 | # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 | 
|---|
 | 2939 | # variable will take.  If 'yes', then the emitted script
 | 
|---|
 | 2940 | # will assume that the directory in which it is stored is
 | 
|---|
 | 2941 | # the $objdir directory.  This is a cygwin/mingw-specific
 | 
|---|
 | 2942 | # behavior.
 | 
|---|
 | 2943 | func_emit_wrapper ()
 | 
|---|
 | 2944 | {
 | 
|---|
 | 2945 |         func_emit_wrapper_arg1=no
 | 
|---|
 | 2946 |         if test -n "$1" ; then
 | 
|---|
 | 2947 |           func_emit_wrapper_arg1=$1
 | 
|---|
 | 2948 |         fi
 | 
|---|
 | 2949 | 
 | 
|---|
 | 2950 |         # split this up so that func_emit_cwrapperexe_src
 | 
|---|
 | 2951 |         # can call each part independently.
 | 
|---|
 | 2952 |         func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
 | 
|---|
 | 2953 |         func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
 | 
|---|
 | 2954 | }
 | 
|---|
 | 2955 | 
 | 
|---|
 | 2956 | 
 | 
|---|
 | 2957 | # func_to_host_path arg
 | 
|---|
 | 2958 | #
 | 
|---|
 | 2959 | # Convert paths to host format when used with build tools.
 | 
|---|
 | 2960 | # Intended for use with "native" mingw (where libtool itself
 | 
|---|
 | 2961 | # is running under the msys shell), or in the following cross-
 | 
|---|
 | 2962 | # build environments:
 | 
|---|
 | 2963 | #    $build          $host
 | 
|---|
 | 2964 | #    mingw (msys)    mingw  [e.g. native]
 | 
|---|
 | 2965 | #    cygwin          mingw
 | 
|---|
 | 2966 | #    *nix + wine     mingw
 | 
|---|
 | 2967 | # where wine is equipped with the `winepath' executable.
 | 
|---|
 | 2968 | # In the native mingw case, the (msys) shell automatically
 | 
|---|
 | 2969 | # converts paths for any non-msys applications it launches,
 | 
|---|
 | 2970 | # but that facility isn't available from inside the cwrapper.
 | 
|---|
 | 2971 | # Similar accommodations are necessary for $host mingw and
 | 
|---|
 | 2972 | # $build cygwin.  Calling this function does no harm for other
 | 
|---|
 | 2973 | # $host/$build combinations not listed above.
 | 
|---|
 | 2974 | #
 | 
|---|
 | 2975 | # ARG is the path (on $build) that should be converted to
 | 
|---|
 | 2976 | # the proper representation for $host. The result is stored
 | 
|---|
 | 2977 | # in $func_to_host_path_result.
 | 
|---|
 | 2978 | func_to_host_path ()
 | 
|---|
 | 2979 | {
 | 
|---|
 | 2980 |   func_to_host_path_result="$1"
 | 
|---|
 | 2981 |   if test -n "$1" ; then
 | 
|---|
 | 2982 |     case $host in
 | 
|---|
 | 2983 |       *mingw* )
 | 
|---|
 | 2984 |         lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
 | 
|---|
 | 2985 |         case $build in
 | 
|---|
 | 2986 |           *mingw* ) # actually, msys
 | 
|---|
 | 2987 |             # awkward: cmd appends spaces to result
 | 
|---|
 | 2988 |             lt_sed_strip_trailing_spaces="s/[ ]*\$//"
 | 
|---|
 | 2989 |             func_to_host_path_tmp1=`( cmd //c echo "$1" |\
 | 
|---|
 | 2990 |               $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
 | 
|---|
 | 2991 |             func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
 | 
|---|
 | 2992 |               $SED -e "$lt_sed_naive_backslashify"`
 | 
|---|
 | 2993 |             ;;
 | 
|---|
 | 2994 |           *cygwin* )
 | 
|---|
 | 2995 |             func_to_host_path_tmp1=`cygpath -w "$1"`
 | 
|---|
 | 2996 |             func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
 | 
|---|
 | 2997 |               $SED -e "$lt_sed_naive_backslashify"`
 | 
|---|
 | 2998 |             ;;
 | 
|---|
 | 2999 |           * )
 | 
|---|
 | 3000 |             # Unfortunately, winepath does not exit with a non-zero
 | 
|---|
 | 3001 |             # error code, so we are forced to check the contents of
 | 
|---|
 | 3002 |             # stdout. On the other hand, if the command is not
 | 
|---|
 | 3003 |             # found, the shell will set an exit code of 127 and print
 | 
|---|
 | 3004 |             # *an error message* to stdout. So we must check for both
 | 
|---|
 | 3005 |             # error code of zero AND non-empty stdout, which explains
 | 
|---|
 | 3006 |             # the odd construction:
 | 
|---|
 | 3007 |             func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
 | 
|---|
 | 3008 |             if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
 | 
|---|
 | 3009 |               func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
 | 
|---|
 | 3010 |                 $SED -e "$lt_sed_naive_backslashify"`
 | 
|---|
 | 3011 |             else
 | 
|---|
 | 3012 |               # Allow warning below.
 | 
|---|
 | 3013 |               func_to_host_path_result=""
 | 
|---|
 | 3014 |             fi
 | 
|---|
 | 3015 |             ;;
 | 
|---|
 | 3016 |         esac
 | 
|---|
 | 3017 |         if test -z "$func_to_host_path_result" ; then
 | 
|---|
 | 3018 |           func_error "Could not determine host path corresponding to"
 | 
|---|
 | 3019 |           func_error "  '$1'"
 | 
|---|
 | 3020 |           func_error "Continuing, but uninstalled executables may not work."
 | 
|---|
 | 3021 |           # Fallback:
 | 
|---|
 | 3022 |           func_to_host_path_result="$1"
 | 
|---|
 | 3023 |         fi
 | 
|---|
 | 3024 |         ;;
 | 
|---|
 | 3025 |     esac
 | 
|---|
 | 3026 |   fi
 | 
|---|
 | 3027 | }
 | 
|---|
 | 3028 | # end: func_to_host_path
 | 
|---|
 | 3029 | 
 | 
|---|
 | 3030 | # func_to_host_pathlist arg
 | 
|---|
 | 3031 | #
 | 
|---|
 | 3032 | # Convert pathlists to host format when used with build tools.
 | 
|---|
 | 3033 | # See func_to_host_path(), above. This function supports the
 | 
|---|
 | 3034 | # following $build/$host combinations (but does no harm for
 | 
|---|
 | 3035 | # combinations not listed here):
 | 
|---|
 | 3036 | #    $build          $host
 | 
|---|
 | 3037 | #    mingw (msys)    mingw  [e.g. native]
 | 
|---|
 | 3038 | #    cygwin          mingw
 | 
|---|
 | 3039 | #    *nix + wine     mingw
 | 
|---|
 | 3040 | #
 | 
|---|
 | 3041 | # Path separators are also converted from $build format to
 | 
|---|
 | 3042 | # $host format. If ARG begins or ends with a path separator
 | 
|---|
 | 3043 | # character, it is preserved (but converted to $host format)
 | 
|---|
 | 3044 | # on output.
 | 
|---|
 | 3045 | #
 | 
|---|
 | 3046 | # ARG is a pathlist (on $build) that should be converted to
 | 
|---|
 | 3047 | # the proper representation on $host. The result is stored
 | 
|---|
 | 3048 | # in $func_to_host_pathlist_result.
 | 
|---|
 | 3049 | func_to_host_pathlist ()
 | 
|---|
 | 3050 | {
 | 
|---|
 | 3051 |   func_to_host_pathlist_result="$1"
 | 
|---|
 | 3052 |   if test -n "$1" ; then
 | 
|---|
 | 3053 |     case $host in
 | 
|---|
 | 3054 |       *mingw* )
 | 
|---|
 | 3055 |         lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
 | 
|---|
 | 3056 |         # Remove leading and trailing path separator characters from
 | 
|---|
 | 3057 |         # ARG. msys behavior is inconsistent here, cygpath turns them
 | 
|---|
 | 3058 |         # into '.;' and ';.', and winepath ignores them completely.
 | 
|---|
 | 3059 |         func_to_host_pathlist_tmp2="$1"
 | 
|---|
 | 3060 |         # Once set for this call, this variable should not be
 | 
|---|
 | 3061 |         # reassigned. It is used in tha fallback case.
 | 
|---|
 | 3062 |         func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
 | 
|---|
 | 3063 |           $SED -e 's|^:*||' -e 's|:*$||'`
 | 
|---|
 | 3064 |         case $build in
 | 
|---|
 | 3065 |           *mingw* ) # Actually, msys.
 | 
|---|
 | 3066 |             # Awkward: cmd appends spaces to result.
 | 
|---|
 | 3067 |             lt_sed_strip_trailing_spaces="s/[ ]*\$//"
 | 
|---|
 | 3068 |             func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
 | 
|---|
 | 3069 |               $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
 | 
|---|
 | 3070 |             func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
 | 
|---|
 | 3071 |               $SED -e "$lt_sed_naive_backslashify"`
 | 
|---|
 | 3072 |             ;;
 | 
|---|
 | 3073 |           *cygwin* )
 | 
|---|
 | 3074 |             func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
 | 
|---|
 | 3075 |             func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
 | 
|---|
 | 3076 |               $SED -e "$lt_sed_naive_backslashify"`
 | 
|---|
 | 3077 |             ;;
 | 
|---|
 | 3078 |           * )
 | 
|---|
 | 3079 |             # unfortunately, winepath doesn't convert pathlists
 | 
|---|
 | 3080 |             func_to_host_pathlist_result=""
 | 
|---|
 | 3081 |             func_to_host_pathlist_oldIFS=$IFS
 | 
|---|
 | 3082 |             IFS=:
 | 
|---|
 | 3083 |             for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
 | 
|---|
 | 3084 |               IFS=$func_to_host_pathlist_oldIFS
 | 
|---|
 | 3085 |               if test -n "$func_to_host_pathlist_f" ; then
 | 
|---|
 | 3086 |                 func_to_host_path "$func_to_host_pathlist_f"
 | 
|---|
 | 3087 |                 if test -n "$func_to_host_path_result" ; then
 | 
|---|
 | 3088 |                   if test -z "$func_to_host_pathlist_result" ; then
 | 
|---|
 | 3089 |                     func_to_host_pathlist_result="$func_to_host_path_result"
 | 
|---|
 | 3090 |                   else
 | 
|---|
 | 3091 |                     func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
 | 
|---|
 | 3092 |                   fi
 | 
|---|
 | 3093 |                 fi
 | 
|---|
 | 3094 |               fi
 | 
|---|
 | 3095 |               IFS=:
 | 
|---|
 | 3096 |             done
 | 
|---|
 | 3097 |             IFS=$func_to_host_pathlist_oldIFS
 | 
|---|
 | 3098 |             ;;
 | 
|---|
 | 3099 |         esac
 | 
|---|
 | 3100 |         if test -z "$func_to_host_pathlist_result" ; then
 | 
|---|
 | 3101 |           func_error "Could not determine the host path(s) corresponding to"
 | 
|---|
 | 3102 |           func_error "  '$1'"
 | 
|---|
 | 3103 |           func_error "Continuing, but uninstalled executables may not work."
 | 
|---|
 | 3104 |           # Fallback. This may break if $1 contains DOS-style drive
 | 
|---|
 | 3105 |           # specifications. The fix is not to complicate the expression
 | 
|---|
 | 3106 |           # below, but for the user to provide a working wine installation
 | 
|---|
 | 3107 |           # with winepath so that path translation in the cross-to-mingw
 | 
|---|
 | 3108 |           # case works properly.
 | 
|---|
 | 3109 |           lt_replace_pathsep_nix_to_dos="s|:|;|g"
 | 
|---|
 | 3110 |           func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
 | 
|---|
 | 3111 |             $SED -e "$lt_replace_pathsep_nix_to_dos"`
 | 
|---|
 | 3112 |         fi
 | 
|---|
 | 3113 |         # Now, add the leading and trailing path separators back
 | 
|---|
 | 3114 |         case "$1" in
 | 
|---|
 | 3115 |           :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
 | 
|---|
 | 3116 |             ;;
 | 
|---|
 | 3117 |         esac
 | 
|---|
 | 3118 |         case "$1" in
 | 
|---|
 | 3119 |           *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
 | 
|---|
 | 3120 |             ;;
 | 
|---|
 | 3121 |         esac
 | 
|---|
 | 3122 |         ;;
 | 
|---|
 | 3123 |     esac
 | 
|---|
 | 3124 |   fi
 | 
|---|
 | 3125 | }
 | 
|---|
 | 3126 | # end: func_to_host_pathlist
 | 
|---|
 | 3127 | 
 | 
|---|
 | 3128 | # func_emit_cwrapperexe_src
 | 
|---|
 | 3129 | # emit the source code for a wrapper executable on stdout
 | 
|---|
 | 3130 | # Must ONLY be called from within func_mode_link because
 | 
|---|
 | 3131 | # it depends on a number of variable set therein.
 | 
|---|
 | 3132 | func_emit_cwrapperexe_src ()
 | 
|---|
 | 3133 | {
 | 
|---|
 | 3134 |         cat <<EOF
 | 
|---|
 | 3135 | 
 | 
|---|
 | 3136 | /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
 | 
|---|
 | 3137 |    Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 | 
|---|
 | 3138 | 
 | 
|---|
 | 3139 |    The $output program cannot be directly executed until all the libtool
 | 
|---|
 | 3140 |    libraries that it depends on are installed.
 | 
|---|
 | 3141 | 
 | 
|---|
 | 3142 |    This wrapper executable should never be moved out of the build directory.
 | 
|---|
 | 3143 |    If it is, it will not operate correctly.
 | 
|---|
 | 3144 | 
 | 
|---|
 | 3145 |    Currently, it simply execs the wrapper *script* "$SHELL $output",
 | 
|---|
 | 3146 |    but could eventually absorb all of the scripts functionality and
 | 
|---|
 | 3147 |    exec $objdir/$outputname directly.
 | 
|---|
 | 3148 | */
 | 
|---|
 | 3149 | EOF
 | 
|---|
 | 3150 |             cat <<"EOF"
 | 
|---|
 | 3151 | #include <stdio.h>
 | 
|---|
 | 3152 | #include <stdlib.h>
 | 
|---|
 | 3153 | #ifdef _MSC_VER
 | 
|---|
 | 3154 | # include <direct.h>
 | 
|---|
 | 3155 | # include <process.h>
 | 
|---|
 | 3156 | # include <io.h>
 | 
|---|
 | 3157 | # define setmode _setmode
 | 
|---|
 | 3158 | #else
 | 
|---|
 | 3159 | # include <unistd.h>
 | 
|---|
 | 3160 | # include <stdint.h>
 | 
|---|
 | 3161 | # ifdef __CYGWIN__
 | 
|---|
 | 3162 | #  include <io.h>
 | 
|---|
 | 3163 | #  define HAVE_SETENV
 | 
|---|
 | 3164 | #  ifdef __STRICT_ANSI__
 | 
|---|
 | 3165 | char *realpath (const char *, char *);
 | 
|---|
 | 3166 | int putenv (char *);
 | 
|---|
 | 3167 | int setenv (const char *, const char *, int);
 | 
|---|
 | 3168 | #  endif
 | 
|---|
 | 3169 | # endif
 | 
|---|
 | 3170 | #endif
 | 
|---|
 | 3171 | #include <malloc.h>
 | 
|---|
 | 3172 | #include <stdarg.h>
 | 
|---|
 | 3173 | #include <assert.h>
 | 
|---|
 | 3174 | #include <string.h>
 | 
|---|
 | 3175 | #include <ctype.h>
 | 
|---|
 | 3176 | #include <errno.h>
 | 
|---|
 | 3177 | #include <fcntl.h>
 | 
|---|
 | 3178 | #include <sys/stat.h>
 | 
|---|
 | 3179 | 
 | 
|---|
 | 3180 | #if defined(PATH_MAX)
 | 
|---|
 | 3181 | # define LT_PATHMAX PATH_MAX
 | 
|---|
 | 3182 | #elif defined(MAXPATHLEN)
 | 
|---|
 | 3183 | # define LT_PATHMAX MAXPATHLEN
 | 
|---|
 | 3184 | #else
 | 
|---|
 | 3185 | # define LT_PATHMAX 1024
 | 
|---|
 | 3186 | #endif
 | 
|---|
 | 3187 | 
 | 
|---|
 | 3188 | #ifndef S_IXOTH
 | 
|---|
 | 3189 | # define S_IXOTH 0
 | 
|---|
 | 3190 | #endif
 | 
|---|
 | 3191 | #ifndef S_IXGRP
 | 
|---|
 | 3192 | # define S_IXGRP 0
 | 
|---|
 | 3193 | #endif
 | 
|---|
 | 3194 | 
 | 
|---|
 | 3195 | #ifdef _MSC_VER
 | 
|---|
 | 3196 | # define S_IXUSR _S_IEXEC
 | 
|---|
 | 3197 | # define stat _stat
 | 
|---|
 | 3198 | # ifndef _INTPTR_T_DEFINED
 | 
|---|
 | 3199 | #  define intptr_t int
 | 
|---|
 | 3200 | # endif
 | 
|---|
 | 3201 | #endif
 | 
|---|
 | 3202 | 
 | 
|---|
 | 3203 | #ifndef DIR_SEPARATOR
 | 
|---|
 | 3204 | # define DIR_SEPARATOR '/'
 | 
|---|
 | 3205 | # define PATH_SEPARATOR ':'
 | 
|---|
 | 3206 | #endif
 | 
|---|
 | 3207 | 
 | 
|---|
 | 3208 | #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
 | 
|---|
 | 3209 |   defined (__OS2__)
 | 
|---|
 | 3210 | # define HAVE_DOS_BASED_FILE_SYSTEM
 | 
|---|
 | 3211 | # define FOPEN_WB "wb"
 | 
|---|
 | 3212 | # ifndef DIR_SEPARATOR_2
 | 
|---|
 | 3213 | #  define DIR_SEPARATOR_2 '\\'
 | 
|---|
 | 3214 | # endif
 | 
|---|
 | 3215 | # ifndef PATH_SEPARATOR_2
 | 
|---|
 | 3216 | #  define PATH_SEPARATOR_2 ';'
 | 
|---|
 | 3217 | # endif
 | 
|---|
 | 3218 | #endif
 | 
|---|
 | 3219 | 
 | 
|---|
 | 3220 | #ifndef DIR_SEPARATOR_2
 | 
|---|
 | 3221 | # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
 | 
|---|
 | 3222 | #else /* DIR_SEPARATOR_2 */
 | 
|---|
 | 3223 | # define IS_DIR_SEPARATOR(ch) \
 | 
|---|
 | 3224 |         (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 | 
|---|
 | 3225 | #endif /* DIR_SEPARATOR_2 */
 | 
|---|
 | 3226 | 
 | 
|---|
 | 3227 | #ifndef PATH_SEPARATOR_2
 | 
|---|
 | 3228 | # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
 | 
|---|
 | 3229 | #else /* PATH_SEPARATOR_2 */
 | 
|---|
 | 3230 | # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 | 
|---|
 | 3231 | #endif /* PATH_SEPARATOR_2 */
 | 
|---|
 | 3232 | 
 | 
|---|
 | 3233 | #ifdef __CYGWIN__
 | 
|---|
 | 3234 | # define FOPEN_WB "wb"
 | 
|---|
 | 3235 | #endif
 | 
|---|
 | 3236 | 
 | 
|---|
 | 3237 | #ifndef FOPEN_WB
 | 
|---|
 | 3238 | # define FOPEN_WB "w"
 | 
|---|
 | 3239 | #endif
 | 
|---|
 | 3240 | #ifndef _O_BINARY
 | 
|---|
 | 3241 | # define _O_BINARY 0
 | 
|---|
 | 3242 | #endif
 | 
|---|
 | 3243 | 
 | 
|---|
 | 3244 | #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 | 
|---|
 | 3245 | #define XFREE(stale) do { \
 | 
|---|
 | 3246 |   if (stale) { free ((void *) stale); stale = 0; } \
 | 
|---|
 | 3247 | } while (0)
 | 
|---|
 | 3248 | 
 | 
|---|
 | 3249 | #undef LTWRAPPER_DEBUGPRINTF
 | 
|---|
 | 3250 | #if defined DEBUGWRAPPER
 | 
|---|
 | 3251 | # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
 | 
|---|
 | 3252 | static void
 | 
|---|
 | 3253 | ltwrapper_debugprintf (const char *fmt, ...)
 | 
|---|
 | 3254 | {
 | 
|---|
 | 3255 |     va_list args;
 | 
|---|
 | 3256 |     va_start (args, fmt);
 | 
|---|
 | 3257 |     (void) vfprintf (stderr, fmt, args);
 | 
|---|
 | 3258 |     va_end (args);
 | 
|---|
 | 3259 | }
 | 
|---|
 | 3260 | #else
 | 
|---|
 | 3261 | # define LTWRAPPER_DEBUGPRINTF(args)
 | 
|---|
 | 3262 | #endif
 | 
|---|
 | 3263 | 
 | 
|---|
 | 3264 | const char *program_name = NULL;
 | 
|---|
 | 3265 | 
 | 
|---|
 | 3266 | void *xmalloc (size_t num);
 | 
|---|
 | 3267 | char *xstrdup (const char *string);
 | 
|---|
 | 3268 | const char *base_name (const char *name);
 | 
|---|
 | 3269 | char *find_executable (const char *wrapper);
 | 
|---|
 | 3270 | char *chase_symlinks (const char *pathspec);
 | 
|---|
 | 3271 | int make_executable (const char *path);
 | 
|---|
 | 3272 | int check_executable (const char *path);
 | 
|---|
 | 3273 | char *strendzap (char *str, const char *pat);
 | 
|---|
 | 3274 | void lt_fatal (const char *message, ...);
 | 
|---|
 | 3275 | void lt_setenv (const char *name, const char *value);
 | 
|---|
 | 3276 | char *lt_extend_str (const char *orig_value, const char *add, int to_end);
 | 
|---|
 | 3277 | void lt_opt_process_env_set (const char *arg);
 | 
|---|
 | 3278 | void lt_opt_process_env_prepend (const char *arg);
 | 
|---|
 | 3279 | void lt_opt_process_env_append (const char *arg);
 | 
|---|
 | 3280 | int lt_split_name_value (const char *arg, char** name, char** value);
 | 
|---|
 | 3281 | void lt_update_exe_path (const char *name, const char *value);
 | 
|---|
 | 3282 | void lt_update_lib_path (const char *name, const char *value);
 | 
|---|
 | 3283 | 
 | 
|---|
 | 3284 | static const char *script_text_part1 =
 | 
|---|
 | 3285 | EOF
 | 
|---|
 | 3286 | 
 | 
|---|
 | 3287 |             func_emit_wrapper_part1 yes |
 | 
|---|
 | 3288 |                 $SED -e 's/\([\\"]\)/\\\1/g' \
 | 
|---|
 | 3289 |                      -e 's/^/  "/' -e 's/$/\\n"/'
 | 
|---|
 | 3290 |             echo ";"
 | 
|---|
 | 3291 |             cat <<EOF
 | 
|---|
 | 3292 | 
 | 
|---|
 | 3293 | static const char *script_text_part2 =
 | 
|---|
 | 3294 | EOF
 | 
|---|
 | 3295 |             func_emit_wrapper_part2 yes |
 | 
|---|
 | 3296 |                 $SED -e 's/\([\\"]\)/\\\1/g' \
 | 
|---|
 | 3297 |                      -e 's/^/  "/' -e 's/$/\\n"/'
 | 
|---|
 | 3298 |             echo ";"
 | 
|---|
 | 3299 | 
 | 
|---|
 | 3300 |             cat <<EOF
 | 
|---|
 | 3301 | const char * MAGIC_EXE = "$magic_exe";
 | 
|---|
 | 3302 | const char * LIB_PATH_VARNAME = "$shlibpath_var";
 | 
|---|
 | 3303 | EOF
 | 
|---|
 | 3304 | 
 | 
|---|
 | 3305 |             if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 | 
|---|
 | 3306 |               func_to_host_pathlist "$temp_rpath"
 | 
|---|
 | 3307 |               cat <<EOF
 | 
|---|
 | 3308 | const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
 | 
|---|
 | 3309 | EOF
 | 
|---|
 | 3310 |             else
 | 
|---|
 | 3311 |               cat <<"EOF"
 | 
|---|
 | 3312 | const char * LIB_PATH_VALUE   = "";
 | 
|---|
 | 3313 | EOF
 | 
|---|
 | 3314 |             fi
 | 
|---|
 | 3315 | 
 | 
|---|
 | 3316 |             if test -n "$dllsearchpath"; then
 | 
|---|
 | 3317 |               func_to_host_pathlist "$dllsearchpath:"
 | 
|---|
 | 3318 |               cat <<EOF
 | 
|---|
 | 3319 | const char * EXE_PATH_VARNAME = "PATH";
 | 
|---|
 | 3320 | const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
 | 
|---|
 | 3321 | EOF
 | 
|---|
 | 3322 |             else
 | 
|---|
 | 3323 |               cat <<"EOF"
 | 
|---|
 | 3324 | const char * EXE_PATH_VARNAME = "";
 | 
|---|
 | 3325 | const char * EXE_PATH_VALUE   = "";
 | 
|---|
 | 3326 | EOF
 | 
|---|
 | 3327 |             fi
 | 
|---|
 | 3328 | 
 | 
|---|
 | 3329 |             if test "$fast_install" = yes; then
 | 
|---|
 | 3330 |               cat <<EOF
 | 
|---|
 | 3331 | const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
 | 
|---|
 | 3332 | EOF
 | 
|---|
 | 3333 |             else
 | 
|---|
 | 3334 |               cat <<EOF
 | 
|---|
 | 3335 | const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
 | 
|---|
 | 3336 | EOF
 | 
|---|
 | 3337 |             fi
 | 
|---|
 | 3338 | 
 | 
|---|
 | 3339 | 
 | 
|---|
 | 3340 |             cat <<"EOF"
 | 
|---|
 | 3341 | 
 | 
|---|
 | 3342 | #define LTWRAPPER_OPTION_PREFIX         "--lt-"
 | 
|---|
 | 3343 | #define LTWRAPPER_OPTION_PREFIX_LENGTH  5
 | 
|---|
 | 3344 | 
 | 
|---|
 | 3345 | static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
 | 
|---|
 | 3346 | static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
 | 
|---|
 | 3347 | 
 | 
|---|
 | 3348 | static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
 | 
|---|
 | 3349 | 
 | 
|---|
 | 3350 | static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
 | 
|---|
 | 3351 | static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
 | 
|---|
 | 3352 |   /* argument is putenv-style "foo=bar", value of foo is set to bar */
 | 
|---|
 | 3353 | 
 | 
|---|
 | 3354 | static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
 | 
|---|
 | 3355 | static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
 | 
|---|
 | 3356 |   /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
 | 
|---|
 | 3357 | 
 | 
|---|
 | 3358 | static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
 | 
|---|
 | 3359 | static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
 | 
|---|
 | 3360 |   /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
 | 
|---|
 | 3361 | 
 | 
|---|
 | 3362 | int
 | 
|---|
 | 3363 | main (int argc, char *argv[])
 | 
|---|
 | 3364 | {
 | 
|---|
 | 3365 |   char **newargz;
 | 
|---|
 | 3366 |   int  newargc;
 | 
|---|
 | 3367 |   char *tmp_pathspec;
 | 
|---|
 | 3368 |   char *actual_cwrapper_path;
 | 
|---|
 | 3369 |   char *actual_cwrapper_name;
 | 
|---|
 | 3370 |   char *target_name;
 | 
|---|
 | 3371 |   char *lt_argv_zero;
 | 
|---|
 | 3372 |   intptr_t rval = 127;
 | 
|---|
 | 3373 | 
 | 
|---|
 | 3374 |   int i;
 | 
|---|
 | 3375 | 
 | 
|---|
 | 3376 |   program_name = (char *) xstrdup (base_name (argv[0]));
 | 
|---|
 | 3377 |   LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
 | 
|---|
 | 3378 |   LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
 | 
|---|
 | 3379 | 
 | 
|---|
 | 3380 |   /* very simple arg parsing; don't want to rely on getopt */
 | 
|---|
 | 3381 |   for (i = 1; i < argc; i++)
 | 
|---|
 | 3382 |     {
 | 
|---|
 | 3383 |       if (strcmp (argv[i], dumpscript_opt) == 0)
 | 
|---|
 | 3384 |         {
 | 
|---|
 | 3385 | EOF
 | 
|---|
 | 3386 |             case "$host" in
 | 
|---|
 | 3387 |               *mingw* | *cygwin* )
 | 
|---|
 | 3388 |                 # make stdout use "unix" line endings
 | 
|---|
 | 3389 |                 echo "          setmode(1,_O_BINARY);"
 | 
|---|
 | 3390 |                 ;;
 | 
|---|
 | 3391 |               esac
 | 
|---|
 | 3392 | 
 | 
|---|
 | 3393 |             cat <<"EOF"
 | 
|---|
 | 3394 |           printf ("%s", script_text_part1);
 | 
|---|
 | 3395 |           printf ("%s", script_text_part2);
 | 
|---|
 | 3396 |           return 0;
 | 
|---|
 | 3397 |         }
 | 
|---|
 | 3398 |     }
 | 
|---|
 | 3399 | 
 | 
|---|
 | 3400 |   newargz = XMALLOC (char *, argc + 1);
 | 
|---|
 | 3401 |   tmp_pathspec = find_executable (argv[0]);
 | 
|---|
 | 3402 |   if (tmp_pathspec == NULL)
 | 
|---|
 | 3403 |     lt_fatal ("Couldn't find %s", argv[0]);
 | 
|---|
 | 3404 |   LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
 | 
|---|
 | 3405 |                           tmp_pathspec));
 | 
|---|
 | 3406 | 
 | 
|---|
 | 3407 |   actual_cwrapper_path = chase_symlinks (tmp_pathspec);
 | 
|---|
 | 3408 |   LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
 | 
|---|
 | 3409 |                           actual_cwrapper_path));
 | 
|---|
 | 3410 |   XFREE (tmp_pathspec);
 | 
|---|
 | 3411 | 
 | 
|---|
 | 3412 |   actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
 | 
|---|
 | 3413 |   strendzap (actual_cwrapper_path, actual_cwrapper_name);
 | 
|---|
 | 3414 | 
 | 
|---|
 | 3415 |   /* wrapper name transforms */
 | 
|---|
 | 3416 |   strendzap (actual_cwrapper_name, ".exe");
 | 
|---|
 | 3417 |   tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
 | 
|---|
 | 3418 |   XFREE (actual_cwrapper_name);
 | 
|---|
 | 3419 |   actual_cwrapper_name = tmp_pathspec;
 | 
|---|
 | 3420 |   tmp_pathspec = 0;
 | 
|---|
 | 3421 | 
 | 
|---|
 | 3422 |   /* target_name transforms -- use actual target program name; might have lt- prefix */
 | 
|---|
 | 3423 |   target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
 | 
|---|
 | 3424 |   strendzap (target_name, ".exe");
 | 
|---|
 | 3425 |   tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
 | 
|---|
 | 3426 |   XFREE (target_name);
 | 
|---|
 | 3427 |   target_name = tmp_pathspec;
 | 
|---|
 | 3428 |   tmp_pathspec = 0;
 | 
|---|
 | 3429 | 
 | 
|---|
 | 3430 |   LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
 | 
|---|
 | 3431 |                           target_name));
 | 
|---|
 | 3432 | EOF
 | 
|---|
 | 3433 | 
 | 
|---|
 | 3434 |             cat <<EOF
 | 
|---|
 | 3435 |   newargz[0] =
 | 
|---|
 | 3436 |     XMALLOC (char, (strlen (actual_cwrapper_path) +
 | 
|---|
 | 3437 |                     strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
 | 
|---|
 | 3438 |   strcpy (newargz[0], actual_cwrapper_path);
 | 
|---|
 | 3439 |   strcat (newargz[0], "$objdir");
 | 
|---|
 | 3440 |   strcat (newargz[0], "/");
 | 
|---|
 | 3441 | EOF
 | 
|---|
 | 3442 | 
 | 
|---|
 | 3443 |             cat <<"EOF"
 | 
|---|
 | 3444 |   /* stop here, and copy so we don't have to do this twice */
 | 
|---|
 | 3445 |   tmp_pathspec = xstrdup (newargz[0]);
 | 
|---|
 | 3446 | 
 | 
|---|
 | 3447 |   /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
 | 
|---|
 | 3448 |   strcat (newargz[0], actual_cwrapper_name);
 | 
|---|
 | 3449 | 
 | 
|---|
 | 3450 |   /* DO want the lt- prefix here if it exists, so use target_name */
 | 
|---|
 | 3451 |   lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
 | 
|---|
 | 3452 |   XFREE (tmp_pathspec);
 | 
|---|
 | 3453 |   tmp_pathspec = NULL;
 | 
|---|
 | 3454 | EOF
 | 
|---|
 | 3455 | 
 | 
|---|
 | 3456 |             case $host_os in
 | 
|---|
 | 3457 |               mingw*)
 | 
|---|
 | 3458 |             cat <<"EOF"
 | 
|---|
 | 3459 |   {
 | 
|---|
 | 3460 |     char* p;
 | 
|---|
 | 3461 |     while ((p = strchr (newargz[0], '\\')) != NULL)
 | 
|---|
 | 3462 |       {
 | 
|---|
 | 3463 |         *p = '/';
 | 
|---|
 | 3464 |       }
 | 
|---|
 | 3465 |     while ((p = strchr (lt_argv_zero, '\\')) != NULL)
 | 
|---|
 | 3466 |       {
 | 
|---|
 | 3467 |         *p = '/';
 | 
|---|
 | 3468 |       }
 | 
|---|
 | 3469 |   }
 | 
|---|
 | 3470 | EOF
 | 
|---|
 | 3471 |             ;;
 | 
|---|
 | 3472 |             esac
 | 
|---|
 | 3473 | 
 | 
|---|
 | 3474 |             cat <<"EOF"
 | 
|---|
 | 3475 |   XFREE (target_name);
 | 
|---|
 | 3476 |   XFREE (actual_cwrapper_path);
 | 
|---|
 | 3477 |   XFREE (actual_cwrapper_name);
 | 
|---|
 | 3478 | 
 | 
|---|
 | 3479 |   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
 | 
|---|
 | 3480 |   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
 | 
|---|
 | 3481 |   lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 | 
|---|
 | 3482 |   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
 | 
|---|
 | 3483 | 
 | 
|---|
 | 3484 |   newargc=0;
 | 
|---|
 | 3485 |   for (i = 1; i < argc; i++)
 | 
|---|
 | 3486 |     {
 | 
|---|
 | 3487 |       if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
 | 
|---|
 | 3488 |         {
 | 
|---|
 | 3489 |           if (argv[i][env_set_opt_len] == '=')
 | 
|---|
 | 3490 |             {
 | 
|---|
 | 3491 |               const char *p = argv[i] + env_set_opt_len + 1;
 | 
|---|
 | 3492 |               lt_opt_process_env_set (p);
 | 
|---|
 | 3493 |             }
 | 
|---|
 | 3494 |           else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
 | 
|---|
 | 3495 |             {
 | 
|---|
 | 3496 |               lt_opt_process_env_set (argv[++i]); /* don't copy */
 | 
|---|
 | 3497 |             }
 | 
|---|
 | 3498 |           else
 | 
|---|
 | 3499 |             lt_fatal ("%s missing required argument", env_set_opt);
 | 
|---|
 | 3500 |           continue;
 | 
|---|
 | 3501 |         }
 | 
|---|
 | 3502 |       if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
 | 
|---|
 | 3503 |         {
 | 
|---|
 | 3504 |           if (argv[i][env_prepend_opt_len] == '=')
 | 
|---|
 | 3505 |             {
 | 
|---|
 | 3506 |               const char *p = argv[i] + env_prepend_opt_len + 1;
 | 
|---|
 | 3507 |               lt_opt_process_env_prepend (p);
 | 
|---|
 | 3508 |             }
 | 
|---|
 | 3509 |           else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
 | 
|---|
 | 3510 |             {
 | 
|---|
 | 3511 |               lt_opt_process_env_prepend (argv[++i]); /* don't copy */
 | 
|---|
 | 3512 |             }
 | 
|---|
 | 3513 |           else
 | 
|---|
 | 3514 |             lt_fatal ("%s missing required argument", env_prepend_opt);
 | 
|---|
 | 3515 |           continue;
 | 
|---|
 | 3516 |         }
 | 
|---|
 | 3517 |       if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
 | 
|---|
 | 3518 |         {
 | 
|---|
 | 3519 |           if (argv[i][env_append_opt_len] == '=')
 | 
|---|
 | 3520 |             {
 | 
|---|
 | 3521 |               const char *p = argv[i] + env_append_opt_len + 1;
 | 
|---|
 | 3522 |               lt_opt_process_env_append (p);
 | 
|---|
 | 3523 |             }
 | 
|---|
 | 3524 |           else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
 | 
|---|
 | 3525 |             {
 | 
|---|
 | 3526 |               lt_opt_process_env_append (argv[++i]); /* don't copy */
 | 
|---|
 | 3527 |             }
 | 
|---|
 | 3528 |           else
 | 
|---|
 | 3529 |             lt_fatal ("%s missing required argument", env_append_opt);
 | 
|---|
 | 3530 |           continue;
 | 
|---|
 | 3531 |         }
 | 
|---|
 | 3532 |       if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
 | 
|---|
 | 3533 |         {
 | 
|---|
 | 3534 |           /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
 | 
|---|
 | 3535 |              namespace, but it is not one of the ones we know about and
 | 
|---|
 | 3536 |              have already dealt with, above (inluding dump-script), then
 | 
|---|
 | 3537 |              report an error. Otherwise, targets might begin to believe
 | 
|---|
 | 3538 |              they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
 | 
|---|
 | 3539 |              namespace. The first time any user complains about this, we'll
 | 
|---|
 | 3540 |              need to make LTWRAPPER_OPTION_PREFIX a configure-time option
 | 
|---|
 | 3541 |              or a configure.ac-settable value.
 | 
|---|
 | 3542 |            */
 | 
|---|
 | 3543 |           lt_fatal ("Unrecognized option in %s namespace: '%s'",
 | 
|---|
 | 3544 |                     ltwrapper_option_prefix, argv[i]);
 | 
|---|
 | 3545 |         }
 | 
|---|
 | 3546 |       /* otherwise ... */
 | 
|---|
 | 3547 |       newargz[++newargc] = xstrdup (argv[i]);
 | 
|---|
 | 3548 |     }
 | 
|---|
 | 3549 |   newargz[++newargc] = NULL;
 | 
|---|
 | 3550 | 
 | 
|---|
 | 3551 |   LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
 | 
|---|
 | 3552 |   for (i = 0; i < newargc; i++)
 | 
|---|
 | 3553 |     {
 | 
|---|
 | 3554 |       LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
 | 
|---|
 | 3555 |     }
 | 
|---|
 | 3556 | 
 | 
|---|
 | 3557 | EOF
 | 
|---|
 | 3558 | 
 | 
|---|
 | 3559 |             case $host_os in
 | 
|---|
 | 3560 |               mingw*)
 | 
|---|
 | 3561 |                 cat <<"EOF"
 | 
|---|
 | 3562 |   /* execv doesn't actually work on mingw as expected on unix */
 | 
|---|
 | 3563 |   rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
 | 
|---|
 | 3564 |   if (rval == -1)
 | 
|---|
 | 3565 |     {
 | 
|---|
 | 3566 |       /* failed to start process */
 | 
|---|
 | 3567 |       LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
 | 
|---|
 | 3568 |       return 127;
 | 
|---|
 | 3569 |     }
 | 
|---|
 | 3570 |   return rval;
 | 
|---|
 | 3571 | EOF
 | 
|---|
 | 3572 |                 ;;
 | 
|---|
 | 3573 |               *)
 | 
|---|
 | 3574 |                 cat <<"EOF"
 | 
|---|
 | 3575 |   execv (lt_argv_zero, newargz);
 | 
|---|
 | 3576 |   return rval; /* =127, but avoids unused variable warning */
 | 
|---|
 | 3577 | EOF
 | 
|---|
 | 3578 |                 ;;
 | 
|---|
 | 3579 |             esac
 | 
|---|
 | 3580 | 
 | 
|---|
 | 3581 |             cat <<"EOF"
 | 
|---|
 | 3582 | }
 | 
|---|
 | 3583 | 
 | 
|---|
 | 3584 | void *
 | 
|---|
 | 3585 | xmalloc (size_t num)
 | 
|---|
 | 3586 | {
 | 
|---|
 | 3587 |   void *p = (void *) malloc (num);
 | 
|---|
 | 3588 |   if (!p)
 | 
|---|
 | 3589 |     lt_fatal ("Memory exhausted");
 | 
|---|
 | 3590 | 
 | 
|---|
 | 3591 |   return p;
 | 
|---|
 | 3592 | }
 | 
|---|
 | 3593 | 
 | 
|---|
 | 3594 | char *
 | 
|---|
 | 3595 | xstrdup (const char *string)
 | 
|---|
 | 3596 | {
 | 
|---|
 | 3597 |   return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
 | 
|---|
 | 3598 |                           string) : NULL;
 | 
|---|
 | 3599 | }
 | 
|---|
 | 3600 | 
 | 
|---|
 | 3601 | const char *
 | 
|---|
 | 3602 | base_name (const char *name)
 | 
|---|
 | 3603 | {
 | 
|---|
 | 3604 |   const char *base;
 | 
|---|
 | 3605 | 
 | 
|---|
 | 3606 | #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 | 
|---|
 | 3607 |   /* Skip over the disk name in MSDOS pathnames. */
 | 
|---|
 | 3608 |   if (isalpha ((unsigned char) name[0]) && name[1] == ':')
 | 
|---|
 | 3609 |     name += 2;
 | 
|---|
 | 3610 | #endif
 | 
|---|
 | 3611 | 
 | 
|---|
 | 3612 |   for (base = name; *name; name++)
 | 
|---|
 | 3613 |     if (IS_DIR_SEPARATOR (*name))
 | 
|---|
 | 3614 |       base = name + 1;
 | 
|---|
 | 3615 |   return base;
 | 
|---|
 | 3616 | }
 | 
|---|
 | 3617 | 
 | 
|---|
 | 3618 | int
 | 
|---|
 | 3619 | check_executable (const char *path)
 | 
|---|
 | 3620 | {
 | 
|---|
 | 3621 |   struct stat st;
 | 
|---|
 | 3622 | 
 | 
|---|
 | 3623 |   LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
 | 
|---|
 | 3624 |                           path ? (*path ? path : "EMPTY!") : "NULL!"));
 | 
|---|
 | 3625 |   if ((!path) || (!*path))
 | 
|---|
 | 3626 |     return 0;
 | 
|---|
 | 3627 | 
 | 
|---|
 | 3628 |   if ((stat (path, &st) >= 0)
 | 
|---|
 | 3629 |       && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
 | 
|---|
 | 3630 |     return 1;
 | 
|---|
 | 3631 |   else
 | 
|---|
 | 3632 |     return 0;
 | 
|---|
 | 3633 | }
 | 
|---|
 | 3634 | 
 | 
|---|
 | 3635 | int
 | 
|---|
 | 3636 | make_executable (const char *path)
 | 
|---|
 | 3637 | {
 | 
|---|
 | 3638 |   int rval = 0;
 | 
|---|
 | 3639 |   struct stat st;
 | 
|---|
 | 3640 | 
 | 
|---|
 | 3641 |   LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
 | 
|---|
 | 3642 |                           path ? (*path ? path : "EMPTY!") : "NULL!"));
 | 
|---|
 | 3643 |   if ((!path) || (!*path))
 | 
|---|
 | 3644 |     return 0;
 | 
|---|
 | 3645 | 
 | 
|---|
 | 3646 |   if (stat (path, &st) >= 0)
 | 
|---|
 | 3647 |     {
 | 
|---|
 | 3648 |       rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
 | 
|---|
 | 3649 |     }
 | 
|---|
 | 3650 |   return rval;
 | 
|---|
 | 3651 | }
 | 
|---|
 | 3652 | 
 | 
|---|
 | 3653 | /* Searches for the full path of the wrapper.  Returns
 | 
|---|
 | 3654 |    newly allocated full path name if found, NULL otherwise
 | 
|---|
 | 3655 |    Does not chase symlinks, even on platforms that support them.
 | 
|---|
 | 3656 | */
 | 
|---|
 | 3657 | char *
 | 
|---|
 | 3658 | find_executable (const char *wrapper)
 | 
|---|
 | 3659 | {
 | 
|---|
 | 3660 |   int has_slash = 0;
 | 
|---|
 | 3661 |   const char *p;
 | 
|---|
 | 3662 |   const char *p_next;
 | 
|---|
 | 3663 |   /* static buffer for getcwd */
 | 
|---|
 | 3664 |   char tmp[LT_PATHMAX + 1];
 | 
|---|
 | 3665 |   int tmp_len;
 | 
|---|
 | 3666 |   char *concat_name;
 | 
|---|
 | 3667 | 
 | 
|---|
 | 3668 |   LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
 | 
|---|
 | 3669 |                           wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
 | 
|---|
 | 3670 | 
 | 
|---|
 | 3671 |   if ((wrapper == NULL) || (*wrapper == '\0'))
 | 
|---|
 | 3672 |     return NULL;
 | 
|---|
 | 3673 | 
 | 
|---|
 | 3674 |   /* Absolute path? */
 | 
|---|
 | 3675 | #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 | 
|---|
 | 3676 |   if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
 | 
|---|
 | 3677 |     {
 | 
|---|
 | 3678 |       concat_name = xstrdup (wrapper);
 | 
|---|
 | 3679 |       if (check_executable (concat_name))
 | 
|---|
 | 3680 |         return concat_name;
 | 
|---|
 | 3681 |       XFREE (concat_name);
 | 
|---|
 | 3682 |     }
 | 
|---|
 | 3683 |   else
 | 
|---|
 | 3684 |     {
 | 
|---|
 | 3685 | #endif
 | 
|---|
 | 3686 |       if (IS_DIR_SEPARATOR (wrapper[0]))
 | 
|---|
 | 3687 |         {
 | 
|---|
 | 3688 |           concat_name = xstrdup (wrapper);
 | 
|---|
 | 3689 |           if (check_executable (concat_name))
 | 
|---|
 | 3690 |             return concat_name;
 | 
|---|
 | 3691 |           XFREE (concat_name);
 | 
|---|
 | 3692 |         }
 | 
|---|
 | 3693 | #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 | 
|---|
 | 3694 |     }
 | 
|---|
 | 3695 | #endif
 | 
|---|
 | 3696 | 
 | 
|---|
 | 3697 |   for (p = wrapper; *p; p++)
 | 
|---|
 | 3698 |     if (*p == '/')
 | 
|---|
 | 3699 |       {
 | 
|---|
 | 3700 |         has_slash = 1;
 | 
|---|
 | 3701 |         break;
 | 
|---|
 | 3702 |       }
 | 
|---|
 | 3703 |   if (!has_slash)
 | 
|---|
 | 3704 |     {
 | 
|---|
 | 3705 |       /* no slashes; search PATH */
 | 
|---|
 | 3706 |       const char *path = getenv ("PATH");
 | 
|---|
 | 3707 |       if (path != NULL)
 | 
|---|
 | 3708 |         {
 | 
|---|
 | 3709 |           for (p = path; *p; p = p_next)
 | 
|---|
 | 3710 |             {
 | 
|---|
 | 3711 |               const char *q;
 | 
|---|
 | 3712 |               size_t p_len;
 | 
|---|
 | 3713 |               for (q = p; *q; q++)
 | 
|---|
 | 3714 |                 if (IS_PATH_SEPARATOR (*q))
 | 
|---|
 | 3715 |                   break;
 | 
|---|
 | 3716 |               p_len = q - p;
 | 
|---|
 | 3717 |               p_next = (*q == '\0' ? q : q + 1);
 | 
|---|
 | 3718 |               if (p_len == 0)
 | 
|---|
 | 3719 |                 {
 | 
|---|
 | 3720 |                   /* empty path: current directory */
 | 
|---|
 | 3721 |                   if (getcwd (tmp, LT_PATHMAX) == NULL)
 | 
|---|
 | 3722 |                     lt_fatal ("getcwd failed");
 | 
|---|
 | 3723 |                   tmp_len = strlen (tmp);
 | 
|---|
 | 3724 |                   concat_name =
 | 
|---|
 | 3725 |                     XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
 | 
|---|
 | 3726 |                   memcpy (concat_name, tmp, tmp_len);
 | 
|---|
 | 3727 |                   concat_name[tmp_len] = '/';
 | 
|---|
 | 3728 |                   strcpy (concat_name + tmp_len + 1, wrapper);
 | 
|---|
 | 3729 |                 }
 | 
|---|
 | 3730 |               else
 | 
|---|
 | 3731 |                 {
 | 
|---|
 | 3732 |                   concat_name =
 | 
|---|
 | 3733 |                     XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
 | 
|---|
 | 3734 |                   memcpy (concat_name, p, p_len);
 | 
|---|
 | 3735 |                   concat_name[p_len] = '/';
 | 
|---|
 | 3736 |                   strcpy (concat_name + p_len + 1, wrapper);
 | 
|---|
 | 3737 |                 }
 | 
|---|
 | 3738 |               if (check_executable (concat_name))
 | 
|---|
 | 3739 |                 return concat_name;
 | 
|---|
 | 3740 |               XFREE (concat_name);
 | 
|---|
 | 3741 |             }
 | 
|---|
 | 3742 |         }
 | 
|---|
 | 3743 |       /* not found in PATH; assume curdir */
 | 
|---|
 | 3744 |     }
 | 
|---|
 | 3745 |   /* Relative path | not found in path: prepend cwd */
 | 
|---|
 | 3746 |   if (getcwd (tmp, LT_PATHMAX) == NULL)
 | 
|---|
 | 3747 |     lt_fatal ("getcwd failed");
 | 
|---|
 | 3748 |   tmp_len = strlen (tmp);
 | 
|---|
 | 3749 |   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
 | 
|---|
 | 3750 |   memcpy (concat_name, tmp, tmp_len);
 | 
|---|
 | 3751 |   concat_name[tmp_len] = '/';
 | 
|---|
 | 3752 |   strcpy (concat_name + tmp_len + 1, wrapper);
 | 
|---|
 | 3753 | 
 | 
|---|
 | 3754 |   if (check_executable (concat_name))
 | 
|---|
 | 3755 |     return concat_name;
 | 
|---|
 | 3756 |   XFREE (concat_name);
 | 
|---|
 | 3757 |   return NULL;
 | 
|---|
 | 3758 | }
 | 
|---|
 | 3759 | 
 | 
|---|
 | 3760 | char *
 | 
|---|
 | 3761 | chase_symlinks (const char *pathspec)
 | 
|---|
 | 3762 | {
 | 
|---|
 | 3763 | #ifndef S_ISLNK
 | 
|---|
 | 3764 |   return xstrdup (pathspec);
 | 
|---|
 | 3765 | #else
 | 
|---|
 | 3766 |   char buf[LT_PATHMAX];
 | 
|---|
 | 3767 |   struct stat s;
 | 
|---|
 | 3768 |   char *tmp_pathspec = xstrdup (pathspec);
 | 
|---|
 | 3769 |   char *p;
 | 
|---|
 | 3770 |   int has_symlinks = 0;
 | 
|---|
 | 3771 |   while (strlen (tmp_pathspec) && !has_symlinks)
 | 
|---|
 | 3772 |     {
 | 
|---|
 | 3773 |       LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
 | 
|---|
 | 3774 |                               tmp_pathspec));
 | 
|---|
 | 3775 |       if (lstat (tmp_pathspec, &s) == 0)
 | 
|---|
 | 3776 |         {
 | 
|---|
 | 3777 |           if (S_ISLNK (s.st_mode) != 0)
 | 
|---|
 | 3778 |             {
 | 
|---|
 | 3779 |               has_symlinks = 1;
 | 
|---|
 | 3780 |               break;
 | 
|---|
 | 3781 |             }
 | 
|---|
 | 3782 | 
 | 
|---|
 | 3783 |           /* search backwards for last DIR_SEPARATOR */
 | 
|---|
 | 3784 |           p = tmp_pathspec + strlen (tmp_pathspec) - 1;
 | 
|---|
 | 3785 |           while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
 | 
|---|
 | 3786 |             p--;
 | 
|---|
 | 3787 |           if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
 | 
|---|
 | 3788 |             {
 | 
|---|
 | 3789 |               /* no more DIR_SEPARATORS left */
 | 
|---|
 | 3790 |               break;
 | 
|---|
 | 3791 |             }
 | 
|---|
 | 3792 |           *p = '\0';
 | 
|---|
 | 3793 |         }
 | 
|---|
 | 3794 |       else
 | 
|---|
 | 3795 |         {
 | 
|---|
 | 3796 |           char *errstr = strerror (errno);
 | 
|---|
 | 3797 |           lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
 | 
|---|
 | 3798 |         }
 | 
|---|
 | 3799 |     }
 | 
|---|
 | 3800 |   XFREE (tmp_pathspec);
 | 
|---|
 | 3801 | 
 | 
|---|
 | 3802 |   if (!has_symlinks)
 | 
|---|
 | 3803 |     {
 | 
|---|
 | 3804 |       return xstrdup (pathspec);
 | 
|---|
 | 3805 |     }
 | 
|---|
 | 3806 | 
 | 
|---|
 | 3807 |   tmp_pathspec = realpath (pathspec, buf);
 | 
|---|
 | 3808 |   if (tmp_pathspec == 0)
 | 
|---|
 | 3809 |     {
 | 
|---|
 | 3810 |       lt_fatal ("Could not follow symlinks for %s", pathspec);
 | 
|---|
 | 3811 |     }
 | 
|---|
 | 3812 |   return xstrdup (tmp_pathspec);
 | 
|---|
 | 3813 | #endif
 | 
|---|
 | 3814 | }
 | 
|---|
 | 3815 | 
 | 
|---|
 | 3816 | char *
 | 
|---|
 | 3817 | strendzap (char *str, const char *pat)
 | 
|---|
 | 3818 | {
 | 
|---|
 | 3819 |   size_t len, patlen;
 | 
|---|
 | 3820 | 
 | 
|---|
 | 3821 |   assert (str != NULL);
 | 
|---|
 | 3822 |   assert (pat != NULL);
 | 
|---|
 | 3823 | 
 | 
|---|
 | 3824 |   len = strlen (str);
 | 
|---|
 | 3825 |   patlen = strlen (pat);
 | 
|---|
 | 3826 | 
 | 
|---|
 | 3827 |   if (patlen <= len)
 | 
|---|
 | 3828 |     {
 | 
|---|
 | 3829 |       str += len - patlen;
 | 
|---|
 | 3830 |       if (strcmp (str, pat) == 0)
 | 
|---|
 | 3831 |         *str = '\0';
 | 
|---|
 | 3832 |     }
 | 
|---|
 | 3833 |   return str;
 | 
|---|
 | 3834 | }
 | 
|---|
 | 3835 | 
 | 
|---|
 | 3836 | static void
 | 
|---|
 | 3837 | lt_error_core (int exit_status, const char *mode,
 | 
|---|
 | 3838 |                const char *message, va_list ap)
 | 
|---|
 | 3839 | {
 | 
|---|
 | 3840 |   fprintf (stderr, "%s: %s: ", program_name, mode);
 | 
|---|
 | 3841 |   vfprintf (stderr, message, ap);
 | 
|---|
 | 3842 |   fprintf (stderr, ".\n");
 | 
|---|
 | 3843 | 
 | 
|---|
 | 3844 |   if (exit_status >= 0)
 | 
|---|
 | 3845 |     exit (exit_status);
 | 
|---|
 | 3846 | }
 | 
|---|
 | 3847 | 
 | 
|---|
 | 3848 | void
 | 
|---|
 | 3849 | lt_fatal (const char *message, ...)
 | 
|---|
 | 3850 | {
 | 
|---|
 | 3851 |   va_list ap;
 | 
|---|
 | 3852 |   va_start (ap, message);
 | 
|---|
 | 3853 |   lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 | 
|---|
 | 3854 |   va_end (ap);
 | 
|---|
 | 3855 | }
 | 
|---|
 | 3856 | 
 | 
|---|
 | 3857 | void
 | 
|---|
 | 3858 | lt_setenv (const char *name, const char *value)
 | 
|---|
 | 3859 | {
 | 
|---|
 | 3860 |   LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
 | 
|---|
 | 3861 |                           (name ? name : "<NULL>"),
 | 
|---|
 | 3862 |                           (value ? value : "<NULL>")));
 | 
|---|
 | 3863 |   {
 | 
|---|
 | 3864 | #ifdef HAVE_SETENV
 | 
|---|
 | 3865 |     /* always make a copy, for consistency with !HAVE_SETENV */
 | 
|---|
 | 3866 |     char *str = xstrdup (value);
 | 
|---|
 | 3867 |     setenv (name, str, 1);
 | 
|---|
 | 3868 | #else
 | 
|---|
 | 3869 |     int len = strlen (name) + 1 + strlen (value) + 1;
 | 
|---|
 | 3870 |     char *str = XMALLOC (char, len);
 | 
|---|
 | 3871 |     sprintf (str, "%s=%s", name, value);
 | 
|---|
 | 3872 |     if (putenv (str) != EXIT_SUCCESS)
 | 
|---|
 | 3873 |       {
 | 
|---|
 | 3874 |         XFREE (str);
 | 
|---|
 | 3875 |       }
 | 
|---|
 | 3876 | #endif
 | 
|---|
 | 3877 |   }
 | 
|---|
 | 3878 | }
 | 
|---|
 | 3879 | 
 | 
|---|
 | 3880 | char *
 | 
|---|
 | 3881 | lt_extend_str (const char *orig_value, const char *add, int to_end)
 | 
|---|
 | 3882 | {
 | 
|---|
 | 3883 |   char *new_value;
 | 
|---|
 | 3884 |   if (orig_value && *orig_value)
 | 
|---|
 | 3885 |     {
 | 
|---|
 | 3886 |       int orig_value_len = strlen (orig_value);
 | 
|---|
 | 3887 |       int add_len = strlen (add);
 | 
|---|
 | 3888 |       new_value = XMALLOC (char, add_len + orig_value_len + 1);
 | 
|---|
 | 3889 |       if (to_end)
 | 
|---|
 | 3890 |         {
 | 
|---|
 | 3891 |           strcpy (new_value, orig_value);
 | 
|---|
 | 3892 |           strcpy (new_value + orig_value_len, add);
 | 
|---|
 | 3893 |         }
 | 
|---|
 | 3894 |       else
 | 
|---|
 | 3895 |         {
 | 
|---|
 | 3896 |           strcpy (new_value, add);
 | 
|---|
 | 3897 |           strcpy (new_value + add_len, orig_value);
 | 
|---|
 | 3898 |         }
 | 
|---|
 | 3899 |     }
 | 
|---|
 | 3900 |   else
 | 
|---|
 | 3901 |     {
 | 
|---|
 | 3902 |       new_value = xstrdup (add);
 | 
|---|
 | 3903 |     }
 | 
|---|
 | 3904 |   return new_value;
 | 
|---|
 | 3905 | }
 | 
|---|
 | 3906 | 
 | 
|---|
 | 3907 | int
 | 
|---|
 | 3908 | lt_split_name_value (const char *arg, char** name, char** value)
 | 
|---|
 | 3909 | {
 | 
|---|
 | 3910 |   const char *p;
 | 
|---|
 | 3911 |   int len;
 | 
|---|
 | 3912 |   if (!arg || !*arg)
 | 
|---|
 | 3913 |     return 1;
 | 
|---|
 | 3914 | 
 | 
|---|
 | 3915 |   p = strchr (arg, (int)'=');
 | 
|---|
 | 3916 | 
 | 
|---|
 | 3917 |   if (!p)
 | 
|---|
 | 3918 |     return 1;
 | 
|---|
 | 3919 | 
 | 
|---|
 | 3920 |   *value = xstrdup (++p);
 | 
|---|
 | 3921 | 
 | 
|---|
 | 3922 |   len = strlen (arg) - strlen (*value);
 | 
|---|
 | 3923 |   *name = XMALLOC (char, len);
 | 
|---|
 | 3924 |   strncpy (*name, arg, len-1);
 | 
|---|
 | 3925 |   (*name)[len - 1] = '\0';
 | 
|---|
 | 3926 | 
 | 
|---|
 | 3927 |   return 0;
 | 
|---|
 | 3928 | }
 | 
|---|
 | 3929 | 
 | 
|---|
 | 3930 | void
 | 
|---|
 | 3931 | lt_opt_process_env_set (const char *arg)
 | 
|---|
 | 3932 | {
 | 
|---|
 | 3933 |   char *name = NULL;
 | 
|---|
 | 3934 |   char *value = NULL;
 | 
|---|
 | 3935 | 
 | 
|---|
 | 3936 |   if (lt_split_name_value (arg, &name, &value) != 0)
 | 
|---|
 | 3937 |     {
 | 
|---|
 | 3938 |       XFREE (name);
 | 
|---|
 | 3939 |       XFREE (value);
 | 
|---|
 | 3940 |       lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
 | 
|---|
 | 3941 |     }
 | 
|---|
 | 3942 | 
 | 
|---|
 | 3943 |   lt_setenv (name, value);
 | 
|---|
 | 3944 |   XFREE (name);
 | 
|---|
 | 3945 |   XFREE (value);
 | 
|---|
 | 3946 | }
 | 
|---|
 | 3947 | 
 | 
|---|
 | 3948 | void
 | 
|---|
 | 3949 | lt_opt_process_env_prepend (const char *arg)
 | 
|---|
 | 3950 | {
 | 
|---|
 | 3951 |   char *name = NULL;
 | 
|---|
 | 3952 |   char *value = NULL;
 | 
|---|
 | 3953 |   char *new_value = NULL;
 | 
|---|
 | 3954 | 
 | 
|---|
 | 3955 |   if (lt_split_name_value (arg, &name, &value) != 0)
 | 
|---|
 | 3956 |     {
 | 
|---|
 | 3957 |       XFREE (name);
 | 
|---|
 | 3958 |       XFREE (value);
 | 
|---|
 | 3959 |       lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
 | 
|---|
 | 3960 |     }
 | 
|---|
 | 3961 | 
 | 
|---|
 | 3962 |   new_value = lt_extend_str (getenv (name), value, 0);
 | 
|---|
 | 3963 |   lt_setenv (name, new_value);
 | 
|---|
 | 3964 |   XFREE (new_value);
 | 
|---|
 | 3965 |   XFREE (name);
 | 
|---|
 | 3966 |   XFREE (value);
 | 
|---|
 | 3967 | }
 | 
|---|
 | 3968 | 
 | 
|---|
 | 3969 | void
 | 
|---|
 | 3970 | lt_opt_process_env_append (const char *arg)
 | 
|---|
 | 3971 | {
 | 
|---|
 | 3972 |   char *name = NULL;
 | 
|---|
 | 3973 |   char *value = NULL;
 | 
|---|
 | 3974 |   char *new_value = NULL;
 | 
|---|
 | 3975 | 
 | 
|---|
 | 3976 |   if (lt_split_name_value (arg, &name, &value) != 0)
 | 
|---|
 | 3977 |     {
 | 
|---|
 | 3978 |       XFREE (name);
 | 
|---|
 | 3979 |       XFREE (value);
 | 
|---|
 | 3980 |       lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
 | 
|---|
 | 3981 |     }
 | 
|---|
 | 3982 | 
 | 
|---|
 | 3983 |   new_value = lt_extend_str (getenv (name), value, 1);
 | 
|---|
 | 3984 |   lt_setenv (name, new_value);
 | 
|---|
 | 3985 |   XFREE (new_value);
 | 
|---|
 | 3986 |   XFREE (name);
 | 
|---|
 | 3987 |   XFREE (value);
 | 
|---|
 | 3988 | }
 | 
|---|
 | 3989 | 
 | 
|---|
 | 3990 | void
 | 
|---|
 | 3991 | lt_update_exe_path (const char *name, const char *value)
 | 
|---|
 | 3992 | {
 | 
|---|
 | 3993 |   LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
 | 
|---|
 | 3994 |                           (name ? name : "<NULL>"),
 | 
|---|
 | 3995 |                           (value ? value : "<NULL>")));
 | 
|---|
 | 3996 | 
 | 
|---|
 | 3997 |   if (name && *name && value && *value)
 | 
|---|
 | 3998 |     {
 | 
|---|
 | 3999 |       char *new_value = lt_extend_str (getenv (name), value, 0);
 | 
|---|
 | 4000 |       /* some systems can't cope with a ':'-terminated path #' */
 | 
|---|
 | 4001 |       int len = strlen (new_value);
 | 
|---|
 | 4002 |       while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
 | 
|---|
 | 4003 |         {
 | 
|---|
 | 4004 |           new_value[len-1] = '\0';
 | 
|---|
 | 4005 |         }
 | 
|---|
 | 4006 |       lt_setenv (name, new_value);
 | 
|---|
 | 4007 |       XFREE (new_value);
 | 
|---|
 | 4008 |     }
 | 
|---|
 | 4009 | }
 | 
|---|
 | 4010 | 
 | 
|---|
 | 4011 | void
 | 
|---|
 | 4012 | lt_update_lib_path (const char *name, const char *value)
 | 
|---|
 | 4013 | {
 | 
|---|
 | 4014 |   LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
 | 
|---|
 | 4015 |                           (name ? name : "<NULL>"),
 | 
|---|
 | 4016 |                           (value ? value : "<NULL>")));
 | 
|---|
 | 4017 | 
 | 
|---|
 | 4018 |   if (name && *name && value && *value)
 | 
|---|
 | 4019 |     {
 | 
|---|
 | 4020 |       char *new_value = lt_extend_str (getenv (name), value, 0);
 | 
|---|
 | 4021 |       lt_setenv (name, new_value);
 | 
|---|
 | 4022 |       XFREE (new_value);
 | 
|---|
 | 4023 |     }
 | 
|---|
 | 4024 | }
 | 
|---|
 | 4025 | 
 | 
|---|
 | 4026 | 
 | 
|---|
 | 4027 | EOF
 | 
|---|
 | 4028 | }
 | 
|---|
 | 4029 | # end: func_emit_cwrapperexe_src
 | 
|---|
 | 4030 | 
 | 
|---|
 | 4031 | # func_mode_link arg...
 | 
|---|
 | 4032 | func_mode_link ()
 | 
|---|
 | 4033 | {
 | 
|---|
 | 4034 |     $opt_debug
 | 
|---|
 | 4035 |     case $host in
 | 
|---|
 | 4036 |     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 | 
|---|
 | 4037 |       # It is impossible to link a dll without this setting, and
 | 
|---|
 | 4038 |       # we shouldn't force the makefile maintainer to figure out
 | 
|---|
 | 4039 |       # which system we are compiling for in order to pass an extra
 | 
|---|
 | 4040 |       # flag for every libtool invocation.
 | 
|---|
 | 4041 |       # allow_undefined=no
 | 
|---|
 | 4042 | 
 | 
|---|
 | 4043 |       # FIXME: Unfortunately, there are problems with the above when trying
 | 
|---|
 | 4044 |       # to make a dll which has undefined symbols, in which case not
 | 
|---|
 | 4045 |       # even a static library is built.  For now, we need to specify
 | 
|---|
 | 4046 |       # -no-undefined on the libtool link line when we can be certain
 | 
|---|
 | 4047 |       # that all symbols are satisfied, otherwise we get a static library.
 | 
|---|
 | 4048 |       allow_undefined=yes
 | 
|---|
 | 4049 |       ;;
 | 
|---|
 | 4050 |     *)
 | 
|---|
 | 4051 |       allow_undefined=yes
 | 
|---|
 | 4052 |       ;;
 | 
|---|
 | 4053 |     esac
 | 
|---|
 | 4054 |     libtool_args=$nonopt
 | 
|---|
 | 4055 |     base_compile="$nonopt $@"
 | 
|---|
 | 4056 |     compile_command=$nonopt
 | 
|---|
 | 4057 |     finalize_command=$nonopt
 | 
|---|
 | 4058 | 
 | 
|---|
 | 4059 |     compile_rpath=
 | 
|---|
 | 4060 |     finalize_rpath=
 | 
|---|
 | 4061 |     compile_shlibpath=
 | 
|---|
 | 4062 |     finalize_shlibpath=
 | 
|---|
 | 4063 |     convenience=
 | 
|---|
 | 4064 |     old_convenience=
 | 
|---|
 | 4065 |     deplibs=
 | 
|---|
 | 4066 |     old_deplibs=
 | 
|---|
 | 4067 |     compiler_flags=
 | 
|---|
 | 4068 |     linker_flags=
 | 
|---|
 | 4069 |     dllsearchpath=
 | 
|---|
 | 4070 |     lib_search_path=`pwd`
 | 
|---|
 | 4071 |     inst_prefix_dir=
 | 
|---|
 | 4072 |     new_inherited_linker_flags=
 | 
|---|
 | 4073 | 
 | 
|---|
 | 4074 |     avoid_version=no
 | 
|---|
 | 4075 |     dlfiles=
 | 
|---|
 | 4076 |     dlprefiles=
 | 
|---|
 | 4077 |     dlself=no
 | 
|---|
 | 4078 |     export_dynamic=no
 | 
|---|
 | 4079 |     export_symbols=
 | 
|---|
 | 4080 |     export_symbols_regex=
 | 
|---|
 | 4081 |     generated=
 | 
|---|
 | 4082 |     libobjs=
 | 
|---|
 | 4083 |     ltlibs=
 | 
|---|
 | 4084 |     module=no
 | 
|---|
 | 4085 |     no_install=no
 | 
|---|
 | 4086 |     objs=
 | 
|---|
 | 4087 |     non_pic_objects=
 | 
|---|
 | 4088 |     precious_files_regex=
 | 
|---|
 | 4089 |     prefer_static_libs=no
 | 
|---|
 | 4090 |     preload=no
 | 
|---|
 | 4091 |     prev=
 | 
|---|
 | 4092 |     prevarg=
 | 
|---|
 | 4093 |     release=
 | 
|---|
 | 4094 |     rpath=
 | 
|---|
 | 4095 |     xrpath=
 | 
|---|
 | 4096 |     perm_rpath=
 | 
|---|
 | 4097 |     temp_rpath=
 | 
|---|
 | 4098 |     thread_safe=no
 | 
|---|
 | 4099 |     vinfo=
 | 
|---|
 | 4100 |     vinfo_number=no
 | 
|---|
 | 4101 |     weak_libs=
 | 
|---|
 | 4102 |     single_module="${wl}-single_module"
 | 
|---|
 | 4103 |     func_infer_tag $base_compile
 | 
|---|
 | 4104 | 
 | 
|---|
 | 4105 |     # We need to know -static, to get the right output filenames.
 | 
|---|
 | 4106 |     for arg
 | 
|---|
 | 4107 |     do
 | 
|---|
 | 4108 |       case $arg in
 | 
|---|
 | 4109 |       -shared)
 | 
|---|
 | 4110 |         test "$build_libtool_libs" != yes && \
 | 
|---|
 | 4111 |           func_fatal_configuration "can not build a shared library"
 | 
|---|
 | 4112 |         build_old_libs=no
 | 
|---|
 | 4113 |         break
 | 
|---|
 | 4114 |         ;;
 | 
|---|
 | 4115 |       -all-static | -static | -static-libtool-libs)
 | 
|---|
 | 4116 |         case $arg in
 | 
|---|
 | 4117 |         -all-static)
 | 
|---|
 | 4118 |           if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 | 
|---|
 | 4119 |             func_warning "complete static linking is impossible in this configuration"
 | 
|---|
 | 4120 |           fi
 | 
|---|
 | 4121 |           if test -n "$link_static_flag"; then
 | 
|---|
 | 4122 |             dlopen_self=$dlopen_self_static
 | 
|---|
 | 4123 |           fi
 | 
|---|
 | 4124 |           prefer_static_libs=yes
 | 
|---|
 | 4125 |           ;;
 | 
|---|
 | 4126 |         -static)
 | 
|---|
 | 4127 |           if test -z "$pic_flag" && test -n "$link_static_flag"; then
 | 
|---|
 | 4128 |             dlopen_self=$dlopen_self_static
 | 
|---|
 | 4129 |           fi
 | 
|---|
 | 4130 |           prefer_static_libs=built
 | 
|---|
 | 4131 |           ;;
 | 
|---|
 | 4132 |         -static-libtool-libs)
 | 
|---|
 | 4133 |           if test -z "$pic_flag" && test -n "$link_static_flag"; then
 | 
|---|
 | 4134 |             dlopen_self=$dlopen_self_static
 | 
|---|
 | 4135 |           fi
 | 
|---|
 | 4136 |           prefer_static_libs=yes
 | 
|---|
 | 4137 |           ;;
 | 
|---|
 | 4138 |         esac
 | 
|---|
 | 4139 |         build_libtool_libs=no
 | 
|---|
 | 4140 |         build_old_libs=yes
 | 
|---|
 | 4141 |         break
 | 
|---|
 | 4142 |         ;;
 | 
|---|
 | 4143 |       esac
 | 
|---|
 | 4144 |     done
 | 
|---|
 | 4145 | 
 | 
|---|
 | 4146 |     # See if our shared archives depend on static archives.
 | 
|---|
 | 4147 |     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 | 
|---|
 | 4148 | 
 | 
|---|
 | 4149 |     # Go through the arguments, transforming them on the way.
 | 
|---|
 | 4150 |     while test "$#" -gt 0; do
 | 
|---|
 | 4151 |       arg="$1"
 | 
|---|
 | 4152 |       shift
 | 
|---|
 | 4153 |       func_quote_for_eval "$arg"
 | 
|---|
 | 4154 |       qarg=$func_quote_for_eval_unquoted_result
 | 
|---|
 | 4155 |       func_append libtool_args " $func_quote_for_eval_result"
 | 
|---|
 | 4156 | 
 | 
|---|
 | 4157 |       # If the previous option needs an argument, assign it.
 | 
|---|
 | 4158 |       if test -n "$prev"; then
 | 
|---|
 | 4159 |         case $prev in
 | 
|---|
 | 4160 |         output)
 | 
|---|
 | 4161 |           func_append compile_command " @OUTPUT@"
 | 
|---|
 | 4162 |           func_append finalize_command " @OUTPUT@"
 | 
|---|
 | 4163 |           ;;
 | 
|---|
 | 4164 |         esac
 | 
|---|
 | 4165 | 
 | 
|---|
 | 4166 |         case $prev in
 | 
|---|
 | 4167 |         dlfiles|dlprefiles)
 | 
|---|
 | 4168 |           if test "$preload" = no; then
 | 
|---|
 | 4169 |             # Add the symbol object into the linking commands.
 | 
|---|
 | 4170 |             func_append compile_command " @SYMFILE@"
 | 
|---|
 | 4171 |             func_append finalize_command " @SYMFILE@"
 | 
|---|
 | 4172 |             preload=yes
 | 
|---|
 | 4173 |           fi
 | 
|---|
 | 4174 |           case $arg in
 | 
|---|
 | 4175 |           *.la | *.lo) ;;  # We handle these cases below.
 | 
|---|
 | 4176 |           force)
 | 
|---|
 | 4177 |             if test "$dlself" = no; then
 | 
|---|
 | 4178 |               dlself=needless
 | 
|---|
 | 4179 |               export_dynamic=yes
 | 
|---|
 | 4180 |             fi
 | 
|---|
 | 4181 |             prev=
 | 
|---|
 | 4182 |             continue
 | 
|---|
 | 4183 |             ;;
 | 
|---|
 | 4184 |           self)
 | 
|---|
 | 4185 |             if test "$prev" = dlprefiles; then
 | 
|---|
 | 4186 |               dlself=yes
 | 
|---|
 | 4187 |             elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
 | 
|---|
 | 4188 |               dlself=yes
 | 
|---|
 | 4189 |             else
 | 
|---|
 | 4190 |               dlself=needless
 | 
|---|
 | 4191 |               export_dynamic=yes
 | 
|---|
 | 4192 |             fi
 | 
|---|
 | 4193 |             prev=
 | 
|---|
 | 4194 |             continue
 | 
|---|
 | 4195 |             ;;
 | 
|---|
 | 4196 |           *)
 | 
|---|
 | 4197 |             if test "$prev" = dlfiles; then
 | 
|---|
 | 4198 |               dlfiles="$dlfiles $arg"
 | 
|---|
 | 4199 |             else
 | 
|---|
 | 4200 |               dlprefiles="$dlprefiles $arg"
 | 
|---|
 | 4201 |             fi
 | 
|---|
 | 4202 |             prev=
 | 
|---|
 | 4203 |             continue
 | 
|---|
 | 4204 |             ;;
 | 
|---|
 | 4205 |           esac
 | 
|---|
 | 4206 |           ;;
 | 
|---|
 | 4207 |         expsyms)
 | 
|---|
 | 4208 |           export_symbols="$arg"
 | 
|---|
 | 4209 |           test -f "$arg" \
 | 
|---|
 | 4210 |             || func_fatal_error "symbol file \`$arg' does not exist"
 | 
|---|
 | 4211 |           prev=
 | 
|---|
 | 4212 |           continue
 | 
|---|
 | 4213 |           ;;
 | 
|---|
 | 4214 |         expsyms_regex)
 | 
|---|
 | 4215 |           export_symbols_regex="$arg"
 | 
|---|
 | 4216 |           prev=
 | 
|---|
 | 4217 |           continue
 | 
|---|
 | 4218 |           ;;
 | 
|---|
 | 4219 |         framework)
 | 
|---|
 | 4220 |           case $host in
 | 
|---|
 | 4221 |             *-*-darwin*)
 | 
|---|
 | 4222 |               case "$deplibs " in
 | 
|---|
 | 4223 |                 *" $qarg.ltframework "*) ;;
 | 
|---|
 | 4224 |                 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
 | 
|---|
 | 4225 |                    ;;
 | 
|---|
 | 4226 |               esac
 | 
|---|
 | 4227 |               ;;
 | 
|---|
 | 4228 |           esac
 | 
|---|
 | 4229 |           prev=
 | 
|---|
 | 4230 |           continue
 | 
|---|
 | 4231 |           ;;
 | 
|---|
 | 4232 |         inst_prefix)
 | 
|---|
 | 4233 |           inst_prefix_dir="$arg"
 | 
|---|
 | 4234 |           prev=
 | 
|---|
 | 4235 |           continue
 | 
|---|
 | 4236 |           ;;
 | 
|---|
 | 4237 |         objectlist)
 | 
|---|
 | 4238 |           if test -f "$arg"; then
 | 
|---|
 | 4239 |             save_arg=$arg
 | 
|---|
 | 4240 |             moreargs=
 | 
|---|
 | 4241 |             for fil in `cat "$save_arg"`
 | 
|---|
 | 4242 |             do
 | 
|---|
 | 4243 | #             moreargs="$moreargs $fil"
 | 
|---|
 | 4244 |               arg=$fil
 | 
|---|
 | 4245 |               # A libtool-controlled object.
 | 
|---|
 | 4246 | 
 | 
|---|
 | 4247 |               # Check to see that this really is a libtool object.
 | 
|---|
 | 4248 |               if func_lalib_unsafe_p "$arg"; then
 | 
|---|
 | 4249 |                 pic_object=
 | 
|---|
 | 4250 |                 non_pic_object=
 | 
|---|
 | 4251 | 
 | 
|---|
 | 4252 |                 # Read the .lo file
 | 
|---|
 | 4253 |                 func_source "$arg"
 | 
|---|
 | 4254 | 
 | 
|---|
 | 4255 |                 if test -z "$pic_object" ||
 | 
|---|
 | 4256 |                    test -z "$non_pic_object" ||
 | 
|---|
 | 4257 |                    test "$pic_object" = none &&
 | 
|---|
 | 4258 |                    test "$non_pic_object" = none; then
 | 
|---|
 | 4259 |                   func_fatal_error "cannot find name of object for \`$arg'"
 | 
|---|
 | 4260 |                 fi
 | 
|---|
 | 4261 | 
 | 
|---|
 | 4262 |                 # Extract subdirectory from the argument.
 | 
|---|
 | 4263 |                 func_dirname "$arg" "/" ""
 | 
|---|
 | 4264 |                 xdir="$func_dirname_result"
 | 
|---|
 | 4265 | 
 | 
|---|
 | 4266 |                 if test "$pic_object" != none; then
 | 
|---|
 | 4267 |                   # Prepend the subdirectory the object is found in.
 | 
|---|
 | 4268 |                   pic_object="$xdir$pic_object"
 | 
|---|
 | 4269 | 
 | 
|---|
 | 4270 |                   if test "$prev" = dlfiles; then
 | 
|---|
 | 4271 |                     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 | 
|---|
 | 4272 |                       dlfiles="$dlfiles $pic_object"
 | 
|---|
 | 4273 |                       prev=
 | 
|---|
 | 4274 |                       continue
 | 
|---|
 | 4275 |                     else
 | 
|---|
 | 4276 |                       # If libtool objects are unsupported, then we need to preload.
 | 
|---|
 | 4277 |                       prev=dlprefiles
 | 
|---|
 | 4278 |                     fi
 | 
|---|
 | 4279 |                   fi
 | 
|---|
 | 4280 | 
 | 
|---|
 | 4281 |                   # CHECK ME:  I think I busted this.  -Ossama
 | 
|---|
 | 4282 |                   if test "$prev" = dlprefiles; then
 | 
|---|
 | 4283 |                     # Preload the old-style object.
 | 
|---|
 | 4284 |                     dlprefiles="$dlprefiles $pic_object"
 | 
|---|
 | 4285 |                     prev=
 | 
|---|
 | 4286 |                   fi
 | 
|---|
 | 4287 | 
 | 
|---|
 | 4288 |                   # A PIC object.
 | 
|---|
 | 4289 |                   func_append libobjs " $pic_object"
 | 
|---|
 | 4290 |                   arg="$pic_object"
 | 
|---|
 | 4291 |                 fi
 | 
|---|
 | 4292 | 
 | 
|---|
 | 4293 |                 # Non-PIC object.
 | 
|---|
 | 4294 |                 if test "$non_pic_object" != none; then
 | 
|---|
 | 4295 |                   # Prepend the subdirectory the object is found in.
 | 
|---|
 | 4296 |                   non_pic_object="$xdir$non_pic_object"
 | 
|---|
 | 4297 | 
 | 
|---|
 | 4298 |                   # A standard non-PIC object
 | 
|---|
 | 4299 |                   func_append non_pic_objects " $non_pic_object"
 | 
|---|
 | 4300 |                   if test -z "$pic_object" || test "$pic_object" = none ; then
 | 
|---|
 | 4301 |                     arg="$non_pic_object"
 | 
|---|
 | 4302 |                   fi
 | 
|---|
 | 4303 |                 else
 | 
|---|
 | 4304 |                   # If the PIC object exists, use it instead.
 | 
|---|
 | 4305 |                   # $xdir was prepended to $pic_object above.
 | 
|---|
 | 4306 |                   non_pic_object="$pic_object"
 | 
|---|
 | 4307 |                   func_append non_pic_objects " $non_pic_object"
 | 
|---|
 | 4308 |                 fi
 | 
|---|
 | 4309 |               else
 | 
|---|
 | 4310 |                 # Only an error if not doing a dry-run.
 | 
|---|
 | 4311 |                 if $opt_dry_run; then
 | 
|---|
 | 4312 |                   # Extract subdirectory from the argument.
 | 
|---|
 | 4313 |                   func_dirname "$arg" "/" ""
 | 
|---|
 | 4314 |                   xdir="$func_dirname_result"
 | 
|---|
 | 4315 | 
 | 
|---|
 | 4316 |                   func_lo2o "$arg"
 | 
|---|
 | 4317 |                   pic_object=$xdir$objdir/$func_lo2o_result
 | 
|---|
 | 4318 |                   non_pic_object=$xdir$func_lo2o_result
 | 
|---|
 | 4319 |                   func_append libobjs " $pic_object"
 | 
|---|
 | 4320 |                   func_append non_pic_objects " $non_pic_object"
 | 
|---|
 | 4321 |                 else
 | 
|---|
 | 4322 |                   func_fatal_error "\`$arg' is not a valid libtool object"
 | 
|---|
 | 4323 |                 fi
 | 
|---|
 | 4324 |               fi
 | 
|---|
 | 4325 |             done
 | 
|---|
 | 4326 |           else
 | 
|---|
 | 4327 |             func_fatal_error "link input file \`$arg' does not exist"
 | 
|---|
 | 4328 |           fi
 | 
|---|
 | 4329 |           arg=$save_arg
 | 
|---|
 | 4330 |           prev=
 | 
|---|
 | 4331 |           continue
 | 
|---|
 | 4332 |           ;;
 | 
|---|
 | 4333 |         precious_regex)
 | 
|---|
 | 4334 |           precious_files_regex="$arg"
 | 
|---|
 | 4335 |           prev=
 | 
|---|
 | 4336 |           continue
 | 
|---|
 | 4337 |           ;;
 | 
|---|
 | 4338 |         release)
 | 
|---|
 | 4339 |           release="-$arg"
 | 
|---|
 | 4340 |           prev=
 | 
|---|
 | 4341 |           continue
 | 
|---|
 | 4342 |           ;;
 | 
|---|
 | 4343 |         rpath | xrpath)
 | 
|---|
 | 4344 |           # We need an absolute path.
 | 
|---|
 | 4345 |           case $arg in
 | 
|---|
 | 4346 |           [\\/]* | [A-Za-z]:[\\/]*) ;;
 | 
|---|
 | 4347 |           *)
 | 
|---|
 | 4348 |             func_fatal_error "only absolute run-paths are allowed"
 | 
|---|
 | 4349 |             ;;
 | 
|---|
 | 4350 |           esac
 | 
|---|
 | 4351 |           if test "$prev" = rpath; then
 | 
|---|
 | 4352 |             case "$rpath " in
 | 
|---|
 | 4353 |             *" $arg "*) ;;
 | 
|---|
 | 4354 |             *) rpath="$rpath $arg" ;;
 | 
|---|
 | 4355 |             esac
 | 
|---|
 | 4356 |           else
 | 
|---|
 | 4357 |             case "$xrpath " in
 | 
|---|
 | 4358 |             *" $arg "*) ;;
 | 
|---|
 | 4359 |             *) xrpath="$xrpath $arg" ;;
 | 
|---|
 | 4360 |             esac
 | 
|---|
 | 4361 |           fi
 | 
|---|
 | 4362 |           prev=
 | 
|---|
 | 4363 |           continue
 | 
|---|
 | 4364 |           ;;
 | 
|---|
 | 4365 |         shrext)
 | 
|---|
 | 4366 |           shrext_cmds="$arg"
 | 
|---|
 | 4367 |           prev=
 | 
|---|
 | 4368 |           continue
 | 
|---|
 | 4369 |           ;;
 | 
|---|
 | 4370 |         weak)
 | 
|---|
 | 4371 |           weak_libs="$weak_libs $arg"
 | 
|---|
 | 4372 |           prev=
 | 
|---|
 | 4373 |           continue
 | 
|---|
 | 4374 |           ;;
 | 
|---|
 | 4375 |         xcclinker)
 | 
|---|
 | 4376 |           linker_flags="$linker_flags $qarg"
 | 
|---|
 | 4377 |           compiler_flags="$compiler_flags $qarg"
 | 
|---|
 | 4378 |           prev=
 | 
|---|
 | 4379 |           func_append compile_command " $qarg"
 | 
|---|
 | 4380 |           func_append finalize_command " $qarg"
 | 
|---|
 | 4381 |           continue
 | 
|---|
 | 4382 |           ;;
 | 
|---|
 | 4383 |         xcompiler)
 | 
|---|
 | 4384 |           compiler_flags="$compiler_flags $qarg"
 | 
|---|
 | 4385 |           prev=
 | 
|---|
 | 4386 |           func_append compile_command " $qarg"
 | 
|---|
 | 4387 |           func_append finalize_command " $qarg"
 | 
|---|
 | 4388 |           continue
 | 
|---|
 | 4389 |           ;;
 | 
|---|
 | 4390 |         xlinker)
 | 
|---|
 | 4391 |           linker_flags="$linker_flags $qarg"
 | 
|---|
 | 4392 |           compiler_flags="$compiler_flags $wl$qarg"
 | 
|---|
 | 4393 |           prev=
 | 
|---|
 | 4394 |           func_append compile_command " $wl$qarg"
 | 
|---|
 | 4395 |           func_append finalize_command " $wl$qarg"
 | 
|---|
 | 4396 |           continue
 | 
|---|
 | 4397 |           ;;
 | 
|---|
 | 4398 |         *)
 | 
|---|
 | 4399 |           eval "$prev=\"\$arg\""
 | 
|---|
 | 4400 |           prev=
 | 
|---|
 | 4401 |           continue
 | 
|---|
 | 4402 |           ;;
 | 
|---|
 | 4403 |         esac
 | 
|---|
 | 4404 |       fi # test -n "$prev"
 | 
|---|
 | 4405 | 
 | 
|---|
 | 4406 |       prevarg="$arg"
 | 
|---|
 | 4407 | 
 | 
|---|
 | 4408 |       case $arg in
 | 
|---|
 | 4409 |       -all-static)
 | 
|---|
 | 4410 |         if test -n "$link_static_flag"; then
 | 
|---|
 | 4411 |           # See comment for -static flag below, for more details.
 | 
|---|
 | 4412 |           func_append compile_command " $link_static_flag"
 | 
|---|
 | 4413 |           func_append finalize_command " $link_static_flag"
 | 
|---|
 | 4414 |         fi
 | 
|---|
 | 4415 |         continue
 | 
|---|
 | 4416 |         ;;
 | 
|---|
 | 4417 | 
 | 
|---|
 | 4418 |       -allow-undefined)
 | 
|---|
 | 4419 |         # FIXME: remove this flag sometime in the future.
 | 
|---|
 | 4420 |         func_fatal_error "\`-allow-undefined' must not be used because it is the default"
 | 
|---|
 | 4421 |         ;;
 | 
|---|
 | 4422 | 
 | 
|---|
 | 4423 |       -avoid-version)
 | 
|---|
 | 4424 |         avoid_version=yes
 | 
|---|
 | 4425 |         continue
 | 
|---|
 | 4426 |         ;;
 | 
|---|
 | 4427 | 
 | 
|---|
 | 4428 |       -dlopen)
 | 
|---|
 | 4429 |         prev=dlfiles
 | 
|---|
 | 4430 |         continue
 | 
|---|
 | 4431 |         ;;
 | 
|---|
 | 4432 | 
 | 
|---|
 | 4433 |       -dlpreopen)
 | 
|---|
 | 4434 |         prev=dlprefiles
 | 
|---|
 | 4435 |         continue
 | 
|---|
 | 4436 |         ;;
 | 
|---|
 | 4437 | 
 | 
|---|
 | 4438 |       -export-dynamic)
 | 
|---|
 | 4439 |         export_dynamic=yes
 | 
|---|
 | 4440 |         continue
 | 
|---|
 | 4441 |         ;;
 | 
|---|
 | 4442 | 
 | 
|---|
 | 4443 |       -export-symbols | -export-symbols-regex)
 | 
|---|
 | 4444 |         if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 | 
|---|
 | 4445 |           func_fatal_error "more than one -exported-symbols argument is not allowed"
 | 
|---|
 | 4446 |         fi
 | 
|---|
 | 4447 |         if test "X$arg" = "X-export-symbols"; then
 | 
|---|
 | 4448 |           prev=expsyms
 | 
|---|
 | 4449 |         else
 | 
|---|
 | 4450 |           prev=expsyms_regex
 | 
|---|
 | 4451 |         fi
 | 
|---|
 | 4452 |         continue
 | 
|---|
 | 4453 |         ;;
 | 
|---|
 | 4454 | 
 | 
|---|
 | 4455 |       -framework)
 | 
|---|
 | 4456 |         prev=framework
 | 
|---|
 | 4457 |         continue
 | 
|---|
 | 4458 |         ;;
 | 
|---|
 | 4459 | 
 | 
|---|
 | 4460 |       -inst-prefix-dir)
 | 
|---|
 | 4461 |         prev=inst_prefix
 | 
|---|
 | 4462 |         continue
 | 
|---|
 | 4463 |         ;;
 | 
|---|
 | 4464 | 
 | 
|---|
 | 4465 |       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
 | 
|---|
 | 4466 |       # so, if we see these flags be careful not to treat them like -L
 | 
|---|
 | 4467 |       -L[A-Z][A-Z]*:*)
 | 
|---|
 | 4468 |         case $with_gcc/$host in
 | 
|---|
 | 4469 |         no/*-*-irix* | /*-*-irix*)
 | 
|---|
 | 4470 |           func_append compile_command " $arg"
 | 
|---|
 | 4471 |           func_append finalize_command " $arg"
 | 
|---|
 | 4472 |           ;;
 | 
|---|
 | 4473 |         esac
 | 
|---|
 | 4474 |         continue
 | 
|---|
 | 4475 |         ;;
 | 
|---|
 | 4476 | 
 | 
|---|
 | 4477 |       -L*)
 | 
|---|
 | 4478 |         func_stripname '-L' '' "$arg"
 | 
|---|
 | 4479 |         dir=$func_stripname_result
 | 
|---|
 | 4480 |         if test -z "$dir"; then
 | 
|---|
 | 4481 |           if test "$#" -gt 0; then
 | 
|---|
 | 4482 |             func_fatal_error "require no space between \`-L' and \`$1'"
 | 
|---|
 | 4483 |           else
 | 
|---|
 | 4484 |             func_fatal_error "need path for \`-L' option"
 | 
|---|
 | 4485 |           fi
 | 
|---|
 | 4486 |         fi
 | 
|---|
 | 4487 |         # We need an absolute path.
 | 
|---|
 | 4488 |         case $dir in
 | 
|---|
 | 4489 |         [\\/]* | [A-Za-z]:[\\/]*) ;;
 | 
|---|
 | 4490 |         *)
 | 
|---|
 | 4491 |           absdir=`cd "$dir" && pwd`
 | 
|---|
 | 4492 |           test -z "$absdir" && \
 | 
|---|
 | 4493 |             func_fatal_error "cannot determine absolute directory name of \`$dir'"
 | 
|---|
 | 4494 |           dir="$absdir"
 | 
|---|
 | 4495 |           ;;
 | 
|---|
 | 4496 |         esac
 | 
|---|
 | 4497 |         case "$deplibs " in
 | 
|---|
 | 4498 |         *" -L$dir "*) ;;
 | 
|---|
 | 4499 |         *)
 | 
|---|
 | 4500 |           deplibs="$deplibs -L$dir"
 | 
|---|
 | 4501 |           lib_search_path="$lib_search_path $dir"
 | 
|---|
 | 4502 |           ;;
 | 
|---|
 | 4503 |         esac
 | 
|---|
 | 4504 |         case $host in
 | 
|---|
 | 4505 |         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 | 
|---|
 | 4506 |           testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 | 
|---|
 | 4507 |           case :$dllsearchpath: in
 | 
|---|
 | 4508 |           *":$dir:"*) ;;
 | 
|---|
 | 4509 |           ::) dllsearchpath=$dir;;
 | 
|---|
 | 4510 |           *) dllsearchpath="$dllsearchpath:$dir";;
 | 
|---|
 | 4511 |           esac
 | 
|---|
 | 4512 |           case :$dllsearchpath: in
 | 
|---|
 | 4513 |           *":$testbindir:"*) ;;
 | 
|---|
 | 4514 |           ::) dllsearchpath=$testbindir;;
 | 
|---|
 | 4515 |           *) dllsearchpath="$dllsearchpath:$testbindir";;
 | 
|---|
 | 4516 |           esac
 | 
|---|
 | 4517 |           ;;
 | 
|---|
 | 4518 |         esac
 | 
|---|
 | 4519 |         continue
 | 
|---|
 | 4520 |         ;;
 | 
|---|
 | 4521 | 
 | 
|---|
 | 4522 |       -l*)
 | 
|---|
 | 4523 |         if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 | 
|---|
 | 4524 |           case $host in
 | 
|---|
 | 4525 |           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
 | 
|---|
 | 4526 |             # These systems don't actually have a C or math library (as such)
 | 
|---|
 | 4527 |             continue
 | 
|---|
 | 4528 |             ;;
 | 
|---|
 | 4529 |           *-*-os2*)
 | 
|---|
 | 4530 |             # These systems don't actually have a C library (as such)
 | 
|---|
 | 4531 |             test "X$arg" = "X-lc" && continue
 | 
|---|
 | 4532 |             ;;
 | 
|---|
 | 4533 |           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 | 
|---|
 | 4534 |             # Do not include libc due to us having libc/libc_r.
 | 
|---|
 | 4535 |             test "X$arg" = "X-lc" && continue
 | 
|---|
 | 4536 |             ;;
 | 
|---|
 | 4537 |           *-*-rhapsody* | *-*-darwin1.[012])
 | 
|---|
 | 4538 |             # Rhapsody C and math libraries are in the System framework
 | 
|---|
 | 4539 |             deplibs="$deplibs System.ltframework"
 | 
|---|
 | 4540 |             continue
 | 
|---|
 | 4541 |             ;;
 | 
|---|
 | 4542 |           *-*-sco3.2v5* | *-*-sco5v6*)
 | 
|---|
 | 4543 |             # Causes problems with __ctype
 | 
|---|
 | 4544 |             test "X$arg" = "X-lc" && continue
 | 
|---|
 | 4545 |             ;;
 | 
|---|
 | 4546 |           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 | 
|---|
 | 4547 |             # Compiler inserts libc in the correct place for threads to work
 | 
|---|
 | 4548 |             test "X$arg" = "X-lc" && continue
 | 
|---|
 | 4549 |             ;;
 | 
|---|
 | 4550 |           esac
 | 
|---|
 | 4551 |         elif test "X$arg" = "X-lc_r"; then
 | 
|---|
 | 4552 |          case $host in
 | 
|---|
 | 4553 |          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 | 
|---|
 | 4554 |            # Do not include libc_r directly, use -pthread flag.
 | 
|---|
 | 4555 |            continue
 | 
|---|
 | 4556 |            ;;
 | 
|---|
 | 4557 |          esac
 | 
|---|
 | 4558 |         fi
 | 
|---|
 | 4559 |         deplibs="$deplibs $arg"
 | 
|---|
 | 4560 |         continue
 | 
|---|
 | 4561 |         ;;
 | 
|---|
 | 4562 | 
 | 
|---|
 | 4563 |       -module)
 | 
|---|
 | 4564 |         module=yes
 | 
|---|
 | 4565 |         continue
 | 
|---|
 | 4566 |         ;;
 | 
|---|
 | 4567 | 
 | 
|---|
 | 4568 |       # Tru64 UNIX uses -model [arg] to determine the layout of C++
 | 
|---|
 | 4569 |       # classes, name mangling, and exception handling.
 | 
|---|
 | 4570 |       # Darwin uses the -arch flag to determine output architecture.
 | 
|---|
 | 4571 |       -model|-arch|-isysroot)
 | 
|---|
 | 4572 |         compiler_flags="$compiler_flags $arg"
 | 
|---|
 | 4573 |         func_append compile_command " $arg"
 | 
|---|
 | 4574 |         func_append finalize_command " $arg"
 | 
|---|
 | 4575 |         prev=xcompiler
 | 
|---|
 | 4576 |         continue
 | 
|---|
 | 4577 |         ;;
 | 
|---|
 | 4578 | 
 | 
|---|
 | 4579 |       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 | 
|---|
 | 4580 |         compiler_flags="$compiler_flags $arg"
 | 
|---|
 | 4581 |         func_append compile_command " $arg"
 | 
|---|
 | 4582 |         func_append finalize_command " $arg"
 | 
|---|
 | 4583 |         case "$new_inherited_linker_flags " in
 | 
|---|
 | 4584 |             *" $arg "*) ;;
 | 
|---|
 | 4585 |             * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
 | 
|---|
 | 4586 |         esac
 | 
|---|
 | 4587 |         continue
 | 
|---|
 | 4588 |         ;;
 | 
|---|
 | 4589 | 
 | 
|---|
 | 4590 |       -multi_module)
 | 
|---|
 | 4591 |         single_module="${wl}-multi_module"
 | 
|---|
 | 4592 |         continue
 | 
|---|
 | 4593 |         ;;
 | 
|---|
 | 4594 | 
 | 
|---|
 | 4595 |       -no-fast-install)
 | 
|---|
 | 4596 |         fast_install=no
 | 
|---|
 | 4597 |         continue
 | 
|---|
 | 4598 |         ;;
 | 
|---|
 | 4599 | 
 | 
|---|
 | 4600 |       -no-install)
 | 
|---|
 | 4601 |         case $host in
 | 
|---|
 | 4602 |         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
 | 
|---|
 | 4603 |           # The PATH hackery in wrapper scripts is required on Windows
 | 
|---|
 | 4604 |           # and Darwin in order for the loader to find any dlls it needs.
 | 
|---|
 | 4605 |           func_warning "\`-no-install' is ignored for $host"
 | 
|---|
 | 4606 |           func_warning "assuming \`-no-fast-install' instead"
 | 
|---|
 | 4607 |           fast_install=no
 | 
|---|
 | 4608 |           ;;
 | 
|---|
 | 4609 |         *) no_install=yes ;;
 | 
|---|
 | 4610 |         esac
 | 
|---|
 | 4611 |         continue
 | 
|---|
 | 4612 |         ;;
 | 
|---|
 | 4613 | 
 | 
|---|
 | 4614 |       -no-undefined)
 | 
|---|
 | 4615 |         allow_undefined=no
 | 
|---|
 | 4616 |         continue
 | 
|---|
 | 4617 |         ;;
 | 
|---|
 | 4618 | 
 | 
|---|
 | 4619 |       -objectlist)
 | 
|---|
 | 4620 |         prev=objectlist
 | 
|---|
 | 4621 |         continue
 | 
|---|
 | 4622 |         ;;
 | 
|---|
 | 4623 | 
 | 
|---|
 | 4624 |       -o) prev=output ;;
 | 
|---|
 | 4625 | 
 | 
|---|
 | 4626 |       -precious-files-regex)
 | 
|---|
 | 4627 |         prev=precious_regex
 | 
|---|
 | 4628 |         continue
 | 
|---|
 | 4629 |         ;;
 | 
|---|
 | 4630 | 
 | 
|---|
 | 4631 |       -release)
 | 
|---|
 | 4632 |         prev=release
 | 
|---|
 | 4633 |         continue
 | 
|---|
 | 4634 |         ;;
 | 
|---|
 | 4635 | 
 | 
|---|
 | 4636 |       -rpath)
 | 
|---|
 | 4637 |         prev=rpath
 | 
|---|
 | 4638 |         continue
 | 
|---|
 | 4639 |         ;;
 | 
|---|
 | 4640 | 
 | 
|---|
 | 4641 |       -R)
 | 
|---|
 | 4642 |         prev=xrpath
 | 
|---|
 | 4643 |         continue
 | 
|---|
 | 4644 |         ;;
 | 
|---|
 | 4645 | 
 | 
|---|
 | 4646 |       -R*)
 | 
|---|
 | 4647 |         func_stripname '-R' '' "$arg"
 | 
|---|
 | 4648 |         dir=$func_stripname_result
 | 
|---|
 | 4649 |         # We need an absolute path.
 | 
|---|
 | 4650 |         case $dir in
 | 
|---|
 | 4651 |         [\\/]* | [A-Za-z]:[\\/]*) ;;
 | 
|---|
 | 4652 |         *)
 | 
|---|
 | 4653 |           func_fatal_error "only absolute run-paths are allowed"
 | 
|---|
 | 4654 |           ;;
 | 
|---|
 | 4655 |         esac
 | 
|---|
 | 4656 |         case "$xrpath " in
 | 
|---|
 | 4657 |         *" $dir "*) ;;
 | 
|---|
 | 4658 |         *) xrpath="$xrpath $dir" ;;
 | 
|---|
 | 4659 |         esac
 | 
|---|
 | 4660 |         continue
 | 
|---|
 | 4661 |         ;;
 | 
|---|
 | 4662 | 
 | 
|---|
 | 4663 |       -shared)
 | 
|---|
 | 4664 |         # The effects of -shared are defined in a previous loop.
 | 
|---|
 | 4665 |         continue
 | 
|---|
 | 4666 |         ;;
 | 
|---|
 | 4667 | 
 | 
|---|
 | 4668 |       -shrext)
 | 
|---|
 | 4669 |         prev=shrext
 | 
|---|
 | 4670 |         continue
 | 
|---|
 | 4671 |         ;;
 | 
|---|
 | 4672 | 
 | 
|---|
 | 4673 |       -static | -static-libtool-libs)
 | 
|---|
 | 4674 |         # The effects of -static are defined in a previous loop.
 | 
|---|
 | 4675 |         # We used to do the same as -all-static on platforms that
 | 
|---|
 | 4676 |         # didn't have a PIC flag, but the assumption that the effects
 | 
|---|
 | 4677 |         # would be equivalent was wrong.  It would break on at least
 | 
|---|
 | 4678 |         # Digital Unix and AIX.
 | 
|---|
 | 4679 |         continue
 | 
|---|
 | 4680 |         ;;
 | 
|---|
 | 4681 | 
 | 
|---|
 | 4682 |       -thread-safe)
 | 
|---|
 | 4683 |         thread_safe=yes
 | 
|---|
 | 4684 |         continue
 | 
|---|
 | 4685 |         ;;
 | 
|---|
 | 4686 | 
 | 
|---|
 | 4687 |       -version-info)
 | 
|---|
 | 4688 |         prev=vinfo
 | 
|---|
 | 4689 |         continue
 | 
|---|
 | 4690 |         ;;
 | 
|---|
 | 4691 | 
 | 
|---|
 | 4692 |       -version-number)
 | 
|---|
 | 4693 |         prev=vinfo
 | 
|---|
 | 4694 |         vinfo_number=yes
 | 
|---|
 | 4695 |         continue
 | 
|---|
 | 4696 |         ;;
 | 
|---|
 | 4697 | 
 | 
|---|
 | 4698 |       -weak)
 | 
|---|
 | 4699 |         prev=weak
 | 
|---|
 | 4700 |         continue
 | 
|---|
 | 4701 |         ;;
 | 
|---|
 | 4702 | 
 | 
|---|
 | 4703 |       -Wc,*)
 | 
|---|
 | 4704 |         func_stripname '-Wc,' '' "$arg"
 | 
|---|
 | 4705 |         args=$func_stripname_result
 | 
|---|
 | 4706 |         arg=
 | 
|---|
 | 4707 |         save_ifs="$IFS"; IFS=','
 | 
|---|
 | 4708 |         for flag in $args; do
 | 
|---|
 | 4709 |           IFS="$save_ifs"
 | 
|---|
 | 4710 |           func_quote_for_eval "$flag"
 | 
|---|
 | 4711 |           arg="$arg $wl$func_quote_for_eval_result"
 | 
|---|
 | 4712 |           compiler_flags="$compiler_flags $func_quote_for_eval_result"
 | 
|---|
 | 4713 |         done
 | 
|---|
 | 4714 |         IFS="$save_ifs"
 | 
|---|
 | 4715 |         func_stripname ' ' '' "$arg"
 | 
|---|
 | 4716 |         arg=$func_stripname_result
 | 
|---|
 | 4717 |         ;;
 | 
|---|
 | 4718 | 
 | 
|---|
 | 4719 |       -Wl,*)
 | 
|---|
 | 4720 |         func_stripname '-Wl,' '' "$arg"
 | 
|---|
 | 4721 |         args=$func_stripname_result
 | 
|---|
 | 4722 |         arg=
 | 
|---|
 | 4723 |         save_ifs="$IFS"; IFS=','
 | 
|---|
 | 4724 |         for flag in $args; do
 | 
|---|
 | 4725 |           IFS="$save_ifs"
 | 
|---|
 | 4726 |           func_quote_for_eval "$flag"
 | 
|---|
 | 4727 |           arg="$arg $wl$func_quote_for_eval_result"
 | 
|---|
 | 4728 |           compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
 | 
|---|
 | 4729 |           linker_flags="$linker_flags $func_quote_for_eval_result"
 | 
|---|
 | 4730 |         done
 | 
|---|
 | 4731 |         IFS="$save_ifs"
 | 
|---|
 | 4732 |         func_stripname ' ' '' "$arg"
 | 
|---|
 | 4733 |         arg=$func_stripname_result
 | 
|---|
 | 4734 |         ;;
 | 
|---|
 | 4735 | 
 | 
|---|
 | 4736 |       -Xcompiler)
 | 
|---|
 | 4737 |         prev=xcompiler
 | 
|---|
 | 4738 |         continue
 | 
|---|
 | 4739 |         ;;
 | 
|---|
 | 4740 | 
 | 
|---|
 | 4741 |       -Xlinker)
 | 
|---|
 | 4742 |         prev=xlinker
 | 
|---|
 | 4743 |         continue
 | 
|---|
 | 4744 |         ;;
 | 
|---|
 | 4745 | 
 | 
|---|
 | 4746 |       -XCClinker)
 | 
|---|
 | 4747 |         prev=xcclinker
 | 
|---|
 | 4748 |         continue
 | 
|---|
 | 4749 |         ;;
 | 
|---|
 | 4750 | 
 | 
|---|
 | 4751 |       # -msg_* for osf cc
 | 
|---|
 | 4752 |       -msg_*)
 | 
|---|
 | 4753 |         func_quote_for_eval "$arg"
 | 
|---|
 | 4754 |         arg="$func_quote_for_eval_result"
 | 
|---|
 | 4755 |         ;;
 | 
|---|
 | 4756 | 
 | 
|---|
 | 4757 |       # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
 | 
|---|
 | 4758 |       # -r[0-9][0-9]* specifies the processor on the SGI compiler
 | 
|---|
 | 4759 |       # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
 | 
|---|
 | 4760 |       # +DA*, +DD* enable 64-bit mode on the HP compiler
 | 
|---|
 | 4761 |       # -q* pass through compiler args for the IBM compiler
 | 
|---|
 | 4762 |       # -m*, -t[45]*, -txscale* pass through architecture-specific
 | 
|---|
 | 4763 |       # compiler args for GCC
 | 
|---|
 | 4764 |       # -F/path gives path to uninstalled frameworks, gcc on darwin
 | 
|---|
 | 4765 |       # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
 | 
|---|
 | 4766 |       # @file GCC response files
 | 
|---|
 | 4767 |       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
 | 
|---|
 | 4768 |       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 | 
|---|
 | 4769 |         func_quote_for_eval "$arg"
 | 
|---|
 | 4770 |         arg="$func_quote_for_eval_result"
 | 
|---|
 | 4771 |         func_append compile_command " $arg"
 | 
|---|
 | 4772 |         func_append finalize_command " $arg"
 | 
|---|
 | 4773 |         compiler_flags="$compiler_flags $arg"
 | 
|---|
 | 4774 |         continue
 | 
|---|
 | 4775 |         ;;
 | 
|---|
 | 4776 | 
 | 
|---|
 | 4777 |       # Some other compiler flag.
 | 
|---|
 | 4778 |       -* | +*)
 | 
|---|
 | 4779 |         func_quote_for_eval "$arg"
 | 
|---|
 | 4780 |         arg="$func_quote_for_eval_result"
 | 
|---|
 | 4781 |         ;;
 | 
|---|
 | 4782 | 
 | 
|---|
 | 4783 |       *.$objext)
 | 
|---|
 | 4784 |         # A standard object.
 | 
|---|
 | 4785 |         objs="$objs $arg"
 | 
|---|
 | 4786 |         ;;
 | 
|---|
 | 4787 | 
 | 
|---|
 | 4788 |       *.lo)
 | 
|---|
 | 4789 |         # A libtool-controlled object.
 | 
|---|
 | 4790 | 
 | 
|---|
 | 4791 |         # Check to see that this really is a libtool object.
 | 
|---|
 | 4792 |         if func_lalib_unsafe_p "$arg"; then
 | 
|---|
 | 4793 |           pic_object=
 | 
|---|
 | 4794 |           non_pic_object=
 | 
|---|
 | 4795 | 
 | 
|---|
 | 4796 |           # Read the .lo file
 | 
|---|
 | 4797 |           func_source "$arg"
 | 
|---|
 | 4798 | 
 | 
|---|
 | 4799 |           if test -z "$pic_object" ||
 | 
|---|
 | 4800 |              test -z "$non_pic_object" ||
 | 
|---|
 | 4801 |              test "$pic_object" = none &&
 | 
|---|
 | 4802 |              test "$non_pic_object" = none; then
 | 
|---|
 | 4803 |             func_fatal_error "cannot find name of object for \`$arg'"
 | 
|---|
 | 4804 |           fi
 | 
|---|
 | 4805 | 
 | 
|---|
 | 4806 |           # Extract subdirectory from the argument.
 | 
|---|
 | 4807 |           func_dirname "$arg" "/" ""
 | 
|---|
 | 4808 |           xdir="$func_dirname_result"
 | 
|---|
 | 4809 | 
 | 
|---|
 | 4810 |           if test "$pic_object" != none; then
 | 
|---|
 | 4811 |             # Prepend the subdirectory the object is found in.
 | 
|---|
 | 4812 |             pic_object="$xdir$pic_object"
 | 
|---|
 | 4813 | 
 | 
|---|
 | 4814 |             if test "$prev" = dlfiles; then
 | 
|---|
 | 4815 |               if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 | 
|---|
 | 4816 |                 dlfiles="$dlfiles $pic_object"
 | 
|---|
 | 4817 |                 prev=
 | 
|---|
 | 4818 |                 continue
 | 
|---|
 | 4819 |               else
 | 
|---|
 | 4820 |                 # If libtool objects are unsupported, then we need to preload.
 | 
|---|
 | 4821 |                 prev=dlprefiles
 | 
|---|
 | 4822 |               fi
 | 
|---|
 | 4823 |             fi
 | 
|---|
 | 4824 | 
 | 
|---|
 | 4825 |             # CHECK ME:  I think I busted this.  -Ossama
 | 
|---|
 | 4826 |             if test "$prev" = dlprefiles; then
 | 
|---|
 | 4827 |               # Preload the old-style object.
 | 
|---|
 | 4828 |               dlprefiles="$dlprefiles $pic_object"
 | 
|---|
 | 4829 |               prev=
 | 
|---|
 | 4830 |             fi
 | 
|---|
 | 4831 | 
 | 
|---|
 | 4832 |             # A PIC object.
 | 
|---|
 | 4833 |             func_append libobjs " $pic_object"
 | 
|---|
 | 4834 |             arg="$pic_object"
 | 
|---|
 | 4835 |           fi
 | 
|---|
 | 4836 | 
 | 
|---|
 | 4837 |           # Non-PIC object.
 | 
|---|
 | 4838 |           if test "$non_pic_object" != none; then
 | 
|---|
 | 4839 |             # Prepend the subdirectory the object is found in.
 | 
|---|
 | 4840 |             non_pic_object="$xdir$non_pic_object"
 | 
|---|
 | 4841 | 
 | 
|---|
 | 4842 |             # A standard non-PIC object
 | 
|---|
 | 4843 |             func_append non_pic_objects " $non_pic_object"
 | 
|---|
 | 4844 |             if test -z "$pic_object" || test "$pic_object" = none ; then
 | 
|---|
 | 4845 |               arg="$non_pic_object"
 | 
|---|
 | 4846 |             fi
 | 
|---|
 | 4847 |           else
 | 
|---|
 | 4848 |             # If the PIC object exists, use it instead.
 | 
|---|
 | 4849 |             # $xdir was prepended to $pic_object above.
 | 
|---|
 | 4850 |             non_pic_object="$pic_object"
 | 
|---|
 | 4851 |             func_append non_pic_objects " $non_pic_object"
 | 
|---|
 | 4852 |           fi
 | 
|---|
 | 4853 |         else
 | 
|---|
 | 4854 |           # Only an error if not doing a dry-run.
 | 
|---|
 | 4855 |           if $opt_dry_run; then
 | 
|---|
 | 4856 |             # Extract subdirectory from the argument.
 | 
|---|
 | 4857 |             func_dirname "$arg" "/" ""
 | 
|---|
 | 4858 |             xdir="$func_dirname_result"
 | 
|---|
 | 4859 | 
 | 
|---|
 | 4860 |             func_lo2o "$arg"
 | 
|---|
 | 4861 |             pic_object=$xdir$objdir/$func_lo2o_result
 | 
|---|
 | 4862 |             non_pic_object=$xdir$func_lo2o_result
 | 
|---|
 | 4863 |             func_append libobjs " $pic_object"
 | 
|---|
 | 4864 |             func_append non_pic_objects " $non_pic_object"
 | 
|---|
 | 4865 |           else
 | 
|---|
 | 4866 |             func_fatal_error "\`$arg' is not a valid libtool object"
 | 
|---|
 | 4867 |           fi
 | 
|---|
 | 4868 |         fi
 | 
|---|
 | 4869 |         ;;
 | 
|---|
 | 4870 | 
 | 
|---|
 | 4871 |       *.$libext)
 | 
|---|
 | 4872 |         # An archive.
 | 
|---|
 | 4873 |         deplibs="$deplibs $arg"
 | 
|---|
 | 4874 |         old_deplibs="$old_deplibs $arg"
 | 
|---|
 | 4875 |         continue
 | 
|---|
 | 4876 |         ;;
 | 
|---|
 | 4877 | 
 | 
|---|
 | 4878 |       *.la)
 | 
|---|
 | 4879 |         # A libtool-controlled library.
 | 
|---|
 | 4880 | 
 | 
|---|
 | 4881 |         if test "$prev" = dlfiles; then
 | 
|---|
 | 4882 |           # This library was specified with -dlopen.
 | 
|---|
 | 4883 |           dlfiles="$dlfiles $arg"
 | 
|---|
 | 4884 |           prev=
 | 
|---|
 | 4885 |         elif test "$prev" = dlprefiles; then
 | 
|---|
 | 4886 |           # The library was specified with -dlpreopen.
 | 
|---|
 | 4887 |           dlprefiles="$dlprefiles $arg"
 | 
|---|
 | 4888 |           prev=
 | 
|---|
 | 4889 |         else
 | 
|---|
 | 4890 |           deplibs="$deplibs $arg"
 | 
|---|
 | 4891 |         fi
 | 
|---|
 | 4892 |         continue
 | 
|---|
 | 4893 |         ;;
 | 
|---|
 | 4894 | 
 | 
|---|
 | 4895 |       # Some other compiler argument.
 | 
|---|
 | 4896 |       *)
 | 
|---|
 | 4897 |         # Unknown arguments in both finalize_command and compile_command need
 | 
|---|
 | 4898 |         # to be aesthetically quoted because they are evaled later.
 | 
|---|
 | 4899 |         func_quote_for_eval "$arg"
 | 
|---|
 | 4900 |         arg="$func_quote_for_eval_result"
 | 
|---|
 | 4901 |         ;;
 | 
|---|
 | 4902 |       esac # arg
 | 
|---|
 | 4903 | 
 | 
|---|
 | 4904 |       # Now actually substitute the argument into the commands.
 | 
|---|
 | 4905 |       if test -n "$arg"; then
 | 
|---|
 | 4906 |         func_append compile_command " $arg"
 | 
|---|
 | 4907 |         func_append finalize_command " $arg"
 | 
|---|
 | 4908 |       fi
 | 
|---|
 | 4909 |     done # argument parsing loop
 | 
|---|
 | 4910 | 
 | 
|---|
 | 4911 |     test -n "$prev" && \
 | 
|---|
 | 4912 |       func_fatal_help "the \`$prevarg' option requires an argument"
 | 
|---|
 | 4913 | 
 | 
|---|
 | 4914 |     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
 | 
|---|
 | 4915 |       eval arg=\"$export_dynamic_flag_spec\"
 | 
|---|
 | 4916 |       func_append compile_command " $arg"
 | 
|---|
 | 4917 |       func_append finalize_command " $arg"
 | 
|---|
 | 4918 |     fi
 | 
|---|
 | 4919 | 
 | 
|---|
 | 4920 |     oldlibs=
 | 
|---|
 | 4921 |     # calculate the name of the file, without its directory
 | 
|---|
 | 4922 |     func_basename "$output"
 | 
|---|
 | 4923 |     outputname="$func_basename_result"
 | 
|---|
 | 4924 |     libobjs_save="$libobjs"
 | 
|---|
 | 4925 | 
 | 
|---|
 | 4926 |     if test -n "$shlibpath_var"; then
 | 
|---|
 | 4927 |       # get the directories listed in $shlibpath_var
 | 
|---|
 | 4928 |       eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 | 
|---|
 | 4929 |     else
 | 
|---|
 | 4930 |       shlib_search_path=
 | 
|---|
 | 4931 |     fi
 | 
|---|
 | 4932 |     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
 | 
|---|
 | 4933 |     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 | 
|---|
 | 4934 | 
 | 
|---|
 | 4935 |     func_dirname "$output" "/" ""
 | 
|---|
 | 4936 |     output_objdir="$func_dirname_result$objdir"
 | 
|---|
 | 4937 |     # Create the object directory.
 | 
|---|
 | 4938 |     func_mkdir_p "$output_objdir"
 | 
|---|
 | 4939 | 
 | 
|---|
 | 4940 |     # Determine the type of output
 | 
|---|
 | 4941 |     case $output in
 | 
|---|
 | 4942 |     "")
 | 
|---|
 | 4943 |       func_fatal_help "you must specify an output file"
 | 
|---|
 | 4944 |       ;;
 | 
|---|
 | 4945 |     *.$libext) linkmode=oldlib ;;
 | 
|---|
 | 4946 |     *.lo | *.$objext) linkmode=obj ;;
 | 
|---|
 | 4947 |     *.la) linkmode=lib ;;
 | 
|---|
 | 4948 |     *) linkmode=prog ;; # Anything else should be a program.
 | 
|---|
 | 4949 |     esac
 | 
|---|
 | 4950 | 
 | 
|---|
 | 4951 |     specialdeplibs=
 | 
|---|
 | 4952 | 
 | 
|---|
 | 4953 |     libs=
 | 
|---|
 | 4954 |     # Find all interdependent deplibs by searching for libraries
 | 
|---|
 | 4955 |     # that are linked more than once (e.g. -la -lb -la)
 | 
|---|
 | 4956 |     for deplib in $deplibs; do
 | 
|---|
 | 4957 |       if $opt_duplicate_deps ; then
 | 
|---|
 | 4958 |         case "$libs " in
 | 
|---|
 | 4959 |         *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 | 
|---|
 | 4960 |         esac
 | 
|---|
 | 4961 |       fi
 | 
|---|
 | 4962 |       libs="$libs $deplib"
 | 
|---|
 | 4963 |     done
 | 
|---|
 | 4964 | 
 | 
|---|
 | 4965 |     if test "$linkmode" = lib; then
 | 
|---|
 | 4966 |       libs="$predeps $libs $compiler_lib_search_path $postdeps"
 | 
|---|
 | 4967 | 
 | 
|---|
 | 4968 |       # Compute libraries that are listed more than once in $predeps
 | 
|---|
 | 4969 |       # $postdeps and mark them as special (i.e., whose duplicates are
 | 
|---|
 | 4970 |       # not to be eliminated).
 | 
|---|
 | 4971 |       pre_post_deps=
 | 
|---|
 | 4972 |       if $opt_duplicate_compiler_generated_deps; then
 | 
|---|
 | 4973 |         for pre_post_dep in $predeps $postdeps; do
 | 
|---|
 | 4974 |           case "$pre_post_deps " in
 | 
|---|
 | 4975 |           *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 | 
|---|
 | 4976 |           esac
 | 
|---|
 | 4977 |           pre_post_deps="$pre_post_deps $pre_post_dep"
 | 
|---|
 | 4978 |         done
 | 
|---|
 | 4979 |       fi
 | 
|---|
 | 4980 |       pre_post_deps=
 | 
|---|
 | 4981 |     fi
 | 
|---|
 | 4982 | 
 | 
|---|
 | 4983 |     deplibs=
 | 
|---|
 | 4984 |     newdependency_libs=
 | 
|---|
 | 4985 |     newlib_search_path=
 | 
|---|
 | 4986 |     need_relink=no # whether we're linking any uninstalled libtool libraries
 | 
|---|
 | 4987 |     notinst_deplibs= # not-installed libtool libraries
 | 
|---|
 | 4988 |     notinst_path= # paths that contain not-installed libtool libraries
 | 
|---|
 | 4989 | 
 | 
|---|
 | 4990 |     case $linkmode in
 | 
|---|
 | 4991 |     lib)
 | 
|---|
 | 4992 |         passes="conv dlpreopen link"
 | 
|---|
 | 4993 |         for file in $dlfiles $dlprefiles; do
 | 
|---|
 | 4994 |           case $file in
 | 
|---|
 | 4995 |           *.la) ;;
 | 
|---|
 | 4996 |           *)
 | 
|---|
 | 4997 |             func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
 | 
|---|
 | 4998 |             ;;
 | 
|---|
 | 4999 |           esac
 | 
|---|
 | 5000 |         done
 | 
|---|
 | 5001 |         ;;
 | 
|---|
 | 5002 |     prog)
 | 
|---|
 | 5003 |         compile_deplibs=
 | 
|---|
 | 5004 |         finalize_deplibs=
 | 
|---|
 | 5005 |         alldeplibs=no
 | 
|---|
 | 5006 |         newdlfiles=
 | 
|---|
 | 5007 |         newdlprefiles=
 | 
|---|
 | 5008 |         passes="conv scan dlopen dlpreopen link"
 | 
|---|
 | 5009 |         ;;
 | 
|---|
 | 5010 |     *)  passes="conv"
 | 
|---|
 | 5011 |         ;;
 | 
|---|
 | 5012 |     esac
 | 
|---|
 | 5013 | 
 | 
|---|
 | 5014 |     for pass in $passes; do
 | 
|---|
 | 5015 |       # The preopen pass in lib mode reverses $deplibs; put it back here
 | 
|---|
 | 5016 |       # so that -L comes before libs that need it for instance...
 | 
|---|
 | 5017 |       if test "$linkmode,$pass" = "lib,link"; then
 | 
|---|
 | 5018 |         ## FIXME: Find the place where the list is rebuilt in the wrong
 | 
|---|
 | 5019 |         ##        order, and fix it there properly
 | 
|---|
 | 5020 |         tmp_deplibs=
 | 
|---|
 | 5021 |         for deplib in $deplibs; do
 | 
|---|
 | 5022 |           tmp_deplibs="$deplib $tmp_deplibs"
 | 
|---|
 | 5023 |         done
 | 
|---|
 | 5024 |         deplibs="$tmp_deplibs"
 | 
|---|
 | 5025 |       fi
 | 
|---|
 | 5026 | 
 | 
|---|
 | 5027 |       if test "$linkmode,$pass" = "lib,link" ||
 | 
|---|
 | 5028 |          test "$linkmode,$pass" = "prog,scan"; then
 | 
|---|
 | 5029 |         libs="$deplibs"
 | 
|---|
 | 5030 |         deplibs=
 | 
|---|
 | 5031 |       fi
 | 
|---|
 | 5032 |       if test "$linkmode" = prog; then
 | 
|---|
 | 5033 |         case $pass in
 | 
|---|
 | 5034 |         dlopen) libs="$dlfiles" ;;
 | 
|---|
 | 5035 |         dlpreopen) libs="$dlprefiles" ;;
 | 
|---|
 | 5036 |         link)
 | 
|---|
 | 5037 |           libs="$deplibs %DEPLIBS%"
 | 
|---|
 | 5038 |           test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
 | 
|---|
 | 5039 |           ;;
 | 
|---|
 | 5040 |         esac
 | 
|---|
 | 5041 |       fi
 | 
|---|
 | 5042 |       if test "$linkmode,$pass" = "lib,dlpreopen"; then
 | 
|---|
 | 5043 |         # Collect and forward deplibs of preopened libtool libs
 | 
|---|
 | 5044 |         for lib in $dlprefiles; do
 | 
|---|
 | 5045 |           # Ignore non-libtool-libs
 | 
|---|
 | 5046 |           dependency_libs=
 | 
|---|
 | 5047 |           case $lib in
 | 
|---|
 | 5048 |           *.la) func_source "$lib" ;;
 | 
|---|
 | 5049 |           esac
 | 
|---|
 | 5050 | 
 | 
|---|
 | 5051 |           # Collect preopened libtool deplibs, except any this library
 | 
|---|
 | 5052 |           # has declared as weak libs
 | 
|---|
 | 5053 |           for deplib in $dependency_libs; do
 | 
|---|
 | 5054 |             deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
 | 
|---|
 | 5055 |             case " $weak_libs " in
 | 
|---|
 | 5056 |             *" $deplib_base "*) ;;
 | 
|---|
 | 5057 |             *) deplibs="$deplibs $deplib" ;;
 | 
|---|
 | 5058 |             esac
 | 
|---|
 | 5059 |           done
 | 
|---|
 | 5060 |         done
 | 
|---|
 | 5061 |         libs="$dlprefiles"
 | 
|---|
 | 5062 |       fi
 | 
|---|
 | 5063 |       if test "$pass" = dlopen; then
 | 
|---|
 | 5064 |         # Collect dlpreopened libraries
 | 
|---|
 | 5065 |         save_deplibs="$deplibs"
 | 
|---|
 | 5066 |         deplibs=
 | 
|---|
 | 5067 |       fi
 | 
|---|
 | 5068 | 
 | 
|---|
 | 5069 |       for deplib in $libs; do
 | 
|---|
 | 5070 |         lib=
 | 
|---|
 | 5071 |         found=no
 | 
|---|
 | 5072 |         case $deplib in
 | 
|---|
 | 5073 |         -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 | 
|---|
 | 5074 |           if test "$linkmode,$pass" = "prog,link"; then
 | 
|---|
 | 5075 |             compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5076 |             finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5077 |           else
 | 
|---|
 | 5078 |             compiler_flags="$compiler_flags $deplib"
 | 
|---|
 | 5079 |             if test "$linkmode" = lib ; then
 | 
|---|
 | 5080 |                 case "$new_inherited_linker_flags " in
 | 
|---|
 | 5081 |                     *" $deplib "*) ;;
 | 
|---|
 | 5082 |                     * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 | 
|---|
 | 5083 |                 esac
 | 
|---|
 | 5084 |             fi
 | 
|---|
 | 5085 |           fi
 | 
|---|
 | 5086 |           continue
 | 
|---|
 | 5087 |           ;;
 | 
|---|
 | 5088 |         -l*)
 | 
|---|
 | 5089 |           if test "$linkmode" != lib && test "$linkmode" != prog; then
 | 
|---|
 | 5090 |             func_warning "\`-l' is ignored for archives/objects"
 | 
|---|
 | 5091 |             continue
 | 
|---|
 | 5092 |           fi
 | 
|---|
 | 5093 |           func_stripname '-l' '' "$deplib"
 | 
|---|
 | 5094 |           name=$func_stripname_result
 | 
|---|
 | 5095 |           if test "$linkmode" = lib; then
 | 
|---|
 | 5096 |             searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
 | 
|---|
 | 5097 |           else
 | 
|---|
 | 5098 |             searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
 | 
|---|
 | 5099 |           fi
 | 
|---|
 | 5100 |           for searchdir in $searchdirs; do
 | 
|---|
 | 5101 |             for search_ext in .la $std_shrext .so .a; do
 | 
|---|
 | 5102 |               # Search the libtool library
 | 
|---|
 | 5103 |               lib="$searchdir/lib${name}${search_ext}"
 | 
|---|
 | 5104 |               if test -f "$lib"; then
 | 
|---|
 | 5105 |                 if test "$search_ext" = ".la"; then
 | 
|---|
 | 5106 |                   found=yes
 | 
|---|
 | 5107 |                 else
 | 
|---|
 | 5108 |                   found=no
 | 
|---|
 | 5109 |                 fi
 | 
|---|
 | 5110 |                 break 2
 | 
|---|
 | 5111 |               fi
 | 
|---|
 | 5112 |             done
 | 
|---|
 | 5113 |           done
 | 
|---|
 | 5114 |           if test "$found" != yes; then
 | 
|---|
 | 5115 |             # deplib doesn't seem to be a libtool library
 | 
|---|
 | 5116 |             if test "$linkmode,$pass" = "prog,link"; then
 | 
|---|
 | 5117 |               compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5118 |               finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5119 |             else
 | 
|---|
 | 5120 |               deplibs="$deplib $deplibs"
 | 
|---|
 | 5121 |               test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 | 
|---|
 | 5122 |             fi
 | 
|---|
 | 5123 |             continue
 | 
|---|
 | 5124 |           else # deplib is a libtool library
 | 
|---|
 | 5125 |             # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 | 
|---|
 | 5126 |             # We need to do some special things here, and not later.
 | 
|---|
 | 5127 |             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 | 
|---|
 | 5128 |               case " $predeps $postdeps " in
 | 
|---|
 | 5129 |               *" $deplib "*)
 | 
|---|
 | 5130 |                 if func_lalib_p "$lib"; then
 | 
|---|
 | 5131 |                   library_names=
 | 
|---|
 | 5132 |                   old_library=
 | 
|---|
 | 5133 |                   func_source "$lib"
 | 
|---|
 | 5134 |                   for l in $old_library $library_names; do
 | 
|---|
 | 5135 |                     ll="$l"
 | 
|---|
 | 5136 |                   done
 | 
|---|
 | 5137 |                   if test "X$ll" = "X$old_library" ; then # only static version available
 | 
|---|
 | 5138 |                     found=no
 | 
|---|
 | 5139 |                     func_dirname "$lib" "" "."
 | 
|---|
 | 5140 |                     ladir="$func_dirname_result"
 | 
|---|
 | 5141 |                     lib=$ladir/$old_library
 | 
|---|
 | 5142 |                     if test "$linkmode,$pass" = "prog,link"; then
 | 
|---|
 | 5143 |                       compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5144 |                       finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5145 |                     else
 | 
|---|
 | 5146 |                       deplibs="$deplib $deplibs"
 | 
|---|
 | 5147 |                       test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 | 
|---|
 | 5148 |                     fi
 | 
|---|
 | 5149 |                     continue
 | 
|---|
 | 5150 |                   fi
 | 
|---|
 | 5151 |                 fi
 | 
|---|
 | 5152 |                 ;;
 | 
|---|
 | 5153 |               *) ;;
 | 
|---|
 | 5154 |               esac
 | 
|---|
 | 5155 |             fi
 | 
|---|
 | 5156 |           fi
 | 
|---|
 | 5157 |           ;; # -l
 | 
|---|
 | 5158 |         *.ltframework)
 | 
|---|
 | 5159 |           if test "$linkmode,$pass" = "prog,link"; then
 | 
|---|
 | 5160 |             compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5161 |             finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5162 |           else
 | 
|---|
 | 5163 |             deplibs="$deplib $deplibs"
 | 
|---|
 | 5164 |             if test "$linkmode" = lib ; then
 | 
|---|
 | 5165 |                 case "$new_inherited_linker_flags " in
 | 
|---|
 | 5166 |                     *" $deplib "*) ;;
 | 
|---|
 | 5167 |                     * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 | 
|---|
 | 5168 |                 esac
 | 
|---|
 | 5169 |             fi
 | 
|---|
 | 5170 |           fi
 | 
|---|
 | 5171 |           continue
 | 
|---|
 | 5172 |           ;;
 | 
|---|
 | 5173 |         -L*)
 | 
|---|
 | 5174 |           case $linkmode in
 | 
|---|
 | 5175 |           lib)
 | 
|---|
 | 5176 |             deplibs="$deplib $deplibs"
 | 
|---|
 | 5177 |             test "$pass" = conv && continue
 | 
|---|
 | 5178 |             newdependency_libs="$deplib $newdependency_libs"
 | 
|---|
 | 5179 |             func_stripname '-L' '' "$deplib"
 | 
|---|
 | 5180 |             newlib_search_path="$newlib_search_path $func_stripname_result"
 | 
|---|
 | 5181 |             ;;
 | 
|---|
 | 5182 |           prog)
 | 
|---|
 | 5183 |             if test "$pass" = conv; then
 | 
|---|
 | 5184 |               deplibs="$deplib $deplibs"
 | 
|---|
 | 5185 |               continue
 | 
|---|
 | 5186 |             fi
 | 
|---|
 | 5187 |             if test "$pass" = scan; then
 | 
|---|
 | 5188 |               deplibs="$deplib $deplibs"
 | 
|---|
 | 5189 |             else
 | 
|---|
 | 5190 |               compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5191 |               finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5192 |             fi
 | 
|---|
 | 5193 |             func_stripname '-L' '' "$deplib"
 | 
|---|
 | 5194 |             newlib_search_path="$newlib_search_path $func_stripname_result"
 | 
|---|
 | 5195 |             ;;
 | 
|---|
 | 5196 |           *)
 | 
|---|
 | 5197 |             func_warning "\`-L' is ignored for archives/objects"
 | 
|---|
 | 5198 |             ;;
 | 
|---|
 | 5199 |           esac # linkmode
 | 
|---|
 | 5200 |           continue
 | 
|---|
 | 5201 |           ;; # -L
 | 
|---|
 | 5202 |         -R*)
 | 
|---|
 | 5203 |           if test "$pass" = link; then
 | 
|---|
 | 5204 |             func_stripname '-R' '' "$deplib"
 | 
|---|
 | 5205 |             dir=$func_stripname_result
 | 
|---|
 | 5206 |             # Make sure the xrpath contains only unique directories.
 | 
|---|
 | 5207 |             case "$xrpath " in
 | 
|---|
 | 5208 |             *" $dir "*) ;;
 | 
|---|
 | 5209 |             *) xrpath="$xrpath $dir" ;;
 | 
|---|
 | 5210 |             esac
 | 
|---|
 | 5211 |           fi
 | 
|---|
 | 5212 |           deplibs="$deplib $deplibs"
 | 
|---|
 | 5213 |           continue
 | 
|---|
 | 5214 |           ;;
 | 
|---|
 | 5215 |         *.la) lib="$deplib" ;;
 | 
|---|
 | 5216 |         *.$libext)
 | 
|---|
 | 5217 |           if test "$pass" = conv; then
 | 
|---|
 | 5218 |             deplibs="$deplib $deplibs"
 | 
|---|
 | 5219 |             continue
 | 
|---|
 | 5220 |           fi
 | 
|---|
 | 5221 |           case $linkmode in
 | 
|---|
 | 5222 |           lib)
 | 
|---|
 | 5223 |             # Linking convenience modules into shared libraries is allowed,
 | 
|---|
 | 5224 |             # but linking other static libraries is non-portable.
 | 
|---|
 | 5225 |             case " $dlpreconveniencelibs " in
 | 
|---|
 | 5226 |             *" $deplib "*) ;;
 | 
|---|
 | 5227 |             *)
 | 
|---|
 | 5228 |               valid_a_lib=no
 | 
|---|
 | 5229 |               case $deplibs_check_method in
 | 
|---|
 | 5230 |                 match_pattern*)
 | 
|---|
 | 5231 |                   set dummy $deplibs_check_method; shift
 | 
|---|
 | 5232 |                   match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 | 
|---|
 | 5233 |                   if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
 | 
|---|
 | 5234 |                     | $EGREP "$match_pattern_regex" > /dev/null; then
 | 
|---|
 | 5235 |                     valid_a_lib=yes
 | 
|---|
 | 5236 |                   fi
 | 
|---|
 | 5237 |                 ;;
 | 
|---|
 | 5238 |                 pass_all)
 | 
|---|
 | 5239 |                   valid_a_lib=yes
 | 
|---|
 | 5240 |                 ;;
 | 
|---|
 | 5241 |               esac
 | 
|---|
 | 5242 |               if test "$valid_a_lib" != yes; then
 | 
|---|
 | 5243 |                 $ECHO
 | 
|---|
 | 5244 |                 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
 | 
|---|
 | 5245 |                 $ECHO "*** I have the capability to make that library automatically link in when"
 | 
|---|
 | 5246 |                 $ECHO "*** you link to this library.  But I can only do this if you have a"
 | 
|---|
 | 5247 |                 $ECHO "*** shared version of the library, which you do not appear to have"
 | 
|---|
 | 5248 |                 $ECHO "*** because the file extensions .$libext of this argument makes me believe"
 | 
|---|
 | 5249 |                 $ECHO "*** that it is just a static archive that I should not use here."
 | 
|---|
 | 5250 |               else
 | 
|---|
 | 5251 |                 $ECHO
 | 
|---|
 | 5252 |                 $ECHO "*** Warning: Linking the shared library $output against the"
 | 
|---|
 | 5253 |                 $ECHO "*** static library $deplib is not portable!"
 | 
|---|
 | 5254 |                 deplibs="$deplib $deplibs"
 | 
|---|
 | 5255 |               fi
 | 
|---|
 | 5256 |               ;;
 | 
|---|
 | 5257 |             esac
 | 
|---|
 | 5258 |             continue
 | 
|---|
 | 5259 |             ;;
 | 
|---|
 | 5260 |           prog)
 | 
|---|
 | 5261 |             if test "$pass" != link; then
 | 
|---|
 | 5262 |               deplibs="$deplib $deplibs"
 | 
|---|
 | 5263 |             else
 | 
|---|
 | 5264 |               compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5265 |               finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5266 |             fi
 | 
|---|
 | 5267 |             continue
 | 
|---|
 | 5268 |             ;;
 | 
|---|
 | 5269 |           esac # linkmode
 | 
|---|
 | 5270 |           ;; # *.$libext
 | 
|---|
 | 5271 |         *.lo | *.$objext)
 | 
|---|
 | 5272 |           if test "$pass" = conv; then
 | 
|---|
 | 5273 |             deplibs="$deplib $deplibs"
 | 
|---|
 | 5274 |           elif test "$linkmode" = prog; then
 | 
|---|
 | 5275 |             if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 | 
|---|
 | 5276 |               # If there is no dlopen support or we're linking statically,
 | 
|---|
 | 5277 |               # we need to preload.
 | 
|---|
 | 5278 |               newdlprefiles="$newdlprefiles $deplib"
 | 
|---|
 | 5279 |               compile_deplibs="$deplib $compile_deplibs"
 | 
|---|
 | 5280 |               finalize_deplibs="$deplib $finalize_deplibs"
 | 
|---|
 | 5281 |             else
 | 
|---|
 | 5282 |               newdlfiles="$newdlfiles $deplib"
 | 
|---|
 | 5283 |             fi
 | 
|---|
 | 5284 |           fi
 | 
|---|
 | 5285 |           continue
 | 
|---|
 | 5286 |           ;;
 | 
|---|
 | 5287 |         %DEPLIBS%)
 | 
|---|
 | 5288 |           alldeplibs=yes
 | 
|---|
 | 5289 |           continue
 | 
|---|
 | 5290 |           ;;
 | 
|---|
 | 5291 |         esac # case $deplib
 | 
|---|
 | 5292 | 
 | 
|---|
 | 5293 |         if test "$found" = yes || test -f "$lib"; then :
 | 
|---|
 | 5294 |         else
 | 
|---|
 | 5295 |           func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
 | 
|---|
 | 5296 |         fi
 | 
|---|
 | 5297 | 
 | 
|---|
 | 5298 |         # Check to see that this really is a libtool archive.
 | 
|---|
 | 5299 |         func_lalib_unsafe_p "$lib" \
 | 
|---|
 | 5300 |           || func_fatal_error "\`$lib' is not a valid libtool archive"
 | 
|---|
 | 5301 | 
 | 
|---|
 | 5302 |         func_dirname "$lib" "" "."
 | 
|---|
 | 5303 |         ladir="$func_dirname_result"
 | 
|---|
 | 5304 | 
 | 
|---|
 | 5305 |         dlname=
 | 
|---|
 | 5306 |         dlopen=
 | 
|---|
 | 5307 |         dlpreopen=
 | 
|---|
 | 5308 |         libdir=
 | 
|---|
 | 5309 |         library_names=
 | 
|---|
 | 5310 |         old_library=
 | 
|---|
 | 5311 |         inherited_linker_flags=
 | 
|---|
 | 5312 |         # If the library was installed with an old release of libtool,
 | 
|---|
 | 5313 |         # it will not redefine variables installed, or shouldnotlink
 | 
|---|
 | 5314 |         installed=yes
 | 
|---|
 | 5315 |         shouldnotlink=no
 | 
|---|
 | 5316 |         avoidtemprpath=
 | 
|---|
 | 5317 | 
 | 
|---|
 | 5318 | 
 | 
|---|
 | 5319 |         # Read the .la file
 | 
|---|
 | 5320 |         func_source "$lib"
 | 
|---|
 | 5321 | 
 | 
|---|
 | 5322 |         # Convert "-framework foo" to "foo.ltframework"
 | 
|---|
 | 5323 |         if test -n "$inherited_linker_flags"; then
 | 
|---|
 | 5324 |           tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
 | 
|---|
 | 5325 |           for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
 | 
|---|
 | 5326 |             case " $new_inherited_linker_flags " in
 | 
|---|
 | 5327 |               *" $tmp_inherited_linker_flag "*) ;;
 | 
|---|
 | 5328 |               *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
 | 
|---|
 | 5329 |             esac
 | 
|---|
 | 5330 |           done
 | 
|---|
 | 5331 |         fi
 | 
|---|
 | 5332 |         dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 5333 |         if test "$linkmode,$pass" = "lib,link" ||
 | 
|---|
 | 5334 |            test "$linkmode,$pass" = "prog,scan" ||
 | 
|---|
 | 5335 |            { test "$linkmode" != prog && test "$linkmode" != lib; }; then
 | 
|---|
 | 5336 |           test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
 | 
|---|
 | 5337 |           test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 | 
|---|
 | 5338 |         fi
 | 
|---|
 | 5339 | 
 | 
|---|
 | 5340 |         if test "$pass" = conv; then
 | 
|---|
 | 5341 |           # Only check for convenience libraries
 | 
|---|
 | 5342 |           deplibs="$lib $deplibs"
 | 
|---|
 | 5343 |           if test -z "$libdir"; then
 | 
|---|
 | 5344 |             if test -z "$old_library"; then
 | 
|---|
 | 5345 |               func_fatal_error "cannot find name of link library for \`$lib'"
 | 
|---|
 | 5346 |             fi
 | 
|---|
 | 5347 |             # It is a libtool convenience library, so add in its objects.
 | 
|---|
 | 5348 |             convenience="$convenience $ladir/$objdir/$old_library"
 | 
|---|
 | 5349 |             old_convenience="$old_convenience $ladir/$objdir/$old_library"
 | 
|---|
 | 5350 |             tmp_libs=
 | 
|---|
 | 5351 |             for deplib in $dependency_libs; do
 | 
|---|
 | 5352 |               deplibs="$deplib $deplibs"
 | 
|---|
 | 5353 |               if $opt_duplicate_deps ; then
 | 
|---|
 | 5354 |                 case "$tmp_libs " in
 | 
|---|
 | 5355 |                 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 | 
|---|
 | 5356 |                 esac
 | 
|---|
 | 5357 |               fi
 | 
|---|
 | 5358 |               tmp_libs="$tmp_libs $deplib"
 | 
|---|
 | 5359 |             done
 | 
|---|
 | 5360 |           elif test "$linkmode" != prog && test "$linkmode" != lib; then
 | 
|---|
 | 5361 |             func_fatal_error "\`$lib' is not a convenience library"
 | 
|---|
 | 5362 |           fi
 | 
|---|
 | 5363 |           continue
 | 
|---|
 | 5364 |         fi # $pass = conv
 | 
|---|
 | 5365 | 
 | 
|---|
 | 5366 | 
 | 
|---|
 | 5367 |         # Get the name of the library we link against.
 | 
|---|
 | 5368 |         linklib=
 | 
|---|
 | 5369 |         for l in $old_library $library_names; do
 | 
|---|
 | 5370 |           linklib="$l"
 | 
|---|
 | 5371 |         done
 | 
|---|
 | 5372 |         if test -z "$linklib"; then
 | 
|---|
 | 5373 |           func_fatal_error "cannot find name of link library for \`$lib'"
 | 
|---|
 | 5374 |         fi
 | 
|---|
 | 5375 | 
 | 
|---|
 | 5376 |         # This library was specified with -dlopen.
 | 
|---|
 | 5377 |         if test "$pass" = dlopen; then
 | 
|---|
 | 5378 |           if test -z "$libdir"; then
 | 
|---|
 | 5379 |             func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
 | 
|---|
 | 5380 |           fi
 | 
|---|
 | 5381 |           if test -z "$dlname" ||
 | 
|---|
 | 5382 |              test "$dlopen_support" != yes ||
 | 
|---|
 | 5383 |              test "$build_libtool_libs" = no; then
 | 
|---|
 | 5384 |             # If there is no dlname, no dlopen support or we're linking
 | 
|---|
 | 5385 |             # statically, we need to preload.  We also need to preload any
 | 
|---|
 | 5386 |             # dependent libraries so libltdl's deplib preloader doesn't
 | 
|---|
 | 5387 |             # bomb out in the load deplibs phase.
 | 
|---|
 | 5388 |             dlprefiles="$dlprefiles $lib $dependency_libs"
 | 
|---|
 | 5389 |           else
 | 
|---|
 | 5390 |             newdlfiles="$newdlfiles $lib"
 | 
|---|
 | 5391 |           fi
 | 
|---|
 | 5392 |           continue
 | 
|---|
 | 5393 |         fi # $pass = dlopen
 | 
|---|
 | 5394 | 
 | 
|---|
 | 5395 |         # We need an absolute path.
 | 
|---|
 | 5396 |         case $ladir in
 | 
|---|
 | 5397 |         [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
 | 
|---|
 | 5398 |         *)
 | 
|---|
 | 5399 |           abs_ladir=`cd "$ladir" && pwd`
 | 
|---|
 | 5400 |           if test -z "$abs_ladir"; then
 | 
|---|
 | 5401 |             func_warning "cannot determine absolute directory name of \`$ladir'"
 | 
|---|
 | 5402 |             func_warning "passing it literally to the linker, although it might fail"
 | 
|---|
 | 5403 |             abs_ladir="$ladir"
 | 
|---|
 | 5404 |           fi
 | 
|---|
 | 5405 |           ;;
 | 
|---|
 | 5406 |         esac
 | 
|---|
 | 5407 |         func_basename "$lib"
 | 
|---|
 | 5408 |         laname="$func_basename_result"
 | 
|---|
 | 5409 | 
 | 
|---|
 | 5410 |         # Find the relevant object directory and library name.
 | 
|---|
 | 5411 |         if test "X$installed" = Xyes; then
 | 
|---|
 | 5412 |           if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 | 
|---|
 | 5413 |             func_warning "library \`$lib' was moved."
 | 
|---|
 | 5414 |             dir="$ladir"
 | 
|---|
 | 5415 |             absdir="$abs_ladir"
 | 
|---|
 | 5416 |             libdir="$abs_ladir"
 | 
|---|
 | 5417 |           else
 | 
|---|
 | 5418 |             dir="$libdir"
 | 
|---|
 | 5419 |             absdir="$libdir"
 | 
|---|
 | 5420 |           fi
 | 
|---|
 | 5421 |           test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 | 
|---|
 | 5422 |         else
 | 
|---|
 | 5423 |           if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 | 
|---|
 | 5424 |             dir="$ladir"
 | 
|---|
 | 5425 |             absdir="$abs_ladir"
 | 
|---|
 | 5426 |             # Remove this search path later
 | 
|---|
 | 5427 |             notinst_path="$notinst_path $abs_ladir"
 | 
|---|
 | 5428 |           else
 | 
|---|
 | 5429 |             dir="$ladir/$objdir"
 | 
|---|
 | 5430 |             absdir="$abs_ladir/$objdir"
 | 
|---|
 | 5431 |             # Remove this search path later
 | 
|---|
 | 5432 |             notinst_path="$notinst_path $abs_ladir"
 | 
|---|
 | 5433 |           fi
 | 
|---|
 | 5434 |         fi # $installed = yes
 | 
|---|
 | 5435 |         func_stripname 'lib' '.la' "$laname"
 | 
|---|
 | 5436 |         name=$func_stripname_result
 | 
|---|
 | 5437 | 
 | 
|---|
 | 5438 |         # This library was specified with -dlpreopen.
 | 
|---|
 | 5439 |         if test "$pass" = dlpreopen; then
 | 
|---|
 | 5440 |           if test -z "$libdir" && test "$linkmode" = prog; then
 | 
|---|
 | 5441 |             func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
 | 
|---|
 | 5442 |           fi
 | 
|---|
 | 5443 |           # Prefer using a static library (so that no silly _DYNAMIC symbols
 | 
|---|
 | 5444 |           # are required to link).
 | 
|---|
 | 5445 |           if test -n "$old_library"; then
 | 
|---|
 | 5446 |             newdlprefiles="$newdlprefiles $dir/$old_library"
 | 
|---|
 | 5447 |             # Keep a list of preopened convenience libraries to check
 | 
|---|
 | 5448 |             # that they are being used correctly in the link pass.
 | 
|---|
 | 5449 |             test -z "$libdir" && \
 | 
|---|
 | 5450 |                 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
 | 
|---|
 | 5451 |           # Otherwise, use the dlname, so that lt_dlopen finds it.
 | 
|---|
 | 5452 |           elif test -n "$dlname"; then
 | 
|---|
 | 5453 |             newdlprefiles="$newdlprefiles $dir/$dlname"
 | 
|---|
 | 5454 |           else
 | 
|---|
 | 5455 |             newdlprefiles="$newdlprefiles $dir/$linklib"
 | 
|---|
 | 5456 |           fi
 | 
|---|
 | 5457 |         fi # $pass = dlpreopen
 | 
|---|
 | 5458 | 
 | 
|---|
 | 5459 |         if test -z "$libdir"; then
 | 
|---|
 | 5460 |           # Link the convenience library
 | 
|---|
 | 5461 |           if test "$linkmode" = lib; then
 | 
|---|
 | 5462 |             deplibs="$dir/$old_library $deplibs"
 | 
|---|
 | 5463 |           elif test "$linkmode,$pass" = "prog,link"; then
 | 
|---|
 | 5464 |             compile_deplibs="$dir/$old_library $compile_deplibs"
 | 
|---|
 | 5465 |             finalize_deplibs="$dir/$old_library $finalize_deplibs"
 | 
|---|
 | 5466 |           else
 | 
|---|
 | 5467 |             deplibs="$lib $deplibs" # used for prog,scan pass
 | 
|---|
 | 5468 |           fi
 | 
|---|
 | 5469 |           continue
 | 
|---|
 | 5470 |         fi
 | 
|---|
 | 5471 | 
 | 
|---|
 | 5472 | 
 | 
|---|
 | 5473 |         if test "$linkmode" = prog && test "$pass" != link; then
 | 
|---|
 | 5474 |           newlib_search_path="$newlib_search_path $ladir"
 | 
|---|
 | 5475 |           deplibs="$lib $deplibs"
 | 
|---|
 | 5476 | 
 | 
|---|
 | 5477 |           linkalldeplibs=no
 | 
|---|
 | 5478 |           if test "$link_all_deplibs" != no || test -z "$library_names" ||
 | 
|---|
 | 5479 |              test "$build_libtool_libs" = no; then
 | 
|---|
 | 5480 |             linkalldeplibs=yes
 | 
|---|
 | 5481 |           fi
 | 
|---|
 | 5482 | 
 | 
|---|
 | 5483 |           tmp_libs=
 | 
|---|
 | 5484 |           for deplib in $dependency_libs; do
 | 
|---|
 | 5485 |             case $deplib in
 | 
|---|
 | 5486 |             -L*) func_stripname '-L' '' "$deplib"
 | 
|---|
 | 5487 |                  newlib_search_path="$newlib_search_path $func_stripname_result"
 | 
|---|
 | 5488 |                  ;;
 | 
|---|
 | 5489 |             esac
 | 
|---|
 | 5490 |             # Need to link against all dependency_libs?
 | 
|---|
 | 5491 |             if test "$linkalldeplibs" = yes; then
 | 
|---|
 | 5492 |               deplibs="$deplib $deplibs"
 | 
|---|
 | 5493 |             else
 | 
|---|
 | 5494 |               # Need to hardcode shared library paths
 | 
|---|
 | 5495 |               # or/and link against static libraries
 | 
|---|
 | 5496 |               newdependency_libs="$deplib $newdependency_libs"
 | 
|---|
 | 5497 |             fi
 | 
|---|
 | 5498 |             if $opt_duplicate_deps ; then
 | 
|---|
 | 5499 |               case "$tmp_libs " in
 | 
|---|
 | 5500 |               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 | 
|---|
 | 5501 |               esac
 | 
|---|
 | 5502 |             fi
 | 
|---|
 | 5503 |             tmp_libs="$tmp_libs $deplib"
 | 
|---|
 | 5504 |           done # for deplib
 | 
|---|
 | 5505 |           continue
 | 
|---|
 | 5506 |         fi # $linkmode = prog...
 | 
|---|
 | 5507 | 
 | 
|---|
 | 5508 |         if test "$linkmode,$pass" = "prog,link"; then
 | 
|---|
 | 5509 |           if test -n "$library_names" &&
 | 
|---|
 | 5510 |              { { test "$prefer_static_libs" = no ||
 | 
|---|
 | 5511 |                  test "$prefer_static_libs,$installed" = "built,yes"; } ||
 | 
|---|
 | 5512 |                test -z "$old_library"; }; then
 | 
|---|
 | 5513 |             # We need to hardcode the library path
 | 
|---|
 | 5514 |             if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 | 
|---|
 | 5515 |               # Make sure the rpath contains only unique directories.
 | 
|---|
 | 5516 |               case "$temp_rpath:" in
 | 
|---|
 | 5517 |               *"$absdir:"*) ;;
 | 
|---|
 | 5518 |               *) temp_rpath="$temp_rpath$absdir:" ;;
 | 
|---|
 | 5519 |               esac
 | 
|---|
 | 5520 |             fi
 | 
|---|
 | 5521 | 
 | 
|---|
 | 5522 |             # Hardcode the library path.
 | 
|---|
 | 5523 |             # Skip directories that are in the system default run-time
 | 
|---|
 | 5524 |             # search path.
 | 
|---|
 | 5525 |             case " $sys_lib_dlsearch_path " in
 | 
|---|
 | 5526 |             *" $absdir "*) ;;
 | 
|---|
 | 5527 |             *)
 | 
|---|
 | 5528 |               case "$compile_rpath " in
 | 
|---|
 | 5529 |               *" $absdir "*) ;;
 | 
|---|
 | 5530 |               *) compile_rpath="$compile_rpath $absdir"
 | 
|---|
 | 5531 |               esac
 | 
|---|
 | 5532 |               ;;
 | 
|---|
 | 5533 |             esac
 | 
|---|
 | 5534 |             case " $sys_lib_dlsearch_path " in
 | 
|---|
 | 5535 |             *" $libdir "*) ;;
 | 
|---|
 | 5536 |             *)
 | 
|---|
 | 5537 |               case "$finalize_rpath " in
 | 
|---|
 | 5538 |               *" $libdir "*) ;;
 | 
|---|
 | 5539 |               *) finalize_rpath="$finalize_rpath $libdir"
 | 
|---|
 | 5540 |               esac
 | 
|---|
 | 5541 |               ;;
 | 
|---|
 | 5542 |             esac
 | 
|---|
 | 5543 |           fi # $linkmode,$pass = prog,link...
 | 
|---|
 | 5544 | 
 | 
|---|
 | 5545 |           if test "$alldeplibs" = yes &&
 | 
|---|
 | 5546 |              { test "$deplibs_check_method" = pass_all ||
 | 
|---|
 | 5547 |                { test "$build_libtool_libs" = yes &&
 | 
|---|
 | 5548 |                  test -n "$library_names"; }; }; then
 | 
|---|
 | 5549 |             # We only need to search for static libraries
 | 
|---|
 | 5550 |             continue
 | 
|---|
 | 5551 |           fi
 | 
|---|
 | 5552 |         fi
 | 
|---|
 | 5553 | 
 | 
|---|
 | 5554 |         link_static=no # Whether the deplib will be linked statically
 | 
|---|
 | 5555 |         use_static_libs=$prefer_static_libs
 | 
|---|
 | 5556 |         if test "$use_static_libs" = built && test "$installed" = yes; then
 | 
|---|
 | 5557 |           use_static_libs=no
 | 
|---|
 | 5558 |         fi
 | 
|---|
 | 5559 |         if test -n "$library_names" &&
 | 
|---|
 | 5560 |            { test "$use_static_libs" = no || test -z "$old_library"; }; then
 | 
|---|
 | 5561 |           case $host in
 | 
|---|
 | 5562 |           *cygwin* | *mingw* | *cegcc*)
 | 
|---|
 | 5563 |               # No point in relinking DLLs because paths are not encoded
 | 
|---|
 | 5564 |               notinst_deplibs="$notinst_deplibs $lib"
 | 
|---|
 | 5565 |               need_relink=no
 | 
|---|
 | 5566 |             ;;
 | 
|---|
 | 5567 |           *)
 | 
|---|
 | 5568 |             if test "$installed" = no; then
 | 
|---|
 | 5569 |               notinst_deplibs="$notinst_deplibs $lib"
 | 
|---|
 | 5570 |               need_relink=yes
 | 
|---|
 | 5571 |             fi
 | 
|---|
 | 5572 |             ;;
 | 
|---|
 | 5573 |           esac
 | 
|---|
 | 5574 |           # This is a shared library
 | 
|---|
 | 5575 | 
 | 
|---|
 | 5576 |           # Warn about portability, can't link against -module's on some
 | 
|---|
 | 5577 |           # systems (darwin).  Don't bleat about dlopened modules though!
 | 
|---|
 | 5578 |           dlopenmodule=""
 | 
|---|
 | 5579 |           for dlpremoduletest in $dlprefiles; do
 | 
|---|
 | 5580 |             if test "X$dlpremoduletest" = "X$lib"; then
 | 
|---|
 | 5581 |               dlopenmodule="$dlpremoduletest"
 | 
|---|
 | 5582 |               break
 | 
|---|
 | 5583 |             fi
 | 
|---|
 | 5584 |           done
 | 
|---|
 | 5585 |           if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
 | 
|---|
 | 5586 |             $ECHO
 | 
|---|
 | 5587 |             if test "$linkmode" = prog; then
 | 
|---|
 | 5588 |               $ECHO "*** Warning: Linking the executable $output against the loadable module"
 | 
|---|
 | 5589 |             else
 | 
|---|
 | 5590 |               $ECHO "*** Warning: Linking the shared library $output against the loadable module"
 | 
|---|
 | 5591 |             fi
 | 
|---|
 | 5592 |             $ECHO "*** $linklib is not portable!"
 | 
|---|
 | 5593 |           fi
 | 
|---|
 | 5594 |           if test "$linkmode" = lib &&
 | 
|---|
 | 5595 |              test "$hardcode_into_libs" = yes; then
 | 
|---|
 | 5596 |             # Hardcode the library path.
 | 
|---|
 | 5597 |             # Skip directories that are in the system default run-time
 | 
|---|
 | 5598 |             # search path.
 | 
|---|
 | 5599 |             case " $sys_lib_dlsearch_path " in
 | 
|---|
 | 5600 |             *" $absdir "*) ;;
 | 
|---|
 | 5601 |             *)
 | 
|---|
 | 5602 |               case "$compile_rpath " in
 | 
|---|
 | 5603 |               *" $absdir "*) ;;
 | 
|---|
 | 5604 |               *) compile_rpath="$compile_rpath $absdir"
 | 
|---|
 | 5605 |               esac
 | 
|---|
 | 5606 |               ;;
 | 
|---|
 | 5607 |             esac
 | 
|---|
 | 5608 |             case " $sys_lib_dlsearch_path " in
 | 
|---|
 | 5609 |             *" $libdir "*) ;;
 | 
|---|
 | 5610 |             *)
 | 
|---|
 | 5611 |               case "$finalize_rpath " in
 | 
|---|
 | 5612 |               *" $libdir "*) ;;
 | 
|---|
 | 5613 |               *) finalize_rpath="$finalize_rpath $libdir"
 | 
|---|
 | 5614 |               esac
 | 
|---|
 | 5615 |               ;;
 | 
|---|
 | 5616 |             esac
 | 
|---|
 | 5617 |           fi
 | 
|---|
 | 5618 | 
 | 
|---|
 | 5619 |           if test -n "$old_archive_from_expsyms_cmds"; then
 | 
|---|
 | 5620 |             # figure out the soname
 | 
|---|
 | 5621 |             set dummy $library_names
 | 
|---|
 | 5622 |             shift
 | 
|---|
 | 5623 |             realname="$1"
 | 
|---|
 | 5624 |             shift
 | 
|---|
 | 5625 |             libname=`eval "\\$ECHO \"$libname_spec\""`
 | 
|---|
 | 5626 |             # use dlname if we got it. it's perfectly good, no?
 | 
|---|
 | 5627 |             if test -n "$dlname"; then
 | 
|---|
 | 5628 |               soname="$dlname"
 | 
|---|
 | 5629 |             elif test -n "$soname_spec"; then
 | 
|---|
 | 5630 |               # bleh windows
 | 
|---|
 | 5631 |               case $host in
 | 
|---|
 | 5632 |               *cygwin* | mingw* | *cegcc*)
 | 
|---|
 | 5633 |                 func_arith $current - $age
 | 
|---|
 | 5634 |                 major=$func_arith_result
 | 
|---|
 | 5635 |                 versuffix="-$major"
 | 
|---|
 | 5636 |                 ;;
 | 
|---|
 | 5637 |               esac
 | 
|---|
 | 5638 |               eval soname=\"$soname_spec\"
 | 
|---|
 | 5639 |             else
 | 
|---|
 | 5640 |               soname="$realname"
 | 
|---|
 | 5641 |             fi
 | 
|---|
 | 5642 | 
 | 
|---|
 | 5643 |             # Make a new name for the extract_expsyms_cmds to use
 | 
|---|
 | 5644 |             soroot="$soname"
 | 
|---|
 | 5645 |             func_basename "$soroot"
 | 
|---|
 | 5646 |             soname="$func_basename_result"
 | 
|---|
 | 5647 |             func_stripname 'lib' '.dll' "$soname"
 | 
|---|
 | 5648 |             newlib=libimp-$func_stripname_result.a
 | 
|---|
 | 5649 | 
 | 
|---|
 | 5650 |             # If the library has no export list, then create one now
 | 
|---|
 | 5651 |             if test -f "$output_objdir/$soname-def"; then :
 | 
|---|
 | 5652 |             else
 | 
|---|
 | 5653 |               func_verbose "extracting exported symbol list from \`$soname'"
 | 
|---|
 | 5654 |               func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
 | 
|---|
 | 5655 |             fi
 | 
|---|
 | 5656 | 
 | 
|---|
 | 5657 |             # Create $newlib
 | 
|---|
 | 5658 |             if test -f "$output_objdir/$newlib"; then :; else
 | 
|---|
 | 5659 |               func_verbose "generating import library for \`$soname'"
 | 
|---|
 | 5660 |               func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
 | 
|---|
 | 5661 |             fi
 | 
|---|
 | 5662 |             # make sure the library variables are pointing to the new library
 | 
|---|
 | 5663 |             dir=$output_objdir
 | 
|---|
 | 5664 |             linklib=$newlib
 | 
|---|
 | 5665 |           fi # test -n "$old_archive_from_expsyms_cmds"
 | 
|---|
 | 5666 | 
 | 
|---|
 | 5667 |           if test "$linkmode" = prog || test "$mode" != relink; then
 | 
|---|
 | 5668 |             add_shlibpath=
 | 
|---|
 | 5669 |             add_dir=
 | 
|---|
 | 5670 |             add=
 | 
|---|
 | 5671 |             lib_linked=yes
 | 
|---|
 | 5672 |             case $hardcode_action in
 | 
|---|
 | 5673 |             immediate | unsupported)
 | 
|---|
 | 5674 |               if test "$hardcode_direct" = no; then
 | 
|---|
 | 5675 |                 add="$dir/$linklib"
 | 
|---|
 | 5676 |                 case $host in
 | 
|---|
 | 5677 |                   *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
 | 
|---|
 | 5678 |                   *-*-sysv4*uw2*) add_dir="-L$dir" ;;
 | 
|---|
 | 5679 |                   *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
 | 
|---|
 | 5680 |                     *-*-unixware7*) add_dir="-L$dir" ;;
 | 
|---|
 | 5681 |                   *-*-darwin* )
 | 
|---|
 | 5682 |                     # if the lib is a (non-dlopened) module then we can not
 | 
|---|
 | 5683 |                     # link against it, someone is ignoring the earlier warnings
 | 
|---|
 | 5684 |                     if /usr/bin/file -L $add 2> /dev/null |
 | 
|---|
 | 5685 |                          $GREP ": [^:]* bundle" >/dev/null ; then
 | 
|---|
 | 5686 |                       if test "X$dlopenmodule" != "X$lib"; then
 | 
|---|
 | 5687 |                         $ECHO "*** Warning: lib $linklib is a module, not a shared library"
 | 
|---|
 | 5688 |                         if test -z "$old_library" ; then
 | 
|---|
 | 5689 |                           $ECHO
 | 
|---|
 | 5690 |                           $ECHO "*** And there doesn't seem to be a static archive available"
 | 
|---|
 | 5691 |                           $ECHO "*** The link will probably fail, sorry"
 | 
|---|
 | 5692 |                         else
 | 
|---|
 | 5693 |                           add="$dir/$old_library"
 | 
|---|
 | 5694 |                         fi
 | 
|---|
 | 5695 |                       elif test -n "$old_library"; then
 | 
|---|
 | 5696 |                         add="$dir/$old_library"
 | 
|---|
 | 5697 |                       fi
 | 
|---|
 | 5698 |                     fi
 | 
|---|
 | 5699 |                 esac
 | 
|---|
 | 5700 |               elif test "$hardcode_minus_L" = no; then
 | 
|---|
 | 5701 |                 case $host in
 | 
|---|
 | 5702 |                 *-*-sunos*) add_shlibpath="$dir" ;;
 | 
|---|
 | 5703 |                 esac
 | 
|---|
 | 5704 |                 add_dir="-L$dir"
 | 
|---|
 | 5705 |                 add="-l$name"
 | 
|---|
 | 5706 |               elif test "$hardcode_shlibpath_var" = no; then
 | 
|---|
 | 5707 |                 add_shlibpath="$dir"
 | 
|---|
 | 5708 |                 add="-l$name"
 | 
|---|
 | 5709 |               else
 | 
|---|
 | 5710 |                 lib_linked=no
 | 
|---|
 | 5711 |               fi
 | 
|---|
 | 5712 |               ;;
 | 
|---|
 | 5713 |             relink)
 | 
|---|
 | 5714 |               if test "$hardcode_direct" = yes &&
 | 
|---|
 | 5715 |                  test "$hardcode_direct_absolute" = no; then
 | 
|---|
 | 5716 |                 add="$dir/$linklib"
 | 
|---|
 | 5717 |               elif test "$hardcode_minus_L" = yes; then
 | 
|---|
 | 5718 |                 add_dir="-L$dir"
 | 
|---|
 | 5719 |                 # Try looking first in the location we're being installed to.
 | 
|---|
 | 5720 |                 if test -n "$inst_prefix_dir"; then
 | 
|---|
 | 5721 |                   case $libdir in
 | 
|---|
 | 5722 |                     [\\/]*)
 | 
|---|
 | 5723 |                       add_dir="$add_dir -L$inst_prefix_dir$libdir"
 | 
|---|
 | 5724 |                       ;;
 | 
|---|
 | 5725 |                   esac
 | 
|---|
 | 5726 |                 fi
 | 
|---|
 | 5727 |                 add="-l$name"
 | 
|---|
 | 5728 |               elif test "$hardcode_shlibpath_var" = yes; then
 | 
|---|
 | 5729 |                 add_shlibpath="$dir"
 | 
|---|
 | 5730 |                 add="-l$name"
 | 
|---|
 | 5731 |               else
 | 
|---|
 | 5732 |                 lib_linked=no
 | 
|---|
 | 5733 |               fi
 | 
|---|
 | 5734 |               ;;
 | 
|---|
 | 5735 |             *) lib_linked=no ;;
 | 
|---|
 | 5736 |             esac
 | 
|---|
 | 5737 | 
 | 
|---|
 | 5738 |             if test "$lib_linked" != yes; then
 | 
|---|
 | 5739 |               func_fatal_configuration "unsupported hardcode properties"
 | 
|---|
 | 5740 |             fi
 | 
|---|
 | 5741 | 
 | 
|---|
 | 5742 |             if test -n "$add_shlibpath"; then
 | 
|---|
 | 5743 |               case :$compile_shlibpath: in
 | 
|---|
 | 5744 |               *":$add_shlibpath:"*) ;;
 | 
|---|
 | 5745 |               *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 | 
|---|
 | 5746 |               esac
 | 
|---|
 | 5747 |             fi
 | 
|---|
 | 5748 |             if test "$linkmode" = prog; then
 | 
|---|
 | 5749 |               test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 | 
|---|
 | 5750 |               test -n "$add" && compile_deplibs="$add $compile_deplibs"
 | 
|---|
 | 5751 |             else
 | 
|---|
 | 5752 |               test -n "$add_dir" && deplibs="$add_dir $deplibs"
 | 
|---|
 | 5753 |               test -n "$add" && deplibs="$add $deplibs"
 | 
|---|
 | 5754 |               if test "$hardcode_direct" != yes &&
 | 
|---|
 | 5755 |                  test "$hardcode_minus_L" != yes &&
 | 
|---|
 | 5756 |                  test "$hardcode_shlibpath_var" = yes; then
 | 
|---|
 | 5757 |                 case :$finalize_shlibpath: in
 | 
|---|
 | 5758 |                 *":$libdir:"*) ;;
 | 
|---|
 | 5759 |                 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 | 
|---|
 | 5760 |                 esac
 | 
|---|
 | 5761 |               fi
 | 
|---|
 | 5762 |             fi
 | 
|---|
 | 5763 |           fi
 | 
|---|
 | 5764 | 
 | 
|---|
 | 5765 |           if test "$linkmode" = prog || test "$mode" = relink; then
 | 
|---|
 | 5766 |             add_shlibpath=
 | 
|---|
 | 5767 |             add_dir=
 | 
|---|
 | 5768 |             add=
 | 
|---|
 | 5769 |             # Finalize command for both is simple: just hardcode it.
 | 
|---|
 | 5770 |             if test "$hardcode_direct" = yes &&
 | 
|---|
 | 5771 |                test "$hardcode_direct_absolute" = no; then
 | 
|---|
 | 5772 |               add="$libdir/$linklib"
 | 
|---|
 | 5773 |             elif test "$hardcode_minus_L" = yes; then
 | 
|---|
 | 5774 |               add_dir="-L$libdir"
 | 
|---|
 | 5775 |               add="-l$name"
 | 
|---|
 | 5776 |             elif test "$hardcode_shlibpath_var" = yes; then
 | 
|---|
 | 5777 |               case :$finalize_shlibpath: in
 | 
|---|
 | 5778 |               *":$libdir:"*) ;;
 | 
|---|
 | 5779 |               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 | 
|---|
 | 5780 |               esac
 | 
|---|
 | 5781 |               add="-l$name"
 | 
|---|
 | 5782 |             elif test "$hardcode_automatic" = yes; then
 | 
|---|
 | 5783 |               if test -n "$inst_prefix_dir" &&
 | 
|---|
 | 5784 |                  test -f "$inst_prefix_dir$libdir/$linklib" ; then
 | 
|---|
 | 5785 |                 add="$inst_prefix_dir$libdir/$linklib"
 | 
|---|
 | 5786 |               else
 | 
|---|
 | 5787 |                 add="$libdir/$linklib"
 | 
|---|
 | 5788 |               fi
 | 
|---|
 | 5789 |             else
 | 
|---|
 | 5790 |               # We cannot seem to hardcode it, guess we'll fake it.
 | 
|---|
 | 5791 |               add_dir="-L$libdir"
 | 
|---|
 | 5792 |               # Try looking first in the location we're being installed to.
 | 
|---|
 | 5793 |               if test -n "$inst_prefix_dir"; then
 | 
|---|
 | 5794 |                 case $libdir in
 | 
|---|
 | 5795 |                   [\\/]*)
 | 
|---|
 | 5796 |                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
 | 
|---|
 | 5797 |                     ;;
 | 
|---|
 | 5798 |                 esac
 | 
|---|
 | 5799 |               fi
 | 
|---|
 | 5800 |               add="-l$name"
 | 
|---|
 | 5801 |             fi
 | 
|---|
 | 5802 | 
 | 
|---|
 | 5803 |             if test "$linkmode" = prog; then
 | 
|---|
 | 5804 |               test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 | 
|---|
 | 5805 |               test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 | 
|---|
 | 5806 |             else
 | 
|---|
 | 5807 |               test -n "$add_dir" && deplibs="$add_dir $deplibs"
 | 
|---|
 | 5808 |               test -n "$add" && deplibs="$add $deplibs"
 | 
|---|
 | 5809 |             fi
 | 
|---|
 | 5810 |           fi
 | 
|---|
 | 5811 |         elif test "$linkmode" = prog; then
 | 
|---|
 | 5812 |           # Here we assume that one of hardcode_direct or hardcode_minus_L
 | 
|---|
 | 5813 |           # is not unsupported.  This is valid on all known static and
 | 
|---|
 | 5814 |           # shared platforms.
 | 
|---|
 | 5815 |           if test "$hardcode_direct" != unsupported; then
 | 
|---|
 | 5816 |             test -n "$old_library" && linklib="$old_library"
 | 
|---|
 | 5817 |             compile_deplibs="$dir/$linklib $compile_deplibs"
 | 
|---|
 | 5818 |             finalize_deplibs="$dir/$linklib $finalize_deplibs"
 | 
|---|
 | 5819 |           else
 | 
|---|
 | 5820 |             compile_deplibs="-l$name -L$dir $compile_deplibs"
 | 
|---|
 | 5821 |             finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 | 
|---|
 | 5822 |           fi
 | 
|---|
 | 5823 |         elif test "$build_libtool_libs" = yes; then
 | 
|---|
 | 5824 |           # Not a shared library
 | 
|---|
 | 5825 |           if test "$deplibs_check_method" != pass_all; then
 | 
|---|
 | 5826 |             # We're trying link a shared library against a static one
 | 
|---|
 | 5827 |             # but the system doesn't support it.
 | 
|---|
 | 5828 | 
 | 
|---|
 | 5829 |             # Just print a warning and add the library to dependency_libs so
 | 
|---|
 | 5830 |             # that the program can be linked against the static library.
 | 
|---|
 | 5831 |             $ECHO
 | 
|---|
 | 5832 |             $ECHO "*** Warning: This system can not link to static lib archive $lib."
 | 
|---|
 | 5833 |             $ECHO "*** I have the capability to make that library automatically link in when"
 | 
|---|
 | 5834 |             $ECHO "*** you link to this library.  But I can only do this if you have a"
 | 
|---|
 | 5835 |             $ECHO "*** shared version of the library, which you do not appear to have."
 | 
|---|
 | 5836 |             if test "$module" = yes; then
 | 
|---|
 | 5837 |               $ECHO "*** But as you try to build a module library, libtool will still create "
 | 
|---|
 | 5838 |               $ECHO "*** a static module, that should work as long as the dlopening application"
 | 
|---|
 | 5839 |               $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
 | 
|---|
 | 5840 |               if test -z "$global_symbol_pipe"; then
 | 
|---|
 | 5841 |                 $ECHO
 | 
|---|
 | 5842 |                 $ECHO "*** However, this would only work if libtool was able to extract symbol"
 | 
|---|
 | 5843 |                 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
 | 
|---|
 | 5844 |                 $ECHO "*** not find such a program.  So, this module is probably useless."
 | 
|---|
 | 5845 |                 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 | 
|---|
 | 5846 |               fi
 | 
|---|
 | 5847 |               if test "$build_old_libs" = no; then
 | 
|---|
 | 5848 |                 build_libtool_libs=module
 | 
|---|
 | 5849 |                 build_old_libs=yes
 | 
|---|
 | 5850 |               else
 | 
|---|
 | 5851 |                 build_libtool_libs=no
 | 
|---|
 | 5852 |               fi
 | 
|---|
 | 5853 |             fi
 | 
|---|
 | 5854 |           else
 | 
|---|
 | 5855 |             deplibs="$dir/$old_library $deplibs"
 | 
|---|
 | 5856 |             link_static=yes
 | 
|---|
 | 5857 |           fi
 | 
|---|
 | 5858 |         fi # link shared/static library?
 | 
|---|
 | 5859 | 
 | 
|---|
 | 5860 |         if test "$linkmode" = lib; then
 | 
|---|
 | 5861 |           if test -n "$dependency_libs" &&
 | 
|---|
 | 5862 |              { test "$hardcode_into_libs" != yes ||
 | 
|---|
 | 5863 |                test "$build_old_libs" = yes ||
 | 
|---|
 | 5864 |                test "$link_static" = yes; }; then
 | 
|---|
 | 5865 |             # Extract -R from dependency_libs
 | 
|---|
 | 5866 |             temp_deplibs=
 | 
|---|
 | 5867 |             for libdir in $dependency_libs; do
 | 
|---|
 | 5868 |               case $libdir in
 | 
|---|
 | 5869 |               -R*) func_stripname '-R' '' "$libdir"
 | 
|---|
 | 5870 |                    temp_xrpath=$func_stripname_result
 | 
|---|
 | 5871 |                    case " $xrpath " in
 | 
|---|
 | 5872 |                    *" $temp_xrpath "*) ;;
 | 
|---|
 | 5873 |                    *) xrpath="$xrpath $temp_xrpath";;
 | 
|---|
 | 5874 |                    esac;;
 | 
|---|
 | 5875 |               *) temp_deplibs="$temp_deplibs $libdir";;
 | 
|---|
 | 5876 |               esac
 | 
|---|
 | 5877 |             done
 | 
|---|
 | 5878 |             dependency_libs="$temp_deplibs"
 | 
|---|
 | 5879 |           fi
 | 
|---|
 | 5880 | 
 | 
|---|
 | 5881 |           newlib_search_path="$newlib_search_path $absdir"
 | 
|---|
 | 5882 |           # Link against this library
 | 
|---|
 | 5883 |           test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 | 
|---|
 | 5884 |           # ... and its dependency_libs
 | 
|---|
 | 5885 |           tmp_libs=
 | 
|---|
 | 5886 |           for deplib in $dependency_libs; do
 | 
|---|
 | 5887 |             newdependency_libs="$deplib $newdependency_libs"
 | 
|---|
 | 5888 |             if $opt_duplicate_deps ; then
 | 
|---|
 | 5889 |               case "$tmp_libs " in
 | 
|---|
 | 5890 |               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 | 
|---|
 | 5891 |               esac
 | 
|---|
 | 5892 |             fi
 | 
|---|
 | 5893 |             tmp_libs="$tmp_libs $deplib"
 | 
|---|
 | 5894 |           done
 | 
|---|
 | 5895 | 
 | 
|---|
 | 5896 |           if test "$link_all_deplibs" != no; then
 | 
|---|
 | 5897 |             # Add the search paths of all dependency libraries
 | 
|---|
 | 5898 |             for deplib in $dependency_libs; do
 | 
|---|
 | 5899 |               path=
 | 
|---|
 | 5900 |               case $deplib in
 | 
|---|
 | 5901 |               -L*) path="$deplib" ;;
 | 
|---|
 | 5902 |               *.la)
 | 
|---|
 | 5903 |                 func_dirname "$deplib" "" "."
 | 
|---|
 | 5904 |                 dir="$func_dirname_result"
 | 
|---|
 | 5905 |                 # We need an absolute path.
 | 
|---|
 | 5906 |                 case $dir in
 | 
|---|
 | 5907 |                 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
 | 
|---|
 | 5908 |                 *)
 | 
|---|
 | 5909 |                   absdir=`cd "$dir" && pwd`
 | 
|---|
 | 5910 |                   if test -z "$absdir"; then
 | 
|---|
 | 5911 |                     func_warning "cannot determine absolute directory name of \`$dir'"
 | 
|---|
 | 5912 |                     absdir="$dir"
 | 
|---|
 | 5913 |                   fi
 | 
|---|
 | 5914 |                   ;;
 | 
|---|
 | 5915 |                 esac
 | 
|---|
 | 5916 |                 if $GREP "^installed=no" $deplib > /dev/null; then
 | 
|---|
 | 5917 |                 case $host in
 | 
|---|
 | 5918 |                 *-*-darwin*)
 | 
|---|
 | 5919 |                   depdepl=
 | 
|---|
 | 5920 |                   eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
 | 
|---|
 | 5921 |                   if test -n "$deplibrary_names" ; then
 | 
|---|
 | 5922 |                     for tmp in $deplibrary_names ; do
 | 
|---|
 | 5923 |                       depdepl=$tmp
 | 
|---|
 | 5924 |                     done
 | 
|---|
 | 5925 |                     if test -f "$absdir/$objdir/$depdepl" ; then
 | 
|---|
 | 5926 |                       depdepl="$absdir/$objdir/$depdepl"
 | 
|---|
 | 5927 |                       darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
 | 
|---|
 | 5928 |                       if test -z "$darwin_install_name"; then
 | 
|---|
 | 5929 |                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
 | 
|---|
 | 5930 |                       fi
 | 
|---|
 | 5931 |                       compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
 | 
|---|
 | 5932 |                       linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
 | 
|---|
 | 5933 |                       path=
 | 
|---|
 | 5934 |                     fi
 | 
|---|
 | 5935 |                   fi
 | 
|---|
 | 5936 |                   ;;
 | 
|---|
 | 5937 |                 *)
 | 
|---|
 | 5938 |                   path="-L$absdir/$objdir"
 | 
|---|
 | 5939 |                   ;;
 | 
|---|
 | 5940 |                 esac
 | 
|---|
 | 5941 |                 else
 | 
|---|
 | 5942 |                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 | 
|---|
 | 5943 |                   test -z "$libdir" && \
 | 
|---|
 | 5944 |                     func_fatal_error "\`$deplib' is not a valid libtool archive"
 | 
|---|
 | 5945 |                   test "$absdir" != "$libdir" && \
 | 
|---|
 | 5946 |                     func_warning "\`$deplib' seems to be moved"
 | 
|---|
 | 5947 | 
 | 
|---|
 | 5948 |                   path="-L$absdir"
 | 
|---|
 | 5949 |                 fi
 | 
|---|
 | 5950 |                 ;;
 | 
|---|
 | 5951 |               esac
 | 
|---|
 | 5952 |               case " $deplibs " in
 | 
|---|
 | 5953 |               *" $path "*) ;;
 | 
|---|
 | 5954 |               *) deplibs="$path $deplibs" ;;
 | 
|---|
 | 5955 |               esac
 | 
|---|
 | 5956 |             done
 | 
|---|
 | 5957 |           fi # link_all_deplibs != no
 | 
|---|
 | 5958 |         fi # linkmode = lib
 | 
|---|
 | 5959 |       done # for deplib in $libs
 | 
|---|
 | 5960 |       if test "$pass" = link; then
 | 
|---|
 | 5961 |         if test "$linkmode" = "prog"; then
 | 
|---|
 | 5962 |           compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 | 
|---|
 | 5963 |           finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 | 
|---|
 | 5964 |         else
 | 
|---|
 | 5965 |           compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 5966 |         fi
 | 
|---|
 | 5967 |       fi
 | 
|---|
 | 5968 |       dependency_libs="$newdependency_libs"
 | 
|---|
 | 5969 |       if test "$pass" = dlpreopen; then
 | 
|---|
 | 5970 |         # Link the dlpreopened libraries before other libraries
 | 
|---|
 | 5971 |         for deplib in $save_deplibs; do
 | 
|---|
 | 5972 |           deplibs="$deplib $deplibs"
 | 
|---|
 | 5973 |         done
 | 
|---|
 | 5974 |       fi
 | 
|---|
 | 5975 |       if test "$pass" != dlopen; then
 | 
|---|
 | 5976 |         if test "$pass" != conv; then
 | 
|---|
 | 5977 |           # Make sure lib_search_path contains only unique directories.
 | 
|---|
 | 5978 |           lib_search_path=
 | 
|---|
 | 5979 |           for dir in $newlib_search_path; do
 | 
|---|
 | 5980 |             case "$lib_search_path " in
 | 
|---|
 | 5981 |             *" $dir "*) ;;
 | 
|---|
 | 5982 |             *) lib_search_path="$lib_search_path $dir" ;;
 | 
|---|
 | 5983 |             esac
 | 
|---|
 | 5984 |           done
 | 
|---|
 | 5985 |           newlib_search_path=
 | 
|---|
 | 5986 |         fi
 | 
|---|
 | 5987 | 
 | 
|---|
 | 5988 |         if test "$linkmode,$pass" != "prog,link"; then
 | 
|---|
 | 5989 |           vars="deplibs"
 | 
|---|
 | 5990 |         else
 | 
|---|
 | 5991 |           vars="compile_deplibs finalize_deplibs"
 | 
|---|
 | 5992 |         fi
 | 
|---|
 | 5993 |         for var in $vars dependency_libs; do
 | 
|---|
 | 5994 |           # Add libraries to $var in reverse order
 | 
|---|
 | 5995 |           eval tmp_libs=\"\$$var\"
 | 
|---|
 | 5996 |           new_libs=
 | 
|---|
 | 5997 |           for deplib in $tmp_libs; do
 | 
|---|
 | 5998 |             # FIXME: Pedantically, this is the right thing to do, so
 | 
|---|
 | 5999 |             #        that some nasty dependency loop isn't accidentally
 | 
|---|
 | 6000 |             #        broken:
 | 
|---|
 | 6001 |             #new_libs="$deplib $new_libs"
 | 
|---|
 | 6002 |             # Pragmatically, this seems to cause very few problems in
 | 
|---|
 | 6003 |             # practice:
 | 
|---|
 | 6004 |             case $deplib in
 | 
|---|
 | 6005 |             -L*) new_libs="$deplib $new_libs" ;;
 | 
|---|
 | 6006 |             -R*) ;;
 | 
|---|
 | 6007 |             *)
 | 
|---|
 | 6008 |               # And here is the reason: when a library appears more
 | 
|---|
 | 6009 |               # than once as an explicit dependence of a library, or
 | 
|---|
 | 6010 |               # is implicitly linked in more than once by the
 | 
|---|
 | 6011 |               # compiler, it is considered special, and multiple
 | 
|---|
 | 6012 |               # occurrences thereof are not removed.  Compare this
 | 
|---|
 | 6013 |               # with having the same library being listed as a
 | 
|---|
 | 6014 |               # dependency of multiple other libraries: in this case,
 | 
|---|
 | 6015 |               # we know (pedantically, we assume) the library does not
 | 
|---|
 | 6016 |               # need to be listed more than once, so we keep only the
 | 
|---|
 | 6017 |               # last copy.  This is not always right, but it is rare
 | 
|---|
 | 6018 |               # enough that we require users that really mean to play
 | 
|---|
 | 6019 |               # such unportable linking tricks to link the library
 | 
|---|
 | 6020 |               # using -Wl,-lname, so that libtool does not consider it
 | 
|---|
 | 6021 |               # for duplicate removal.
 | 
|---|
 | 6022 |               case " $specialdeplibs " in
 | 
|---|
 | 6023 |               *" $deplib "*) new_libs="$deplib $new_libs" ;;
 | 
|---|
 | 6024 |               *)
 | 
|---|
 | 6025 |                 case " $new_libs " in
 | 
|---|
 | 6026 |                 *" $deplib "*) ;;
 | 
|---|
 | 6027 |                 *) new_libs="$deplib $new_libs" ;;
 | 
|---|
 | 6028 |                 esac
 | 
|---|
 | 6029 |                 ;;
 | 
|---|
 | 6030 |               esac
 | 
|---|
 | 6031 |               ;;
 | 
|---|
 | 6032 |             esac
 | 
|---|
 | 6033 |           done
 | 
|---|
 | 6034 |           tmp_libs=
 | 
|---|
 | 6035 |           for deplib in $new_libs; do
 | 
|---|
 | 6036 |             case $deplib in
 | 
|---|
 | 6037 |             -L*)
 | 
|---|
 | 6038 |               case " $tmp_libs " in
 | 
|---|
 | 6039 |               *" $deplib "*) ;;
 | 
|---|
 | 6040 |               *) tmp_libs="$tmp_libs $deplib" ;;
 | 
|---|
 | 6041 |               esac
 | 
|---|
 | 6042 |               ;;
 | 
|---|
 | 6043 |             *) tmp_libs="$tmp_libs $deplib" ;;
 | 
|---|
 | 6044 |             esac
 | 
|---|
 | 6045 |           done
 | 
|---|
 | 6046 |           eval $var=\"$tmp_libs\"
 | 
|---|
 | 6047 |         done # for var
 | 
|---|
 | 6048 |       fi
 | 
|---|
 | 6049 |       # Last step: remove runtime libs from dependency_libs
 | 
|---|
 | 6050 |       # (they stay in deplibs)
 | 
|---|
 | 6051 |       tmp_libs=
 | 
|---|
 | 6052 |       for i in $dependency_libs ; do
 | 
|---|
 | 6053 |         case " $predeps $postdeps $compiler_lib_search_path " in
 | 
|---|
 | 6054 |         *" $i "*)
 | 
|---|
 | 6055 |           i=""
 | 
|---|
 | 6056 |           ;;
 | 
|---|
 | 6057 |         esac
 | 
|---|
 | 6058 |         if test -n "$i" ; then
 | 
|---|
 | 6059 |           tmp_libs="$tmp_libs $i"
 | 
|---|
 | 6060 |         fi
 | 
|---|
 | 6061 |       done
 | 
|---|
 | 6062 |       dependency_libs=$tmp_libs
 | 
|---|
 | 6063 |     done # for pass
 | 
|---|
 | 6064 |     if test "$linkmode" = prog; then
 | 
|---|
 | 6065 |       dlfiles="$newdlfiles"
 | 
|---|
 | 6066 |     fi
 | 
|---|
 | 6067 |     if test "$linkmode" = prog || test "$linkmode" = lib; then
 | 
|---|
 | 6068 |       dlprefiles="$newdlprefiles"
 | 
|---|
 | 6069 |     fi
 | 
|---|
 | 6070 | 
 | 
|---|
 | 6071 |     case $linkmode in
 | 
|---|
 | 6072 |     oldlib)
 | 
|---|
 | 6073 |       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 | 
|---|
 | 6074 |         func_warning "\`-dlopen' is ignored for archives"
 | 
|---|
 | 6075 |       fi
 | 
|---|
 | 6076 | 
 | 
|---|
 | 6077 |       case " $deplibs" in
 | 
|---|
 | 6078 |       *\ -l* | *\ -L*)
 | 
|---|
 | 6079 |         func_warning "\`-l' and \`-L' are ignored for archives" ;;
 | 
|---|
 | 6080 |       esac
 | 
|---|
 | 6081 | 
 | 
|---|
 | 6082 |       test -n "$rpath" && \
 | 
|---|
 | 6083 |         func_warning "\`-rpath' is ignored for archives"
 | 
|---|
 | 6084 | 
 | 
|---|
 | 6085 |       test -n "$xrpath" && \
 | 
|---|
 | 6086 |         func_warning "\`-R' is ignored for archives"
 | 
|---|
 | 6087 | 
 | 
|---|
 | 6088 |       test -n "$vinfo" && \
 | 
|---|
 | 6089 |         func_warning "\`-version-info/-version-number' is ignored for archives"
 | 
|---|
 | 6090 | 
 | 
|---|
 | 6091 |       test -n "$release" && \
 | 
|---|
 | 6092 |         func_warning "\`-release' is ignored for archives"
 | 
|---|
 | 6093 | 
 | 
|---|
 | 6094 |       test -n "$export_symbols$export_symbols_regex" && \
 | 
|---|
 | 6095 |         func_warning "\`-export-symbols' is ignored for archives"
 | 
|---|
 | 6096 | 
 | 
|---|
 | 6097 |       # Now set the variables for building old libraries.
 | 
|---|
 | 6098 |       build_libtool_libs=no
 | 
|---|
 | 6099 |       oldlibs="$output"
 | 
|---|
 | 6100 |       objs="$objs$old_deplibs"
 | 
|---|
 | 6101 |       ;;
 | 
|---|
 | 6102 | 
 | 
|---|
 | 6103 |     lib)
 | 
|---|
 | 6104 |       # Make sure we only generate libraries of the form `libNAME.la'.
 | 
|---|
 | 6105 |       case $outputname in
 | 
|---|
 | 6106 |       lib*)
 | 
|---|
 | 6107 |         func_stripname 'lib' '.la' "$outputname"
 | 
|---|
 | 6108 |         name=$func_stripname_result
 | 
|---|
 | 6109 |         eval shared_ext=\"$shrext_cmds\"
 | 
|---|
 | 6110 |         eval libname=\"$libname_spec\"
 | 
|---|
 | 6111 |         ;;
 | 
|---|
 | 6112 |       *)
 | 
|---|
 | 6113 |         test "$module" = no && \
 | 
|---|
 | 6114 |           func_fatal_help "libtool library \`$output' must begin with \`lib'"
 | 
|---|
 | 6115 | 
 | 
|---|
 | 6116 |         if test "$need_lib_prefix" != no; then
 | 
|---|
 | 6117 |           # Add the "lib" prefix for modules if required
 | 
|---|
 | 6118 |           func_stripname '' '.la' "$outputname"
 | 
|---|
 | 6119 |           name=$func_stripname_result
 | 
|---|
 | 6120 |           eval shared_ext=\"$shrext_cmds\"
 | 
|---|
 | 6121 |           eval libname=\"$libname_spec\"
 | 
|---|
 | 6122 |         else
 | 
|---|
 | 6123 |           func_stripname '' '.la' "$outputname"
 | 
|---|
 | 6124 |           libname=$func_stripname_result
 | 
|---|
 | 6125 |         fi
 | 
|---|
 | 6126 |         ;;
 | 
|---|
 | 6127 |       esac
 | 
|---|
 | 6128 | 
 | 
|---|
 | 6129 |       if test -n "$objs"; then
 | 
|---|
 | 6130 |         if test "$deplibs_check_method" != pass_all; then
 | 
|---|
 | 6131 |           func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
 | 
|---|
 | 6132 |         else
 | 
|---|
 | 6133 |           $ECHO
 | 
|---|
 | 6134 |           $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
 | 
|---|
 | 6135 |           $ECHO "*** objects $objs is not portable!"
 | 
|---|
 | 6136 |           libobjs="$libobjs $objs"
 | 
|---|
 | 6137 |         fi
 | 
|---|
 | 6138 |       fi
 | 
|---|
 | 6139 | 
 | 
|---|
 | 6140 |       test "$dlself" != no && \
 | 
|---|
 | 6141 |         func_warning "\`-dlopen self' is ignored for libtool libraries"
 | 
|---|
 | 6142 | 
 | 
|---|
 | 6143 |       set dummy $rpath
 | 
|---|
 | 6144 |       shift
 | 
|---|
 | 6145 |       test "$#" -gt 1 && \
 | 
|---|
 | 6146 |         func_warning "ignoring multiple \`-rpath's for a libtool library"
 | 
|---|
 | 6147 | 
 | 
|---|
 | 6148 |       install_libdir="$1"
 | 
|---|
 | 6149 | 
 | 
|---|
 | 6150 |       oldlibs=
 | 
|---|
 | 6151 |       if test -z "$rpath"; then
 | 
|---|
 | 6152 |         if test "$build_libtool_libs" = yes; then
 | 
|---|
 | 6153 |           # Building a libtool convenience library.
 | 
|---|
 | 6154 |           # Some compilers have problems with a `.al' extension so
 | 
|---|
 | 6155 |           # convenience libraries should have the same extension an
 | 
|---|
 | 6156 |           # archive normally would.
 | 
|---|
 | 6157 |           oldlibs="$output_objdir/$libname.$libext $oldlibs"
 | 
|---|
 | 6158 |           build_libtool_libs=convenience
 | 
|---|
 | 6159 |           build_old_libs=yes
 | 
|---|
 | 6160 |         fi
 | 
|---|
 | 6161 | 
 | 
|---|
 | 6162 |         test -n "$vinfo" && \
 | 
|---|
 | 6163 |           func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
 | 
|---|
 | 6164 | 
 | 
|---|
 | 6165 |         test -n "$release" && \
 | 
|---|
 | 6166 |           func_warning "\`-release' is ignored for convenience libraries"
 | 
|---|
 | 6167 |       else
 | 
|---|
 | 6168 | 
 | 
|---|
 | 6169 |         # Parse the version information argument.
 | 
|---|
 | 6170 |         save_ifs="$IFS"; IFS=':'
 | 
|---|
 | 6171 |         set dummy $vinfo 0 0 0
 | 
|---|
 | 6172 |         shift
 | 
|---|
 | 6173 |         IFS="$save_ifs"
 | 
|---|
 | 6174 | 
 | 
|---|
 | 6175 |         test -n "$7" && \
 | 
|---|
 | 6176 |           func_fatal_help "too many parameters to \`-version-info'"
 | 
|---|
 | 6177 | 
 | 
|---|
 | 6178 |         # convert absolute version numbers to libtool ages
 | 
|---|
 | 6179 |         # this retains compatibility with .la files and attempts
 | 
|---|
 | 6180 |         # to make the code below a bit more comprehensible
 | 
|---|
 | 6181 | 
 | 
|---|
 | 6182 |         case $vinfo_number in
 | 
|---|
 | 6183 |         yes)
 | 
|---|
 | 6184 |           number_major="$1"
 | 
|---|
 | 6185 |           number_minor="$2"
 | 
|---|
 | 6186 |           number_revision="$3"
 | 
|---|
 | 6187 |           #
 | 
|---|
 | 6188 |           # There are really only two kinds -- those that
 | 
|---|
 | 6189 |           # use the current revision as the major version
 | 
|---|
 | 6190 |           # and those that subtract age and use age as
 | 
|---|
 | 6191 |           # a minor version.  But, then there is irix
 | 
|---|
 | 6192 |           # which has an extra 1 added just for fun
 | 
|---|
 | 6193 |           #
 | 
|---|
 | 6194 |           case $version_type in
 | 
|---|
 | 6195 |           darwin|linux|osf|windows|none)
 | 
|---|
 | 6196 |             func_arith $number_major + $number_minor
 | 
|---|
 | 6197 |             current=$func_arith_result
 | 
|---|
 | 6198 |             age="$number_minor"
 | 
|---|
 | 6199 |             revision="$number_revision"
 | 
|---|
 | 6200 |             ;;
 | 
|---|
 | 6201 |           freebsd-aout|freebsd-elf|sunos)
 | 
|---|
 | 6202 |             current="$number_major"
 | 
|---|
 | 6203 |             revision="$number_minor"
 | 
|---|
 | 6204 |             age="0"
 | 
|---|
 | 6205 |             ;;
 | 
|---|
 | 6206 |           irix|nonstopux)
 | 
|---|
 | 6207 |             func_arith $number_major + $number_minor
 | 
|---|
 | 6208 |             current=$func_arith_result
 | 
|---|
 | 6209 |             age="$number_minor"
 | 
|---|
 | 6210 |             revision="$number_minor"
 | 
|---|
 | 6211 |             lt_irix_increment=no
 | 
|---|
 | 6212 |             ;;
 | 
|---|
 | 6213 |           *)
 | 
|---|
 | 6214 |             func_fatal_configuration "$modename: unknown library version type \`$version_type'"
 | 
|---|
 | 6215 |             ;;
 | 
|---|
 | 6216 |           esac
 | 
|---|
 | 6217 |           ;;
 | 
|---|
 | 6218 |         no)
 | 
|---|
 | 6219 |           current="$1"
 | 
|---|
 | 6220 |           revision="$2"
 | 
|---|
 | 6221 |           age="$3"
 | 
|---|
 | 6222 |           ;;
 | 
|---|
 | 6223 |         esac
 | 
|---|
 | 6224 | 
 | 
|---|
 | 6225 |         # Check that each of the things are valid numbers.
 | 
|---|
 | 6226 |         case $current in
 | 
|---|
 | 6227 |         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]) ;;
 | 
|---|
 | 6228 |         *)
 | 
|---|
 | 6229 |           func_error "CURRENT \`$current' must be a nonnegative integer"
 | 
|---|
 | 6230 |           func_fatal_error "\`$vinfo' is not valid version information"
 | 
|---|
 | 6231 |           ;;
 | 
|---|
 | 6232 |         esac
 | 
|---|
 | 6233 | 
 | 
|---|
 | 6234 |         case $revision in
 | 
|---|
 | 6235 |         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]) ;;
 | 
|---|
 | 6236 |         *)
 | 
|---|
 | 6237 |           func_error "REVISION \`$revision' must be a nonnegative integer"
 | 
|---|
 | 6238 |           func_fatal_error "\`$vinfo' is not valid version information"
 | 
|---|
 | 6239 |           ;;
 | 
|---|
 | 6240 |         esac
 | 
|---|
 | 6241 | 
 | 
|---|
 | 6242 |         case $age in
 | 
|---|
 | 6243 |         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]) ;;
 | 
|---|
 | 6244 |         *)
 | 
|---|
 | 6245 |           func_error "AGE \`$age' must be a nonnegative integer"
 | 
|---|
 | 6246 |           func_fatal_error "\`$vinfo' is not valid version information"
 | 
|---|
 | 6247 |           ;;
 | 
|---|
 | 6248 |         esac
 | 
|---|
 | 6249 | 
 | 
|---|
 | 6250 |         if test "$age" -gt "$current"; then
 | 
|---|
 | 6251 |           func_error "AGE \`$age' is greater than the current interface number \`$current'"
 | 
|---|
 | 6252 |           func_fatal_error "\`$vinfo' is not valid version information"
 | 
|---|
 | 6253 |         fi
 | 
|---|
 | 6254 | 
 | 
|---|
 | 6255 |         # Calculate the version variables.
 | 
|---|
 | 6256 |         major=
 | 
|---|
 | 6257 |         versuffix=
 | 
|---|
 | 6258 |         verstring=
 | 
|---|
 | 6259 |         case $version_type in
 | 
|---|
 | 6260 |         none) ;;
 | 
|---|
 | 6261 | 
 | 
|---|
 | 6262 |         darwin)
 | 
|---|
 | 6263 |           # Like Linux, but with the current version available in
 | 
|---|
 | 6264 |           # verstring for coding it into the library header
 | 
|---|
 | 6265 |           func_arith $current - $age
 | 
|---|
 | 6266 |           major=.$func_arith_result
 | 
|---|
 | 6267 |           versuffix="$major.$age.$revision"
 | 
|---|
 | 6268 |           # Darwin ld doesn't like 0 for these options...
 | 
|---|
 | 6269 |           func_arith $current + 1
 | 
|---|
 | 6270 |           minor_current=$func_arith_result
 | 
|---|
 | 6271 |           xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
 | 
|---|
 | 6272 |           verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
 | 
|---|
 | 6273 |           ;;
 | 
|---|
 | 6274 | 
 | 
|---|
 | 6275 |         freebsd-aout)
 | 
|---|
 | 6276 |           major=".$current"
 | 
|---|
 | 6277 |           versuffix=".$current.$revision";
 | 
|---|
 | 6278 |           ;;
 | 
|---|
 | 6279 | 
 | 
|---|
 | 6280 |         freebsd-elf)
 | 
|---|
 | 6281 |           major=".$current"
 | 
|---|
 | 6282 |           versuffix=".$current"
 | 
|---|
 | 6283 |           ;;
 | 
|---|
 | 6284 | 
 | 
|---|
 | 6285 |         irix | nonstopux)
 | 
|---|
 | 6286 |           if test "X$lt_irix_increment" = "Xno"; then
 | 
|---|
 | 6287 |             func_arith $current - $age
 | 
|---|
 | 6288 |           else
 | 
|---|
 | 6289 |             func_arith $current - $age + 1
 | 
|---|
 | 6290 |           fi
 | 
|---|
 | 6291 |           major=$func_arith_result
 | 
|---|
 | 6292 | 
 | 
|---|
 | 6293 |           case $version_type in
 | 
|---|
 | 6294 |             nonstopux) verstring_prefix=nonstopux ;;
 | 
|---|
 | 6295 |             *)         verstring_prefix=sgi ;;
 | 
|---|
 | 6296 |           esac
 | 
|---|
 | 6297 |           verstring="$verstring_prefix$major.$revision"
 | 
|---|
 | 6298 | 
 | 
|---|
 | 6299 |           # Add in all the interfaces that we are compatible with.
 | 
|---|
 | 6300 |           loop=$revision
 | 
|---|
 | 6301 |           while test "$loop" -ne 0; do
 | 
|---|
 | 6302 |             func_arith $revision - $loop
 | 
|---|
 | 6303 |             iface=$func_arith_result
 | 
|---|
 | 6304 |             func_arith $loop - 1
 | 
|---|
 | 6305 |             loop=$func_arith_result
 | 
|---|
 | 6306 |             verstring="$verstring_prefix$major.$iface:$verstring"
 | 
|---|
 | 6307 |           done
 | 
|---|
 | 6308 | 
 | 
|---|
 | 6309 |           # Before this point, $major must not contain `.'.
 | 
|---|
 | 6310 |           major=.$major
 | 
|---|
 | 6311 |           versuffix="$major.$revision"
 | 
|---|
 | 6312 |           ;;
 | 
|---|
 | 6313 | 
 | 
|---|
 | 6314 |         linux)
 | 
|---|
 | 6315 |           func_arith $current - $age
 | 
|---|
 | 6316 |           major=.$func_arith_result
 | 
|---|
 | 6317 |           versuffix="$major.$age.$revision"
 | 
|---|
 | 6318 |           ;;
 | 
|---|
 | 6319 | 
 | 
|---|
 | 6320 |         osf)
 | 
|---|
 | 6321 |           func_arith $current - $age
 | 
|---|
 | 6322 |           major=.$func_arith_result
 | 
|---|
 | 6323 |           versuffix=".$current.$age.$revision"
 | 
|---|
 | 6324 |           verstring="$current.$age.$revision"
 | 
|---|
 | 6325 | 
 | 
|---|
 | 6326 |           # Add in all the interfaces that we are compatible with.
 | 
|---|
 | 6327 |           loop=$age
 | 
|---|
 | 6328 |           while test "$loop" -ne 0; do
 | 
|---|
 | 6329 |             func_arith $current - $loop
 | 
|---|
 | 6330 |             iface=$func_arith_result
 | 
|---|
 | 6331 |             func_arith $loop - 1
 | 
|---|
 | 6332 |             loop=$func_arith_result
 | 
|---|
 | 6333 |             verstring="$verstring:${iface}.0"
 | 
|---|
 | 6334 |           done
 | 
|---|
 | 6335 | 
 | 
|---|
 | 6336 |           # Make executables depend on our current version.
 | 
|---|
 | 6337 |           verstring="$verstring:${current}.0"
 | 
|---|
 | 6338 |           ;;
 | 
|---|
 | 6339 | 
 | 
|---|
 | 6340 |         qnx)
 | 
|---|
 | 6341 |           major=".$current"
 | 
|---|
 | 6342 |           versuffix=".$current"
 | 
|---|
 | 6343 |           ;;
 | 
|---|
 | 6344 | 
 | 
|---|
 | 6345 |         sunos)
 | 
|---|
 | 6346 |           major=".$current"
 | 
|---|
 | 6347 |           versuffix=".$current.$revision"
 | 
|---|
 | 6348 |           ;;
 | 
|---|
 | 6349 | 
 | 
|---|
 | 6350 |         windows)
 | 
|---|
 | 6351 |           # Use '-' rather than '.', since we only want one
 | 
|---|
 | 6352 |           # extension on DOS 8.3 filesystems.
 | 
|---|
 | 6353 |           func_arith $current - $age
 | 
|---|
 | 6354 |           major=$func_arith_result
 | 
|---|
 | 6355 |           versuffix="-$major"
 | 
|---|
 | 6356 |           ;;
 | 
|---|
 | 6357 | 
 | 
|---|
 | 6358 |         *)
 | 
|---|
 | 6359 |           func_fatal_configuration "unknown library version type \`$version_type'"
 | 
|---|
 | 6360 |           ;;
 | 
|---|
 | 6361 |         esac
 | 
|---|
 | 6362 | 
 | 
|---|
 | 6363 |         # Clear the version info if we defaulted, and they specified a release.
 | 
|---|
 | 6364 |         if test -z "$vinfo" && test -n "$release"; then
 | 
|---|
 | 6365 |           major=
 | 
|---|
 | 6366 |           case $version_type in
 | 
|---|
 | 6367 |           darwin)
 | 
|---|
 | 6368 |             # we can't check for "0.0" in archive_cmds due to quoting
 | 
|---|
 | 6369 |             # problems, so we reset it completely
 | 
|---|
 | 6370 |             verstring=
 | 
|---|
 | 6371 |             ;;
 | 
|---|
 | 6372 |           *)
 | 
|---|
 | 6373 |             verstring="0.0"
 | 
|---|
 | 6374 |             ;;
 | 
|---|
 | 6375 |           esac
 | 
|---|
 | 6376 |           if test "$need_version" = no; then
 | 
|---|
 | 6377 |             versuffix=
 | 
|---|
 | 6378 |           else
 | 
|---|
 | 6379 |             versuffix=".0.0"
 | 
|---|
 | 6380 |           fi
 | 
|---|
 | 6381 |         fi
 | 
|---|
 | 6382 | 
 | 
|---|
 | 6383 |         # Remove version info from name if versioning should be avoided
 | 
|---|
 | 6384 |         if test "$avoid_version" = yes && test "$need_version" = no; then
 | 
|---|
 | 6385 |           major=
 | 
|---|
 | 6386 |           versuffix=
 | 
|---|
 | 6387 |           verstring=""
 | 
|---|
 | 6388 |         fi
 | 
|---|
 | 6389 | 
 | 
|---|
 | 6390 |         # Check to see if the archive will have undefined symbols.
 | 
|---|
 | 6391 |         if test "$allow_undefined" = yes; then
 | 
|---|
 | 6392 |           if test "$allow_undefined_flag" = unsupported; then
 | 
|---|
 | 6393 |             func_warning "undefined symbols not allowed in $host shared libraries"
 | 
|---|
 | 6394 |             build_libtool_libs=no
 | 
|---|
 | 6395 |             build_old_libs=yes
 | 
|---|
 | 6396 |           fi
 | 
|---|
 | 6397 |         else
 | 
|---|
 | 6398 |           # Don't allow undefined symbols.
 | 
|---|
 | 6399 |           allow_undefined_flag="$no_undefined_flag"
 | 
|---|
 | 6400 |         fi
 | 
|---|
 | 6401 | 
 | 
|---|
 | 6402 |       fi
 | 
|---|
 | 6403 | 
 | 
|---|
 | 6404 |       func_generate_dlsyms "$libname" "$libname" "yes"
 | 
|---|
 | 6405 |       libobjs="$libobjs $symfileobj"
 | 
|---|
 | 6406 |       test "X$libobjs" = "X " && libobjs=
 | 
|---|
 | 6407 | 
 | 
|---|
 | 6408 |       if test "$mode" != relink; then
 | 
|---|
 | 6409 |         # Remove our outputs, but don't remove object files since they
 | 
|---|
 | 6410 |         # may have been created when compiling PIC objects.
 | 
|---|
 | 6411 |         removelist=
 | 
|---|
 | 6412 |         tempremovelist=`$ECHO "$output_objdir/*"`
 | 
|---|
 | 6413 |         for p in $tempremovelist; do
 | 
|---|
 | 6414 |           case $p in
 | 
|---|
 | 6415 |             *.$objext | *.gcno)
 | 
|---|
 | 6416 |                ;;
 | 
|---|
 | 6417 |             $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
 | 
|---|
 | 6418 |                if test "X$precious_files_regex" != "X"; then
 | 
|---|
 | 6419 |                  if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 | 
|---|
 | 6420 |                  then
 | 
|---|
 | 6421 |                    continue
 | 
|---|
 | 6422 |                  fi
 | 
|---|
 | 6423 |                fi
 | 
|---|
 | 6424 |                removelist="$removelist $p"
 | 
|---|
 | 6425 |                ;;
 | 
|---|
 | 6426 |             *) ;;
 | 
|---|
 | 6427 |           esac
 | 
|---|
 | 6428 |         done
 | 
|---|
 | 6429 |         test -n "$removelist" && \
 | 
|---|
 | 6430 |           func_show_eval "${RM}r \$removelist"
 | 
|---|
 | 6431 |       fi
 | 
|---|
 | 6432 | 
 | 
|---|
 | 6433 |       # Now set the variables for building old libraries.
 | 
|---|
 | 6434 |       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
 | 
|---|
 | 6435 |         oldlibs="$oldlibs $output_objdir/$libname.$libext"
 | 
|---|
 | 6436 | 
 | 
|---|
 | 6437 |         # Transform .lo files to .o files.
 | 
|---|
 | 6438 |         oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 | 
|---|
 | 6439 |       fi
 | 
|---|
 | 6440 | 
 | 
|---|
 | 6441 |       # Eliminate all temporary directories.
 | 
|---|
 | 6442 |       #for path in $notinst_path; do
 | 
|---|
 | 6443 |       # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
 | 
|---|
 | 6444 |       # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
 | 
|---|
 | 6445 |       # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
 | 
|---|
 | 6446 |       #done
 | 
|---|
 | 6447 | 
 | 
|---|
 | 6448 |       if test -n "$xrpath"; then
 | 
|---|
 | 6449 |         # If the user specified any rpath flags, then add them.
 | 
|---|
 | 6450 |         temp_xrpath=
 | 
|---|
 | 6451 |         for libdir in $xrpath; do
 | 
|---|
 | 6452 |           temp_xrpath="$temp_xrpath -R$libdir"
 | 
|---|
 | 6453 |           case "$finalize_rpath " in
 | 
|---|
 | 6454 |           *" $libdir "*) ;;
 | 
|---|
 | 6455 |           *) finalize_rpath="$finalize_rpath $libdir" ;;
 | 
|---|
 | 6456 |           esac
 | 
|---|
 | 6457 |         done
 | 
|---|
 | 6458 |         if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
 | 
|---|
 | 6459 |           dependency_libs="$temp_xrpath $dependency_libs"
 | 
|---|
 | 6460 |         fi
 | 
|---|
 | 6461 |       fi
 | 
|---|
 | 6462 | 
 | 
|---|
 | 6463 |       # Make sure dlfiles contains only unique files that won't be dlpreopened
 | 
|---|
 | 6464 |       old_dlfiles="$dlfiles"
 | 
|---|
 | 6465 |       dlfiles=
 | 
|---|
 | 6466 |       for lib in $old_dlfiles; do
 | 
|---|
 | 6467 |         case " $dlprefiles $dlfiles " in
 | 
|---|
 | 6468 |         *" $lib "*) ;;
 | 
|---|
 | 6469 |         *) dlfiles="$dlfiles $lib" ;;
 | 
|---|
 | 6470 |         esac
 | 
|---|
 | 6471 |       done
 | 
|---|
 | 6472 | 
 | 
|---|
 | 6473 |       # Make sure dlprefiles contains only unique files
 | 
|---|
 | 6474 |       old_dlprefiles="$dlprefiles"
 | 
|---|
 | 6475 |       dlprefiles=
 | 
|---|
 | 6476 |       for lib in $old_dlprefiles; do
 | 
|---|
 | 6477 |         case "$dlprefiles " in
 | 
|---|
 | 6478 |         *" $lib "*) ;;
 | 
|---|
 | 6479 |         *) dlprefiles="$dlprefiles $lib" ;;
 | 
|---|
 | 6480 |         esac
 | 
|---|
 | 6481 |       done
 | 
|---|
 | 6482 | 
 | 
|---|
 | 6483 |       if test "$build_libtool_libs" = yes; then
 | 
|---|
 | 6484 |         if test -n "$rpath"; then
 | 
|---|
 | 6485 |           case $host in
 | 
|---|
 | 6486 |           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
 | 
|---|
 | 6487 |             # these systems don't actually have a c library (as such)!
 | 
|---|
 | 6488 |             ;;
 | 
|---|
 | 6489 |           *-*-rhapsody* | *-*-darwin1.[012])
 | 
|---|
 | 6490 |             # Rhapsody C library is in the System framework
 | 
|---|
 | 6491 |             deplibs="$deplibs System.ltframework"
 | 
|---|
 | 6492 |             ;;
 | 
|---|
 | 6493 |           *-*-netbsd*)
 | 
|---|
 | 6494 |             # Don't link with libc until the a.out ld.so is fixed.
 | 
|---|
 | 6495 |             ;;
 | 
|---|
 | 6496 |           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 | 
|---|
 | 6497 |             # Do not include libc due to us having libc/libc_r.
 | 
|---|
 | 6498 |             ;;
 | 
|---|
 | 6499 |           *-*-sco3.2v5* | *-*-sco5v6*)
 | 
|---|
 | 6500 |             # Causes problems with __ctype
 | 
|---|
 | 6501 |             ;;
 | 
|---|
 | 6502 |           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 | 
|---|
 | 6503 |             # Compiler inserts libc in the correct place for threads to work
 | 
|---|
 | 6504 |             ;;
 | 
|---|
 | 6505 |           *)
 | 
|---|
 | 6506 |             # Add libc to deplibs on all other systems if necessary.
 | 
|---|
 | 6507 |             if test "$build_libtool_need_lc" = "yes"; then
 | 
|---|
 | 6508 |               deplibs="$deplibs -lc"
 | 
|---|
 | 6509 |             fi
 | 
|---|
 | 6510 |             ;;
 | 
|---|
 | 6511 |           esac
 | 
|---|
 | 6512 |         fi
 | 
|---|
 | 6513 | 
 | 
|---|
 | 6514 |         # Transform deplibs into only deplibs that can be linked in shared.
 | 
|---|
 | 6515 |         name_save=$name
 | 
|---|
 | 6516 |         libname_save=$libname
 | 
|---|
 | 6517 |         release_save=$release
 | 
|---|
 | 6518 |         versuffix_save=$versuffix
 | 
|---|
 | 6519 |         major_save=$major
 | 
|---|
 | 6520 |         # I'm not sure if I'm treating the release correctly.  I think
 | 
|---|
 | 6521 |         # release should show up in the -l (ie -lgmp5) so we don't want to
 | 
|---|
 | 6522 |         # add it in twice.  Is that correct?
 | 
|---|
 | 6523 |         release=""
 | 
|---|
 | 6524 |         versuffix=""
 | 
|---|
 | 6525 |         major=""
 | 
|---|
 | 6526 |         newdeplibs=
 | 
|---|
 | 6527 |         droppeddeps=no
 | 
|---|
 | 6528 |         case $deplibs_check_method in
 | 
|---|
 | 6529 |         pass_all)
 | 
|---|
 | 6530 |           # Don't check for shared/static.  Everything works.
 | 
|---|
 | 6531 |           # This might be a little naive.  We might want to check
 | 
|---|
 | 6532 |           # whether the library exists or not.  But this is on
 | 
|---|
 | 6533 |           # osf3 & osf4 and I'm not really sure... Just
 | 
|---|
 | 6534 |           # implementing what was already the behavior.
 | 
|---|
 | 6535 |           newdeplibs=$deplibs
 | 
|---|
 | 6536 |           ;;
 | 
|---|
 | 6537 |         test_compile)
 | 
|---|
 | 6538 |           # This code stresses the "libraries are programs" paradigm to its
 | 
|---|
 | 6539 |           # limits. Maybe even breaks it.  We compile a program, linking it
 | 
|---|
 | 6540 |           # against the deplibs as a proxy for the library.  Then we can check
 | 
|---|
 | 6541 |           # whether they linked in statically or dynamically with ldd.
 | 
|---|
 | 6542 |           $opt_dry_run || $RM conftest.c
 | 
|---|
 | 6543 |           cat > conftest.c <<EOF
 | 
|---|
 | 6544 |           int main() { return 0; }
 | 
|---|
 | 6545 | EOF
 | 
|---|
 | 6546 |           $opt_dry_run || $RM conftest
 | 
|---|
 | 6547 |           if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
 | 
|---|
 | 6548 |             ldd_output=`ldd conftest`
 | 
|---|
 | 6549 |             for i in $deplibs; do
 | 
|---|
 | 6550 |               case $i in
 | 
|---|
 | 6551 |               -l*)
 | 
|---|
 | 6552 |                 func_stripname -l '' "$i"
 | 
|---|
 | 6553 |                 name=$func_stripname_result
 | 
|---|
 | 6554 |                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 | 
|---|
 | 6555 |                   case " $predeps $postdeps " in
 | 
|---|
 | 6556 |                   *" $i "*)
 | 
|---|
 | 6557 |                     newdeplibs="$newdeplibs $i"
 | 
|---|
 | 6558 |                     i=""
 | 
|---|
 | 6559 |                     ;;
 | 
|---|
 | 6560 |                   esac
 | 
|---|
 | 6561 |                 fi
 | 
|---|
 | 6562 |                 if test -n "$i" ; then
 | 
|---|
 | 6563 |                   libname=`eval "\\$ECHO \"$libname_spec\""`
 | 
|---|
 | 6564 |                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 | 
|---|
 | 6565 |                   set dummy $deplib_matches; shift
 | 
|---|
 | 6566 |                   deplib_match=$1
 | 
|---|
 | 6567 |                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 | 
|---|
 | 6568 |                     newdeplibs="$newdeplibs $i"
 | 
|---|
 | 6569 |                   else
 | 
|---|
 | 6570 |                     droppeddeps=yes
 | 
|---|
 | 6571 |                     $ECHO
 | 
|---|
 | 6572 |                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 | 
|---|
 | 6573 |                     $ECHO "*** I have the capability to make that library automatically link in when"
 | 
|---|
 | 6574 |                     $ECHO "*** you link to this library.  But I can only do this if you have a"
 | 
|---|
 | 6575 |                     $ECHO "*** shared version of the library, which I believe you do not have"
 | 
|---|
 | 6576 |                     $ECHO "*** because a test_compile did reveal that the linker did not use it for"
 | 
|---|
 | 6577 |                     $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
 | 
|---|
 | 6578 |                   fi
 | 
|---|
 | 6579 |                 fi
 | 
|---|
 | 6580 |                 ;;
 | 
|---|
 | 6581 |               *)
 | 
|---|
 | 6582 |                 newdeplibs="$newdeplibs $i"
 | 
|---|
 | 6583 |                 ;;
 | 
|---|
 | 6584 |               esac
 | 
|---|
 | 6585 |             done
 | 
|---|
 | 6586 |           else
 | 
|---|
 | 6587 |             # Error occurred in the first compile.  Let's try to salvage
 | 
|---|
 | 6588 |             # the situation: Compile a separate program for each library.
 | 
|---|
 | 6589 |             for i in $deplibs; do
 | 
|---|
 | 6590 |               case $i in
 | 
|---|
 | 6591 |               -l*)
 | 
|---|
 | 6592 |                 func_stripname -l '' "$i"
 | 
|---|
 | 6593 |                 name=$func_stripname_result
 | 
|---|
 | 6594 |                 $opt_dry_run || $RM conftest
 | 
|---|
 | 6595 |                 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 | 
|---|
 | 6596 |                   ldd_output=`ldd conftest`
 | 
|---|
 | 6597 |                   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 | 
|---|
 | 6598 |                     case " $predeps $postdeps " in
 | 
|---|
 | 6599 |                     *" $i "*)
 | 
|---|
 | 6600 |                       newdeplibs="$newdeplibs $i"
 | 
|---|
 | 6601 |                       i=""
 | 
|---|
 | 6602 |                       ;;
 | 
|---|
 | 6603 |                     esac
 | 
|---|
 | 6604 |                   fi
 | 
|---|
 | 6605 |                   if test -n "$i" ; then
 | 
|---|
 | 6606 |                     libname=`eval "\\$ECHO \"$libname_spec\""`
 | 
|---|
 | 6607 |                     deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
 | 
|---|
 | 6608 |                     set dummy $deplib_matches; shift
 | 
|---|
 | 6609 |                     deplib_match=$1
 | 
|---|
 | 6610 |                     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 | 
|---|
 | 6611 |                       newdeplibs="$newdeplibs $i"
 | 
|---|
 | 6612 |                     else
 | 
|---|
 | 6613 |                       droppeddeps=yes
 | 
|---|
 | 6614 |                       $ECHO
 | 
|---|
 | 6615 |                       $ECHO "*** Warning: dynamic linker does not accept needed library $i."
 | 
|---|
 | 6616 |                       $ECHO "*** I have the capability to make that library automatically link in when"
 | 
|---|
 | 6617 |                       $ECHO "*** you link to this library.  But I can only do this if you have a"
 | 
|---|
 | 6618 |                       $ECHO "*** shared version of the library, which you do not appear to have"
 | 
|---|
 | 6619 |                       $ECHO "*** because a test_compile did reveal that the linker did not use this one"
 | 
|---|
 | 6620 |                       $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
 | 
|---|
 | 6621 |                     fi
 | 
|---|
 | 6622 |                   fi
 | 
|---|
 | 6623 |                 else
 | 
|---|
 | 6624 |                   droppeddeps=yes
 | 
|---|
 | 6625 |                   $ECHO
 | 
|---|
 | 6626 |                   $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
 | 
|---|
 | 6627 |                   $ECHO "*** make it link in!  You will probably need to install it or some"
 | 
|---|
 | 6628 |                   $ECHO "*** library that it depends on before this library will be fully"
 | 
|---|
 | 6629 |                   $ECHO "*** functional.  Installing it before continuing would be even better."
 | 
|---|
 | 6630 |                 fi
 | 
|---|
 | 6631 |                 ;;
 | 
|---|
 | 6632 |               *)
 | 
|---|
 | 6633 |                 newdeplibs="$newdeplibs $i"
 | 
|---|
 | 6634 |                 ;;
 | 
|---|
 | 6635 |               esac
 | 
|---|
 | 6636 |             done
 | 
|---|
 | 6637 |           fi
 | 
|---|
 | 6638 |           ;;
 | 
|---|
 | 6639 |         file_magic*)
 | 
|---|
 | 6640 |           set dummy $deplibs_check_method; shift
 | 
|---|
 | 6641 |           file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 | 
|---|
 | 6642 |           for a_deplib in $deplibs; do
 | 
|---|
 | 6643 |             case $a_deplib in
 | 
|---|
 | 6644 |             -l*)
 | 
|---|
 | 6645 |               func_stripname -l '' "$a_deplib"
 | 
|---|
 | 6646 |               name=$func_stripname_result
 | 
|---|
 | 6647 |               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 | 
|---|
 | 6648 |                 case " $predeps $postdeps " in
 | 
|---|
 | 6649 |                 *" $a_deplib "*)
 | 
|---|
 | 6650 |                   newdeplibs="$newdeplibs $a_deplib"
 | 
|---|
 | 6651 |                   a_deplib=""
 | 
|---|
 | 6652 |                   ;;
 | 
|---|
 | 6653 |                 esac
 | 
|---|
 | 6654 |               fi
 | 
|---|
 | 6655 |               if test -n "$a_deplib" ; then
 | 
|---|
 | 6656 |                 libname=`eval "\\$ECHO \"$libname_spec\""`
 | 
|---|
 | 6657 |                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 | 
|---|
 | 6658 |                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 | 
|---|
 | 6659 |                   for potent_lib in $potential_libs; do
 | 
|---|
 | 6660 |                       # Follow soft links.
 | 
|---|
 | 6661 |                       if ls -lLd "$potent_lib" 2>/dev/null |
 | 
|---|
 | 6662 |                          $GREP " -> " >/dev/null; then
 | 
|---|
 | 6663 |                         continue
 | 
|---|
 | 6664 |                       fi
 | 
|---|
 | 6665 |                       # The statement above tries to avoid entering an
 | 
|---|
 | 6666 |                       # endless loop below, in case of cyclic links.
 | 
|---|
 | 6667 |                       # We might still enter an endless loop, since a link
 | 
|---|
 | 6668 |                       # loop can be closed while we follow links,
 | 
|---|
 | 6669 |                       # but so what?
 | 
|---|
 | 6670 |                       potlib="$potent_lib"
 | 
|---|
 | 6671 |                       while test -h "$potlib" 2>/dev/null; do
 | 
|---|
 | 6672 |                         potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 | 
|---|
 | 6673 |                         case $potliblink in
 | 
|---|
 | 6674 |                         [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
 | 
|---|
 | 6675 |                         *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 | 
|---|
 | 6676 |                         esac
 | 
|---|
 | 6677 |                       done
 | 
|---|
 | 6678 |                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 | 
|---|
 | 6679 |                          $SED -e 10q |
 | 
|---|
 | 6680 |                          $EGREP "$file_magic_regex" > /dev/null; then
 | 
|---|
 | 6681 |                         newdeplibs="$newdeplibs $a_deplib"
 | 
|---|
 | 6682 |                         a_deplib=""
 | 
|---|
 | 6683 |                         break 2
 | 
|---|
 | 6684 |                       fi
 | 
|---|
 | 6685 |                   done
 | 
|---|
 | 6686 |                 done
 | 
|---|
 | 6687 |               fi
 | 
|---|
 | 6688 |               if test -n "$a_deplib" ; then
 | 
|---|
 | 6689 |                 droppeddeps=yes
 | 
|---|
 | 6690 |                 $ECHO
 | 
|---|
 | 6691 |                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 | 
|---|
 | 6692 |                 $ECHO "*** I have the capability to make that library automatically link in when"
 | 
|---|
 | 6693 |                 $ECHO "*** you link to this library.  But I can only do this if you have a"
 | 
|---|
 | 6694 |                 $ECHO "*** shared version of the library, which you do not appear to have"
 | 
|---|
 | 6695 |                 $ECHO "*** because I did check the linker path looking for a file starting"
 | 
|---|
 | 6696 |                 if test -z "$potlib" ; then
 | 
|---|
 | 6697 |                   $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 | 
|---|
 | 6698 |                 else
 | 
|---|
 | 6699 |                   $ECHO "*** with $libname and none of the candidates passed a file format test"
 | 
|---|
 | 6700 |                   $ECHO "*** using a file magic. Last file checked: $potlib"
 | 
|---|
 | 6701 |                 fi
 | 
|---|
 | 6702 |               fi
 | 
|---|
 | 6703 |               ;;
 | 
|---|
 | 6704 |             *)
 | 
|---|
 | 6705 |               # Add a -L argument.
 | 
|---|
 | 6706 |               newdeplibs="$newdeplibs $a_deplib"
 | 
|---|
 | 6707 |               ;;
 | 
|---|
 | 6708 |             esac
 | 
|---|
 | 6709 |           done # Gone through all deplibs.
 | 
|---|
 | 6710 |           ;;
 | 
|---|
 | 6711 |         match_pattern*)
 | 
|---|
 | 6712 |           set dummy $deplibs_check_method; shift
 | 
|---|
 | 6713 |           match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
 | 
|---|
 | 6714 |           for a_deplib in $deplibs; do
 | 
|---|
 | 6715 |             case $a_deplib in
 | 
|---|
 | 6716 |             -l*)
 | 
|---|
 | 6717 |               func_stripname -l '' "$a_deplib"
 | 
|---|
 | 6718 |               name=$func_stripname_result
 | 
|---|
 | 6719 |               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 | 
|---|
 | 6720 |                 case " $predeps $postdeps " in
 | 
|---|
 | 6721 |                 *" $a_deplib "*)
 | 
|---|
 | 6722 |                   newdeplibs="$newdeplibs $a_deplib"
 | 
|---|
 | 6723 |                   a_deplib=""
 | 
|---|
 | 6724 |                   ;;
 | 
|---|
 | 6725 |                 esac
 | 
|---|
 | 6726 |               fi
 | 
|---|
 | 6727 |               if test -n "$a_deplib" ; then
 | 
|---|
 | 6728 |                 libname=`eval "\\$ECHO \"$libname_spec\""`
 | 
|---|
 | 6729 |                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 | 
|---|
 | 6730 |                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 | 
|---|
 | 6731 |                   for potent_lib in $potential_libs; do
 | 
|---|
 | 6732 |                     potlib="$potent_lib" # see symlink-check above in file_magic test
 | 
|---|
 | 6733 |                     if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
 | 
|---|
 | 6734 |                        $EGREP "$match_pattern_regex" > /dev/null; then
 | 
|---|
 | 6735 |                       newdeplibs="$newdeplibs $a_deplib"
 | 
|---|
 | 6736 |                       a_deplib=""
 | 
|---|
 | 6737 |                       break 2
 | 
|---|
 | 6738 |                     fi
 | 
|---|
 | 6739 |                   done
 | 
|---|
 | 6740 |                 done
 | 
|---|
 | 6741 |               fi
 | 
|---|
 | 6742 |               if test -n "$a_deplib" ; then
 | 
|---|
 | 6743 |                 droppeddeps=yes
 | 
|---|
 | 6744 |                 $ECHO
 | 
|---|
 | 6745 |                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
 | 
|---|
 | 6746 |                 $ECHO "*** I have the capability to make that library automatically link in when"
 | 
|---|
 | 6747 |                 $ECHO "*** you link to this library.  But I can only do this if you have a"
 | 
|---|
 | 6748 |                 $ECHO "*** shared version of the library, which you do not appear to have"
 | 
|---|
 | 6749 |                 $ECHO "*** because I did check the linker path looking for a file starting"
 | 
|---|
 | 6750 |                 if test -z "$potlib" ; then
 | 
|---|
 | 6751 |                   $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 | 
|---|
 | 6752 |                 else
 | 
|---|
 | 6753 |                   $ECHO "*** with $libname and none of the candidates passed a file format test"
 | 
|---|
 | 6754 |                   $ECHO "*** using a regex pattern. Last file checked: $potlib"
 | 
|---|
 | 6755 |                 fi
 | 
|---|
 | 6756 |               fi
 | 
|---|
 | 6757 |               ;;
 | 
|---|
 | 6758 |             *)
 | 
|---|
 | 6759 |               # Add a -L argument.
 | 
|---|
 | 6760 |               newdeplibs="$newdeplibs $a_deplib"
 | 
|---|
 | 6761 |               ;;
 | 
|---|
 | 6762 |             esac
 | 
|---|
 | 6763 |           done # Gone through all deplibs.
 | 
|---|
 | 6764 |           ;;
 | 
|---|
 | 6765 |         none | unknown | *)
 | 
|---|
 | 6766 |           newdeplibs=""
 | 
|---|
 | 6767 |           tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
 | 
|---|
 | 6768 |               -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
 | 
|---|
 | 6769 |           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 | 
|---|
 | 6770 |             for i in $predeps $postdeps ; do
 | 
|---|
 | 6771 |               # can't use Xsed below, because $i might contain '/'
 | 
|---|
 | 6772 |               tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
 | 
|---|
 | 6773 |             done
 | 
|---|
 | 6774 |           fi
 | 
|---|
 | 6775 |           if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
 | 
|---|
 | 6776 |              $GREP . >/dev/null; then
 | 
|---|
 | 6777 |             $ECHO
 | 
|---|
 | 6778 |             if test "X$deplibs_check_method" = "Xnone"; then
 | 
|---|
 | 6779 |               $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
 | 
|---|
 | 6780 |             else
 | 
|---|
 | 6781 |               $ECHO "*** Warning: inter-library dependencies are not known to be supported."
 | 
|---|
 | 6782 |             fi
 | 
|---|
 | 6783 |             $ECHO "*** All declared inter-library dependencies are being dropped."
 | 
|---|
 | 6784 |             droppeddeps=yes
 | 
|---|
 | 6785 |           fi
 | 
|---|
 | 6786 |           ;;
 | 
|---|
 | 6787 |         esac
 | 
|---|
 | 6788 |         versuffix=$versuffix_save
 | 
|---|
 | 6789 |         major=$major_save
 | 
|---|
 | 6790 |         release=$release_save
 | 
|---|
 | 6791 |         libname=$libname_save
 | 
|---|
 | 6792 |         name=$name_save
 | 
|---|
 | 6793 | 
 | 
|---|
 | 6794 |         case $host in
 | 
|---|
 | 6795 |         *-*-rhapsody* | *-*-darwin1.[012])
 | 
|---|
 | 6796 |           # On Rhapsody replace the C library with the System framework
 | 
|---|
 | 6797 |           newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 | 
|---|
 | 6798 |           ;;
 | 
|---|
 | 6799 |         esac
 | 
|---|
 | 6800 | 
 | 
|---|
 | 6801 |         if test "$droppeddeps" = yes; then
 | 
|---|
 | 6802 |           if test "$module" = yes; then
 | 
|---|
 | 6803 |             $ECHO
 | 
|---|
 | 6804 |             $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
 | 
|---|
 | 6805 |             $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
 | 
|---|
 | 6806 |             $ECHO "*** a static module, that should work as long as the dlopening"
 | 
|---|
 | 6807 |             $ECHO "*** application is linked with the -dlopen flag."
 | 
|---|
 | 6808 |             if test -z "$global_symbol_pipe"; then
 | 
|---|
 | 6809 |               $ECHO
 | 
|---|
 | 6810 |               $ECHO "*** However, this would only work if libtool was able to extract symbol"
 | 
|---|
 | 6811 |               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
 | 
|---|
 | 6812 |               $ECHO "*** not find such a program.  So, this module is probably useless."
 | 
|---|
 | 6813 |               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 | 
|---|
 | 6814 |             fi
 | 
|---|
 | 6815 |             if test "$build_old_libs" = no; then
 | 
|---|
 | 6816 |               oldlibs="$output_objdir/$libname.$libext"
 | 
|---|
 | 6817 |               build_libtool_libs=module
 | 
|---|
 | 6818 |               build_old_libs=yes
 | 
|---|
 | 6819 |             else
 | 
|---|
 | 6820 |               build_libtool_libs=no
 | 
|---|
 | 6821 |             fi
 | 
|---|
 | 6822 |           else
 | 
|---|
 | 6823 |             $ECHO "*** The inter-library dependencies that have been dropped here will be"
 | 
|---|
 | 6824 |             $ECHO "*** automatically added whenever a program is linked with this library"
 | 
|---|
 | 6825 |             $ECHO "*** or is declared to -dlopen it."
 | 
|---|
 | 6826 | 
 | 
|---|
 | 6827 |             if test "$allow_undefined" = no; then
 | 
|---|
 | 6828 |               $ECHO
 | 
|---|
 | 6829 |               $ECHO "*** Since this library must not contain undefined symbols,"
 | 
|---|
 | 6830 |               $ECHO "*** because either the platform does not support them or"
 | 
|---|
 | 6831 |               $ECHO "*** it was explicitly requested with -no-undefined,"
 | 
|---|
 | 6832 |               $ECHO "*** libtool will only create a static version of it."
 | 
|---|
 | 6833 |               if test "$build_old_libs" = no; then
 | 
|---|
 | 6834 |                 oldlibs="$output_objdir/$libname.$libext"
 | 
|---|
 | 6835 |                 build_libtool_libs=module
 | 
|---|
 | 6836 |                 build_old_libs=yes
 | 
|---|
 | 6837 |               else
 | 
|---|
 | 6838 |                 build_libtool_libs=no
 | 
|---|
 | 6839 |               fi
 | 
|---|
 | 6840 |             fi
 | 
|---|
 | 6841 |           fi
 | 
|---|
 | 6842 |         fi
 | 
|---|
 | 6843 |         # Done checking deplibs!
 | 
|---|
 | 6844 |         deplibs=$newdeplibs
 | 
|---|
 | 6845 |       fi
 | 
|---|
 | 6846 |       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
 | 
|---|
 | 6847 |       case $host in
 | 
|---|
 | 6848 |         *-*-darwin*)
 | 
|---|
 | 6849 |           newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 6850 |           new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 6851 |           deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 6852 |           ;;
 | 
|---|
 | 6853 |       esac
 | 
|---|
 | 6854 | 
 | 
|---|
 | 6855 |       # move library search paths that coincide with paths to not yet
 | 
|---|
 | 6856 |       # installed libraries to the beginning of the library search list
 | 
|---|
 | 6857 |       new_libs=
 | 
|---|
 | 6858 |       for path in $notinst_path; do
 | 
|---|
 | 6859 |         case " $new_libs " in
 | 
|---|
 | 6860 |         *" -L$path/$objdir "*) ;;
 | 
|---|
 | 6861 |         *)
 | 
|---|
 | 6862 |           case " $deplibs " in
 | 
|---|
 | 6863 |           *" -L$path/$objdir "*)
 | 
|---|
 | 6864 |             new_libs="$new_libs -L$path/$objdir" ;;
 | 
|---|
 | 6865 |           esac
 | 
|---|
 | 6866 |           ;;
 | 
|---|
 | 6867 |         esac
 | 
|---|
 | 6868 |       done
 | 
|---|
 | 6869 |       for deplib in $deplibs; do
 | 
|---|
 | 6870 |         case $deplib in
 | 
|---|
 | 6871 |         -L*)
 | 
|---|
 | 6872 |           case " $new_libs " in
 | 
|---|
 | 6873 |           *" $deplib "*) ;;
 | 
|---|
 | 6874 |           *) new_libs="$new_libs $deplib" ;;
 | 
|---|
 | 6875 |           esac
 | 
|---|
 | 6876 |           ;;
 | 
|---|
 | 6877 |         *) new_libs="$new_libs $deplib" ;;
 | 
|---|
 | 6878 |         esac
 | 
|---|
 | 6879 |       done
 | 
|---|
 | 6880 |       deplibs="$new_libs"
 | 
|---|
 | 6881 | 
 | 
|---|
 | 6882 |       # All the library-specific variables (install_libdir is set above).
 | 
|---|
 | 6883 |       library_names=
 | 
|---|
 | 6884 |       old_library=
 | 
|---|
 | 6885 |       dlname=
 | 
|---|
 | 6886 | 
 | 
|---|
 | 6887 |       # Test again, we may have decided not to build it any more
 | 
|---|
 | 6888 |       if test "$build_libtool_libs" = yes; then
 | 
|---|
 | 6889 |         if test "$hardcode_into_libs" = yes; then
 | 
|---|
 | 6890 |           # Hardcode the library paths
 | 
|---|
 | 6891 |           hardcode_libdirs=
 | 
|---|
 | 6892 |           dep_rpath=
 | 
|---|
 | 6893 |           rpath="$finalize_rpath"
 | 
|---|
 | 6894 |           test "$mode" != relink && rpath="$compile_rpath$rpath"
 | 
|---|
 | 6895 |           for libdir in $rpath; do
 | 
|---|
 | 6896 |             if test -n "$hardcode_libdir_flag_spec"; then
 | 
|---|
 | 6897 |               if test -n "$hardcode_libdir_separator"; then
 | 
|---|
 | 6898 |                 if test -z "$hardcode_libdirs"; then
 | 
|---|
 | 6899 |                   hardcode_libdirs="$libdir"
 | 
|---|
 | 6900 |                 else
 | 
|---|
 | 6901 |                   # Just accumulate the unique libdirs.
 | 
|---|
 | 6902 |                   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 | 
|---|
 | 6903 |                   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 | 
|---|
 | 6904 |                     ;;
 | 
|---|
 | 6905 |                   *)
 | 
|---|
 | 6906 |                     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 | 
|---|
 | 6907 |                     ;;
 | 
|---|
 | 6908 |                   esac
 | 
|---|
 | 6909 |                 fi
 | 
|---|
 | 6910 |               else
 | 
|---|
 | 6911 |                 eval flag=\"$hardcode_libdir_flag_spec\"
 | 
|---|
 | 6912 |                 dep_rpath="$dep_rpath $flag"
 | 
|---|
 | 6913 |               fi
 | 
|---|
 | 6914 |             elif test -n "$runpath_var"; then
 | 
|---|
 | 6915 |               case "$perm_rpath " in
 | 
|---|
 | 6916 |               *" $libdir "*) ;;
 | 
|---|
 | 6917 |               *) perm_rpath="$perm_rpath $libdir" ;;
 | 
|---|
 | 6918 |               esac
 | 
|---|
 | 6919 |             fi
 | 
|---|
 | 6920 |           done
 | 
|---|
 | 6921 |           # Substitute the hardcoded libdirs into the rpath.
 | 
|---|
 | 6922 |           if test -n "$hardcode_libdir_separator" &&
 | 
|---|
 | 6923 |              test -n "$hardcode_libdirs"; then
 | 
|---|
 | 6924 |             libdir="$hardcode_libdirs"
 | 
|---|
 | 6925 |             if test -n "$hardcode_libdir_flag_spec_ld"; then
 | 
|---|
 | 6926 |               eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
 | 
|---|
 | 6927 |             else
 | 
|---|
 | 6928 |               eval dep_rpath=\"$hardcode_libdir_flag_spec\"
 | 
|---|
 | 6929 |             fi
 | 
|---|
 | 6930 |           fi
 | 
|---|
 | 6931 |           if test -n "$runpath_var" && test -n "$perm_rpath"; then
 | 
|---|
 | 6932 |             # We should set the runpath_var.
 | 
|---|
 | 6933 |             rpath=
 | 
|---|
 | 6934 |             for dir in $perm_rpath; do
 | 
|---|
 | 6935 |               rpath="$rpath$dir:"
 | 
|---|
 | 6936 |             done
 | 
|---|
 | 6937 |             eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 | 
|---|
 | 6938 |           fi
 | 
|---|
 | 6939 |           test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 | 
|---|
 | 6940 |         fi
 | 
|---|
 | 6941 | 
 | 
|---|
 | 6942 |         shlibpath="$finalize_shlibpath"
 | 
|---|
 | 6943 |         test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 | 
|---|
 | 6944 |         if test -n "$shlibpath"; then
 | 
|---|
 | 6945 |           eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 | 
|---|
 | 6946 |         fi
 | 
|---|
 | 6947 | 
 | 
|---|
 | 6948 |         # Get the real and link names of the library.
 | 
|---|
 | 6949 |         eval shared_ext=\"$shrext_cmds\"
 | 
|---|
 | 6950 |         eval library_names=\"$library_names_spec\"
 | 
|---|
 | 6951 |         set dummy $library_names
 | 
|---|
 | 6952 |         shift
 | 
|---|
 | 6953 |         realname="$1"
 | 
|---|
 | 6954 |         shift
 | 
|---|
 | 6955 | 
 | 
|---|
 | 6956 |         if test -n "$soname_spec"; then
 | 
|---|
 | 6957 |           eval soname=\"$soname_spec\"
 | 
|---|
 | 6958 |         else
 | 
|---|
 | 6959 |           soname="$realname"
 | 
|---|
 | 6960 |         fi
 | 
|---|
 | 6961 |         if test -z "$dlname"; then
 | 
|---|
 | 6962 |           dlname=$soname
 | 
|---|
 | 6963 |         fi
 | 
|---|
 | 6964 | 
 | 
|---|
 | 6965 |         lib="$output_objdir/$realname"
 | 
|---|
 | 6966 |         linknames=
 | 
|---|
 | 6967 |         for link
 | 
|---|
 | 6968 |         do
 | 
|---|
 | 6969 |           linknames="$linknames $link"
 | 
|---|
 | 6970 |         done
 | 
|---|
 | 6971 | 
 | 
|---|
 | 6972 |         # Use standard objects if they are pic
 | 
|---|
 | 6973 |         test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 | 
|---|
 | 6974 |         test "X$libobjs" = "X " && libobjs=
 | 
|---|
 | 6975 | 
 | 
|---|
 | 6976 |         delfiles=
 | 
|---|
 | 6977 |         if test -n "$export_symbols" && test -n "$include_expsyms"; then
 | 
|---|
 | 6978 |           $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
 | 
|---|
 | 6979 |           export_symbols="$output_objdir/$libname.uexp"
 | 
|---|
 | 6980 |           delfiles="$delfiles $export_symbols"
 | 
|---|
 | 6981 |         fi
 | 
|---|
 | 6982 | 
 | 
|---|
 | 6983 |         orig_export_symbols=
 | 
|---|
 | 6984 |         case $host_os in
 | 
|---|
 | 6985 |         cygwin* | mingw* | cegcc*)
 | 
|---|
 | 6986 |           if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
 | 
|---|
 | 6987 |             # exporting using user supplied symfile
 | 
|---|
 | 6988 |             if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
 | 
|---|
 | 6989 |               # and it's NOT already a .def file. Must figure out
 | 
|---|
 | 6990 |               # which of the given symbols are data symbols and tag
 | 
|---|
 | 6991 |               # them as such. So, trigger use of export_symbols_cmds.
 | 
|---|
 | 6992 |               # export_symbols gets reassigned inside the "prepare
 | 
|---|
 | 6993 |               # the list of exported symbols" if statement, so the
 | 
|---|
 | 6994 |               # include_expsyms logic still works.
 | 
|---|
 | 6995 |               orig_export_symbols="$export_symbols"
 | 
|---|
 | 6996 |               export_symbols=
 | 
|---|
 | 6997 |               always_export_symbols=yes
 | 
|---|
 | 6998 |             fi
 | 
|---|
 | 6999 |           fi
 | 
|---|
 | 7000 |           ;;
 | 
|---|
 | 7001 |         esac
 | 
|---|
 | 7002 | 
 | 
|---|
 | 7003 |         # Prepare the list of exported symbols
 | 
|---|
 | 7004 |         if test -z "$export_symbols"; then
 | 
|---|
 | 7005 |           if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
 | 
|---|
 | 7006 |             func_verbose "generating symbol list for \`$libname.la'"
 | 
|---|
 | 7007 |             export_symbols="$output_objdir/$libname.exp"
 | 
|---|
 | 7008 |             $opt_dry_run || $RM $export_symbols
 | 
|---|
 | 7009 |             cmds=$export_symbols_cmds
 | 
|---|
 | 7010 |             save_ifs="$IFS"; IFS='~'
 | 
|---|
 | 7011 |             for cmd in $cmds; do
 | 
|---|
 | 7012 |               IFS="$save_ifs"
 | 
|---|
 | 7013 |               eval cmd=\"$cmd\"
 | 
|---|
 | 7014 |               func_len " $cmd"
 | 
|---|
 | 7015 |               len=$func_len_result
 | 
|---|
 | 7016 |               if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 | 
|---|
 | 7017 |                 func_show_eval "$cmd" 'exit $?'
 | 
|---|
 | 7018 |                 skipped_export=false
 | 
|---|
 | 7019 |               else
 | 
|---|
 | 7020 |                 # The command line is too long to execute in one step.
 | 
|---|
 | 7021 |                 func_verbose "using reloadable object file for export list..."
 | 
|---|
 | 7022 |                 skipped_export=:
 | 
|---|
 | 7023 |                 # Break out early, otherwise skipped_export may be
 | 
|---|
 | 7024 |                 # set to false by a later but shorter cmd.
 | 
|---|
 | 7025 |                 break
 | 
|---|
 | 7026 |               fi
 | 
|---|
 | 7027 |             done
 | 
|---|
 | 7028 |             IFS="$save_ifs"
 | 
|---|
 | 7029 |             if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
 | 
|---|
 | 7030 |               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 | 
|---|
 | 7031 |               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 | 
|---|
 | 7032 |             fi
 | 
|---|
 | 7033 |           fi
 | 
|---|
 | 7034 |         fi
 | 
|---|
 | 7035 | 
 | 
|---|
 | 7036 |         if test -n "$export_symbols" && test -n "$include_expsyms"; then
 | 
|---|
 | 7037 |           tmp_export_symbols="$export_symbols"
 | 
|---|
 | 7038 |           test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 | 
|---|
 | 7039 |           $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 | 
|---|
 | 7040 |         fi
 | 
|---|
 | 7041 | 
 | 
|---|
 | 7042 |         if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
 | 
|---|
 | 7043 |           # The given exports_symbols file has to be filtered, so filter it.
 | 
|---|
 | 7044 |           func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
 | 
|---|
 | 7045 |           # FIXME: $output_objdir/$libname.filter potentially contains lots of
 | 
|---|
 | 7046 |           # 's' commands which not all seds can handle. GNU sed should be fine
 | 
|---|
 | 7047 |           # though. Also, the filter scales superlinearly with the number of
 | 
|---|
 | 7048 |           # global variables. join(1) would be nice here, but unfortunately
 | 
|---|
 | 7049 |           # isn't a blessed tool.
 | 
|---|
 | 7050 |           $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 | 
|---|
 | 7051 |           delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 | 
|---|
 | 7052 |           export_symbols=$output_objdir/$libname.def
 | 
|---|
 | 7053 |           $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 | 
|---|
 | 7054 |         fi
 | 
|---|
 | 7055 | 
 | 
|---|
 | 7056 |         tmp_deplibs=
 | 
|---|
 | 7057 |         for test_deplib in $deplibs; do
 | 
|---|
 | 7058 |           case " $convenience " in
 | 
|---|
 | 7059 |           *" $test_deplib "*) ;;
 | 
|---|
 | 7060 |           *)
 | 
|---|
 | 7061 |             tmp_deplibs="$tmp_deplibs $test_deplib"
 | 
|---|
 | 7062 |             ;;
 | 
|---|
 | 7063 |           esac
 | 
|---|
 | 7064 |         done
 | 
|---|
 | 7065 |         deplibs="$tmp_deplibs"
 | 
|---|
 | 7066 | 
 | 
|---|
 | 7067 |         if test -n "$convenience"; then
 | 
|---|
 | 7068 |           if test -n "$whole_archive_flag_spec" &&
 | 
|---|
 | 7069 |             test "$compiler_needs_object" = yes &&
 | 
|---|
 | 7070 |             test -z "$libobjs"; then
 | 
|---|
 | 7071 |             # extract the archives, so we have objects to list.
 | 
|---|
 | 7072 |             # TODO: could optimize this to just extract one archive.
 | 
|---|
 | 7073 |             whole_archive_flag_spec=
 | 
|---|
 | 7074 |           fi
 | 
|---|
 | 7075 |           if test -n "$whole_archive_flag_spec"; then
 | 
|---|
 | 7076 |             save_libobjs=$libobjs
 | 
|---|
 | 7077 |             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 | 
|---|
 | 7078 |             test "X$libobjs" = "X " && libobjs=
 | 
|---|
 | 7079 |           else
 | 
|---|
 | 7080 |             gentop="$output_objdir/${outputname}x"
 | 
|---|
 | 7081 |             generated="$generated $gentop"
 | 
|---|
 | 7082 | 
 | 
|---|
 | 7083 |             func_extract_archives $gentop $convenience
 | 
|---|
 | 7084 |             libobjs="$libobjs $func_extract_archives_result"
 | 
|---|
 | 7085 |             test "X$libobjs" = "X " && libobjs=
 | 
|---|
 | 7086 |           fi
 | 
|---|
 | 7087 |         fi
 | 
|---|
 | 7088 | 
 | 
|---|
 | 7089 |         if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 | 
|---|
 | 7090 |           eval flag=\"$thread_safe_flag_spec\"
 | 
|---|
 | 7091 |           linker_flags="$linker_flags $flag"
 | 
|---|
 | 7092 |         fi
 | 
|---|
 | 7093 | 
 | 
|---|
 | 7094 |         # Make a backup of the uninstalled library when relinking
 | 
|---|
 | 7095 |         if test "$mode" = relink; then
 | 
|---|
 | 7096 |           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 | 
|---|
 | 7097 |         fi
 | 
|---|
 | 7098 | 
 | 
|---|
 | 7099 |         # Do each of the archive commands.
 | 
|---|
 | 7100 |         if test "$module" = yes && test -n "$module_cmds" ; then
 | 
|---|
 | 7101 |           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 | 
|---|
 | 7102 |             eval test_cmds=\"$module_expsym_cmds\"
 | 
|---|
 | 7103 |             cmds=$module_expsym_cmds
 | 
|---|
 | 7104 |           else
 | 
|---|
 | 7105 |             eval test_cmds=\"$module_cmds\"
 | 
|---|
 | 7106 |             cmds=$module_cmds
 | 
|---|
 | 7107 |           fi
 | 
|---|
 | 7108 |         else
 | 
|---|
 | 7109 |           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 | 
|---|
 | 7110 |             eval test_cmds=\"$archive_expsym_cmds\"
 | 
|---|
 | 7111 |             cmds=$archive_expsym_cmds
 | 
|---|
 | 7112 |           else
 | 
|---|
 | 7113 |             eval test_cmds=\"$archive_cmds\"
 | 
|---|
 | 7114 |             cmds=$archive_cmds
 | 
|---|
 | 7115 |           fi
 | 
|---|
 | 7116 |         fi
 | 
|---|
 | 7117 | 
 | 
|---|
 | 7118 |         if test "X$skipped_export" != "X:" &&
 | 
|---|
 | 7119 |            func_len " $test_cmds" &&
 | 
|---|
 | 7120 |            len=$func_len_result &&
 | 
|---|
 | 7121 |            test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 | 
|---|
 | 7122 |           :
 | 
|---|
 | 7123 |         else
 | 
|---|
 | 7124 |           # The command line is too long to link in one step, link piecewise
 | 
|---|
 | 7125 |           # or, if using GNU ld and skipped_export is not :, use a linker
 | 
|---|
 | 7126 |           # script.
 | 
|---|
 | 7127 | 
 | 
|---|
 | 7128 |           # Save the value of $output and $libobjs because we want to
 | 
|---|
 | 7129 |           # use them later.  If we have whole_archive_flag_spec, we
 | 
|---|
 | 7130 |           # want to use save_libobjs as it was before
 | 
|---|
 | 7131 |           # whole_archive_flag_spec was expanded, because we can't
 | 
|---|
 | 7132 |           # assume the linker understands whole_archive_flag_spec.
 | 
|---|
 | 7133 |           # This may have to be revisited, in case too many
 | 
|---|
 | 7134 |           # convenience libraries get linked in and end up exceeding
 | 
|---|
 | 7135 |           # the spec.
 | 
|---|
 | 7136 |           if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
 | 
|---|
 | 7137 |             save_libobjs=$libobjs
 | 
|---|
 | 7138 |           fi
 | 
|---|
 | 7139 |           save_output=$output
 | 
|---|
 | 7140 |           output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 | 
|---|
 | 7141 | 
 | 
|---|
 | 7142 |           # Clear the reloadable object creation command queue and
 | 
|---|
 | 7143 |           # initialize k to one.
 | 
|---|
 | 7144 |           test_cmds=
 | 
|---|
 | 7145 |           concat_cmds=
 | 
|---|
 | 7146 |           objlist=
 | 
|---|
 | 7147 |           last_robj=
 | 
|---|
 | 7148 |           k=1
 | 
|---|
 | 7149 | 
 | 
|---|
 | 7150 |           if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
 | 
|---|
 | 7151 |             output=${output_objdir}/${output_la}.lnkscript
 | 
|---|
 | 7152 |             func_verbose "creating GNU ld script: $output"
 | 
|---|
 | 7153 |             $ECHO 'INPUT (' > $output
 | 
|---|
 | 7154 |             for obj in $save_libobjs
 | 
|---|
 | 7155 |             do
 | 
|---|
 | 7156 |               $ECHO "$obj" >> $output
 | 
|---|
 | 7157 |             done
 | 
|---|
 | 7158 |             $ECHO ')' >> $output
 | 
|---|
 | 7159 |             delfiles="$delfiles $output"
 | 
|---|
 | 7160 |           elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
 | 
|---|
 | 7161 |             output=${output_objdir}/${output_la}.lnk
 | 
|---|
 | 7162 |             func_verbose "creating linker input file list: $output"
 | 
|---|
 | 7163 |             : > $output
 | 
|---|
 | 7164 |             set x $save_libobjs
 | 
|---|
 | 7165 |             shift
 | 
|---|
 | 7166 |             firstobj=
 | 
|---|
 | 7167 |             if test "$compiler_needs_object" = yes; then
 | 
|---|
 | 7168 |               firstobj="$1 "
 | 
|---|
 | 7169 |               shift
 | 
|---|
 | 7170 |             fi
 | 
|---|
 | 7171 |             for obj
 | 
|---|
 | 7172 |             do
 | 
|---|
 | 7173 |               $ECHO "$obj" >> $output
 | 
|---|
 | 7174 |             done
 | 
|---|
 | 7175 |             delfiles="$delfiles $output"
 | 
|---|
 | 7176 |             output=$firstobj\"$file_list_spec$output\"
 | 
|---|
 | 7177 |           else
 | 
|---|
 | 7178 |             if test -n "$save_libobjs"; then
 | 
|---|
 | 7179 |               func_verbose "creating reloadable object files..."
 | 
|---|
 | 7180 |               output=$output_objdir/$output_la-${k}.$objext
 | 
|---|
 | 7181 |               eval test_cmds=\"$reload_cmds\"
 | 
|---|
 | 7182 |               func_len " $test_cmds"
 | 
|---|
 | 7183 |               len0=$func_len_result
 | 
|---|
 | 7184 |               len=$len0
 | 
|---|
 | 7185 | 
 | 
|---|
 | 7186 |               # Loop over the list of objects to be linked.
 | 
|---|
 | 7187 |               for obj in $save_libobjs
 | 
|---|
 | 7188 |               do
 | 
|---|
 | 7189 |                 func_len " $obj"
 | 
|---|
 | 7190 |                 func_arith $len + $func_len_result
 | 
|---|
 | 7191 |                 len=$func_arith_result
 | 
|---|
 | 7192 |                 if test "X$objlist" = X ||
 | 
|---|
 | 7193 |                    test "$len" -lt "$max_cmd_len"; then
 | 
|---|
 | 7194 |                   func_append objlist " $obj"
 | 
|---|
 | 7195 |                 else
 | 
|---|
 | 7196 |                   # The command $test_cmds is almost too long, add a
 | 
|---|
 | 7197 |                   # command to the queue.
 | 
|---|
 | 7198 |                   if test "$k" -eq 1 ; then
 | 
|---|
 | 7199 |                     # The first file doesn't have a previous command to add.
 | 
|---|
 | 7200 |                     eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 | 
|---|
 | 7201 |                   else
 | 
|---|
 | 7202 |                     # All subsequent reloadable object files will link in
 | 
|---|
 | 7203 |                     # the last one created.
 | 
|---|
 | 7204 |                     eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
 | 
|---|
 | 7205 |                   fi
 | 
|---|
 | 7206 |                   last_robj=$output_objdir/$output_la-${k}.$objext
 | 
|---|
 | 7207 |                   func_arith $k + 1
 | 
|---|
 | 7208 |                   k=$func_arith_result
 | 
|---|
 | 7209 |                   output=$output_objdir/$output_la-${k}.$objext
 | 
|---|
 | 7210 |                   objlist=$obj
 | 
|---|
 | 7211 |                   func_len " $last_robj"
 | 
|---|
 | 7212 |                   func_arith $len0 + $func_len_result
 | 
|---|
 | 7213 |                   len=$func_arith_result
 | 
|---|
 | 7214 |                 fi
 | 
|---|
 | 7215 |               done
 | 
|---|
 | 7216 |               # Handle the remaining objects by creating one last
 | 
|---|
 | 7217 |               # reloadable object file.  All subsequent reloadable object
 | 
|---|
 | 7218 |               # files will link in the last one created.
 | 
|---|
 | 7219 |               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 | 
|---|
 | 7220 |               eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 | 
|---|
 | 7221 |               if test -n "$last_robj"; then
 | 
|---|
 | 7222 |                 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
 | 
|---|
 | 7223 |               fi
 | 
|---|
 | 7224 |               delfiles="$delfiles $output"
 | 
|---|
 | 7225 | 
 | 
|---|
 | 7226 |             else
 | 
|---|
 | 7227 |               output=
 | 
|---|
 | 7228 |             fi
 | 
|---|
 | 7229 | 
 | 
|---|
 | 7230 |             if ${skipped_export-false}; then
 | 
|---|
 | 7231 |               func_verbose "generating symbol list for \`$libname.la'"
 | 
|---|
 | 7232 |               export_symbols="$output_objdir/$libname.exp"
 | 
|---|
 | 7233 |               $opt_dry_run || $RM $export_symbols
 | 
|---|
 | 7234 |               libobjs=$output
 | 
|---|
 | 7235 |               # Append the command to create the export file.
 | 
|---|
 | 7236 |               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 | 
|---|
 | 7237 |               eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
 | 
|---|
 | 7238 |               if test -n "$last_robj"; then
 | 
|---|
 | 7239 |                 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
 | 
|---|
 | 7240 |               fi
 | 
|---|
 | 7241 |             fi
 | 
|---|
 | 7242 | 
 | 
|---|
 | 7243 |             test -n "$save_libobjs" &&
 | 
|---|
 | 7244 |               func_verbose "creating a temporary reloadable object file: $output"
 | 
|---|
 | 7245 | 
 | 
|---|
 | 7246 |             # Loop through the commands generated above and execute them.
 | 
|---|
 | 7247 |             save_ifs="$IFS"; IFS='~'
 | 
|---|
 | 7248 |             for cmd in $concat_cmds; do
 | 
|---|
 | 7249 |               IFS="$save_ifs"
 | 
|---|
 | 7250 |               $opt_silent || {
 | 
|---|
 | 7251 |                   func_quote_for_expand "$cmd"
 | 
|---|
 | 7252 |                   eval "func_echo $func_quote_for_expand_result"
 | 
|---|
 | 7253 |               }
 | 
|---|
 | 7254 |               $opt_dry_run || eval "$cmd" || {
 | 
|---|
 | 7255 |                 lt_exit=$?
 | 
|---|
 | 7256 | 
 | 
|---|
 | 7257 |                 # Restore the uninstalled library and exit
 | 
|---|
 | 7258 |                 if test "$mode" = relink; then
 | 
|---|
 | 7259 |                   ( cd "$output_objdir" && \
 | 
|---|
 | 7260 |                     $RM "${realname}T" && \
 | 
|---|
 | 7261 |                     $MV "${realname}U" "$realname" )
 | 
|---|
 | 7262 |                 fi
 | 
|---|
 | 7263 | 
 | 
|---|
 | 7264 |                 exit $lt_exit
 | 
|---|
 | 7265 |               }
 | 
|---|
 | 7266 |             done
 | 
|---|
 | 7267 |             IFS="$save_ifs"
 | 
|---|
 | 7268 | 
 | 
|---|
 | 7269 |             if test -n "$export_symbols_regex" && ${skipped_export-false}; then
 | 
|---|
 | 7270 |               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 | 
|---|
 | 7271 |               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
 | 
|---|
 | 7272 |             fi
 | 
|---|
 | 7273 |           fi
 | 
|---|
 | 7274 | 
 | 
|---|
 | 7275 |           if ${skipped_export-false}; then
 | 
|---|
 | 7276 |             if test -n "$export_symbols" && test -n "$include_expsyms"; then
 | 
|---|
 | 7277 |               tmp_export_symbols="$export_symbols"
 | 
|---|
 | 7278 |               test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
 | 
|---|
 | 7279 |               $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 | 
|---|
 | 7280 |             fi
 | 
|---|
 | 7281 | 
 | 
|---|
 | 7282 |             if test -n "$orig_export_symbols"; then
 | 
|---|
 | 7283 |               # The given exports_symbols file has to be filtered, so filter it.
 | 
|---|
 | 7284 |               func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
 | 
|---|
 | 7285 |               # FIXME: $output_objdir/$libname.filter potentially contains lots of
 | 
|---|
 | 7286 |               # 's' commands which not all seds can handle. GNU sed should be fine
 | 
|---|
 | 7287 |               # though. Also, the filter scales superlinearly with the number of
 | 
|---|
 | 7288 |               # global variables. join(1) would be nice here, but unfortunately
 | 
|---|
 | 7289 |               # isn't a blessed tool.
 | 
|---|
 | 7290 |               $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
 | 
|---|
 | 7291 |               delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 | 
|---|
 | 7292 |               export_symbols=$output_objdir/$libname.def
 | 
|---|
 | 7293 |               $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 | 
|---|
 | 7294 |             fi
 | 
|---|
 | 7295 |           fi
 | 
|---|
 | 7296 | 
 | 
|---|
 | 7297 |           libobjs=$output
 | 
|---|
 | 7298 |           # Restore the value of output.
 | 
|---|
 | 7299 |           output=$save_output
 | 
|---|
 | 7300 | 
 | 
|---|
 | 7301 |           if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
 | 
|---|
 | 7302 |             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 | 
|---|
 | 7303 |             test "X$libobjs" = "X " && libobjs=
 | 
|---|
 | 7304 |           fi
 | 
|---|
 | 7305 |           # Expand the library linking commands again to reset the
 | 
|---|
 | 7306 |           # value of $libobjs for piecewise linking.
 | 
|---|
 | 7307 | 
 | 
|---|
 | 7308 |           # Do each of the archive commands.
 | 
|---|
 | 7309 |           if test "$module" = yes && test -n "$module_cmds" ; then
 | 
|---|
 | 7310 |             if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 | 
|---|
 | 7311 |               cmds=$module_expsym_cmds
 | 
|---|
 | 7312 |             else
 | 
|---|
 | 7313 |               cmds=$module_cmds
 | 
|---|
 | 7314 |             fi
 | 
|---|
 | 7315 |           else
 | 
|---|
 | 7316 |             if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 | 
|---|
 | 7317 |               cmds=$archive_expsym_cmds
 | 
|---|
 | 7318 |             else
 | 
|---|
 | 7319 |               cmds=$archive_cmds
 | 
|---|
 | 7320 |             fi
 | 
|---|
 | 7321 |           fi
 | 
|---|
 | 7322 |         fi
 | 
|---|
 | 7323 | 
 | 
|---|
 | 7324 |         if test -n "$delfiles"; then
 | 
|---|
 | 7325 |           # Append the command to remove temporary files to $cmds.
 | 
|---|
 | 7326 |           eval cmds=\"\$cmds~\$RM $delfiles\"
 | 
|---|
 | 7327 |         fi
 | 
|---|
 | 7328 | 
 | 
|---|
 | 7329 |         # Add any objects from preloaded convenience libraries
 | 
|---|
 | 7330 |         if test -n "$dlprefiles"; then
 | 
|---|
 | 7331 |           gentop="$output_objdir/${outputname}x"
 | 
|---|
 | 7332 |           generated="$generated $gentop"
 | 
|---|
 | 7333 | 
 | 
|---|
 | 7334 |           func_extract_archives $gentop $dlprefiles
 | 
|---|
 | 7335 |           libobjs="$libobjs $func_extract_archives_result"
 | 
|---|
 | 7336 |           test "X$libobjs" = "X " && libobjs=
 | 
|---|
 | 7337 |         fi
 | 
|---|
 | 7338 | 
 | 
|---|
 | 7339 |         save_ifs="$IFS"; IFS='~'
 | 
|---|
 | 7340 |         for cmd in $cmds; do
 | 
|---|
 | 7341 |           IFS="$save_ifs"
 | 
|---|
 | 7342 |           eval cmd=\"$cmd\"
 | 
|---|
 | 7343 |           $opt_silent || {
 | 
|---|
 | 7344 |             func_quote_for_expand "$cmd"
 | 
|---|
 | 7345 |             eval "func_echo $func_quote_for_expand_result"
 | 
|---|
 | 7346 |           }
 | 
|---|
 | 7347 |           $opt_dry_run || eval "$cmd" || {
 | 
|---|
 | 7348 |             lt_exit=$?
 | 
|---|
 | 7349 | 
 | 
|---|
 | 7350 |             # Restore the uninstalled library and exit
 | 
|---|
 | 7351 |             if test "$mode" = relink; then
 | 
|---|
 | 7352 |               ( cd "$output_objdir" && \
 | 
|---|
 | 7353 |                 $RM "${realname}T" && \
 | 
|---|
 | 7354 |                 $MV "${realname}U" "$realname" )
 | 
|---|
 | 7355 |             fi
 | 
|---|
 | 7356 | 
 | 
|---|
 | 7357 |             exit $lt_exit
 | 
|---|
 | 7358 |           }
 | 
|---|
 | 7359 |         done
 | 
|---|
 | 7360 |         IFS="$save_ifs"
 | 
|---|
 | 7361 | 
 | 
|---|
 | 7362 |         # Restore the uninstalled library and exit
 | 
|---|
 | 7363 |         if test "$mode" = relink; then
 | 
|---|
 | 7364 |           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 | 
|---|
 | 7365 | 
 | 
|---|
 | 7366 |           if test -n "$convenience"; then
 | 
|---|
 | 7367 |             if test -z "$whole_archive_flag_spec"; then
 | 
|---|
 | 7368 |               func_show_eval '${RM}r "$gentop"'
 | 
|---|
 | 7369 |             fi
 | 
|---|
 | 7370 |           fi
 | 
|---|
 | 7371 | 
 | 
|---|
 | 7372 |           exit $EXIT_SUCCESS
 | 
|---|
 | 7373 |         fi
 | 
|---|
 | 7374 | 
 | 
|---|
 | 7375 |         # Create links to the real library.
 | 
|---|
 | 7376 |         for linkname in $linknames; do
 | 
|---|
 | 7377 |           if test "$realname" != "$linkname"; then
 | 
|---|
 | 7378 |             func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
 | 
|---|
 | 7379 |           fi
 | 
|---|
 | 7380 |         done
 | 
|---|
 | 7381 | 
 | 
|---|
 | 7382 |         # If -module or -export-dynamic was specified, set the dlname.
 | 
|---|
 | 7383 |         if test "$module" = yes || test "$export_dynamic" = yes; then
 | 
|---|
 | 7384 |           # On all known operating systems, these are identical.
 | 
|---|
 | 7385 |           dlname="$soname"
 | 
|---|
 | 7386 |         fi
 | 
|---|
 | 7387 |       fi
 | 
|---|
 | 7388 |       ;;
 | 
|---|
 | 7389 | 
 | 
|---|
 | 7390 |     obj)
 | 
|---|
 | 7391 |       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 | 
|---|
 | 7392 |         func_warning "\`-dlopen' is ignored for objects"
 | 
|---|
 | 7393 |       fi
 | 
|---|
 | 7394 | 
 | 
|---|
 | 7395 |       case " $deplibs" in
 | 
|---|
 | 7396 |       *\ -l* | *\ -L*)
 | 
|---|
 | 7397 |         func_warning "\`-l' and \`-L' are ignored for objects" ;;
 | 
|---|
 | 7398 |       esac
 | 
|---|
 | 7399 | 
 | 
|---|
 | 7400 |       test -n "$rpath" && \
 | 
|---|
 | 7401 |         func_warning "\`-rpath' is ignored for objects"
 | 
|---|
 | 7402 | 
 | 
|---|
 | 7403 |       test -n "$xrpath" && \
 | 
|---|
 | 7404 |         func_warning "\`-R' is ignored for objects"
 | 
|---|
 | 7405 | 
 | 
|---|
 | 7406 |       test -n "$vinfo" && \
 | 
|---|
 | 7407 |         func_warning "\`-version-info' is ignored for objects"
 | 
|---|
 | 7408 | 
 | 
|---|
 | 7409 |       test -n "$release" && \
 | 
|---|
 | 7410 |         func_warning "\`-release' is ignored for objects"
 | 
|---|
 | 7411 | 
 | 
|---|
 | 7412 |       case $output in
 | 
|---|
 | 7413 |       *.lo)
 | 
|---|
 | 7414 |         test -n "$objs$old_deplibs" && \
 | 
|---|
 | 7415 |           func_fatal_error "cannot build library object \`$output' from non-libtool objects"
 | 
|---|
 | 7416 | 
 | 
|---|
 | 7417 |         libobj=$output
 | 
|---|
 | 7418 |         func_lo2o "$libobj"
 | 
|---|
 | 7419 |         obj=$func_lo2o_result
 | 
|---|
 | 7420 |         ;;
 | 
|---|
 | 7421 |       *)
 | 
|---|
 | 7422 |         libobj=
 | 
|---|
 | 7423 |         obj="$output"
 | 
|---|
 | 7424 |         ;;
 | 
|---|
 | 7425 |       esac
 | 
|---|
 | 7426 | 
 | 
|---|
 | 7427 |       # Delete the old objects.
 | 
|---|
 | 7428 |       $opt_dry_run || $RM $obj $libobj
 | 
|---|
 | 7429 | 
 | 
|---|
 | 7430 |       # Objects from convenience libraries.  This assumes
 | 
|---|
 | 7431 |       # single-version convenience libraries.  Whenever we create
 | 
|---|
 | 7432 |       # different ones for PIC/non-PIC, this we'll have to duplicate
 | 
|---|
 | 7433 |       # the extraction.
 | 
|---|
 | 7434 |       reload_conv_objs=
 | 
|---|
 | 7435 |       gentop=
 | 
|---|
 | 7436 |       # reload_cmds runs $LD directly, so let us get rid of
 | 
|---|
 | 7437 |       # -Wl from whole_archive_flag_spec and hope we can get by with
 | 
|---|
 | 7438 |       # turning comma into space..
 | 
|---|
 | 7439 |       wl=
 | 
|---|
 | 7440 | 
 | 
|---|
 | 7441 |       if test -n "$convenience"; then
 | 
|---|
 | 7442 |         if test -n "$whole_archive_flag_spec"; then
 | 
|---|
 | 7443 |           eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
 | 
|---|
 | 7444 |           reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 | 
|---|
 | 7445 |         else
 | 
|---|
 | 7446 |           gentop="$output_objdir/${obj}x"
 | 
|---|
 | 7447 |           generated="$generated $gentop"
 | 
|---|
 | 7448 | 
 | 
|---|
 | 7449 |           func_extract_archives $gentop $convenience
 | 
|---|
 | 7450 |           reload_conv_objs="$reload_objs $func_extract_archives_result"
 | 
|---|
 | 7451 |         fi
 | 
|---|
 | 7452 |       fi
 | 
|---|
 | 7453 | 
 | 
|---|
 | 7454 |       # Create the old-style object.
 | 
|---|
 | 7455 |       reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 | 
|---|
 | 7456 | 
 | 
|---|
 | 7457 |       output="$obj"
 | 
|---|
 | 7458 |       func_execute_cmds "$reload_cmds" 'exit $?'
 | 
|---|
 | 7459 | 
 | 
|---|
 | 7460 |       # Exit if we aren't doing a library object file.
 | 
|---|
 | 7461 |       if test -z "$libobj"; then
 | 
|---|
 | 7462 |         if test -n "$gentop"; then
 | 
|---|
 | 7463 |           func_show_eval '${RM}r "$gentop"'
 | 
|---|
 | 7464 |         fi
 | 
|---|
 | 7465 | 
 | 
|---|
 | 7466 |         exit $EXIT_SUCCESS
 | 
|---|
 | 7467 |       fi
 | 
|---|
 | 7468 | 
 | 
|---|
 | 7469 |       if test "$build_libtool_libs" != yes; then
 | 
|---|
 | 7470 |         if test -n "$gentop"; then
 | 
|---|
 | 7471 |           func_show_eval '${RM}r "$gentop"'
 | 
|---|
 | 7472 |         fi
 | 
|---|
 | 7473 | 
 | 
|---|
 | 7474 |         # Create an invalid libtool object if no PIC, so that we don't
 | 
|---|
 | 7475 |         # accidentally link it into a program.
 | 
|---|
 | 7476 |         # $show "echo timestamp > $libobj"
 | 
|---|
 | 7477 |         # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
 | 
|---|
 | 7478 |         exit $EXIT_SUCCESS
 | 
|---|
 | 7479 |       fi
 | 
|---|
 | 7480 | 
 | 
|---|
 | 7481 |       if test -n "$pic_flag" || test "$pic_mode" != default; then
 | 
|---|
 | 7482 |         # Only do commands if we really have different PIC objects.
 | 
|---|
 | 7483 |         reload_objs="$libobjs $reload_conv_objs"
 | 
|---|
 | 7484 |         output="$libobj"
 | 
|---|
 | 7485 |         func_execute_cmds "$reload_cmds" 'exit $?'
 | 
|---|
 | 7486 |       fi
 | 
|---|
 | 7487 | 
 | 
|---|
 | 7488 |       if test -n "$gentop"; then
 | 
|---|
 | 7489 |         func_show_eval '${RM}r "$gentop"'
 | 
|---|
 | 7490 |       fi
 | 
|---|
 | 7491 | 
 | 
|---|
 | 7492 |       exit $EXIT_SUCCESS
 | 
|---|
 | 7493 |       ;;
 | 
|---|
 | 7494 | 
 | 
|---|
 | 7495 |     prog)
 | 
|---|
 | 7496 |       case $host in
 | 
|---|
 | 7497 |         *cygwin*) func_stripname '' '.exe' "$output"
 | 
|---|
 | 7498 |                   output=$func_stripname_result.exe;;
 | 
|---|
 | 7499 |       esac
 | 
|---|
 | 7500 |       test -n "$vinfo" && \
 | 
|---|
 | 7501 |         func_warning "\`-version-info' is ignored for programs"
 | 
|---|
 | 7502 | 
 | 
|---|
 | 7503 |       test -n "$release" && \
 | 
|---|
 | 7504 |         func_warning "\`-release' is ignored for programs"
 | 
|---|
 | 7505 | 
 | 
|---|
 | 7506 |       test "$preload" = yes \
 | 
|---|
 | 7507 |         && test "$dlopen_support" = unknown \
 | 
|---|
 | 7508 |         && test "$dlopen_self" = unknown \
 | 
|---|
 | 7509 |         && test "$dlopen_self_static" = unknown && \
 | 
|---|
 | 7510 |           func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
 | 
|---|
 | 7511 | 
 | 
|---|
 | 7512 |       case $host in
 | 
|---|
 | 7513 |       *-*-rhapsody* | *-*-darwin1.[012])
 | 
|---|
 | 7514 |         # On Rhapsody replace the C library is the System framework
 | 
|---|
 | 7515 |         compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 | 
|---|
 | 7516 |         finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 | 
|---|
 | 7517 |         ;;
 | 
|---|
 | 7518 |       esac
 | 
|---|
 | 7519 | 
 | 
|---|
 | 7520 |       case $host in
 | 
|---|
 | 7521 |       *-*-darwin*)
 | 
|---|
 | 7522 |         # Don't allow lazy linking, it breaks C++ global constructors
 | 
|---|
 | 7523 |         # But is supposedly fixed on 10.4 or later (yay!).
 | 
|---|
 | 7524 |         if test "$tagname" = CXX ; then
 | 
|---|
 | 7525 |           case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 | 
|---|
 | 7526 |             10.[0123])
 | 
|---|
 | 7527 |               compile_command="$compile_command ${wl}-bind_at_load"
 | 
|---|
 | 7528 |               finalize_command="$finalize_command ${wl}-bind_at_load"
 | 
|---|
 | 7529 |             ;;
 | 
|---|
 | 7530 |           esac
 | 
|---|
 | 7531 |         fi
 | 
|---|
 | 7532 |         # Time to change all our "foo.ltframework" stuff back to "-framework foo"
 | 
|---|
 | 7533 |         compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 7534 |         finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 | 
|---|
 | 7535 |         ;;
 | 
|---|
 | 7536 |       esac
 | 
|---|
 | 7537 | 
 | 
|---|
 | 7538 | 
 | 
|---|
 | 7539 |       # move library search paths that coincide with paths to not yet
 | 
|---|
 | 7540 |       # installed libraries to the beginning of the library search list
 | 
|---|
 | 7541 |       new_libs=
 | 
|---|
 | 7542 |       for path in $notinst_path; do
 | 
|---|
 | 7543 |         case " $new_libs " in
 | 
|---|
 | 7544 |         *" -L$path/$objdir "*) ;;
 | 
|---|
 | 7545 |         *)
 | 
|---|
 | 7546 |           case " $compile_deplibs " in
 | 
|---|
 | 7547 |           *" -L$path/$objdir "*)
 | 
|---|
 | 7548 |             new_libs="$new_libs -L$path/$objdir" ;;
 | 
|---|
 | 7549 |           esac
 | 
|---|
 | 7550 |           ;;
 | 
|---|
 | 7551 |         esac
 | 
|---|
 | 7552 |       done
 | 
|---|
 | 7553 |       for deplib in $compile_deplibs; do
 | 
|---|
 | 7554 |         case $deplib in
 | 
|---|
 | 7555 |         -L*)
 | 
|---|
 | 7556 |           case " $new_libs " in
 | 
|---|
 | 7557 |           *" $deplib "*) ;;
 | 
|---|
 | 7558 |           *) new_libs="$new_libs $deplib" ;;
 | 
|---|
 | 7559 |           esac
 | 
|---|
 | 7560 |           ;;
 | 
|---|
 | 7561 |         *) new_libs="$new_libs $deplib" ;;
 | 
|---|
 | 7562 |         esac
 | 
|---|
 | 7563 |       done
 | 
|---|
 | 7564 |       compile_deplibs="$new_libs"
 | 
|---|
 | 7565 | 
 | 
|---|
 | 7566 | 
 | 
|---|
 | 7567 |       compile_command="$compile_command $compile_deplibs"
 | 
|---|
 | 7568 |       finalize_command="$finalize_command $finalize_deplibs"
 | 
|---|
 | 7569 | 
 | 
|---|
 | 7570 |       if test -n "$rpath$xrpath"; then
 | 
|---|
 | 7571 |         # If the user specified any rpath flags, then add them.
 | 
|---|
 | 7572 |         for libdir in $rpath $xrpath; do
 | 
|---|
 | 7573 |           # This is the magic to use -rpath.
 | 
|---|
 | 7574 |           case "$finalize_rpath " in
 | 
|---|
 | 7575 |           *" $libdir "*) ;;
 | 
|---|
 | 7576 |           *) finalize_rpath="$finalize_rpath $libdir" ;;
 | 
|---|
 | 7577 |           esac
 | 
|---|
 | 7578 |         done
 | 
|---|
 | 7579 |       fi
 | 
|---|
 | 7580 | 
 | 
|---|
 | 7581 |       # Now hardcode the library paths
 | 
|---|
 | 7582 |       rpath=
 | 
|---|
 | 7583 |       hardcode_libdirs=
 | 
|---|
 | 7584 |       for libdir in $compile_rpath $finalize_rpath; do
 | 
|---|
 | 7585 |         if test -n "$hardcode_libdir_flag_spec"; then
 | 
|---|
 | 7586 |           if test -n "$hardcode_libdir_separator"; then
 | 
|---|
 | 7587 |             if test -z "$hardcode_libdirs"; then
 | 
|---|
 | 7588 |               hardcode_libdirs="$libdir"
 | 
|---|
 | 7589 |             else
 | 
|---|
 | 7590 |               # Just accumulate the unique libdirs.
 | 
|---|
 | 7591 |               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 | 
|---|
 | 7592 |               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 | 
|---|
 | 7593 |                 ;;
 | 
|---|
 | 7594 |               *)
 | 
|---|
 | 7595 |                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 | 
|---|
 | 7596 |                 ;;
 | 
|---|
 | 7597 |               esac
 | 
|---|
 | 7598 |             fi
 | 
|---|
 | 7599 |           else
 | 
|---|
 | 7600 |             eval flag=\"$hardcode_libdir_flag_spec\"
 | 
|---|
 | 7601 |             rpath="$rpath $flag"
 | 
|---|
 | 7602 |           fi
 | 
|---|
 | 7603 |         elif test -n "$runpath_var"; then
 | 
|---|
 | 7604 |           case "$perm_rpath " in
 | 
|---|
 | 7605 |           *" $libdir "*) ;;
 | 
|---|
 | 7606 |           *) perm_rpath="$perm_rpath $libdir" ;;
 | 
|---|
 | 7607 |           esac
 | 
|---|
 | 7608 |         fi
 | 
|---|
 | 7609 |         case $host in
 | 
|---|
 | 7610 |         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 | 
|---|
 | 7611 |           testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
 | 
|---|
 | 7612 |           case :$dllsearchpath: in
 | 
|---|
 | 7613 |           *":$libdir:"*) ;;
 | 
|---|
 | 7614 |           ::) dllsearchpath=$libdir;;
 | 
|---|
 | 7615 |           *) dllsearchpath="$dllsearchpath:$libdir";;
 | 
|---|
 | 7616 |           esac
 | 
|---|
 | 7617 |           case :$dllsearchpath: in
 | 
|---|
 | 7618 |           *":$testbindir:"*) ;;
 | 
|---|
 | 7619 |           ::) dllsearchpath=$testbindir;;
 | 
|---|
 | 7620 |           *) dllsearchpath="$dllsearchpath:$testbindir";;
 | 
|---|
 | 7621 |           esac
 | 
|---|
 | 7622 |           ;;
 | 
|---|
 | 7623 |         esac
 | 
|---|
 | 7624 |       done
 | 
|---|
 | 7625 |       # Substitute the hardcoded libdirs into the rpath.
 | 
|---|
 | 7626 |       if test -n "$hardcode_libdir_separator" &&
 | 
|---|
 | 7627 |          test -n "$hardcode_libdirs"; then
 | 
|---|
 | 7628 |         libdir="$hardcode_libdirs"
 | 
|---|
 | 7629 |         eval rpath=\" $hardcode_libdir_flag_spec\"
 | 
|---|
 | 7630 |       fi
 | 
|---|
 | 7631 |       compile_rpath="$rpath"
 | 
|---|
 | 7632 | 
 | 
|---|
 | 7633 |       rpath=
 | 
|---|
 | 7634 |       hardcode_libdirs=
 | 
|---|
 | 7635 |       for libdir in $finalize_rpath; do
 | 
|---|
 | 7636 |         if test -n "$hardcode_libdir_flag_spec"; then
 | 
|---|
 | 7637 |           if test -n "$hardcode_libdir_separator"; then
 | 
|---|
 | 7638 |             if test -z "$hardcode_libdirs"; then
 | 
|---|
 | 7639 |               hardcode_libdirs="$libdir"
 | 
|---|
 | 7640 |             else
 | 
|---|
 | 7641 |               # Just accumulate the unique libdirs.
 | 
|---|
 | 7642 |               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 | 
|---|
 | 7643 |               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 | 
|---|
 | 7644 |                 ;;
 | 
|---|
 | 7645 |               *)
 | 
|---|
 | 7646 |                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 | 
|---|
 | 7647 |                 ;;
 | 
|---|
 | 7648 |               esac
 | 
|---|
 | 7649 |             fi
 | 
|---|
 | 7650 |           else
 | 
|---|
 | 7651 |             eval flag=\"$hardcode_libdir_flag_spec\"
 | 
|---|
 | 7652 |             rpath="$rpath $flag"
 | 
|---|
 | 7653 |           fi
 | 
|---|
 | 7654 |         elif test -n "$runpath_var"; then
 | 
|---|
 | 7655 |           case "$finalize_perm_rpath " in
 | 
|---|
 | 7656 |           *" $libdir "*) ;;
 | 
|---|
 | 7657 |           *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 | 
|---|
 | 7658 |           esac
 | 
|---|
 | 7659 |         fi
 | 
|---|
 | 7660 |       done
 | 
|---|
 | 7661 |       # Substitute the hardcoded libdirs into the rpath.
 | 
|---|
 | 7662 |       if test -n "$hardcode_libdir_separator" &&
 | 
|---|
 | 7663 |          test -n "$hardcode_libdirs"; then
 | 
|---|
 | 7664 |         libdir="$hardcode_libdirs"
 | 
|---|
 | 7665 |         eval rpath=\" $hardcode_libdir_flag_spec\"
 | 
|---|
 | 7666 |       fi
 | 
|---|
 | 7667 |       finalize_rpath="$rpath"
 | 
|---|
 | 7668 | 
 | 
|---|
 | 7669 |       if test -n "$libobjs" && test "$build_old_libs" = yes; then
 | 
|---|
 | 7670 |         # Transform all the library objects into standard objects.
 | 
|---|
 | 7671 |         compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 | 
|---|
 | 7672 |         finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 | 
|---|
 | 7673 |       fi
 | 
|---|
 | 7674 | 
 | 
|---|
 | 7675 |       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
 | 
|---|
 | 7676 | 
 | 
|---|
 | 7677 |       # template prelinking step
 | 
|---|
 | 7678 |       if test -n "$prelink_cmds"; then
 | 
|---|
 | 7679 |         func_execute_cmds "$prelink_cmds" 'exit $?'
 | 
|---|
 | 7680 |       fi
 | 
|---|
 | 7681 | 
 | 
|---|
 | 7682 |       wrappers_required=yes
 | 
|---|
 | 7683 |       case $host in
 | 
|---|
 | 7684 |       *cygwin* | *mingw* )
 | 
|---|
 | 7685 |         if test "$build_libtool_libs" != yes; then
 | 
|---|
 | 7686 |           wrappers_required=no
 | 
|---|
 | 7687 |         fi
 | 
|---|
 | 7688 |         ;;
 | 
|---|
 | 7689 |       *cegcc)
 | 
|---|
 | 7690 |         # Disable wrappers for cegcc, we are cross compiling anyway.
 | 
|---|
 | 7691 |         wrappers_required=no
 | 
|---|
 | 7692 |         ;;
 | 
|---|
 | 7693 |       *)
 | 
|---|
 | 7694 |         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 | 
|---|
 | 7695 |           wrappers_required=no
 | 
|---|
 | 7696 |         fi
 | 
|---|
 | 7697 |         ;;
 | 
|---|
 | 7698 |       esac
 | 
|---|
 | 7699 |       if test "$wrappers_required" = no; then
 | 
|---|
 | 7700 |         # Replace the output file specification.
 | 
|---|
 | 7701 |         compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 | 
|---|
 | 7702 |         link_command="$compile_command$compile_rpath"
 | 
|---|
 | 7703 | 
 | 
|---|
 | 7704 |         # We have no uninstalled library dependencies, so finalize right now.
 | 
|---|
 | 7705 |         exit_status=0
 | 
|---|
 | 7706 |         func_show_eval "$link_command" 'exit_status=$?'
 | 
|---|
 | 7707 | 
 | 
|---|
 | 7708 |         # Delete the generated files.
 | 
|---|
 | 7709 |         if test -f "$output_objdir/${outputname}S.${objext}"; then
 | 
|---|
 | 7710 |           func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
 | 
|---|
 | 7711 |         fi
 | 
|---|
 | 7712 | 
 | 
|---|
 | 7713 |         exit $exit_status
 | 
|---|
 | 7714 |       fi
 | 
|---|
 | 7715 | 
 | 
|---|
 | 7716 |       if test -n "$compile_shlibpath$finalize_shlibpath"; then
 | 
|---|
 | 7717 |         compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
 | 
|---|
 | 7718 |       fi
 | 
|---|
 | 7719 |       if test -n "$finalize_shlibpath"; then
 | 
|---|
 | 7720 |         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
 | 
|---|
 | 7721 |       fi
 | 
|---|
 | 7722 | 
 | 
|---|
 | 7723 |       compile_var=
 | 
|---|
 | 7724 |       finalize_var=
 | 
|---|
 | 7725 |       if test -n "$runpath_var"; then
 | 
|---|
 | 7726 |         if test -n "$perm_rpath"; then
 | 
|---|
 | 7727 |           # We should set the runpath_var.
 | 
|---|
 | 7728 |           rpath=
 | 
|---|
 | 7729 |           for dir in $perm_rpath; do
 | 
|---|
 | 7730 |             rpath="$rpath$dir:"
 | 
|---|
 | 7731 |           done
 | 
|---|
 | 7732 |           compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 | 
|---|
 | 7733 |         fi
 | 
|---|
 | 7734 |         if test -n "$finalize_perm_rpath"; then
 | 
|---|
 | 7735 |           # We should set the runpath_var.
 | 
|---|
 | 7736 |           rpath=
 | 
|---|
 | 7737 |           for dir in $finalize_perm_rpath; do
 | 
|---|
 | 7738 |             rpath="$rpath$dir:"
 | 
|---|
 | 7739 |           done
 | 
|---|
 | 7740 |           finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 | 
|---|
 | 7741 |         fi
 | 
|---|
 | 7742 |       fi
 | 
|---|
 | 7743 | 
 | 
|---|
 | 7744 |       if test "$no_install" = yes; then
 | 
|---|
 | 7745 |         # We don't need to create a wrapper script.
 | 
|---|
 | 7746 |         link_command="$compile_var$compile_command$compile_rpath"
 | 
|---|
 | 7747 |         # Replace the output file specification.
 | 
|---|
 | 7748 |         link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 | 
|---|
 | 7749 |         # Delete the old output file.
 | 
|---|
 | 7750 |         $opt_dry_run || $RM $output
 | 
|---|
 | 7751 |         # Link the executable and exit
 | 
|---|
 | 7752 |         func_show_eval "$link_command" 'exit $?'
 | 
|---|
 | 7753 |         exit $EXIT_SUCCESS
 | 
|---|
 | 7754 |       fi
 | 
|---|
 | 7755 | 
 | 
|---|
 | 7756 |       if test "$hardcode_action" = relink; then
 | 
|---|
 | 7757 |         # Fast installation is not supported
 | 
|---|
 | 7758 |         link_command="$compile_var$compile_command$compile_rpath"
 | 
|---|
 | 7759 |         relink_command="$finalize_var$finalize_command$finalize_rpath"
 | 
|---|
 | 7760 | 
 | 
|---|
 | 7761 |         func_warning "this platform does not like uninstalled shared libraries"
 | 
|---|
 | 7762 |         func_warning "\`$output' will be relinked during installation"
 | 
|---|
 | 7763 |       else
 | 
|---|
 | 7764 |         if test "$fast_install" != no; then
 | 
|---|
 | 7765 |           link_command="$finalize_var$compile_command$finalize_rpath"
 | 
|---|
 | 7766 |           if test "$fast_install" = yes; then
 | 
|---|
 | 7767 |             relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
 | 
|---|
 | 7768 |           else
 | 
|---|
 | 7769 |             # fast_install is set to needless
 | 
|---|
 | 7770 |             relink_command=
 | 
|---|
 | 7771 |           fi
 | 
|---|
 | 7772 |         else
 | 
|---|
 | 7773 |           link_command="$compile_var$compile_command$compile_rpath"
 | 
|---|
 | 7774 |           relink_command="$finalize_var$finalize_command$finalize_rpath"
 | 
|---|
 | 7775 |         fi
 | 
|---|
 | 7776 |       fi
 | 
|---|
 | 7777 | 
 | 
|---|
 | 7778 |       # Replace the output file specification.
 | 
|---|
 | 7779 |       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 | 
|---|
 | 7780 | 
 | 
|---|
 | 7781 |       # Delete the old output files.
 | 
|---|
 | 7782 |       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 | 
|---|
 | 7783 | 
 | 
|---|
 | 7784 |       func_show_eval "$link_command" 'exit $?'
 | 
|---|
 | 7785 | 
 | 
|---|
 | 7786 |       # Now create the wrapper script.
 | 
|---|
 | 7787 |       func_verbose "creating $output"
 | 
|---|
 | 7788 | 
 | 
|---|
 | 7789 |       # Quote the relink command for shipping.
 | 
|---|
 | 7790 |       if test -n "$relink_command"; then
 | 
|---|
 | 7791 |         # Preserve any variables that may affect compiler behavior
 | 
|---|
 | 7792 |         for var in $variables_saved_for_relink; do
 | 
|---|
 | 7793 |           if eval test -z \"\${$var+set}\"; then
 | 
|---|
 | 7794 |             relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 | 
|---|
 | 7795 |           elif eval var_value=\$$var; test -z "$var_value"; then
 | 
|---|
 | 7796 |             relink_command="$var=; export $var; $relink_command"
 | 
|---|
 | 7797 |           else
 | 
|---|
 | 7798 |             func_quote_for_eval "$var_value"
 | 
|---|
 | 7799 |             relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 | 
|---|
 | 7800 |           fi
 | 
|---|
 | 7801 |         done
 | 
|---|
 | 7802 |         relink_command="(cd `pwd`; $relink_command)"
 | 
|---|
 | 7803 |         relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 | 
|---|
 | 7804 |       fi
 | 
|---|
 | 7805 | 
 | 
|---|
 | 7806 |       # Quote $ECHO for shipping.
 | 
|---|
 | 7807 |       if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
 | 
|---|
 | 7808 |         case $progpath in
 | 
|---|
 | 7809 |         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
 | 
|---|
 | 7810 |         *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
 | 
|---|
 | 7811 |         esac
 | 
|---|
 | 7812 |         qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
 | 
|---|
 | 7813 |       else
 | 
|---|
 | 7814 |         qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
 | 
|---|
 | 7815 |       fi
 | 
|---|
 | 7816 | 
 | 
|---|
 | 7817 |       # Only actually do things if not in dry run mode.
 | 
|---|
 | 7818 |       $opt_dry_run || {
 | 
|---|
 | 7819 |         # win32 will think the script is a binary if it has
 | 
|---|
 | 7820 |         # a .exe suffix, so we strip it off here.
 | 
|---|
 | 7821 |         case $output in
 | 
|---|
 | 7822 |           *.exe) func_stripname '' '.exe' "$output"
 | 
|---|
 | 7823 |                  output=$func_stripname_result ;;
 | 
|---|
 | 7824 |         esac
 | 
|---|
 | 7825 |         # test for cygwin because mv fails w/o .exe extensions
 | 
|---|
 | 7826 |         case $host in
 | 
|---|
 | 7827 |           *cygwin*)
 | 
|---|
 | 7828 |             exeext=.exe
 | 
|---|
 | 7829 |             func_stripname '' '.exe' "$outputname"
 | 
|---|
 | 7830 |             outputname=$func_stripname_result ;;
 | 
|---|
 | 7831 |           *) exeext= ;;
 | 
|---|
 | 7832 |         esac
 | 
|---|
 | 7833 |         case $host in
 | 
|---|
 | 7834 |           *cygwin* | *mingw* )
 | 
|---|
 | 7835 |             func_dirname_and_basename "$output" "" "."
 | 
|---|
 | 7836 |             output_name=$func_basename_result
 | 
|---|
 | 7837 |             output_path=$func_dirname_result
 | 
|---|
 | 7838 |             cwrappersource="$output_path/$objdir/lt-$output_name.c"
 | 
|---|
 | 7839 |             cwrapper="$output_path/$output_name.exe"
 | 
|---|
 | 7840 |             $RM $cwrappersource $cwrapper
 | 
|---|
 | 7841 |             trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 | 
|---|
 | 7842 | 
 | 
|---|
 | 7843 |             func_emit_cwrapperexe_src > $cwrappersource
 | 
|---|
 | 7844 | 
 | 
|---|
 | 7845 |             # The wrapper executable is built using the $host compiler,
 | 
|---|
 | 7846 |             # because it contains $host paths and files. If cross-
 | 
|---|
 | 7847 |             # compiling, it, like the target executable, must be
 | 
|---|
 | 7848 |             # executed on the $host or under an emulation environment.
 | 
|---|
 | 7849 |             $opt_dry_run || {
 | 
|---|
 | 7850 |               $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
 | 
|---|
 | 7851 |               $STRIP $cwrapper
 | 
|---|
 | 7852 |             }
 | 
|---|
 | 7853 | 
 | 
|---|
 | 7854 |             # Now, create the wrapper script for func_source use:
 | 
|---|
 | 7855 |             func_ltwrapper_scriptname $cwrapper
 | 
|---|
 | 7856 |             $RM $func_ltwrapper_scriptname_result
 | 
|---|
 | 7857 |             trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
 | 
|---|
 | 7858 |             $opt_dry_run || {
 | 
|---|
 | 7859 |               # note: this script will not be executed, so do not chmod.
 | 
|---|
 | 7860 |               if test "x$build" = "x$host" ; then
 | 
|---|
 | 7861 |                 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
 | 
|---|
 | 7862 |               else
 | 
|---|
 | 7863 |                 func_emit_wrapper no > $func_ltwrapper_scriptname_result
 | 
|---|
 | 7864 |               fi
 | 
|---|
 | 7865 |             }
 | 
|---|
 | 7866 |           ;;
 | 
|---|
 | 7867 |           * )
 | 
|---|
 | 7868 |             $RM $output
 | 
|---|
 | 7869 |             trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
 | 
|---|
 | 7870 | 
 | 
|---|
 | 7871 |             func_emit_wrapper no > $output
 | 
|---|
 | 7872 |             chmod +x $output
 | 
|---|
 | 7873 |           ;;
 | 
|---|
 | 7874 |         esac
 | 
|---|
 | 7875 |       }
 | 
|---|
 | 7876 |       exit $EXIT_SUCCESS
 | 
|---|
 | 7877 |       ;;
 | 
|---|
 | 7878 |     esac
 | 
|---|
 | 7879 | 
 | 
|---|
 | 7880 |     # See if we need to build an old-fashioned archive.
 | 
|---|
 | 7881 |     for oldlib in $oldlibs; do
 | 
|---|
 | 7882 | 
 | 
|---|
 | 7883 |       if test "$build_libtool_libs" = convenience; then
 | 
|---|
 | 7884 |         oldobjs="$libobjs_save $symfileobj"
 | 
|---|
 | 7885 |         addlibs="$convenience"
 | 
|---|
 | 7886 |         build_libtool_libs=no
 | 
|---|
 | 7887 |       else
 | 
|---|
 | 7888 |         if test "$build_libtool_libs" = module; then
 | 
|---|
 | 7889 |           oldobjs="$libobjs_save"
 | 
|---|
 | 7890 |           build_libtool_libs=no
 | 
|---|
 | 7891 |         else
 | 
|---|
 | 7892 |           oldobjs="$old_deplibs $non_pic_objects"
 | 
|---|
 | 7893 |           if test "$preload" = yes && test -f "$symfileobj"; then
 | 
|---|
 | 7894 |             oldobjs="$oldobjs $symfileobj"
 | 
|---|
 | 7895 |           fi
 | 
|---|
 | 7896 |         fi
 | 
|---|
 | 7897 |         addlibs="$old_convenience"
 | 
|---|
 | 7898 |       fi
 | 
|---|
 | 7899 | 
 | 
|---|
 | 7900 |       if test -n "$addlibs"; then
 | 
|---|
 | 7901 |         gentop="$output_objdir/${outputname}x"
 | 
|---|
 | 7902 |         generated="$generated $gentop"
 | 
|---|
 | 7903 | 
 | 
|---|
 | 7904 |         func_extract_archives $gentop $addlibs
 | 
|---|
 | 7905 |         oldobjs="$oldobjs $func_extract_archives_result"
 | 
|---|
 | 7906 |       fi
 | 
|---|
 | 7907 | 
 | 
|---|
 | 7908 |       # Do each command in the archive commands.
 | 
|---|
 | 7909 |       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
 | 
|---|
 | 7910 |         cmds=$old_archive_from_new_cmds
 | 
|---|
 | 7911 |       else
 | 
|---|
 | 7912 | 
 | 
|---|
 | 7913 |         # Add any objects from preloaded convenience libraries
 | 
|---|
 | 7914 |         if test -n "$dlprefiles"; then
 | 
|---|
 | 7915 |           gentop="$output_objdir/${outputname}x"
 | 
|---|
 | 7916 |           generated="$generated $gentop"
 | 
|---|
 | 7917 | 
 | 
|---|
 | 7918 |           func_extract_archives $gentop $dlprefiles
 | 
|---|
 | 7919 |           oldobjs="$oldobjs $func_extract_archives_result"
 | 
|---|
 | 7920 |         fi
 | 
|---|
 | 7921 | 
 | 
|---|
 | 7922 |         # POSIX demands no paths to be encoded in archives.  We have
 | 
|---|
 | 7923 |         # to avoid creating archives with duplicate basenames if we
 | 
|---|
 | 7924 |         # might have to extract them afterwards, e.g., when creating a
 | 
|---|
 | 7925 |         # static archive out of a convenience library, or when linking
 | 
|---|
 | 7926 |         # the entirety of a libtool archive into another (currently
 | 
|---|
 | 7927 |         # not supported by libtool).
 | 
|---|
 | 7928 |         if (for obj in $oldobjs
 | 
|---|
 | 7929 |             do
 | 
|---|
 | 7930 |               func_basename "$obj"
 | 
|---|
 | 7931 |               $ECHO "$func_basename_result"
 | 
|---|
 | 7932 |             done | sort | sort -uc >/dev/null 2>&1); then
 | 
|---|
 | 7933 |           :
 | 
|---|
 | 7934 |         else
 | 
|---|
 | 7935 |           $ECHO "copying selected object files to avoid basename conflicts..."
 | 
|---|
 | 7936 |           gentop="$output_objdir/${outputname}x"
 | 
|---|
 | 7937 |           generated="$generated $gentop"
 | 
|---|
 | 7938 |           func_mkdir_p "$gentop"
 | 
|---|
 | 7939 |           save_oldobjs=$oldobjs
 | 
|---|
 | 7940 |           oldobjs=
 | 
|---|
 | 7941 |           counter=1
 | 
|---|
 | 7942 |           for obj in $save_oldobjs
 | 
|---|
 | 7943 |           do
 | 
|---|
 | 7944 |             func_basename "$obj"
 | 
|---|
 | 7945 |             objbase="$func_basename_result"
 | 
|---|
 | 7946 |             case " $oldobjs " in
 | 
|---|
 | 7947 |             " ") oldobjs=$obj ;;
 | 
|---|
 | 7948 |             *[\ /]"$objbase "*)
 | 
|---|
 | 7949 |               while :; do
 | 
|---|
 | 7950 |                 # Make sure we don't pick an alternate name that also
 | 
|---|
 | 7951 |                 # overlaps.
 | 
|---|
 | 7952 |                 newobj=lt$counter-$objbase
 | 
|---|
 | 7953 |                 func_arith $counter + 1
 | 
|---|
 | 7954 |                 counter=$func_arith_result
 | 
|---|
 | 7955 |                 case " $oldobjs " in
 | 
|---|
 | 7956 |                 *[\ /]"$newobj "*) ;;
 | 
|---|
 | 7957 |                 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
 | 
|---|
 | 7958 |                 esac
 | 
|---|
 | 7959 |               done
 | 
|---|
 | 7960 |               func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
 | 
|---|
 | 7961 |               oldobjs="$oldobjs $gentop/$newobj"
 | 
|---|
 | 7962 |               ;;
 | 
|---|
 | 7963 |             *) oldobjs="$oldobjs $obj" ;;
 | 
|---|
 | 7964 |             esac
 | 
|---|
 | 7965 |           done
 | 
|---|
 | 7966 |         fi
 | 
|---|
 | 7967 |         eval cmds=\"$old_archive_cmds\"
 | 
|---|
 | 7968 | 
 | 
|---|
 | 7969 |         func_len " $cmds"
 | 
|---|
 | 7970 |         len=$func_len_result
 | 
|---|
 | 7971 |         if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 | 
|---|
 | 7972 |           cmds=$old_archive_cmds
 | 
|---|
 | 7973 |         else
 | 
|---|
 | 7974 |           # the command line is too long to link in one step, link in parts
 | 
|---|
 | 7975 |           func_verbose "using piecewise archive linking..."
 | 
|---|
 | 7976 |           save_RANLIB=$RANLIB
 | 
|---|
 | 7977 |           RANLIB=:
 | 
|---|
 | 7978 |           objlist=
 | 
|---|
 | 7979 |           concat_cmds=
 | 
|---|
 | 7980 |           save_oldobjs=$oldobjs
 | 
|---|
 | 7981 |           oldobjs=
 | 
|---|
 | 7982 |           # Is there a better way of finding the last object in the list?
 | 
|---|
 | 7983 |           for obj in $save_oldobjs
 | 
|---|
 | 7984 |           do
 | 
|---|
 | 7985 |             last_oldobj=$obj
 | 
|---|
 | 7986 |           done
 | 
|---|
 | 7987 |           eval test_cmds=\"$old_archive_cmds\"
 | 
|---|
 | 7988 |           func_len " $test_cmds"
 | 
|---|
 | 7989 |           len0=$func_len_result
 | 
|---|
 | 7990 |           len=$len0
 | 
|---|
 | 7991 |           for obj in $save_oldobjs
 | 
|---|
 | 7992 |           do
 | 
|---|
 | 7993 |             func_len " $obj"
 | 
|---|
 | 7994 |             func_arith $len + $func_len_result
 | 
|---|
 | 7995 |             len=$func_arith_result
 | 
|---|
 | 7996 |             func_append objlist " $obj"
 | 
|---|
 | 7997 |             if test "$len" -lt "$max_cmd_len"; then
 | 
|---|
 | 7998 |               :
 | 
|---|
 | 7999 |             else
 | 
|---|
 | 8000 |               # the above command should be used before it gets too long
 | 
|---|
 | 8001 |               oldobjs=$objlist
 | 
|---|
 | 8002 |               if test "$obj" = "$last_oldobj" ; then
 | 
|---|
 | 8003 |                 RANLIB=$save_RANLIB
 | 
|---|
 | 8004 |               fi
 | 
|---|
 | 8005 |               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 | 
|---|
 | 8006 |               eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
 | 
|---|
 | 8007 |               objlist=
 | 
|---|
 | 8008 |               len=$len0
 | 
|---|
 | 8009 |             fi
 | 
|---|
 | 8010 |           done
 | 
|---|
 | 8011 |           RANLIB=$save_RANLIB
 | 
|---|
 | 8012 |           oldobjs=$objlist
 | 
|---|
 | 8013 |           if test "X$oldobjs" = "X" ; then
 | 
|---|
 | 8014 |             eval cmds=\"\$concat_cmds\"
 | 
|---|
 | 8015 |           else
 | 
|---|
 | 8016 |             eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 | 
|---|
 | 8017 |           fi
 | 
|---|
 | 8018 |         fi
 | 
|---|
 | 8019 |       fi
 | 
|---|
 | 8020 |       func_execute_cmds "$cmds" 'exit $?'
 | 
|---|
 | 8021 |     done
 | 
|---|
 | 8022 | 
 | 
|---|
 | 8023 |     test -n "$generated" && \
 | 
|---|
 | 8024 |       func_show_eval "${RM}r$generated"
 | 
|---|
 | 8025 | 
 | 
|---|
 | 8026 |     # Now create the libtool archive.
 | 
|---|
 | 8027 |     case $output in
 | 
|---|
 | 8028 |     *.la)
 | 
|---|
 | 8029 |       old_library=
 | 
|---|
 | 8030 |       test "$build_old_libs" = yes && old_library="$libname.$libext"
 | 
|---|
 | 8031 |       func_verbose "creating $output"
 | 
|---|
 | 8032 | 
 | 
|---|
 | 8033 |       # Preserve any variables that may affect compiler behavior
 | 
|---|
 | 8034 |       for var in $variables_saved_for_relink; do
 | 
|---|
 | 8035 |         if eval test -z \"\${$var+set}\"; then
 | 
|---|
 | 8036 |           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
 | 
|---|
 | 8037 |         elif eval var_value=\$$var; test -z "$var_value"; then
 | 
|---|
 | 8038 |           relink_command="$var=; export $var; $relink_command"
 | 
|---|
 | 8039 |         else
 | 
|---|
 | 8040 |           func_quote_for_eval "$var_value"
 | 
|---|
 | 8041 |           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 | 
|---|
 | 8042 |         fi
 | 
|---|
 | 8043 |       done
 | 
|---|
 | 8044 |       # Quote the link command for shipping.
 | 
|---|
 | 8045 |       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
 | 
|---|
 | 8046 |       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 | 
|---|
 | 8047 |       if test "$hardcode_automatic" = yes ; then
 | 
|---|
 | 8048 |         relink_command=
 | 
|---|
 | 8049 |       fi
 | 
|---|
 | 8050 | 
 | 
|---|
 | 8051 |       # Only create the output if not a dry run.
 | 
|---|
 | 8052 |       $opt_dry_run || {
 | 
|---|
 | 8053 |         for installed in no yes; do
 | 
|---|
 | 8054 |           if test "$installed" = yes; then
 | 
|---|
 | 8055 |             if test -z "$install_libdir"; then
 | 
|---|
 | 8056 |               break
 | 
|---|
 | 8057 |             fi
 | 
|---|
 | 8058 |             output="$output_objdir/$outputname"i
 | 
|---|
 | 8059 |             # Replace all uninstalled libtool libraries with the installed ones
 | 
|---|
 | 8060 |             newdependency_libs=
 | 
|---|
 | 8061 |             for deplib in $dependency_libs; do
 | 
|---|
 | 8062 |               case $deplib in
 | 
|---|
 | 8063 |               *.la)
 | 
|---|
 | 8064 |                 func_basename "$deplib"
 | 
|---|
 | 8065 |                 name="$func_basename_result"
 | 
|---|
 | 8066 |                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 | 
|---|
 | 8067 |                 test -z "$libdir" && \
 | 
|---|
 | 8068 |                   func_fatal_error "\`$deplib' is not a valid libtool archive"
 | 
|---|
 | 8069 |                 newdependency_libs="$newdependency_libs $libdir/$name"
 | 
|---|
 | 8070 |                 ;;
 | 
|---|
 | 8071 |               *) newdependency_libs="$newdependency_libs $deplib" ;;
 | 
|---|
 | 8072 |               esac
 | 
|---|
 | 8073 |             done
 | 
|---|
 | 8074 |             dependency_libs="$newdependency_libs"
 | 
|---|
 | 8075 |             newdlfiles=
 | 
|---|
 | 8076 | 
 | 
|---|
 | 8077 |             for lib in $dlfiles; do
 | 
|---|
 | 8078 |               case $lib in
 | 
|---|
 | 8079 |               *.la)
 | 
|---|
 | 8080 |                 func_basename "$lib"
 | 
|---|
 | 8081 |                 name="$func_basename_result"
 | 
|---|
 | 8082 |                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 | 
|---|
 | 8083 |                 test -z "$libdir" && \
 | 
|---|
 | 8084 |                   func_fatal_error "\`$lib' is not a valid libtool archive"
 | 
|---|
 | 8085 |                 newdlfiles="$newdlfiles $libdir/$name"
 | 
|---|
 | 8086 |                 ;;
 | 
|---|
 | 8087 |               *) newdlfiles="$newdlfiles $lib" ;;
 | 
|---|
 | 8088 |               esac
 | 
|---|
 | 8089 |             done
 | 
|---|
 | 8090 |             dlfiles="$newdlfiles"
 | 
|---|
 | 8091 |             newdlprefiles=
 | 
|---|
 | 8092 |             for lib in $dlprefiles; do
 | 
|---|
 | 8093 |               case $lib in
 | 
|---|
 | 8094 |               *.la)
 | 
|---|
 | 8095 |                 # Only pass preopened files to the pseudo-archive (for
 | 
|---|
 | 8096 |                 # eventual linking with the app. that links it) if we
 | 
|---|
 | 8097 |                 # didn't already link the preopened objects directly into
 | 
|---|
 | 8098 |                 # the library:
 | 
|---|
 | 8099 |                 func_basename "$lib"
 | 
|---|
 | 8100 |                 name="$func_basename_result"
 | 
|---|
 | 8101 |                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 | 
|---|
 | 8102 |                 test -z "$libdir" && \
 | 
|---|
 | 8103 |                   func_fatal_error "\`$lib' is not a valid libtool archive"
 | 
|---|
 | 8104 |                 newdlprefiles="$newdlprefiles $libdir/$name"
 | 
|---|
 | 8105 |                 ;;
 | 
|---|
 | 8106 |               esac
 | 
|---|
 | 8107 |             done
 | 
|---|
 | 8108 |             dlprefiles="$newdlprefiles"
 | 
|---|
 | 8109 |           else
 | 
|---|
 | 8110 |             newdlfiles=
 | 
|---|
 | 8111 |             for lib in $dlfiles; do
 | 
|---|
 | 8112 |               case $lib in
 | 
|---|
 | 8113 |                 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 | 
|---|
 | 8114 |                 *) abs=`pwd`"/$lib" ;;
 | 
|---|
 | 8115 |               esac
 | 
|---|
 | 8116 |               newdlfiles="$newdlfiles $abs"
 | 
|---|
 | 8117 |             done
 | 
|---|
 | 8118 |             dlfiles="$newdlfiles"
 | 
|---|
 | 8119 |             newdlprefiles=
 | 
|---|
 | 8120 |             for lib in $dlprefiles; do
 | 
|---|
 | 8121 |               case $lib in
 | 
|---|
 | 8122 |                 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 | 
|---|
 | 8123 |                 *) abs=`pwd`"/$lib" ;;
 | 
|---|
 | 8124 |               esac
 | 
|---|
 | 8125 |               newdlprefiles="$newdlprefiles $abs"
 | 
|---|
 | 8126 |             done
 | 
|---|
 | 8127 |             dlprefiles="$newdlprefiles"
 | 
|---|
 | 8128 |           fi
 | 
|---|
 | 8129 |           $RM $output
 | 
|---|
 | 8130 |           # place dlname in correct position for cygwin
 | 
|---|
 | 8131 |           tdlname=$dlname
 | 
|---|
 | 8132 |           case $host,$output,$installed,$module,$dlname in
 | 
|---|
 | 8133 |             *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 | 
|---|
 | 8134 |           esac
 | 
|---|
 | 8135 |           $ECHO > $output "\
 | 
|---|
 | 8136 | # $outputname - a libtool library file
 | 
|---|
 | 8137 | # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 | 
|---|
 | 8138 | #
 | 
|---|
 | 8139 | # Please DO NOT delete this file!
 | 
|---|
 | 8140 | # It is necessary for linking the library.
 | 
|---|
 | 8141 | 
 | 
|---|
 | 8142 | # The name that we can dlopen(3).
 | 
|---|
 | 8143 | dlname='$tdlname'
 | 
|---|
 | 8144 | 
 | 
|---|
 | 8145 | # Names of this library.
 | 
|---|
 | 8146 | library_names='$library_names'
 | 
|---|
 | 8147 | 
 | 
|---|
 | 8148 | # The name of the static archive.
 | 
|---|
 | 8149 | old_library='$old_library'
 | 
|---|
 | 8150 | 
 | 
|---|
 | 8151 | # Linker flags that can not go in dependency_libs.
 | 
|---|
 | 8152 | inherited_linker_flags='$new_inherited_linker_flags'
 | 
|---|
 | 8153 | 
 | 
|---|
 | 8154 | # Libraries that this one depends upon.
 | 
|---|
 | 8155 | dependency_libs='$dependency_libs'
 | 
|---|
 | 8156 | 
 | 
|---|
 | 8157 | # Names of additional weak libraries provided by this library
 | 
|---|
 | 8158 | weak_library_names='$weak_libs'
 | 
|---|
 | 8159 | 
 | 
|---|
 | 8160 | # Version information for $libname.
 | 
|---|
 | 8161 | current=$current
 | 
|---|
 | 8162 | age=$age
 | 
|---|
 | 8163 | revision=$revision
 | 
|---|
 | 8164 | 
 | 
|---|
 | 8165 | # Is this an already installed library?
 | 
|---|
 | 8166 | installed=$installed
 | 
|---|
 | 8167 | 
 | 
|---|
 | 8168 | # Should we warn about portability when linking against -modules?
 | 
|---|
 | 8169 | shouldnotlink=$module
 | 
|---|
 | 8170 | 
 | 
|---|
 | 8171 | # Files to dlopen/dlpreopen
 | 
|---|
 | 8172 | dlopen='$dlfiles'
 | 
|---|
 | 8173 | dlpreopen='$dlprefiles'
 | 
|---|
 | 8174 | 
 | 
|---|
 | 8175 | # Directory that this library needs to be installed in:
 | 
|---|
 | 8176 | libdir='$install_libdir'"
 | 
|---|
 | 8177 |           if test "$installed" = no && test "$need_relink" = yes; then
 | 
|---|
 | 8178 |             $ECHO >> $output "\
 | 
|---|
 | 8179 | relink_command=\"$relink_command\""
 | 
|---|
 | 8180 |           fi
 | 
|---|
 | 8181 |         done
 | 
|---|
 | 8182 |       }
 | 
|---|
 | 8183 | 
 | 
|---|
 | 8184 |       # Do a symbolic link so that the libtool archive can be found in
 | 
|---|
 | 8185 |       # LD_LIBRARY_PATH before the program is installed.
 | 
|---|
 | 8186 |       func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
 | 
|---|
 | 8187 |       ;;
 | 
|---|
 | 8188 |     esac
 | 
|---|
 | 8189 |     exit $EXIT_SUCCESS
 | 
|---|
 | 8190 | }
 | 
|---|
 | 8191 | 
 | 
|---|
 | 8192 | { test "$mode" = link || test "$mode" = relink; } &&
 | 
|---|
 | 8193 |     func_mode_link ${1+"$@"}
 | 
|---|
 | 8194 | 
 | 
|---|
 | 8195 | 
 | 
|---|
 | 8196 | # func_mode_uninstall arg...
 | 
|---|
 | 8197 | func_mode_uninstall ()
 | 
|---|
 | 8198 | {
 | 
|---|
 | 8199 |     $opt_debug
 | 
|---|
 | 8200 |     RM="$nonopt"
 | 
|---|
 | 8201 |     files=
 | 
|---|
 | 8202 |     rmforce=
 | 
|---|
 | 8203 |     exit_status=0
 | 
|---|
 | 8204 | 
 | 
|---|
 | 8205 |     # This variable tells wrapper scripts just to set variables rather
 | 
|---|
 | 8206 |     # than running their programs.
 | 
|---|
 | 8207 |     libtool_install_magic="$magic"
 | 
|---|
 | 8208 | 
 | 
|---|
 | 8209 |     for arg
 | 
|---|
 | 8210 |     do
 | 
|---|
 | 8211 |       case $arg in
 | 
|---|
 | 8212 |       -f) RM="$RM $arg"; rmforce=yes ;;
 | 
|---|
 | 8213 |       -*) RM="$RM $arg" ;;
 | 
|---|
 | 8214 |       *) files="$files $arg" ;;
 | 
|---|
 | 8215 |       esac
 | 
|---|
 | 8216 |     done
 | 
|---|
 | 8217 | 
 | 
|---|
 | 8218 |     test -z "$RM" && \
 | 
|---|
 | 8219 |       func_fatal_help "you must specify an RM program"
 | 
|---|
 | 8220 | 
 | 
|---|
 | 8221 |     rmdirs=
 | 
|---|
 | 8222 | 
 | 
|---|
 | 8223 |     origobjdir="$objdir"
 | 
|---|
 | 8224 |     for file in $files; do
 | 
|---|
 | 8225 |       func_dirname "$file" "" "."
 | 
|---|
 | 8226 |       dir="$func_dirname_result"
 | 
|---|
 | 8227 |       if test "X$dir" = X.; then
 | 
|---|
 | 8228 |         objdir="$origobjdir"
 | 
|---|
 | 8229 |       else
 | 
|---|
 | 8230 |         objdir="$dir/$origobjdir"
 | 
|---|
 | 8231 |       fi
 | 
|---|
 | 8232 |       func_basename "$file"
 | 
|---|
 | 8233 |       name="$func_basename_result"
 | 
|---|
 | 8234 |       test "$mode" = uninstall && objdir="$dir"
 | 
|---|
 | 8235 | 
 | 
|---|
 | 8236 |       # Remember objdir for removal later, being careful to avoid duplicates
 | 
|---|
 | 8237 |       if test "$mode" = clean; then
 | 
|---|
 | 8238 |         case " $rmdirs " in
 | 
|---|
 | 8239 |           *" $objdir "*) ;;
 | 
|---|
 | 8240 |           *) rmdirs="$rmdirs $objdir" ;;
 | 
|---|
 | 8241 |         esac
 | 
|---|
 | 8242 |       fi
 | 
|---|
 | 8243 | 
 | 
|---|
 | 8244 |       # Don't error if the file doesn't exist and rm -f was used.
 | 
|---|
 | 8245 |       if { test -L "$file"; } >/dev/null 2>&1 ||
 | 
|---|
 | 8246 |          { test -h "$file"; } >/dev/null 2>&1 ||
 | 
|---|
 | 8247 |          test -f "$file"; then
 | 
|---|
 | 8248 |         :
 | 
|---|
 | 8249 |       elif test -d "$file"; then
 | 
|---|
 | 8250 |         exit_status=1
 | 
|---|
 | 8251 |         continue
 | 
|---|
 | 8252 |       elif test "$rmforce" = yes; then
 | 
|---|
 | 8253 |         continue
 | 
|---|
 | 8254 |       fi
 | 
|---|
 | 8255 | 
 | 
|---|
 | 8256 |       rmfiles="$file"
 | 
|---|
 | 8257 | 
 | 
|---|
 | 8258 |       case $name in
 | 
|---|
 | 8259 |       *.la)
 | 
|---|
 | 8260 |         # Possibly a libtool archive, so verify it.
 | 
|---|
 | 8261 |         if func_lalib_p "$file"; then
 | 
|---|
 | 8262 |           func_source $dir/$name
 | 
|---|
 | 8263 | 
 | 
|---|
 | 8264 |           # Delete the libtool libraries and symlinks.
 | 
|---|
 | 8265 |           for n in $library_names; do
 | 
|---|
 | 8266 |             rmfiles="$rmfiles $objdir/$n"
 | 
|---|
 | 8267 |           done
 | 
|---|
 | 8268 |           test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 | 
|---|
 | 8269 | 
 | 
|---|
 | 8270 |           case "$mode" in
 | 
|---|
 | 8271 |           clean)
 | 
|---|
 | 8272 |             case "  $library_names " in
 | 
|---|
 | 8273 |             # "  " in the beginning catches empty $dlname
 | 
|---|
 | 8274 |             *" $dlname "*) ;;
 | 
|---|
 | 8275 |             *) rmfiles="$rmfiles $objdir/$dlname" ;;
 | 
|---|
 | 8276 |             esac
 | 
|---|
 | 8277 |             test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 | 
|---|
 | 8278 |             ;;
 | 
|---|
 | 8279 |           uninstall)
 | 
|---|
 | 8280 |             if test -n "$library_names"; then
 | 
|---|
 | 8281 |               # Do each command in the postuninstall commands.
 | 
|---|
 | 8282 |               func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 | 
|---|
 | 8283 |             fi
 | 
|---|
 | 8284 | 
 | 
|---|
 | 8285 |             if test -n "$old_library"; then
 | 
|---|
 | 8286 |               # Do each command in the old_postuninstall commands.
 | 
|---|
 | 8287 |               func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
 | 
|---|
 | 8288 |             fi
 | 
|---|
 | 8289 |             # FIXME: should reinstall the best remaining shared library.
 | 
|---|
 | 8290 |             ;;
 | 
|---|
 | 8291 |           esac
 | 
|---|
 | 8292 |         fi
 | 
|---|
 | 8293 |         ;;
 | 
|---|
 | 8294 | 
 | 
|---|
 | 8295 |       *.lo)
 | 
|---|
 | 8296 |         # Possibly a libtool object, so verify it.
 | 
|---|
 | 8297 |         if func_lalib_p "$file"; then
 | 
|---|
 | 8298 | 
 | 
|---|
 | 8299 |           # Read the .lo file
 | 
|---|
 | 8300 |           func_source $dir/$name
 | 
|---|
 | 8301 | 
 | 
|---|
 | 8302 |           # Add PIC object to the list of files to remove.
 | 
|---|
 | 8303 |           if test -n "$pic_object" &&
 | 
|---|
 | 8304 |              test "$pic_object" != none; then
 | 
|---|
 | 8305 |             rmfiles="$rmfiles $dir/$pic_object"
 | 
|---|
 | 8306 |           fi
 | 
|---|
 | 8307 | 
 | 
|---|
 | 8308 |           # Add non-PIC object to the list of files to remove.
 | 
|---|
 | 8309 |           if test -n "$non_pic_object" &&
 | 
|---|
 | 8310 |              test "$non_pic_object" != none; then
 | 
|---|
 | 8311 |             rmfiles="$rmfiles $dir/$non_pic_object"
 | 
|---|
 | 8312 |           fi
 | 
|---|
 | 8313 |         fi
 | 
|---|
 | 8314 |         ;;
 | 
|---|
 | 8315 | 
 | 
|---|
 | 8316 |       *)
 | 
|---|
 | 8317 |         if test "$mode" = clean ; then
 | 
|---|
 | 8318 |           noexename=$name
 | 
|---|
 | 8319 |           case $file in
 | 
|---|
 | 8320 |           *.exe)
 | 
|---|
 | 8321 |             func_stripname '' '.exe' "$file"
 | 
|---|
 | 8322 |             file=$func_stripname_result
 | 
|---|
 | 8323 |             func_stripname '' '.exe' "$name"
 | 
|---|
 | 8324 |             noexename=$func_stripname_result
 | 
|---|
 | 8325 |             # $file with .exe has already been added to rmfiles,
 | 
|---|
 | 8326 |             # add $file without .exe
 | 
|---|
 | 8327 |             rmfiles="$rmfiles $file"
 | 
|---|
 | 8328 |             ;;
 | 
|---|
 | 8329 |           esac
 | 
|---|
 | 8330 |           # Do a test to see if this is a libtool program.
 | 
|---|
 | 8331 |           if func_ltwrapper_p "$file"; then
 | 
|---|
 | 8332 |             if func_ltwrapper_executable_p "$file"; then
 | 
|---|
 | 8333 |               func_ltwrapper_scriptname "$file"
 | 
|---|
 | 8334 |               relink_command=
 | 
|---|
 | 8335 |               func_source $func_ltwrapper_scriptname_result
 | 
|---|
 | 8336 |               rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
 | 
|---|
 | 8337 |             else
 | 
|---|
 | 8338 |               relink_command=
 | 
|---|
 | 8339 |               func_source $dir/$noexename
 | 
|---|
 | 8340 |             fi
 | 
|---|
 | 8341 | 
 | 
|---|
 | 8342 |             # note $name still contains .exe if it was in $file originally
 | 
|---|
 | 8343 |             # as does the version of $file that was added into $rmfiles
 | 
|---|
 | 8344 |             rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 | 
|---|
 | 8345 |             if test "$fast_install" = yes && test -n "$relink_command"; then
 | 
|---|
 | 8346 |               rmfiles="$rmfiles $objdir/lt-$name"
 | 
|---|
 | 8347 |             fi
 | 
|---|
 | 8348 |             if test "X$noexename" != "X$name" ; then
 | 
|---|
 | 8349 |               rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 | 
|---|
 | 8350 |             fi
 | 
|---|
 | 8351 |           fi
 | 
|---|
 | 8352 |         fi
 | 
|---|
 | 8353 |         ;;
 | 
|---|
 | 8354 |       esac
 | 
|---|
 | 8355 |       func_show_eval "$RM $rmfiles" 'exit_status=1'
 | 
|---|
 | 8356 |     done
 | 
|---|
 | 8357 |     objdir="$origobjdir"
 | 
|---|
 | 8358 | 
 | 
|---|
 | 8359 |     # Try to remove the ${objdir}s in the directories where we deleted files
 | 
|---|
 | 8360 |     for dir in $rmdirs; do
 | 
|---|
 | 8361 |       if test -d "$dir"; then
 | 
|---|
 | 8362 |         func_show_eval "rmdir $dir >/dev/null 2>&1"
 | 
|---|
 | 8363 |       fi
 | 
|---|
 | 8364 |     done
 | 
|---|
 | 8365 | 
 | 
|---|
 | 8366 |     exit $exit_status
 | 
|---|
 | 8367 | }
 | 
|---|
 | 8368 | 
 | 
|---|
 | 8369 | { test "$mode" = uninstall || test "$mode" = clean; } &&
 | 
|---|
 | 8370 |     func_mode_uninstall ${1+"$@"}
 | 
|---|
 | 8371 | 
 | 
|---|
 | 8372 | test -z "$mode" && {
 | 
|---|
 | 8373 |   help="$generic_help"
 | 
|---|
 | 8374 |   func_fatal_help "you must specify a MODE"
 | 
|---|
 | 8375 | }
 | 
|---|
 | 8376 | 
 | 
|---|
 | 8377 | test -z "$exec_cmd" && \
 | 
|---|
 | 8378 |   func_fatal_help "invalid operation mode \`$mode'"
 | 
|---|
 | 8379 | 
 | 
|---|
 | 8380 | if test -n "$exec_cmd"; then
 | 
|---|
 | 8381 |   eval exec "$exec_cmd"
 | 
|---|
 | 8382 |   exit $EXIT_FAILURE
 | 
|---|
 | 8383 | fi
 | 
|---|
 | 8384 | 
 | 
|---|
 | 8385 | exit $exit_status
 | 
|---|
 | 8386 | 
 | 
|---|
 | 8387 | 
 | 
|---|
 | 8388 | # The TAGs below are defined such that we never get into a situation
 | 
|---|
 | 8389 | # in which we disable both kinds of libraries.  Given conflicting
 | 
|---|
 | 8390 | # choices, we go for a static library, that is the most portable,
 | 
|---|
 | 8391 | # since we can't tell whether shared libraries were disabled because
 | 
|---|
 | 8392 | # the user asked for that or because the platform doesn't support
 | 
|---|
 | 8393 | # them.  This is particularly important on AIX, because we don't
 | 
|---|
 | 8394 | # support having both static and shared libraries enabled at the same
 | 
|---|
 | 8395 | # time on that platform, so we default to a shared-only configuration.
 | 
|---|
 | 8396 | # If a disable-shared tag is given, we'll fallback to a static-only
 | 
|---|
 | 8397 | # configuration.  But we'll never go from static-only to shared-only.
 | 
|---|
 | 8398 | 
 | 
|---|
 | 8399 | # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 | 
|---|
 | 8400 | build_libtool_libs=no
 | 
|---|
 | 8401 | build_old_libs=yes
 | 
|---|
 | 8402 | # ### END LIBTOOL TAG CONFIG: disable-shared
 | 
|---|
 | 8403 | 
 | 
|---|
 | 8404 | # ### BEGIN LIBTOOL TAG CONFIG: disable-static
 | 
|---|
 | 8405 | build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 | 
|---|
 | 8406 | # ### END LIBTOOL TAG CONFIG: disable-static
 | 
|---|
 | 8407 | 
 | 
|---|
 | 8408 | # Local Variables:
 | 
|---|
 | 8409 | # mode:shell-script
 | 
|---|
 | 8410 | # sh-indentation:2
 | 
|---|
 | 8411 | # End:
 | 
|---|
 | 8412 | # vi:sw=2
 | 
|---|
 | 8413 | 
 | 
|---|