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