ltmain.sh
author Sam Lantinga <slouken@lokigames.com>
Thu, 26 Apr 2001 16:45:43 +0000
changeset 0 74212992fb08
child 1 cf2af46e9e2a
permissions -rw-r--r--
Initial revision
     1 # ltmain.sh - Provide generalized library-building support services.
     2 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
     3 #
     4 # Copyright (C) 1996-1999 Free Software Foundation, Inc.
     5 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
     6 #
     7 # This program is free software; you can redistribute it and/or modify
     8 # it under the terms of the GNU General Public License as published by
     9 # the Free Software Foundation; either version 2 of the License, or
    10 # (at your option) any later version.
    11 #
    12 # This program is distributed in the hope that it will be useful, but
    13 # WITHOUT ANY WARRANTY; without even the implied warranty of
    14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    15 # General Public License for more details.
    16 #
    17 # You should have received a copy of the GNU General Public License
    18 # along with this program; if not, write to the Free Software
    19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    20 #
    21 # As a special exception to the GNU General Public License, if you
    22 # distribute this file as part of a program that contains a
    23 # configuration script generated by Autoconf, you may include it under
    24 # the same distribution terms that you use for the rest of that program.
    25 
    26 # Check that we have a working $echo.
    27 if test "X$1" = X--no-reexec; then
    28   # Discard the --no-reexec flag, and continue.
    29   shift
    30 elif test "X$1" = X--fallback-echo; then
    31   # Avoid inline document here, it may be left over
    32   :
    33 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
    34   # Yippee, $echo works!
    35   :
    36 else
    37   # Restart under the correct shell, and then maybe $echo will work.
    38   exec $SHELL "$0" --no-reexec ${1+"$@"}
    39 fi
    40 
    41 if test "X$1" = X--fallback-echo; then
    42   # used as fallback echo
    43   shift
    44   cat <<EOF
    45 $*
    46 EOF
    47   exit 0
    48 fi
    49 
    50 # The name of this program.
    51 progname=`$echo "$0" | sed 's%^.*/%%'`
    52 modename="$progname"
    53 
    54 # Constants.
    55 PROGRAM=ltmain.sh
    56 PACKAGE=libtool
    57 VERSION=1.3.5
    58 TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
    59 
    60 default_mode=
    61 help="Try \`$progname --help' for more information."
    62 magic="%%%MAGIC variable%%%"
    63 mkdir="mkdir"
    64 mv="mv -f"
    65 rm="rm -f"
    66 
    67 # Sed substitution that helps us do robust quoting.  It backslashifies
    68 # metacharacters that are still active within double-quoted strings.
    69 Xsed='sed -e 1s/^X//'
    70 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
    71 SP2NL='tr \040 \012'
    72 NL2SP='tr \015\012 \040\040'
    73 
    74 # NLS nuisances.
    75 # Only set LANG and LC_ALL to C if already set.
    76 # These must not be set unconditionally because not all systems understand
    77 # e.g. LANG=C (notably SCO).
    78 # We save the old values to restore during execute mode.
    79 if test "${LC_ALL+set}" = set; then
    80   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
    81 fi
    82 if test "${LANG+set}" = set; then
    83   save_LANG="$LANG"; LANG=C; export LANG
    84 fi
    85 
    86 if test "$LTCONFIG_VERSION" != "$VERSION"; then
    87   echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
    88   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
    89   exit 1
    90 fi
    91 
    92 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
    93   echo "$modename: not configured to build any kind of library" 1>&2
    94   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
    95   exit 1
    96 fi
    97 
    98 # Global variables.
    99 mode=$default_mode
   100 nonopt=
   101 prev=
   102 prevopt=
   103 run=
   104 show="$echo"
   105 show_help=
   106 execute_dlfiles=
   107 lo2o="s/\\.lo\$/.${objext}/"
   108 o2lo="s/\\.${objext}\$/.lo/"
   109 
   110 # Parse our command line options once, thoroughly.
   111 while test $# -gt 0
   112 do
   113   arg="$1"
   114   shift
   115 
   116   case "$arg" in
   117   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
   118   *) optarg= ;;
   119   esac
   120 
   121   # If the previous option needs an argument, assign it.
   122   if test -n "$prev"; then
   123     case "$prev" in
   124     execute_dlfiles)
   125       eval "$prev=\"\$$prev \$arg\""
   126       ;;
   127     *)
   128       eval "$prev=\$arg"
   129       ;;
   130     esac
   131 
   132     prev=
   133     prevopt=
   134     continue
   135   fi
   136 
   137   # Have we seen a non-optional argument yet?
   138   case "$arg" in
   139   --help)
   140     show_help=yes
   141     ;;
   142 
   143   --version)
   144     echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
   145     exit 0
   146     ;;
   147 
   148   --config)
   149     sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
   150     exit 0
   151     ;;
   152 
   153   --debug)
   154     echo "$progname: enabling shell trace mode"
   155     set -x
   156     ;;
   157 
   158   --dry-run | -n)
   159     run=:
   160     ;;
   161 
   162   --features)
   163     echo "host: $host"
   164     if test "$build_libtool_libs" = yes; then
   165       echo "enable shared libraries"
   166     else
   167       echo "disable shared libraries"
   168     fi
   169     if test "$build_old_libs" = yes; then
   170       echo "enable static libraries"
   171     else
   172       echo "disable static libraries"
   173     fi
   174     exit 0
   175     ;;
   176 
   177   --finish) mode="finish" ;;
   178 
   179   --mode) prevopt="--mode" prev=mode ;;
   180   --mode=*) mode="$optarg" ;;
   181 
   182   --quiet | --silent)
   183     show=:
   184     ;;
   185 
   186   -dlopen)
   187     prevopt="-dlopen"
   188     prev=execute_dlfiles
   189     ;;
   190 
   191   -*)
   192     $echo "$modename: unrecognized option \`$arg'" 1>&2
   193     $echo "$help" 1>&2
   194     exit 1
   195     ;;
   196 
   197   *)
   198     nonopt="$arg"
   199     break
   200     ;;
   201   esac
   202 done
   203 
   204 if test -n "$prevopt"; then
   205   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
   206   $echo "$help" 1>&2
   207   exit 1
   208 fi
   209 
   210 if test -z "$show_help"; then
   211 
   212   # Infer the operation mode.
   213   if test -z "$mode"; then
   214     case "$nonopt" in
   215     *cc | *++ | gcc* | *-gcc*)
   216       mode=link
   217       for arg
   218       do
   219 	case "$arg" in
   220 	-c)
   221 	   mode=compile
   222 	   break
   223 	   ;;
   224 	esac
   225       done
   226       ;;
   227     *db | *dbx | *strace | *truss)
   228       mode=execute
   229       ;;
   230     *install*|cp|mv)
   231       mode=install
   232       ;;
   233     *rm)
   234       mode=uninstall
   235       ;;
   236     *)
   237       # If we have no mode, but dlfiles were specified, then do execute mode.
   238       test -n "$execute_dlfiles" && mode=execute
   239 
   240       # Just use the default operation mode.
   241       if test -z "$mode"; then
   242 	if test -n "$nonopt"; then
   243 	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
   244 	else
   245 	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
   246 	fi
   247       fi
   248       ;;
   249     esac
   250   fi
   251 
   252   # Only execute mode is allowed to have -dlopen flags.
   253   if test -n "$execute_dlfiles" && test "$mode" != execute; then
   254     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
   255     $echo "$help" 1>&2
   256     exit 1
   257   fi
   258 
   259   # Change the help message to a mode-specific one.
   260   generic_help="$help"
   261   help="Try \`$modename --help --mode=$mode' for more information."
   262 
   263   # These modes are in order of execution frequency so that they run quickly.
   264   case "$mode" in
   265   # libtool compile mode
   266   compile)
   267     modename="$modename: compile"
   268     # Get the compilation command and the source file.
   269     base_compile=
   270     lastarg=
   271     srcfile="$nonopt"
   272     suppress_output=
   273 
   274     user_target=no
   275     for arg
   276     do
   277       # Accept any command-line options.
   278       case "$arg" in
   279       -o)
   280 	if test "$user_target" != "no"; then
   281 	  $echo "$modename: you cannot specify \`-o' more than once" 1>&2
   282 	  exit 1
   283 	fi
   284 	user_target=next
   285 	;;
   286 
   287       -static)
   288 	build_old_libs=yes
   289 	continue
   290 	;;
   291       esac
   292 
   293       case "$user_target" in
   294       next)
   295 	# The next one is the -o target name
   296 	user_target=yes
   297 	continue
   298 	;;
   299       yes)
   300 	# We got the output file
   301 	user_target=set
   302 	libobj="$arg"
   303 	continue
   304 	;;
   305       esac
   306 
   307       # Accept the current argument as the source file.
   308       lastarg="$srcfile"
   309       srcfile="$arg"
   310 
   311       # Aesthetically quote the previous argument.
   312 
   313       # Backslashify any backslashes, double quotes, and dollar signs.
   314       # These are the only characters that are still specially
   315       # interpreted inside of double-quoted scrings.
   316       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
   317 
   318       # Double-quote args containing other shell metacharacters.
   319       # Many Bourne shells cannot handle close brackets correctly in scan
   320       # sets, so we specify it separately.
   321       case "$lastarg" in
   322       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
   323 	lastarg="\"$lastarg\""
   324 	;;
   325       esac
   326 
   327       # Add the previous argument to base_compile.
   328       if test -z "$base_compile"; then
   329 	base_compile="$lastarg"
   330       else
   331 	base_compile="$base_compile $lastarg"
   332       fi
   333     done
   334 
   335     case "$user_target" in
   336     set)
   337       ;;
   338     no)
   339       # Get the name of the library object.
   340       libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
   341       ;;
   342     *)
   343       $echo "$modename: you must specify a target with \`-o'" 1>&2
   344       exit 1
   345       ;;
   346     esac
   347 
   348     # Recognize several different file suffixes.
   349     # If the user specifies -o file.o, it is replaced with file.lo
   350     xform='[cCFSfmso]'
   351     case "$libobj" in
   352     *.ada) xform=ada ;;
   353     *.adb) xform=adb ;;
   354     *.ads) xform=ads ;;
   355     *.asm) xform=asm ;;
   356     *.c++) xform=c++ ;;
   357     *.cc) xform=cc ;;
   358     *.cpp) xform=cpp ;;
   359     *.cxx) xform=cxx ;;
   360     *.f90) xform=f90 ;;
   361     *.for) xform=for ;;
   362     esac
   363 
   364     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
   365 
   366     case "$libobj" in
   367     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
   368     *)
   369       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
   370       exit 1
   371       ;;
   372     esac
   373 
   374     if test -z "$base_compile"; then
   375       $echo "$modename: you must specify a compilation command" 1>&2
   376       $echo "$help" 1>&2
   377       exit 1
   378     fi
   379 
   380     # Delete any leftover library objects.
   381     if test "$build_old_libs" = yes; then
   382       removelist="$obj $libobj"
   383     else
   384       removelist="$libobj"
   385     fi
   386 
   387     $run $rm $removelist
   388     trap "$run $rm $removelist; exit 1" 1 2 15
   389 
   390     # Calculate the filename of the output object if compiler does
   391     # not support -o with -c
   392     if test "$compiler_c_o" = no; then
   393       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
   394       lockfile="$output_obj.lock"
   395       removelist="$removelist $output_obj $lockfile"
   396       trap "$run $rm $removelist; exit 1" 1 2 15
   397     else
   398       need_locks=no
   399       lockfile=
   400     fi
   401 
   402     # Lock this critical section if it is needed
   403     # We use this script file to make the link, it avoids creating a new file
   404     if test "$need_locks" = yes; then
   405       until ln "$0" "$lockfile" 2>/dev/null; do
   406 	$show "Waiting for $lockfile to be removed"
   407 	sleep 2
   408       done
   409     elif test "$need_locks" = warn; then
   410       if test -f "$lockfile"; then
   411 	echo "\
   412 *** ERROR, $lockfile exists and contains:
   413 `cat $lockfile 2>/dev/null`
   414 
   415 This indicates that another process is trying to use the same
   416 temporary object file, and libtool could not work around it because
   417 your compiler does not support \`-c' and \`-o' together.  If you
   418 repeat this compilation, it may succeed, by chance, but you had better
   419 avoid parallel builds (make -j) in this platform, or get a better
   420 compiler."
   421 
   422 	$run $rm $removelist
   423 	exit 1
   424       fi
   425       echo $srcfile > "$lockfile"
   426     fi
   427 
   428     if test -n "$fix_srcfile_path"; then
   429       eval srcfile=\"$fix_srcfile_path\"
   430     fi
   431 
   432     # Only build a PIC object if we are building libtool libraries.
   433     if test "$build_libtool_libs" = yes; then
   434       # Without this assignment, base_compile gets emptied.
   435       fbsd_hideous_sh_bug=$base_compile
   436 
   437       # All platforms use -DPIC, to notify preprocessed assembler code.
   438       command="$base_compile $srcfile $pic_flag -DPIC"
   439       if test "$build_old_libs" = yes; then
   440 	lo_libobj="$libobj"
   441 	dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
   442 	if test "X$dir" = "X$libobj"; then
   443 	  dir="$objdir"
   444 	else
   445 	  dir="$dir/$objdir"
   446 	fi
   447 	libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
   448 
   449 	if test -d "$dir"; then
   450 	  $show "$rm $libobj"
   451 	  $run $rm $libobj
   452 	else
   453 	  $show "$mkdir $dir"
   454 	  $run $mkdir $dir
   455 	  status=$?
   456 	  if test $status -ne 0 && test ! -d $dir; then
   457 	    exit $status
   458 	  fi
   459 	fi
   460       fi
   461       if test "$compiler_o_lo" = yes; then
   462 	output_obj="$libobj"
   463 	command="$command -o $output_obj"
   464       elif test "$compiler_c_o" = yes; then
   465 	output_obj="$obj"
   466 	command="$command -o $output_obj"
   467       fi
   468 
   469       $run $rm "$output_obj"
   470       $show "$command"
   471       if $run eval "$command"; then :
   472       else
   473 	test -n "$output_obj" && $run $rm $removelist
   474 	exit 1
   475       fi
   476 
   477       if test "$need_locks" = warn &&
   478 	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
   479 	echo "\
   480 *** ERROR, $lockfile contains:
   481 `cat $lockfile 2>/dev/null`
   482 
   483 but it should contain:
   484 $srcfile
   485 
   486 This indicates that another process is trying to use the same
   487 temporary object file, and libtool could not work around it because
   488 your compiler does not support \`-c' and \`-o' together.  If you
   489 repeat this compilation, it may succeed, by chance, but you had better
   490 avoid parallel builds (make -j) in this platform, or get a better
   491 compiler."
   492 
   493 	$run $rm $removelist
   494 	exit 1
   495       fi
   496 
   497       # Just move the object if needed, then go on to compile the next one
   498       if test x"$output_obj" != x"$libobj"; then
   499 	$show "$mv $output_obj $libobj"
   500 	if $run $mv $output_obj $libobj; then :
   501 	else
   502 	  error=$?
   503 	  $run $rm $removelist
   504 	  exit $error
   505 	fi
   506       fi
   507 
   508       # If we have no pic_flag, then copy the object into place and finish.
   509       if test -z "$pic_flag" && test "$build_old_libs" = yes; then
   510 	# Rename the .lo from within objdir to obj
   511 	if test -f $obj; then
   512 	  $show $rm $obj
   513 	  $run $rm $obj
   514 	fi
   515 
   516 	$show "$mv $libobj $obj"
   517 	if $run $mv $libobj $obj; then :
   518 	else
   519 	  error=$?
   520 	  $run $rm $removelist
   521 	  exit $error
   522 	fi
   523 
   524 	xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
   525 	if test "X$xdir" = "X$obj"; then
   526 	  xdir="."
   527 	else
   528 	  xdir="$xdir"
   529 	fi
   530 	baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
   531 	libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
   532 	# Now arrange that obj and lo_libobj become the same file
   533 	$show "(cd $xdir && $LN_S $baseobj $libobj)"
   534 	if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
   535 	  exit 0
   536 	else
   537 	  error=$?
   538 	  $run $rm $removelist
   539 	  exit $error
   540 	fi
   541       fi
   542 
   543       # Allow error messages only from the first compilation.
   544       suppress_output=' >/dev/null 2>&1'
   545     fi
   546 
   547     # Only build a position-dependent object if we build old libraries.
   548     if test "$build_old_libs" = yes; then
   549       command="$base_compile $srcfile"
   550       if test "$compiler_c_o" = yes; then
   551 	command="$command -o $obj"
   552 	output_obj="$obj"
   553       fi
   554 
   555       # Suppress compiler output if we already did a PIC compilation.
   556       command="$command$suppress_output"
   557       $run $rm "$output_obj"
   558       $show "$command"
   559       if $run eval "$command"; then :
   560       else
   561 	$run $rm $removelist
   562 	exit 1
   563       fi
   564 
   565       if test "$need_locks" = warn &&
   566 	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
   567 	echo "\
   568 *** ERROR, $lockfile contains:
   569 `cat $lockfile 2>/dev/null`
   570 
   571 but it should contain:
   572 $srcfile
   573 
   574 This indicates that another process is trying to use the same
   575 temporary object file, and libtool could not work around it because
   576 your compiler does not support \`-c' and \`-o' together.  If you
   577 repeat this compilation, it may succeed, by chance, but you had better
   578 avoid parallel builds (make -j) in this platform, or get a better
   579 compiler."
   580 
   581 	$run $rm $removelist
   582 	exit 1
   583       fi
   584 
   585       # Just move the object if needed
   586       if test x"$output_obj" != x"$obj"; then
   587 	$show "$mv $output_obj $obj"
   588 	if $run $mv $output_obj $obj; then :
   589 	else
   590 	  error=$?
   591 	  $run $rm $removelist
   592 	  exit $error
   593 	fi
   594       fi
   595 
   596       # Create an invalid libtool object if no PIC, so that we do not
   597       # accidentally link it into a program.
   598       if test "$build_libtool_libs" != yes; then
   599 	$show "echo timestamp > $libobj"
   600 	$run eval "echo timestamp > \$libobj" || exit $?
   601       else
   602 	# Move the .lo from within objdir
   603 	$show "$mv $libobj $lo_libobj"
   604 	if $run $mv $libobj $lo_libobj; then :
   605 	else
   606 	  error=$?
   607 	  $run $rm $removelist
   608 	  exit $error
   609 	fi
   610       fi
   611     fi
   612 
   613     # Unlock the critical section if it was locked
   614     if test "$need_locks" != no; then
   615       $rm "$lockfile"
   616     fi
   617 
   618     exit 0
   619     ;;
   620 
   621   # libtool link mode
   622   link)
   623     modename="$modename: link"
   624     case "$host" in
   625     *-*-cygwin* | *-*-mingw* | *-*-os2*)
   626       # It is impossible to link a dll without this setting, and
   627       # we shouldn't force the makefile maintainer to figure out
   628       # which system we are compiling for in order to pass an extra
   629       # flag for every libtool invokation.
   630       # allow_undefined=no
   631 
   632       # FIXME: Unfortunately, there are problems with the above when trying
   633       # to make a dll which has undefined symbols, in which case not
   634       # even a static library is built.  For now, we need to specify
   635       # -no-undefined on the libtool link line when we can be certain
   636       # that all symbols are satisfied, otherwise we get a static library.
   637       allow_undefined=yes
   638 
   639       # This is a source program that is used to create dlls on Windows
   640       # Don't remove nor modify the starting and closing comments
   641 # /* ltdll.c starts here */
   642 # #define WIN32_LEAN_AND_MEAN
   643 # #include <windows.h>
   644 # #undef WIN32_LEAN_AND_MEAN
   645 # #include <stdio.h>
   646 #
   647 # #ifndef __CYGWIN__
   648 # #  ifdef __CYGWIN32__
   649 # #    define __CYGWIN__ __CYGWIN32__
   650 # #  endif
   651 # #endif
   652 #
   653 # #ifdef __cplusplus
   654 # extern "C" {
   655 # #endif
   656 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
   657 # #ifdef __cplusplus
   658 # }
   659 # #endif
   660 #
   661 # #ifdef __CYGWIN__
   662 # #include <cygwin/cygwin_dll.h>
   663 # DECLARE_CYGWIN_DLL( DllMain );
   664 # #endif
   665 # HINSTANCE __hDllInstance_base;
   666 #
   667 # BOOL APIENTRY
   668 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
   669 # {
   670 #   __hDllInstance_base = hInst;
   671 #   return TRUE;
   672 # }
   673 # /* ltdll.c ends here */
   674       # This is a source program that is used to create import libraries
   675       # on Windows for dlls which lack them. Don't remove nor modify the
   676       # starting and closing comments
   677 # /* impgen.c starts here */
   678 # /*   Copyright (C) 1999 Free Software Foundation, Inc.
   679 # 
   680 #  This file is part of GNU libtool.
   681 # 
   682 #  This program is free software; you can redistribute it and/or modify
   683 #  it under the terms of the GNU General Public License as published by
   684 #  the Free Software Foundation; either version 2 of the License, or
   685 #  (at your option) any later version.
   686 # 
   687 #  This program is distributed in the hope that it will be useful,
   688 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
   689 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   690 #  GNU General Public License for more details.
   691 # 
   692 #  You should have received a copy of the GNU General Public License
   693 #  along with this program; if not, write to the Free Software
   694 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
   695 #  */
   696 # 
   697 #  #include <stdio.h>		/* for printf() */
   698 #  #include <unistd.h>		/* for open(), lseek(), read() */
   699 #  #include <fcntl.h>		/* for O_RDONLY, O_BINARY */
   700 #  #include <string.h>		/* for strdup() */
   701 # 
   702 #  static unsigned int
   703 #  pe_get16 (fd, offset)
   704 #       int fd;
   705 #       int offset;
   706 #  {
   707 #    unsigned char b[2];
   708 #    lseek (fd, offset, SEEK_SET);
   709 #    read (fd, b, 2);
   710 #    return b[0] + (b[1]<<8);
   711 #  }
   712 # 
   713 #  static unsigned int
   714 #  pe_get32 (fd, offset)
   715 #      int fd;
   716 #      int offset;
   717 #  {
   718 #    unsigned char b[4];
   719 #    lseek (fd, offset, SEEK_SET);
   720 #    read (fd, b, 4);
   721 #    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
   722 #  }
   723 # 
   724 #  static unsigned int
   725 #  pe_as32 (ptr)
   726 #       void *ptr;
   727 #  {
   728 #    unsigned char *b = ptr;
   729 #    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
   730 #  }
   731 # 
   732 #  int
   733 #  main (argc, argv)
   734 #      int argc;
   735 #      char *argv[];
   736 #  {
   737 #      int dll;
   738 #      unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
   739 #      unsigned long export_rva, export_size, nsections, secptr, expptr;
   740 #      unsigned long name_rvas, nexp;
   741 #      unsigned char *expdata, *erva;
   742 #      char *filename, *dll_name;
   743 # 
   744 #      filename = argv[1];
   745 # 
   746 #      dll = open(filename, O_RDONLY|O_BINARY);
   747 #      if (!dll)
   748 #  	return 1;
   749 # 
   750 #      dll_name = filename;
   751 #    
   752 #      for (i=0; filename[i]; i++)
   753 #  	if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
   754 #  	    dll_name = filename + i +1;
   755 # 
   756 #      pe_header_offset = pe_get32 (dll, 0x3c);
   757 #      opthdr_ofs = pe_header_offset + 4 + 20;
   758 #      num_entries = pe_get32 (dll, opthdr_ofs + 92);
   759 # 
   760 #      if (num_entries < 1) /* no exports */
   761 #  	return 1;
   762 # 
   763 #      export_rva = pe_get32 (dll, opthdr_ofs + 96);
   764 #      export_size = pe_get32 (dll, opthdr_ofs + 100);
   765 #      nsections = pe_get16 (dll, pe_header_offset + 4 +2);
   766 #      secptr = (pe_header_offset + 4 + 20 +
   767 #  	      pe_get16 (dll, pe_header_offset + 4 + 16));
   768 # 
   769 #      expptr = 0;
   770 #      for (i = 0; i < nsections; i++)
   771 #      {
   772 #  	char sname[8];
   773 #  	unsigned long secptr1 = secptr + 40 * i;
   774 #  	unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
   775 #  	unsigned long vsize = pe_get32 (dll, secptr1 + 16);
   776 #  	unsigned long fptr = pe_get32 (dll, secptr1 + 20);
   777 #  	lseek(dll, secptr1, SEEK_SET);
   778 #  	read(dll, sname, 8);
   779 #  	if (vaddr <= export_rva && vaddr+vsize > export_rva)
   780 #  	{
   781 #  	    expptr = fptr + (export_rva - vaddr);
   782 #  	    if (export_rva + export_size > vaddr + vsize)
   783 #  		export_size = vsize - (export_rva - vaddr);
   784 #  	    break;
   785 #  	}
   786 #      }
   787 # 
   788 #      expdata = (unsigned char*)malloc(export_size);
   789 #      lseek (dll, expptr, SEEK_SET);
   790 #      read (dll, expdata, export_size);
   791 #      erva = expdata - export_rva;
   792 # 
   793 #      nexp = pe_as32 (expdata+24);
   794 #      name_rvas = pe_as32 (expdata+32);
   795 # 
   796 #      printf ("EXPORTS\n");
   797 #      for (i = 0; i<nexp; i++)
   798 #      {
   799 #  	unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
   800 #  	printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
   801 #      }
   802 # 
   803 #      return 0;
   804 #  }
   805 # /* impgen.c ends here */
   806       ;;
   807     *)
   808       allow_undefined=yes
   809       ;;
   810     esac
   811     compile_command="$nonopt"
   812     finalize_command="$nonopt"
   813 
   814     compile_rpath=
   815     finalize_rpath=
   816     compile_shlibpath=
   817     finalize_shlibpath=
   818     convenience=
   819     old_convenience=
   820     deplibs=
   821     linkopts=
   822 
   823     if test -n "$shlibpath_var"; then
   824       # get the directories listed in $shlibpath_var
   825       eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
   826     else
   827       lib_search_path=
   828     fi
   829     # now prepend the system-specific ones
   830     eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
   831     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
   832     
   833     avoid_version=no
   834     dlfiles=
   835     dlprefiles=
   836     dlself=no
   837     export_dynamic=no
   838     export_symbols=
   839     export_symbols_regex=
   840     generated=
   841     libobjs=
   842     link_against_libtool_libs=
   843     ltlibs=
   844     module=no
   845     objs=
   846     prefer_static_libs=no
   847     preload=no
   848     prev=
   849     prevarg=
   850     release=
   851     rpath=
   852     xrpath=
   853     perm_rpath=
   854     temp_rpath=
   855     thread_safe=no
   856     vinfo=
   857 
   858     # We need to know -static, to get the right output filenames.
   859     for arg
   860     do
   861       case "$arg" in
   862       -all-static | -static)
   863 	if test "X$arg" = "X-all-static"; then
   864 	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
   865 	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
   866 	  fi
   867 	  if test -n "$link_static_flag"; then
   868 	    dlopen_self=$dlopen_self_static
   869 	  fi
   870 	else
   871 	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
   872 	    dlopen_self=$dlopen_self_static
   873 	  fi
   874 	fi
   875 	build_libtool_libs=no
   876 	build_old_libs=yes
   877 	prefer_static_libs=yes
   878 	break
   879 	;;
   880       esac
   881     done
   882 
   883     # See if our shared archives depend on static archives.
   884     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
   885 
   886     # Go through the arguments, transforming them on the way.
   887     while test $# -gt 0; do
   888       arg="$1"
   889       shift
   890 
   891       # If the previous option needs an argument, assign it.
   892       if test -n "$prev"; then
   893 	case "$prev" in
   894 	output)
   895 	  compile_command="$compile_command @OUTPUT@"
   896 	  finalize_command="$finalize_command @OUTPUT@"
   897 	  ;;
   898 	esac
   899 
   900 	case "$prev" in
   901 	dlfiles|dlprefiles)
   902 	  if test "$preload" = no; then
   903 	    # Add the symbol object into the linking commands.
   904 	    compile_command="$compile_command @SYMFILE@"
   905 	    finalize_command="$finalize_command @SYMFILE@"
   906 	    preload=yes
   907 	  fi
   908 	  case "$arg" in
   909 	  *.la | *.lo) ;;  # We handle these cases below.
   910 	  force)
   911 	    if test "$dlself" = no; then
   912 	      dlself=needless
   913 	      export_dynamic=yes
   914 	    fi
   915 	    prev=
   916 	    continue
   917 	    ;;
   918 	  self)
   919 	    if test "$prev" = dlprefiles; then
   920 	      dlself=yes
   921 	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
   922 	      dlself=yes
   923 	    else
   924 	      dlself=needless
   925 	      export_dynamic=yes
   926 	    fi
   927 	    prev=
   928 	    continue
   929 	    ;;
   930 	  *)
   931 	    if test "$prev" = dlfiles; then
   932 	      dlfiles="$dlfiles $arg"
   933 	    else
   934 	      dlprefiles="$dlprefiles $arg"
   935 	    fi
   936 	    prev=
   937 	    ;;
   938 	  esac
   939 	  ;;
   940 	expsyms)
   941 	  export_symbols="$arg"
   942 	  if test ! -f "$arg"; then
   943 	    $echo "$modename: symbol file \`$arg' does not exist"
   944 	    exit 1
   945 	  fi
   946 	  prev=
   947 	  continue
   948 	  ;;
   949 	expsyms_regex)
   950 	  export_symbols_regex="$arg"
   951 	  prev=
   952 	  continue
   953 	  ;;
   954 	release)
   955 	  release="-$arg"
   956 	  prev=
   957 	  continue
   958 	  ;;
   959 	rpath | xrpath)
   960 	  # We need an absolute path.
   961 	  case "$arg" in
   962 	  [\\/]* | [A-Za-z]:[\\/]*) ;;
   963 	  *)
   964 	    $echo "$modename: only absolute run-paths are allowed" 1>&2
   965 	    exit 1
   966 	    ;;
   967 	  esac
   968 	  if test "$prev" = rpath; then
   969 	    case "$rpath " in
   970 	    *" $arg "*) ;;
   971 	    *) rpath="$rpath $arg" ;;
   972 	    esac
   973 	  else
   974 	    case "$xrpath " in
   975 	    *" $arg "*) ;;
   976 	    *) xrpath="$xrpath $arg" ;;
   977 	    esac
   978 	  fi
   979 	  prev=
   980 	  continue
   981 	  ;;
   982 	*)
   983 	  eval "$prev=\"\$arg\""
   984 	  prev=
   985 	  continue
   986 	  ;;
   987 	esac
   988       fi
   989 
   990       prevarg="$arg"
   991 
   992       case "$arg" in
   993       -all-static)
   994 	if test -n "$link_static_flag"; then
   995 	  compile_command="$compile_command $link_static_flag"
   996 	  finalize_command="$finalize_command $link_static_flag"
   997 	fi
   998 	continue
   999 	;;
  1000 
  1001       -allow-undefined)
  1002 	# FIXME: remove this flag sometime in the future.
  1003 	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
  1004 	continue
  1005 	;;
  1006 
  1007       -avoid-version)
  1008 	avoid_version=yes
  1009 	continue
  1010 	;;
  1011 
  1012       -dlopen)
  1013 	prev=dlfiles
  1014 	continue
  1015 	;;
  1016 
  1017       -dlpreopen)
  1018 	prev=dlprefiles
  1019 	continue
  1020 	;;
  1021 
  1022       -export-dynamic)
  1023 	export_dynamic=yes
  1024 	continue
  1025 	;;
  1026 
  1027       -export-symbols | -export-symbols-regex)
  1028 	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
  1029 	  $echo "$modename: not more than one -exported-symbols argument allowed"
  1030 	  exit 1
  1031 	fi
  1032 	if test "X$arg" = "X-export-symbols"; then
  1033 	  prev=expsyms
  1034 	else
  1035 	  prev=expsyms_regex
  1036 	fi
  1037 	continue
  1038 	;;
  1039 
  1040       -L*)
  1041 	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
  1042 	# We need an absolute path.
  1043 	case "$dir" in
  1044 	[\\/]* | [A-Za-z]:[\\/]*) ;;
  1045 	*)
  1046 	  absdir=`cd "$dir" && pwd`
  1047 	  if test -z "$absdir"; then
  1048 	    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
  1049 	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
  1050 	    absdir="$dir"
  1051 	  fi
  1052 	  dir="$absdir"
  1053 	  ;;
  1054 	esac
  1055 	case " $deplibs " in
  1056 	*" $arg "*) ;;
  1057 	*) deplibs="$deplibs $arg";;
  1058 	esac
  1059 	case " $lib_search_path " in
  1060 	*" $dir "*) ;;
  1061 	*) lib_search_path="$lib_search_path $dir";;
  1062 	esac
  1063 	case "$host" in
  1064 	*-*-cygwin* | *-*-mingw* | *-*-os2*)
  1065 	  dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
  1066 	  case ":$dllsearchpath:" in
  1067 	  ::) dllsearchpath="$dllsearchdir";;
  1068 	  *":$dllsearchdir:"*) ;;
  1069 	  *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
  1070 	  esac
  1071 	  ;;
  1072 	esac
  1073 	;;
  1074 
  1075       -l*)
  1076 	if test "$arg" = "-lc"; then
  1077 	  case "$host" in
  1078 	  *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* |*-*-freebsd* )
  1079 	    # These systems don't actually have c library (as such)
  1080 	    continue
  1081 	    ;;
  1082 	  esac
  1083 	elif test "$arg" = "-lm"; then
  1084 	  case "$host" in
  1085 	  *-*-cygwin* | *-*-beos*)
  1086 	    # These systems don't actually have math library (as such)
  1087 	    continue
  1088 	    ;;
  1089 	  esac
  1090 	fi
  1091 	deplibs="$deplibs $arg"
  1092 	;;
  1093 
  1094       -module)
  1095 	module=yes
  1096 	continue
  1097 	;;
  1098 
  1099       -no-undefined)
  1100 	allow_undefined=no
  1101 	continue
  1102 	;;
  1103 
  1104       -o) prev=output ;;
  1105 
  1106       -release)
  1107 	prev=release
  1108 	continue
  1109 	;;
  1110 
  1111       -rpath)
  1112 	prev=rpath
  1113 	continue
  1114 	;;
  1115 
  1116       -R)
  1117 	prev=xrpath
  1118 	continue
  1119 	;;
  1120 
  1121       -R*)
  1122 	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
  1123 	# We need an absolute path.
  1124 	case "$dir" in
  1125 	[\\/]* | [A-Za-z]:[\\/]*) ;;
  1126 	*)
  1127 	  $echo "$modename: only absolute run-paths are allowed" 1>&2
  1128 	  exit 1
  1129 	  ;;
  1130 	esac
  1131 	case "$xrpath " in
  1132 	*" $dir "*) ;;
  1133 	*) xrpath="$xrpath $dir" ;;
  1134 	esac
  1135 	continue
  1136 	;;
  1137 
  1138       -static)
  1139 	# If we have no pic_flag, then this is the same as -all-static.
  1140 	if test -z "$pic_flag" && test -n "$link_static_flag"; then
  1141 	  compile_command="$compile_command $link_static_flag"
  1142 	  finalize_command="$finalize_command $link_static_flag"
  1143 	fi
  1144 	continue
  1145 	;;
  1146 
  1147       -thread-safe)
  1148 	thread_safe=yes
  1149 	continue
  1150 	;;
  1151 
  1152       -version-info)
  1153 	prev=vinfo
  1154 	continue
  1155 	;;
  1156 
  1157       # Some other compiler flag.
  1158       -* | +*)
  1159 	# Unknown arguments in both finalize_command and compile_command need
  1160 	# to be aesthetically quoted because they are evaled later.
  1161 	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  1162 	case "$arg" in
  1163 	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
  1164 	  arg="\"$arg\""
  1165 	  ;;
  1166 	esac
  1167 	;;
  1168 
  1169       *.o | *.obj | *.a | *.lib)
  1170 	# A standard object.
  1171 	objs="$objs $arg"
  1172 	;;
  1173 
  1174       *.lo)
  1175 	# A library object.
  1176 	if test "$prev" = dlfiles; then
  1177 	  dlfiles="$dlfiles $arg"
  1178 	  if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
  1179 	    prev=
  1180 	    continue
  1181 	  else
  1182 	    # If libtool objects are unsupported, then we need to preload.
  1183 	    prev=dlprefiles
  1184 	  fi
  1185 	fi
  1186 
  1187 	if test "$prev" = dlprefiles; then
  1188 	  # Preload the old-style object.
  1189 	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
  1190 	  prev=
  1191 	fi
  1192 	libobjs="$libobjs $arg"
  1193 	;;
  1194 
  1195       *.la)
  1196 	# A libtool-controlled library.
  1197 
  1198 	dlname=
  1199 	libdir=
  1200 	library_names=
  1201 	old_library=
  1202 
  1203 	# Check to see that this really is a libtool archive.
  1204 	if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  1205 	else
  1206 	  $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
  1207 	  exit 1
  1208 	fi
  1209 
  1210 	# If the library was installed with an old release of libtool,
  1211 	# it will not redefine variable installed.
  1212 	installed=yes
  1213 
  1214 	# Read the .la file
  1215 	# If there is no directory component, then add one.
  1216 	case "$arg" in
  1217 	*/* | *\\*) . $arg ;;
  1218 	*) . ./$arg ;;
  1219 	esac
  1220 
  1221 	# Get the name of the library we link against.
  1222 	linklib=
  1223 	for l in $old_library $library_names; do
  1224 	  linklib="$l"
  1225 	done
  1226 
  1227 	if test -z "$linklib"; then
  1228 	  $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
  1229 	  exit 1
  1230 	fi
  1231 
  1232 	# Find the relevant object directory and library name.
  1233 	name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
  1234 
  1235 	if test "X$installed" = Xyes; then
  1236 	  dir="$libdir"
  1237 	else
  1238 	  dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
  1239 	  if test "X$dir" = "X$arg"; then
  1240 	    dir="$objdir"
  1241 	  else
  1242 	    dir="$dir/$objdir"
  1243 	  fi
  1244 	fi
  1245 
  1246 	if test -n "$dependency_libs"; then
  1247 	  # Extract -R and -L from dependency_libs
  1248 	  temp_deplibs=
  1249 	  for deplib in $dependency_libs; do
  1250 	    case "$deplib" in
  1251 	    -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
  1252 		 case " $rpath $xrpath " in
  1253 		 *" $temp_xrpath "*) ;;
  1254 		 *) xrpath="$xrpath $temp_xrpath";;
  1255 		 esac;;
  1256 	    -L*) case "$compile_command $temp_deplibs " in
  1257 		 *" $deplib "*) ;;
  1258 		 *) temp_deplibs="$temp_deplibs $deplib";;
  1259 		 esac
  1260 		 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
  1261 		 case " $lib_search_path " in
  1262 		 *" $temp_dir "*) ;;
  1263 		 *) lib_search_path="$lib_search_path $temp_dir";;
  1264 		 esac
  1265 		 ;;
  1266 	    *) temp_deplibs="$temp_deplibs $deplib";;
  1267 	    esac
  1268 	  done
  1269 	  dependency_libs="$temp_deplibs"
  1270 	fi
  1271 
  1272 	if test -z "$libdir"; then
  1273 	  # It is a libtool convenience library, so add in its objects.
  1274 	  convenience="$convenience $dir/$old_library"
  1275 	  old_convenience="$old_convenience $dir/$old_library"
  1276 	  deplibs="$deplibs$dependency_libs"
  1277 	  compile_command="$compile_command $dir/$old_library$dependency_libs"
  1278 	  finalize_command="$finalize_command $dir/$old_library$dependency_libs"
  1279 	  continue
  1280 	fi
  1281 
  1282 	# This library was specified with -dlopen.
  1283 	if test "$prev" = dlfiles; then
  1284 	  dlfiles="$dlfiles $arg"
  1285 	  if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
  1286 	    # If there is no dlname, no dlopen support or we're linking statically,
  1287 	    # we need to preload.
  1288 	    prev=dlprefiles
  1289 	  else
  1290 	    # We should not create a dependency on this library, but we
  1291 	    # may need any libraries it requires.
  1292 	    compile_command="$compile_command$dependency_libs"
  1293 	    finalize_command="$finalize_command$dependency_libs"
  1294 	    prev=
  1295 	    continue
  1296 	  fi
  1297 	fi
  1298 
  1299 	# The library was specified with -dlpreopen.
  1300 	if test "$prev" = dlprefiles; then
  1301 	  # Prefer using a static library (so that no silly _DYNAMIC symbols
  1302 	  # are required to link).
  1303 	  if test -n "$old_library"; then
  1304 	    dlprefiles="$dlprefiles $dir/$old_library"
  1305 	  else
  1306 	    dlprefiles="$dlprefiles $dir/$linklib"
  1307 	  fi
  1308 	  prev=
  1309 	fi
  1310 
  1311 	if test -n "$library_names" &&
  1312 	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
  1313 	  link_against_libtool_libs="$link_against_libtool_libs $arg"
  1314 	  if test -n "$shlibpath_var"; then
  1315 	    # Make sure the rpath contains only unique directories.
  1316 	    case "$temp_rpath " in
  1317 	    *" $dir "*) ;;
  1318 	    *) temp_rpath="$temp_rpath $dir" ;;
  1319 	    esac
  1320 	  fi
  1321 
  1322 	  # We need an absolute path.
  1323 	  case "$dir" in
  1324 	  [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
  1325 	  *)
  1326 	    absdir=`cd "$dir" && pwd`
  1327 	    if test -z "$absdir"; then
  1328 	      $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
  1329 	      $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
  1330 	      absdir="$dir"
  1331 	    fi
  1332 	    ;;
  1333 	  esac
  1334 	  
  1335 	  # This is the magic to use -rpath.
  1336 	  # Skip directories that are in the system default run-time
  1337 	  # search path, unless they have been requested with -R.
  1338 	  case " $sys_lib_dlsearch_path " in
  1339 	  *" $absdir "*) ;;
  1340 	  *)
  1341 	    case "$compile_rpath " in
  1342 	    *" $absdir "*) ;;
  1343 	    *) compile_rpath="$compile_rpath $absdir" 
  1344 	    esac
  1345 	    ;;
  1346 	  esac
  1347 
  1348 	  case " $sys_lib_dlsearch_path " in
  1349 	  *" $libdir "*) ;;
  1350 	  *)
  1351 	    case "$finalize_rpath " in
  1352 	    *" $libdir "*) ;;
  1353 	    *) finalize_rpath="$finalize_rpath $libdir"
  1354 	    esac
  1355 	    ;;
  1356 	  esac
  1357 
  1358 	  lib_linked=yes
  1359 	  case "$hardcode_action" in
  1360 	  immediate | unsupported)
  1361 	    if test "$hardcode_direct" = no; then
  1362 	      compile_command="$compile_command $dir/$linklib"
  1363 	      deplibs="$deplibs $dir/$linklib"
  1364 	      case "$host" in
  1365 	      *-*-cygwin* | *-*-mingw* | *-*-os2*)
  1366 		dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
  1367 		if test -n "$dllsearchpath"; then
  1368 		  dllsearchpath="$dllsearchpath:$dllsearchdir"
  1369 		else
  1370 		  dllsearchpath="$dllsearchdir"
  1371 		fi
  1372 		;;
  1373 	      esac
  1374 	    elif test "$hardcode_minus_L" = no; then
  1375 	      case "$host" in
  1376 	      *-*-sunos*)
  1377 		compile_shlibpath="$compile_shlibpath$dir:"
  1378 		;;
  1379 	      esac
  1380 	      case "$compile_command " in
  1381 	      *" -L$dir "*) ;;
  1382 	      *) compile_command="$compile_command -L$dir";;
  1383 	      esac
  1384 	      compile_command="$compile_command -l$name"
  1385 	      deplibs="$deplibs -L$dir -l$name"
  1386 	    elif test "$hardcode_shlibpath_var" = no; then
  1387 	      case ":$compile_shlibpath:" in
  1388 	      *":$dir:"*) ;;
  1389 	      *) compile_shlibpath="$compile_shlibpath$dir:";;
  1390 	      esac
  1391 	      compile_command="$compile_command -l$name"
  1392 	      deplibs="$deplibs -l$name"
  1393 	    else
  1394 	      lib_linked=no
  1395 	    fi
  1396 	    ;;
  1397 
  1398 	  relink)
  1399 	    if test "$hardcode_direct" = yes; then
  1400 	      compile_command="$compile_command $absdir/$linklib"
  1401 	      deplibs="$deplibs $absdir/$linklib"
  1402 	    elif test "$hardcode_minus_L" = yes; then
  1403 	      case "$compile_command " in
  1404 	      *" -L$absdir "*) ;;
  1405 	      *) compile_command="$compile_command -L$absdir";;
  1406 	      esac
  1407 	      compile_command="$compile_command -l$name"
  1408 	      deplibs="$deplibs -L$absdir -l$name"
  1409 	    elif test "$hardcode_shlibpath_var" = yes; then
  1410 	      case ":$compile_shlibpath:" in
  1411 	      *":$absdir:"*) ;;
  1412 	      *) compile_shlibpath="$compile_shlibpath$absdir:";;
  1413 	      esac
  1414 	      compile_command="$compile_command -l$name"
  1415 	      deplibs="$deplibs -l$name"
  1416 	    else
  1417 	      lib_linked=no
  1418 	    fi
  1419 	    ;;
  1420 
  1421 	  *)
  1422 	    lib_linked=no
  1423 	    ;;
  1424 	  esac
  1425 
  1426 	  if test "$lib_linked" != yes; then
  1427 	    $echo "$modename: configuration error: unsupported hardcode properties"
  1428 	    exit 1
  1429 	  fi
  1430 
  1431 	  # Finalize command for both is simple: just hardcode it.
  1432 	  if test "$hardcode_direct" = yes; then
  1433 	    finalize_command="$finalize_command $libdir/$linklib"
  1434 	  elif test "$hardcode_minus_L" = yes; then
  1435 	    case "$finalize_command " in
  1436 	    *" -L$libdir "*) ;;
  1437 	    *) finalize_command="$finalize_command -L$libdir";;
  1438 	    esac
  1439 	    finalize_command="$finalize_command -l$name"
  1440 	  elif test "$hardcode_shlibpath_var" = yes; then
  1441 	    case ":$finalize_shlibpath:" in
  1442 	    *":$libdir:"*) ;;
  1443 	    *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
  1444 	    esac
  1445 	    finalize_command="$finalize_command -l$name"
  1446 	  else
  1447 	    # We cannot seem to hardcode it, guess we'll fake it.
  1448 	    case "$finalize_command " in
  1449 	    *" -L$dir "*) ;;
  1450 	    *) finalize_command="$finalize_command -L$libdir";;
  1451 	    esac
  1452 	    finalize_command="$finalize_command -l$name"
  1453 	  fi
  1454 	else
  1455 	  # Transform directly to old archives if we don't build new libraries.
  1456 	  if test -n "$pic_flag" && test -z "$old_library"; then
  1457 	    $echo "$modename: cannot find static library for \`$arg'" 1>&2
  1458 	    exit 1
  1459 	  fi
  1460 
  1461 	  # Here we assume that one of hardcode_direct or hardcode_minus_L
  1462 	  # is not unsupported.  This is valid on all known static and
  1463 	  # shared platforms.
  1464 	  if test "$hardcode_direct" != unsupported; then
  1465 	    test -n "$old_library" && linklib="$old_library"
  1466 	    compile_command="$compile_command $dir/$linklib"
  1467 	    finalize_command="$finalize_command $dir/$linklib"
  1468 	  else
  1469 	    case "$compile_command " in
  1470 	    *" -L$dir "*) ;;
  1471 	    *) compile_command="$compile_command -L$dir";;
  1472 	    esac
  1473 	    compile_command="$compile_command -l$name"
  1474 	    case "$finalize_command " in
  1475 	    *" -L$dir "*) ;;
  1476 	    *) finalize_command="$finalize_command -L$dir";;
  1477 	    esac
  1478 	    finalize_command="$finalize_command -l$name"
  1479 	  fi
  1480 	fi
  1481 
  1482 	# Add in any libraries that this one depends upon.
  1483 	compile_command="$compile_command$dependency_libs"
  1484 	finalize_command="$finalize_command$dependency_libs"
  1485 	continue
  1486 	;;
  1487 
  1488       # Some other compiler argument.
  1489       *)
  1490 	# Unknown arguments in both finalize_command and compile_command need
  1491 	# to be aesthetically quoted because they are evaled later.
  1492 	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  1493 	case "$arg" in
  1494 	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
  1495 	  arg="\"$arg\""
  1496 	  ;;
  1497 	esac
  1498 	;;
  1499       esac
  1500 
  1501       # Now actually substitute the argument into the commands.
  1502       if test -n "$arg"; then
  1503 	compile_command="$compile_command $arg"
  1504 	finalize_command="$finalize_command $arg"
  1505       fi
  1506     done
  1507 
  1508     if test -n "$prev"; then
  1509       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
  1510       $echo "$help" 1>&2
  1511       exit 1
  1512     fi
  1513 
  1514     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
  1515       eval arg=\"$export_dynamic_flag_spec\"
  1516       compile_command="$compile_command $arg"
  1517       finalize_command="$finalize_command $arg"
  1518     fi
  1519 
  1520     oldlibs=
  1521     # calculate the name of the file, without its directory
  1522     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
  1523     libobjs_save="$libobjs"
  1524 
  1525     case "$output" in
  1526     "")
  1527       $echo "$modename: you must specify an output file" 1>&2
  1528       $echo "$help" 1>&2
  1529       exit 1
  1530       ;;
  1531 
  1532     *.a | *.lib)
  1533       if test -n "$link_against_libtool_libs"; then
  1534 	$echo "$modename: error: cannot link libtool libraries into archives" 1>&2
  1535 	exit 1
  1536       fi
  1537 
  1538       if test -n "$deplibs"; then
  1539 	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
  1540       fi
  1541 
  1542       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  1543 	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
  1544       fi
  1545 
  1546       if test -n "$rpath"; then
  1547 	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
  1548       fi
  1549 
  1550       if test -n "$xrpath"; then
  1551 	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
  1552       fi
  1553 
  1554       if test -n "$vinfo"; then
  1555 	$echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
  1556       fi
  1557 
  1558       if test -n "$release"; then
  1559 	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
  1560       fi
  1561 
  1562       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
  1563 	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
  1564       fi
  1565 
  1566       # Now set the variables for building old libraries.
  1567       build_libtool_libs=no
  1568       oldlibs="$output"
  1569       ;;
  1570 
  1571     *.la)
  1572       # Make sure we only generate libraries of the form `libNAME.la'.
  1573       case "$outputname" in
  1574       lib*)
  1575 	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
  1576 	eval libname=\"$libname_spec\"
  1577 	;;
  1578       *)
  1579 	if test "$module" = no; then
  1580 	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
  1581 	  $echo "$help" 1>&2
  1582 	  exit 1
  1583 	fi
  1584 	if test "$need_lib_prefix" != no; then
  1585 	  # Add the "lib" prefix for modules if required
  1586 	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
  1587 	  eval libname=\"$libname_spec\"
  1588 	else
  1589 	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
  1590 	fi
  1591 	;;
  1592       esac
  1593 
  1594       output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
  1595       if test "X$output_objdir" = "X$output"; then
  1596 	output_objdir="$objdir"
  1597       else
  1598 	output_objdir="$output_objdir/$objdir"
  1599       fi
  1600 
  1601       if test -n "$objs"; then
  1602 	$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
  1603 	exit 1
  1604       fi
  1605 
  1606       # How the heck are we supposed to write a wrapper for a shared library?
  1607       if test -n "$link_against_libtool_libs"; then
  1608 	 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
  1609 	 exit 1
  1610       fi
  1611 
  1612       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  1613 	$echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
  1614       fi
  1615 
  1616       set dummy $rpath
  1617       if test $# -gt 2; then
  1618 	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
  1619       fi
  1620       install_libdir="$2"
  1621 
  1622       oldlibs=
  1623       if test -z "$rpath"; then
  1624 	if test "$build_libtool_libs" = yes; then
  1625 	  # Building a libtool convenience library.
  1626 	  libext=al
  1627 	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
  1628 	  build_libtool_libs=convenience
  1629 	  build_old_libs=yes
  1630 	fi
  1631 	dependency_libs="$deplibs"
  1632 
  1633 	if test -n "$vinfo"; then
  1634 	  $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
  1635 	fi
  1636 
  1637 	if test -n "$release"; then
  1638 	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
  1639 	fi
  1640       else
  1641 
  1642 	# Parse the version information argument.
  1643 	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=':'
  1644 	set dummy $vinfo 0 0 0
  1645 	IFS="$save_ifs"
  1646 
  1647 	if test -n "$8"; then
  1648 	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
  1649 	  $echo "$help" 1>&2
  1650 	  exit 1
  1651 	fi
  1652 
  1653 	current="$2"
  1654 	revision="$3"
  1655 	age="$4"
  1656 
  1657 	# Check that each of the things are valid numbers.
  1658 	case "$current" in
  1659 	0 | [1-9] | [1-9][0-9]*) ;;
  1660 	*)
  1661 	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
  1662 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  1663 	  exit 1
  1664 	  ;;
  1665 	esac
  1666 
  1667 	case "$revision" in
  1668 	0 | [1-9] | [1-9][0-9]*) ;;
  1669 	*)
  1670 	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
  1671 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  1672 	  exit 1
  1673 	  ;;
  1674 	esac
  1675 
  1676 	case "$age" in
  1677 	0 | [1-9] | [1-9][0-9]*) ;;
  1678 	*)
  1679 	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
  1680 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  1681 	  exit 1
  1682 	  ;;
  1683 	esac
  1684 
  1685 	if test $age -gt $current; then
  1686 	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
  1687 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  1688 	  exit 1
  1689 	fi
  1690 
  1691 	# Calculate the version variables.
  1692 	major=
  1693 	versuffix=
  1694 	verstring=
  1695 	case "$version_type" in
  1696 	none) ;;
  1697 
  1698 	irix)
  1699 	  major=`expr $current - $age + 1`
  1700 	  versuffix="$major.$revision"
  1701 	  verstring="sgi$major.$revision"
  1702 
  1703 	  # Add in all the interfaces that we are compatible with.
  1704 	  loop=$revision
  1705 	  while test $loop != 0; do
  1706 	    iface=`expr $revision - $loop`
  1707 	    loop=`expr $loop - 1`
  1708 	    verstring="sgi$major.$iface:$verstring"
  1709 	  done
  1710 	  ;;
  1711 
  1712 	linux)
  1713 	  major=.`expr $current - $age`
  1714 	  versuffix="$major.$age.$revision"
  1715 	  ;;
  1716 
  1717 	osf)
  1718 	  major=`expr $current - $age`
  1719 	  versuffix=".$current.$age.$revision"
  1720 	  verstring="$current.$age.$revision"
  1721 
  1722 	  # Add in all the interfaces that we are compatible with.
  1723 	  loop=$age
  1724 	  while test $loop != 0; do
  1725 	    iface=`expr $current - $loop`
  1726 	    loop=`expr $loop - 1`
  1727 	    verstring="$verstring:${iface}.0"
  1728 	  done
  1729 
  1730 	  # Make executables depend on our current version.
  1731 	  verstring="$verstring:${current}.0"
  1732 	  ;;
  1733 
  1734 	sunos)
  1735 	  major=".$current"
  1736 	  versuffix=".$current.$revision"
  1737 	  ;;
  1738 
  1739 	freebsd-aout)
  1740 	  major=".$current"
  1741 	  versuffix=".$current.$revision";
  1742 	  ;;
  1743 
  1744 	freebsd-elf)
  1745 	  major=".$current"
  1746 	  versuffix=".$current";
  1747 	  ;;
  1748 
  1749 	windows)
  1750 	  # Like Linux, but with '-' rather than '.', since we only
  1751 	  # want one extension on Windows 95.
  1752 	  major=`expr $current - $age`
  1753 	  versuffix="-$major-$age-$revision"
  1754 	  ;;
  1755 
  1756 	*)
  1757 	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
  1758 	  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
  1759 	  exit 1
  1760 	  ;;
  1761 	esac
  1762 
  1763 	# Clear the version info if we defaulted, and they specified a release.
  1764 	if test -z "$vinfo" && test -n "$release"; then
  1765 	  major=
  1766 	  verstring="0.0"
  1767 	  if test "$need_version" = no; then
  1768 	    versuffix=
  1769 	  else
  1770 	    versuffix=".0.0"
  1771 	  fi
  1772 	fi
  1773 
  1774 	# Remove version info from name if versioning should be avoided
  1775 	if test "$avoid_version" = yes && test "$need_version" = no; then
  1776 	  major=
  1777 	  versuffix=
  1778 	  verstring=""
  1779 	fi
  1780 	
  1781 	# Check to see if the archive will have undefined symbols.
  1782 	if test "$allow_undefined" = yes; then
  1783 	  if test "$allow_undefined_flag" = unsupported; then
  1784 	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
  1785 	    build_libtool_libs=no
  1786 	    build_old_libs=yes
  1787 	  fi
  1788 	else
  1789 	  # Don't allow undefined symbols.
  1790 	  allow_undefined_flag="$no_undefined_flag"
  1791 	fi
  1792 
  1793 	dependency_libs="$deplibs"
  1794 	case "$host" in
  1795 	*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | *-*-freebsd* )
  1796 	  # these systems don't actually have a c library (as such)!
  1797 	  ;;
  1798         *-*-rhapsody*)
  1799 	  # rhapsody is a little odd...
  1800 	  deplibs="$deplibs -framework System"
  1801 	  ;;
  1802 	*)
  1803 	  # Add libc to deplibs on all other systems.
  1804 	  deplibs="$deplibs -lc"
  1805 	  ;;
  1806 	esac
  1807       fi
  1808 
  1809       # Create the output directory, or remove our outputs if we need to.
  1810       if test -d $output_objdir; then
  1811 	$show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
  1812 	$run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
  1813       else
  1814 	$show "$mkdir $output_objdir"
  1815 	$run $mkdir $output_objdir
  1816 	status=$?
  1817 	if test $status -ne 0 && test ! -d $output_objdir; then
  1818 	  exit $status
  1819 	fi
  1820       fi
  1821 
  1822       # Now set the variables for building old libraries.
  1823       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
  1824 	oldlibs="$oldlibs $output_objdir/$libname.$libext"
  1825 
  1826 	# Transform .lo files to .o files.
  1827 	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
  1828       fi
  1829 
  1830       if test "$build_libtool_libs" = yes; then
  1831 	# Transform deplibs into only deplibs that can be linked in shared.
  1832 	name_save=$name
  1833 	libname_save=$libname
  1834 	release_save=$release
  1835 	versuffix_save=$versuffix
  1836 	major_save=$major
  1837 	# I'm not sure if I'm treating the release correctly.  I think
  1838 	# release should show up in the -l (ie -lgmp5) so we don't want to
  1839 	# add it in twice.  Is that correct?
  1840 	release=""
  1841 	versuffix=""
  1842 	major=""
  1843 	newdeplibs=
  1844 	droppeddeps=no
  1845 	case "$deplibs_check_method" in
  1846 	pass_all)
  1847 	  # Don't check for shared/static.  Everything works.
  1848 	  # This might be a little naive.  We might want to check
  1849 	  # whether the library exists or not.  But this is on
  1850 	  # osf3 & osf4 and I'm not really sure... Just
  1851 	  # implementing what was already the behaviour.
  1852 	  newdeplibs=$deplibs
  1853 	  ;;
  1854 	test_compile)
  1855 	  # This code stresses the "libraries are programs" paradigm to its
  1856 	  # limits. Maybe even breaks it.  We compile a program, linking it
  1857 	  # against the deplibs as a proxy for the library.  Then we can check
  1858 	  # whether they linked in statically or dynamically with ldd.
  1859 	  $rm conftest.c
  1860 	  cat > conftest.c <<EOF
  1861 	  int main() { return 0; }
  1862 EOF
  1863 	  $rm conftest
  1864 	  $CC -o conftest conftest.c $deplibs
  1865 	  if test $? -eq 0 ; then
  1866 	    ldd_output=`ldd conftest`
  1867 	    for i in $deplibs; do
  1868 	      name="`expr $i : '-l\(.*\)'`"
  1869 	      # If $name is empty we are operating on a -L argument.
  1870 	      if test "$name" != "" ; then
  1871 		libname=`eval \\$echo \"$libname_spec\"`
  1872 		deplib_matches=`eval \\$echo \"$library_names_spec\"`
  1873 		set dummy $deplib_matches
  1874 		deplib_match=$2
  1875 		if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  1876 		  newdeplibs="$newdeplibs $i"
  1877 		else
  1878 		  droppeddeps=yes
  1879 		  echo
  1880 		  echo "*** Warning: This library needs some functionality provided by $i."
  1881 		  echo "*** I have the capability to make that library automatically link in when"
  1882 		  echo "*** you link to this library.  But I can only do this if you have a"
  1883 		  echo "*** shared version of the library, which you do not appear to have."
  1884 		fi
  1885 	      else
  1886 		newdeplibs="$newdeplibs $i"
  1887 	      fi
  1888 	    done
  1889 	  else
  1890 	    # Error occured in the first compile.  Let's try to salvage the situation:
  1891 	    # Compile a seperate program for each library.
  1892 	    for i in $deplibs; do
  1893 	      name="`expr $i : '-l\(.*\)'`"
  1894 	     # If $name is empty we are operating on a -L argument.
  1895 	      if test "$name" != "" ; then
  1896 		$rm conftest
  1897 		$CC -o conftest conftest.c $i
  1898 		# Did it work?
  1899 		if test $? -eq 0 ; then
  1900 		  ldd_output=`ldd conftest`
  1901 		  libname=`eval \\$echo \"$libname_spec\"`
  1902 		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
  1903 		  set dummy $deplib_matches
  1904 		  deplib_match=$2
  1905 		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  1906 		    newdeplibs="$newdeplibs $i"
  1907 		  else
  1908 		    droppeddeps=yes
  1909 		    echo
  1910 		    echo "*** Warning: This library needs some functionality provided by $i."
  1911 		    echo "*** I have the capability to make that library automatically link in when"
  1912 		    echo "*** you link to this library.  But I can only do this if you have a"
  1913 		    echo "*** shared version of the library, which you do not appear to have."
  1914 		  fi
  1915 		else
  1916 		  droppeddeps=yes
  1917 		  echo
  1918 		  echo "*** Warning!  Library $i is needed by this library but I was not able to"
  1919 		  echo "***  make it link in!  You will probably need to install it or some"
  1920 		  echo "*** library that it depends on before this library will be fully"
  1921 		  echo "*** functional.  Installing it before continuing would be even better."
  1922 		fi
  1923 	      else
  1924 		newdeplibs="$newdeplibs $i"
  1925 	      fi
  1926 	    done
  1927 	  fi
  1928 	  ;;
  1929 	file_magic*)
  1930 	  set dummy $deplibs_check_method
  1931 	  file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
  1932 	  for a_deplib in $deplibs; do
  1933 	    name="`expr $a_deplib : '-l\(.*\)'`"
  1934 	    # If $name is empty we are operating on a -L argument.
  1935 	    if test "$name" != "" ; then
  1936 	      libname=`eval \\$echo \"$libname_spec\"`
  1937 	      for i in $lib_search_path; do
  1938 		    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  1939 		    for potent_lib in $potential_libs; do
  1940 		      # Follow soft links.
  1941 		      if ls -lLd "$potent_lib" 2>/dev/null \
  1942 			 | grep " -> " >/dev/null; then
  1943 			continue 
  1944 		      fi
  1945 		      # The statement above tries to avoid entering an
  1946 		      # endless loop below, in case of cyclic links.
  1947 		      # We might still enter an endless loop, since a link
  1948 		      # loop can be closed while we follow links,
  1949 		      # but so what?
  1950 		      potlib="$potent_lib"
  1951 		      while test -h "$potlib" 2>/dev/null; do
  1952 			potliblink=`ls -ld $potlib | sed 's/.* -> //'`
  1953 			case "$potliblink" in
  1954 			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
  1955 			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
  1956 			esac
  1957 		      done
  1958 		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
  1959 			 | sed 10q \
  1960 			 | egrep "$file_magic_regex" > /dev/null; then
  1961 			newdeplibs="$newdeplibs $a_deplib"
  1962 			a_deplib=""
  1963 			break 2
  1964 		      fi
  1965 		    done
  1966 	      done
  1967 	      if test -n "$a_deplib" ; then
  1968 		droppeddeps=yes
  1969 		echo
  1970 		echo "*** Warning: This library needs some functionality provided by $a_deplib."
  1971 		echo "*** I have the capability to make that library automatically link in when"
  1972 		echo "*** you link to this library.  But I can only do this if you have a"
  1973 		echo "*** shared version of the library, which you do not appear to have."
  1974 	      fi
  1975 	    else
  1976 	      # Add a -L argument.
  1977 	      newdeplibs="$newdeplibs $a_deplib"
  1978 	    fi
  1979 	  done # Gone through all deplibs.
  1980 	  ;;
  1981 	none | unknown | *)
  1982 	  newdeplibs=""
  1983 	  if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
  1984 	       -e 's/ -[LR][^ ]*//g' -e 's/[ 	]//g' |
  1985 	     grep . >/dev/null; then
  1986 	    echo
  1987 	    if test "X$deplibs_check_method" = "Xnone"; then
  1988 	      echo "*** Warning: inter-library dependencies are not supported in this platform."
  1989 	    else
  1990 	      echo "*** Warning: inter-library dependencies are not known to be supported."
  1991 	    fi
  1992 	    echo "*** All declared inter-library dependencies are being dropped."
  1993 	    droppeddeps=yes
  1994 	  fi
  1995 	  ;;
  1996 	esac
  1997 	versuffix=$versuffix_save
  1998 	major=$major_save
  1999 	release=$release_save
  2000 	libname=$libname_save
  2001 	name=$name_save
  2002 
  2003 	if test "$droppeddeps" = yes; then
  2004 	  if test "$module" = yes; then
  2005 	    echo
  2006 	    echo "*** Warning: libtool could not satisfy all declared inter-library"
  2007 	    echo "*** dependencies of module $libname.  Therefore, libtool will create"
  2008 	    echo "*** a static module, that should work as long as the dlopening"
  2009 	    echo "*** application is linked with the -dlopen flag."
  2010 	    if test -z "$global_symbol_pipe"; then
  2011 	      echo
  2012 	      echo "*** However, this would only work if libtool was able to extract symbol"
  2013 	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
  2014 	      echo "*** not find such a program.  So, this module is probably useless."
  2015 	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
  2016 	    fi
  2017 	    if test "$build_old_libs" = no; then
  2018 	      oldlibs="$output_objdir/$libname.$libext"
  2019 	      build_libtool_libs=module
  2020 	      build_old_libs=yes
  2021 	    else
  2022 	      build_libtool_libs=no
  2023 	    fi
  2024 	  else
  2025 	    echo "*** The inter-library dependencies that have been dropped here will be"
  2026 	    echo "*** automatically added whenever a program is linked with this library"
  2027 	    echo "*** or is declared to -dlopen it."
  2028 	  fi
  2029 	fi
  2030 	# Done checking deplibs!
  2031 	deplibs=$newdeplibs
  2032       fi
  2033 
  2034       # All the library-specific variables (install_libdir is set above).
  2035       library_names=
  2036       old_library=
  2037       dlname=
  2038       
  2039       # Test again, we may have decided not to build it any more
  2040       if test "$build_libtool_libs" = yes; then
  2041 	# Get the real and link names of the library.
  2042 	eval library_names=\"$library_names_spec\"
  2043 	set dummy $library_names
  2044 	realname="$2"
  2045 	shift; shift
  2046 
  2047 	if test -n "$soname_spec"; then
  2048 	  eval soname=\"$soname_spec\"
  2049 	else
  2050 	  soname="$realname"
  2051 	fi
  2052 
  2053 	lib="$output_objdir/$realname"
  2054 	for link
  2055 	do
  2056 	  linknames="$linknames $link"
  2057 	done
  2058 
  2059 	# Ensure that we have .o objects for linkers which dislike .lo
  2060 	# (e.g. aix) in case we are running --disable-static
  2061 	for obj in $libobjs; do
  2062 	  xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
  2063 	  if test "X$xdir" = "X$obj"; then
  2064 	    xdir="."
  2065 	  else
  2066 	    xdir="$xdir"
  2067 	  fi
  2068 	  baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
  2069 	  oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
  2070 	  if test ! -f $xdir/$oldobj; then
  2071 	    $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
  2072 	    $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
  2073 	  fi
  2074 	done
  2075 
  2076 	# Use standard objects if they are pic
  2077 	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  2078 
  2079 	# Prepare the list of exported symbols
  2080 	if test -z "$export_symbols"; then
  2081 	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
  2082 	    $show "generating symbol list for \`$libname.la'"
  2083 	    export_symbols="$output_objdir/$libname.exp"
  2084 	    $run $rm $export_symbols
  2085 	    eval cmds=\"$export_symbols_cmds\"
  2086 	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  2087 	    for cmd in $cmds; do
  2088 	      IFS="$save_ifs"
  2089 	      $show "$cmd"
  2090 	      $run eval "$cmd" || exit $?
  2091 	    done
  2092 	    IFS="$save_ifs"
  2093 	    if test -n "$export_symbols_regex"; then
  2094 	      $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
  2095 	      $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
  2096 	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
  2097 	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
  2098 	    fi
  2099 	  fi
  2100 	fi
  2101 
  2102 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
  2103 	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
  2104 	fi
  2105 
  2106 	if test -n "$convenience"; then
  2107 	  if test -n "$whole_archive_flag_spec"; then
  2108 	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  2109 	  else
  2110 	    gentop="$output_objdir/${outputname}x"
  2111 	    $show "${rm}r $gentop"
  2112 	    $run ${rm}r "$gentop"
  2113 	    $show "mkdir $gentop"
  2114 	    $run mkdir "$gentop"
  2115 	    status=$?
  2116 	    if test $status -ne 0 && test ! -d "$gentop"; then
  2117 	      exit $status
  2118 	    fi
  2119 	    generated="$generated $gentop"
  2120 
  2121 	    for xlib in $convenience; do
  2122 	      # Extract the objects.
  2123 	      case "$xlib" in
  2124 	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
  2125 	      *) xabs=`pwd`"/$xlib" ;;
  2126 	      esac
  2127 	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
  2128 	      xdir="$gentop/$xlib"
  2129 
  2130 	      $show "${rm}r $xdir"
  2131 	      $run ${rm}r "$xdir"
  2132 	      $show "mkdir $xdir"
  2133 	      $run mkdir "$xdir"
  2134 	      status=$?
  2135 	      if test $status -ne 0 && test ! -d "$xdir"; then
  2136 		exit $status
  2137 	      fi
  2138 	      $show "(cd $xdir && $AR x $xabs)"
  2139 	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
  2140 
  2141 	      libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
  2142 	    done
  2143 	  fi
  2144 	fi
  2145 
  2146 	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
  2147 	  eval flag=\"$thread_safe_flag_spec\"
  2148 	  linkopts="$linkopts $flag"
  2149 	fi
  2150 
  2151 	# Do each of the archive commands.
  2152 	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  2153 	  eval cmds=\"$archive_expsym_cmds\"
  2154 	else
  2155 	  eval cmds=\"$archive_cmds\"
  2156 	fi
  2157 	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  2158 	for cmd in $cmds; do
  2159 	  IFS="$save_ifs"
  2160 	  $show "$cmd"
  2161 	  $run eval "$cmd" || exit $?
  2162 	done
  2163 	IFS="$save_ifs"
  2164 
  2165 	# Create links to the real library.
  2166 	for linkname in $linknames; do
  2167 	  if test "$realname" != "$linkname"; then
  2168 	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
  2169 	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
  2170 	  fi
  2171 	done
  2172 
  2173 	# If -module or -export-dynamic was specified, set the dlname.
  2174 	if test "$module" = yes || test "$export_dynamic" = yes; then
  2175 	  # On all known operating systems, these are identical.
  2176 	  dlname="$soname"
  2177 	fi
  2178       fi
  2179       ;;
  2180 
  2181     *.lo | *.o | *.obj)
  2182       if test -n "$link_against_libtool_libs"; then
  2183 	$echo "$modename: error: cannot link libtool libraries into objects" 1>&2
  2184 	exit 1
  2185       fi
  2186 
  2187       if test -n "$deplibs"; then
  2188 	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
  2189       fi
  2190 
  2191       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  2192 	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
  2193       fi
  2194 
  2195       if test -n "$rpath"; then
  2196 	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
  2197       fi
  2198 
  2199       if test -n "$xrpath"; then
  2200 	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
  2201       fi
  2202 
  2203       if test -n "$vinfo"; then
  2204 	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
  2205       fi
  2206 
  2207       if test -n "$release"; then
  2208 	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
  2209       fi
  2210 
  2211       case "$output" in
  2212       *.lo)
  2213 	if test -n "$objs"; then
  2214 	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
  2215 	  exit 1
  2216 	fi
  2217 	libobj="$output"
  2218 	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
  2219 	;;
  2220       *)
  2221 	libobj=
  2222 	obj="$output"
  2223 	;;
  2224       esac
  2225 
  2226       # Delete the old objects.
  2227       $run $rm $obj $libobj
  2228 
  2229       # Objects from convenience libraries.  This assumes
  2230       # single-version convenience libraries.  Whenever we create
  2231       # different ones for PIC/non-PIC, this we'll have to duplicate
  2232       # the extraction.
  2233       reload_conv_objs=
  2234       gentop=
  2235       # reload_cmds runs $LD directly, so let us get rid of
  2236       # -Wl from whole_archive_flag_spec
  2237       wl= 
  2238 
  2239       if test -n "$convenience"; then
  2240 	if test -n "$whole_archive_flag_spec"; then
  2241 	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
  2242 	else
  2243 	  gentop="$output_objdir/${obj}x"
  2244 	  $show "${rm}r $gentop"
  2245 	  $run ${rm}r "$gentop"
  2246 	  $show "mkdir $gentop"
  2247 	  $run mkdir "$gentop"
  2248 	  status=$?
  2249 	  if test $status -ne 0 && test ! -d "$gentop"; then
  2250 	    exit $status
  2251 	  fi
  2252 	  generated="$generated $gentop"
  2253 
  2254 	  for xlib in $convenience; do
  2255 	    # Extract the objects.
  2256 	    case "$xlib" in
  2257 	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
  2258 	    *) xabs=`pwd`"/$xlib" ;;
  2259 	    esac
  2260 	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
  2261 	    xdir="$gentop/$xlib"
  2262 
  2263 	    $show "${rm}r $xdir"
  2264 	    $run ${rm}r "$xdir"
  2265 	    $show "mkdir $xdir"
  2266 	    $run mkdir "$xdir"
  2267 	    status=$?
  2268 	    if test $status -ne 0 && test ! -d "$xdir"; then
  2269 	      exit $status
  2270 	    fi
  2271 	    $show "(cd $xdir && $AR x $xabs)"
  2272 	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
  2273 
  2274 	    reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
  2275 	  done
  2276 	fi
  2277       fi
  2278 
  2279       # Create the old-style object.
  2280       reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
  2281 
  2282       output="$obj"
  2283       eval cmds=\"$reload_cmds\"
  2284       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  2285       for cmd in $cmds; do
  2286 	IFS="$save_ifs"
  2287 	$show "$cmd"
  2288 	$run eval "$cmd" || exit $?
  2289       done
  2290       IFS="$save_ifs"
  2291 
  2292       # Exit if we aren't doing a library object file.
  2293       if test -z "$libobj"; then
  2294 	if test -n "$gentop"; then
  2295 	  $show "${rm}r $gentop"
  2296 	  $run ${rm}r $gentop
  2297 	fi
  2298 
  2299 	exit 0
  2300       fi
  2301 
  2302       if test "$build_libtool_libs" != yes; then
  2303 	if test -n "$gentop"; then
  2304 	  $show "${rm}r $gentop"
  2305 	  $run ${rm}r $gentop
  2306 	fi
  2307 
  2308 	# Create an invalid libtool object if no PIC, so that we don't
  2309 	# accidentally link it into a program.
  2310 	$show "echo timestamp > $libobj"
  2311 	$run eval "echo timestamp > $libobj" || exit $?
  2312 	exit 0
  2313       fi
  2314 
  2315       if test -n "$pic_flag"; then
  2316 	# Only do commands if we really have different PIC objects.
  2317 	reload_objs="$libobjs $reload_conv_objs"
  2318 	output="$libobj"
  2319 	eval cmds=\"$reload_cmds\"
  2320 	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  2321 	for cmd in $cmds; do
  2322 	  IFS="$save_ifs"
  2323 	  $show "$cmd"
  2324 	  $run eval "$cmd" || exit $?
  2325 	done
  2326 	IFS="$save_ifs"
  2327       else
  2328 	# Just create a symlink.
  2329 	$show $rm $libobj
  2330 	$run $rm $libobj
  2331 	xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
  2332 	if test "X$xdir" = "X$libobj"; then
  2333 	  xdir="."
  2334 	else
  2335 	  xdir="$xdir"
  2336 	fi
  2337 	baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
  2338 	oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
  2339 	$show "(cd $xdir && $LN_S $oldobj $baseobj)"
  2340 	$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
  2341       fi
  2342 
  2343       if test -n "$gentop"; then
  2344 	$show "${rm}r $gentop"
  2345 	$run ${rm}r $gentop
  2346       fi
  2347 
  2348       exit 0
  2349       ;;
  2350 
  2351     # Anything else should be a program.
  2352     *)
  2353       if test -n "$vinfo"; then
  2354 	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
  2355       fi
  2356 
  2357       if test -n "$release"; then
  2358 	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
  2359       fi
  2360 
  2361       if test "$preload" = yes; then
  2362 	if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
  2363 	   test "$dlopen_self_static" = unknown; then
  2364 	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
  2365 	fi 
  2366       fi
  2367     
  2368       if test -n "$rpath$xrpath"; then
  2369 	# If the user specified any rpath flags, then add them.
  2370 	for libdir in $rpath $xrpath; do
  2371 	  # This is the magic to use -rpath.
  2372 	  case "$compile_rpath " in
  2373 	  *" $libdir "*) ;;
  2374 	  *) compile_rpath="$compile_rpath $libdir" ;;
  2375 	  esac
  2376 	  case "$finalize_rpath " in
  2377 	  *" $libdir "*) ;;
  2378 	  *) finalize_rpath="$finalize_rpath $libdir" ;;
  2379 	  esac
  2380 	done
  2381       fi
  2382 
  2383       # Now hardcode the library paths
  2384       rpath=
  2385       hardcode_libdirs=
  2386       for libdir in $compile_rpath $finalize_rpath; do
  2387 	if test -n "$hardcode_libdir_flag_spec"; then
  2388 	  if test -n "$hardcode_libdir_separator"; then
  2389 	    if test -z "$hardcode_libdirs"; then
  2390 	      hardcode_libdirs="$libdir"
  2391 	    else
  2392 	      # Just accumulate the unique libdirs.
  2393 	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
  2394 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  2395 		;;
  2396 	      *)
  2397 		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  2398 		;;
  2399 	      esac
  2400 	    fi
  2401 	  else
  2402 	    eval flag=\"$hardcode_libdir_flag_spec\"
  2403 	    rpath="$rpath $flag"
  2404 	  fi
  2405 	elif test -n "$runpath_var"; then
  2406 	  case "$perm_rpath " in
  2407 	  *" $libdir "*) ;;
  2408 	  *) perm_rpath="$perm_rpath $libdir" ;;
  2409 	  esac
  2410 	fi
  2411       done
  2412       # Substitute the hardcoded libdirs into the rpath.
  2413       if test -n "$hardcode_libdir_separator" &&
  2414 	 test -n "$hardcode_libdirs"; then
  2415 	libdir="$hardcode_libdirs"
  2416 	eval rpath=\" $hardcode_libdir_flag_spec\"
  2417       fi
  2418       compile_rpath="$rpath"
  2419 
  2420       rpath=
  2421       hardcode_libdirs=
  2422       for libdir in $finalize_rpath; do
  2423 	if test -n "$hardcode_libdir_flag_spec"; then
  2424 	  if test -n "$hardcode_libdir_separator"; then
  2425 	    if test -z "$hardcode_libdirs"; then
  2426 	      hardcode_libdirs="$libdir"
  2427 	    else
  2428 	      # Just accumulate the unique libdirs.
  2429 	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
  2430 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  2431 		;;
  2432 	      *)
  2433 		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  2434 		;;
  2435 	      esac
  2436 	    fi
  2437 	  else
  2438 	    eval flag=\"$hardcode_libdir_flag_spec\"
  2439 	    rpath="$rpath $flag"
  2440 	  fi
  2441 	elif test -n "$runpath_var"; then
  2442 	  case "$finalize_perm_rpath " in
  2443 	  *" $libdir "*) ;;
  2444 	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
  2445 	  esac
  2446 	fi
  2447       done
  2448       # Substitute the hardcoded libdirs into the rpath.
  2449       if test -n "$hardcode_libdir_separator" &&
  2450 	 test -n "$hardcode_libdirs"; then
  2451 	libdir="$hardcode_libdirs"
  2452 	eval rpath=\" $hardcode_libdir_flag_spec\"
  2453       fi
  2454       finalize_rpath="$rpath"
  2455 
  2456       output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
  2457       if test "X$output_objdir" = "X$output"; then
  2458 	output_objdir="$objdir"
  2459       else
  2460 	output_objdir="$output_objdir/$objdir"
  2461       fi
  2462 
  2463       # Create the binary in the object directory, then wrap it.
  2464       if test ! -d $output_objdir; then
  2465 	$show "$mkdir $output_objdir"
  2466 	$run $mkdir $output_objdir
  2467 	status=$?
  2468 	if test $status -ne 0 && test ! -d $output_objdir; then
  2469 	  exit $status
  2470 	fi
  2471       fi
  2472 
  2473       if test -n "$libobjs" && test "$build_old_libs" = yes; then
  2474 	# Transform all the library objects into standard objects.
  2475 	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  2476 	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  2477       fi
  2478 
  2479       dlsyms=
  2480       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  2481 	if test -n "$NM" && test -n "$global_symbol_pipe"; then
  2482 	  dlsyms="${outputname}S.c"
  2483 	else
  2484 	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
  2485 	fi
  2486       fi
  2487 
  2488       if test -n "$dlsyms"; then
  2489 	case "$dlsyms" in
  2490 	"") ;;
  2491 	*.c)
  2492 	  # Discover the nlist of each of the dlfiles.
  2493 	  nlist="$output_objdir/${outputname}.nm"
  2494 
  2495 	  $show "$rm $nlist ${nlist}S ${nlist}T"
  2496 	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
  2497 
  2498 	  # Parse the name list into a source file.
  2499 	  $show "creating $output_objdir/$dlsyms"
  2500 
  2501 	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
  2502 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
  2503 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
  2504 
  2505 #ifdef __cplusplus
  2506 extern \"C\" {
  2507 #endif
  2508 
  2509 /* Prevent the only kind of declaration conflicts we can make. */
  2510 #define lt_preloaded_symbols some_other_symbol
  2511 
  2512 /* External symbol declarations for the compiler. */\
  2513 "
  2514 
  2515 	  if test "$dlself" = yes; then
  2516 	    $show "generating symbol list for \`$output'"
  2517 
  2518 	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
  2519 
  2520 	    # Add our own program objects to the symbol list.
  2521 	    progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  2522 	    for arg in $progfiles; do
  2523 	      $show "extracting global C symbols from \`$arg'"
  2524 	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
  2525 	    done
  2526 
  2527 	    if test -n "$exclude_expsyms"; then
  2528 	      $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
  2529 	      $run eval '$mv "$nlist"T "$nlist"'
  2530 	    fi
  2531 	    
  2532 	    if test -n "$export_symbols_regex"; then
  2533 	      $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
  2534 	      $run eval '$mv "$nlist"T "$nlist"'
  2535 	    fi
  2536 
  2537 	    # Prepare the list of exported symbols
  2538 	    if test -z "$export_symbols"; then
  2539 	      export_symbols="$output_objdir/$output.exp"
  2540 	      $run $rm $export_symbols
  2541 	      $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
  2542 	    else
  2543 	      $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
  2544 	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
  2545 	      $run eval 'mv "$nlist"T "$nlist"'
  2546 	    fi
  2547 	  fi
  2548 
  2549 	  for arg in $dlprefiles; do
  2550 	    $show "extracting global C symbols from \`$arg'"
  2551 	    name=`echo "$arg" | sed -e 's%^.*/%%'`
  2552 	    $run eval 'echo ": $name " >> "$nlist"'
  2553 	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
  2554 	  done
  2555 
  2556 	  if test -z "$run"; then
  2557 	    # Make sure we have at least an empty file.
  2558 	    test -f "$nlist" || : > "$nlist"
  2559 
  2560 	    if test -n "$exclude_expsyms"; then
  2561 	      egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
  2562 	      $mv "$nlist"T "$nlist"
  2563 	    fi
  2564 
  2565 	    # Try sorting and uniquifying the output.
  2566 	    if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
  2567 	      :
  2568 	    else
  2569 	      grep -v "^: " < "$nlist" > "$nlist"S
  2570 	    fi
  2571 
  2572 	    if test -f "$nlist"S; then
  2573 	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
  2574 	    else
  2575 	      echo '/* NONE */' >> "$output_objdir/$dlsyms"
  2576 	    fi
  2577 
  2578 	    $echo >> "$output_objdir/$dlsyms" "\
  2579 
  2580 #undef lt_preloaded_symbols
  2581 
  2582 #if defined (__STDC__) && __STDC__
  2583 # define lt_ptr_t void *
  2584 #else
  2585 # define lt_ptr_t char *
  2586 # define const
  2587 #endif
  2588 
  2589 /* The mapping between symbol names and symbols. */
  2590 const struct {
  2591   const char *name;
  2592   lt_ptr_t address;
  2593 }
  2594 lt_preloaded_symbols[] =
  2595 {\
  2596 "
  2597 
  2598 	    sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
  2599 		-e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
  2600 		  < "$nlist" >> "$output_objdir/$dlsyms"
  2601 
  2602 	    $echo >> "$output_objdir/$dlsyms" "\
  2603   {0, (lt_ptr_t) 0}
  2604 };
  2605 
  2606 /* This works around a problem in FreeBSD linker */
  2607 #ifdef FREEBSD_WORKAROUND
  2608 static const void *lt_preloaded_setup() {
  2609   return lt_preloaded_symbols;
  2610 }
  2611 #endif
  2612 
  2613 #ifdef __cplusplus
  2614 }
  2615 #endif\
  2616 "
  2617 	  fi
  2618 
  2619 	  pic_flag_for_symtable=
  2620 	  case "$host" in
  2621 	  # compiling the symbol table file with pic_flag works around
  2622 	  # a FreeBSD bug that causes programs to crash when -lm is
  2623 	  # linked before any other PIC object.  But we must not use
  2624 	  # pic_flag when linking with -static.  The problem exists in
  2625 	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
  2626 	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
  2627 	    case "$compile_command " in
  2628 	    *" -static "*) ;;
  2629 	    *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
  2630 	    esac;;
  2631 	  *-*-hpux*)
  2632 	    case "$compile_command " in
  2633 	    *" -static "*) ;;
  2634 	    *) pic_flag_for_symtable=" $pic_flag -DPIC";;
  2635 	    esac
  2636 	  esac
  2637 
  2638 	  # Now compile the dynamic symbol file.
  2639 	  $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
  2640 	  $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
  2641 
  2642 	  # Clean up the generated files.
  2643 	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
  2644 	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
  2645 
  2646 	  # Transform the symbol file into the correct name.
  2647 	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  2648 	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  2649 	  ;;
  2650 	*)
  2651 	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
  2652 	  exit 1
  2653 	  ;;
  2654 	esac
  2655       else
  2656 	# We keep going just in case the user didn't refer to
  2657 	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
  2658 	# really was required.
  2659 
  2660 	# Nullify the symbol file.
  2661 	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
  2662 	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
  2663       fi
  2664 
  2665       if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
  2666 	# Replace the output file specification.
  2667 	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  2668 	link_command="$compile_command$compile_rpath"
  2669 
  2670 	# We have no uninstalled library dependencies, so finalize right now.
  2671 	$show "$link_command"
  2672 	$run eval "$link_command"
  2673 	status=$?
  2674 	
  2675 	# Delete the generated files.
  2676 	if test -n "$dlsyms"; then
  2677 	  $show "$rm $output_objdir/${outputname}S.${objext}"
  2678 	  $run $rm "$output_objdir/${outputname}S.${objext}"
  2679 	fi
  2680 
  2681 	exit $status
  2682       fi
  2683 
  2684       if test -n "$shlibpath_var"; then
  2685 	# We should set the shlibpath_var
  2686 	rpath=
  2687 	for dir in $temp_rpath; do
  2688 	  case "$dir" in
  2689 	  [\\/]* | [A-Za-z]:[\\/]*)
  2690 	    # Absolute path.
  2691 	    rpath="$rpath$dir:"
  2692 	    ;;
  2693 	  *)
  2694 	    # Relative path: add a thisdir entry.
  2695 	    rpath="$rpath\$thisdir/$dir:"
  2696 	    ;;
  2697 	  esac
  2698 	done
  2699 	temp_rpath="$rpath"
  2700       fi
  2701 
  2702       if test -n "$compile_shlibpath$finalize_shlibpath"; then
  2703 	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
  2704       fi
  2705       if test -n "$finalize_shlibpath"; then
  2706 	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
  2707       fi
  2708 
  2709       compile_var=
  2710       finalize_var=
  2711       if test -n "$runpath_var"; then
  2712 	if test -n "$perm_rpath"; then
  2713 	  # We should set the runpath_var.
  2714 	  rpath=
  2715 	  for dir in $perm_rpath; do
  2716 	    rpath="$rpath$dir:"
  2717 	  done
  2718 	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
  2719 	fi
  2720 	if test -n "$finalize_perm_rpath"; then
  2721 	  # We should set the runpath_var.
  2722 	  rpath=
  2723 	  for dir in $finalize_perm_rpath; do
  2724 	    rpath="$rpath$dir:"
  2725 	  done
  2726 	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
  2727 	fi
  2728       fi
  2729 
  2730       if test "$hardcode_action" = relink; then
  2731 	# Fast installation is not supported
  2732 	link_command="$compile_var$compile_command$compile_rpath"
  2733 	relink_command="$finalize_var$finalize_command$finalize_rpath"
  2734 	
  2735 	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
  2736 	$echo "$modename: \`$output' will be relinked during installation" 1>&2
  2737       else
  2738 	if test "$fast_install" != no; then
  2739 	  link_command="$finalize_var$compile_command$finalize_rpath"
  2740 	  if test "$fast_install" = yes; then
  2741 	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
  2742 	  else
  2743 	    # fast_install is set to needless
  2744 	    relink_command=
  2745 	  fi
  2746 	else
  2747 	  link_command="$compile_var$compile_command$compile_rpath"
  2748 	  relink_command="$finalize_var$finalize_command$finalize_rpath"
  2749 	fi
  2750       fi
  2751 
  2752       # Replace the output file specification.
  2753       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
  2754       
  2755       # Delete the old output files.
  2756       $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
  2757 
  2758       $show "$link_command"
  2759       $run eval "$link_command" || exit $?
  2760 
  2761       # Now create the wrapper script.
  2762       $show "creating $output"
  2763 
  2764       # Quote the relink command for shipping.
  2765       if test -n "$relink_command"; then
  2766 	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  2767       fi
  2768 
  2769       # Quote $echo for shipping.
  2770       if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
  2771 	case "$0" in
  2772 	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
  2773 	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
  2774 	esac
  2775 	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
  2776       else
  2777 	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
  2778       fi
  2779 
  2780       # Only actually do things if our run command is non-null.
  2781       if test -z "$run"; then
  2782 	# win32 will think the script is a binary if it has
  2783 	# a .exe suffix, so we strip it off here.
  2784 	case $output in
  2785 	  *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
  2786 	esac
  2787 	$rm $output
  2788 	trap "$rm $output; exit 1" 1 2 15
  2789 
  2790 	$echo > $output "\
  2791 #! $SHELL
  2792 
  2793 # $output - temporary wrapper script for $objdir/$outputname
  2794 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  2795 #
  2796 # The $output program cannot be directly executed until all the libtool
  2797 # libraries that it depends on are installed.
  2798 #
  2799 # This wrapper script should never be moved out of the build directory.
  2800 # If it is, it will not operate correctly.
  2801 
  2802 # Sed substitution that helps us do robust quoting.  It backslashifies
  2803 # metacharacters that are still active within double-quoted strings.
  2804 Xsed='sed -e 1s/^X//'
  2805 sed_quote_subst='$sed_quote_subst'
  2806 
  2807 # The HP-UX ksh and POSIX shell print the target directory to stdout
  2808 # if CDPATH is set.
  2809 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
  2810 
  2811 relink_command=\"$relink_command\"
  2812 
  2813 # This environment variable determines our operation mode.
  2814 if test \"\$libtool_install_magic\" = \"$magic\"; then
  2815   # install mode needs the following variable:
  2816   link_against_libtool_libs='$link_against_libtool_libs'
  2817 else
  2818   # When we are sourced in execute mode, \$file and \$echo are already set.
  2819   if test \"\$libtool_execute_magic\" != \"$magic\"; then
  2820     echo=\"$qecho\"
  2821     file=\"\$0\"
  2822     # Make sure echo works.
  2823     if test \"X\$1\" = X--no-reexec; then
  2824       # Discard the --no-reexec flag, and continue.
  2825       shift
  2826     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
  2827       # Yippee, \$echo works!
  2828       :
  2829     else
  2830       # Restart under the correct shell, and then maybe \$echo will work.
  2831       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
  2832     fi
  2833   fi\
  2834 "
  2835 	$echo >> $output "\
  2836 
  2837   # Find the directory that this script lives in.
  2838   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
  2839   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
  2840 
  2841   # Follow symbolic links until we get to the real thisdir.
  2842   file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
  2843   while test -n \"\$file\"; do
  2844     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
  2845 
  2846     # If there was a directory component, then change thisdir.
  2847     if test \"x\$destdir\" != \"x\$file\"; then
  2848       case \"\$destdir\" in
  2849       [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
  2850       *) thisdir=\"\$thisdir/\$destdir\" ;;
  2851       esac
  2852     fi
  2853 
  2854     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
  2855     file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
  2856   done
  2857 
  2858   # Try to get the absolute directory name.
  2859   absdir=\`cd \"\$thisdir\" && pwd\`
  2860   test -n \"\$absdir\" && thisdir=\"\$absdir\"
  2861 "
  2862 
  2863 	if test "$fast_install" = yes; then
  2864 	  echo >> $output "\
  2865   program=lt-'$outputname'
  2866   progdir=\"\$thisdir/$objdir\"
  2867   
  2868   if test ! -f \"\$progdir/\$program\" || \\
  2869      { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
  2870        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
  2871 
  2872     file=\"\$\$-\$program\"
  2873 
  2874     if test ! -d \"\$progdir\"; then
  2875       $mkdir \"\$progdir\"
  2876     else
  2877       $rm \"\$progdir/\$file\"
  2878     fi"
  2879 
  2880 	  echo >> $output "\
  2881 
  2882     # relink executable if necessary
  2883     if test -n \"\$relink_command\"; then
  2884       if (cd \"\$thisdir\" && eval \$relink_command); then :
  2885       else
  2886 	$rm \"\$progdir/\$file\"
  2887 	exit 1
  2888       fi
  2889     fi
  2890 
  2891     $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
  2892     { $rm \"\$progdir/\$program\";
  2893       $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
  2894     $rm \"\$progdir/\$file\"
  2895   fi"
  2896 	else
  2897 	  echo >> $output "\
  2898   program='$outputname'
  2899   progdir=\"\$thisdir/$objdir\"
  2900 "
  2901 	fi
  2902 
  2903 	echo >> $output "\
  2904 
  2905   if test -f \"\$progdir/\$program\"; then"
  2906 
  2907 	# Export our shlibpath_var if we have one.
  2908 	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
  2909 	  $echo >> $output "\
  2910     # Add our own library path to $shlibpath_var
  2911     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
  2912 
  2913     # Some systems cannot cope with colon-terminated $shlibpath_var
  2914     # The second colon is a workaround for a bug in BeOS R4 sed
  2915     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
  2916 
  2917     export $shlibpath_var
  2918 "
  2919 	fi
  2920 
  2921 	# fixup the dll searchpath if we need to.
  2922 	if test -n "$dllsearchpath"; then
  2923 	  $echo >> $output "\
  2924     # Add the dll search path components to the executable PATH
  2925     PATH=$dllsearchpath:\$PATH
  2926 "
  2927 	fi
  2928 
  2929 	$echo >> $output "\
  2930     if test \"\$libtool_execute_magic\" != \"$magic\"; then
  2931       # Run the actual program with our arguments.
  2932 "
  2933 	case $host in
  2934 	  # win32 systems need to use the prog path for dll
  2935 	  # lookup to work
  2936 	*-*-cygwin*)
  2937 	  $echo >> $output "\
  2938       exec \$progdir/\$program \${1+\"\$@\"}
  2939 "
  2940 	  ;;
  2941 
  2942 	# Backslashes separate directories on plain windows
  2943 	*-*-mingw | *-*-os2*)
  2944 	  $echo >> $output "\
  2945       exec \$progdir\\\\\$program \${1+\"\$@\"}
  2946 "
  2947 	  ;;
  2948 
  2949 	*)
  2950 	  $echo >> $output "\
  2951       # Export the path to the program.
  2952       PATH=\"\$progdir:\$PATH\"
  2953       export PATH
  2954 
  2955       exec \$program \${1+\"\$@\"}
  2956 "
  2957 	  ;;
  2958 	esac
  2959 	$echo >> $output "\
  2960       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
  2961       exit 1
  2962     fi
  2963   else
  2964     # The program doesn't exist.
  2965     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
  2966     \$echo \"This script is just a wrapper for \$program.\" 1>&2
  2967     echo \"See the $PACKAGE documentation for more information.\" 1>&2
  2968     exit 1
  2969   fi
  2970 fi\
  2971 "
  2972 	chmod +x $output
  2973       fi
  2974       exit 0
  2975       ;;
  2976     esac
  2977 
  2978     # See if we need to build an old-fashioned archive.
  2979     for oldlib in $oldlibs; do
  2980 
  2981       if test "$build_libtool_libs" = convenience; then
  2982 	oldobjs="$libobjs_save"
  2983 	addlibs="$convenience"
  2984 	build_libtool_libs=no
  2985       else
  2986 	if test "$build_libtool_libs" = module; then
  2987 	  oldobjs="$libobjs_save"
  2988 	  build_libtool_libs=no
  2989 	else
  2990 	  oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
  2991 	fi
  2992 	addlibs="$old_convenience"
  2993       fi
  2994 
  2995       if test -n "$addlibs"; then
  2996 	gentop="$output_objdir/${outputname}x"
  2997 	$show "${rm}r $gentop"
  2998 	$run ${rm}r "$gentop"
  2999 	$show "mkdir $gentop"
  3000 	$run mkdir "$gentop"
  3001 	status=$?
  3002 	if test $status -ne 0 && test ! -d "$gentop"; then
  3003 	  exit $status
  3004 	fi
  3005 	generated="$generated $gentop"
  3006 	  
  3007 	# Add in members from convenience archives.
  3008 	for xlib in $addlibs; do
  3009 	  # Extract the objects.
  3010 	  case "$xlib" in
  3011 	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
  3012 	  *) xabs=`pwd`"/$xlib" ;;
  3013 	  esac
  3014 	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
  3015 	  xdir="$gentop/$xlib"
  3016 
  3017 	  $show "${rm}r $xdir"
  3018 	  $run ${rm}r "$xdir"
  3019 	  $show "mkdir $xdir"
  3020 	  $run mkdir "$xdir"
  3021 	  status=$?
  3022 	  if test $status -ne 0 && test ! -d "$xdir"; then
  3023 	    exit $status
  3024 	  fi
  3025 	  $show "(cd $xdir && $AR x $xabs)"
  3026 	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
  3027 
  3028 	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
  3029 	done
  3030       fi
  3031 
  3032       # Do each command in the archive commands.
  3033       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
  3034 	eval cmds=\"$old_archive_from_new_cmds\"
  3035       else
  3036 	# Ensure that we have .o objects in place in case we decided
  3037 	# not to build a shared library, and have fallen back to building
  3038 	# static libs even though --disable-static was passed!
  3039 	for oldobj in $oldobjs; do
  3040 	  if test ! -f $oldobj; then
  3041 	    xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
  3042 	    if test "X$xdir" = "X$oldobj"; then
  3043 	      xdir="."
  3044 	    else
  3045 	      xdir="$xdir"
  3046 	    fi
  3047 	    baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
  3048 	    obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
  3049 	    $show "(cd $xdir && ${LN_S} $obj $baseobj)"
  3050 	    $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
  3051 	  fi
  3052 	done
  3053 
  3054 	eval cmds=\"$old_archive_cmds\"
  3055       fi
  3056       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  3057       for cmd in $cmds; do
  3058 	IFS="$save_ifs"
  3059 	$show "$cmd"
  3060 	$run eval "$cmd" || exit $?
  3061       done
  3062       IFS="$save_ifs"
  3063     done
  3064 
  3065     if test -n "$generated"; then
  3066       $show "${rm}r$generated"
  3067       $run ${rm}r$generated
  3068     fi
  3069 
  3070     # Now create the libtool archive.
  3071     case "$output" in
  3072     *.la)
  3073       old_library=
  3074       test "$build_old_libs" = yes && old_library="$libname.$libext"
  3075       $show "creating $output"
  3076 
  3077       if test -n "$xrpath"; then
  3078 	temp_xrpath=
  3079 	for libdir in $xrpath; do
  3080 	  temp_xrpath="$temp_xrpath -R$libdir"
  3081 	done
  3082 	dependency_libs="$temp_xrpath $dependency_libs"
  3083       fi
  3084 
  3085       # Only create the output if not a dry run.
  3086       if test -z "$run"; then
  3087 	for installed in no yes; do
  3088 	  if test "$installed" = yes; then
  3089 	    if test -z "$install_libdir"; then
  3090 	      break
  3091 	    fi
  3092 	    output="$output_objdir/$outputname"i
  3093 	  fi
  3094 	  $rm $output
  3095 	  $echo > $output "\
  3096 # $outputname - a libtool library file
  3097 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  3098 #
  3099 # Please DO NOT delete this file!
  3100 # It is necessary for linking the library.
  3101 
  3102 # The name that we can dlopen(3).
  3103 dlname='$dlname'
  3104 
  3105 # Names of this library.
  3106 library_names='$library_names'
  3107 
  3108 # The name of the static archive.
  3109 old_library='$old_library'
  3110 
  3111 # Libraries that this one depends upon.
  3112 dependency_libs='$dependency_libs'
  3113 
  3114 # Version information for $libname.
  3115 current=$current
  3116 age=$age
  3117 revision=$revision
  3118 
  3119 # Is this an already installed library?
  3120 installed=$installed
  3121 
  3122 # Directory that this library needs to be installed in:
  3123 libdir='$install_libdir'\
  3124 "
  3125 	done
  3126       fi
  3127 
  3128       # Do a symbolic link so that the libtool archive can be found in
  3129       # LD_LIBRARY_PATH before the program is installed.
  3130       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
  3131       $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
  3132       ;;
  3133     esac
  3134     exit 0
  3135     ;;
  3136 
  3137   # libtool install mode
  3138   install)
  3139     modename="$modename: install"
  3140 
  3141     # There may be an optional sh(1) argument at the beginning of
  3142     # install_prog (especially on Windows NT).
  3143     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
  3144       # Aesthetically quote it.
  3145       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
  3146       case "$arg" in
  3147       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
  3148 	arg="\"$arg\""
  3149 	;;
  3150       esac
  3151       install_prog="$arg "
  3152       arg="$1"
  3153       shift
  3154     else
  3155       install_prog=
  3156       arg="$nonopt"
  3157     fi
  3158 
  3159     # The real first argument should be the name of the installation program.
  3160     # Aesthetically quote it.
  3161     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  3162     case "$arg" in
  3163     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
  3164       arg="\"$arg\""
  3165       ;;
  3166     esac
  3167     install_prog="$install_prog$arg"
  3168 
  3169     # We need to accept at least all the BSD install flags.
  3170     dest=
  3171     files=
  3172     opts=
  3173     prev=
  3174     install_type=
  3175     isdir=no
  3176     stripme=
  3177     for arg
  3178     do
  3179       if test -n "$dest"; then
  3180 	files="$files $dest"
  3181 	dest="$arg"
  3182 	continue
  3183       fi
  3184 
  3185       case "$arg" in
  3186       -d) isdir=yes ;;
  3187       -f) prev="-f" ;;
  3188       -g) prev="-g" ;;
  3189       -m) prev="-m" ;;
  3190       -o) prev="-o" ;;
  3191       -s)
  3192 	stripme=" -s"
  3193 	continue
  3194 	;;
  3195       -*) ;;
  3196 
  3197       *)
  3198 	# If the previous option needed an argument, then skip it.
  3199 	if test -n "$prev"; then
  3200 	  prev=
  3201 	else
  3202 	  dest="$arg"
  3203 	  continue
  3204 	fi
  3205 	;;
  3206       esac
  3207 
  3208       # Aesthetically quote the argument.
  3209       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  3210       case "$arg" in
  3211       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
  3212 	arg="\"$arg\""
  3213 	;;
  3214       esac
  3215       install_prog="$install_prog $arg"
  3216     done
  3217 
  3218     if test -z "$install_prog"; then
  3219       $echo "$modename: you must specify an install program" 1>&2
  3220       $echo "$help" 1>&2
  3221       exit 1
  3222     fi
  3223 
  3224     if test -n "$prev"; then
  3225       $echo "$modename: the \`$prev' option requires an argument" 1>&2
  3226       $echo "$help" 1>&2
  3227       exit 1
  3228     fi
  3229 
  3230     if test -z "$files"; then
  3231       if test -z "$dest"; then
  3232 	$echo "$modename: no file or destination specified" 1>&2
  3233       else
  3234 	$echo "$modename: you must specify a destination" 1>&2
  3235       fi
  3236       $echo "$help" 1>&2
  3237       exit 1
  3238     fi
  3239 
  3240     # Strip any trailing slash from the destination.
  3241     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
  3242 
  3243     # Check to see that the destination is a directory.
  3244     test -d "$dest" && isdir=yes
  3245     if test "$isdir" = yes; then
  3246       destdir="$dest"
  3247       destname=
  3248     else
  3249       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
  3250       test "X$destdir" = "X$dest" && destdir=.
  3251       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
  3252 
  3253       # Not a directory, so check to see that there is only one file specified.
  3254       set dummy $files
  3255       if test $# -gt 2; then
  3256 	$echo "$modename: \`$dest' is not a directory" 1>&2
  3257 	$echo "$help" 1>&2
  3258 	exit 1
  3259       fi
  3260     fi
  3261     case "$destdir" in
  3262     [\\/]* | [A-Za-z]:[\\/]*) ;;
  3263     *)
  3264       for file in $files; do
  3265 	case "$file" in
  3266 	*.lo) ;;
  3267 	*)
  3268 	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
  3269 	  $echo "$help" 1>&2
  3270 	  exit 1
  3271 	  ;;
  3272 	esac
  3273       done
  3274       ;;
  3275     esac
  3276 
  3277     # This variable tells wrapper scripts just to set variables rather
  3278     # than running their programs.
  3279     libtool_install_magic="$magic"
  3280 
  3281     staticlibs=
  3282     future_libdirs=
  3283     current_libdirs=
  3284     for file in $files; do
  3285 
  3286       # Do each installation.
  3287       case "$file" in
  3288       *.a | *.lib)
  3289 	# Do the static libraries later.
  3290 	staticlibs="$staticlibs $file"
  3291 	;;
  3292 
  3293       *.la)
  3294 	# Check to see that this really is a libtool archive.
  3295 	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  3296 	else
  3297 	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
  3298 	  $echo "$help" 1>&2
  3299 	  exit 1
  3300 	fi
  3301 
  3302 	library_names=
  3303 	old_library=
  3304 	# If there is no directory component, then add one.
  3305 	case "$file" in
  3306 	*/* | *\\*) . $file ;;
  3307 	*) . ./$file ;;
  3308 	esac
  3309 
  3310 	# Add the libdir to current_libdirs if it is the destination.
  3311 	if test "X$destdir" = "X$libdir"; then
  3312 	  case "$current_libdirs " in
  3313 	  *" $libdir "*) ;;
  3314 	  *) current_libdirs="$current_libdirs $libdir" ;;
  3315 	  esac
  3316 	else
  3317 	  # Note the libdir as a future libdir.
  3318 	  case "$future_libdirs " in
  3319 	  *" $libdir "*) ;;
  3320 	  *) future_libdirs="$future_libdirs $libdir" ;;
  3321 	  esac
  3322 	fi
  3323 
  3324 	dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
  3325 	test "X$dir" = "X$file/" && dir=
  3326 	dir="$dir$objdir"
  3327 
  3328 	# See the names of the shared library.
  3329 	set dummy $library_names
  3330 	if test -n "$2"; then
  3331 	  realname="$2"
  3332 	  shift
  3333 	  shift
  3334 
  3335 	  # Install the shared library and build the symlinks.
  3336 	  $show "$install_prog $dir/$realname $destdir/$realname"
  3337 	  $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
  3338 
  3339 	  if test $# -gt 0; then
  3340 	    # Delete the old symlinks, and create new ones.
  3341 	    for linkname
  3342 	    do
  3343 	      if test "$linkname" != "$realname"; then
  3344 		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
  3345 		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
  3346 	      fi
  3347 	    done
  3348 	  fi
  3349 
  3350 	  # Do each command in the postinstall commands.
  3351 	  lib="$destdir/$realname"
  3352 	  eval cmds=\"$postinstall_cmds\"
  3353 	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  3354 	  for cmd in $cmds; do
  3355 	    IFS="$save_ifs"
  3356 	    $show "$cmd"
  3357 	    $run eval "$cmd" || exit $?
  3358 	  done
  3359 	  IFS="$save_ifs"
  3360 	fi
  3361 
  3362 	# Install the pseudo-library for information purposes.
  3363 	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  3364 	instname="$dir/$name"i
  3365 	$show "$install_prog $instname $destdir/$name"
  3366 	$run eval "$install_prog $instname $destdir/$name" || exit $?
  3367 
  3368 	# Maybe install the static library, too.
  3369 	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
  3370 	;;
  3371 
  3372       *.lo)
  3373 	# Install (i.e. copy) a libtool object.
  3374 
  3375 	# Figure out destination file name, if it wasn't already specified.
  3376 	if test -n "$destname"; then
  3377 	  destfile="$destdir/$destname"
  3378 	else
  3379 	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  3380 	  destfile="$destdir/$destfile"
  3381 	fi
  3382 
  3383 	# Deduce the name of the destination old-style object file.
  3384 	case "$destfile" in
  3385 	*.lo)
  3386 	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
  3387 	  ;;
  3388 	*.o | *.obj)
  3389 	  staticdest="$destfile"
  3390 	  destfile=
  3391 	  ;;
  3392 	*)
  3393 	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
  3394 	  $echo "$help" 1>&2
  3395 	  exit 1
  3396 	  ;;
  3397 	esac
  3398 
  3399 	# Install the libtool object if requested.
  3400 	if test -n "$destfile"; then
  3401 	  $show "$install_prog $file $destfile"
  3402 	  $run eval "$install_prog $file $destfile" || exit $?
  3403 	fi
  3404 
  3405 	# Install the old object if enabled.
  3406 	if test "$build_old_libs" = yes; then
  3407 	  # Deduce the name of the old-style object file.
  3408 	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
  3409 
  3410 	  $show "$install_prog $staticobj $staticdest"
  3411 	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
  3412 	fi
  3413 	exit 0
  3414 	;;
  3415 
  3416       *)
  3417 	# Figure out destination file name, if it wasn't already specified.
  3418 	if test -n "$destname"; then
  3419 	  destfile="$destdir/$destname"
  3420 	else
  3421 	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  3422 	  destfile="$destdir/$destfile"
  3423 	fi
  3424 
  3425 	# Do a test to see if this is really a libtool program.
  3426 	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  3427 	  link_against_libtool_libs=
  3428 	  relink_command=
  3429 
  3430 	  # If there is no directory component, then add one.
  3431 	  case "$file" in
  3432 	  */* | *\\*) . $file ;;
  3433 	  *) . ./$file ;;
  3434 	  esac
  3435 
  3436 	  # Check the variables that should have been set.
  3437 	  if test -z "$link_against_libtool_libs"; then
  3438 	    $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
  3439 	    exit 1
  3440 	  fi
  3441 
  3442 	  finalize=yes
  3443 	  for lib in $link_against_libtool_libs; do
  3444 	    # Check to see that each library is installed.
  3445 	    libdir=
  3446 	    if test -f "$lib"; then
  3447 	      # If there is no directory component, then add one.
  3448 	      case "$lib" in
  3449 	      */* | *\\*) . $lib ;;
  3450 	      *) . ./$lib ;;
  3451 	      esac
  3452 	    fi
  3453 	    libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
  3454 	    if test -n "$libdir" && test ! -f "$libfile"; then
  3455 	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
  3456 	      finalize=no
  3457 	    fi
  3458 	  done
  3459 
  3460 	  outputname=
  3461 	  if test "$fast_install" = no && test -n "$relink_command"; then
  3462 	    if test "$finalize" = yes && test -z "$run"; then
  3463 	      tmpdir="/tmp"
  3464 	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
  3465 	      tmpdir="$tmpdir/libtool-$$"
  3466 	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
  3467 	      else
  3468 		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
  3469 		continue
  3470 	      fi
  3471 	      outputname="$tmpdir/$file"
  3472 	      # Replace the output file specification.
  3473 	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
  3474 
  3475 	      $show "$relink_command"
  3476 	      if $run eval "$relink_command"; then :
  3477 	      else
  3478 		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
  3479 		${rm}r "$tmpdir"
  3480 		continue
  3481 	      fi
  3482 	      file="$outputname"
  3483 	    else
  3484 	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
  3485 	    fi
  3486 	  else
  3487 	    # Install the binary that we compiled earlier.
  3488 	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
  3489 	  fi
  3490 	fi
  3491 
  3492 	$show "$install_prog$stripme $file $destfile"
  3493 	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
  3494 	test -n "$outputname" && ${rm}r "$tmpdir"
  3495 	;;
  3496       esac
  3497     done
  3498 
  3499     for file in $staticlibs; do
  3500       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  3501 
  3502       # Set up the ranlib parameters.
  3503       oldlib="$destdir/$name"
  3504 
  3505       $show "$install_prog $file $oldlib"
  3506       $run eval "$install_prog \$file \$oldlib" || exit $?
  3507 
  3508       # Do each command in the postinstall commands.
  3509       eval cmds=\"$old_postinstall_cmds\"
  3510       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  3511       for cmd in $cmds; do
  3512 	IFS="$save_ifs"
  3513 	$show "$cmd"
  3514 	$run eval "$cmd" || exit $?
  3515       done
  3516       IFS="$save_ifs"
  3517     done
  3518 
  3519     if test -n "$future_libdirs"; then
  3520       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
  3521     fi
  3522 
  3523     if test -n "$current_libdirs"; then
  3524       # Maybe just do a dry run.
  3525       test -n "$run" && current_libdirs=" -n$current_libdirs"
  3526       exec $SHELL $0 --finish$current_libdirs
  3527       exit 1
  3528     fi
  3529 
  3530     exit 0
  3531     ;;
  3532 
  3533   # libtool finish mode
  3534   finish)
  3535     modename="$modename: finish"
  3536     libdirs="$nonopt"
  3537     admincmds=
  3538 
  3539     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
  3540       for dir
  3541       do
  3542 	libdirs="$libdirs $dir"
  3543       done
  3544 
  3545       for libdir in $libdirs; do
  3546 	if test -n "$finish_cmds"; then
  3547 	  # Do each command in the finish commands.
  3548 	  eval cmds=\"$finish_cmds\"
  3549 	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  3550 	  for cmd in $cmds; do
  3551 	    IFS="$save_ifs"
  3552 	    $show "$cmd"
  3553 	    $run eval "$cmd" || admincmds="$admincmds
  3554        $cmd"
  3555 	  done
  3556 	  IFS="$save_ifs"
  3557 	fi
  3558 	if test -n "$finish_eval"; then
  3559 	  # Do the single finish_eval.
  3560 	  eval cmds=\"$finish_eval\"
  3561 	  $run eval "$cmds" || admincmds="$admincmds
  3562        $cmds"
  3563 	fi
  3564       done
  3565     fi
  3566 
  3567     # Exit here if they wanted silent mode.
  3568     test "$show" = : && exit 0
  3569 
  3570     echo "----------------------------------------------------------------------"
  3571     echo "Libraries have been installed in:"
  3572     for libdir in $libdirs; do
  3573       echo "   $libdir"
  3574     done
  3575     echo
  3576     echo "If you ever happen to want to link against installed libraries"
  3577     echo "in a given directory, LIBDIR, you must either use libtool, and"
  3578     echo "specify the full pathname of the library, or use \`-LLIBDIR'"
  3579     echo "flag during linking and do at least one of the following:"
  3580     if test -n "$shlibpath_var"; then
  3581       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
  3582       echo "     during execution"
  3583     fi
  3584     if test -n "$runpath_var"; then
  3585       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
  3586       echo "     during linking"
  3587     fi
  3588     if test -n "$hardcode_libdir_flag_spec"; then
  3589       libdir=LIBDIR
  3590       eval flag=\"$hardcode_libdir_flag_spec\"
  3591 
  3592       echo "   - use the \`$flag' linker flag"
  3593     fi
  3594     if test -n "$admincmds"; then
  3595       echo "   - have your system administrator run these commands:$admincmds"
  3596     fi
  3597     if test -f /etc/ld.so.conf; then
  3598       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
  3599     fi
  3600     echo
  3601     echo "See any operating system documentation about shared libraries for"
  3602     echo "more information, such as the ld(1) and ld.so(8) manual pages."
  3603     echo "----------------------------------------------------------------------"
  3604     exit 0
  3605     ;;
  3606 
  3607   # libtool execute mode
  3608   execute)
  3609     modename="$modename: execute"
  3610 
  3611     # The first argument is the command name.
  3612     cmd="$nonopt"
  3613     if test -z "$cmd"; then
  3614       $echo "$modename: you must specify a COMMAND" 1>&2
  3615       $echo "$help"
  3616       exit 1
  3617     fi
  3618 
  3619     # Handle -dlopen flags immediately.
  3620     for file in $execute_dlfiles; do
  3621       if test ! -f "$file"; then
  3622 	$echo "$modename: \`$file' is not a file" 1>&2
  3623 	$echo "$help" 1>&2
  3624 	exit 1
  3625       fi
  3626 
  3627       dir=
  3628       case "$file" in
  3629       *.la)
  3630 	# Check to see that this really is a libtool archive.
  3631 	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  3632 	else
  3633 	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
  3634 	  $echo "$help" 1>&2
  3635 	  exit 1
  3636 	fi
  3637 
  3638 	# Read the libtool library.
  3639 	dlname=
  3640 	library_names=
  3641 
  3642 	# If there is no directory component, then add one.
  3643 	case "$file" in
  3644 	*/* | *\\*) . $file ;;
  3645 	*) . ./$file ;;
  3646 	esac
  3647 
  3648 	# Skip this library if it cannot be dlopened.
  3649 	if test -z "$dlname"; then
  3650 	  # Warn if it was a shared library.
  3651 	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
  3652 	  continue
  3653 	fi
  3654 
  3655 	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  3656 	test "X$dir" = "X$file" && dir=.
  3657 
  3658 	if test -f "$dir/$objdir/$dlname"; then
  3659 	  dir="$dir/$objdir"
  3660 	else
  3661 	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
  3662 	  exit 1
  3663 	fi
  3664 	;;
  3665 
  3666       *.lo)
  3667 	# Just add the directory containing the .lo file.
  3668 	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  3669 	test "X$dir" = "X$file" && dir=.
  3670 	;;
  3671 
  3672       *)
  3673 	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
  3674 	continue
  3675 	;;
  3676       esac
  3677 
  3678       # Get the absolute pathname.
  3679       absdir=`cd "$dir" && pwd`
  3680       test -n "$absdir" && dir="$absdir"
  3681 
  3682       # Now add the directory to shlibpath_var.
  3683       if eval "test -z \"\$$shlibpath_var\""; then
  3684 	eval "$shlibpath_var=\"\$dir\""
  3685       else
  3686 	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
  3687       fi
  3688     done
  3689 
  3690     # This variable tells wrapper scripts just to set shlibpath_var
  3691     # rather than running their programs.
  3692     libtool_execute_magic="$magic"
  3693 
  3694     # Check if any of the arguments is a wrapper script.
  3695     args=
  3696     for file
  3697     do
  3698       case "$file" in
  3699       -*) ;;
  3700       *)
  3701 	# Do a test to see if this is really a libtool program.
  3702 	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  3703 	  # If there is no directory component, then add one.
  3704 	  case "$file" in
  3705 	  */* | *\\*) . $file ;;
  3706 	  *) . ./$file ;;
  3707 	  esac
  3708 
  3709 	  # Transform arg to wrapped name.
  3710 	  file="$progdir/$program"
  3711 	fi
  3712 	;;
  3713       esac
  3714       # Quote arguments (to preserve shell metacharacters).
  3715       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
  3716       args="$args \"$file\""
  3717     done
  3718 
  3719     if test -z "$run"; then
  3720       if test -n "$shlibpath_var"; then
  3721         # Export the shlibpath_var.
  3722         eval "export $shlibpath_var"
  3723       fi
  3724 
  3725       # Restore saved enviroment variables
  3726       if test "${save_LC_ALL+set}" = set; then
  3727 	LC_ALL="$save_LC_ALL"; export LC_ALL
  3728       fi
  3729       if test "${save_LANG+set}" = set; then
  3730 	LANG="$save_LANG"; export LANG
  3731       fi
  3732 
  3733       # Now actually exec the command.
  3734       eval "exec \$cmd$args"
  3735 
  3736       $echo "$modename: cannot exec \$cmd$args"
  3737       exit 1
  3738     else
  3739       # Display what would be done.
  3740       if test -n "$shlibpath_var"; then
  3741         eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
  3742         $echo "export $shlibpath_var"
  3743       fi
  3744       $echo "$cmd$args"
  3745       exit 0
  3746     fi
  3747     ;;
  3748 
  3749   # libtool uninstall mode
  3750   uninstall)
  3751     modename="$modename: uninstall"
  3752     rm="$nonopt"
  3753     files=
  3754 
  3755     for arg
  3756     do
  3757       case "$arg" in
  3758       -*) rm="$rm $arg" ;;
  3759       *) files="$files $arg" ;;
  3760       esac
  3761     done
  3762 
  3763     if test -z "$rm"; then
  3764       $echo "$modename: you must specify an RM program" 1>&2
  3765       $echo "$help" 1>&2
  3766       exit 1
  3767     fi
  3768 
  3769     for file in $files; do
  3770       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  3771       test "X$dir" = "X$file" && dir=.
  3772       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  3773 
  3774       rmfiles="$file"
  3775 
  3776       case "$name" in
  3777       *.la)
  3778 	# Possibly a libtool archive, so verify it.
  3779 	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  3780 	  . $dir/$name
  3781 
  3782 	  # Delete the libtool libraries and symlinks.
  3783 	  for n in $library_names; do
  3784 	    rmfiles="$rmfiles $dir/$n"
  3785 	  done
  3786 	  test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
  3787 
  3788 	  $show "$rm $rmfiles"
  3789 	  $run $rm $rmfiles
  3790 
  3791 	  if test -n "$library_names"; then
  3792 	    # Do each command in the postuninstall commands.
  3793 	    eval cmds=\"$postuninstall_cmds\"
  3794 	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  3795 	    for cmd in $cmds; do
  3796 	      IFS="$save_ifs"
  3797 	      $show "$cmd"
  3798 	      $run eval "$cmd"
  3799 	    done
  3800 	    IFS="$save_ifs"
  3801 	  fi
  3802 
  3803 	  if test -n "$old_library"; then
  3804 	    # Do each command in the old_postuninstall commands.
  3805 	    eval cmds=\"$old_postuninstall_cmds\"
  3806 	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
  3807 	    for cmd in $cmds; do
  3808 	      IFS="$save_ifs"
  3809 	      $show "$cmd"
  3810 	      $run eval "$cmd"
  3811 	    done
  3812 	    IFS="$save_ifs"
  3813 	  fi
  3814 
  3815 	  # FIXME: should reinstall the best remaining shared library.
  3816 	fi
  3817 	;;
  3818 
  3819       *.lo)
  3820 	if test "$build_old_libs" = yes; then
  3821 	  oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
  3822 	  rmfiles="$rmfiles $dir/$oldobj"
  3823 	fi
  3824 	$show "$rm $rmfiles"
  3825 	$run $rm $rmfiles
  3826 	;;
  3827 
  3828       *)
  3829 	$show "$rm $rmfiles"
  3830 	$run $rm $rmfiles
  3831 	;;
  3832       esac
  3833     done
  3834     exit 0
  3835     ;;
  3836 
  3837   "")
  3838     $echo "$modename: you must specify a MODE" 1>&2
  3839     $echo "$generic_help" 1>&2
  3840     exit 1
  3841     ;;
  3842   esac
  3843 
  3844   $echo "$modename: invalid operation mode \`$mode'" 1>&2
  3845   $echo "$generic_help" 1>&2
  3846   exit 1
  3847 fi # test -z "$show_help"
  3848 
  3849 # We need to display help for each of the modes.
  3850 case "$mode" in
  3851 "") $echo \
  3852 "Usage: $modename [OPTION]... [MODE-ARG]...
  3853 
  3854 Provide generalized library-building support services.
  3855 
  3856     --config          show all configuration variables
  3857     --debug           enable verbose shell tracing
  3858 -n, --dry-run         display commands without modifying any files
  3859     --features        display basic configuration information and exit
  3860     --finish          same as \`--mode=finish'
  3861     --help            display this help message and exit
  3862     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
  3863     --quiet           same as \`--silent'
  3864     --silent          don't print informational messages
  3865     --version         print version information
  3866 
  3867 MODE must be one of the following:
  3868 
  3869       compile         compile a source file into a libtool object
  3870       execute         automatically set library path, then run a program
  3871       finish          complete the installation of libtool libraries
  3872       install         install libraries or executables
  3873       link            create a library or an executable
  3874       uninstall       remove libraries from an installed directory
  3875 
  3876 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
  3877 a more detailed description of MODE."
  3878   exit 0
  3879   ;;
  3880 
  3881 compile)
  3882   $echo \
  3883 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
  3884 
  3885 Compile a source file into a libtool library object.
  3886 
  3887 This mode accepts the following additional options:
  3888 
  3889   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
  3890   -static           always build a \`.o' file suitable for static linking
  3891 
  3892 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
  3893 from the given SOURCEFILE.
  3894 
  3895 The output file name is determined by removing the directory component from
  3896 SOURCEFILE, then substituting the C source code suffix \`.c' with the
  3897 library object suffix, \`.lo'."
  3898   ;;
  3899 
  3900 execute)
  3901   $echo \
  3902 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
  3903 
  3904 Automatically set library path, then run a program.
  3905 
  3906 This mode accepts the following additional options:
  3907 
  3908   -dlopen FILE      add the directory containing FILE to the library path
  3909 
  3910 This mode sets the library path environment variable according to \`-dlopen'
  3911 flags.
  3912 
  3913 If any of the ARGS are libtool executable wrappers, then they are translated
  3914 into their corresponding uninstalled binary, and any of their required library
  3915 directories are added to the library path.
  3916 
  3917 Then, COMMAND is executed, with ARGS as arguments."
  3918   ;;
  3919 
  3920 finish)
  3921   $echo \
  3922 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
  3923 
  3924 Complete the installation of libtool libraries.
  3925 
  3926 Each LIBDIR is a directory that contains libtool libraries.
  3927 
  3928 The commands that this mode executes may require superuser privileges.  Use
  3929 the \`--dry-run' option if you just want to see what would be executed."
  3930   ;;
  3931 
  3932 install)
  3933   $echo \
  3934 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
  3935 
  3936 Install executables or libraries.
  3937 
  3938 INSTALL-COMMAND is the installation command.  The first component should be
  3939 either the \`install' or \`cp' program.
  3940 
  3941 The rest of the components are interpreted as arguments to that command (only
  3942 BSD-compatible install options are recognized)."
  3943   ;;
  3944 
  3945 link)
  3946   $echo \
  3947 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
  3948 
  3949 Link object files or libraries together to form another library, or to
  3950 create an executable program.
  3951 
  3952 LINK-COMMAND is a command using the C compiler that you would use to create
  3953 a program from several object files.
  3954 
  3955 The following components of LINK-COMMAND are treated specially:
  3956 
  3957   -all-static       do not do any dynamic linking at all
  3958   -avoid-version    do not add a version suffix if possible
  3959   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
  3960   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
  3961   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
  3962   -export-symbols SYMFILE
  3963 		    try to export only the symbols listed in SYMFILE
  3964   -export-symbols-regex REGEX
  3965 		    try to export only the symbols matching REGEX
  3966   -LLIBDIR          search LIBDIR for required installed libraries
  3967   -lNAME            OUTPUT-FILE requires the installed library libNAME
  3968   -module           build a library that can dlopened
  3969   -no-undefined     declare that a library does not refer to external symbols
  3970   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
  3971   -release RELEASE  specify package release information
  3972   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
  3973   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
  3974   -static           do not do any dynamic linking of libtool libraries
  3975   -version-info CURRENT[:REVISION[:AGE]]
  3976 		    specify library version info [each variable defaults to 0]
  3977 
  3978 All other options (arguments beginning with \`-') are ignored.
  3979 
  3980 Every other argument is treated as a filename.  Files ending in \`.la' are
  3981 treated as uninstalled libtool libraries, other files are standard or library
  3982 object files.
  3983 
  3984 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
  3985 only library objects (\`.lo' files) may be specified, and \`-rpath' is
  3986 required, except when creating a convenience library.
  3987 
  3988 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
  3989 using \`ar' and \`ranlib', or on Windows using \`lib'.
  3990 
  3991 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
  3992 is created, otherwise an executable program is created."
  3993   ;;
  3994 
  3995 uninstall)
  3996   $echo \
  3997 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
  3998 
  3999 Remove libraries from an installation directory.
  4000 
  4001 RM is the name of the program to use to delete files associated with each FILE
  4002 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
  4003 to RM.
  4004 
  4005 If FILE is a libtool library, all the files associated with it are deleted.
  4006 Otherwise, only FILE itself is deleted using RM."
  4007   ;;
  4008 
  4009 *)
  4010   $echo "$modename: invalid operation mode \`$mode'" 1>&2
  4011   $echo "$help" 1>&2
  4012   exit 1
  4013   ;;
  4014 esac
  4015 
  4016 echo
  4017 $echo "Try \`$modename --help' for more information about other modes."
  4018 
  4019 exit 0
  4020 
  4021 # Local Variables:
  4022 # mode:shell-script
  4023 # sh-indentation:2
  4024 # End: