~ubuntu-branches/ubuntu/precise/libxt/precise-security

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Cyril Brulebois, Julien Cristau, Robert Hooker, Christopher James Halse Rogers, Cyril Brulebois
  • Date: 2011-01-14 04:45:31 UTC
  • mfrom: (4.1.3 experimental)
  • Revision ID: james.westby@ubuntu.com-20110114044531-1fdwgh8s7vixn43p
Tags: 1:1.0.9-1
[ Julien Cristau ]
* Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
  good reason.  Thanks, Colin Watson!
* New upstream release.
* Update debian/copyright from upstream COPYING.

[ Robert Hooker ]
* Don't install makestrs and its man page in libxt-dev, it's not shipped
  anymore.

[ Christopher James Halse Rogers ]
* New new upstream release.
* Drop debian/patches/02_dont_export_private_deps.diff:
  - Upstream has trimmed the Required list in xt.pc, and a libXt header
    includes a #define which uses a libX11 symbol, so libX11 should be
    in the Requires field (and is).  This fixes lots of FTBFS with
    binutils-gold, which doesn't consider indirect dependencies.

[ Cyril Brulebois ]
* Update debian/copyright from upstream COPYING.
* Exclude libXt.la in dh_install call.
* Switch dh_install from --list-missing to --fail-missing for added
  safety.
* Add myself to Uploaders.

Show diffs side-by-side

added added

removed removed

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