~x3lectric/xbmc/svn-trunk

« back to all changes in this revision

Viewing changes to lib/liblame/ltmain.sh

  • Committer: wiso
  • Date: 2010-05-07 16:57:13 UTC
  • Revision ID: svn-v4:568bbfeb-2a22-0410-94d2-cc84cf5bfa90:trunk:29897
copy lame-3.98.4 to trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# ltmain.sh - Provide generalized library-building support services.
 
2
# NOTE: Changing this file will not affect anything until you rerun configure.
 
3
#
 
4
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
 
5
# 2007  Free Software Foundation, Inc.
 
6
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
7
#
 
8
# This program is free software; you can redistribute it and/or modify
 
9
# it under the terms of the GNU General Public License as published by
 
10
# the Free Software Foundation; either version 2 of the License, or
 
11
# (at your option) any later version.
 
12
#
 
13
# This program is distributed in the hope that it will be useful, but
 
14
# WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
16
# General Public License for more details.
 
17
#
 
18
# You should have received a copy of the GNU General Public License
 
19
# along with this program; if not, write to the Free Software
 
20
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
21
#
 
22
# As a special exception to the GNU General Public License, if you
 
23
# distribute this file as part of a program that contains a
 
24
# configuration script generated by Autoconf, you may include it under
 
25
# the same distribution terms that you use for the rest of that program.
 
26
 
 
27
basename="s,^.*/,,g"
 
28
 
 
29
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 
30
# is ksh but when the shell is invoked as "sh" and the current value of
 
31
# the _XPG environment variable is not equal to 1 (one), the special
 
32
# positional parameter $0, within a function call, is the name of the
 
33
# function.
 
34
progpath="$0"
 
35
 
 
36
# The name of this program:
 
37
progname=`echo "$progpath" | $SED $basename`
 
38
modename="$progname"
 
39
 
 
40
# Global variables:
 
41
EXIT_SUCCESS=0
 
42
EXIT_FAILURE=1
 
43
 
 
44
PROGRAM=ltmain.sh
 
45
PACKAGE=libtool
 
46
VERSION=1.5.24
 
47
TIMESTAMP=" (1.1220.2.455 2007/06/24 02:13:29)"
 
48
 
 
49
# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
 
50
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 
51
  emulate sh
 
52
  NULLCMD=:
 
53
  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
 
54
  # is contrary to our usage.  Disable this feature.
 
55
  alias -g '${1+"$@"}'='"$@"'
 
56
  setopt NO_GLOB_SUBST
 
57
else
 
58
  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 
59
fi
 
60
BIN_SH=xpg4; export BIN_SH # for Tru64
 
61
DUALCASE=1; export DUALCASE # for MKS sh
 
62
 
 
63
# Check that we have a working $echo.
 
64
if test "X$1" = X--no-reexec; then
 
65
  # Discard the --no-reexec flag, and continue.
 
66
  shift
 
67
elif test "X$1" = X--fallback-echo; then
 
68
  # Avoid inline document here, it may be left over
 
69
  :
 
70
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
 
71
  # Yippee, $echo works!
 
72
  :
 
73
else
 
74
  # Restart under the correct shell, and then maybe $echo will work.
 
75
  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 
76
fi
 
77
 
 
78
if test "X$1" = X--fallback-echo; then
 
79
  # used as fallback echo
 
80
  shift
 
81
  cat <<EOF
 
82
$*
 
83
EOF
 
84
  exit $EXIT_SUCCESS
 
85
fi
 
86
 
 
87
default_mode=
 
88
help="Try \`$progname --help' for more information."
 
89
magic="%%%MAGIC variable%%%"
 
90
mkdir="mkdir"
 
91
mv="mv -f"
 
92
rm="rm -f"
 
93
 
 
94
# Sed substitution that helps us do robust quoting.  It backslashifies
 
95
# metacharacters that are still active within double-quoted strings.
 
96
Xsed="${SED}"' -e 1s/^X//'
 
97
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
 
98
# test EBCDIC or ASCII
 
99
case `echo X|tr X '\101'` in
 
100
 A) # ASCII based system
 
101
    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
 
102
  SP2NL='tr \040 \012'
 
103
  NL2SP='tr \015\012 \040\040'
 
104
  ;;
 
105
 *) # EBCDIC based system
 
106
  SP2NL='tr \100 \n'
 
107
  NL2SP='tr \r\n \100\100'
 
108
  ;;
 
109
esac
 
110
 
 
111
# NLS nuisances.
 
112
# Only set LANG and LC_ALL to C if already set.
 
113
# These must not be set unconditionally because not all systems understand
 
114
# e.g. LANG=C (notably SCO).
 
115
# We save the old values to restore during execute mode.
 
116
for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 
117
do
 
118
  eval "if test \"\${$lt_var+set}\" = set; then
 
119
          save_$lt_var=\$$lt_var
 
120
          $lt_var=C
 
121
          export $lt_var
 
122
        fi"
 
123
done
 
124
 
 
125
# Make sure IFS has a sensible default
 
126
lt_nl='
 
127
'
 
128
IFS="   $lt_nl"
 
129
 
 
130
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 
131
  $echo "$modename: not configured to build any kind of library" 1>&2
 
132
  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
 
133
  exit $EXIT_FAILURE
 
134
fi
 
135
 
 
136
# Global variables.
 
137
mode=$default_mode
 
138
nonopt=
 
139
prev=
 
140
prevopt=
 
141
run=
 
142
show="$echo"
 
143
show_help=
 
144
execute_dlfiles=
 
145
duplicate_deps=no
 
146
preserve_args=
 
147
lo2o="s/\\.lo\$/.${objext}/"
 
148
o2lo="s/\\.${objext}\$/.lo/"
 
149
extracted_archives=
 
150
extracted_serial=0
 
151
 
 
152
#####################################
 
153
# Shell function definitions:
 
154
# This seems to be the best place for them
 
155
 
 
156
# func_mktempdir [string]
 
157
# Make a temporary directory that won't clash with other running
 
158
# libtool processes, and avoids race conditions if possible.  If
 
159
# given, STRING is the basename for that directory.
 
160
func_mktempdir ()
 
161
{
 
162
    my_template="${TMPDIR-/tmp}/${1-$progname}"
 
163
 
 
164
    if test "$run" = ":"; then
 
165
      # Return a directory name, but don't create it in dry-run mode
 
166
      my_tmpdir="${my_template}-$$"
 
167
    else
 
168
 
 
169
      # If mktemp works, use that first and foremost
 
170
      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
 
171
 
 
172
      if test ! -d "$my_tmpdir"; then
 
173
        # Failing that, at least try and use $RANDOM to avoid a race
 
174
        my_tmpdir="${my_template}-${RANDOM-0}$$"
 
175
 
 
176
        save_mktempdir_umask=`umask`
 
177
        umask 0077
 
178
        $mkdir "$my_tmpdir"
 
179
        umask $save_mktempdir_umask
 
180
      fi
 
181
 
 
182
      # If we're not in dry-run mode, bomb out on failure
 
183
      test -d "$my_tmpdir" || {
 
184
        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
 
185
        exit $EXIT_FAILURE
 
186
      }
 
187
    fi
 
188
 
 
189
    $echo "X$my_tmpdir" | $Xsed
 
190
}
 
191
 
 
192
 
 
193
# func_win32_libid arg
 
194
# return the library type of file 'arg'
 
195
#
 
196
# Need a lot of goo to handle *both* DLLs and import libs
 
197
# Has to be a shell function in order to 'eat' the argument
 
198
# that is supplied when $file_magic_command is called.
 
199
func_win32_libid ()
 
200
{
 
201
  win32_libid_type="unknown"
 
202
  win32_fileres=`file -L $1 2>/dev/null`
 
203
  case $win32_fileres in
 
204
  *ar\ archive\ import\ library*) # definitely import
 
205
    win32_libid_type="x86 archive import"
 
206
    ;;
 
207
  *ar\ archive*) # could be an import, or static
 
208
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
 
209
      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
 
210
      win32_nmres=`eval $NM -f posix -A $1 | \
 
211
        $SED -n -e '1,100{
 
212
                / I /{
 
213
                        s,.*,import,
 
214
                        p
 
215
                        q
 
216
                        }
 
217
                }'`
 
218
      case $win32_nmres in
 
219
      import*)  win32_libid_type="x86 archive import";;
 
220
      *)        win32_libid_type="x86 archive static";;
 
221
      esac
 
222
    fi
 
223
    ;;
 
224
  *DLL*)
 
225
    win32_libid_type="x86 DLL"
 
226
    ;;
 
227
  *executable*) # but shell scripts are "executable" too...
 
228
    case $win32_fileres in
 
229
    *MS\ Windows\ PE\ Intel*)
 
230
      win32_libid_type="x86 DLL"
 
231
      ;;
 
232
    esac
 
233
    ;;
 
234
  esac
 
235
  $echo $win32_libid_type
 
236
}
 
237
 
 
238
 
 
239
# func_infer_tag arg
 
240
# Infer tagged configuration to use if any are available and
 
241
# if one wasn't chosen via the "--tag" command line option.
 
242
# Only attempt this if the compiler in the base compile
 
243
# command doesn't match the default compiler.
 
244
# arg is usually of the form 'gcc ...'
 
245
func_infer_tag ()
 
246
{
 
247
    # FreeBSD-specific: where we install compilers with non-standard names
 
248
    tag_compilers_CC="*cc cc* *gcc gcc*"
 
249
    tag_compilers_CXX="*c++ c++* *g++ g++*"
 
250
    base_compiler=`set -- "$@"; echo $1`
 
251
 
 
252
    # If $tagname isn't set, then try to infer if the default "CC" tag applies
 
253
    if test -z "$tagname"; then
 
254
      for zp in $tag_compilers_CC; do
 
255
        case $base_compiler in
 
256
         $zp) tagname="CC"; break;;
 
257
        esac
 
258
      done
 
259
    fi
 
260
 
 
261
    if test -n "$available_tags" && test -z "$tagname"; then
 
262
      CC_quoted=
 
263
      for arg in $CC; do
 
264
        case $arg in
 
265
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
 
266
          arg="\"$arg\""
 
267
          ;;
 
268
        esac
 
269
        CC_quoted="$CC_quoted $arg"
 
270
      done
 
271
      case $@ in
 
272
      # Blanks in the command may have been stripped by the calling shell,
 
273
      # but not from the CC environment variable when configure was run.
 
274
      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
 
275
      # Blanks at the start of $base_compile will cause this to fail
 
276
      # if we don't check for them as well.
 
277
      *)
 
278
        for z in $available_tags; do
 
279
          if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 
280
            # Evaluate the configuration.
 
281
            eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 
282
            CC_quoted=
 
283
            for arg in $CC; do
 
284
            # Double-quote args containing other shell metacharacters.
 
285
            case $arg in
 
286
              *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
287
              arg="\"$arg\""
 
288
              ;;
 
289
            esac
 
290
            CC_quoted="$CC_quoted $arg"
 
291
          done
 
292
            case "$@ " in
 
293
              " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
 
294
              # The compiler in the base compile command matches
 
295
              # the one in the tagged configuration.
 
296
              # Assume this is the tagged configuration we want.
 
297
              tagname=$z
 
298
              break
 
299
              ;;
 
300
            esac
 
301
 
 
302
            # FreeBSD-specific: try compilers based on inferred tag
 
303
            if test -z "$tagname"; then
 
304
              eval "tag_compilers=\$tag_compilers_${z}"
 
305
              if test -n "$tag_compilers"; then
 
306
                for zp in $tag_compilers; do
 
307
                  case $base_compiler in   
 
308
                    $zp) tagname=$z; break;;
 
309
                  esac
 
310
                done
 
311
                if test -n "$tagname"; then
 
312
                  break
 
313
                fi
 
314
              fi
 
315
            fi
 
316
          fi
 
317
        done
 
318
        # If $tagname still isn't set, then no tagged configuration
 
319
        # was found and let the user know that the "--tag" command
 
320
        # line option must be used.
 
321
        if test -z "$tagname"; then
 
322
          $echo "$modename: unable to infer tagged configuration"
 
323
          $echo "$modename: specify a tag with \`--tag'" 1>&2
 
324
          exit $EXIT_FAILURE
 
325
#        else
 
326
#          $echo "$modename: using $tagname tagged configuration"
 
327
        fi
 
328
        ;;
 
329
      esac
 
330
    fi
 
331
}
 
332
 
 
333
 
 
334
# func_extract_an_archive dir oldlib
 
335
func_extract_an_archive ()
 
336
{
 
337
    f_ex_an_ar_dir="$1"; shift
 
338
    f_ex_an_ar_oldlib="$1"
 
339
 
 
340
    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
 
341
    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
 
342
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 
343
     :
 
344
    else
 
345
      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
 
346
      exit $EXIT_FAILURE
 
347
    fi
 
348
}
 
349
 
 
350
# func_extract_archives gentop oldlib ...
 
351
func_extract_archives ()
 
352
{
 
353
    my_gentop="$1"; shift
 
354
    my_oldlibs=${1+"$@"}
 
355
    my_oldobjs=""
 
356
    my_xlib=""
 
357
    my_xabs=""
 
358
    my_xdir=""
 
359
    my_status=""
 
360
 
 
361
    $show "${rm}r $my_gentop"
 
362
    $run ${rm}r "$my_gentop"
 
363
    $show "$mkdir $my_gentop"
 
364
    $run $mkdir "$my_gentop"
 
365
    my_status=$?
 
366
    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
 
367
      exit $my_status
 
368
    fi
 
369
 
 
370
    for my_xlib in $my_oldlibs; do
 
371
      # Extract the objects.
 
372
      case $my_xlib in
 
373
        [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
 
374
        *) my_xabs=`pwd`"/$my_xlib" ;;
 
375
      esac
 
376
      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
 
377
      my_xlib_u=$my_xlib
 
378
      while :; do
 
379
        case " $extracted_archives " in
 
380
        *" $my_xlib_u "*)
 
381
          extracted_serial=`expr $extracted_serial + 1`
 
382
          my_xlib_u=lt$extracted_serial-$my_xlib ;;
 
383
        *) break ;;
 
384
        esac
 
385
      done
 
386
      extracted_archives="$extracted_archives $my_xlib_u"
 
387
      my_xdir="$my_gentop/$my_xlib_u"
 
388
 
 
389
      $show "${rm}r $my_xdir"
 
390
      $run ${rm}r "$my_xdir"
 
391
      $show "$mkdir $my_xdir"
 
392
      $run $mkdir "$my_xdir"
 
393
      exit_status=$?
 
394
      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
 
395
        exit $exit_status
 
396
      fi
 
397
      case $host in
 
398
      *-darwin*)
 
399
        $show "Extracting $my_xabs"
 
400
        # Do not bother doing anything if just a dry run
 
401
        if test -z "$run"; then
 
402
          darwin_orig_dir=`pwd`
 
403
          cd $my_xdir || exit $?
 
404
          darwin_archive=$my_xabs
 
405
          darwin_curdir=`pwd`
 
406
          darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
 
407
          darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
 
408
          if test -n "$darwin_arches"; then 
 
409
            darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
 
410
            darwin_arch=
 
411
            $show "$darwin_base_archive has multiple architectures $darwin_arches"
 
412
            for darwin_arch in  $darwin_arches ; do
 
413
              mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 
414
              lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
 
415
              cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 
416
              func_extract_an_archive "`pwd`" "${darwin_base_archive}"
 
417
              cd "$darwin_curdir"
 
418
              $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
 
419
            done # $darwin_arches
 
420
      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
 
421
            darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
 
422
            darwin_file=
 
423
            darwin_files=
 
424
            for darwin_file in $darwin_filelist; do
 
425
              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 
426
              lipo -create -output "$darwin_file" $darwin_files
 
427
            done # $darwin_filelist
 
428
            ${rm}r unfat-$$
 
429
            cd "$darwin_orig_dir"
 
430
          else
 
431
            cd "$darwin_orig_dir"
 
432
            func_extract_an_archive "$my_xdir" "$my_xabs"
 
433
          fi # $darwin_arches
 
434
        fi # $run
 
435
        ;;
 
436
      *)
 
437
        func_extract_an_archive "$my_xdir" "$my_xabs"
 
438
        ;;
 
439
      esac
 
440
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 
441
    done
 
442
    func_extract_archives_result="$my_oldobjs"
 
443
}
 
444
# End of Shell function definitions
 
445
#####################################
 
446
 
 
447
# Darwin sucks
 
448
eval std_shrext=\"$shrext_cmds\"
 
449
 
 
450
disable_libs=no
 
451
 
 
452
# Parse our command line options once, thoroughly.
 
453
while test "$#" -gt 0
 
454
do
 
455
  arg="$1"
 
456
  shift
 
457
 
 
458
  case $arg in
 
459
  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
 
460
  *) optarg= ;;
 
461
  esac
 
462
 
 
463
  # If the previous option needs an argument, assign it.
 
464
  if test -n "$prev"; then
 
465
    case $prev in
 
466
    execute_dlfiles)
 
467
      execute_dlfiles="$execute_dlfiles $arg"
 
468
      ;;
 
469
    tag)
 
470
      tagname="$arg"
 
471
      preserve_args="${preserve_args}=$arg"
 
472
 
 
473
      # Check whether tagname contains only valid characters
 
474
      case $tagname in
 
475
      *[!-_A-Za-z0-9,/]*)
 
476
        $echo "$progname: invalid tag name: $tagname" 1>&2
 
477
        exit $EXIT_FAILURE
 
478
        ;;
 
479
      esac
 
480
 
 
481
      case $tagname in
 
482
      CC)
 
483
        # Don't test for the "default" C tag, as we know, it's there, but
 
484
        # not specially marked.
 
485
        ;;
 
486
      *)
 
487
        if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
 
488
          taglist="$taglist $tagname"
 
489
          # Evaluate the configuration.
 
490
          eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
 
491
        else
 
492
          $echo "$progname: ignoring unknown tag $tagname" 1>&2
 
493
        fi
 
494
        ;;
 
495
      esac
 
496
      ;;
 
497
    *)
 
498
      eval "$prev=\$arg"
 
499
      ;;
 
500
    esac
 
501
 
 
502
    prev=
 
503
    prevopt=
 
504
    continue
 
505
  fi
 
506
 
 
507
  # Have we seen a non-optional argument yet?
 
508
  case $arg in
 
509
  --help)
 
510
    show_help=yes
 
511
    ;;
 
512
 
 
513
  --version)
 
514
    echo "\
 
515
$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
 
516
 
 
517
Copyright (C) 2007  Free Software Foundation, Inc.
 
518
This is free software; see the source for copying conditions.  There is NO
 
519
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
520
    exit $?
 
521
    ;;
 
522
 
 
523
  --config)
 
524
    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
 
525
    # Now print the configurations for the tags.
 
526
    for tagname in $taglist; do
 
527
      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
 
528
    done
 
529
    exit $?
 
530
    ;;
 
531
 
 
532
  --debug)
 
533
    $echo "$progname: enabling shell trace mode"
 
534
    set -x
 
535
    preserve_args="$preserve_args $arg"
 
536
    ;;
 
537
 
 
538
  --dry-run | -n)
 
539
    run=:
 
540
    ;;
 
541
 
 
542
  --features)
 
543
    $echo "host: $host"
 
544
    if test "$build_libtool_libs" = yes; then
 
545
      $echo "enable shared libraries"
 
546
    else
 
547
      $echo "disable shared libraries"
 
548
    fi
 
549
    if test "$build_old_libs" = yes; then
 
550
      $echo "enable static libraries"
 
551
    else
 
552
      $echo "disable static libraries"
 
553
    fi
 
554
    exit $?
 
555
    ;;
 
556
 
 
557
  --finish) mode="finish" ;;
 
558
 
 
559
  --mode) prevopt="--mode" prev=mode ;;
 
560
  --mode=*) mode="$optarg" ;;
 
561
 
 
562
  --preserve-dup-deps) duplicate_deps="yes" ;;
 
563
 
 
564
  --quiet | --silent)
 
565
    show=:
 
566
    preserve_args="$preserve_args $arg"
 
567
    ;;
 
568
 
 
569
  --tag)
 
570
    prevopt="--tag"
 
571
    prev=tag
 
572
    preserve_args="$preserve_args --tag"
 
573
    ;;
 
574
  --tag=*)
 
575
    set tag "$optarg" ${1+"$@"}
 
576
    shift
 
577
    prev=tag
 
578
    preserve_args="$preserve_args --tag"
 
579
    ;;
 
580
 
 
581
  -dlopen)
 
582
    prevopt="-dlopen"
 
583
    prev=execute_dlfiles
 
584
    ;;
 
585
 
 
586
  -*)
 
587
    $echo "$modename: unrecognized option \`$arg'" 1>&2
 
588
    $echo "$help" 1>&2
 
589
    exit $EXIT_FAILURE
 
590
    ;;
 
591
 
 
592
  *)
 
593
    nonopt="$arg"
 
594
    break
 
595
    ;;
 
596
  esac
 
597
done
 
598
 
 
599
if test -n "$prevopt"; then
 
600
  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
 
601
  $echo "$help" 1>&2
 
602
  exit $EXIT_FAILURE
 
603
fi
 
604
 
 
605
case $disable_libs in
 
606
no) 
 
607
  ;;
 
608
shared)
 
609
  build_libtool_libs=no
 
610
  build_old_libs=yes
 
611
  ;;
 
612
static)
 
613
  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 
614
  ;;
 
615
esac
 
616
 
 
617
# If this variable is set in any of the actions, the command in it
 
618
# will be execed at the end.  This prevents here-documents from being
 
619
# left over by shells.
 
620
exec_cmd=
 
621
 
 
622
if test -z "$show_help"; then
 
623
 
 
624
  # Infer the operation mode.
 
625
  if test -z "$mode"; then
 
626
    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
 
627
    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
 
628
    case $nonopt in
 
629
    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
 
630
      mode=link
 
631
      for arg
 
632
      do
 
633
        case $arg in
 
634
        -c)
 
635
           mode=compile
 
636
           break
 
637
           ;;
 
638
        esac
 
639
      done
 
640
      ;;
 
641
    *db | *dbx | *strace | *truss)
 
642
      mode=execute
 
643
      ;;
 
644
    *install*|cp|mv)
 
645
      mode=install
 
646
      ;;
 
647
    *rm)
 
648
      mode=uninstall
 
649
      ;;
 
650
    *)
 
651
      # If we have no mode, but dlfiles were specified, then do execute mode.
 
652
      test -n "$execute_dlfiles" && mode=execute
 
653
 
 
654
      # Just use the default operation mode.
 
655
      if test -z "$mode"; then
 
656
        if test -n "$nonopt"; then
 
657
          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
 
658
        else
 
659
          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
 
660
        fi
 
661
      fi
 
662
      ;;
 
663
    esac
 
664
  fi
 
665
 
 
666
  # Only execute mode is allowed to have -dlopen flags.
 
667
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
 
668
    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
 
669
    $echo "$help" 1>&2
 
670
    exit $EXIT_FAILURE
 
671
  fi
 
672
 
 
673
  # Change the help message to a mode-specific one.
 
674
  generic_help="$help"
 
675
  help="Try \`$modename --help --mode=$mode' for more information."
 
676
 
 
677
  # These modes are in order of execution frequency so that they run quickly.
 
678
  case $mode in
 
679
  # libtool compile mode
 
680
  compile)
 
681
    modename="$modename: compile"
 
682
    # Get the compilation command and the source file.
 
683
    base_compile=
 
684
    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
 
685
    suppress_opt=yes
 
686
    suppress_output=
 
687
    arg_mode=normal
 
688
    libobj=
 
689
    later=
 
690
 
 
691
    for arg
 
692
    do
 
693
      case $arg_mode in
 
694
      arg  )
 
695
        # do not "continue".  Instead, add this to base_compile
 
696
        lastarg="$arg"
 
697
        arg_mode=normal
 
698
        ;;
 
699
 
 
700
      target )
 
701
        libobj="$arg"
 
702
        arg_mode=normal
 
703
        continue
 
704
        ;;
 
705
 
 
706
      normal )
 
707
        # Accept any command-line options.
 
708
        case $arg in
 
709
        -o)
 
710
          if test -n "$libobj" ; then
 
711
            $echo "$modename: you cannot specify \`-o' more than once" 1>&2
 
712
            exit $EXIT_FAILURE
 
713
          fi
 
714
          arg_mode=target
 
715
          continue
 
716
          ;;
 
717
 
 
718
        -static | -prefer-pic | -prefer-non-pic)
 
719
          later="$later $arg"
 
720
          continue
 
721
          ;;
 
722
 
 
723
        -no-suppress)
 
724
          suppress_opt=no
 
725
          continue
 
726
          ;;
 
727
 
 
728
        -Xcompiler)
 
729
          arg_mode=arg  #  the next one goes into the "base_compile" arg list
 
730
          continue      #  The current "srcfile" will either be retained or
 
731
          ;;            #  replaced later.  I would guess that would be a bug.
 
732
 
 
733
        -Wc,*)
 
734
          args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
 
735
          lastarg=
 
736
          save_ifs="$IFS"; IFS=','
 
737
          for arg in $args; do
 
738
            IFS="$save_ifs"
 
739
 
 
740
            # Double-quote args containing other shell metacharacters.
 
741
            # Many Bourne shells cannot handle close brackets correctly
 
742
            # in scan sets, so we specify it separately.
 
743
            case $arg in
 
744
              *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
745
              arg="\"$arg\""
 
746
              ;;
 
747
            esac
 
748
            lastarg="$lastarg $arg"
 
749
          done
 
750
          IFS="$save_ifs"
 
751
          lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
 
752
 
 
753
          # Add the arguments to base_compile.
 
754
          base_compile="$base_compile $lastarg"
 
755
          continue
 
756
          ;;
 
757
 
 
758
        * )
 
759
          # Accept the current argument as the source file.
 
760
          # The previous "srcfile" becomes the current argument.
 
761
          #
 
762
          lastarg="$srcfile"
 
763
          srcfile="$arg"
 
764
          ;;
 
765
        esac  #  case $arg
 
766
        ;;
 
767
      esac    #  case $arg_mode
 
768
 
 
769
      # Aesthetically quote the previous argument.
 
770
      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
 
771
 
 
772
      case $lastarg in
 
773
      # Double-quote args containing other shell metacharacters.
 
774
      # Many Bourne shells cannot handle close brackets correctly
 
775
      # in scan sets, and some SunOS ksh mistreat backslash-escaping
 
776
      # in scan sets (worked around with variable expansion),
 
777
      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
 
778
      # at all, so we specify them separately.
 
779
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
780
        lastarg="\"$lastarg\""
 
781
        ;;
 
782
      esac
 
783
 
 
784
      base_compile="$base_compile $lastarg"
 
785
    done # for arg
 
786
 
 
787
    case $arg_mode in
 
788
    arg)
 
789
      $echo "$modename: you must specify an argument for -Xcompile"
 
790
      exit $EXIT_FAILURE
 
791
      ;;
 
792
    target)
 
793
      $echo "$modename: you must specify a target with \`-o'" 1>&2
 
794
      exit $EXIT_FAILURE
 
795
      ;;
 
796
    *)
 
797
      # Get the name of the library object.
 
798
      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
 
799
      ;;
 
800
    esac
 
801
 
 
802
    # Recognize several different file suffixes.
 
803
    # If the user specifies -o file.o, it is replaced with file.lo
 
804
    xform='[cCFSifmso]'
 
805
    case $libobj in
 
806
    *.ada) xform=ada ;;
 
807
    *.adb) xform=adb ;;
 
808
    *.ads) xform=ads ;;
 
809
    *.asm) xform=asm ;;
 
810
    *.c++) xform=c++ ;;
 
811
    *.cc) xform=cc ;;
 
812
    *.ii) xform=ii ;;
 
813
    *.class) xform=class ;;
 
814
    *.cpp) xform=cpp ;;
 
815
    *.cxx) xform=cxx ;;
 
816
    *.[fF][09]?) xform=[fF][09]. ;;
 
817
    *.for) xform=for ;;
 
818
    *.java) xform=java ;;
 
819
    *.obj) xform=obj ;;
 
820
    esac
 
821
 
 
822
    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 
823
 
 
824
    case $libobj in
 
825
    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
 
826
    *)
 
827
      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
 
828
      exit $EXIT_FAILURE
 
829
      ;;
 
830
    esac
 
831
 
 
832
    func_infer_tag $base_compile
 
833
 
 
834
    for arg in $later; do
 
835
      case $arg in
 
836
      -static)
 
837
        build_old_libs=yes
 
838
        continue
 
839
        ;;
 
840
 
 
841
      -prefer-pic)
 
842
        pic_mode=yes
 
843
        continue
 
844
        ;;
 
845
 
 
846
      -prefer-non-pic)
 
847
        pic_mode=no
 
848
        continue
 
849
        ;;
 
850
      esac
 
851
    done
 
852
 
 
853
    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
 
854
    case $qlibobj in
 
855
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
856
        qlibobj="\"$qlibobj\"" ;;
 
857
    esac
 
858
    test "X$libobj" != "X$qlibobj" \
 
859
        && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'  &()|`$[]' \
 
860
        && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
 
861
    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
 
862
    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
 
863
    if test "X$xdir" = "X$obj"; then
 
864
      xdir=
 
865
    else
 
866
      xdir=$xdir/
 
867
    fi
 
868
    lobj=${xdir}$objdir/$objname
 
869
 
 
870
    if test -z "$base_compile"; then
 
871
      $echo "$modename: you must specify a compilation command" 1>&2
 
872
      $echo "$help" 1>&2
 
873
      exit $EXIT_FAILURE
 
874
    fi
 
875
 
 
876
    # Delete any leftover library objects.
 
877
    if test "$build_old_libs" = yes; then
 
878
      removelist="$obj $lobj $libobj ${libobj}T"
 
879
    else
 
880
      removelist="$lobj $libobj ${libobj}T"
 
881
    fi
 
882
 
 
883
    $run $rm $removelist
 
884
    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
 
885
 
 
886
    # On Cygwin there's no "real" PIC flag so we must build both object types
 
887
    case $host_os in
 
888
    cygwin* | mingw* | pw32* | os2*)
 
889
      pic_mode=default
 
890
      ;;
 
891
    esac
 
892
    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
 
893
      # non-PIC code in shared libraries is not supported
 
894
      pic_mode=default
 
895
    fi
 
896
 
 
897
    # Calculate the filename of the output object if compiler does
 
898
    # not support -o with -c
 
899
    if test "$compiler_c_o" = no; then
 
900
      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 
901
      lockfile="$output_obj.lock"
 
902
      removelist="$removelist $output_obj $lockfile"
 
903
      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
 
904
    else
 
905
      output_obj=
 
906
      need_locks=no
 
907
      lockfile=
 
908
    fi
 
909
 
 
910
    # Lock this critical section if it is needed
 
911
    # We use this script file to make the link, it avoids creating a new file
 
912
    if test "$need_locks" = yes; then
 
913
      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
 
914
        $show "Waiting for $lockfile to be removed"
 
915
        sleep 2
 
916
      done
 
917
    elif test "$need_locks" = warn; then
 
918
      if test -f "$lockfile"; then
 
919
        $echo "\
 
920
*** ERROR, $lockfile exists and contains:
 
921
`cat $lockfile 2>/dev/null`
 
922
 
 
923
This indicates that another process is trying to use the same
 
924
temporary object file, and libtool could not work around it because
 
925
your compiler does not support \`-c' and \`-o' together.  If you
 
926
repeat this compilation, it may succeed, by chance, but you had better
 
927
avoid parallel builds (make -j) in this platform, or get a better
 
928
compiler."
 
929
 
 
930
        $run $rm $removelist
 
931
        exit $EXIT_FAILURE
 
932
      fi
 
933
      $echo "$srcfile" > "$lockfile"
 
934
    fi
 
935
 
 
936
    if test -n "$fix_srcfile_path"; then
 
937
      eval srcfile=\"$fix_srcfile_path\"
 
938
    fi
 
939
    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
 
940
    case $qsrcfile in
 
941
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
942
      qsrcfile="\"$qsrcfile\"" ;;
 
943
    esac
 
944
 
 
945
    $run $rm "$libobj" "${libobj}T"
 
946
 
 
947
    # Create a libtool object file (analogous to a ".la" file),
 
948
    # but don't create it if we're doing a dry run.
 
949
    test -z "$run" && cat > ${libobj}T <<EOF
 
950
# $libobj - a libtool object file
 
951
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
952
#
 
953
# Please DO NOT delete this file!
 
954
# It is necessary for linking the library.
 
955
 
 
956
# Name of the PIC object.
 
957
EOF
 
958
 
 
959
    # Only build a PIC object if we are building libtool libraries.
 
960
    if test "$build_libtool_libs" = yes; then
 
961
      # Without this assignment, base_compile gets emptied.
 
962
      fbsd_hideous_sh_bug=$base_compile
 
963
 
 
964
      if test "$pic_mode" != no; then
 
965
        command="$base_compile $qsrcfile $pic_flag"
 
966
      else
 
967
        # Don't build PIC code
 
968
        command="$base_compile $qsrcfile"
 
969
      fi
 
970
 
 
971
      if test ! -d "${xdir}$objdir"; then
 
972
        $show "$mkdir ${xdir}$objdir"
 
973
        $run $mkdir ${xdir}$objdir
 
974
        exit_status=$?
 
975
        if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
 
976
          exit $exit_status
 
977
        fi
 
978
      fi
 
979
 
 
980
      if test -z "$output_obj"; then
 
981
        # Place PIC objects in $objdir
 
982
        command="$command -o $lobj"
 
983
      fi
 
984
 
 
985
      $run $rm "$lobj" "$output_obj"
 
986
 
 
987
      $show "$command"
 
988
      if $run eval "$command"; then :
 
989
      else
 
990
        test -n "$output_obj" && $run $rm $removelist
 
991
        exit $EXIT_FAILURE
 
992
      fi
 
993
 
 
994
      if test "$need_locks" = warn &&
 
995
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 
996
        $echo "\
 
997
*** ERROR, $lockfile contains:
 
998
`cat $lockfile 2>/dev/null`
 
999
 
 
1000
but it should contain:
 
1001
$srcfile
 
1002
 
 
1003
This indicates that another process is trying to use the same
 
1004
temporary object file, and libtool could not work around it because
 
1005
your compiler does not support \`-c' and \`-o' together.  If you
 
1006
repeat this compilation, it may succeed, by chance, but you had better
 
1007
avoid parallel builds (make -j) in this platform, or get a better
 
1008
compiler."
 
1009
 
 
1010
        $run $rm $removelist
 
1011
        exit $EXIT_FAILURE
 
1012
      fi
 
1013
 
 
1014
      # Just move the object if needed, then go on to compile the next one
 
1015
      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
 
1016
        $show "$mv $output_obj $lobj"
 
1017
        if $run $mv $output_obj $lobj; then :
 
1018
        else
 
1019
          error=$?
 
1020
          $run $rm $removelist
 
1021
          exit $error
 
1022
        fi
 
1023
      fi
 
1024
 
 
1025
      # Append the name of the PIC object to the libtool object file.
 
1026
      test -z "$run" && cat >> ${libobj}T <<EOF
 
1027
pic_object='$objdir/$objname'
 
1028
 
 
1029
EOF
 
1030
 
 
1031
      # Allow error messages only from the first compilation.
 
1032
      if test "$suppress_opt" = yes; then
 
1033
        suppress_output=' >/dev/null 2>&1'
 
1034
      fi
 
1035
    else
 
1036
      # No PIC object so indicate it doesn't exist in the libtool
 
1037
      # object file.
 
1038
      test -z "$run" && cat >> ${libobj}T <<EOF
 
1039
pic_object=none
 
1040
 
 
1041
EOF
 
1042
    fi
 
1043
 
 
1044
    # Only build a position-dependent object if we build old libraries.
 
1045
    if test "$build_old_libs" = yes; then
 
1046
      if test "$pic_mode" != yes; then
 
1047
        # Don't build PIC code
 
1048
        command="$base_compile $qsrcfile"
 
1049
      else
 
1050
        command="$base_compile $qsrcfile $pic_flag"
 
1051
      fi
 
1052
      if test "$compiler_c_o" = yes; then
 
1053
        command="$command -o $obj"
 
1054
      fi
 
1055
 
 
1056
      # Suppress compiler output if we already did a PIC compilation.
 
1057
      command="$command$suppress_output"
 
1058
      $run $rm "$obj" "$output_obj"
 
1059
      $show "$command"
 
1060
      if $run eval "$command"; then :
 
1061
      else
 
1062
        $run $rm $removelist
 
1063
        exit $EXIT_FAILURE
 
1064
      fi
 
1065
 
 
1066
      if test "$need_locks" = warn &&
 
1067
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 
1068
        $echo "\
 
1069
*** ERROR, $lockfile contains:
 
1070
`cat $lockfile 2>/dev/null`
 
1071
 
 
1072
but it should contain:
 
1073
$srcfile
 
1074
 
 
1075
This indicates that another process is trying to use the same
 
1076
temporary object file, and libtool could not work around it because
 
1077
your compiler does not support \`-c' and \`-o' together.  If you
 
1078
repeat this compilation, it may succeed, by chance, but you had better
 
1079
avoid parallel builds (make -j) in this platform, or get a better
 
1080
compiler."
 
1081
 
 
1082
        $run $rm $removelist
 
1083
        exit $EXIT_FAILURE
 
1084
      fi
 
1085
 
 
1086
      # Just move the object if needed
 
1087
      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
 
1088
        $show "$mv $output_obj $obj"
 
1089
        if $run $mv $output_obj $obj; then :
 
1090
        else
 
1091
          error=$?
 
1092
          $run $rm $removelist
 
1093
          exit $error
 
1094
        fi
 
1095
      fi
 
1096
 
 
1097
      # Append the name of the non-PIC object the libtool object file.
 
1098
      # Only append if the libtool object file exists.
 
1099
      test -z "$run" && cat >> ${libobj}T <<EOF
 
1100
# Name of the non-PIC object.
 
1101
non_pic_object='$objname'
 
1102
 
 
1103
EOF
 
1104
    else
 
1105
      # Append the name of the non-PIC object the libtool object file.
 
1106
      # Only append if the libtool object file exists.
 
1107
      test -z "$run" && cat >> ${libobj}T <<EOF
 
1108
# Name of the non-PIC object.
 
1109
non_pic_object=none
 
1110
 
 
1111
EOF
 
1112
    fi
 
1113
 
 
1114
    $run $mv "${libobj}T" "${libobj}"
 
1115
 
 
1116
    # Unlock the critical section if it was locked
 
1117
    if test "$need_locks" != no; then
 
1118
      $run $rm "$lockfile"
 
1119
    fi
 
1120
 
 
1121
    exit $EXIT_SUCCESS
 
1122
    ;;
 
1123
 
 
1124
  # libtool link mode
 
1125
  link | relink)
 
1126
    modename="$modename: link"
 
1127
    case $host in
 
1128
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
1129
      # It is impossible to link a dll without this setting, and
 
1130
      # we shouldn't force the makefile maintainer to figure out
 
1131
      # which system we are compiling for in order to pass an extra
 
1132
      # flag for every libtool invocation.
 
1133
      # allow_undefined=no
 
1134
 
 
1135
      # FIXME: Unfortunately, there are problems with the above when trying
 
1136
      # to make a dll which has undefined symbols, in which case not
 
1137
      # even a static library is built.  For now, we need to specify
 
1138
      # -no-undefined on the libtool link line when we can be certain
 
1139
      # that all symbols are satisfied, otherwise we get a static library.
 
1140
      allow_undefined=yes
 
1141
      ;;
 
1142
    *)
 
1143
      allow_undefined=yes
 
1144
      ;;
 
1145
    esac
 
1146
    libtool_args="$nonopt"
 
1147
    base_compile="$nonopt $@"
 
1148
    compile_command="$nonopt"
 
1149
    finalize_command="$nonopt"
 
1150
 
 
1151
    compile_rpath=
 
1152
    finalize_rpath=
 
1153
    compile_shlibpath=
 
1154
    finalize_shlibpath=
 
1155
    convenience=
 
1156
    old_convenience=
 
1157
    deplibs=
 
1158
    old_deplibs=
 
1159
    compiler_flags=
 
1160
    linker_flags=
 
1161
    dllsearchpath=
 
1162
    lib_search_path=`pwd`
 
1163
    inst_prefix_dir=
 
1164
 
 
1165
    avoid_version=no
 
1166
    dlfiles=
 
1167
    dlprefiles=
 
1168
    dlself=no
 
1169
    export_dynamic=no
 
1170
    export_symbols=
 
1171
    export_symbols_regex=
 
1172
    generated=
 
1173
    libobjs=
 
1174
    ltlibs=
 
1175
    module=no
 
1176
    no_install=no
 
1177
    objs=
 
1178
    non_pic_objects=
 
1179
    notinst_path= # paths that contain not-installed libtool libraries
 
1180
    precious_files_regex=
 
1181
    prefer_static_libs=no
 
1182
    preload=no
 
1183
    prev=
 
1184
    prevarg=
 
1185
    release=
 
1186
    rpath=
 
1187
    xrpath=
 
1188
    perm_rpath=
 
1189
    temp_rpath=
 
1190
    thread_safe=no
 
1191
    vinfo=
 
1192
    vinfo_number=no
 
1193
 
 
1194
    func_infer_tag $base_compile
 
1195
 
 
1196
    # We need to know -static, to get the right output filenames.
 
1197
    for arg
 
1198
    do
 
1199
      case $arg in
 
1200
      -all-static | -static | -static-libtool-libs)
 
1201
        case $arg in
 
1202
        -all-static)
 
1203
          if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 
1204
            $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
 
1205
          fi
 
1206
          if test -n "$link_static_flag"; then
 
1207
            dlopen_self=$dlopen_self_static
 
1208
          fi
 
1209
          prefer_static_libs=yes
 
1210
          ;;
 
1211
        -static)
 
1212
          if test -z "$pic_flag" && test -n "$link_static_flag"; then
 
1213
            dlopen_self=$dlopen_self_static
 
1214
          fi
 
1215
          prefer_static_libs=built
 
1216
          ;;
 
1217
        -static-libtool-libs)
 
1218
          if test -z "$pic_flag" && test -n "$link_static_flag"; then
 
1219
            dlopen_self=$dlopen_self_static
 
1220
          fi
 
1221
          prefer_static_libs=yes
 
1222
          ;;
 
1223
        esac
 
1224
        build_libtool_libs=no
 
1225
        build_old_libs=yes
 
1226
        break
 
1227
        ;;
 
1228
      esac
 
1229
    done
 
1230
 
 
1231
    # See if our shared archives depend on static archives.
 
1232
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 
1233
 
 
1234
    # Go through the arguments, transforming them on the way.
 
1235
    while test "$#" -gt 0; do
 
1236
      arg="$1"
 
1237
      shift
 
1238
      case $arg in
 
1239
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
1240
        qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
 
1241
        ;;
 
1242
      *) qarg=$arg ;;
 
1243
      esac
 
1244
      libtool_args="$libtool_args $qarg"
 
1245
 
 
1246
      # If the previous option needs an argument, assign it.
 
1247
      if test -n "$prev"; then
 
1248
        case $prev in
 
1249
        output)
 
1250
          compile_command="$compile_command @OUTPUT@"
 
1251
          finalize_command="$finalize_command @OUTPUT@"
 
1252
          ;;
 
1253
        esac
 
1254
 
 
1255
        case $prev in
 
1256
        dlfiles|dlprefiles)
 
1257
          if test "$preload" = no; then
 
1258
            # Add the symbol object into the linking commands.
 
1259
            compile_command="$compile_command @SYMFILE@"
 
1260
            finalize_command="$finalize_command @SYMFILE@"
 
1261
            preload=yes
 
1262
          fi
 
1263
          case $arg in
 
1264
          *.la | *.lo) ;;  # We handle these cases below.
 
1265
          force)
 
1266
            if test "$dlself" = no; then
 
1267
              dlself=needless
 
1268
              export_dynamic=yes
 
1269
            fi
 
1270
            prev=
 
1271
            continue
 
1272
            ;;
 
1273
          self)
 
1274
            if test "$prev" = dlprefiles; then
 
1275
              dlself=yes
 
1276
            elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
 
1277
              dlself=yes
 
1278
            else
 
1279
              dlself=needless
 
1280
              export_dynamic=yes
 
1281
            fi
 
1282
            prev=
 
1283
            continue
 
1284
            ;;
 
1285
          *)
 
1286
            if test "$prev" = dlfiles; then
 
1287
              dlfiles="$dlfiles $arg"
 
1288
            else
 
1289
              dlprefiles="$dlprefiles $arg"
 
1290
            fi
 
1291
            prev=
 
1292
            continue
 
1293
            ;;
 
1294
          esac
 
1295
          ;;
 
1296
        expsyms)
 
1297
          export_symbols="$arg"
 
1298
          if test ! -f "$arg"; then
 
1299
            $echo "$modename: symbol file \`$arg' does not exist"
 
1300
            exit $EXIT_FAILURE
 
1301
          fi
 
1302
          prev=
 
1303
          continue
 
1304
          ;;
 
1305
        expsyms_regex)
 
1306
          export_symbols_regex="$arg"
 
1307
          prev=
 
1308
          continue
 
1309
          ;;
 
1310
        inst_prefix)
 
1311
          inst_prefix_dir="$arg"
 
1312
          prev=
 
1313
          continue
 
1314
          ;;
 
1315
        precious_regex)
 
1316
          precious_files_regex="$arg"
 
1317
          prev=
 
1318
          continue
 
1319
          ;;
 
1320
        release)
 
1321
          release="-$arg"
 
1322
          prev=
 
1323
          continue
 
1324
          ;;
 
1325
        objectlist)
 
1326
          if test -f "$arg"; then
 
1327
            save_arg=$arg
 
1328
            moreargs=
 
1329
            for fil in `cat $save_arg`
 
1330
            do
 
1331
#             moreargs="$moreargs $fil"
 
1332
              arg=$fil
 
1333
              # A libtool-controlled object.
 
1334
 
 
1335
              # Check to see that this really is a libtool object.
 
1336
              if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
1337
                pic_object=
 
1338
                non_pic_object=
 
1339
 
 
1340
                # Read the .lo file
 
1341
                # If there is no directory component, then add one.
 
1342
                case $arg in
 
1343
                */* | *\\*) . $arg ;;
 
1344
                *) . ./$arg ;;
 
1345
                esac
 
1346
 
 
1347
                if test -z "$pic_object" || \
 
1348
                   test -z "$non_pic_object" ||
 
1349
                   test "$pic_object" = none && \
 
1350
                   test "$non_pic_object" = none; then
 
1351
                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
 
1352
                  exit $EXIT_FAILURE
 
1353
                fi
 
1354
 
 
1355
                # Extract subdirectory from the argument.
 
1356
                xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1357
                if test "X$xdir" = "X$arg"; then
 
1358
                  xdir=
 
1359
                else
 
1360
                  xdir="$xdir/"
 
1361
                fi
 
1362
 
 
1363
                if test "$pic_object" != none; then
 
1364
                  # Prepend the subdirectory the object is found in.
 
1365
                  pic_object="$xdir$pic_object"
 
1366
 
 
1367
                  if test "$prev" = dlfiles; then
 
1368
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 
1369
                      dlfiles="$dlfiles $pic_object"
 
1370
                      prev=
 
1371
                      continue
 
1372
                    else
 
1373
                      # If libtool objects are unsupported, then we need to preload.
 
1374
                      prev=dlprefiles
 
1375
                    fi
 
1376
                  fi
 
1377
 
 
1378
                  # CHECK ME:  I think I busted this.  -Ossama
 
1379
                  if test "$prev" = dlprefiles; then
 
1380
                    # Preload the old-style object.
 
1381
                    dlprefiles="$dlprefiles $pic_object"
 
1382
                    prev=
 
1383
                  fi
 
1384
 
 
1385
                  # A PIC object.
 
1386
                  libobjs="$libobjs $pic_object"
 
1387
                  arg="$pic_object"
 
1388
                fi
 
1389
 
 
1390
                # Non-PIC object.
 
1391
                if test "$non_pic_object" != none; then
 
1392
                  # Prepend the subdirectory the object is found in.
 
1393
                  non_pic_object="$xdir$non_pic_object"
 
1394
 
 
1395
                  # A standard non-PIC object
 
1396
                  non_pic_objects="$non_pic_objects $non_pic_object"
 
1397
                  if test -z "$pic_object" || test "$pic_object" = none ; then
 
1398
                    arg="$non_pic_object"
 
1399
                  fi
 
1400
                else
 
1401
                  # If the PIC object exists, use it instead.
 
1402
                  # $xdir was prepended to $pic_object above.
 
1403
                  non_pic_object="$pic_object"
 
1404
                  non_pic_objects="$non_pic_objects $non_pic_object"
 
1405
                fi
 
1406
              else
 
1407
                # Only an error if not doing a dry-run.
 
1408
                if test -z "$run"; then
 
1409
                  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
 
1410
                  exit $EXIT_FAILURE
 
1411
                else
 
1412
                  # Dry-run case.
 
1413
 
 
1414
                  # Extract subdirectory from the argument.
 
1415
                  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1416
                  if test "X$xdir" = "X$arg"; then
 
1417
                    xdir=
 
1418
                  else
 
1419
                    xdir="$xdir/"
 
1420
                  fi
 
1421
 
 
1422
                  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
 
1423
                  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
 
1424
                  libobjs="$libobjs $pic_object"
 
1425
                  non_pic_objects="$non_pic_objects $non_pic_object"
 
1426
                fi
 
1427
              fi
 
1428
            done
 
1429
          else
 
1430
            $echo "$modename: link input file \`$save_arg' does not exist"
 
1431
            exit $EXIT_FAILURE
 
1432
          fi
 
1433
          arg=$save_arg
 
1434
          prev=
 
1435
          continue
 
1436
          ;;
 
1437
        rpath | xrpath)
 
1438
          # We need an absolute path.
 
1439
          case $arg in
 
1440
          [\\/]* | [A-Za-z]:[\\/]*) ;;
 
1441
          *)
 
1442
            $echo "$modename: only absolute run-paths are allowed" 1>&2
 
1443
            exit $EXIT_FAILURE
 
1444
            ;;
 
1445
          esac
 
1446
          if test "$prev" = rpath; then
 
1447
            case "$rpath " in
 
1448
            *" $arg "*) ;;
 
1449
            *) rpath="$rpath $arg" ;;
 
1450
            esac
 
1451
          else
 
1452
            case "$xrpath " in
 
1453
            *" $arg "*) ;;
 
1454
            *) xrpath="$xrpath $arg" ;;
 
1455
            esac
 
1456
          fi
 
1457
          prev=
 
1458
          continue
 
1459
          ;;
 
1460
        xcompiler)
 
1461
          compiler_flags="$compiler_flags $qarg"
 
1462
          prev=
 
1463
          compile_command="$compile_command $qarg"
 
1464
          finalize_command="$finalize_command $qarg"
 
1465
          continue
 
1466
          ;;
 
1467
        xlinker)
 
1468
          linker_flags="$linker_flags $qarg"
 
1469
          compiler_flags="$compiler_flags $wl$qarg"
 
1470
          prev=
 
1471
          compile_command="$compile_command $wl$qarg"
 
1472
          finalize_command="$finalize_command $wl$qarg"
 
1473
          continue
 
1474
          ;;
 
1475
        xcclinker)
 
1476
          linker_flags="$linker_flags $qarg"
 
1477
          compiler_flags="$compiler_flags $qarg"
 
1478
          prev=
 
1479
          compile_command="$compile_command $qarg"
 
1480
          finalize_command="$finalize_command $qarg"
 
1481
          continue
 
1482
          ;;
 
1483
        shrext)
 
1484
          shrext_cmds="$arg"
 
1485
          prev=
 
1486
          continue
 
1487
          ;;
 
1488
        darwin_framework|darwin_framework_skip)
 
1489
          test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
 
1490
          compile_command="$compile_command $arg"
 
1491
          finalize_command="$finalize_command $arg"
 
1492
          prev=
 
1493
          continue
 
1494
          ;;
 
1495
        *)
 
1496
          eval "$prev=\"\$arg\""
 
1497
          prev=
 
1498
          continue
 
1499
          ;;
 
1500
        esac
 
1501
      fi # test -n "$prev"
 
1502
 
 
1503
      prevarg="$arg"
 
1504
 
 
1505
      case $arg in
 
1506
      -all-static)
 
1507
        if test -n "$link_static_flag"; then
 
1508
          compile_command="$compile_command $link_static_flag"
 
1509
          finalize_command="$finalize_command $link_static_flag"
 
1510
        fi
 
1511
        continue
 
1512
        ;;
 
1513
 
 
1514
      -allow-undefined)
 
1515
        # FIXME: remove this flag sometime in the future.
 
1516
        $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
 
1517
        continue
 
1518
        ;;
 
1519
 
 
1520
      -avoid-version)
 
1521
        avoid_version=yes
 
1522
        continue
 
1523
        ;;
 
1524
 
 
1525
      -dlopen)
 
1526
        prev=dlfiles
 
1527
        continue
 
1528
        ;;
 
1529
 
 
1530
      -dlpreopen)
 
1531
        prev=dlprefiles
 
1532
        continue
 
1533
        ;;
 
1534
 
 
1535
      -export-dynamic)
 
1536
        export_dynamic=yes
 
1537
        continue
 
1538
        ;;
 
1539
 
 
1540
      -export-symbols | -export-symbols-regex)
 
1541
        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 
1542
          $echo "$modename: more than one -exported-symbols argument is not allowed"
 
1543
          exit $EXIT_FAILURE
 
1544
        fi
 
1545
        if test "X$arg" = "X-export-symbols"; then
 
1546
          prev=expsyms
 
1547
        else
 
1548
          prev=expsyms_regex
 
1549
        fi
 
1550
        continue
 
1551
        ;;
 
1552
 
 
1553
      -framework|-arch|-isysroot)
 
1554
        case " $CC " in
 
1555
          *" ${arg} ${1} "* | *" ${arg} ${1} "*) 
 
1556
                prev=darwin_framework_skip ;;
 
1557
          *) compiler_flags="$compiler_flags $arg"
 
1558
             prev=darwin_framework ;;
 
1559
        esac
 
1560
        compile_command="$compile_command $arg"
 
1561
        finalize_command="$finalize_command $arg"
 
1562
        continue
 
1563
        ;;
 
1564
 
 
1565
      -inst-prefix-dir)
 
1566
        prev=inst_prefix
 
1567
        continue
 
1568
        ;;
 
1569
 
 
1570
      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
 
1571
      # so, if we see these flags be careful not to treat them like -L
 
1572
      -L[A-Z][A-Z]*:*)
 
1573
        case $with_gcc/$host in
 
1574
        no/*-*-irix* | /*-*-irix*)
 
1575
          compile_command="$compile_command $arg"
 
1576
          finalize_command="$finalize_command $arg"
 
1577
          ;;
 
1578
        esac
 
1579
        continue
 
1580
        ;;
 
1581
 
 
1582
      -L*)
 
1583
        dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
 
1584
        # We need an absolute path.
 
1585
        case $dir in
 
1586
        [\\/]* | [A-Za-z]:[\\/]*) ;;
 
1587
        *)
 
1588
          absdir=`cd "$dir" && pwd`
 
1589
          if test -z "$absdir"; then
 
1590
            $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
 
1591
            absdir="$dir"
 
1592
            notinst_path="$notinst_path $dir"
 
1593
          fi
 
1594
          dir="$absdir"
 
1595
          ;;
 
1596
        esac
 
1597
        case "$deplibs " in
 
1598
        *" -L$dir "*) ;;
 
1599
        *)
 
1600
          deplibs="$deplibs -L$dir"
 
1601
          lib_search_path="$lib_search_path $dir"
 
1602
          ;;
 
1603
        esac
 
1604
        case $host in
 
1605
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
1606
          testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 
1607
          case :$dllsearchpath: in
 
1608
          *":$dir:"*) ;;
 
1609
          *) dllsearchpath="$dllsearchpath:$dir";;
 
1610
          esac
 
1611
          case :$dllsearchpath: in
 
1612
          *":$testbindir:"*) ;;
 
1613
          *) dllsearchpath="$dllsearchpath:$testbindir";;
 
1614
          esac
 
1615
          ;;
 
1616
        esac
 
1617
        continue
 
1618
        ;;
 
1619
 
 
1620
      -l*)
 
1621
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 
1622
          case $host in
 
1623
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
 
1624
            # These systems don't actually have a C or math library (as such)
 
1625
            continue
 
1626
            ;;
 
1627
          *-*-os2*)
 
1628
            # These systems don't actually have a C library (as such)
 
1629
            test "X$arg" = "X-lc" && continue
 
1630
            ;;
 
1631
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 
1632
            # Do not include libc due to us having libc/libc_r.
 
1633
            test "X$arg" = "X-lc" && continue
 
1634
            ;;
 
1635
          *-*-rhapsody* | *-*-darwin1.[012])
 
1636
            # Rhapsody C and math libraries are in the System framework
 
1637
            deplibs="$deplibs -framework System"
 
1638
            continue
 
1639
            ;;
 
1640
          *-*-sco3.2v5* | *-*-sco5v6*)
 
1641
            # Causes problems with __ctype
 
1642
            test "X$arg" = "X-lc" && continue
 
1643
            ;;
 
1644
          *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 
1645
            # Compiler inserts libc in the correct place for threads to work
 
1646
            test "X$arg" = "X-lc" && continue
 
1647
            ;;
 
1648
          esac
 
1649
        elif test "X$arg" = "X-lc_r"; then
 
1650
         case $host in
 
1651
         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 
1652
           # Do not include libc_r directly, use -pthread flag.
 
1653
           continue
 
1654
           ;;
 
1655
         esac
 
1656
        fi
 
1657
        deplibs="$deplibs $arg"
 
1658
        continue
 
1659
        ;;
 
1660
 
 
1661
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
 
1662
      # classes, name mangling, and exception handling.
 
1663
      -model)
 
1664
        compile_command="$compile_command $arg"
 
1665
        compiler_flags="$compiler_flags $arg"
 
1666
        finalize_command="$finalize_command $arg"
 
1667
        prev=xcompiler
 
1668
        continue
 
1669
        ;;
 
1670
 
 
1671
     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 
1672
        compiler_flags="$compiler_flags $arg"
 
1673
        compile_command="$compile_command $arg"
 
1674
        finalize_command="$finalize_command $arg"
 
1675
        deplibs="$deplibs $arg"
 
1676
        continue
 
1677
        ;;
 
1678
 
 
1679
      -module)
 
1680
        module=yes
 
1681
        continue
 
1682
        ;;
 
1683
 
 
1684
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
 
1685
      # -r[0-9][0-9]* specifies the processor on the SGI compiler
 
1686
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
 
1687
      # +DA*, +DD* enable 64-bit mode on the HP compiler
 
1688
      # -q* pass through compiler args for the IBM compiler
 
1689
      # -m* pass through architecture-specific compiler args for GCC
 
1690
      # -m*, -t[45]*, -txscale* pass through architecture-specific
 
1691
      # compiler args for GCC
 
1692
      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
 
1693
      # -F/path gives path to uninstalled frameworks, gcc on darwin
 
1694
      # @file GCC response files
 
1695
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
 
1696
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 
1697
 
 
1698
        # Unknown arguments in both finalize_command and compile_command need
 
1699
        # to be aesthetically quoted because they are evaled later.
 
1700
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
1701
        case $arg in
 
1702
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
 
1703
          arg="\"$arg\""
 
1704
          ;;
 
1705
        esac
 
1706
        compile_command="$compile_command $arg"
 
1707
        finalize_command="$finalize_command $arg"
 
1708
        compiler_flags="$compiler_flags $arg"
 
1709
        continue
 
1710
        ;;
 
1711
 
 
1712
      -shrext)
 
1713
        prev=shrext
 
1714
        continue
 
1715
        ;;
 
1716
 
 
1717
      -no-fast-install)
 
1718
        fast_install=no
 
1719
        continue
 
1720
        ;;
 
1721
 
 
1722
      -no-install)
 
1723
        case $host in
 
1724
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
 
1725
          # The PATH hackery in wrapper scripts is required on Windows
 
1726
          # and Darwin in order for the loader to find any dlls it needs.
 
1727
          $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
 
1728
          $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
 
1729
          fast_install=no
 
1730
          ;;
 
1731
        *) no_install=yes ;;
 
1732
        esac
 
1733
        continue
 
1734
        ;;
 
1735
 
 
1736
      -no-undefined)
 
1737
        allow_undefined=no
 
1738
        continue
 
1739
        ;;
 
1740
 
 
1741
      -objectlist)
 
1742
        prev=objectlist
 
1743
        continue
 
1744
        ;;
 
1745
 
 
1746
      -o) prev=output ;;
 
1747
 
 
1748
      -precious-files-regex)
 
1749
        prev=precious_regex
 
1750
        continue
 
1751
        ;;
 
1752
 
 
1753
      -release)
 
1754
        prev=release
 
1755
        continue
 
1756
        ;;
 
1757
 
 
1758
      -rpath)
 
1759
        prev=rpath
 
1760
        continue
 
1761
        ;;
 
1762
 
 
1763
      -R)
 
1764
        prev=xrpath
 
1765
        continue
 
1766
        ;;
 
1767
 
 
1768
      -R*)
 
1769
        dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
 
1770
        # We need an absolute path.
 
1771
        case $dir in
 
1772
        [\\/]* | [A-Za-z]:[\\/]*) ;;
 
1773
        *)
 
1774
          $echo "$modename: only absolute run-paths are allowed" 1>&2
 
1775
          exit $EXIT_FAILURE
 
1776
          ;;
 
1777
        esac
 
1778
        case "$xrpath " in
 
1779
        *" $dir "*) ;;
 
1780
        *) xrpath="$xrpath $dir" ;;
 
1781
        esac
 
1782
        continue
 
1783
        ;;
 
1784
 
 
1785
      -static | -static-libtool-libs)
 
1786
        # The effects of -static are defined in a previous loop.
 
1787
        # We used to do the same as -all-static on platforms that
 
1788
        # didn't have a PIC flag, but the assumption that the effects
 
1789
        # would be equivalent was wrong.  It would break on at least
 
1790
        # Digital Unix and AIX.
 
1791
        continue
 
1792
        ;;
 
1793
 
 
1794
      -thread-safe)
 
1795
        thread_safe=yes
 
1796
        continue
 
1797
        ;;
 
1798
 
 
1799
      -version-info)
 
1800
        prev=vinfo
 
1801
        continue
 
1802
        ;;
 
1803
      -version-number)
 
1804
        prev=vinfo
 
1805
        vinfo_number=yes
 
1806
        continue
 
1807
        ;;
 
1808
 
 
1809
      -Wc,*)
 
1810
        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
 
1811
        arg=
 
1812
        save_ifs="$IFS"; IFS=','
 
1813
        for flag in $args; do
 
1814
          IFS="$save_ifs"
 
1815
          case $flag in
 
1816
            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
 
1817
            flag="\"$flag\""
 
1818
            ;;
 
1819
          esac
 
1820
          arg="$arg $wl$flag"
 
1821
          compiler_flags="$compiler_flags $flag"
 
1822
        done
 
1823
        IFS="$save_ifs"
 
1824
        arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
 
1825
        ;;
 
1826
 
 
1827
      -Wl,*)
 
1828
        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
 
1829
        arg=
 
1830
        save_ifs="$IFS"; IFS=','
 
1831
        for flag in $args; do
 
1832
          IFS="$save_ifs"
 
1833
          case $flag in
 
1834
            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
 
1835
            flag="\"$flag\""
 
1836
            ;;
 
1837
          esac
 
1838
          arg="$arg $wl$flag"
 
1839
          compiler_flags="$compiler_flags $wl$flag"
 
1840
          linker_flags="$linker_flags $flag"
 
1841
        done
 
1842
        IFS="$save_ifs"
 
1843
        arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
 
1844
        ;;
 
1845
 
 
1846
      -Xcompiler)
 
1847
        prev=xcompiler
 
1848
        continue
 
1849
        ;;
 
1850
 
 
1851
      -Xlinker)
 
1852
        prev=xlinker
 
1853
        continue
 
1854
        ;;
 
1855
 
 
1856
      -XCClinker)
 
1857
        prev=xcclinker
 
1858
        continue
 
1859
        ;;
 
1860
 
 
1861
      # Some other compiler flag.
 
1862
      -* | +*)
 
1863
        # Unknown arguments in both finalize_command and compile_command need
 
1864
        # to be aesthetically quoted because they are evaled later.
 
1865
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
1866
        case $arg in
 
1867
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
 
1868
          arg="\"$arg\""
 
1869
          ;;
 
1870
        esac
 
1871
        ;;
 
1872
 
 
1873
      *.$objext)
 
1874
        # A standard object.
 
1875
        objs="$objs $arg"
 
1876
        ;;
 
1877
 
 
1878
      *.lo)
 
1879
        # A libtool-controlled object.
 
1880
 
 
1881
        # Check to see that this really is a libtool object.
 
1882
        if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
1883
          pic_object=
 
1884
          non_pic_object=
 
1885
 
 
1886
          # Read the .lo file
 
1887
          # If there is no directory component, then add one.
 
1888
          case $arg in
 
1889
          */* | *\\*) . $arg ;;
 
1890
          *) . ./$arg ;;
 
1891
          esac
 
1892
 
 
1893
          if test -z "$pic_object" || \
 
1894
             test -z "$non_pic_object" ||
 
1895
             test "$pic_object" = none && \
 
1896
             test "$non_pic_object" = none; then
 
1897
            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
 
1898
            exit $EXIT_FAILURE
 
1899
          fi
 
1900
 
 
1901
          # Extract subdirectory from the argument.
 
1902
          xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1903
          if test "X$xdir" = "X$arg"; then
 
1904
            xdir=
 
1905
          else
 
1906
            xdir="$xdir/"
 
1907
          fi
 
1908
 
 
1909
          if test "$pic_object" != none; then
 
1910
            # Prepend the subdirectory the object is found in.
 
1911
            pic_object="$xdir$pic_object"
 
1912
 
 
1913
            if test "$prev" = dlfiles; then
 
1914
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 
1915
                dlfiles="$dlfiles $pic_object"
 
1916
                prev=
 
1917
                continue
 
1918
              else
 
1919
                # If libtool objects are unsupported, then we need to preload.
 
1920
                prev=dlprefiles
 
1921
              fi
 
1922
            fi
 
1923
 
 
1924
            # CHECK ME:  I think I busted this.  -Ossama
 
1925
            if test "$prev" = dlprefiles; then
 
1926
              # Preload the old-style object.
 
1927
              dlprefiles="$dlprefiles $pic_object"
 
1928
              prev=
 
1929
            fi
 
1930
 
 
1931
            # A PIC object.
 
1932
            libobjs="$libobjs $pic_object"
 
1933
            arg="$pic_object"
 
1934
          fi
 
1935
 
 
1936
          # Non-PIC object.
 
1937
          if test "$non_pic_object" != none; then
 
1938
            # Prepend the subdirectory the object is found in.
 
1939
            non_pic_object="$xdir$non_pic_object"
 
1940
 
 
1941
            # A standard non-PIC object
 
1942
            non_pic_objects="$non_pic_objects $non_pic_object"
 
1943
            if test -z "$pic_object" || test "$pic_object" = none ; then
 
1944
              arg="$non_pic_object"
 
1945
            fi
 
1946
          else
 
1947
            # If the PIC object exists, use it instead.
 
1948
            # $xdir was prepended to $pic_object above.
 
1949
            non_pic_object="$pic_object"
 
1950
            non_pic_objects="$non_pic_objects $non_pic_object"
 
1951
          fi
 
1952
        else
 
1953
          # Only an error if not doing a dry-run.
 
1954
          if test -z "$run"; then
 
1955
            $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
 
1956
            exit $EXIT_FAILURE
 
1957
          else
 
1958
            # Dry-run case.
 
1959
 
 
1960
            # Extract subdirectory from the argument.
 
1961
            xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1962
            if test "X$xdir" = "X$arg"; then
 
1963
              xdir=
 
1964
            else
 
1965
              xdir="$xdir/"
 
1966
            fi
 
1967
 
 
1968
            pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
 
1969
            non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
 
1970
            libobjs="$libobjs $pic_object"
 
1971
            non_pic_objects="$non_pic_objects $non_pic_object"
 
1972
          fi
 
1973
        fi
 
1974
        ;;
 
1975
 
 
1976
      *.$libext)
 
1977
        # An archive.
 
1978
        deplibs="$deplibs $arg"
 
1979
        old_deplibs="$old_deplibs $arg"
 
1980
        continue
 
1981
        ;;
 
1982
 
 
1983
      *.la)
 
1984
        # A libtool-controlled library.
 
1985
 
 
1986
        if test "$prev" = dlfiles; then
 
1987
          # This library was specified with -dlopen.
 
1988
          dlfiles="$dlfiles $arg"
 
1989
          prev=
 
1990
        elif test "$prev" = dlprefiles; then
 
1991
          # The library was specified with -dlpreopen.
 
1992
          dlprefiles="$dlprefiles $arg"
 
1993
          prev=
 
1994
        else
 
1995
          deplibs="$deplibs $arg"
 
1996
        fi
 
1997
        continue
 
1998
        ;;
 
1999
 
 
2000
      # Some other compiler argument.
 
2001
      *)
 
2002
        # Unknown arguments in both finalize_command and compile_command need
 
2003
        # to be aesthetically quoted because they are evaled later.
 
2004
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
2005
        case $arg in
 
2006
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
 
2007
          arg="\"$arg\""
 
2008
          ;;
 
2009
        esac
 
2010
        ;;
 
2011
      esac # arg
 
2012
 
 
2013
      # Now actually substitute the argument into the commands.
 
2014
      if test -n "$arg"; then
 
2015
        compile_command="$compile_command $arg"
 
2016
        finalize_command="$finalize_command $arg"
 
2017
      fi
 
2018
    done # argument parsing loop
 
2019
 
 
2020
    if test -n "$prev"; then
 
2021
      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
 
2022
      $echo "$help" 1>&2
 
2023
      exit $EXIT_FAILURE
 
2024
    fi
 
2025
 
 
2026
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
 
2027
      eval arg=\"$export_dynamic_flag_spec\"
 
2028
      compile_command="$compile_command $arg"
 
2029
      finalize_command="$finalize_command $arg"
 
2030
    fi
 
2031
 
 
2032
    oldlibs=
 
2033
    # calculate the name of the file, without its directory
 
2034
    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
 
2035
    libobjs_save="$libobjs"
 
2036
 
 
2037
    if test -n "$shlibpath_var"; then
 
2038
      # get the directories listed in $shlibpath_var
 
2039
      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 
2040
    else
 
2041
      shlib_search_path=
 
2042
    fi
 
2043
    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
 
2044
    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
2045
 
 
2046
    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
 
2047
    if test "X$output_objdir" = "X$output"; then
 
2048
      output_objdir="$objdir"
 
2049
    else
 
2050
      output_objdir="$output_objdir/$objdir"
 
2051
    fi
 
2052
    # Create the object directory.
 
2053
    if test ! -d "$output_objdir"; then
 
2054
      $show "$mkdir $output_objdir"
 
2055
      $run $mkdir $output_objdir
 
2056
      exit_status=$?
 
2057
      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
 
2058
        exit $exit_status
 
2059
      fi
 
2060
    fi
 
2061
 
 
2062
    # Determine the type of output
 
2063
    case $output in
 
2064
    "")
 
2065
      $echo "$modename: you must specify an output file" 1>&2
 
2066
      $echo "$help" 1>&2
 
2067
      exit $EXIT_FAILURE
 
2068
      ;;
 
2069
    *.$libext) linkmode=oldlib ;;
 
2070
    *.lo | *.$objext) linkmode=obj ;;
 
2071
    *.la) linkmode=lib ;;
 
2072
    *) linkmode=prog ;; # Anything else should be a program.
 
2073
    esac
 
2074
 
 
2075
    case $host in
 
2076
    *cygwin* | *mingw* | *pw32*)
 
2077
      # don't eliminate duplications in $postdeps and $predeps
 
2078
      duplicate_compiler_generated_deps=yes
 
2079
      ;;
 
2080
    *)
 
2081
      duplicate_compiler_generated_deps=$duplicate_deps
 
2082
      ;;
 
2083
    esac
 
2084
    specialdeplibs=
 
2085
 
 
2086
    libs=
 
2087
    # Find all interdependent deplibs by searching for libraries
 
2088
    # that are linked more than once (e.g. -la -lb -la)
 
2089
    for deplib in $deplibs; do
 
2090
      if test "X$duplicate_deps" = "Xyes" ; then
 
2091
        case "$libs " in
 
2092
        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2093
        esac
 
2094
      fi
 
2095
      libs="$libs $deplib"
 
2096
    done
 
2097
 
 
2098
    if test "$linkmode" = lib; then
 
2099
      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
2100
 
 
2101
      # Compute libraries that are listed more than once in $predeps
 
2102
      # $postdeps and mark them as special (i.e., whose duplicates are
 
2103
      # not to be eliminated).
 
2104
      pre_post_deps=
 
2105
      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
 
2106
        for pre_post_dep in $predeps $postdeps; do
 
2107
          case "$pre_post_deps " in
 
2108
          *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 
2109
          esac
 
2110
          pre_post_deps="$pre_post_deps $pre_post_dep"
 
2111
        done
 
2112
      fi
 
2113
      pre_post_deps=
 
2114
    fi
 
2115
 
 
2116
    deplibs=
 
2117
    newdependency_libs=
 
2118
    newlib_search_path=
 
2119
    need_relink=no # whether we're linking any uninstalled libtool libraries
 
2120
    notinst_deplibs= # not-installed libtool libraries
 
2121
    case $linkmode in
 
2122
    lib)
 
2123
        passes="conv link"
 
2124
        for file in $dlfiles $dlprefiles; do
 
2125
          case $file in
 
2126
          *.la) ;;
 
2127
          *)
 
2128
            $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
 
2129
            exit $EXIT_FAILURE
 
2130
            ;;
 
2131
          esac
 
2132
        done
 
2133
        ;;
 
2134
    prog)
 
2135
        compile_deplibs=
 
2136
        finalize_deplibs=
 
2137
        alldeplibs=no
 
2138
        newdlfiles=
 
2139
        newdlprefiles=
 
2140
        passes="conv scan dlopen dlpreopen link"
 
2141
        ;;
 
2142
    *)  passes="conv"
 
2143
        ;;
 
2144
    esac
 
2145
    for pass in $passes; do
 
2146
      if test "$linkmode,$pass" = "lib,link" ||
 
2147
         test "$linkmode,$pass" = "prog,scan"; then
 
2148
        libs="$deplibs"
 
2149
        deplibs=
 
2150
      fi
 
2151
      if test "$linkmode" = prog; then
 
2152
        case $pass in
 
2153
        dlopen) libs="$dlfiles" ;;
 
2154
        dlpreopen) libs="$dlprefiles" ;;
 
2155
        link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
 
2156
        esac
 
2157
      fi
 
2158
      if test "$pass" = dlopen; then
 
2159
        # Collect dlpreopened libraries
 
2160
        save_deplibs="$deplibs"
 
2161
        deplibs=
 
2162
      fi
 
2163
      for deplib in $libs; do
 
2164
        lib=
 
2165
        found=no
 
2166
        case $deplib in
 
2167
        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 
2168
          if test "$linkmode,$pass" = "prog,link"; then
 
2169
            compile_deplibs="$deplib $compile_deplibs"
 
2170
            finalize_deplibs="$deplib $finalize_deplibs"
 
2171
          else
 
2172
            compiler_flags="$compiler_flags $deplib"
 
2173
          fi
 
2174
 
 
2175
          case $linkmode in
 
2176
          lib)
 
2177
            deplibs="$deplib $deplibs"
 
2178
            test "$pass" = conv && continue
 
2179
            newdependency_libs="$deplib $newdependency_libs"
 
2180
            ;;
 
2181
          prog)
 
2182
            if test "$pass" = conv; then
 
2183
              deplibs="$deplib $deplibs"
 
2184
              continue
 
2185
            fi
 
2186
            if test "$pass" = scan; then
 
2187
              deplibs="$deplib $deplibs"
 
2188
            else
 
2189
              compile_deplibs="$deplib $compile_deplibs"
 
2190
              finalize_deplibs="$deplib $finalize_deplibs"
 
2191
            fi
 
2192
            ;;
 
2193
          *)
 
2194
            ;;
 
2195
          esac # linkmode
 
2196
 
 
2197
          continue
 
2198
          ;;
 
2199
        -l*)
 
2200
          if test "$linkmode" != lib && test "$linkmode" != prog; then
 
2201
            $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
 
2202
            continue
 
2203
          fi
 
2204
          name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
 
2205
          for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
 
2206
            for search_ext in .la $std_shrext .so .a; do
 
2207
              # Search the libtool library
 
2208
              lib="$searchdir/lib${name}${search_ext}"
 
2209
              if test -f "$lib"; then
 
2210
                if test "$search_ext" = ".la"; then
 
2211
                  found=yes
 
2212
                else
 
2213
                  found=no
 
2214
                fi
 
2215
                break 2
 
2216
              fi
 
2217
            done
 
2218
          done
 
2219
          if test "$found" != yes; then
 
2220
            # deplib doesn't seem to be a libtool library
 
2221
            if test "$linkmode,$pass" = "prog,link"; then
 
2222
              compile_deplibs="$deplib $compile_deplibs"
 
2223
              finalize_deplibs="$deplib $finalize_deplibs"
 
2224
            else
 
2225
              deplibs="$deplib $deplibs"
 
2226
              test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 
2227
            fi
 
2228
            continue
 
2229
          else # deplib is a libtool library
 
2230
            # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 
2231
            # We need to do some special things here, and not later.
 
2232
            if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
2233
              case " $predeps $postdeps " in
 
2234
              *" $deplib "*)
 
2235
                if (${SED} -e '2q' $lib |
 
2236
                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
2237
                  library_names=
 
2238
                  old_library=
 
2239
                  case $lib in
 
2240
                  */* | *\\*) . $lib ;;
 
2241
                  *) . ./$lib ;;
 
2242
                  esac
 
2243
                  for l in $old_library $library_names; do
 
2244
                    ll="$l"
 
2245
                  done
 
2246
                  if test "X$ll" = "X$old_library" ; then # only static version available
 
2247
                    found=no
 
2248
                    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
 
2249
                    test "X$ladir" = "X$lib" && ladir="."
 
2250
                    lib=$ladir/$old_library
 
2251
                    if test "$linkmode,$pass" = "prog,link"; then
 
2252
                      compile_deplibs="$deplib $compile_deplibs"
 
2253
                      finalize_deplibs="$deplib $finalize_deplibs"
 
2254
                    else
 
2255
                      deplibs="$deplib $deplibs"
 
2256
                      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 
2257
                    fi
 
2258
                    continue
 
2259
                  fi
 
2260
                fi
 
2261
                ;;
 
2262
              *) ;;
 
2263
              esac
 
2264
            fi
 
2265
          fi
 
2266
          ;; # -l
 
2267
        -L*)
 
2268
          case $linkmode in
 
2269
          lib)
 
2270
            deplibs="$deplib $deplibs"
 
2271
            test "$pass" = conv && continue
 
2272
            newdependency_libs="$deplib $newdependency_libs"
 
2273
            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
 
2274
            ;;
 
2275
          prog)
 
2276
            if test "$pass" = conv; then
 
2277
              deplibs="$deplib $deplibs"
 
2278
              continue
 
2279
            fi
 
2280
            if test "$pass" = scan; then
 
2281
              deplibs="$deplib $deplibs"
 
2282
            else
 
2283
              compile_deplibs="$deplib $compile_deplibs"
 
2284
              finalize_deplibs="$deplib $finalize_deplibs"
 
2285
            fi
 
2286
            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
 
2287
            ;;
 
2288
          *)
 
2289
            $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
 
2290
            ;;
 
2291
          esac # linkmode
 
2292
          continue
 
2293
          ;; # -L
 
2294
        -R*)
 
2295
          if test "$pass" = link; then
 
2296
            dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
 
2297
            # Make sure the xrpath contains only unique directories.
 
2298
            case "$xrpath " in
 
2299
            *" $dir "*) ;;
 
2300
            *) xrpath="$xrpath $dir" ;;
 
2301
            esac
 
2302
          fi
 
2303
          deplibs="$deplib $deplibs"
 
2304
          continue
 
2305
          ;;
 
2306
        *.la) lib="$deplib" ;;
 
2307
        *.$libext)
 
2308
          if test "$pass" = conv; then
 
2309
            deplibs="$deplib $deplibs"
 
2310
            continue
 
2311
          fi
 
2312
          case $linkmode in
 
2313
          lib)
 
2314
            valid_a_lib=no
 
2315
            case $deplibs_check_method in
 
2316
              match_pattern*)
 
2317
                set dummy $deplibs_check_method
 
2318
                match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
 
2319
                if eval $echo \"$deplib\" 2>/dev/null \
 
2320
                    | $SED 10q \
 
2321
                    | $EGREP "$match_pattern_regex" > /dev/null; then
 
2322
                  valid_a_lib=yes
 
2323
                fi
 
2324
                ;;
 
2325
              pass_all)
 
2326
                valid_a_lib=yes
 
2327
                ;;
 
2328
            esac
 
2329
            if test "$valid_a_lib" != yes; then
 
2330
              $echo
 
2331
              $echo "*** Warning: Trying to link with static lib archive $deplib."
 
2332
              $echo "*** I have the capability to make that library automatically link in when"
 
2333
              $echo "*** you link to this library.  But I can only do this if you have a"
 
2334
              $echo "*** shared version of the library, which you do not appear to have"
 
2335
              $echo "*** because the file extensions .$libext of this argument makes me believe"
 
2336
              $echo "*** that it is just a static archive that I should not used here."
 
2337
            else
 
2338
              $echo
 
2339
              $echo "*** Warning: Linking the shared library $output against the"
 
2340
              $echo "*** static library $deplib is not portable!"
 
2341
              deplibs="$deplib $deplibs"
 
2342
            fi
 
2343
            continue
 
2344
            ;;
 
2345
          prog)
 
2346
            if test "$pass" != link; then
 
2347
              deplibs="$deplib $deplibs"
 
2348
            else
 
2349
              compile_deplibs="$deplib $compile_deplibs"
 
2350
              finalize_deplibs="$deplib $finalize_deplibs"
 
2351
            fi
 
2352
            continue
 
2353
            ;;
 
2354
          esac # linkmode
 
2355
          ;; # *.$libext
 
2356
        *.lo | *.$objext)
 
2357
          if test "$pass" = conv; then
 
2358
            deplibs="$deplib $deplibs"
 
2359
          elif test "$linkmode" = prog; then
 
2360
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 
2361
              # If there is no dlopen support or we're linking statically,
 
2362
              # we need to preload.
 
2363
              newdlprefiles="$newdlprefiles $deplib"
 
2364
              compile_deplibs="$deplib $compile_deplibs"
 
2365
              finalize_deplibs="$deplib $finalize_deplibs"
 
2366
            else
 
2367
              newdlfiles="$newdlfiles $deplib"
 
2368
            fi
 
2369
          fi
 
2370
          continue
 
2371
          ;;
 
2372
        %DEPLIBS%)
 
2373
          alldeplibs=yes
 
2374
          continue
 
2375
          ;;
 
2376
        esac # case $deplib
 
2377
        if test "$found" = yes || test -f "$lib"; then :
 
2378
        else
 
2379
          $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
 
2380
          exit $EXIT_FAILURE
 
2381
        fi
 
2382
 
 
2383
        # Check to see that this really is a libtool archive.
 
2384
        if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
 
2385
        else
 
2386
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
2387
          exit $EXIT_FAILURE
 
2388
        fi
 
2389
 
 
2390
        ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
 
2391
        test "X$ladir" = "X$lib" && ladir="."
 
2392
 
 
2393
        dlname=
 
2394
        dlopen=
 
2395
        dlpreopen=
 
2396
        libdir=
 
2397
        library_names=
 
2398
        old_library=
 
2399
        # If the library was installed with an old release of libtool,
 
2400
        # it will not redefine variables installed, or shouldnotlink
 
2401
        installed=yes
 
2402
        shouldnotlink=no
 
2403
        avoidtemprpath=
 
2404
 
 
2405
 
 
2406
        # Read the .la file
 
2407
        case $lib in
 
2408
        */* | *\\*) . $lib ;;
 
2409
        *) . ./$lib ;;
 
2410
        esac
 
2411
 
 
2412
        if test "$linkmode,$pass" = "lib,link" ||
 
2413
           test "$linkmode,$pass" = "prog,scan" ||
 
2414
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
 
2415
          test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
 
2416
          test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 
2417
        fi
 
2418
 
 
2419
        if test "$pass" = conv; then
 
2420
          # Only check for convenience libraries
 
2421
          deplibs="$lib $deplibs"
 
2422
          if test -z "$libdir"; then
 
2423
            if test -z "$old_library"; then
 
2424
              $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
 
2425
              exit $EXIT_FAILURE
 
2426
            fi
 
2427
            # It is a libtool convenience library, so add in its objects.
 
2428
            convenience="$convenience $ladir/$objdir/$old_library"
 
2429
            old_convenience="$old_convenience $ladir/$objdir/$old_library"
 
2430
            tmp_libs=
 
2431
            for deplib in $dependency_libs; do
 
2432
              deplibs="$deplib $deplibs"
 
2433
              if test "X$duplicate_deps" = "Xyes" ; then
 
2434
                case "$tmp_libs " in
 
2435
                *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2436
                esac
 
2437
              fi
 
2438
              tmp_libs="$tmp_libs $deplib"
 
2439
            done
 
2440
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
 
2441
            $echo "$modename: \`$lib' is not a convenience library" 1>&2
 
2442
            exit $EXIT_FAILURE
 
2443
          fi
 
2444
          continue
 
2445
        fi # $pass = conv
 
2446
 
 
2447
 
 
2448
        # Get the name of the library we link against.
 
2449
        linklib=
 
2450
        for l in $old_library $library_names; do
 
2451
          linklib="$l"
 
2452
        done
 
2453
        if test -z "$linklib"; then
 
2454
          $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
 
2455
          exit $EXIT_FAILURE
 
2456
        fi
 
2457
 
 
2458
        # This library was specified with -dlopen.
 
2459
        if test "$pass" = dlopen; then
 
2460
          if test -z "$libdir"; then
 
2461
            $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
 
2462
            exit $EXIT_FAILURE
 
2463
          fi
 
2464
          if test -z "$dlname" ||
 
2465
             test "$dlopen_support" != yes ||
 
2466
             test "$build_libtool_libs" = no; then
 
2467
            # If there is no dlname, no dlopen support or we're linking
 
2468
            # statically, we need to preload.  We also need to preload any
 
2469
            # dependent libraries so libltdl's deplib preloader doesn't
 
2470
            # bomb out in the load deplibs phase.
 
2471
            dlprefiles="$dlprefiles $lib $dependency_libs"
 
2472
          else
 
2473
            newdlfiles="$newdlfiles $lib"
 
2474
          fi
 
2475
          continue
 
2476
        fi # $pass = dlopen
 
2477
 
 
2478
        # We need an absolute path.
 
2479
        case $ladir in
 
2480
        [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
 
2481
        *)
 
2482
          abs_ladir=`cd "$ladir" && pwd`
 
2483
          if test -z "$abs_ladir"; then
 
2484
            $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
 
2485
            $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
 
2486
            abs_ladir="$ladir"
 
2487
          fi
 
2488
          ;;
 
2489
        esac
 
2490
        laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
2491
 
 
2492
        # Find the relevant object directory and library name.
 
2493
        if test "X$installed" = Xyes; then
 
2494
          if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 
2495
            $echo "$modename: warning: library \`$lib' was moved." 1>&2
 
2496
            dir="$ladir"
 
2497
            absdir="$abs_ladir"
 
2498
            libdir="$abs_ladir"
 
2499
          else
 
2500
            dir="$libdir"
 
2501
            absdir="$libdir"
 
2502
          fi
 
2503
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 
2504
        else
 
2505
          if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 
2506
            dir="$ladir"
 
2507
            absdir="$abs_ladir"
 
2508
            # Remove this search path later
 
2509
            notinst_path="$notinst_path $abs_ladir"
 
2510
          else
 
2511
            dir="$ladir/$objdir"
 
2512
            absdir="$abs_ladir/$objdir"
 
2513
            # Remove this search path later
 
2514
            notinst_path="$notinst_path $abs_ladir"
 
2515
          fi
 
2516
        fi # $installed = yes
 
2517
        name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
2518
 
 
2519
        # This library was specified with -dlpreopen.
 
2520
        if test "$pass" = dlpreopen; then
 
2521
          if test -z "$libdir"; then
 
2522
            $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
 
2523
            exit $EXIT_FAILURE
 
2524
          fi
 
2525
          # Prefer using a static library (so that no silly _DYNAMIC symbols
 
2526
          # are required to link).
 
2527
          if test -n "$old_library"; then
 
2528
            newdlprefiles="$newdlprefiles $dir/$old_library"
 
2529
          # Otherwise, use the dlname, so that lt_dlopen finds it.
 
2530
          elif test -n "$dlname"; then
 
2531
            newdlprefiles="$newdlprefiles $dir/$dlname"
 
2532
          else
 
2533
            newdlprefiles="$newdlprefiles $dir/$linklib"
 
2534
          fi
 
2535
        fi # $pass = dlpreopen
 
2536
 
 
2537
        if test -z "$libdir"; then
 
2538
          # Link the convenience library
 
2539
          if test "$linkmode" = lib; then
 
2540
            deplibs="$dir/$old_library $deplibs"
 
2541
          elif test "$linkmode,$pass" = "prog,link"; then
 
2542
            compile_deplibs="$dir/$old_library $compile_deplibs"
 
2543
            finalize_deplibs="$dir/$old_library $finalize_deplibs"
 
2544
          else
 
2545
            deplibs="$lib $deplibs" # used for prog,scan pass
 
2546
          fi
 
2547
          continue
 
2548
        fi
 
2549
 
 
2550
 
 
2551
        if test "$linkmode" = prog && test "$pass" != link; then
 
2552
          newlib_search_path="$newlib_search_path $ladir"
 
2553
          deplibs="$lib $deplibs"
 
2554
 
 
2555
          linkalldeplibs=no
 
2556
          if test "$link_all_deplibs" != no || test -z "$library_names" ||
 
2557
             test "$build_libtool_libs" = no; then
 
2558
            linkalldeplibs=yes
 
2559
          fi
 
2560
 
 
2561
          tmp_libs=
 
2562
          for deplib in $dependency_libs; do
 
2563
            case $deplib in
 
2564
            -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
 
2565
            esac
 
2566
            # Need to link against all dependency_libs?
 
2567
            if test "$linkalldeplibs" = yes; then
 
2568
              deplibs="$deplib $deplibs"
 
2569
            else
 
2570
              # Need to hardcode shared library paths
 
2571
              # or/and link against static libraries
 
2572
              newdependency_libs="$deplib $newdependency_libs"
 
2573
            fi
 
2574
            if test "X$duplicate_deps" = "Xyes" ; then
 
2575
              case "$tmp_libs " in
 
2576
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2577
              esac
 
2578
            fi
 
2579
            tmp_libs="$tmp_libs $deplib"
 
2580
          done # for deplib
 
2581
          continue
 
2582
        fi # $linkmode = prog...
 
2583
 
 
2584
        if test "$linkmode,$pass" = "prog,link"; then
 
2585
          if test -n "$library_names" &&
 
2586
             { { test "$prefer_static_libs" = no ||
 
2587
                 test "$prefer_static_libs,$installed" = "built,yes"; } ||
 
2588
               test -z "$old_library"; }; then
 
2589
            # We need to hardcode the library path
 
2590
            if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 
2591
              # Make sure the rpath contains only unique directories.
 
2592
              case "$temp_rpath " in
 
2593
              *" $dir "*) ;;
 
2594
              *" $absdir "*) ;;
 
2595
              *) temp_rpath="$temp_rpath $absdir" ;;
 
2596
              esac
 
2597
            fi
 
2598
 
 
2599
            # Hardcode the library path.
 
2600
            # Skip directories that are in the system default run-time
 
2601
            # search path.
 
2602
            case " $sys_lib_dlsearch_path " in
 
2603
            *" $absdir "*) ;;
 
2604
            *)
 
2605
              case "$compile_rpath " in
 
2606
              *" $absdir "*) ;;
 
2607
              *) compile_rpath="$compile_rpath $absdir"
 
2608
              esac
 
2609
              ;;
 
2610
            esac
 
2611
            case " $sys_lib_dlsearch_path " in
 
2612
            *" $libdir "*) ;;
 
2613
            *)
 
2614
              case "$finalize_rpath " in
 
2615
              *" $libdir "*) ;;
 
2616
              *) finalize_rpath="$finalize_rpath $libdir"
 
2617
              esac
 
2618
              ;;
 
2619
            esac
 
2620
          fi # $linkmode,$pass = prog,link...
 
2621
 
 
2622
          if test "$alldeplibs" = yes &&
 
2623
             { test "$deplibs_check_method" = pass_all ||
 
2624
               { test "$build_libtool_libs" = yes &&
 
2625
                 test -n "$library_names"; }; }; then
 
2626
            # We only need to search for static libraries
 
2627
            continue
 
2628
          fi
 
2629
        fi
 
2630
 
 
2631
        link_static=no # Whether the deplib will be linked statically
 
2632
        use_static_libs=$prefer_static_libs
 
2633
        if test "$use_static_libs" = built && test "$installed" = yes ; then
 
2634
          use_static_libs=no
 
2635
        fi
 
2636
        if test -n "$library_names" &&
 
2637
           { test "$use_static_libs" = no || test -z "$old_library"; }; then
 
2638
          if test "$installed" = no; then
 
2639
            notinst_deplibs="$notinst_deplibs $lib"
 
2640
            need_relink=yes
 
2641
          fi
 
2642
          # This is a shared library
 
2643
 
 
2644
          # Warn about portability, can't link against -module's on
 
2645
          # some systems (darwin)
 
2646
          if test "$shouldnotlink" = yes && test "$pass" = link ; then
 
2647
            $echo
 
2648
            if test "$linkmode" = prog; then
 
2649
              $echo "*** Warning: Linking the executable $output against the loadable module"
 
2650
            else
 
2651
              $echo "*** Warning: Linking the shared library $output against the loadable module"
 
2652
            fi
 
2653
            $echo "*** $linklib is not portable!"
 
2654
          fi
 
2655
          if test "$linkmode" = lib &&
 
2656
             test "$hardcode_into_libs" = yes; then
 
2657
            # Hardcode the library path.
 
2658
            # Skip directories that are in the system default run-time
 
2659
            # search path.
 
2660
            case " $sys_lib_dlsearch_path " in
 
2661
            *" $absdir "*) ;;
 
2662
            *)
 
2663
              case "$compile_rpath " in
 
2664
              *" $absdir "*) ;;
 
2665
              *) compile_rpath="$compile_rpath $absdir"
 
2666
              esac
 
2667
              ;;
 
2668
            esac
 
2669
            case " $sys_lib_dlsearch_path " in
 
2670
            *" $libdir "*) ;;
 
2671
            *)
 
2672
              case "$finalize_rpath " in
 
2673
              *" $libdir "*) ;;
 
2674
              *) finalize_rpath="$finalize_rpath $libdir"
 
2675
              esac
 
2676
              ;;
 
2677
            esac
 
2678
          fi
 
2679
 
 
2680
          if test -n "$old_archive_from_expsyms_cmds"; then
 
2681
            # figure out the soname
 
2682
            set dummy $library_names
 
2683
            realname="$2"
 
2684
            shift; shift
 
2685
            libname=`eval \\$echo \"$libname_spec\"`
 
2686
            # use dlname if we got it. it's perfectly good, no?
 
2687
            if test -n "$dlname"; then
 
2688
              soname="$dlname"
 
2689
            elif test -n "$soname_spec"; then
 
2690
              # bleh windows
 
2691
              case $host in
 
2692
              *cygwin* | mingw*)
 
2693
                major=`expr $current - $age`
 
2694
                versuffix="-$major"
 
2695
                ;;
 
2696
              esac
 
2697
              eval soname=\"$soname_spec\"
 
2698
            else
 
2699
              soname="$realname"
 
2700
            fi
 
2701
 
 
2702
            # Make a new name for the extract_expsyms_cmds to use
 
2703
            soroot="$soname"
 
2704
            soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
 
2705
            newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
 
2706
 
 
2707
            # If the library has no export list, then create one now
 
2708
            if test -f "$output_objdir/$soname-def"; then :
 
2709
            else
 
2710
              $show "extracting exported symbol list from \`$soname'"
 
2711
              save_ifs="$IFS"; IFS='~'
 
2712
              cmds=$extract_expsyms_cmds
 
2713
              for cmd in $cmds; do
 
2714
                IFS="$save_ifs"
 
2715
                eval cmd=\"$cmd\"
 
2716
                $show "$cmd"
 
2717
                $run eval "$cmd" || exit $?
 
2718
              done
 
2719
              IFS="$save_ifs"
 
2720
            fi
 
2721
 
 
2722
            # Create $newlib
 
2723
            if test -f "$output_objdir/$newlib"; then :; else
 
2724
              $show "generating import library for \`$soname'"
 
2725
              save_ifs="$IFS"; IFS='~'
 
2726
              cmds=$old_archive_from_expsyms_cmds
 
2727
              for cmd in $cmds; do
 
2728
                IFS="$save_ifs"
 
2729
                eval cmd=\"$cmd\"
 
2730
                $show "$cmd"
 
2731
                $run eval "$cmd" || exit $?
 
2732
              done
 
2733
              IFS="$save_ifs"
 
2734
            fi
 
2735
            # make sure the library variables are pointing to the new library
 
2736
            dir=$output_objdir
 
2737
            linklib=$newlib
 
2738
          fi # test -n "$old_archive_from_expsyms_cmds"
 
2739
 
 
2740
          if test "$linkmode" = prog || test "$mode" != relink; then
 
2741
            add_shlibpath=
 
2742
            add_dir=
 
2743
            add=
 
2744
            lib_linked=yes
 
2745
            case $hardcode_action in
 
2746
            immediate | unsupported)
 
2747
              if test "$hardcode_direct" = no; then
 
2748
                add="$dir/$linklib"
 
2749
                case $host in
 
2750
                  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
 
2751
                  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
 
2752
                  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
 
2753
                    *-*-unixware7*) add_dir="-L$dir" ;;
 
2754
                  *-*-darwin* )
 
2755
                    # if the lib is a module then we can not link against
 
2756
                    # it, someone is ignoring the new warnings I added
 
2757
                    if /usr/bin/file -L $add 2> /dev/null |
 
2758
                      $EGREP ": [^:]* bundle" >/dev/null ; then
 
2759
                      $echo "** Warning, lib $linklib is a module, not a shared library"
 
2760
                      if test -z "$old_library" ; then
 
2761
                        $echo
 
2762
                        $echo "** And there doesn't seem to be a static archive available"
 
2763
                        $echo "** The link will probably fail, sorry"
 
2764
                      else
 
2765
                        add="$dir/$old_library"
 
2766
                      fi
 
2767
                    fi
 
2768
                esac
 
2769
              elif test "$hardcode_minus_L" = no; then
 
2770
                case $host in
 
2771
                *-*-sunos*) add_shlibpath="$dir" ;;
 
2772
                esac
 
2773
                add_dir="-L$dir"
 
2774
                add="-l$name"
 
2775
              elif test "$hardcode_shlibpath_var" = no; then
 
2776
                add_shlibpath="$dir"
 
2777
                add="-l$name"
 
2778
              else
 
2779
                lib_linked=no
 
2780
              fi
 
2781
              ;;
 
2782
            relink)
 
2783
              if test "$hardcode_direct" = yes; then
 
2784
                add="$dir/$linklib"
 
2785
              elif test "$hardcode_minus_L" = yes; then
 
2786
                add_dir="-L$dir"
 
2787
                # Try looking first in the location we're being installed to.
 
2788
                if test -n "$inst_prefix_dir"; then
 
2789
                  case $libdir in
 
2790
                    [\\/]*)
 
2791
                      add_dir="$add_dir -L$inst_prefix_dir$libdir"
 
2792
                      ;;
 
2793
                  esac
 
2794
                fi
 
2795
                add="-l$name"
 
2796
              elif test "$hardcode_shlibpath_var" = yes; then
 
2797
                add_shlibpath="$dir"
 
2798
                add="-l$name"
 
2799
              else
 
2800
                lib_linked=no
 
2801
              fi
 
2802
              ;;
 
2803
            *) lib_linked=no ;;
 
2804
            esac
 
2805
 
 
2806
            if test "$lib_linked" != yes; then
 
2807
              $echo "$modename: configuration error: unsupported hardcode properties"
 
2808
              exit $EXIT_FAILURE
 
2809
            fi
 
2810
 
 
2811
            if test -n "$add_shlibpath"; then
 
2812
              case :$compile_shlibpath: in
 
2813
              *":$add_shlibpath:"*) ;;
 
2814
              *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 
2815
              esac
 
2816
            fi
 
2817
            if test "$linkmode" = prog; then
 
2818
              test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 
2819
              test -n "$add" && compile_deplibs="$add $compile_deplibs"
 
2820
            else
 
2821
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
 
2822
              test -n "$add" && deplibs="$add $deplibs"
 
2823
              if test "$hardcode_direct" != yes && \
 
2824
                 test "$hardcode_minus_L" != yes && \
 
2825
                 test "$hardcode_shlibpath_var" = yes; then
 
2826
                case :$finalize_shlibpath: in
 
2827
                *":$libdir:"*) ;;
 
2828
                *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 
2829
                esac
 
2830
              fi
 
2831
            fi
 
2832
          fi
 
2833
 
 
2834
          if test "$linkmode" = prog || test "$mode" = relink; then
 
2835
            add_shlibpath=
 
2836
            add_dir=
 
2837
            add=
 
2838
            # Finalize command for both is simple: just hardcode it.
 
2839
            if test "$hardcode_direct" = yes; then
 
2840
              add="$libdir/$linklib"
 
2841
            elif test "$hardcode_minus_L" = yes; then
 
2842
              add_dir="-L$libdir"
 
2843
              add="-l$name"
 
2844
            elif test "$hardcode_shlibpath_var" = yes; then
 
2845
              case :$finalize_shlibpath: in
 
2846
              *":$libdir:"*) ;;
 
2847
              *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 
2848
              esac
 
2849
              add="-l$name"
 
2850
            elif test "$hardcode_automatic" = yes; then
 
2851
              if test -n "$inst_prefix_dir" &&
 
2852
                 test -f "$inst_prefix_dir$libdir/$linklib" ; then
 
2853
                add="$inst_prefix_dir$libdir/$linklib"
 
2854
              else
 
2855
                add="$libdir/$linklib"
 
2856
              fi
 
2857
            else
 
2858
              # We cannot seem to hardcode it, guess we'll fake it.
 
2859
              add_dir="-L$libdir"
 
2860
              # Try looking first in the location we're being installed to.
 
2861
              if test -n "$inst_prefix_dir"; then
 
2862
                case $libdir in
 
2863
                  [\\/]*)
 
2864
                    add_dir="$add_dir -L$inst_prefix_dir$libdir"
 
2865
                    ;;
 
2866
                esac
 
2867
              fi
 
2868
              add="-l$name"
 
2869
            fi
 
2870
 
 
2871
            if test "$linkmode" = prog; then
 
2872
              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 
2873
              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 
2874
            else
 
2875
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
 
2876
              test -n "$add" && deplibs="$add $deplibs"
 
2877
            fi
 
2878
          fi
 
2879
        elif test "$linkmode" = prog; then
 
2880
          # Here we assume that one of hardcode_direct or hardcode_minus_L
 
2881
          # is not unsupported.  This is valid on all known static and
 
2882
          # shared platforms.
 
2883
          if test "$hardcode_direct" != unsupported; then
 
2884
            test -n "$old_library" && linklib="$old_library"
 
2885
            compile_deplibs="$dir/$linklib $compile_deplibs"
 
2886
            finalize_deplibs="$dir/$linklib $finalize_deplibs"
 
2887
          else
 
2888
            compile_deplibs="-l$name -L$dir $compile_deplibs"
 
2889
            finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 
2890
          fi
 
2891
        elif test "$build_libtool_libs" = yes; then
 
2892
          # Not a shared library
 
2893
          if test "$deplibs_check_method" != pass_all; then
 
2894
            # We're trying link a shared library against a static one
 
2895
            # but the system doesn't support it.
 
2896
 
 
2897
            # Just print a warning and add the library to dependency_libs so
 
2898
            # that the program can be linked against the static library.
 
2899
            $echo
 
2900
            $echo "*** Warning: This system can not link to static lib archive $lib."
 
2901
            $echo "*** I have the capability to make that library automatically link in when"
 
2902
            $echo "*** you link to this library.  But I can only do this if you have a"
 
2903
            $echo "*** shared version of the library, which you do not appear to have."
 
2904
            if test "$module" = yes; then
 
2905
              $echo "*** But as you try to build a module library, libtool will still create "
 
2906
              $echo "*** a static module, that should work as long as the dlopening application"
 
2907
              $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 
2908
              if test -z "$global_symbol_pipe"; then
 
2909
                $echo
 
2910
                $echo "*** However, this would only work if libtool was able to extract symbol"
 
2911
                $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
2912
                $echo "*** not find such a program.  So, this module is probably useless."
 
2913
                $echo "*** \`nm' from GNU binutils and a full rebuild may help."
 
2914
              fi
 
2915
              if test "$build_old_libs" = no; then
 
2916
                build_libtool_libs=module
 
2917
                build_old_libs=yes
 
2918
              else
 
2919
                build_libtool_libs=no
 
2920
              fi
 
2921
            fi
 
2922
          else
 
2923
            deplibs="$dir/$old_library $deplibs"
 
2924
            link_static=yes
 
2925
          fi
 
2926
        fi # link shared/static library?
 
2927
 
 
2928
        if test "$linkmode" = lib; then
 
2929
          if test -n "$dependency_libs" &&
 
2930
             { test "$hardcode_into_libs" != yes ||
 
2931
               test "$build_old_libs" = yes ||
 
2932
               test "$link_static" = yes; }; then
 
2933
            # Extract -R from dependency_libs
 
2934
            temp_deplibs=
 
2935
            for libdir in $dependency_libs; do
 
2936
              case $libdir in
 
2937
              -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
 
2938
                   case " $xrpath " in
 
2939
                   *" $temp_xrpath "*) ;;
 
2940
                   *) xrpath="$xrpath $temp_xrpath";;
 
2941
                   esac;;
 
2942
              *) temp_deplibs="$temp_deplibs $libdir";;
 
2943
              esac
 
2944
            done
 
2945
            dependency_libs="$temp_deplibs"
 
2946
          fi
 
2947
 
 
2948
          newlib_search_path="$newlib_search_path $absdir"
 
2949
          # Link against this library
 
2950
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 
2951
          # ... and its dependency_libs
 
2952
          tmp_libs=
 
2953
          for deplib in $dependency_libs; do
 
2954
            newdependency_libs="$deplib $newdependency_libs"
 
2955
            if test "X$duplicate_deps" = "Xyes" ; then
 
2956
              case "$tmp_libs " in
 
2957
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2958
              esac
 
2959
            fi
 
2960
            tmp_libs="$tmp_libs $deplib"
 
2961
          done
 
2962
 
 
2963
          if test "$link_all_deplibs" != no; then
 
2964
            # Add the search paths of all dependency libraries
 
2965
            for deplib in $dependency_libs; do
 
2966
              case $deplib in
 
2967
              -L*) path="$deplib" ;;
 
2968
              *.la)
 
2969
                dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
 
2970
                test "X$dir" = "X$deplib" && dir="."
 
2971
                # We need an absolute path.
 
2972
                case $dir in
 
2973
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
 
2974
                *)
 
2975
                  absdir=`cd "$dir" && pwd`
 
2976
                  if test -z "$absdir"; then
 
2977
                    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
 
2978
                    absdir="$dir"
 
2979
                  fi
 
2980
                  ;;
 
2981
                esac
 
2982
                if grep "^installed=no" $deplib > /dev/null; then
 
2983
                  path="$absdir/$objdir"
 
2984
                else
 
2985
                  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 
2986
                  if test -z "$libdir"; then
 
2987
                    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
 
2988
                    exit $EXIT_FAILURE
 
2989
                  fi
 
2990
                  if test "$absdir" != "$libdir"; then
 
2991
                    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
 
2992
                  fi
 
2993
                  path="$absdir"
 
2994
                fi
 
2995
                depdepl=
 
2996
                case $host in
 
2997
                *-*-darwin*)
 
2998
                  # we do not want to link against static libs,
 
2999
                  # but need to link against shared
 
3000
                  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
 
3001
                  if test -n "$deplibrary_names" ; then
 
3002
                    for tmp in $deplibrary_names ; do
 
3003
                      depdepl=$tmp
 
3004
                    done
 
3005
                    if test -f "$path/$depdepl" ; then
 
3006
                      depdepl="$path/$depdepl"
 
3007
                    fi
 
3008
                    # do not add paths which are already there
 
3009
                    case " $newlib_search_path " in
 
3010
                    *" $path "*) ;;
 
3011
                    *) newlib_search_path="$newlib_search_path $path";;
 
3012
                    esac
 
3013
                  fi
 
3014
                  path=""
 
3015
                  ;;
 
3016
                *)
 
3017
                  path="-L$path"
 
3018
                  ;;
 
3019
                esac
 
3020
                ;;
 
3021
              -l*)
 
3022
                case $host in
 
3023
                *-*-darwin*)
 
3024
                  # Again, we only want to link against shared libraries
 
3025
                  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
 
3026
                  for tmp in $newlib_search_path ; do
 
3027
                    if test -f "$tmp/lib$tmp_libs.dylib" ; then
 
3028
                      eval depdepl="$tmp/lib$tmp_libs.dylib"
 
3029
                      break
 
3030
                    fi
 
3031
                  done
 
3032
                  path=""
 
3033
                  ;;
 
3034
                *) continue ;;
 
3035
                esac
 
3036
                ;;
 
3037
              *) continue ;;
 
3038
              esac
 
3039
              case " $deplibs " in
 
3040
              *" $path "*) ;;
 
3041
              *) deplibs="$path $deplibs" ;;
 
3042
              esac
 
3043
              case " $deplibs " in
 
3044
              *" $depdepl "*) ;;
 
3045
              *) deplibs="$depdepl $deplibs" ;;
 
3046
              esac
 
3047
            done
 
3048
          fi # link_all_deplibs != no
 
3049
        fi # linkmode = lib
 
3050
      done # for deplib in $libs
 
3051
      dependency_libs="$newdependency_libs"
 
3052
      if test "$pass" = dlpreopen; then
 
3053
        # Link the dlpreopened libraries before other libraries
 
3054
        for deplib in $save_deplibs; do
 
3055
          deplibs="$deplib $deplibs"
 
3056
        done
 
3057
      fi
 
3058
      if test "$pass" != dlopen; then
 
3059
        if test "$pass" != conv; then
 
3060
          # Make sure lib_search_path contains only unique directories.
 
3061
          lib_search_path=
 
3062
          for dir in $newlib_search_path; do
 
3063
            case "$lib_search_path " in
 
3064
            *" $dir "*) ;;
 
3065
            *) lib_search_path="$lib_search_path $dir" ;;
 
3066
            esac
 
3067
          done
 
3068
          newlib_search_path=
 
3069
        fi
 
3070
 
 
3071
        if test "$linkmode,$pass" != "prog,link"; then
 
3072
          vars="deplibs"
 
3073
        else
 
3074
          vars="compile_deplibs finalize_deplibs"
 
3075
        fi
 
3076
        for var in $vars dependency_libs; do
 
3077
          # Add libraries to $var in reverse order
 
3078
          eval tmp_libs=\"\$$var\"
 
3079
          new_libs=
 
3080
          for deplib in $tmp_libs; do
 
3081
            # FIXME: Pedantically, this is the right thing to do, so
 
3082
            #        that some nasty dependency loop isn't accidentally
 
3083
            #        broken:
 
3084
            #new_libs="$deplib $new_libs"
 
3085
            # Pragmatically, this seems to cause very few problems in
 
3086
            # practice:
 
3087
            case $deplib in
 
3088
            -L*) new_libs="$deplib $new_libs" ;;
 
3089
            -R*) ;;
 
3090
            *)
 
3091
              # And here is the reason: when a library appears more
 
3092
              # than once as an explicit dependence of a library, or
 
3093
              # is implicitly linked in more than once by the
 
3094
              # compiler, it is considered special, and multiple
 
3095
              # occurrences thereof are not removed.  Compare this
 
3096
              # with having the same library being listed as a
 
3097
              # dependency of multiple other libraries: in this case,
 
3098
              # we know (pedantically, we assume) the library does not
 
3099
              # need to be listed more than once, so we keep only the
 
3100
              # last copy.  This is not always right, but it is rare
 
3101
              # enough that we require users that really mean to play
 
3102
              # such unportable linking tricks to link the library
 
3103
              # using -Wl,-lname, so that libtool does not consider it
 
3104
              # for duplicate removal.
 
3105
              case " $specialdeplibs " in
 
3106
              *" $deplib "*) new_libs="$deplib $new_libs" ;;
 
3107
              *)
 
3108
                case " $new_libs " in
 
3109
                *" $deplib "*) ;;
 
3110
                *) new_libs="$deplib $new_libs" ;;
 
3111
                esac
 
3112
                ;;
 
3113
              esac
 
3114
              ;;
 
3115
            esac
 
3116
          done
 
3117
          tmp_libs=
 
3118
          for deplib in $new_libs; do
 
3119
            case $deplib in
 
3120
            -L*)
 
3121
              case " $tmp_libs " in
 
3122
              *" $deplib "*) ;;
 
3123
              *) tmp_libs="$tmp_libs $deplib" ;;
 
3124
              esac
 
3125
              ;;
 
3126
            *) tmp_libs="$tmp_libs $deplib" ;;
 
3127
            esac
 
3128
          done
 
3129
          eval $var=\"$tmp_libs\"
 
3130
        done # for var
 
3131
      fi
 
3132
      # Last step: remove runtime libs from dependency_libs
 
3133
      # (they stay in deplibs)
 
3134
      tmp_libs=
 
3135
      for i in $dependency_libs ; do
 
3136
        case " $predeps $postdeps $compiler_lib_search_path " in
 
3137
        *" $i "*)
 
3138
          i=""
 
3139
          ;;
 
3140
        esac
 
3141
        if test -n "$i" ; then
 
3142
          tmp_libs="$tmp_libs $i"
 
3143
        fi
 
3144
      done
 
3145
      dependency_libs=$tmp_libs
 
3146
    done # for pass
 
3147
    if test "$linkmode" = prog; then
 
3148
      dlfiles="$newdlfiles"
 
3149
      dlprefiles="$newdlprefiles"
 
3150
    fi
 
3151
 
 
3152
    case $linkmode in
 
3153
    oldlib)
 
3154
      if test -n "$deplibs"; then
 
3155
        $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
 
3156
      fi
 
3157
 
 
3158
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 
3159
        $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
 
3160
      fi
 
3161
 
 
3162
      if test -n "$rpath"; then
 
3163
        $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
 
3164
      fi
 
3165
 
 
3166
      if test -n "$xrpath"; then
 
3167
        $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
 
3168
      fi
 
3169
 
 
3170
      if test -n "$vinfo"; then
 
3171
        $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
 
3172
      fi
 
3173
 
 
3174
      if test -n "$release"; then
 
3175
        $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
 
3176
      fi
 
3177
 
 
3178
      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 
3179
        $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
 
3180
      fi
 
3181
 
 
3182
      # Now set the variables for building old libraries.
 
3183
      build_libtool_libs=no
 
3184
      oldlibs="$output"
 
3185
      objs="$objs$old_deplibs"
 
3186
      ;;
 
3187
 
 
3188
    lib)
 
3189
      # Make sure we only generate libraries of the form `libNAME.la'.
 
3190
      case $outputname in
 
3191
      lib*)
 
3192
        name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
3193
        eval shared_ext=\"$shrext_cmds\"
 
3194
        eval libname=\"$libname_spec\"
 
3195
        ;;
 
3196
      *)
 
3197
        if test "$module" = no; then
 
3198
          $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
 
3199
          $echo "$help" 1>&2
 
3200
          exit $EXIT_FAILURE
 
3201
        fi
 
3202
        if test "$need_lib_prefix" != no; then
 
3203
          # Add the "lib" prefix for modules if required
 
3204
          name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
 
3205
          eval shared_ext=\"$shrext_cmds\"
 
3206
          eval libname=\"$libname_spec\"
 
3207
        else
 
3208
          libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
 
3209
        fi
 
3210
        ;;
 
3211
      esac
 
3212
 
 
3213
      if test -n "$objs"; then
 
3214
        if test "$deplibs_check_method" != pass_all; then
 
3215
          $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
 
3216
          exit $EXIT_FAILURE
 
3217
        else
 
3218
          $echo
 
3219
          $echo "*** Warning: Linking the shared library $output against the non-libtool"
 
3220
          $echo "*** objects $objs is not portable!"
 
3221
          libobjs="$libobjs $objs"
 
3222
        fi
 
3223
      fi
 
3224
 
 
3225
      if test "$dlself" != no; then
 
3226
        $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
 
3227
      fi
 
3228
 
 
3229
      set dummy $rpath
 
3230
      if test "$#" -gt 2; then
 
3231
        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
 
3232
      fi
 
3233
      install_libdir="$2"
 
3234
 
 
3235
      oldlibs=
 
3236
      if test -z "$rpath"; then
 
3237
        if test "$build_libtool_libs" = yes; then
 
3238
          # Building a libtool convenience library.
 
3239
          # Some compilers have problems with a `.al' extension so
 
3240
          # convenience libraries should have the same extension an
 
3241
          # archive normally would.
 
3242
          oldlibs="$output_objdir/$libname.$libext $oldlibs"
 
3243
          build_libtool_libs=convenience
 
3244
          build_old_libs=yes
 
3245
        fi
 
3246
 
 
3247
        if test -n "$vinfo"; then
 
3248
          $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
 
3249
        fi
 
3250
 
 
3251
        if test -n "$release"; then
 
3252
          $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
 
3253
        fi
 
3254
      else
 
3255
 
 
3256
        # Parse the version information argument.
 
3257
        save_ifs="$IFS"; IFS=':'
 
3258
        set dummy $vinfo 0 0 0
 
3259
        IFS="$save_ifs"
 
3260
 
 
3261
        if test -n "$8"; then
 
3262
          $echo "$modename: too many parameters to \`-version-info'" 1>&2
 
3263
          $echo "$help" 1>&2
 
3264
          exit $EXIT_FAILURE
 
3265
        fi
 
3266
 
 
3267
        # convert absolute version numbers to libtool ages
 
3268
        # this retains compatibility with .la files and attempts
 
3269
        # to make the code below a bit more comprehensible
 
3270
 
 
3271
        case $vinfo_number in
 
3272
        yes)
 
3273
          number_major="$2"
 
3274
          number_minor="$3"
 
3275
          number_revision="$4"
 
3276
          #
 
3277
          # There are really only two kinds -- those that
 
3278
          # use the current revision as the major version
 
3279
          # and those that subtract age and use age as
 
3280
          # a minor version.  But, then there is irix
 
3281
          # which has an extra 1 added just for fun
 
3282
          #
 
3283
          case $version_type in
 
3284
          darwin|linux|osf|windows|none)
 
3285
            current=`expr $number_major + $number_minor`
 
3286
            age="$number_minor"
 
3287
            revision="$number_revision"
 
3288
            ;;
 
3289
          freebsd-aout|freebsd-elf|sunos)
 
3290
            current="$number_major"
 
3291
            revision="$number_minor"
 
3292
            age="0"
 
3293
            ;;
 
3294
          irix|nonstopux)
 
3295
            current=`expr $number_major + $number_minor`
 
3296
            age="$number_minor"
 
3297
            revision="$number_minor"
 
3298
            lt_irix_increment=no
 
3299
            ;;
 
3300
          esac
 
3301
          ;;
 
3302
        no)
 
3303
          current="$2"
 
3304
          revision="$3"
 
3305
          age="$4"
 
3306
          ;;
 
3307
        esac
 
3308
 
 
3309
        # Check that each of the things are valid numbers.
 
3310
        case $current in
 
3311
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 
3312
        *)
 
3313
          $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
 
3314
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3315
          exit $EXIT_FAILURE
 
3316
          ;;
 
3317
        esac
 
3318
 
 
3319
        case $revision in
 
3320
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 
3321
        *)
 
3322
          $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
 
3323
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3324
          exit $EXIT_FAILURE
 
3325
          ;;
 
3326
        esac
 
3327
 
 
3328
        case $age in
 
3329
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
 
3330
        *)
 
3331
          $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
 
3332
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3333
          exit $EXIT_FAILURE
 
3334
          ;;
 
3335
        esac
 
3336
 
 
3337
        if test "$age" -gt "$current"; then
 
3338
          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
 
3339
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3340
          exit $EXIT_FAILURE
 
3341
        fi
 
3342
 
 
3343
        # Calculate the version variables.
 
3344
        major=
 
3345
        versuffix=
 
3346
        verstring=
 
3347
        case $version_type in
 
3348
        none) ;;
 
3349
 
 
3350
        darwin)
 
3351
          # Like Linux, but with the current version available in
 
3352
          # verstring for coding it into the library header
 
3353
          major=.`expr $current - $age`
 
3354
          versuffix="$major.$age.$revision"
 
3355
          # Darwin ld doesn't like 0 for these options...
 
3356
          minor_current=`expr $current + 1`
 
3357
          xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
 
3358
          verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
 
3359
          ;;
 
3360
 
 
3361
        freebsd-aout)
 
3362
          major=".$current"
 
3363
          versuffix=".$current.$revision";
 
3364
          ;;
 
3365
 
 
3366
        freebsd-elf)
 
3367
          major=".$current"
 
3368
          versuffix=".$current";
 
3369
          ;;
 
3370
 
 
3371
        irix | nonstopux)
 
3372
          if test "X$lt_irix_increment" = "Xno"; then
 
3373
            major=`expr $current - $age`
 
3374
          else
 
3375
            major=`expr $current - $age + 1`
 
3376
          fi
 
3377
          case $version_type in
 
3378
            nonstopux) verstring_prefix=nonstopux ;;
 
3379
            *)         verstring_prefix=sgi ;;
 
3380
          esac
 
3381
          verstring="$verstring_prefix$major.$revision"
 
3382
 
 
3383
          # Add in all the interfaces that we are compatible with.
 
3384
          loop=$revision
 
3385
          while test "$loop" -ne 0; do
 
3386
            iface=`expr $revision - $loop`
 
3387
            loop=`expr $loop - 1`
 
3388
            verstring="$verstring_prefix$major.$iface:$verstring"
 
3389
          done
 
3390
 
 
3391
          # Before this point, $major must not contain `.'.
 
3392
          major=.$major
 
3393
          versuffix="$major.$revision"
 
3394
          ;;
 
3395
 
 
3396
        linux)
 
3397
          major=.`expr $current - $age`
 
3398
          versuffix="$major.$age.$revision"
 
3399
          ;;
 
3400
 
 
3401
        osf)
 
3402
          major=.`expr $current - $age`
 
3403
          versuffix=".$current.$age.$revision"
 
3404
          verstring="$current.$age.$revision"
 
3405
 
 
3406
          # Add in all the interfaces that we are compatible with.
 
3407
          loop=$age
 
3408
          while test "$loop" -ne 0; do
 
3409
            iface=`expr $current - $loop`
 
3410
            loop=`expr $loop - 1`
 
3411
            verstring="$verstring:${iface}.0"
 
3412
          done
 
3413
 
 
3414
          # Make executables depend on our current version.
 
3415
          verstring="$verstring:${current}.0"
 
3416
          ;;
 
3417
 
 
3418
        sunos)
 
3419
          major=".$current"
 
3420
          versuffix=".$current.$revision"
 
3421
          ;;
 
3422
 
 
3423
        windows)
 
3424
          # Use '-' rather than '.', since we only want one
 
3425
          # extension on DOS 8.3 filesystems.
 
3426
          major=`expr $current - $age`
 
3427
          versuffix="-$major"
 
3428
          ;;
 
3429
 
 
3430
        *)
 
3431
          $echo "$modename: unknown library version type \`$version_type'" 1>&2
 
3432
          $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
 
3433
          exit $EXIT_FAILURE
 
3434
          ;;
 
3435
        esac
 
3436
 
 
3437
        # Clear the version info if we defaulted, and they specified a release.
 
3438
        if test -z "$vinfo" && test -n "$release"; then
 
3439
          major=
 
3440
          case $version_type in
 
3441
          darwin)
 
3442
            # we can't check for "0.0" in archive_cmds due to quoting
 
3443
            # problems, so we reset it completely
 
3444
            verstring=
 
3445
            ;;
 
3446
          *)
 
3447
            verstring="0.0"
 
3448
            ;;
 
3449
          esac
 
3450
          if test "$need_version" = no; then
 
3451
            versuffix=
 
3452
          else
 
3453
            versuffix=".0.0"
 
3454
          fi
 
3455
        fi
 
3456
 
 
3457
        # Remove version info from name if versioning should be avoided
 
3458
        if test "$avoid_version" = yes && test "$need_version" = no; then
 
3459
          major=
 
3460
          versuffix=
 
3461
          verstring=""
 
3462
        fi
 
3463
 
 
3464
        # Check to see if the archive will have undefined symbols.
 
3465
        if test "$allow_undefined" = yes; then
 
3466
          if test "$allow_undefined_flag" = unsupported; then
 
3467
            $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
 
3468
            build_libtool_libs=no
 
3469
            build_old_libs=yes
 
3470
          fi
 
3471
        else
 
3472
          # Don't allow undefined symbols.
 
3473
          allow_undefined_flag="$no_undefined_flag"
 
3474
        fi
 
3475
      fi
 
3476
 
 
3477
      if test "$mode" != relink; then
 
3478
        # Remove our outputs, but don't remove object files since they
 
3479
        # may have been created when compiling PIC objects.
 
3480
        removelist=
 
3481
        tempremovelist=`$echo "$output_objdir/*"`
 
3482
        for p in $tempremovelist; do
 
3483
          case $p in
 
3484
            *.$objext)
 
3485
               ;;
 
3486
            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
 
3487
               if test "X$precious_files_regex" != "X"; then
 
3488
                 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 
3489
                 then
 
3490
                   continue
 
3491
                 fi
 
3492
               fi
 
3493
               removelist="$removelist $p"
 
3494
               ;;
 
3495
            *) ;;
 
3496
          esac
 
3497
        done
 
3498
        if test -n "$removelist"; then
 
3499
          $show "${rm}r $removelist"
 
3500
          $run ${rm}r $removelist
 
3501
        fi
 
3502
      fi
 
3503
 
 
3504
      # Now set the variables for building old libraries.
 
3505
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
 
3506
        oldlibs="$oldlibs $output_objdir/$libname.$libext"
 
3507
 
 
3508
        # Transform .lo files to .o files.
 
3509
        oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 
3510
      fi
 
3511
 
 
3512
      # Eliminate all temporary directories.
 
3513
      #for path in $notinst_path; do
 
3514
      # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
 
3515
      # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
 
3516
      # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
 
3517
      #done
 
3518
 
 
3519
      if test -n "$xrpath"; then
 
3520
        # If the user specified any rpath flags, then add them.
 
3521
        temp_xrpath=
 
3522
        for libdir in $xrpath; do
 
3523
          temp_xrpath="$temp_xrpath -R$libdir"
 
3524
          case "$finalize_rpath " in
 
3525
          *" $libdir "*) ;;
 
3526
          *) finalize_rpath="$finalize_rpath $libdir" ;;
 
3527
          esac
 
3528
        done
 
3529
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
 
3530
          dependency_libs="$temp_xrpath $dependency_libs"
 
3531
        fi
 
3532
      fi
 
3533
 
 
3534
      # Make sure dlfiles contains only unique files that won't be dlpreopened
 
3535
      old_dlfiles="$dlfiles"
 
3536
      dlfiles=
 
3537
      for lib in $old_dlfiles; do
 
3538
        case " $dlprefiles $dlfiles " in
 
3539
        *" $lib "*) ;;
 
3540
        *) dlfiles="$dlfiles $lib" ;;
 
3541
        esac
 
3542
      done
 
3543
 
 
3544
      # Make sure dlprefiles contains only unique files
 
3545
      old_dlprefiles="$dlprefiles"
 
3546
      dlprefiles=
 
3547
      for lib in $old_dlprefiles; do
 
3548
        case "$dlprefiles " in
 
3549
        *" $lib "*) ;;
 
3550
        *) dlprefiles="$dlprefiles $lib" ;;
 
3551
        esac
 
3552
      done
 
3553
 
 
3554
      if test "$build_libtool_libs" = yes; then
 
3555
        if test -n "$rpath"; then
 
3556
          case $host in
 
3557
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
 
3558
            # these systems don't actually have a c library (as such)!
 
3559
            ;;
 
3560
          *-*-rhapsody* | *-*-darwin1.[012])
 
3561
            # Rhapsody C library is in the System framework
 
3562
            deplibs="$deplibs -framework System"
 
3563
            ;;
 
3564
          *-*-netbsd*)
 
3565
            # Don't link with libc until the a.out ld.so is fixed.
 
3566
            ;;
 
3567
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 
3568
            # Do not include libc due to us having libc/libc_r.
 
3569
            ;;
 
3570
          *-*-sco3.2v5* | *-*-sco5v6*)
 
3571
            # Causes problems with __ctype
 
3572
            ;;
 
3573
          *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
 
3574
            # Compiler inserts libc in the correct place for threads to work
 
3575
            ;;
 
3576
          *)
 
3577
            # Add libc to deplibs on all other systems if necessary.
 
3578
            if test "$build_libtool_need_lc" = "yes"; then
 
3579
              deplibs="$deplibs -lc"
 
3580
            fi
 
3581
            ;;
 
3582
          esac
 
3583
        fi
 
3584
 
 
3585
        # Transform deplibs into only deplibs that can be linked in shared.
 
3586
        name_save=$name
 
3587
        libname_save=$libname
 
3588
        release_save=$release
 
3589
        versuffix_save=$versuffix
 
3590
        major_save=$major
 
3591
        # I'm not sure if I'm treating the release correctly.  I think
 
3592
        # release should show up in the -l (ie -lgmp5) so we don't want to
 
3593
        # add it in twice.  Is that correct?
 
3594
        release=""
 
3595
        versuffix=""
 
3596
        major=""
 
3597
        newdeplibs=
 
3598
        droppeddeps=no
 
3599
        case $deplibs_check_method in
 
3600
        pass_all)
 
3601
          # Don't check for shared/static.  Everything works.
 
3602
          # This might be a little naive.  We might want to check
 
3603
          # whether the library exists or not.  But this is on
 
3604
          # osf3 & osf4 and I'm not really sure... Just
 
3605
          # implementing what was already the behavior.
 
3606
          newdeplibs=$deplibs
 
3607
          ;;
 
3608
        test_compile)
 
3609
          # This code stresses the "libraries are programs" paradigm to its
 
3610
          # limits. Maybe even breaks it.  We compile a program, linking it
 
3611
          # against the deplibs as a proxy for the library.  Then we can check
 
3612
          # whether they linked in statically or dynamically with ldd.
 
3613
          $rm conftest.c
 
3614
          cat > conftest.c <<EOF
 
3615
          int main() { return 0; }
 
3616
EOF
 
3617
          $rm conftest
 
3618
          if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
 
3619
            ldd_output=`ldd conftest`
 
3620
            for i in $deplibs; do
 
3621
              name=`expr $i : '-l\(.*\)'`
 
3622
              # If $name is empty we are operating on a -L argument.
 
3623
              if test "$name" != "" && test "$name" != "0"; then
 
3624
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3625
                  case " $predeps $postdeps " in
 
3626
                  *" $i "*)
 
3627
                    newdeplibs="$newdeplibs $i"
 
3628
                    i=""
 
3629
                    ;;
 
3630
                  esac
 
3631
                fi
 
3632
                if test -n "$i" ; then
 
3633
                  libname=`eval \\$echo \"$libname_spec\"`
 
3634
                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
 
3635
                  set dummy $deplib_matches
 
3636
                  deplib_match=$2
 
3637
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 
3638
                    newdeplibs="$newdeplibs $i"
 
3639
                  else
 
3640
                    droppeddeps=yes
 
3641
                    $echo
 
3642
                    $echo "*** Warning: dynamic linker does not accept needed library $i."
 
3643
                    $echo "*** I have the capability to make that library automatically link in when"
 
3644
                    $echo "*** you link to this library.  But I can only do this if you have a"
 
3645
                    $echo "*** shared version of the library, which I believe you do not have"
 
3646
                    $echo "*** because a test_compile did reveal that the linker did not use it for"
 
3647
                    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
 
3648
                  fi
 
3649
                fi
 
3650
              else
 
3651
                newdeplibs="$newdeplibs $i"
 
3652
              fi
 
3653
            done
 
3654
          else
 
3655
            # Error occurred in the first compile.  Let's try to salvage
 
3656
            # the situation: Compile a separate program for each library.
 
3657
            for i in $deplibs; do
 
3658
              name=`expr $i : '-l\(.*\)'`
 
3659
              # If $name is empty we are operating on a -L argument.
 
3660
              if test "$name" != "" && test "$name" != "0"; then
 
3661
                $rm conftest
 
3662
                if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 
3663
                  ldd_output=`ldd conftest`
 
3664
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3665
                    case " $predeps $postdeps " in
 
3666
                    *" $i "*)
 
3667
                      newdeplibs="$newdeplibs $i"
 
3668
                      i=""
 
3669
                      ;;
 
3670
                    esac
 
3671
                  fi
 
3672
                  if test -n "$i" ; then
 
3673
                    libname=`eval \\$echo \"$libname_spec\"`
 
3674
                    deplib_matches=`eval \\$echo \"$library_names_spec\"`
 
3675
                    set dummy $deplib_matches
 
3676
                    deplib_match=$2
 
3677
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 
3678
                      newdeplibs="$newdeplibs $i"
 
3679
                    else
 
3680
                      droppeddeps=yes
 
3681
                      $echo
 
3682
                      $echo "*** Warning: dynamic linker does not accept needed library $i."
 
3683
                      $echo "*** I have the capability to make that library automatically link in when"
 
3684
                      $echo "*** you link to this library.  But I can only do this if you have a"
 
3685
                      $echo "*** shared version of the library, which you do not appear to have"
 
3686
                      $echo "*** because a test_compile did reveal that the linker did not use this one"
 
3687
                      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
 
3688
                    fi
 
3689
                  fi
 
3690
                else
 
3691
                  droppeddeps=yes
 
3692
                  $echo
 
3693
                  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
 
3694
                  $echo "*** make it link in!  You will probably need to install it or some"
 
3695
                  $echo "*** library that it depends on before this library will be fully"
 
3696
                  $echo "*** functional.  Installing it before continuing would be even better."
 
3697
                fi
 
3698
              else
 
3699
                newdeplibs="$newdeplibs $i"
 
3700
              fi
 
3701
            done
 
3702
          fi
 
3703
          ;;
 
3704
        file_magic*)
 
3705
          set dummy $deplibs_check_method
 
3706
          file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
 
3707
          for a_deplib in $deplibs; do
 
3708
            name=`expr $a_deplib : '-l\(.*\)'`
 
3709
            # If $name is empty we are operating on a -L argument.
 
3710
            if test "$name" != "" && test  "$name" != "0"; then
 
3711
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3712
                case " $predeps $postdeps " in
 
3713
                *" $a_deplib "*)
 
3714
                  newdeplibs="$newdeplibs $a_deplib"
 
3715
                  a_deplib=""
 
3716
                  ;;
 
3717
                esac
 
3718
              fi
 
3719
              if test -n "$a_deplib" ; then
 
3720
                libname=`eval \\$echo \"$libname_spec\"`
 
3721
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 
3722
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 
3723
                  for potent_lib in $potential_libs; do
 
3724
                      # Follow soft links.
 
3725
                      if ls -lLd "$potent_lib" 2>/dev/null \
 
3726
                         | grep " -> " >/dev/null; then
 
3727
                        continue
 
3728
                      fi
 
3729
                      # The statement above tries to avoid entering an
 
3730
                      # endless loop below, in case of cyclic links.
 
3731
                      # We might still enter an endless loop, since a link
 
3732
                      # loop can be closed while we follow links,
 
3733
                      # but so what?
 
3734
                      potlib="$potent_lib"
 
3735
                      while test -h "$potlib" 2>/dev/null; do
 
3736
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 
3737
                        case $potliblink in
 
3738
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
 
3739
                        *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 
3740
                        esac
 
3741
                      done
 
3742
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
 
3743
                         | ${SED} 10q \
 
3744
                         | $EGREP "$file_magic_regex" > /dev/null; then
 
3745
                        newdeplibs="$newdeplibs $a_deplib"
 
3746
                        a_deplib=""
 
3747
                        break 2
 
3748
                      fi
 
3749
                  done
 
3750
                done
 
3751
              fi
 
3752
              if test -n "$a_deplib" ; then
 
3753
                droppeddeps=yes
 
3754
                $echo
 
3755
                $echo "*** Warning: linker path does not have real file for library $a_deplib."
 
3756
                $echo "*** I have the capability to make that library automatically link in when"
 
3757
                $echo "*** you link to this library.  But I can only do this if you have a"
 
3758
                $echo "*** shared version of the library, which you do not appear to have"
 
3759
                $echo "*** because I did check the linker path looking for a file starting"
 
3760
                if test -z "$potlib" ; then
 
3761
                  $echo "*** with $libname but no candidates were found. (...for file magic test)"
 
3762
                else
 
3763
                  $echo "*** with $libname and none of the candidates passed a file format test"
 
3764
                  $echo "*** using a file magic. Last file checked: $potlib"
 
3765
                fi
 
3766
              fi
 
3767
            else
 
3768
              # Add a -L argument.
 
3769
              newdeplibs="$newdeplibs $a_deplib"
 
3770
            fi
 
3771
          done # Gone through all deplibs.
 
3772
          ;;
 
3773
        match_pattern*)
 
3774
          set dummy $deplibs_check_method
 
3775
          match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
 
3776
          for a_deplib in $deplibs; do
 
3777
            name=`expr $a_deplib : '-l\(.*\)'`
 
3778
            # If $name is empty we are operating on a -L argument.
 
3779
            if test -n "$name" && test "$name" != "0"; then
 
3780
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3781
                case " $predeps $postdeps " in
 
3782
                *" $a_deplib "*)
 
3783
                  newdeplibs="$newdeplibs $a_deplib"
 
3784
                  a_deplib=""
 
3785
                  ;;
 
3786
                esac
 
3787
              fi
 
3788
              if test -n "$a_deplib" ; then
 
3789
                libname=`eval \\$echo \"$libname_spec\"`
 
3790
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 
3791
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 
3792
                  for potent_lib in $potential_libs; do
 
3793
                    potlib="$potent_lib" # see symlink-check above in file_magic test
 
3794
                    if eval $echo \"$potent_lib\" 2>/dev/null \
 
3795
                        | ${SED} 10q \
 
3796
                        | $EGREP "$match_pattern_regex" > /dev/null; then
 
3797
                      newdeplibs="$newdeplibs $a_deplib"
 
3798
                      a_deplib=""
 
3799
                      break 2
 
3800
                    fi
 
3801
                  done
 
3802
                done
 
3803
              fi
 
3804
              if test -n "$a_deplib" ; then
 
3805
                droppeddeps=yes
 
3806
                $echo
 
3807
                $echo "*** Warning: linker path does not have real file for library $a_deplib."
 
3808
                $echo "*** I have the capability to make that library automatically link in when"
 
3809
                $echo "*** you link to this library.  But I can only do this if you have a"
 
3810
                $echo "*** shared version of the library, which you do not appear to have"
 
3811
                $echo "*** because I did check the linker path looking for a file starting"
 
3812
                if test -z "$potlib" ; then
 
3813
                  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
 
3814
                else
 
3815
                  $echo "*** with $libname and none of the candidates passed a file format test"
 
3816
                  $echo "*** using a regex pattern. Last file checked: $potlib"
 
3817
                fi
 
3818
              fi
 
3819
            else
 
3820
              # Add a -L argument.
 
3821
              newdeplibs="$newdeplibs $a_deplib"
 
3822
            fi
 
3823
          done # Gone through all deplibs.
 
3824
          ;;
 
3825
        none | unknown | *)
 
3826
          newdeplibs=""
 
3827
          tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
 
3828
            -e 's/ -[LR][^ ]*//g'`
 
3829
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3830
            for i in $predeps $postdeps ; do
 
3831
              # can't use Xsed below, because $i might contain '/'
 
3832
              tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
 
3833
            done
 
3834
          fi
 
3835
          if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
 
3836
            | grep . >/dev/null; then
 
3837
            $echo
 
3838
            if test "X$deplibs_check_method" = "Xnone"; then
 
3839
              $echo "*** Warning: inter-library dependencies are not supported in this platform."
 
3840
            else
 
3841
              $echo "*** Warning: inter-library dependencies are not known to be supported."
 
3842
            fi
 
3843
            $echo "*** All declared inter-library dependencies are being dropped."
 
3844
            droppeddeps=yes
 
3845
          fi
 
3846
          ;;
 
3847
        esac
 
3848
        versuffix=$versuffix_save
 
3849
        major=$major_save
 
3850
        release=$release_save
 
3851
        libname=$libname_save
 
3852
        name=$name_save
 
3853
 
 
3854
        case $host in
 
3855
        *-*-rhapsody* | *-*-darwin1.[012])
 
3856
          # On Rhapsody replace the C library is the System framework
 
3857
          newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
 
3858
          ;;
 
3859
        esac
 
3860
 
 
3861
        if test "$droppeddeps" = yes; then
 
3862
          if test "$module" = yes; then
 
3863
            $echo
 
3864
            $echo "*** Warning: libtool could not satisfy all declared inter-library"
 
3865
            $echo "*** dependencies of module $libname.  Therefore, libtool will create"
 
3866
            $echo "*** a static module, that should work as long as the dlopening"
 
3867
            $echo "*** application is linked with the -dlopen flag."
 
3868
            if test -z "$global_symbol_pipe"; then
 
3869
              $echo
 
3870
              $echo "*** However, this would only work if libtool was able to extract symbol"
 
3871
              $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
3872
              $echo "*** not find such a program.  So, this module is probably useless."
 
3873
              $echo "*** \`nm' from GNU binutils and a full rebuild may help."
 
3874
            fi
 
3875
            if test "$build_old_libs" = no; then
 
3876
              oldlibs="$output_objdir/$libname.$libext"
 
3877
              build_libtool_libs=module
 
3878
              build_old_libs=yes
 
3879
            else
 
3880
              build_libtool_libs=no
 
3881
            fi
 
3882
          else
 
3883
            $echo "*** The inter-library dependencies that have been dropped here will be"
 
3884
            $echo "*** automatically added whenever a program is linked with this library"
 
3885
            $echo "*** or is declared to -dlopen it."
 
3886
 
 
3887
            if test "$allow_undefined" = no; then
 
3888
              $echo
 
3889
              $echo "*** Since this library must not contain undefined symbols,"
 
3890
              $echo "*** because either the platform does not support them or"
 
3891
              $echo "*** it was explicitly requested with -no-undefined,"
 
3892
              $echo "*** libtool will only create a static version of it."
 
3893
              if test "$build_old_libs" = no; then
 
3894
                oldlibs="$output_objdir/$libname.$libext"
 
3895
                build_libtool_libs=module
 
3896
                build_old_libs=yes
 
3897
              else
 
3898
                build_libtool_libs=no
 
3899
              fi
 
3900
            fi
 
3901
          fi
 
3902
        fi
 
3903
        # Done checking deplibs!
 
3904
        deplibs=$newdeplibs
 
3905
      fi
 
3906
 
 
3907
 
 
3908
      # move library search paths that coincide with paths to not yet
 
3909
      # installed libraries to the beginning of the library search list
 
3910
      new_libs=
 
3911
      for path in $notinst_path; do
 
3912
        case " $new_libs " in
 
3913
        *" -L$path/$objdir "*) ;;
 
3914
        *)
 
3915
          case " $deplibs " in
 
3916
          *" -L$path/$objdir "*)
 
3917
            new_libs="$new_libs -L$path/$objdir" ;;
 
3918
          esac
 
3919
          ;;
 
3920
        esac
 
3921
      done
 
3922
      for deplib in $deplibs; do
 
3923
        case $deplib in
 
3924
        -L*)
 
3925
          case " $new_libs " in
 
3926
          *" $deplib "*) ;;
 
3927
          *) new_libs="$new_libs $deplib" ;;
 
3928
          esac
 
3929
          ;;
 
3930
        *) new_libs="$new_libs $deplib" ;;
 
3931
        esac
 
3932
      done
 
3933
      deplibs="$new_libs"
 
3934
 
 
3935
 
 
3936
      # All the library-specific variables (install_libdir is set above).
 
3937
      library_names=
 
3938
      old_library=
 
3939
      dlname=
 
3940
 
 
3941
      # Test again, we may have decided not to build it any more
 
3942
      if test "$build_libtool_libs" = yes; then
 
3943
        if test "$hardcode_into_libs" = yes; then
 
3944
          # Hardcode the library paths
 
3945
          hardcode_libdirs=
 
3946
          dep_rpath=
 
3947
          rpath="$finalize_rpath"
 
3948
          test "$mode" != relink && rpath="$compile_rpath$rpath"
 
3949
          for libdir in $rpath; do
 
3950
            if test -n "$hardcode_libdir_flag_spec"; then
 
3951
              if test -n "$hardcode_libdir_separator"; then
 
3952
                if test -z "$hardcode_libdirs"; then
 
3953
                  hardcode_libdirs="$libdir"
 
3954
                else
 
3955
                  # Just accumulate the unique libdirs.
 
3956
                  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 
3957
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 
3958
                    ;;
 
3959
                  *)
 
3960
                    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
3961
                    ;;
 
3962
                  esac
 
3963
                fi
 
3964
              else
 
3965
                eval flag=\"$hardcode_libdir_flag_spec\"
 
3966
                dep_rpath="$dep_rpath $flag"
 
3967
              fi
 
3968
            elif test -n "$runpath_var"; then
 
3969
              case "$perm_rpath " in
 
3970
              *" $libdir "*) ;;
 
3971
              *) perm_rpath="$perm_rpath $libdir" ;;
 
3972
              esac
 
3973
            fi
 
3974
          done
 
3975
          # Substitute the hardcoded libdirs into the rpath.
 
3976
          if test -n "$hardcode_libdir_separator" &&
 
3977
             test -n "$hardcode_libdirs"; then
 
3978
            libdir="$hardcode_libdirs"
 
3979
            if test -n "$hardcode_libdir_flag_spec_ld"; then
 
3980
              case $archive_cmds in
 
3981
              *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
 
3982
              *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
 
3983
              esac
 
3984
            else
 
3985
              eval dep_rpath=\"$hardcode_libdir_flag_spec\"
 
3986
            fi
 
3987
          fi
 
3988
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
 
3989
            # We should set the runpath_var.
 
3990
            rpath=
 
3991
            for dir in $perm_rpath; do
 
3992
              rpath="$rpath$dir:"
 
3993
            done
 
3994
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 
3995
          fi
 
3996
          test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 
3997
        fi
 
3998
 
 
3999
        shlibpath="$finalize_shlibpath"
 
4000
        test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 
4001
        if test -n "$shlibpath"; then
 
4002
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 
4003
        fi
 
4004
 
 
4005
        # Get the real and link names of the library.
 
4006
        eval shared_ext=\"$shrext_cmds\"
 
4007
        eval library_names=\"$library_names_spec\"
 
4008
        set dummy $library_names
 
4009
        realname="$2"
 
4010
        shift; shift
 
4011
 
 
4012
        if test -n "$soname_spec"; then
 
4013
          eval soname=\"$soname_spec\"
 
4014
        else
 
4015
          soname="$realname"
 
4016
        fi
 
4017
        if test -z "$dlname"; then
 
4018
          dlname=$soname
 
4019
        fi
 
4020
 
 
4021
        lib="$output_objdir/$realname"
 
4022
        linknames=
 
4023
        for link
 
4024
        do
 
4025
          linknames="$linknames $link"
 
4026
        done
 
4027
 
 
4028
        # Use standard objects if they are pic
 
4029
        test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4030
 
 
4031
        # Prepare the list of exported symbols
 
4032
        if test -z "$export_symbols"; then
 
4033
          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
 
4034
            $show "generating symbol list for \`$libname.la'"
 
4035
            export_symbols="$output_objdir/$libname.exp"
 
4036
            $run $rm $export_symbols
 
4037
            cmds=$export_symbols_cmds
 
4038
            save_ifs="$IFS"; IFS='~'
 
4039
            for cmd in $cmds; do
 
4040
              IFS="$save_ifs"
 
4041
              eval cmd=\"$cmd\"
 
4042
              if len=`expr "X$cmd" : ".*"` &&
 
4043
               test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 
4044
                $show "$cmd"
 
4045
                $run eval "$cmd" || exit $?
 
4046
                skipped_export=false
 
4047
              else
 
4048
                # The command line is too long to execute in one step.
 
4049
                $show "using reloadable object file for export list..."
 
4050
                skipped_export=:
 
4051
                # Break out early, otherwise skipped_export may be
 
4052
                # set to false by a later but shorter cmd.
 
4053
                break
 
4054
              fi
 
4055
            done
 
4056
            IFS="$save_ifs"
 
4057
            if test -n "$export_symbols_regex"; then
 
4058
              $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
 
4059
              $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 
4060
              $show "$mv \"${export_symbols}T\" \"$export_symbols\""
 
4061
              $run eval '$mv "${export_symbols}T" "$export_symbols"'
 
4062
            fi
 
4063
          fi
 
4064
        fi
 
4065
 
 
4066
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
 
4067
          $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
 
4068
        fi
 
4069
 
 
4070
        tmp_deplibs=
 
4071
        for test_deplib in $deplibs; do
 
4072
                case " $convenience " in
 
4073
                *" $test_deplib "*) ;;
 
4074
                *)
 
4075
                        tmp_deplibs="$tmp_deplibs $test_deplib"
 
4076
                        ;;
 
4077
                esac
 
4078
        done
 
4079
        deplibs="$tmp_deplibs"
 
4080
 
 
4081
        if test -n "$convenience"; then
 
4082
          if test -n "$whole_archive_flag_spec"; then
 
4083
            save_libobjs=$libobjs
 
4084
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 
4085
          else
 
4086
            gentop="$output_objdir/${outputname}x"
 
4087
            generated="$generated $gentop"
 
4088
 
 
4089
            func_extract_archives $gentop $convenience
 
4090
            libobjs="$libobjs $func_extract_archives_result"
 
4091
          fi
 
4092
        fi
 
4093
        
 
4094
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 
4095
          eval flag=\"$thread_safe_flag_spec\"
 
4096
          linker_flags="$linker_flags $flag"
 
4097
        fi
 
4098
 
 
4099
        # Make a backup of the uninstalled library when relinking
 
4100
        if test "$mode" = relink; then
 
4101
          $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
 
4102
        fi
 
4103
 
 
4104
        # Do each of the archive commands.
 
4105
        if test "$module" = yes && test -n "$module_cmds" ; then
 
4106
          if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 
4107
            eval test_cmds=\"$module_expsym_cmds\"
 
4108
            cmds=$module_expsym_cmds
 
4109
          else
 
4110
            eval test_cmds=\"$module_cmds\"
 
4111
            cmds=$module_cmds
 
4112
          fi
 
4113
        else
 
4114
        if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 
4115
          eval test_cmds=\"$archive_expsym_cmds\"
 
4116
          cmds=$archive_expsym_cmds
 
4117
        else
 
4118
          eval test_cmds=\"$archive_cmds\"
 
4119
          cmds=$archive_cmds
 
4120
          fi
 
4121
        fi
 
4122
 
 
4123
        if test "X$skipped_export" != "X:" &&
 
4124
           len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 
4125
           test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 
4126
          :
 
4127
        else
 
4128
          # The command line is too long to link in one step, link piecewise.
 
4129
          $echo "creating reloadable object files..."
 
4130
 
 
4131
          # Save the value of $output and $libobjs because we want to
 
4132
          # use them later.  If we have whole_archive_flag_spec, we
 
4133
          # want to use save_libobjs as it was before
 
4134
          # whole_archive_flag_spec was expanded, because we can't
 
4135
          # assume the linker understands whole_archive_flag_spec.
 
4136
          # This may have to be revisited, in case too many
 
4137
          # convenience libraries get linked in and end up exceeding
 
4138
          # the spec.
 
4139
          if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
 
4140
            save_libobjs=$libobjs
 
4141
          fi
 
4142
          save_output=$output
 
4143
          output_la=`$echo "X$output" | $Xsed -e "$basename"`
 
4144
 
 
4145
          # Clear the reloadable object creation command queue and
 
4146
          # initialize k to one.
 
4147
          test_cmds=
 
4148
          concat_cmds=
 
4149
          objlist=
 
4150
          delfiles=
 
4151
          last_robj=
 
4152
          k=1
 
4153
          output=$output_objdir/$output_la-${k}.$objext
 
4154
          # Loop over the list of objects to be linked.
 
4155
          for obj in $save_libobjs
 
4156
          do
 
4157
            eval test_cmds=\"$reload_cmds $objlist $last_robj\"
 
4158
            if test "X$objlist" = X ||
 
4159
               { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 
4160
                 test "$len" -le "$max_cmd_len"; }; then
 
4161
              objlist="$objlist $obj"
 
4162
            else
 
4163
              # The command $test_cmds is almost too long, add a
 
4164
              # command to the queue.
 
4165
              if test "$k" -eq 1 ; then
 
4166
                # The first file doesn't have a previous command to add.
 
4167
                eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 
4168
              else
 
4169
                # All subsequent reloadable object files will link in
 
4170
                # the last one created.
 
4171
                eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
 
4172
              fi
 
4173
              last_robj=$output_objdir/$output_la-${k}.$objext
 
4174
              k=`expr $k + 1`
 
4175
              output=$output_objdir/$output_la-${k}.$objext
 
4176
              objlist=$obj
 
4177
              len=1
 
4178
            fi
 
4179
          done
 
4180
          # Handle the remaining objects by creating one last
 
4181
          # reloadable object file.  All subsequent reloadable object
 
4182
          # files will link in the last one created.
 
4183
          test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 
4184
          eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 
4185
 
 
4186
          if ${skipped_export-false}; then
 
4187
            $show "generating symbol list for \`$libname.la'"
 
4188
            export_symbols="$output_objdir/$libname.exp"
 
4189
            $run $rm $export_symbols
 
4190
            libobjs=$output
 
4191
            # Append the command to create the export file.
 
4192
            eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
 
4193
          fi
 
4194
 
 
4195
          # Set up a command to remove the reloadable object files
 
4196
          # after they are used.
 
4197
          i=0
 
4198
          while test "$i" -lt "$k"
 
4199
          do
 
4200
            i=`expr $i + 1`
 
4201
            delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
 
4202
          done
 
4203
 
 
4204
          $echo "creating a temporary reloadable object file: $output"
 
4205
 
 
4206
          # Loop through the commands generated above and execute them.
 
4207
          save_ifs="$IFS"; IFS='~'
 
4208
          for cmd in $concat_cmds; do
 
4209
            IFS="$save_ifs"
 
4210
            $show "$cmd"
 
4211
            $run eval "$cmd" || exit $?
 
4212
          done
 
4213
          IFS="$save_ifs"
 
4214
 
 
4215
          libobjs=$output
 
4216
          # Restore the value of output.
 
4217
          output=$save_output
 
4218
 
 
4219
          if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
 
4220
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 
4221
          fi
 
4222
          # Expand the library linking commands again to reset the
 
4223
          # value of $libobjs for piecewise linking.
 
4224
 
 
4225
          # Do each of the archive commands.
 
4226
          if test "$module" = yes && test -n "$module_cmds" ; then
 
4227
            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 
4228
              cmds=$module_expsym_cmds
 
4229
            else
 
4230
              cmds=$module_cmds
 
4231
            fi
 
4232
          else
 
4233
          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 
4234
            cmds=$archive_expsym_cmds
 
4235
          else
 
4236
            cmds=$archive_cmds
 
4237
            fi
 
4238
          fi
 
4239
 
 
4240
          # Append the command to remove the reloadable object files
 
4241
          # to the just-reset $cmds.
 
4242
          eval cmds=\"\$cmds~\$rm $delfiles\"
 
4243
        fi
 
4244
        save_ifs="$IFS"; IFS='~'
 
4245
        for cmd in $cmds; do
 
4246
          IFS="$save_ifs"
 
4247
          eval cmd=\"$cmd\"
 
4248
          $show "$cmd"
 
4249
          $run eval "$cmd" || {
 
4250
            lt_exit=$?
 
4251
 
 
4252
            # Restore the uninstalled library and exit
 
4253
            if test "$mode" = relink; then
 
4254
              $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
 
4255
            fi
 
4256
 
 
4257
            exit $lt_exit
 
4258
          }
 
4259
        done
 
4260
        IFS="$save_ifs"
 
4261
 
 
4262
        # Restore the uninstalled library and exit
 
4263
        if test "$mode" = relink; then
 
4264
          $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
 
4265
 
 
4266
          if test -n "$convenience"; then
 
4267
            if test -z "$whole_archive_flag_spec"; then
 
4268
              $show "${rm}r $gentop"
 
4269
              $run ${rm}r "$gentop"
 
4270
            fi
 
4271
          fi
 
4272
 
 
4273
          exit $EXIT_SUCCESS
 
4274
        fi
 
4275
 
 
4276
        # Create links to the real library.
 
4277
        for linkname in $linknames; do
 
4278
          if test "$realname" != "$linkname"; then
 
4279
            $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
 
4280
            $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
 
4281
          fi
 
4282
        done
 
4283
 
 
4284
        # If -module or -export-dynamic was specified, set the dlname.
 
4285
        if test "$module" = yes || test "$export_dynamic" = yes; then
 
4286
          # On all known operating systems, these are identical.
 
4287
          dlname="$soname"
 
4288
        fi
 
4289
      fi
 
4290
      ;;
 
4291
 
 
4292
    obj)
 
4293
      if test -n "$deplibs"; then
 
4294
        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
 
4295
      fi
 
4296
 
 
4297
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 
4298
        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
 
4299
      fi
 
4300
 
 
4301
      if test -n "$rpath"; then
 
4302
        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
 
4303
      fi
 
4304
 
 
4305
      if test -n "$xrpath"; then
 
4306
        $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
 
4307
      fi
 
4308
 
 
4309
      if test -n "$vinfo"; then
 
4310
        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
 
4311
      fi
 
4312
 
 
4313
      if test -n "$release"; then
 
4314
        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
 
4315
      fi
 
4316
 
 
4317
      case $output in
 
4318
      *.lo)
 
4319
        if test -n "$objs$old_deplibs"; then
 
4320
          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
 
4321
          exit $EXIT_FAILURE
 
4322
        fi
 
4323
        libobj="$output"
 
4324
        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
 
4325
        ;;
 
4326
      *)
 
4327
        libobj=
 
4328
        obj="$output"
 
4329
        ;;
 
4330
      esac
 
4331
 
 
4332
      # Delete the old objects.
 
4333
      $run $rm $obj $libobj
 
4334
 
 
4335
      # Objects from convenience libraries.  This assumes
 
4336
      # single-version convenience libraries.  Whenever we create
 
4337
      # different ones for PIC/non-PIC, this we'll have to duplicate
 
4338
      # the extraction.
 
4339
      reload_conv_objs=
 
4340
      gentop=
 
4341
      # reload_cmds runs $LD directly, so let us get rid of
 
4342
      # -Wl from whole_archive_flag_spec and hope we can get by with
 
4343
      # turning comma into space..
 
4344
      wl=
 
4345
 
 
4346
      if test -n "$convenience"; then
 
4347
        if test -n "$whole_archive_flag_spec"; then
 
4348
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
 
4349
          reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 
4350
        else
 
4351
          gentop="$output_objdir/${obj}x"
 
4352
          generated="$generated $gentop"
 
4353
 
 
4354
          func_extract_archives $gentop $convenience
 
4355
          reload_conv_objs="$reload_objs $func_extract_archives_result"
 
4356
        fi
 
4357
      fi
 
4358
 
 
4359
      # Create the old-style object.
 
4360
      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
 
4361
 
 
4362
      output="$obj"
 
4363
      cmds=$reload_cmds
 
4364
      save_ifs="$IFS"; IFS='~'
 
4365
      for cmd in $cmds; do
 
4366
        IFS="$save_ifs"
 
4367
        eval cmd=\"$cmd\"
 
4368
        $show "$cmd"
 
4369
        $run eval "$cmd" || exit $?
 
4370
      done
 
4371
      IFS="$save_ifs"
 
4372
 
 
4373
      # Exit if we aren't doing a library object file.
 
4374
      if test -z "$libobj"; then
 
4375
        if test -n "$gentop"; then
 
4376
          $show "${rm}r $gentop"
 
4377
          $run ${rm}r $gentop
 
4378
        fi
 
4379
 
 
4380
        exit $EXIT_SUCCESS
 
4381
      fi
 
4382
 
 
4383
      if test "$build_libtool_libs" != yes; then
 
4384
        if test -n "$gentop"; then
 
4385
          $show "${rm}r $gentop"
 
4386
          $run ${rm}r $gentop
 
4387
        fi
 
4388
 
 
4389
        # Create an invalid libtool object if no PIC, so that we don't
 
4390
        # accidentally link it into a program.
 
4391
        # $show "echo timestamp > $libobj"
 
4392
        # $run eval "echo timestamp > $libobj" || exit $?
 
4393
        exit $EXIT_SUCCESS
 
4394
      fi
 
4395
 
 
4396
      if test -n "$pic_flag" || test "$pic_mode" != default; then
 
4397
        # Only do commands if we really have different PIC objects.
 
4398
        reload_objs="$libobjs $reload_conv_objs"
 
4399
        output="$libobj"
 
4400
        cmds=$reload_cmds
 
4401
        save_ifs="$IFS"; IFS='~'
 
4402
        for cmd in $cmds; do
 
4403
          IFS="$save_ifs"
 
4404
          eval cmd=\"$cmd\"
 
4405
          $show "$cmd"
 
4406
          $run eval "$cmd" || exit $?
 
4407
        done
 
4408
        IFS="$save_ifs"
 
4409
      fi
 
4410
 
 
4411
      if test -n "$gentop"; then
 
4412
        $show "${rm}r $gentop"
 
4413
        $run ${rm}r $gentop
 
4414
      fi
 
4415
 
 
4416
      exit $EXIT_SUCCESS
 
4417
      ;;
 
4418
 
 
4419
    prog)
 
4420
      case $host in
 
4421
        *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
 
4422
      esac
 
4423
      if test -n "$vinfo"; then
 
4424
        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
 
4425
      fi
 
4426
 
 
4427
      if test -n "$release"; then
 
4428
        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
 
4429
      fi
 
4430
 
 
4431
      if test "$preload" = yes; then
 
4432
        if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
 
4433
           test "$dlopen_self_static" = unknown; then
 
4434
          $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
 
4435
        fi
 
4436
      fi
 
4437
 
 
4438
      case $host in
 
4439
      *-*-rhapsody* | *-*-darwin1.[012])
 
4440
        # On Rhapsody replace the C library is the System framework
 
4441
        compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
 
4442
        finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
 
4443
        ;;
 
4444
      esac
 
4445
 
 
4446
      case $host in
 
4447
      *darwin*)
 
4448
        # Don't allow lazy linking, it breaks C++ global constructors
 
4449
        if test "$tagname" = CXX ; then
 
4450
        compile_command="$compile_command ${wl}-bind_at_load"
 
4451
        finalize_command="$finalize_command ${wl}-bind_at_load"
 
4452
        fi
 
4453
        ;;
 
4454
      esac
 
4455
 
 
4456
 
 
4457
      # move library search paths that coincide with paths to not yet
 
4458
      # installed libraries to the beginning of the library search list
 
4459
      new_libs=
 
4460
      for path in $notinst_path; do
 
4461
        case " $new_libs " in
 
4462
        *" -L$path/$objdir "*) ;;
 
4463
        *)
 
4464
          case " $compile_deplibs " in
 
4465
          *" -L$path/$objdir "*)
 
4466
            new_libs="$new_libs -L$path/$objdir" ;;
 
4467
          esac
 
4468
          ;;
 
4469
        esac
 
4470
      done
 
4471
      for deplib in $compile_deplibs; do
 
4472
        case $deplib in
 
4473
        -L*)
 
4474
          case " $new_libs " in
 
4475
          *" $deplib "*) ;;
 
4476
          *) new_libs="$new_libs $deplib" ;;
 
4477
          esac
 
4478
          ;;
 
4479
        *) new_libs="$new_libs $deplib" ;;
 
4480
        esac
 
4481
      done
 
4482
      compile_deplibs="$new_libs"
 
4483
 
 
4484
 
 
4485
      compile_command="$compile_command $compile_deplibs"
 
4486
      finalize_command="$finalize_command $finalize_deplibs"
 
4487
 
 
4488
      if test -n "$rpath$xrpath"; then
 
4489
        # If the user specified any rpath flags, then add them.
 
4490
        for libdir in $rpath $xrpath; do
 
4491
          # This is the magic to use -rpath.
 
4492
          case "$finalize_rpath " in
 
4493
          *" $libdir "*) ;;
 
4494
          *) finalize_rpath="$finalize_rpath $libdir" ;;
 
4495
          esac
 
4496
        done
 
4497
      fi
 
4498
 
 
4499
      # Now hardcode the library paths
 
4500
      rpath=
 
4501
      hardcode_libdirs=
 
4502
      for libdir in $compile_rpath $finalize_rpath; do
 
4503
        if test -n "$hardcode_libdir_flag_spec"; then
 
4504
          if test -n "$hardcode_libdir_separator"; then
 
4505
            if test -z "$hardcode_libdirs"; then
 
4506
              hardcode_libdirs="$libdir"
 
4507
            else
 
4508
              # Just accumulate the unique libdirs.
 
4509
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 
4510
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 
4511
                ;;
 
4512
              *)
 
4513
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
4514
                ;;
 
4515
              esac
 
4516
            fi
 
4517
          else
 
4518
            eval flag=\"$hardcode_libdir_flag_spec\"
 
4519
            rpath="$rpath $flag"
 
4520
          fi
 
4521
        elif test -n "$runpath_var"; then
 
4522
          case "$perm_rpath " in
 
4523
          *" $libdir "*) ;;
 
4524
          *) perm_rpath="$perm_rpath $libdir" ;;
 
4525
          esac
 
4526
        fi
 
4527
        case $host in
 
4528
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
4529
          testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
 
4530
          case :$dllsearchpath: in
 
4531
          *":$libdir:"*) ;;
 
4532
          *) dllsearchpath="$dllsearchpath:$libdir";;
 
4533
          esac
 
4534
          case :$dllsearchpath: in
 
4535
          *":$testbindir:"*) ;;
 
4536
          *) dllsearchpath="$dllsearchpath:$testbindir";;
 
4537
          esac
 
4538
          ;;
 
4539
        esac
 
4540
      done
 
4541
      # Substitute the hardcoded libdirs into the rpath.
 
4542
      if test -n "$hardcode_libdir_separator" &&
 
4543
         test -n "$hardcode_libdirs"; then
 
4544
        libdir="$hardcode_libdirs"
 
4545
        eval rpath=\" $hardcode_libdir_flag_spec\"
 
4546
      fi
 
4547
      compile_rpath="$rpath"
 
4548
 
 
4549
      rpath=
 
4550
      hardcode_libdirs=
 
4551
      for libdir in $finalize_rpath; do
 
4552
        if test -n "$hardcode_libdir_flag_spec"; then
 
4553
          if test -n "$hardcode_libdir_separator"; then
 
4554
            if test -z "$hardcode_libdirs"; then
 
4555
              hardcode_libdirs="$libdir"
 
4556
            else
 
4557
              # Just accumulate the unique libdirs.
 
4558
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 
4559
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 
4560
                ;;
 
4561
              *)
 
4562
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
4563
                ;;
 
4564
              esac
 
4565
            fi
 
4566
          else
 
4567
            eval flag=\"$hardcode_libdir_flag_spec\"
 
4568
            rpath="$rpath $flag"
 
4569
          fi
 
4570
        elif test -n "$runpath_var"; then
 
4571
          case "$finalize_perm_rpath " in
 
4572
          *" $libdir "*) ;;
 
4573
          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 
4574
          esac
 
4575
        fi
 
4576
      done
 
4577
      # Substitute the hardcoded libdirs into the rpath.
 
4578
      if test -n "$hardcode_libdir_separator" &&
 
4579
         test -n "$hardcode_libdirs"; then
 
4580
        libdir="$hardcode_libdirs"
 
4581
        eval rpath=\" $hardcode_libdir_flag_spec\"
 
4582
      fi
 
4583
      finalize_rpath="$rpath"
 
4584
 
 
4585
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
 
4586
        # Transform all the library objects into standard objects.
 
4587
        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4588
        finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4589
      fi
 
4590
 
 
4591
      dlsyms=
 
4592
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 
4593
        if test -n "$NM" && test -n "$global_symbol_pipe"; then
 
4594
          dlsyms="${outputname}S.c"
 
4595
        else
 
4596
          $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
 
4597
        fi
 
4598
      fi
 
4599
 
 
4600
      if test -n "$dlsyms"; then
 
4601
        case $dlsyms in
 
4602
        "") ;;
 
4603
        *.c)
 
4604
          # Discover the nlist of each of the dlfiles.
 
4605
          nlist="$output_objdir/${outputname}.nm"
 
4606
 
 
4607
          $show "$rm $nlist ${nlist}S ${nlist}T"
 
4608
          $run $rm "$nlist" "${nlist}S" "${nlist}T"
 
4609
 
 
4610
          # Parse the name list into a source file.
 
4611
          $show "creating $output_objdir/$dlsyms"
 
4612
 
 
4613
          test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
 
4614
/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
 
4615
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
 
4616
 
 
4617
#ifdef __cplusplus
 
4618
extern \"C\" {
 
4619
#endif
 
4620
 
 
4621
/* Prevent the only kind of declaration conflicts we can make. */
 
4622
#define lt_preloaded_symbols some_other_symbol
 
4623
 
 
4624
/* External symbol declarations for the compiler. */\
 
4625
"
 
4626
 
 
4627
          if test "$dlself" = yes; then
 
4628
            $show "generating symbol list for \`$output'"
 
4629
 
 
4630
            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
 
4631
 
 
4632
            # Add our own program objects to the symbol list.
 
4633
            progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4634
            for arg in $progfiles; do
 
4635
              $show "extracting global C symbols from \`$arg'"
 
4636
              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
 
4637
            done
 
4638
 
 
4639
            if test -n "$exclude_expsyms"; then
 
4640
              $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
 
4641
              $run eval '$mv "$nlist"T "$nlist"'
 
4642
            fi
 
4643
 
 
4644
            if test -n "$export_symbols_regex"; then
 
4645
              $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
 
4646
              $run eval '$mv "$nlist"T "$nlist"'
 
4647
            fi
 
4648
 
 
4649
            # Prepare the list of exported symbols
 
4650
            if test -z "$export_symbols"; then
 
4651
              export_symbols="$output_objdir/$outputname.exp"
 
4652
              $run $rm $export_symbols
 
4653
              $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 
4654
              case $host in
 
4655
              *cygwin* | *mingw* )
 
4656
                $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 
4657
                $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
 
4658
                ;;
 
4659
              esac
 
4660
            else
 
4661
              $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 
4662
              $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 
4663
              $run eval 'mv "$nlist"T "$nlist"'
 
4664
              case $host in
 
4665
              *cygwin* | *mingw* )
 
4666
                $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 
4667
                $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 
4668
                ;;
 
4669
              esac
 
4670
            fi
 
4671
          fi
 
4672
 
 
4673
          for arg in $dlprefiles; do
 
4674
            $show "extracting global C symbols from \`$arg'"
 
4675
            name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
 
4676
            $run eval '$echo ": $name " >> "$nlist"'
 
4677
            $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
 
4678
          done
 
4679
 
 
4680
          if test -z "$run"; then
 
4681
            # Make sure we have at least an empty file.
 
4682
            test -f "$nlist" || : > "$nlist"
 
4683
 
 
4684
            if test -n "$exclude_expsyms"; then
 
4685
              $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
 
4686
              $mv "$nlist"T "$nlist"
 
4687
            fi
 
4688
 
 
4689
            # Try sorting and uniquifying the output.
 
4690
            if grep -v "^: " < "$nlist" |
 
4691
                if sort -k 3 </dev/null >/dev/null 2>&1; then
 
4692
                  sort -k 3
 
4693
                else
 
4694
                  sort +2
 
4695
                fi |
 
4696
                uniq > "$nlist"S; then
 
4697
              :
 
4698
            else
 
4699
              grep -v "^: " < "$nlist" > "$nlist"S
 
4700
            fi
 
4701
 
 
4702
            if test -f "$nlist"S; then
 
4703
              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
 
4704
            else
 
4705
              $echo '/* NONE */' >> "$output_objdir/$dlsyms"
 
4706
            fi
 
4707
 
 
4708
            $echo >> "$output_objdir/$dlsyms" "\
 
4709
 
 
4710
#undef lt_preloaded_symbols
 
4711
 
 
4712
#if defined (__STDC__) && __STDC__
 
4713
# define lt_ptr void *
 
4714
#else
 
4715
# define lt_ptr char *
 
4716
# define const
 
4717
#endif
 
4718
 
 
4719
/* The mapping between symbol names and symbols. */
 
4720
"
 
4721
 
 
4722
            case $host in
 
4723
            *cygwin* | *mingw* )
 
4724
          $echo >> "$output_objdir/$dlsyms" "\
 
4725
/* DATA imports from DLLs on WIN32 can't be const, because
 
4726
   runtime relocations are performed -- see ld's documentation
 
4727
   on pseudo-relocs */
 
4728
struct {
 
4729
"
 
4730
              ;;
 
4731
            * )
 
4732
          $echo >> "$output_objdir/$dlsyms" "\
 
4733
const struct {
 
4734
"
 
4735
              ;;
 
4736
            esac
 
4737
 
 
4738
 
 
4739
          $echo >> "$output_objdir/$dlsyms" "\
 
4740
  const char *name;
 
4741
  lt_ptr address;
 
4742
}
 
4743
lt_preloaded_symbols[] =
 
4744
{\
 
4745
"
 
4746
 
 
4747
            eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
 
4748
 
 
4749
            $echo >> "$output_objdir/$dlsyms" "\
 
4750
  {0, (lt_ptr) 0}
 
4751
};
 
4752
 
 
4753
/* This works around a problem in FreeBSD linker */
 
4754
#ifdef FREEBSD_WORKAROUND
 
4755
static const void *lt_preloaded_setup() {
 
4756
  return lt_preloaded_symbols;
 
4757
}
 
4758
#endif
 
4759
 
 
4760
#ifdef __cplusplus
 
4761
}
 
4762
#endif\
 
4763
"
 
4764
          fi
 
4765
 
 
4766
          pic_flag_for_symtable=
 
4767
          case $host in
 
4768
          # compiling the symbol table file with pic_flag works around
 
4769
          # a FreeBSD bug that causes programs to crash when -lm is
 
4770
          # linked before any other PIC object.  But we must not use
 
4771
          # pic_flag when linking with -static.  The problem exists in
 
4772
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
 
4773
          *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 
4774
            case "$compile_command " in
 
4775
            *" -static "*) ;;
 
4776
            *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
 
4777
            esac;;
 
4778
          *-*-hpux*)
 
4779
            case "$compile_command " in
 
4780
            *" -static "*) ;;
 
4781
            *) pic_flag_for_symtable=" $pic_flag";;
 
4782
            esac
 
4783
          esac
 
4784
 
 
4785
          # Now compile the dynamic symbol file.
 
4786
          $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
 
4787
          $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
 
4788
 
 
4789
          # Clean up the generated files.
 
4790
          $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
 
4791
          $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
 
4792
 
 
4793
          # Transform the symbol file into the correct name.
 
4794
          case $host in
 
4795
          *cygwin* | *mingw* )
 
4796
            if test -f "$output_objdir/${outputname}.def" ; then
 
4797
              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
 
4798
              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
 
4799
            else
 
4800
              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
 
4801
              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
 
4802
             fi
 
4803
            ;;
 
4804
          * )
 
4805
            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
 
4806
            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
 
4807
            ;;
 
4808
          esac
 
4809
          ;;
 
4810
        *-*-freebsd*)
 
4811
          # FreeBSD doesn't need this...
 
4812
          ;;
 
4813
        *)
 
4814
          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
 
4815
          exit $EXIT_FAILURE
 
4816
          ;;
 
4817
        esac
 
4818
      else
 
4819
        # We keep going just in case the user didn't refer to
 
4820
        # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
 
4821
        # really was required.
 
4822
 
 
4823
        # Nullify the symbol file.
 
4824
        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
 
4825
        finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
 
4826
      fi
 
4827
 
 
4828
      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 
4829
        # Replace the output file specification.
 
4830
        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
 
4831
        link_command="$compile_command$compile_rpath"
 
4832
 
 
4833
        # We have no uninstalled library dependencies, so finalize right now.
 
4834
        $show "$link_command"
 
4835
        $run eval "$link_command"
 
4836
        exit_status=$?
 
4837
 
 
4838
        # Delete the generated files.
 
4839
        if test -n "$dlsyms"; then
 
4840
          $show "$rm $output_objdir/${outputname}S.${objext}"
 
4841
          $run $rm "$output_objdir/${outputname}S.${objext}"
 
4842
        fi
 
4843
 
 
4844
        exit $exit_status
 
4845
      fi
 
4846
 
 
4847
      if test -n "$shlibpath_var"; then
 
4848
        # We should set the shlibpath_var
 
4849
        rpath=
 
4850
        for dir in $temp_rpath; do
 
4851
          case $dir in
 
4852
          [\\/]* | [A-Za-z]:[\\/]*)
 
4853
            # Absolute path.
 
4854
            rpath="$rpath$dir:"
 
4855
            ;;
 
4856
          *)
 
4857
            # Relative path: add a thisdir entry.
 
4858
            rpath="$rpath\$thisdir/$dir:"
 
4859
            ;;
 
4860
          esac
 
4861
        done
 
4862
        temp_rpath="$rpath"
 
4863
      fi
 
4864
 
 
4865
      if test -n "$compile_shlibpath$finalize_shlibpath"; then
 
4866
        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
 
4867
      fi
 
4868
      if test -n "$finalize_shlibpath"; then
 
4869
        finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
 
4870
      fi
 
4871
 
 
4872
      compile_var=
 
4873
      finalize_var=
 
4874
      if test -n "$runpath_var"; then
 
4875
        if test -n "$perm_rpath"; then
 
4876
          # We should set the runpath_var.
 
4877
          rpath=
 
4878
          for dir in $perm_rpath; do
 
4879
            rpath="$rpath$dir:"
 
4880
          done
 
4881
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 
4882
        fi
 
4883
        if test -n "$finalize_perm_rpath"; then
 
4884
          # We should set the runpath_var.
 
4885
          rpath=
 
4886
          for dir in $finalize_perm_rpath; do
 
4887
            rpath="$rpath$dir:"
 
4888
          done
 
4889
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 
4890
        fi
 
4891
      fi
 
4892
 
 
4893
      if test "$no_install" = yes; then
 
4894
        # We don't need to create a wrapper script.
 
4895
        link_command="$compile_var$compile_command$compile_rpath"
 
4896
        # Replace the output file specification.
 
4897
        link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
4898
        # Delete the old output file.
 
4899
        $run $rm $output
 
4900
        # Link the executable and exit
 
4901
        $show "$link_command"
 
4902
        $run eval "$link_command" || exit $?
 
4903
        exit $EXIT_SUCCESS
 
4904
      fi
 
4905
 
 
4906
      if test "$hardcode_action" = relink; then
 
4907
        # Fast installation is not supported
 
4908
        link_command="$compile_var$compile_command$compile_rpath"
 
4909
        relink_command="$finalize_var$finalize_command$finalize_rpath"
 
4910
 
 
4911
        $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
 
4912
        $echo "$modename: \`$output' will be relinked during installation" 1>&2
 
4913
      else
 
4914
        if test "$fast_install" != no; then
 
4915
          link_command="$finalize_var$compile_command$finalize_rpath"
 
4916
          if test "$fast_install" = yes; then
 
4917
            relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
 
4918
          else
 
4919
            # fast_install is set to needless
 
4920
            relink_command=
 
4921
          fi
 
4922
        else
 
4923
          link_command="$compile_var$compile_command$compile_rpath"
 
4924
          relink_command="$finalize_var$finalize_command$finalize_rpath"
 
4925
        fi
 
4926
      fi
 
4927
 
 
4928
      # Replace the output file specification.
 
4929
      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
4930
 
 
4931
      # Delete the old output files.
 
4932
      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
4933
 
 
4934
      $show "$link_command"
 
4935
      $run eval "$link_command" || exit $?
 
4936
 
 
4937
      # Now create the wrapper script.
 
4938
      $show "creating $output"
 
4939
 
 
4940
      # Quote the relink command for shipping.
 
4941
      if test -n "$relink_command"; then
 
4942
        # Preserve any variables that may affect compiler behavior
 
4943
        for var in $variables_saved_for_relink; do
 
4944
          if eval test -z \"\${$var+set}\"; then
 
4945
            relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
 
4946
          elif eval var_value=\$$var; test -z "$var_value"; then
 
4947
            relink_command="$var=; export $var; $relink_command"
 
4948
          else
 
4949
            var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
 
4950
            relink_command="$var=\"$var_value\"; export $var; $relink_command"
 
4951
          fi
 
4952
        done
 
4953
        relink_command="(cd `pwd`; $relink_command)"
 
4954
        relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
 
4955
      fi
 
4956
 
 
4957
      # Quote $echo for shipping.
 
4958
      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
 
4959
        case $progpath in
 
4960
        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
 
4961
        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
 
4962
        esac
 
4963
        qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
 
4964
      else
 
4965
        qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
 
4966
      fi
 
4967
 
 
4968
      # Only actually do things if our run command is non-null.
 
4969
      if test -z "$run"; then
 
4970
        # win32 will think the script is a binary if it has
 
4971
        # a .exe suffix, so we strip it off here.
 
4972
        case $output in
 
4973
          *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
 
4974
        esac
 
4975
        # test for cygwin because mv fails w/o .exe extensions
 
4976
        case $host in
 
4977
          *cygwin*)
 
4978
            exeext=.exe
 
4979
            outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
 
4980
          *) exeext= ;;
 
4981
        esac
 
4982
        case $host in
 
4983
          *cygwin* | *mingw* )
 
4984
            output_name=`basename $output`
 
4985
            output_path=`dirname $output`
 
4986
            cwrappersource="$output_path/$objdir/lt-$output_name.c"
 
4987
            cwrapper="$output_path/$output_name.exe"
 
4988
            $rm $cwrappersource $cwrapper
 
4989
            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
4990
 
 
4991
            cat > $cwrappersource <<EOF
 
4992
 
 
4993
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
 
4994
   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
4995
 
 
4996
   The $output program cannot be directly executed until all the libtool
 
4997
   libraries that it depends on are installed.
 
4998
 
 
4999
   This wrapper executable should never be moved out of the build directory.
 
5000
   If it is, it will not operate correctly.
 
5001
 
 
5002
   Currently, it simply execs the wrapper *script* "/bin/sh $output",
 
5003
   but could eventually absorb all of the scripts functionality and
 
5004
   exec $objdir/$outputname directly.
 
5005
*/
 
5006
EOF
 
5007
            cat >> $cwrappersource<<"EOF"
 
5008
#include <stdio.h>
 
5009
#include <stdlib.h>
 
5010
#include <unistd.h>
 
5011
#include <malloc.h>
 
5012
#include <stdarg.h>
 
5013
#include <assert.h>
 
5014
#include <string.h>
 
5015
#include <ctype.h>
 
5016
#include <sys/stat.h>
 
5017
 
 
5018
#if defined(PATH_MAX)
 
5019
# define LT_PATHMAX PATH_MAX
 
5020
#elif defined(MAXPATHLEN)
 
5021
# define LT_PATHMAX MAXPATHLEN
 
5022
#else
 
5023
# define LT_PATHMAX 1024
 
5024
#endif
 
5025
 
 
5026
#ifndef DIR_SEPARATOR
 
5027
# define DIR_SEPARATOR '/'
 
5028
# define PATH_SEPARATOR ':'
 
5029
#endif
 
5030
 
 
5031
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
 
5032
  defined (__OS2__)
 
5033
# define HAVE_DOS_BASED_FILE_SYSTEM
 
5034
# ifndef DIR_SEPARATOR_2
 
5035
#  define DIR_SEPARATOR_2 '\\'
 
5036
# endif
 
5037
# ifndef PATH_SEPARATOR_2
 
5038
#  define PATH_SEPARATOR_2 ';'
 
5039
# endif
 
5040
#endif
 
5041
 
 
5042
#ifndef DIR_SEPARATOR_2
 
5043
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
 
5044
#else /* DIR_SEPARATOR_2 */
 
5045
# define IS_DIR_SEPARATOR(ch) \
 
5046
        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 
5047
#endif /* DIR_SEPARATOR_2 */
 
5048
 
 
5049
#ifndef PATH_SEPARATOR_2
 
5050
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
 
5051
#else /* PATH_SEPARATOR_2 */
 
5052
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 
5053
#endif /* PATH_SEPARATOR_2 */
 
5054
 
 
5055
#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 
5056
#define XFREE(stale) do { \
 
5057
  if (stale) { free ((void *) stale); stale = 0; } \
 
5058
} while (0)
 
5059
 
 
5060
/* -DDEBUG is fairly common in CFLAGS.  */
 
5061
#undef DEBUG
 
5062
#if defined DEBUGWRAPPER
 
5063
# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
 
5064
#else
 
5065
# define DEBUG(format, ...)
 
5066
#endif
 
5067
 
 
5068
const char *program_name = NULL;
 
5069
 
 
5070
void * xmalloc (size_t num);
 
5071
char * xstrdup (const char *string);
 
5072
const char * base_name (const char *name);
 
5073
char * find_executable(const char *wrapper);
 
5074
int    check_executable(const char *path);
 
5075
char * strendzap(char *str, const char *pat);
 
5076
void lt_fatal (const char *message, ...);
 
5077
 
 
5078
int
 
5079
main (int argc, char *argv[])
 
5080
{
 
5081
  char **newargz;
 
5082
  int i;
 
5083
 
 
5084
  program_name = (char *) xstrdup (base_name (argv[0]));
 
5085
  DEBUG("(main) argv[0]      : %s\n",argv[0]);
 
5086
  DEBUG("(main) program_name : %s\n",program_name);
 
5087
  newargz = XMALLOC(char *, argc+2);
 
5088
EOF
 
5089
 
 
5090
            cat >> $cwrappersource <<EOF
 
5091
  newargz[0] = (char *) xstrdup("$SHELL");
 
5092
EOF
 
5093
 
 
5094
            cat >> $cwrappersource <<"EOF"
 
5095
  newargz[1] = find_executable(argv[0]);
 
5096
  if (newargz[1] == NULL)
 
5097
    lt_fatal("Couldn't find %s", argv[0]);
 
5098
  DEBUG("(main) found exe at : %s\n",newargz[1]);
 
5099
  /* we know the script has the same name, without the .exe */
 
5100
  /* so make sure newargz[1] doesn't end in .exe */
 
5101
  strendzap(newargz[1],".exe");
 
5102
  for (i = 1; i < argc; i++)
 
5103
    newargz[i+1] = xstrdup(argv[i]);
 
5104
  newargz[argc+1] = NULL;
 
5105
 
 
5106
  for (i=0; i<argc+1; i++)
 
5107
  {
 
5108
    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
 
5109
    ;
 
5110
  }
 
5111
 
 
5112
EOF
 
5113
 
 
5114
            case $host_os in
 
5115
              mingw*)
 
5116
                cat >> $cwrappersource <<EOF
 
5117
  execv("$SHELL",(char const **)newargz);
 
5118
EOF
 
5119
              ;;
 
5120
              *)
 
5121
                cat >> $cwrappersource <<EOF
 
5122
  execv("$SHELL",newargz);
 
5123
EOF
 
5124
              ;;
 
5125
            esac
 
5126
 
 
5127
            cat >> $cwrappersource <<"EOF"
 
5128
  return 127;
 
5129
}
 
5130
 
 
5131
void *
 
5132
xmalloc (size_t num)
 
5133
{
 
5134
  void * p = (void *) malloc (num);
 
5135
  if (!p)
 
5136
    lt_fatal ("Memory exhausted");
 
5137
 
 
5138
  return p;
 
5139
}
 
5140
 
 
5141
char *
 
5142
xstrdup (const char *string)
 
5143
{
 
5144
  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
 
5145
;
 
5146
}
 
5147
 
 
5148
const char *
 
5149
base_name (const char *name)
 
5150
{
 
5151
  const char *base;
 
5152
 
 
5153
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 
5154
  /* Skip over the disk name in MSDOS pathnames. */
 
5155
  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
 
5156
    name += 2;
 
5157
#endif
 
5158
 
 
5159
  for (base = name; *name; name++)
 
5160
    if (IS_DIR_SEPARATOR (*name))
 
5161
      base = name + 1;
 
5162
  return base;
 
5163
}
 
5164
 
 
5165
int
 
5166
check_executable(const char * path)
 
5167
{
 
5168
  struct stat st;
 
5169
 
 
5170
  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
 
5171
  if ((!path) || (!*path))
 
5172
    return 0;
 
5173
 
 
5174
  if ((stat (path, &st) >= 0) &&
 
5175
      (
 
5176
        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
 
5177
#if defined (S_IXOTH)
 
5178
       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
 
5179
#endif
 
5180
#if defined (S_IXGRP)
 
5181
       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
 
5182
#endif
 
5183
       ((st.st_mode & S_IXUSR) == S_IXUSR))
 
5184
      )
 
5185
    return 1;
 
5186
  else
 
5187
    return 0;
 
5188
}
 
5189
 
 
5190
/* Searches for the full path of the wrapper.  Returns
 
5191
   newly allocated full path name if found, NULL otherwise */
 
5192
char *
 
5193
find_executable (const char* wrapper)
 
5194
{
 
5195
  int has_slash = 0;
 
5196
  const char* p;
 
5197
  const char* p_next;
 
5198
  /* static buffer for getcwd */
 
5199
  char tmp[LT_PATHMAX + 1];
 
5200
  int tmp_len;
 
5201
  char* concat_name;
 
5202
 
 
5203
  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
 
5204
 
 
5205
  if ((wrapper == NULL) || (*wrapper == '\0'))
 
5206
    return NULL;
 
5207
 
 
5208
  /* Absolute path? */
 
5209
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 
5210
  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
 
5211
  {
 
5212
    concat_name = xstrdup (wrapper);
 
5213
    if (check_executable(concat_name))
 
5214
      return concat_name;
 
5215
    XFREE(concat_name);
 
5216
  }
 
5217
  else
 
5218
  {
 
5219
#endif
 
5220
    if (IS_DIR_SEPARATOR (wrapper[0]))
 
5221
    {
 
5222
      concat_name = xstrdup (wrapper);
 
5223
      if (check_executable(concat_name))
 
5224
        return concat_name;
 
5225
      XFREE(concat_name);
 
5226
    }
 
5227
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 
5228
  }
 
5229
#endif
 
5230
 
 
5231
  for (p = wrapper; *p; p++)
 
5232
    if (*p == '/')
 
5233
    {
 
5234
      has_slash = 1;
 
5235
      break;
 
5236
    }
 
5237
  if (!has_slash)
 
5238
  {
 
5239
    /* no slashes; search PATH */
 
5240
    const char* path = getenv ("PATH");
 
5241
    if (path != NULL)
 
5242
    {
 
5243
      for (p = path; *p; p = p_next)
 
5244
      {
 
5245
        const char* q;
 
5246
        size_t p_len;
 
5247
        for (q = p; *q; q++)
 
5248
          if (IS_PATH_SEPARATOR(*q))
 
5249
            break;
 
5250
        p_len = q - p;
 
5251
        p_next = (*q == '\0' ? q : q + 1);
 
5252
        if (p_len == 0)
 
5253
        {
 
5254
          /* empty path: current directory */
 
5255
          if (getcwd (tmp, LT_PATHMAX) == NULL)
 
5256
            lt_fatal ("getcwd failed");
 
5257
          tmp_len = strlen(tmp);
 
5258
          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
 
5259
          memcpy (concat_name, tmp, tmp_len);
 
5260
          concat_name[tmp_len] = '/';
 
5261
          strcpy (concat_name + tmp_len + 1, wrapper);
 
5262
        }
 
5263
        else
 
5264
        {
 
5265
          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
 
5266
          memcpy (concat_name, p, p_len);
 
5267
          concat_name[p_len] = '/';
 
5268
          strcpy (concat_name + p_len + 1, wrapper);
 
5269
        }
 
5270
        if (check_executable(concat_name))
 
5271
          return concat_name;
 
5272
        XFREE(concat_name);
 
5273
      }
 
5274
    }
 
5275
    /* not found in PATH; assume curdir */
 
5276
  }
 
5277
  /* Relative path | not found in path: prepend cwd */
 
5278
  if (getcwd (tmp, LT_PATHMAX) == NULL)
 
5279
    lt_fatal ("getcwd failed");
 
5280
  tmp_len = strlen(tmp);
 
5281
  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
 
5282
  memcpy (concat_name, tmp, tmp_len);
 
5283
  concat_name[tmp_len] = '/';
 
5284
  strcpy (concat_name + tmp_len + 1, wrapper);
 
5285
 
 
5286
  if (check_executable(concat_name))
 
5287
    return concat_name;
 
5288
  XFREE(concat_name);
 
5289
  return NULL;
 
5290
}
 
5291
 
 
5292
char *
 
5293
strendzap(char *str, const char *pat)
 
5294
{
 
5295
  size_t len, patlen;
 
5296
 
 
5297
  assert(str != NULL);
 
5298
  assert(pat != NULL);
 
5299
 
 
5300
  len = strlen(str);
 
5301
  patlen = strlen(pat);
 
5302
 
 
5303
  if (patlen <= len)
 
5304
  {
 
5305
    str += len - patlen;
 
5306
    if (strcmp(str, pat) == 0)
 
5307
      *str = '\0';
 
5308
  }
 
5309
  return str;
 
5310
}
 
5311
 
 
5312
static void
 
5313
lt_error_core (int exit_status, const char * mode,
 
5314
          const char * message, va_list ap)
 
5315
{
 
5316
  fprintf (stderr, "%s: %s: ", program_name, mode);
 
5317
  vfprintf (stderr, message, ap);
 
5318
  fprintf (stderr, ".\n");
 
5319
 
 
5320
  if (exit_status >= 0)
 
5321
    exit (exit_status);
 
5322
}
 
5323
 
 
5324
void
 
5325
lt_fatal (const char *message, ...)
 
5326
{
 
5327
  va_list ap;
 
5328
  va_start (ap, message);
 
5329
  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 
5330
  va_end (ap);
 
5331
}
 
5332
EOF
 
5333
          # we should really use a build-platform specific compiler
 
5334
          # here, but OTOH, the wrappers (shell script and this C one)
 
5335
          # are only useful if you want to execute the "real" binary.
 
5336
          # Since the "real" binary is built for $host, then this
 
5337
          # wrapper might as well be built for $host, too.
 
5338
          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
 
5339
          ;;
 
5340
        esac
 
5341
        $rm $output
 
5342
        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
 
5343
 
 
5344
        $echo > $output "\
 
5345
#! $SHELL
 
5346
 
 
5347
# $output - temporary wrapper script for $objdir/$outputname
 
5348
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
5349
#
 
5350
# The $output program cannot be directly executed until all the libtool
 
5351
# libraries that it depends on are installed.
 
5352
#
 
5353
# This wrapper script should never be moved out of the build directory.
 
5354
# If it is, it will not operate correctly.
 
5355
 
 
5356
# Sed substitution that helps us do robust quoting.  It backslashifies
 
5357
# metacharacters that are still active within double-quoted strings.
 
5358
Xsed='${SED} -e 1s/^X//'
 
5359
sed_quote_subst='$sed_quote_subst'
 
5360
 
 
5361
# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
 
5362
if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
 
5363
  emulate sh
 
5364
  NULLCMD=:
 
5365
  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
 
5366
  # is contrary to our usage.  Disable this feature.
 
5367
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
 
5368
  setopt NO_GLOB_SUBST
 
5369
else
 
5370
  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
 
5371
fi
 
5372
BIN_SH=xpg4; export BIN_SH # for Tru64
 
5373
DUALCASE=1; export DUALCASE # for MKS sh
 
5374
 
 
5375
# The HP-UX ksh and POSIX shell print the target directory to stdout
 
5376
# if CDPATH is set.
 
5377
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
5378
 
 
5379
relink_command=\"$relink_command\"
 
5380
 
 
5381
# This environment variable determines our operation mode.
 
5382
if test \"\$libtool_install_magic\" = \"$magic\"; then
 
5383
  # install mode needs the following variable:
 
5384
  notinst_deplibs='$notinst_deplibs'
 
5385
else
 
5386
  # When we are sourced in execute mode, \$file and \$echo are already set.
 
5387
  if test \"\$libtool_execute_magic\" != \"$magic\"; then
 
5388
    echo=\"$qecho\"
 
5389
    file=\"\$0\"
 
5390
    # Make sure echo works.
 
5391
    if test \"X\$1\" = X--no-reexec; then
 
5392
      # Discard the --no-reexec flag, and continue.
 
5393
      shift
 
5394
    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
 
5395
      # Yippee, \$echo works!
 
5396
      :
 
5397
    else
 
5398
      # Restart under the correct shell, and then maybe \$echo will work.
 
5399
      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
 
5400
    fi
 
5401
  fi\
 
5402
"
 
5403
        $echo >> $output "\
 
5404
 
 
5405
  # Find the directory that this script lives in.
 
5406
  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 
5407
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
5408
 
 
5409
  # Follow symbolic links until we get to the real thisdir.
 
5410
  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 
5411
  while test -n \"\$file\"; do
 
5412
    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
5413
 
 
5414
    # If there was a directory component, then change thisdir.
 
5415
    if test \"x\$destdir\" != \"x\$file\"; then
 
5416
      case \"\$destdir\" in
 
5417
      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
 
5418
      *) thisdir=\"\$thisdir/\$destdir\" ;;
 
5419
      esac
 
5420
    fi
 
5421
 
 
5422
    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
 
5423
    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 
5424
  done
 
5425
 
 
5426
  # Try to get the absolute directory name.
 
5427
  absdir=\`cd \"\$thisdir\" && pwd\`
 
5428
  test -n \"\$absdir\" && thisdir=\"\$absdir\"
 
5429
"
 
5430
 
 
5431
        if test "$fast_install" = yes; then
 
5432
          $echo >> $output "\
 
5433
  program=lt-'$outputname'$exeext
 
5434
  progdir=\"\$thisdir/$objdir\"
 
5435
 
 
5436
  if test ! -f \"\$progdir/\$program\" || \\
 
5437
     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
 
5438
       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
5439
 
 
5440
    file=\"\$\$-\$program\"
 
5441
 
 
5442
    if test ! -d \"\$progdir\"; then
 
5443
      $mkdir \"\$progdir\"
 
5444
    else
 
5445
      $rm \"\$progdir/\$file\"
 
5446
    fi"
 
5447
 
 
5448
          $echo >> $output "\
 
5449
 
 
5450
    # relink executable if necessary
 
5451
    if test -n \"\$relink_command\"; then
 
5452
      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
 
5453
      else
 
5454
        $echo \"\$relink_command_output\" >&2
 
5455
        $rm \"\$progdir/\$file\"
 
5456
        exit $EXIT_FAILURE
 
5457
      fi
 
5458
    fi
 
5459
 
 
5460
    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
 
5461
    { $rm \"\$progdir/\$program\";
 
5462
      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
 
5463
    $rm \"\$progdir/\$file\"
 
5464
  fi"
 
5465
        else
 
5466
          $echo >> $output "\
 
5467
  program='$outputname'
 
5468
  progdir=\"\$thisdir/$objdir\"
 
5469
"
 
5470
        fi
 
5471
 
 
5472
        $echo >> $output "\
 
5473
 
 
5474
  if test -f \"\$progdir/\$program\"; then"
 
5475
 
 
5476
        # Export our shlibpath_var if we have one.
 
5477
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 
5478
          $echo >> $output "\
 
5479
    # Add our own library path to $shlibpath_var
 
5480
    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 
5481
 
 
5482
    # Some systems cannot cope with colon-terminated $shlibpath_var
 
5483
    # The second colon is a workaround for a bug in BeOS R4 sed
 
5484
    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
5485
 
 
5486
    export $shlibpath_var
 
5487
"
 
5488
        fi
 
5489
 
 
5490
        # fixup the dll searchpath if we need to.
 
5491
        if test -n "$dllsearchpath"; then
 
5492
          $echo >> $output "\
 
5493
    # Add the dll search path components to the executable PATH
 
5494
    PATH=$dllsearchpath:\$PATH
 
5495
"
 
5496
        fi
 
5497
 
 
5498
        $echo >> $output "\
 
5499
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
 
5500
      # Run the actual program with our arguments.
 
5501
"
 
5502
        case $host in
 
5503
        # Backslashes separate directories on plain windows
 
5504
        *-*-mingw | *-*-os2*)
 
5505
          $echo >> $output "\
 
5506
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 
5507
"
 
5508
          ;;
 
5509
 
 
5510
        *)
 
5511
          $echo >> $output "\
 
5512
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 
5513
"
 
5514
          ;;
 
5515
        esac
 
5516
        $echo >> $output "\
 
5517
      \$echo \"\$0: cannot exec \$program \$*\"
 
5518
      exit $EXIT_FAILURE
 
5519
    fi
 
5520
  else
 
5521
    # The program doesn't exist.
 
5522
    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
 
5523
    \$echo \"This script is just a wrapper for \$program.\" 1>&2
 
5524
    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
 
5525
    exit $EXIT_FAILURE
 
5526
  fi
 
5527
fi\
 
5528
"
 
5529
        chmod +x $output
 
5530
      fi
 
5531
      exit $EXIT_SUCCESS
 
5532
      ;;
 
5533
    esac
 
5534
 
 
5535
    # See if we need to build an old-fashioned archive.
 
5536
    for oldlib in $oldlibs; do
 
5537
 
 
5538
      if test "$build_libtool_libs" = convenience; then
 
5539
        oldobjs="$libobjs_save"
 
5540
        addlibs="$convenience"
 
5541
        build_libtool_libs=no
 
5542
      else
 
5543
        if test "$build_libtool_libs" = module; then
 
5544
          oldobjs="$libobjs_save"
 
5545
          build_libtool_libs=no
 
5546
        else
 
5547
          oldobjs="$old_deplibs $non_pic_objects"
 
5548
        fi
 
5549
        addlibs="$old_convenience"
 
5550
      fi
 
5551
 
 
5552
      if test -n "$addlibs"; then
 
5553
        gentop="$output_objdir/${outputname}x"
 
5554
        generated="$generated $gentop"
 
5555
 
 
5556
        func_extract_archives $gentop $addlibs
 
5557
        oldobjs="$oldobjs $func_extract_archives_result"
 
5558
      fi
 
5559
 
 
5560
      # Do each command in the archive commands.
 
5561
      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
 
5562
       cmds=$old_archive_from_new_cmds
 
5563
      else
 
5564
        # POSIX demands no paths to be encoded in archives.  We have
 
5565
        # to avoid creating archives with duplicate basenames if we
 
5566
        # might have to extract them afterwards, e.g., when creating a
 
5567
        # static archive out of a convenience library, or when linking
 
5568
        # the entirety of a libtool archive into another (currently
 
5569
        # not supported by libtool).
 
5570
        if (for obj in $oldobjs
 
5571
            do
 
5572
              $echo "X$obj" | $Xsed -e 's%^.*/%%'
 
5573
            done | sort | sort -uc >/dev/null 2>&1); then
 
5574
          :
 
5575
        else
 
5576
          $echo "copying selected object files to avoid basename conflicts..."
 
5577
 
 
5578
          if test -z "$gentop"; then
 
5579
            gentop="$output_objdir/${outputname}x"
 
5580
            generated="$generated $gentop"
 
5581
 
 
5582
            $show "${rm}r $gentop"
 
5583
            $run ${rm}r "$gentop"
 
5584
            $show "$mkdir $gentop"
 
5585
            $run $mkdir "$gentop"
 
5586
            exit_status=$?
 
5587
            if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
 
5588
              exit $exit_status
 
5589
            fi
 
5590
          fi
 
5591
 
 
5592
          save_oldobjs=$oldobjs
 
5593
          oldobjs=
 
5594
          counter=1
 
5595
          for obj in $save_oldobjs
 
5596
          do
 
5597
            objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
 
5598
            case " $oldobjs " in
 
5599
            " ") oldobjs=$obj ;;
 
5600
            *[\ /]"$objbase "*)
 
5601
              while :; do
 
5602
                # Make sure we don't pick an alternate name that also
 
5603
                # overlaps.
 
5604
                newobj=lt$counter-$objbase
 
5605
                counter=`expr $counter + 1`
 
5606
                case " $oldobjs " in
 
5607
                *[\ /]"$newobj "*) ;;
 
5608
                *) if test ! -f "$gentop/$newobj"; then break; fi ;;
 
5609
                esac
 
5610
              done
 
5611
              $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
 
5612
              $run ln "$obj" "$gentop/$newobj" ||
 
5613
              $run cp "$obj" "$gentop/$newobj"
 
5614
              oldobjs="$oldobjs $gentop/$newobj"
 
5615
              ;;
 
5616
            *) oldobjs="$oldobjs $obj" ;;
 
5617
            esac
 
5618
          done
 
5619
        fi
 
5620
 
 
5621
        eval cmds=\"$old_archive_cmds\"
 
5622
 
 
5623
        if len=`expr "X$cmds" : ".*"` &&
 
5624
             test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 
5625
          cmds=$old_archive_cmds
 
5626
        else
 
5627
          # the command line is too long to link in one step, link in parts
 
5628
          $echo "using piecewise archive linking..."
 
5629
          save_RANLIB=$RANLIB
 
5630
          RANLIB=:
 
5631
          objlist=
 
5632
          concat_cmds=
 
5633
          save_oldobjs=$oldobjs
 
5634
 
 
5635
          # Is there a better way of finding the last object in the list?
 
5636
          for obj in $save_oldobjs
 
5637
          do
 
5638
            last_oldobj=$obj
 
5639
          done
 
5640
          for obj in $save_oldobjs
 
5641
          do
 
5642
            oldobjs="$objlist $obj"
 
5643
            objlist="$objlist $obj"
 
5644
            eval test_cmds=\"$old_archive_cmds\"
 
5645
            if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 
5646
               test "$len" -le "$max_cmd_len"; then
 
5647
              :
 
5648
            else
 
5649
              # the above command should be used before it gets too long
 
5650
              oldobjs=$objlist
 
5651
              if test "$obj" = "$last_oldobj" ; then
 
5652
                RANLIB=$save_RANLIB
 
5653
              fi
 
5654
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 
5655
              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
 
5656
              objlist=
 
5657
            fi
 
5658
          done
 
5659
          RANLIB=$save_RANLIB
 
5660
          oldobjs=$objlist
 
5661
          if test "X$oldobjs" = "X" ; then
 
5662
            eval cmds=\"\$concat_cmds\"
 
5663
          else
 
5664
            eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 
5665
          fi
 
5666
        fi
 
5667
      fi
 
5668
      save_ifs="$IFS"; IFS='~'
 
5669
      for cmd in $cmds; do
 
5670
        eval cmd=\"$cmd\"
 
5671
        IFS="$save_ifs"
 
5672
        $show "$cmd"
 
5673
        $run eval "$cmd" || exit $?
 
5674
      done
 
5675
      IFS="$save_ifs"
 
5676
    done
 
5677
 
 
5678
    if test -n "$generated"; then
 
5679
      $show "${rm}r$generated"
 
5680
      $run ${rm}r$generated
 
5681
    fi
 
5682
 
 
5683
    # Now create the libtool archive.
 
5684
    case $output in
 
5685
    *.la)
 
5686
      old_library=
 
5687
      test "$build_old_libs" = yes && old_library="$libname.$libext"
 
5688
      $show "creating $output"
 
5689
 
 
5690
      # Preserve any variables that may affect compiler behavior
 
5691
      for var in $variables_saved_for_relink; do
 
5692
        if eval test -z \"\${$var+set}\"; then
 
5693
          relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
 
5694
        elif eval var_value=\$$var; test -z "$var_value"; then
 
5695
          relink_command="$var=; export $var; $relink_command"
 
5696
        else
 
5697
          var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
 
5698
          relink_command="$var=\"$var_value\"; export $var; $relink_command"
 
5699
        fi
 
5700
      done
 
5701
      # Quote the link command for shipping.
 
5702
      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
 
5703
      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
 
5704
      if test "$hardcode_automatic" = yes ; then
 
5705
        relink_command=
 
5706
      fi
 
5707
 
 
5708
 
 
5709
      # Only create the output if not a dry run.
 
5710
      if test -z "$run"; then
 
5711
        for installed in no yes; do
 
5712
          if test "$installed" = yes; then
 
5713
            if test -z "$install_libdir"; then
 
5714
              break
 
5715
            fi
 
5716
            output="$output_objdir/$outputname"i
 
5717
            # Replace all uninstalled libtool libraries with the installed ones
 
5718
            newdependency_libs=
 
5719
            for deplib in $dependency_libs; do
 
5720
              case $deplib in
 
5721
              *.la)
 
5722
                name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
 
5723
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 
5724
                if test -z "$libdir"; then
 
5725
                  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
 
5726
                  exit $EXIT_FAILURE
 
5727
                fi
 
5728
                newdependency_libs="$newdependency_libs $libdir/$name"
 
5729
                ;;
 
5730
              *) newdependency_libs="$newdependency_libs $deplib" ;;
 
5731
              esac
 
5732
            done
 
5733
            dependency_libs="$newdependency_libs"
 
5734
            newdlfiles=
 
5735
            for lib in $dlfiles; do
 
5736
              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
5737
              eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 
5738
              if test -z "$libdir"; then
 
5739
                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
5740
                exit $EXIT_FAILURE
 
5741
              fi
 
5742
              newdlfiles="$newdlfiles $libdir/$name"
 
5743
            done
 
5744
            dlfiles="$newdlfiles"
 
5745
            newdlprefiles=
 
5746
            for lib in $dlprefiles; do
 
5747
              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
5748
              eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 
5749
              if test -z "$libdir"; then
 
5750
                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
5751
                exit $EXIT_FAILURE
 
5752
              fi
 
5753
              newdlprefiles="$newdlprefiles $libdir/$name"
 
5754
            done
 
5755
            dlprefiles="$newdlprefiles"
 
5756
          else
 
5757
            newdlfiles=
 
5758
            for lib in $dlfiles; do
 
5759
              case $lib in
 
5760
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 
5761
                *) abs=`pwd`"/$lib" ;;
 
5762
              esac
 
5763
              newdlfiles="$newdlfiles $abs"
 
5764
            done
 
5765
            dlfiles="$newdlfiles"
 
5766
            newdlprefiles=
 
5767
            for lib in $dlprefiles; do
 
5768
              case $lib in
 
5769
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 
5770
                *) abs=`pwd`"/$lib" ;;
 
5771
              esac
 
5772
              newdlprefiles="$newdlprefiles $abs"
 
5773
            done
 
5774
            dlprefiles="$newdlprefiles"
 
5775
          fi
 
5776
          $rm $output
 
5777
          # place dlname in correct position for cygwin
 
5778
          tdlname=$dlname
 
5779
          case $host,$output,$installed,$module,$dlname in
 
5780
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 
5781
          esac
 
5782
          $echo > $output "\
 
5783
# $outputname - a libtool library file
 
5784
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
5785
#
 
5786
# Please DO NOT delete this file!
 
5787
# It is necessary for linking the library.
 
5788
 
 
5789
# The name that we can dlopen(3).
 
5790
dlname='$tdlname'
 
5791
 
 
5792
# Names of this library.
 
5793
library_names='$library_names'
 
5794
 
 
5795
# The name of the static archive.
 
5796
old_library='$old_library'
 
5797
 
 
5798
# Libraries that this one depends upon.
 
5799
dependency_libs='$dependency_libs'
 
5800
 
 
5801
# Version information for $libname.
 
5802
current=$current
 
5803
age=$age
 
5804
revision=$revision
 
5805
 
 
5806
# Is this an already installed library?
 
5807
installed=$installed
 
5808
 
 
5809
# Should we warn about portability when linking against -modules?
 
5810
shouldnotlink=$module
 
5811
 
 
5812
# Files to dlopen/dlpreopen
 
5813
dlopen='$dlfiles'
 
5814
dlpreopen='$dlprefiles'
 
5815
 
 
5816
# Directory that this library needs to be installed in:
 
5817
libdir='$install_libdir'"
 
5818
          if test "$installed" = no && test "$need_relink" = yes; then
 
5819
            $echo >> $output "\
 
5820
relink_command=\"$relink_command\""
 
5821
          fi
 
5822
        done
 
5823
      fi
 
5824
 
 
5825
      # Do a symbolic link so that the libtool archive can be found in
 
5826
      # LD_LIBRARY_PATH before the program is installed.
 
5827
      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
 
5828
      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
 
5829
      ;;
 
5830
    esac
 
5831
    exit $EXIT_SUCCESS
 
5832
    ;;
 
5833
 
 
5834
  # libtool install mode
 
5835
  install)
 
5836
    modename="$modename: install"
 
5837
 
 
5838
    # There may be an optional sh(1) argument at the beginning of
 
5839
    # install_prog (especially on Windows NT).
 
5840
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
 
5841
       # Allow the use of GNU shtool's install command.
 
5842
       $echo "X$nonopt" | grep shtool > /dev/null; then
 
5843
      # Aesthetically quote it.
 
5844
      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
 
5845
      case $arg in
 
5846
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
5847
        arg="\"$arg\""
 
5848
        ;;
 
5849
      esac
 
5850
      install_prog="$arg "
 
5851
      arg="$1"
 
5852
      shift
 
5853
    else
 
5854
      install_prog=
 
5855
      arg=$nonopt
 
5856
    fi
 
5857
 
 
5858
    # The real first argument should be the name of the installation program.
 
5859
    # Aesthetically quote it.
 
5860
    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
5861
    case $arg in
 
5862
    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
 
5863
      arg="\"$arg\""
 
5864
      ;;
 
5865
    esac
 
5866
    install_prog="$install_prog$arg"
 
5867
 
 
5868
    # We need to accept at least all the BSD install flags.
 
5869
    dest=
 
5870
    files=
 
5871
    opts=
 
5872
    prev=
 
5873
    install_type=
 
5874
    isdir=no
 
5875
    stripme=
 
5876
    for arg
 
5877
    do
 
5878
      if test -n "$dest"; then
 
5879
        files="$files $dest"
 
5880
        dest=$arg
 
5881
        continue
 
5882
      fi
 
5883
 
 
5884
      case $arg in
 
5885
      -d) isdir=yes ;;
 
5886
      -f) 
 
5887
        case " $install_prog " in
 
5888
        *[\\\ /]cp\ *) ;;
 
5889
        *) prev=$arg ;;
 
5890
        esac
 
5891
        ;;
 
5892
      -g | -m | -o) prev=$arg ;;
 
5893
      -s)
 
5894
        stripme=" -s"
 
5895
        continue
 
5896
        ;;
 
5897
      -*)
 
5898
        ;;
 
5899
      *)
 
5900
        # If the previous option needed an argument, then skip it.
 
5901
        if test -n "$prev"; then
 
5902
          prev=
 
5903
        else
 
5904
          dest=$arg
 
5905
          continue
 
5906
        fi
 
5907
        ;;
 
5908
      esac
 
5909
 
 
5910
      # Aesthetically quote the argument.
 
5911
      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
5912
      case $arg in
 
5913
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
5914
        arg="\"$arg\""
 
5915
        ;;
 
5916
      esac
 
5917
      install_prog="$install_prog $arg"
 
5918
    done
 
5919
 
 
5920
    if test -z "$install_prog"; then
 
5921
      $echo "$modename: you must specify an install program" 1>&2
 
5922
      $echo "$help" 1>&2
 
5923
      exit $EXIT_FAILURE
 
5924
    fi
 
5925
 
 
5926
    if test -n "$prev"; then
 
5927
      $echo "$modename: the \`$prev' option requires an argument" 1>&2
 
5928
      $echo "$help" 1>&2
 
5929
      exit $EXIT_FAILURE
 
5930
    fi
 
5931
 
 
5932
    if test -z "$files"; then
 
5933
      if test -z "$dest"; then
 
5934
        $echo "$modename: no file or destination specified" 1>&2
 
5935
      else
 
5936
        $echo "$modename: you must specify a destination" 1>&2
 
5937
      fi
 
5938
      $echo "$help" 1>&2
 
5939
      exit $EXIT_FAILURE
 
5940
    fi
 
5941
 
 
5942
    # Strip any trailing slash from the destination.
 
5943
    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
 
5944
 
 
5945
    # Check to see that the destination is a directory.
 
5946
    test -d "$dest" && isdir=yes
 
5947
    if test "$isdir" = yes; then
 
5948
      destdir="$dest"
 
5949
      destname=
 
5950
    else
 
5951
      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
 
5952
      test "X$destdir" = "X$dest" && destdir=.
 
5953
      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
 
5954
 
 
5955
      # Not a directory, so check to see that there is only one file specified.
 
5956
      set dummy $files
 
5957
      if test "$#" -gt 2; then
 
5958
        $echo "$modename: \`$dest' is not a directory" 1>&2
 
5959
        $echo "$help" 1>&2
 
5960
        exit $EXIT_FAILURE
 
5961
      fi
 
5962
    fi
 
5963
    case $destdir in
 
5964
    [\\/]* | [A-Za-z]:[\\/]*) ;;
 
5965
    *)
 
5966
      for file in $files; do
 
5967
        case $file in
 
5968
        *.lo) ;;
 
5969
        *)
 
5970
          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
 
5971
          $echo "$help" 1>&2
 
5972
          exit $EXIT_FAILURE
 
5973
          ;;
 
5974
        esac
 
5975
      done
 
5976
      ;;
 
5977
    esac
 
5978
 
 
5979
    # This variable tells wrapper scripts just to set variables rather
 
5980
    # than running their programs.
 
5981
    libtool_install_magic="$magic"
 
5982
 
 
5983
    staticlibs=
 
5984
    future_libdirs=
 
5985
    current_libdirs=
 
5986
    for file in $files; do
 
5987
 
 
5988
      # Do each installation.
 
5989
      case $file in
 
5990
      *.$libext)
 
5991
        # Do the static libraries later.
 
5992
        staticlibs="$staticlibs $file"
 
5993
        ;;
 
5994
 
 
5995
      *.la)
 
5996
        # Check to see that this really is a libtool archive.
 
5997
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
 
5998
        else
 
5999
          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
 
6000
          $echo "$help" 1>&2
 
6001
          exit $EXIT_FAILURE
 
6002
        fi
 
6003
 
 
6004
        library_names=
 
6005
        old_library=
 
6006
        relink_command=
 
6007
        # If there is no directory component, then add one.
 
6008
        case $file in
 
6009
        */* | *\\*) . $file ;;
 
6010
        *) . ./$file ;;
 
6011
        esac
 
6012
 
 
6013
        # Add the libdir to current_libdirs if it is the destination.
 
6014
        if test "X$destdir" = "X$libdir"; then
 
6015
          case "$current_libdirs " in
 
6016
          *" $libdir "*) ;;
 
6017
          *) current_libdirs="$current_libdirs $libdir" ;;
 
6018
          esac
 
6019
        else
 
6020
          # Note the libdir as a future libdir.
 
6021
          case "$future_libdirs " in
 
6022
          *" $libdir "*) ;;
 
6023
          *) future_libdirs="$future_libdirs $libdir" ;;
 
6024
          esac
 
6025
        fi
 
6026
 
 
6027
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
 
6028
        test "X$dir" = "X$file/" && dir=
 
6029
        dir="$dir$objdir"
 
6030
 
 
6031
        if test -n "$relink_command"; then
 
6032
          # Determine the prefix the user has applied to our future dir.
 
6033
          inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
 
6034
 
 
6035
          # Don't allow the user to place us outside of our expected
 
6036
          # location b/c this prevents finding dependent libraries that
 
6037
          # are installed to the same prefix.
 
6038
          # At present, this check doesn't affect windows .dll's that
 
6039
          # are installed into $libdir/../bin (currently, that works fine)
 
6040
          # but it's something to keep an eye on.
 
6041
          if test "$inst_prefix_dir" = "$destdir"; then
 
6042
            $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
 
6043
            exit $EXIT_FAILURE
 
6044
          fi
 
6045
 
 
6046
          if test -n "$inst_prefix_dir"; then
 
6047
            # Stick the inst_prefix_dir data into the link command.
 
6048
            relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
 
6049
          else
 
6050
            relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
 
6051
          fi
 
6052
 
 
6053
          $echo "$modename: warning: relinking \`$file'" 1>&2
 
6054
          $show "$relink_command"
 
6055
          if $run eval "$relink_command"; then :
 
6056
          else
 
6057
            $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
 
6058
            exit $EXIT_FAILURE
 
6059
          fi
 
6060
        fi
 
6061
 
 
6062
        # See the names of the shared library.
 
6063
        set dummy $library_names
 
6064
        if test -n "$2"; then
 
6065
          realname="$2"
 
6066
          shift
 
6067
          shift
 
6068
 
 
6069
          srcname="$realname"
 
6070
          test -n "$relink_command" && srcname="$realname"T
 
6071
 
 
6072
          # Install the shared library and build the symlinks.
 
6073
          $show "$install_prog $dir/$srcname $destdir/$realname"
 
6074
          $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
 
6075
          if test -n "$stripme" && test -n "$striplib"; then
 
6076
            $show "$striplib $destdir/$realname"
 
6077
            $run eval "$striplib $destdir/$realname" || exit $?
 
6078
          fi
 
6079
 
 
6080
          if test "$#" -gt 0; then
 
6081
            # Delete the old symlinks, and create new ones.
 
6082
            # Try `ln -sf' first, because the `ln' binary might depend on
 
6083
            # the symlink we replace!  Solaris /bin/ln does not understand -f,
 
6084
            # so we also need to try rm && ln -s.
 
6085
            for linkname
 
6086
            do
 
6087
              if test "$linkname" != "$realname"; then
 
6088
                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
 
6089
                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
 
6090
              fi
 
6091
            done
 
6092
          fi
 
6093
 
 
6094
          # Do each command in the postinstall commands.
 
6095
          lib="$destdir/$realname"
 
6096
          cmds=$postinstall_cmds
 
6097
          save_ifs="$IFS"; IFS='~'
 
6098
          for cmd in $cmds; do
 
6099
            IFS="$save_ifs"
 
6100
            eval cmd=\"$cmd\"
 
6101
            $show "$cmd"
 
6102
            $run eval "$cmd" || {
 
6103
              lt_exit=$?
 
6104
 
 
6105
              # Restore the uninstalled library and exit
 
6106
              if test "$mode" = relink; then
 
6107
                $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
 
6108
              fi
 
6109
 
 
6110
              exit $lt_exit
 
6111
            }
 
6112
          done
 
6113
          IFS="$save_ifs"
 
6114
        fi
 
6115
 
 
6116
        # Install the pseudo-library for information purposes.
 
6117
        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
6118
        instname="$dir/$name"i
 
6119
        $show "$install_prog $instname $destdir/$name"
 
6120
        $run eval "$install_prog $instname $destdir/$name" || exit $?
 
6121
 
 
6122
        # Maybe install the static library, too.
 
6123
        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 
6124
        ;;
 
6125
 
 
6126
      *.lo)
 
6127
        # Install (i.e. copy) a libtool object.
 
6128
 
 
6129
        # Figure out destination file name, if it wasn't already specified.
 
6130
        if test -n "$destname"; then
 
6131
          destfile="$destdir/$destname"
 
6132
        else
 
6133
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
6134
          destfile="$destdir/$destfile"
 
6135
        fi
 
6136
 
 
6137
        # Deduce the name of the destination old-style object file.
 
6138
        case $destfile in
 
6139
        *.lo)
 
6140
          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
 
6141
          ;;
 
6142
        *.$objext)
 
6143
          staticdest="$destfile"
 
6144
          destfile=
 
6145
          ;;
 
6146
        *)
 
6147
          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
 
6148
          $echo "$help" 1>&2
 
6149
          exit $EXIT_FAILURE
 
6150
          ;;
 
6151
        esac
 
6152
 
 
6153
        # Install the libtool object if requested.
 
6154
        if test -n "$destfile"; then
 
6155
          $show "$install_prog $file $destfile"
 
6156
          $run eval "$install_prog $file $destfile" || exit $?
 
6157
        fi
 
6158
 
 
6159
        # Install the old object if enabled.
 
6160
        if test "$build_old_libs" = yes; then
 
6161
          # Deduce the name of the old-style object file.
 
6162
          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
 
6163
 
 
6164
          $show "$install_prog $staticobj $staticdest"
 
6165
          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
 
6166
        fi
 
6167
        exit $EXIT_SUCCESS
 
6168
        ;;
 
6169
 
 
6170
      *)
 
6171
        # Figure out destination file name, if it wasn't already specified.
 
6172
        if test -n "$destname"; then
 
6173
          destfile="$destdir/$destname"
 
6174
        else
 
6175
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
6176
          destfile="$destdir/$destfile"
 
6177
        fi
 
6178
 
 
6179
        # If the file is missing, and there is a .exe on the end, strip it
 
6180
        # because it is most likely a libtool script we actually want to
 
6181
        # install
 
6182
        stripped_ext=""
 
6183
        case $file in
 
6184
          *.exe)
 
6185
            if test ! -f "$file"; then
 
6186
              file=`$echo $file|${SED} 's,.exe$,,'`
 
6187
              stripped_ext=".exe"
 
6188
            fi
 
6189
            ;;
 
6190
        esac
 
6191
 
 
6192
        # Do a test to see if this is really a libtool program.
 
6193
        case $host in
 
6194
        *cygwin*|*mingw*)
 
6195
            wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
 
6196
            ;;
 
6197
        *)
 
6198
            wrapper=$file
 
6199
            ;;
 
6200
        esac
 
6201
        if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
 
6202
          notinst_deplibs=
 
6203
          relink_command=
 
6204
 
 
6205
          # Note that it is not necessary on cygwin/mingw to append a dot to
 
6206
          # foo even if both foo and FILE.exe exist: automatic-append-.exe
 
6207
          # behavior happens only for exec(3), not for open(2)!  Also, sourcing
 
6208
          # `FILE.' does not work on cygwin managed mounts.
 
6209
          #
 
6210
          # If there is no directory component, then add one.
 
6211
          case $wrapper in
 
6212
          */* | *\\*) . ${wrapper} ;;
 
6213
          *) . ./${wrapper} ;;
 
6214
          esac
 
6215
 
 
6216
          # Check the variables that should have been set.
 
6217
          if test -z "$notinst_deplibs"; then
 
6218
            $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
 
6219
            exit $EXIT_FAILURE
 
6220
          fi
 
6221
 
 
6222
          finalize=yes
 
6223
          for lib in $notinst_deplibs; do
 
6224
            # Check to see that each library is installed.
 
6225
            libdir=
 
6226
            if test -f "$lib"; then
 
6227
              # If there is no directory component, then add one.
 
6228
              case $lib in
 
6229
              */* | *\\*) . $lib ;;
 
6230
              *) . ./$lib ;;
 
6231
              esac
 
6232
            fi
 
6233
            libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 
6234
            if test -n "$libdir" && test ! -f "$libfile"; then
 
6235
              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
 
6236
              finalize=no
 
6237
            fi
 
6238
          done
 
6239
 
 
6240
          relink_command=
 
6241
          # Note that it is not necessary on cygwin/mingw to append a dot to
 
6242
          # foo even if both foo and FILE.exe exist: automatic-append-.exe
 
6243
          # behavior happens only for exec(3), not for open(2)!  Also, sourcing
 
6244
          # `FILE.' does not work on cygwin managed mounts.
 
6245
          #
 
6246
          # If there is no directory component, then add one.
 
6247
          case $wrapper in
 
6248
          */* | *\\*) . ${wrapper} ;;
 
6249
          *) . ./${wrapper} ;;
 
6250
          esac
 
6251
 
 
6252
          outputname=
 
6253
          if test "$fast_install" = no && test -n "$relink_command"; then
 
6254
            if test "$finalize" = yes && test -z "$run"; then
 
6255
              tmpdir=`func_mktempdir`
 
6256
              file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
 
6257
              outputname="$tmpdir/$file"
 
6258
              # Replace the output file specification.
 
6259
              relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
 
6260
 
 
6261
              $show "$relink_command"
 
6262
              if $run eval "$relink_command"; then :
 
6263
              else
 
6264
                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
 
6265
                ${rm}r "$tmpdir"
 
6266
                continue
 
6267
              fi
 
6268
              file="$outputname"
 
6269
            else
 
6270
              $echo "$modename: warning: cannot relink \`$file'" 1>&2
 
6271
            fi
 
6272
          else
 
6273
            # Install the binary that we compiled earlier.
 
6274
            file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 
6275
          fi
 
6276
        fi
 
6277
 
 
6278
        # remove .exe since cygwin /usr/bin/install will append another
 
6279
        # one anyway 
 
6280
        case $install_prog,$host in
 
6281
        */usr/bin/install*,*cygwin*)
 
6282
          case $file:$destfile in
 
6283
          *.exe:*.exe)
 
6284
            # this is ok
 
6285
            ;;
 
6286
          *.exe:*)
 
6287
            destfile=$destfile.exe
 
6288
            ;;
 
6289
          *:*.exe)
 
6290
            destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
 
6291
            ;;
 
6292
          esac
 
6293
          ;;
 
6294
        esac
 
6295
        $show "$install_prog$stripme $file $destfile"
 
6296
        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
 
6297
        test -n "$outputname" && ${rm}r "$tmpdir"
 
6298
        ;;
 
6299
      esac
 
6300
    done
 
6301
 
 
6302
    for file in $staticlibs; do
 
6303
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
6304
 
 
6305
      # Set up the ranlib parameters.
 
6306
      oldlib="$destdir/$name"
 
6307
 
 
6308
      $show "$install_prog $file $oldlib"
 
6309
      $run eval "$install_prog \$file \$oldlib" || exit $?
 
6310
 
 
6311
      if test -n "$stripme" && test -n "$old_striplib"; then
 
6312
        $show "$old_striplib $oldlib"
 
6313
        $run eval "$old_striplib $oldlib" || exit $?
 
6314
      fi
 
6315
 
 
6316
      # Do each command in the postinstall commands.
 
6317
      cmds=$old_postinstall_cmds
 
6318
      save_ifs="$IFS"; IFS='~'
 
6319
      for cmd in $cmds; do
 
6320
        IFS="$save_ifs"
 
6321
        eval cmd=\"$cmd\"
 
6322
        $show "$cmd"
 
6323
        $run eval "$cmd" || exit $?
 
6324
      done
 
6325
      IFS="$save_ifs"
 
6326
    done
 
6327
 
 
6328
    if test -n "$future_libdirs"; then
 
6329
      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
 
6330
    fi
 
6331
 
 
6332
    if test -n "$current_libdirs"; then
 
6333
      # Maybe just do a dry run.
 
6334
      test -n "$run" && current_libdirs=" -n$current_libdirs"
 
6335
      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
 
6336
    else
 
6337
      exit $EXIT_SUCCESS
 
6338
    fi
 
6339
    ;;
 
6340
 
 
6341
  # libtool finish mode
 
6342
  finish)
 
6343
    modename="$modename: finish"
 
6344
    libdirs="$nonopt"
 
6345
    admincmds=
 
6346
 
 
6347
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 
6348
      for dir
 
6349
      do
 
6350
        libdirs="$libdirs $dir"
 
6351
      done
 
6352
 
 
6353
      for libdir in $libdirs; do
 
6354
        if test -n "$finish_cmds"; then
 
6355
          # Do each command in the finish commands.
 
6356
          cmds=$finish_cmds
 
6357
          save_ifs="$IFS"; IFS='~'
 
6358
          for cmd in $cmds; do
 
6359
            IFS="$save_ifs"
 
6360
            eval cmd=\"$cmd\"
 
6361
            $show "$cmd"
 
6362
            $run eval "$cmd" || admincmds="$admincmds
 
6363
       $cmd"
 
6364
          done
 
6365
          IFS="$save_ifs"
 
6366
        fi
 
6367
        if test -n "$finish_eval"; then
 
6368
          # Do the single finish_eval.
 
6369
          eval cmds=\"$finish_eval\"
 
6370
          $run eval "$cmds" || admincmds="$admincmds
 
6371
       $cmds"
 
6372
        fi
 
6373
      done
 
6374
    fi
 
6375
 
 
6376
    # Exit here if they wanted silent mode.
 
6377
    test "$show" = : && exit $EXIT_SUCCESS
 
6378
 
 
6379
    $echo "X----------------------------------------------------------------------" | $Xsed
 
6380
    $echo "Libraries have been installed in:"
 
6381
    for libdir in $libdirs; do
 
6382
      $echo "   $libdir"
 
6383
    done
 
6384
    $echo
 
6385
    $echo "If you ever happen to want to link against installed libraries"
 
6386
    $echo "in a given directory, LIBDIR, you must either use libtool, and"
 
6387
    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
 
6388
    $echo "flag during linking and do at least one of the following:"
 
6389
    if test -n "$shlibpath_var"; then
 
6390
      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 
6391
      $echo "     during execution"
 
6392
    fi
 
6393
    if test -n "$runpath_var"; then
 
6394
      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
 
6395
      $echo "     during linking"
 
6396
    fi
 
6397
    if test -n "$hardcode_libdir_flag_spec"; then
 
6398
      libdir=LIBDIR
 
6399
      eval flag=\"$hardcode_libdir_flag_spec\"
 
6400
 
 
6401
      $echo "   - use the \`$flag' linker flag"
 
6402
    fi
 
6403
    if test -n "$admincmds"; then
 
6404
      $echo "   - have your system administrator run these commands:$admincmds"
 
6405
    fi
 
6406
    if test -f /etc/ld.so.conf; then
 
6407
      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 
6408
    fi
 
6409
    $echo
 
6410
    $echo "See any operating system documentation about shared libraries for"
 
6411
    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
 
6412
    $echo "X----------------------------------------------------------------------" | $Xsed
 
6413
    exit $EXIT_SUCCESS
 
6414
    ;;
 
6415
 
 
6416
  # libtool execute mode
 
6417
  execute)
 
6418
    modename="$modename: execute"
 
6419
 
 
6420
    # The first argument is the command name.
 
6421
    cmd="$nonopt"
 
6422
    if test -z "$cmd"; then
 
6423
      $echo "$modename: you must specify a COMMAND" 1>&2
 
6424
      $echo "$help"
 
6425
      exit $EXIT_FAILURE
 
6426
    fi
 
6427
 
 
6428
    # Handle -dlopen flags immediately.
 
6429
    for file in $execute_dlfiles; do
 
6430
      if test ! -f "$file"; then
 
6431
        $echo "$modename: \`$file' is not a file" 1>&2
 
6432
        $echo "$help" 1>&2
 
6433
        exit $EXIT_FAILURE
 
6434
      fi
 
6435
 
 
6436
      dir=
 
6437
      case $file in
 
6438
      *.la)
 
6439
        # Check to see that this really is a libtool archive.
 
6440
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
 
6441
        else
 
6442
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
6443
          $echo "$help" 1>&2
 
6444
          exit $EXIT_FAILURE
 
6445
        fi
 
6446
 
 
6447
        # Read the libtool library.
 
6448
        dlname=
 
6449
        library_names=
 
6450
 
 
6451
        # If there is no directory component, then add one.
 
6452
        case $file in
 
6453
        */* | *\\*) . $file ;;
 
6454
        *) . ./$file ;;
 
6455
        esac
 
6456
 
 
6457
        # Skip this library if it cannot be dlopened.
 
6458
        if test -z "$dlname"; then
 
6459
          # Warn if it was a shared library.
 
6460
          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
 
6461
          continue
 
6462
        fi
 
6463
 
 
6464
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
 
6465
        test "X$dir" = "X$file" && dir=.
 
6466
 
 
6467
        if test -f "$dir/$objdir/$dlname"; then
 
6468
          dir="$dir/$objdir"
 
6469
        else
 
6470
          if test ! -f "$dir/$dlname"; then
 
6471
            $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
 
6472
            exit $EXIT_FAILURE
 
6473
          fi
 
6474
        fi
 
6475
        ;;
 
6476
 
 
6477
      *.lo)
 
6478
        # Just add the directory containing the .lo file.
 
6479
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
 
6480
        test "X$dir" = "X$file" && dir=.
 
6481
        ;;
 
6482
 
 
6483
      *)
 
6484
        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
 
6485
        continue
 
6486
        ;;
 
6487
      esac
 
6488
 
 
6489
      # Get the absolute pathname.
 
6490
      absdir=`cd "$dir" && pwd`
 
6491
      test -n "$absdir" && dir="$absdir"
 
6492
 
 
6493
      # Now add the directory to shlibpath_var.
 
6494
      if eval "test -z \"\$$shlibpath_var\""; then
 
6495
        eval "$shlibpath_var=\"\$dir\""
 
6496
      else
 
6497
        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
 
6498
      fi
 
6499
    done
 
6500
 
 
6501
    # This variable tells wrapper scripts just to set shlibpath_var
 
6502
    # rather than running their programs.
 
6503
    libtool_execute_magic="$magic"
 
6504
 
 
6505
    # Check if any of the arguments is a wrapper script.
 
6506
    args=
 
6507
    for file
 
6508
    do
 
6509
      case $file in
 
6510
      -*) ;;
 
6511
      *)
 
6512
        # Do a test to see if this is really a libtool program.
 
6513
        if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6514
          # If there is no directory component, then add one.
 
6515
          case $file in
 
6516
          */* | *\\*) . $file ;;
 
6517
          *) . ./$file ;;
 
6518
          esac
 
6519
 
 
6520
          # Transform arg to wrapped name.
 
6521
          file="$progdir/$program"
 
6522
        fi
 
6523
        ;;
 
6524
      esac
 
6525
      # Quote arguments (to preserve shell metacharacters).
 
6526
      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
 
6527
      args="$args \"$file\""
 
6528
    done
 
6529
 
 
6530
    if test -z "$run"; then
 
6531
      if test -n "$shlibpath_var"; then
 
6532
        # Export the shlibpath_var.
 
6533
        eval "export $shlibpath_var"
 
6534
      fi
 
6535
 
 
6536
      # Restore saved environment variables
 
6537
      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 
6538
      do
 
6539
        eval "if test \"\${save_$lt_var+set}\" = set; then
 
6540
                $lt_var=\$save_$lt_var; export $lt_var
 
6541
              fi"
 
6542
      done
 
6543
 
 
6544
      # Now prepare to actually exec the command.
 
6545
      exec_cmd="\$cmd$args"
 
6546
    else
 
6547
      # Display what would be done.
 
6548
      if test -n "$shlibpath_var"; then
 
6549
        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
 
6550
        $echo "export $shlibpath_var"
 
6551
      fi
 
6552
      $echo "$cmd$args"
 
6553
      exit $EXIT_SUCCESS
 
6554
    fi
 
6555
    ;;
 
6556
 
 
6557
  # libtool clean and uninstall mode
 
6558
  clean | uninstall)
 
6559
    modename="$modename: $mode"
 
6560
    rm="$nonopt"
 
6561
    files=
 
6562
    rmforce=
 
6563
    exit_status=0
 
6564
 
 
6565
    # This variable tells wrapper scripts just to set variables rather
 
6566
    # than running their programs.
 
6567
    libtool_install_magic="$magic"
 
6568
 
 
6569
    for arg
 
6570
    do
 
6571
      case $arg in
 
6572
      -f) rm="$rm $arg"; rmforce=yes ;;
 
6573
      -*) rm="$rm $arg" ;;
 
6574
      *) files="$files $arg" ;;
 
6575
      esac
 
6576
    done
 
6577
 
 
6578
    if test -z "$rm"; then
 
6579
      $echo "$modename: you must specify an RM program" 1>&2
 
6580
      $echo "$help" 1>&2
 
6581
      exit $EXIT_FAILURE
 
6582
    fi
 
6583
 
 
6584
    rmdirs=
 
6585
 
 
6586
    origobjdir="$objdir"
 
6587
    for file in $files; do
 
6588
      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
 
6589
      if test "X$dir" = "X$file"; then
 
6590
        dir=.
 
6591
        objdir="$origobjdir"
 
6592
      else
 
6593
        objdir="$dir/$origobjdir"
 
6594
      fi
 
6595
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
6596
      test "$mode" = uninstall && objdir="$dir"
 
6597
 
 
6598
      # Remember objdir for removal later, being careful to avoid duplicates
 
6599
      if test "$mode" = clean; then
 
6600
        case " $rmdirs " in
 
6601
          *" $objdir "*) ;;
 
6602
          *) rmdirs="$rmdirs $objdir" ;;
 
6603
        esac
 
6604
      fi
 
6605
 
 
6606
      # Don't error if the file doesn't exist and rm -f was used.
 
6607
      if (test -L "$file") >/dev/null 2>&1 \
 
6608
        || (test -h "$file") >/dev/null 2>&1 \
 
6609
        || test -f "$file"; then
 
6610
        :
 
6611
      elif test -d "$file"; then
 
6612
        exit_status=1
 
6613
        continue
 
6614
      elif test "$rmforce" = yes; then
 
6615
        continue
 
6616
      fi
 
6617
 
 
6618
      rmfiles="$file"
 
6619
 
 
6620
      case $name in
 
6621
      *.la)
 
6622
        # Possibly a libtool archive, so verify it.
 
6623
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6624
          . $dir/$name
 
6625
 
 
6626
          # Delete the libtool libraries and symlinks.
 
6627
          for n in $library_names; do
 
6628
            rmfiles="$rmfiles $objdir/$n"
 
6629
          done
 
6630
          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 
6631
 
 
6632
          case "$mode" in
 
6633
          clean)
 
6634
            case "  $library_names " in
 
6635
            # "  " in the beginning catches empty $dlname
 
6636
            *" $dlname "*) ;;
 
6637
            *) rmfiles="$rmfiles $objdir/$dlname" ;;
 
6638
            esac
 
6639
             test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 
6640
            ;;
 
6641
          uninstall)
 
6642
            if test -n "$library_names"; then
 
6643
              # Do each command in the postuninstall commands.
 
6644
              cmds=$postuninstall_cmds
 
6645
              save_ifs="$IFS"; IFS='~'
 
6646
              for cmd in $cmds; do
 
6647
                IFS="$save_ifs"
 
6648
                eval cmd=\"$cmd\"
 
6649
                $show "$cmd"
 
6650
                $run eval "$cmd"
 
6651
                if test "$?" -ne 0 && test "$rmforce" != yes; then
 
6652
                  exit_status=1
 
6653
                fi
 
6654
              done
 
6655
              IFS="$save_ifs"
 
6656
            fi
 
6657
 
 
6658
            if test -n "$old_library"; then
 
6659
              # Do each command in the old_postuninstall commands.
 
6660
              cmds=$old_postuninstall_cmds
 
6661
              save_ifs="$IFS"; IFS='~'
 
6662
              for cmd in $cmds; do
 
6663
                IFS="$save_ifs"
 
6664
                eval cmd=\"$cmd\"
 
6665
                $show "$cmd"
 
6666
                $run eval "$cmd"
 
6667
                if test "$?" -ne 0 && test "$rmforce" != yes; then
 
6668
                  exit_status=1
 
6669
                fi
 
6670
              done
 
6671
              IFS="$save_ifs"
 
6672
            fi
 
6673
            # FIXME: should reinstall the best remaining shared library.
 
6674
            ;;
 
6675
          esac
 
6676
        fi
 
6677
        ;;
 
6678
 
 
6679
      *.lo)
 
6680
        # Possibly a libtool object, so verify it.
 
6681
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6682
 
 
6683
          # Read the .lo file
 
6684
          . $dir/$name
 
6685
 
 
6686
          # Add PIC object to the list of files to remove.
 
6687
          if test -n "$pic_object" \
 
6688
             && test "$pic_object" != none; then
 
6689
            rmfiles="$rmfiles $dir/$pic_object"
 
6690
          fi
 
6691
 
 
6692
          # Add non-PIC object to the list of files to remove.
 
6693
          if test -n "$non_pic_object" \
 
6694
             && test "$non_pic_object" != none; then
 
6695
            rmfiles="$rmfiles $dir/$non_pic_object"
 
6696
          fi
 
6697
        fi
 
6698
        ;;
 
6699
 
 
6700
      *)
 
6701
        if test "$mode" = clean ; then
 
6702
          noexename=$name
 
6703
          case $file in
 
6704
          *.exe)
 
6705
            file=`$echo $file|${SED} 's,.exe$,,'`
 
6706
            noexename=`$echo $name|${SED} 's,.exe$,,'`
 
6707
            # $file with .exe has already been added to rmfiles,
 
6708
            # add $file without .exe
 
6709
            rmfiles="$rmfiles $file"
 
6710
            ;;
 
6711
          esac
 
6712
          # Do a test to see if this is a libtool program.
 
6713
          if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6714
            relink_command=
 
6715
            . $dir/$noexename
 
6716
 
 
6717
            # note $name still contains .exe if it was in $file originally
 
6718
            # as does the version of $file that was added into $rmfiles
 
6719
            rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 
6720
            if test "$fast_install" = yes && test -n "$relink_command"; then
 
6721
              rmfiles="$rmfiles $objdir/lt-$name"
 
6722
            fi
 
6723
            if test "X$noexename" != "X$name" ; then
 
6724
              rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 
6725
            fi
 
6726
          fi
 
6727
        fi
 
6728
        ;;
 
6729
      esac
 
6730
      $show "$rm $rmfiles"
 
6731
      $run $rm $rmfiles || exit_status=1
 
6732
    done
 
6733
    objdir="$origobjdir"
 
6734
 
 
6735
    # Try to remove the ${objdir}s in the directories where we deleted files
 
6736
    for dir in $rmdirs; do
 
6737
      if test -d "$dir"; then
 
6738
        $show "rmdir $dir"
 
6739
        $run rmdir $dir >/dev/null 2>&1
 
6740
      fi
 
6741
    done
 
6742
 
 
6743
    exit $exit_status
 
6744
    ;;
 
6745
 
 
6746
  "")
 
6747
    $echo "$modename: you must specify a MODE" 1>&2
 
6748
    $echo "$generic_help" 1>&2
 
6749
    exit $EXIT_FAILURE
 
6750
    ;;
 
6751
  esac
 
6752
 
 
6753
  if test -z "$exec_cmd"; then
 
6754
    $echo "$modename: invalid operation mode \`$mode'" 1>&2
 
6755
    $echo "$generic_help" 1>&2
 
6756
    exit $EXIT_FAILURE
 
6757
  fi
 
6758
fi # test -z "$show_help"
 
6759
 
 
6760
if test -n "$exec_cmd"; then
 
6761
  eval exec $exec_cmd
 
6762
  exit $EXIT_FAILURE
 
6763
fi
 
6764
 
 
6765
# We need to display help for each of the modes.
 
6766
case $mode in
 
6767
"") $echo \
 
6768
"Usage: $modename [OPTION]... [MODE-ARG]...
 
6769
 
 
6770
Provide generalized library-building support services.
 
6771
 
 
6772
    --config          show all configuration variables
 
6773
    --debug           enable verbose shell tracing
 
6774
-n, --dry-run         display commands without modifying any files
 
6775
    --features        display basic configuration information and exit
 
6776
    --finish          same as \`--mode=finish'
 
6777
    --help            display this help message and exit
 
6778
    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
 
6779
    --quiet           same as \`--silent'
 
6780
    --silent          don't print informational messages
 
6781
    --tag=TAG         use configuration variables from tag TAG
 
6782
    --version         print version information
 
6783
 
 
6784
MODE must be one of the following:
 
6785
 
 
6786
      clean           remove files from the build directory
 
6787
      compile         compile a source file into a libtool object
 
6788
      execute         automatically set library path, then run a program
 
6789
      finish          complete the installation of libtool libraries
 
6790
      install         install libraries or executables
 
6791
      link            create a library or an executable
 
6792
      uninstall       remove libraries from an installed directory
 
6793
 
 
6794
MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
 
6795
a more detailed description of MODE.
 
6796
 
 
6797
Report bugs to <bug-libtool@gnu.org>."
 
6798
  exit $EXIT_SUCCESS
 
6799
  ;;
 
6800
 
 
6801
clean)
 
6802
  $echo \
 
6803
"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 
6804
 
 
6805
Remove files from the build directory.
 
6806
 
 
6807
RM is the name of the program to use to delete files associated with each FILE
 
6808
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 
6809
to RM.
 
6810
 
 
6811
If FILE is a libtool library, object or program, all the files associated
 
6812
with it are deleted. Otherwise, only FILE itself is deleted using RM."
 
6813
  ;;
 
6814
 
 
6815
compile)
 
6816
  $echo \
 
6817
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 
6818
 
 
6819
Compile a source file into a libtool library object.
 
6820
 
 
6821
This mode accepts the following additional options:
 
6822
 
 
6823
  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
 
6824
  -prefer-pic       try to building PIC objects only
 
6825
  -prefer-non-pic   try to building non-PIC objects only
 
6826
  -static           always build a \`.o' file suitable for static linking
 
6827
 
 
6828
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 
6829
from the given SOURCEFILE.
 
6830
 
 
6831
The output file name is determined by removing the directory component from
 
6832
SOURCEFILE, then substituting the C source code suffix \`.c' with the
 
6833
library object suffix, \`.lo'."
 
6834
  ;;
 
6835
 
 
6836
execute)
 
6837
  $echo \
 
6838
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
 
6839
 
 
6840
Automatically set library path, then run a program.
 
6841
 
 
6842
This mode accepts the following additional options:
 
6843
 
 
6844
  -dlopen FILE      add the directory containing FILE to the library path
 
6845
 
 
6846
This mode sets the library path environment variable according to \`-dlopen'
 
6847
flags.
 
6848
 
 
6849
If any of the ARGS are libtool executable wrappers, then they are translated
 
6850
into their corresponding uninstalled binary, and any of their required library
 
6851
directories are added to the library path.
 
6852
 
 
6853
Then, COMMAND is executed, with ARGS as arguments."
 
6854
  ;;
 
6855
 
 
6856
finish)
 
6857
  $echo \
 
6858
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
 
6859
 
 
6860
Complete the installation of libtool libraries.
 
6861
 
 
6862
Each LIBDIR is a directory that contains libtool libraries.
 
6863
 
 
6864
The commands that this mode executes may require superuser privileges.  Use
 
6865
the \`--dry-run' option if you just want to see what would be executed."
 
6866
  ;;
 
6867
 
 
6868
install)
 
6869
  $echo \
 
6870
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
 
6871
 
 
6872
Install executables or libraries.
 
6873
 
 
6874
INSTALL-COMMAND is the installation command.  The first component should be
 
6875
either the \`install' or \`cp' program.
 
6876
 
 
6877
The rest of the components are interpreted as arguments to that command (only
 
6878
BSD-compatible install options are recognized)."
 
6879
  ;;
 
6880
 
 
6881
link)
 
6882
  $echo \
 
6883
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
 
6884
 
 
6885
Link object files or libraries together to form another library, or to
 
6886
create an executable program.
 
6887
 
 
6888
LINK-COMMAND is a command using the C compiler that you would use to create
 
6889
a program from several object files.
 
6890
 
 
6891
The following components of LINK-COMMAND are treated specially:
 
6892
 
 
6893
  -all-static       do not do any dynamic linking at all
 
6894
  -avoid-version    do not add a version suffix if possible
 
6895
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
 
6896
  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
 
6897
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
 
6898
  -export-symbols SYMFILE
 
6899
                    try to export only the symbols listed in SYMFILE
 
6900
  -export-symbols-regex REGEX
 
6901
                    try to export only the symbols matching REGEX
 
6902
  -LLIBDIR          search LIBDIR for required installed libraries
 
6903
  -lNAME            OUTPUT-FILE requires the installed library libNAME
 
6904
  -module           build a library that can dlopened
 
6905
  -no-fast-install  disable the fast-install mode
 
6906
  -no-install       link a not-installable executable
 
6907
  -no-undefined     declare that a library does not refer to external symbols
 
6908
  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
 
6909
  -objectlist FILE  Use a list of object files found in FILE to specify objects
 
6910
  -precious-files-regex REGEX
 
6911
                    don't remove output files matching REGEX
 
6912
  -release RELEASE  specify package release information
 
6913
  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
 
6914
  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
 
6915
  -static           do not do any dynamic linking of uninstalled libtool libraries
 
6916
  -static-libtool-libs
 
6917
                    do not do any dynamic linking of libtool libraries
 
6918
  -version-info CURRENT[:REVISION[:AGE]]
 
6919
                    specify library version info [each variable defaults to 0]
 
6920
 
 
6921
All other options (arguments beginning with \`-') are ignored.
 
6922
 
 
6923
Every other argument is treated as a filename.  Files ending in \`.la' are
 
6924
treated as uninstalled libtool libraries, other files are standard or library
 
6925
object files.
 
6926
 
 
6927
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
 
6928
only library objects (\`.lo' files) may be specified, and \`-rpath' is
 
6929
required, except when creating a convenience library.
 
6930
 
 
6931
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
 
6932
using \`ar' and \`ranlib', or on Windows using \`lib'.
 
6933
 
 
6934
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
 
6935
is created, otherwise an executable program is created."
 
6936
  ;;
 
6937
 
 
6938
uninstall)
 
6939
  $echo \
 
6940
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
6941
 
 
6942
Remove libraries from an installation directory.
 
6943
 
 
6944
RM is the name of the program to use to delete files associated with each FILE
 
6945
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 
6946
to RM.
 
6947
 
 
6948
If FILE is a libtool library, all the files associated with it are deleted.
 
6949
Otherwise, only FILE itself is deleted using RM."
 
6950
  ;;
 
6951
 
 
6952
*)
 
6953
  $echo "$modename: invalid operation mode \`$mode'" 1>&2
 
6954
  $echo "$help" 1>&2
 
6955
  exit $EXIT_FAILURE
 
6956
  ;;
 
6957
esac
 
6958
 
 
6959
$echo
 
6960
$echo "Try \`$modename --help' for more information about other modes."
 
6961
 
 
6962
exit $?
 
6963
 
 
6964
# The TAGs below are defined such that we never get into a situation
 
6965
# in which we disable both kinds of libraries.  Given conflicting
 
6966
# choices, we go for a static library, that is the most portable,
 
6967
# since we can't tell whether shared libraries were disabled because
 
6968
# the user asked for that or because the platform doesn't support
 
6969
# them.  This is particularly important on AIX, because we don't
 
6970
# support having both static and shared libraries enabled at the same
 
6971
# time on that platform, so we default to a shared-only configuration.
 
6972
# If a disable-shared tag is given, we'll fallback to a static-only
 
6973
# configuration.  But we'll never go from static-only to shared-only.
 
6974
 
 
6975
# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 
6976
disable_libs=shared
 
6977
# ### END LIBTOOL TAG CONFIG: disable-shared
 
6978
 
 
6979
# ### BEGIN LIBTOOL TAG CONFIG: disable-static
 
6980
disable_libs=static
 
6981
# ### END LIBTOOL TAG CONFIG: disable-static
 
6982
 
 
6983
# Local Variables:
 
6984
# mode:shell-script
 
6985
# sh-indentation:2
 
6986
# End: