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