~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.2.1/third_party/portaudio/ltmain.sh

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2015-01-07 14:51:16 UTC
  • mfrom: (4.3.5 sid)
  • Revision ID: package-import@ubuntu.com-20150107145116-yxnafinf4lrdvrmx
Tags: 1.4.1-0.1ubuntu1
* Merge with Debian, remaining changes:
 - Drop soprano, nepomuk build-dep
* Drop ubuntu patches, now upstream

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