ltmain.sh
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:146k
源码类别:

多媒体编程

开发平台:

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