Statistics
| Branch: | Tag: | Revision:

root / ltmain.sh @ master

History | View | Annotate | Download (195.3 kB)

1 4012ec30 Hiroyuki Yamamoto
# ltmain.sh - Provide generalized library-building support services.
2 4012ec30 Hiroyuki Yamamoto
# NOTE: Changing this file will not affect anything until you rerun configure.
3 4012ec30 Hiroyuki Yamamoto
#
4 4012ec30 Hiroyuki Yamamoto
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5 4012ec30 Hiroyuki Yamamoto
# 2007, 2008  Free Software Foundation, Inc.
6 4012ec30 Hiroyuki Yamamoto
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7 4012ec30 Hiroyuki Yamamoto
#
8 4012ec30 Hiroyuki Yamamoto
# This program is free software; you can redistribute it and/or modify
9 4012ec30 Hiroyuki Yamamoto
# it under the terms of the GNU General Public License as published by
10 4012ec30 Hiroyuki Yamamoto
# the Free Software Foundation; either version 2 of the License, or
11 4012ec30 Hiroyuki Yamamoto
# (at your option) any later version.
12 4012ec30 Hiroyuki Yamamoto
#
13 4012ec30 Hiroyuki Yamamoto
# This program is distributed in the hope that it will be useful, but
14 4012ec30 Hiroyuki Yamamoto
# WITHOUT ANY WARRANTY; without even the implied warranty of
15 4012ec30 Hiroyuki Yamamoto
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 4012ec30 Hiroyuki Yamamoto
# General Public License for more details.
17 4012ec30 Hiroyuki Yamamoto
#
18 4012ec30 Hiroyuki Yamamoto
# You should have received a copy of the GNU General Public License
19 4012ec30 Hiroyuki Yamamoto
# along with this program; if not, write to the Free Software
20 4012ec30 Hiroyuki Yamamoto
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 4012ec30 Hiroyuki Yamamoto
#
22 4012ec30 Hiroyuki Yamamoto
# As a special exception to the GNU General Public License, if you
23 4012ec30 Hiroyuki Yamamoto
# distribute this file as part of a program that contains a
24 4012ec30 Hiroyuki Yamamoto
# configuration script generated by Autoconf, you may include it under
25 4012ec30 Hiroyuki Yamamoto
# the same distribution terms that you use for the rest of that program.
26 4012ec30 Hiroyuki Yamamoto
27 4012ec30 Hiroyuki Yamamoto
basename="s,^.*/,,g"
28 4012ec30 Hiroyuki Yamamoto
29 4012ec30 Hiroyuki Yamamoto
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30 4012ec30 Hiroyuki Yamamoto
# is ksh but when the shell is invoked as "sh" and the current value of
31 4012ec30 Hiroyuki Yamamoto
# the _XPG environment variable is not equal to 1 (one), the special
32 4012ec30 Hiroyuki Yamamoto
# positional parameter $0, within a function call, is the name of the
33 4012ec30 Hiroyuki Yamamoto
# function.
34 4012ec30 Hiroyuki Yamamoto
progpath="$0"
35 4012ec30 Hiroyuki Yamamoto
36 4012ec30 Hiroyuki Yamamoto
# The name of this program:
37 4012ec30 Hiroyuki Yamamoto
progname=`echo "$progpath" | $SED $basename`
38 4012ec30 Hiroyuki Yamamoto
modename="$progname"
39 4012ec30 Hiroyuki Yamamoto
40 4012ec30 Hiroyuki Yamamoto
# Global variables:
41 4012ec30 Hiroyuki Yamamoto
EXIT_SUCCESS=0
42 4012ec30 Hiroyuki Yamamoto
EXIT_FAILURE=1
43 4012ec30 Hiroyuki Yamamoto
44 4012ec30 Hiroyuki Yamamoto
PROGRAM=ltmain.sh
45 4012ec30 Hiroyuki Yamamoto
PACKAGE=libtool
46 4012ec30 Hiroyuki Yamamoto
VERSION="1.5.26 Debian 1.5.26-1ubuntu1"
47 4012ec30 Hiroyuki Yamamoto
TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
48 4012ec30 Hiroyuki Yamamoto
49 4012ec30 Hiroyuki Yamamoto
# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
50 4012ec30 Hiroyuki Yamamoto
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
51 4012ec30 Hiroyuki Yamamoto
  emulate sh
52 4012ec30 Hiroyuki Yamamoto
  NULLCMD=:
53 4012ec30 Hiroyuki Yamamoto
  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
54 4012ec30 Hiroyuki Yamamoto
  # is contrary to our usage.  Disable this feature.
55 4012ec30 Hiroyuki Yamamoto
  alias -g '${1+"$@"}'='"$@"'
56 4012ec30 Hiroyuki Yamamoto
  setopt NO_GLOB_SUBST
57 4012ec30 Hiroyuki Yamamoto
else
58 4012ec30 Hiroyuki Yamamoto
  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
59 4012ec30 Hiroyuki Yamamoto
fi
60 4012ec30 Hiroyuki Yamamoto
BIN_SH=xpg4; export BIN_SH # for Tru64
61 4012ec30 Hiroyuki Yamamoto
DUALCASE=1; export DUALCASE # for MKS sh
62 4012ec30 Hiroyuki Yamamoto
63 4012ec30 Hiroyuki Yamamoto
# Check that we have a working $echo.
64 4012ec30 Hiroyuki Yamamoto
if test "X$1" = X--no-reexec; then
65 4012ec30 Hiroyuki Yamamoto
  # Discard the --no-reexec flag, and continue.
66 4012ec30 Hiroyuki Yamamoto
  shift
67 4012ec30 Hiroyuki Yamamoto
elif test "X$1" = X--fallback-echo; then
68 4012ec30 Hiroyuki Yamamoto
  # Avoid inline document here, it may be left over
69 4012ec30 Hiroyuki Yamamoto
  :
70 4012ec30 Hiroyuki Yamamoto
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
71 4012ec30 Hiroyuki Yamamoto
  # Yippee, $echo works!
72 4012ec30 Hiroyuki Yamamoto
  :
73 4012ec30 Hiroyuki Yamamoto
else
74 4012ec30 Hiroyuki Yamamoto
  # Restart under the correct shell, and then maybe $echo will work.
75 4012ec30 Hiroyuki Yamamoto
  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
76 4012ec30 Hiroyuki Yamamoto
fi
77 4012ec30 Hiroyuki Yamamoto
78 4012ec30 Hiroyuki Yamamoto
if test "X$1" = X--fallback-echo; then
79 4012ec30 Hiroyuki Yamamoto
  # used as fallback echo
80 4012ec30 Hiroyuki Yamamoto
  shift
81 4012ec30 Hiroyuki Yamamoto
  cat <<EOF
82 4012ec30 Hiroyuki Yamamoto
$*
83 4012ec30 Hiroyuki Yamamoto
EOF
84 4012ec30 Hiroyuki Yamamoto
  exit $EXIT_SUCCESS
85 4012ec30 Hiroyuki Yamamoto
fi
86 4012ec30 Hiroyuki Yamamoto
87 4012ec30 Hiroyuki Yamamoto
default_mode=
88 4012ec30 Hiroyuki Yamamoto
help="Try \`$progname --help' for more information."
89 4012ec30 Hiroyuki Yamamoto
magic="%%%MAGIC variable%%%"
90 4012ec30 Hiroyuki Yamamoto
mkdir="mkdir"
91 4012ec30 Hiroyuki Yamamoto
mv="mv -f"
92 4012ec30 Hiroyuki Yamamoto
rm="rm -f"
93 4012ec30 Hiroyuki Yamamoto
94 4012ec30 Hiroyuki Yamamoto
# Sed substitution that helps us do robust quoting.  It backslashifies
95 4012ec30 Hiroyuki Yamamoto
# metacharacters that are still active within double-quoted strings.
96 4012ec30 Hiroyuki Yamamoto
Xsed="${SED}"' -e 1s/^X//'
97 4012ec30 Hiroyuki Yamamoto
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
98 4012ec30 Hiroyuki Yamamoto
# test EBCDIC or ASCII
99 4012ec30 Hiroyuki Yamamoto
case `echo X|tr X '\101'` in
100 4012ec30 Hiroyuki Yamamoto
 A) # ASCII based system
101 4012ec30 Hiroyuki Yamamoto
    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
102 4012ec30 Hiroyuki Yamamoto
  SP2NL='tr \040 \012'
103 4012ec30 Hiroyuki Yamamoto
  NL2SP='tr \015\012 \040\040'
104 4012ec30 Hiroyuki Yamamoto
  ;;
105 4012ec30 Hiroyuki Yamamoto
 *) # EBCDIC based system
106 4012ec30 Hiroyuki Yamamoto
  SP2NL='tr \100 \n'
107 4012ec30 Hiroyuki Yamamoto
  NL2SP='tr \r\n \100\100'
108 4012ec30 Hiroyuki Yamamoto
  ;;
109 4012ec30 Hiroyuki Yamamoto
esac
110 4012ec30 Hiroyuki Yamamoto
111 4012ec30 Hiroyuki Yamamoto
# NLS nuisances.
112 4012ec30 Hiroyuki Yamamoto
# Only set LANG and LC_ALL to C if already set.
113 4012ec30 Hiroyuki Yamamoto
# These must not be set unconditionally because not all systems understand
114 4012ec30 Hiroyuki Yamamoto
# e.g. LANG=C (notably SCO).
115 4012ec30 Hiroyuki Yamamoto
# We save the old values to restore during execute mode.
116 4012ec30 Hiroyuki Yamamoto
lt_env=
117 4012ec30 Hiroyuki Yamamoto
for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
118 4012ec30 Hiroyuki Yamamoto
do
119 4012ec30 Hiroyuki Yamamoto
  eval "if test \"\${$lt_var+set}\" = set; then
120 4012ec30 Hiroyuki Yamamoto
	  save_$lt_var=\$$lt_var
121 4012ec30 Hiroyuki Yamamoto
	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
122 4012ec30 Hiroyuki Yamamoto
	  $lt_var=C
123 4012ec30 Hiroyuki Yamamoto
	  export $lt_var
124 4012ec30 Hiroyuki Yamamoto
	fi"
125 4012ec30 Hiroyuki Yamamoto
done
126 4012ec30 Hiroyuki Yamamoto
127 4012ec30 Hiroyuki Yamamoto
if test -n "$lt_env"; then
128 4012ec30 Hiroyuki Yamamoto
  lt_env="env $lt_env"
129 4012ec30 Hiroyuki Yamamoto
fi
130 4012ec30 Hiroyuki Yamamoto
131 4012ec30 Hiroyuki Yamamoto
# Make sure IFS has a sensible default
132 4012ec30 Hiroyuki Yamamoto
lt_nl='
133 4012ec30 Hiroyuki Yamamoto
'
134 4012ec30 Hiroyuki Yamamoto
IFS=" 	$lt_nl"
135 4012ec30 Hiroyuki Yamamoto
136 4012ec30 Hiroyuki Yamamoto
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
137 4012ec30 Hiroyuki Yamamoto
  $echo "$modename: not configured to build any kind of library" 1>&2
138 4012ec30 Hiroyuki Yamamoto
  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
139 4012ec30 Hiroyuki Yamamoto
  exit $EXIT_FAILURE
140 4012ec30 Hiroyuki Yamamoto
fi
141 4012ec30 Hiroyuki Yamamoto
142 4012ec30 Hiroyuki Yamamoto
# Global variables.
143 4012ec30 Hiroyuki Yamamoto
mode=$default_mode
144 4012ec30 Hiroyuki Yamamoto
nonopt=
145 4012ec30 Hiroyuki Yamamoto
prev=
146 4012ec30 Hiroyuki Yamamoto
prevopt=
147 4012ec30 Hiroyuki Yamamoto
run=
148 4012ec30 Hiroyuki Yamamoto
show="$echo"
149 4012ec30 Hiroyuki Yamamoto
show_help=
150 4012ec30 Hiroyuki Yamamoto
execute_dlfiles=
151 4012ec30 Hiroyuki Yamamoto
duplicate_deps=no
152 4012ec30 Hiroyuki Yamamoto
preserve_args=
153 4012ec30 Hiroyuki Yamamoto
lo2o="s/\\.lo\$/.${objext}/"
154 4012ec30 Hiroyuki Yamamoto
o2lo="s/\\.${objext}\$/.lo/"
155 4012ec30 Hiroyuki Yamamoto
extracted_archives=
156 4012ec30 Hiroyuki Yamamoto
extracted_serial=0
157 4012ec30 Hiroyuki Yamamoto
158 4012ec30 Hiroyuki Yamamoto
#####################################
159 4012ec30 Hiroyuki Yamamoto
# Shell function definitions:
160 4012ec30 Hiroyuki Yamamoto
# This seems to be the best place for them
161 4012ec30 Hiroyuki Yamamoto
162 4012ec30 Hiroyuki Yamamoto
# func_mktempdir [string]
163 4012ec30 Hiroyuki Yamamoto
# Make a temporary directory that won't clash with other running
164 4012ec30 Hiroyuki Yamamoto
# libtool processes, and avoids race conditions if possible.  If
165 4012ec30 Hiroyuki Yamamoto
# given, STRING is the basename for that directory.
166 4012ec30 Hiroyuki Yamamoto
func_mktempdir ()
167 4012ec30 Hiroyuki Yamamoto
{
168 4012ec30 Hiroyuki Yamamoto
    my_template="${TMPDIR-/tmp}/${1-$progname}"
169 4012ec30 Hiroyuki Yamamoto
170 4012ec30 Hiroyuki Yamamoto
    if test "$run" = ":"; then
171 4012ec30 Hiroyuki Yamamoto
      # Return a directory name, but don't create it in dry-run mode
172 4012ec30 Hiroyuki Yamamoto
      my_tmpdir="${my_template}-$$"
173 4012ec30 Hiroyuki Yamamoto
    else
174 4012ec30 Hiroyuki Yamamoto
175 4012ec30 Hiroyuki Yamamoto
      # If mktemp works, use that first and foremost
176 4012ec30 Hiroyuki Yamamoto
      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
177 4012ec30 Hiroyuki Yamamoto
178 4012ec30 Hiroyuki Yamamoto
      if test ! -d "$my_tmpdir"; then
179 4012ec30 Hiroyuki Yamamoto
	# Failing that, at least try and use $RANDOM to avoid a race
180 4012ec30 Hiroyuki Yamamoto
	my_tmpdir="${my_template}-${RANDOM-0}$$"
181 4012ec30 Hiroyuki Yamamoto
182 4012ec30 Hiroyuki Yamamoto
	save_mktempdir_umask=`umask`
183 4012ec30 Hiroyuki Yamamoto
	umask 0077
184 4012ec30 Hiroyuki Yamamoto
	$mkdir "$my_tmpdir"
185 4012ec30 Hiroyuki Yamamoto
	umask $save_mktempdir_umask
186 4012ec30 Hiroyuki Yamamoto
      fi
187 4012ec30 Hiroyuki Yamamoto
188 4012ec30 Hiroyuki Yamamoto
      # If we're not in dry-run mode, bomb out on failure
189 4012ec30 Hiroyuki Yamamoto
      test -d "$my_tmpdir" || {
190 4012ec30 Hiroyuki Yamamoto
        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
191 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
192 4012ec30 Hiroyuki Yamamoto
      }
193 4012ec30 Hiroyuki Yamamoto
    fi
194 4012ec30 Hiroyuki Yamamoto
195 4012ec30 Hiroyuki Yamamoto
    $echo "X$my_tmpdir" | $Xsed
196 4012ec30 Hiroyuki Yamamoto
}
197 4012ec30 Hiroyuki Yamamoto
198 4012ec30 Hiroyuki Yamamoto
199 4012ec30 Hiroyuki Yamamoto
# func_win32_libid arg
200 4012ec30 Hiroyuki Yamamoto
# return the library type of file 'arg'
201 4012ec30 Hiroyuki Yamamoto
#
202 4012ec30 Hiroyuki Yamamoto
# Need a lot of goo to handle *both* DLLs and import libs
203 4012ec30 Hiroyuki Yamamoto
# Has to be a shell function in order to 'eat' the argument
204 4012ec30 Hiroyuki Yamamoto
# that is supplied when $file_magic_command is called.
205 4012ec30 Hiroyuki Yamamoto
func_win32_libid ()
206 4012ec30 Hiroyuki Yamamoto
{
207 4012ec30 Hiroyuki Yamamoto
  win32_libid_type="unknown"
208 4012ec30 Hiroyuki Yamamoto
  win32_fileres=`file -L $1 2>/dev/null`
209 4012ec30 Hiroyuki Yamamoto
  case $win32_fileres in
210 4012ec30 Hiroyuki Yamamoto
  *ar\ archive\ import\ library*) # definitely import
211 4012ec30 Hiroyuki Yamamoto
    win32_libid_type="x86 archive import"
212 4012ec30 Hiroyuki Yamamoto
    ;;
213 4012ec30 Hiroyuki Yamamoto
  *ar\ archive*) # could be an import, or static
214 4012ec30 Hiroyuki Yamamoto
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
215 4012ec30 Hiroyuki Yamamoto
      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
216 4012ec30 Hiroyuki Yamamoto
      win32_nmres=`eval $NM -f posix -A $1 | \
217 4012ec30 Hiroyuki Yamamoto
	$SED -n -e '1,100{
218 4012ec30 Hiroyuki Yamamoto
		/ I /{
219 4012ec30 Hiroyuki Yamamoto
			s,.*,import,
220 4012ec30 Hiroyuki Yamamoto
			p
221 4012ec30 Hiroyuki Yamamoto
			q
222 4012ec30 Hiroyuki Yamamoto
			}
223 4012ec30 Hiroyuki Yamamoto
		}'`
224 4012ec30 Hiroyuki Yamamoto
      case $win32_nmres in
225 4012ec30 Hiroyuki Yamamoto
      import*)  win32_libid_type="x86 archive import";;
226 4012ec30 Hiroyuki Yamamoto
      *)        win32_libid_type="x86 archive static";;
227 4012ec30 Hiroyuki Yamamoto
      esac
228 4012ec30 Hiroyuki Yamamoto
    fi
229 4012ec30 Hiroyuki Yamamoto
    ;;
230 4012ec30 Hiroyuki Yamamoto
  *DLL*)
231 4012ec30 Hiroyuki Yamamoto
    win32_libid_type="x86 DLL"
232 4012ec30 Hiroyuki Yamamoto
    ;;
233 4012ec30 Hiroyuki Yamamoto
  *executable*) # but shell scripts are "executable" too...
234 4012ec30 Hiroyuki Yamamoto
    case $win32_fileres in
235 4012ec30 Hiroyuki Yamamoto
    *MS\ Windows\ PE\ Intel*)
236 4012ec30 Hiroyuki Yamamoto
      win32_libid_type="x86 DLL"
237 4012ec30 Hiroyuki Yamamoto
      ;;
238 4012ec30 Hiroyuki Yamamoto
    esac
239 4012ec30 Hiroyuki Yamamoto
    ;;
240 4012ec30 Hiroyuki Yamamoto
  esac
241 4012ec30 Hiroyuki Yamamoto
  $echo $win32_libid_type
242 4012ec30 Hiroyuki Yamamoto
}
243 4012ec30 Hiroyuki Yamamoto
244 4012ec30 Hiroyuki Yamamoto
245 4012ec30 Hiroyuki Yamamoto
# func_infer_tag arg
246 4012ec30 Hiroyuki Yamamoto
# Infer tagged configuration to use if any are available and
247 4012ec30 Hiroyuki Yamamoto
# if one wasn't chosen via the "--tag" command line option.
248 4012ec30 Hiroyuki Yamamoto
# Only attempt this if the compiler in the base compile
249 4012ec30 Hiroyuki Yamamoto
# command doesn't match the default compiler.
250 4012ec30 Hiroyuki Yamamoto
# arg is usually of the form 'gcc ...'
251 4012ec30 Hiroyuki Yamamoto
func_infer_tag ()
252 4012ec30 Hiroyuki Yamamoto
{
253 4012ec30 Hiroyuki Yamamoto
    if test -n "$available_tags" && test -z "$tagname"; then
254 4012ec30 Hiroyuki Yamamoto
      CC_quoted=
255 4012ec30 Hiroyuki Yamamoto
      for arg in $CC; do
256 4012ec30 Hiroyuki Yamamoto
	case $arg in
257 4012ec30 Hiroyuki Yamamoto
	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
258 4012ec30 Hiroyuki Yamamoto
	  arg="\"$arg\""
259 4012ec30 Hiroyuki Yamamoto
	  ;;
260 4012ec30 Hiroyuki Yamamoto
	esac
261 4012ec30 Hiroyuki Yamamoto
	CC_quoted="$CC_quoted $arg"
262 4012ec30 Hiroyuki Yamamoto
      done
263 4012ec30 Hiroyuki Yamamoto
      case $@ in
264 4012ec30 Hiroyuki Yamamoto
      # Blanks in the command may have been stripped by the calling shell,
265 4012ec30 Hiroyuki Yamamoto
      # but not from the CC environment variable when configure was run.
266 4012ec30 Hiroyuki Yamamoto
      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
267 4012ec30 Hiroyuki Yamamoto
      # Blanks at the start of $base_compile will cause this to fail
268 4012ec30 Hiroyuki Yamamoto
      # if we don't check for them as well.
269 4012ec30 Hiroyuki Yamamoto
      *)
270 4012ec30 Hiroyuki Yamamoto
	for z in $available_tags; do
271 4012ec30 Hiroyuki Yamamoto
	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
272 4012ec30 Hiroyuki Yamamoto
	    # Evaluate the configuration.
273 4012ec30 Hiroyuki Yamamoto
	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
274 4012ec30 Hiroyuki Yamamoto
	    CC_quoted=
275 4012ec30 Hiroyuki Yamamoto
	    for arg in $CC; do
276 4012ec30 Hiroyuki Yamamoto
	    # Double-quote args containing other shell metacharacters.
277 4012ec30 Hiroyuki Yamamoto
	    case $arg in
278 4012ec30 Hiroyuki Yamamoto
	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
279 4012ec30 Hiroyuki Yamamoto
	      arg="\"$arg\""
280 4012ec30 Hiroyuki Yamamoto
	      ;;
281 4012ec30 Hiroyuki Yamamoto
	    esac
282 4012ec30 Hiroyuki Yamamoto
	    CC_quoted="$CC_quoted $arg"
283 4012ec30 Hiroyuki Yamamoto
	  done
284 4012ec30 Hiroyuki Yamamoto
	    case "$@ " in
285 4012ec30 Hiroyuki Yamamoto
	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
286 4012ec30 Hiroyuki Yamamoto
	      # The compiler in the base compile command matches
287 4012ec30 Hiroyuki Yamamoto
	      # the one in the tagged configuration.
288 4012ec30 Hiroyuki Yamamoto
	      # Assume this is the tagged configuration we want.
289 4012ec30 Hiroyuki Yamamoto
	      tagname=$z
290 4012ec30 Hiroyuki Yamamoto
	      break
291 4012ec30 Hiroyuki Yamamoto
	      ;;
292 4012ec30 Hiroyuki Yamamoto
	    esac
293 4012ec30 Hiroyuki Yamamoto
	  fi
294 4012ec30 Hiroyuki Yamamoto
	done
295 4012ec30 Hiroyuki Yamamoto
	# If $tagname still isn't set, then no tagged configuration
296 4012ec30 Hiroyuki Yamamoto
	# was found and let the user know that the "--tag" command
297 4012ec30 Hiroyuki Yamamoto
	# line option must be used.
298 4012ec30 Hiroyuki Yamamoto
	if test -z "$tagname"; then
299 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: unable to infer tagged configuration"
300 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: specify a tag with \`--tag'" 1>&2
301 4012ec30 Hiroyuki Yamamoto
	  exit $EXIT_FAILURE
302 4012ec30 Hiroyuki Yamamoto
#        else
303 4012ec30 Hiroyuki Yamamoto
#          $echo "$modename: using $tagname tagged configuration"
304 4012ec30 Hiroyuki Yamamoto
	fi
305 4012ec30 Hiroyuki Yamamoto
	;;
306 4012ec30 Hiroyuki Yamamoto
      esac
307 4012ec30 Hiroyuki Yamamoto
    fi
308 4012ec30 Hiroyuki Yamamoto
}
309 4012ec30 Hiroyuki Yamamoto
310 4012ec30 Hiroyuki Yamamoto
311 4012ec30 Hiroyuki Yamamoto
# func_extract_an_archive dir oldlib
312 4012ec30 Hiroyuki Yamamoto
func_extract_an_archive ()
313 4012ec30 Hiroyuki Yamamoto
{
314 4012ec30 Hiroyuki Yamamoto
    f_ex_an_ar_dir="$1"; shift
315 4012ec30 Hiroyuki Yamamoto
    f_ex_an_ar_oldlib="$1"
316 4012ec30 Hiroyuki Yamamoto
317 4012ec30 Hiroyuki Yamamoto
    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
318 4012ec30 Hiroyuki Yamamoto
    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
319 4012ec30 Hiroyuki Yamamoto
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
320 4012ec30 Hiroyuki Yamamoto
     :
321 4012ec30 Hiroyuki Yamamoto
    else
322 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
323 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
324 4012ec30 Hiroyuki Yamamoto
    fi
325 4012ec30 Hiroyuki Yamamoto
}
326 4012ec30 Hiroyuki Yamamoto
327 4012ec30 Hiroyuki Yamamoto
# func_extract_archives gentop oldlib ...
328 4012ec30 Hiroyuki Yamamoto
func_extract_archives ()
329 4012ec30 Hiroyuki Yamamoto
{
330 4012ec30 Hiroyuki Yamamoto
    my_gentop="$1"; shift
331 4012ec30 Hiroyuki Yamamoto
    my_oldlibs=${1+"$@"}
332 4012ec30 Hiroyuki Yamamoto
    my_oldobjs=""
333 4012ec30 Hiroyuki Yamamoto
    my_xlib=""
334 4012ec30 Hiroyuki Yamamoto
    my_xabs=""
335 4012ec30 Hiroyuki Yamamoto
    my_xdir=""
336 4012ec30 Hiroyuki Yamamoto
    my_status=""
337 4012ec30 Hiroyuki Yamamoto
338 4012ec30 Hiroyuki Yamamoto
    $show "${rm}r $my_gentop"
339 4012ec30 Hiroyuki Yamamoto
    $run ${rm}r "$my_gentop"
340 4012ec30 Hiroyuki Yamamoto
    $show "$mkdir $my_gentop"
341 4012ec30 Hiroyuki Yamamoto
    $run $mkdir "$my_gentop"
342 4012ec30 Hiroyuki Yamamoto
    my_status=$?
343 4012ec30 Hiroyuki Yamamoto
    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
344 4012ec30 Hiroyuki Yamamoto
      exit $my_status
345 4012ec30 Hiroyuki Yamamoto
    fi
346 4012ec30 Hiroyuki Yamamoto
347 4012ec30 Hiroyuki Yamamoto
    for my_xlib in $my_oldlibs; do
348 4012ec30 Hiroyuki Yamamoto
      # Extract the objects.
349 4012ec30 Hiroyuki Yamamoto
      case $my_xlib in
350 4012ec30 Hiroyuki Yamamoto
	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
351 4012ec30 Hiroyuki Yamamoto
	*) my_xabs=`pwd`"/$my_xlib" ;;
352 4012ec30 Hiroyuki Yamamoto
      esac
353 4012ec30 Hiroyuki Yamamoto
      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
354 4012ec30 Hiroyuki Yamamoto
      my_xlib_u=$my_xlib
355 4012ec30 Hiroyuki Yamamoto
      while :; do
356 4012ec30 Hiroyuki Yamamoto
        case " $extracted_archives " in
357 4012ec30 Hiroyuki Yamamoto
	*" $my_xlib_u "*)
358 4012ec30 Hiroyuki Yamamoto
	  extracted_serial=`expr $extracted_serial + 1`
359 4012ec30 Hiroyuki Yamamoto
	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
360 4012ec30 Hiroyuki Yamamoto
	*) break ;;
361 4012ec30 Hiroyuki Yamamoto
	esac
362 4012ec30 Hiroyuki Yamamoto
      done
363 4012ec30 Hiroyuki Yamamoto
      extracted_archives="$extracted_archives $my_xlib_u"
364 4012ec30 Hiroyuki Yamamoto
      my_xdir="$my_gentop/$my_xlib_u"
365 4012ec30 Hiroyuki Yamamoto
366 4012ec30 Hiroyuki Yamamoto
      $show "${rm}r $my_xdir"
367 4012ec30 Hiroyuki Yamamoto
      $run ${rm}r "$my_xdir"
368 4012ec30 Hiroyuki Yamamoto
      $show "$mkdir $my_xdir"
369 4012ec30 Hiroyuki Yamamoto
      $run $mkdir "$my_xdir"
370 4012ec30 Hiroyuki Yamamoto
      exit_status=$?
371 4012ec30 Hiroyuki Yamamoto
      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
372 4012ec30 Hiroyuki Yamamoto
	exit $exit_status
373 4012ec30 Hiroyuki Yamamoto
      fi
374 4012ec30 Hiroyuki Yamamoto
      case $host in
375 4012ec30 Hiroyuki Yamamoto
      *-darwin*)
376 4012ec30 Hiroyuki Yamamoto
	$show "Extracting $my_xabs"
377 4012ec30 Hiroyuki Yamamoto
	# Do not bother doing anything if just a dry run
378 4012ec30 Hiroyuki Yamamoto
	if test -z "$run"; then
379 4012ec30 Hiroyuki Yamamoto
	  darwin_orig_dir=`pwd`
380 4012ec30 Hiroyuki Yamamoto
	  cd $my_xdir || exit $?
381 4012ec30 Hiroyuki Yamamoto
	  darwin_archive=$my_xabs
382 4012ec30 Hiroyuki Yamamoto
	  darwin_curdir=`pwd`
383 4012ec30 Hiroyuki Yamamoto
	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
384 4012ec30 Hiroyuki Yamamoto
	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
385 4012ec30 Hiroyuki Yamamoto
	  if test -n "$darwin_arches"; then 
386 4012ec30 Hiroyuki Yamamoto
	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
387 4012ec30 Hiroyuki Yamamoto
	    darwin_arch=
388 4012ec30 Hiroyuki Yamamoto
	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
389 4012ec30 Hiroyuki Yamamoto
	    for darwin_arch in  $darwin_arches ; do
390 4012ec30 Hiroyuki Yamamoto
	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
391 4012ec30 Hiroyuki Yamamoto
	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
392 4012ec30 Hiroyuki Yamamoto
	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
393 4012ec30 Hiroyuki Yamamoto
	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
394 4012ec30 Hiroyuki Yamamoto
	      cd "$darwin_curdir"
395 4012ec30 Hiroyuki Yamamoto
	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
396 4012ec30 Hiroyuki Yamamoto
	    done # $darwin_arches
397 4012ec30 Hiroyuki Yamamoto
      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
398 4012ec30 Hiroyuki Yamamoto
	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
399 4012ec30 Hiroyuki Yamamoto
	    darwin_file=
400 4012ec30 Hiroyuki Yamamoto
	    darwin_files=
401 4012ec30 Hiroyuki Yamamoto
	    for darwin_file in $darwin_filelist; do
402 4012ec30 Hiroyuki Yamamoto
	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
403 4012ec30 Hiroyuki Yamamoto
	      lipo -create -output "$darwin_file" $darwin_files
404 4012ec30 Hiroyuki Yamamoto
	    done # $darwin_filelist
405 4012ec30 Hiroyuki Yamamoto
	    ${rm}r unfat-$$
406 4012ec30 Hiroyuki Yamamoto
	    cd "$darwin_orig_dir"
407 4012ec30 Hiroyuki Yamamoto
	  else
408 4012ec30 Hiroyuki Yamamoto
	    cd "$darwin_orig_dir"
409 4012ec30 Hiroyuki Yamamoto
 	    func_extract_an_archive "$my_xdir" "$my_xabs"
410 4012ec30 Hiroyuki Yamamoto
	  fi # $darwin_arches
411 4012ec30 Hiroyuki Yamamoto
	fi # $run
412 4012ec30 Hiroyuki Yamamoto
	;;
413 4012ec30 Hiroyuki Yamamoto
      *)
414 4012ec30 Hiroyuki Yamamoto
        func_extract_an_archive "$my_xdir" "$my_xabs"
415 4012ec30 Hiroyuki Yamamoto
        ;;
416 4012ec30 Hiroyuki Yamamoto
      esac
417 4012ec30 Hiroyuki Yamamoto
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
418 4012ec30 Hiroyuki Yamamoto
    done
419 4012ec30 Hiroyuki Yamamoto
    func_extract_archives_result="$my_oldobjs"
420 4012ec30 Hiroyuki Yamamoto
}
421 4012ec30 Hiroyuki Yamamoto
# End of Shell function definitions
422 4012ec30 Hiroyuki Yamamoto
#####################################
423 4012ec30 Hiroyuki Yamamoto
424 4012ec30 Hiroyuki Yamamoto
# Darwin sucks
425 4012ec30 Hiroyuki Yamamoto
eval std_shrext=\"$shrext_cmds\"
426 4012ec30 Hiroyuki Yamamoto
427 4012ec30 Hiroyuki Yamamoto
disable_libs=no
428 4012ec30 Hiroyuki Yamamoto
429 4012ec30 Hiroyuki Yamamoto
# Parse our command line options once, thoroughly.
430 4012ec30 Hiroyuki Yamamoto
while test "$#" -gt 0
431 4012ec30 Hiroyuki Yamamoto
do
432 4012ec30 Hiroyuki Yamamoto
  arg="$1"
433 4012ec30 Hiroyuki Yamamoto
  shift
434 4012ec30 Hiroyuki Yamamoto
435 4012ec30 Hiroyuki Yamamoto
  case $arg in
436 4012ec30 Hiroyuki Yamamoto
  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
437 4012ec30 Hiroyuki Yamamoto
  *) optarg= ;;
438 4012ec30 Hiroyuki Yamamoto
  esac
439 4012ec30 Hiroyuki Yamamoto
440 4012ec30 Hiroyuki Yamamoto
  # If the previous option needs an argument, assign it.
441 4012ec30 Hiroyuki Yamamoto
  if test -n "$prev"; then
442 4012ec30 Hiroyuki Yamamoto
    case $prev in
443 4012ec30 Hiroyuki Yamamoto
    execute_dlfiles)
444 4012ec30 Hiroyuki Yamamoto
      execute_dlfiles="$execute_dlfiles $arg"
445 4012ec30 Hiroyuki Yamamoto
      ;;
446 4012ec30 Hiroyuki Yamamoto
    tag)
447 4012ec30 Hiroyuki Yamamoto
      tagname="$arg"
448 4012ec30 Hiroyuki Yamamoto
      preserve_args="${preserve_args}=$arg"
449 4012ec30 Hiroyuki Yamamoto
450 4012ec30 Hiroyuki Yamamoto
      # Check whether tagname contains only valid characters
451 4012ec30 Hiroyuki Yamamoto
      case $tagname in
452 4012ec30 Hiroyuki Yamamoto
      *[!-_A-Za-z0-9,/]*)
453 4012ec30 Hiroyuki Yamamoto
	$echo "$progname: invalid tag name: $tagname" 1>&2
454 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
455 4012ec30 Hiroyuki Yamamoto
	;;
456 4012ec30 Hiroyuki Yamamoto
      esac
457 4012ec30 Hiroyuki Yamamoto
458 4012ec30 Hiroyuki Yamamoto
      case $tagname in
459 4012ec30 Hiroyuki Yamamoto
      CC)
460 4012ec30 Hiroyuki Yamamoto
	# Don't test for the "default" C tag, as we know, it's there, but
461 4012ec30 Hiroyuki Yamamoto
	# not specially marked.
462 4012ec30 Hiroyuki Yamamoto
	;;
463 4012ec30 Hiroyuki Yamamoto
      *)
464 4012ec30 Hiroyuki Yamamoto
	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
465 4012ec30 Hiroyuki Yamamoto
	  taglist="$taglist $tagname"
466 4012ec30 Hiroyuki Yamamoto
	  # Evaluate the configuration.
467 4012ec30 Hiroyuki Yamamoto
	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
468 4012ec30 Hiroyuki Yamamoto
	else
469 4012ec30 Hiroyuki Yamamoto
	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
470 4012ec30 Hiroyuki Yamamoto
	fi
471 4012ec30 Hiroyuki Yamamoto
	;;
472 4012ec30 Hiroyuki Yamamoto
      esac
473 4012ec30 Hiroyuki Yamamoto
      ;;
474 4012ec30 Hiroyuki Yamamoto
    *)
475 4012ec30 Hiroyuki Yamamoto
      eval "$prev=\$arg"
476 4012ec30 Hiroyuki Yamamoto
      ;;
477 4012ec30 Hiroyuki Yamamoto
    esac
478 4012ec30 Hiroyuki Yamamoto
479 4012ec30 Hiroyuki Yamamoto
    prev=
480 4012ec30 Hiroyuki Yamamoto
    prevopt=
481 4012ec30 Hiroyuki Yamamoto
    continue
482 4012ec30 Hiroyuki Yamamoto
  fi
483 4012ec30 Hiroyuki Yamamoto
484 4012ec30 Hiroyuki Yamamoto
  # Have we seen a non-optional argument yet?
485 4012ec30 Hiroyuki Yamamoto
  case $arg in
486 4012ec30 Hiroyuki Yamamoto
  --help)
487 4012ec30 Hiroyuki Yamamoto
    show_help=yes
488 4012ec30 Hiroyuki Yamamoto
    ;;
489 4012ec30 Hiroyuki Yamamoto
490 4012ec30 Hiroyuki Yamamoto
  --version)
491 4012ec30 Hiroyuki Yamamoto
    echo "\
492 4012ec30 Hiroyuki Yamamoto
$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
493 4012ec30 Hiroyuki Yamamoto
494 4012ec30 Hiroyuki Yamamoto
Copyright (C) 2008  Free Software Foundation, Inc.
495 4012ec30 Hiroyuki Yamamoto
This is free software; see the source for copying conditions.  There is NO
496 4012ec30 Hiroyuki Yamamoto
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
497 4012ec30 Hiroyuki Yamamoto
    exit $?
498 4012ec30 Hiroyuki Yamamoto
    ;;
499 4012ec30 Hiroyuki Yamamoto
500 4012ec30 Hiroyuki Yamamoto
  --config)
501 4012ec30 Hiroyuki Yamamoto
    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
502 4012ec30 Hiroyuki Yamamoto
    # Now print the configurations for the tags.
503 4012ec30 Hiroyuki Yamamoto
    for tagname in $taglist; do
504 4012ec30 Hiroyuki Yamamoto
      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
505 4012ec30 Hiroyuki Yamamoto
    done
506 4012ec30 Hiroyuki Yamamoto
    exit $?
507 4012ec30 Hiroyuki Yamamoto
    ;;
508 4012ec30 Hiroyuki Yamamoto
509 4012ec30 Hiroyuki Yamamoto
  --debug)
510 4012ec30 Hiroyuki Yamamoto
    $echo "$progname: enabling shell trace mode"
511 4012ec30 Hiroyuki Yamamoto
    set -x
512 4012ec30 Hiroyuki Yamamoto
    preserve_args="$preserve_args $arg"
513 4012ec30 Hiroyuki Yamamoto
    ;;
514 4012ec30 Hiroyuki Yamamoto
515 4012ec30 Hiroyuki Yamamoto
  --dry-run | -n)
516 4012ec30 Hiroyuki Yamamoto
    run=:
517 4012ec30 Hiroyuki Yamamoto
    ;;
518 4012ec30 Hiroyuki Yamamoto
519 4012ec30 Hiroyuki Yamamoto
  --features)
520 4012ec30 Hiroyuki Yamamoto
    $echo "host: $host"
521 4012ec30 Hiroyuki Yamamoto
    if test "$build_libtool_libs" = yes; then
522 4012ec30 Hiroyuki Yamamoto
      $echo "enable shared libraries"
523 4012ec30 Hiroyuki Yamamoto
    else
524 4012ec30 Hiroyuki Yamamoto
      $echo "disable shared libraries"
525 4012ec30 Hiroyuki Yamamoto
    fi
526 4012ec30 Hiroyuki Yamamoto
    if test "$build_old_libs" = yes; then
527 4012ec30 Hiroyuki Yamamoto
      $echo "enable static libraries"
528 4012ec30 Hiroyuki Yamamoto
    else
529 4012ec30 Hiroyuki Yamamoto
      $echo "disable static libraries"
530 4012ec30 Hiroyuki Yamamoto
    fi
531 4012ec30 Hiroyuki Yamamoto
    exit $?
532 4012ec30 Hiroyuki Yamamoto
    ;;
533 4012ec30 Hiroyuki Yamamoto
534 4012ec30 Hiroyuki Yamamoto
  --finish) mode="finish" ;;
535 4012ec30 Hiroyuki Yamamoto
536 4012ec30 Hiroyuki Yamamoto
  --mode) prevopt="--mode" prev=mode ;;
537 4012ec30 Hiroyuki Yamamoto
  --mode=*) mode="$optarg" ;;
538 4012ec30 Hiroyuki Yamamoto
539 4012ec30 Hiroyuki Yamamoto
  --preserve-dup-deps) duplicate_deps="yes" ;;
540 4012ec30 Hiroyuki Yamamoto
541 4012ec30 Hiroyuki Yamamoto
  --quiet | --silent)
542 4012ec30 Hiroyuki Yamamoto
    show=:
543 4012ec30 Hiroyuki Yamamoto
    preserve_args="$preserve_args $arg"
544 4012ec30 Hiroyuki Yamamoto
    ;;
545 4012ec30 Hiroyuki Yamamoto
546 4012ec30 Hiroyuki Yamamoto
  --tag)
547 4012ec30 Hiroyuki Yamamoto
    prevopt="--tag"
548 4012ec30 Hiroyuki Yamamoto
    prev=tag
549 4012ec30 Hiroyuki Yamamoto
    preserve_args="$preserve_args --tag"
550 4012ec30 Hiroyuki Yamamoto
    ;;
551 4012ec30 Hiroyuki Yamamoto
  --tag=*)
552 4012ec30 Hiroyuki Yamamoto
    set tag "$optarg" ${1+"$@"}
553 4012ec30 Hiroyuki Yamamoto
    shift
554 4012ec30 Hiroyuki Yamamoto
    prev=tag
555 4012ec30 Hiroyuki Yamamoto
    preserve_args="$preserve_args --tag"
556 4012ec30 Hiroyuki Yamamoto
    ;;
557 4012ec30 Hiroyuki Yamamoto
558 4012ec30 Hiroyuki Yamamoto
  -dlopen)
559 4012ec30 Hiroyuki Yamamoto
    prevopt="-dlopen"
560 4012ec30 Hiroyuki Yamamoto
    prev=execute_dlfiles
561 4012ec30 Hiroyuki Yamamoto
    ;;
562 4012ec30 Hiroyuki Yamamoto
563 4012ec30 Hiroyuki Yamamoto
  -*)
564 4012ec30 Hiroyuki Yamamoto
    $echo "$modename: unrecognized option \`$arg'" 1>&2
565 4012ec30 Hiroyuki Yamamoto
    $echo "$help" 1>&2
566 4012ec30 Hiroyuki Yamamoto
    exit $EXIT_FAILURE
567 4012ec30 Hiroyuki Yamamoto
    ;;
568 4012ec30 Hiroyuki Yamamoto
569 4012ec30 Hiroyuki Yamamoto
  *)
570 4012ec30 Hiroyuki Yamamoto
    nonopt="$arg"
571 4012ec30 Hiroyuki Yamamoto
    break
572 4012ec30 Hiroyuki Yamamoto
    ;;
573 4012ec30 Hiroyuki Yamamoto
  esac
574 4012ec30 Hiroyuki Yamamoto
done
575 4012ec30 Hiroyuki Yamamoto
576 4012ec30 Hiroyuki Yamamoto
if test -n "$prevopt"; then
577 4012ec30 Hiroyuki Yamamoto
  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
578 4012ec30 Hiroyuki Yamamoto
  $echo "$help" 1>&2
579 4012ec30 Hiroyuki Yamamoto
  exit $EXIT_FAILURE
580 4012ec30 Hiroyuki Yamamoto
fi
581 4012ec30 Hiroyuki Yamamoto
582 4012ec30 Hiroyuki Yamamoto
case $disable_libs in
583 4012ec30 Hiroyuki Yamamoto
no) 
584 4012ec30 Hiroyuki Yamamoto
  ;;
585 4012ec30 Hiroyuki Yamamoto
shared)
586 4012ec30 Hiroyuki Yamamoto
  build_libtool_libs=no
587 4012ec30 Hiroyuki Yamamoto
  build_old_libs=yes
588 4012ec30 Hiroyuki Yamamoto
  ;;
589 4012ec30 Hiroyuki Yamamoto
static)
590 4012ec30 Hiroyuki Yamamoto
  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
591 4012ec30 Hiroyuki Yamamoto
  ;;
592 4012ec30 Hiroyuki Yamamoto
esac
593 4012ec30 Hiroyuki Yamamoto
594 4012ec30 Hiroyuki Yamamoto
# If this variable is set in any of the actions, the command in it
595 4012ec30 Hiroyuki Yamamoto
# will be execed at the end.  This prevents here-documents from being
596 4012ec30 Hiroyuki Yamamoto
# left over by shells.
597 4012ec30 Hiroyuki Yamamoto
exec_cmd=
598 4012ec30 Hiroyuki Yamamoto
599 4012ec30 Hiroyuki Yamamoto
if test -z "$show_help"; then
600 4012ec30 Hiroyuki Yamamoto
601 4012ec30 Hiroyuki Yamamoto
  # Infer the operation mode.
602 4012ec30 Hiroyuki Yamamoto
  if test -z "$mode"; then
603 4012ec30 Hiroyuki Yamamoto
    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
604 4012ec30 Hiroyuki Yamamoto
    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
605 4012ec30 Hiroyuki Yamamoto
    case $nonopt in
606 4012ec30 Hiroyuki Yamamoto
    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
607 4012ec30 Hiroyuki Yamamoto
      mode=link
608 4012ec30 Hiroyuki Yamamoto
      for arg
609 4012ec30 Hiroyuki Yamamoto
      do
610 4012ec30 Hiroyuki Yamamoto
	case $arg in
611 4012ec30 Hiroyuki Yamamoto
	-c)
612 4012ec30 Hiroyuki Yamamoto
	   mode=compile
613 4012ec30 Hiroyuki Yamamoto
	   break
614 4012ec30 Hiroyuki Yamamoto
	   ;;
615 4012ec30 Hiroyuki Yamamoto
	esac
616 4012ec30 Hiroyuki Yamamoto
      done
617 4012ec30 Hiroyuki Yamamoto
      ;;
618 4012ec30 Hiroyuki Yamamoto
    *db | *dbx | *strace | *truss)
619 4012ec30 Hiroyuki Yamamoto
      mode=execute
620 4012ec30 Hiroyuki Yamamoto
      ;;
621 4012ec30 Hiroyuki Yamamoto
    *install*|cp|mv)
622 4012ec30 Hiroyuki Yamamoto
      mode=install
623 4012ec30 Hiroyuki Yamamoto
      ;;
624 4012ec30 Hiroyuki Yamamoto
    *rm)
625 4012ec30 Hiroyuki Yamamoto
      mode=uninstall
626 4012ec30 Hiroyuki Yamamoto
      ;;
627 4012ec30 Hiroyuki Yamamoto
    *)
628 4012ec30 Hiroyuki Yamamoto
      # If we have no mode, but dlfiles were specified, then do execute mode.
629 4012ec30 Hiroyuki Yamamoto
      test -n "$execute_dlfiles" && mode=execute
630 4012ec30 Hiroyuki Yamamoto
631 4012ec30 Hiroyuki Yamamoto
      # Just use the default operation mode.
632 4012ec30 Hiroyuki Yamamoto
      if test -z "$mode"; then
633 4012ec30 Hiroyuki Yamamoto
	if test -n "$nonopt"; then
634 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
635 4012ec30 Hiroyuki Yamamoto
	else
636 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
637 4012ec30 Hiroyuki Yamamoto
	fi
638 4012ec30 Hiroyuki Yamamoto
      fi
639 4012ec30 Hiroyuki Yamamoto
      ;;
640 4012ec30 Hiroyuki Yamamoto
    esac
641 4012ec30 Hiroyuki Yamamoto
  fi
642 4012ec30 Hiroyuki Yamamoto
643 4012ec30 Hiroyuki Yamamoto
  # Only execute mode is allowed to have -dlopen flags.
644 4012ec30 Hiroyuki Yamamoto
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
645 4012ec30 Hiroyuki Yamamoto
    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
646 4012ec30 Hiroyuki Yamamoto
    $echo "$help" 1>&2
647 4012ec30 Hiroyuki Yamamoto
    exit $EXIT_FAILURE
648 4012ec30 Hiroyuki Yamamoto
  fi
649 4012ec30 Hiroyuki Yamamoto
650 4012ec30 Hiroyuki Yamamoto
  # Change the help message to a mode-specific one.
651 4012ec30 Hiroyuki Yamamoto
  generic_help="$help"
652 4012ec30 Hiroyuki Yamamoto
  help="Try \`$modename --help --mode=$mode' for more information."
653 4012ec30 Hiroyuki Yamamoto
654 4012ec30 Hiroyuki Yamamoto
  # These modes are in order of execution frequency so that they run quickly.
655 4012ec30 Hiroyuki Yamamoto
  case $mode in
656 4012ec30 Hiroyuki Yamamoto
  # libtool compile mode
657 4012ec30 Hiroyuki Yamamoto
  compile)
658 4012ec30 Hiroyuki Yamamoto
    modename="$modename: compile"
659 4012ec30 Hiroyuki Yamamoto
    # Get the compilation command and the source file.
660 4012ec30 Hiroyuki Yamamoto
    base_compile=
661 4012ec30 Hiroyuki Yamamoto
    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
662 4012ec30 Hiroyuki Yamamoto
    suppress_opt=yes
663 4012ec30 Hiroyuki Yamamoto
    suppress_output=
664 4012ec30 Hiroyuki Yamamoto
    arg_mode=normal
665 4012ec30 Hiroyuki Yamamoto
    libobj=
666 4012ec30 Hiroyuki Yamamoto
    later=
667 4012ec30 Hiroyuki Yamamoto
668 4012ec30 Hiroyuki Yamamoto
    for arg
669 4012ec30 Hiroyuki Yamamoto
    do
670 4012ec30 Hiroyuki Yamamoto
      case $arg_mode in
671 4012ec30 Hiroyuki Yamamoto
      arg  )
672 4012ec30 Hiroyuki Yamamoto
	# do not "continue".  Instead, add this to base_compile
673 4012ec30 Hiroyuki Yamamoto
	lastarg="$arg"
674 4012ec30 Hiroyuki Yamamoto
	arg_mode=normal
675 4012ec30 Hiroyuki Yamamoto
	;;
676 4012ec30 Hiroyuki Yamamoto
677 4012ec30 Hiroyuki Yamamoto
      target )
678 4012ec30 Hiroyuki Yamamoto
	libobj="$arg"
679 4012ec30 Hiroyuki Yamamoto
	arg_mode=normal
680 4012ec30 Hiroyuki Yamamoto
	continue
681 4012ec30 Hiroyuki Yamamoto
	;;
682 4012ec30 Hiroyuki Yamamoto
683 4012ec30 Hiroyuki Yamamoto
      normal )
684 4012ec30 Hiroyuki Yamamoto
	# Accept any command-line options.
685 4012ec30 Hiroyuki Yamamoto
	case $arg in
686 4012ec30 Hiroyuki Yamamoto
	-o)
687 4012ec30 Hiroyuki Yamamoto
	  if test -n "$libobj" ; then
688 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
689 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
690 4012ec30 Hiroyuki Yamamoto
	  fi
691 4012ec30 Hiroyuki Yamamoto
	  arg_mode=target
692 4012ec30 Hiroyuki Yamamoto
	  continue
693 4012ec30 Hiroyuki Yamamoto
	  ;;
694 4012ec30 Hiroyuki Yamamoto
695 4012ec30 Hiroyuki Yamamoto
	-static | -prefer-pic | -prefer-non-pic)
696 4012ec30 Hiroyuki Yamamoto
	  later="$later $arg"
697 4012ec30 Hiroyuki Yamamoto
	  continue
698 4012ec30 Hiroyuki Yamamoto
	  ;;
699 4012ec30 Hiroyuki Yamamoto
700 4012ec30 Hiroyuki Yamamoto
	-no-suppress)
701 4012ec30 Hiroyuki Yamamoto
	  suppress_opt=no
702 4012ec30 Hiroyuki Yamamoto
	  continue
703 4012ec30 Hiroyuki Yamamoto
	  ;;
704 4012ec30 Hiroyuki Yamamoto
705 4012ec30 Hiroyuki Yamamoto
	-Xcompiler)
706 4012ec30 Hiroyuki Yamamoto
	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
707 4012ec30 Hiroyuki Yamamoto
	  continue      #  The current "srcfile" will either be retained or
708 4012ec30 Hiroyuki Yamamoto
	  ;;            #  replaced later.  I would guess that would be a bug.
709 4012ec30 Hiroyuki Yamamoto
710 4012ec30 Hiroyuki Yamamoto
	-Wc,*)
711 4012ec30 Hiroyuki Yamamoto
	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
712 4012ec30 Hiroyuki Yamamoto
	  lastarg=
713 4012ec30 Hiroyuki Yamamoto
	  save_ifs="$IFS"; IFS=','
714 4012ec30 Hiroyuki Yamamoto
 	  for arg in $args; do
715 4012ec30 Hiroyuki Yamamoto
	    IFS="$save_ifs"
716 4012ec30 Hiroyuki Yamamoto
717 4012ec30 Hiroyuki Yamamoto
	    # Double-quote args containing other shell metacharacters.
718 4012ec30 Hiroyuki Yamamoto
	    # Many Bourne shells cannot handle close brackets correctly
719 4012ec30 Hiroyuki Yamamoto
	    # in scan sets, so we specify it separately.
720 4012ec30 Hiroyuki Yamamoto
	    case $arg in
721 4012ec30 Hiroyuki Yamamoto
	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722 4012ec30 Hiroyuki Yamamoto
	      arg="\"$arg\""
723 4012ec30 Hiroyuki Yamamoto
	      ;;
724 4012ec30 Hiroyuki Yamamoto
	    esac
725 4012ec30 Hiroyuki Yamamoto
	    lastarg="$lastarg $arg"
726 4012ec30 Hiroyuki Yamamoto
	  done
727 4012ec30 Hiroyuki Yamamoto
	  IFS="$save_ifs"
728 4012ec30 Hiroyuki Yamamoto
	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
729 4012ec30 Hiroyuki Yamamoto
730 4012ec30 Hiroyuki Yamamoto
	  # Add the arguments to base_compile.
731 4012ec30 Hiroyuki Yamamoto
	  base_compile="$base_compile $lastarg"
732 4012ec30 Hiroyuki Yamamoto
	  continue
733 4012ec30 Hiroyuki Yamamoto
	  ;;
734 4012ec30 Hiroyuki Yamamoto
735 4012ec30 Hiroyuki Yamamoto
	* )
736 4012ec30 Hiroyuki Yamamoto
	  # Accept the current argument as the source file.
737 4012ec30 Hiroyuki Yamamoto
	  # The previous "srcfile" becomes the current argument.
738 4012ec30 Hiroyuki Yamamoto
	  #
739 4012ec30 Hiroyuki Yamamoto
	  lastarg="$srcfile"
740 4012ec30 Hiroyuki Yamamoto
	  srcfile="$arg"
741 4012ec30 Hiroyuki Yamamoto
	  ;;
742 4012ec30 Hiroyuki Yamamoto
	esac  #  case $arg
743 4012ec30 Hiroyuki Yamamoto
	;;
744 4012ec30 Hiroyuki Yamamoto
      esac    #  case $arg_mode
745 4012ec30 Hiroyuki Yamamoto
746 4012ec30 Hiroyuki Yamamoto
      # Aesthetically quote the previous argument.
747 4012ec30 Hiroyuki Yamamoto
      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
748 4012ec30 Hiroyuki Yamamoto
749 4012ec30 Hiroyuki Yamamoto
      case $lastarg in
750 4012ec30 Hiroyuki Yamamoto
      # Double-quote args containing other shell metacharacters.
751 4012ec30 Hiroyuki Yamamoto
      # Many Bourne shells cannot handle close brackets correctly
752 4012ec30 Hiroyuki Yamamoto
      # in scan sets, and some SunOS ksh mistreat backslash-escaping
753 4012ec30 Hiroyuki Yamamoto
      # in scan sets (worked around with variable expansion),
754 4012ec30 Hiroyuki Yamamoto
      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
755 4012ec30 Hiroyuki Yamamoto
      # at all, so we specify them separately.
756 4012ec30 Hiroyuki Yamamoto
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
757 4012ec30 Hiroyuki Yamamoto
	lastarg="\"$lastarg\""
758 4012ec30 Hiroyuki Yamamoto
	;;
759 4012ec30 Hiroyuki Yamamoto
      esac
760 4012ec30 Hiroyuki Yamamoto
761 4012ec30 Hiroyuki Yamamoto
      base_compile="$base_compile $lastarg"
762 4012ec30 Hiroyuki Yamamoto
    done # for arg
763 4012ec30 Hiroyuki Yamamoto
764 4012ec30 Hiroyuki Yamamoto
    case $arg_mode in
765 4012ec30 Hiroyuki Yamamoto
    arg)
766 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: you must specify an argument for -Xcompile"
767 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
768 4012ec30 Hiroyuki Yamamoto
      ;;
769 4012ec30 Hiroyuki Yamamoto
    target)
770 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: you must specify a target with \`-o'" 1>&2
771 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
772 4012ec30 Hiroyuki Yamamoto
      ;;
773 4012ec30 Hiroyuki Yamamoto
    *)
774 4012ec30 Hiroyuki Yamamoto
      # Get the name of the library object.
775 4012ec30 Hiroyuki Yamamoto
      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
776 4012ec30 Hiroyuki Yamamoto
      ;;
777 4012ec30 Hiroyuki Yamamoto
    esac
778 4012ec30 Hiroyuki Yamamoto
779 4012ec30 Hiroyuki Yamamoto
    # Recognize several different file suffixes.
780 4012ec30 Hiroyuki Yamamoto
    # If the user specifies -o file.o, it is replaced with file.lo
781 4012ec30 Hiroyuki Yamamoto
    xform='[cCFSifmso]'
782 4012ec30 Hiroyuki Yamamoto
    case $libobj in
783 4012ec30 Hiroyuki Yamamoto
    *.ada) xform=ada ;;
784 4012ec30 Hiroyuki Yamamoto
    *.adb) xform=adb ;;
785 4012ec30 Hiroyuki Yamamoto
    *.ads) xform=ads ;;
786 4012ec30 Hiroyuki Yamamoto
    *.asm) xform=asm ;;
787 4012ec30 Hiroyuki Yamamoto
    *.c++) xform=c++ ;;
788 4012ec30 Hiroyuki Yamamoto
    *.cc) xform=cc ;;
789 4012ec30 Hiroyuki Yamamoto
    *.ii) xform=ii ;;
790 4012ec30 Hiroyuki Yamamoto
    *.class) xform=class ;;
791 4012ec30 Hiroyuki Yamamoto
    *.cpp) xform=cpp ;;
792 4012ec30 Hiroyuki Yamamoto
    *.cxx) xform=cxx ;;
793 4012ec30 Hiroyuki Yamamoto
    *.[fF][09]?) xform=[fF][09]. ;;
794 4012ec30 Hiroyuki Yamamoto
    *.for) xform=for ;;
795 4012ec30 Hiroyuki Yamamoto
    *.java) xform=java ;;
796 4012ec30 Hiroyuki Yamamoto
    *.obj) xform=obj ;;
797 4012ec30 Hiroyuki Yamamoto
    *.sx) xform=sx ;;
798 4012ec30 Hiroyuki Yamamoto
    esac
799 4012ec30 Hiroyuki Yamamoto
800 4012ec30 Hiroyuki Yamamoto
    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
801 4012ec30 Hiroyuki Yamamoto
802 4012ec30 Hiroyuki Yamamoto
    case $libobj in
803 4012ec30 Hiroyuki Yamamoto
    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
804 4012ec30 Hiroyuki Yamamoto
    *)
805 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
806 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
807 4012ec30 Hiroyuki Yamamoto
      ;;
808 4012ec30 Hiroyuki Yamamoto
    esac
809 4012ec30 Hiroyuki Yamamoto
810 4012ec30 Hiroyuki Yamamoto
    func_infer_tag $base_compile
811 4012ec30 Hiroyuki Yamamoto
812 4012ec30 Hiroyuki Yamamoto
    for arg in $later; do
813 4012ec30 Hiroyuki Yamamoto
      case $arg in
814 4012ec30 Hiroyuki Yamamoto
      -static)
815 4012ec30 Hiroyuki Yamamoto
	build_old_libs=yes
816 4012ec30 Hiroyuki Yamamoto
	continue
817 4012ec30 Hiroyuki Yamamoto
	;;
818 4012ec30 Hiroyuki Yamamoto
819 4012ec30 Hiroyuki Yamamoto
      -prefer-pic)
820 4012ec30 Hiroyuki Yamamoto
	pic_mode=yes
821 4012ec30 Hiroyuki Yamamoto
	continue
822 4012ec30 Hiroyuki Yamamoto
	;;
823 4012ec30 Hiroyuki Yamamoto
824 4012ec30 Hiroyuki Yamamoto
      -prefer-non-pic)
825 4012ec30 Hiroyuki Yamamoto
	pic_mode=no
826 4012ec30 Hiroyuki Yamamoto
	continue
827 4012ec30 Hiroyuki Yamamoto
	;;
828 4012ec30 Hiroyuki Yamamoto
      esac
829 4012ec30 Hiroyuki Yamamoto
    done
830 4012ec30 Hiroyuki Yamamoto
831 4012ec30 Hiroyuki Yamamoto
    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
832 4012ec30 Hiroyuki Yamamoto
    case $qlibobj in
833 4012ec30 Hiroyuki Yamamoto
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
834 4012ec30 Hiroyuki Yamamoto
	qlibobj="\"$qlibobj\"" ;;
835 4012ec30 Hiroyuki Yamamoto
    esac
836 4012ec30 Hiroyuki Yamamoto
    test "X$libobj" != "X$qlibobj" \
837 4012ec30 Hiroyuki Yamamoto
	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
838 4012ec30 Hiroyuki Yamamoto
	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
839 4012ec30 Hiroyuki Yamamoto
    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
840 4012ec30 Hiroyuki Yamamoto
    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
841 4012ec30 Hiroyuki Yamamoto
    if test "X$xdir" = "X$obj"; then
842 4012ec30 Hiroyuki Yamamoto
      xdir=
843 4012ec30 Hiroyuki Yamamoto
    else
844 4012ec30 Hiroyuki Yamamoto
      xdir=$xdir/
845 4012ec30 Hiroyuki Yamamoto
    fi
846 4012ec30 Hiroyuki Yamamoto
    lobj=${xdir}$objdir/$objname
847 4012ec30 Hiroyuki Yamamoto
848 4012ec30 Hiroyuki Yamamoto
    if test -z "$base_compile"; then
849 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: you must specify a compilation command" 1>&2
850 4012ec30 Hiroyuki Yamamoto
      $echo "$help" 1>&2
851 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
852 4012ec30 Hiroyuki Yamamoto
    fi
853 4012ec30 Hiroyuki Yamamoto
854 4012ec30 Hiroyuki Yamamoto
    # Delete any leftover library objects.
855 4012ec30 Hiroyuki Yamamoto
    if test "$build_old_libs" = yes; then
856 4012ec30 Hiroyuki Yamamoto
      removelist="$obj $lobj $libobj ${libobj}T"
857 4012ec30 Hiroyuki Yamamoto
    else
858 4012ec30 Hiroyuki Yamamoto
      removelist="$lobj $libobj ${libobj}T"
859 4012ec30 Hiroyuki Yamamoto
    fi
860 4012ec30 Hiroyuki Yamamoto
861 4012ec30 Hiroyuki Yamamoto
    $run $rm $removelist
862 4012ec30 Hiroyuki Yamamoto
    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
863 4012ec30 Hiroyuki Yamamoto
864 4012ec30 Hiroyuki Yamamoto
    # On Cygwin there's no "real" PIC flag so we must build both object types
865 4012ec30 Hiroyuki Yamamoto
    case $host_os in
866 4012ec30 Hiroyuki Yamamoto
    cygwin* | mingw* | pw32* | os2*)
867 4012ec30 Hiroyuki Yamamoto
      pic_mode=default
868 4012ec30 Hiroyuki Yamamoto
      ;;
869 4012ec30 Hiroyuki Yamamoto
    esac
870 4012ec30 Hiroyuki Yamamoto
    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
871 4012ec30 Hiroyuki Yamamoto
      # non-PIC code in shared libraries is not supported
872 4012ec30 Hiroyuki Yamamoto
      pic_mode=default
873 4012ec30 Hiroyuki Yamamoto
    fi
874 4012ec30 Hiroyuki Yamamoto
875 4012ec30 Hiroyuki Yamamoto
    # Calculate the filename of the output object if compiler does
876 4012ec30 Hiroyuki Yamamoto
    # not support -o with -c
877 4012ec30 Hiroyuki Yamamoto
    if test "$compiler_c_o" = no; then
878 4012ec30 Hiroyuki Yamamoto
      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
879 4012ec30 Hiroyuki Yamamoto
      lockfile="$output_obj.lock"
880 4012ec30 Hiroyuki Yamamoto
      removelist="$removelist $output_obj $lockfile"
881 4012ec30 Hiroyuki Yamamoto
      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
882 4012ec30 Hiroyuki Yamamoto
    else
883 4012ec30 Hiroyuki Yamamoto
      output_obj=
884 4012ec30 Hiroyuki Yamamoto
      need_locks=no
885 4012ec30 Hiroyuki Yamamoto
      lockfile=
886 4012ec30 Hiroyuki Yamamoto
    fi
887 4012ec30 Hiroyuki Yamamoto
888 4012ec30 Hiroyuki Yamamoto
    # Lock this critical section if it is needed
889 4012ec30 Hiroyuki Yamamoto
    # We use this script file to make the link, it avoids creating a new file
890 4012ec30 Hiroyuki Yamamoto
    if test "$need_locks" = yes; then
891 4012ec30 Hiroyuki Yamamoto
      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
892 4012ec30 Hiroyuki Yamamoto
	$show "Waiting for $lockfile to be removed"
893 4012ec30 Hiroyuki Yamamoto
	sleep 2
894 4012ec30 Hiroyuki Yamamoto
      done
895 4012ec30 Hiroyuki Yamamoto
    elif test "$need_locks" = warn; then
896 4012ec30 Hiroyuki Yamamoto
      if test -f "$lockfile"; then
897 4012ec30 Hiroyuki Yamamoto
	$echo "\
898 4012ec30 Hiroyuki Yamamoto
*** ERROR, $lockfile exists and contains:
899 4012ec30 Hiroyuki Yamamoto
`cat $lockfile 2>/dev/null`
900 4012ec30 Hiroyuki Yamamoto
901 4012ec30 Hiroyuki Yamamoto
This indicates that another process is trying to use the same
902 4012ec30 Hiroyuki Yamamoto
temporary object file, and libtool could not work around it because
903 4012ec30 Hiroyuki Yamamoto
your compiler does not support \`-c' and \`-o' together.  If you
904 4012ec30 Hiroyuki Yamamoto
repeat this compilation, it may succeed, by chance, but you had better
905 4012ec30 Hiroyuki Yamamoto
avoid parallel builds (make -j) in this platform, or get a better
906 4012ec30 Hiroyuki Yamamoto
compiler."
907 4012ec30 Hiroyuki Yamamoto
908 4012ec30 Hiroyuki Yamamoto
	$run $rm $removelist
909 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
910 4012ec30 Hiroyuki Yamamoto
      fi
911 4012ec30 Hiroyuki Yamamoto
      $echo "$srcfile" > "$lockfile"
912 4012ec30 Hiroyuki Yamamoto
    fi
913 4012ec30 Hiroyuki Yamamoto
914 4012ec30 Hiroyuki Yamamoto
    if test -n "$fix_srcfile_path"; then
915 4012ec30 Hiroyuki Yamamoto
      eval srcfile=\"$fix_srcfile_path\"
916 4012ec30 Hiroyuki Yamamoto
    fi
917 4012ec30 Hiroyuki Yamamoto
    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
918 4012ec30 Hiroyuki Yamamoto
    case $qsrcfile in
919 4012ec30 Hiroyuki Yamamoto
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
920 4012ec30 Hiroyuki Yamamoto
      qsrcfile="\"$qsrcfile\"" ;;
921 4012ec30 Hiroyuki Yamamoto
    esac
922 4012ec30 Hiroyuki Yamamoto
923 4012ec30 Hiroyuki Yamamoto
    $run $rm "$libobj" "${libobj}T"
924 4012ec30 Hiroyuki Yamamoto
925 4012ec30 Hiroyuki Yamamoto
    # Create a libtool object file (analogous to a ".la" file),
926 4012ec30 Hiroyuki Yamamoto
    # but don't create it if we're doing a dry run.
927 4012ec30 Hiroyuki Yamamoto
    test -z "$run" && cat > ${libobj}T <<EOF
928 4012ec30 Hiroyuki Yamamoto
# $libobj - a libtool object file
929 4012ec30 Hiroyuki Yamamoto
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
930 4012ec30 Hiroyuki Yamamoto
#
931 4012ec30 Hiroyuki Yamamoto
# Please DO NOT delete this file!
932 4012ec30 Hiroyuki Yamamoto
# It is necessary for linking the library.
933 4012ec30 Hiroyuki Yamamoto
934 4012ec30 Hiroyuki Yamamoto
# Name of the PIC object.
935 4012ec30 Hiroyuki Yamamoto
EOF
936 4012ec30 Hiroyuki Yamamoto
937 4012ec30 Hiroyuki Yamamoto
    # Only build a PIC object if we are building libtool libraries.
938 4012ec30 Hiroyuki Yamamoto
    if test "$build_libtool_libs" = yes; then
939 4012ec30 Hiroyuki Yamamoto
      # Without this assignment, base_compile gets emptied.
940 4012ec30 Hiroyuki Yamamoto
      fbsd_hideous_sh_bug=$base_compile
941 4012ec30 Hiroyuki Yamamoto
942 4012ec30 Hiroyuki Yamamoto
      if test "$pic_mode" != no; then
943 4012ec30 Hiroyuki Yamamoto
	command="$base_compile $qsrcfile $pic_flag"
944 4012ec30 Hiroyuki Yamamoto
      else
945 4012ec30 Hiroyuki Yamamoto
	# Don't build PIC code
946 4012ec30 Hiroyuki Yamamoto
	command="$base_compile $qsrcfile"
947 4012ec30 Hiroyuki Yamamoto
      fi
948 4012ec30 Hiroyuki Yamamoto
949 4012ec30 Hiroyuki Yamamoto
      if test ! -d "${xdir}$objdir"; then
950 4012ec30 Hiroyuki Yamamoto
	$show "$mkdir ${xdir}$objdir"
951 4012ec30 Hiroyuki Yamamoto
	$run $mkdir ${xdir}$objdir
952 4012ec30 Hiroyuki Yamamoto
	exit_status=$?
953 4012ec30 Hiroyuki Yamamoto
	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
954 4012ec30 Hiroyuki Yamamoto
	  exit $exit_status
955 4012ec30 Hiroyuki Yamamoto
	fi
956 4012ec30 Hiroyuki Yamamoto
      fi
957 4012ec30 Hiroyuki Yamamoto
958 4012ec30 Hiroyuki Yamamoto
      if test -z "$output_obj"; then
959 4012ec30 Hiroyuki Yamamoto
	# Place PIC objects in $objdir
960 4012ec30 Hiroyuki Yamamoto
	command="$command -o $lobj"
961 4012ec30 Hiroyuki Yamamoto
      fi
962 4012ec30 Hiroyuki Yamamoto
963 4012ec30 Hiroyuki Yamamoto
      $run $rm "$lobj" "$output_obj"
964 4012ec30 Hiroyuki Yamamoto
965 4012ec30 Hiroyuki Yamamoto
      $show "$command"
966 4012ec30 Hiroyuki Yamamoto
      if $run eval $lt_env "$command"; then :
967 4012ec30 Hiroyuki Yamamoto
      else
968 4012ec30 Hiroyuki Yamamoto
	test -n "$output_obj" && $run $rm $removelist
969 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
970 4012ec30 Hiroyuki Yamamoto
      fi
971 4012ec30 Hiroyuki Yamamoto
972 4012ec30 Hiroyuki Yamamoto
      if test "$need_locks" = warn &&
973 4012ec30 Hiroyuki Yamamoto
	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
974 4012ec30 Hiroyuki Yamamoto
	$echo "\
975 4012ec30 Hiroyuki Yamamoto
*** ERROR, $lockfile contains:
976 4012ec30 Hiroyuki Yamamoto
`cat $lockfile 2>/dev/null`
977 4012ec30 Hiroyuki Yamamoto
978 4012ec30 Hiroyuki Yamamoto
but it should contain:
979 4012ec30 Hiroyuki Yamamoto
$srcfile
980 4012ec30 Hiroyuki Yamamoto
981 4012ec30 Hiroyuki Yamamoto
This indicates that another process is trying to use the same
982 4012ec30 Hiroyuki Yamamoto
temporary object file, and libtool could not work around it because
983 4012ec30 Hiroyuki Yamamoto
your compiler does not support \`-c' and \`-o' together.  If you
984 4012ec30 Hiroyuki Yamamoto
repeat this compilation, it may succeed, by chance, but you had better
985 4012ec30 Hiroyuki Yamamoto
avoid parallel builds (make -j) in this platform, or get a better
986 4012ec30 Hiroyuki Yamamoto
compiler."
987 4012ec30 Hiroyuki Yamamoto
988 4012ec30 Hiroyuki Yamamoto
	$run $rm $removelist
989 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
990 4012ec30 Hiroyuki Yamamoto
      fi
991 4012ec30 Hiroyuki Yamamoto
992 4012ec30 Hiroyuki Yamamoto
      # Just move the object if needed, then go on to compile the next one
993 4012ec30 Hiroyuki Yamamoto
      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
994 4012ec30 Hiroyuki Yamamoto
	$show "$mv $output_obj $lobj"
995 4012ec30 Hiroyuki Yamamoto
	if $run $mv $output_obj $lobj; then :
996 4012ec30 Hiroyuki Yamamoto
	else
997 4012ec30 Hiroyuki Yamamoto
	  error=$?
998 4012ec30 Hiroyuki Yamamoto
	  $run $rm $removelist
999 4012ec30 Hiroyuki Yamamoto
	  exit $error
1000 4012ec30 Hiroyuki Yamamoto
	fi
1001 4012ec30 Hiroyuki Yamamoto
      fi
1002 4012ec30 Hiroyuki Yamamoto
1003 4012ec30 Hiroyuki Yamamoto
      # Append the name of the PIC object to the libtool object file.
1004 4012ec30 Hiroyuki Yamamoto
      test -z "$run" && cat >> ${libobj}T <<EOF
1005 4012ec30 Hiroyuki Yamamoto
pic_object='$objdir/$objname'
1006 4012ec30 Hiroyuki Yamamoto
1007 4012ec30 Hiroyuki Yamamoto
EOF
1008 4012ec30 Hiroyuki Yamamoto
1009 4012ec30 Hiroyuki Yamamoto
      # Allow error messages only from the first compilation.
1010 4012ec30 Hiroyuki Yamamoto
      if test "$suppress_opt" = yes; then
1011 4012ec30 Hiroyuki Yamamoto
        suppress_output=' >/dev/null 2>&1'
1012 4012ec30 Hiroyuki Yamamoto
      fi
1013 4012ec30 Hiroyuki Yamamoto
    else
1014 4012ec30 Hiroyuki Yamamoto
      # No PIC object so indicate it doesn't exist in the libtool
1015 4012ec30 Hiroyuki Yamamoto
      # object file.
1016 4012ec30 Hiroyuki Yamamoto
      test -z "$run" && cat >> ${libobj}T <<EOF
1017 4012ec30 Hiroyuki Yamamoto
pic_object=none
1018 4012ec30 Hiroyuki Yamamoto
1019 4012ec30 Hiroyuki Yamamoto
EOF
1020 4012ec30 Hiroyuki Yamamoto
    fi
1021 4012ec30 Hiroyuki Yamamoto
1022 4012ec30 Hiroyuki Yamamoto
    # Only build a position-dependent object if we build old libraries.
1023 4012ec30 Hiroyuki Yamamoto
    if test "$build_old_libs" = yes; then
1024 4012ec30 Hiroyuki Yamamoto
      if test "$pic_mode" != yes; then
1025 4012ec30 Hiroyuki Yamamoto
	# Don't build PIC code
1026 4012ec30 Hiroyuki Yamamoto
	command="$base_compile $qsrcfile"
1027 4012ec30 Hiroyuki Yamamoto
      else
1028 4012ec30 Hiroyuki Yamamoto
	command="$base_compile $qsrcfile $pic_flag"
1029 4012ec30 Hiroyuki Yamamoto
      fi
1030 4012ec30 Hiroyuki Yamamoto
      if test "$compiler_c_o" = yes; then
1031 4012ec30 Hiroyuki Yamamoto
	command="$command -o $obj"
1032 4012ec30 Hiroyuki Yamamoto
      fi
1033 4012ec30 Hiroyuki Yamamoto
1034 4012ec30 Hiroyuki Yamamoto
      # Suppress compiler output if we already did a PIC compilation.
1035 4012ec30 Hiroyuki Yamamoto
      command="$command$suppress_output"
1036 4012ec30 Hiroyuki Yamamoto
      $run $rm "$obj" "$output_obj"
1037 4012ec30 Hiroyuki Yamamoto
      $show "$command"
1038 4012ec30 Hiroyuki Yamamoto
      if $run eval $lt_env "$command"; then :
1039 4012ec30 Hiroyuki Yamamoto
      else
1040 4012ec30 Hiroyuki Yamamoto
	$run $rm $removelist
1041 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
1042 4012ec30 Hiroyuki Yamamoto
      fi
1043 4012ec30 Hiroyuki Yamamoto
1044 4012ec30 Hiroyuki Yamamoto
      if test "$need_locks" = warn &&
1045 4012ec30 Hiroyuki Yamamoto
	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1046 4012ec30 Hiroyuki Yamamoto
	$echo "\
1047 4012ec30 Hiroyuki Yamamoto
*** ERROR, $lockfile contains:
1048 4012ec30 Hiroyuki Yamamoto
`cat $lockfile 2>/dev/null`
1049 4012ec30 Hiroyuki Yamamoto
1050 4012ec30 Hiroyuki Yamamoto
but it should contain:
1051 4012ec30 Hiroyuki Yamamoto
$srcfile
1052 4012ec30 Hiroyuki Yamamoto
1053 4012ec30 Hiroyuki Yamamoto
This indicates that another process is trying to use the same
1054 4012ec30 Hiroyuki Yamamoto
temporary object file, and libtool could not work around it because
1055 4012ec30 Hiroyuki Yamamoto
your compiler does not support \`-c' and \`-o' together.  If you
1056 4012ec30 Hiroyuki Yamamoto
repeat this compilation, it may succeed, by chance, but you had better
1057 4012ec30 Hiroyuki Yamamoto
avoid parallel builds (make -j) in this platform, or get a better
1058 4012ec30 Hiroyuki Yamamoto
compiler."
1059 4012ec30 Hiroyuki Yamamoto
1060 4012ec30 Hiroyuki Yamamoto
	$run $rm $removelist
1061 4012ec30 Hiroyuki Yamamoto
	exit $EXIT_FAILURE
1062 4012ec30 Hiroyuki Yamamoto
      fi
1063 4012ec30 Hiroyuki Yamamoto
1064 4012ec30 Hiroyuki Yamamoto
      # Just move the object if needed
1065 4012ec30 Hiroyuki Yamamoto
      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1066 4012ec30 Hiroyuki Yamamoto
	$show "$mv $output_obj $obj"
1067 4012ec30 Hiroyuki Yamamoto
	if $run $mv $output_obj $obj; then :
1068 4012ec30 Hiroyuki Yamamoto
	else
1069 4012ec30 Hiroyuki Yamamoto
	  error=$?
1070 4012ec30 Hiroyuki Yamamoto
	  $run $rm $removelist
1071 4012ec30 Hiroyuki Yamamoto
	  exit $error
1072 4012ec30 Hiroyuki Yamamoto
	fi
1073 4012ec30 Hiroyuki Yamamoto
      fi
1074 4012ec30 Hiroyuki Yamamoto
1075 4012ec30 Hiroyuki Yamamoto
      # Append the name of the non-PIC object the libtool object file.
1076 4012ec30 Hiroyuki Yamamoto
      # Only append if the libtool object file exists.
1077 4012ec30 Hiroyuki Yamamoto
      test -z "$run" && cat >> ${libobj}T <<EOF
1078 4012ec30 Hiroyuki Yamamoto
# Name of the non-PIC object.
1079 4012ec30 Hiroyuki Yamamoto
non_pic_object='$objname'
1080 4012ec30 Hiroyuki Yamamoto
1081 4012ec30 Hiroyuki Yamamoto
EOF
1082 4012ec30 Hiroyuki Yamamoto
    else
1083 4012ec30 Hiroyuki Yamamoto
      # Append the name of the non-PIC object the libtool object file.
1084 4012ec30 Hiroyuki Yamamoto
      # Only append if the libtool object file exists.
1085 4012ec30 Hiroyuki Yamamoto
      test -z "$run" && cat >> ${libobj}T <<EOF
1086 4012ec30 Hiroyuki Yamamoto
# Name of the non-PIC object.
1087 4012ec30 Hiroyuki Yamamoto
non_pic_object=none
1088 4012ec30 Hiroyuki Yamamoto
1089 4012ec30 Hiroyuki Yamamoto
EOF
1090 4012ec30 Hiroyuki Yamamoto
    fi
1091 4012ec30 Hiroyuki Yamamoto
1092 4012ec30 Hiroyuki Yamamoto
    $run $mv "${libobj}T" "${libobj}"
1093 4012ec30 Hiroyuki Yamamoto
1094 4012ec30 Hiroyuki Yamamoto
    # Unlock the critical section if it was locked
1095 4012ec30 Hiroyuki Yamamoto
    if test "$need_locks" != no; then
1096 4012ec30 Hiroyuki Yamamoto
      $run $rm "$lockfile"
1097 4012ec30 Hiroyuki Yamamoto
    fi
1098 4012ec30 Hiroyuki Yamamoto
1099 4012ec30 Hiroyuki Yamamoto
    exit $EXIT_SUCCESS
1100 4012ec30 Hiroyuki Yamamoto
    ;;
1101 4012ec30 Hiroyuki Yamamoto
1102 4012ec30 Hiroyuki Yamamoto
  # libtool link mode
1103 4012ec30 Hiroyuki Yamamoto
  link | relink)
1104 4012ec30 Hiroyuki Yamamoto
    modename="$modename: link"
1105 4012ec30 Hiroyuki Yamamoto
    case $host in
1106 4012ec30 Hiroyuki Yamamoto
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1107 4012ec30 Hiroyuki Yamamoto
      # It is impossible to link a dll without this setting, and
1108 4012ec30 Hiroyuki Yamamoto
      # we shouldn't force the makefile maintainer to figure out
1109 4012ec30 Hiroyuki Yamamoto
      # which system we are compiling for in order to pass an extra
1110 4012ec30 Hiroyuki Yamamoto
      # flag for every libtool invocation.
1111 4012ec30 Hiroyuki Yamamoto
      # allow_undefined=no
1112 4012ec30 Hiroyuki Yamamoto
1113 4012ec30 Hiroyuki Yamamoto
      # FIXME: Unfortunately, there are problems with the above when trying
1114 4012ec30 Hiroyuki Yamamoto
      # to make a dll which has undefined symbols, in which case not
1115 4012ec30 Hiroyuki Yamamoto
      # even a static library is built.  For now, we need to specify
1116 4012ec30 Hiroyuki Yamamoto
      # -no-undefined on the libtool link line when we can be certain
1117 4012ec30 Hiroyuki Yamamoto
      # that all symbols are satisfied, otherwise we get a static library.
1118 4012ec30 Hiroyuki Yamamoto
      allow_undefined=yes
1119 4012ec30 Hiroyuki Yamamoto
      ;;
1120 4012ec30 Hiroyuki Yamamoto
    *)
1121 4012ec30 Hiroyuki Yamamoto
      allow_undefined=yes
1122 4012ec30 Hiroyuki Yamamoto
      ;;
1123 4012ec30 Hiroyuki Yamamoto
    esac
1124 4012ec30 Hiroyuki Yamamoto
    libtool_args="$nonopt"
1125 4012ec30 Hiroyuki Yamamoto
    base_compile="$nonopt $@"
1126 4012ec30 Hiroyuki Yamamoto
    compile_command="$nonopt"
1127 4012ec30 Hiroyuki Yamamoto
    finalize_command="$nonopt"
1128 4012ec30 Hiroyuki Yamamoto
1129 4012ec30 Hiroyuki Yamamoto
    compile_rpath=
1130 4012ec30 Hiroyuki Yamamoto
    finalize_rpath=
1131 4012ec30 Hiroyuki Yamamoto
    compile_shlibpath=
1132 4012ec30 Hiroyuki Yamamoto
    finalize_shlibpath=
1133 4012ec30 Hiroyuki Yamamoto
    convenience=
1134 4012ec30 Hiroyuki Yamamoto
    old_convenience=
1135 4012ec30 Hiroyuki Yamamoto
    deplibs=
1136 4012ec30 Hiroyuki Yamamoto
    old_deplibs=
1137 4012ec30 Hiroyuki Yamamoto
    compiler_flags=
1138 4012ec30 Hiroyuki Yamamoto
    linker_flags=
1139 4012ec30 Hiroyuki Yamamoto
    dllsearchpath=
1140 4012ec30 Hiroyuki Yamamoto
    lib_search_path=`pwd`
1141 4012ec30 Hiroyuki Yamamoto
    inst_prefix_dir=
1142 4012ec30 Hiroyuki Yamamoto
1143 4012ec30 Hiroyuki Yamamoto
    avoid_version=no
1144 4012ec30 Hiroyuki Yamamoto
    dlfiles=
1145 4012ec30 Hiroyuki Yamamoto
    dlprefiles=
1146 4012ec30 Hiroyuki Yamamoto
    dlself=no
1147 4012ec30 Hiroyuki Yamamoto
    export_dynamic=no
1148 4012ec30 Hiroyuki Yamamoto
    export_symbols=
1149 4012ec30 Hiroyuki Yamamoto
    export_symbols_regex=
1150 4012ec30 Hiroyuki Yamamoto
    generated=
1151 4012ec30 Hiroyuki Yamamoto
    libobjs=
1152 4012ec30 Hiroyuki Yamamoto
    ltlibs=
1153 4012ec30 Hiroyuki Yamamoto
    module=no
1154 4012ec30 Hiroyuki Yamamoto
    no_install=no
1155 4012ec30 Hiroyuki Yamamoto
    objs=
1156 4012ec30 Hiroyuki Yamamoto
    non_pic_objects=
1157 4012ec30 Hiroyuki Yamamoto
    notinst_path= # paths that contain not-installed libtool libraries
1158 4012ec30 Hiroyuki Yamamoto
    precious_files_regex=
1159 4012ec30 Hiroyuki Yamamoto
    prefer_static_libs=no
1160 4012ec30 Hiroyuki Yamamoto
    preload=no
1161 4012ec30 Hiroyuki Yamamoto
    prev=
1162 4012ec30 Hiroyuki Yamamoto
    prevarg=
1163 4012ec30 Hiroyuki Yamamoto
    release=
1164 4012ec30 Hiroyuki Yamamoto
    rpath=
1165 4012ec30 Hiroyuki Yamamoto
    xrpath=
1166 4012ec30 Hiroyuki Yamamoto
    perm_rpath=
1167 4012ec30 Hiroyuki Yamamoto
    temp_rpath=
1168 4012ec30 Hiroyuki Yamamoto
    thread_safe=no
1169 4012ec30 Hiroyuki Yamamoto
    vinfo=
1170 4012ec30 Hiroyuki Yamamoto
    vinfo_number=no
1171 4012ec30 Hiroyuki Yamamoto
    single_module="${wl}-single_module"
1172 4012ec30 Hiroyuki Yamamoto
1173 4012ec30 Hiroyuki Yamamoto
    func_infer_tag $base_compile
1174 4012ec30 Hiroyuki Yamamoto
1175 4012ec30 Hiroyuki Yamamoto
    # We need to know -static, to get the right output filenames.
1176 4012ec30 Hiroyuki Yamamoto
    for arg
1177 4012ec30 Hiroyuki Yamamoto
    do
1178 4012ec30 Hiroyuki Yamamoto
      case $arg in
1179 4012ec30 Hiroyuki Yamamoto
      -all-static | -static | -static-libtool-libs)
1180 4012ec30 Hiroyuki Yamamoto
	case $arg in
1181 4012ec30 Hiroyuki Yamamoto
	-all-static)
1182 4012ec30 Hiroyuki Yamamoto
	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1183 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1184 4012ec30 Hiroyuki Yamamoto
	  fi
1185 4012ec30 Hiroyuki Yamamoto
	  if test -n "$link_static_flag"; then
1186 4012ec30 Hiroyuki Yamamoto
	    dlopen_self=$dlopen_self_static
1187 4012ec30 Hiroyuki Yamamoto
	  fi
1188 4012ec30 Hiroyuki Yamamoto
	  prefer_static_libs=yes
1189 4012ec30 Hiroyuki Yamamoto
	  ;;
1190 4012ec30 Hiroyuki Yamamoto
	-static)
1191 4012ec30 Hiroyuki Yamamoto
	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1192 4012ec30 Hiroyuki Yamamoto
	    dlopen_self=$dlopen_self_static
1193 4012ec30 Hiroyuki Yamamoto
	  fi
1194 4012ec30 Hiroyuki Yamamoto
	  prefer_static_libs=built
1195 4012ec30 Hiroyuki Yamamoto
	  ;;
1196 4012ec30 Hiroyuki Yamamoto
	-static-libtool-libs)
1197 4012ec30 Hiroyuki Yamamoto
	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1198 4012ec30 Hiroyuki Yamamoto
	    dlopen_self=$dlopen_self_static
1199 4012ec30 Hiroyuki Yamamoto
	  fi
1200 4012ec30 Hiroyuki Yamamoto
	  prefer_static_libs=yes
1201 4012ec30 Hiroyuki Yamamoto
	  ;;
1202 4012ec30 Hiroyuki Yamamoto
	esac
1203 4012ec30 Hiroyuki Yamamoto
	build_libtool_libs=no
1204 4012ec30 Hiroyuki Yamamoto
	build_old_libs=yes
1205 4012ec30 Hiroyuki Yamamoto
	break
1206 4012ec30 Hiroyuki Yamamoto
	;;
1207 4012ec30 Hiroyuki Yamamoto
      esac
1208 4012ec30 Hiroyuki Yamamoto
    done
1209 4012ec30 Hiroyuki Yamamoto
1210 4012ec30 Hiroyuki Yamamoto
    # See if our shared archives depend on static archives.
1211 4012ec30 Hiroyuki Yamamoto
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1212 4012ec30 Hiroyuki Yamamoto
1213 4012ec30 Hiroyuki Yamamoto
    # Go through the arguments, transforming them on the way.
1214 4012ec30 Hiroyuki Yamamoto
    while test "$#" -gt 0; do
1215 4012ec30 Hiroyuki Yamamoto
      arg="$1"
1216 4012ec30 Hiroyuki Yamamoto
      shift
1217 4012ec30 Hiroyuki Yamamoto
      case $arg in
1218 4012ec30 Hiroyuki Yamamoto
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1219 4012ec30 Hiroyuki Yamamoto
	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1220 4012ec30 Hiroyuki Yamamoto
	;;
1221 4012ec30 Hiroyuki Yamamoto
      *) qarg=$arg ;;
1222 4012ec30 Hiroyuki Yamamoto
      esac
1223 4012ec30 Hiroyuki Yamamoto
      libtool_args="$libtool_args $qarg"
1224 4012ec30 Hiroyuki Yamamoto
1225 4012ec30 Hiroyuki Yamamoto
      # If the previous option needs an argument, assign it.
1226 4012ec30 Hiroyuki Yamamoto
      if test -n "$prev"; then
1227 4012ec30 Hiroyuki Yamamoto
	case $prev in
1228 4012ec30 Hiroyuki Yamamoto
	output)
1229 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command @OUTPUT@"
1230 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command @OUTPUT@"
1231 4012ec30 Hiroyuki Yamamoto
	  ;;
1232 4012ec30 Hiroyuki Yamamoto
	esac
1233 4012ec30 Hiroyuki Yamamoto
1234 4012ec30 Hiroyuki Yamamoto
	case $prev in
1235 4012ec30 Hiroyuki Yamamoto
	dlfiles|dlprefiles)
1236 4012ec30 Hiroyuki Yamamoto
	  if test "$preload" = no; then
1237 4012ec30 Hiroyuki Yamamoto
	    # Add the symbol object into the linking commands.
1238 4012ec30 Hiroyuki Yamamoto
	    compile_command="$compile_command @SYMFILE@"
1239 4012ec30 Hiroyuki Yamamoto
	    finalize_command="$finalize_command @SYMFILE@"
1240 4012ec30 Hiroyuki Yamamoto
	    preload=yes
1241 4012ec30 Hiroyuki Yamamoto
	  fi
1242 4012ec30 Hiroyuki Yamamoto
	  case $arg in
1243 4012ec30 Hiroyuki Yamamoto
	  *.la | *.lo) ;;  # We handle these cases below.
1244 4012ec30 Hiroyuki Yamamoto
	  force)
1245 4012ec30 Hiroyuki Yamamoto
	    if test "$dlself" = no; then
1246 4012ec30 Hiroyuki Yamamoto
	      dlself=needless
1247 4012ec30 Hiroyuki Yamamoto
	      export_dynamic=yes
1248 4012ec30 Hiroyuki Yamamoto
	    fi
1249 4012ec30 Hiroyuki Yamamoto
	    prev=
1250 4012ec30 Hiroyuki Yamamoto
	    continue
1251 4012ec30 Hiroyuki Yamamoto
	    ;;
1252 4012ec30 Hiroyuki Yamamoto
	  self)
1253 4012ec30 Hiroyuki Yamamoto
	    if test "$prev" = dlprefiles; then
1254 4012ec30 Hiroyuki Yamamoto
	      dlself=yes
1255 4012ec30 Hiroyuki Yamamoto
	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1256 4012ec30 Hiroyuki Yamamoto
	      dlself=yes
1257 4012ec30 Hiroyuki Yamamoto
	    else
1258 4012ec30 Hiroyuki Yamamoto
	      dlself=needless
1259 4012ec30 Hiroyuki Yamamoto
	      export_dynamic=yes
1260 4012ec30 Hiroyuki Yamamoto
	    fi
1261 4012ec30 Hiroyuki Yamamoto
	    prev=
1262 4012ec30 Hiroyuki Yamamoto
	    continue
1263 4012ec30 Hiroyuki Yamamoto
	    ;;
1264 4012ec30 Hiroyuki Yamamoto
	  *)
1265 4012ec30 Hiroyuki Yamamoto
	    if test "$prev" = dlfiles; then
1266 4012ec30 Hiroyuki Yamamoto
	      dlfiles="$dlfiles $arg"
1267 4012ec30 Hiroyuki Yamamoto
	    else
1268 4012ec30 Hiroyuki Yamamoto
	      dlprefiles="$dlprefiles $arg"
1269 4012ec30 Hiroyuki Yamamoto
	    fi
1270 4012ec30 Hiroyuki Yamamoto
	    prev=
1271 4012ec30 Hiroyuki Yamamoto
	    continue
1272 4012ec30 Hiroyuki Yamamoto
	    ;;
1273 4012ec30 Hiroyuki Yamamoto
	  esac
1274 4012ec30 Hiroyuki Yamamoto
	  ;;
1275 4012ec30 Hiroyuki Yamamoto
	expsyms)
1276 4012ec30 Hiroyuki Yamamoto
	  export_symbols="$arg"
1277 4012ec30 Hiroyuki Yamamoto
	  if test ! -f "$arg"; then
1278 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: symbol file \`$arg' does not exist"
1279 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
1280 4012ec30 Hiroyuki Yamamoto
	  fi
1281 4012ec30 Hiroyuki Yamamoto
	  prev=
1282 4012ec30 Hiroyuki Yamamoto
	  continue
1283 4012ec30 Hiroyuki Yamamoto
	  ;;
1284 4012ec30 Hiroyuki Yamamoto
	expsyms_regex)
1285 4012ec30 Hiroyuki Yamamoto
	  export_symbols_regex="$arg"
1286 4012ec30 Hiroyuki Yamamoto
	  prev=
1287 4012ec30 Hiroyuki Yamamoto
	  continue
1288 4012ec30 Hiroyuki Yamamoto
	  ;;
1289 4012ec30 Hiroyuki Yamamoto
	inst_prefix)
1290 4012ec30 Hiroyuki Yamamoto
	  inst_prefix_dir="$arg"
1291 4012ec30 Hiroyuki Yamamoto
	  prev=
1292 4012ec30 Hiroyuki Yamamoto
	  continue
1293 4012ec30 Hiroyuki Yamamoto
	  ;;
1294 4012ec30 Hiroyuki Yamamoto
	precious_regex)
1295 4012ec30 Hiroyuki Yamamoto
	  precious_files_regex="$arg"
1296 4012ec30 Hiroyuki Yamamoto
	  prev=
1297 4012ec30 Hiroyuki Yamamoto
	  continue
1298 4012ec30 Hiroyuki Yamamoto
	  ;;
1299 4012ec30 Hiroyuki Yamamoto
	release)
1300 4012ec30 Hiroyuki Yamamoto
	  release="-$arg"
1301 4012ec30 Hiroyuki Yamamoto
	  prev=
1302 4012ec30 Hiroyuki Yamamoto
	  continue
1303 4012ec30 Hiroyuki Yamamoto
	  ;;
1304 4012ec30 Hiroyuki Yamamoto
	objectlist)
1305 4012ec30 Hiroyuki Yamamoto
	  if test -f "$arg"; then
1306 4012ec30 Hiroyuki Yamamoto
	    save_arg=$arg
1307 4012ec30 Hiroyuki Yamamoto
	    moreargs=
1308 4012ec30 Hiroyuki Yamamoto
	    for fil in `cat $save_arg`
1309 4012ec30 Hiroyuki Yamamoto
	    do
1310 4012ec30 Hiroyuki Yamamoto
#	      moreargs="$moreargs $fil"
1311 4012ec30 Hiroyuki Yamamoto
	      arg=$fil
1312 4012ec30 Hiroyuki Yamamoto
	      # A libtool-controlled object.
1313 4012ec30 Hiroyuki Yamamoto
1314 4012ec30 Hiroyuki Yamamoto
	      # Check to see that this really is a libtool object.
1315 4012ec30 Hiroyuki Yamamoto
	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1316 4012ec30 Hiroyuki Yamamoto
		pic_object=
1317 4012ec30 Hiroyuki Yamamoto
		non_pic_object=
1318 4012ec30 Hiroyuki Yamamoto
1319 4012ec30 Hiroyuki Yamamoto
		# Read the .lo file
1320 4012ec30 Hiroyuki Yamamoto
		# If there is no directory component, then add one.
1321 4012ec30 Hiroyuki Yamamoto
		case $arg in
1322 4012ec30 Hiroyuki Yamamoto
		*/* | *\\*) . $arg ;;
1323 4012ec30 Hiroyuki Yamamoto
		*) . ./$arg ;;
1324 4012ec30 Hiroyuki Yamamoto
		esac
1325 4012ec30 Hiroyuki Yamamoto
1326 4012ec30 Hiroyuki Yamamoto
		if test -z "$pic_object" || \
1327 4012ec30 Hiroyuki Yamamoto
		   test -z "$non_pic_object" ||
1328 4012ec30 Hiroyuki Yamamoto
		   test "$pic_object" = none && \
1329 4012ec30 Hiroyuki Yamamoto
		   test "$non_pic_object" = none; then
1330 4012ec30 Hiroyuki Yamamoto
		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1331 4012ec30 Hiroyuki Yamamoto
		  exit $EXIT_FAILURE
1332 4012ec30 Hiroyuki Yamamoto
		fi
1333 4012ec30 Hiroyuki Yamamoto
1334 4012ec30 Hiroyuki Yamamoto
		# Extract subdirectory from the argument.
1335 4012ec30 Hiroyuki Yamamoto
		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1336 4012ec30 Hiroyuki Yamamoto
		if test "X$xdir" = "X$arg"; then
1337 4012ec30 Hiroyuki Yamamoto
		  xdir=
1338 4012ec30 Hiroyuki Yamamoto
		else
1339 4012ec30 Hiroyuki Yamamoto
		  xdir="$xdir/"
1340 4012ec30 Hiroyuki Yamamoto
		fi
1341 4012ec30 Hiroyuki Yamamoto
1342 4012ec30 Hiroyuki Yamamoto
		if test "$pic_object" != none; then
1343 4012ec30 Hiroyuki Yamamoto
		  # Prepend the subdirectory the object is found in.
1344 4012ec30 Hiroyuki Yamamoto
		  pic_object="$xdir$pic_object"
1345 4012ec30 Hiroyuki Yamamoto
1346 4012ec30 Hiroyuki Yamamoto
		  if test "$prev" = dlfiles; then
1347 4012ec30 Hiroyuki Yamamoto
		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1348 4012ec30 Hiroyuki Yamamoto
		      dlfiles="$dlfiles $pic_object"
1349 4012ec30 Hiroyuki Yamamoto
		      prev=
1350 4012ec30 Hiroyuki Yamamoto
		      continue
1351 4012ec30 Hiroyuki Yamamoto
		    else
1352 4012ec30 Hiroyuki Yamamoto
		      # If libtool objects are unsupported, then we need to preload.
1353 4012ec30 Hiroyuki Yamamoto
		      prev=dlprefiles
1354 4012ec30 Hiroyuki Yamamoto
		    fi
1355 4012ec30 Hiroyuki Yamamoto
		  fi
1356 4012ec30 Hiroyuki Yamamoto
1357 4012ec30 Hiroyuki Yamamoto
		  # CHECK ME:  I think I busted this.  -Ossama
1358 4012ec30 Hiroyuki Yamamoto
		  if test "$prev" = dlprefiles; then
1359 4012ec30 Hiroyuki Yamamoto
		    # Preload the old-style object.
1360 4012ec30 Hiroyuki Yamamoto
		    dlprefiles="$dlprefiles $pic_object"
1361 4012ec30 Hiroyuki Yamamoto
		    prev=
1362 4012ec30 Hiroyuki Yamamoto
		  fi
1363 4012ec30 Hiroyuki Yamamoto
1364 4012ec30 Hiroyuki Yamamoto
		  # A PIC object.
1365 4012ec30 Hiroyuki Yamamoto
		  libobjs="$libobjs $pic_object"
1366 4012ec30 Hiroyuki Yamamoto
		  arg="$pic_object"
1367 4012ec30 Hiroyuki Yamamoto
		fi
1368 4012ec30 Hiroyuki Yamamoto
1369 4012ec30 Hiroyuki Yamamoto
		# Non-PIC object.
1370 4012ec30 Hiroyuki Yamamoto
		if test "$non_pic_object" != none; then
1371 4012ec30 Hiroyuki Yamamoto
		  # Prepend the subdirectory the object is found in.
1372 4012ec30 Hiroyuki Yamamoto
		  non_pic_object="$xdir$non_pic_object"
1373 4012ec30 Hiroyuki Yamamoto
1374 4012ec30 Hiroyuki Yamamoto
		  # A standard non-PIC object
1375 4012ec30 Hiroyuki Yamamoto
		  non_pic_objects="$non_pic_objects $non_pic_object"
1376 4012ec30 Hiroyuki Yamamoto
		  if test -z "$pic_object" || test "$pic_object" = none ; then
1377 4012ec30 Hiroyuki Yamamoto
		    arg="$non_pic_object"
1378 4012ec30 Hiroyuki Yamamoto
		  fi
1379 4012ec30 Hiroyuki Yamamoto
		else
1380 4012ec30 Hiroyuki Yamamoto
		  # If the PIC object exists, use it instead.
1381 4012ec30 Hiroyuki Yamamoto
		  # $xdir was prepended to $pic_object above.
1382 4012ec30 Hiroyuki Yamamoto
		  non_pic_object="$pic_object"
1383 4012ec30 Hiroyuki Yamamoto
		  non_pic_objects="$non_pic_objects $non_pic_object"
1384 4012ec30 Hiroyuki Yamamoto
		fi
1385 4012ec30 Hiroyuki Yamamoto
	      else
1386 4012ec30 Hiroyuki Yamamoto
		# Only an error if not doing a dry-run.
1387 4012ec30 Hiroyuki Yamamoto
		if test -z "$run"; then
1388 4012ec30 Hiroyuki Yamamoto
		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1389 4012ec30 Hiroyuki Yamamoto
		  exit $EXIT_FAILURE
1390 4012ec30 Hiroyuki Yamamoto
		else
1391 4012ec30 Hiroyuki Yamamoto
		  # Dry-run case.
1392 4012ec30 Hiroyuki Yamamoto
1393 4012ec30 Hiroyuki Yamamoto
		  # Extract subdirectory from the argument.
1394 4012ec30 Hiroyuki Yamamoto
		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1395 4012ec30 Hiroyuki Yamamoto
		  if test "X$xdir" = "X$arg"; then
1396 4012ec30 Hiroyuki Yamamoto
		    xdir=
1397 4012ec30 Hiroyuki Yamamoto
		  else
1398 4012ec30 Hiroyuki Yamamoto
		    xdir="$xdir/"
1399 4012ec30 Hiroyuki Yamamoto
		  fi
1400 4012ec30 Hiroyuki Yamamoto
1401 4012ec30 Hiroyuki Yamamoto
		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1402 4012ec30 Hiroyuki Yamamoto
		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1403 4012ec30 Hiroyuki Yamamoto
		  libobjs="$libobjs $pic_object"
1404 4012ec30 Hiroyuki Yamamoto
		  non_pic_objects="$non_pic_objects $non_pic_object"
1405 4012ec30 Hiroyuki Yamamoto
		fi
1406 4012ec30 Hiroyuki Yamamoto
	      fi
1407 4012ec30 Hiroyuki Yamamoto
	    done
1408 4012ec30 Hiroyuki Yamamoto
	  else
1409 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: link input file \`$save_arg' does not exist"
1410 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
1411 4012ec30 Hiroyuki Yamamoto
	  fi
1412 4012ec30 Hiroyuki Yamamoto
	  arg=$save_arg
1413 4012ec30 Hiroyuki Yamamoto
	  prev=
1414 4012ec30 Hiroyuki Yamamoto
	  continue
1415 4012ec30 Hiroyuki Yamamoto
	  ;;
1416 4012ec30 Hiroyuki Yamamoto
	rpath | xrpath)
1417 4012ec30 Hiroyuki Yamamoto
	  # We need an absolute path.
1418 4012ec30 Hiroyuki Yamamoto
	  case $arg in
1419 4012ec30 Hiroyuki Yamamoto
	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1420 4012ec30 Hiroyuki Yamamoto
	  *)
1421 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1422 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
1423 4012ec30 Hiroyuki Yamamoto
	    ;;
1424 4012ec30 Hiroyuki Yamamoto
	  esac
1425 4012ec30 Hiroyuki Yamamoto
	  if test "$prev" = rpath; then
1426 4012ec30 Hiroyuki Yamamoto
	    case "$rpath " in
1427 4012ec30 Hiroyuki Yamamoto
	    *" $arg "*) ;;
1428 4012ec30 Hiroyuki Yamamoto
	    *) rpath="$rpath $arg" ;;
1429 4012ec30 Hiroyuki Yamamoto
	    esac
1430 4012ec30 Hiroyuki Yamamoto
	  else
1431 4012ec30 Hiroyuki Yamamoto
	    case "$xrpath " in
1432 4012ec30 Hiroyuki Yamamoto
	    *" $arg "*) ;;
1433 4012ec30 Hiroyuki Yamamoto
	    *) xrpath="$xrpath $arg" ;;
1434 4012ec30 Hiroyuki Yamamoto
	    esac
1435 4012ec30 Hiroyuki Yamamoto
	  fi
1436 4012ec30 Hiroyuki Yamamoto
	  prev=
1437 4012ec30 Hiroyuki Yamamoto
	  continue
1438 4012ec30 Hiroyuki Yamamoto
	  ;;
1439 4012ec30 Hiroyuki Yamamoto
	xcompiler)
1440 4012ec30 Hiroyuki Yamamoto
	  compiler_flags="$compiler_flags $qarg"
1441 4012ec30 Hiroyuki Yamamoto
	  prev=
1442 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command $qarg"
1443 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command $qarg"
1444 4012ec30 Hiroyuki Yamamoto
	  continue
1445 4012ec30 Hiroyuki Yamamoto
	  ;;
1446 4012ec30 Hiroyuki Yamamoto
	xlinker)
1447 4012ec30 Hiroyuki Yamamoto
	  linker_flags="$linker_flags $qarg"
1448 4012ec30 Hiroyuki Yamamoto
	  compiler_flags="$compiler_flags $wl$qarg"
1449 4012ec30 Hiroyuki Yamamoto
	  prev=
1450 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command $wl$qarg"
1451 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command $wl$qarg"
1452 4012ec30 Hiroyuki Yamamoto
	  continue
1453 4012ec30 Hiroyuki Yamamoto
	  ;;
1454 4012ec30 Hiroyuki Yamamoto
	xcclinker)
1455 4012ec30 Hiroyuki Yamamoto
	  linker_flags="$linker_flags $qarg"
1456 4012ec30 Hiroyuki Yamamoto
	  compiler_flags="$compiler_flags $qarg"
1457 4012ec30 Hiroyuki Yamamoto
	  prev=
1458 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command $qarg"
1459 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command $qarg"
1460 4012ec30 Hiroyuki Yamamoto
	  continue
1461 4012ec30 Hiroyuki Yamamoto
	  ;;
1462 4012ec30 Hiroyuki Yamamoto
	shrext)
1463 4012ec30 Hiroyuki Yamamoto
  	  shrext_cmds="$arg"
1464 4012ec30 Hiroyuki Yamamoto
	  prev=
1465 4012ec30 Hiroyuki Yamamoto
	  continue
1466 4012ec30 Hiroyuki Yamamoto
	  ;;
1467 4012ec30 Hiroyuki Yamamoto
	darwin_framework|darwin_framework_skip)
1468 4012ec30 Hiroyuki Yamamoto
	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1469 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command $arg"
1470 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command $arg"
1471 4012ec30 Hiroyuki Yamamoto
	  prev=
1472 4012ec30 Hiroyuki Yamamoto
	  continue
1473 4012ec30 Hiroyuki Yamamoto
	  ;;
1474 4012ec30 Hiroyuki Yamamoto
	*)
1475 4012ec30 Hiroyuki Yamamoto
	  eval "$prev=\"\$arg\""
1476 4012ec30 Hiroyuki Yamamoto
	  prev=
1477 4012ec30 Hiroyuki Yamamoto
	  continue
1478 4012ec30 Hiroyuki Yamamoto
	  ;;
1479 4012ec30 Hiroyuki Yamamoto
	esac
1480 4012ec30 Hiroyuki Yamamoto
      fi # test -n "$prev"
1481 4012ec30 Hiroyuki Yamamoto
1482 4012ec30 Hiroyuki Yamamoto
      prevarg="$arg"
1483 4012ec30 Hiroyuki Yamamoto
1484 4012ec30 Hiroyuki Yamamoto
      case $arg in
1485 4012ec30 Hiroyuki Yamamoto
      -all-static)
1486 4012ec30 Hiroyuki Yamamoto
	if test -n "$link_static_flag"; then
1487 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command $link_static_flag"
1488 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command $link_static_flag"
1489 4012ec30 Hiroyuki Yamamoto
	fi
1490 4012ec30 Hiroyuki Yamamoto
	continue
1491 4012ec30 Hiroyuki Yamamoto
	;;
1492 4012ec30 Hiroyuki Yamamoto
1493 4012ec30 Hiroyuki Yamamoto
      -allow-undefined)
1494 4012ec30 Hiroyuki Yamamoto
	# FIXME: remove this flag sometime in the future.
1495 4012ec30 Hiroyuki Yamamoto
	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1496 4012ec30 Hiroyuki Yamamoto
	continue
1497 4012ec30 Hiroyuki Yamamoto
	;;
1498 4012ec30 Hiroyuki Yamamoto
1499 4012ec30 Hiroyuki Yamamoto
      -avoid-version)
1500 4012ec30 Hiroyuki Yamamoto
	avoid_version=yes
1501 4012ec30 Hiroyuki Yamamoto
	continue
1502 4012ec30 Hiroyuki Yamamoto
	;;
1503 4012ec30 Hiroyuki Yamamoto
1504 4012ec30 Hiroyuki Yamamoto
      -dlopen)
1505 4012ec30 Hiroyuki Yamamoto
	prev=dlfiles
1506 4012ec30 Hiroyuki Yamamoto
	continue
1507 4012ec30 Hiroyuki Yamamoto
	;;
1508 4012ec30 Hiroyuki Yamamoto
1509 4012ec30 Hiroyuki Yamamoto
      -dlpreopen)
1510 4012ec30 Hiroyuki Yamamoto
	prev=dlprefiles
1511 4012ec30 Hiroyuki Yamamoto
	continue
1512 4012ec30 Hiroyuki Yamamoto
	;;
1513 4012ec30 Hiroyuki Yamamoto
1514 4012ec30 Hiroyuki Yamamoto
      -export-dynamic)
1515 4012ec30 Hiroyuki Yamamoto
	export_dynamic=yes
1516 4012ec30 Hiroyuki Yamamoto
	continue
1517 4012ec30 Hiroyuki Yamamoto
	;;
1518 4012ec30 Hiroyuki Yamamoto
1519 4012ec30 Hiroyuki Yamamoto
      -export-symbols | -export-symbols-regex)
1520 4012ec30 Hiroyuki Yamamoto
	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1521 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1522 4012ec30 Hiroyuki Yamamoto
	  exit $EXIT_FAILURE
1523 4012ec30 Hiroyuki Yamamoto
	fi
1524 4012ec30 Hiroyuki Yamamoto
	if test "X$arg" = "X-export-symbols"; then
1525 4012ec30 Hiroyuki Yamamoto
	  prev=expsyms
1526 4012ec30 Hiroyuki Yamamoto
	else
1527 4012ec30 Hiroyuki Yamamoto
	  prev=expsyms_regex
1528 4012ec30 Hiroyuki Yamamoto
	fi
1529 4012ec30 Hiroyuki Yamamoto
	continue
1530 4012ec30 Hiroyuki Yamamoto
	;;
1531 4012ec30 Hiroyuki Yamamoto
1532 4012ec30 Hiroyuki Yamamoto
      -framework|-arch|-isysroot)
1533 4012ec30 Hiroyuki Yamamoto
	case " $CC " in
1534 4012ec30 Hiroyuki Yamamoto
	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1535 4012ec30 Hiroyuki Yamamoto
		prev=darwin_framework_skip ;;
1536 4012ec30 Hiroyuki Yamamoto
	  *) compiler_flags="$compiler_flags $arg"
1537 4012ec30 Hiroyuki Yamamoto
	     prev=darwin_framework ;;
1538 4012ec30 Hiroyuki Yamamoto
	esac
1539 4012ec30 Hiroyuki Yamamoto
	compile_command="$compile_command $arg"
1540 4012ec30 Hiroyuki Yamamoto
	finalize_command="$finalize_command $arg"
1541 4012ec30 Hiroyuki Yamamoto
	continue
1542 4012ec30 Hiroyuki Yamamoto
	;;
1543 4012ec30 Hiroyuki Yamamoto
1544 4012ec30 Hiroyuki Yamamoto
      -inst-prefix-dir)
1545 4012ec30 Hiroyuki Yamamoto
	prev=inst_prefix
1546 4012ec30 Hiroyuki Yamamoto
	continue
1547 4012ec30 Hiroyuki Yamamoto
	;;
1548 4012ec30 Hiroyuki Yamamoto
1549 4012ec30 Hiroyuki Yamamoto
      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1550 4012ec30 Hiroyuki Yamamoto
      # so, if we see these flags be careful not to treat them like -L
1551 4012ec30 Hiroyuki Yamamoto
      -L[A-Z][A-Z]*:*)
1552 4012ec30 Hiroyuki Yamamoto
	case $with_gcc/$host in
1553 4012ec30 Hiroyuki Yamamoto
	no/*-*-irix* | /*-*-irix*)
1554 4012ec30 Hiroyuki Yamamoto
	  compile_command="$compile_command $arg"
1555 4012ec30 Hiroyuki Yamamoto
	  finalize_command="$finalize_command $arg"
1556 4012ec30 Hiroyuki Yamamoto
	  ;;
1557 4012ec30 Hiroyuki Yamamoto
	esac
1558 4012ec30 Hiroyuki Yamamoto
	continue
1559 4012ec30 Hiroyuki Yamamoto
	;;
1560 4012ec30 Hiroyuki Yamamoto
1561 4012ec30 Hiroyuki Yamamoto
      -L*)
1562 4012ec30 Hiroyuki Yamamoto
	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1563 4012ec30 Hiroyuki Yamamoto
	# We need an absolute path.
1564 4012ec30 Hiroyuki Yamamoto
	case $dir in
1565 4012ec30 Hiroyuki Yamamoto
	[\\/]* | [A-Za-z]:[\\/]*) ;;
1566 4012ec30 Hiroyuki Yamamoto
	*)
1567 4012ec30 Hiroyuki Yamamoto
	  absdir=`cd "$dir" && pwd`
1568 4012ec30 Hiroyuki Yamamoto
	  if test -z "$absdir"; then
1569 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1570 4012ec30 Hiroyuki Yamamoto
	    absdir="$dir"
1571 4012ec30 Hiroyuki Yamamoto
	    notinst_path="$notinst_path $dir"
1572 4012ec30 Hiroyuki Yamamoto
	  fi
1573 4012ec30 Hiroyuki Yamamoto
	  dir="$absdir"
1574 4012ec30 Hiroyuki Yamamoto
	  ;;
1575 4012ec30 Hiroyuki Yamamoto
	esac
1576 4012ec30 Hiroyuki Yamamoto
	case "$deplibs " in
1577 4012ec30 Hiroyuki Yamamoto
	*" -L$dir "*) ;;
1578 4012ec30 Hiroyuki Yamamoto
	*)
1579 4012ec30 Hiroyuki Yamamoto
	  deplibs="$deplibs -L$dir"
1580 4012ec30 Hiroyuki Yamamoto
	  lib_search_path="$lib_search_path $dir"
1581 4012ec30 Hiroyuki Yamamoto
	  ;;
1582 4012ec30 Hiroyuki Yamamoto
	esac
1583 4012ec30 Hiroyuki Yamamoto
	case $host in
1584 4012ec30 Hiroyuki Yamamoto
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1585 4012ec30 Hiroyuki Yamamoto
	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1586 4012ec30 Hiroyuki Yamamoto
	  case :$dllsearchpath: in
1587 4012ec30 Hiroyuki Yamamoto
	  *":$dir:"*) ;;
1588 4012ec30 Hiroyuki Yamamoto
	  *) dllsearchpath="$dllsearchpath:$dir";;
1589 4012ec30 Hiroyuki Yamamoto
	  esac
1590 4012ec30 Hiroyuki Yamamoto
	  case :$dllsearchpath: in
1591 4012ec30 Hiroyuki Yamamoto
	  *":$testbindir:"*) ;;
1592 4012ec30 Hiroyuki Yamamoto
	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1593 4012ec30 Hiroyuki Yamamoto
	  esac
1594 4012ec30 Hiroyuki Yamamoto
	  ;;
1595 4012ec30 Hiroyuki Yamamoto
	esac
1596 4012ec30 Hiroyuki Yamamoto
	continue
1597 4012ec30 Hiroyuki Yamamoto
	;;
1598 4012ec30 Hiroyuki Yamamoto
1599 4012ec30 Hiroyuki Yamamoto
      -l*)
1600 4012ec30 Hiroyuki Yamamoto
	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1601 4012ec30 Hiroyuki Yamamoto
	  case $host in
1602 4012ec30 Hiroyuki Yamamoto
	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1603 4012ec30 Hiroyuki Yamamoto
	    # These systems don't actually have a C or math library (as such)
1604 4012ec30 Hiroyuki Yamamoto
	    continue
1605 4012ec30 Hiroyuki Yamamoto
	    ;;
1606 4012ec30 Hiroyuki Yamamoto
	  *-*-os2*)
1607 4012ec30 Hiroyuki Yamamoto
	    # These systems don't actually have a C library (as such)
1608 4012ec30 Hiroyuki Yamamoto
	    test "X$arg" = "X-lc" && continue
1609 4012ec30 Hiroyuki Yamamoto
	    ;;
1610 4012ec30 Hiroyuki Yamamoto
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1611 4012ec30 Hiroyuki Yamamoto
	    # Do not include libc due to us having libc/libc_r.
1612 4012ec30 Hiroyuki Yamamoto
	    test "X$arg" = "X-lc" && continue
1613 4012ec30 Hiroyuki Yamamoto
	    ;;
1614 4012ec30 Hiroyuki Yamamoto
	  *-*-rhapsody* | *-*-darwin1.[012])
1615 4012ec30 Hiroyuki Yamamoto
	    # Rhapsody C and math libraries are in the System framework
1616 4012ec30 Hiroyuki Yamamoto
	    deplibs="$deplibs -framework System"
1617 4012ec30 Hiroyuki Yamamoto
	    continue
1618 4012ec30 Hiroyuki Yamamoto
	    ;;
1619 4012ec30 Hiroyuki Yamamoto
	  *-*-sco3.2v5* | *-*-sco5v6*)
1620 4012ec30 Hiroyuki Yamamoto
	    # Causes problems with __ctype
1621 4012ec30 Hiroyuki Yamamoto
	    test "X$arg" = "X-lc" && continue
1622 4012ec30 Hiroyuki Yamamoto
	    ;;
1623 4012ec30 Hiroyuki Yamamoto
	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1624 4012ec30 Hiroyuki Yamamoto
	    # Compiler inserts libc in the correct place for threads to work
1625 4012ec30 Hiroyuki Yamamoto
	    test "X$arg" = "X-lc" && continue
1626 4012ec30 Hiroyuki Yamamoto
	    ;;
1627 4012ec30 Hiroyuki Yamamoto
	  esac
1628 4012ec30 Hiroyuki Yamamoto
	elif test "X$arg" = "X-lc_r"; then
1629 4012ec30 Hiroyuki Yamamoto
	 case $host in
1630 4012ec30 Hiroyuki Yamamoto
	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1631 4012ec30 Hiroyuki Yamamoto
	   # Do not include libc_r directly, use -pthread flag.
1632 4012ec30 Hiroyuki Yamamoto
	   continue
1633 4012ec30 Hiroyuki Yamamoto
	   ;;
1634 4012ec30 Hiroyuki Yamamoto
	 esac
1635 4012ec30 Hiroyuki Yamamoto
	fi
1636 4012ec30 Hiroyuki Yamamoto
	deplibs="$deplibs $arg"
1637 4012ec30 Hiroyuki Yamamoto
	continue
1638 4012ec30 Hiroyuki Yamamoto
	;;
1639 4012ec30 Hiroyuki Yamamoto
1640 4012ec30 Hiroyuki Yamamoto
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1641 4012ec30 Hiroyuki Yamamoto
      # classes, name mangling, and exception handling.
1642 4012ec30 Hiroyuki Yamamoto
      -model)
1643 4012ec30 Hiroyuki Yamamoto
	compile_command="$compile_command $arg"
1644 4012ec30 Hiroyuki Yamamoto
	compiler_flags="$compiler_flags $arg"
1645 4012ec30 Hiroyuki Yamamoto
	finalize_command="$finalize_command $arg"
1646 4012ec30 Hiroyuki Yamamoto
	prev=xcompiler
1647 4012ec30 Hiroyuki Yamamoto
	continue
1648 4012ec30 Hiroyuki Yamamoto
	;;
1649 4012ec30 Hiroyuki Yamamoto
1650 4012ec30 Hiroyuki Yamamoto
     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1651 4012ec30 Hiroyuki Yamamoto
	compiler_flags="$compiler_flags $arg"
1652 4012ec30 Hiroyuki Yamamoto
	compile_command="$compile_command $arg"
1653 4012ec30 Hiroyuki Yamamoto
	finalize_command="$finalize_command $arg"
1654 4012ec30 Hiroyuki Yamamoto
	continue
1655 4012ec30 Hiroyuki Yamamoto
	;;
1656 4012ec30 Hiroyuki Yamamoto
1657 4012ec30 Hiroyuki Yamamoto
      -multi_module)
1658 4012ec30 Hiroyuki Yamamoto
	single_module="${wl}-multi_module"
1659 4012ec30 Hiroyuki Yamamoto
	continue
1660 4012ec30 Hiroyuki Yamamoto
	;;
1661 4012ec30 Hiroyuki Yamamoto
1662 4012ec30 Hiroyuki Yamamoto
      -module)
1663 4012ec30 Hiroyuki Yamamoto
	module=yes
1664 4012ec30 Hiroyuki Yamamoto
	continue
1665 4012ec30 Hiroyuki Yamamoto
	;;
1666 4012ec30 Hiroyuki Yamamoto
1667 4012ec30 Hiroyuki Yamamoto
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1668 4012ec30 Hiroyuki Yamamoto
      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1669 4012ec30 Hiroyuki Yamamoto
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1670 4012ec30 Hiroyuki Yamamoto
      # +DA*, +DD* enable 64-bit mode on the HP compiler
1671 4012ec30 Hiroyuki Yamamoto
      # -q* pass through compiler args for the IBM compiler
1672 4012ec30 Hiroyuki Yamamoto
      # -m* pass through architecture-specific compiler args for GCC
1673 4012ec30 Hiroyuki Yamamoto
      # -m*, -t[45]*, -txscale* pass through architecture-specific
1674 4012ec30 Hiroyuki Yamamoto
      # compiler args for GCC
1675 4012ec30 Hiroyuki Yamamoto
      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
1676 4012ec30 Hiroyuki Yamamoto
      # -F/path gives path to uninstalled frameworks, gcc on darwin
1677 4012ec30 Hiroyuki Yamamoto
      # @file GCC response files
1678 4012ec30 Hiroyuki Yamamoto
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
1679 4012ec30 Hiroyuki Yamamoto
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
1680 4012ec30 Hiroyuki Yamamoto
1681 4012ec30 Hiroyuki Yamamoto
	# Unknown arguments in both finalize_command and compile_command need
1682 4012ec30 Hiroyuki Yamamoto
	# to be aesthetically quoted because they are evaled later.
1683 4012ec30 Hiroyuki Yamamoto
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1684 4012ec30 Hiroyuki Yamamoto
	case $arg in
1685 4012ec30 Hiroyuki Yamamoto
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1686 4012ec30 Hiroyuki Yamamoto
	  arg="\"$arg\""
1687 4012ec30 Hiroyuki Yamamoto
	  ;;
1688 4012ec30 Hiroyuki Yamamoto
	esac
1689 4012ec30 Hiroyuki Yamamoto
        compile_command="$compile_command $arg"
1690 4012ec30 Hiroyuki Yamamoto
        finalize_command="$finalize_command $arg"
1691 4012ec30 Hiroyuki Yamamoto
        compiler_flags="$compiler_flags $arg"
1692 4012ec30 Hiroyuki Yamamoto
        continue
1693 4012ec30 Hiroyuki Yamamoto
        ;;
1694 4012ec30 Hiroyuki Yamamoto
1695 4012ec30 Hiroyuki Yamamoto
      -shrext)
1696 4012ec30 Hiroyuki Yamamoto
	prev=shrext
1697 4012ec30 Hiroyuki Yamamoto
	continue
1698 4012ec30 Hiroyuki Yamamoto
	;;
1699 4012ec30 Hiroyuki Yamamoto
1700 4012ec30 Hiroyuki Yamamoto
      -no-fast-install)
1701 4012ec30 Hiroyuki Yamamoto
	fast_install=no
1702 4012ec30 Hiroyuki Yamamoto
	continue
1703 4012ec30 Hiroyuki Yamamoto
	;;
1704 4012ec30 Hiroyuki Yamamoto
1705 4012ec30 Hiroyuki Yamamoto
      -no-install)
1706 4012ec30 Hiroyuki Yamamoto
	case $host in
1707 4012ec30 Hiroyuki Yamamoto
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
1708 4012ec30 Hiroyuki Yamamoto
	  # The PATH hackery in wrapper scripts is required on Windows
1709 4012ec30 Hiroyuki Yamamoto
	  # and Darwin in order for the loader to find any dlls it needs.
1710 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1711 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1712 4012ec30 Hiroyuki Yamamoto
	  fast_install=no
1713 4012ec30 Hiroyuki Yamamoto
	  ;;
1714 4012ec30 Hiroyuki Yamamoto
	*) no_install=yes ;;
1715 4012ec30 Hiroyuki Yamamoto
	esac
1716 4012ec30 Hiroyuki Yamamoto
	continue
1717 4012ec30 Hiroyuki Yamamoto
	;;
1718 4012ec30 Hiroyuki Yamamoto
1719 4012ec30 Hiroyuki Yamamoto
      -no-undefined)
1720 4012ec30 Hiroyuki Yamamoto
	allow_undefined=no
1721 4012ec30 Hiroyuki Yamamoto
	continue
1722 4012ec30 Hiroyuki Yamamoto
	;;
1723 4012ec30 Hiroyuki Yamamoto
1724 4012ec30 Hiroyuki Yamamoto
      -objectlist)
1725 4012ec30 Hiroyuki Yamamoto
	prev=objectlist
1726 4012ec30 Hiroyuki Yamamoto
	continue
1727 4012ec30 Hiroyuki Yamamoto
	;;
1728 4012ec30 Hiroyuki Yamamoto
1729 4012ec30 Hiroyuki Yamamoto
      -o) prev=output ;;
1730 4012ec30 Hiroyuki Yamamoto
1731 4012ec30 Hiroyuki Yamamoto
      -precious-files-regex)
1732 4012ec30 Hiroyuki Yamamoto
	prev=precious_regex
1733 4012ec30 Hiroyuki Yamamoto
	continue
1734 4012ec30 Hiroyuki Yamamoto
	;;
1735 4012ec30 Hiroyuki Yamamoto
1736 4012ec30 Hiroyuki Yamamoto
      -release)
1737 4012ec30 Hiroyuki Yamamoto
	prev=release
1738 4012ec30 Hiroyuki Yamamoto
	continue
1739 4012ec30 Hiroyuki Yamamoto
	;;
1740 4012ec30 Hiroyuki Yamamoto
1741 4012ec30 Hiroyuki Yamamoto
      -rpath)
1742 4012ec30 Hiroyuki Yamamoto
	prev=rpath
1743 4012ec30 Hiroyuki Yamamoto
	continue
1744 4012ec30 Hiroyuki Yamamoto
	;;
1745 4012ec30 Hiroyuki Yamamoto
1746 4012ec30 Hiroyuki Yamamoto
      -R)
1747 4012ec30 Hiroyuki Yamamoto
	prev=xrpath
1748 4012ec30 Hiroyuki Yamamoto
	continue
1749 4012ec30 Hiroyuki Yamamoto
	;;
1750 4012ec30 Hiroyuki Yamamoto
1751 4012ec30 Hiroyuki Yamamoto
      -R*)
1752 4012ec30 Hiroyuki Yamamoto
	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1753 4012ec30 Hiroyuki Yamamoto
	# We need an absolute path.
1754 4012ec30 Hiroyuki Yamamoto
	case $dir in
1755 4012ec30 Hiroyuki Yamamoto
	[\\/]* | [A-Za-z]:[\\/]*) ;;
1756 4012ec30 Hiroyuki Yamamoto
	*)
1757 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1758 4012ec30 Hiroyuki Yamamoto
	  exit $EXIT_FAILURE
1759 4012ec30 Hiroyuki Yamamoto
	  ;;
1760 4012ec30 Hiroyuki Yamamoto
	esac
1761 4012ec30 Hiroyuki Yamamoto
	case "$xrpath " in
1762 4012ec30 Hiroyuki Yamamoto
	*" $dir "*) ;;
1763 4012ec30 Hiroyuki Yamamoto
	*) xrpath="$xrpath $dir" ;;
1764 4012ec30 Hiroyuki Yamamoto
	esac
1765 4012ec30 Hiroyuki Yamamoto
	continue
1766 4012ec30 Hiroyuki Yamamoto
	;;
1767 4012ec30 Hiroyuki Yamamoto
1768 4012ec30 Hiroyuki Yamamoto
      -static | -static-libtool-libs)
1769 4012ec30 Hiroyuki Yamamoto
	# The effects of -static are defined in a previous loop.
1770 4012ec30 Hiroyuki Yamamoto
	# We used to do the same as -all-static on platforms that
1771 4012ec30 Hiroyuki Yamamoto
	# didn't have a PIC flag, but the assumption that the effects
1772 4012ec30 Hiroyuki Yamamoto
	# would be equivalent was wrong.  It would break on at least
1773 4012ec30 Hiroyuki Yamamoto
	# Digital Unix and AIX.
1774 4012ec30 Hiroyuki Yamamoto
	continue
1775 4012ec30 Hiroyuki Yamamoto
	;;
1776 4012ec30 Hiroyuki Yamamoto
1777 4012ec30 Hiroyuki Yamamoto
      -thread-safe)
1778 4012ec30 Hiroyuki Yamamoto
	thread_safe=yes
1779 4012ec30 Hiroyuki Yamamoto
	continue
1780 4012ec30 Hiroyuki Yamamoto
	;;
1781 4012ec30 Hiroyuki Yamamoto
1782 4012ec30 Hiroyuki Yamamoto
      -version-info)
1783 4012ec30 Hiroyuki Yamamoto
	prev=vinfo
1784 4012ec30 Hiroyuki Yamamoto
	continue
1785 4012ec30 Hiroyuki Yamamoto
	;;
1786 4012ec30 Hiroyuki Yamamoto
      -version-number)
1787 4012ec30 Hiroyuki Yamamoto
	prev=vinfo
1788 4012ec30 Hiroyuki Yamamoto
	vinfo_number=yes
1789 4012ec30 Hiroyuki Yamamoto
	continue
1790 4012ec30 Hiroyuki Yamamoto
	;;
1791 4012ec30 Hiroyuki Yamamoto
1792 4012ec30 Hiroyuki Yamamoto
      -Wc,*)
1793 4012ec30 Hiroyuki Yamamoto
	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1794 4012ec30 Hiroyuki Yamamoto
	arg=
1795 4012ec30 Hiroyuki Yamamoto
	save_ifs="$IFS"; IFS=','
1796 4012ec30 Hiroyuki Yamamoto
	for flag in $args; do
1797 4012ec30 Hiroyuki Yamamoto
	  IFS="$save_ifs"
1798 4012ec30 Hiroyuki Yamamoto
	  case $flag in
1799 4012ec30 Hiroyuki Yamamoto
	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1800 4012ec30 Hiroyuki Yamamoto
	    flag="\"$flag\""
1801 4012ec30 Hiroyuki Yamamoto
	    ;;
1802 4012ec30 Hiroyuki Yamamoto
	  esac
1803 4012ec30 Hiroyuki Yamamoto
	  arg="$arg $wl$flag"
1804 4012ec30 Hiroyuki Yamamoto
	  compiler_flags="$compiler_flags $flag"
1805 4012ec30 Hiroyuki Yamamoto
	done
1806 4012ec30 Hiroyuki Yamamoto
	IFS="$save_ifs"
1807 4012ec30 Hiroyuki Yamamoto
	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1808 4012ec30 Hiroyuki Yamamoto
	;;
1809 4012ec30 Hiroyuki Yamamoto
1810 4012ec30 Hiroyuki Yamamoto
      -Wl,*)
1811 4012ec30 Hiroyuki Yamamoto
	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1812 4012ec30 Hiroyuki Yamamoto
	arg=
1813 4012ec30 Hiroyuki Yamamoto
	save_ifs="$IFS"; IFS=','
1814 4012ec30 Hiroyuki Yamamoto
	for flag in $args; do
1815 4012ec30 Hiroyuki Yamamoto
	  IFS="$save_ifs"
1816 4012ec30 Hiroyuki Yamamoto
	  case $flag in
1817 4012ec30 Hiroyuki Yamamoto
	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1818 4012ec30 Hiroyuki Yamamoto
	    flag="\"$flag\""
1819 4012ec30 Hiroyuki Yamamoto
	    ;;
1820 4012ec30 Hiroyuki Yamamoto
	  esac
1821 4012ec30 Hiroyuki Yamamoto
	  arg="$arg $wl$flag"
1822 4012ec30 Hiroyuki Yamamoto
	  compiler_flags="$compiler_flags $wl$flag"
1823 4012ec30 Hiroyuki Yamamoto
	  linker_flags="$linker_flags $flag"
1824 4012ec30 Hiroyuki Yamamoto
	done
1825 4012ec30 Hiroyuki Yamamoto
	IFS="$save_ifs"
1826 4012ec30 Hiroyuki Yamamoto
	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1827 4012ec30 Hiroyuki Yamamoto
	;;
1828 4012ec30 Hiroyuki Yamamoto
1829 4012ec30 Hiroyuki Yamamoto
      -Xcompiler)
1830 4012ec30 Hiroyuki Yamamoto
	prev=xcompiler
1831 4012ec30 Hiroyuki Yamamoto
	continue
1832 4012ec30 Hiroyuki Yamamoto
	;;
1833 4012ec30 Hiroyuki Yamamoto
1834 4012ec30 Hiroyuki Yamamoto
      -Xlinker)
1835 4012ec30 Hiroyuki Yamamoto
	prev=xlinker
1836 4012ec30 Hiroyuki Yamamoto
	continue
1837 4012ec30 Hiroyuki Yamamoto
	;;
1838 4012ec30 Hiroyuki Yamamoto
1839 4012ec30 Hiroyuki Yamamoto
      -XCClinker)
1840 4012ec30 Hiroyuki Yamamoto
	prev=xcclinker
1841 4012ec30 Hiroyuki Yamamoto
	continue
1842 4012ec30 Hiroyuki Yamamoto
	;;
1843 4012ec30 Hiroyuki Yamamoto
1844 4012ec30 Hiroyuki Yamamoto
      # Some other compiler flag.
1845 4012ec30 Hiroyuki Yamamoto
      -* | +*)
1846 4012ec30 Hiroyuki Yamamoto
	# Unknown arguments in both finalize_command and compile_command need
1847 4012ec30 Hiroyuki Yamamoto
	# to be aesthetically quoted because they are evaled later.
1848 4012ec30 Hiroyuki Yamamoto
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1849 4012ec30 Hiroyuki Yamamoto
	case $arg in
1850 4012ec30 Hiroyuki Yamamoto
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1851 4012ec30 Hiroyuki Yamamoto
	  arg="\"$arg\""
1852 4012ec30 Hiroyuki Yamamoto
	  ;;
1853 4012ec30 Hiroyuki Yamamoto
	esac
1854 4012ec30 Hiroyuki Yamamoto
	;;
1855 4012ec30 Hiroyuki Yamamoto
1856 4012ec30 Hiroyuki Yamamoto
      *.$objext)
1857 4012ec30 Hiroyuki Yamamoto
	# A standard object.
1858 4012ec30 Hiroyuki Yamamoto
	objs="$objs $arg"
1859 4012ec30 Hiroyuki Yamamoto
	;;
1860 4012ec30 Hiroyuki Yamamoto
1861 4012ec30 Hiroyuki Yamamoto
      *.lo)
1862 4012ec30 Hiroyuki Yamamoto
	# A libtool-controlled object.
1863 4012ec30 Hiroyuki Yamamoto
1864 4012ec30 Hiroyuki Yamamoto
	# Check to see that this really is a libtool object.
1865 4012ec30 Hiroyuki Yamamoto
	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1866 4012ec30 Hiroyuki Yamamoto
	  pic_object=
1867 4012ec30 Hiroyuki Yamamoto
	  non_pic_object=
1868 4012ec30 Hiroyuki Yamamoto
1869 4012ec30 Hiroyuki Yamamoto
	  # Read the .lo file
1870 4012ec30 Hiroyuki Yamamoto
	  # If there is no directory component, then add one.
1871 4012ec30 Hiroyuki Yamamoto
	  case $arg in
1872 4012ec30 Hiroyuki Yamamoto
	  */* | *\\*) . $arg ;;
1873 4012ec30 Hiroyuki Yamamoto
	  *) . ./$arg ;;
1874 4012ec30 Hiroyuki Yamamoto
	  esac
1875 4012ec30 Hiroyuki Yamamoto
1876 4012ec30 Hiroyuki Yamamoto
	  if test -z "$pic_object" || \
1877 4012ec30 Hiroyuki Yamamoto
	     test -z "$non_pic_object" ||
1878 4012ec30 Hiroyuki Yamamoto
	     test "$pic_object" = none && \
1879 4012ec30 Hiroyuki Yamamoto
	     test "$non_pic_object" = none; then
1880 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1881 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
1882 4012ec30 Hiroyuki Yamamoto
	  fi
1883 4012ec30 Hiroyuki Yamamoto
1884 4012ec30 Hiroyuki Yamamoto
	  # Extract subdirectory from the argument.
1885 4012ec30 Hiroyuki Yamamoto
	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1886 4012ec30 Hiroyuki Yamamoto
	  if test "X$xdir" = "X$arg"; then
1887 4012ec30 Hiroyuki Yamamoto
	    xdir=
1888 4012ec30 Hiroyuki Yamamoto
 	  else
1889 4012ec30 Hiroyuki Yamamoto
	    xdir="$xdir/"
1890 4012ec30 Hiroyuki Yamamoto
	  fi
1891 4012ec30 Hiroyuki Yamamoto
1892 4012ec30 Hiroyuki Yamamoto
	  if test "$pic_object" != none; then
1893 4012ec30 Hiroyuki Yamamoto
	    # Prepend the subdirectory the object is found in.
1894 4012ec30 Hiroyuki Yamamoto
	    pic_object="$xdir$pic_object"
1895 4012ec30 Hiroyuki Yamamoto
1896 4012ec30 Hiroyuki Yamamoto
	    if test "$prev" = dlfiles; then
1897 4012ec30 Hiroyuki Yamamoto
	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1898 4012ec30 Hiroyuki Yamamoto
		dlfiles="$dlfiles $pic_object"
1899 4012ec30 Hiroyuki Yamamoto
		prev=
1900 4012ec30 Hiroyuki Yamamoto
		continue
1901 4012ec30 Hiroyuki Yamamoto
	      else
1902 4012ec30 Hiroyuki Yamamoto
		# If libtool objects are unsupported, then we need to preload.
1903 4012ec30 Hiroyuki Yamamoto
		prev=dlprefiles
1904 4012ec30 Hiroyuki Yamamoto
	      fi
1905 4012ec30 Hiroyuki Yamamoto
	    fi
1906 4012ec30 Hiroyuki Yamamoto
1907 4012ec30 Hiroyuki Yamamoto
	    # CHECK ME:  I think I busted this.  -Ossama
1908 4012ec30 Hiroyuki Yamamoto
	    if test "$prev" = dlprefiles; then
1909 4012ec30 Hiroyuki Yamamoto
	      # Preload the old-style object.
1910 4012ec30 Hiroyuki Yamamoto
	      dlprefiles="$dlprefiles $pic_object"
1911 4012ec30 Hiroyuki Yamamoto
	      prev=
1912 4012ec30 Hiroyuki Yamamoto
	    fi
1913 4012ec30 Hiroyuki Yamamoto
1914 4012ec30 Hiroyuki Yamamoto
	    # A PIC object.
1915 4012ec30 Hiroyuki Yamamoto
	    libobjs="$libobjs $pic_object"
1916 4012ec30 Hiroyuki Yamamoto
	    arg="$pic_object"
1917 4012ec30 Hiroyuki Yamamoto
	  fi
1918 4012ec30 Hiroyuki Yamamoto
1919 4012ec30 Hiroyuki Yamamoto
	  # Non-PIC object.
1920 4012ec30 Hiroyuki Yamamoto
	  if test "$non_pic_object" != none; then
1921 4012ec30 Hiroyuki Yamamoto
	    # Prepend the subdirectory the object is found in.
1922 4012ec30 Hiroyuki Yamamoto
	    non_pic_object="$xdir$non_pic_object"
1923 4012ec30 Hiroyuki Yamamoto
1924 4012ec30 Hiroyuki Yamamoto
	    # A standard non-PIC object
1925 4012ec30 Hiroyuki Yamamoto
	    non_pic_objects="$non_pic_objects $non_pic_object"
1926 4012ec30 Hiroyuki Yamamoto
	    if test -z "$pic_object" || test "$pic_object" = none ; then
1927 4012ec30 Hiroyuki Yamamoto
	      arg="$non_pic_object"
1928 4012ec30 Hiroyuki Yamamoto
	    fi
1929 4012ec30 Hiroyuki Yamamoto
	  else
1930 4012ec30 Hiroyuki Yamamoto
	    # If the PIC object exists, use it instead.
1931 4012ec30 Hiroyuki Yamamoto
	    # $xdir was prepended to $pic_object above.
1932 4012ec30 Hiroyuki Yamamoto
	    non_pic_object="$pic_object"
1933 4012ec30 Hiroyuki Yamamoto
	    non_pic_objects="$non_pic_objects $non_pic_object"
1934 4012ec30 Hiroyuki Yamamoto
	  fi
1935 4012ec30 Hiroyuki Yamamoto
	else
1936 4012ec30 Hiroyuki Yamamoto
	  # Only an error if not doing a dry-run.
1937 4012ec30 Hiroyuki Yamamoto
	  if test -z "$run"; then
1938 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1939 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
1940 4012ec30 Hiroyuki Yamamoto
	  else
1941 4012ec30 Hiroyuki Yamamoto
	    # Dry-run case.
1942 4012ec30 Hiroyuki Yamamoto
1943 4012ec30 Hiroyuki Yamamoto
	    # Extract subdirectory from the argument.
1944 4012ec30 Hiroyuki Yamamoto
	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1945 4012ec30 Hiroyuki Yamamoto
	    if test "X$xdir" = "X$arg"; then
1946 4012ec30 Hiroyuki Yamamoto
	      xdir=
1947 4012ec30 Hiroyuki Yamamoto
	    else
1948 4012ec30 Hiroyuki Yamamoto
	      xdir="$xdir/"
1949 4012ec30 Hiroyuki Yamamoto
	    fi
1950 4012ec30 Hiroyuki Yamamoto
1951 4012ec30 Hiroyuki Yamamoto
	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1952 4012ec30 Hiroyuki Yamamoto
	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1953 4012ec30 Hiroyuki Yamamoto
	    libobjs="$libobjs $pic_object"
1954 4012ec30 Hiroyuki Yamamoto
	    non_pic_objects="$non_pic_objects $non_pic_object"
1955 4012ec30 Hiroyuki Yamamoto
	  fi
1956 4012ec30 Hiroyuki Yamamoto
	fi
1957 4012ec30 Hiroyuki Yamamoto
	;;
1958 4012ec30 Hiroyuki Yamamoto
1959 4012ec30 Hiroyuki Yamamoto
      *.$libext)
1960 4012ec30 Hiroyuki Yamamoto
	# An archive.
1961 4012ec30 Hiroyuki Yamamoto
	deplibs="$deplibs $arg"
1962 4012ec30 Hiroyuki Yamamoto
	old_deplibs="$old_deplibs $arg"
1963 4012ec30 Hiroyuki Yamamoto
	continue
1964 4012ec30 Hiroyuki Yamamoto
	;;
1965 4012ec30 Hiroyuki Yamamoto
1966 4012ec30 Hiroyuki Yamamoto
      *.la)
1967 4012ec30 Hiroyuki Yamamoto
	# A libtool-controlled library.
1968 4012ec30 Hiroyuki Yamamoto
1969 4012ec30 Hiroyuki Yamamoto
	if test "$prev" = dlfiles; then
1970 4012ec30 Hiroyuki Yamamoto
	  # This library was specified with -dlopen.
1971 4012ec30 Hiroyuki Yamamoto
	  dlfiles="$dlfiles $arg"
1972 4012ec30 Hiroyuki Yamamoto
	  prev=
1973 4012ec30 Hiroyuki Yamamoto
	elif test "$prev" = dlprefiles; then
1974 4012ec30 Hiroyuki Yamamoto
	  # The library was specified with -dlpreopen.
1975 4012ec30 Hiroyuki Yamamoto
	  dlprefiles="$dlprefiles $arg"
1976 4012ec30 Hiroyuki Yamamoto
	  prev=
1977 4012ec30 Hiroyuki Yamamoto
	else
1978 4012ec30 Hiroyuki Yamamoto
	  deplibs="$deplibs $arg"
1979 4012ec30 Hiroyuki Yamamoto
	fi
1980 4012ec30 Hiroyuki Yamamoto
	continue
1981 4012ec30 Hiroyuki Yamamoto
	;;
1982 4012ec30 Hiroyuki Yamamoto
1983 4012ec30 Hiroyuki Yamamoto
      # Some other compiler argument.
1984 4012ec30 Hiroyuki Yamamoto
      *)
1985 4012ec30 Hiroyuki Yamamoto
	# Unknown arguments in both finalize_command and compile_command need
1986 4012ec30 Hiroyuki Yamamoto
	# to be aesthetically quoted because they are evaled later.
1987 4012ec30 Hiroyuki Yamamoto
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1988 4012ec30 Hiroyuki Yamamoto
	case $arg in
1989 4012ec30 Hiroyuki Yamamoto
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1990 4012ec30 Hiroyuki Yamamoto
	  arg="\"$arg\""
1991 4012ec30 Hiroyuki Yamamoto
	  ;;
1992 4012ec30 Hiroyuki Yamamoto
	esac
1993 4012ec30 Hiroyuki Yamamoto
	;;
1994 4012ec30 Hiroyuki Yamamoto
      esac # arg
1995 4012ec30 Hiroyuki Yamamoto
1996 4012ec30 Hiroyuki Yamamoto
      # Now actually substitute the argument into the commands.
1997 4012ec30 Hiroyuki Yamamoto
      if test -n "$arg"; then
1998 4012ec30 Hiroyuki Yamamoto
	compile_command="$compile_command $arg"
1999 4012ec30 Hiroyuki Yamamoto
	finalize_command="$finalize_command $arg"
2000 4012ec30 Hiroyuki Yamamoto
      fi
2001 4012ec30 Hiroyuki Yamamoto
    done # argument parsing loop
2002 4012ec30 Hiroyuki Yamamoto
2003 4012ec30 Hiroyuki Yamamoto
    if test -n "$prev"; then
2004 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2005 4012ec30 Hiroyuki Yamamoto
      $echo "$help" 1>&2
2006 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
2007 4012ec30 Hiroyuki Yamamoto
    fi
2008 4012ec30 Hiroyuki Yamamoto
2009 4012ec30 Hiroyuki Yamamoto
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2010 4012ec30 Hiroyuki Yamamoto
      eval arg=\"$export_dynamic_flag_spec\"
2011 4012ec30 Hiroyuki Yamamoto
      compile_command="$compile_command $arg"
2012 4012ec30 Hiroyuki Yamamoto
      finalize_command="$finalize_command $arg"
2013 4012ec30 Hiroyuki Yamamoto
    fi
2014 4012ec30 Hiroyuki Yamamoto
2015 4012ec30 Hiroyuki Yamamoto
    oldlibs=
2016 4012ec30 Hiroyuki Yamamoto
    # calculate the name of the file, without its directory
2017 4012ec30 Hiroyuki Yamamoto
    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2018 4012ec30 Hiroyuki Yamamoto
    libobjs_save="$libobjs"
2019 4012ec30 Hiroyuki Yamamoto
2020 4012ec30 Hiroyuki Yamamoto
    if test -n "$shlibpath_var"; then
2021 4012ec30 Hiroyuki Yamamoto
      # get the directories listed in $shlibpath_var
2022 4012ec30 Hiroyuki Yamamoto
      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2023 4012ec30 Hiroyuki Yamamoto
    else
2024 4012ec30 Hiroyuki Yamamoto
      shlib_search_path=
2025 4012ec30 Hiroyuki Yamamoto
    fi
2026 4012ec30 Hiroyuki Yamamoto
    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2027 4012ec30 Hiroyuki Yamamoto
    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2028 4012ec30 Hiroyuki Yamamoto
2029 4012ec30 Hiroyuki Yamamoto
    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2030 4012ec30 Hiroyuki Yamamoto
    if test "X$output_objdir" = "X$output"; then
2031 4012ec30 Hiroyuki Yamamoto
      output_objdir="$objdir"
2032 4012ec30 Hiroyuki Yamamoto
    else
2033 4012ec30 Hiroyuki Yamamoto
      output_objdir="$output_objdir/$objdir"
2034 4012ec30 Hiroyuki Yamamoto
    fi
2035 4012ec30 Hiroyuki Yamamoto
    # Create the object directory.
2036 4012ec30 Hiroyuki Yamamoto
    if test ! -d "$output_objdir"; then
2037 4012ec30 Hiroyuki Yamamoto
      $show "$mkdir $output_objdir"
2038 4012ec30 Hiroyuki Yamamoto
      $run $mkdir $output_objdir
2039 4012ec30 Hiroyuki Yamamoto
      exit_status=$?
2040 4012ec30 Hiroyuki Yamamoto
      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2041 4012ec30 Hiroyuki Yamamoto
	exit $exit_status
2042 4012ec30 Hiroyuki Yamamoto
      fi
2043 4012ec30 Hiroyuki Yamamoto
    fi
2044 4012ec30 Hiroyuki Yamamoto
2045 4012ec30 Hiroyuki Yamamoto
    # Determine the type of output
2046 4012ec30 Hiroyuki Yamamoto
    case $output in
2047 4012ec30 Hiroyuki Yamamoto
    "")
2048 4012ec30 Hiroyuki Yamamoto
      $echo "$modename: you must specify an output file" 1>&2
2049 4012ec30 Hiroyuki Yamamoto
      $echo "$help" 1>&2
2050 4012ec30 Hiroyuki Yamamoto
      exit $EXIT_FAILURE
2051 4012ec30 Hiroyuki Yamamoto
      ;;
2052 4012ec30 Hiroyuki Yamamoto
    *.$libext) linkmode=oldlib ;;
2053 4012ec30 Hiroyuki Yamamoto
    *.lo | *.$objext) linkmode=obj ;;
2054 4012ec30 Hiroyuki Yamamoto
    *.la) linkmode=lib ;;
2055 4012ec30 Hiroyuki Yamamoto
    *) linkmode=prog ;; # Anything else should be a program.
2056 4012ec30 Hiroyuki Yamamoto
    esac
2057 4012ec30 Hiroyuki Yamamoto
2058 4012ec30 Hiroyuki Yamamoto
    case $host in
2059 4012ec30 Hiroyuki Yamamoto
    *cygwin* | *mingw* | *pw32*)
2060 4012ec30 Hiroyuki Yamamoto
      # don't eliminate duplications in $postdeps and $predeps
2061 4012ec30 Hiroyuki Yamamoto
      duplicate_compiler_generated_deps=yes
2062 4012ec30 Hiroyuki Yamamoto
      ;;
2063 4012ec30 Hiroyuki Yamamoto
    *)
2064 4012ec30 Hiroyuki Yamamoto
      duplicate_compiler_generated_deps=$duplicate_deps
2065 4012ec30 Hiroyuki Yamamoto
      ;;
2066 4012ec30 Hiroyuki Yamamoto
    esac
2067 4012ec30 Hiroyuki Yamamoto
    specialdeplibs=
2068 4012ec30 Hiroyuki Yamamoto
2069 4012ec30 Hiroyuki Yamamoto
    libs=
2070 4012ec30 Hiroyuki Yamamoto
    # Find all interdependent deplibs by searching for libraries
2071 4012ec30 Hiroyuki Yamamoto
    # that are linked more than once (e.g. -la -lb -la)
2072 4012ec30 Hiroyuki Yamamoto
    for deplib in $deplibs; do
2073 4012ec30 Hiroyuki Yamamoto
      if test "X$duplicate_deps" = "Xyes" ; then
2074 4012ec30 Hiroyuki Yamamoto
	case "$libs " in
2075 4012ec30 Hiroyuki Yamamoto
	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2076 4012ec30 Hiroyuki Yamamoto
	esac
2077 4012ec30 Hiroyuki Yamamoto
      fi
2078 4012ec30 Hiroyuki Yamamoto
      libs="$libs $deplib"
2079 4012ec30 Hiroyuki Yamamoto
    done
2080 4012ec30 Hiroyuki Yamamoto
2081 4012ec30 Hiroyuki Yamamoto
    if test "$linkmode" = lib; then
2082 4012ec30 Hiroyuki Yamamoto
      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2083 4012ec30 Hiroyuki Yamamoto
2084 4012ec30 Hiroyuki Yamamoto
      # Compute libraries that are listed more than once in $predeps
2085 4012ec30 Hiroyuki Yamamoto
      # $postdeps and mark them as special (i.e., whose duplicates are
2086 4012ec30 Hiroyuki Yamamoto
      # not to be eliminated).
2087 4012ec30 Hiroyuki Yamamoto
      pre_post_deps=
2088 4012ec30 Hiroyuki Yamamoto
      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2089 4012ec30 Hiroyuki Yamamoto
	for pre_post_dep in $predeps $postdeps; do
2090 4012ec30 Hiroyuki Yamamoto
	  case "$pre_post_deps " in
2091 4012ec30 Hiroyuki Yamamoto
	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2092 4012ec30 Hiroyuki Yamamoto
	  esac
2093 4012ec30 Hiroyuki Yamamoto
	  pre_post_deps="$pre_post_deps $pre_post_dep"
2094 4012ec30 Hiroyuki Yamamoto
	done
2095 4012ec30 Hiroyuki Yamamoto
      fi
2096 4012ec30 Hiroyuki Yamamoto
      pre_post_deps=
2097 4012ec30 Hiroyuki Yamamoto
    fi
2098 4012ec30 Hiroyuki Yamamoto
2099 4012ec30 Hiroyuki Yamamoto
    deplibs=
2100 4012ec30 Hiroyuki Yamamoto
    newdependency_libs=
2101 4012ec30 Hiroyuki Yamamoto
    newlib_search_path=
2102 4012ec30 Hiroyuki Yamamoto
    need_relink=no # whether we're linking any uninstalled libtool libraries
2103 4012ec30 Hiroyuki Yamamoto
    notinst_deplibs= # not-installed libtool libraries
2104 4012ec30 Hiroyuki Yamamoto
    case $linkmode in
2105 4012ec30 Hiroyuki Yamamoto
    lib)
2106 4012ec30 Hiroyuki Yamamoto
	passes="conv link"
2107 4012ec30 Hiroyuki Yamamoto
	for file in $dlfiles $dlprefiles; do
2108 4012ec30 Hiroyuki Yamamoto
	  case $file in
2109 4012ec30 Hiroyuki Yamamoto
	  *.la) ;;
2110 4012ec30 Hiroyuki Yamamoto
	  *)
2111 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2112 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
2113 4012ec30 Hiroyuki Yamamoto
	    ;;
2114 4012ec30 Hiroyuki Yamamoto
	  esac
2115 4012ec30 Hiroyuki Yamamoto
	done
2116 4012ec30 Hiroyuki Yamamoto
	;;
2117 4012ec30 Hiroyuki Yamamoto
    prog)
2118 4012ec30 Hiroyuki Yamamoto
	compile_deplibs=
2119 4012ec30 Hiroyuki Yamamoto
	finalize_deplibs=
2120 4012ec30 Hiroyuki Yamamoto
	alldeplibs=no
2121 4012ec30 Hiroyuki Yamamoto
	newdlfiles=
2122 4012ec30 Hiroyuki Yamamoto
	newdlprefiles=
2123 4012ec30 Hiroyuki Yamamoto
	passes="conv scan dlopen dlpreopen link"
2124 4012ec30 Hiroyuki Yamamoto
	;;
2125 4012ec30 Hiroyuki Yamamoto
    *)  passes="conv"
2126 4012ec30 Hiroyuki Yamamoto
	;;
2127 4012ec30 Hiroyuki Yamamoto
    esac
2128 4012ec30 Hiroyuki Yamamoto
    for pass in $passes; do
2129 4012ec30 Hiroyuki Yamamoto
      if test "$linkmode,$pass" = "lib,link" ||
2130 4012ec30 Hiroyuki Yamamoto
	 test "$linkmode,$pass" = "prog,scan"; then
2131 4012ec30 Hiroyuki Yamamoto
	libs="$deplibs"
2132 4012ec30 Hiroyuki Yamamoto
	deplibs=
2133 4012ec30 Hiroyuki Yamamoto
      fi
2134 4012ec30 Hiroyuki Yamamoto
      if test "$linkmode" = prog; then
2135 4012ec30 Hiroyuki Yamamoto
	case $pass in
2136 4012ec30 Hiroyuki Yamamoto
	dlopen) libs="$dlfiles" ;;
2137 4012ec30 Hiroyuki Yamamoto
	dlpreopen) libs="$dlprefiles" ;;
2138 4012ec30 Hiroyuki Yamamoto
	link)
2139 4012ec30 Hiroyuki Yamamoto
	  libs="$deplibs %DEPLIBS%"
2140 4012ec30 Hiroyuki Yamamoto
	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2141 4012ec30 Hiroyuki Yamamoto
	  ;;
2142 4012ec30 Hiroyuki Yamamoto
	esac
2143 4012ec30 Hiroyuki Yamamoto
      fi
2144 4012ec30 Hiroyuki Yamamoto
      if test "$pass" = dlopen; then
2145 4012ec30 Hiroyuki Yamamoto
	# Collect dlpreopened libraries
2146 4012ec30 Hiroyuki Yamamoto
	save_deplibs="$deplibs"
2147 4012ec30 Hiroyuki Yamamoto
	deplibs=
2148 4012ec30 Hiroyuki Yamamoto
      fi
2149 4012ec30 Hiroyuki Yamamoto
      for deplib in $libs; do
2150 4012ec30 Hiroyuki Yamamoto
	lib=
2151 4012ec30 Hiroyuki Yamamoto
	found=no
2152 4012ec30 Hiroyuki Yamamoto
	case $deplib in
2153 4012ec30 Hiroyuki Yamamoto
	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2154 4012ec30 Hiroyuki Yamamoto
	  if test "$linkmode,$pass" = "prog,link"; then
2155 4012ec30 Hiroyuki Yamamoto
	    compile_deplibs="$deplib $compile_deplibs"
2156 4012ec30 Hiroyuki Yamamoto
	    finalize_deplibs="$deplib $finalize_deplibs"
2157 4012ec30 Hiroyuki Yamamoto
	  else
2158 4012ec30 Hiroyuki Yamamoto
	    compiler_flags="$compiler_flags $deplib"
2159 4012ec30 Hiroyuki Yamamoto
	  fi
2160 4012ec30 Hiroyuki Yamamoto
	  continue
2161 4012ec30 Hiroyuki Yamamoto
	  ;;
2162 4012ec30 Hiroyuki Yamamoto
	-l*)
2163 4012ec30 Hiroyuki Yamamoto
	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2164 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2165 4012ec30 Hiroyuki Yamamoto
	    continue
2166 4012ec30 Hiroyuki Yamamoto
	  fi
2167 4012ec30 Hiroyuki Yamamoto
	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2168 4012ec30 Hiroyuki Yamamoto
	  if test "$linkmode" = lib; then
2169 4012ec30 Hiroyuki Yamamoto
	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
2170 4012ec30 Hiroyuki Yamamoto
	  else
2171 4012ec30 Hiroyuki Yamamoto
	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
2172 4012ec30 Hiroyuki Yamamoto
	  fi
2173 4012ec30 Hiroyuki Yamamoto
	  for searchdir in $searchdirs; do
2174 4012ec30 Hiroyuki Yamamoto
	    for search_ext in .la $std_shrext .so .a; do
2175 4012ec30 Hiroyuki Yamamoto
	      # Search the libtool library
2176 4012ec30 Hiroyuki Yamamoto
	      lib="$searchdir/lib${name}${search_ext}"
2177 4012ec30 Hiroyuki Yamamoto
	      if test -f "$lib"; then
2178 4012ec30 Hiroyuki Yamamoto
		if test "$search_ext" = ".la"; then
2179 4012ec30 Hiroyuki Yamamoto
		  found=yes
2180 4012ec30 Hiroyuki Yamamoto
		else
2181 4012ec30 Hiroyuki Yamamoto
		  found=no
2182 4012ec30 Hiroyuki Yamamoto
		fi
2183 4012ec30 Hiroyuki Yamamoto
		break 2
2184 4012ec30 Hiroyuki Yamamoto
	      fi
2185 4012ec30 Hiroyuki Yamamoto
	    done
2186 4012ec30 Hiroyuki Yamamoto
	  done
2187 4012ec30 Hiroyuki Yamamoto
	  if test "$found" != yes; then
2188 4012ec30 Hiroyuki Yamamoto
	    # deplib doesn't seem to be a libtool library
2189 4012ec30 Hiroyuki Yamamoto
	    if test "$linkmode,$pass" = "prog,link"; then
2190 4012ec30 Hiroyuki Yamamoto
	      compile_deplibs="$deplib $compile_deplibs"
2191 4012ec30 Hiroyuki Yamamoto
	      finalize_deplibs="$deplib $finalize_deplibs"
2192 4012ec30 Hiroyuki Yamamoto
	    else
2193 4012ec30 Hiroyuki Yamamoto
	      deplibs="$deplib $deplibs"
2194 4012ec30 Hiroyuki Yamamoto
	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2195 4012ec30 Hiroyuki Yamamoto
	    fi
2196 4012ec30 Hiroyuki Yamamoto
	    continue
2197 4012ec30 Hiroyuki Yamamoto
	  else # deplib is a libtool library
2198 4012ec30 Hiroyuki Yamamoto
	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2199 4012ec30 Hiroyuki Yamamoto
	    # We need to do some special things here, and not later.
2200 4012ec30 Hiroyuki Yamamoto
	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2201 4012ec30 Hiroyuki Yamamoto
	      case " $predeps $postdeps " in
2202 4012ec30 Hiroyuki Yamamoto
	      *" $deplib "*)
2203 4012ec30 Hiroyuki Yamamoto
		if (${SED} -e '2q' $lib |
2204 4012ec30 Hiroyuki Yamamoto
                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2205 4012ec30 Hiroyuki Yamamoto
		  library_names=
2206 4012ec30 Hiroyuki Yamamoto
		  old_library=
2207 4012ec30 Hiroyuki Yamamoto
		  case $lib in
2208 4012ec30 Hiroyuki Yamamoto
		  */* | *\\*) . $lib ;;
2209 4012ec30 Hiroyuki Yamamoto
		  *) . ./$lib ;;
2210 4012ec30 Hiroyuki Yamamoto
		  esac
2211 4012ec30 Hiroyuki Yamamoto
		  for l in $old_library $library_names; do
2212 4012ec30 Hiroyuki Yamamoto
		    ll="$l"
2213 4012ec30 Hiroyuki Yamamoto
		  done
2214 4012ec30 Hiroyuki Yamamoto
		  if test "X$ll" = "X$old_library" ; then # only static version available
2215 4012ec30 Hiroyuki Yamamoto
		    found=no
2216 4012ec30 Hiroyuki Yamamoto
		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2217 4012ec30 Hiroyuki Yamamoto
		    test "X$ladir" = "X$lib" && ladir="."
2218 4012ec30 Hiroyuki Yamamoto
		    lib=$ladir/$old_library
2219 4012ec30 Hiroyuki Yamamoto
		    if test "$linkmode,$pass" = "prog,link"; then
2220 4012ec30 Hiroyuki Yamamoto
		      compile_deplibs="$deplib $compile_deplibs"
2221 4012ec30 Hiroyuki Yamamoto
		      finalize_deplibs="$deplib $finalize_deplibs"
2222 4012ec30 Hiroyuki Yamamoto
		    else
2223 4012ec30 Hiroyuki Yamamoto
		      deplibs="$deplib $deplibs"
2224 4012ec30 Hiroyuki Yamamoto
		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2225 4012ec30 Hiroyuki Yamamoto
		    fi
2226 4012ec30 Hiroyuki Yamamoto
		    continue
2227 4012ec30 Hiroyuki Yamamoto
		  fi
2228 4012ec30 Hiroyuki Yamamoto
		fi
2229 4012ec30 Hiroyuki Yamamoto
	        ;;
2230 4012ec30 Hiroyuki Yamamoto
	      *) ;;
2231 4012ec30 Hiroyuki Yamamoto
	      esac
2232 4012ec30 Hiroyuki Yamamoto
	    fi
2233 4012ec30 Hiroyuki Yamamoto
	  fi
2234 4012ec30 Hiroyuki Yamamoto
	  ;; # -l
2235 4012ec30 Hiroyuki Yamamoto
	-L*)
2236 4012ec30 Hiroyuki Yamamoto
	  case $linkmode in
2237 4012ec30 Hiroyuki Yamamoto
	  lib)
2238 4012ec30 Hiroyuki Yamamoto
	    deplibs="$deplib $deplibs"
2239 4012ec30 Hiroyuki Yamamoto
	    test "$pass" = conv && continue
2240 4012ec30 Hiroyuki Yamamoto
	    newdependency_libs="$deplib $newdependency_libs"
2241 4012ec30 Hiroyuki Yamamoto
	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2242 4012ec30 Hiroyuki Yamamoto
	    ;;
2243 4012ec30 Hiroyuki Yamamoto
	  prog)
2244 4012ec30 Hiroyuki Yamamoto
	    if test "$pass" = conv; then
2245 4012ec30 Hiroyuki Yamamoto
	      deplibs="$deplib $deplibs"
2246 4012ec30 Hiroyuki Yamamoto
	      continue
2247 4012ec30 Hiroyuki Yamamoto
	    fi
2248 4012ec30 Hiroyuki Yamamoto
	    if test "$pass" = scan; then
2249 4012ec30 Hiroyuki Yamamoto
	      deplibs="$deplib $deplibs"
2250 4012ec30 Hiroyuki Yamamoto
	    else
2251 4012ec30 Hiroyuki Yamamoto
	      compile_deplibs="$deplib $compile_deplibs"
2252 4012ec30 Hiroyuki Yamamoto
	      finalize_deplibs="$deplib $finalize_deplibs"
2253 4012ec30 Hiroyuki Yamamoto
	    fi
2254 4012ec30 Hiroyuki Yamamoto
	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2255 4012ec30 Hiroyuki Yamamoto
	    ;;
2256 4012ec30 Hiroyuki Yamamoto
	  *)
2257 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2258 4012ec30 Hiroyuki Yamamoto
	    ;;
2259 4012ec30 Hiroyuki Yamamoto
	  esac # linkmode
2260 4012ec30 Hiroyuki Yamamoto
	  continue
2261 4012ec30 Hiroyuki Yamamoto
	  ;; # -L
2262 4012ec30 Hiroyuki Yamamoto
	-R*)
2263 4012ec30 Hiroyuki Yamamoto
	  if test "$pass" = link; then
2264 4012ec30 Hiroyuki Yamamoto
	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2265 4012ec30 Hiroyuki Yamamoto
	    # Make sure the xrpath contains only unique directories.
2266 4012ec30 Hiroyuki Yamamoto
	    case "$xrpath " in
2267 4012ec30 Hiroyuki Yamamoto
	    *" $dir "*) ;;
2268 4012ec30 Hiroyuki Yamamoto
	    *) xrpath="$xrpath $dir" ;;
2269 4012ec30 Hiroyuki Yamamoto
	    esac
2270 4012ec30 Hiroyuki Yamamoto
	  fi
2271 4012ec30 Hiroyuki Yamamoto
	  deplibs="$deplib $deplibs"
2272 4012ec30 Hiroyuki Yamamoto
	  continue
2273 4012ec30 Hiroyuki Yamamoto
	  ;;
2274 4012ec30 Hiroyuki Yamamoto
	*.la) lib="$deplib" ;;
2275 4012ec30 Hiroyuki Yamamoto
	*.$libext)
2276 4012ec30 Hiroyuki Yamamoto
	  if test "$pass" = conv; then
2277 4012ec30 Hiroyuki Yamamoto
	    deplibs="$deplib $deplibs"
2278 4012ec30 Hiroyuki Yamamoto
	    continue
2279 4012ec30 Hiroyuki Yamamoto
	  fi
2280 4012ec30 Hiroyuki Yamamoto
	  case $linkmode in
2281 4012ec30 Hiroyuki Yamamoto
	  lib)
2282 4012ec30 Hiroyuki Yamamoto
	    valid_a_lib=no
2283 4012ec30 Hiroyuki Yamamoto
	    case $deplibs_check_method in
2284 4012ec30 Hiroyuki Yamamoto
	      match_pattern*)
2285 4012ec30 Hiroyuki Yamamoto
		set dummy $deplibs_check_method
2286 4012ec30 Hiroyuki Yamamoto
	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2287 4012ec30 Hiroyuki Yamamoto
		if eval $echo \"$deplib\" 2>/dev/null \
2288 4012ec30 Hiroyuki Yamamoto
		    | $SED 10q \
2289 4012ec30 Hiroyuki Yamamoto
		    | $EGREP "$match_pattern_regex" > /dev/null; then
2290 4012ec30 Hiroyuki Yamamoto
		  valid_a_lib=yes
2291 4012ec30 Hiroyuki Yamamoto
		fi
2292 4012ec30 Hiroyuki Yamamoto
		;;
2293 4012ec30 Hiroyuki Yamamoto
	      pass_all)
2294 4012ec30 Hiroyuki Yamamoto
		valid_a_lib=yes
2295 4012ec30 Hiroyuki Yamamoto
		;;
2296 4012ec30 Hiroyuki Yamamoto
            esac
2297 4012ec30 Hiroyuki Yamamoto
	    if test "$valid_a_lib" != yes; then
2298 4012ec30 Hiroyuki Yamamoto
	      $echo
2299 4012ec30 Hiroyuki Yamamoto
	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2300 4012ec30 Hiroyuki Yamamoto
	      $echo "*** I have the capability to make that library automatically link in when"
2301 4012ec30 Hiroyuki Yamamoto
	      $echo "*** you link to this library.  But I can only do this if you have a"
2302 4012ec30 Hiroyuki Yamamoto
	      $echo "*** shared version of the library, which you do not appear to have"
2303 4012ec30 Hiroyuki Yamamoto
	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2304 4012ec30 Hiroyuki Yamamoto
	      $echo "*** that it is just a static archive that I should not used here."
2305 4012ec30 Hiroyuki Yamamoto
	    else
2306 4012ec30 Hiroyuki Yamamoto
	      $echo
2307 4012ec30 Hiroyuki Yamamoto
	      $echo "*** Warning: Linking the shared library $output against the"
2308 4012ec30 Hiroyuki Yamamoto
	      $echo "*** static library $deplib is not portable!"
2309 4012ec30 Hiroyuki Yamamoto
	      deplibs="$deplib $deplibs"
2310 4012ec30 Hiroyuki Yamamoto
	    fi
2311 4012ec30 Hiroyuki Yamamoto
	    continue
2312 4012ec30 Hiroyuki Yamamoto
	    ;;
2313 4012ec30 Hiroyuki Yamamoto
	  prog)
2314 4012ec30 Hiroyuki Yamamoto
	    if test "$pass" != link; then
2315 4012ec30 Hiroyuki Yamamoto
	      deplibs="$deplib $deplibs"
2316 4012ec30 Hiroyuki Yamamoto
	    else
2317 4012ec30 Hiroyuki Yamamoto
	      compile_deplibs="$deplib $compile_deplibs"
2318 4012ec30 Hiroyuki Yamamoto
	      finalize_deplibs="$deplib $finalize_deplibs"
2319 4012ec30 Hiroyuki Yamamoto
	    fi
2320 4012ec30 Hiroyuki Yamamoto
	    continue
2321 4012ec30 Hiroyuki Yamamoto
	    ;;
2322 4012ec30 Hiroyuki Yamamoto
	  esac # linkmode
2323 4012ec30 Hiroyuki Yamamoto
	  ;; # *.$libext
2324 4012ec30 Hiroyuki Yamamoto
	*.lo | *.$objext)
2325 4012ec30 Hiroyuki Yamamoto
	  if test "$pass" = conv; then
2326 4012ec30 Hiroyuki Yamamoto
	    deplibs="$deplib $deplibs"
2327 4012ec30 Hiroyuki Yamamoto
	  elif test "$linkmode" = prog; then
2328 4012ec30 Hiroyuki Yamamoto
	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2329 4012ec30 Hiroyuki Yamamoto
	      # If there is no dlopen support or we're linking statically,
2330 4012ec30 Hiroyuki Yamamoto
	      # we need to preload.
2331 4012ec30 Hiroyuki Yamamoto
	      newdlprefiles="$newdlprefiles $deplib"
2332 4012ec30 Hiroyuki Yamamoto
	      compile_deplibs="$deplib $compile_deplibs"
2333 4012ec30 Hiroyuki Yamamoto
	      finalize_deplibs="$deplib $finalize_deplibs"
2334 4012ec30 Hiroyuki Yamamoto
	    else
2335 4012ec30 Hiroyuki Yamamoto
	      newdlfiles="$newdlfiles $deplib"
2336 4012ec30 Hiroyuki Yamamoto
	    fi
2337 4012ec30 Hiroyuki Yamamoto
	  fi
2338 4012ec30 Hiroyuki Yamamoto
	  continue
2339 4012ec30 Hiroyuki Yamamoto
	  ;;
2340 4012ec30 Hiroyuki Yamamoto
	%DEPLIBS%)
2341 4012ec30 Hiroyuki Yamamoto
	  alldeplibs=yes
2342 4012ec30 Hiroyuki Yamamoto
	  continue
2343 4012ec30 Hiroyuki Yamamoto
	  ;;
2344 4012ec30 Hiroyuki Yamamoto
	esac # case $deplib
2345 4012ec30 Hiroyuki Yamamoto
	if test "$found" = yes || test -f "$lib"; then :
2346 4012ec30 Hiroyuki Yamamoto
	else
2347 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2348 4012ec30 Hiroyuki Yamamoto
	  exit $EXIT_FAILURE
2349 4012ec30 Hiroyuki Yamamoto
	fi
2350 4012ec30 Hiroyuki Yamamoto
2351 4012ec30 Hiroyuki Yamamoto
	# Check to see that this really is a libtool archive.
2352 4012ec30 Hiroyuki Yamamoto
	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2353 4012ec30 Hiroyuki Yamamoto
	else
2354 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2355 4012ec30 Hiroyuki Yamamoto
	  exit $EXIT_FAILURE
2356 4012ec30 Hiroyuki Yamamoto
	fi
2357 4012ec30 Hiroyuki Yamamoto
2358 4012ec30 Hiroyuki Yamamoto
	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2359 4012ec30 Hiroyuki Yamamoto
	test "X$ladir" = "X$lib" && ladir="."
2360 4012ec30 Hiroyuki Yamamoto
2361 4012ec30 Hiroyuki Yamamoto
	dlname=
2362 4012ec30 Hiroyuki Yamamoto
	dlopen=
2363 4012ec30 Hiroyuki Yamamoto
	dlpreopen=
2364 4012ec30 Hiroyuki Yamamoto
	libdir=
2365 4012ec30 Hiroyuki Yamamoto
	library_names=
2366 4012ec30 Hiroyuki Yamamoto
	old_library=
2367 4012ec30 Hiroyuki Yamamoto
	# If the library was installed with an old release of libtool,
2368 4012ec30 Hiroyuki Yamamoto
	# it will not redefine variables installed, or shouldnotlink
2369 4012ec30 Hiroyuki Yamamoto
	installed=yes
2370 4012ec30 Hiroyuki Yamamoto
	shouldnotlink=no
2371 4012ec30 Hiroyuki Yamamoto
	avoidtemprpath=
2372 4012ec30 Hiroyuki Yamamoto
2373 4012ec30 Hiroyuki Yamamoto
2374 4012ec30 Hiroyuki Yamamoto
	# Read the .la file
2375 4012ec30 Hiroyuki Yamamoto
	case $lib in
2376 4012ec30 Hiroyuki Yamamoto
	*/* | *\\*) . $lib ;;
2377 4012ec30 Hiroyuki Yamamoto
	*) . ./$lib ;;
2378 4012ec30 Hiroyuki Yamamoto
	esac
2379 4012ec30 Hiroyuki Yamamoto
2380 4012ec30 Hiroyuki Yamamoto
	if test "$linkmode,$pass" = "lib,link" ||
2381 4012ec30 Hiroyuki Yamamoto
	   test "$linkmode,$pass" = "prog,scan" ||
2382 4012ec30 Hiroyuki Yamamoto
	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2383 4012ec30 Hiroyuki Yamamoto
	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2384 4012ec30 Hiroyuki Yamamoto
	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2385 4012ec30 Hiroyuki Yamamoto
	fi
2386 4012ec30 Hiroyuki Yamamoto
2387 4012ec30 Hiroyuki Yamamoto
	if test "$pass" = conv; then
2388 4012ec30 Hiroyuki Yamamoto
	  # Only check for convenience libraries
2389 4012ec30 Hiroyuki Yamamoto
	  deplibs="$lib $deplibs"
2390 4012ec30 Hiroyuki Yamamoto
	  if test -z "$libdir"; then
2391 4012ec30 Hiroyuki Yamamoto
	    if test -z "$old_library"; then
2392 4012ec30 Hiroyuki Yamamoto
	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2393 4012ec30 Hiroyuki Yamamoto
	      exit $EXIT_FAILURE
2394 4012ec30 Hiroyuki Yamamoto
	    fi
2395 4012ec30 Hiroyuki Yamamoto
	    # It is a libtool convenience library, so add in its objects.
2396 4012ec30 Hiroyuki Yamamoto
	    convenience="$convenience $ladir/$objdir/$old_library"
2397 4012ec30 Hiroyuki Yamamoto
	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2398 4012ec30 Hiroyuki Yamamoto
	    tmp_libs=
2399 4012ec30 Hiroyuki Yamamoto
	    for deplib in $dependency_libs; do
2400 4012ec30 Hiroyuki Yamamoto
	      deplibs="$deplib $deplibs"
2401 4012ec30 Hiroyuki Yamamoto
              if test "X$duplicate_deps" = "Xyes" ; then
2402 4012ec30 Hiroyuki Yamamoto
	        case "$tmp_libs " in
2403 4012ec30 Hiroyuki Yamamoto
	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2404 4012ec30 Hiroyuki Yamamoto
	        esac
2405 4012ec30 Hiroyuki Yamamoto
              fi
2406 4012ec30 Hiroyuki Yamamoto
	      tmp_libs="$tmp_libs $deplib"
2407 4012ec30 Hiroyuki Yamamoto
	    done
2408 4012ec30 Hiroyuki Yamamoto
	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2409 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2410 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
2411 4012ec30 Hiroyuki Yamamoto
	  fi
2412 4012ec30 Hiroyuki Yamamoto
	  continue
2413 4012ec30 Hiroyuki Yamamoto
	fi # $pass = conv
2414 4012ec30 Hiroyuki Yamamoto
2415 4012ec30 Hiroyuki Yamamoto
2416 4012ec30 Hiroyuki Yamamoto
	# Get the name of the library we link against.
2417 4012ec30 Hiroyuki Yamamoto
	linklib=
2418 4012ec30 Hiroyuki Yamamoto
	for l in $old_library $library_names; do
2419 4012ec30 Hiroyuki Yamamoto
	  linklib="$l"
2420 4012ec30 Hiroyuki Yamamoto
	done
2421 4012ec30 Hiroyuki Yamamoto
	if test -z "$linklib"; then
2422 4012ec30 Hiroyuki Yamamoto
	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2423 4012ec30 Hiroyuki Yamamoto
	  exit $EXIT_FAILURE
2424 4012ec30 Hiroyuki Yamamoto
	fi
2425 4012ec30 Hiroyuki Yamamoto
2426 4012ec30 Hiroyuki Yamamoto
	# This library was specified with -dlopen.
2427 4012ec30 Hiroyuki Yamamoto
	if test "$pass" = dlopen; then
2428 4012ec30 Hiroyuki Yamamoto
	  if test -z "$libdir"; then
2429 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2430 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
2431 4012ec30 Hiroyuki Yamamoto
	  fi
2432 4012ec30 Hiroyuki Yamamoto
	  if test -z "$dlname" ||
2433 4012ec30 Hiroyuki Yamamoto
	     test "$dlopen_support" != yes ||
2434 4012ec30 Hiroyuki Yamamoto
	     test "$build_libtool_libs" = no; then
2435 4012ec30 Hiroyuki Yamamoto
	    # If there is no dlname, no dlopen support or we're linking
2436 4012ec30 Hiroyuki Yamamoto
	    # statically, we need to preload.  We also need to preload any
2437 4012ec30 Hiroyuki Yamamoto
	    # dependent libraries so libltdl's deplib preloader doesn't
2438 4012ec30 Hiroyuki Yamamoto
	    # bomb out in the load deplibs phase.
2439 4012ec30 Hiroyuki Yamamoto
	    dlprefiles="$dlprefiles $lib $dependency_libs"
2440 4012ec30 Hiroyuki Yamamoto
	  else
2441 4012ec30 Hiroyuki Yamamoto
	    newdlfiles="$newdlfiles $lib"
2442 4012ec30 Hiroyuki Yamamoto
	  fi
2443 4012ec30 Hiroyuki Yamamoto
	  continue
2444 4012ec30 Hiroyuki Yamamoto
	fi # $pass = dlopen
2445 4012ec30 Hiroyuki Yamamoto
2446 4012ec30 Hiroyuki Yamamoto
	# We need an absolute path.
2447 4012ec30 Hiroyuki Yamamoto
	case $ladir in
2448 4012ec30 Hiroyuki Yamamoto
	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2449 4012ec30 Hiroyuki Yamamoto
	*)
2450 4012ec30 Hiroyuki Yamamoto
	  abs_ladir=`cd "$ladir" && pwd`
2451 4012ec30 Hiroyuki Yamamoto
	  if test -z "$abs_ladir"; then
2452 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2453 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2454 4012ec30 Hiroyuki Yamamoto
	    abs_ladir="$ladir"
2455 4012ec30 Hiroyuki Yamamoto
	  fi
2456 4012ec30 Hiroyuki Yamamoto
	  ;;
2457 4012ec30 Hiroyuki Yamamoto
	esac
2458 4012ec30 Hiroyuki Yamamoto
	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2459 4012ec30 Hiroyuki Yamamoto
2460 4012ec30 Hiroyuki Yamamoto
	# Find the relevant object directory and library name.
2461 4012ec30 Hiroyuki Yamamoto
	if test "X$installed" = Xyes; then
2462 4012ec30 Hiroyuki Yamamoto
	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2463 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2464 4012ec30 Hiroyuki Yamamoto
	    dir="$ladir"
2465 4012ec30 Hiroyuki Yamamoto
	    absdir="$abs_ladir"
2466 4012ec30 Hiroyuki Yamamoto
	    libdir="$abs_ladir"
2467 4012ec30 Hiroyuki Yamamoto
	  else
2468 4012ec30 Hiroyuki Yamamoto
	    dir="$libdir"
2469 4012ec30 Hiroyuki Yamamoto
	    absdir="$libdir"
2470 4012ec30 Hiroyuki Yamamoto
	  fi
2471 4012ec30 Hiroyuki Yamamoto
	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2472 4012ec30 Hiroyuki Yamamoto
	else
2473 4012ec30 Hiroyuki Yamamoto
	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2474 4012ec30 Hiroyuki Yamamoto
	    dir="$ladir"
2475 4012ec30 Hiroyuki Yamamoto
	    absdir="$abs_ladir"
2476 4012ec30 Hiroyuki Yamamoto
	    # Remove this search path later
2477 4012ec30 Hiroyuki Yamamoto
	    notinst_path="$notinst_path $abs_ladir"
2478 4012ec30 Hiroyuki Yamamoto
	  else
2479 4012ec30 Hiroyuki Yamamoto
	    dir="$ladir/$objdir"
2480 4012ec30 Hiroyuki Yamamoto
	    absdir="$abs_ladir/$objdir"
2481 4012ec30 Hiroyuki Yamamoto
	    # Remove this search path later
2482 4012ec30 Hiroyuki Yamamoto
	    notinst_path="$notinst_path $abs_ladir"
2483 4012ec30 Hiroyuki Yamamoto
	  fi
2484 4012ec30 Hiroyuki Yamamoto
	fi # $installed = yes
2485 4012ec30 Hiroyuki Yamamoto
	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2486 4012ec30 Hiroyuki Yamamoto
2487 4012ec30 Hiroyuki Yamamoto
	# This library was specified with -dlpreopen.
2488 4012ec30 Hiroyuki Yamamoto
	if test "$pass" = dlpreopen; then
2489 4012ec30 Hiroyuki Yamamoto
	  if test -z "$libdir"; then
2490 4012ec30 Hiroyuki Yamamoto
	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2491 4012ec30 Hiroyuki Yamamoto
	    exit $EXIT_FAILURE
2492 4012ec30 Hiroyuki Yamamoto
	  fi