~ubuntu-branches/debian/sid/xserver-xorg-input-vmmouse/sid

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Package Import Robot
  • Author(s): Cyril Brulebois
  • Date: 2012-03-20 21:01:22 UTC
  • mfrom: (1.4.5)
  • Revision ID: package-import@ubuntu.com-20120320210122-egqiii4go6kmtzdn
Tags: 1:12.8.0-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Generated from ltmain.m4sh.
2
1
 
3
 
# ltmain.sh (GNU libtool) 2.2.6
 
2
# libtool (GNU libtool) 2.4
4
3
# 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, 2007 2008 Free Software Foundation, Inc.
 
5
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
 
6
# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
7
7
# This is free software; see the source for copying conditions.  There is NO
8
8
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
9
 
32
32
#
33
33
# Provide generalized library-building support services.
34
34
#
35
 
#     --config             show all configuration variables
36
 
#     --debug              enable verbose shell tracing
37
 
# -n, --dry-run            display commands without modifying any files
38
 
#     --features           display basic configuration information and exit
39
 
#     --mode=MODE          use operation mode MODE
40
 
#     --preserve-dup-deps  don't remove duplicate dependency libraries
41
 
#     --quiet, --silent    don't print informational messages
42
 
#     --tag=TAG            use configuration variables from tag TAG
43
 
# -v, --verbose            print informational messages (default)
44
 
#     --version            print version information
45
 
# -h, --help               print short or long help message
 
35
#       --config             show all configuration variables
 
36
#       --debug              enable verbose shell tracing
 
37
#   -n, --dry-run            display commands without modifying any files
 
38
#       --features           display basic configuration information and exit
 
39
#       --mode=MODE          use operation mode MODE
 
40
#       --preserve-dup-deps  don't remove duplicate dependency libraries
 
41
#       --quiet, --silent    don't print informational messages
 
42
#       --no-quiet, --no-silent
 
43
#                            print informational messages (default)
 
44
#       --tag=TAG            use configuration variables from tag TAG
 
45
#   -v, --verbose            print more informational messages than default
 
46
#       --no-verbose         don't print the extra informational messages
 
47
#       --version            print version information
 
48
#   -h, --help, --help-all   print short, long, or detailed help message
46
49
#
47
50
# MODE must be one of the following:
48
51
#
49
 
#       clean              remove files from the build directory
50
 
#       compile            compile a source file into a libtool object
51
 
#       execute            automatically set library path, then run a program
52
 
#       finish             complete the installation of libtool libraries
53
 
#       install            install libraries or executables
54
 
#       link               create a library or an executable
55
 
#       uninstall          remove libraries from an installed directory
 
52
#         clean              remove files from the build directory
 
53
#         compile            compile a source file into a libtool object
 
54
#         execute            automatically set library path, then run a program
 
55
#         finish             complete the installation of libtool libraries
 
56
#         install            install libraries or executables
 
57
#         link               create a library or an executable
 
58
#         uninstall          remove libraries from an installed directory
56
59
#
57
 
# MODE-ARGS vary depending on the MODE.
 
60
# MODE-ARGS vary depending on the MODE.  When passed as first option,
 
61
# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
58
62
# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
59
63
#
60
64
# When reporting a bug, please describe a test case to reproduce it and
61
65
# include the following information:
62
66
#
63
 
#       host-triplet:   $host
64
 
#       shell:          $SHELL
65
 
#       compiler:               $LTCC
66
 
#       compiler flags:         $LTCFLAGS
67
 
#       linker:         $LD (gnu? $with_gnu_ld)
68
 
#       $progname:              (GNU libtool) 2.2.6
69
 
#       automake:               $automake_version
70
 
#       autoconf:               $autoconf_version
 
67
#         host-triplet: $host
 
68
#         shell:                $SHELL
 
69
#         compiler:             $LTCC
 
70
#         compiler flags:               $LTCFLAGS
 
71
#         linker:               $LD (gnu? $with_gnu_ld)
 
72
#         $progname:    (GNU libtool) 2.4 Debian-2.4-2ubuntu1
 
73
#         automake:     $automake_version
 
74
#         autoconf:     $autoconf_version
71
75
#
72
76
# Report bugs to <bug-libtool@gnu.org>.
 
77
# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
 
78
# General help using GNU software: <http://www.gnu.org/gethelp/>.
73
79
 
74
 
PROGRAM=ltmain.sh
 
80
PROGRAM=libtool
75
81
PACKAGE=libtool
76
 
VERSION=2.2.6
 
82
VERSION="2.4 Debian-2.4-2ubuntu1"
77
83
TIMESTAMP=""
78
 
package_revision=1.3012
79
 
 
80
 
# define SED for historic ltconfig's generated by Libtool 1.3
81
 
test -z "$SED" && SED=sed
 
84
package_revision=1.3293
82
85
 
83
86
# Be Bourne compatible
84
87
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
94
97
BIN_SH=xpg4; export BIN_SH # for Tru64
95
98
DUALCASE=1; export DUALCASE # for MKS sh
96
99
 
 
100
# A function that is used when there is no print builtin or printf.
 
101
func_fallback_echo ()
 
102
{
 
103
  eval 'cat <<_LTECHO_EOF
 
104
$1
 
105
_LTECHO_EOF'
 
106
}
 
107
 
97
108
# NLS nuisances: We save the old values to restore during execute mode.
98
 
# Only set LANG and LC_ALL to C if already set.
99
 
# These must not be set unconditionally because not all systems understand
100
 
# e.g. LANG=C (notably SCO).
101
109
lt_user_locale=
102
110
lt_safe_locale=
103
111
for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
110
118
          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
111
119
        fi"
112
120
done
 
121
LC_ALL=C
 
122
LANGUAGE=C
 
123
export LANGUAGE LC_ALL
113
124
 
114
125
$lt_unset CDPATH
115
126
 
116
127
 
 
128
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 
129
# is ksh but when the shell is invoked as "sh" and the current value of
 
130
# the _XPG environment variable is not equal to 1 (one), the special
 
131
# positional parameter $0, within a function call, is the name of the
 
132
# function.
 
133
progpath="$0"
117
134
 
118
135
 
119
136
 
120
137
: ${CP="cp -f"}
121
 
: ${ECHO="echo"}
 
138
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
122
139
: ${EGREP="/bin/grep -E"}
123
140
: ${FGREP="/bin/grep -F"}
124
141
: ${GREP="/bin/grep"}
147
164
dirname="s,/[^/]*$,,"
148
165
basename="s,^.*/,,"
149
166
 
 
167
# func_dirname file append nondir_replacement
 
168
# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
 
169
# otherwise set result to NONDIR_REPLACEMENT.
 
170
func_dirname ()
 
171
{
 
172
    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
 
173
    if test "X$func_dirname_result" = "X${1}"; then
 
174
      func_dirname_result="${3}"
 
175
    else
 
176
      func_dirname_result="$func_dirname_result${2}"
 
177
    fi
 
178
} # func_dirname may be replaced by extended shell implementation
 
179
 
 
180
 
 
181
# func_basename file
 
182
func_basename ()
 
183
{
 
184
    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
 
185
} # func_basename may be replaced by extended shell implementation
 
186
 
 
187
 
150
188
# func_dirname_and_basename file append nondir_replacement
151
189
# perform func_basename and func_dirname in a single function
152
190
# call:
161
199
# those functions but instead duplicate the functionality here.
162
200
func_dirname_and_basename ()
163
201
{
164
 
  # Extract subdirectory from the argument.
165
 
  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
166
 
  if test "X$func_dirname_result" = "X${1}"; then
167
 
    func_dirname_result="${3}"
168
 
  else
169
 
    func_dirname_result="$func_dirname_result${2}"
170
 
  fi
171
 
  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
172
 
}
173
 
 
174
 
# Generated shell functions inserted here.
175
 
 
176
 
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
177
 
# is ksh but when the shell is invoked as "sh" and the current value of
178
 
# the _XPG environment variable is not equal to 1 (one), the special
179
 
# positional parameter $0, within a function call, is the name of the
180
 
# function.
181
 
progpath="$0"
 
202
    # Extract subdirectory from the argument.
 
203
    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
 
204
    if test "X$func_dirname_result" = "X${1}"; then
 
205
      func_dirname_result="${3}"
 
206
    else
 
207
      func_dirname_result="$func_dirname_result${2}"
 
208
    fi
 
209
    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
 
210
} # func_dirname_and_basename may be replaced by extended shell implementation
 
211
 
 
212
 
 
213
# func_stripname prefix suffix name
 
214
# strip PREFIX and SUFFIX off of NAME.
 
215
# PREFIX and SUFFIX must not contain globbing or regex special
 
216
# characters, hashes, percent signs, but SUFFIX may contain a leading
 
217
# dot (in which case that matches only a dot).
 
218
# func_strip_suffix prefix name
 
219
func_stripname ()
 
220
{
 
221
    case ${2} in
 
222
      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
 
223
      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
 
224
    esac
 
225
} # func_stripname may be replaced by extended shell implementation
 
226
 
 
227
 
 
228
# These SED scripts presuppose an absolute path with a trailing slash.
 
229
pathcar='s,^/\([^/]*\).*$,\1,'
 
230
pathcdr='s,^/[^/]*,,'
 
231
removedotparts=':dotsl
 
232
                s@/\./@/@g
 
233
                t dotsl
 
234
                s,/\.$,/,'
 
235
collapseslashes='s@/\{1,\}@/@g'
 
236
finalslash='s,/*$,/,'
 
237
 
 
238
# func_normal_abspath PATH
 
239
# Remove doubled-up and trailing slashes, "." path components,
 
240
# and cancel out any ".." path components in PATH after making
 
241
# it an absolute path.
 
242
#             value returned in "$func_normal_abspath_result"
 
243
func_normal_abspath ()
 
244
{
 
245
  # Start from root dir and reassemble the path.
 
246
  func_normal_abspath_result=
 
247
  func_normal_abspath_tpath=$1
 
248
  func_normal_abspath_altnamespace=
 
249
  case $func_normal_abspath_tpath in
 
250
    "")
 
251
      # Empty path, that just means $cwd.
 
252
      func_stripname '' '/' "`pwd`"
 
253
      func_normal_abspath_result=$func_stripname_result
 
254
      return
 
255
    ;;
 
256
    # The next three entries are used to spot a run of precisely
 
257
    # two leading slashes without using negated character classes;
 
258
    # we take advantage of case's first-match behaviour.
 
259
    ///*)
 
260
      # Unusual form of absolute path, do nothing.
 
261
    ;;
 
262
    //*)
 
263
      # Not necessarily an ordinary path; POSIX reserves leading '//'
 
264
      # and for example Cygwin uses it to access remote file shares
 
265
      # over CIFS/SMB, so we conserve a leading double slash if found.
 
266
      func_normal_abspath_altnamespace=/
 
267
    ;;
 
268
    /*)
 
269
      # Absolute path, do nothing.
 
270
    ;;
 
271
    *)
 
272
      # Relative path, prepend $cwd.
 
273
      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
 
274
    ;;
 
275
  esac
 
276
  # Cancel out all the simple stuff to save iterations.  We also want
 
277
  # the path to end with a slash for ease of parsing, so make sure
 
278
  # there is one (and only one) here.
 
279
  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
 
280
        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
 
281
  while :; do
 
282
    # Processed it all yet?
 
283
    if test "$func_normal_abspath_tpath" = / ; then
 
284
      # If we ascended to the root using ".." the result may be empty now.
 
285
      if test -z "$func_normal_abspath_result" ; then
 
286
        func_normal_abspath_result=/
 
287
      fi
 
288
      break
 
289
    fi
 
290
    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
 
291
        -e "$pathcar"`
 
292
    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
 
293
        -e "$pathcdr"`
 
294
    # Figure out what to do with it
 
295
    case $func_normal_abspath_tcomponent in
 
296
      "")
 
297
        # Trailing empty path component, ignore it.
 
298
      ;;
 
299
      ..)
 
300
        # Parent dir; strip last assembled component from result.
 
301
        func_dirname "$func_normal_abspath_result"
 
302
        func_normal_abspath_result=$func_dirname_result
 
303
      ;;
 
304
      *)
 
305
        # Actual path component, append it.
 
306
        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
 
307
      ;;
 
308
    esac
 
309
  done
 
310
  # Restore leading double-slash if one was found on entry.
 
311
  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 
312
}
 
313
 
 
314
# func_relative_path SRCDIR DSTDIR
 
315
# generates a relative path from SRCDIR to DSTDIR, with a trailing
 
316
# slash if non-empty, suitable for immediately appending a filename
 
317
# without needing to append a separator.
 
318
#             value returned in "$func_relative_path_result"
 
319
func_relative_path ()
 
320
{
 
321
  func_relative_path_result=
 
322
  func_normal_abspath "$1"
 
323
  func_relative_path_tlibdir=$func_normal_abspath_result
 
324
  func_normal_abspath "$2"
 
325
  func_relative_path_tbindir=$func_normal_abspath_result
 
326
 
 
327
  # Ascend the tree starting from libdir
 
328
  while :; do
 
329
    # check if we have found a prefix of bindir
 
330
    case $func_relative_path_tbindir in
 
331
      $func_relative_path_tlibdir)
 
332
        # found an exact match
 
333
        func_relative_path_tcancelled=
 
334
        break
 
335
        ;;
 
336
      $func_relative_path_tlibdir*)
 
337
        # found a matching prefix
 
338
        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
 
339
        func_relative_path_tcancelled=$func_stripname_result
 
340
        if test -z "$func_relative_path_result"; then
 
341
          func_relative_path_result=.
 
342
        fi
 
343
        break
 
344
        ;;
 
345
      *)
 
346
        func_dirname $func_relative_path_tlibdir
 
347
        func_relative_path_tlibdir=${func_dirname_result}
 
348
        if test "x$func_relative_path_tlibdir" = x ; then
 
349
          # Have to descend all the way to the root!
 
350
          func_relative_path_result=../$func_relative_path_result
 
351
          func_relative_path_tcancelled=$func_relative_path_tbindir
 
352
          break
 
353
        fi
 
354
        func_relative_path_result=../$func_relative_path_result
 
355
        ;;
 
356
    esac
 
357
  done
 
358
 
 
359
  # Now calculate path; take care to avoid doubling-up slashes.
 
360
  func_stripname '' '/' "$func_relative_path_result"
 
361
  func_relative_path_result=$func_stripname_result
 
362
  func_stripname '/' '/' "$func_relative_path_tcancelled"
 
363
  if test "x$func_stripname_result" != x ; then
 
364
    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
 
365
  fi
 
366
 
 
367
  # Normalisation. If bindir is libdir, return empty string,
 
368
  # else relative path ending with a slash; either way, target
 
369
  # file name can be directly appended.
 
370
  if test ! -z "$func_relative_path_result"; then
 
371
    func_stripname './' '' "$func_relative_path_result/"
 
372
    func_relative_path_result=$func_stripname_result
 
373
  fi
 
374
}
182
375
 
183
376
# The name of this program:
184
 
# In the unlikely event $progname began with a '-', it would play havoc with
185
 
# func_echo (imagine progname=-n), so we prepend ./ in that case:
186
377
func_dirname_and_basename "$progpath"
187
378
progname=$func_basename_result
188
 
case $progname in
189
 
  -*) progname=./$progname ;;
190
 
esac
191
379
 
192
380
# Make sure we have an absolute path for reexecution:
193
381
case $progpath in
218
406
# Same as above, but do not quote variable references.
219
407
double_quote_subst='s/\(["`\\]\)/\\\1/g'
220
408
 
 
409
# Sed substitution that turns a string into a regex matching for the
 
410
# string literally.
 
411
sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
 
412
 
 
413
# Sed substitution that converts a w32 file name or path
 
414
# which contains forward slashes, into one that contains
 
415
# (escaped) backslashes.  A very naive implementation.
 
416
lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
 
417
 
221
418
# Re-`\' parameter expansions in output of double_quote_subst that were
222
419
# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
223
420
# in input to double_quote_subst, that '$' was protected from expansion.
246
443
# name if it has been set yet.
247
444
func_echo ()
248
445
{
249
 
    $ECHO "$progname${mode+: }$mode: $*"
 
446
    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
250
447
}
251
448
 
252
449
# func_verbose arg...
261
458
    :
262
459
}
263
460
 
 
461
# func_echo_all arg...
 
462
# Invoke $ECHO with all args, space-separated.
 
463
func_echo_all ()
 
464
{
 
465
    $ECHO "$*"
 
466
}
 
467
 
264
468
# func_error arg...
265
469
# Echo program name prefixed message to standard error.
266
470
func_error ()
267
471
{
268
 
    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
 
472
    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
269
473
}
270
474
 
271
475
# func_warning arg...
272
476
# Echo program name prefixed warning message to standard error.
273
477
func_warning ()
274
478
{
275
 
    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
 
479
    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
276
480
 
277
481
    # bash bug again:
278
482
    :
329
533
        case $my_directory_path in */*) ;; *) break ;; esac
330
534
 
331
535
        # ...otherwise throw away the child directory and loop
332
 
        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
 
536
        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
333
537
      done
334
 
      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
 
538
      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
335
539
 
336
540
      save_mkdir_p_IFS="$IFS"; IFS=':'
337
541
      for my_dir in $my_dir_list; do
381
585
        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
382
586
    fi
383
587
 
384
 
    $ECHO "X$my_tmpdir" | $Xsed
 
588
    $ECHO "$my_tmpdir"
385
589
}
386
590
 
387
591
 
395
599
{
396
600
    case $1 in
397
601
      *[\\\`\"\$]*)
398
 
        func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
 
602
        func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
399
603
      *)
400
604
        func_quote_for_eval_unquoted_result="$1" ;;
401
605
    esac
422
626
{
423
627
    case $1 in
424
628
      *[\\\`\"]*)
425
 
        my_arg=`$ECHO "X$1" | $Xsed \
 
629
        my_arg=`$ECHO "$1" | $SED \
426
630
            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
427
631
      *)
428
632
        my_arg="$1" ;;
491
695
    fi
492
696
}
493
697
 
494
 
 
495
 
 
 
698
# func_tr_sh
 
699
# Turn $1 into a string suitable for a shell variable name.
 
700
# Result is stored in $func_tr_sh_result.  All characters
 
701
# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
 
702
# if $1 begins with a digit, a '_' is prepended as well.
 
703
func_tr_sh ()
 
704
{
 
705
  case $1 in
 
706
  [0-9]* | *[!a-zA-Z0-9_]*)
 
707
    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
 
708
    ;;
 
709
  * )
 
710
    func_tr_sh_result=$1
 
711
    ;;
 
712
  esac
 
713
}
496
714
 
497
715
 
498
716
# func_version
499
717
# Echo version message to standard output and exit.
500
718
func_version ()
501
719
{
502
 
    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
 
720
    $opt_debug
 
721
 
 
722
    $SED -n '/(C)/!b go
 
723
        :more
 
724
        /\./!{
 
725
          N
 
726
          s/\n# / /
 
727
          b more
 
728
        }
 
729
        :go
 
730
        /^# '$PROGRAM' (GNU /,/# warranty; / {
503
731
        s/^# //
504
732
        s/^# *$//
505
733
        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
512
740
# Echo short help message to standard output and exit.
513
741
func_usage ()
514
742
{
515
 
    $SED -n '/^# Usage:/,/# -h/ {
 
743
    $opt_debug
 
744
 
 
745
    $SED -n '/^# Usage:/,/^#  *.*--help/ {
516
746
        s/^# //
517
747
        s/^# *$//
518
748
        s/\$progname/'$progname'/
519
749
        p
520
750
    }' < "$progpath"
521
 
    $ECHO
 
751
    echo
522
752
    $ECHO "run \`$progname --help | more' for full usage"
523
753
    exit $?
524
754
}
525
755
 
526
 
# func_help
527
 
# Echo long help message to standard output and exit.
 
756
# func_help [NOEXIT]
 
757
# Echo long help message to standard output and exit,
 
758
# unless 'noexit' is passed as argument.
528
759
func_help ()
529
760
{
 
761
    $opt_debug
 
762
 
530
763
    $SED -n '/^# Usage:/,/# Report bugs to/ {
 
764
        :print
531
765
        s/^# //
532
766
        s/^# *$//
533
767
        s*\$progname*'$progname'*
540
774
        s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
541
775
        s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
542
776
        p
543
 
     }' < "$progpath"
544
 
    exit $?
 
777
        d
 
778
     }
 
779
     /^# .* home page:/b print
 
780
     /^# General help using/b print
 
781
     ' < "$progpath"
 
782
    ret=$?
 
783
    if test -z "$1"; then
 
784
      exit $ret
 
785
    fi
545
786
}
546
787
 
547
788
# func_missing_arg argname
549
790
# exit_cmd.
550
791
func_missing_arg ()
551
792
{
552
 
    func_error "missing argument for $1"
 
793
    $opt_debug
 
794
 
 
795
    func_error "missing argument for $1."
553
796
    exit_cmd=exit
554
797
}
555
798
 
 
799
 
 
800
# func_split_short_opt shortopt
 
801
# Set func_split_short_opt_name and func_split_short_opt_arg shell
 
802
# variables after splitting SHORTOPT after the 2nd character.
 
803
func_split_short_opt ()
 
804
{
 
805
    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
 
806
    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
 
807
 
 
808
    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
 
809
    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
 
810
} # func_split_short_opt may be replaced by extended shell implementation
 
811
 
 
812
 
 
813
# func_split_long_opt longopt
 
814
# Set func_split_long_opt_name and func_split_long_opt_arg shell
 
815
# variables after splitting LONGOPT at the `=' sign.
 
816
func_split_long_opt ()
 
817
{
 
818
    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
 
819
    my_sed_long_arg='1s/^--[^=]*=//'
 
820
 
 
821
    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
 
822
    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
 
823
} # func_split_long_opt may be replaced by extended shell implementation
 
824
 
556
825
exit_cmd=:
557
826
 
558
827
 
559
828
 
560
829
 
561
830
 
562
 
# Check that we have a working $ECHO.
563
 
if test "X$1" = X--no-reexec; then
564
 
  # Discard the --no-reexec flag, and continue.
565
 
  shift
566
 
elif test "X$1" = X--fallback-echo; then
567
 
  # Avoid inline document here, it may be left over
568
 
  :
569
 
elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
570
 
  # Yippee, $ECHO works!
571
 
  :
572
 
else
573
 
  # Restart under the correct shell, and then maybe $ECHO will work.
574
 
  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
575
 
fi
576
 
 
577
 
if test "X$1" = X--fallback-echo; then
578
 
  # used as fallback echo
579
 
  shift
580
 
  cat <<EOF
581
 
$*
582
 
EOF
583
 
  exit $EXIT_SUCCESS
584
 
fi
585
 
 
586
831
magic="%%%MAGIC variable%%%"
587
832
magic_exe="%%%MAGIC EXE variable%%%"
588
833
 
589
834
# Global variables.
590
 
# $mode is unset
591
835
nonopt=
592
 
execute_dlfiles=
593
836
preserve_args=
594
837
lo2o="s/\\.lo\$/.${objext}/"
595
838
o2lo="s/\\.${objext}\$/.lo/"
596
839
extracted_archives=
597
840
extracted_serial=0
598
841
 
599
 
opt_dry_run=false
600
 
opt_duplicate_deps=false
601
 
opt_silent=false
602
 
opt_debug=:
603
 
 
604
842
# If this variable is set in any of the actions, the command in it
605
843
# will be execed at the end.  This prevents here-documents from being
606
844
# left over by shells.
607
845
exec_cmd=
608
846
 
 
847
# func_append var value
 
848
# Append VALUE to the end of shell variable VAR.
 
849
func_append ()
 
850
{
 
851
    eval "${1}=\$${1}\${2}"
 
852
} # func_append may be replaced by extended shell implementation
 
853
 
 
854
# func_append_quoted var value
 
855
# Quote VALUE and append to the end of shell variable VAR, separated
 
856
# by a space.
 
857
func_append_quoted ()
 
858
{
 
859
    func_quote_for_eval "${2}"
 
860
    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
 
861
} # func_append_quoted may be replaced by extended shell implementation
 
862
 
 
863
 
 
864
# func_arith arithmetic-term...
 
865
func_arith ()
 
866
{
 
867
    func_arith_result=`expr "${@}"`
 
868
} # func_arith may be replaced by extended shell implementation
 
869
 
 
870
 
 
871
# func_len string
 
872
# STRING may not start with a hyphen.
 
873
func_len ()
 
874
{
 
875
    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
 
876
} # func_len may be replaced by extended shell implementation
 
877
 
 
878
 
 
879
# func_lo2o object
 
880
func_lo2o ()
 
881
{
 
882
    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
 
883
} # func_lo2o may be replaced by extended shell implementation
 
884
 
 
885
 
 
886
# func_xform libobj-or-source
 
887
func_xform ()
 
888
{
 
889
    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
 
890
} # func_xform may be replaced by extended shell implementation
 
891
 
 
892
 
609
893
# func_fatal_configuration arg...
610
894
# Echo program name prefixed message to standard error, followed by
611
895
# a configuration failure hint, and exit.
639
923
# Display the features supported by this script.
640
924
func_features ()
641
925
{
642
 
    $ECHO "host: $host"
 
926
    echo "host: $host"
643
927
    if test "$build_libtool_libs" = yes; then
644
 
      $ECHO "enable shared libraries"
 
928
      echo "enable shared libraries"
645
929
    else
646
 
      $ECHO "disable shared libraries"
 
930
      echo "disable shared libraries"
647
931
    fi
648
932
    if test "$build_old_libs" = yes; then
649
 
      $ECHO "enable static libraries"
 
933
      echo "enable static libraries"
650
934
    else
651
 
      $ECHO "disable static libraries"
 
935
      echo "disable static libraries"
652
936
    fi
653
937
 
654
938
    exit $?
695
979
  esac
696
980
}
697
981
 
698
 
# Parse options once, thoroughly.  This comes as soon as possible in
699
 
# the script to make things like `libtool --version' happen quickly.
700
 
{
701
 
 
702
 
  # Shorthand for --mode=foo, only valid as the first argument
703
 
  case $1 in
704
 
  clean|clea|cle|cl)
705
 
    shift; set dummy --mode clean ${1+"$@"}; shift
706
 
    ;;
707
 
  compile|compil|compi|comp|com|co|c)
708
 
    shift; set dummy --mode compile ${1+"$@"}; shift
709
 
    ;;
710
 
  execute|execut|execu|exec|exe|ex|e)
711
 
    shift; set dummy --mode execute ${1+"$@"}; shift
712
 
    ;;
713
 
  finish|finis|fini|fin|fi|f)
714
 
    shift; set dummy --mode finish ${1+"$@"}; shift
715
 
    ;;
716
 
  install|instal|insta|inst|ins|in|i)
717
 
    shift; set dummy --mode install ${1+"$@"}; shift
718
 
    ;;
719
 
  link|lin|li|l)
720
 
    shift; set dummy --mode link ${1+"$@"}; shift
721
 
    ;;
722
 
  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
723
 
    shift; set dummy --mode uninstall ${1+"$@"}; shift
724
 
    ;;
725
 
  esac
726
 
 
727
 
  # Parse non-mode specific arguments:
728
 
  while test "$#" -gt 0; do
729
 
    opt="$1"
730
 
    shift
731
 
 
732
 
    case $opt in
733
 
      --config)         func_config                                     ;;
734
 
 
735
 
      --debug)          preserve_args="$preserve_args $opt"
736
 
                        func_echo "enabling shell trace mode"
737
 
                        opt_debug='set -x'
738
 
                        $opt_debug
739
 
                        ;;
740
 
 
741
 
      -dlopen)          test "$#" -eq 0 && func_missing_arg "$opt" && break
742
 
                        execute_dlfiles="$execute_dlfiles $1"
743
 
                        shift
744
 
                        ;;
745
 
 
746
 
      --dry-run | -n)   opt_dry_run=:                                   ;;
747
 
      --features)       func_features                                   ;;
748
 
      --finish)         mode="finish"                                   ;;
749
 
 
750
 
      --mode)           test "$#" -eq 0 && func_missing_arg "$opt" && break
751
 
                        case $1 in
752
 
                          # Valid mode arguments:
753
 
                          clean)        ;;
754
 
                          compile)      ;;
755
 
                          execute)      ;;
756
 
                          finish)       ;;
757
 
                          install)      ;;
758
 
                          link)         ;;
759
 
                          relink)       ;;
760
 
                          uninstall)    ;;
761
 
 
762
 
                          # Catch anything else as an error
763
 
                          *) func_error "invalid argument for $opt"
764
 
                             exit_cmd=exit
765
 
                             break
766
 
                             ;;
767
 
                        esac
768
 
 
769
 
                        mode="$1"
770
 
                        shift
771
 
                        ;;
772
 
 
773
 
      --preserve-dup-deps)
774
 
                        opt_duplicate_deps=:                            ;;
775
 
 
776
 
      --quiet|--silent) preserve_args="$preserve_args $opt"
777
 
                        opt_silent=:
778
 
                        ;;
779
 
 
780
 
      --verbose| -v)    preserve_args="$preserve_args $opt"
781
 
                        opt_silent=false
782
 
                        ;;
783
 
 
784
 
      --tag)            test "$#" -eq 0 && func_missing_arg "$opt" && break
785
 
                        preserve_args="$preserve_args $opt $1"
786
 
                        func_enable_tag "$1"    # tagname is set here
787
 
                        shift
788
 
                        ;;
789
 
 
790
 
      # Separate optargs to long options:
791
 
      -dlopen=*|--mode=*|--tag=*)
792
 
                        func_opt_split "$opt"
793
 
                        set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
794
 
                        shift
795
 
                        ;;
796
 
 
797
 
      -\?|-h)           func_usage                                      ;;
798
 
      --help)           opt_help=:                                      ;;
799
 
      --version)        func_version                                    ;;
800
 
 
801
 
      -*)               func_fatal_help "unrecognized option \`$opt'"   ;;
802
 
 
803
 
      *)                nonopt="$opt"
804
 
                        break
805
 
                        ;;
806
 
    esac
807
 
  done
808
 
 
809
 
 
810
 
  case $host in
811
 
    *cygwin* | *mingw* | *pw32* | *cegcc*)
812
 
      # don't eliminate duplications in $postdeps and $predeps
813
 
      opt_duplicate_compiler_generated_deps=:
814
 
      ;;
815
 
    *)
816
 
      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
817
 
      ;;
818
 
  esac
819
 
 
820
 
  # Having warned about all mis-specified options, bail out if
821
 
  # anything was wrong.
822
 
  $exit_cmd $EXIT_FAILURE
823
 
}
824
 
 
825
982
# func_check_version_match
826
983
# Ensure that we are using m4 macros, and libtool script from the same
827
984
# release of libtool.
858
1015
}
859
1016
 
860
1017
 
 
1018
# Shorthand for --mode=foo, only valid as the first argument
 
1019
case $1 in
 
1020
clean|clea|cle|cl)
 
1021
  shift; set dummy --mode clean ${1+"$@"}; shift
 
1022
  ;;
 
1023
compile|compil|compi|comp|com|co|c)
 
1024
  shift; set dummy --mode compile ${1+"$@"}; shift
 
1025
  ;;
 
1026
execute|execut|execu|exec|exe|ex|e)
 
1027
  shift; set dummy --mode execute ${1+"$@"}; shift
 
1028
  ;;
 
1029
finish|finis|fini|fin|fi|f)
 
1030
  shift; set dummy --mode finish ${1+"$@"}; shift
 
1031
  ;;
 
1032
install|instal|insta|inst|ins|in|i)
 
1033
  shift; set dummy --mode install ${1+"$@"}; shift
 
1034
  ;;
 
1035
link|lin|li|l)
 
1036
  shift; set dummy --mode link ${1+"$@"}; shift
 
1037
  ;;
 
1038
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
 
1039
  shift; set dummy --mode uninstall ${1+"$@"}; shift
 
1040
  ;;
 
1041
esac
 
1042
 
 
1043
 
 
1044
 
 
1045
# Option defaults:
 
1046
opt_debug=:
 
1047
opt_dry_run=false
 
1048
opt_config=false
 
1049
opt_preserve_dup_deps=false
 
1050
opt_features=false
 
1051
opt_finish=false
 
1052
opt_help=false
 
1053
opt_help_all=false
 
1054
opt_silent=:
 
1055
opt_verbose=:
 
1056
opt_silent=false
 
1057
opt_verbose=false
 
1058
 
 
1059
 
 
1060
# Parse options once, thoroughly.  This comes as soon as possible in the
 
1061
# script to make things like `--version' happen as quickly as we can.
 
1062
{
 
1063
  # this just eases exit handling
 
1064
  while test $# -gt 0; do
 
1065
    opt="$1"
 
1066
    shift
 
1067
    case $opt in
 
1068
      --debug|-x)       opt_debug='set -x'
 
1069
                        func_echo "enabling shell trace mode"
 
1070
                        $opt_debug
 
1071
                        ;;
 
1072
      --dry-run|--dryrun|-n)
 
1073
                        opt_dry_run=:
 
1074
                        ;;
 
1075
      --config)
 
1076
                        opt_config=:
 
1077
func_config
 
1078
                        ;;
 
1079
      --dlopen|-dlopen)
 
1080
                        optarg="$1"
 
1081
                        opt_dlopen="${opt_dlopen+$opt_dlopen
 
1082
}$optarg"
 
1083
                        shift
 
1084
                        ;;
 
1085
      --preserve-dup-deps)
 
1086
                        opt_preserve_dup_deps=:
 
1087
                        ;;
 
1088
      --features)
 
1089
                        opt_features=:
 
1090
func_features
 
1091
                        ;;
 
1092
      --finish)
 
1093
                        opt_finish=:
 
1094
set dummy --mode finish ${1+"$@"}; shift
 
1095
                        ;;
 
1096
      --help)
 
1097
                        opt_help=:
 
1098
                        ;;
 
1099
      --help-all)
 
1100
                        opt_help_all=:
 
1101
opt_help=': help-all'
 
1102
                        ;;
 
1103
      --mode)
 
1104
                        test $# = 0 && func_missing_arg $opt && break
 
1105
                        optarg="$1"
 
1106
                        opt_mode="$optarg"
 
1107
case $optarg in
 
1108
  # Valid mode arguments:
 
1109
  clean|compile|execute|finish|install|link|relink|uninstall) ;;
 
1110
 
 
1111
  # Catch anything else as an error
 
1112
  *) func_error "invalid argument for $opt"
 
1113
     exit_cmd=exit
 
1114
     break
 
1115
     ;;
 
1116
esac
 
1117
                        shift
 
1118
                        ;;
 
1119
      --no-silent|--no-quiet)
 
1120
                        opt_silent=false
 
1121
func_append preserve_args " $opt"
 
1122
                        ;;
 
1123
      --no-verbose)
 
1124
                        opt_verbose=false
 
1125
func_append preserve_args " $opt"
 
1126
                        ;;
 
1127
      --silent|--quiet)
 
1128
                        opt_silent=:
 
1129
func_append preserve_args " $opt"
 
1130
        opt_verbose=false
 
1131
                        ;;
 
1132
      --verbose|-v)
 
1133
                        opt_verbose=:
 
1134
func_append preserve_args " $opt"
 
1135
opt_silent=false
 
1136
                        ;;
 
1137
      --tag)
 
1138
                        test $# = 0 && func_missing_arg $opt && break
 
1139
                        optarg="$1"
 
1140
                        opt_tag="$optarg"
 
1141
func_append preserve_args " $opt $optarg"
 
1142
func_enable_tag "$optarg"
 
1143
                        shift
 
1144
                        ;;
 
1145
 
 
1146
      -\?|-h)           func_usage                              ;;
 
1147
      --help)           func_help                               ;;
 
1148
      --version)        func_version                            ;;
 
1149
 
 
1150
      # Separate optargs to long options:
 
1151
      --*=*)
 
1152
                        func_split_long_opt "$opt"
 
1153
                        set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
 
1154
                        shift
 
1155
                        ;;
 
1156
 
 
1157
      # Separate non-argument short options:
 
1158
      -\?*|-h*|-n*|-v*)
 
1159
                        func_split_short_opt "$opt"
 
1160
                        set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
 
1161
                        shift
 
1162
                        ;;
 
1163
 
 
1164
      --)               break                                   ;;
 
1165
      -*)               func_fatal_help "unrecognized option \`$opt'" ;;
 
1166
      *)                set dummy "$opt" ${1+"$@"};     shift; break  ;;
 
1167
    esac
 
1168
  done
 
1169
 
 
1170
  # Validate options:
 
1171
 
 
1172
  # save first non-option argument
 
1173
  if test "$#" -gt 0; then
 
1174
    nonopt="$opt"
 
1175
    shift
 
1176
  fi
 
1177
 
 
1178
  # preserve --debug
 
1179
  test "$opt_debug" = : || func_append preserve_args " --debug"
 
1180
 
 
1181
  case $host in
 
1182
    *cygwin* | *mingw* | *pw32* | *cegcc*)
 
1183
      # don't eliminate duplications in $postdeps and $predeps
 
1184
      opt_duplicate_compiler_generated_deps=:
 
1185
      ;;
 
1186
    *)
 
1187
      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
 
1188
      ;;
 
1189
  esac
 
1190
 
 
1191
  $opt_help || {
 
1192
    # Sanity checks first:
 
1193
    func_check_version_match
 
1194
 
 
1195
    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 
1196
      func_fatal_configuration "not configured to build any kind of library"
 
1197
    fi
 
1198
 
 
1199
    # Darwin sucks
 
1200
    eval std_shrext=\"$shrext_cmds\"
 
1201
 
 
1202
    # Only execute mode is allowed to have -dlopen flags.
 
1203
    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
 
1204
      func_error "unrecognized option \`-dlopen'"
 
1205
      $ECHO "$help" 1>&2
 
1206
      exit $EXIT_FAILURE
 
1207
    fi
 
1208
 
 
1209
    # Change the help message to a mode-specific one.
 
1210
    generic_help="$help"
 
1211
    help="Try \`$progname --help --mode=$opt_mode' for more information."
 
1212
  }
 
1213
 
 
1214
 
 
1215
  # Bail if the options were screwed
 
1216
  $exit_cmd $EXIT_FAILURE
 
1217
}
 
1218
 
 
1219
 
 
1220
 
 
1221
 
861
1222
## ----------- ##
862
1223
##    Main.    ##
863
1224
## ----------- ##
864
1225
 
865
 
$opt_help || {
866
 
  # Sanity checks first:
867
 
  func_check_version_match
868
 
 
869
 
  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
870
 
    func_fatal_configuration "not configured to build any kind of library"
871
 
  fi
872
 
 
873
 
  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
874
 
 
875
 
 
876
 
  # Darwin sucks
877
 
  eval std_shrext=\"$shrext_cmds\"
878
 
 
879
 
 
880
 
  # Only execute mode is allowed to have -dlopen flags.
881
 
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
882
 
    func_error "unrecognized option \`-dlopen'"
883
 
    $ECHO "$help" 1>&2
884
 
    exit $EXIT_FAILURE
885
 
  fi
886
 
 
887
 
  # Change the help message to a mode-specific one.
888
 
  generic_help="$help"
889
 
  help="Try \`$progname --help --mode=$mode' for more information."
890
 
}
891
 
 
892
 
 
893
1226
# func_lalib_p file
894
1227
# True iff FILE is a libtool `.la' library or `.lo' object file.
895
1228
# This function is only a basic sanity check; it will hardly flush out
953
1286
# temporary ltwrapper_script.
954
1287
func_ltwrapper_scriptname ()
955
1288
{
956
 
    func_ltwrapper_scriptname_result=""
957
 
    if func_ltwrapper_executable_p "$1"; then
958
 
        func_dirname_and_basename "$1" "" "."
959
 
        func_stripname '' '.exe' "$func_basename_result"
960
 
        func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
961
 
    fi
 
1289
    func_dirname_and_basename "$1" "" "."
 
1290
    func_stripname '' '.exe' "$func_basename_result"
 
1291
    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
962
1292
}
963
1293
 
964
1294
# func_ltwrapper_p file
1004
1334
}
1005
1335
 
1006
1336
 
 
1337
# func_resolve_sysroot PATH
 
1338
# Replace a leading = in PATH with a sysroot.  Store the result into
 
1339
# func_resolve_sysroot_result
 
1340
func_resolve_sysroot ()
 
1341
{
 
1342
  func_resolve_sysroot_result=$1
 
1343
  case $func_resolve_sysroot_result in
 
1344
  =*)
 
1345
    func_stripname '=' '' "$func_resolve_sysroot_result"
 
1346
    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
 
1347
    ;;
 
1348
  esac
 
1349
}
 
1350
 
 
1351
# func_replace_sysroot PATH
 
1352
# If PATH begins with the sysroot, replace it with = and
 
1353
# store the result into func_replace_sysroot_result.
 
1354
func_replace_sysroot ()
 
1355
{
 
1356
  case "$lt_sysroot:$1" in
 
1357
  ?*:"$lt_sysroot"*)
 
1358
    func_stripname "$lt_sysroot" '' "$1"
 
1359
    func_replace_sysroot_result="=$func_stripname_result"
 
1360
    ;;
 
1361
  *)
 
1362
    # Including no sysroot.
 
1363
    func_replace_sysroot_result=$1
 
1364
    ;;
 
1365
  esac
 
1366
}
 
1367
 
1007
1368
# func_infer_tag arg
1008
1369
# Infer tagged configuration to use if any are available and
1009
1370
# if one wasn't chosen via the "--tag" command line option.
1016
1377
    if test -n "$available_tags" && test -z "$tagname"; then
1017
1378
      CC_quoted=
1018
1379
      for arg in $CC; do
1019
 
        func_quote_for_eval "$arg"
1020
 
        CC_quoted="$CC_quoted $func_quote_for_eval_result"
 
1380
        func_append_quoted CC_quoted "$arg"
1021
1381
      done
 
1382
      CC_expanded=`func_echo_all $CC`
 
1383
      CC_quoted_expanded=`func_echo_all $CC_quoted`
1022
1384
      case $@ in
1023
1385
      # Blanks in the command may have been stripped by the calling shell,
1024
1386
      # but not from the CC environment variable when configure was run.
1025
 
      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
 
1387
      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
 
1388
      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1026
1389
      # Blanks at the start of $base_compile will cause this to fail
1027
1390
      # if we don't check for them as well.
1028
1391
      *)
1033
1396
            CC_quoted=
1034
1397
            for arg in $CC; do
1035
1398
              # Double-quote args containing other shell metacharacters.
1036
 
              func_quote_for_eval "$arg"
1037
 
              CC_quoted="$CC_quoted $func_quote_for_eval_result"
 
1399
              func_append_quoted CC_quoted "$arg"
1038
1400
            done
 
1401
            CC_expanded=`func_echo_all $CC`
 
1402
            CC_quoted_expanded=`func_echo_all $CC_quoted`
1039
1403
            case "$@ " in
1040
 
              " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
 
1404
            " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
 
1405
            " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1041
1406
              # The compiler in the base compile command matches
1042
1407
              # the one in the tagged configuration.
1043
1408
              # Assume this is the tagged configuration we want.
1100
1465
    }
1101
1466
}
1102
1467
 
 
1468
 
 
1469
##################################################
 
1470
# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
 
1471
##################################################
 
1472
 
 
1473
# func_convert_core_file_wine_to_w32 ARG
 
1474
# Helper function used by file name conversion functions when $build is *nix,
 
1475
# and $host is mingw, cygwin, or some other w32 environment. Relies on a
 
1476
# correctly configured wine environment available, with the winepath program
 
1477
# in $build's $PATH.
 
1478
#
 
1479
# ARG is the $build file name to be converted to w32 format.
 
1480
# Result is available in $func_convert_core_file_wine_to_w32_result, and will
 
1481
# be empty on error (or when ARG is empty)
 
1482
func_convert_core_file_wine_to_w32 ()
 
1483
{
 
1484
  $opt_debug
 
1485
  func_convert_core_file_wine_to_w32_result="$1"
 
1486
  if test -n "$1"; then
 
1487
    # Unfortunately, winepath does not exit with a non-zero error code, so we
 
1488
    # are forced to check the contents of stdout. On the other hand, if the
 
1489
    # command is not found, the shell will set an exit code of 127 and print
 
1490
    # *an error message* to stdout. So we must check for both error code of
 
1491
    # zero AND non-empty stdout, which explains the odd construction:
 
1492
    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
 
1493
    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
 
1494
      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
 
1495
        $SED -e "$lt_sed_naive_backslashify"`
 
1496
    else
 
1497
      func_convert_core_file_wine_to_w32_result=
 
1498
    fi
 
1499
  fi
 
1500
}
 
1501
# end: func_convert_core_file_wine_to_w32
 
1502
 
 
1503
 
 
1504
# func_convert_core_path_wine_to_w32 ARG
 
1505
# Helper function used by path conversion functions when $build is *nix, and
 
1506
# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
 
1507
# configured wine environment available, with the winepath program in $build's
 
1508
# $PATH. Assumes ARG has no leading or trailing path separator characters.
 
1509
#
 
1510
# ARG is path to be converted from $build format to win32.
 
1511
# Result is available in $func_convert_core_path_wine_to_w32_result.
 
1512
# Unconvertible file (directory) names in ARG are skipped; if no directory names
 
1513
# are convertible, then the result may be empty.
 
1514
func_convert_core_path_wine_to_w32 ()
 
1515
{
 
1516
  $opt_debug
 
1517
  # unfortunately, winepath doesn't convert paths, only file names
 
1518
  func_convert_core_path_wine_to_w32_result=""
 
1519
  if test -n "$1"; then
 
1520
    oldIFS=$IFS
 
1521
    IFS=:
 
1522
    for func_convert_core_path_wine_to_w32_f in $1; do
 
1523
      IFS=$oldIFS
 
1524
      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
 
1525
      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
 
1526
        if test -z "$func_convert_core_path_wine_to_w32_result"; then
 
1527
          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
 
1528
        else
 
1529
          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
 
1530
        fi
 
1531
      fi
 
1532
    done
 
1533
    IFS=$oldIFS
 
1534
  fi
 
1535
}
 
1536
# end: func_convert_core_path_wine_to_w32
 
1537
 
 
1538
 
 
1539
# func_cygpath ARGS...
 
1540
# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
 
1541
# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
 
1542
# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
 
1543
# (2), returns the Cygwin file name or path in func_cygpath_result (input
 
1544
# file name or path is assumed to be in w32 format, as previously converted
 
1545
# from $build's *nix or MSYS format). In case (3), returns the w32 file name
 
1546
# or path in func_cygpath_result (input file name or path is assumed to be in
 
1547
# Cygwin format). Returns an empty string on error.
 
1548
#
 
1549
# ARGS are passed to cygpath, with the last one being the file name or path to
 
1550
# be converted.
 
1551
#
 
1552
# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
 
1553
# environment variable; do not put it in $PATH.
 
1554
func_cygpath ()
 
1555
{
 
1556
  $opt_debug
 
1557
  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
 
1558
    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
 
1559
    if test "$?" -ne 0; then
 
1560
      # on failure, ensure result is empty
 
1561
      func_cygpath_result=
 
1562
    fi
 
1563
  else
 
1564
    func_cygpath_result=
 
1565
    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
 
1566
  fi
 
1567
}
 
1568
#end: func_cygpath
 
1569
 
 
1570
 
 
1571
# func_convert_core_msys_to_w32 ARG
 
1572
# Convert file name or path ARG from MSYS format to w32 format.  Return
 
1573
# result in func_convert_core_msys_to_w32_result.
 
1574
func_convert_core_msys_to_w32 ()
 
1575
{
 
1576
  $opt_debug
 
1577
  # awkward: cmd appends spaces to result
 
1578
  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
 
1579
    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
 
1580
}
 
1581
#end: func_convert_core_msys_to_w32
 
1582
 
 
1583
 
 
1584
# func_convert_file_check ARG1 ARG2
 
1585
# Verify that ARG1 (a file name in $build format) was converted to $host
 
1586
# format in ARG2. Otherwise, emit an error message, but continue (resetting
 
1587
# func_to_host_file_result to ARG1).
 
1588
func_convert_file_check ()
 
1589
{
 
1590
  $opt_debug
 
1591
  if test -z "$2" && test -n "$1" ; then
 
1592
    func_error "Could not determine host file name corresponding to"
 
1593
    func_error "  \`$1'"
 
1594
    func_error "Continuing, but uninstalled executables may not work."
 
1595
    # Fallback:
 
1596
    func_to_host_file_result="$1"
 
1597
  fi
 
1598
}
 
1599
# end func_convert_file_check
 
1600
 
 
1601
 
 
1602
# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
 
1603
# Verify that FROM_PATH (a path in $build format) was converted to $host
 
1604
# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
 
1605
# func_to_host_file_result to a simplistic fallback value (see below).
 
1606
func_convert_path_check ()
 
1607
{
 
1608
  $opt_debug
 
1609
  if test -z "$4" && test -n "$3"; then
 
1610
    func_error "Could not determine the host path corresponding to"
 
1611
    func_error "  \`$3'"
 
1612
    func_error "Continuing, but uninstalled executables may not work."
 
1613
    # Fallback.  This is a deliberately simplistic "conversion" and
 
1614
    # should not be "improved".  See libtool.info.
 
1615
    if test "x$1" != "x$2"; then
 
1616
      lt_replace_pathsep_chars="s|$1|$2|g"
 
1617
      func_to_host_path_result=`echo "$3" |
 
1618
        $SED -e "$lt_replace_pathsep_chars"`
 
1619
    else
 
1620
      func_to_host_path_result="$3"
 
1621
    fi
 
1622
  fi
 
1623
}
 
1624
# end func_convert_path_check
 
1625
 
 
1626
 
 
1627
# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
 
1628
# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
 
1629
# and appending REPL if ORIG matches BACKPAT.
 
1630
func_convert_path_front_back_pathsep ()
 
1631
{
 
1632
  $opt_debug
 
1633
  case $4 in
 
1634
  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
 
1635
    ;;
 
1636
  esac
 
1637
  case $4 in
 
1638
  $2 ) func_append func_to_host_path_result "$3"
 
1639
    ;;
 
1640
  esac
 
1641
}
 
1642
# end func_convert_path_front_back_pathsep
 
1643
 
 
1644
 
 
1645
##################################################
 
1646
# $build to $host FILE NAME CONVERSION FUNCTIONS #
 
1647
##################################################
 
1648
# invoked via `$to_host_file_cmd ARG'
 
1649
#
 
1650
# In each case, ARG is the path to be converted from $build to $host format.
 
1651
# Result will be available in $func_to_host_file_result.
 
1652
 
 
1653
 
 
1654
# func_to_host_file ARG
 
1655
# Converts the file name ARG from $build format to $host format. Return result
 
1656
# in func_to_host_file_result.
 
1657
func_to_host_file ()
 
1658
{
 
1659
  $opt_debug
 
1660
  $to_host_file_cmd "$1"
 
1661
}
 
1662
# end func_to_host_file
 
1663
 
 
1664
 
 
1665
# func_to_tool_file ARG LAZY
 
1666
# converts the file name ARG from $build format to toolchain format. Return
 
1667
# result in func_to_tool_file_result.  If the conversion in use is listed
 
1668
# in (the comma separated) LAZY, no conversion takes place.
 
1669
func_to_tool_file ()
 
1670
{
 
1671
  $opt_debug
 
1672
  case ,$2, in
 
1673
    *,"$to_tool_file_cmd",*)
 
1674
      func_to_tool_file_result=$1
 
1675
      ;;
 
1676
    *)
 
1677
      $to_tool_file_cmd "$1"
 
1678
      func_to_tool_file_result=$func_to_host_file_result
 
1679
      ;;
 
1680
  esac
 
1681
}
 
1682
# end func_to_tool_file
 
1683
 
 
1684
 
 
1685
# func_convert_file_noop ARG
 
1686
# Copy ARG to func_to_host_file_result.
 
1687
func_convert_file_noop ()
 
1688
{
 
1689
  func_to_host_file_result="$1"
 
1690
}
 
1691
# end func_convert_file_noop
 
1692
 
 
1693
 
 
1694
# func_convert_file_msys_to_w32 ARG
 
1695
# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
 
1696
# conversion to w32 is not available inside the cwrapper.  Returns result in
 
1697
# func_to_host_file_result.
 
1698
func_convert_file_msys_to_w32 ()
 
1699
{
 
1700
  $opt_debug
 
1701
  func_to_host_file_result="$1"
 
1702
  if test -n "$1"; then
 
1703
    func_convert_core_msys_to_w32 "$1"
 
1704
    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
 
1705
  fi
 
1706
  func_convert_file_check "$1" "$func_to_host_file_result"
 
1707
}
 
1708
# end func_convert_file_msys_to_w32
 
1709
 
 
1710
 
 
1711
# func_convert_file_cygwin_to_w32 ARG
 
1712
# Convert file name ARG from Cygwin to w32 format.  Returns result in
 
1713
# func_to_host_file_result.
 
1714
func_convert_file_cygwin_to_w32 ()
 
1715
{
 
1716
  $opt_debug
 
1717
  func_to_host_file_result="$1"
 
1718
  if test -n "$1"; then
 
1719
    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
 
1720
    # LT_CYGPATH in this case.
 
1721
    func_to_host_file_result=`cygpath -m "$1"`
 
1722
  fi
 
1723
  func_convert_file_check "$1" "$func_to_host_file_result"
 
1724
}
 
1725
# end func_convert_file_cygwin_to_w32
 
1726
 
 
1727
 
 
1728
# func_convert_file_nix_to_w32 ARG
 
1729
# Convert file name ARG from *nix to w32 format.  Requires a wine environment
 
1730
# and a working winepath. Returns result in func_to_host_file_result.
 
1731
func_convert_file_nix_to_w32 ()
 
1732
{
 
1733
  $opt_debug
 
1734
  func_to_host_file_result="$1"
 
1735
  if test -n "$1"; then
 
1736
    func_convert_core_file_wine_to_w32 "$1"
 
1737
    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
 
1738
  fi
 
1739
  func_convert_file_check "$1" "$func_to_host_file_result"
 
1740
}
 
1741
# end func_convert_file_nix_to_w32
 
1742
 
 
1743
 
 
1744
# func_convert_file_msys_to_cygwin ARG
 
1745
# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
 
1746
# Returns result in func_to_host_file_result.
 
1747
func_convert_file_msys_to_cygwin ()
 
1748
{
 
1749
  $opt_debug
 
1750
  func_to_host_file_result="$1"
 
1751
  if test -n "$1"; then
 
1752
    func_convert_core_msys_to_w32 "$1"
 
1753
    func_cygpath -u "$func_convert_core_msys_to_w32_result"
 
1754
    func_to_host_file_result="$func_cygpath_result"
 
1755
  fi
 
1756
  func_convert_file_check "$1" "$func_to_host_file_result"
 
1757
}
 
1758
# end func_convert_file_msys_to_cygwin
 
1759
 
 
1760
 
 
1761
# func_convert_file_nix_to_cygwin ARG
 
1762
# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
 
1763
# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
 
1764
# in func_to_host_file_result.
 
1765
func_convert_file_nix_to_cygwin ()
 
1766
{
 
1767
  $opt_debug
 
1768
  func_to_host_file_result="$1"
 
1769
  if test -n "$1"; then
 
1770
    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
 
1771
    func_convert_core_file_wine_to_w32 "$1"
 
1772
    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
 
1773
    func_to_host_file_result="$func_cygpath_result"
 
1774
  fi
 
1775
  func_convert_file_check "$1" "$func_to_host_file_result"
 
1776
}
 
1777
# end func_convert_file_nix_to_cygwin
 
1778
 
 
1779
 
 
1780
#############################################
 
1781
# $build to $host PATH CONVERSION FUNCTIONS #
 
1782
#############################################
 
1783
# invoked via `$to_host_path_cmd ARG'
 
1784
#
 
1785
# In each case, ARG is the path to be converted from $build to $host format.
 
1786
# The result will be available in $func_to_host_path_result.
 
1787
#
 
1788
# Path separators are also converted from $build format to $host format.  If
 
1789
# ARG begins or ends with a path separator character, it is preserved (but
 
1790
# converted to $host format) on output.
 
1791
#
 
1792
# All path conversion functions are named using the following convention:
 
1793
#   file name conversion function    : func_convert_file_X_to_Y ()
 
1794
#   path conversion function         : func_convert_path_X_to_Y ()
 
1795
# where, for any given $build/$host combination the 'X_to_Y' value is the
 
1796
# same.  If conversion functions are added for new $build/$host combinations,
 
1797
# the two new functions must follow this pattern, or func_init_to_host_path_cmd
 
1798
# will break.
 
1799
 
 
1800
 
 
1801
# func_init_to_host_path_cmd
 
1802
# Ensures that function "pointer" variable $to_host_path_cmd is set to the
 
1803
# appropriate value, based on the value of $to_host_file_cmd.
 
1804
to_host_path_cmd=
 
1805
func_init_to_host_path_cmd ()
 
1806
{
 
1807
  $opt_debug
 
1808
  if test -z "$to_host_path_cmd"; then
 
1809
    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
 
1810
    to_host_path_cmd="func_convert_path_${func_stripname_result}"
 
1811
  fi
 
1812
}
 
1813
 
 
1814
 
 
1815
# func_to_host_path ARG
 
1816
# Converts the path ARG from $build format to $host format. Return result
 
1817
# in func_to_host_path_result.
 
1818
func_to_host_path ()
 
1819
{
 
1820
  $opt_debug
 
1821
  func_init_to_host_path_cmd
 
1822
  $to_host_path_cmd "$1"
 
1823
}
 
1824
# end func_to_host_path
 
1825
 
 
1826
 
 
1827
# func_convert_path_noop ARG
 
1828
# Copy ARG to func_to_host_path_result.
 
1829
func_convert_path_noop ()
 
1830
{
 
1831
  func_to_host_path_result="$1"
 
1832
}
 
1833
# end func_convert_path_noop
 
1834
 
 
1835
 
 
1836
# func_convert_path_msys_to_w32 ARG
 
1837
# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
 
1838
# conversion to w32 is not available inside the cwrapper.  Returns result in
 
1839
# func_to_host_path_result.
 
1840
func_convert_path_msys_to_w32 ()
 
1841
{
 
1842
  $opt_debug
 
1843
  func_to_host_path_result="$1"
 
1844
  if test -n "$1"; then
 
1845
    # Remove leading and trailing path separator characters from ARG.  MSYS
 
1846
    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
 
1847
    # and winepath ignores them completely.
 
1848
    func_stripname : : "$1"
 
1849
    func_to_host_path_tmp1=$func_stripname_result
 
1850
    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
 
1851
    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
 
1852
    func_convert_path_check : ";" \
 
1853
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 
1854
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
 
1855
  fi
 
1856
}
 
1857
# end func_convert_path_msys_to_w32
 
1858
 
 
1859
 
 
1860
# func_convert_path_cygwin_to_w32 ARG
 
1861
# Convert path ARG from Cygwin to w32 format.  Returns result in
 
1862
# func_to_host_file_result.
 
1863
func_convert_path_cygwin_to_w32 ()
 
1864
{
 
1865
  $opt_debug
 
1866
  func_to_host_path_result="$1"
 
1867
  if test -n "$1"; then
 
1868
    # See func_convert_path_msys_to_w32:
 
1869
    func_stripname : : "$1"
 
1870
    func_to_host_path_tmp1=$func_stripname_result
 
1871
    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
 
1872
    func_convert_path_check : ";" \
 
1873
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 
1874
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
 
1875
  fi
 
1876
}
 
1877
# end func_convert_path_cygwin_to_w32
 
1878
 
 
1879
 
 
1880
# func_convert_path_nix_to_w32 ARG
 
1881
# Convert path ARG from *nix to w32 format.  Requires a wine environment and
 
1882
# a working winepath.  Returns result in func_to_host_file_result.
 
1883
func_convert_path_nix_to_w32 ()
 
1884
{
 
1885
  $opt_debug
 
1886
  func_to_host_path_result="$1"
 
1887
  if test -n "$1"; then
 
1888
    # See func_convert_path_msys_to_w32:
 
1889
    func_stripname : : "$1"
 
1890
    func_to_host_path_tmp1=$func_stripname_result
 
1891
    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
 
1892
    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
 
1893
    func_convert_path_check : ";" \
 
1894
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 
1895
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
 
1896
  fi
 
1897
}
 
1898
# end func_convert_path_nix_to_w32
 
1899
 
 
1900
 
 
1901
# func_convert_path_msys_to_cygwin ARG
 
1902
# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
 
1903
# Returns result in func_to_host_file_result.
 
1904
func_convert_path_msys_to_cygwin ()
 
1905
{
 
1906
  $opt_debug
 
1907
  func_to_host_path_result="$1"
 
1908
  if test -n "$1"; then
 
1909
    # See func_convert_path_msys_to_w32:
 
1910
    func_stripname : : "$1"
 
1911
    func_to_host_path_tmp1=$func_stripname_result
 
1912
    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
 
1913
    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
 
1914
    func_to_host_path_result="$func_cygpath_result"
 
1915
    func_convert_path_check : : \
 
1916
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 
1917
    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
 
1918
  fi
 
1919
}
 
1920
# end func_convert_path_msys_to_cygwin
 
1921
 
 
1922
 
 
1923
# func_convert_path_nix_to_cygwin ARG
 
1924
# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
 
1925
# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
 
1926
# func_to_host_file_result.
 
1927
func_convert_path_nix_to_cygwin ()
 
1928
{
 
1929
  $opt_debug
 
1930
  func_to_host_path_result="$1"
 
1931
  if test -n "$1"; then
 
1932
    # Remove leading and trailing path separator characters from
 
1933
    # ARG. msys behavior is inconsistent here, cygpath turns them
 
1934
    # into '.;' and ';.', and winepath ignores them completely.
 
1935
    func_stripname : : "$1"
 
1936
    func_to_host_path_tmp1=$func_stripname_result
 
1937
    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
 
1938
    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
 
1939
    func_to_host_path_result="$func_cygpath_result"
 
1940
    func_convert_path_check : : \
 
1941
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
 
1942
    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
 
1943
  fi
 
1944
}
 
1945
# end func_convert_path_nix_to_cygwin
 
1946
 
 
1947
 
1103
1948
# func_mode_compile arg...
1104
1949
func_mode_compile ()
1105
1950
{
1140
1985
          ;;
1141
1986
 
1142
1987
        -pie | -fpie | -fPIE)
1143
 
          pie_flag="$pie_flag $arg"
 
1988
          func_append pie_flag " $arg"
1144
1989
          continue
1145
1990
          ;;
1146
1991
 
1147
1992
        -shared | -static | -prefer-pic | -prefer-non-pic)
1148
 
          later="$later $arg"
 
1993
          func_append later " $arg"
1149
1994
          continue
1150
1995
          ;;
1151
1996
 
1166
2011
          save_ifs="$IFS"; IFS=','
1167
2012
          for arg in $args; do
1168
2013
            IFS="$save_ifs"
1169
 
            func_quote_for_eval "$arg"
1170
 
            lastarg="$lastarg $func_quote_for_eval_result"
 
2014
            func_append_quoted lastarg "$arg"
1171
2015
          done
1172
2016
          IFS="$save_ifs"
1173
2017
          func_stripname ' ' '' "$lastarg"
1174
2018
          lastarg=$func_stripname_result
1175
2019
 
1176
2020
          # Add the arguments to base_compile.
1177
 
          base_compile="$base_compile $lastarg"
 
2021
          func_append base_compile " $lastarg"
1178
2022
          continue
1179
2023
          ;;
1180
2024
 
1190
2034
      esac    #  case $arg_mode
1191
2035
 
1192
2036
      # Aesthetically quote the previous argument.
1193
 
      func_quote_for_eval "$lastarg"
1194
 
      base_compile="$base_compile $func_quote_for_eval_result"
 
2037
      func_append_quoted base_compile "$lastarg"
1195
2038
    done # for arg
1196
2039
 
1197
2040
    case $arg_mode in
1216
2059
    *.[cCFSifmso] | \
1217
2060
    *.ada | *.adb | *.ads | *.asm | \
1218
2061
    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
1219
 
    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
 
2062
    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
1220
2063
      func_xform "$libobj"
1221
2064
      libobj=$func_xform_result
1222
2065
      ;;
1291
2134
    # Calculate the filename of the output object if compiler does
1292
2135
    # not support -o with -c
1293
2136
    if test "$compiler_c_o" = no; then
1294
 
      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 
2137
      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
1295
2138
      lockfile="$output_obj.lock"
1296
2139
    else
1297
2140
      output_obj=
1322
2165
        $opt_dry_run || $RM $removelist
1323
2166
        exit $EXIT_FAILURE
1324
2167
      fi
1325
 
      removelist="$removelist $output_obj"
 
2168
      func_append removelist " $output_obj"
1326
2169
      $ECHO "$srcfile" > "$lockfile"
1327
2170
    fi
1328
2171
 
1329
2172
    $opt_dry_run || $RM $removelist
1330
 
    removelist="$removelist $lockfile"
 
2173
    func_append removelist " $lockfile"
1331
2174
    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
1332
2175
 
1333
 
    if test -n "$fix_srcfile_path"; then
1334
 
      eval srcfile=\"$fix_srcfile_path\"
1335
 
    fi
 
2176
    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
 
2177
    srcfile=$func_to_tool_file_result
1336
2178
    func_quote_for_eval "$srcfile"
1337
2179
    qsrcfile=$func_quote_for_eval_result
1338
2180
 
1352
2194
 
1353
2195
      if test -z "$output_obj"; then
1354
2196
        # Place PIC objects in $objdir
1355
 
        command="$command -o $lobj"
 
2197
        func_append command " -o $lobj"
1356
2198
      fi
1357
2199
 
1358
2200
      func_show_eval_locale "$command"  \
1399
2241
        command="$base_compile $qsrcfile $pic_flag"
1400
2242
      fi
1401
2243
      if test "$compiler_c_o" = yes; then
1402
 
        command="$command -o $obj"
 
2244
        func_append command " -o $obj"
1403
2245
      fi
1404
2246
 
1405
2247
      # Suppress compiler output if we already did a PIC compilation.
1406
 
      command="$command$suppress_output"
 
2248
      func_append command "$suppress_output"
1407
2249
      func_show_eval_locale "$command" \
1408
2250
        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1409
2251
 
1448
2290
}
1449
2291
 
1450
2292
$opt_help || {
1451
 
test "$mode" = compile && func_mode_compile ${1+"$@"}
 
2293
  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
1452
2294
}
1453
2295
 
1454
2296
func_mode_help ()
1455
2297
{
1456
2298
    # We need to display help for each of the modes.
1457
 
    case $mode in
 
2299
    case $opt_mode in
1458
2300
      "")
1459
2301
        # Generic help is extracted from the usage comments
1460
2302
        # at the start of this file.
1485
2327
 
1486
2328
  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
1487
2329
  -no-suppress      do not suppress compiler output for multiple passes
1488
 
  -prefer-pic       try to building PIC objects only
1489
 
  -prefer-non-pic   try to building non-PIC objects only
 
2330
  -prefer-pic       try to build PIC objects only
 
2331
  -prefer-non-pic   try to build non-PIC objects only
1490
2332
  -shared           do not build a \`.o' file suitable for static linking
1491
2333
  -static           only build a \`.o' file suitable for static linking
 
2334
  -Wc,FLAG          pass FLAG directly to the compiler
1492
2335
 
1493
2336
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1494
2337
from the given SOURCEFILE.
1541
2384
 
1542
2385
The following components of INSTALL-COMMAND are treated specially:
1543
2386
 
1544
 
  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
2387
  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
1545
2388
 
1546
2389
The rest of the components are interpreted as arguments to that command (only
1547
2390
BSD-compatible install options are recognized)."
1561
2404
 
1562
2405
  -all-static       do not do any dynamic linking at all
1563
2406
  -avoid-version    do not add a version suffix if possible
 
2407
  -bindir BINDIR    specify path to binaries directory (for systems where
 
2408
                    libraries must be found in the PATH setting at runtime)
1564
2409
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
1565
2410
  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
1566
2411
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
1589
2434
  -version-info CURRENT[:REVISION[:AGE]]
1590
2435
                    specify library version info [each variable defaults to 0]
1591
2436
  -weak LIBNAME     declare that the target provides the LIBNAME interface
 
2437
  -Wc,FLAG
 
2438
  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
 
2439
  -Wl,FLAG
 
2440
  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
 
2441
  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
1592
2442
 
1593
2443
All other options (arguments beginning with \`-') are ignored.
1594
2444
 
1622
2472
        ;;
1623
2473
 
1624
2474
      *)
1625
 
        func_fatal_help "invalid operation mode \`$mode'"
 
2475
        func_fatal_help "invalid operation mode \`$opt_mode'"
1626
2476
        ;;
1627
2477
    esac
1628
2478
 
1629
 
    $ECHO
 
2479
    echo
1630
2480
    $ECHO "Try \`$progname --help' for more information about other modes."
1631
 
 
1632
 
    exit $?
1633
2481
}
1634
2482
 
1635
 
  # Now that we've collected a possible --mode arg, show help if necessary
1636
 
  $opt_help && func_mode_help
 
2483
# Now that we've collected a possible --mode arg, show help if necessary
 
2484
if $opt_help; then
 
2485
  if test "$opt_help" = :; then
 
2486
    func_mode_help
 
2487
  else
 
2488
    {
 
2489
      func_help noexit
 
2490
      for opt_mode in compile link execute install finish uninstall clean; do
 
2491
        func_mode_help
 
2492
      done
 
2493
    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
 
2494
    {
 
2495
      func_help noexit
 
2496
      for opt_mode in compile link execute install finish uninstall clean; do
 
2497
        echo
 
2498
        func_mode_help
 
2499
      done
 
2500
    } |
 
2501
    sed '1d
 
2502
      /^When reporting/,/^Report/{
 
2503
        H
 
2504
        d
 
2505
      }
 
2506
      $x
 
2507
      /information about other modes/d
 
2508
      /more detailed .*MODE/d
 
2509
      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
 
2510
  fi
 
2511
  exit $?
 
2512
fi
1637
2513
 
1638
2514
 
1639
2515
# func_mode_execute arg...
1646
2522
      func_fatal_help "you must specify a COMMAND"
1647
2523
 
1648
2524
    # Handle -dlopen flags immediately.
1649
 
    for file in $execute_dlfiles; do
 
2525
    for file in $opt_dlopen; do
1650
2526
      test -f "$file" \
1651
2527
        || func_fatal_help "\`$file' is not a file"
1652
2528
 
1653
2529
      dir=
1654
2530
      case $file in
1655
2531
      *.la)
 
2532
        func_resolve_sysroot "$file"
 
2533
        file=$func_resolve_sysroot_result
 
2534
 
1656
2535
        # Check to see that this really is a libtool archive.
1657
2536
        func_lalib_unsafe_p "$file" \
1658
2537
          || func_fatal_help "\`$lib' is not a valid libtool archive"
1674
2553
        dir="$func_dirname_result"
1675
2554
 
1676
2555
        if test -f "$dir/$objdir/$dlname"; then
1677
 
          dir="$dir/$objdir"
 
2556
          func_append dir "/$objdir"
1678
2557
        else
1679
2558
          if test ! -f "$dir/$dlname"; then
1680
2559
            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
1715
2594
    for file
1716
2595
    do
1717
2596
      case $file in
1718
 
      -*) ;;
 
2597
      -* | *.la | *.lo ) ;;
1719
2598
      *)
1720
2599
        # Do a test to see if this is really a libtool program.
1721
2600
        if func_ltwrapper_script_p "$file"; then
1731
2610
        ;;
1732
2611
      esac
1733
2612
      # Quote arguments (to preserve shell metacharacters).
1734
 
      func_quote_for_eval "$file"
1735
 
      args="$args $func_quote_for_eval_result"
 
2613
      func_append_quoted args "$file"
1736
2614
    done
1737
2615
 
1738
2616
    if test "X$opt_dry_run" = Xfalse; then
1757
2635
      # Display what would be done.
1758
2636
      if test -n "$shlibpath_var"; then
1759
2637
        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1760
 
        $ECHO "export $shlibpath_var"
 
2638
        echo "export $shlibpath_var"
1761
2639
      fi
1762
2640
      $ECHO "$cmd$args"
1763
2641
      exit $EXIT_SUCCESS
1764
2642
    fi
1765
2643
}
1766
2644
 
1767
 
test "$mode" = execute && func_mode_execute ${1+"$@"}
 
2645
test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
1768
2646
 
1769
2647
 
1770
2648
# func_mode_finish arg...
1771
2649
func_mode_finish ()
1772
2650
{
1773
2651
    $opt_debug
1774
 
    libdirs="$nonopt"
 
2652
    libs=
 
2653
    libdirs=
1775
2654
    admincmds=
1776
2655
 
 
2656
    for opt in "$nonopt" ${1+"$@"}
 
2657
    do
 
2658
      if test -d "$opt"; then
 
2659
        func_append libdirs " $opt"
 
2660
 
 
2661
      elif test -f "$opt"; then
 
2662
        if func_lalib_unsafe_p "$opt"; then
 
2663
          func_append libs " $opt"
 
2664
        else
 
2665
          func_warning "\`$opt' is not a valid libtool archive"
 
2666
        fi
 
2667
 
 
2668
      else
 
2669
        func_fatal_error "invalid argument \`$opt'"
 
2670
      fi
 
2671
    done
 
2672
 
 
2673
    if test -n "$libs"; then
 
2674
      if test -n "$lt_sysroot"; then
 
2675
        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
 
2676
        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
 
2677
      else
 
2678
        sysroot_cmd=
 
2679
      fi
 
2680
 
 
2681
      # Remove sysroot references
 
2682
      if $opt_dry_run; then
 
2683
        for lib in $libs; do
 
2684
          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
 
2685
        done
 
2686
      else
 
2687
        tmpdir=`func_mktempdir`
 
2688
        for lib in $libs; do
 
2689
          sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
 
2690
            > $tmpdir/tmp-la
 
2691
          mv -f $tmpdir/tmp-la $lib
 
2692
        done
 
2693
        ${RM}r "$tmpdir"
 
2694
      fi
 
2695
    fi
 
2696
 
1777
2697
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1778
 
      for dir
1779
 
      do
1780
 
        libdirs="$libdirs $dir"
1781
 
      done
1782
 
 
1783
2698
      for libdir in $libdirs; do
1784
2699
        if test -n "$finish_cmds"; then
1785
2700
          # Do each command in the finish commands.
1789
2704
        if test -n "$finish_eval"; then
1790
2705
          # Do the single finish_eval.
1791
2706
          eval cmds=\"$finish_eval\"
1792
 
          $opt_dry_run || eval "$cmds" || admincmds="$admincmds
 
2707
          $opt_dry_run || eval "$cmds" || func_append admincmds "
1793
2708
       $cmds"
1794
2709
        fi
1795
2710
      done
1798
2713
    # Exit here if they wanted silent mode.
1799
2714
    $opt_silent && exit $EXIT_SUCCESS
1800
2715
 
1801
 
    $ECHO "X----------------------------------------------------------------------" | $Xsed
1802
 
    $ECHO "Libraries have been installed in:"
1803
 
    for libdir in $libdirs; do
1804
 
      $ECHO "   $libdir"
1805
 
    done
1806
 
    $ECHO
1807
 
    $ECHO "If you ever happen to want to link against installed libraries"
1808
 
    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
1809
 
    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
1810
 
    $ECHO "flag during linking and do at least one of the following:"
1811
 
    if test -n "$shlibpath_var"; then
1812
 
      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
1813
 
      $ECHO "     during execution"
1814
 
    fi
1815
 
    if test -n "$runpath_var"; then
1816
 
      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
1817
 
      $ECHO "     during linking"
1818
 
    fi
1819
 
    if test -n "$hardcode_libdir_flag_spec"; then
1820
 
      libdir=LIBDIR
1821
 
      eval flag=\"$hardcode_libdir_flag_spec\"
1822
 
 
1823
 
      $ECHO "   - use the \`$flag' linker flag"
1824
 
    fi
1825
 
    if test -n "$admincmds"; then
1826
 
      $ECHO "   - have your system administrator run these commands:$admincmds"
1827
 
    fi
1828
 
    if test -f /etc/ld.so.conf; then
1829
 
      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1830
 
    fi
1831
 
    $ECHO
1832
 
 
1833
 
    $ECHO "See any operating system documentation about shared libraries for"
1834
 
    case $host in
1835
 
      solaris2.[6789]|solaris2.1[0-9])
1836
 
        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1837
 
        $ECHO "pages."
1838
 
        ;;
1839
 
      *)
1840
 
        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
1841
 
        ;;
1842
 
    esac
1843
 
    $ECHO "X----------------------------------------------------------------------" | $Xsed
 
2716
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 
2717
      echo "----------------------------------------------------------------------"
 
2718
      echo "Libraries have been installed in:"
 
2719
      for libdir in $libdirs; do
 
2720
        $ECHO "   $libdir"
 
2721
      done
 
2722
      echo
 
2723
      echo "If you ever happen to want to link against installed libraries"
 
2724
      echo "in a given directory, LIBDIR, you must either use libtool, and"
 
2725
      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
 
2726
      echo "flag during linking and do at least one of the following:"
 
2727
      if test -n "$shlibpath_var"; then
 
2728
        echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 
2729
        echo "     during execution"
 
2730
      fi
 
2731
      if test -n "$runpath_var"; then
 
2732
        echo "   - add LIBDIR to the \`$runpath_var' environment variable"
 
2733
        echo "     during linking"
 
2734
      fi
 
2735
      if test -n "$hardcode_libdir_flag_spec"; then
 
2736
        libdir=LIBDIR
 
2737
        eval flag=\"$hardcode_libdir_flag_spec\"
 
2738
 
 
2739
        $ECHO "   - use the \`$flag' linker flag"
 
2740
      fi
 
2741
      if test -n "$admincmds"; then
 
2742
        $ECHO "   - have your system administrator run these commands:$admincmds"
 
2743
      fi
 
2744
      if test -f /etc/ld.so.conf; then
 
2745
        echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 
2746
      fi
 
2747
      echo
 
2748
 
 
2749
      echo "See any operating system documentation about shared libraries for"
 
2750
      case $host in
 
2751
        solaris2.[6789]|solaris2.1[0-9])
 
2752
          echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
 
2753
          echo "pages."
 
2754
          ;;
 
2755
        *)
 
2756
          echo "more information, such as the ld(1) and ld.so(8) manual pages."
 
2757
          ;;
 
2758
      esac
 
2759
      echo "----------------------------------------------------------------------"
 
2760
    fi
1844
2761
    exit $EXIT_SUCCESS
1845
2762
}
1846
2763
 
1847
 
test "$mode" = finish && func_mode_finish ${1+"$@"}
 
2764
test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
1848
2765
 
1849
2766
 
1850
2767
# func_mode_install arg...
1855
2772
    # install_prog (especially on Windows NT).
1856
2773
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
1857
2774
       # Allow the use of GNU shtool's install command.
1858
 
       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
 
2775
       case $nonopt in *shtool*) :;; *) false;; esac; then
1859
2776
      # Aesthetically quote it.
1860
2777
      func_quote_for_eval "$nonopt"
1861
2778
      install_prog="$func_quote_for_eval_result "
1869
2786
    # The real first argument should be the name of the installation program.
1870
2787
    # Aesthetically quote it.
1871
2788
    func_quote_for_eval "$arg"
1872
 
    install_prog="$install_prog$func_quote_for_eval_result"
 
2789
    func_append install_prog "$func_quote_for_eval_result"
 
2790
    install_shared_prog=$install_prog
 
2791
    case " $install_prog " in
 
2792
      *[\\\ /]cp\ *) install_cp=: ;;
 
2793
      *) install_cp=false ;;
 
2794
    esac
1873
2795
 
1874
2796
    # We need to accept at least all the BSD install flags.
1875
2797
    dest=
1879
2801
    install_type=
1880
2802
    isdir=no
1881
2803
    stripme=
 
2804
    no_mode=:
1882
2805
    for arg
1883
2806
    do
 
2807
      arg2=
1884
2808
      if test -n "$dest"; then
1885
 
        files="$files $dest"
 
2809
        func_append files " $dest"
1886
2810
        dest=$arg
1887
2811
        continue
1888
2812
      fi
1890
2814
      case $arg in
1891
2815
      -d) isdir=yes ;;
1892
2816
      -f)
1893
 
        case " $install_prog " in
1894
 
        *[\\\ /]cp\ *) ;;
1895
 
        *) prev=$arg ;;
1896
 
        esac
 
2817
        if $install_cp; then :; else
 
2818
          prev=$arg
 
2819
        fi
1897
2820
        ;;
1898
2821
      -g | -m | -o)
1899
2822
        prev=$arg
1907
2830
      *)
1908
2831
        # If the previous option needed an argument, then skip it.
1909
2832
        if test -n "$prev"; then
 
2833
          if test "x$prev" = x-m && test -n "$install_override_mode"; then
 
2834
            arg2=$install_override_mode
 
2835
            no_mode=false
 
2836
          fi
1910
2837
          prev=
1911
2838
        else
1912
2839
          dest=$arg
1917
2844
 
1918
2845
      # Aesthetically quote the argument.
1919
2846
      func_quote_for_eval "$arg"
1920
 
      install_prog="$install_prog $func_quote_for_eval_result"
 
2847
      func_append install_prog " $func_quote_for_eval_result"
 
2848
      if test -n "$arg2"; then
 
2849
        func_quote_for_eval "$arg2"
 
2850
      fi
 
2851
      func_append install_shared_prog " $func_quote_for_eval_result"
1921
2852
    done
1922
2853
 
1923
2854
    test -z "$install_prog" && \
1926
2857
    test -n "$prev" && \
1927
2858
      func_fatal_help "the \`$prev' option requires an argument"
1928
2859
 
 
2860
    if test -n "$install_override_mode" && $no_mode; then
 
2861
      if $install_cp; then :; else
 
2862
        func_quote_for_eval "$install_override_mode"
 
2863
        func_append install_shared_prog " -m $func_quote_for_eval_result"
 
2864
      fi
 
2865
    fi
 
2866
 
1929
2867
    if test -z "$files"; then
1930
2868
      if test -z "$dest"; then
1931
2869
        func_fatal_help "no file or destination specified"
1980
2918
      case $file in
1981
2919
      *.$libext)
1982
2920
        # Do the static libraries later.
1983
 
        staticlibs="$staticlibs $file"
 
2921
        func_append staticlibs " $file"
1984
2922
        ;;
1985
2923
 
1986
2924
      *.la)
 
2925
        func_resolve_sysroot "$file"
 
2926
        file=$func_resolve_sysroot_result
 
2927
 
1987
2928
        # Check to see that this really is a libtool archive.
1988
2929
        func_lalib_unsafe_p "$file" \
1989
2930
          || func_fatal_help "\`$file' is not a valid libtool archive"
1997
2938
        if test "X$destdir" = "X$libdir"; then
1998
2939
          case "$current_libdirs " in
1999
2940
          *" $libdir "*) ;;
2000
 
          *) current_libdirs="$current_libdirs $libdir" ;;
 
2941
          *) func_append current_libdirs " $libdir" ;;
2001
2942
          esac
2002
2943
        else
2003
2944
          # Note the libdir as a future libdir.
2004
2945
          case "$future_libdirs " in
2005
2946
          *" $libdir "*) ;;
2006
 
          *) future_libdirs="$future_libdirs $libdir" ;;
 
2947
          *) func_append future_libdirs " $libdir" ;;
2007
2948
          esac
2008
2949
        fi
2009
2950
 
2010
2951
        func_dirname "$file" "/" ""
2011
2952
        dir="$func_dirname_result"
2012
 
        dir="$dir$objdir"
 
2953
        func_append dir "$objdir"
2013
2954
 
2014
2955
        if test -n "$relink_command"; then
2015
2956
          # Determine the prefix the user has applied to our future dir.
2016
 
          inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
 
2957
          inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2017
2958
 
2018
2959
          # Don't allow the user to place us outside of our expected
2019
2960
          # location b/c this prevents finding dependent libraries that
2026
2967
 
2027
2968
          if test -n "$inst_prefix_dir"; then
2028
2969
            # Stick the inst_prefix_dir data into the link command.
2029
 
            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 
2970
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2030
2971
          else
2031
 
            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
 
2972
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2032
2973
          fi
2033
2974
 
2034
2975
          func_warning "relinking \`$file'"
2046
2987
          test -n "$relink_command" && srcname="$realname"T
2047
2988
 
2048
2989
          # Install the shared library and build the symlinks.
2049
 
          func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
 
2990
          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2050
2991
              'exit $?'
2051
2992
          tstripme="$stripme"
2052
2993
          case $host_os in
2086
3027
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
2087
3028
 
2088
3029
        # Maybe install the static library, too.
2089
 
        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 
3030
        test -n "$old_library" && func_append staticlibs " $dir/$old_library"
2090
3031
        ;;
2091
3032
 
2092
3033
      *.lo)
2186
3127
            if test -f "$lib"; then
2187
3128
              func_source "$lib"
2188
3129
            fi
2189
 
            libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 
3130
            libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
2190
3131
            if test -n "$libdir" && test ! -f "$libfile"; then
2191
3132
              func_warning "\`$lib' has not been installed in \`$libdir'"
2192
3133
              finalize=no
2205
3146
                file="$func_basename_result"
2206
3147
                outputname="$tmpdir/$file"
2207
3148
                # Replace the output file specification.
2208
 
                relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
 
3149
                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
2209
3150
 
2210
3151
                $opt_silent || {
2211
3152
                  func_quote_for_expand "$relink_command"
2224
3165
            }
2225
3166
          else
2226
3167
            # Install the binary that we compiled earlier.
2227
 
            file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 
3168
            file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
2228
3169
          fi
2229
3170
        fi
2230
3171
 
2283
3224
    fi
2284
3225
}
2285
3226
 
2286
 
test "$mode" = install && func_mode_install ${1+"$@"}
 
3227
test "$opt_mode" = install && func_mode_install ${1+"$@"}
2287
3228
 
2288
3229
 
2289
3230
# func_generate_dlsyms outputname originator pic_p
2326
3267
extern \"C\" {
2327
3268
#endif
2328
3269
 
 
3270
#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
 
3271
#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 
3272
#endif
 
3273
 
 
3274
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
 
3275
#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
 
3276
/* DATA imports from DLLs on WIN32 con't be const, because runtime
 
3277
   relocations are performed -- see ld's documentation on pseudo-relocs.  */
 
3278
# define LT_DLSYM_CONST
 
3279
#elif defined(__osf__)
 
3280
/* This system does not cope well with relocations in const data.  */
 
3281
# define LT_DLSYM_CONST
 
3282
#else
 
3283
# define LT_DLSYM_CONST const
 
3284
#endif
 
3285
 
2329
3286
/* External symbol declarations for the compiler. */\
2330
3287
"
2331
3288
 
2335
3292
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
2336
3293
 
2337
3294
          # Add our own program objects to the symbol list.
2338
 
          progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
3295
          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
2339
3296
          for progfile in $progfiles; do
2340
 
            func_verbose "extracting global C symbols from \`$progfile'"
2341
 
            $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
 
3297
            func_to_tool_file "$progfile" func_convert_file_msys_to_w32
 
3298
            func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
 
3299
            $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
2342
3300
          done
2343
3301
 
2344
3302
          if test -n "$exclude_expsyms"; then
2374
3332
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2375
3333
              eval '$MV "$nlist"T "$nlist"'
2376
3334
              case $host in
2377
 
                *cygwin | *mingw* | *cegcc* )
 
3335
                *cygwin* | *mingw* | *cegcc* )
2378
3336
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2379
3337
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2380
3338
                  ;;
2387
3345
          func_verbose "extracting global C symbols from \`$dlprefile'"
2388
3346
          func_basename "$dlprefile"
2389
3347
          name="$func_basename_result"
2390
 
          $opt_dry_run || {
2391
 
            eval '$ECHO ": $name " >> "$nlist"'
2392
 
            eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
2393
 
          }
 
3348
          case $host in
 
3349
            *cygwin* | *mingw* | *cegcc* )
 
3350
              # if an import library, we need to obtain dlname
 
3351
              if func_win32_import_lib_p "$dlprefile"; then
 
3352
                func_tr_sh "$dlprefile"
 
3353
                eval "curr_lafile=\$libfile_$func_tr_sh_result"
 
3354
                dlprefile_dlbasename=""
 
3355
                if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
 
3356
                  # Use subshell, to avoid clobbering current variable values
 
3357
                  dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
 
3358
                  if test -n "$dlprefile_dlname" ; then
 
3359
                    func_basename "$dlprefile_dlname"
 
3360
                    dlprefile_dlbasename="$func_basename_result"
 
3361
                  else
 
3362
                    # no lafile. user explicitly requested -dlpreopen <import library>.
 
3363
                    $sharedlib_from_linklib_cmd "$dlprefile"
 
3364
                    dlprefile_dlbasename=$sharedlib_from_linklib_result
 
3365
                  fi
 
3366
                fi
 
3367
                $opt_dry_run || {
 
3368
                  if test -n "$dlprefile_dlbasename" ; then
 
3369
                    eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
 
3370
                  else
 
3371
                    func_warning "Could not compute DLL name from $name"
 
3372
                    eval '$ECHO ": $name " >> "$nlist"'
 
3373
                  fi
 
3374
                  func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
 
3375
                  eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
 
3376
                    $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
 
3377
                }
 
3378
              else # not an import lib
 
3379
                $opt_dry_run || {
 
3380
                  eval '$ECHO ": $name " >> "$nlist"'
 
3381
                  func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
 
3382
                  eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 
3383
                }
 
3384
              fi
 
3385
            ;;
 
3386
            *)
 
3387
              $opt_dry_run || {
 
3388
                eval '$ECHO ": $name " >> "$nlist"'
 
3389
                func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
 
3390
                eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
 
3391
              }
 
3392
            ;;
 
3393
          esac
2394
3394
        done
2395
3395
 
2396
3396
        $opt_dry_run || {
2418
3418
          if test -f "$nlist"S; then
2419
3419
            eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2420
3420
          else
2421
 
            $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
 
3421
            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
2422
3422
          fi
2423
3423
 
2424
 
          $ECHO >> "$output_objdir/$my_dlsyms" "\
 
3424
          echo >> "$output_objdir/$my_dlsyms" "\
2425
3425
 
2426
3426
/* The mapping between symbol names and symbols.  */
2427
3427
typedef struct {
2428
3428
  const char *name;
2429
3429
  void *address;
2430
3430
} lt_dlsymlist;
2431
 
"
2432
 
          case $host in
2433
 
          *cygwin* | *mingw* | *cegcc* )
2434
 
            $ECHO >> "$output_objdir/$my_dlsyms" "\
2435
 
/* DATA imports from DLLs on WIN32 con't be const, because
2436
 
   runtime relocations are performed -- see ld's documentation
2437
 
   on pseudo-relocs.  */"
2438
 
            lt_dlsym_const= ;;
2439
 
          *osf5*)
2440
 
            echo >> "$output_objdir/$my_dlsyms" "\
2441
 
/* This system does not cope well with relocations in const data */"
2442
 
            lt_dlsym_const= ;;
2443
 
          *)
2444
 
            lt_dlsym_const=const ;;
2445
 
          esac
2446
 
 
2447
 
          $ECHO >> "$output_objdir/$my_dlsyms" "\
2448
 
extern $lt_dlsym_const lt_dlsymlist
 
3431
extern LT_DLSYM_CONST lt_dlsymlist
2449
3432
lt_${my_prefix}_LTX_preloaded_symbols[];
2450
 
$lt_dlsym_const lt_dlsymlist
 
3433
LT_DLSYM_CONST lt_dlsymlist
2451
3434
lt_${my_prefix}_LTX_preloaded_symbols[] =
2452
3435
{\
2453
3436
  { \"$my_originator\", (void *) 0 },"
2460
3443
            eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2461
3444
            ;;
2462
3445
          esac
2463
 
          $ECHO >> "$output_objdir/$my_dlsyms" "\
 
3446
          echo >> "$output_objdir/$my_dlsyms" "\
2464
3447
  {0, (void *) 0}
2465
3448
};
2466
3449
 
2503
3486
        for arg in $LTCFLAGS; do
2504
3487
          case $arg in
2505
3488
          -pie | -fpie | -fPIE) ;;
2506
 
          *) symtab_cflags="$symtab_cflags $arg" ;;
 
3489
          *) func_append symtab_cflags " $arg" ;;
2507
3490
          esac
2508
3491
        done
2509
3492
 
2518
3501
        case $host in
2519
3502
        *cygwin* | *mingw* | *cegcc* )
2520
3503
          if test -f "$output_objdir/$my_outputname.def"; then
2521
 
            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2522
 
            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 
3504
            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 
3505
            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2523
3506
          else
2524
 
            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2525
 
            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 
3507
            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 
3508
            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2526
3509
          fi
2527
3510
          ;;
2528
3511
        *)
2529
 
          compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2530
 
          finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 
3512
          compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 
3513
          finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2531
3514
          ;;
2532
3515
        esac
2533
3516
        ;;
2541
3524
      # really was required.
2542
3525
 
2543
3526
      # Nullify the symbol file.
2544
 
      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2545
 
      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
 
3527
      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
 
3528
      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
2546
3529
    fi
2547
3530
}
2548
3531
 
2552
3535
# Need a lot of goo to handle *both* DLLs and import libs
2553
3536
# Has to be a shell function in order to 'eat' the argument
2554
3537
# that is supplied when $file_magic_command is called.
 
3538
# Despite the name, also deal with 64 bit binaries.
2555
3539
func_win32_libid ()
2556
3540
{
2557
3541
  $opt_debug
2562
3546
    win32_libid_type="x86 archive import"
2563
3547
    ;;
2564
3548
  *ar\ archive*) # could be an import, or static
 
3549
    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
2565
3550
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2566
 
       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2567
 
      win32_nmres=`eval $NM -f posix -A $1 |
 
3551
       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
 
3552
      func_to_tool_file "$1" func_convert_file_msys_to_w32
 
3553
      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
2568
3554
        $SED -n -e '
2569
3555
            1,100{
2570
3556
                / I /{
2593
3579
  $ECHO "$win32_libid_type"
2594
3580
}
2595
3581
 
 
3582
# func_cygming_dll_for_implib ARG
 
3583
#
 
3584
# Platform-specific function to extract the
 
3585
# name of the DLL associated with the specified
 
3586
# import library ARG.
 
3587
# Invoked by eval'ing the libtool variable
 
3588
#    $sharedlib_from_linklib_cmd
 
3589
# Result is available in the variable
 
3590
#    $sharedlib_from_linklib_result
 
3591
func_cygming_dll_for_implib ()
 
3592
{
 
3593
  $opt_debug
 
3594
  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
 
3595
}
 
3596
 
 
3597
# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
 
3598
#
 
3599
# The is the core of a fallback implementation of a
 
3600
# platform-specific function to extract the name of the
 
3601
# DLL associated with the specified import library LIBNAME.
 
3602
#
 
3603
# SECTION_NAME is either .idata$6 or .idata$7, depending
 
3604
# on the platform and compiler that created the implib.
 
3605
#
 
3606
# Echos the name of the DLL associated with the
 
3607
# specified import library.
 
3608
func_cygming_dll_for_implib_fallback_core ()
 
3609
{
 
3610
  $opt_debug
 
3611
  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
 
3612
  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
 
3613
    $SED '/^Contents of section '"$match_literal"':/{
 
3614
      # Place marker at beginning of archive member dllname section
 
3615
      s/.*/====MARK====/
 
3616
      p
 
3617
      d
 
3618
    }
 
3619
    # These lines can sometimes be longer than 43 characters, but
 
3620
    # are always uninteresting
 
3621
    /:[  ]*file format pe[i]\{,1\}-/d
 
3622
    /^In archive [^:]*:/d
 
3623
    # Ensure marker is printed
 
3624
    /^====MARK====/p
 
3625
    # Remove all lines with less than 43 characters
 
3626
    /^.\{43\}/!d
 
3627
    # From remaining lines, remove first 43 characters
 
3628
    s/^.\{43\}//' |
 
3629
    $SED -n '
 
3630
      # Join marker and all lines until next marker into a single line
 
3631
      /^====MARK====/ b para
 
3632
      H
 
3633
      $ b para
 
3634
      b
 
3635
      :para
 
3636
      x
 
3637
      s/\n//g
 
3638
      # Remove the marker
 
3639
      s/^====MARK====//
 
3640
      # Remove trailing dots and whitespace
 
3641
      s/[\. \t]*$//
 
3642
      # Print
 
3643
      /./p' |
 
3644
    # we now have a list, one entry per line, of the stringified
 
3645
    # contents of the appropriate section of all members of the
 
3646
    # archive which possess that section. Heuristic: eliminate
 
3647
    # all those which have a first or second character that is
 
3648
    # a '.' (that is, objdump's representation of an unprintable
 
3649
    # character.) This should work for all archives with less than
 
3650
    # 0x302f exports -- but will fail for DLLs whose name actually
 
3651
    # begins with a literal '.' or a single character followed by
 
3652
    # a '.'.
 
3653
    #
 
3654
    # Of those that remain, print the first one.
 
3655
    $SED -e '/^\./d;/^.\./d;q'
 
3656
}
 
3657
 
 
3658
# func_cygming_gnu_implib_p ARG
 
3659
# This predicate returns with zero status (TRUE) if
 
3660
# ARG is a GNU/binutils-style import library. Returns
 
3661
# with nonzero status (FALSE) otherwise.
 
3662
func_cygming_gnu_implib_p ()
 
3663
{
 
3664
  $opt_debug
 
3665
  func_to_tool_file "$1" func_convert_file_msys_to_w32
 
3666
  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
 
3667
  test -n "$func_cygming_gnu_implib_tmp"
 
3668
}
 
3669
 
 
3670
# func_cygming_ms_implib_p ARG
 
3671
# This predicate returns with zero status (TRUE) if
 
3672
# ARG is an MS-style import library. Returns
 
3673
# with nonzero status (FALSE) otherwise.
 
3674
func_cygming_ms_implib_p ()
 
3675
{
 
3676
  $opt_debug
 
3677
  func_to_tool_file "$1" func_convert_file_msys_to_w32
 
3678
  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
 
3679
  test -n "$func_cygming_ms_implib_tmp"
 
3680
}
 
3681
 
 
3682
# func_cygming_dll_for_implib_fallback ARG
 
3683
# Platform-specific function to extract the
 
3684
# name of the DLL associated with the specified
 
3685
# import library ARG.
 
3686
#
 
3687
# This fallback implementation is for use when $DLLTOOL
 
3688
# does not support the --identify-strict option.
 
3689
# Invoked by eval'ing the libtool variable
 
3690
#    $sharedlib_from_linklib_cmd
 
3691
# Result is available in the variable
 
3692
#    $sharedlib_from_linklib_result
 
3693
func_cygming_dll_for_implib_fallback ()
 
3694
{
 
3695
  $opt_debug
 
3696
  if func_cygming_gnu_implib_p "$1" ; then
 
3697
    # binutils import library
 
3698
    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
 
3699
  elif func_cygming_ms_implib_p "$1" ; then
 
3700
    # ms-generated import library
 
3701
    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
 
3702
  else
 
3703
    # unknown
 
3704
    sharedlib_from_linklib_result=""
 
3705
  fi
 
3706
}
2596
3707
 
2597
3708
 
2598
3709
# func_extract_an_archive dir oldlib
2601
3712
    $opt_debug
2602
3713
    f_ex_an_ar_dir="$1"; shift
2603
3714
    f_ex_an_ar_oldlib="$1"
2604
 
    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
 
3715
    if test "$lock_old_archive_extraction" = yes; then
 
3716
      lockfile=$f_ex_an_ar_oldlib.lock
 
3717
      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 
3718
        func_echo "Waiting for $lockfile to be removed"
 
3719
        sleep 2
 
3720
      done
 
3721
    fi
 
3722
    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
 
3723
                   'stat=$?; rm -f "$lockfile"; exit $stat'
 
3724
    if test "$lock_old_archive_extraction" = yes; then
 
3725
      $opt_dry_run || rm -f "$lockfile"
 
3726
    fi
2605
3727
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
2606
3728
     :
2607
3729
    else
2672
3794
            darwin_file=
2673
3795
            darwin_files=
2674
3796
            for darwin_file in $darwin_filelist; do
2675
 
              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 
3797
              darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
2676
3798
              $LIPO -create -output "$darwin_file" $darwin_files
2677
3799
            done # $darwin_filelist
2678
3800
            $RM -rf unfat-$$
2687
3809
        func_extract_an_archive "$my_xdir" "$my_xabs"
2688
3810
        ;;
2689
3811
      esac
2690
 
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 
3812
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
2691
3813
    done
2692
3814
 
2693
3815
    func_extract_archives_result="$my_oldobjs"
2694
3816
}
2695
3817
 
2696
3818
 
2697
 
 
2698
 
# func_emit_wrapper_part1 [arg=no]
2699
 
#
2700
 
# Emit the first part of a libtool wrapper script on stdout.
2701
 
# For more information, see the description associated with
2702
 
# func_emit_wrapper(), below.
2703
 
func_emit_wrapper_part1 ()
 
3819
# func_emit_wrapper [arg=no]
 
3820
#
 
3821
# Emit a libtool wrapper script on stdout.
 
3822
# Don't directly open a file because we may want to
 
3823
# incorporate the script contents within a cygwin/mingw
 
3824
# wrapper executable.  Must ONLY be called from within
 
3825
# func_mode_link because it depends on a number of variables
 
3826
# set therein.
 
3827
#
 
3828
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 
3829
# variable will take.  If 'yes', then the emitted script
 
3830
# will assume that the directory in which it is stored is
 
3831
# the $objdir directory.  This is a cygwin/mingw-specific
 
3832
# behavior.
 
3833
func_emit_wrapper ()
2704
3834
{
2705
 
        func_emit_wrapper_part1_arg1=no
2706
 
        if test -n "$1" ; then
2707
 
          func_emit_wrapper_part1_arg1=$1
2708
 
        fi
 
3835
        func_emit_wrapper_arg1=${1-no}
2709
3836
 
2710
3837
        $ECHO "\
2711
3838
#! $SHELL
2721
3848
 
2722
3849
# Sed substitution that helps us do robust quoting.  It backslashifies
2723
3850
# metacharacters that are still active within double-quoted strings.
2724
 
Xsed='${SED} -e 1s/^X//'
2725
3851
sed_quote_subst='$sed_quote_subst'
2726
3852
 
2727
3853
# Be Bourne compatible
2752
3878
else
2753
3879
  # When we are sourced in execute mode, \$file and \$ECHO are already set.
2754
3880
  if test \"\$libtool_execute_magic\" != \"$magic\"; then
2755
 
    ECHO=\"$qecho\"
2756
 
    file=\"\$0\"
2757
 
    # Make sure echo works.
2758
 
    if test \"X\$1\" = X--no-reexec; then
2759
 
      # Discard the --no-reexec flag, and continue.
2760
 
      shift
2761
 
    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
2762
 
      # Yippee, \$ECHO works!
2763
 
      :
2764
 
    else
2765
 
      # Restart under the correct shell, and then maybe \$ECHO will work.
2766
 
      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2767
 
    fi
2768
 
  fi\
2769
 
"
2770
 
        $ECHO "\
 
3881
    file=\"\$0\""
 
3882
 
 
3883
    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
 
3884
    $ECHO "\
 
3885
 
 
3886
# A function that is used when there is no print builtin or printf.
 
3887
func_fallback_echo ()
 
3888
{
 
3889
  eval 'cat <<_LTECHO_EOF
 
3890
\$1
 
3891
_LTECHO_EOF'
 
3892
}
 
3893
    ECHO=\"$qECHO\"
 
3894
  fi
 
3895
 
 
3896
# Very basic option parsing. These options are (a) specific to
 
3897
# the libtool wrapper, (b) are identical between the wrapper
 
3898
# /script/ and the wrapper /executable/ which is used only on
 
3899
# windows platforms, and (c) all begin with the string "--lt-"
 
3900
# (application programs are unlikely to have options which match
 
3901
# this pattern).
 
3902
#
 
3903
# There are only two supported options: --lt-debug and
 
3904
# --lt-dump-script. There is, deliberately, no --lt-help.
 
3905
#
 
3906
# The first argument to this parsing function should be the
 
3907
# script's $0 value, followed by "$@".
 
3908
lt_option_debug=
 
3909
func_parse_lt_options ()
 
3910
{
 
3911
  lt_script_arg0=\$0
 
3912
  shift
 
3913
  for lt_opt
 
3914
  do
 
3915
    case \"\$lt_opt\" in
 
3916
    --lt-debug) lt_option_debug=1 ;;
 
3917
    --lt-dump-script)
 
3918
        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
 
3919
        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
 
3920
        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
 
3921
        cat \"\$lt_dump_D/\$lt_dump_F\"
 
3922
        exit 0
 
3923
      ;;
 
3924
    --lt-*)
 
3925
        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
 
3926
        exit 1
 
3927
      ;;
 
3928
    esac
 
3929
  done
 
3930
 
 
3931
  # Print the debug banner immediately:
 
3932
  if test -n \"\$lt_option_debug\"; then
 
3933
    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
 
3934
  fi
 
3935
}
 
3936
 
 
3937
# Used when --lt-debug. Prints its arguments to stdout
 
3938
# (redirection is the responsibility of the caller)
 
3939
func_lt_dump_args ()
 
3940
{
 
3941
  lt_dump_args_N=1;
 
3942
  for lt_arg
 
3943
  do
 
3944
    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
 
3945
    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
 
3946
  done
 
3947
}
 
3948
 
 
3949
# Core function for launching the target application
 
3950
func_exec_program_core ()
 
3951
{
 
3952
"
 
3953
  case $host in
 
3954
  # Backslashes separate directories on plain windows
 
3955
  *-*-mingw | *-*-os2* | *-cegcc*)
 
3956
    $ECHO "\
 
3957
      if test -n \"\$lt_option_debug\"; then
 
3958
        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
 
3959
        func_lt_dump_args \${1+\"\$@\"} 1>&2
 
3960
      fi
 
3961
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 
3962
"
 
3963
    ;;
 
3964
 
 
3965
  *)
 
3966
    $ECHO "\
 
3967
      if test -n \"\$lt_option_debug\"; then
 
3968
        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
 
3969
        func_lt_dump_args \${1+\"\$@\"} 1>&2
 
3970
      fi
 
3971
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 
3972
"
 
3973
    ;;
 
3974
  esac
 
3975
  $ECHO "\
 
3976
      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
 
3977
      exit 1
 
3978
}
 
3979
 
 
3980
# A function to encapsulate launching the target application
 
3981
# Strips options in the --lt-* namespace from \$@ and
 
3982
# launches target application with the remaining arguments.
 
3983
func_exec_program ()
 
3984
{
 
3985
  for lt_wr_arg
 
3986
  do
 
3987
    case \$lt_wr_arg in
 
3988
    --lt-*) ;;
 
3989
    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
 
3990
    esac
 
3991
    shift
 
3992
  done
 
3993
  func_exec_program_core \${1+\"\$@\"}
 
3994
}
 
3995
 
 
3996
  # Parse options
 
3997
  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
2771
3998
 
2772
3999
  # Find the directory that this script lives in.
2773
 
  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 
4000
  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
2774
4001
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2775
4002
 
2776
4003
  # Follow symbolic links until we get to the real thisdir.
2777
 
  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 
4004
  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
2778
4005
  while test -n \"\$file\"; do
2779
 
    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
4006
    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
2780
4007
 
2781
4008
    # If there was a directory component, then change thisdir.
2782
4009
    if test \"x\$destdir\" != \"x\$file\"; then
2786
4013
      esac
2787
4014
    fi
2788
4015
 
2789
 
    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2790
 
    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 
4016
    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
 
4017
    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
2791
4018
  done
2792
 
"
2793
 
}
2794
 
# end: func_emit_wrapper_part1
2795
 
 
2796
 
# func_emit_wrapper_part2 [arg=no]
2797
 
#
2798
 
# Emit the second part of a libtool wrapper script on stdout.
2799
 
# For more information, see the description associated with
2800
 
# func_emit_wrapper(), below.
2801
 
func_emit_wrapper_part2 ()
2802
 
{
2803
 
        func_emit_wrapper_part2_arg1=no
2804
 
        if test -n "$1" ; then
2805
 
          func_emit_wrapper_part2_arg1=$1
2806
 
        fi
2807
 
 
2808
 
        $ECHO "\
2809
4019
 
2810
4020
  # Usually 'no', except on cygwin/mingw when embedded into
2811
4021
  # the cwrapper.
2812
 
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
 
4022
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
2813
4023
  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
2814
4024
    # special case for '.'
2815
4025
    if test \"\$thisdir\" = \".\"; then
2817
4027
    fi
2818
4028
    # remove .libs from thisdir
2819
4029
    case \"\$thisdir\" in
2820
 
    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
 
4030
    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
2821
4031
    $objdir )   thisdir=. ;;
2822
4032
    esac
2823
4033
  fi
2872
4082
 
2873
4083
  if test -f \"\$progdir/\$program\"; then"
2874
4084
 
 
4085
        # fixup the dll searchpath if we need to.
 
4086
        #
 
4087
        # Fix the DLL searchpath if we need to.  Do this before prepending
 
4088
        # to shlibpath, because on Windows, both are PATH and uninstalled
 
4089
        # libraries must come first.
 
4090
        if test -n "$dllsearchpath"; then
 
4091
          $ECHO "\
 
4092
    # Add the dll search path components to the executable PATH
 
4093
    PATH=$dllsearchpath:\$PATH
 
4094
"
 
4095
        fi
 
4096
 
2875
4097
        # Export our shlibpath_var if we have one.
2876
4098
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2877
4099
          $ECHO "\
2880
4102
 
2881
4103
    # Some systems cannot cope with colon-terminated $shlibpath_var
2882
4104
    # The second colon is a workaround for a bug in BeOS R4 sed
2883
 
    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
4105
    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
2884
4106
 
2885
4107
    export $shlibpath_var
2886
4108
"
2887
4109
        fi
2888
4110
 
2889
 
        # fixup the dll searchpath if we need to.
2890
 
        if test -n "$dllsearchpath"; then
2891
 
          $ECHO "\
2892
 
    # Add the dll search path components to the executable PATH
2893
 
    PATH=$dllsearchpath:\$PATH
2894
 
"
2895
 
        fi
2896
 
 
2897
4111
        $ECHO "\
2898
4112
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2899
4113
      # Run the actual program with our arguments.
2900
 
"
2901
 
        case $host in
2902
 
        # Backslashes separate directories on plain windows
2903
 
        *-*-mingw | *-*-os2* | *-cegcc*)
2904
 
          $ECHO "\
2905
 
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
2906
 
"
2907
 
          ;;
2908
 
 
2909
 
        *)
2910
 
          $ECHO "\
2911
 
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
2912
 
"
2913
 
          ;;
2914
 
        esac
2915
 
        $ECHO "\
2916
 
      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
2917
 
      exit 1
 
4114
      func_exec_program \${1+\"\$@\"}
2918
4115
    fi
2919
4116
  else
2920
4117
    # The program doesn't exist.
2921
4118
    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
2922
4119
    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
2923
 
    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
 
4120
    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
2924
4121
    exit 1
2925
4122
  fi
2926
4123
fi\
2927
4124
"
2928
4125
}
2929
 
# end: func_emit_wrapper_part2
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=no
2949
 
        if test -n "$1" ; then
2950
 
          func_emit_wrapper_arg1=$1
2951
 
        fi
2952
 
 
2953
 
        # split this up so that func_emit_cwrapperexe_src
2954
 
        # can call each part independently.
2955
 
        func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
2956
 
        func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
2957
 
}
2958
 
 
2959
 
 
2960
 
# func_to_host_path arg
2961
 
#
2962
 
# Convert paths to host format when used with build tools.
2963
 
# Intended for use with "native" mingw (where libtool itself
2964
 
# is running under the msys shell), or in the following cross-
2965
 
# build environments:
2966
 
#    $build          $host
2967
 
#    mingw (msys)    mingw  [e.g. native]
2968
 
#    cygwin          mingw
2969
 
#    *nix + wine     mingw
2970
 
# where wine is equipped with the `winepath' executable.
2971
 
# In the native mingw case, the (msys) shell automatically
2972
 
# converts paths for any non-msys applications it launches,
2973
 
# but that facility isn't available from inside the cwrapper.
2974
 
# Similar accommodations are necessary for $host mingw and
2975
 
# $build cygwin.  Calling this function does no harm for other
2976
 
# $host/$build combinations not listed above.
2977
 
#
2978
 
# ARG is the path (on $build) that should be converted to
2979
 
# the proper representation for $host. The result is stored
2980
 
# in $func_to_host_path_result.
2981
 
func_to_host_path ()
2982
 
{
2983
 
  func_to_host_path_result="$1"
2984
 
  if test -n "$1" ; then
2985
 
    case $host in
2986
 
      *mingw* )
2987
 
        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
2988
 
        case $build in
2989
 
          *mingw* ) # actually, msys
2990
 
            # awkward: cmd appends spaces to result
2991
 
            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
2992
 
            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
2993
 
              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
2994
 
            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2995
 
              $SED -e "$lt_sed_naive_backslashify"`
2996
 
            ;;
2997
 
          *cygwin* )
2998
 
            func_to_host_path_tmp1=`cygpath -w "$1"`
2999
 
            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3000
 
              $SED -e "$lt_sed_naive_backslashify"`
3001
 
            ;;
3002
 
          * )
3003
 
            # Unfortunately, winepath does not exit with a non-zero
3004
 
            # error code, so we are forced to check the contents of
3005
 
            # stdout. On the other hand, if the command is not
3006
 
            # found, the shell will set an exit code of 127 and print
3007
 
            # *an error message* to stdout. So we must check for both
3008
 
            # error code of zero AND non-empty stdout, which explains
3009
 
            # the odd construction:
3010
 
            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3011
 
            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3012
 
              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3013
 
                $SED -e "$lt_sed_naive_backslashify"`
3014
 
            else
3015
 
              # Allow warning below.
3016
 
              func_to_host_path_result=""
3017
 
            fi
3018
 
            ;;
3019
 
        esac
3020
 
        if test -z "$func_to_host_path_result" ; then
3021
 
          func_error "Could not determine host path corresponding to"
3022
 
          func_error "  '$1'"
3023
 
          func_error "Continuing, but uninstalled executables may not work."
3024
 
          # Fallback:
3025
 
          func_to_host_path_result="$1"
3026
 
        fi
3027
 
        ;;
3028
 
    esac
3029
 
  fi
3030
 
}
3031
 
# end: func_to_host_path
3032
 
 
3033
 
# func_to_host_pathlist arg
3034
 
#
3035
 
# Convert pathlists to host format when used with build tools.
3036
 
# See func_to_host_path(), above. This function supports the
3037
 
# following $build/$host combinations (but does no harm for
3038
 
# combinations not listed here):
3039
 
#    $build          $host
3040
 
#    mingw (msys)    mingw  [e.g. native]
3041
 
#    cygwin          mingw
3042
 
#    *nix + wine     mingw
3043
 
#
3044
 
# Path separators are also converted from $build format to
3045
 
# $host format. If ARG begins or ends with a path separator
3046
 
# character, it is preserved (but converted to $host format)
3047
 
# on output.
3048
 
#
3049
 
# ARG is a pathlist (on $build) that should be converted to
3050
 
# the proper representation on $host. The result is stored
3051
 
# in $func_to_host_pathlist_result.
3052
 
func_to_host_pathlist ()
3053
 
{
3054
 
  func_to_host_pathlist_result="$1"
3055
 
  if test -n "$1" ; then
3056
 
    case $host in
3057
 
      *mingw* )
3058
 
        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3059
 
        # Remove leading and trailing path separator characters from
3060
 
        # ARG. msys behavior is inconsistent here, cygpath turns them
3061
 
        # into '.;' and ';.', and winepath ignores them completely.
3062
 
        func_to_host_pathlist_tmp2="$1"
3063
 
        # Once set for this call, this variable should not be
3064
 
        # reassigned. It is used in tha fallback case.
3065
 
        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3066
 
          $SED -e 's|^:*||' -e 's|:*$||'`
3067
 
        case $build in
3068
 
          *mingw* ) # Actually, msys.
3069
 
            # Awkward: cmd appends spaces to result.
3070
 
            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3071
 
            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3072
 
              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3073
 
            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3074
 
              $SED -e "$lt_sed_naive_backslashify"`
3075
 
            ;;
3076
 
          *cygwin* )
3077
 
            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3078
 
            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3079
 
              $SED -e "$lt_sed_naive_backslashify"`
3080
 
            ;;
3081
 
          * )
3082
 
            # unfortunately, winepath doesn't convert pathlists
3083
 
            func_to_host_pathlist_result=""
3084
 
            func_to_host_pathlist_oldIFS=$IFS
3085
 
            IFS=:
3086
 
            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
3087
 
              IFS=$func_to_host_pathlist_oldIFS
3088
 
              if test -n "$func_to_host_pathlist_f" ; then
3089
 
                func_to_host_path "$func_to_host_pathlist_f"
3090
 
                if test -n "$func_to_host_path_result" ; then
3091
 
                  if test -z "$func_to_host_pathlist_result" ; then
3092
 
                    func_to_host_pathlist_result="$func_to_host_path_result"
3093
 
                  else
3094
 
                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
3095
 
                  fi
3096
 
                fi
3097
 
              fi
3098
 
              IFS=:
3099
 
            done
3100
 
            IFS=$func_to_host_pathlist_oldIFS
3101
 
            ;;
3102
 
        esac
3103
 
        if test -z "$func_to_host_pathlist_result" ; then
3104
 
          func_error "Could not determine the host path(s) corresponding to"
3105
 
          func_error "  '$1'"
3106
 
          func_error "Continuing, but uninstalled executables may not work."
3107
 
          # Fallback. This may break if $1 contains DOS-style drive
3108
 
          # specifications. The fix is not to complicate the expression
3109
 
          # below, but for the user to provide a working wine installation
3110
 
          # with winepath so that path translation in the cross-to-mingw
3111
 
          # case works properly.
3112
 
          lt_replace_pathsep_nix_to_dos="s|:|;|g"
3113
 
          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
3114
 
            $SED -e "$lt_replace_pathsep_nix_to_dos"`
3115
 
        fi
3116
 
        # Now, add the leading and trailing path separators back
3117
 
        case "$1" in
3118
 
          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
3119
 
            ;;
3120
 
        esac
3121
 
        case "$1" in
3122
 
          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
3123
 
            ;;
3124
 
        esac
3125
 
        ;;
3126
 
    esac
3127
 
  fi
3128
 
}
3129
 
# end: func_to_host_pathlist
 
4126
 
3130
4127
 
3131
4128
# func_emit_cwrapperexe_src
3132
4129
# emit the source code for a wrapper executable on stdout
3144
4141
 
3145
4142
   This wrapper executable should never be moved out of the build directory.
3146
4143
   If it is, it will not operate correctly.
3147
 
 
3148
 
   Currently, it simply execs the wrapper *script* "$SHELL $output",
3149
 
   but could eventually absorb all of the scripts functionality and
3150
 
   exec $objdir/$outputname directly.
3151
4144
*/
3152
4145
EOF
3153
4146
            cat <<"EOF"
 
4147
#ifdef _MSC_VER
 
4148
# define _CRT_SECURE_NO_DEPRECATE 1
 
4149
#endif
3154
4150
#include <stdio.h>
3155
4151
#include <stdlib.h>
3156
4152
#ifdef _MSC_VER
3157
4153
# include <direct.h>
3158
4154
# include <process.h>
3159
4155
# include <io.h>
3160
 
# define setmode _setmode
3161
4156
#else
3162
4157
# include <unistd.h>
3163
4158
# include <stdint.h>
3164
4159
# ifdef __CYGWIN__
3165
4160
#  include <io.h>
3166
 
#  define HAVE_SETENV
3167
 
#  ifdef __STRICT_ANSI__
3168
 
char *realpath (const char *, char *);
3169
 
int putenv (char *);
3170
 
int setenv (const char *, const char *, int);
3171
 
#  endif
3172
4161
# endif
3173
4162
#endif
3174
4163
#include <malloc.h>
3180
4169
#include <fcntl.h>
3181
4170
#include <sys/stat.h>
3182
4171
 
 
4172
/* declarations of non-ANSI functions */
 
4173
#if defined(__MINGW32__)
 
4174
# ifdef __STRICT_ANSI__
 
4175
int _putenv (const char *);
 
4176
# endif
 
4177
#elif defined(__CYGWIN__)
 
4178
# ifdef __STRICT_ANSI__
 
4179
char *realpath (const char *, char *);
 
4180
int putenv (char *);
 
4181
int setenv (const char *, const char *, int);
 
4182
# endif
 
4183
/* #elif defined (other platforms) ... */
 
4184
#endif
 
4185
 
 
4186
/* portability defines, excluding path handling macros */
 
4187
#if defined(_MSC_VER)
 
4188
# define setmode _setmode
 
4189
# define stat    _stat
 
4190
# define chmod   _chmod
 
4191
# define getcwd  _getcwd
 
4192
# define putenv  _putenv
 
4193
# define S_IXUSR _S_IEXEC
 
4194
# ifndef _INTPTR_T_DEFINED
 
4195
#  define _INTPTR_T_DEFINED
 
4196
#  define intptr_t int
 
4197
# endif
 
4198
#elif defined(__MINGW32__)
 
4199
# define setmode _setmode
 
4200
# define stat    _stat
 
4201
# define chmod   _chmod
 
4202
# define getcwd  _getcwd
 
4203
# define putenv  _putenv
 
4204
#elif defined(__CYGWIN__)
 
4205
# define HAVE_SETENV
 
4206
# define FOPEN_WB "wb"
 
4207
/* #elif defined (other platforms) ... */
 
4208
#endif
 
4209
 
3183
4210
#if defined(PATH_MAX)
3184
4211
# define LT_PATHMAX PATH_MAX
3185
4212
#elif defined(MAXPATHLEN)
3195
4222
# define S_IXGRP 0
3196
4223
#endif
3197
4224
 
3198
 
#ifdef _MSC_VER
3199
 
# define S_IXUSR _S_IEXEC
3200
 
# define stat _stat
3201
 
# ifndef _INTPTR_T_DEFINED
3202
 
#  define intptr_t int
3203
 
# endif
3204
 
#endif
3205
 
 
 
4225
/* path handling portability macros */
3206
4226
#ifndef DIR_SEPARATOR
3207
4227
# define DIR_SEPARATOR '/'
3208
4228
# define PATH_SEPARATOR ':'
3233
4253
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3234
4254
#endif /* PATH_SEPARATOR_2 */
3235
4255
 
3236
 
#ifdef __CYGWIN__
3237
 
# define FOPEN_WB "wb"
3238
 
#endif
3239
 
 
3240
4256
#ifndef FOPEN_WB
3241
4257
# define FOPEN_WB "w"
3242
4258
#endif
3249
4265
  if (stale) { free ((void *) stale); stale = 0; } \
3250
4266
} while (0)
3251
4267
 
3252
 
#undef LTWRAPPER_DEBUGPRINTF
3253
 
#if defined DEBUGWRAPPER
3254
 
# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3255
 
static void
3256
 
ltwrapper_debugprintf (const char *fmt, ...)
3257
 
{
3258
 
    va_list args;
3259
 
    va_start (args, fmt);
3260
 
    (void) vfprintf (stderr, fmt, args);
3261
 
    va_end (args);
3262
 
}
 
4268
#if defined(LT_DEBUGWRAPPER)
 
4269
static int lt_debug = 1;
3263
4270
#else
3264
 
# define LTWRAPPER_DEBUGPRINTF(args)
 
4271
static int lt_debug = 0;
3265
4272
#endif
3266
4273
 
3267
 
const char *program_name = NULL;
 
4274
const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
3268
4275
 
3269
4276
void *xmalloc (size_t num);
3270
4277
char *xstrdup (const char *string);
3274
4281
int make_executable (const char *path);
3275
4282
int check_executable (const char *path);
3276
4283
char *strendzap (char *str, const char *pat);
3277
 
void lt_fatal (const char *message, ...);
 
4284
void lt_debugprintf (const char *file, int line, const char *fmt, ...);
 
4285
void lt_fatal (const char *file, int line, const char *message, ...);
 
4286
static const char *nonnull (const char *s);
 
4287
static const char *nonempty (const char *s);
3278
4288
void lt_setenv (const char *name, const char *value);
3279
4289
char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3280
 
void lt_opt_process_env_set (const char *arg);
3281
 
void lt_opt_process_env_prepend (const char *arg);
3282
 
void lt_opt_process_env_append (const char *arg);
3283
 
int lt_split_name_value (const char *arg, char** name, char** value);
3284
4290
void lt_update_exe_path (const char *name, const char *value);
3285
4291
void lt_update_lib_path (const char *name, const char *value);
3286
 
 
3287
 
static const char *script_text_part1 =
3288
 
EOF
3289
 
 
3290
 
            func_emit_wrapper_part1 yes |
3291
 
                $SED -e 's/\([\\"]\)/\\\1/g' \
3292
 
                     -e 's/^/  "/' -e 's/$/\\n"/'
3293
 
            echo ";"
3294
 
            cat <<EOF
3295
 
 
3296
 
static const char *script_text_part2 =
3297
 
EOF
3298
 
            func_emit_wrapper_part2 yes |
3299
 
                $SED -e 's/\([\\"]\)/\\\1/g' \
3300
 
                     -e 's/^/  "/' -e 's/$/\\n"/'
3301
 
            echo ";"
3302
 
 
3303
 
            cat <<EOF
3304
 
const char * MAGIC_EXE = "$magic_exe";
 
4292
char **prepare_spawn (char **argv);
 
4293
void lt_dump_script (FILE *f);
 
4294
EOF
 
4295
 
 
4296
            cat <<EOF
 
4297
volatile const char * MAGIC_EXE = "$magic_exe";
3305
4298
const char * LIB_PATH_VARNAME = "$shlibpath_var";
3306
4299
EOF
3307
4300
 
3308
4301
            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3309
 
              func_to_host_pathlist "$temp_rpath"
 
4302
              func_to_host_path "$temp_rpath"
3310
4303
              cat <<EOF
3311
 
const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
 
4304
const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
3312
4305
EOF
3313
4306
            else
3314
4307
              cat <<"EOF"
3317
4310
            fi
3318
4311
 
3319
4312
            if test -n "$dllsearchpath"; then
3320
 
              func_to_host_pathlist "$dllsearchpath:"
 
4313
              func_to_host_path "$dllsearchpath:"
3321
4314
              cat <<EOF
3322
4315
const char * EXE_PATH_VARNAME = "PATH";
3323
 
const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
 
4316
const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
3324
4317
EOF
3325
4318
            else
3326
4319
              cat <<"EOF"
3343
4336
            cat <<"EOF"
3344
4337
 
3345
4338
#define LTWRAPPER_OPTION_PREFIX         "--lt-"
3346
 
#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
3347
4339
 
3348
 
static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
3349
4340
static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3350
 
 
3351
4341
static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
3352
 
 
3353
 
static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3354
 
static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
3355
 
  /* argument is putenv-style "foo=bar", value of foo is set to bar */
3356
 
 
3357
 
static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3358
 
static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
3359
 
  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
3360
 
 
3361
 
static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3362
 
static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
3363
 
  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
 
4342
static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
3364
4343
 
3365
4344
int
3366
4345
main (int argc, char *argv[])
3377
4356
  int i;
3378
4357
 
3379
4358
  program_name = (char *) xstrdup (base_name (argv[0]));
3380
 
  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
3381
 
  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
 
4359
  newargz = XMALLOC (char *, argc + 1);
3382
4360
 
3383
 
  /* very simple arg parsing; don't want to rely on getopt */
 
4361
  /* very simple arg parsing; don't want to rely on getopt
 
4362
   * also, copy all non cwrapper options to newargz, except
 
4363
   * argz[0], which is handled differently
 
4364
   */
 
4365
  newargc=0;
3384
4366
  for (i = 1; i < argc; i++)
3385
4367
    {
3386
4368
      if (strcmp (argv[i], dumpscript_opt) == 0)
3394
4376
              esac
3395
4377
 
3396
4378
            cat <<"EOF"
3397
 
          printf ("%s", script_text_part1);
3398
 
          printf ("%s", script_text_part2);
 
4379
          lt_dump_script (stdout);
3399
4380
          return 0;
3400
4381
        }
 
4382
      if (strcmp (argv[i], debug_opt) == 0)
 
4383
        {
 
4384
          lt_debug = 1;
 
4385
          continue;
 
4386
        }
 
4387
      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
 
4388
        {
 
4389
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
 
4390
             namespace, but it is not one of the ones we know about and
 
4391
             have already dealt with, above (inluding dump-script), then
 
4392
             report an error. Otherwise, targets might begin to believe
 
4393
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
 
4394
             namespace. The first time any user complains about this, we'll
 
4395
             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
 
4396
             or a configure.ac-settable value.
 
4397
           */
 
4398
          lt_fatal (__FILE__, __LINE__,
 
4399
                    "unrecognized %s option: '%s'",
 
4400
                    ltwrapper_option_prefix, argv[i]);
 
4401
        }
 
4402
      /* otherwise ... */
 
4403
      newargz[++newargc] = xstrdup (argv[i]);
3401
4404
    }
3402
 
 
3403
 
  newargz = XMALLOC (char *, argc + 1);
 
4405
  newargz[++newargc] = NULL;
 
4406
 
 
4407
EOF
 
4408
            cat <<EOF
 
4409
  /* The GNU banner must be the first non-error debug message */
 
4410
  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
 
4411
EOF
 
4412
            cat <<"EOF"
 
4413
  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
 
4414
  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
4415
 
3404
4416
  tmp_pathspec = find_executable (argv[0]);
3405
4417
  if (tmp_pathspec == NULL)
3406
 
    lt_fatal ("Couldn't find %s", argv[0]);
3407
 
  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
3408
 
                          tmp_pathspec));
 
4418
    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
 
4419
  lt_debugprintf (__FILE__, __LINE__,
 
4420
                  "(main) found exe (before symlink chase) at: %s\n",
 
4421
                  tmp_pathspec);
3409
4422
 
3410
4423
  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3411
 
  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
3412
 
                          actual_cwrapper_path));
 
4424
  lt_debugprintf (__FILE__, __LINE__,
 
4425
                  "(main) found exe (after symlink chase) at: %s\n",
 
4426
                  actual_cwrapper_path);
3413
4427
  XFREE (tmp_pathspec);
3414
4428
 
3415
 
  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
 
4429
  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
3416
4430
  strendzap (actual_cwrapper_path, actual_cwrapper_name);
3417
4431
 
3418
4432
  /* wrapper name transforms */
3430
4444
  target_name = tmp_pathspec;
3431
4445
  tmp_pathspec = 0;
3432
4446
 
3433
 
  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
3434
 
                          target_name));
 
4447
  lt_debugprintf (__FILE__, __LINE__,
 
4448
                  "(main) libtool target name: %s\n",
 
4449
                  target_name);
3435
4450
EOF
3436
4451
 
3437
4452
            cat <<EOF
3481
4496
 
3482
4497
  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
3483
4498
  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
 
4499
  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
 
4500
     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
 
4501
     because on Windows, both *_VARNAMEs are PATH but uninstalled
 
4502
     libraries must come first. */
 
4503
  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3484
4504
  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3485
 
  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3486
 
 
3487
 
  newargc=0;
3488
 
  for (i = 1; i < argc; i++)
3489
 
    {
3490
 
      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3491
 
        {
3492
 
          if (argv[i][env_set_opt_len] == '=')
3493
 
            {
3494
 
              const char *p = argv[i] + env_set_opt_len + 1;
3495
 
              lt_opt_process_env_set (p);
3496
 
            }
3497
 
          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3498
 
            {
3499
 
              lt_opt_process_env_set (argv[++i]); /* don't copy */
3500
 
            }
3501
 
          else
3502
 
            lt_fatal ("%s missing required argument", env_set_opt);
3503
 
          continue;
3504
 
        }
3505
 
      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3506
 
        {
3507
 
          if (argv[i][env_prepend_opt_len] == '=')
3508
 
            {
3509
 
              const char *p = argv[i] + env_prepend_opt_len + 1;
3510
 
              lt_opt_process_env_prepend (p);
3511
 
            }
3512
 
          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3513
 
            {
3514
 
              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
3515
 
            }
3516
 
          else
3517
 
            lt_fatal ("%s missing required argument", env_prepend_opt);
3518
 
          continue;
3519
 
        }
3520
 
      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
3521
 
        {
3522
 
          if (argv[i][env_append_opt_len] == '=')
3523
 
            {
3524
 
              const char *p = argv[i] + env_append_opt_len + 1;
3525
 
              lt_opt_process_env_append (p);
3526
 
            }
3527
 
          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
3528
 
            {
3529
 
              lt_opt_process_env_append (argv[++i]); /* don't copy */
3530
 
            }
3531
 
          else
3532
 
            lt_fatal ("%s missing required argument", env_append_opt);
3533
 
          continue;
3534
 
        }
3535
 
      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
3536
 
        {
3537
 
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3538
 
             namespace, but it is not one of the ones we know about and
3539
 
             have already dealt with, above (inluding dump-script), then
3540
 
             report an error. Otherwise, targets might begin to believe
3541
 
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3542
 
             namespace. The first time any user complains about this, we'll
3543
 
             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3544
 
             or a configure.ac-settable value.
3545
 
           */
3546
 
          lt_fatal ("Unrecognized option in %s namespace: '%s'",
3547
 
                    ltwrapper_option_prefix, argv[i]);
3548
 
        }
3549
 
      /* otherwise ... */
3550
 
      newargz[++newargc] = xstrdup (argv[i]);
3551
 
    }
3552
 
  newargz[++newargc] = NULL;
3553
 
 
3554
 
  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
 
4505
 
 
4506
  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
 
4507
                  nonnull (lt_argv_zero));
3555
4508
  for (i = 0; i < newargc; i++)
3556
4509
    {
3557
 
      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
 
4510
      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
 
4511
                      i, nonnull (newargz[i]));
3558
4512
    }
3559
4513
 
3560
4514
EOF
3563
4517
              mingw*)
3564
4518
                cat <<"EOF"
3565
4519
  /* execv doesn't actually work on mingw as expected on unix */
 
4520
  newargz = prepare_spawn (newargz);
3566
4521
  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
3567
4522
  if (rval == -1)
3568
4523
    {
3569
4524
      /* failed to start process */
3570
 
      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
 
4525
      lt_debugprintf (__FILE__, __LINE__,
 
4526
                      "(main) failed to launch target \"%s\": %s\n",
 
4527
                      lt_argv_zero, nonnull (strerror (errno)));
3571
4528
      return 127;
3572
4529
    }
3573
4530
  return rval;
3589
4546
{
3590
4547
  void *p = (void *) malloc (num);
3591
4548
  if (!p)
3592
 
    lt_fatal ("Memory exhausted");
 
4549
    lt_fatal (__FILE__, __LINE__, "memory exhausted");
3593
4550
 
3594
4551
  return p;
3595
4552
}
3623
4580
{
3624
4581
  struct stat st;
3625
4582
 
3626
 
  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
3627
 
                          path ? (*path ? path : "EMPTY!") : "NULL!"));
 
4583
  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
 
4584
                  nonempty (path));
3628
4585
  if ((!path) || (!*path))
3629
4586
    return 0;
3630
4587
 
3641
4598
  int rval = 0;
3642
4599
  struct stat st;
3643
4600
 
3644
 
  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
3645
 
                          path ? (*path ? path : "EMPTY!") : "NULL!"));
 
4601
  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
 
4602
                  nonempty (path));
3646
4603
  if ((!path) || (!*path))
3647
4604
    return 0;
3648
4605
 
3668
4625
  int tmp_len;
3669
4626
  char *concat_name;
3670
4627
 
3671
 
  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
3672
 
                          wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
 
4628
  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
 
4629
                  nonempty (wrapper));
3673
4630
 
3674
4631
  if ((wrapper == NULL) || (*wrapper == '\0'))
3675
4632
    return NULL;
3722
4679
                {
3723
4680
                  /* empty path: current directory */
3724
4681
                  if (getcwd (tmp, LT_PATHMAX) == NULL)
3725
 
                    lt_fatal ("getcwd failed");
 
4682
                    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
 
4683
                              nonnull (strerror (errno)));
3726
4684
                  tmp_len = strlen (tmp);
3727
4685
                  concat_name =
3728
4686
                    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3747
4705
    }
3748
4706
  /* Relative path | not found in path: prepend cwd */
3749
4707
  if (getcwd (tmp, LT_PATHMAX) == NULL)
3750
 
    lt_fatal ("getcwd failed");
 
4708
    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
 
4709
              nonnull (strerror (errno)));
3751
4710
  tmp_len = strlen (tmp);
3752
4711
  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3753
4712
  memcpy (concat_name, tmp, tmp_len);
3773
4732
  int has_symlinks = 0;
3774
4733
  while (strlen (tmp_pathspec) && !has_symlinks)
3775
4734
    {
3776
 
      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
3777
 
                              tmp_pathspec));
 
4735
      lt_debugprintf (__FILE__, __LINE__,
 
4736
                      "checking path component for symlinks: %s\n",
 
4737
                      tmp_pathspec);
3778
4738
      if (lstat (tmp_pathspec, &s) == 0)
3779
4739
        {
3780
4740
          if (S_ISLNK (s.st_mode) != 0)
3796
4756
        }
3797
4757
      else
3798
4758
        {
3799
 
          char *errstr = strerror (errno);
3800
 
          lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
 
4759
          lt_fatal (__FILE__, __LINE__,
 
4760
                    "error accessing file \"%s\": %s",
 
4761
                    tmp_pathspec, nonnull (strerror (errno)));
3801
4762
        }
3802
4763
    }
3803
4764
  XFREE (tmp_pathspec);
3810
4771
  tmp_pathspec = realpath (pathspec, buf);
3811
4772
  if (tmp_pathspec == 0)
3812
4773
    {
3813
 
      lt_fatal ("Could not follow symlinks for %s", pathspec);
 
4774
      lt_fatal (__FILE__, __LINE__,
 
4775
                "could not follow symlinks for %s", pathspec);
3814
4776
    }
3815
4777
  return xstrdup (tmp_pathspec);
3816
4778
#endif
3836
4798
  return str;
3837
4799
}
3838
4800
 
 
4801
void
 
4802
lt_debugprintf (const char *file, int line, const char *fmt, ...)
 
4803
{
 
4804
  va_list args;
 
4805
  if (lt_debug)
 
4806
    {
 
4807
      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
 
4808
      va_start (args, fmt);
 
4809
      (void) vfprintf (stderr, fmt, args);
 
4810
      va_end (args);
 
4811
    }
 
4812
}
 
4813
 
3839
4814
static void
3840
 
lt_error_core (int exit_status, const char *mode,
 
4815
lt_error_core (int exit_status, const char *file,
 
4816
               int line, const char *mode,
3841
4817
               const char *message, va_list ap)
3842
4818
{
3843
 
  fprintf (stderr, "%s: %s: ", program_name, mode);
 
4819
  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
3844
4820
  vfprintf (stderr, message, ap);
3845
4821
  fprintf (stderr, ".\n");
3846
4822
 
3849
4825
}
3850
4826
 
3851
4827
void
3852
 
lt_fatal (const char *message, ...)
 
4828
lt_fatal (const char *file, int line, const char *message, ...)
3853
4829
{
3854
4830
  va_list ap;
3855
4831
  va_start (ap, message);
3856
 
  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 
4832
  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
3857
4833
  va_end (ap);
3858
4834
}
3859
4835
 
 
4836
static const char *
 
4837
nonnull (const char *s)
 
4838
{
 
4839
  return s ? s : "(null)";
 
4840
}
 
4841
 
 
4842
static const char *
 
4843
nonempty (const char *s)
 
4844
{
 
4845
  return (s && !*s) ? "(empty)" : nonnull (s);
 
4846
}
 
4847
 
3860
4848
void
3861
4849
lt_setenv (const char *name, const char *value)
3862
4850
{
3863
 
  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
3864
 
                          (name ? name : "<NULL>"),
3865
 
                          (value ? value : "<NULL>")));
 
4851
  lt_debugprintf (__FILE__, __LINE__,
 
4852
                  "(lt_setenv) setting '%s' to '%s'\n",
 
4853
                  nonnull (name), nonnull (value));
3866
4854
  {
3867
4855
#ifdef HAVE_SETENV
3868
4856
    /* always make a copy, for consistency with !HAVE_SETENV */
3907
4895
  return new_value;
3908
4896
}
3909
4897
 
3910
 
int
3911
 
lt_split_name_value (const char *arg, char** name, char** value)
3912
 
{
3913
 
  const char *p;
3914
 
  int len;
3915
 
  if (!arg || !*arg)
3916
 
    return 1;
3917
 
 
3918
 
  p = strchr (arg, (int)'=');
3919
 
 
3920
 
  if (!p)
3921
 
    return 1;
3922
 
 
3923
 
  *value = xstrdup (++p);
3924
 
 
3925
 
  len = strlen (arg) - strlen (*value);
3926
 
  *name = XMALLOC (char, len);
3927
 
  strncpy (*name, arg, len-1);
3928
 
  (*name)[len - 1] = '\0';
3929
 
 
3930
 
  return 0;
3931
 
}
3932
 
 
3933
 
void
3934
 
lt_opt_process_env_set (const char *arg)
3935
 
{
3936
 
  char *name = NULL;
3937
 
  char *value = NULL;
3938
 
 
3939
 
  if (lt_split_name_value (arg, &name, &value) != 0)
3940
 
    {
3941
 
      XFREE (name);
3942
 
      XFREE (value);
3943
 
      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
3944
 
    }
3945
 
 
3946
 
  lt_setenv (name, value);
3947
 
  XFREE (name);
3948
 
  XFREE (value);
3949
 
}
3950
 
 
3951
 
void
3952
 
lt_opt_process_env_prepend (const char *arg)
3953
 
{
3954
 
  char *name = NULL;
3955
 
  char *value = NULL;
3956
 
  char *new_value = NULL;
3957
 
 
3958
 
  if (lt_split_name_value (arg, &name, &value) != 0)
3959
 
    {
3960
 
      XFREE (name);
3961
 
      XFREE (value);
3962
 
      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
3963
 
    }
3964
 
 
3965
 
  new_value = lt_extend_str (getenv (name), value, 0);
3966
 
  lt_setenv (name, new_value);
3967
 
  XFREE (new_value);
3968
 
  XFREE (name);
3969
 
  XFREE (value);
3970
 
}
3971
 
 
3972
 
void
3973
 
lt_opt_process_env_append (const char *arg)
3974
 
{
3975
 
  char *name = NULL;
3976
 
  char *value = NULL;
3977
 
  char *new_value = NULL;
3978
 
 
3979
 
  if (lt_split_name_value (arg, &name, &value) != 0)
3980
 
    {
3981
 
      XFREE (name);
3982
 
      XFREE (value);
3983
 
      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
3984
 
    }
3985
 
 
3986
 
  new_value = lt_extend_str (getenv (name), value, 1);
3987
 
  lt_setenv (name, new_value);
3988
 
  XFREE (new_value);
3989
 
  XFREE (name);
3990
 
  XFREE (value);
3991
 
}
3992
 
 
3993
4898
void
3994
4899
lt_update_exe_path (const char *name, const char *value)
3995
4900
{
3996
 
  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
3997
 
                          (name ? name : "<NULL>"),
3998
 
                          (value ? value : "<NULL>")));
 
4901
  lt_debugprintf (__FILE__, __LINE__,
 
4902
                  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
 
4903
                  nonnull (name), nonnull (value));
3999
4904
 
4000
4905
  if (name && *name && value && *value)
4001
4906
    {
4014
4919
void
4015
4920
lt_update_lib_path (const char *name, const char *value)
4016
4921
{
4017
 
  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4018
 
                          (name ? name : "<NULL>"),
4019
 
                          (value ? value : "<NULL>")));
 
4922
  lt_debugprintf (__FILE__, __LINE__,
 
4923
                  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
 
4924
                  nonnull (name), nonnull (value));
4020
4925
 
4021
4926
  if (name && *name && value && *value)
4022
4927
    {
4026
4931
    }
4027
4932
}
4028
4933
 
4029
 
 
 
4934
EOF
 
4935
            case $host_os in
 
4936
              mingw*)
 
4937
                cat <<"EOF"
 
4938
 
 
4939
/* Prepares an argument vector before calling spawn().
 
4940
   Note that spawn() does not by itself call the command interpreter
 
4941
     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
 
4942
      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 
4943
         GetVersionEx(&v);
 
4944
         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
 
4945
      }) ? "cmd.exe" : "command.com").
 
4946
   Instead it simply concatenates the arguments, separated by ' ', and calls
 
4947
   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
 
4948
   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
 
4949
   special way:
 
4950
   - Space and tab are interpreted as delimiters. They are not treated as
 
4951
     delimiters if they are surrounded by double quotes: "...".
 
4952
   - Unescaped double quotes are removed from the input. Their only effect is
 
4953
     that within double quotes, space and tab are treated like normal
 
4954
     characters.
 
4955
   - Backslashes not followed by double quotes are not special.
 
4956
   - But 2*n+1 backslashes followed by a double quote become
 
4957
     n backslashes followed by a double quote (n >= 0):
 
4958
       \" -> "
 
4959
       \\\" -> \"
 
4960
       \\\\\" -> \\"
 
4961
 */
 
4962
#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"
 
4963
#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"
 
4964
char **
 
4965
prepare_spawn (char **argv)
 
4966
{
 
4967
  size_t argc;
 
4968
  char **new_argv;
 
4969
  size_t i;
 
4970
 
 
4971
  /* Count number of arguments.  */
 
4972
  for (argc = 0; argv[argc] != NULL; argc++)
 
4973
    ;
 
4974
 
 
4975
  /* Allocate new argument vector.  */
 
4976
  new_argv = XMALLOC (char *, argc + 1);
 
4977
 
 
4978
  /* Put quoted arguments into the new argument vector.  */
 
4979
  for (i = 0; i < argc; i++)
 
4980
    {
 
4981
      const char *string = argv[i];
 
4982
 
 
4983
      if (string[0] == '\0')
 
4984
        new_argv[i] = xstrdup ("\"\"");
 
4985
      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
 
4986
        {
 
4987
          int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
 
4988
          size_t length;
 
4989
          unsigned int backslashes;
 
4990
          const char *s;
 
4991
          char *quoted_string;
 
4992
          char *p;
 
4993
 
 
4994
          length = 0;
 
4995
          backslashes = 0;
 
4996
          if (quote_around)
 
4997
            length++;
 
4998
          for (s = string; *s != '\0'; s++)
 
4999
            {
 
5000
              char c = *s;
 
5001
              if (c == '"')
 
5002
                length += backslashes + 1;
 
5003
              length++;
 
5004
              if (c == '\\')
 
5005
                backslashes++;
 
5006
              else
 
5007
                backslashes = 0;
 
5008
            }
 
5009
          if (quote_around)
 
5010
            length += backslashes + 1;
 
5011
 
 
5012
          quoted_string = XMALLOC (char, length + 1);
 
5013
 
 
5014
          p = quoted_string;
 
5015
          backslashes = 0;
 
5016
          if (quote_around)
 
5017
            *p++ = '"';
 
5018
          for (s = string; *s != '\0'; s++)
 
5019
            {
 
5020
              char c = *s;
 
5021
              if (c == '"')
 
5022
                {
 
5023
                  unsigned int j;
 
5024
                  for (j = backslashes + 1; j > 0; j--)
 
5025
                    *p++ = '\\';
 
5026
                }
 
5027
              *p++ = c;
 
5028
              if (c == '\\')
 
5029
                backslashes++;
 
5030
              else
 
5031
                backslashes = 0;
 
5032
            }
 
5033
          if (quote_around)
 
5034
            {
 
5035
              unsigned int j;
 
5036
              for (j = backslashes; j > 0; j--)
 
5037
                *p++ = '\\';
 
5038
              *p++ = '"';
 
5039
            }
 
5040
          *p = '\0';
 
5041
 
 
5042
          new_argv[i] = quoted_string;
 
5043
        }
 
5044
      else
 
5045
        new_argv[i] = (char *) string;
 
5046
    }
 
5047
  new_argv[argc] = NULL;
 
5048
 
 
5049
  return new_argv;
 
5050
}
 
5051
EOF
 
5052
                ;;
 
5053
            esac
 
5054
 
 
5055
            cat <<"EOF"
 
5056
void lt_dump_script (FILE* f)
 
5057
{
 
5058
EOF
 
5059
            func_emit_wrapper yes |
 
5060
              $SED -e 's/\([\\"]\)/\\\1/g' \
 
5061
                   -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
 
5062
 
 
5063
            cat <<"EOF"
 
5064
}
4030
5065
EOF
4031
5066
}
4032
5067
# end: func_emit_cwrapperexe_src
4033
5068
 
 
5069
# func_win32_import_lib_p ARG
 
5070
# True if ARG is an import lib, as indicated by $file_magic_cmd
 
5071
func_win32_import_lib_p ()
 
5072
{
 
5073
    $opt_debug
 
5074
    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
 
5075
    *import*) : ;;
 
5076
    *) false ;;
 
5077
    esac
 
5078
}
 
5079
 
4034
5080
# func_mode_link arg...
4035
5081
func_mode_link ()
4036
5082
{
4075
5121
    new_inherited_linker_flags=
4076
5122
 
4077
5123
    avoid_version=no
 
5124
    bindir=
4078
5125
    dlfiles=
4079
5126
    dlprefiles=
4080
5127
    dlself=no
4167
5214
        esac
4168
5215
 
4169
5216
        case $prev in
 
5217
        bindir)
 
5218
          bindir="$arg"
 
5219
          prev=
 
5220
          continue
 
5221
          ;;
4170
5222
        dlfiles|dlprefiles)
4171
5223
          if test "$preload" = no; then
4172
5224
            # Add the symbol object into the linking commands.
4198
5250
            ;;
4199
5251
          *)
4200
5252
            if test "$prev" = dlfiles; then
4201
 
              dlfiles="$dlfiles $arg"
 
5253
              func_append dlfiles " $arg"
4202
5254
            else
4203
 
              dlprefiles="$dlprefiles $arg"
 
5255
              func_append dlprefiles " $arg"
4204
5256
            fi
4205
5257
            prev=
4206
5258
            continue
4224
5276
            *-*-darwin*)
4225
5277
              case "$deplibs " in
4226
5278
                *" $qarg.ltframework "*) ;;
4227
 
                *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
 
5279
                *) func_append deplibs " $qarg.ltframework" # this is fixed later
4228
5280
                   ;;
4229
5281
              esac
4230
5282
              ;;
4243
5295
            moreargs=
4244
5296
            for fil in `cat "$save_arg"`
4245
5297
            do
4246
 
#             moreargs="$moreargs $fil"
 
5298
#             func_append moreargs " $fil"
4247
5299
              arg=$fil
4248
5300
              # A libtool-controlled object.
4249
5301
 
4272
5324
 
4273
5325
                  if test "$prev" = dlfiles; then
4274
5326
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4275
 
                      dlfiles="$dlfiles $pic_object"
 
5327
                      func_append dlfiles " $pic_object"
4276
5328
                      prev=
4277
5329
                      continue
4278
5330
                    else
4284
5336
                  # CHECK ME:  I think I busted this.  -Ossama
4285
5337
                  if test "$prev" = dlprefiles; then
4286
5338
                    # Preload the old-style object.
4287
 
                    dlprefiles="$dlprefiles $pic_object"
 
5339
                    func_append dlprefiles " $pic_object"
4288
5340
                    prev=
4289
5341
                  fi
4290
5342
 
4354
5406
          if test "$prev" = rpath; then
4355
5407
            case "$rpath " in
4356
5408
            *" $arg "*) ;;
4357
 
            *) rpath="$rpath $arg" ;;
 
5409
            *) func_append rpath " $arg" ;;
4358
5410
            esac
4359
5411
          else
4360
5412
            case "$xrpath " in
4361
5413
            *" $arg "*) ;;
4362
 
            *) xrpath="$xrpath $arg" ;;
 
5414
            *) func_append xrpath " $arg" ;;
4363
5415
            esac
4364
5416
          fi
4365
5417
          prev=
4371
5423
          continue
4372
5424
          ;;
4373
5425
        weak)
4374
 
          weak_libs="$weak_libs $arg"
 
5426
          func_append weak_libs " $arg"
4375
5427
          prev=
4376
5428
          continue
4377
5429
          ;;
4378
5430
        xcclinker)
4379
 
          linker_flags="$linker_flags $qarg"
4380
 
          compiler_flags="$compiler_flags $qarg"
 
5431
          func_append linker_flags " $qarg"
 
5432
          func_append compiler_flags " $qarg"
4381
5433
          prev=
4382
5434
          func_append compile_command " $qarg"
4383
5435
          func_append finalize_command " $qarg"
4384
5436
          continue
4385
5437
          ;;
4386
5438
        xcompiler)
4387
 
          compiler_flags="$compiler_flags $qarg"
 
5439
          func_append compiler_flags " $qarg"
4388
5440
          prev=
4389
5441
          func_append compile_command " $qarg"
4390
5442
          func_append finalize_command " $qarg"
4391
5443
          continue
4392
5444
          ;;
4393
5445
        xlinker)
4394
 
          linker_flags="$linker_flags $qarg"
4395
 
          compiler_flags="$compiler_flags $wl$qarg"
 
5446
          func_append linker_flags " $qarg"
 
5447
          func_append compiler_flags " $wl$qarg"
4396
5448
          prev=
4397
5449
          func_append compile_command " $wl$qarg"
4398
5450
          func_append finalize_command " $wl$qarg"
4428
5480
        continue
4429
5481
        ;;
4430
5482
 
 
5483
      -bindir)
 
5484
        prev=bindir
 
5485
        continue
 
5486
        ;;
 
5487
 
4431
5488
      -dlopen)
4432
5489
        prev=dlfiles
4433
5490
        continue
4478
5535
        ;;
4479
5536
 
4480
5537
      -L*)
4481
 
        func_stripname '-L' '' "$arg"
4482
 
        dir=$func_stripname_result
4483
 
        if test -z "$dir"; then
 
5538
        func_stripname "-L" '' "$arg"
 
5539
        if test -z "$func_stripname_result"; then
4484
5540
          if test "$#" -gt 0; then
4485
5541
            func_fatal_error "require no space between \`-L' and \`$1'"
4486
5542
          else
4487
5543
            func_fatal_error "need path for \`-L' option"
4488
5544
          fi
4489
5545
        fi
 
5546
        func_resolve_sysroot "$func_stripname_result"
 
5547
        dir=$func_resolve_sysroot_result
4490
5548
        # We need an absolute path.
4491
5549
        case $dir in
4492
5550
        [\\/]* | [A-Za-z]:[\\/]*) ;;
4498
5556
          ;;
4499
5557
        esac
4500
5558
        case "$deplibs " in
4501
 
        *" -L$dir "*) ;;
 
5559
        *" -L$dir "* | *" $arg "*)
 
5560
          # Will only happen for absolute or sysroot arguments
 
5561
          ;;
4502
5562
        *)
4503
 
          deplibs="$deplibs -L$dir"
4504
 
          lib_search_path="$lib_search_path $dir"
 
5563
          # Preserve sysroot, but never include relative directories
 
5564
          case $dir in
 
5565
            [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
 
5566
            *) func_append deplibs " -L$dir" ;;
 
5567
          esac
 
5568
          func_append lib_search_path " $dir"
4505
5569
          ;;
4506
5570
        esac
4507
5571
        case $host in
4508
5572
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4509
 
          testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 
5573
          testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
4510
5574
          case :$dllsearchpath: in
4511
5575
          *":$dir:"*) ;;
4512
5576
          ::) dllsearchpath=$dir;;
4513
 
          *) dllsearchpath="$dllsearchpath:$dir";;
 
5577
          *) func_append dllsearchpath ":$dir";;
4514
5578
          esac
4515
5579
          case :$dllsearchpath: in
4516
5580
          *":$testbindir:"*) ;;
4517
5581
          ::) dllsearchpath=$testbindir;;
4518
 
          *) dllsearchpath="$dllsearchpath:$testbindir";;
 
5582
          *) func_append dllsearchpath ":$testbindir";;
4519
5583
          esac
4520
5584
          ;;
4521
5585
        esac
4525
5589
      -l*)
4526
5590
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
4527
5591
          case $host in
4528
 
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
 
5592
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
4529
5593
            # These systems don't actually have a C or math library (as such)
4530
5594
            continue
4531
5595
            ;;
4539
5603
            ;;
4540
5604
          *-*-rhapsody* | *-*-darwin1.[012])
4541
5605
            # Rhapsody C and math libraries are in the System framework
4542
 
            deplibs="$deplibs System.ltframework"
 
5606
            func_append deplibs " System.ltframework"
4543
5607
            continue
4544
5608
            ;;
4545
5609
          *-*-sco3.2v5* | *-*-sco5v6*)
4559
5623
           ;;
4560
5624
         esac
4561
5625
        fi
4562
 
        deplibs="$deplibs $arg"
 
5626
        func_append deplibs " $arg"
4563
5627
        continue
4564
5628
        ;;
4565
5629
 
4571
5635
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
4572
5636
      # classes, name mangling, and exception handling.
4573
5637
      # Darwin uses the -arch flag to determine output architecture.
4574
 
      -model|-arch|-isysroot)
4575
 
        compiler_flags="$compiler_flags $arg"
 
5638
      -model|-arch|-isysroot|--sysroot)
 
5639
        func_append compiler_flags " $arg"
4576
5640
        func_append compile_command " $arg"
4577
5641
        func_append finalize_command " $arg"
4578
5642
        prev=xcompiler
4580
5644
        ;;
4581
5645
 
4582
5646
      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
4583
 
        compiler_flags="$compiler_flags $arg"
 
5647
        func_append compiler_flags " $arg"
4584
5648
        func_append compile_command " $arg"
4585
5649
        func_append finalize_command " $arg"
4586
5650
        case "$new_inherited_linker_flags " in
4587
5651
            *" $arg "*) ;;
4588
 
            * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
 
5652
            * ) func_append new_inherited_linker_flags " $arg" ;;
4589
5653
        esac
4590
5654
        continue
4591
5655
        ;;
4652
5716
        # We need an absolute path.
4653
5717
        case $dir in
4654
5718
        [\\/]* | [A-Za-z]:[\\/]*) ;;
 
5719
        =*)
 
5720
          func_stripname '=' '' "$dir"
 
5721
          dir=$lt_sysroot$func_stripname_result
 
5722
          ;;
4655
5723
        *)
4656
5724
          func_fatal_error "only absolute run-paths are allowed"
4657
5725
          ;;
4658
5726
        esac
4659
5727
        case "$xrpath " in
4660
5728
        *" $dir "*) ;;
4661
 
        *) xrpath="$xrpath $dir" ;;
 
5729
        *) func_append xrpath " $dir" ;;
4662
5730
        esac
4663
5731
        continue
4664
5732
        ;;
4711
5779
        for flag in $args; do
4712
5780
          IFS="$save_ifs"
4713
5781
          func_quote_for_eval "$flag"
4714
 
          arg="$arg $wl$func_quote_for_eval_result"
4715
 
          compiler_flags="$compiler_flags $func_quote_for_eval_result"
 
5782
          func_append arg " $func_quote_for_eval_result"
 
5783
          func_append compiler_flags " $func_quote_for_eval_result"
4716
5784
        done
4717
5785
        IFS="$save_ifs"
4718
5786
        func_stripname ' ' '' "$arg"
4727
5795
        for flag in $args; do
4728
5796
          IFS="$save_ifs"
4729
5797
          func_quote_for_eval "$flag"
4730
 
          arg="$arg $wl$func_quote_for_eval_result"
4731
 
          compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
4732
 
          linker_flags="$linker_flags $func_quote_for_eval_result"
 
5798
          func_append arg " $wl$func_quote_for_eval_result"
 
5799
          func_append compiler_flags " $wl$func_quote_for_eval_result"
 
5800
          func_append linker_flags " $func_quote_for_eval_result"
4733
5801
        done
4734
5802
        IFS="$save_ifs"
4735
5803
        func_stripname ' ' '' "$arg"
4757
5825
        arg="$func_quote_for_eval_result"
4758
5826
        ;;
4759
5827
 
4760
 
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
4761
 
      # -r[0-9][0-9]* specifies the processor on the SGI compiler
4762
 
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
4763
 
      # +DA*, +DD* enable 64-bit mode on the HP compiler
4764
 
      # -q* pass through compiler args for the IBM compiler
4765
 
      # -m*, -t[45]*, -txscale* pass through architecture-specific
4766
 
      # compiler args for GCC
4767
 
      # -F/path gives path to uninstalled frameworks, gcc on darwin
4768
 
      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
4769
 
      # @file GCC response files
 
5828
      # Flags to be passed through unchanged, with rationale:
 
5829
      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
 
5830
      # -r[0-9][0-9]*        specify processor for the SGI compiler
 
5831
      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
 
5832
      # +DA*, +DD*           enable 64-bit mode for the HP compiler
 
5833
      # -q*                  compiler args for the IBM compiler
 
5834
      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
 
5835
      # -F/path              path to uninstalled frameworks, gcc on darwin
 
5836
      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
 
5837
      # @file                GCC response files
 
5838
      # -tp=*                Portland pgcc target processor selection
 
5839
      # --sysroot=*          for sysroot support
 
5840
      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
4770
5841
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
4771
 
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 
5842
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
 
5843
      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
4772
5844
        func_quote_for_eval "$arg"
4773
5845
        arg="$func_quote_for_eval_result"
4774
5846
        func_append compile_command " $arg"
4775
5847
        func_append finalize_command " $arg"
4776
 
        compiler_flags="$compiler_flags $arg"
 
5848
        func_append compiler_flags " $arg"
4777
5849
        continue
4778
5850
        ;;
4779
5851
 
4785
5857
 
4786
5858
      *.$objext)
4787
5859
        # A standard object.
4788
 
        objs="$objs $arg"
 
5860
        func_append objs " $arg"
4789
5861
        ;;
4790
5862
 
4791
5863
      *.lo)
4816
5888
 
4817
5889
            if test "$prev" = dlfiles; then
4818
5890
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4819
 
                dlfiles="$dlfiles $pic_object"
 
5891
                func_append dlfiles " $pic_object"
4820
5892
                prev=
4821
5893
                continue
4822
5894
              else
4828
5900
            # CHECK ME:  I think I busted this.  -Ossama
4829
5901
            if test "$prev" = dlprefiles; then
4830
5902
              # Preload the old-style object.
4831
 
              dlprefiles="$dlprefiles $pic_object"
 
5903
              func_append dlprefiles " $pic_object"
4832
5904
              prev=
4833
5905
            fi
4834
5906
 
4873
5945
 
4874
5946
      *.$libext)
4875
5947
        # An archive.
4876
 
        deplibs="$deplibs $arg"
4877
 
        old_deplibs="$old_deplibs $arg"
 
5948
        func_append deplibs " $arg"
 
5949
        func_append old_deplibs " $arg"
4878
5950
        continue
4879
5951
        ;;
4880
5952
 
4881
5953
      *.la)
4882
5954
        # A libtool-controlled library.
4883
5955
 
 
5956
        func_resolve_sysroot "$arg"
4884
5957
        if test "$prev" = dlfiles; then
4885
5958
          # This library was specified with -dlopen.
4886
 
          dlfiles="$dlfiles $arg"
 
5959
          func_append dlfiles " $func_resolve_sysroot_result"
4887
5960
          prev=
4888
5961
        elif test "$prev" = dlprefiles; then
4889
5962
          # The library was specified with -dlpreopen.
4890
 
          dlprefiles="$dlprefiles $arg"
 
5963
          func_append dlprefiles " $func_resolve_sysroot_result"
4891
5964
          prev=
4892
5965
        else
4893
 
          deplibs="$deplibs $arg"
 
5966
          func_append deplibs " $func_resolve_sysroot_result"
4894
5967
        fi
4895
5968
        continue
4896
5969
        ;;
4911
5984
      fi
4912
5985
    done # argument parsing loop
4913
5986
 
4914
 
    if test "$module" = yes ; then
4915
 
      # [Mandriva] dropping ld option "--no-undefined" which is wrong for plugins
4916
 
      linker_flags=`$ECHO "X $linker_flags" | $Xsed -e 's/ --no-undefined//'`
4917
 
      compiler_flags=`$ECHO "X $compiler_flags" | $Xsed -e 's/ -Wl,--no-undefined//'`
4918
 
    fi
4919
 
 
4920
5987
    test -n "$prev" && \
4921
5988
      func_fatal_help "the \`$prevarg' option requires an argument"
4922
5989
 
4934
6001
 
4935
6002
    if test -n "$shlibpath_var"; then
4936
6003
      # get the directories listed in $shlibpath_var
4937
 
      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 
6004
      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
4938
6005
    else
4939
6006
      shlib_search_path=
4940
6007
    fi
4943
6010
 
4944
6011
    func_dirname "$output" "/" ""
4945
6012
    output_objdir="$func_dirname_result$objdir"
 
6013
    func_to_tool_file "$output_objdir/"
 
6014
    tool_output_objdir=$func_to_tool_file_result
4946
6015
    # Create the object directory.
4947
6016
    func_mkdir_p "$output_objdir"
4948
6017
 
4963
6032
    # Find all interdependent deplibs by searching for libraries
4964
6033
    # that are linked more than once (e.g. -la -lb -la)
4965
6034
    for deplib in $deplibs; do
4966
 
      if $opt_duplicate_deps ; then
 
6035
      if $opt_preserve_dup_deps ; then
4967
6036
        case "$libs " in
4968
 
        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
6037
        *" $deplib "*) func_append specialdeplibs " $deplib" ;;
4969
6038
        esac
4970
6039
      fi
4971
 
      libs="$libs $deplib"
 
6040
      func_append libs " $deplib"
4972
6041
    done
4973
6042
 
4974
6043
    if test "$linkmode" = lib; then
4981
6050
      if $opt_duplicate_compiler_generated_deps; then
4982
6051
        for pre_post_dep in $predeps $postdeps; do
4983
6052
          case "$pre_post_deps " in
4984
 
          *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 
6053
          *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
4985
6054
          esac
4986
 
          pre_post_deps="$pre_post_deps $pre_post_dep"
 
6055
          func_append pre_post_deps " $pre_post_dep"
4987
6056
        done
4988
6057
      fi
4989
6058
      pre_post_deps=
5053
6122
        for lib in $dlprefiles; do
5054
6123
          # Ignore non-libtool-libs
5055
6124
          dependency_libs=
 
6125
          func_resolve_sysroot "$lib"
5056
6126
          case $lib in
5057
 
          *.la) func_source "$lib" ;;
 
6127
          *.la) func_source "$func_resolve_sysroot_result" ;;
5058
6128
          esac
5059
6129
 
5060
6130
          # Collect preopened libtool deplibs, except any this library
5061
6131
          # has declared as weak libs
5062
6132
          for deplib in $dependency_libs; do
5063
 
            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
 
6133
            func_basename "$deplib"
 
6134
            deplib_base=$func_basename_result
5064
6135
            case " $weak_libs " in
5065
6136
            *" $deplib_base "*) ;;
5066
 
            *) deplibs="$deplibs $deplib" ;;
 
6137
            *) func_append deplibs " $deplib" ;;
5067
6138
            esac
5068
6139
          done
5069
6140
        done
5084
6155
            compile_deplibs="$deplib $compile_deplibs"
5085
6156
            finalize_deplibs="$deplib $finalize_deplibs"
5086
6157
          else
5087
 
            compiler_flags="$compiler_flags $deplib"
 
6158
            func_append compiler_flags " $deplib"
5088
6159
            if test "$linkmode" = lib ; then
5089
6160
                case "$new_inherited_linker_flags " in
5090
6161
                    *" $deplib "*) ;;
5091
 
                    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 
6162
                    * ) func_append new_inherited_linker_flags " $deplib" ;;
5092
6163
                esac
5093
6164
            fi
5094
6165
          fi
5173
6244
            if test "$linkmode" = lib ; then
5174
6245
                case "$new_inherited_linker_flags " in
5175
6246
                    *" $deplib "*) ;;
5176
 
                    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
 
6247
                    * ) func_append new_inherited_linker_flags " $deplib" ;;
5177
6248
                esac
5178
6249
            fi
5179
6250
          fi
5186
6257
            test "$pass" = conv && continue
5187
6258
            newdependency_libs="$deplib $newdependency_libs"
5188
6259
            func_stripname '-L' '' "$deplib"
5189
 
            newlib_search_path="$newlib_search_path $func_stripname_result"
 
6260
            func_resolve_sysroot "$func_stripname_result"
 
6261
            func_append newlib_search_path " $func_resolve_sysroot_result"
5190
6262
            ;;
5191
6263
          prog)
5192
6264
            if test "$pass" = conv; then
5200
6272
              finalize_deplibs="$deplib $finalize_deplibs"
5201
6273
            fi
5202
6274
            func_stripname '-L' '' "$deplib"
5203
 
            newlib_search_path="$newlib_search_path $func_stripname_result"
 
6275
            func_resolve_sysroot "$func_stripname_result"
 
6276
            func_append newlib_search_path " $func_resolve_sysroot_result"
5204
6277
            ;;
5205
6278
          *)
5206
6279
            func_warning "\`-L' is ignored for archives/objects"
5211
6284
        -R*)
5212
6285
          if test "$pass" = link; then
5213
6286
            func_stripname '-R' '' "$deplib"
5214
 
            dir=$func_stripname_result
 
6287
            func_resolve_sysroot "$func_stripname_result"
 
6288
            dir=$func_resolve_sysroot_result
5215
6289
            # Make sure the xrpath contains only unique directories.
5216
6290
            case "$xrpath " in
5217
6291
            *" $dir "*) ;;
5218
 
            *) xrpath="$xrpath $dir" ;;
 
6292
            *) func_append xrpath " $dir" ;;
5219
6293
            esac
5220
6294
          fi
5221
6295
          deplibs="$deplib $deplibs"
5222
6296
          continue
5223
6297
          ;;
5224
 
        *.la) lib="$deplib" ;;
 
6298
        *.la)
 
6299
          func_resolve_sysroot "$deplib"
 
6300
          lib=$func_resolve_sysroot_result
 
6301
          ;;
5225
6302
        *.$libext)
5226
6303
          if test "$pass" = conv; then
5227
6304
            deplibs="$deplib $deplibs"
5239
6316
                match_pattern*)
5240
6317
                  set dummy $deplibs_check_method; shift
5241
6318
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5242
 
                  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
 
6319
                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
5243
6320
                    | $EGREP "$match_pattern_regex" > /dev/null; then
5244
6321
                    valid_a_lib=yes
5245
6322
                  fi
5249
6326
                ;;
5250
6327
              esac
5251
6328
              if test "$valid_a_lib" != yes; then
5252
 
                $ECHO
 
6329
                echo
5253
6330
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5254
 
                $ECHO "*** I have the capability to make that library automatically link in when"
5255
 
                $ECHO "*** you link to this library.  But I can only do this if you have a"
5256
 
                $ECHO "*** shared version of the library, which you do not appear to have"
5257
 
                $ECHO "*** because the file extensions .$libext of this argument makes me believe"
5258
 
                $ECHO "*** that it is just a static archive that I should not use here."
 
6331
                echo "*** I have the capability to make that library automatically link in when"
 
6332
                echo "*** you link to this library.  But I can only do this if you have a"
 
6333
                echo "*** shared version of the library, which you do not appear to have"
 
6334
                echo "*** because the file extensions .$libext of this argument makes me believe"
 
6335
                echo "*** that it is just a static archive that I should not use here."
5259
6336
              else
5260
 
                $ECHO
 
6337
                echo
5261
6338
                $ECHO "*** Warning: Linking the shared library $output against the"
5262
6339
                $ECHO "*** static library $deplib is not portable!"
5263
6340
                deplibs="$deplib $deplibs"
5284
6361
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
5285
6362
              # If there is no dlopen support or we're linking statically,
5286
6363
              # we need to preload.
5287
 
              newdlprefiles="$newdlprefiles $deplib"
 
6364
              func_append newdlprefiles " $deplib"
5288
6365
              compile_deplibs="$deplib $compile_deplibs"
5289
6366
              finalize_deplibs="$deplib $finalize_deplibs"
5290
6367
            else
5291
 
              newdlfiles="$newdlfiles $deplib"
 
6368
              func_append newdlfiles " $deplib"
5292
6369
            fi
5293
6370
          fi
5294
6371
          continue
5330
6407
 
5331
6408
        # Convert "-framework foo" to "foo.ltframework"
5332
6409
        if test -n "$inherited_linker_flags"; then
5333
 
          tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
 
6410
          tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
5334
6411
          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5335
6412
            case " $new_inherited_linker_flags " in
5336
6413
              *" $tmp_inherited_linker_flag "*) ;;
5337
 
              *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
 
6414
              *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
5338
6415
            esac
5339
6416
          done
5340
6417
        fi
5341
 
        dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
6418
        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5342
6419
        if test "$linkmode,$pass" = "lib,link" ||
5343
6420
           test "$linkmode,$pass" = "prog,scan" ||
5344
6421
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5345
 
          test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
5346
 
          test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 
6422
          test -n "$dlopen" && func_append dlfiles " $dlopen"
 
6423
          test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
5347
6424
        fi
5348
6425
 
5349
6426
        if test "$pass" = conv; then
5354
6431
              func_fatal_error "cannot find name of link library for \`$lib'"
5355
6432
            fi
5356
6433
            # It is a libtool convenience library, so add in its objects.
5357
 
            convenience="$convenience $ladir/$objdir/$old_library"
5358
 
            old_convenience="$old_convenience $ladir/$objdir/$old_library"
 
6434
            func_append convenience " $ladir/$objdir/$old_library"
 
6435
            func_append old_convenience " $ladir/$objdir/$old_library"
 
6436
            tmp_libs=
 
6437
            for deplib in $dependency_libs; do
 
6438
              deplibs="$deplib $deplibs"
 
6439
              if $opt_preserve_dup_deps ; then
 
6440
                case "$tmp_libs " in
 
6441
                *" $deplib "*) func_append specialdeplibs " $deplib" ;;
 
6442
                esac
 
6443
              fi
 
6444
              func_append tmp_libs " $deplib"
 
6445
            done
5359
6446
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
5360
6447
            func_fatal_error "\`$lib' is not a convenience library"
5361
6448
          fi
5362
 
          tmp_libs=
5363
 
          for deplib in $dependency_libs; do
5364
 
            deplibs="$deplib $deplibs"
5365
 
            if $opt_duplicate_deps ; then
5366
 
              case "$tmp_libs " in
5367
 
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5368
 
              esac
5369
 
            fi
5370
 
            tmp_libs="$tmp_libs $deplib"
5371
 
          done
5372
6449
          continue
5373
6450
        fi # $pass = conv
5374
6451
 
5375
6452
 
5376
6453
        # Get the name of the library we link against.
5377
6454
        linklib=
5378
 
        for l in $old_library $library_names; do
5379
 
          linklib="$l"
5380
 
        done
 
6455
        if test -n "$old_library" &&
 
6456
           { test "$prefer_static_libs" = yes ||
 
6457
             test "$prefer_static_libs,$installed" = "built,no"; }; then
 
6458
          linklib=$old_library
 
6459
        else
 
6460
          for l in $old_library $library_names; do
 
6461
            linklib="$l"
 
6462
          done
 
6463
        fi
5381
6464
        if test -z "$linklib"; then
5382
6465
          func_fatal_error "cannot find name of link library for \`$lib'"
5383
6466
        fi
5394
6477
            # statically, we need to preload.  We also need to preload any
5395
6478
            # dependent libraries so libltdl's deplib preloader doesn't
5396
6479
            # bomb out in the load deplibs phase.
5397
 
            dlprefiles="$dlprefiles $lib $dependency_libs"
 
6480
            func_append dlprefiles " $lib $dependency_libs"
5398
6481
          else
5399
 
            newdlfiles="$newdlfiles $lib"
 
6482
            func_append newdlfiles " $lib"
5400
6483
          fi
5401
6484
          continue
5402
6485
        fi # $pass = dlopen
5418
6501
 
5419
6502
        # Find the relevant object directory and library name.
5420
6503
        if test "X$installed" = Xyes; then
5421
 
          if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 
6504
          if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5422
6505
            func_warning "library \`$lib' was moved."
5423
6506
            dir="$ladir"
5424
6507
            absdir="$abs_ladir"
5425
6508
            libdir="$abs_ladir"
5426
6509
          else
5427
 
            dir="$libdir"
5428
 
            absdir="$libdir"
 
6510
            dir="$lt_sysroot$libdir"
 
6511
            absdir="$lt_sysroot$libdir"
5429
6512
          fi
5430
6513
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
5431
6514
        else
5433
6516
            dir="$ladir"
5434
6517
            absdir="$abs_ladir"
5435
6518
            # Remove this search path later
5436
 
            notinst_path="$notinst_path $abs_ladir"
 
6519
            func_append notinst_path " $abs_ladir"
5437
6520
          else
5438
6521
            dir="$ladir/$objdir"
5439
6522
            absdir="$abs_ladir/$objdir"
5440
6523
            # Remove this search path later
5441
 
            notinst_path="$notinst_path $abs_ladir"
 
6524
            func_append notinst_path " $abs_ladir"
5442
6525
          fi
5443
6526
        fi # $installed = yes
5444
6527
        func_stripname 'lib' '.la' "$laname"
5449
6532
          if test -z "$libdir" && test "$linkmode" = prog; then
5450
6533
            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
5451
6534
          fi
5452
 
          # Prefer using a static library (so that no silly _DYNAMIC symbols
5453
 
          # are required to link).
5454
 
          if test -n "$old_library"; then
5455
 
            newdlprefiles="$newdlprefiles $dir/$old_library"
5456
 
            # Keep a list of preopened convenience libraries to check
5457
 
            # that they are being used correctly in the link pass.
5458
 
            test -z "$libdir" && \
5459
 
                dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
5460
 
          # Otherwise, use the dlname, so that lt_dlopen finds it.
5461
 
          elif test -n "$dlname"; then
5462
 
            newdlprefiles="$newdlprefiles $dir/$dlname"
5463
 
          else
5464
 
            newdlprefiles="$newdlprefiles $dir/$linklib"
5465
 
          fi
 
6535
          case "$host" in
 
6536
            # special handling for platforms with PE-DLLs.
 
6537
            *cygwin* | *mingw* | *cegcc* )
 
6538
              # Linker will automatically link against shared library if both
 
6539
              # static and shared are present.  Therefore, ensure we extract
 
6540
              # symbols from the import library if a shared library is present
 
6541
              # (otherwise, the dlopen module name will be incorrect).  We do
 
6542
              # this by putting the import library name into $newdlprefiles.
 
6543
              # We recover the dlopen module name by 'saving' the la file
 
6544
              # name in a special purpose variable, and (later) extracting the
 
6545
              # dlname from the la file.
 
6546
              if test -n "$dlname"; then
 
6547
                func_tr_sh "$dir/$linklib"
 
6548
                eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
 
6549
                func_append newdlprefiles " $dir/$linklib"
 
6550
              else
 
6551
                func_append newdlprefiles " $dir/$old_library"
 
6552
                # Keep a list of preopened convenience libraries to check
 
6553
                # that they are being used correctly in the link pass.
 
6554
                test -z "$libdir" && \
 
6555
                  func_append dlpreconveniencelibs " $dir/$old_library"
 
6556
              fi
 
6557
            ;;
 
6558
            * )
 
6559
              # Prefer using a static library (so that no silly _DYNAMIC symbols
 
6560
              # are required to link).
 
6561
              if test -n "$old_library"; then
 
6562
                func_append newdlprefiles " $dir/$old_library"
 
6563
                # Keep a list of preopened convenience libraries to check
 
6564
                # that they are being used correctly in the link pass.
 
6565
                test -z "$libdir" && \
 
6566
                  func_append dlpreconveniencelibs " $dir/$old_library"
 
6567
              # Otherwise, use the dlname, so that lt_dlopen finds it.
 
6568
              elif test -n "$dlname"; then
 
6569
                func_append newdlprefiles " $dir/$dlname"
 
6570
              else
 
6571
                func_append newdlprefiles " $dir/$linklib"
 
6572
              fi
 
6573
            ;;
 
6574
          esac
5466
6575
        fi # $pass = dlpreopen
5467
6576
 
5468
6577
        if test -z "$libdir"; then
5480
6589
 
5481
6590
 
5482
6591
        if test "$linkmode" = prog && test "$pass" != link; then
5483
 
          newlib_search_path="$newlib_search_path $ladir"
 
6592
          func_append newlib_search_path " $ladir"
5484
6593
          deplibs="$lib $deplibs"
5485
6594
 
5486
6595
          linkalldeplibs=no
5493
6602
          for deplib in $dependency_libs; do
5494
6603
            case $deplib in
5495
6604
            -L*) func_stripname '-L' '' "$deplib"
5496
 
                 newlib_search_path="$newlib_search_path $func_stripname_result"
 
6605
                 func_resolve_sysroot "$func_stripname_result"
 
6606
                 func_append newlib_search_path " $func_resolve_sysroot_result"
5497
6607
                 ;;
5498
6608
            esac
5499
6609
            # Need to link against all dependency_libs?
5504
6614
              # or/and link against static libraries
5505
6615
              newdependency_libs="$deplib $newdependency_libs"
5506
6616
            fi
5507
 
            if $opt_duplicate_deps ; then
 
6617
            if $opt_preserve_dup_deps ; then
5508
6618
              case "$tmp_libs " in
5509
 
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
6619
              *" $deplib "*) func_append specialdeplibs " $deplib" ;;
5510
6620
              esac
5511
6621
            fi
5512
 
            tmp_libs="$tmp_libs $deplib"
 
6622
            func_append tmp_libs " $deplib"
5513
6623
          done # for deplib
5514
6624
          continue
5515
6625
        fi # $linkmode = prog...
5524
6634
              # Make sure the rpath contains only unique directories.
5525
6635
              case "$temp_rpath:" in
5526
6636
              *"$absdir:"*) ;;
5527
 
              *) temp_rpath="$temp_rpath$absdir:" ;;
 
6637
              *) func_append temp_rpath "$absdir:" ;;
5528
6638
              esac
5529
6639
            fi
5530
6640
 
5536
6646
            *)
5537
6647
              case "$compile_rpath " in
5538
6648
              *" $absdir "*) ;;
5539
 
              *) compile_rpath="$compile_rpath $absdir"
 
6649
              *) func_append compile_rpath " $absdir" ;;
5540
6650
              esac
5541
6651
              ;;
5542
6652
            esac
5545
6655
            *)
5546
6656
              case "$finalize_rpath " in
5547
6657
              *" $libdir "*) ;;
5548
 
              *) finalize_rpath="$finalize_rpath $libdir"
 
6658
              *) func_append finalize_rpath " $libdir" ;;
5549
6659
              esac
5550
6660
              ;;
5551
6661
            esac
5570
6680
          case $host in
5571
6681
          *cygwin* | *mingw* | *cegcc*)
5572
6682
              # No point in relinking DLLs because paths are not encoded
5573
 
              notinst_deplibs="$notinst_deplibs $lib"
 
6683
              func_append notinst_deplibs " $lib"
5574
6684
              need_relink=no
5575
6685
            ;;
5576
6686
          *)
5577
6687
            if test "$installed" = no; then
5578
 
              notinst_deplibs="$notinst_deplibs $lib"
 
6688
              func_append notinst_deplibs " $lib"
5579
6689
              need_relink=yes
5580
6690
            fi
5581
6691
            ;;
5592
6702
            fi
5593
6703
          done
5594
6704
          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5595
 
            $ECHO
 
6705
            echo
5596
6706
            if test "$linkmode" = prog; then
5597
6707
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
5598
6708
            else
5610
6720
            *)
5611
6721
              case "$compile_rpath " in
5612
6722
              *" $absdir "*) ;;
5613
 
              *) compile_rpath="$compile_rpath $absdir"
 
6723
              *) func_append compile_rpath " $absdir" ;;
5614
6724
              esac
5615
6725
              ;;
5616
6726
            esac
5619
6729
            *)
5620
6730
              case "$finalize_rpath " in
5621
6731
              *" $libdir "*) ;;
5622
 
              *) finalize_rpath="$finalize_rpath $libdir"
 
6732
              *) func_append finalize_rpath " $libdir" ;;
5623
6733
              esac
5624
6734
              ;;
5625
6735
            esac
5673
6783
            linklib=$newlib
5674
6784
          fi # test -n "$old_archive_from_expsyms_cmds"
5675
6785
 
5676
 
          if test "$linkmode" = prog || test "$mode" != relink; then
 
6786
          if test "$linkmode" = prog || test "$opt_mode" != relink; then
5677
6787
            add_shlibpath=
5678
6788
            add_dir=
5679
6789
            add=
5695
6805
                      if test "X$dlopenmodule" != "X$lib"; then
5696
6806
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
5697
6807
                        if test -z "$old_library" ; then
5698
 
                          $ECHO
5699
 
                          $ECHO "*** And there doesn't seem to be a static archive available"
5700
 
                          $ECHO "*** The link will probably fail, sorry"
 
6808
                          echo
 
6809
                          echo "*** And there doesn't seem to be a static archive available"
 
6810
                          echo "*** The link will probably fail, sorry"
5701
6811
                        else
5702
6812
                          add="$dir/$old_library"
5703
6813
                        fi
5729
6839
                if test -n "$inst_prefix_dir"; then
5730
6840
                  case $libdir in
5731
6841
                    [\\/]*)
5732
 
                      add_dir="$add_dir -L$inst_prefix_dir$libdir"
 
6842
                      func_append add_dir " -L$inst_prefix_dir$libdir"
5733
6843
                      ;;
5734
6844
                  esac
5735
6845
                fi
5751
6861
            if test -n "$add_shlibpath"; then
5752
6862
              case :$compile_shlibpath: in
5753
6863
              *":$add_shlibpath:"*) ;;
5754
 
              *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 
6864
              *) func_append compile_shlibpath "$add_shlibpath:" ;;
5755
6865
              esac
5756
6866
            fi
5757
6867
            if test "$linkmode" = prog; then
5765
6875
                 test "$hardcode_shlibpath_var" = yes; then
5766
6876
                case :$finalize_shlibpath: in
5767
6877
                *":$libdir:"*) ;;
5768
 
                *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 
6878
                *) func_append finalize_shlibpath "$libdir:" ;;
5769
6879
                esac
5770
6880
              fi
5771
6881
            fi
5772
6882
          fi
5773
6883
 
5774
 
          if test "$linkmode" = prog || test "$mode" = relink; then
 
6884
          if test "$linkmode" = prog || test "$opt_mode" = relink; then
5775
6885
            add_shlibpath=
5776
6886
            add_dir=
5777
6887
            add=
5785
6895
            elif test "$hardcode_shlibpath_var" = yes; then
5786
6896
              case :$finalize_shlibpath: in
5787
6897
              *":$libdir:"*) ;;
5788
 
              *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 
6898
              *) func_append finalize_shlibpath "$libdir:" ;;
5789
6899
              esac
5790
6900
              add="-l$name"
5791
6901
            elif test "$hardcode_automatic" = yes; then
5802
6912
              if test -n "$inst_prefix_dir"; then
5803
6913
                case $libdir in
5804
6914
                  [\\/]*)
5805
 
                    add_dir="$add_dir -L$inst_prefix_dir$libdir"
 
6915
                    func_append add_dir " -L$inst_prefix_dir$libdir"
5806
6916
                    ;;
5807
6917
                esac
5808
6918
              fi
5837
6947
 
5838
6948
            # Just print a warning and add the library to dependency_libs so
5839
6949
            # that the program can be linked against the static library.
5840
 
            $ECHO
 
6950
            echo
5841
6951
            $ECHO "*** Warning: This system can not link to static lib archive $lib."
5842
 
            $ECHO "*** I have the capability to make that library automatically link in when"
5843
 
            $ECHO "*** you link to this library.  But I can only do this if you have a"
5844
 
            $ECHO "*** shared version of the library, which you do not appear to have."
 
6952
            echo "*** I have the capability to make that library automatically link in when"
 
6953
            echo "*** you link to this library.  But I can only do this if you have a"
 
6954
            echo "*** shared version of the library, which you do not appear to have."
5845
6955
            if test "$module" = yes; then
5846
 
              $ECHO "*** But as you try to build a module library, libtool will still create "
5847
 
              $ECHO "*** a static module, that should work as long as the dlopening application"
5848
 
              $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
 
6956
              echo "*** But as you try to build a module library, libtool will still create "
 
6957
              echo "*** a static module, that should work as long as the dlopening application"
 
6958
              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
5849
6959
              if test -z "$global_symbol_pipe"; then
5850
 
                $ECHO
5851
 
                $ECHO "*** However, this would only work if libtool was able to extract symbol"
5852
 
                $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
5853
 
                $ECHO "*** not find such a program.  So, this module is probably useless."
5854
 
                $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 
6960
                echo
 
6961
                echo "*** However, this would only work if libtool was able to extract symbol"
 
6962
                echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
6963
                echo "*** not find such a program.  So, this module is probably useless."
 
6964
                echo "*** \`nm' from GNU binutils and a full rebuild may help."
5855
6965
              fi
5856
6966
              if test "$build_old_libs" = no; then
5857
6967
                build_libtool_libs=module
5879
6989
                   temp_xrpath=$func_stripname_result
5880
6990
                   case " $xrpath " in
5881
6991
                   *" $temp_xrpath "*) ;;
5882
 
                   *) xrpath="$xrpath $temp_xrpath";;
 
6992
                   *) func_append xrpath " $temp_xrpath";;
5883
6993
                   esac;;
5884
 
              *) temp_deplibs="$temp_deplibs $libdir";;
 
6994
              *) func_append temp_deplibs " $libdir";;
5885
6995
              esac
5886
6996
            done
5887
6997
            dependency_libs="$temp_deplibs"
5888
6998
          fi
5889
6999
 
5890
 
          newlib_search_path="$newlib_search_path $absdir"
 
7000
          func_append newlib_search_path " $absdir"
5891
7001
          # Link against this library
5892
7002
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
5893
7003
          # ... and its dependency_libs
5894
7004
          tmp_libs=
5895
7005
          for deplib in $dependency_libs; do
5896
7006
            newdependency_libs="$deplib $newdependency_libs"
5897
 
            if $opt_duplicate_deps ; then
 
7007
            case $deplib in
 
7008
              -L*) func_stripname '-L' '' "$deplib"
 
7009
                   func_resolve_sysroot "$func_stripname_result";;
 
7010
              *) func_resolve_sysroot "$deplib" ;;
 
7011
            esac
 
7012
            if $opt_preserve_dup_deps ; then
5898
7013
              case "$tmp_libs " in
5899
 
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
7014
              *" $func_resolve_sysroot_result "*)
 
7015
                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
5900
7016
              esac
5901
7017
            fi
5902
 
            tmp_libs="$tmp_libs $deplib"
 
7018
            func_append tmp_libs " $func_resolve_sysroot_result"
5903
7019
          done
5904
7020
 
5905
7021
          if test "$link_all_deplibs" != no; then
5906
7022
            # Add the search paths of all dependency libraries
5907
7023
            for deplib in $dependency_libs; do
 
7024
              path=
5908
7025
              case $deplib in
5909
7026
              -L*) path="$deplib" ;;
5910
7027
              *.la)
 
7028
                func_resolve_sysroot "$deplib"
 
7029
                deplib=$func_resolve_sysroot_result
5911
7030
                func_dirname "$deplib" "" "."
5912
 
                dir="$func_dirname_result"
 
7031
                dir=$func_dirname_result
5913
7032
                # We need an absolute path.
5914
7033
                case $dir in
5915
7034
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
5936
7055
                      if test -z "$darwin_install_name"; then
5937
7056
                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
5938
7057
                      fi
5939
 
                      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
5940
 
                      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
 
7058
                      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
 
7059
                      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
5941
7060
                      path=
5942
7061
                    fi
5943
7062
                  fi
5970
7089
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
5971
7090
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
5972
7091
        else
5973
 
          compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7092
          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5974
7093
        fi
5975
7094
      fi
5976
7095
      dependency_libs="$newdependency_libs"
5987
7106
          for dir in $newlib_search_path; do
5988
7107
            case "$lib_search_path " in
5989
7108
            *" $dir "*) ;;
5990
 
            *) lib_search_path="$lib_search_path $dir" ;;
 
7109
            *) func_append lib_search_path " $dir" ;;
5991
7110
            esac
5992
7111
          done
5993
7112
          newlib_search_path=
6045
7164
            -L*)
6046
7165
              case " $tmp_libs " in
6047
7166
              *" $deplib "*) ;;
6048
 
              *) tmp_libs="$tmp_libs $deplib" ;;
 
7167
              *) func_append tmp_libs " $deplib" ;;
6049
7168
              esac
6050
7169
              ;;
6051
 
            *) tmp_libs="$tmp_libs $deplib" ;;
 
7170
            *) func_append tmp_libs " $deplib" ;;
6052
7171
            esac
6053
7172
          done
6054
7173
          eval $var=\"$tmp_libs\"
6064
7183
          ;;
6065
7184
        esac
6066
7185
        if test -n "$i" ; then
6067
 
          tmp_libs="$tmp_libs $i"
 
7186
          func_append tmp_libs " $i"
6068
7187
        fi
6069
7188
      done
6070
7189
      dependency_libs=$tmp_libs
6105
7224
      # Now set the variables for building old libraries.
6106
7225
      build_libtool_libs=no
6107
7226
      oldlibs="$output"
6108
 
      objs="$objs$old_deplibs"
 
7227
      func_append objs "$old_deplibs"
6109
7228
      ;;
6110
7229
 
6111
7230
    lib)
6138
7257
        if test "$deplibs_check_method" != pass_all; then
6139
7258
          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6140
7259
        else
6141
 
          $ECHO
 
7260
          echo
6142
7261
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6143
7262
          $ECHO "*** objects $objs is not portable!"
6144
 
          libobjs="$libobjs $objs"
 
7263
          func_append libobjs " $objs"
6145
7264
        fi
6146
7265
      fi
6147
7266
 
6206
7325
            age="$number_minor"
6207
7326
            revision="$number_revision"
6208
7327
            ;;
6209
 
          freebsd-aout|freebsd-elf|sunos)
 
7328
          freebsd-aout|freebsd-elf|qnx|sunos)
6210
7329
            current="$number_major"
6211
7330
            revision="$number_minor"
6212
7331
            age="0"
6218
7337
            revision="$number_minor"
6219
7338
            lt_irix_increment=no
6220
7339
            ;;
 
7340
          *)
 
7341
            func_fatal_configuration "$modename: unknown library version type \`$version_type'"
 
7342
            ;;
6221
7343
          esac
6222
7344
          ;;
6223
7345
        no)
6339
7461
          done
6340
7462
 
6341
7463
          # Make executables depend on our current version.
6342
 
          verstring="$verstring:${current}.0"
 
7464
          func_append verstring ":${current}.0"
6343
7465
          ;;
6344
7466
 
6345
7467
        qnx)
6407
7529
      fi
6408
7530
 
6409
7531
      func_generate_dlsyms "$libname" "$libname" "yes"
6410
 
      libobjs="$libobjs $symfileobj"
 
7532
      func_append libobjs " $symfileobj"
6411
7533
      test "X$libobjs" = "X " && libobjs=
6412
7534
 
6413
 
      if test "$mode" != relink; then
 
7535
      if test "$opt_mode" != relink; then
6414
7536
        # Remove our outputs, but don't remove object files since they
6415
7537
        # may have been created when compiling PIC objects.
6416
7538
        removelist=
6426
7548
                   continue
6427
7549
                 fi
6428
7550
               fi
6429
 
               removelist="$removelist $p"
 
7551
               func_append removelist " $p"
6430
7552
               ;;
6431
7553
            *) ;;
6432
7554
          esac
6437
7559
 
6438
7560
      # Now set the variables for building old libraries.
6439
7561
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6440
 
        oldlibs="$oldlibs $output_objdir/$libname.$libext"
 
7562
        func_append oldlibs " $output_objdir/$libname.$libext"
6441
7563
 
6442
7564
        # Transform .lo files to .o files.
6443
 
        oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 
7565
        oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
6444
7566
      fi
6445
7567
 
6446
7568
      # Eliminate all temporary directories.
6447
7569
      #for path in $notinst_path; do
6448
 
      # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6449
 
      # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6450
 
      # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
 
7570
      # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
 
7571
      # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
 
7572
      # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
6451
7573
      #done
6452
7574
 
6453
7575
      if test -n "$xrpath"; then
6454
7576
        # If the user specified any rpath flags, then add them.
6455
7577
        temp_xrpath=
6456
7578
        for libdir in $xrpath; do
6457
 
          temp_xrpath="$temp_xrpath -R$libdir"
 
7579
          func_replace_sysroot "$libdir"
 
7580
          func_append temp_xrpath " -R$func_replace_sysroot_result"
6458
7581
          case "$finalize_rpath " in
6459
7582
          *" $libdir "*) ;;
6460
 
          *) finalize_rpath="$finalize_rpath $libdir" ;;
 
7583
          *) func_append finalize_rpath " $libdir" ;;
6461
7584
          esac
6462
7585
        done
6463
7586
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
6471
7594
      for lib in $old_dlfiles; do
6472
7595
        case " $dlprefiles $dlfiles " in
6473
7596
        *" $lib "*) ;;
6474
 
        *) dlfiles="$dlfiles $lib" ;;
 
7597
        *) func_append dlfiles " $lib" ;;
6475
7598
        esac
6476
7599
      done
6477
7600
 
6481
7604
      for lib in $old_dlprefiles; do
6482
7605
        case "$dlprefiles " in
6483
7606
        *" $lib "*) ;;
6484
 
        *) dlprefiles="$dlprefiles $lib" ;;
 
7607
        *) func_append dlprefiles " $lib" ;;
6485
7608
        esac
6486
7609
      done
6487
7610
 
6488
7611
      if test "$build_libtool_libs" = yes; then
6489
7612
        if test -n "$rpath"; then
6490
7613
          case $host in
6491
 
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
 
7614
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
6492
7615
            # these systems don't actually have a c library (as such)!
6493
7616
            ;;
6494
7617
          *-*-rhapsody* | *-*-darwin1.[012])
6495
7618
            # Rhapsody C library is in the System framework
6496
 
            deplibs="$deplibs System.ltframework"
 
7619
            func_append deplibs " System.ltframework"
6497
7620
            ;;
6498
7621
          *-*-netbsd*)
6499
7622
            # Don't link with libc until the a.out ld.so is fixed.
6510
7633
          *)
6511
7634
            # Add libc to deplibs on all other systems if necessary.
6512
7635
            if test "$build_libtool_need_lc" = "yes"; then
6513
 
              deplibs="$deplibs -lc"
 
7636
              func_append deplibs " -lc"
6514
7637
            fi
6515
7638
            ;;
6516
7639
          esac
6559
7682
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6560
7683
                  case " $predeps $postdeps " in
6561
7684
                  *" $i "*)
6562
 
                    newdeplibs="$newdeplibs $i"
 
7685
                    func_append newdeplibs " $i"
6563
7686
                    i=""
6564
7687
                    ;;
6565
7688
                  esac
6570
7693
                  set dummy $deplib_matches; shift
6571
7694
                  deplib_match=$1
6572
7695
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6573
 
                    newdeplibs="$newdeplibs $i"
 
7696
                    func_append newdeplibs " $i"
6574
7697
                  else
6575
7698
                    droppeddeps=yes
6576
 
                    $ECHO
 
7699
                    echo
6577
7700
                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6578
 
                    $ECHO "*** I have the capability to make that library automatically link in when"
6579
 
                    $ECHO "*** you link to this library.  But I can only do this if you have a"
6580
 
                    $ECHO "*** shared version of the library, which I believe you do not have"
6581
 
                    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
6582
 
                    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
 
7701
                    echo "*** I have the capability to make that library automatically link in when"
 
7702
                    echo "*** you link to this library.  But I can only do this if you have a"
 
7703
                    echo "*** shared version of the library, which I believe you do not have"
 
7704
                    echo "*** because a test_compile did reveal that the linker did not use it for"
 
7705
                    echo "*** its dynamic dependency list that programs get resolved with at runtime."
6583
7706
                  fi
6584
7707
                fi
6585
7708
                ;;
6586
7709
              *)
6587
 
                newdeplibs="$newdeplibs $i"
 
7710
                func_append newdeplibs " $i"
6588
7711
                ;;
6589
7712
              esac
6590
7713
            done
6602
7725
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6603
7726
                    case " $predeps $postdeps " in
6604
7727
                    *" $i "*)
6605
 
                      newdeplibs="$newdeplibs $i"
 
7728
                      func_append newdeplibs " $i"
6606
7729
                      i=""
6607
7730
                      ;;
6608
7731
                    esac
6613
7736
                    set dummy $deplib_matches; shift
6614
7737
                    deplib_match=$1
6615
7738
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6616
 
                      newdeplibs="$newdeplibs $i"
 
7739
                      func_append newdeplibs " $i"
6617
7740
                    else
6618
7741
                      droppeddeps=yes
6619
 
                      $ECHO
 
7742
                      echo
6620
7743
                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6621
 
                      $ECHO "*** I have the capability to make that library automatically link in when"
6622
 
                      $ECHO "*** you link to this library.  But I can only do this if you have a"
6623
 
                      $ECHO "*** shared version of the library, which you do not appear to have"
6624
 
                      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
6625
 
                      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
 
7744
                      echo "*** I have the capability to make that library automatically link in when"
 
7745
                      echo "*** you link to this library.  But I can only do this if you have a"
 
7746
                      echo "*** shared version of the library, which you do not appear to have"
 
7747
                      echo "*** because a test_compile did reveal that the linker did not use this one"
 
7748
                      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
6626
7749
                    fi
6627
7750
                  fi
6628
7751
                else
6629
7752
                  droppeddeps=yes
6630
 
                  $ECHO
 
7753
                  echo
6631
7754
                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
6632
 
                  $ECHO "*** make it link in!  You will probably need to install it or some"
6633
 
                  $ECHO "*** library that it depends on before this library will be fully"
6634
 
                  $ECHO "*** functional.  Installing it before continuing would be even better."
 
7755
                  echo "*** make it link in!  You will probably need to install it or some"
 
7756
                  echo "*** library that it depends on before this library will be fully"
 
7757
                  echo "*** functional.  Installing it before continuing would be even better."
6635
7758
                fi
6636
7759
                ;;
6637
7760
              *)
6638
 
                newdeplibs="$newdeplibs $i"
 
7761
                func_append newdeplibs " $i"
6639
7762
                ;;
6640
7763
              esac
6641
7764
            done
6652
7775
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6653
7776
                case " $predeps $postdeps " in
6654
7777
                *" $a_deplib "*)
6655
 
                  newdeplibs="$newdeplibs $a_deplib"
 
7778
                  func_append newdeplibs " $a_deplib"
6656
7779
                  a_deplib=""
6657
7780
                  ;;
6658
7781
                esac
6659
7782
              fi
6660
7783
              if test -n "$a_deplib" ; then
6661
7784
                libname=`eval "\\$ECHO \"$libname_spec\""`
 
7785
                if test -n "$file_magic_glob"; then
 
7786
                  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
 
7787
                else
 
7788
                  libnameglob=$libname
 
7789
                fi
 
7790
                test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
6662
7791
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
6663
 
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 
7792
                  if test "$want_nocaseglob" = yes; then
 
7793
                    shopt -s nocaseglob
 
7794
                    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
 
7795
                    $nocaseglob
 
7796
                  else
 
7797
                    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
 
7798
                  fi
6664
7799
                  for potent_lib in $potential_libs; do
6665
7800
                      # Follow soft links.
6666
7801
                      if ls -lLd "$potent_lib" 2>/dev/null |
6677
7812
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
6678
7813
                        case $potliblink in
6679
7814
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6680
 
                        *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 
7815
                        *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
6681
7816
                        esac
6682
7817
                      done
6683
7818
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
6684
7819
                         $SED -e 10q |
6685
7820
                         $EGREP "$file_magic_regex" > /dev/null; then
6686
 
                        newdeplibs="$newdeplibs $a_deplib"
 
7821
                        func_append newdeplibs " $a_deplib"
6687
7822
                        a_deplib=""
6688
7823
                        break 2
6689
7824
                      fi
6692
7827
              fi
6693
7828
              if test -n "$a_deplib" ; then
6694
7829
                droppeddeps=yes
6695
 
                $ECHO
 
7830
                echo
6696
7831
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
6697
 
                $ECHO "*** I have the capability to make that library automatically link in when"
6698
 
                $ECHO "*** you link to this library.  But I can only do this if you have a"
6699
 
                $ECHO "*** shared version of the library, which you do not appear to have"
6700
 
                $ECHO "*** because I did check the linker path looking for a file starting"
 
7832
                echo "*** I have the capability to make that library automatically link in when"
 
7833
                echo "*** you link to this library.  But I can only do this if you have a"
 
7834
                echo "*** shared version of the library, which you do not appear to have"
 
7835
                echo "*** because I did check the linker path looking for a file starting"
6701
7836
                if test -z "$potlib" ; then
6702
7837
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
6703
7838
                else
6708
7843
              ;;
6709
7844
            *)
6710
7845
              # Add a -L argument.
6711
 
              newdeplibs="$newdeplibs $a_deplib"
 
7846
              func_append newdeplibs " $a_deplib"
6712
7847
              ;;
6713
7848
            esac
6714
7849
          done # Gone through all deplibs.
6724
7859
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6725
7860
                case " $predeps $postdeps " in
6726
7861
                *" $a_deplib "*)
6727
 
                  newdeplibs="$newdeplibs $a_deplib"
 
7862
                  func_append newdeplibs " $a_deplib"
6728
7863
                  a_deplib=""
6729
7864
                  ;;
6730
7865
                esac
6735
7870
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
6736
7871
                  for potent_lib in $potential_libs; do
6737
7872
                    potlib="$potent_lib" # see symlink-check above in file_magic test
6738
 
                    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
 
7873
                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
6739
7874
                       $EGREP "$match_pattern_regex" > /dev/null; then
6740
 
                      newdeplibs="$newdeplibs $a_deplib"
 
7875
                      func_append newdeplibs " $a_deplib"
6741
7876
                      a_deplib=""
6742
7877
                      break 2
6743
7878
                    fi
6746
7881
              fi
6747
7882
              if test -n "$a_deplib" ; then
6748
7883
                droppeddeps=yes
6749
 
                $ECHO
 
7884
                echo
6750
7885
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
6751
 
                $ECHO "*** I have the capability to make that library automatically link in when"
6752
 
                $ECHO "*** you link to this library.  But I can only do this if you have a"
6753
 
                $ECHO "*** shared version of the library, which you do not appear to have"
6754
 
                $ECHO "*** because I did check the linker path looking for a file starting"
 
7886
                echo "*** I have the capability to make that library automatically link in when"
 
7887
                echo "*** you link to this library.  But I can only do this if you have a"
 
7888
                echo "*** shared version of the library, which you do not appear to have"
 
7889
                echo "*** because I did check the linker path looking for a file starting"
6755
7890
                if test -z "$potlib" ; then
6756
7891
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
6757
7892
                else
6762
7897
              ;;
6763
7898
            *)
6764
7899
              # Add a -L argument.
6765
 
              newdeplibs="$newdeplibs $a_deplib"
 
7900
              func_append newdeplibs " $a_deplib"
6766
7901
              ;;
6767
7902
            esac
6768
7903
          done # Gone through all deplibs.
6769
7904
          ;;
6770
7905
        none | unknown | *)
6771
7906
          newdeplibs=""
6772
 
          tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
6773
 
              -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
 
7907
          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
6774
7908
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6775
7909
            for i in $predeps $postdeps ; do
6776
7910
              # can't use Xsed below, because $i might contain '/'
6777
 
              tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
 
7911
              tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
6778
7912
            done
6779
7913
          fi
6780
 
          if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
6781
 
             $GREP . >/dev/null; then
6782
 
            $ECHO
 
7914
          case $tmp_deplibs in
 
7915
          *[!\  \ ]*)
 
7916
            echo
6783
7917
            if test "X$deplibs_check_method" = "Xnone"; then
6784
 
              $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
 
7918
              echo "*** Warning: inter-library dependencies are not supported in this platform."
6785
7919
            else
6786
 
              $ECHO "*** Warning: inter-library dependencies are not known to be supported."
 
7920
              echo "*** Warning: inter-library dependencies are not known to be supported."
6787
7921
            fi
6788
 
            $ECHO "*** All declared inter-library dependencies are being dropped."
 
7922
            echo "*** All declared inter-library dependencies are being dropped."
6789
7923
            droppeddeps=yes
6790
 
          fi
 
7924
            ;;
 
7925
          esac
6791
7926
          ;;
6792
7927
        esac
6793
7928
        versuffix=$versuffix_save
6799
7934
        case $host in
6800
7935
        *-*-rhapsody* | *-*-darwin1.[012])
6801
7936
          # On Rhapsody replace the C library with the System framework
6802
 
          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 
7937
          newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
6803
7938
          ;;
6804
7939
        esac
6805
7940
 
6806
7941
        if test "$droppeddeps" = yes; then
6807
7942
          if test "$module" = yes; then
6808
 
            $ECHO
6809
 
            $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
 
7943
            echo
 
7944
            echo "*** Warning: libtool could not satisfy all declared inter-library"
6810
7945
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
6811
 
            $ECHO "*** a static module, that should work as long as the dlopening"
6812
 
            $ECHO "*** application is linked with the -dlopen flag."
 
7946
            echo "*** a static module, that should work as long as the dlopening"
 
7947
            echo "*** application is linked with the -dlopen flag."
6813
7948
            if test -z "$global_symbol_pipe"; then
6814
 
              $ECHO
6815
 
              $ECHO "*** However, this would only work if libtool was able to extract symbol"
6816
 
              $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6817
 
              $ECHO "*** not find such a program.  So, this module is probably useless."
6818
 
              $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 
7949
              echo
 
7950
              echo "*** However, this would only work if libtool was able to extract symbol"
 
7951
              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
7952
              echo "*** not find such a program.  So, this module is probably useless."
 
7953
              echo "*** \`nm' from GNU binutils and a full rebuild may help."
6819
7954
            fi
6820
7955
            if test "$build_old_libs" = no; then
6821
7956
              oldlibs="$output_objdir/$libname.$libext"
6825
7960
              build_libtool_libs=no
6826
7961
            fi
6827
7962
          else
6828
 
            $ECHO "*** The inter-library dependencies that have been dropped here will be"
6829
 
            $ECHO "*** automatically added whenever a program is linked with this library"
6830
 
            $ECHO "*** or is declared to -dlopen it."
 
7963
            echo "*** The inter-library dependencies that have been dropped here will be"
 
7964
            echo "*** automatically added whenever a program is linked with this library"
 
7965
            echo "*** or is declared to -dlopen it."
6831
7966
 
6832
7967
            if test "$allow_undefined" = no; then
6833
 
              $ECHO
6834
 
              $ECHO "*** Since this library must not contain undefined symbols,"
6835
 
              $ECHO "*** because either the platform does not support them or"
6836
 
              $ECHO "*** it was explicitly requested with -no-undefined,"
6837
 
              $ECHO "*** libtool will only create a static version of it."
 
7968
              echo
 
7969
              echo "*** Since this library must not contain undefined symbols,"
 
7970
              echo "*** because either the platform does not support them or"
 
7971
              echo "*** it was explicitly requested with -no-undefined,"
 
7972
              echo "*** libtool will only create a static version of it."
6838
7973
              if test "$build_old_libs" = no; then
6839
7974
                oldlibs="$output_objdir/$libname.$libext"
6840
7975
                build_libtool_libs=module
6851
7986
      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
6852
7987
      case $host in
6853
7988
        *-*-darwin*)
6854
 
          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6855
 
          new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6856
 
          deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7989
          newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7990
          new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7991
          deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6857
7992
          ;;
6858
7993
      esac
6859
7994
 
6866
8001
        *)
6867
8002
          case " $deplibs " in
6868
8003
          *" -L$path/$objdir "*)
6869
 
            new_libs="$new_libs -L$path/$objdir" ;;
 
8004
            func_append new_libs " -L$path/$objdir" ;;
6870
8005
          esac
6871
8006
          ;;
6872
8007
        esac
6876
8011
        -L*)
6877
8012
          case " $new_libs " in
6878
8013
          *" $deplib "*) ;;
6879
 
          *) new_libs="$new_libs $deplib" ;;
 
8014
          *) func_append new_libs " $deplib" ;;
6880
8015
          esac
6881
8016
          ;;
6882
 
        *) new_libs="$new_libs $deplib" ;;
 
8017
        *) func_append new_libs " $deplib" ;;
6883
8018
        esac
6884
8019
      done
6885
8020
      deplibs="$new_libs"
6896
8031
          hardcode_libdirs=
6897
8032
          dep_rpath=
6898
8033
          rpath="$finalize_rpath"
6899
 
          test "$mode" != relink && rpath="$compile_rpath$rpath"
 
8034
          test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
6900
8035
          for libdir in $rpath; do
6901
8036
            if test -n "$hardcode_libdir_flag_spec"; then
6902
8037
              if test -n "$hardcode_libdir_separator"; then
 
8038
                func_replace_sysroot "$libdir"
 
8039
                libdir=$func_replace_sysroot_result
6903
8040
                if test -z "$hardcode_libdirs"; then
6904
8041
                  hardcode_libdirs="$libdir"
6905
8042
                else
6908
8045
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
6909
8046
                    ;;
6910
8047
                  *)
6911
 
                    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
8048
                    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
6912
8049
                    ;;
6913
8050
                  esac
6914
8051
                fi
6915
8052
              else
6916
8053
                eval flag=\"$hardcode_libdir_flag_spec\"
6917
 
                dep_rpath="$dep_rpath $flag"
 
8054
                func_append dep_rpath " $flag"
6918
8055
              fi
6919
8056
            elif test -n "$runpath_var"; then
6920
8057
              case "$perm_rpath " in
6921
8058
              *" $libdir "*) ;;
6922
 
              *) perm_rpath="$perm_rpath $libdir" ;;
 
8059
              *) func_apped perm_rpath " $libdir" ;;
6923
8060
              esac
6924
8061
            fi
6925
8062
          done
6937
8074
            # We should set the runpath_var.
6938
8075
            rpath=
6939
8076
            for dir in $perm_rpath; do
6940
 
              rpath="$rpath$dir:"
 
8077
              func_append rpath "$dir:"
6941
8078
            done
6942
8079
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
6943
8080
          fi
6945
8082
        fi
6946
8083
 
6947
8084
        shlibpath="$finalize_shlibpath"
6948
 
        test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 
8085
        test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
6949
8086
        if test -n "$shlibpath"; then
6950
8087
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
6951
8088
        fi
6971
8108
        linknames=
6972
8109
        for link
6973
8110
        do
6974
 
          linknames="$linknames $link"
 
8111
          func_append linknames " $link"
6975
8112
        done
6976
8113
 
6977
8114
        # Use standard objects if they are pic
6978
 
        test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
8115
        test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
6979
8116
        test "X$libobjs" = "X " && libobjs=
6980
8117
 
6981
8118
        delfiles=
6982
8119
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
6983
8120
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
6984
8121
          export_symbols="$output_objdir/$libname.uexp"
6985
 
          delfiles="$delfiles $export_symbols"
 
8122
          func_append delfiles " $export_symbols"
6986
8123
        fi
6987
8124
 
6988
8125
        orig_export_symbols=
7013
8150
            $opt_dry_run || $RM $export_symbols
7014
8151
            cmds=$export_symbols_cmds
7015
8152
            save_ifs="$IFS"; IFS='~'
7016
 
            for cmd in $cmds; do
 
8153
            for cmd1 in $cmds; do
7017
8154
              IFS="$save_ifs"
7018
 
              eval cmd=\"$cmd\"
7019
 
              func_len " $cmd"
7020
 
              len=$func_len_result
7021
 
              if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7022
 
                func_show_eval "$cmd" 'exit $?'
 
8155
              # Take the normal branch if the nm_file_list_spec branch
 
8156
              # doesn't work or if tool conversion is not needed.
 
8157
              case $nm_file_list_spec~$to_tool_file_cmd in
 
8158
                *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
 
8159
                  try_normal_branch=yes
 
8160
                  eval cmd=\"$cmd1\"
 
8161
                  func_len " $cmd"
 
8162
                  len=$func_len_result
 
8163
                  ;;
 
8164
                *)
 
8165
                  try_normal_branch=no
 
8166
                  ;;
 
8167
              esac
 
8168
              if test "$try_normal_branch" = yes \
 
8169
                 && { test "$len" -lt "$max_cmd_len" \
 
8170
                      || test "$max_cmd_len" -le -1; }
 
8171
              then
 
8172
                func_show_eval "$cmd" 'exit $?'
 
8173
                skipped_export=false
 
8174
              elif test -n "$nm_file_list_spec"; then
 
8175
                func_basename "$output"
 
8176
                output_la=$func_basename_result
 
8177
                save_libobjs=$libobjs
 
8178
                save_output=$output
 
8179
                output=${output_objdir}/${output_la}.nm
 
8180
                func_to_tool_file "$output"
 
8181
                libobjs=$nm_file_list_spec$func_to_tool_file_result
 
8182
                func_append delfiles " $output"
 
8183
                func_verbose "creating $NM input file list: $output"
 
8184
                for obj in $save_libobjs; do
 
8185
                  func_to_tool_file "$obj"
 
8186
                  $ECHO "$func_to_tool_file_result"
 
8187
                done > "$output"
 
8188
                eval cmd=\"$cmd1\"
 
8189
                func_show_eval "$cmd" 'exit $?'
 
8190
                output=$save_output
 
8191
                libobjs=$save_libobjs
7023
8192
                skipped_export=false
7024
8193
              else
7025
8194
                # The command line is too long to execute in one step.
7041
8210
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
7042
8211
          tmp_export_symbols="$export_symbols"
7043
8212
          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7044
 
          $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 
8213
          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7045
8214
        fi
7046
8215
 
7047
8216
        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7053
8222
          # global variables. join(1) would be nice here, but unfortunately
7054
8223
          # isn't a blessed tool.
7055
8224
          $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7056
 
          delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 
8225
          func_append delfiles " $export_symbols $output_objdir/$libname.filter"
7057
8226
          export_symbols=$output_objdir/$libname.def
7058
8227
          $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7059
8228
        fi
7060
8229
 
7061
8230
        tmp_deplibs=
7062
 
        inst_prefix_arg=
7063
8231
        for test_deplib in $deplibs; do
7064
8232
          case " $convenience " in
7065
8233
          *" $test_deplib "*) ;;
7066
8234
          *)
7067
 
                if test -n "$inst_prefix_dir" && (echo "$test_deplib" | grep -- "$inst_prefix_dir" >/dev/null); then
7068
 
                        inst_prefix_arg="$inst_prefix_arg $test_deplib"
7069
 
                else
7070
 
                        tmp_deplibs="$tmp_deplibs $test_deplib"
7071
 
                fi
 
8235
            func_append tmp_deplibs " $test_deplib"
7072
8236
            ;;
7073
8237
          esac
7074
8238
        done
7075
8239
        deplibs="$tmp_deplibs"
7076
 
        if test -n "$inst_prefix_arg"; then
7077
 
                deplibs="$inst_prefix_arg $deplibs"
7078
 
        fi
7079
8240
 
7080
8241
        if test -n "$convenience"; then
7081
8242
          if test -n "$whole_archive_flag_spec" &&
7091
8252
            test "X$libobjs" = "X " && libobjs=
7092
8253
          else
7093
8254
            gentop="$output_objdir/${outputname}x"
7094
 
            generated="$generated $gentop"
 
8255
            func_append generated " $gentop"
7095
8256
 
7096
8257
            func_extract_archives $gentop $convenience
7097
 
            libobjs="$libobjs $func_extract_archives_result"
 
8258
            func_append libobjs " $func_extract_archives_result"
7098
8259
            test "X$libobjs" = "X " && libobjs=
7099
8260
          fi
7100
8261
        fi
7101
8262
 
7102
8263
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
7103
8264
          eval flag=\"$thread_safe_flag_spec\"
7104
 
          linker_flags="$linker_flags $flag"
 
8265
          func_append linker_flags " $flag"
7105
8266
        fi
7106
8267
 
7107
8268
        # Make a backup of the uninstalled library when relinking
7108
 
        if test "$mode" = relink; then
 
8269
        if test "$opt_mode" = relink; then
7109
8270
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
7110
8271
        fi
7111
8272
 
7150
8311
            save_libobjs=$libobjs
7151
8312
          fi
7152
8313
          save_output=$output
7153
 
          output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 
8314
          func_basename "$output"
 
8315
          output_la=$func_basename_result
7154
8316
 
7155
8317
          # Clear the reloadable object creation command queue and
7156
8318
          # initialize k to one.
7163
8325
          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7164
8326
            output=${output_objdir}/${output_la}.lnkscript
7165
8327
            func_verbose "creating GNU ld script: $output"
7166
 
            $ECHO 'INPUT (' > $output
 
8328
            echo 'INPUT (' > $output
7167
8329
            for obj in $save_libobjs
7168
8330
            do
7169
 
              $ECHO "$obj" >> $output
 
8331
              func_to_tool_file "$obj"
 
8332
              $ECHO "$func_to_tool_file_result" >> $output
7170
8333
            done
7171
 
            $ECHO ')' >> $output
7172
 
            delfiles="$delfiles $output"
 
8334
            echo ')' >> $output
 
8335
            func_append delfiles " $output"
 
8336
            func_to_tool_file "$output"
 
8337
            output=$func_to_tool_file_result
7173
8338
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7174
8339
            output=${output_objdir}/${output_la}.lnk
7175
8340
            func_verbose "creating linker input file list: $output"
7183
8348
            fi
7184
8349
            for obj
7185
8350
            do
7186
 
              $ECHO "$obj" >> $output
 
8351
              func_to_tool_file "$obj"
 
8352
              $ECHO "$func_to_tool_file_result" >> $output
7187
8353
            done
7188
 
            delfiles="$delfiles $output"
7189
 
            output=$firstobj\"$file_list_spec$output\"
 
8354
            func_append delfiles " $output"
 
8355
            func_to_tool_file "$output"
 
8356
            output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
7190
8357
          else
7191
8358
            if test -n "$save_libobjs"; then
7192
8359
              func_verbose "creating reloadable object files..."
7210
8377
                  # command to the queue.
7211
8378
                  if test "$k" -eq 1 ; then
7212
8379
                    # The first file doesn't have a previous command to add.
7213
 
                    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 
8380
                    reload_objs=$objlist
 
8381
                    eval concat_cmds=\"$reload_cmds\"
7214
8382
                  else
7215
8383
                    # All subsequent reloadable object files will link in
7216
8384
                    # the last one created.
7217
 
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
 
8385
                    reload_objs="$objlist $last_robj"
 
8386
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
7218
8387
                  fi
7219
8388
                  last_robj=$output_objdir/$output_la-${k}.$objext
7220
8389
                  func_arith $k + 1
7221
8390
                  k=$func_arith_result
7222
8391
                  output=$output_objdir/$output_la-${k}.$objext
7223
 
                  objlist=$obj
 
8392
                  objlist=" $obj"
7224
8393
                  func_len " $last_robj"
7225
8394
                  func_arith $len0 + $func_len_result
7226
8395
                  len=$func_arith_result
7230
8399
              # reloadable object file.  All subsequent reloadable object
7231
8400
              # files will link in the last one created.
7232
8401
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7233
 
              eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 
8402
              reload_objs="$objlist $last_robj"
 
8403
              eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
7234
8404
              if test -n "$last_robj"; then
7235
8405
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7236
8406
              fi
7237
 
              delfiles="$delfiles $output"
 
8407
              func_append delfiles " $output"
7238
8408
 
7239
8409
            else
7240
8410
              output=
7268
8438
                lt_exit=$?
7269
8439
 
7270
8440
                # Restore the uninstalled library and exit
7271
 
                if test "$mode" = relink; then
 
8441
                if test "$opt_mode" = relink; then
7272
8442
                  ( cd "$output_objdir" && \
7273
8443
                    $RM "${realname}T" && \
7274
8444
                    $MV "${realname}U" "$realname" )
7289
8459
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
7290
8460
              tmp_export_symbols="$export_symbols"
7291
8461
              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7292
 
              $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 
8462
              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7293
8463
            fi
7294
8464
 
7295
8465
            if test -n "$orig_export_symbols"; then
7301
8471
              # global variables. join(1) would be nice here, but unfortunately
7302
8472
              # isn't a blessed tool.
7303
8473
              $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7304
 
              delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
 
8474
              func_append delfiles " $export_symbols $output_objdir/$libname.filter"
7305
8475
              export_symbols=$output_objdir/$libname.def
7306
8476
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7307
8477
            fi
7342
8512
        # Add any objects from preloaded convenience libraries
7343
8513
        if test -n "$dlprefiles"; then
7344
8514
          gentop="$output_objdir/${outputname}x"
7345
 
          generated="$generated $gentop"
 
8515
          func_append generated " $gentop"
7346
8516
 
7347
8517
          func_extract_archives $gentop $dlprefiles
7348
 
          libobjs="$libobjs $func_extract_archives_result"
 
8518
          func_append libobjs " $func_extract_archives_result"
7349
8519
          test "X$libobjs" = "X " && libobjs=
7350
8520
        fi
7351
8521
 
7361
8531
            lt_exit=$?
7362
8532
 
7363
8533
            # Restore the uninstalled library and exit
7364
 
            if test "$mode" = relink; then
 
8534
            if test "$opt_mode" = relink; then
7365
8535
              ( cd "$output_objdir" && \
7366
8536
                $RM "${realname}T" && \
7367
8537
                $MV "${realname}U" "$realname" )
7373
8543
        IFS="$save_ifs"
7374
8544
 
7375
8545
        # Restore the uninstalled library and exit
7376
 
        if test "$mode" = relink; then
 
8546
        if test "$opt_mode" = relink; then
7377
8547
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
7378
8548
 
7379
8549
          if test -n "$convenience"; then
7454
8624
      if test -n "$convenience"; then
7455
8625
        if test -n "$whole_archive_flag_spec"; then
7456
8626
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7457
 
          reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 
8627
          reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
7458
8628
        else
7459
8629
          gentop="$output_objdir/${obj}x"
7460
 
          generated="$generated $gentop"
 
8630
          func_append generated " $gentop"
7461
8631
 
7462
8632
          func_extract_archives $gentop $convenience
7463
8633
          reload_conv_objs="$reload_objs $func_extract_archives_result"
7464
8634
        fi
7465
8635
      fi
7466
8636
 
 
8637
      # If we're not building shared, we need to use non_pic_objs
 
8638
      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
 
8639
 
7467
8640
      # Create the old-style object.
7468
 
      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
 
8641
      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
7469
8642
 
7470
8643
      output="$obj"
7471
8644
      func_execute_cmds "$reload_cmds" 'exit $?'
7525
8698
      case $host in
7526
8699
      *-*-rhapsody* | *-*-darwin1.[012])
7527
8700
        # On Rhapsody replace the C library is the System framework
7528
 
        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7529
 
        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 
8701
        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
 
8702
        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
7530
8703
        ;;
7531
8704
      esac
7532
8705
 
7537
8710
        if test "$tagname" = CXX ; then
7538
8711
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
7539
8712
            10.[0123])
7540
 
              compile_command="$compile_command ${wl}-bind_at_load"
7541
 
              finalize_command="$finalize_command ${wl}-bind_at_load"
 
8713
              func_append compile_command " ${wl}-bind_at_load"
 
8714
              func_append finalize_command " ${wl}-bind_at_load"
7542
8715
            ;;
7543
8716
          esac
7544
8717
        fi
7545
8718
        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7546
 
        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7547
 
        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
8719
        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 
8720
        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7548
8721
        ;;
7549
8722
      esac
7550
8723
 
7558
8731
        *)
7559
8732
          case " $compile_deplibs " in
7560
8733
          *" -L$path/$objdir "*)
7561
 
            new_libs="$new_libs -L$path/$objdir" ;;
 
8734
            func_append new_libs " -L$path/$objdir" ;;
7562
8735
          esac
7563
8736
          ;;
7564
8737
        esac
7568
8741
        -L*)
7569
8742
          case " $new_libs " in
7570
8743
          *" $deplib "*) ;;
7571
 
          *) new_libs="$new_libs $deplib" ;;
 
8744
          *) func_append new_libs " $deplib" ;;
7572
8745
          esac
7573
8746
          ;;
7574
 
        *) new_libs="$new_libs $deplib" ;;
 
8747
        *) func_append new_libs " $deplib" ;;
7575
8748
        esac
7576
8749
      done
7577
8750
      compile_deplibs="$new_libs"
7578
8751
 
7579
8752
 
7580
 
      compile_command="$compile_command $compile_deplibs"
7581
 
      finalize_command="$finalize_command $finalize_deplibs"
 
8753
      func_append compile_command " $compile_deplibs"
 
8754
      func_append finalize_command " $finalize_deplibs"
7582
8755
 
7583
8756
      if test -n "$rpath$xrpath"; then
7584
8757
        # If the user specified any rpath flags, then add them.
7586
8759
          # This is the magic to use -rpath.
7587
8760
          case "$finalize_rpath " in
7588
8761
          *" $libdir "*) ;;
7589
 
          *) finalize_rpath="$finalize_rpath $libdir" ;;
 
8762
          *) func_append finalize_rpath " $libdir" ;;
7590
8763
          esac
7591
8764
        done
7592
8765
      fi
7605
8778
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7606
8779
                ;;
7607
8780
              *)
7608
 
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
8781
                func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
7609
8782
                ;;
7610
8783
              esac
7611
8784
            fi
7612
8785
          else
7613
8786
            eval flag=\"$hardcode_libdir_flag_spec\"
7614
 
            rpath="$rpath $flag"
 
8787
            func_append rpath " $flag"
7615
8788
          fi
7616
8789
        elif test -n "$runpath_var"; then
7617
8790
          case "$perm_rpath " in
7618
8791
          *" $libdir "*) ;;
7619
 
          *) perm_rpath="$perm_rpath $libdir" ;;
 
8792
          *) func_append perm_rpath " $libdir" ;;
7620
8793
          esac
7621
8794
        fi
7622
8795
        case $host in
7625
8798
          case :$dllsearchpath: in
7626
8799
          *":$libdir:"*) ;;
7627
8800
          ::) dllsearchpath=$libdir;;
7628
 
          *) dllsearchpath="$dllsearchpath:$libdir";;
 
8801
          *) func_append dllsearchpath ":$libdir";;
7629
8802
          esac
7630
8803
          case :$dllsearchpath: in
7631
8804
          *":$testbindir:"*) ;;
7632
8805
          ::) dllsearchpath=$testbindir;;
7633
 
          *) dllsearchpath="$dllsearchpath:$testbindir";;
 
8806
          *) func_append dllsearchpath ":$testbindir";;
7634
8807
          esac
7635
8808
          ;;
7636
8809
        esac
7656
8829
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7657
8830
                ;;
7658
8831
              *)
7659
 
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
8832
                func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
7660
8833
                ;;
7661
8834
              esac
7662
8835
            fi
7663
8836
          else
7664
8837
            eval flag=\"$hardcode_libdir_flag_spec\"
7665
 
            rpath="$rpath $flag"
 
8838
            func_append rpath " $flag"
7666
8839
          fi
7667
8840
        elif test -n "$runpath_var"; then
7668
8841
          case "$finalize_perm_rpath " in
7669
8842
          *" $libdir "*) ;;
7670
 
          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 
8843
          *) func_append finalize_perm_rpath " $libdir" ;;
7671
8844
          esac
7672
8845
        fi
7673
8846
      done
7681
8854
 
7682
8855
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
7683
8856
        # Transform all the library objects into standard objects.
7684
 
        compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7685
 
        finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
8857
        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
 
8858
        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7686
8859
      fi
7687
8860
 
7688
8861
      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
7694
8867
 
7695
8868
      wrappers_required=yes
7696
8869
      case $host in
 
8870
      *cegcc* | *mingw32ce*)
 
8871
        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
 
8872
        wrappers_required=no
 
8873
        ;;
7697
8874
      *cygwin* | *mingw* )
7698
8875
        if test "$build_libtool_libs" != yes; then
7699
8876
          wrappers_required=no
7700
8877
        fi
7701
8878
        ;;
7702
 
      *cegcc)
7703
 
        # Disable wrappers for cegcc, we are cross compiling anyway.
7704
 
        wrappers_required=no
7705
 
        ;;
7706
8879
      *)
7707
8880
        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
7708
8881
          wrappers_required=no
7711
8884
      esac
7712
8885
      if test "$wrappers_required" = no; then
7713
8886
        # Replace the output file specification.
7714
 
        compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
8887
        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7715
8888
        link_command="$compile_command$compile_rpath"
7716
8889
 
7717
8890
        # We have no uninstalled library dependencies, so finalize right now.
7718
8891
        exit_status=0
7719
8892
        func_show_eval "$link_command" 'exit_status=$?'
7720
8893
 
 
8894
        if test -n "$postlink_cmds"; then
 
8895
          func_to_tool_file "$output"
 
8896
          postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
 
8897
          func_execute_cmds "$postlink_cmds" 'exit $?'
 
8898
        fi
 
8899
 
7721
8900
        # Delete the generated files.
7722
8901
        if test -f "$output_objdir/${outputname}S.${objext}"; then
7723
8902
          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
7740
8919
          # We should set the runpath_var.
7741
8920
          rpath=
7742
8921
          for dir in $perm_rpath; do
7743
 
            rpath="$rpath$dir:"
 
8922
            func_append rpath "$dir:"
7744
8923
          done
7745
8924
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
7746
8925
        fi
7748
8927
          # We should set the runpath_var.
7749
8928
          rpath=
7750
8929
          for dir in $finalize_perm_rpath; do
7751
 
            rpath="$rpath$dir:"
 
8930
            func_append rpath "$dir:"
7752
8931
          done
7753
8932
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
7754
8933
        fi
7758
8937
        # We don't need to create a wrapper script.
7759
8938
        link_command="$compile_var$compile_command$compile_rpath"
7760
8939
        # Replace the output file specification.
7761
 
        link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
8940
        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7762
8941
        # Delete the old output file.
7763
8942
        $opt_dry_run || $RM $output
7764
8943
        # Link the executable and exit
7765
8944
        func_show_eval "$link_command" 'exit $?'
 
8945
 
 
8946
        if test -n "$postlink_cmds"; then
 
8947
          func_to_tool_file "$output"
 
8948
          postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
 
8949
          func_execute_cmds "$postlink_cmds" 'exit $?'
 
8950
        fi
 
8951
 
7766
8952
        exit $EXIT_SUCCESS
7767
8953
      fi
7768
8954
 
7777
8963
        if test "$fast_install" != no; then
7778
8964
          link_command="$finalize_var$compile_command$finalize_rpath"
7779
8965
          if test "$fast_install" = yes; then
7780
 
            relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
 
8966
            relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
7781
8967
          else
7782
8968
            # fast_install is set to needless
7783
8969
            relink_command=
7789
8975
      fi
7790
8976
 
7791
8977
      # Replace the output file specification.
7792
 
      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
8978
      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
7793
8979
 
7794
8980
      # Delete the old output files.
7795
8981
      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
7796
8982
 
7797
8983
      func_show_eval "$link_command" 'exit $?'
7798
8984
 
 
8985
      if test -n "$postlink_cmds"; then
 
8986
        func_to_tool_file "$output_objdir/$outputname"
 
8987
        postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
 
8988
        func_execute_cmds "$postlink_cmds" 'exit $?'
 
8989
      fi
 
8990
 
7799
8991
      # Now create the wrapper script.
7800
8992
      func_verbose "creating $output"
7801
8993
 
7813
9005
          fi
7814
9006
        done
7815
9007
        relink_command="(cd `pwd`; $relink_command)"
7816
 
        relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
7817
 
      fi
7818
 
 
7819
 
      # Quote $ECHO for shipping.
7820
 
      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
7821
 
        case $progpath in
7822
 
        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
7823
 
        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
7824
 
        esac
7825
 
        qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
7826
 
      else
7827
 
        qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
 
9008
        relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
7828
9009
      fi
7829
9010
 
7830
9011
      # Only actually do things if not in dry run mode.
7904
9085
        else
7905
9086
          oldobjs="$old_deplibs $non_pic_objects"
7906
9087
          if test "$preload" = yes && test -f "$symfileobj"; then
7907
 
            oldobjs="$oldobjs $symfileobj"
 
9088
            func_append oldobjs " $symfileobj"
7908
9089
          fi
7909
9090
        fi
7910
9091
        addlibs="$old_convenience"
7912
9093
 
7913
9094
      if test -n "$addlibs"; then
7914
9095
        gentop="$output_objdir/${outputname}x"
7915
 
        generated="$generated $gentop"
 
9096
        func_append generated " $gentop"
7916
9097
 
7917
9098
        func_extract_archives $gentop $addlibs
7918
 
        oldobjs="$oldobjs $func_extract_archives_result"
 
9099
        func_append oldobjs " $func_extract_archives_result"
7919
9100
      fi
7920
9101
 
7921
9102
      # Do each command in the archive commands.
7926
9107
        # Add any objects from preloaded convenience libraries
7927
9108
        if test -n "$dlprefiles"; then
7928
9109
          gentop="$output_objdir/${outputname}x"
7929
 
          generated="$generated $gentop"
 
9110
          func_append generated " $gentop"
7930
9111
 
7931
9112
          func_extract_archives $gentop $dlprefiles
7932
 
          oldobjs="$oldobjs $func_extract_archives_result"
 
9113
          func_append oldobjs " $func_extract_archives_result"
7933
9114
        fi
7934
9115
 
7935
9116
        # POSIX demands no paths to be encoded in archives.  We have
7945
9126
            done | sort | sort -uc >/dev/null 2>&1); then
7946
9127
          :
7947
9128
        else
7948
 
          $ECHO "copying selected object files to avoid basename conflicts..."
 
9129
          echo "copying selected object files to avoid basename conflicts..."
7949
9130
          gentop="$output_objdir/${outputname}x"
7950
 
          generated="$generated $gentop"
 
9131
          func_append generated " $gentop"
7951
9132
          func_mkdir_p "$gentop"
7952
9133
          save_oldobjs=$oldobjs
7953
9134
          oldobjs=
7971
9152
                esac
7972
9153
              done
7973
9154
              func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
7974
 
              oldobjs="$oldobjs $gentop/$newobj"
 
9155
              func_append oldobjs " $gentop/$newobj"
7975
9156
              ;;
7976
 
            *) oldobjs="$oldobjs $obj" ;;
 
9157
            *) func_append oldobjs " $obj" ;;
7977
9158
            esac
7978
9159
          done
7979
9160
        fi
7983
9164
        len=$func_len_result
7984
9165
        if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7985
9166
          cmds=$old_archive_cmds
 
9167
        elif test -n "$archiver_list_spec"; then
 
9168
          func_verbose "using command file archive linking..."
 
9169
          for obj in $oldobjs
 
9170
          do
 
9171
            func_to_tool_file "$obj"
 
9172
            $ECHO "$func_to_tool_file_result"
 
9173
          done > $output_objdir/$libname.libcmd
 
9174
          func_to_tool_file "$output_objdir/$libname.libcmd"
 
9175
          oldobjs=" $archiver_list_spec$func_to_tool_file_result"
 
9176
          cmds=$old_archive_cmds
7986
9177
        else
7987
9178
          # the command line is too long to link in one step, link in parts
7988
9179
          func_verbose "using piecewise archive linking..."
8056
9247
      done
8057
9248
      # Quote the link command for shipping.
8058
9249
      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8059
 
      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 
9250
      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8060
9251
      if test "$hardcode_automatic" = yes ; then
8061
9252
        relink_command=
8062
9253
      fi
8079
9270
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
8080
9271
                test -z "$libdir" && \
8081
9272
                  func_fatal_error "\`$deplib' is not a valid libtool archive"
8082
 
                newdependency_libs="$newdependency_libs $libdir/$name"
8083
 
                ;;
8084
 
              *) newdependency_libs="$newdependency_libs $deplib" ;;
 
9273
                func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
 
9274
                ;;
 
9275
              -L*)
 
9276
                func_stripname -L '' "$deplib"
 
9277
                func_replace_sysroot "$func_stripname_result"
 
9278
                func_append newdependency_libs " -L$func_replace_sysroot_result"
 
9279
                ;;
 
9280
              -R*)
 
9281
                func_stripname -R '' "$deplib"
 
9282
                func_replace_sysroot "$func_stripname_result"
 
9283
                func_append newdependency_libs " -R$func_replace_sysroot_result"
 
9284
                ;;
 
9285
              *) func_append newdependency_libs " $deplib" ;;
8085
9286
              esac
8086
9287
            done
8087
9288
            dependency_libs="$newdependency_libs"
8095
9296
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8096
9297
                test -z "$libdir" && \
8097
9298
                  func_fatal_error "\`$lib' is not a valid libtool archive"
8098
 
                newdlfiles="$newdlfiles $libdir/$name"
 
9299
                func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
8099
9300
                ;;
8100
 
              *) newdlfiles="$newdlfiles $lib" ;;
 
9301
              *) func_append newdlfiles " $lib" ;;
8101
9302
              esac
8102
9303
            done
8103
9304
            dlfiles="$newdlfiles"
8114
9315
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8115
9316
                test -z "$libdir" && \
8116
9317
                  func_fatal_error "\`$lib' is not a valid libtool archive"
8117
 
                newdlprefiles="$newdlprefiles $libdir/$name"
 
9318
                func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
8118
9319
                ;;
8119
9320
              esac
8120
9321
            done
8126
9327
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8127
9328
                *) abs=`pwd`"/$lib" ;;
8128
9329
              esac
8129
 
              newdlfiles="$newdlfiles $abs"
 
9330
              func_append newdlfiles " $abs"
8130
9331
            done
8131
9332
            dlfiles="$newdlfiles"
8132
9333
            newdlprefiles=
8135
9336
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8136
9337
                *) abs=`pwd`"/$lib" ;;
8137
9338
              esac
8138
 
              newdlprefiles="$newdlprefiles $abs"
 
9339
              func_append newdlprefiles " $abs"
8139
9340
            done
8140
9341
            dlprefiles="$newdlprefiles"
8141
9342
          fi
8142
9343
          $RM $output
8143
9344
          # place dlname in correct position for cygwin
 
9345
          # In fact, it would be nice if we could use this code for all target
 
9346
          # systems that can't hard-code library paths into their executables
 
9347
          # and that have no shared library path variable independent of PATH,
 
9348
          # but it turns out we can't easily determine that from inspecting
 
9349
          # libtool variables, so we have to hard-code the OSs to which it
 
9350
          # applies here; at the moment, that means platforms that use the PE
 
9351
          # object format with DLL files.  See the long comment at the top of
 
9352
          # tests/bindir.at for full details.
8144
9353
          tdlname=$dlname
8145
9354
          case $host,$output,$installed,$module,$dlname in
8146
 
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 
9355
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
 
9356
              # If a -bindir argument was supplied, place the dll there.
 
9357
              if test "x$bindir" != x ;
 
9358
              then
 
9359
                func_relative_path "$install_libdir" "$bindir"
 
9360
                tdlname=$func_relative_path_result$dlname
 
9361
              else
 
9362
                # Otherwise fall back on heuristic.
 
9363
                tdlname=../bin/$dlname
 
9364
              fi
 
9365
              ;;
8147
9366
          esac
8148
9367
          $ECHO > $output "\
8149
9368
# $outputname - a libtool library file
8202
9421
    exit $EXIT_SUCCESS
8203
9422
}
8204
9423
 
8205
 
{ test "$mode" = link || test "$mode" = relink; } &&
 
9424
{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
8206
9425
    func_mode_link ${1+"$@"}
8207
9426
 
8208
9427
 
8222
9441
    for arg
8223
9442
    do
8224
9443
      case $arg in
8225
 
      -f) RM="$RM $arg"; rmforce=yes ;;
8226
 
      -*) RM="$RM $arg" ;;
8227
 
      *) files="$files $arg" ;;
 
9444
      -f) func_append RM " $arg"; rmforce=yes ;;
 
9445
      -*) func_append RM " $arg" ;;
 
9446
      *) func_append files " $arg" ;;
8228
9447
      esac
8229
9448
    done
8230
9449
 
8233
9452
 
8234
9453
    rmdirs=
8235
9454
 
8236
 
    origobjdir="$objdir"
8237
9455
    for file in $files; do
8238
9456
      func_dirname "$file" "" "."
8239
9457
      dir="$func_dirname_result"
8240
9458
      if test "X$dir" = X.; then
8241
 
        objdir="$origobjdir"
 
9459
        odir="$objdir"
8242
9460
      else
8243
 
        objdir="$dir/$origobjdir"
 
9461
        odir="$dir/$objdir"
8244
9462
      fi
8245
9463
      func_basename "$file"
8246
9464
      name="$func_basename_result"
8247
 
      test "$mode" = uninstall && objdir="$dir"
 
9465
      test "$opt_mode" = uninstall && odir="$dir"
8248
9466
 
8249
 
      # Remember objdir for removal later, being careful to avoid duplicates
8250
 
      if test "$mode" = clean; then
 
9467
      # Remember odir for removal later, being careful to avoid duplicates
 
9468
      if test "$opt_mode" = clean; then
8251
9469
        case " $rmdirs " in
8252
 
          *" $objdir "*) ;;
8253
 
          *) rmdirs="$rmdirs $objdir" ;;
 
9470
          *" $odir "*) ;;
 
9471
          *) func_append rmdirs " $odir" ;;
8254
9472
        esac
8255
9473
      fi
8256
9474
 
8276
9494
 
8277
9495
          # Delete the libtool libraries and symlinks.
8278
9496
          for n in $library_names; do
8279
 
            rmfiles="$rmfiles $objdir/$n"
 
9497
            func_append rmfiles " $odir/$n"
8280
9498
          done
8281
 
          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 
9499
          test -n "$old_library" && func_append rmfiles " $odir/$old_library"
8282
9500
 
8283
 
          case "$mode" in
 
9501
          case "$opt_mode" in
8284
9502
          clean)
8285
 
            case "  $library_names " in
8286
 
            # "  " in the beginning catches empty $dlname
 
9503
            case " $library_names " in
8287
9504
            *" $dlname "*) ;;
8288
 
            *) rmfiles="$rmfiles $objdir/$dlname" ;;
 
9505
            *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
8289
9506
            esac
8290
 
            test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 
9507
            test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
8291
9508
            ;;
8292
9509
          uninstall)
8293
9510
            if test -n "$library_names"; then
8315
9532
          # Add PIC object to the list of files to remove.
8316
9533
          if test -n "$pic_object" &&
8317
9534
             test "$pic_object" != none; then
8318
 
            rmfiles="$rmfiles $dir/$pic_object"
 
9535
            func_append rmfiles " $dir/$pic_object"
8319
9536
          fi
8320
9537
 
8321
9538
          # Add non-PIC object to the list of files to remove.
8322
9539
          if test -n "$non_pic_object" &&
8323
9540
             test "$non_pic_object" != none; then
8324
 
            rmfiles="$rmfiles $dir/$non_pic_object"
 
9541
            func_append rmfiles " $dir/$non_pic_object"
8325
9542
          fi
8326
9543
        fi
8327
9544
        ;;
8328
9545
 
8329
9546
      *)
8330
 
        if test "$mode" = clean ; then
 
9547
        if test "$opt_mode" = clean ; then
8331
9548
          noexename=$name
8332
9549
          case $file in
8333
9550
          *.exe)
8337
9554
            noexename=$func_stripname_result
8338
9555
            # $file with .exe has already been added to rmfiles,
8339
9556
            # add $file without .exe
8340
 
            rmfiles="$rmfiles $file"
 
9557
            func_append rmfiles " $file"
8341
9558
            ;;
8342
9559
          esac
8343
9560
          # Do a test to see if this is a libtool program.
8346
9563
              func_ltwrapper_scriptname "$file"
8347
9564
              relink_command=
8348
9565
              func_source $func_ltwrapper_scriptname_result
8349
 
              rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
 
9566
              func_append rmfiles " $func_ltwrapper_scriptname_result"
8350
9567
            else
8351
9568
              relink_command=
8352
9569
              func_source $dir/$noexename
8354
9571
 
8355
9572
            # note $name still contains .exe if it was in $file originally
8356
9573
            # as does the version of $file that was added into $rmfiles
8357
 
            rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 
9574
            func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
8358
9575
            if test "$fast_install" = yes && test -n "$relink_command"; then
8359
 
              rmfiles="$rmfiles $objdir/lt-$name"
 
9576
              func_append rmfiles " $odir/lt-$name"
8360
9577
            fi
8361
9578
            if test "X$noexename" != "X$name" ; then
8362
 
              rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 
9579
              func_append rmfiles " $odir/lt-${noexename}.c"
8363
9580
            fi
8364
9581
          fi
8365
9582
        fi
8367
9584
      esac
8368
9585
      func_show_eval "$RM $rmfiles" 'exit_status=1'
8369
9586
    done
8370
 
    objdir="$origobjdir"
8371
9587
 
8372
9588
    # Try to remove the ${objdir}s in the directories where we deleted files
8373
9589
    for dir in $rmdirs; do
8379
9595
    exit $exit_status
8380
9596
}
8381
9597
 
8382
 
{ test "$mode" = uninstall || test "$mode" = clean; } &&
 
9598
{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
8383
9599
    func_mode_uninstall ${1+"$@"}
8384
9600
 
8385
 
test -z "$mode" && {
 
9601
test -z "$opt_mode" && {
8386
9602
  help="$generic_help"
8387
9603
  func_fatal_help "you must specify a MODE"
8388
9604
}
8389
9605
 
8390
9606
test -z "$exec_cmd" && \
8391
 
  func_fatal_help "invalid operation mode \`$mode'"
 
9607
  func_fatal_help "invalid operation mode \`$opt_mode'"
8392
9608
 
8393
9609
if test -n "$exec_cmd"; then
8394
9610
  eval exec "$exec_cmd"