ltmain.sh
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:141k
源码类别:

Windows CE

开发平台:

C/C++

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