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