~ubuntu-branches/ubuntu/natty/upower/natty

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2010-07-12 14:43:12 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20100712144312-mk9w8zlsw2cztdb7
Tags: 0.9.5-1
* New upstream release:
  - Dynamic testing for enough hibernate swap. (LP: #599352)
  - Port UPower to libusb1 to avoid unfixable crashes. (LP: #522827)
* debian/rules: Build a PO template during package build, for translation
  systems. (LP: #538321)
* debian/control: Switch libusb-dev build dependency to libusb-1.0-0-dev,
  and add libimobiledevice-dev to support the new backend.
* debian/control: Bump Standards-Version to 3.9.0; no changes necessary.
* Drop transitional devicekit-power-doc package. It's been in testing long
  enough, and we do not want to carry it into the squeeze release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Generated from ltmain.m4sh.
2
2
 
3
 
# ltmain.sh (GNU libtool) 2.2.6b
 
3
# libtool (GNU libtool) 2.2.10
4
4
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
5
5
 
6
 
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
 
6
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
 
7
# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
7
8
# This is free software; see the source for copying conditions.  There is NO
8
9
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
10
 
32
33
#
33
34
# Provide generalized library-building support services.
34
35
#
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
 
36
#       --config             show all configuration variables
 
37
#       --debug              enable verbose shell tracing
 
38
#   -n, --dry-run            display commands without modifying any files
 
39
#       --features           display basic configuration information and exit
 
40
#       --mode=MODE          use operation mode MODE
 
41
#       --preserve-dup-deps  don't remove duplicate dependency libraries
 
42
#       --quiet, --silent    don't print informational messages
 
43
#       --no-quiet, --no-silent
 
44
#                            print informational messages (default)
 
45
#       --tag=TAG            use configuration variables from tag TAG
 
46
#   -v, --verbose            print more informational messages than default
 
47
#       --no-verbose         don't print the extra informational messages
 
48
#       --version            print version information
 
49
#   -h, --help, --help-all   print short, long, or detailed help message
46
50
#
47
51
# MODE must be one of the following:
48
52
#
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
 
53
#         clean              remove files from the build directory
 
54
#         compile            compile a source file into a libtool object
 
55
#         execute            automatically set library path, then run a program
 
56
#         finish             complete the installation of libtool libraries
 
57
#         install            install libraries or executables
 
58
#         link               create a library or an executable
 
59
#         uninstall          remove libraries from an installed directory
56
60
#
57
 
# MODE-ARGS vary depending on the MODE.
 
61
# MODE-ARGS vary depending on the MODE.  When passed as first option,
 
62
# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
58
63
# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
59
64
#
60
65
# When reporting a bug, please describe a test case to reproduce it and
61
66
# include the following information:
62
67
#
63
 
#       host-triplet:   $host
64
 
#       shell:          $SHELL
65
 
#       compiler:               $LTCC
66
 
#       compiler flags:         $LTCFLAGS
67
 
#       linker:         $LD (gnu? $with_gnu_ld)
68
 
#       $progname:              (GNU libtool) 2.2.6b
69
 
#       automake:               $automake_version
70
 
#       autoconf:               $autoconf_version
 
68
#         host-triplet: $host
 
69
#         shell:                $SHELL
 
70
#         compiler:             $LTCC
 
71
#         compiler flags:               $LTCFLAGS
 
72
#         linker:               $LD (gnu? $with_gnu_ld)
 
73
#         $progname:    (GNU libtool) 2.2.10
 
74
#         automake:     $automake_version
 
75
#         autoconf:     $autoconf_version
71
76
#
72
77
# Report bugs to <bug-libtool@gnu.org>.
73
78
 
74
 
PROGRAM=ltmain.sh
 
79
PROGRAM=libtool
75
80
PACKAGE=libtool
76
 
VERSION=2.2.6b
 
81
VERSION=2.2.10
77
82
TIMESTAMP=""
78
 
package_revision=1.3017
 
83
package_revision=1.3175
79
84
 
80
85
# Be Bourne compatible
81
86
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
91
96
BIN_SH=xpg4; export BIN_SH # for Tru64
92
97
DUALCASE=1; export DUALCASE # for MKS sh
93
98
 
 
99
# A function that is used when there is no print builtin or printf.
 
100
func_fallback_echo ()
 
101
{
 
102
  eval 'cat <<_LTECHO_EOF
 
103
$1
 
104
_LTECHO_EOF'
 
105
}
 
106
 
94
107
# NLS nuisances: We save the old values to restore during execute mode.
95
 
# Only set LANG and LC_ALL to C if already set.
96
 
# These must not be set unconditionally because not all systems understand
97
 
# e.g. LANG=C (notably SCO).
98
108
lt_user_locale=
99
109
lt_safe_locale=
100
110
for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
107
117
          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
108
118
        fi"
109
119
done
 
120
LC_ALL=C
 
121
LANGUAGE=C
 
122
export LANGUAGE LC_ALL
110
123
 
111
124
$lt_unset CDPATH
112
125
 
113
126
 
 
127
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 
128
# is ksh but when the shell is invoked as "sh" and the current value of
 
129
# the _XPG environment variable is not equal to 1 (one), the special
 
130
# positional parameter $0, within a function call, is the name of the
 
131
# function.
 
132
progpath="$0"
114
133
 
115
134
 
116
135
 
117
136
: ${CP="cp -f"}
118
 
: ${ECHO="echo"}
 
137
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
119
138
: ${EGREP="/bin/grep -E"}
120
139
: ${FGREP="/bin/grep -F"}
121
140
: ${GREP="/bin/grep"}
159
178
func_dirname_and_basename ()
160
179
{
161
180
  # Extract subdirectory from the argument.
162
 
  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
 
181
  func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
163
182
  if test "X$func_dirname_result" = "X${1}"; then
164
183
    func_dirname_result="${3}"
165
184
  else
166
185
    func_dirname_result="$func_dirname_result${2}"
167
186
  fi
168
 
  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
 
187
  func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
169
188
}
170
189
 
171
190
# Generated shell functions inserted here.
172
191
 
173
 
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
174
 
# is ksh but when the shell is invoked as "sh" and the current value of
175
 
# the _XPG environment variable is not equal to 1 (one), the special
176
 
# positional parameter $0, within a function call, is the name of the
177
 
# function.
178
 
progpath="$0"
 
192
# These SED scripts presuppose an absolute path with a trailing slash.
 
193
pathcar='s,^/\([^/]*\).*$,\1,'
 
194
pathcdr='s,^/[^/]*,,'
 
195
removedotparts=':dotsl
 
196
                s@/\./@/@g
 
197
                t dotsl
 
198
                s,/\.$,/,'
 
199
collapseslashes='s@/\{1,\}@/@g'
 
200
finalslash='s,/*$,/,'
 
201
 
 
202
# func_normal_abspath PATH
 
203
# Remove doubled-up and trailing slashes, "." path components,
 
204
# and cancel out any ".." path components in PATH after making
 
205
# it an absolute path.
 
206
#             value returned in "$func_normal_abspath_result"
 
207
func_normal_abspath ()
 
208
{
 
209
  # Start from root dir and reassemble the path.
 
210
  func_normal_abspath_result=
 
211
  func_normal_abspath_tpath=$1
 
212
  func_normal_abspath_altnamespace=
 
213
  case $func_normal_abspath_tpath in
 
214
    "")
 
215
      # Empty path, that just means $cwd.
 
216
      func_stripname '' '/' "`pwd`"
 
217
      func_normal_abspath_result=$func_stripname_result
 
218
      return
 
219
    ;;
 
220
    # The next three entries are used to spot a run of precisely
 
221
    # two leading slashes without using negated character classes;
 
222
    # we take advantage of case's first-match behaviour.
 
223
    ///*)
 
224
      # Unusual form of absolute path, do nothing.
 
225
    ;;
 
226
    //*)
 
227
      # Not necessarily an ordinary path; POSIX reserves leading '//'
 
228
      # and for example Cygwin uses it to access remote file shares
 
229
      # over CIFS/SMB, so we conserve a leading double slash if found.
 
230
      func_normal_abspath_altnamespace=/
 
231
    ;;
 
232
    /*)
 
233
      # Absolute path, do nothing.
 
234
    ;;
 
235
    *)
 
236
      # Relative path, prepend $cwd.
 
237
      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
 
238
    ;;
 
239
  esac
 
240
  # Cancel out all the simple stuff to save iterations.  We also want
 
241
  # the path to end with a slash for ease of parsing, so make sure
 
242
  # there is one (and only one) here.
 
243
  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
 
244
        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
 
245
  while :; do
 
246
    # Processed it all yet?
 
247
    if test "$func_normal_abspath_tpath" = / ; then
 
248
      # If we ascended to the root using ".." the result may be empty now.
 
249
      if test -z "$func_normal_abspath_result" ; then
 
250
        func_normal_abspath_result=/
 
251
      fi
 
252
      break
 
253
    fi
 
254
    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
 
255
        -e "$pathcar"`
 
256
    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
 
257
        -e "$pathcdr"`
 
258
    # Figure out what to do with it
 
259
    case $func_normal_abspath_tcomponent in
 
260
      "")
 
261
        # Trailing empty path component, ignore it.
 
262
      ;;
 
263
      ..)
 
264
        # Parent dir; strip last assembled component from result.
 
265
        func_dirname "$func_normal_abspath_result"
 
266
        func_normal_abspath_result=$func_dirname_result
 
267
      ;;
 
268
      *)
 
269
        # Actual path component, append it.
 
270
        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
 
271
      ;;
 
272
    esac
 
273
  done
 
274
  # Restore leading double-slash if one was found on entry.
 
275
  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 
276
}
 
277
 
 
278
# func_relative_path SRCDIR DSTDIR
 
279
# generates a relative path from SRCDIR to DSTDIR, with a trailing
 
280
# slash if non-empty, suitable for immediately appending a filename
 
281
# without needing to append a separator.
 
282
#             value returned in "$func_relative_path_result"
 
283
func_relative_path ()
 
284
{
 
285
  func_relative_path_result=
 
286
  func_normal_abspath "$1"
 
287
  func_relative_path_tlibdir=$func_normal_abspath_result
 
288
  func_normal_abspath "$2"
 
289
  func_relative_path_tbindir=$func_normal_abspath_result
 
290
 
 
291
  # Ascend the tree starting from libdir
 
292
  while :; do
 
293
    # check if we have found a prefix of bindir
 
294
    case $func_relative_path_tbindir in
 
295
      $func_relative_path_tlibdir)
 
296
        # found an exact match
 
297
        func_relative_path_tcancelled=
 
298
        break
 
299
        ;;
 
300
      $func_relative_path_tlibdir*)
 
301
        # found a matching prefix
 
302
        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
 
303
        func_relative_path_tcancelled=$func_stripname_result
 
304
        if test -z "$func_relative_path_result"; then
 
305
          func_relative_path_result=.
 
306
        fi
 
307
        break
 
308
        ;;
 
309
      *)
 
310
        func_dirname $func_relative_path_tlibdir
 
311
        func_relative_path_tlibdir=${func_dirname_result}
 
312
        if test "x$func_relative_path_tlibdir" = x ; then
 
313
          # Have to descend all the way to the root!
 
314
          func_relative_path_result=../$func_relative_path_result
 
315
          func_relative_path_tcancelled=$func_relative_path_tbindir
 
316
          break
 
317
        fi
 
318
        func_relative_path_result=../$func_relative_path_result
 
319
        ;;
 
320
    esac
 
321
  done
 
322
 
 
323
  # Now calculate path; take care to avoid doubling-up slashes.
 
324
  func_stripname '' '/' "$func_relative_path_result"
 
325
  func_relative_path_result=$func_stripname_result
 
326
  func_stripname '/' '/' "$func_relative_path_tcancelled"
 
327
  if test "x$func_stripname_result" != x ; then
 
328
    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
 
329
  fi
 
330
 
 
331
  # Normalisation. If bindir is libdir, return empty string,
 
332
  # else relative path ending with a slash; either way, target
 
333
  # file name can be directly appended.
 
334
  if test ! -z "$func_relative_path_result"; then
 
335
    func_stripname './' '' "$func_relative_path_result/"
 
336
    func_relative_path_result=$func_stripname_result
 
337
  fi
 
338
}
179
339
 
180
340
# The name of this program:
181
 
# In the unlikely event $progname began with a '-', it would play havoc with
182
 
# func_echo (imagine progname=-n), so we prepend ./ in that case:
183
341
func_dirname_and_basename "$progpath"
184
342
progname=$func_basename_result
185
 
case $progname in
186
 
  -*) progname=./$progname ;;
187
 
esac
188
343
 
189
344
# Make sure we have an absolute path for reexecution:
190
345
case $progpath in
258
413
    :
259
414
}
260
415
 
 
416
# func_echo_all arg...
 
417
# Invoke $ECHO with all args, space-separated.
 
418
func_echo_all ()
 
419
{
 
420
    $ECHO "$*"
 
421
}
 
422
 
261
423
# func_error arg...
262
424
# Echo program name prefixed message to standard error.
263
425
func_error ()
326
488
        case $my_directory_path in */*) ;; *) break ;; esac
327
489
 
328
490
        # ...otherwise throw away the child directory and loop
329
 
        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
 
491
        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
330
492
      done
331
 
      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
 
493
      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
332
494
 
333
495
      save_mkdir_p_IFS="$IFS"; IFS=':'
334
496
      for my_dir in $my_dir_list; do
378
540
        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
379
541
    fi
380
542
 
381
 
    $ECHO "X$my_tmpdir" | $Xsed
 
543
    $ECHO "$my_tmpdir"
382
544
}
383
545
 
384
546
 
392
554
{
393
555
    case $1 in
394
556
      *[\\\`\"\$]*)
395
 
        func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
 
557
        func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
396
558
      *)
397
559
        func_quote_for_eval_unquoted_result="$1" ;;
398
560
    esac
419
581
{
420
582
    case $1 in
421
583
      *[\\\`\"]*)
422
 
        my_arg=`$ECHO "X$1" | $Xsed \
 
584
        my_arg=`$ECHO "$1" | $SED \
423
585
            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
424
586
      *)
425
587
        my_arg="$1" ;;
489
651
}
490
652
 
491
653
 
492
 
 
493
 
 
494
 
 
495
654
# func_version
496
655
# Echo version message to standard output and exit.
497
656
func_version ()
498
657
{
499
 
    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
 
658
    $SED -n '/(C)/!b go
 
659
        :more
 
660
        /\./!{
 
661
          N
 
662
          s/\n# / /
 
663
          b more
 
664
        }
 
665
        :go
 
666
        /^# '$PROGRAM' (GNU /,/# warranty; / {
500
667
        s/^# //
501
668
        s/^# *$//
502
669
        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
509
676
# Echo short help message to standard output and exit.
510
677
func_usage ()
511
678
{
512
 
    $SED -n '/^# Usage:/,/# -h/ {
 
679
    $SED -n '/^# Usage:/,/^#  *.*--help/ {
513
680
        s/^# //
514
681
        s/^# *$//
515
682
        s/\$progname/'$progname'/
516
683
        p
517
684
    }' < "$progpath"
518
 
    $ECHO
 
685
    echo
519
686
    $ECHO "run \`$progname --help | more' for full usage"
520
687
    exit $?
521
688
}
522
689
 
523
 
# func_help
524
 
# Echo long help message to standard output and exit.
 
690
# func_help [NOEXIT]
 
691
# Echo long help message to standard output and exit,
 
692
# unless 'noexit' is passed as argument.
525
693
func_help ()
526
694
{
527
695
    $SED -n '/^# Usage:/,/# Report bugs to/ {
538
706
        s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
539
707
        p
540
708
     }' < "$progpath"
541
 
    exit $?
 
709
    ret=$?
 
710
    if test -z "$1"; then
 
711
      exit $ret
 
712
    fi
542
713
}
543
714
 
544
715
# func_missing_arg argname
546
717
# exit_cmd.
547
718
func_missing_arg ()
548
719
{
549
 
    func_error "missing argument for $1"
 
720
    func_error "missing argument for $1."
550
721
    exit_cmd=exit
551
722
}
552
723
 
556
727
 
557
728
 
558
729
 
559
 
# Check that we have a working $ECHO.
560
 
if test "X$1" = X--no-reexec; then
561
 
  # Discard the --no-reexec flag, and continue.
562
 
  shift
563
 
elif test "X$1" = X--fallback-echo; then
564
 
  # Avoid inline document here, it may be left over
565
 
  :
566
 
elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
567
 
  # Yippee, $ECHO works!
568
 
  :
569
 
else
570
 
  # Restart under the correct shell, and then maybe $ECHO will work.
571
 
  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
572
 
fi
573
 
 
574
 
if test "X$1" = X--fallback-echo; then
575
 
  # used as fallback echo
576
 
  shift
577
 
  cat <<EOF
578
 
$*
579
 
EOF
580
 
  exit $EXIT_SUCCESS
581
 
fi
582
730
 
583
731
magic="%%%MAGIC variable%%%"
584
732
magic_exe="%%%MAGIC EXE variable%%%"
636
784
# Display the features supported by this script.
637
785
func_features ()
638
786
{
639
 
    $ECHO "host: $host"
 
787
    echo "host: $host"
640
788
    if test "$build_libtool_libs" = yes; then
641
 
      $ECHO "enable shared libraries"
 
789
      echo "enable shared libraries"
642
790
    else
643
 
      $ECHO "disable shared libraries"
 
791
      echo "disable shared libraries"
644
792
    fi
645
793
    if test "$build_old_libs" = yes; then
646
 
      $ECHO "enable static libraries"
 
794
      echo "enable static libraries"
647
795
    else
648
 
      $ECHO "disable static libraries"
 
796
      echo "disable static libraries"
649
797
    fi
650
798
 
651
799
    exit $?
772
920
 
773
921
      --quiet|--silent) preserve_args="$preserve_args $opt"
774
922
                        opt_silent=:
 
923
                        opt_verbose=false
 
924
                        ;;
 
925
 
 
926
      --no-quiet|--no-silent)
 
927
                        preserve_args="$preserve_args $opt"
 
928
                        opt_silent=false
775
929
                        ;;
776
930
 
777
931
      --verbose| -v)    preserve_args="$preserve_args $opt"
778
932
                        opt_silent=false
 
933
                        opt_verbose=:
 
934
                        ;;
 
935
 
 
936
      --no-verbose)     preserve_args="$preserve_args $opt"
 
937
                        opt_verbose=false
779
938
                        ;;
780
939
 
781
940
      --tag)            test "$#" -eq 0 && func_missing_arg "$opt" && break
793
952
 
794
953
      -\?|-h)           func_usage                                      ;;
795
954
      --help)           opt_help=:                                      ;;
 
955
      --help-all)       opt_help=': help-all'                           ;;
796
956
      --version)        func_version                                    ;;
797
957
 
798
958
      -*)               func_fatal_help "unrecognized option \`$opt'"   ;;
1016
1176
        func_quote_for_eval "$arg"
1017
1177
        CC_quoted="$CC_quoted $func_quote_for_eval_result"
1018
1178
      done
 
1179
      CC_expanded=`func_echo_all $CC`
 
1180
      CC_quoted_expanded=`func_echo_all $CC_quoted`
1019
1181
      case $@ in
1020
1182
      # Blanks in the command may have been stripped by the calling shell,
1021
1183
      # but not from the CC environment variable when configure was run.
1022
 
      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
 
1184
      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
 
1185
      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1023
1186
      # Blanks at the start of $base_compile will cause this to fail
1024
1187
      # if we don't check for them as well.
1025
1188
      *)
1033
1196
              func_quote_for_eval "$arg"
1034
1197
              CC_quoted="$CC_quoted $func_quote_for_eval_result"
1035
1198
            done
 
1199
            CC_expanded=`func_echo_all $CC`
 
1200
            CC_quoted_expanded=`func_echo_all $CC_quoted`
1036
1201
            case "$@ " in
1037
 
              " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
 
1202
            " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
 
1203
            " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1038
1204
              # The compiler in the base compile command matches
1039
1205
              # the one in the tagged configuration.
1040
1206
              # Assume this is the tagged configuration we want.
1213
1379
    *.[cCFSifmso] | \
1214
1380
    *.ada | *.adb | *.ads | *.asm | \
1215
1381
    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
1216
 
    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
 
1382
    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
1217
1383
      func_xform "$libobj"
1218
1384
      libobj=$func_xform_result
1219
1385
      ;;
1288
1454
    # Calculate the filename of the output object if compiler does
1289
1455
    # not support -o with -c
1290
1456
    if test "$compiler_c_o" = no; then
1291
 
      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 
1457
      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
1292
1458
      lockfile="$output_obj.lock"
1293
1459
    else
1294
1460
      output_obj=
1445
1611
}
1446
1612
 
1447
1613
$opt_help || {
1448
 
test "$mode" = compile && func_mode_compile ${1+"$@"}
 
1614
  test "$mode" = compile && func_mode_compile ${1+"$@"}
1449
1615
}
1450
1616
 
1451
1617
func_mode_help ()
1482
1648
 
1483
1649
  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
1484
1650
  -no-suppress      do not suppress compiler output for multiple passes
1485
 
  -prefer-pic       try to building PIC objects only
1486
 
  -prefer-non-pic   try to building non-PIC objects only
 
1651
  -prefer-pic       try to build PIC objects only
 
1652
  -prefer-non-pic   try to build non-PIC objects only
1487
1653
  -shared           do not build a \`.o' file suitable for static linking
1488
1654
  -static           only build a \`.o' file suitable for static linking
 
1655
  -Wc,FLAG          pass FLAG directly to the compiler
1489
1656
 
1490
1657
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1491
1658
from the given SOURCEFILE.
1538
1705
 
1539
1706
The following components of INSTALL-COMMAND are treated specially:
1540
1707
 
1541
 
  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
1708
  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
1542
1709
 
1543
1710
The rest of the components are interpreted as arguments to that command (only
1544
1711
BSD-compatible install options are recognized)."
1558
1725
 
1559
1726
  -all-static       do not do any dynamic linking at all
1560
1727
  -avoid-version    do not add a version suffix if possible
 
1728
  -bindir BINDIR    specify path to binaries directory (for systems where
 
1729
                    libraries must be found in the PATH setting at runtime)
1561
1730
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
1562
1731
  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
1563
1732
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
1586
1755
  -version-info CURRENT[:REVISION[:AGE]]
1587
1756
                    specify library version info [each variable defaults to 0]
1588
1757
  -weak LIBNAME     declare that the target provides the LIBNAME interface
 
1758
  -Wc,FLAG
 
1759
  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
 
1760
  -Wl,FLAG
 
1761
  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
 
1762
  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
1589
1763
 
1590
1764
All other options (arguments beginning with \`-') are ignored.
1591
1765
 
1623
1797
        ;;
1624
1798
    esac
1625
1799
 
1626
 
    $ECHO
 
1800
    echo
1627
1801
    $ECHO "Try \`$progname --help' for more information about other modes."
1628
 
 
1629
 
    exit $?
1630
1802
}
1631
1803
 
1632
 
  # Now that we've collected a possible --mode arg, show help if necessary
1633
 
  $opt_help && func_mode_help
 
1804
# Now that we've collected a possible --mode arg, show help if necessary
 
1805
if $opt_help; then
 
1806
  if test "$opt_help" = :; then
 
1807
    func_mode_help
 
1808
  else
 
1809
    {
 
1810
      func_help noexit
 
1811
      for mode in compile link execute install finish uninstall clean; do
 
1812
        func_mode_help
 
1813
      done
 
1814
    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
 
1815
    {
 
1816
      func_help noexit
 
1817
      for mode in compile link execute install finish uninstall clean; do
 
1818
        echo
 
1819
        func_mode_help
 
1820
      done
 
1821
    } |
 
1822
    sed '1d
 
1823
      /^When reporting/,/^Report/{
 
1824
        H
 
1825
        d
 
1826
      }
 
1827
      $x
 
1828
      /information about other modes/d
 
1829
      /more detailed .*MODE/d
 
1830
      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
 
1831
  fi
 
1832
  exit $?
 
1833
fi
1634
1834
 
1635
1835
 
1636
1836
# func_mode_execute arg...
1712
1912
    for file
1713
1913
    do
1714
1914
      case $file in
1715
 
      -*) ;;
 
1915
      -* | *.la | *.lo ) ;;
1716
1916
      *)
1717
1917
        # Do a test to see if this is really a libtool program.
1718
1918
        if func_ltwrapper_script_p "$file"; then
1754
1954
      # Display what would be done.
1755
1955
      if test -n "$shlibpath_var"; then
1756
1956
        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1757
 
        $ECHO "export $shlibpath_var"
 
1957
        echo "export $shlibpath_var"
1758
1958
      fi
1759
1959
      $ECHO "$cmd$args"
1760
1960
      exit $EXIT_SUCCESS
1795
1995
    # Exit here if they wanted silent mode.
1796
1996
    $opt_silent && exit $EXIT_SUCCESS
1797
1997
 
1798
 
    $ECHO "X----------------------------------------------------------------------" | $Xsed
1799
 
    $ECHO "Libraries have been installed in:"
 
1998
    echo "----------------------------------------------------------------------"
 
1999
    echo "Libraries have been installed in:"
1800
2000
    for libdir in $libdirs; do
1801
2001
      $ECHO "   $libdir"
1802
2002
    done
1803
 
    $ECHO
1804
 
    $ECHO "If you ever happen to want to link against installed libraries"
1805
 
    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
1806
 
    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
1807
 
    $ECHO "flag during linking and do at least one of the following:"
 
2003
    echo
 
2004
    echo "If you ever happen to want to link against installed libraries"
 
2005
    echo "in a given directory, LIBDIR, you must either use libtool, and"
 
2006
    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
 
2007
    echo "flag during linking and do at least one of the following:"
1808
2008
    if test -n "$shlibpath_var"; then
1809
 
      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
1810
 
      $ECHO "     during execution"
 
2009
      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 
2010
      echo "     during execution"
1811
2011
    fi
1812
2012
    if test -n "$runpath_var"; then
1813
 
      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
1814
 
      $ECHO "     during linking"
 
2013
      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
 
2014
      echo "     during linking"
1815
2015
    fi
1816
2016
    if test -n "$hardcode_libdir_flag_spec"; then
1817
2017
      libdir=LIBDIR
1823
2023
      $ECHO "   - have your system administrator run these commands:$admincmds"
1824
2024
    fi
1825
2025
    if test -f /etc/ld.so.conf; then
1826
 
      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 
2026
      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1827
2027
    fi
1828
 
    $ECHO
 
2028
    echo
1829
2029
 
1830
 
    $ECHO "See any operating system documentation about shared libraries for"
 
2030
    echo "See any operating system documentation about shared libraries for"
1831
2031
    case $host in
1832
2032
      solaris2.[6789]|solaris2.1[0-9])
1833
 
        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1834
 
        $ECHO "pages."
 
2033
        echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
 
2034
        echo "pages."
1835
2035
        ;;
1836
2036
      *)
1837
 
        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
 
2037
        echo "more information, such as the ld(1) and ld.so(8) manual pages."
1838
2038
        ;;
1839
2039
    esac
1840
 
    $ECHO "X----------------------------------------------------------------------" | $Xsed
 
2040
    echo "----------------------------------------------------------------------"
1841
2041
    exit $EXIT_SUCCESS
1842
2042
}
1843
2043
 
1852
2052
    # install_prog (especially on Windows NT).
1853
2053
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
1854
2054
       # Allow the use of GNU shtool's install command.
1855
 
       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
 
2055
       case $nonopt in *shtool*) :;; *) false;; esac; then
1856
2056
      # Aesthetically quote it.
1857
2057
      func_quote_for_eval "$nonopt"
1858
2058
      install_prog="$func_quote_for_eval_result "
1867
2067
    # Aesthetically quote it.
1868
2068
    func_quote_for_eval "$arg"
1869
2069
    install_prog="$install_prog$func_quote_for_eval_result"
 
2070
    install_shared_prog=$install_prog
 
2071
    case " $install_prog " in
 
2072
      *[\\\ /]cp\ *) install_cp=: ;;
 
2073
      *) install_cp=false ;;
 
2074
    esac
1870
2075
 
1871
2076
    # We need to accept at least all the BSD install flags.
1872
2077
    dest=
1876
2081
    install_type=
1877
2082
    isdir=no
1878
2083
    stripme=
 
2084
    no_mode=:
1879
2085
    for arg
1880
2086
    do
 
2087
      arg2=
1881
2088
      if test -n "$dest"; then
1882
2089
        files="$files $dest"
1883
2090
        dest=$arg
1887
2094
      case $arg in
1888
2095
      -d) isdir=yes ;;
1889
2096
      -f)
1890
 
        case " $install_prog " in
1891
 
        *[\\\ /]cp\ *) ;;
1892
 
        *) prev=$arg ;;
1893
 
        esac
 
2097
        if $install_cp; then :; else
 
2098
          prev=$arg
 
2099
        fi
1894
2100
        ;;
1895
2101
      -g | -m | -o)
1896
2102
        prev=$arg
1904
2110
      *)
1905
2111
        # If the previous option needed an argument, then skip it.
1906
2112
        if test -n "$prev"; then
 
2113
          if test "x$prev" = x-m && test -n "$install_override_mode"; then
 
2114
            arg2=$install_override_mode
 
2115
            no_mode=false
 
2116
          fi
1907
2117
          prev=
1908
2118
        else
1909
2119
          dest=$arg
1915
2125
      # Aesthetically quote the argument.
1916
2126
      func_quote_for_eval "$arg"
1917
2127
      install_prog="$install_prog $func_quote_for_eval_result"
 
2128
      if test -n "$arg2"; then
 
2129
        func_quote_for_eval "$arg2"
 
2130
      fi
 
2131
      install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
1918
2132
    done
1919
2133
 
1920
2134
    test -z "$install_prog" && \
1923
2137
    test -n "$prev" && \
1924
2138
      func_fatal_help "the \`$prev' option requires an argument"
1925
2139
 
 
2140
    if test -n "$install_override_mode" && $no_mode; then
 
2141
      if $install_cp; then :; else
 
2142
        func_quote_for_eval "$install_override_mode"
 
2143
        install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
 
2144
      fi
 
2145
    fi
 
2146
 
1926
2147
    if test -z "$files"; then
1927
2148
      if test -z "$dest"; then
1928
2149
        func_fatal_help "no file or destination specified"
2010
2231
 
2011
2232
        if test -n "$relink_command"; then
2012
2233
          # Determine the prefix the user has applied to our future dir.
2013
 
          inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
 
2234
          inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2014
2235
 
2015
2236
          # Don't allow the user to place us outside of our expected
2016
2237
          # location b/c this prevents finding dependent libraries that
2023
2244
 
2024
2245
          if test -n "$inst_prefix_dir"; then
2025
2246
            # Stick the inst_prefix_dir data into the link command.
2026
 
            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 
2247
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2027
2248
          else
2028
 
            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
 
2249
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2029
2250
          fi
2030
2251
 
2031
2252
          func_warning "relinking \`$file'"
2043
2264
          test -n "$relink_command" && srcname="$realname"T
2044
2265
 
2045
2266
          # Install the shared library and build the symlinks.
2046
 
          func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
 
2267
          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2047
2268
              'exit $?'
2048
2269
          tstripme="$stripme"
2049
2270
          case $host_os in
2183
2404
            if test -f "$lib"; then
2184
2405
              func_source "$lib"
2185
2406
            fi
2186
 
            libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 
2407
            libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
2187
2408
            if test -n "$libdir" && test ! -f "$libfile"; then
2188
2409
              func_warning "\`$lib' has not been installed in \`$libdir'"
2189
2410
              finalize=no
2202
2423
                file="$func_basename_result"
2203
2424
                outputname="$tmpdir/$file"
2204
2425
                # Replace the output file specification.
2205
 
                relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
 
2426
                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
2206
2427
 
2207
2428
                $opt_silent || {
2208
2429
                  func_quote_for_expand "$relink_command"
2221
2442
            }
2222
2443
          else
2223
2444
            # Install the binary that we compiled earlier.
2224
 
            file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 
2445
            file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
2225
2446
          fi
2226
2447
        fi
2227
2448
 
2323
2544
extern \"C\" {
2324
2545
#endif
2325
2546
 
 
2547
#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
 
2548
#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 
2549
#endif
 
2550
 
2326
2551
/* External symbol declarations for the compiler. */\
2327
2552
"
2328
2553
 
2332
2557
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
2333
2558
 
2334
2559
          # Add our own program objects to the symbol list.
2335
 
          progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
2560
          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
2336
2561
          for progfile in $progfiles; do
2337
2562
            func_verbose "extracting global C symbols from \`$progfile'"
2338
2563
            $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
2371
2596
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2372
2597
              eval '$MV "$nlist"T "$nlist"'
2373
2598
              case $host in
2374
 
                *cygwin | *mingw* | *cegcc* )
 
2599
                *cygwin* | *mingw* | *cegcc* )
2375
2600
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2376
2601
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2377
2602
                  ;;
2415
2640
          if test -f "$nlist"S; then
2416
2641
            eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2417
2642
          else
2418
 
            $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
 
2643
            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
2419
2644
          fi
2420
2645
 
2421
 
          $ECHO >> "$output_objdir/$my_dlsyms" "\
 
2646
          echo >> "$output_objdir/$my_dlsyms" "\
2422
2647
 
2423
2648
/* The mapping between symbol names and symbols.  */
2424
2649
typedef struct {
2428
2653
"
2429
2654
          case $host in
2430
2655
          *cygwin* | *mingw* | *cegcc* )
2431
 
            $ECHO >> "$output_objdir/$my_dlsyms" "\
 
2656
            echo >> "$output_objdir/$my_dlsyms" "\
2432
2657
/* DATA imports from DLLs on WIN32 con't be const, because
2433
2658
   runtime relocations are performed -- see ld's documentation
2434
2659
   on pseudo-relocs.  */"
2441
2666
            lt_dlsym_const=const ;;
2442
2667
          esac
2443
2668
 
2444
 
          $ECHO >> "$output_objdir/$my_dlsyms" "\
 
2669
          echo >> "$output_objdir/$my_dlsyms" "\
2445
2670
extern $lt_dlsym_const lt_dlsymlist
2446
2671
lt_${my_prefix}_LTX_preloaded_symbols[];
2447
2672
$lt_dlsym_const lt_dlsymlist
2457
2682
            eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2458
2683
            ;;
2459
2684
          esac
2460
 
          $ECHO >> "$output_objdir/$my_dlsyms" "\
 
2685
          echo >> "$output_objdir/$my_dlsyms" "\
2461
2686
  {0, (void *) 0}
2462
2687
};
2463
2688
 
2515
2740
        case $host in
2516
2741
        *cygwin* | *mingw* | *cegcc* )
2517
2742
          if test -f "$output_objdir/$my_outputname.def"; then
2518
 
            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2519
 
            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 
2743
            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 
2744
            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2520
2745
          else
2521
 
            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2522
 
            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 
2746
            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 
2747
            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2523
2748
          fi
2524
2749
          ;;
2525
2750
        *)
2526
 
          compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2527
 
          finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
 
2751
          compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 
2752
          finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2528
2753
          ;;
2529
2754
        esac
2530
2755
        ;;
2538
2763
      # really was required.
2539
2764
 
2540
2765
      # Nullify the symbol file.
2541
 
      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2542
 
      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
 
2766
      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
 
2767
      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
2543
2768
    fi
2544
2769
}
2545
2770
 
2549
2774
# Need a lot of goo to handle *both* DLLs and import libs
2550
2775
# Has to be a shell function in order to 'eat' the argument
2551
2776
# that is supplied when $file_magic_command is called.
 
2777
# Despite the name, also deal with 64 bit binaries.
2552
2778
func_win32_libid ()
2553
2779
{
2554
2780
  $opt_debug
2559
2785
    win32_libid_type="x86 archive import"
2560
2786
    ;;
2561
2787
  *ar\ archive*) # could be an import, or static
 
2788
    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
2562
2789
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2563
 
       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
 
2790
       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
2564
2791
      win32_nmres=`eval $NM -f posix -A $1 |
2565
2792
        $SED -n -e '
2566
2793
            1,100{
2598
2825
    $opt_debug
2599
2826
    f_ex_an_ar_dir="$1"; shift
2600
2827
    f_ex_an_ar_oldlib="$1"
2601
 
    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
 
2828
    if test "$lock_old_archive_extraction" = yes; then
 
2829
      lockfile=$f_ex_an_ar_oldlib.lock
 
2830
      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 
2831
        func_echo "Waiting for $lockfile to be removed"
 
2832
        sleep 2
 
2833
      done
 
2834
    fi
 
2835
    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
 
2836
                   'stat=$?; rm -f "$lockfile"; exit $stat'
 
2837
    if test "$lock_old_archive_extraction" = yes; then
 
2838
      $opt_dry_run || rm -f "$lockfile"
 
2839
    fi
2602
2840
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
2603
2841
     :
2604
2842
    else
2669
2907
            darwin_file=
2670
2908
            darwin_files=
2671
2909
            for darwin_file in $darwin_filelist; do
2672
 
              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 
2910
              darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
2673
2911
              $LIPO -create -output "$darwin_file" $darwin_files
2674
2912
            done # $darwin_filelist
2675
2913
            $RM -rf unfat-$$
2684
2922
        func_extract_an_archive "$my_xdir" "$my_xabs"
2685
2923
        ;;
2686
2924
      esac
2687
 
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 
2925
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
2688
2926
    done
2689
2927
 
2690
2928
    func_extract_archives_result="$my_oldobjs"
2691
2929
}
2692
2930
 
2693
2931
 
2694
 
 
2695
 
# func_emit_wrapper_part1 [arg=no]
2696
 
#
2697
 
# Emit the first part of a libtool wrapper script on stdout.
2698
 
# For more information, see the description associated with
2699
 
# func_emit_wrapper(), below.
2700
 
func_emit_wrapper_part1 ()
 
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 ()
2701
2947
{
2702
 
        func_emit_wrapper_part1_arg1=no
2703
 
        if test -n "$1" ; then
2704
 
          func_emit_wrapper_part1_arg1=$1
2705
 
        fi
 
2948
        func_emit_wrapper_arg1=${1-no}
2706
2949
 
2707
2950
        $ECHO "\
2708
2951
#! $SHELL
2718
2961
 
2719
2962
# Sed substitution that helps us do robust quoting.  It backslashifies
2720
2963
# metacharacters that are still active within double-quoted strings.
2721
 
Xsed='${SED} -e 1s/^X//'
2722
2964
sed_quote_subst='$sed_quote_subst'
2723
2965
 
2724
2966
# Be Bourne compatible
2749
2991
else
2750
2992
  # When we are sourced in execute mode, \$file and \$ECHO are already set.
2751
2993
  if test \"\$libtool_execute_magic\" != \"$magic\"; then
2752
 
    ECHO=\"$qecho\"
2753
 
    file=\"\$0\"
2754
 
    # Make sure echo works.
2755
 
    if test \"X\$1\" = X--no-reexec; then
2756
 
      # Discard the --no-reexec flag, and continue.
2757
 
      shift
2758
 
    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
2759
 
      # Yippee, \$ECHO works!
2760
 
      :
2761
 
    else
2762
 
      # Restart under the correct shell, and then maybe \$ECHO will work.
2763
 
      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2764
 
    fi
2765
 
  fi\
2766
 
"
2767
 
        $ECHO "\
 
2994
    file=\"\$0\""
 
2995
 
 
2996
    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
 
2997
    $ECHO "\
 
2998
 
 
2999
# A function that is used when there is no print builtin or printf.
 
3000
func_fallback_echo ()
 
3001
{
 
3002
  eval 'cat <<_LTECHO_EOF
 
3003
\$1
 
3004
_LTECHO_EOF'
 
3005
}
 
3006
    ECHO=\"$qECHO\"
 
3007
  fi
 
3008
 
 
3009
# Very basic option parsing. These options are (a) specific to
 
3010
# the libtool wrapper, (b) are identical between the wrapper
 
3011
# /script/ and the wrapper /executable/ which is used only on
 
3012
# windows platforms, and (c) all begin with the string "--lt-"
 
3013
# (application programs are unlikely to have options which match
 
3014
# this pattern).
 
3015
#
 
3016
# There are only two supported options: --lt-debug and
 
3017
# --lt-dump-script. There is, deliberately, no --lt-help.
 
3018
#
 
3019
# The first argument to this parsing function should be the
 
3020
# script's $0 value, followed by "$@".
 
3021
lt_option_debug=
 
3022
func_parse_lt_options ()
 
3023
{
 
3024
  lt_script_arg0=\$0
 
3025
  shift
 
3026
  for lt_opt
 
3027
  do
 
3028
    case \"\$lt_opt\" in
 
3029
    --lt-debug) lt_option_debug=1 ;;
 
3030
    --lt-dump-script)
 
3031
        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
 
3032
        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
 
3033
        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
 
3034
        cat \"\$lt_dump_D/\$lt_dump_F\"
 
3035
        exit 0
 
3036
      ;;
 
3037
    --lt-*)
 
3038
        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
 
3039
        exit 1
 
3040
      ;;
 
3041
    esac
 
3042
  done
 
3043
 
 
3044
  # Print the debug banner immediately:
 
3045
  if test -n \"\$lt_option_debug\"; then
 
3046
    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
 
3047
  fi
 
3048
}
 
3049
 
 
3050
# Used when --lt-debug. Prints its arguments to stdout
 
3051
# (redirection is the responsibility of the caller)
 
3052
func_lt_dump_args ()
 
3053
{
 
3054
  lt_dump_args_N=1;
 
3055
  for lt_arg
 
3056
  do
 
3057
    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
 
3058
    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
 
3059
  done
 
3060
}
 
3061
 
 
3062
# Core function for launching the target application
 
3063
func_exec_program_core ()
 
3064
{
 
3065
"
 
3066
  case $host in
 
3067
  # Backslashes separate directories on plain windows
 
3068
  *-*-mingw | *-*-os2* | *-cegcc*)
 
3069
    $ECHO "\
 
3070
      if test -n \"\$lt_option_debug\"; then
 
3071
        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
 
3072
        func_lt_dump_args \${1+\"\$@\"} 1>&2
 
3073
      fi
 
3074
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 
3075
"
 
3076
    ;;
 
3077
 
 
3078
  *)
 
3079
    $ECHO "\
 
3080
      if test -n \"\$lt_option_debug\"; then
 
3081
        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
 
3082
        func_lt_dump_args \${1+\"\$@\"} 1>&2
 
3083
      fi
 
3084
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 
3085
"
 
3086
    ;;
 
3087
  esac
 
3088
  $ECHO "\
 
3089
      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
 
3090
      exit 1
 
3091
}
 
3092
 
 
3093
# A function to encapsulate launching the target application
 
3094
# Strips options in the --lt-* namespace from \$@ and
 
3095
# launches target application with the remaining arguments.
 
3096
func_exec_program ()
 
3097
{
 
3098
  for lt_wr_arg
 
3099
  do
 
3100
    case \$lt_wr_arg in
 
3101
    --lt-*) ;;
 
3102
    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
 
3103
    esac
 
3104
    shift
 
3105
  done
 
3106
  func_exec_program_core \${1+\"\$@\"}
 
3107
}
 
3108
 
 
3109
  # Parse options
 
3110
  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
2768
3111
 
2769
3112
  # Find the directory that this script lives in.
2770
 
  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 
3113
  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
2771
3114
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2772
3115
 
2773
3116
  # Follow symbolic links until we get to the real thisdir.
2774
 
  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 
3117
  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
2775
3118
  while test -n \"\$file\"; do
2776
 
    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
3119
    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
2777
3120
 
2778
3121
    # If there was a directory component, then change thisdir.
2779
3122
    if test \"x\$destdir\" != \"x\$file\"; then
2783
3126
      esac
2784
3127
    fi
2785
3128
 
2786
 
    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2787
 
    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 
3129
    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
 
3130
    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
2788
3131
  done
2789
 
"
2790
 
}
2791
 
# end: func_emit_wrapper_part1
2792
 
 
2793
 
# func_emit_wrapper_part2 [arg=no]
2794
 
#
2795
 
# Emit the second part of a libtool wrapper script on stdout.
2796
 
# For more information, see the description associated with
2797
 
# func_emit_wrapper(), below.
2798
 
func_emit_wrapper_part2 ()
2799
 
{
2800
 
        func_emit_wrapper_part2_arg1=no
2801
 
        if test -n "$1" ; then
2802
 
          func_emit_wrapper_part2_arg1=$1
2803
 
        fi
2804
 
 
2805
 
        $ECHO "\
2806
3132
 
2807
3133
  # Usually 'no', except on cygwin/mingw when embedded into
2808
3134
  # the cwrapper.
2809
 
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
 
3135
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
2810
3136
  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
2811
3137
    # special case for '.'
2812
3138
    if test \"\$thisdir\" = \".\"; then
2814
3140
    fi
2815
3141
    # remove .libs from thisdir
2816
3142
    case \"\$thisdir\" in
2817
 
    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
 
3143
    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
2818
3144
    $objdir )   thisdir=. ;;
2819
3145
    esac
2820
3146
  fi
2877
3203
 
2878
3204
    # Some systems cannot cope with colon-terminated $shlibpath_var
2879
3205
    # The second colon is a workaround for a bug in BeOS R4 sed
2880
 
    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
3206
    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
2881
3207
 
2882
3208
    export $shlibpath_var
2883
3209
"
2894
3220
        $ECHO "\
2895
3221
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2896
3222
      # Run the actual program with our arguments.
2897
 
"
2898
 
        case $host in
2899
 
        # Backslashes separate directories on plain windows
2900
 
        *-*-mingw | *-*-os2* | *-cegcc*)
2901
 
          $ECHO "\
2902
 
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
2903
 
"
2904
 
          ;;
2905
 
 
2906
 
        *)
2907
 
          $ECHO "\
2908
 
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
2909
 
"
2910
 
          ;;
2911
 
        esac
2912
 
        $ECHO "\
2913
 
      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
2914
 
      exit 1
 
3223
      func_exec_program \${1+\"\$@\"}
2915
3224
    fi
2916
3225
  else
2917
3226
    # The program doesn't exist.
2918
3227
    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
2919
3228
    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
2920
 
    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
 
3229
    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
2921
3230
    exit 1
2922
3231
  fi
2923
3232
fi\
2924
3233
"
2925
3234
}
2926
 
# end: func_emit_wrapper_part2
2927
 
 
2928
 
 
2929
 
# func_emit_wrapper [arg=no]
2930
 
#
2931
 
# Emit a libtool wrapper script on stdout.
2932
 
# Don't directly open a file because we may want to
2933
 
# incorporate the script contents within a cygwin/mingw
2934
 
# wrapper executable.  Must ONLY be called from within
2935
 
# func_mode_link because it depends on a number of variables
2936
 
# set therein.
2937
 
#
2938
 
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
2939
 
# variable will take.  If 'yes', then the emitted script
2940
 
# will assume that the directory in which it is stored is
2941
 
# the $objdir directory.  This is a cygwin/mingw-specific
2942
 
# behavior.
2943
 
func_emit_wrapper ()
2944
 
{
2945
 
        func_emit_wrapper_arg1=no
2946
 
        if test -n "$1" ; then
2947
 
          func_emit_wrapper_arg1=$1
2948
 
        fi
2949
 
 
2950
 
        # split this up so that func_emit_cwrapperexe_src
2951
 
        # can call each part independently.
2952
 
        func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
2953
 
        func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
2954
 
}
2955
3235
 
2956
3236
 
2957
3237
# func_to_host_path arg
2978
3258
func_to_host_path ()
2979
3259
{
2980
3260
  func_to_host_path_result="$1"
2981
 
  if test -n "$1" ; then
 
3261
  if test -n "$1"; then
2982
3262
    case $host in
2983
3263
      *mingw* )
2984
3264
        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
2985
3265
        case $build in
2986
3266
          *mingw* ) # actually, msys
2987
3267
            # awkward: cmd appends spaces to result
2988
 
            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
2989
 
            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
2990
 
              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
2991
 
            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2992
 
              $SED -e "$lt_sed_naive_backslashify"`
 
3268
            func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
 
3269
              $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
2993
3270
            ;;
2994
3271
          *cygwin* )
2995
 
            func_to_host_path_tmp1=`cygpath -w "$1"`
2996
 
            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2997
 
              $SED -e "$lt_sed_naive_backslashify"`
 
3272
            func_to_host_path_result=`cygpath -w "$1" |
 
3273
              $SED -e "$lt_sed_naive_backslashify"`
2998
3274
            ;;
2999
3275
          * )
3000
3276
            # Unfortunately, winepath does not exit with a non-zero
3006
3282
            # the odd construction:
3007
3283
            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3008
3284
            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3009
 
              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
 
3285
              func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
3010
3286
                $SED -e "$lt_sed_naive_backslashify"`
3011
3287
            else
3012
3288
              # Allow warning below.
3013
 
              func_to_host_path_result=""
 
3289
              func_to_host_path_result=
3014
3290
            fi
3015
3291
            ;;
3016
3292
        esac
3017
3293
        if test -z "$func_to_host_path_result" ; then
3018
3294
          func_error "Could not determine host path corresponding to"
3019
 
          func_error "  '$1'"
 
3295
          func_error "  \`$1'"
3020
3296
          func_error "Continuing, but uninstalled executables may not work."
3021
3297
          # Fallback:
3022
3298
          func_to_host_path_result="$1"
3049
3325
func_to_host_pathlist ()
3050
3326
{
3051
3327
  func_to_host_pathlist_result="$1"
3052
 
  if test -n "$1" ; then
 
3328
  if test -n "$1"; then
3053
3329
    case $host in
3054
3330
      *mingw* )
3055
3331
        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3056
3332
        # Remove leading and trailing path separator characters from
3057
3333
        # ARG. msys behavior is inconsistent here, cygpath turns them
3058
3334
        # into '.;' and ';.', and winepath ignores them completely.
3059
 
        func_to_host_pathlist_tmp2="$1"
3060
 
        # Once set for this call, this variable should not be
3061
 
        # reassigned. It is used in tha fallback case.
3062
 
        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3063
 
          $SED -e 's|^:*||' -e 's|:*$||'`
 
3335
        func_stripname : : "$1"
 
3336
        func_to_host_pathlist_tmp1=$func_stripname_result
3064
3337
        case $build in
3065
3338
          *mingw* ) # Actually, msys.
3066
3339
            # Awkward: cmd appends spaces to result.
3067
 
            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3068
 
            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3069
 
              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3070
 
            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3071
 
              $SED -e "$lt_sed_naive_backslashify"`
 
3340
            func_to_host_pathlist_result=`
 
3341
              ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
 
3342
              $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3072
3343
            ;;
3073
3344
          *cygwin* )
3074
 
            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3075
 
            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
 
3345
            func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
3076
3346
              $SED -e "$lt_sed_naive_backslashify"`
3077
3347
            ;;
3078
3348
          * )
3088
3358
                  if test -z "$func_to_host_pathlist_result" ; then
3089
3359
                    func_to_host_pathlist_result="$func_to_host_path_result"
3090
3360
                  else
3091
 
                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
 
3361
                    func_append func_to_host_pathlist_result ";$func_to_host_path_result"
3092
3362
                  fi
3093
3363
                fi
3094
3364
              fi
3095
 
              IFS=:
3096
3365
            done
3097
3366
            IFS=$func_to_host_pathlist_oldIFS
3098
3367
            ;;
3099
3368
        esac
3100
 
        if test -z "$func_to_host_pathlist_result" ; then
 
3369
        if test -z "$func_to_host_pathlist_result"; then
3101
3370
          func_error "Could not determine the host path(s) corresponding to"
3102
 
          func_error "  '$1'"
 
3371
          func_error "  \`$1'"
3103
3372
          func_error "Continuing, but uninstalled executables may not work."
3104
3373
          # Fallback. This may break if $1 contains DOS-style drive
3105
3374
          # specifications. The fix is not to complicate the expression
3116
3385
            ;;
3117
3386
        esac
3118
3387
        case "$1" in
3119
 
          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
 
3388
          *: ) func_append func_to_host_pathlist_result ";"
3120
3389
            ;;
3121
3390
        esac
3122
3391
        ;;
3141
3410
 
3142
3411
   This wrapper executable should never be moved out of the build directory.
3143
3412
   If it is, it will not operate correctly.
3144
 
 
3145
 
   Currently, it simply execs the wrapper *script* "$SHELL $output",
3146
 
   but could eventually absorb all of the scripts functionality and
3147
 
   exec $objdir/$outputname directly.
3148
3413
*/
3149
3414
EOF
3150
3415
            cat <<"EOF"
 
3416
#ifdef _MSC_VER
 
3417
# define _CRT_SECURE_NO_DEPRECATE 1
 
3418
#endif
3151
3419
#include <stdio.h>
3152
3420
#include <stdlib.h>
3153
3421
#ifdef _MSC_VER
3154
3422
# include <direct.h>
3155
3423
# include <process.h>
3156
3424
# include <io.h>
3157
 
# define setmode _setmode
3158
3425
#else
3159
3426
# include <unistd.h>
3160
3427
# include <stdint.h>
3161
3428
# ifdef __CYGWIN__
3162
3429
#  include <io.h>
3163
 
#  define HAVE_SETENV
3164
 
#  ifdef __STRICT_ANSI__
3165
 
char *realpath (const char *, char *);
3166
 
int putenv (char *);
3167
 
int setenv (const char *, const char *, int);
3168
 
#  endif
3169
3430
# endif
3170
3431
#endif
3171
3432
#include <malloc.h>
3177
3438
#include <fcntl.h>
3178
3439
#include <sys/stat.h>
3179
3440
 
 
3441
/* declarations of non-ANSI functions */
 
3442
#if defined(__MINGW32__)
 
3443
# ifdef __STRICT_ANSI__
 
3444
int _putenv (const char *);
 
3445
# endif
 
3446
#elif defined(__CYGWIN__)
 
3447
# ifdef __STRICT_ANSI__
 
3448
char *realpath (const char *, char *);
 
3449
int putenv (char *);
 
3450
int setenv (const char *, const char *, int);
 
3451
# endif
 
3452
/* #elif defined (other platforms) ... */
 
3453
#endif
 
3454
 
 
3455
/* portability defines, excluding path handling macros */
 
3456
#if defined(_MSC_VER)
 
3457
# define setmode _setmode
 
3458
# define stat    _stat
 
3459
# define chmod   _chmod
 
3460
# define getcwd  _getcwd
 
3461
# define putenv  _putenv
 
3462
# define S_IXUSR _S_IEXEC
 
3463
# ifndef _INTPTR_T_DEFINED
 
3464
#  define _INTPTR_T_DEFINED
 
3465
#  define intptr_t int
 
3466
# endif
 
3467
#elif defined(__MINGW32__)
 
3468
# define setmode _setmode
 
3469
# define stat    _stat
 
3470
# define chmod   _chmod
 
3471
# define getcwd  _getcwd
 
3472
# define putenv  _putenv
 
3473
#elif defined(__CYGWIN__)
 
3474
# define HAVE_SETENV
 
3475
# define FOPEN_WB "wb"
 
3476
/* #elif defined (other platforms) ... */
 
3477
#endif
 
3478
 
3180
3479
#if defined(PATH_MAX)
3181
3480
# define LT_PATHMAX PATH_MAX
3182
3481
#elif defined(MAXPATHLEN)
3192
3491
# define S_IXGRP 0
3193
3492
#endif
3194
3493
 
3195
 
#ifdef _MSC_VER
3196
 
# define S_IXUSR _S_IEXEC
3197
 
# define stat _stat
3198
 
# ifndef _INTPTR_T_DEFINED
3199
 
#  define intptr_t int
3200
 
# endif
3201
 
#endif
3202
 
 
 
3494
/* path handling portability macros */
3203
3495
#ifndef DIR_SEPARATOR
3204
3496
# define DIR_SEPARATOR '/'
3205
3497
# define PATH_SEPARATOR ':'
3230
3522
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3231
3523
#endif /* PATH_SEPARATOR_2 */
3232
3524
 
3233
 
#ifdef __CYGWIN__
3234
 
# define FOPEN_WB "wb"
3235
 
#endif
3236
 
 
3237
3525
#ifndef FOPEN_WB
3238
3526
# define FOPEN_WB "w"
3239
3527
#endif
3246
3534
  if (stale) { free ((void *) stale); stale = 0; } \
3247
3535
} while (0)
3248
3536
 
3249
 
#undef LTWRAPPER_DEBUGPRINTF
3250
 
#if defined DEBUGWRAPPER
3251
 
# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3252
 
static void
3253
 
ltwrapper_debugprintf (const char *fmt, ...)
3254
 
{
3255
 
    va_list args;
3256
 
    va_start (args, fmt);
3257
 
    (void) vfprintf (stderr, fmt, args);
3258
 
    va_end (args);
3259
 
}
 
3537
#if defined(LT_DEBUGWRAPPER)
 
3538
static int lt_debug = 1;
3260
3539
#else
3261
 
# define LTWRAPPER_DEBUGPRINTF(args)
 
3540
static int lt_debug = 0;
3262
3541
#endif
3263
3542
 
3264
 
const char *program_name = NULL;
 
3543
const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
3265
3544
 
3266
3545
void *xmalloc (size_t num);
3267
3546
char *xstrdup (const char *string);
3271
3550
int make_executable (const char *path);
3272
3551
int check_executable (const char *path);
3273
3552
char *strendzap (char *str, const char *pat);
3274
 
void lt_fatal (const char *message, ...);
 
3553
void lt_debugprintf (const char *file, int line, const char *fmt, ...);
 
3554
void lt_fatal (const char *file, int line, const char *message, ...);
 
3555
static const char *nonnull (const char *s);
 
3556
static const char *nonempty (const char *s);
3275
3557
void lt_setenv (const char *name, const char *value);
3276
3558
char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3277
 
void lt_opt_process_env_set (const char *arg);
3278
 
void lt_opt_process_env_prepend (const char *arg);
3279
 
void lt_opt_process_env_append (const char *arg);
3280
 
int lt_split_name_value (const char *arg, char** name, char** value);
3281
3559
void lt_update_exe_path (const char *name, const char *value);
3282
3560
void lt_update_lib_path (const char *name, const char *value);
3283
 
 
3284
 
static const char *script_text_part1 =
3285
 
EOF
3286
 
 
3287
 
            func_emit_wrapper_part1 yes |
3288
 
                $SED -e 's/\([\\"]\)/\\\1/g' \
3289
 
                     -e 's/^/  "/' -e 's/$/\\n"/'
3290
 
            echo ";"
3291
 
            cat <<EOF
3292
 
 
3293
 
static const char *script_text_part2 =
3294
 
EOF
3295
 
            func_emit_wrapper_part2 yes |
3296
 
                $SED -e 's/\([\\"]\)/\\\1/g' \
3297
 
                     -e 's/^/  "/' -e 's/$/\\n"/'
3298
 
            echo ";"
 
3561
char **prepare_spawn (char **argv);
 
3562
void lt_dump_script (FILE *f);
 
3563
EOF
3299
3564
 
3300
3565
            cat <<EOF
3301
3566
const char * MAGIC_EXE = "$magic_exe";
3340
3605
            cat <<"EOF"
3341
3606
 
3342
3607
#define LTWRAPPER_OPTION_PREFIX         "--lt-"
3343
 
#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
3344
3608
 
3345
 
static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
3346
3609
static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3347
 
 
3348
3610
static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
3349
 
 
3350
 
static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3351
 
static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
3352
 
  /* argument is putenv-style "foo=bar", value of foo is set to bar */
3353
 
 
3354
 
static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3355
 
static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
3356
 
  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
3357
 
 
3358
 
static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3359
 
static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
3360
 
  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
 
3611
static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
3361
3612
 
3362
3613
int
3363
3614
main (int argc, char *argv[])
3374
3625
  int i;
3375
3626
 
3376
3627
  program_name = (char *) xstrdup (base_name (argv[0]));
3377
 
  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
3378
 
  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
 
3628
  newargz = XMALLOC (char *, argc + 1);
3379
3629
 
3380
 
  /* very simple arg parsing; don't want to rely on getopt */
 
3630
  /* very simple arg parsing; don't want to rely on getopt
 
3631
   * also, copy all non cwrapper options to newargz, except
 
3632
   * argz[0], which is handled differently
 
3633
   */
 
3634
  newargc=0;
3381
3635
  for (i = 1; i < argc; i++)
3382
3636
    {
3383
3637
      if (strcmp (argv[i], dumpscript_opt) == 0)
3391
3645
              esac
3392
3646
 
3393
3647
            cat <<"EOF"
3394
 
          printf ("%s", script_text_part1);
3395
 
          printf ("%s", script_text_part2);
 
3648
          lt_dump_script (stdout);
3396
3649
          return 0;
3397
3650
        }
 
3651
      if (strcmp (argv[i], debug_opt) == 0)
 
3652
        {
 
3653
          lt_debug = 1;
 
3654
          continue;
 
3655
        }
 
3656
      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
 
3657
        {
 
3658
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
 
3659
             namespace, but it is not one of the ones we know about and
 
3660
             have already dealt with, above (inluding dump-script), then
 
3661
             report an error. Otherwise, targets might begin to believe
 
3662
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
 
3663
             namespace. The first time any user complains about this, we'll
 
3664
             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
 
3665
             or a configure.ac-settable value.
 
3666
           */
 
3667
          lt_fatal (__FILE__, __LINE__,
 
3668
                    "unrecognized %s option: '%s'",
 
3669
                    ltwrapper_option_prefix, argv[i]);
 
3670
        }
 
3671
      /* otherwise ... */
 
3672
      newargz[++newargc] = xstrdup (argv[i]);
3398
3673
    }
3399
 
 
3400
 
  newargz = XMALLOC (char *, argc + 1);
 
3674
  newargz[++newargc] = NULL;
 
3675
 
 
3676
EOF
 
3677
            cat <<EOF
 
3678
  /* The GNU banner must be the first non-error debug message */
 
3679
  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
 
3680
EOF
 
3681
            cat <<"EOF"
 
3682
  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
 
3683
  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
3684
 
3401
3685
  tmp_pathspec = find_executable (argv[0]);
3402
3686
  if (tmp_pathspec == NULL)
3403
 
    lt_fatal ("Couldn't find %s", argv[0]);
3404
 
  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
3405
 
                          tmp_pathspec));
 
3687
    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
 
3688
  lt_debugprintf (__FILE__, __LINE__,
 
3689
                  "(main) found exe (before symlink chase) at: %s\n",
 
3690
                  tmp_pathspec);
3406
3691
 
3407
3692
  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3408
 
  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
3409
 
                          actual_cwrapper_path));
 
3693
  lt_debugprintf (__FILE__, __LINE__,
 
3694
                  "(main) found exe (after symlink chase) at: %s\n",
 
3695
                  actual_cwrapper_path);
3410
3696
  XFREE (tmp_pathspec);
3411
3697
 
3412
 
  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
 
3698
  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
3413
3699
  strendzap (actual_cwrapper_path, actual_cwrapper_name);
3414
3700
 
3415
3701
  /* wrapper name transforms */
3427
3713
  target_name = tmp_pathspec;
3428
3714
  tmp_pathspec = 0;
3429
3715
 
3430
 
  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
3431
 
                          target_name));
 
3716
  lt_debugprintf (__FILE__, __LINE__,
 
3717
                  "(main) libtool target name: %s\n",
 
3718
                  target_name);
3432
3719
EOF
3433
3720
 
3434
3721
            cat <<EOF
3481
3768
  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3482
3769
  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3483
3770
 
3484
 
  newargc=0;
3485
 
  for (i = 1; i < argc; i++)
3486
 
    {
3487
 
      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3488
 
        {
3489
 
          if (argv[i][env_set_opt_len] == '=')
3490
 
            {
3491
 
              const char *p = argv[i] + env_set_opt_len + 1;
3492
 
              lt_opt_process_env_set (p);
3493
 
            }
3494
 
          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3495
 
            {
3496
 
              lt_opt_process_env_set (argv[++i]); /* don't copy */
3497
 
            }
3498
 
          else
3499
 
            lt_fatal ("%s missing required argument", env_set_opt);
3500
 
          continue;
3501
 
        }
3502
 
      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3503
 
        {
3504
 
          if (argv[i][env_prepend_opt_len] == '=')
3505
 
            {
3506
 
              const char *p = argv[i] + env_prepend_opt_len + 1;
3507
 
              lt_opt_process_env_prepend (p);
3508
 
            }
3509
 
          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3510
 
            {
3511
 
              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
3512
 
            }
3513
 
          else
3514
 
            lt_fatal ("%s missing required argument", env_prepend_opt);
3515
 
          continue;
3516
 
        }
3517
 
      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
3518
 
        {
3519
 
          if (argv[i][env_append_opt_len] == '=')
3520
 
            {
3521
 
              const char *p = argv[i] + env_append_opt_len + 1;
3522
 
              lt_opt_process_env_append (p);
3523
 
            }
3524
 
          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
3525
 
            {
3526
 
              lt_opt_process_env_append (argv[++i]); /* don't copy */
3527
 
            }
3528
 
          else
3529
 
            lt_fatal ("%s missing required argument", env_append_opt);
3530
 
          continue;
3531
 
        }
3532
 
      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
3533
 
        {
3534
 
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3535
 
             namespace, but it is not one of the ones we know about and
3536
 
             have already dealt with, above (inluding dump-script), then
3537
 
             report an error. Otherwise, targets might begin to believe
3538
 
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3539
 
             namespace. The first time any user complains about this, we'll
3540
 
             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3541
 
             or a configure.ac-settable value.
3542
 
           */
3543
 
          lt_fatal ("Unrecognized option in %s namespace: '%s'",
3544
 
                    ltwrapper_option_prefix, argv[i]);
3545
 
        }
3546
 
      /* otherwise ... */
3547
 
      newargz[++newargc] = xstrdup (argv[i]);
3548
 
    }
3549
 
  newargz[++newargc] = NULL;
3550
 
 
3551
 
  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
 
3771
  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
 
3772
                  nonnull (lt_argv_zero));
3552
3773
  for (i = 0; i < newargc; i++)
3553
3774
    {
3554
 
      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
 
3775
      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
 
3776
                      i, nonnull (newargz[i]));
3555
3777
    }
3556
3778
 
3557
3779
EOF
3560
3782
              mingw*)
3561
3783
                cat <<"EOF"
3562
3784
  /* execv doesn't actually work on mingw as expected on unix */
 
3785
  newargz = prepare_spawn (newargz);
3563
3786
  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
3564
3787
  if (rval == -1)
3565
3788
    {
3566
3789
      /* failed to start process */
3567
 
      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
 
3790
      lt_debugprintf (__FILE__, __LINE__,
 
3791
                      "(main) failed to launch target \"%s\": %s\n",
 
3792
                      lt_argv_zero, nonnull (strerror (errno)));
3568
3793
      return 127;
3569
3794
    }
3570
3795
  return rval;
3586
3811
{
3587
3812
  void *p = (void *) malloc (num);
3588
3813
  if (!p)
3589
 
    lt_fatal ("Memory exhausted");
 
3814
    lt_fatal (__FILE__, __LINE__, "memory exhausted");
3590
3815
 
3591
3816
  return p;
3592
3817
}
3620
3845
{
3621
3846
  struct stat st;
3622
3847
 
3623
 
  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
3624
 
                          path ? (*path ? path : "EMPTY!") : "NULL!"));
 
3848
  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
 
3849
                  nonempty (path));
3625
3850
  if ((!path) || (!*path))
3626
3851
    return 0;
3627
3852
 
3638
3863
  int rval = 0;
3639
3864
  struct stat st;
3640
3865
 
3641
 
  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
3642
 
                          path ? (*path ? path : "EMPTY!") : "NULL!"));
 
3866
  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
 
3867
                  nonempty (path));
3643
3868
  if ((!path) || (!*path))
3644
3869
    return 0;
3645
3870
 
3665
3890
  int tmp_len;
3666
3891
  char *concat_name;
3667
3892
 
3668
 
  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
3669
 
                          wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
 
3893
  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
 
3894
                  nonempty (wrapper));
3670
3895
 
3671
3896
  if ((wrapper == NULL) || (*wrapper == '\0'))
3672
3897
    return NULL;
3719
3944
                {
3720
3945
                  /* empty path: current directory */
3721
3946
                  if (getcwd (tmp, LT_PATHMAX) == NULL)
3722
 
                    lt_fatal ("getcwd failed");
 
3947
                    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
 
3948
                              nonnull (strerror (errno)));
3723
3949
                  tmp_len = strlen (tmp);
3724
3950
                  concat_name =
3725
3951
                    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3744
3970
    }
3745
3971
  /* Relative path | not found in path: prepend cwd */
3746
3972
  if (getcwd (tmp, LT_PATHMAX) == NULL)
3747
 
    lt_fatal ("getcwd failed");
 
3973
    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
 
3974
              nonnull (strerror (errno)));
3748
3975
  tmp_len = strlen (tmp);
3749
3976
  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3750
3977
  memcpy (concat_name, tmp, tmp_len);
3770
3997
  int has_symlinks = 0;
3771
3998
  while (strlen (tmp_pathspec) && !has_symlinks)
3772
3999
    {
3773
 
      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
3774
 
                              tmp_pathspec));
 
4000
      lt_debugprintf (__FILE__, __LINE__,
 
4001
                      "checking path component for symlinks: %s\n",
 
4002
                      tmp_pathspec);
3775
4003
      if (lstat (tmp_pathspec, &s) == 0)
3776
4004
        {
3777
4005
          if (S_ISLNK (s.st_mode) != 0)
3793
4021
        }
3794
4022
      else
3795
4023
        {
3796
 
          char *errstr = strerror (errno);
3797
 
          lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
 
4024
          lt_fatal (__FILE__, __LINE__,
 
4025
                    "error accessing file \"%s\": %s",
 
4026
                    tmp_pathspec, nonnull (strerror (errno)));
3798
4027
        }
3799
4028
    }
3800
4029
  XFREE (tmp_pathspec);
3807
4036
  tmp_pathspec = realpath (pathspec, buf);
3808
4037
  if (tmp_pathspec == 0)
3809
4038
    {
3810
 
      lt_fatal ("Could not follow symlinks for %s", pathspec);
 
4039
      lt_fatal (__FILE__, __LINE__,
 
4040
                "could not follow symlinks for %s", pathspec);
3811
4041
    }
3812
4042
  return xstrdup (tmp_pathspec);
3813
4043
#endif
3833
4063
  return str;
3834
4064
}
3835
4065
 
 
4066
void
 
4067
lt_debugprintf (const char *file, int line, const char *fmt, ...)
 
4068
{
 
4069
  va_list args;
 
4070
  if (lt_debug)
 
4071
    {
 
4072
      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
 
4073
      va_start (args, fmt);
 
4074
      (void) vfprintf (stderr, fmt, args);
 
4075
      va_end (args);
 
4076
    }
 
4077
}
 
4078
 
3836
4079
static void
3837
 
lt_error_core (int exit_status, const char *mode,
 
4080
lt_error_core (int exit_status, const char *file,
 
4081
               int line, const char *mode,
3838
4082
               const char *message, va_list ap)
3839
4083
{
3840
 
  fprintf (stderr, "%s: %s: ", program_name, mode);
 
4084
  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
3841
4085
  vfprintf (stderr, message, ap);
3842
4086
  fprintf (stderr, ".\n");
3843
4087
 
3846
4090
}
3847
4091
 
3848
4092
void
3849
 
lt_fatal (const char *message, ...)
 
4093
lt_fatal (const char *file, int line, const char *message, ...)
3850
4094
{
3851
4095
  va_list ap;
3852
4096
  va_start (ap, message);
3853
 
  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 
4097
  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
3854
4098
  va_end (ap);
3855
4099
}
3856
4100
 
 
4101
static const char *
 
4102
nonnull (const char *s)
 
4103
{
 
4104
  return s ? s : "(null)";
 
4105
}
 
4106
 
 
4107
static const char *
 
4108
nonempty (const char *s)
 
4109
{
 
4110
  return (s && !*s) ? "(empty)" : nonnull (s);
 
4111
}
 
4112
 
3857
4113
void
3858
4114
lt_setenv (const char *name, const char *value)
3859
4115
{
3860
 
  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
3861
 
                          (name ? name : "<NULL>"),
3862
 
                          (value ? value : "<NULL>")));
 
4116
  lt_debugprintf (__FILE__, __LINE__,
 
4117
                  "(lt_setenv) setting '%s' to '%s'\n",
 
4118
                  nonnull (name), nonnull (value));
3863
4119
  {
3864
4120
#ifdef HAVE_SETENV
3865
4121
    /* always make a copy, for consistency with !HAVE_SETENV */
3904
4160
  return new_value;
3905
4161
}
3906
4162
 
3907
 
int
3908
 
lt_split_name_value (const char *arg, char** name, char** value)
3909
 
{
3910
 
  const char *p;
3911
 
  int len;
3912
 
  if (!arg || !*arg)
3913
 
    return 1;
3914
 
 
3915
 
  p = strchr (arg, (int)'=');
3916
 
 
3917
 
  if (!p)
3918
 
    return 1;
3919
 
 
3920
 
  *value = xstrdup (++p);
3921
 
 
3922
 
  len = strlen (arg) - strlen (*value);
3923
 
  *name = XMALLOC (char, len);
3924
 
  strncpy (*name, arg, len-1);
3925
 
  (*name)[len - 1] = '\0';
3926
 
 
3927
 
  return 0;
3928
 
}
3929
 
 
3930
 
void
3931
 
lt_opt_process_env_set (const char *arg)
3932
 
{
3933
 
  char *name = NULL;
3934
 
  char *value = NULL;
3935
 
 
3936
 
  if (lt_split_name_value (arg, &name, &value) != 0)
3937
 
    {
3938
 
      XFREE (name);
3939
 
      XFREE (value);
3940
 
      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
3941
 
    }
3942
 
 
3943
 
  lt_setenv (name, value);
3944
 
  XFREE (name);
3945
 
  XFREE (value);
3946
 
}
3947
 
 
3948
 
void
3949
 
lt_opt_process_env_prepend (const char *arg)
3950
 
{
3951
 
  char *name = NULL;
3952
 
  char *value = NULL;
3953
 
  char *new_value = NULL;
3954
 
 
3955
 
  if (lt_split_name_value (arg, &name, &value) != 0)
3956
 
    {
3957
 
      XFREE (name);
3958
 
      XFREE (value);
3959
 
      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
3960
 
    }
3961
 
 
3962
 
  new_value = lt_extend_str (getenv (name), value, 0);
3963
 
  lt_setenv (name, new_value);
3964
 
  XFREE (new_value);
3965
 
  XFREE (name);
3966
 
  XFREE (value);
3967
 
}
3968
 
 
3969
 
void
3970
 
lt_opt_process_env_append (const char *arg)
3971
 
{
3972
 
  char *name = NULL;
3973
 
  char *value = NULL;
3974
 
  char *new_value = NULL;
3975
 
 
3976
 
  if (lt_split_name_value (arg, &name, &value) != 0)
3977
 
    {
3978
 
      XFREE (name);
3979
 
      XFREE (value);
3980
 
      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
3981
 
    }
3982
 
 
3983
 
  new_value = lt_extend_str (getenv (name), value, 1);
3984
 
  lt_setenv (name, new_value);
3985
 
  XFREE (new_value);
3986
 
  XFREE (name);
3987
 
  XFREE (value);
3988
 
}
3989
 
 
3990
4163
void
3991
4164
lt_update_exe_path (const char *name, const char *value)
3992
4165
{
3993
 
  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
3994
 
                          (name ? name : "<NULL>"),
3995
 
                          (value ? value : "<NULL>")));
 
4166
  lt_debugprintf (__FILE__, __LINE__,
 
4167
                  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
 
4168
                  nonnull (name), nonnull (value));
3996
4169
 
3997
4170
  if (name && *name && value && *value)
3998
4171
    {
4011
4184
void
4012
4185
lt_update_lib_path (const char *name, const char *value)
4013
4186
{
4014
 
  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4015
 
                          (name ? name : "<NULL>"),
4016
 
                          (value ? value : "<NULL>")));
 
4187
  lt_debugprintf (__FILE__, __LINE__,
 
4188
                  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
 
4189
                  nonnull (name), nonnull (value));
4017
4190
 
4018
4191
  if (name && *name && value && *value)
4019
4192
    {
4023
4196
    }
4024
4197
}
4025
4198
 
4026
 
 
 
4199
EOF
 
4200
            case $host_os in
 
4201
              mingw*)
 
4202
                cat <<"EOF"
 
4203
 
 
4204
/* Prepares an argument vector before calling spawn().
 
4205
   Note that spawn() does not by itself call the command interpreter
 
4206
     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
 
4207
      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 
4208
         GetVersionEx(&v);
 
4209
         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
 
4210
      }) ? "cmd.exe" : "command.com").
 
4211
   Instead it simply concatenates the arguments, separated by ' ', and calls
 
4212
   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
 
4213
   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
 
4214
   special way:
 
4215
   - Space and tab are interpreted as delimiters. They are not treated as
 
4216
     delimiters if they are surrounded by double quotes: "...".
 
4217
   - Unescaped double quotes are removed from the input. Their only effect is
 
4218
     that within double quotes, space and tab are treated like normal
 
4219
     characters.
 
4220
   - Backslashes not followed by double quotes are not special.
 
4221
   - But 2*n+1 backslashes followed by a double quote become
 
4222
     n backslashes followed by a double quote (n >= 0):
 
4223
       \" -> "
 
4224
       \\\" -> \"
 
4225
       \\\\\" -> \\"
 
4226
 */
 
4227
#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
 
4228
#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
 
4229
char **
 
4230
prepare_spawn (char **argv)
 
4231
{
 
4232
  size_t argc;
 
4233
  char **new_argv;
 
4234
  size_t i;
 
4235
 
 
4236
  /* Count number of arguments.  */
 
4237
  for (argc = 0; argv[argc] != NULL; argc++)
 
4238
    ;
 
4239
 
 
4240
  /* Allocate new argument vector.  */
 
4241
  new_argv = XMALLOC (char *, argc + 1);
 
4242
 
 
4243
  /* Put quoted arguments into the new argument vector.  */
 
4244
  for (i = 0; i < argc; i++)
 
4245
    {
 
4246
      const char *string = argv[i];
 
4247
 
 
4248
      if (string[0] == '\0')
 
4249
        new_argv[i] = xstrdup ("\"\"");
 
4250
      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
 
4251
        {
 
4252
          int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
 
4253
          size_t length;
 
4254
          unsigned int backslashes;
 
4255
          const char *s;
 
4256
          char *quoted_string;
 
4257
          char *p;
 
4258
 
 
4259
          length = 0;
 
4260
          backslashes = 0;
 
4261
          if (quote_around)
 
4262
            length++;
 
4263
          for (s = string; *s != '\0'; s++)
 
4264
            {
 
4265
              char c = *s;
 
4266
              if (c == '"')
 
4267
                length += backslashes + 1;
 
4268
              length++;
 
4269
              if (c == '\\')
 
4270
                backslashes++;
 
4271
              else
 
4272
                backslashes = 0;
 
4273
            }
 
4274
          if (quote_around)
 
4275
            length += backslashes + 1;
 
4276
 
 
4277
          quoted_string = XMALLOC (char, length + 1);
 
4278
 
 
4279
          p = quoted_string;
 
4280
          backslashes = 0;
 
4281
          if (quote_around)
 
4282
            *p++ = '"';
 
4283
          for (s = string; *s != '\0'; s++)
 
4284
            {
 
4285
              char c = *s;
 
4286
              if (c == '"')
 
4287
                {
 
4288
                  unsigned int j;
 
4289
                  for (j = backslashes + 1; j > 0; j--)
 
4290
                    *p++ = '\\';
 
4291
                }
 
4292
              *p++ = c;
 
4293
              if (c == '\\')
 
4294
                backslashes++;
 
4295
              else
 
4296
                backslashes = 0;
 
4297
            }
 
4298
          if (quote_around)
 
4299
            {
 
4300
              unsigned int j;
 
4301
              for (j = backslashes; j > 0; j--)
 
4302
                *p++ = '\\';
 
4303
              *p++ = '"';
 
4304
            }
 
4305
          *p = '\0';
 
4306
 
 
4307
          new_argv[i] = quoted_string;
 
4308
        }
 
4309
      else
 
4310
        new_argv[i] = (char *) string;
 
4311
    }
 
4312
  new_argv[argc] = NULL;
 
4313
 
 
4314
  return new_argv;
 
4315
}
 
4316
EOF
 
4317
                ;;
 
4318
            esac
 
4319
 
 
4320
            cat <<"EOF"
 
4321
void lt_dump_script (FILE* f)
 
4322
{
 
4323
EOF
 
4324
            func_emit_wrapper yes |
 
4325
              $SED -e 's/\([\\"]\)/\\\1/g' \
 
4326
                   -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
 
4327
 
 
4328
            cat <<"EOF"
 
4329
}
4027
4330
EOF
4028
4331
}
4029
4332
# end: func_emit_cwrapperexe_src
4030
4333
 
 
4334
# func_win32_import_lib_p ARG
 
4335
# True if ARG is an import lib, as indicated by $file_magic_cmd
 
4336
func_win32_import_lib_p ()
 
4337
{
 
4338
    $opt_debug
 
4339
    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
 
4340
    *import*) : ;;
 
4341
    *) false ;;
 
4342
    esac
 
4343
}
 
4344
 
4031
4345
# func_mode_link arg...
4032
4346
func_mode_link ()
4033
4347
{
4072
4386
    new_inherited_linker_flags=
4073
4387
 
4074
4388
    avoid_version=no
 
4389
    bindir=
4075
4390
    dlfiles=
4076
4391
    dlprefiles=
4077
4392
    dlself=no
4164
4479
        esac
4165
4480
 
4166
4481
        case $prev in
 
4482
        bindir)
 
4483
          bindir="$arg"
 
4484
          prev=
 
4485
          continue
 
4486
          ;;
4167
4487
        dlfiles|dlprefiles)
4168
4488
          if test "$preload" = no; then
4169
4489
            # Add the symbol object into the linking commands.
4425
4745
        continue
4426
4746
        ;;
4427
4747
 
 
4748
      -bindir)
 
4749
        prev=bindir
 
4750
        continue
 
4751
        ;;
 
4752
 
4428
4753
      -dlopen)
4429
4754
        prev=dlfiles
4430
4755
        continue
4503
4828
        esac
4504
4829
        case $host in
4505
4830
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4506
 
          testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 
4831
          testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
4507
4832
          case :$dllsearchpath: in
4508
4833
          *":$dir:"*) ;;
4509
4834
          ::) dllsearchpath=$dir;;
4522
4847
      -l*)
4523
4848
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
4524
4849
          case $host in
4525
 
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
 
4850
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
4526
4851
            # These systems don't actually have a C or math library (as such)
4527
4852
            continue
4528
4853
            ;;
4708
5033
        for flag in $args; do
4709
5034
          IFS="$save_ifs"
4710
5035
          func_quote_for_eval "$flag"
4711
 
          arg="$arg $wl$func_quote_for_eval_result"
 
5036
          arg="$arg $func_quote_for_eval_result"
4712
5037
          compiler_flags="$compiler_flags $func_quote_for_eval_result"
4713
5038
        done
4714
5039
        IFS="$save_ifs"
4754
5079
        arg="$func_quote_for_eval_result"
4755
5080
        ;;
4756
5081
 
4757
 
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
4758
 
      # -r[0-9][0-9]* specifies the processor on the SGI compiler
4759
 
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
4760
 
      # +DA*, +DD* enable 64-bit mode on the HP compiler
4761
 
      # -q* pass through compiler args for the IBM compiler
4762
 
      # -m*, -t[45]*, -txscale* pass through architecture-specific
4763
 
      # compiler args for GCC
4764
 
      # -F/path gives path to uninstalled frameworks, gcc on darwin
4765
 
      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
4766
 
      # @file GCC response files
 
5082
      # Flags to be passed through unchanged, with rationale:
 
5083
      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
 
5084
      # -r[0-9][0-9]*        specify processor for the SGI compiler
 
5085
      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
 
5086
      # +DA*, +DD*           enable 64-bit mode for the HP compiler
 
5087
      # -q*                  compiler args for the IBM compiler
 
5088
      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
 
5089
      # -F/path              path to uninstalled frameworks, gcc on darwin
 
5090
      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
 
5091
      # @file                GCC response files
 
5092
      # -tp=*                Portland pgcc target processor selection
4767
5093
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
4768
 
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 
5094
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
4769
5095
        func_quote_for_eval "$arg"
4770
5096
        arg="$func_quote_for_eval_result"
4771
5097
        func_append compile_command " $arg"
4925
5251
 
4926
5252
    if test -n "$shlibpath_var"; then
4927
5253
      # get the directories listed in $shlibpath_var
4928
 
      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 
5254
      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
4929
5255
    else
4930
5256
      shlib_search_path=
4931
5257
    fi
5048
5374
          # Collect preopened libtool deplibs, except any this library
5049
5375
          # has declared as weak libs
5050
5376
          for deplib in $dependency_libs; do
5051
 
            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
 
5377
            func_basename "$deplib"
 
5378
            deplib_base=$func_basename_result
5052
5379
            case " $weak_libs " in
5053
5380
            *" $deplib_base "*) ;;
5054
5381
            *) deplibs="$deplibs $deplib" ;;
5227
5554
                match_pattern*)
5228
5555
                  set dummy $deplibs_check_method; shift
5229
5556
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5230
 
                  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
 
5557
                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
5231
5558
                    | $EGREP "$match_pattern_regex" > /dev/null; then
5232
5559
                    valid_a_lib=yes
5233
5560
                  fi
5237
5564
                ;;
5238
5565
              esac
5239
5566
              if test "$valid_a_lib" != yes; then
5240
 
                $ECHO
 
5567
                echo
5241
5568
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5242
 
                $ECHO "*** I have the capability to make that library automatically link in when"
5243
 
                $ECHO "*** you link to this library.  But I can only do this if you have a"
5244
 
                $ECHO "*** shared version of the library, which you do not appear to have"
5245
 
                $ECHO "*** because the file extensions .$libext of this argument makes me believe"
5246
 
                $ECHO "*** that it is just a static archive that I should not use here."
 
5569
                echo "*** I have the capability to make that library automatically link in when"
 
5570
                echo "*** you link to this library.  But I can only do this if you have a"
 
5571
                echo "*** shared version of the library, which you do not appear to have"
 
5572
                echo "*** because the file extensions .$libext of this argument makes me believe"
 
5573
                echo "*** that it is just a static archive that I should not use here."
5247
5574
              else
5248
 
                $ECHO
 
5575
                echo
5249
5576
                $ECHO "*** Warning: Linking the shared library $output against the"
5250
5577
                $ECHO "*** static library $deplib is not portable!"
5251
5578
                deplibs="$deplib $deplibs"
5318
5645
 
5319
5646
        # Convert "-framework foo" to "foo.ltframework"
5320
5647
        if test -n "$inherited_linker_flags"; then
5321
 
          tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
 
5648
          tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
5322
5649
          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5323
5650
            case " $new_inherited_linker_flags " in
5324
5651
              *" $tmp_inherited_linker_flag "*) ;;
5326
5653
            esac
5327
5654
          done
5328
5655
        fi
5329
 
        dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
5656
        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5330
5657
        if test "$linkmode,$pass" = "lib,link" ||
5331
5658
           test "$linkmode,$pass" = "prog,scan" ||
5332
5659
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5580
5907
            fi
5581
5908
          done
5582
5909
          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5583
 
            $ECHO
 
5910
            echo
5584
5911
            if test "$linkmode" = prog; then
5585
5912
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
5586
5913
            else
5683
6010
                      if test "X$dlopenmodule" != "X$lib"; then
5684
6011
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
5685
6012
                        if test -z "$old_library" ; then
5686
 
                          $ECHO
5687
 
                          $ECHO "*** And there doesn't seem to be a static archive available"
5688
 
                          $ECHO "*** The link will probably fail, sorry"
 
6013
                          echo
 
6014
                          echo "*** And there doesn't seem to be a static archive available"
 
6015
                          echo "*** The link will probably fail, sorry"
5689
6016
                        else
5690
6017
                          add="$dir/$old_library"
5691
6018
                        fi
5825
6152
 
5826
6153
            # Just print a warning and add the library to dependency_libs so
5827
6154
            # that the program can be linked against the static library.
5828
 
            $ECHO
 
6155
            echo
5829
6156
            $ECHO "*** Warning: This system can not link to static lib archive $lib."
5830
 
            $ECHO "*** I have the capability to make that library automatically link in when"
5831
 
            $ECHO "*** you link to this library.  But I can only do this if you have a"
5832
 
            $ECHO "*** shared version of the library, which you do not appear to have."
 
6157
            echo "*** I have the capability to make that library automatically link in when"
 
6158
            echo "*** you link to this library.  But I can only do this if you have a"
 
6159
            echo "*** shared version of the library, which you do not appear to have."
5833
6160
            if test "$module" = yes; then
5834
 
              $ECHO "*** But as you try to build a module library, libtool will still create "
5835
 
              $ECHO "*** a static module, that should work as long as the dlopening application"
5836
 
              $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
 
6161
              echo "*** But as you try to build a module library, libtool will still create "
 
6162
              echo "*** a static module, that should work as long as the dlopening application"
 
6163
              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
5837
6164
              if test -z "$global_symbol_pipe"; then
5838
 
                $ECHO
5839
 
                $ECHO "*** However, this would only work if libtool was able to extract symbol"
5840
 
                $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
5841
 
                $ECHO "*** not find such a program.  So, this module is probably useless."
5842
 
                $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 
6165
                echo
 
6166
                echo "*** However, this would only work if libtool was able to extract symbol"
 
6167
                echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
6168
                echo "*** not find such a program.  So, this module is probably useless."
 
6169
                echo "*** \`nm' from GNU binutils and a full rebuild may help."
5843
6170
              fi
5844
6171
              if test "$build_old_libs" = no; then
5845
6172
                build_libtool_libs=module
5893
6220
          if test "$link_all_deplibs" != no; then
5894
6221
            # Add the search paths of all dependency libraries
5895
6222
            for deplib in $dependency_libs; do
 
6223
              path=
5896
6224
              case $deplib in
5897
6225
              -L*) path="$deplib" ;;
5898
6226
              *.la)
5958
6286
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
5959
6287
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
5960
6288
        else
5961
 
          compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
6289
          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5962
6290
        fi
5963
6291
      fi
5964
6292
      dependency_libs="$newdependency_libs"
6126
6454
        if test "$deplibs_check_method" != pass_all; then
6127
6455
          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6128
6456
        else
6129
 
          $ECHO
 
6457
          echo
6130
6458
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6131
6459
          $ECHO "*** objects $objs is not portable!"
6132
6460
          libobjs="$libobjs $objs"
6194
6522
            age="$number_minor"
6195
6523
            revision="$number_revision"
6196
6524
            ;;
6197
 
          freebsd-aout|freebsd-elf|sunos)
 
6525
          freebsd-aout|freebsd-elf|qnx|sunos)
6198
6526
            current="$number_major"
6199
6527
            revision="$number_minor"
6200
6528
            age="0"
6428
6756
        oldlibs="$oldlibs $output_objdir/$libname.$libext"
6429
6757
 
6430
6758
        # Transform .lo files to .o files.
6431
 
        oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 
6759
        oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
6432
6760
      fi
6433
6761
 
6434
6762
      # Eliminate all temporary directories.
6435
6763
      #for path in $notinst_path; do
6436
 
      # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6437
 
      # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6438
 
      # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
 
6764
      # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
 
6765
      # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
 
6766
      # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
6439
6767
      #done
6440
6768
 
6441
6769
      if test -n "$xrpath"; then
6476
6804
      if test "$build_libtool_libs" = yes; then
6477
6805
        if test -n "$rpath"; then
6478
6806
          case $host in
6479
 
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
 
6807
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
6480
6808
            # these systems don't actually have a c library (as such)!
6481
6809
            ;;
6482
6810
          *-*-rhapsody* | *-*-darwin1.[012])
6561
6889
                    newdeplibs="$newdeplibs $i"
6562
6890
                  else
6563
6891
                    droppeddeps=yes
6564
 
                    $ECHO
 
6892
                    echo
6565
6893
                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6566
 
                    $ECHO "*** I have the capability to make that library automatically link in when"
6567
 
                    $ECHO "*** you link to this library.  But I can only do this if you have a"
6568
 
                    $ECHO "*** shared version of the library, which I believe you do not have"
6569
 
                    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
6570
 
                    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
 
6894
                    echo "*** I have the capability to make that library automatically link in when"
 
6895
                    echo "*** you link to this library.  But I can only do this if you have a"
 
6896
                    echo "*** shared version of the library, which I believe you do not have"
 
6897
                    echo "*** because a test_compile did reveal that the linker did not use it for"
 
6898
                    echo "*** its dynamic dependency list that programs get resolved with at runtime."
6571
6899
                  fi
6572
6900
                fi
6573
6901
                ;;
6604
6932
                      newdeplibs="$newdeplibs $i"
6605
6933
                    else
6606
6934
                      droppeddeps=yes
6607
 
                      $ECHO
 
6935
                      echo
6608
6936
                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6609
 
                      $ECHO "*** I have the capability to make that library automatically link in when"
6610
 
                      $ECHO "*** you link to this library.  But I can only do this if you have a"
6611
 
                      $ECHO "*** shared version of the library, which you do not appear to have"
6612
 
                      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
6613
 
                      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
 
6937
                      echo "*** I have the capability to make that library automatically link in when"
 
6938
                      echo "*** you link to this library.  But I can only do this if you have a"
 
6939
                      echo "*** shared version of the library, which you do not appear to have"
 
6940
                      echo "*** because a test_compile did reveal that the linker did not use this one"
 
6941
                      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
6614
6942
                    fi
6615
6943
                  fi
6616
6944
                else
6617
6945
                  droppeddeps=yes
6618
 
                  $ECHO
 
6946
                  echo
6619
6947
                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
6620
 
                  $ECHO "*** make it link in!  You will probably need to install it or some"
6621
 
                  $ECHO "*** library that it depends on before this library will be fully"
6622
 
                  $ECHO "*** functional.  Installing it before continuing would be even better."
 
6948
                  echo "*** make it link in!  You will probably need to install it or some"
 
6949
                  echo "*** library that it depends on before this library will be fully"
 
6950
                  echo "*** functional.  Installing it before continuing would be even better."
6623
6951
                fi
6624
6952
                ;;
6625
6953
              *)
6665
6993
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
6666
6994
                        case $potliblink in
6667
6995
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6668
 
                        *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 
6996
                        *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
6669
6997
                        esac
6670
6998
                      done
6671
6999
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
6680
7008
              fi
6681
7009
              if test -n "$a_deplib" ; then
6682
7010
                droppeddeps=yes
6683
 
                $ECHO
 
7011
                echo
6684
7012
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
6685
 
                $ECHO "*** I have the capability to make that library automatically link in when"
6686
 
                $ECHO "*** you link to this library.  But I can only do this if you have a"
6687
 
                $ECHO "*** shared version of the library, which you do not appear to have"
6688
 
                $ECHO "*** because I did check the linker path looking for a file starting"
 
7013
                echo "*** I have the capability to make that library automatically link in when"
 
7014
                echo "*** you link to this library.  But I can only do this if you have a"
 
7015
                echo "*** shared version of the library, which you do not appear to have"
 
7016
                echo "*** because I did check the linker path looking for a file starting"
6689
7017
                if test -z "$potlib" ; then
6690
7018
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
6691
7019
                else
6723
7051
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
6724
7052
                  for potent_lib in $potential_libs; do
6725
7053
                    potlib="$potent_lib" # see symlink-check above in file_magic test
6726
 
                    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
 
7054
                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
6727
7055
                       $EGREP "$match_pattern_regex" > /dev/null; then
6728
7056
                      newdeplibs="$newdeplibs $a_deplib"
6729
7057
                      a_deplib=""
6734
7062
              fi
6735
7063
              if test -n "$a_deplib" ; then
6736
7064
                droppeddeps=yes
6737
 
                $ECHO
 
7065
                echo
6738
7066
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
6739
 
                $ECHO "*** I have the capability to make that library automatically link in when"
6740
 
                $ECHO "*** you link to this library.  But I can only do this if you have a"
6741
 
                $ECHO "*** shared version of the library, which you do not appear to have"
6742
 
                $ECHO "*** because I did check the linker path looking for a file starting"
 
7067
                echo "*** I have the capability to make that library automatically link in when"
 
7068
                echo "*** you link to this library.  But I can only do this if you have a"
 
7069
                echo "*** shared version of the library, which you do not appear to have"
 
7070
                echo "*** because I did check the linker path looking for a file starting"
6743
7071
                if test -z "$potlib" ; then
6744
7072
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
6745
7073
                else
6757
7085
          ;;
6758
7086
        none | unknown | *)
6759
7087
          newdeplibs=""
6760
 
          tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
6761
 
              -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
 
7088
          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
6762
7089
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6763
7090
            for i in $predeps $postdeps ; do
6764
7091
              # can't use Xsed below, because $i might contain '/'
6765
 
              tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
 
7092
              tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
6766
7093
            done
6767
7094
          fi
6768
 
          if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
6769
 
             $GREP . >/dev/null; then
6770
 
            $ECHO
 
7095
          case $tmp_deplibs in
 
7096
          *[!\  \ ]*)
 
7097
            echo
6771
7098
            if test "X$deplibs_check_method" = "Xnone"; then
6772
 
              $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
 
7099
              echo "*** Warning: inter-library dependencies are not supported in this platform."
6773
7100
            else
6774
 
              $ECHO "*** Warning: inter-library dependencies are not known to be supported."
 
7101
              echo "*** Warning: inter-library dependencies are not known to be supported."
6775
7102
            fi
6776
 
            $ECHO "*** All declared inter-library dependencies are being dropped."
 
7103
            echo "*** All declared inter-library dependencies are being dropped."
6777
7104
            droppeddeps=yes
6778
 
          fi
 
7105
            ;;
 
7106
          esac
6779
7107
          ;;
6780
7108
        esac
6781
7109
        versuffix=$versuffix_save
6787
7115
        case $host in
6788
7116
        *-*-rhapsody* | *-*-darwin1.[012])
6789
7117
          # On Rhapsody replace the C library with the System framework
6790
 
          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 
7118
          newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
6791
7119
          ;;
6792
7120
        esac
6793
7121
 
6794
7122
        if test "$droppeddeps" = yes; then
6795
7123
          if test "$module" = yes; then
6796
 
            $ECHO
6797
 
            $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
 
7124
            echo
 
7125
            echo "*** Warning: libtool could not satisfy all declared inter-library"
6798
7126
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
6799
 
            $ECHO "*** a static module, that should work as long as the dlopening"
6800
 
            $ECHO "*** application is linked with the -dlopen flag."
 
7127
            echo "*** a static module, that should work as long as the dlopening"
 
7128
            echo "*** application is linked with the -dlopen flag."
6801
7129
            if test -z "$global_symbol_pipe"; then
6802
 
              $ECHO
6803
 
              $ECHO "*** However, this would only work if libtool was able to extract symbol"
6804
 
              $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6805
 
              $ECHO "*** not find such a program.  So, this module is probably useless."
6806
 
              $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
 
7130
              echo
 
7131
              echo "*** However, this would only work if libtool was able to extract symbol"
 
7132
              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
7133
              echo "*** not find such a program.  So, this module is probably useless."
 
7134
              echo "*** \`nm' from GNU binutils and a full rebuild may help."
6807
7135
            fi
6808
7136
            if test "$build_old_libs" = no; then
6809
7137
              oldlibs="$output_objdir/$libname.$libext"
6813
7141
              build_libtool_libs=no
6814
7142
            fi
6815
7143
          else
6816
 
            $ECHO "*** The inter-library dependencies that have been dropped here will be"
6817
 
            $ECHO "*** automatically added whenever a program is linked with this library"
6818
 
            $ECHO "*** or is declared to -dlopen it."
 
7144
            echo "*** The inter-library dependencies that have been dropped here will be"
 
7145
            echo "*** automatically added whenever a program is linked with this library"
 
7146
            echo "*** or is declared to -dlopen it."
6819
7147
 
6820
7148
            if test "$allow_undefined" = no; then
6821
 
              $ECHO
6822
 
              $ECHO "*** Since this library must not contain undefined symbols,"
6823
 
              $ECHO "*** because either the platform does not support them or"
6824
 
              $ECHO "*** it was explicitly requested with -no-undefined,"
6825
 
              $ECHO "*** libtool will only create a static version of it."
 
7149
              echo
 
7150
              echo "*** Since this library must not contain undefined symbols,"
 
7151
              echo "*** because either the platform does not support them or"
 
7152
              echo "*** it was explicitly requested with -no-undefined,"
 
7153
              echo "*** libtool will only create a static version of it."
6826
7154
              if test "$build_old_libs" = no; then
6827
7155
                oldlibs="$output_objdir/$libname.$libext"
6828
7156
                build_libtool_libs=module
6839
7167
      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
6840
7168
      case $host in
6841
7169
        *-*-darwin*)
6842
 
          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6843
 
          new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6844
 
          deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7170
          newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7171
          new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7172
          deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6845
7173
          ;;
6846
7174
      esac
6847
7175
 
6963
7291
        done
6964
7292
 
6965
7293
        # Use standard objects if they are pic
6966
 
        test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
7294
        test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
6967
7295
        test "X$libobjs" = "X " && libobjs=
6968
7296
 
6969
7297
        delfiles=
7029
7357
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
7030
7358
          tmp_export_symbols="$export_symbols"
7031
7359
          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7032
 
          $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 
7360
          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7033
7361
        fi
7034
7362
 
7035
7363
        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7130
7458
            save_libobjs=$libobjs
7131
7459
          fi
7132
7460
          save_output=$output
7133
 
          output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 
7461
          func_basename "$output"
 
7462
          output_la=$func_basename_result
7134
7463
 
7135
7464
          # Clear the reloadable object creation command queue and
7136
7465
          # initialize k to one.
7143
7472
          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7144
7473
            output=${output_objdir}/${output_la}.lnkscript
7145
7474
            func_verbose "creating GNU ld script: $output"
7146
 
            $ECHO 'INPUT (' > $output
 
7475
            echo 'INPUT (' > $output
7147
7476
            for obj in $save_libobjs
7148
7477
            do
7149
7478
              $ECHO "$obj" >> $output
7150
7479
            done
7151
 
            $ECHO ')' >> $output
 
7480
            echo ')' >> $output
7152
7481
            delfiles="$delfiles $output"
7153
7482
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7154
7483
            output=${output_objdir}/${output_la}.lnk
7190
7519
                  # command to the queue.
7191
7520
                  if test "$k" -eq 1 ; then
7192
7521
                    # The first file doesn't have a previous command to add.
7193
 
                    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 
7522
                    reload_objs=$objlist
 
7523
                    eval concat_cmds=\"$reload_cmds\"
7194
7524
                  else
7195
7525
                    # All subsequent reloadable object files will link in
7196
7526
                    # the last one created.
7197
 
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
 
7527
                    reload_objs="$objlist $last_robj"
 
7528
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
7198
7529
                  fi
7199
7530
                  last_robj=$output_objdir/$output_la-${k}.$objext
7200
7531
                  func_arith $k + 1
7201
7532
                  k=$func_arith_result
7202
7533
                  output=$output_objdir/$output_la-${k}.$objext
7203
 
                  objlist=$obj
 
7534
                  objlist=" $obj"
7204
7535
                  func_len " $last_robj"
7205
7536
                  func_arith $len0 + $func_len_result
7206
7537
                  len=$func_arith_result
7210
7541
              # reloadable object file.  All subsequent reloadable object
7211
7542
              # files will link in the last one created.
7212
7543
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7213
 
              eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 
7544
              reload_objs="$objlist $last_robj"
 
7545
              eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
7214
7546
              if test -n "$last_robj"; then
7215
7547
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7216
7548
              fi
7269
7601
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
7270
7602
              tmp_export_symbols="$export_symbols"
7271
7603
              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7272
 
              $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
 
7604
              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7273
7605
            fi
7274
7606
 
7275
7607
            if test -n "$orig_export_symbols"; then
7434
7766
      if test -n "$convenience"; then
7435
7767
        if test -n "$whole_archive_flag_spec"; then
7436
7768
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7437
 
          reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 
7769
          reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
7438
7770
        else
7439
7771
          gentop="$output_objdir/${obj}x"
7440
7772
          generated="$generated $gentop"
7445
7777
      fi
7446
7778
 
7447
7779
      # Create the old-style object.
7448
 
      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
7780
      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
7449
7781
 
7450
7782
      output="$obj"
7451
7783
      func_execute_cmds "$reload_cmds" 'exit $?'
7505
7837
      case $host in
7506
7838
      *-*-rhapsody* | *-*-darwin1.[012])
7507
7839
        # On Rhapsody replace the C library is the System framework
7508
 
        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7509
 
        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
 
7840
        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
 
7841
        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
7510
7842
        ;;
7511
7843
      esac
7512
7844
 
7523
7855
          esac
7524
7856
        fi
7525
7857
        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7526
 
        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7527
 
        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7858
        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 
7859
        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7528
7860
        ;;
7529
7861
      esac
7530
7862
 
7661
7993
 
7662
7994
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
7663
7995
        # Transform all the library objects into standard objects.
7664
 
        compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7665
 
        finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
7996
        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
 
7997
        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7666
7998
      fi
7667
7999
 
7668
8000
      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
7674
8006
 
7675
8007
      wrappers_required=yes
7676
8008
      case $host in
 
8009
      *cegcc* | *mingw32ce*)
 
8010
        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
 
8011
        wrappers_required=no
 
8012
        ;;
7677
8013
      *cygwin* | *mingw* )
7678
8014
        if test "$build_libtool_libs" != yes; then
7679
8015
          wrappers_required=no
7680
8016
        fi
7681
8017
        ;;
7682
 
      *cegcc)
7683
 
        # Disable wrappers for cegcc, we are cross compiling anyway.
7684
 
        wrappers_required=no
7685
 
        ;;
7686
8018
      *)
7687
8019
        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
7688
8020
          wrappers_required=no
7691
8023
      esac
7692
8024
      if test "$wrappers_required" = no; then
7693
8025
        # Replace the output file specification.
7694
 
        compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
8026
        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7695
8027
        link_command="$compile_command$compile_rpath"
7696
8028
 
7697
8029
        # We have no uninstalled library dependencies, so finalize right now.
7738
8070
        # We don't need to create a wrapper script.
7739
8071
        link_command="$compile_var$compile_command$compile_rpath"
7740
8072
        # Replace the output file specification.
7741
 
        link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
8073
        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7742
8074
        # Delete the old output file.
7743
8075
        $opt_dry_run || $RM $output
7744
8076
        # Link the executable and exit
7757
8089
        if test "$fast_install" != no; then
7758
8090
          link_command="$finalize_var$compile_command$finalize_rpath"
7759
8091
          if test "$fast_install" = yes; then
7760
 
            relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
 
8092
            relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
7761
8093
          else
7762
8094
            # fast_install is set to needless
7763
8095
            relink_command=
7769
8101
      fi
7770
8102
 
7771
8103
      # Replace the output file specification.
7772
 
      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
8104
      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
7773
8105
 
7774
8106
      # Delete the old output files.
7775
8107
      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
7793
8125
          fi
7794
8126
        done
7795
8127
        relink_command="(cd `pwd`; $relink_command)"
7796
 
        relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
7797
 
      fi
7798
 
 
7799
 
      # Quote $ECHO for shipping.
7800
 
      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
7801
 
        case $progpath in
7802
 
        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
7803
 
        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
7804
 
        esac
7805
 
        qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
7806
 
      else
7807
 
        qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
 
8128
        relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
7808
8129
      fi
7809
8130
 
7810
8131
      # Only actually do things if not in dry run mode.
7925
8246
            done | sort | sort -uc >/dev/null 2>&1); then
7926
8247
          :
7927
8248
        else
7928
 
          $ECHO "copying selected object files to avoid basename conflicts..."
 
8249
          echo "copying selected object files to avoid basename conflicts..."
7929
8250
          gentop="$output_objdir/${outputname}x"
7930
8251
          generated="$generated $gentop"
7931
8252
          func_mkdir_p "$gentop"
8036
8357
      done
8037
8358
      # Quote the link command for shipping.
8038
8359
      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8039
 
      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 
8360
      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8040
8361
      if test "$hardcode_automatic" = yes ; then
8041
8362
        relink_command=
8042
8363
      fi
8121
8442
          fi
8122
8443
          $RM $output
8123
8444
          # place dlname in correct position for cygwin
 
8445
          # In fact, it would be nice if we could use this code for all target
 
8446
          # systems that can't hard-code library paths into their executables
 
8447
          # and that have no shared library path variable independent of PATH,
 
8448
          # but it turns out we can't easily determine that from inspecting
 
8449
          # libtool variables, so we have to hard-code the OSs to which it
 
8450
          # applies here; at the moment, that means platforms that use the PE
 
8451
          # object format with DLL files.  See the long comment at the top of
 
8452
          # tests/bindir.at for full details.
8124
8453
          tdlname=$dlname
8125
8454
          case $host,$output,$installed,$module,$dlname in
8126
 
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 
8455
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
 
8456
              # If a -bindir argument was supplied, place the dll there.
 
8457
              if test "x$bindir" != x ;
 
8458
              then
 
8459
                func_relative_path "$install_libdir" "$bindir"
 
8460
                tdlname=$func_relative_path_result$dlname
 
8461
              else
 
8462
                # Otherwise fall back on heuristic.
 
8463
                tdlname=../bin/$dlname
 
8464
              fi
 
8465
              ;;
8127
8466
          esac
8128
8467
          $ECHO > $output "\
8129
8468
# $outputname - a libtool library file