ltmain.sh
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:196k
源码类别:

网格计算

开发平台:

Java

  1. *" $lib "*) ;;
  2. *) dlfiles="$dlfiles $lib" ;;
  3. esac
  4.       done
  5.       # Make sure dlprefiles contains only unique files
  6.       old_dlprefiles="$dlprefiles"
  7.       dlprefiles=
  8.       for lib in $old_dlprefiles; do
  9. case "$dlprefiles " in
  10. *" $lib "*) ;;
  11. *) dlprefiles="$dlprefiles $lib" ;;
  12. esac
  13.       done
  14.       if test "$build_libtool_libs" = yes; then
  15. if test -n "$rpath"; then
  16.   case $host in
  17.   *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
  18.     # these systems don't actually have a c library (as such)!
  19.     ;;
  20.   *-*-rhapsody* | *-*-darwin1.[012])
  21.     # Rhapsody C library is in the System framework
  22.     deplibs="$deplibs -framework System"
  23.     ;;
  24.   *-*-netbsd*)
  25.     # Don't link with libc until the a.out ld.so is fixed.
  26.     ;;
  27.   *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  28.     # Do not include libc due to us having libc/libc_r.
  29.     ;;
  30.   *-*-sco3.2v5* | *-*-sco5v6*)
  31.     # Causes problems with __ctype
  32.     ;;
  33.   *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
  34.     # Compiler inserts libc in the correct place for threads to work
  35.     ;;
  36.     *)
  37.     # Add libc to deplibs on all other systems if necessary.
  38.     if test "$build_libtool_need_lc" = "yes"; then
  39.       deplibs="$deplibs -lc"
  40.     fi
  41.     ;;
  42.   esac
  43. fi
  44. # Transform deplibs into only deplibs that can be linked in shared.
  45. name_save=$name
  46. libname_save=$libname
  47. release_save=$release
  48. versuffix_save=$versuffix
  49. major_save=$major
  50. # I'm not sure if I'm treating the release correctly.  I think
  51. # release should show up in the -l (ie -lgmp5) so we don't want to
  52. # add it in twice.  Is that correct?
  53. release=""
  54. versuffix=""
  55. major=""
  56. newdeplibs=
  57. droppeddeps=no
  58. case $deplibs_check_method in
  59. pass_all)
  60.   # Don't check for shared/static.  Everything works.
  61.   # This might be a little naive.  We might want to check
  62.   # whether the library exists or not.  But this is on
  63.   # osf3 & osf4 and I'm not really sure... Just
  64.   # implementing what was already the behavior.
  65.   newdeplibs=$deplibs
  66.   ;;
  67. test_compile)
  68.   # This code stresses the "libraries are programs" paradigm to its
  69.   # limits. Maybe even breaks it.  We compile a program, linking it
  70.   # against the deplibs as a proxy for the library.  Then we can check
  71.   # whether they linked in statically or dynamically with ldd.
  72.   $rm conftest.c
  73.   cat > conftest.c <<EOF
  74.   int main() { return 0; }
  75. EOF
  76.   $rm conftest
  77.   $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
  78.   if test "$?" -eq 0 ; then
  79.     ldd_output=`ldd conftest`
  80.     for i in $deplibs; do
  81.       name=`expr $i : '-l(.*)'`
  82.       # If $name is empty we are operating on a -L argument.
  83.               if test "$name" != "" && test "$name" -ne "0"; then
  84. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  85.   case " $predeps $postdeps " in
  86.   *" $i "*)
  87.     newdeplibs="$newdeplibs $i"
  88.     i=""
  89.     ;;
  90.   esac
  91.         fi
  92. if test -n "$i" ; then
  93.   libname=`eval \$echo "$libname_spec"`
  94.   deplib_matches=`eval \$echo "$library_names_spec"`
  95.   set dummy $deplib_matches
  96.   deplib_match=$2
  97.   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  98.     newdeplibs="$newdeplibs $i"
  99.   else
  100.     droppeddeps=yes
  101.     $echo
  102.     $echo "*** Warning: dynamic linker does not accept needed library $i."
  103.     $echo "*** I have the capability to make that library automatically link in when"
  104.     $echo "*** you link to this library.  But I can only do this if you have a"
  105.     $echo "*** shared version of the library, which I believe you do not have"
  106.     $echo "*** because a test_compile did reveal that the linker did not use it for"
  107.     $echo "*** its dynamic dependency list that programs get resolved with at runtime."
  108.   fi
  109. fi
  110.       else
  111. newdeplibs="$newdeplibs $i"
  112.       fi
  113.     done
  114.   else
  115.     # Error occurred in the first compile.  Let's try to salvage
  116.     # the situation: Compile a separate program for each library.
  117.     for i in $deplibs; do
  118.       name=`expr $i : '-l(.*)'`
  119.       # If $name is empty we are operating on a -L argument.
  120.               if test "$name" != "" && test "$name" != "0"; then
  121. $rm conftest
  122. $LTCC $LTCFLAGS -o conftest conftest.c $i
  123. # Did it work?
  124. if test "$?" -eq 0 ; then
  125.   ldd_output=`ldd conftest`
  126.   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  127.     case " $predeps $postdeps " in
  128.     *" $i "*)
  129.       newdeplibs="$newdeplibs $i"
  130.       i=""
  131.       ;;
  132.     esac
  133.   fi
  134.   if test -n "$i" ; then
  135.     libname=`eval \$echo "$libname_spec"`
  136.     deplib_matches=`eval \$echo "$library_names_spec"`
  137.     set dummy $deplib_matches
  138.     deplib_match=$2
  139.     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  140.       newdeplibs="$newdeplibs $i"
  141.     else
  142.       droppeddeps=yes
  143.       $echo
  144.       $echo "*** Warning: dynamic linker does not accept needed library $i."
  145.       $echo "*** I have the capability to make that library automatically link in when"
  146.       $echo "*** you link to this library.  But I can only do this if you have a"
  147.       $echo "*** shared version of the library, which you do not appear to have"
  148.       $echo "*** because a test_compile did reveal that the linker did not use this one"
  149.       $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
  150.     fi
  151.   fi
  152. else
  153.   droppeddeps=yes
  154.   $echo
  155.   $echo "*** Warning!  Library $i is needed by this library but I was not able to"
  156.   $echo "***  make it link in!  You will probably need to install it or some"
  157.   $echo "*** library that it depends on before this library will be fully"
  158.   $echo "*** functional.  Installing it before continuing would be even better."
  159. fi
  160.       else
  161. newdeplibs="$newdeplibs $i"
  162.       fi
  163.     done
  164.   fi
  165.   ;;
  166. file_magic*)
  167.   set dummy $deplibs_check_method
  168.   file_magic_regex=`expr "$deplibs_check_method" : "$2 (.*)"`
  169.   for a_deplib in $deplibs; do
  170.     name=`expr $a_deplib : '-l(.*)'`
  171.     # If $name is empty we are operating on a -L argument.
  172.             if test "$name" != "" && test  "$name" != "0"; then
  173.       if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  174. case " $predeps $postdeps " in
  175. *" $a_deplib "*)
  176.   newdeplibs="$newdeplibs $a_deplib"
  177.   a_deplib=""
  178.   ;;
  179. esac
  180.       fi
  181.       if test -n "$a_deplib" ; then
  182. libname=`eval \$echo "$libname_spec"`
  183. for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
  184.   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  185.   for potent_lib in $potential_libs; do
  186.       # Follow soft links.
  187.       if ls -lLd "$potent_lib" 2>/dev/null 
  188.  | grep " -> " >/dev/null; then
  189. continue
  190.       fi
  191.       # The statement above tries to avoid entering an
  192.       # endless loop below, in case of cyclic links.
  193.       # We might still enter an endless loop, since a link
  194.       # loop can be closed while we follow links,
  195.       # but so what?
  196.       potlib="$potent_lib"
  197.       while test -h "$potlib" 2>/dev/null; do
  198. potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
  199. case $potliblink in
  200. [\/]* | [A-Za-z]:[\/]*) potlib="$potliblink";;
  201. *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
  202. esac
  203.       done
  204.       # It is ok to link against an archive when
  205.       # building a shared library.
  206.       if $AR -t $potlib > /dev/null 2>&1; then
  207.         newdeplibs="$newdeplibs $a_deplib"
  208.         a_deplib=""
  209.         break 2
  210.       fi
  211.       if eval $file_magic_cmd "$potlib" 2>/dev/null 
  212.  | ${SED} 10q 
  213.  | $EGREP "$file_magic_regex" > /dev/null; then
  214. newdeplibs="$newdeplibs $a_deplib"
  215. a_deplib=""
  216. break 2
  217.       fi
  218.   done
  219. done
  220.       fi
  221.       if test -n "$a_deplib" ; then
  222. droppeddeps=yes
  223. $echo
  224. $echo "*** Warning: linker path does not have real file for library $a_deplib."
  225. $echo "*** I have the capability to make that library automatically link in when"
  226. $echo "*** you link to this library.  But I can only do this if you have a"
  227. $echo "*** shared version of the library, which you do not appear to have"
  228. $echo "*** because I did check the linker path looking for a file starting"
  229. if test -z "$potlib" ; then
  230.   $echo "*** with $libname but no candidates were found. (...for file magic test)"
  231. else
  232.   $echo "*** with $libname and none of the candidates passed a file format test"
  233.   $echo "*** using a file magic. Last file checked: $potlib"
  234. fi
  235.       fi
  236.     else
  237.       # Add a -L argument.
  238.       newdeplibs="$newdeplibs $a_deplib"
  239.     fi
  240.   done # Gone through all deplibs.
  241.   ;;
  242. match_pattern*)
  243.   set dummy $deplibs_check_method
  244.   match_pattern_regex=`expr "$deplibs_check_method" : "$2 (.*)"`
  245.   for a_deplib in $deplibs; do
  246.     name=`expr $a_deplib : '-l(.*)'`
  247.     # If $name is empty we are operating on a -L argument.
  248.     if test -n "$name" && test "$name" != "0"; then
  249.       if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  250. case " $predeps $postdeps " in
  251. *" $a_deplib "*)
  252.   newdeplibs="$newdeplibs $a_deplib"
  253.   a_deplib=""
  254.   ;;
  255. esac
  256.       fi
  257.       if test -n "$a_deplib" ; then
  258. libname=`eval \$echo "$libname_spec"`
  259. for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
  260.   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  261.   for potent_lib in $potential_libs; do
  262.     potlib="$potent_lib" # see symlink-check above in file_magic test
  263.     if eval $echo "$potent_lib" 2>/dev/null 
  264.         | ${SED} 10q 
  265.         | $EGREP "$match_pattern_regex" > /dev/null; then
  266.       newdeplibs="$newdeplibs $a_deplib"
  267.       a_deplib=""
  268.       break 2
  269.     fi
  270.   done
  271. done
  272.       fi
  273.       if test -n "$a_deplib" ; then
  274. droppeddeps=yes
  275. $echo
  276. $echo "*** Warning: linker path does not have real file for library $a_deplib."
  277. $echo "*** I have the capability to make that library automatically link in when"
  278. $echo "*** you link to this library.  But I can only do this if you have a"
  279. $echo "*** shared version of the library, which you do not appear to have"
  280. $echo "*** because I did check the linker path looking for a file starting"
  281. if test -z "$potlib" ; then
  282.   $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
  283. else
  284.   $echo "*** with $libname and none of the candidates passed a file format test"
  285.   $echo "*** using a regex pattern. Last file checked: $potlib"
  286. fi
  287.       fi
  288.     else
  289.       # Add a -L argument.
  290.       newdeplibs="$newdeplibs $a_deplib"
  291.     fi
  292.   done # Gone through all deplibs.
  293.   ;;
  294. none | unknown | *)
  295.   newdeplibs=""
  296.   tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' 
  297.     -e 's/ -[LR][^ ]*//g'`
  298.   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  299.     for i in $predeps $postdeps ; do
  300.       # can't use Xsed below, because $i might contain '/'
  301.       tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
  302.     done
  303.   fi
  304.   if $echo "X $tmp_deplibs" | $Xsed -e 's/[  ]//g' 
  305.     | grep . >/dev/null; then
  306.     $echo
  307.     if test "X$deplibs_check_method" = "Xnone"; then
  308.       $echo "*** Warning: inter-library dependencies are not supported in this platform."
  309.     else
  310.       $echo "*** Warning: inter-library dependencies are not known to be supported."
  311.     fi
  312.     $echo "*** All declared inter-library dependencies are being dropped."
  313.     droppeddeps=yes
  314.   fi
  315.   ;;
  316. esac
  317. versuffix=$versuffix_save
  318. major=$major_save
  319. release=$release_save
  320. libname=$libname_save
  321. name=$name_save
  322. case $host in
  323. *-*-rhapsody* | *-*-darwin1.[012])
  324.   # On Rhapsody replace the C library is the System framework
  325.   newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
  326.   ;;
  327. esac
  328. if test "$droppeddeps" = yes; then
  329.   if test "$module" = yes; then
  330.     $echo
  331.     $echo "*** Warning: libtool could not satisfy all declared inter-library"
  332.     $echo "*** dependencies of module $libname.  Therefore, libtool will create"
  333.     $echo "*** a static module, that should work as long as the dlopening"
  334.     $echo "*** application is linked with the -dlopen flag."
  335.     if test -z "$global_symbol_pipe"; then
  336.       $echo
  337.       $echo "*** However, this would only work if libtool was able to extract symbol"
  338.       $echo "*** lists from a program, using `nm' or equivalent, but libtool could"
  339.       $echo "*** not find such a program.  So, this module is probably useless."
  340.       $echo "*** `nm' from GNU binutils and a full rebuild may help."
  341.     fi
  342.     if test "$build_old_libs" = no; then
  343.       oldlibs="$output_objdir/$libname.$libext"
  344.       build_libtool_libs=module
  345.       build_old_libs=yes
  346.     else
  347.       build_libtool_libs=no
  348.     fi
  349.   else
  350.     $echo "*** The inter-library dependencies that have been dropped here will be"
  351.     $echo "*** automatically added whenever a program is linked with this library"
  352.     $echo "*** or is declared to -dlopen it."
  353.     if test "$allow_undefined" = no; then
  354.       $echo
  355.       $echo "*** Since this library must not contain undefined symbols,"
  356.       $echo "*** because either the platform does not support them or"
  357.       $echo "*** it was explicitly requested with -no-undefined,"
  358.       $echo "*** libtool will only create a static version of it."
  359.       if test "$build_old_libs" = no; then
  360. oldlibs="$output_objdir/$libname.$libext"
  361. build_libtool_libs=module
  362. build_old_libs=yes
  363.       else
  364. build_libtool_libs=no
  365.       fi
  366.     fi
  367.   fi
  368. fi
  369. # Done checking deplibs!
  370. deplibs=$newdeplibs
  371.       fi
  372.       # move library search paths that coincide with paths to not yet
  373.       # installed libraries to the beginning of the library search list
  374.       new_libs=
  375.       for path in $notinst_path; do
  376. case " $new_libs " in
  377. *" -L$path/$objdir "*) ;;
  378. *)
  379.   case " $deplibs " in
  380.   *" -L$path/$objdir "*)
  381.     new_libs="$new_libs -L$path/$objdir" ;;
  382.   esac
  383.   ;;
  384. esac
  385.       done
  386.       for deplib in $deplibs; do
  387. case $deplib in
  388. -L*)
  389.   case " $new_libs " in
  390.   *" $deplib "*) ;;
  391.   *) new_libs="$new_libs $deplib" ;;
  392.   esac
  393.   ;;
  394. *) new_libs="$new_libs $deplib" ;;
  395. esac
  396.       done
  397.       deplibs="$new_libs"
  398.       # All the library-specific variables (install_libdir is set above).
  399.       library_names=
  400.       old_library=
  401.       dlname=
  402.       # Test again, we may have decided not to build it any more
  403.       if test "$build_libtool_libs" = yes; then
  404. if test "$hardcode_into_libs" = yes; then
  405.   # Hardcode the library paths
  406.   hardcode_libdirs=
  407.   dep_rpath=
  408.   rpath="$finalize_rpath"
  409.   test "$mode" != relink && rpath="$compile_rpath$rpath"
  410.   for libdir in $rpath; do
  411.     if test -n "$hardcode_libdir_flag_spec"; then
  412.       if test -n "$hardcode_libdir_separator"; then
  413. if test -z "$hardcode_libdirs"; then
  414.   hardcode_libdirs="$libdir"
  415. else
  416.   # Just accumulate the unique libdirs.
  417.   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  418.   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  419.     ;;
  420.   *)
  421.     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  422.     ;;
  423.   esac
  424. fi
  425.       else
  426. eval flag="$hardcode_libdir_flag_spec"
  427. dep_rpath="$dep_rpath $flag"
  428.       fi
  429.     elif test -n "$runpath_var"; then
  430.       case "$perm_rpath " in
  431.       *" $libdir "*) ;;
  432.       *) perm_rpath="$perm_rpath $libdir" ;;
  433.       esac
  434.     fi
  435.   done
  436.   # Substitute the hardcoded libdirs into the rpath.
  437.   if test -n "$hardcode_libdir_separator" &&
  438.      test -n "$hardcode_libdirs"; then
  439.     libdir="$hardcode_libdirs"
  440.     if test -n "$hardcode_libdir_flag_spec_ld"; then
  441.       eval dep_rpath="$hardcode_libdir_flag_spec_ld"
  442.     else
  443.       eval dep_rpath="$hardcode_libdir_flag_spec"
  444.     fi
  445.   fi
  446.   if test -n "$runpath_var" && test -n "$perm_rpath"; then
  447.     # We should set the runpath_var.
  448.     rpath=
  449.     for dir in $perm_rpath; do
  450.       rpath="$rpath$dir:"
  451.     done
  452.     eval "$runpath_var='$rpath$$runpath_var'; export $runpath_var"
  453.   fi
  454.   test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
  455. fi
  456. shlibpath="$finalize_shlibpath"
  457. test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
  458. if test -n "$shlibpath"; then
  459.   eval "$shlibpath_var='$shlibpath$$shlibpath_var'; export $shlibpath_var"
  460. fi
  461. # Get the real and link names of the library.
  462. eval shared_ext="$shrext_cmds"
  463. eval library_names="$library_names_spec"
  464. set dummy $library_names
  465. realname="$2"
  466. shift; shift
  467. if test -n "$soname_spec"; then
  468.   eval soname="$soname_spec"
  469. else
  470.   soname="$realname"
  471. fi
  472. if test -z "$dlname"; then
  473.   dlname=$soname
  474. fi
  475. lib="$output_objdir/$realname"
  476. linknames=
  477. for link
  478. do
  479.   linknames="$linknames $link"
  480. done
  481. # Use standard objects if they are pic
  482. test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  483. # Prepare the list of exported symbols
  484. if test -z "$export_symbols"; then
  485.   if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
  486.     $show "generating symbol list for `$libname.la'"
  487.     export_symbols="$output_objdir/$libname.exp"
  488.     $run $rm $export_symbols
  489.     cmds=$export_symbols_cmds
  490.     save_ifs="$IFS"; IFS='~'
  491.     for cmd in $cmds; do
  492.       IFS="$save_ifs"
  493.       eval cmd="$cmd"
  494.       if len=`expr "X$cmd" : ".*"` &&
  495.        test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  496.         $show "$cmd"
  497.         $run eval "$cmd" || exit $?
  498.         skipped_export=false
  499.       else
  500.         # The command line is too long to execute in one step.
  501.         $show "using reloadable object file for export list..."
  502.         skipped_export=:
  503. # Break out early, otherwise skipped_export may be
  504. # set to false by a later but shorter cmd.
  505. break
  506.       fi
  507.     done
  508.     IFS="$save_ifs"
  509.     if test -n "$export_symbols_regex"; then
  510.       $show "$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T""
  511.       $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
  512.       $show "$mv "${export_symbols}T" "$export_symbols""
  513.       $run eval '$mv "${export_symbols}T" "$export_symbols"'
  514.     fi
  515.   fi
  516. fi
  517. if test -n "$export_symbols" && test -n "$include_expsyms"; then
  518.   $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
  519. fi
  520. tmp_deplibs=
  521. for test_deplib in $deplibs; do
  522. case " $convenience " in
  523. *" $test_deplib "*) ;;
  524. *)
  525. tmp_deplibs="$tmp_deplibs $test_deplib"
  526. ;;
  527. esac
  528. done
  529. deplibs="$tmp_deplibs"
  530. if test -n "$convenience"; then
  531.   if test -n "$whole_archive_flag_spec"; then
  532.     save_libobjs=$libobjs
  533.     eval libobjs="$libobjs $whole_archive_flag_spec"
  534.   else
  535.     gentop="$output_objdir/${outputname}x"
  536.     generated="$generated $gentop"
  537.     func_extract_archives $gentop $convenience
  538.     libobjs="$libobjs $func_extract_archives_result"
  539.   fi
  540. fi
  541. if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
  542.   eval flag="$thread_safe_flag_spec"
  543.   linker_flags="$linker_flags $flag"
  544. fi
  545. # Make a backup of the uninstalled library when relinking
  546. if test "$mode" = relink; then
  547.   $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
  548. fi
  549. # Do each of the archive commands.
  550. if test "$module" = yes && test -n "$module_cmds" ; then
  551.   if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  552.     eval test_cmds="$module_expsym_cmds"
  553.     cmds=$module_expsym_cmds
  554.   else
  555.     eval test_cmds="$module_cmds"
  556.     cmds=$module_cmds
  557.   fi
  558. else
  559. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  560.   eval test_cmds="$archive_expsym_cmds"
  561.   cmds=$archive_expsym_cmds
  562. else
  563.   eval test_cmds="$archive_cmds"
  564.   cmds=$archive_cmds
  565.   fi
  566. fi
  567. if test "X$skipped_export" != "X:" &&
  568.    len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
  569.    test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  570.   :
  571. else
  572.   # The command line is too long to link in one step, link piecewise.
  573.   $echo "creating reloadable object files..."
  574.   # Save the value of $output and $libobjs because we want to
  575.   # use them later.  If we have whole_archive_flag_spec, we
  576.   # want to use save_libobjs as it was before
  577.   # whole_archive_flag_spec was expanded, because we can't
  578.   # assume the linker understands whole_archive_flag_spec.
  579.   # This may have to be revisited, in case too many
  580.   # convenience libraries get linked in and end up exceeding
  581.   # the spec.
  582.   if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
  583.     save_libobjs=$libobjs
  584.   fi
  585.   save_output=$output
  586.   output_la=`$echo "X$output" | $Xsed -e "$basename"`
  587.   # Clear the reloadable object creation command queue and
  588.   # initialize k to one.
  589.   test_cmds=
  590.   concat_cmds=
  591.   objlist=
  592.   delfiles=
  593.   last_robj=
  594.   k=1
  595.   output=$output_objdir/$output_la-${k}.$objext
  596.   # Loop over the list of objects to be linked.
  597.   for obj in $save_libobjs
  598.   do
  599.     eval test_cmds="$reload_cmds $objlist $last_robj"
  600.     if test "X$objlist" = X ||
  601.        { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
  602.  test "$len" -le "$max_cmd_len"; }; then
  603.       objlist="$objlist $obj"
  604.     else
  605.       # The command $test_cmds is almost too long, add a
  606.       # command to the queue.
  607.       if test "$k" -eq 1 ; then
  608. # The first file doesn't have a previous command to add.
  609. eval concat_cmds="$reload_cmds $objlist $last_robj"
  610.       else
  611. # All subsequent reloadable object files will link in
  612. # the last one created.
  613. eval concat_cmds="$concat_cmds~$reload_cmds $objlist $last_robj"
  614.       fi
  615.       last_robj=$output_objdir/$output_la-${k}.$objext
  616.       k=`expr $k + 1`
  617.       output=$output_objdir/$output_la-${k}.$objext
  618.       objlist=$obj
  619.       len=1
  620.     fi
  621.   done
  622.   # Handle the remaining objects by creating one last
  623.   # reloadable object file.  All subsequent reloadable object
  624.   # files will link in the last one created.
  625.   test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  626.   eval concat_cmds="${concat_cmds}$reload_cmds $objlist $last_robj"
  627.   if ${skipped_export-false}; then
  628.     $show "generating symbol list for `$libname.la'"
  629.     export_symbols="$output_objdir/$libname.exp"
  630.     $run $rm $export_symbols
  631.     libobjs=$output
  632.     # Append the command to create the export file.
  633.     eval concat_cmds="$concat_cmds~$export_symbols_cmds"
  634.           fi
  635.   # Set up a command to remove the reloadable object files
  636.   # after they are used.
  637.   i=0
  638.   while test "$i" -lt "$k"
  639.   do
  640.     i=`expr $i + 1`
  641.     delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
  642.   done
  643.   $echo "creating a temporary reloadable object file: $output"
  644.   # Loop through the commands generated above and execute them.
  645.   save_ifs="$IFS"; IFS='~'
  646.   for cmd in $concat_cmds; do
  647.     IFS="$save_ifs"
  648.     $show "$cmd"
  649.     $run eval "$cmd" || exit $?
  650.   done
  651.   IFS="$save_ifs"
  652.   libobjs=$output
  653.   # Restore the value of output.
  654.   output=$save_output
  655.   if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
  656.     eval libobjs="$libobjs $whole_archive_flag_spec"
  657.   fi
  658.   # Expand the library linking commands again to reset the
  659.   # value of $libobjs for piecewise linking.
  660.   # Do each of the archive commands.
  661.   if test "$module" = yes && test -n "$module_cmds" ; then
  662.     if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  663.       cmds=$module_expsym_cmds
  664.     else
  665.       cmds=$module_cmds
  666.     fi
  667.   else
  668.   if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  669.     cmds=$archive_expsym_cmds
  670.   else
  671.     cmds=$archive_cmds
  672.     fi
  673.   fi
  674.   # Append the command to remove the reloadable object files
  675.   # to the just-reset $cmds.
  676.   eval cmds="$cmds~$rm $delfiles"
  677. fi
  678. save_ifs="$IFS"; IFS='~'
  679. for cmd in $cmds; do
  680.   IFS="$save_ifs"
  681.   eval cmd="$cmd"
  682.   $show "$cmd"
  683.   $run eval "$cmd" || {
  684.     lt_exit=$?
  685.     # Restore the uninstalled library and exit
  686.     if test "$mode" = relink; then
  687.       $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
  688.     fi
  689.     exit $lt_exit
  690.   }
  691. done
  692. IFS="$save_ifs"
  693. # Restore the uninstalled library and exit
  694. if test "$mode" = relink; then
  695.   $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
  696.   if test -n "$convenience"; then
  697.     if test -z "$whole_archive_flag_spec"; then
  698.       $show "${rm}r $gentop"
  699.       $run ${rm}r "$gentop"
  700.     fi
  701.   fi
  702.   exit $EXIT_SUCCESS
  703. fi
  704. # Create links to the real library.
  705. for linkname in $linknames; do
  706.   if test "$realname" != "$linkname"; then
  707.     $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
  708.     $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
  709.   fi
  710. done
  711. # If -module or -export-dynamic was specified, set the dlname.
  712. if test "$module" = yes || test "$export_dynamic" = yes; then
  713.   # On all known operating systems, these are identical.
  714.   dlname="$soname"
  715. fi
  716.       fi
  717.       ;;
  718.     obj)
  719.       if test -n "$deplibs"; then
  720. $echo "$modename: warning: `-l' and `-L' are ignored for objects" 1>&2
  721.       fi
  722.       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  723. $echo "$modename: warning: `-dlopen' is ignored for objects" 1>&2
  724.       fi
  725.       if test -n "$rpath"; then
  726. $echo "$modename: warning: `-rpath' is ignored for objects" 1>&2
  727.       fi
  728.       if test -n "$xrpath"; then
  729. $echo "$modename: warning: `-R' is ignored for objects" 1>&2
  730.       fi
  731.       if test -n "$vinfo"; then
  732. $echo "$modename: warning: `-version-info' is ignored for objects" 1>&2
  733.       fi
  734.       if test -n "$release"; then
  735. $echo "$modename: warning: `-release' is ignored for objects" 1>&2
  736.       fi
  737.       case $output in
  738.       *.lo)
  739. if test -n "$objs$old_deplibs"; then
  740.   $echo "$modename: cannot build library object `$output' from non-libtool objects" 1>&2
  741.   exit $EXIT_FAILURE
  742. fi
  743. libobj="$output"
  744. obj=`$echo "X$output" | $Xsed -e "$lo2o"`
  745. ;;
  746.       *)
  747. libobj=
  748. obj="$output"
  749. ;;
  750.       esac
  751.       # Delete the old objects.
  752.       $run $rm $obj $libobj
  753.       # Objects from convenience libraries.  This assumes
  754.       # single-version convenience libraries.  Whenever we create
  755.       # different ones for PIC/non-PIC, this we'll have to duplicate
  756.       # the extraction.
  757.       reload_conv_objs=
  758.       gentop=
  759.       # reload_cmds runs $LD directly, so let us get rid of
  760.       # -Wl from whole_archive_flag_spec
  761.       wl=
  762.       if test -n "$convenience"; then
  763. if test -n "$whole_archive_flag_spec"; then
  764.   eval reload_conv_objs="$reload_objs $whole_archive_flag_spec"
  765. else
  766.   gentop="$output_objdir/${obj}x"
  767.   generated="$generated $gentop"
  768.   func_extract_archives $gentop $convenience
  769.   reload_conv_objs="$reload_objs $func_extract_archives_result"
  770. fi
  771.       fi
  772.       # Create the old-style object.
  773.       reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/.'${libext}$'/d' -e '/.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
  774.       output="$obj"
  775.       cmds=$reload_cmds
  776.       save_ifs="$IFS"; IFS='~'
  777.       for cmd in $cmds; do
  778. IFS="$save_ifs"
  779. eval cmd="$cmd"
  780. $show "$cmd"
  781. $run eval "$cmd" || exit $?
  782.       done
  783.       IFS="$save_ifs"
  784.       # Exit if we aren't doing a library object file.
  785.       if test -z "$libobj"; then
  786. if test -n "$gentop"; then
  787.   $show "${rm}r $gentop"
  788.   $run ${rm}r $gentop
  789. fi
  790. exit $EXIT_SUCCESS
  791.       fi
  792.       if test "$build_libtool_libs" != yes; then
  793. if test -n "$gentop"; then
  794.   $show "${rm}r $gentop"
  795.   $run ${rm}r $gentop
  796. fi
  797. # Create an invalid libtool object if no PIC, so that we don't
  798. # accidentally link it into a program.
  799. # $show "echo timestamp > $libobj"
  800. # $run eval "echo timestamp > $libobj" || exit $?
  801. exit $EXIT_SUCCESS
  802.       fi
  803.       if test -n "$pic_flag" || test "$pic_mode" != default; then
  804. # Only do commands if we really have different PIC objects.
  805. reload_objs="$libobjs $reload_conv_objs"
  806. output="$libobj"
  807. cmds=$reload_cmds
  808. save_ifs="$IFS"; IFS='~'
  809. for cmd in $cmds; do
  810.   IFS="$save_ifs"
  811.   eval cmd="$cmd"
  812.   $show "$cmd"
  813.   $run eval "$cmd" || exit $?
  814. done
  815. IFS="$save_ifs"
  816.       fi
  817.       if test -n "$gentop"; then
  818. $show "${rm}r $gentop"
  819. $run ${rm}r $gentop
  820.       fi
  821.       exit $EXIT_SUCCESS
  822.       ;;
  823.     prog)
  824.       case $host in
  825. *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
  826.       esac
  827.       if test -n "$vinfo"; then
  828. $echo "$modename: warning: `-version-info' is ignored for programs" 1>&2
  829.       fi
  830.       if test -n "$release"; then
  831. $echo "$modename: warning: `-release' is ignored for programs" 1>&2
  832.       fi
  833.       if test "$preload" = yes; then
  834. if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
  835.    test "$dlopen_self_static" = unknown; then
  836.   $echo "$modename: warning: `AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
  837. fi
  838.       fi
  839.       case $host in
  840.       *-*-rhapsody* | *-*-darwin1.[012])
  841. # On Rhapsody replace the C library is the System framework
  842. compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
  843. finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
  844. ;;
  845.       esac
  846.       case $host in
  847.       *darwin*)
  848.         # Don't allow lazy linking, it breaks C++ global constructors
  849.         if test "$tagname" = CXX ; then
  850.         compile_command="$compile_command ${wl}-bind_at_load"
  851.         finalize_command="$finalize_command ${wl}-bind_at_load"
  852.         fi
  853.         ;;
  854.       esac
  855.       # move library search paths that coincide with paths to not yet
  856.       # installed libraries to the beginning of the library search list
  857.       new_libs=
  858.       for path in $notinst_path; do
  859. case " $new_libs " in
  860. *" -L$path/$objdir "*) ;;
  861. *)
  862.   case " $compile_deplibs " in
  863.   *" -L$path/$objdir "*)
  864.     new_libs="$new_libs -L$path/$objdir" ;;
  865.   esac
  866.   ;;
  867. esac
  868.       done
  869.       for deplib in $compile_deplibs; do
  870. case $deplib in
  871. -L*)
  872.   case " $new_libs " in
  873.   *" $deplib "*) ;;
  874.   *) new_libs="$new_libs $deplib" ;;
  875.   esac
  876.   ;;
  877. *) new_libs="$new_libs $deplib" ;;
  878. esac
  879.       done
  880.       compile_deplibs="$new_libs"
  881.       compile_command="$compile_command $compile_deplibs"
  882.       finalize_command="$finalize_command $finalize_deplibs"
  883.       if test -n "$rpath$xrpath"; then
  884. # If the user specified any rpath flags, then add them.
  885. for libdir in $rpath $xrpath; do
  886.   # This is the magic to use -rpath.
  887.   case "$finalize_rpath " in
  888.   *" $libdir "*) ;;
  889.   *) finalize_rpath="$finalize_rpath $libdir" ;;
  890.   esac
  891. done
  892.       fi
  893.       # Now hardcode the library paths
  894.       rpath=
  895.       hardcode_libdirs=
  896.       for libdir in $compile_rpath $finalize_rpath; do
  897. if test -n "$hardcode_libdir_flag_spec"; then
  898.   if test -n "$hardcode_libdir_separator"; then
  899.     if test -z "$hardcode_libdirs"; then
  900.       hardcode_libdirs="$libdir"
  901.     else
  902.       # Just accumulate the unique libdirs.
  903.       case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  904.       *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  905. ;;
  906.       *)
  907. hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  908. ;;
  909.       esac
  910.     fi
  911.   else
  912.     eval flag="$hardcode_libdir_flag_spec"
  913.     rpath="$rpath $flag"
  914.   fi
  915. elif test -n "$runpath_var"; then
  916.   case "$perm_rpath " in
  917.   *" $libdir "*) ;;
  918.   *) perm_rpath="$perm_rpath $libdir" ;;
  919.   esac
  920. fi
  921. case $host in
  922. *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
  923.   testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
  924.   case :$dllsearchpath: in
  925.   *":$libdir:"*) ;;
  926.   *) dllsearchpath="$dllsearchpath:$libdir";;
  927.   esac
  928.   case :$dllsearchpath: in
  929.   *":$testbindir:"*) ;;
  930.   *) dllsearchpath="$dllsearchpath:$testbindir";;
  931.   esac
  932.   ;;
  933. esac
  934.       done
  935.       # Substitute the hardcoded libdirs into the rpath.
  936.       if test -n "$hardcode_libdir_separator" &&
  937.  test -n "$hardcode_libdirs"; then
  938. libdir="$hardcode_libdirs"
  939. eval rpath=" $hardcode_libdir_flag_spec"
  940.       fi
  941.       compile_rpath="$rpath"
  942.       rpath=
  943.       hardcode_libdirs=
  944.       for libdir in $finalize_rpath; do
  945. if test -n "$hardcode_libdir_flag_spec"; then
  946.   if test -n "$hardcode_libdir_separator"; then
  947.     if test -z "$hardcode_libdirs"; then
  948.       hardcode_libdirs="$libdir"
  949.     else
  950.       # Just accumulate the unique libdirs.
  951.       case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  952.       *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  953. ;;
  954.       *)
  955. hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  956. ;;
  957.       esac
  958.     fi
  959.   else
  960.     eval flag="$hardcode_libdir_flag_spec"
  961.     rpath="$rpath $flag"
  962.   fi
  963. elif test -n "$runpath_var"; then
  964.   case "$finalize_perm_rpath " in
  965.   *" $libdir "*) ;;
  966.   *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
  967.   esac
  968. fi
  969.       done
  970.       # Substitute the hardcoded libdirs into the rpath.
  971.       if test -n "$hardcode_libdir_separator" &&
  972.  test -n "$hardcode_libdirs"; then
  973. libdir="$hardcode_libdirs"
  974. eval rpath=" $hardcode_libdir_flag_spec"
  975.       fi
  976.       finalize_rpath="$rpath"
  977.       if test -n "$libobjs" && test "$build_old_libs" = yes; then
  978. # Transform all the library objects into standard objects.
  979. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  980. finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  981.       fi
  982.       dlsyms=
  983.       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  984. if test -n "$NM" && test -n "$global_symbol_pipe"; then
  985.   dlsyms="${outputname}S.c"
  986. else
  987.   $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
  988. fi
  989.       fi
  990.       if test -n "$dlsyms"; then
  991. case $dlsyms in
  992. "") ;;
  993. *.c)
  994.   # Discover the nlist of each of the dlfiles.
  995.   nlist="$output_objdir/${outputname}.nm"
  996.   $show "$rm $nlist ${nlist}S ${nlist}T"
  997.   $run $rm "$nlist" "${nlist}S" "${nlist}T"
  998.   # Parse the name list into a source file.
  999.   $show "creating $output_objdir/$dlsyms"
  1000.   test -z "$run" && $echo > "$output_objdir/$dlsyms" "
  1001. /* $dlsyms - symbol resolution table for `$outputname' dlsym emulation. */
  1002. /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
  1003. #ifdef __cplusplus
  1004. extern "C" {
  1005. #endif
  1006. /* Prevent the only kind of declaration conflicts we can make. */
  1007. #define lt_preloaded_symbols some_other_symbol
  1008. /* External symbol declarations for the compiler. */
  1009. "
  1010.   if test "$dlself" = yes; then
  1011.     $show "generating symbol list for `$output'"
  1012.     test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
  1013.     # Add our own program objects to the symbol list.
  1014.     progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  1015.     for arg in $progfiles; do
  1016.       $show "extracting global C symbols from `$arg'"
  1017.       $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
  1018.     done
  1019.     if test -n "$exclude_expsyms"; then
  1020.       $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
  1021.       $run eval '$mv "$nlist"T "$nlist"'
  1022.     fi
  1023.     if test -n "$export_symbols_regex"; then
  1024.       $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
  1025.       $run eval '$mv "$nlist"T "$nlist"'
  1026.     fi
  1027.     # Prepare the list of exported symbols
  1028.     if test -z "$export_symbols"; then
  1029.       export_symbols="$output_objdir/$outputname.exp"
  1030.       $run $rm $export_symbols
  1031.       $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* (.*)$/1/p' "'< "$nlist" > "$export_symbols"'
  1032.               case $host in
  1033.               *cygwin* | *mingw* )
  1034.         $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
  1035. $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
  1036.                 ;;
  1037.               esac
  1038.     else
  1039.       $run eval "${SED} -e 's/([].[*^$])/\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
  1040.       $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
  1041.       $run eval 'mv "$nlist"T "$nlist"'
  1042.               case $host in
  1043.               *cygwin* | *mingw* )
  1044.         $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
  1045. $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
  1046.                 ;;
  1047.               esac
  1048.     fi
  1049.   fi
  1050.   for arg in $dlprefiles; do
  1051.     $show "extracting global C symbols from `$arg'"
  1052.     name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
  1053.     $run eval '$echo ": $name " >> "$nlist"'
  1054.     $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
  1055.   done
  1056.   if test -z "$run"; then
  1057.     # Make sure we have at least an empty file.
  1058.     test -f "$nlist" || : > "$nlist"
  1059.     if test -n "$exclude_expsyms"; then
  1060.       $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
  1061.       $mv "$nlist"T "$nlist"
  1062.     fi
  1063.     # Try sorting and uniquifying the output.
  1064.     if grep -v "^: " < "$nlist" |
  1065. if sort -k 3 </dev/null >/dev/null 2>&1; then
  1066.   sort -k 3
  1067. else
  1068.   sort +2
  1069. fi |
  1070. uniq > "$nlist"S; then
  1071.       :
  1072.     else
  1073.       grep -v "^: " < "$nlist" > "$nlist"S
  1074.     fi
  1075.     if test -f "$nlist"S; then
  1076.       eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
  1077.     else
  1078.       $echo '/* NONE */' >> "$output_objdir/$dlsyms"
  1079.     fi
  1080.     $echo >> "$output_objdir/$dlsyms" "
  1081. #undef lt_preloaded_symbols
  1082. #if defined (__STDC__) && __STDC__
  1083. # define lt_ptr void *
  1084. #else
  1085. # define lt_ptr char *
  1086. # define const
  1087. #endif
  1088. /* The mapping between symbol names and symbols. */
  1089. "
  1090.     case $host in
  1091.     *cygwin* | *mingw* )
  1092.   $echo >> "$output_objdir/$dlsyms" "
  1093. /* DATA imports from DLLs on WIN32 can't be const, because
  1094.    runtime relocations are performed -- see ld's documentation
  1095.    on pseudo-relocs */
  1096. struct {
  1097. "
  1098.       ;;
  1099.     * )
  1100.   $echo >> "$output_objdir/$dlsyms" "
  1101. const struct {
  1102. "
  1103.       ;;
  1104.     esac
  1105.   $echo >> "$output_objdir/$dlsyms" "
  1106.   const char *name;
  1107.   lt_ptr address;
  1108. }
  1109. lt_preloaded_symbols[] =
  1110. {
  1111. "
  1112.     eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
  1113.     $echo >> "$output_objdir/$dlsyms" "
  1114.   {0, (lt_ptr) 0}
  1115. };
  1116. /* This works around a problem in FreeBSD linker */
  1117. #ifdef FREEBSD_WORKAROUND
  1118. static const void *lt_preloaded_setup() {
  1119.   return lt_preloaded_symbols;
  1120. }
  1121. #endif
  1122. #ifdef __cplusplus
  1123. }
  1124. #endif
  1125. "
  1126.   fi
  1127.   pic_flag_for_symtable=
  1128.   case $host in
  1129.   # compiling the symbol table file with pic_flag works around
  1130.   # a FreeBSD bug that causes programs to crash when -lm is
  1131.   # linked before any other PIC object.  But we must not use
  1132.   # pic_flag when linking with -static.  The problem exists in
  1133.   # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
  1134.   *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
  1135.     case "$compile_command " in
  1136.     *" -static "*) ;;
  1137.     *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
  1138.     esac;;
  1139.   *-*-hpux*)
  1140.     case "$compile_command " in
  1141.     *" -static "*) ;;
  1142.     *) pic_flag_for_symtable=" $pic_flag";;
  1143.     esac
  1144.   esac
  1145.   # Now compile the dynamic symbol file.
  1146.   $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")"
  1147.   $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
  1148.   # Clean up the generated files.
  1149.   $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
  1150.   $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
  1151.   # Transform the symbol file into the correct name.
  1152.           case $host in
  1153.           *cygwin* | *mingw* )
  1154.             if test -f "$output_objdir/${outputname}.def" ; then
  1155.               compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
  1156.               finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
  1157.             else
  1158.               compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  1159.               finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  1160.              fi
  1161.             ;;
  1162.           * )
  1163.             compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  1164.             finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  1165.             ;;
  1166.           esac
  1167.   ;;
  1168. *)
  1169.   $echo "$modename: unknown suffix for `$dlsyms'" 1>&2
  1170.   exit $EXIT_FAILURE
  1171.   ;;
  1172. esac
  1173.       else
  1174. # We keep going just in case the user didn't refer to
  1175. # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
  1176. # really was required.
  1177. # Nullify the symbol file.
  1178. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
  1179. finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
  1180.       fi
  1181.       if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
  1182. # Replace the output file specification.
  1183. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  1184. link_command="$compile_command$compile_rpath"
  1185. # We have no uninstalled library dependencies, so finalize right now.
  1186. $show "$link_command"
  1187. $run eval "$link_command"
  1188. exit_status=$?
  1189. # Delete the generated files.
  1190. if test -n "$dlsyms"; then
  1191.   $show "$rm $output_objdir/${outputname}S.${objext}"
  1192.   $run $rm "$output_objdir/${outputname}S.${objext}"
  1193. fi
  1194. exit $exit_status
  1195.       fi
  1196.       if test -n "$shlibpath_var"; then
  1197. # We should set the shlibpath_var
  1198. rpath=
  1199. for dir in $temp_rpath; do
  1200.   case $dir in
  1201.   [\/]* | [A-Za-z]:[\/]*)
  1202.     # Absolute path.
  1203.     rpath="$rpath$dir:"
  1204.     ;;
  1205.   *)
  1206.     # Relative path: add a thisdir entry.
  1207.     rpath="$rpath$thisdir/$dir:"
  1208.     ;;
  1209.   esac
  1210. done
  1211. temp_rpath="$rpath"
  1212.       fi
  1213.       if test -n "$compile_shlibpath$finalize_shlibpath"; then
  1214. compile_command="$shlibpath_var="$compile_shlibpath$finalize_shlibpath$$shlibpath_var" $compile_command"
  1215.       fi
  1216.       if test -n "$finalize_shlibpath"; then
  1217. finalize_command="$shlibpath_var="$finalize_shlibpath$$shlibpath_var" $finalize_command"
  1218.       fi
  1219.       compile_var=
  1220.       finalize_var=
  1221.       if test -n "$runpath_var"; then
  1222. if test -n "$perm_rpath"; then
  1223.   # We should set the runpath_var.
  1224.   rpath=
  1225.   for dir in $perm_rpath; do
  1226.     rpath="$rpath$dir:"
  1227.   done
  1228.   compile_var="$runpath_var="$rpath$$runpath_var" "
  1229. fi
  1230. if test -n "$finalize_perm_rpath"; then
  1231.   # We should set the runpath_var.
  1232.   rpath=
  1233.   for dir in $finalize_perm_rpath; do
  1234.     rpath="$rpath$dir:"
  1235.   done
  1236.   finalize_var="$runpath_var="$rpath$$runpath_var" "
  1237. fi
  1238.       fi
  1239.       if test "$no_install" = yes; then
  1240. # We don't need to create a wrapper script.
  1241. link_command="$compile_var$compile_command$compile_rpath"
  1242. # Replace the output file specification.
  1243. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  1244. # Delete the old output file.
  1245. $run $rm $output
  1246. # Link the executable and exit
  1247. $show "$link_command"
  1248. $run eval "$link_command" || exit $?
  1249. exit $EXIT_SUCCESS
  1250.       fi
  1251.       if test "$hardcode_action" = relink; then
  1252. # Fast installation is not supported
  1253. link_command="$compile_var$compile_command$compile_rpath"
  1254. relink_command="$finalize_var$finalize_command$finalize_rpath"
  1255. $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
  1256. $echo "$modename: `$output' will be relinked during installation" 1>&2
  1257.       else
  1258. if test "$fast_install" != no; then
  1259.   link_command="$finalize_var$compile_command$finalize_rpath"
  1260.   if test "$fast_install" = yes; then
  1261.     relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%$progdir/$file%g'`
  1262.   else
  1263.     # fast_install is set to needless
  1264.     relink_command=
  1265.   fi
  1266. else
  1267.   link_command="$compile_var$compile_command$compile_rpath"
  1268.   relink_command="$finalize_var$finalize_command$finalize_rpath"
  1269. fi
  1270.       fi
  1271.       # Replace the output file specification.
  1272.       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
  1273.       # Delete the old output files.
  1274.       $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
  1275.       $show "$link_command"
  1276.       $run eval "$link_command" || exit $?
  1277.       # Now create the wrapper script.
  1278.       $show "creating $output"
  1279.       # Quote the relink command for shipping.
  1280.       if test -n "$relink_command"; then
  1281. # Preserve any variables that may affect compiler behavior
  1282. for var in $variables_saved_for_relink; do
  1283.   if eval test -z "${$var+set}"; then
  1284.     relink_command="{ test -z "${$var+set}" || unset $var || { $var=; export $var; }; }; $relink_command"
  1285.   elif eval var_value=$$var; test -z "$var_value"; then
  1286.     relink_command="$var=; export $var; $relink_command"
  1287.   else
  1288.     var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
  1289.     relink_command="$var="$var_value"; export $var; $relink_command"
  1290.   fi
  1291. done
  1292. relink_command="(cd `pwd`; $relink_command)"
  1293. relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  1294.       fi
  1295.       # Quote $echo for shipping.
  1296.       if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
  1297. case $progpath in
  1298. [\/]* | [A-Za-z]:[\/]*) qecho="$SHELL $progpath --fallback-echo";;
  1299. *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
  1300. esac
  1301. qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
  1302.       else
  1303. qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
  1304.       fi
  1305.       # Only actually do things if our run command is non-null.
  1306.       if test -z "$run"; then
  1307. # win32 will think the script is a binary if it has
  1308. # a .exe suffix, so we strip it off here.
  1309. case $output in
  1310.   *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
  1311. esac
  1312. # test for cygwin because mv fails w/o .exe extensions
  1313. case $host in
  1314.   *cygwin*)
  1315.     exeext=.exe
  1316.     outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
  1317.   *) exeext= ;;
  1318. esac
  1319. case $host in
  1320.   *cygwin* | *mingw* )
  1321.             output_name=`basename $output`
  1322.             output_path=`dirname $output`
  1323.             cwrappersource="$output_path/$objdir/lt-$output_name.c"
  1324.             cwrapper="$output_path/$output_name.exe"
  1325.             $rm $cwrappersource $cwrapper
  1326.             trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
  1327.     cat > $cwrappersource <<EOF
  1328. /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
  1329.    Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  1330.    The $output program cannot be directly executed until all the libtool
  1331.    libraries that it depends on are installed.
  1332.    This wrapper executable should never be moved out of the build directory.
  1333.    If it is, it will not operate correctly.
  1334.    Currently, it simply execs the wrapper *script* "/bin/sh $output",
  1335.    but could eventually absorb all of the scripts functionality and
  1336.    exec $objdir/$outputname directly.
  1337. */
  1338. EOF
  1339.     cat >> $cwrappersource<<"EOF"
  1340. #include <stdio.h>
  1341. #include <stdlib.h>
  1342. #include <unistd.h>
  1343. #include <malloc.h>
  1344. #include <stdarg.h>
  1345. #include <assert.h>
  1346. #include <string.h>
  1347. #include <ctype.h>
  1348. #include <sys/stat.h>
  1349. #if defined(PATH_MAX)
  1350. # define LT_PATHMAX PATH_MAX
  1351. #elif defined(MAXPATHLEN)
  1352. # define LT_PATHMAX MAXPATHLEN
  1353. #else
  1354. # define LT_PATHMAX 1024
  1355. #endif
  1356. #ifndef DIR_SEPARATOR
  1357. # define DIR_SEPARATOR '/'
  1358. # define PATH_SEPARATOR ':'
  1359. #endif
  1360. #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || 
  1361.   defined (__OS2__)
  1362. # define HAVE_DOS_BASED_FILE_SYSTEM
  1363. # ifndef DIR_SEPARATOR_2
  1364. #  define DIR_SEPARATOR_2 '\'
  1365. # endif
  1366. # ifndef PATH_SEPARATOR_2
  1367. #  define PATH_SEPARATOR_2 ';'
  1368. # endif
  1369. #endif
  1370. #ifndef DIR_SEPARATOR_2
  1371. # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
  1372. #else /* DIR_SEPARATOR_2 */
  1373. # define IS_DIR_SEPARATOR(ch) 
  1374.         (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
  1375. #endif /* DIR_SEPARATOR_2 */
  1376. #ifndef PATH_SEPARATOR_2
  1377. # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
  1378. #else /* PATH_SEPARATOR_2 */
  1379. # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
  1380. #endif /* PATH_SEPARATOR_2 */
  1381. #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
  1382. #define XFREE(stale) do { 
  1383.   if (stale) { free ((void *) stale); stale = 0; } 
  1384. } while (0)
  1385. /* -DDEBUG is fairly common in CFLAGS.  */
  1386. #undef DEBUG
  1387. #if defined DEBUGWRAPPER
  1388. # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
  1389. #else
  1390. # define DEBUG(format, ...)
  1391. #endif
  1392. const char *program_name = NULL;
  1393. void * xmalloc (size_t num);
  1394. char * xstrdup (const char *string);
  1395. const char * base_name (const char *name);
  1396. char * find_executable(const char *wrapper);
  1397. int    check_executable(const char *path);
  1398. char * strendzap(char *str, const char *pat);
  1399. void lt_fatal (const char *message, ...);
  1400. int
  1401. main (int argc, char *argv[])
  1402. {
  1403.   char **newargz;
  1404.   int i;
  1405.   program_name = (char *) xstrdup (base_name (argv[0]));
  1406.   DEBUG("(main) argv[0]      : %sn",argv[0]);
  1407.   DEBUG("(main) program_name : %sn",program_name);
  1408.   newargz = XMALLOC(char *, argc+2);
  1409. EOF
  1410.             cat >> $cwrappersource <<EOF
  1411.   newargz[0] = (char *) xstrdup("$SHELL");
  1412. EOF
  1413.             cat >> $cwrappersource <<"EOF"
  1414.   newargz[1] = find_executable(argv[0]);
  1415.   if (newargz[1] == NULL)
  1416.     lt_fatal("Couldn't find %s", argv[0]);
  1417.   DEBUG("(main) found exe at : %sn",newargz[1]);
  1418.   /* we know the script has the same name, without the .exe */
  1419.   /* so make sure newargz[1] doesn't end in .exe */
  1420.   strendzap(newargz[1],".exe");
  1421.   for (i = 1; i < argc; i++)
  1422.     newargz[i+1] = xstrdup(argv[i]);
  1423.   newargz[argc+1] = NULL;
  1424.   for (i=0; i<argc+1; i++)
  1425.   {
  1426.     DEBUG("(main) newargz[%d]   : %sn",i,newargz[i]);
  1427.     ;
  1428.   }
  1429. EOF
  1430.             case $host_os in
  1431.               mingw*)
  1432.                 cat >> $cwrappersource <<EOF
  1433.   execv("$SHELL",(char const **)newargz);
  1434. EOF
  1435.               ;;
  1436.               *)
  1437.                 cat >> $cwrappersource <<EOF
  1438.   execv("$SHELL",newargz);
  1439. EOF
  1440.               ;;
  1441.             esac
  1442.             cat >> $cwrappersource <<"EOF"
  1443.   return 127;
  1444. }
  1445. void *
  1446. xmalloc (size_t num)
  1447. {
  1448.   void * p = (void *) malloc (num);
  1449.   if (!p)
  1450.     lt_fatal ("Memory exhausted");
  1451.   return p;
  1452. }
  1453. char *
  1454. xstrdup (const char *string)
  1455. {
  1456.   return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
  1457. ;
  1458. }
  1459. const char *
  1460. base_name (const char *name)
  1461. {
  1462.   const char *base;
  1463. #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  1464.   /* Skip over the disk name in MSDOS pathnames. */
  1465.   if (isalpha ((unsigned char)name[0]) && name[1] == ':')
  1466.     name += 2;
  1467. #endif
  1468.   for (base = name; *name; name++)
  1469.     if (IS_DIR_SEPARATOR (*name))
  1470.       base = name + 1;
  1471.   return base;
  1472. }
  1473. int
  1474. check_executable(const char * path)
  1475. {
  1476.   struct stat st;
  1477.   DEBUG("(check_executable)  : %sn", path ? (*path ? path : "EMPTY!") : "NULL!");
  1478.   if ((!path) || (!*path))
  1479.     return 0;
  1480.   if ((stat (path, &st) >= 0) &&
  1481.       (
  1482.         /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
  1483. #if defined (S_IXOTH)
  1484.        ((st.st_mode & S_IXOTH) == S_IXOTH) ||
  1485. #endif
  1486. #if defined (S_IXGRP)
  1487.        ((st.st_mode & S_IXGRP) == S_IXGRP) ||
  1488. #endif
  1489.        ((st.st_mode & S_IXUSR) == S_IXUSR))
  1490.       )
  1491.     return 1;
  1492.   else
  1493.     return 0;
  1494. }
  1495. /* Searches for the full path of the wrapper.  Returns
  1496.    newly allocated full path name if found, NULL otherwise */
  1497. char *
  1498. find_executable (const char* wrapper)
  1499. {
  1500.   int has_slash = 0;
  1501.   const char* p;
  1502.   const char* p_next;
  1503.   /* static buffer for getcwd */
  1504.   char tmp[LT_PATHMAX + 1];
  1505.   int tmp_len;
  1506.   char* concat_name;
  1507.   DEBUG("(find_executable)  : %sn", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
  1508.   if ((wrapper == NULL) || (*wrapper == ''))
  1509.     return NULL;
  1510.   /* Absolute path? */
  1511. #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  1512.   if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
  1513.   {
  1514.     concat_name = xstrdup (wrapper);
  1515.     if (check_executable(concat_name))
  1516.       return concat_name;
  1517.     XFREE(concat_name);
  1518.   }
  1519.   else
  1520.   {
  1521. #endif
  1522.     if (IS_DIR_SEPARATOR (wrapper[0]))
  1523.     {
  1524.       concat_name = xstrdup (wrapper);
  1525.       if (check_executable(concat_name))
  1526.         return concat_name;
  1527.       XFREE(concat_name);
  1528.     }
  1529. #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  1530.   }
  1531. #endif
  1532.   for (p = wrapper; *p; p++)
  1533.     if (*p == '/')
  1534.     {
  1535.       has_slash = 1;
  1536.       break;
  1537.     }
  1538.   if (!has_slash)
  1539.   {
  1540.     /* no slashes; search PATH */
  1541.     const char* path = getenv ("PATH");
  1542.     if (path != NULL)
  1543.     {
  1544.       for (p = path; *p; p = p_next)
  1545.       {
  1546.         const char* q;
  1547.         size_t p_len;
  1548.         for (q = p; *q; q++)
  1549.           if (IS_PATH_SEPARATOR(*q))
  1550.             break;
  1551.         p_len = q - p;
  1552.         p_next = (*q == '' ? q : q + 1);
  1553.         if (p_len == 0)
  1554.         {
  1555.           /* empty path: current directory */
  1556.           if (getcwd (tmp, LT_PATHMAX) == NULL)
  1557.             lt_fatal ("getcwd failed");
  1558.           tmp_len = strlen(tmp);
  1559.           concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
  1560.           memcpy (concat_name, tmp, tmp_len);
  1561.           concat_name[tmp_len] = '/';
  1562.           strcpy (concat_name + tmp_len + 1, wrapper);
  1563.         }
  1564.         else
  1565.         {
  1566.           concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
  1567.           memcpy (concat_name, p, p_len);
  1568.           concat_name[p_len] = '/';
  1569.           strcpy (concat_name + p_len + 1, wrapper);
  1570.         }
  1571.         if (check_executable(concat_name))
  1572.           return concat_name;
  1573.         XFREE(concat_name);
  1574.       }
  1575.     }
  1576.     /* not found in PATH; assume curdir */
  1577.   }
  1578.   /* Relative path | not found in path: prepend cwd */
  1579.   if (getcwd (tmp, LT_PATHMAX) == NULL)
  1580.     lt_fatal ("getcwd failed");
  1581.   tmp_len = strlen(tmp);
  1582.   concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
  1583.   memcpy (concat_name, tmp, tmp_len);
  1584.   concat_name[tmp_len] = '/';
  1585.   strcpy (concat_name + tmp_len + 1, wrapper);
  1586.   if (check_executable(concat_name))
  1587.     return concat_name;
  1588.   XFREE(concat_name);
  1589.   return NULL;
  1590. }
  1591. char *
  1592. strendzap(char *str, const char *pat)
  1593. {
  1594.   size_t len, patlen;
  1595.   assert(str != NULL);
  1596.   assert(pat != NULL);
  1597.   len = strlen(str);
  1598.   patlen = strlen(pat);
  1599.   if (patlen <= len)
  1600.   {
  1601.     str += len - patlen;
  1602.     if (strcmp(str, pat) == 0)
  1603.       *str = '';
  1604.   }
  1605.   return str;
  1606. }
  1607. static void
  1608. lt_error_core (int exit_status, const char * mode,
  1609.           const char * message, va_list ap)
  1610. {
  1611.   fprintf (stderr, "%s: %s: ", program_name, mode);
  1612.   vfprintf (stderr, message, ap);
  1613.   fprintf (stderr, ".n");
  1614.   if (exit_status >= 0)
  1615.     exit (exit_status);
  1616. }
  1617. void
  1618. lt_fatal (const char *message, ...)
  1619. {
  1620.   va_list ap;
  1621.   va_start (ap, message);
  1622.   lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
  1623.   va_end (ap);
  1624. }
  1625. EOF
  1626.           # we should really use a build-platform specific compiler
  1627.           # here, but OTOH, the wrappers (shell script and this C one)
  1628.           # are only useful if you want to execute the "real" binary.
  1629.           # Since the "real" binary is built for $host, then this
  1630.           # wrapper might as well be built for $host, too.
  1631.           $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
  1632.           ;;
  1633.         esac
  1634.         $rm $output
  1635.         trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
  1636. $echo > $output "
  1637. #! $SHELL
  1638. # $output - temporary wrapper script for $objdir/$outputname
  1639. # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  1640. #
  1641. # The $output program cannot be directly executed until all the libtool
  1642. # libraries that it depends on are installed.
  1643. #
  1644. # This wrapper script should never be moved out of the build directory.
  1645. # If it is, it will not operate correctly.
  1646. # Sed substitution that helps us do robust quoting.  It backslashifies
  1647. # metacharacters that are still active within double-quoted strings.
  1648. Xsed='${SED} -e 1s/^X//'
  1649. sed_quote_subst='$sed_quote_subst'
  1650. # The HP-UX ksh and POSIX shell print the target directory to stdout
  1651. # if CDPATH is set.
  1652. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
  1653. relink_command="$relink_command"
  1654. # This environment variable determines our operation mode.
  1655. if test "$libtool_install_magic" = "$magic"; then
  1656.   # install mode needs the following variable:
  1657.   notinst_deplibs='$notinst_deplibs'
  1658. else
  1659.   # When we are sourced in execute mode, $file and $echo are already set.
  1660.   if test "$libtool_execute_magic" != "$magic"; then
  1661.     echo="$qecho"
  1662.     file="$0"
  1663.     # Make sure echo works.
  1664.     if test "X$1" = X--no-reexec; then
  1665.       # Discard the --no-reexec flag, and continue.
  1666.       shift
  1667.     elif test "X`($echo 't') 2>/dev/null`" = 'Xt'; then
  1668.       # Yippee, $echo works!
  1669.       :
  1670.     else
  1671.       # Restart under the correct shell, and then maybe $echo will work.
  1672.       exec $SHELL "$0" --no-reexec ${1+"$@"}
  1673.     fi
  1674.   fi
  1675. "
  1676. $echo >> $output "
  1677.   # Find the directory that this script lives in.
  1678.   thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  1679.   test "x$thisdir" = "x$file" && thisdir=.
  1680.   # Follow symbolic links until we get to the real thisdir.
  1681.   file=`ls -ld "$file" | ${SED} -n 's/.*-> //p'`
  1682.   while test -n "$file"; do
  1683.     destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  1684.     # If there was a directory component, then change thisdir.
  1685.     if test "x$destdir" != "x$file"; then
  1686.       case "$destdir" in
  1687.       [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
  1688.       *) thisdir="$thisdir/$destdir" ;;
  1689.       esac
  1690.     fi
  1691.     file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  1692.     file=`ls -ld "$thisdir/$file" | ${SED} -n 's/.*-> //p'`
  1693.   done
  1694.   # Try to get the absolute directory name.
  1695.   absdir=`cd "$thisdir" && pwd`
  1696.   test -n "$absdir" && thisdir="$absdir"
  1697. "
  1698. if test "$fast_install" = yes; then
  1699.   $echo >> $output "
  1700.   program=lt-'$outputname'$exeext
  1701.   progdir="$thisdir/$objdir"
  1702.   if test ! -f "$progdir/$program" || \
  1703.      { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | ${SED} 1q`; \
  1704.        test "X$file" != "X$progdir/$program"; }; then
  1705.     file="$$-$program"
  1706.     if test ! -d "$progdir"; then
  1707.       $mkdir "$progdir"
  1708.     else
  1709.       $rm "$progdir/$file"
  1710.     fi"
  1711.   $echo >> $output "
  1712.     # relink executable if necessary
  1713.     if test -n "$relink_command"; then
  1714.       if relink_command_output=`eval $relink_command 2>&1`; then :
  1715.       else
  1716. $echo "$relink_command_output" >&2
  1717. $rm "$progdir/$file"
  1718. exit $EXIT_FAILURE
  1719.       fi
  1720.     fi
  1721.     $mv "$progdir/$file" "$progdir/$program" 2>/dev/null ||
  1722.     { $rm "$progdir/$program";
  1723.       $mv "$progdir/$file" "$progdir/$program"; }
  1724.     $rm "$progdir/$file"
  1725.   fi"
  1726. else
  1727.   $echo >> $output "
  1728.   program='$outputname'
  1729.   progdir="$thisdir/$objdir"
  1730. "
  1731. fi
  1732. $echo >> $output "
  1733.   if test -f "$progdir/$program"; then"
  1734. # Export our shlibpath_var if we have one.
  1735. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
  1736.   $echo >> $output "
  1737.     # Add our own library path to $shlibpath_var
  1738.     $shlibpath_var="$temp_rpath$$shlibpath_var"
  1739.     # Some systems cannot cope with colon-terminated $shlibpath_var
  1740.     # The second colon is a workaround for a bug in BeOS R4 sed
  1741.     $shlibpath_var=`$echo "X$$shlibpath_var" | $Xsed -e 's/::*$//'`
  1742.     export $shlibpath_var
  1743. "
  1744. fi
  1745. # fixup the dll searchpath if we need to.
  1746. if test -n "$dllsearchpath"; then
  1747.   $echo >> $output "
  1748.     # Add the dll search path components to the executable PATH
  1749.     PATH=$dllsearchpath:$PATH
  1750. "
  1751. fi
  1752. $echo >> $output "
  1753.     if test "$libtool_execute_magic" != "$magic"; then
  1754.       # Run the actual program with our arguments.
  1755.       # Make sure env LD_LIBRARY_PATH does not mess us up
  1756.       if test -n "${LD_LIBRARY_PATH+set}"; then
  1757.         export LD_LIBRARY_PATH=$progdir:$LD_LIBRARY_PATH
  1758.       fi
  1759. "
  1760. case $host in
  1761. # Backslashes separate directories on plain windows
  1762. *-*-mingw | *-*-os2*)
  1763.   $echo >> $output "
  1764.       exec "$progdir\\$program" ${1+"$@"}
  1765. "
  1766.   ;;
  1767. *)
  1768.   $echo >> $output "
  1769.       exec "$progdir/$program" ${1+"$@"}
  1770. "
  1771.   ;;
  1772. esac
  1773. $echo >> $output "
  1774.       $echo "$0: cannot exec $program ${1+"$@"}"
  1775.       exit $EXIT_FAILURE
  1776.     fi
  1777.   else
  1778.     # The program doesn't exist.
  1779.     $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
  1780.     $echo "This script is just a wrapper for $program." 1>&2
  1781.     $echo "See the $PACKAGE documentation for more information." 1>&2
  1782.     exit $EXIT_FAILURE
  1783.   fi
  1784. fi
  1785. "
  1786. chmod +x $output
  1787.       fi
  1788.       exit $EXIT_SUCCESS
  1789.       ;;
  1790.     esac
  1791.     # See if we need to build an old-fashioned archive.
  1792.     for oldlib in $oldlibs; do
  1793.       if test "$build_libtool_libs" = convenience; then
  1794. oldobjs="$libobjs_save"
  1795. addlibs="$convenience"
  1796. build_libtool_libs=no
  1797.       else
  1798. if test "$build_libtool_libs" = module; then
  1799.   oldobjs="$libobjs_save"
  1800.   build_libtool_libs=no
  1801. else
  1802.   oldobjs="$old_deplibs $non_pic_objects"
  1803. fi
  1804. addlibs="$old_convenience"
  1805.       fi
  1806.       if test -n "$addlibs"; then
  1807. gentop="$output_objdir/${outputname}x"
  1808. generated="$generated $gentop"
  1809. func_extract_archives $gentop $addlibs
  1810. oldobjs="$oldobjs $func_extract_archives_result"
  1811.       fi
  1812.       # Do each command in the archive commands.
  1813.       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
  1814.        cmds=$old_archive_from_new_cmds
  1815.       else
  1816. # POSIX demands no paths to be encoded in archives.  We have
  1817. # to avoid creating archives with duplicate basenames if we
  1818. # might have to extract them afterwards, e.g., when creating a
  1819. # static archive out of a convenience library, or when linking
  1820. # the entirety of a libtool archive into another (currently
  1821. # not supported by libtool).
  1822. if (for obj in $oldobjs
  1823.     do
  1824.       $echo "X$obj" | $Xsed -e 's%^.*/%%'
  1825.     done | sort | sort -uc >/dev/null 2>&1); then
  1826.   :
  1827. else
  1828.   $echo "copying selected object files to avoid basename conflicts..."
  1829.   if test -z "$gentop"; then
  1830.     gentop="$output_objdir/${outputname}x"
  1831.     generated="$generated $gentop"
  1832.     $show "${rm}r $gentop"
  1833.     $run ${rm}r "$gentop"
  1834.     $show "$mkdir $gentop"
  1835.     $run $mkdir "$gentop"
  1836.     exit_status=$?
  1837.     if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
  1838.       exit $exit_status
  1839.     fi
  1840.   fi
  1841.   save_oldobjs=$oldobjs
  1842.   oldobjs=
  1843.   counter=1
  1844.   for obj in $save_oldobjs
  1845.   do
  1846.     objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
  1847.     case " $oldobjs " in
  1848.     " ") oldobjs=$obj ;;
  1849.     *[ /]"$objbase "*)
  1850.       while :; do
  1851. # Make sure we don't pick an alternate name that also
  1852. # overlaps.
  1853. newobj=lt$counter-$objbase
  1854. counter=`expr $counter + 1`
  1855. case " $oldobjs " in
  1856. *[ /]"$newobj "*) ;;
  1857. *) if test ! -f "$gentop/$newobj"; then break; fi ;;
  1858. esac
  1859.       done
  1860.       $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
  1861.       $run ln "$obj" "$gentop/$newobj" ||
  1862.       $run cp "$obj" "$gentop/$newobj"
  1863.       oldobjs="$oldobjs $gentop/$newobj"
  1864.       ;;
  1865.     *) oldobjs="$oldobjs $obj" ;;
  1866.     esac
  1867.   done
  1868. fi
  1869. eval cmds="$old_archive_cmds"
  1870. if len=`expr "X$cmds" : ".*"` &&
  1871.      test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  1872.   cmds=$old_archive_cmds
  1873. else
  1874.   # the command line is too long to link in one step, link in parts
  1875.   $echo "using piecewise archive linking..."
  1876.   save_RANLIB=$RANLIB
  1877.   RANLIB=:
  1878.   objlist=
  1879.   concat_cmds=
  1880.   save_oldobjs=$oldobjs
  1881.   # Is there a better way of finding the last object in the list?
  1882.   for obj in $save_oldobjs
  1883.   do
  1884.     last_oldobj=$obj
  1885.   done
  1886.   for obj in $save_oldobjs
  1887.   do
  1888.     oldobjs="$objlist $obj"
  1889.     objlist="$objlist $obj"
  1890.     eval test_cmds="$old_archive_cmds"
  1891.     if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
  1892.        test "$len" -le "$max_cmd_len"; then
  1893.       :
  1894.     else
  1895.       # the above command should be used before it gets too long
  1896.       oldobjs=$objlist
  1897.       if test "$obj" = "$last_oldobj" ; then
  1898.         RANLIB=$save_RANLIB
  1899.       fi
  1900.       test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  1901.       eval concat_cmds="${concat_cmds}$old_archive_cmds"
  1902.       objlist=
  1903.     fi
  1904.   done
  1905.   RANLIB=$save_RANLIB
  1906.   oldobjs=$objlist
  1907.   if test "X$oldobjs" = "X" ; then
  1908.     eval cmds="$concat_cmds"
  1909.   else
  1910.     eval cmds="$concat_cmds~$old_archive_cmds"
  1911.   fi
  1912. fi
  1913.       fi
  1914.       save_ifs="$IFS"; IFS='~'
  1915.       for cmd in $cmds; do
  1916.         eval cmd="$cmd"
  1917. IFS="$save_ifs"
  1918. $show "$cmd"
  1919. $run eval "$cmd" || exit $?
  1920.       done
  1921.       IFS="$save_ifs"
  1922.     done
  1923.     if test -n "$generated"; then
  1924.       $show "${rm}r$generated"
  1925.       $run ${rm}r$generated
  1926.     fi
  1927.     # Now create the libtool archive.
  1928.     case $output in
  1929.     *.la)
  1930.       old_library=
  1931.       test "$build_old_libs" = yes && old_library="$libname.$libext"
  1932.       $show "creating $output"
  1933.       # Preserve any variables that may affect compiler behavior
  1934.       for var in $variables_saved_for_relink; do
  1935. if eval test -z "${$var+set}"; then
  1936.   relink_command="{ test -z "${$var+set}" || unset $var || { $var=; export $var; }; }; $relink_command"
  1937. elif eval var_value=$$var; test -z "$var_value"; then
  1938.   relink_command="$var=; export $var; $relink_command"
  1939. else
  1940.   var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
  1941.   relink_command="$var="$var_value"; export $var; $relink_command"
  1942. fi
  1943.       done
  1944.       # Quote the link command for shipping.
  1945.       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
  1946.       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  1947.       if test "$hardcode_automatic" = yes ; then
  1948. relink_command=
  1949.       fi
  1950.       # Only create the output if not a dry run.
  1951.       if test -z "$run"; then
  1952. for installed in no yes; do
  1953.   if test "$installed" = yes; then
  1954.     if test -z "$install_libdir"; then
  1955.       break
  1956.     fi
  1957.     output="$output_objdir/$outputname"i
  1958.     # Replace all uninstalled libtool libraries with the installed ones
  1959.     newdependency_libs=
  1960.     for deplib in $dependency_libs; do
  1961.       case $deplib in
  1962.       *.la)
  1963. name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
  1964. eval libdir=`${SED} -n -e 's/^libdir=(.*)$/1/p' $deplib`
  1965. if test -z "$libdir"; then
  1966.   $echo "$modename: `$deplib' is not a valid libtool archive" 1>&2
  1967.   exit $EXIT_FAILURE
  1968. fi
  1969. if test "X$EGREP" = X ; then
  1970. EGREP=egrep
  1971. fi
  1972. # We do not want portage's install root ($D) present.  Check only for
  1973. # this if the .la is being installed.
  1974. if test "$installed" = yes && test "$D"; then
  1975.   eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/+:/:g'`
  1976. else
  1977.   mynewdependency_lib="$libdir/$name"
  1978. fi
  1979. # Do not add duplicates
  1980. if test "$mynewdependency_lib"; then
  1981.   my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
  1982.   if test -z "$my_little_ninja_foo_1"; then
  1983.     newdependency_libs="$newdependency_libs $mynewdependency_lib"
  1984.   fi
  1985. fi
  1986. ;;
  1987.   *)
  1988. if test "$installed" = yes; then
  1989.   # Rather use S=WORKDIR if our version of portage supports it.
  1990.   # This is because some ebuild (gcc) do not use $S as buildroot.
  1991.   if test "$PWORKDIR"; then
  1992.     S="$PWORKDIR"
  1993.   fi
  1994.   # We do not want portage's build root ($S) present.
  1995.   my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"`
  1996.   # We do not want portage's install root ($D) present.
  1997.   my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"`
  1998.   if test -n "$my_little_ninja_foo_2" && test "$S"; then
  1999.     mynewdependency_lib=""
  2000.   elif test -n "$my_little_ninja_foo_3" && test "$D"; then
  2001.     eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/+:/:g'`
  2002.   else
  2003.     mynewdependency_lib="$deplib"
  2004.   fi
  2005. else
  2006.   mynewdependency_lib="$deplib"
  2007. fi
  2008. # Do not add duplicates
  2009. if test "$mynewdependency_lib"; then
  2010.   my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
  2011.   if test -z "$my_little_ninja_foo_4"; then
  2012. newdependency_libs="$newdependency_libs $mynewdependency_lib"
  2013.   fi
  2014. fi
  2015. ;;
  2016.       esac
  2017.     done
  2018.     dependency_libs="$newdependency_libs"
  2019.     newdlfiles=
  2020.     for lib in $dlfiles; do
  2021.       name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
  2022.       eval libdir=`${SED} -n -e 's/^libdir=(.*)$/1/p' $lib`
  2023.       if test -z "$libdir"; then
  2024. $echo "$modename: `$lib' is not a valid libtool archive" 1>&2
  2025. exit $EXIT_FAILURE
  2026.       fi
  2027.       newdlfiles="$newdlfiles $libdir/$name"
  2028.     done
  2029.     dlfiles="$newdlfiles"
  2030.     newdlprefiles=
  2031.     for lib in $dlprefiles; do
  2032.       name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
  2033.       eval libdir=`${SED} -n -e 's/^libdir=(.*)$/1/p' $lib`
  2034.       if test -z "$libdir"; then
  2035. $echo "$modename: `$lib' is not a valid libtool archive" 1>&2
  2036. exit $EXIT_FAILURE
  2037.       fi
  2038.       newdlprefiles="$newdlprefiles $libdir/$name"
  2039.     done
  2040.     dlprefiles="$newdlprefiles"
  2041.   else
  2042.     newdlfiles=
  2043.     for lib in $dlfiles; do
  2044.       case $lib in
  2045. [\/]* | [A-Za-z]:[\/]*) abs="$lib" ;;
  2046. *) abs=`pwd`"/$lib" ;;
  2047.       esac
  2048.       newdlfiles="$newdlfiles $abs"
  2049.     done
  2050.     dlfiles="$newdlfiles"
  2051.     newdlprefiles=
  2052.     for lib in $dlprefiles; do
  2053.       case $lib in
  2054. [\/]* | [A-Za-z]:[\/]*) abs="$lib" ;;
  2055. *) abs=`pwd`"/$lib" ;;
  2056.       esac
  2057.       newdlprefiles="$newdlprefiles $abs"
  2058.     done
  2059.     dlprefiles="$newdlprefiles"
  2060.   fi
  2061.   $rm $output
  2062.   # place dlname in correct position for cygwin
  2063.   tdlname=$dlname
  2064.   case $host,$output,$installed,$module,$dlname in
  2065.     *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
  2066.   esac
  2067.   # Do not add duplicates
  2068.   if test "$installed" = yes && test "$D"; then
  2069.     install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/+:/:g'`
  2070.   fi
  2071.   $echo > $output "
  2072. # $outputname - a libtool library file
  2073. # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  2074. #
  2075. # Please DO NOT delete this file!
  2076. # It is necessary for linking the library.
  2077. # The name that we can dlopen(3).
  2078. dlname='$tdlname'
  2079. # Names of this library.
  2080. library_names='$library_names'
  2081. # The name of the static archive.
  2082. old_library='$old_library'
  2083. # Libraries that this one depends upon.
  2084. dependency_libs='$dependency_libs'
  2085. # Version information for $libname.
  2086. current=$current
  2087. age=$age
  2088. revision=$revision
  2089. # Is this an already installed library?
  2090. installed=$installed
  2091. # Should we warn about portability when linking against -modules?
  2092. shouldnotlink=$module
  2093. # Files to dlopen/dlpreopen
  2094. dlopen='$dlfiles'
  2095. dlpreopen='$dlprefiles'
  2096. # Directory that this library needs to be installed in:
  2097. libdir='$install_libdir'"
  2098.   if test "$installed" = no && test "$need_relink" = yes; then
  2099.     $echo >> $output "
  2100. relink_command="$relink_command""
  2101.   fi
  2102. done
  2103.       fi
  2104.       # Do a symbolic link so that the libtool archive can be found in
  2105.       # LD_LIBRARY_PATH before the program is installed.
  2106.       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
  2107.       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
  2108.       ;;
  2109.     esac
  2110.     exit $EXIT_SUCCESS
  2111.     ;;
  2112.   # libtool install mode
  2113.   install)
  2114.     modename="$modename: install"
  2115.     # There may be an optional sh(1) argument at the beginning of
  2116.     # install_prog (especially on Windows NT).
  2117.     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
  2118.        # Allow the use of GNU shtool's install command.
  2119.        $echo "X$nonopt" | grep shtool > /dev/null; then
  2120.       # Aesthetically quote it.
  2121.       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
  2122.       case $arg in
  2123.       *[[~#^&*(){}|;<>?'  ]*|*]*|"")
  2124. arg=""$arg""
  2125. ;;
  2126.       esac
  2127.       install_prog="$arg "
  2128.       arg="$1"
  2129.       shift
  2130.     else
  2131.       install_prog=
  2132.       arg=$nonopt
  2133.     fi
  2134.     # The real first argument should be the name of the installation program.
  2135.     # Aesthetically quote it.
  2136.     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  2137.     case $arg in
  2138.     *[[~#^&*(){}|;<>?'  ]*|*]*|"")
  2139.       arg=""$arg""
  2140.       ;;
  2141.     esac
  2142.     install_prog="$install_prog$arg"
  2143.     # We need to accept at least all the BSD install flags.
  2144.     dest=
  2145.     files=
  2146.     opts=
  2147.     prev=
  2148.     install_type=
  2149.     isdir=no
  2150.     stripme=
  2151.     for arg
  2152.     do
  2153.       if test -n "$dest"; then
  2154. files="$files $dest"
  2155. dest=$arg
  2156. continue
  2157.       fi
  2158.       case $arg in
  2159.       -d) isdir=yes ;;
  2160.       -f) 
  2161.        case " $install_prog " in
  2162. *[\ /]cp *) ;;
  2163. *) prev=$arg ;;
  2164. esac
  2165. ;;
  2166.       -g | -m | -o) prev=$arg ;;
  2167.       -s)
  2168. stripme=" -s"
  2169. continue
  2170. ;;
  2171.       -*)
  2172. ;;
  2173.       *)
  2174. # If the previous option needed an argument, then skip it.
  2175. if test -n "$prev"; then
  2176.   prev=
  2177. else
  2178.   dest=$arg
  2179.   continue
  2180. fi
  2181. ;;
  2182.       esac
  2183.       # Aesthetically quote the argument.
  2184.       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  2185.       case $arg in
  2186.       *[[~#^&*(){}|;<>?'  ]*|*]*|"")
  2187. arg=""$arg""
  2188. ;;
  2189.       esac
  2190.       install_prog="$install_prog $arg"
  2191.     done
  2192.     if test -z "$install_prog"; then
  2193.       $echo "$modename: you must specify an install program" 1>&2
  2194.       $echo "$help" 1>&2
  2195.       exit $EXIT_FAILURE
  2196.     fi
  2197.     if test -n "$prev"; then
  2198.       $echo "$modename: the `$prev' option requires an argument" 1>&2
  2199.       $echo "$help" 1>&2
  2200.       exit $EXIT_FAILURE
  2201.     fi
  2202.     if test -z "$files"; then
  2203.       if test -z "$dest"; then
  2204. $echo "$modename: no file or destination specified" 1>&2
  2205.       else
  2206. $echo "$modename: you must specify a destination" 1>&2
  2207.       fi
  2208.       $echo "$help" 1>&2
  2209.       exit $EXIT_FAILURE
  2210.     fi
  2211.     # Strip any trailing slash from the destination.
  2212.     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
  2213.     # Check to see that the destination is a directory.
  2214.     test -d "$dest" && isdir=yes
  2215.     if test "$isdir" = yes; then
  2216.       destdir="$dest"
  2217.       destname=
  2218.     else
  2219.       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
  2220.       test "X$destdir" = "X$dest" && destdir=.
  2221.       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
  2222.       # Not a directory, so check to see that there is only one file specified.
  2223.       set dummy $files
  2224.       if test "$#" -gt 2; then
  2225. $echo "$modename: `$dest' is not a directory" 1>&2
  2226. $echo "$help" 1>&2
  2227. exit $EXIT_FAILURE
  2228.       fi
  2229.     fi
  2230.     case $destdir in
  2231.     [\/]* | [A-Za-z]:[\/]*) ;;
  2232.     *)
  2233.       for file in $files; do
  2234. case $file in
  2235. *.lo) ;;
  2236. *)
  2237.   $echo "$modename: `$destdir' must be an absolute directory name" 1>&2
  2238.   $echo "$help" 1>&2
  2239.   exit $EXIT_FAILURE
  2240.   ;;
  2241. esac
  2242.       done
  2243.       ;;
  2244.     esac
  2245.     # This variable tells wrapper scripts just to set variables rather
  2246.     # than running their programs.
  2247.     libtool_install_magic="$magic"
  2248.     staticlibs=
  2249.     future_libdirs=
  2250.     current_libdirs=
  2251.     for file in $files; do
  2252.       # Do each installation.
  2253.       case $file in
  2254.       *.$libext)
  2255. # Do the static libraries later.
  2256. staticlibs="$staticlibs $file"
  2257. ;;
  2258.       *.la)
  2259. # Check to see that this really is a libtool archive.
  2260. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  2261. else
  2262.   $echo "$modename: `$file' is not a valid libtool archive" 1>&2
  2263.   $echo "$help" 1>&2
  2264.   exit $EXIT_FAILURE
  2265. fi
  2266. library_names=
  2267. old_library=
  2268. relink_command=
  2269. # If there is no directory component, then add one.
  2270. case $file in
  2271. */* | *\*) . $file ;;
  2272. *) . ./$file ;;
  2273. esac
  2274. # Add the libdir to current_libdirs if it is the destination.
  2275. if test "X$destdir" = "X$libdir"; then
  2276.   case "$current_libdirs " in
  2277.   *" $libdir "*) ;;
  2278.   *) current_libdirs="$current_libdirs $libdir" ;;
  2279.   esac
  2280. else
  2281.   # Note the libdir as a future libdir.
  2282.   case "$future_libdirs " in
  2283.   *" $libdir "*) ;;
  2284.   *) future_libdirs="$future_libdirs $libdir" ;;
  2285.   esac
  2286. fi
  2287. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
  2288. test "X$dir" = "X$file/" && dir=
  2289. dir="$dir$objdir"
  2290. if test -n "$relink_command"; then
  2291.   # Determine the prefix the user has applied to our future dir.
  2292.   inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir$%%"`
  2293.   # Don't allow the user to place us outside of our expected
  2294.   # location b/c this prevents finding dependent libraries that
  2295.   # are installed to the same prefix.
  2296.   # At present, this check doesn't affect windows .dll's that
  2297.   # are installed into $libdir/../bin (currently, that works fine)
  2298.   # but it's something to keep an eye on.
  2299.   if test "$inst_prefix_dir" = "$destdir"; then
  2300.     $echo "$modename: error: cannot install `$file' to a directory not ending in $libdir" 1>&2
  2301.     exit $EXIT_FAILURE
  2302.   fi
  2303.   if test -n "$inst_prefix_dir"; then
  2304.     # Stick the inst_prefix_dir data into the link command.
  2305.     relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
  2306.   else
  2307.     relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
  2308.   fi
  2309.   $echo "$modename: warning: relinking `$file'" 1>&2
  2310.   $show "$relink_command"
  2311.   if $run eval "$relink_command"; then :
  2312.   else
  2313.     $echo "$modename: error: relink `$file' with the above command before installing it" 1>&2
  2314.     exit $EXIT_FAILURE
  2315.   fi
  2316. fi
  2317. # See the names of the shared library.
  2318. set dummy $library_names
  2319. if test -n "$2"; then
  2320.   realname="$2"
  2321.   shift
  2322.   shift
  2323.   srcname="$realname"
  2324.   test -n "$relink_command" && srcname="$realname"T
  2325.   # Install the shared library and build the symlinks.
  2326.   $show "$install_prog $dir/$srcname $destdir/$realname"
  2327.   $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
  2328.   if test -n "$stripme" && test -n "$striplib"; then
  2329.     $show "$striplib $destdir/$realname"
  2330.     $run eval "$striplib $destdir/$realname" || exit $?
  2331.   fi
  2332.   if test "$#" -gt 0; then
  2333.     # Delete the old symlinks, and create new ones.
  2334.     # Try `ln -sf' first, because the `ln' binary might depend on
  2335.     # the symlink we replace!  Solaris /bin/ln does not understand -f,
  2336.     # so we also need to try rm && ln -s.
  2337.     for linkname
  2338.     do
  2339.       if test "$linkname" != "$realname"; then
  2340.                 $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
  2341.                 $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
  2342.       fi
  2343.     done
  2344.   fi
  2345.   # Do each command in the postinstall commands.
  2346.   lib="$destdir/$realname"
  2347.   cmds=$postinstall_cmds
  2348.   save_ifs="$IFS"; IFS='~'
  2349.   for cmd in $cmds; do
  2350.     IFS="$save_ifs"
  2351.     eval cmd="$cmd"
  2352.     $show "$cmd"
  2353.     $run eval "$cmd" || {
  2354.       lt_exit=$?
  2355.       # Restore the uninstalled library and exit
  2356.       if test "$mode" = relink; then
  2357. $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
  2358.       fi
  2359.       exit $lt_exit
  2360.     }
  2361.   done
  2362.   IFS="$save_ifs"
  2363. fi
  2364. # Install the pseudo-library for information purposes.
  2365. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  2366. instname="$dir/$name"i
  2367. $show "$install_prog $instname $destdir/$name"
  2368. $run eval "$install_prog $instname $destdir/$name" || exit $?
  2369. # Maybe install the static library, too.
  2370. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
  2371. ;;
  2372.       *.lo)
  2373. # Install (i.e. copy) a libtool object.
  2374. # Figure out destination file name, if it wasn't already specified.
  2375. if test -n "$destname"; then
  2376.   destfile="$destdir/$destname"
  2377. else
  2378.   destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  2379.   destfile="$destdir/$destfile"
  2380. fi
  2381. # Deduce the name of the destination old-style object file.
  2382. case $destfile in
  2383. *.lo)
  2384.   staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
  2385.   ;;
  2386. *.$objext)
  2387.   staticdest="$destfile"
  2388.   destfile=
  2389.   ;;
  2390. *)
  2391.   $echo "$modename: cannot copy a libtool object to `$destfile'" 1>&2
  2392.   $echo "$help" 1>&2
  2393.   exit $EXIT_FAILURE
  2394.   ;;
  2395. esac
  2396. # Install the libtool object if requested.
  2397. if test -n "$destfile"; then
  2398.   $show "$install_prog $file $destfile"
  2399.   $run eval "$install_prog $file $destfile" || exit $?
  2400. fi
  2401. # Install the old object if enabled.
  2402. if test "$build_old_libs" = yes; then
  2403.   # Deduce the name of the old-style object file.
  2404.   staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
  2405.   $show "$install_prog $staticobj $staticdest"
  2406.   $run eval "$install_prog $staticobj $staticdest" || exit $?
  2407. fi
  2408. exit $EXIT_SUCCESS
  2409. ;;
  2410.       *)
  2411. # Figure out destination file name, if it wasn't already specified.
  2412. if test -n "$destname"; then
  2413.   destfile="$destdir/$destname"
  2414. else
  2415.   destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  2416.   destfile="$destdir/$destfile"
  2417. fi
  2418. # If the file is missing, and there is a .exe on the end, strip it
  2419. # because it is most likely a libtool script we actually want to
  2420. # install
  2421. stripped_ext=""
  2422. case $file in
  2423.   *.exe)
  2424.     if test ! -f "$file"; then
  2425.       file=`$echo $file|${SED} 's,.exe$,,'`
  2426.       stripped_ext=".exe"
  2427.     fi
  2428.     ;;
  2429. esac
  2430. # Do a test to see if this is really a libtool program.
  2431. case $host in
  2432. *cygwin*|*mingw*)
  2433.     wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
  2434.     ;;
  2435. *)
  2436.     wrapper=$file
  2437.     ;;
  2438. esac
  2439. if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
  2440.   notinst_deplibs=
  2441.   relink_command=
  2442.   # Note that it is not necessary on cygwin/mingw to append a dot to
  2443.   # foo even if both foo and FILE.exe exist: automatic-append-.exe
  2444.   # behavior happens only for exec(3), not for open(2)!  Also, sourcing
  2445.   # `FILE.' does not work on cygwin managed mounts.
  2446.   #
  2447.   # If there is no directory component, then add one.
  2448.   case $wrapper in
  2449.   */* | *\*) . ${wrapper} ;;
  2450.   *) . ./${wrapper} ;;
  2451.   esac
  2452.   # Check the variables that should have been set.
  2453.   if test -z "$notinst_deplibs"; then
  2454.     $echo "$modename: invalid libtool wrapper script `$wrapper'" 1>&2
  2455.     exit $EXIT_FAILURE
  2456.   fi
  2457.   finalize=yes
  2458.   for lib in $notinst_deplibs; do
  2459.     # Check to see that each library is installed.
  2460.     libdir=
  2461.     if test -f "$lib"; then
  2462.       # If there is no directory component, then add one.
  2463.       case $lib in
  2464.       */* | *\*) . $lib ;;
  2465.       *) . ./$lib ;;
  2466.       esac
  2467.     fi
  2468.     libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
  2469.     if test -n "$libdir" && test ! -f "$libfile"; then
  2470.       $echo "$modename: warning: `$lib' has not been installed in `$libdir'" 1>&2
  2471.       finalize=no
  2472.     fi
  2473.   done
  2474.   relink_command=
  2475.   # Note that it is not necessary on cygwin/mingw to append a dot to
  2476.   # foo even if both foo and FILE.exe exist: automatic-append-.exe
  2477.   # behavior happens only for exec(3), not for open(2)!  Also, sourcing
  2478.   # `FILE.' does not work on cygwin managed mounts.
  2479.   #
  2480.   # If there is no directory component, then add one.
  2481.   case $wrapper in
  2482.   */* | *\*) . ${wrapper} ;;
  2483.   *) . ./${wrapper} ;;
  2484.   esac
  2485.   outputname=
  2486.   if test "$fast_install" = no && test -n "$relink_command"; then
  2487.     if test "$finalize" = yes && test -z "$run"; then
  2488.       tmpdir=`func_mktempdir`
  2489.       file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
  2490.       outputname="$tmpdir/$file"
  2491.       # Replace the output file specification.
  2492.       relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
  2493.       $show "$relink_command"
  2494.       if $run eval "$relink_command"; then :
  2495.       else
  2496. $echo "$modename: error: relink `$file' with the above command before installing it" 1>&2
  2497. ${rm}r "$tmpdir"
  2498. continue
  2499.       fi
  2500.       file="$outputname"
  2501.     else
  2502.       $echo "$modename: warning: cannot relink `$file'" 1>&2
  2503.     fi
  2504.   else
  2505.     # Install the binary that we compiled earlier.
  2506.     file=`$echo "X$file$stripped_ext" | $Xsed -e "s%([^/]*)$%$objdir/1%"`
  2507.   fi
  2508. fi
  2509. # remove .exe since cygwin /usr/bin/install will append another
  2510. # one anyway 
  2511. case $install_prog,$host in
  2512. */usr/bin/install*,*cygwin*)
  2513.   case $file:$destfile in
  2514.   *.exe:*.exe)
  2515.     # this is ok
  2516.     ;;
  2517.   *.exe:*)
  2518.     destfile=$destfile.exe
  2519.     ;;
  2520.   *:*.exe)
  2521.     destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
  2522.     ;;
  2523.   esac
  2524.   ;;
  2525. esac
  2526. $show "$install_prog$stripme $file $destfile"
  2527. $run eval "$install_prog$stripme $file $destfile" || exit $?
  2528. test -n "$outputname" && ${rm}r "$tmpdir"
  2529. ;;
  2530.       esac
  2531.     done
  2532.     for file in $staticlibs; do
  2533.       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  2534.       # Set up the ranlib parameters.
  2535.       oldlib="$destdir/$name"
  2536.       $show "$install_prog $file $oldlib"
  2537.       $run eval "$install_prog $file $oldlib" || exit $?
  2538.       if test -n "$stripme" && test -n "$old_striplib"; then
  2539. $show "$old_striplib $oldlib"
  2540. $run eval "$old_striplib $oldlib" || exit $?
  2541.       fi
  2542.       # Do each command in the postinstall commands.
  2543.       cmds=$old_postinstall_cmds
  2544.       save_ifs="$IFS"; IFS='~'
  2545.       for cmd in $cmds; do
  2546. IFS="$save_ifs"
  2547. eval cmd="$cmd"
  2548. $show "$cmd"
  2549. $run eval "$cmd" || exit $?
  2550.       done
  2551.       IFS="$save_ifs"
  2552.     done
  2553.     if test -n "$future_libdirs"; then
  2554.       $echo "$modename: warning: remember to run `$progname --finish$future_libdirs'" 1>&2
  2555.     fi
  2556.     if test -n "$current_libdirs"; then
  2557.       # Maybe just do a dry run.
  2558.       test -n "$run" && current_libdirs=" -n$current_libdirs"
  2559.       exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
  2560.     else
  2561.       exit $EXIT_SUCCESS
  2562.     fi
  2563.     ;;
  2564.   # libtool finish mode
  2565.   finish)
  2566.     modename="$modename: finish"
  2567.     libdirs="$nonopt"
  2568.     admincmds=
  2569.     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
  2570.       for dir
  2571.       do
  2572. libdirs="$libdirs $dir"
  2573.       done
  2574.       for libdir in $libdirs; do
  2575. if test -n "$finish_cmds"; then
  2576.   # Do each command in the finish commands.
  2577.   cmds=$finish_cmds
  2578.   save_ifs="$IFS"; IFS='~'
  2579.   for cmd in $cmds; do
  2580.     IFS="$save_ifs"
  2581.     eval cmd="$cmd"
  2582.     $show "$cmd"
  2583.     $run eval "$cmd" || admincmds="$admincmds
  2584.        $cmd"
  2585.   done
  2586.   IFS="$save_ifs"
  2587. fi
  2588. if test -n "$finish_eval"; then
  2589.   # Do the single finish_eval.
  2590.   eval cmds="$finish_eval"
  2591.   $run eval "$cmds" || admincmds="$admincmds
  2592.        $cmds"
  2593. fi
  2594.       done
  2595.     fi
  2596.     # Exit here if they wanted silent mode.
  2597.     test "$show" = : && exit $EXIT_SUCCESS
  2598.     $echo "X----------------------------------------------------------------------" | $Xsed
  2599.     $echo "Libraries have been installed in:"
  2600.     for libdir in $libdirs; do
  2601.       $echo "   $libdir"
  2602.     done
  2603.     $echo
  2604.     $echo "If you ever happen to want to link against installed libraries"
  2605.     $echo "in a given directory, LIBDIR, you must either use libtool, and"
  2606.     $echo "specify the full pathname of the library, or use the `-LLIBDIR'"
  2607.     $echo "flag during linking and do at least one of the following:"
  2608.     if test -n "$shlibpath_var"; then
  2609.       $echo "   - add LIBDIR to the `$shlibpath_var' environment variable"
  2610.       $echo "     during execution"
  2611.     fi
  2612.     if test -n "$runpath_var"; then
  2613.       $echo "   - add LIBDIR to the `$runpath_var' environment variable"
  2614.       $echo "     during linking"
  2615.     fi
  2616.     if test -n "$hardcode_libdir_flag_spec"; then
  2617.       libdir=LIBDIR
  2618.       eval flag="$hardcode_libdir_flag_spec"
  2619.       $echo "   - use the `$flag' linker flag"
  2620.     fi
  2621.     if test -n "$admincmds"; then
  2622.       $echo "   - have your system administrator run these commands:$admincmds"
  2623.     fi
  2624.     if test -f /etc/ld.so.conf; then
  2625.       $echo "   - have your system administrator add LIBDIR to `/etc/ld.so.conf'"
  2626.     fi
  2627.     $echo
  2628.     $echo "See any operating system documentation about shared libraries for"
  2629.     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
  2630.     $echo "X----------------------------------------------------------------------" | $Xsed
  2631.     exit $EXIT_SUCCESS
  2632.     ;;
  2633.   # libtool execute mode
  2634.   execute)
  2635.     modename="$modename: execute"
  2636.     # The first argument is the command name.
  2637.     cmd="$nonopt"
  2638.     if test -z "$cmd"; then
  2639.       $echo "$modename: you must specify a COMMAND" 1>&2
  2640.       $echo "$help"
  2641.       exit $EXIT_FAILURE
  2642.     fi
  2643.     # Handle -dlopen flags immediately.
  2644.     for file in $execute_dlfiles; do
  2645.       if test ! -f "$file"; then
  2646. $echo "$modename: `$file' is not a file" 1>&2
  2647. $echo "$help" 1>&2
  2648. exit $EXIT_FAILURE
  2649.       fi
  2650.       dir=
  2651.       case $file in
  2652.       *.la)
  2653. # Check to see that this really is a libtool archive.
  2654. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  2655. else
  2656.   $echo "$modename: `$lib' is not a valid libtool archive" 1>&2
  2657.   $echo "$help" 1>&2
  2658.   exit $EXIT_FAILURE
  2659. fi
  2660. # Read the libtool library.
  2661. dlname=
  2662. library_names=
  2663. # If there is no directory component, then add one.
  2664. case $file in
  2665. */* | *\*) . $file ;;
  2666. *) . ./$file ;;
  2667. esac
  2668. # Skip this library if it cannot be dlopened.
  2669. if test -z "$dlname"; then
  2670.   # Warn if it was a shared library.
  2671.   test -n "$library_names" && $echo "$modename: warning: `$file' was not linked with `-export-dynamic'"
  2672.   continue
  2673. fi
  2674. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  2675. test "X$dir" = "X$file" && dir=.
  2676. if test -f "$dir/$objdir/$dlname"; then
  2677.   dir="$dir/$objdir"
  2678. else
  2679.   $echo "$modename: cannot find `$dlname' in `$dir' or `$dir/$objdir'" 1>&2
  2680.   exit $EXIT_FAILURE
  2681. fi
  2682. ;;
  2683.       *.lo)
  2684. # Just add the directory containing the .lo file.
  2685. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  2686. test "X$dir" = "X$file" && dir=.
  2687. ;;
  2688.       *)
  2689. $echo "$modename: warning `-dlopen' is ignored for non-libtool libraries and objects" 1>&2
  2690. continue
  2691. ;;
  2692.       esac
  2693.       # Get the absolute pathname.
  2694.       absdir=`cd "$dir" && pwd`
  2695.       test -n "$absdir" && dir="$absdir"
  2696.       # Now add the directory to shlibpath_var.
  2697.       if eval "test -z "$$shlibpath_var""; then
  2698. eval "$shlibpath_var="$dir""
  2699.       else
  2700. eval "$shlibpath_var="$dir:$$shlibpath_var""
  2701.       fi
  2702.     done
  2703.     # This variable tells wrapper scripts just to set shlibpath_var
  2704.     # rather than running their programs.
  2705.     libtool_execute_magic="$magic"
  2706.     # Check if any of the arguments is a wrapper script.
  2707.     args=
  2708.     for file
  2709.     do
  2710.       case $file in
  2711.       -*) ;;
  2712.       *)
  2713. # Do a test to see if this is really a libtool program.
  2714. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  2715.   # If there is no directory component, then add one.
  2716.   case $file in
  2717.   */* | *\*) . $file ;;
  2718.   *) . ./$file ;;
  2719.   esac
  2720.   # Transform arg to wrapped name.
  2721.   file="$progdir/$program"
  2722. fi
  2723. ;;
  2724.       esac
  2725.       # Quote arguments (to preserve shell metacharacters).
  2726.       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
  2727.       args="$args "$file""
  2728.     done
  2729.     if test -z "$run"; then
  2730.       if test -n "$shlibpath_var"; then
  2731. # Export the shlibpath_var.
  2732. eval "export $shlibpath_var"
  2733.       fi
  2734.       # Restore saved environment variables
  2735.       if test "${save_LC_ALL+set}" = set; then
  2736. LC_ALL="$save_LC_ALL"; export LC_ALL
  2737.       fi
  2738.       if test "${save_LANG+set}" = set; then
  2739. LANG="$save_LANG"; export LANG
  2740.       fi
  2741.       # Now prepare to actually exec the command.
  2742.       exec_cmd="$cmd$args"
  2743.     else
  2744.       # Display what would be done.
  2745.       if test -n "$shlibpath_var"; then
  2746. eval "$echo "$shlibpath_var=$$shlibpath_var""
  2747. $echo "export $shlibpath_var"
  2748.       fi
  2749.       $echo "$cmd$args"
  2750.       exit $EXIT_SUCCESS
  2751.     fi
  2752.     ;;
  2753.   # libtool clean and uninstall mode
  2754.   clean | uninstall)
  2755.     modename="$modename: $mode"
  2756.     rm="$nonopt"
  2757.     files=
  2758.     rmforce=
  2759.     exit_status=0
  2760.     # This variable tells wrapper scripts just to set variables rather
  2761.     # than running their programs.
  2762.     libtool_install_magic="$magic"
  2763.     for arg
  2764.     do
  2765.       case $arg in
  2766.       -f) rm="$rm $arg"; rmforce=yes ;;
  2767.       -*) rm="$rm $arg" ;;
  2768.       *) files="$files $arg" ;;
  2769.       esac
  2770.     done
  2771.     if test -z "$rm"; then
  2772.       $echo "$modename: you must specify an RM program" 1>&2
  2773.       $echo "$help" 1>&2
  2774.       exit $EXIT_FAILURE
  2775.     fi
  2776.     rmdirs=
  2777.     origobjdir="$objdir"
  2778.     for file in $files; do
  2779.       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  2780.       if test "X$dir" = "X$file"; then
  2781. dir=.
  2782. objdir="$origobjdir"
  2783.       else
  2784. objdir="$dir/$origobjdir"
  2785.       fi
  2786.       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  2787.       test "$mode" = uninstall && objdir="$dir"
  2788.       # Remember objdir for removal later, being careful to avoid duplicates
  2789.       if test "$mode" = clean; then
  2790. case " $rmdirs " in
  2791.   *" $objdir "*) ;;
  2792.   *) rmdirs="$rmdirs $objdir" ;;
  2793. esac
  2794.       fi
  2795.       # Don't error if the file doesn't exist and rm -f was used.
  2796.       if (test -L "$file") >/dev/null 2>&1 
  2797. || (test -h "$file") >/dev/null 2>&1 
  2798. || test -f "$file"; then
  2799. :
  2800.       elif test -d "$file"; then
  2801. exit_status=1
  2802. continue
  2803.       elif test "$rmforce" = yes; then
  2804. continue
  2805.       fi
  2806.       rmfiles="$file"
  2807.       case $name in
  2808.       *.la)
  2809. # Possibly a libtool archive, so verify it.
  2810. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  2811.   . $dir/$name
  2812.   # Delete the libtool libraries and symlinks.
  2813.   for n in $library_names; do
  2814.     rmfiles="$rmfiles $objdir/$n"
  2815.   done
  2816.   test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
  2817.   case "$mode" in
  2818.   clean)
  2819.     case "  $library_names " in
  2820.     # "  " in the beginning catches empty $dlname
  2821.     *" $dlname "*) ;;
  2822.     *) rmfiles="$rmfiles $objdir/$dlname" ;;
  2823.     esac
  2824.      test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
  2825.     ;;
  2826.   uninstall)
  2827.     if test -n "$library_names"; then
  2828.       # Do each command in the postuninstall commands.
  2829.       cmds=$postuninstall_cmds
  2830.       save_ifs="$IFS"; IFS='~'
  2831.       for cmd in $cmds; do
  2832. IFS="$save_ifs"
  2833. eval cmd="$cmd"
  2834. $show "$cmd"
  2835. $run eval "$cmd"
  2836. if test "$?" -ne 0 && test "$rmforce" != yes; then
  2837.   exit_status=1
  2838. fi
  2839.       done
  2840.       IFS="$save_ifs"
  2841.     fi
  2842.     if test -n "$old_library"; then
  2843.       # Do each command in the old_postuninstall commands.
  2844.       cmds=$old_postuninstall_cmds
  2845.       save_ifs="$IFS"; IFS='~'
  2846.       for cmd in $cmds; do
  2847. IFS="$save_ifs"
  2848. eval cmd="$cmd"
  2849. $show "$cmd"
  2850. $run eval "$cmd"
  2851. if test "$?" -ne 0 && test "$rmforce" != yes; then
  2852.   exit_status=1
  2853. fi
  2854.       done
  2855.       IFS="$save_ifs"
  2856.     fi
  2857.     # FIXME: should reinstall the best remaining shared library.
  2858.     ;;
  2859.   esac
  2860. fi
  2861. ;;
  2862.       *.lo)
  2863. # Possibly a libtool object, so verify it.
  2864. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  2865.   # Read the .lo file
  2866.   . $dir/$name
  2867.   # Add PIC object to the list of files to remove.
  2868.   if test -n "$pic_object" 
  2869.      && test "$pic_object" != none; then
  2870.     rmfiles="$rmfiles $dir/$pic_object"
  2871.   fi
  2872.   # Add non-PIC object to the list of files to remove.
  2873.   if test -n "$non_pic_object" 
  2874.      && test "$non_pic_object" != none; then
  2875.     rmfiles="$rmfiles $dir/$non_pic_object"
  2876.   fi
  2877. fi
  2878. ;;
  2879.       *)
  2880. if test "$mode" = clean ; then
  2881.   noexename=$name
  2882.   case $file in
  2883.   *.exe)
  2884.     file=`$echo $file|${SED} 's,.exe$,,'`
  2885.     noexename=`$echo $name|${SED} 's,.exe$,,'`
  2886.     # $file with .exe has already been added to rmfiles,
  2887.     # add $file without .exe
  2888.     rmfiles="$rmfiles $file"
  2889.     ;;
  2890.   esac
  2891.   # Do a test to see if this is a libtool program.
  2892.   if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  2893.     relink_command=
  2894.     . $dir/$noexename
  2895.     # note $name still contains .exe if it was in $file originally
  2896.     # as does the version of $file that was added into $rmfiles
  2897.     rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
  2898.     if test "$fast_install" = yes && test -n "$relink_command"; then
  2899.       rmfiles="$rmfiles $objdir/lt-$name"
  2900.     fi
  2901.     if test "X$noexename" != "X$name" ; then
  2902.       rmfiles="$rmfiles $objdir/lt-${noexename}.c"
  2903.     fi
  2904.   fi
  2905. fi
  2906. ;;
  2907.       esac
  2908.       $show "$rm $rmfiles"
  2909.       $run $rm $rmfiles || exit_status=1
  2910.     done
  2911.     objdir="$origobjdir"
  2912.     # Try to remove the ${objdir}s in the directories where we deleted files
  2913.     for dir in $rmdirs; do
  2914.       if test -d "$dir"; then
  2915. $show "rmdir $dir"
  2916. $run rmdir $dir >/dev/null 2>&1
  2917.       fi
  2918.     done
  2919.     exit $exit_status
  2920.     ;;
  2921.   "")
  2922.     $echo "$modename: you must specify a MODE" 1>&2
  2923.     $echo "$generic_help" 1>&2
  2924.     exit $EXIT_FAILURE
  2925.     ;;
  2926.   esac
  2927.   if test -z "$exec_cmd"; then
  2928.     $echo "$modename: invalid operation mode `$mode'" 1>&2
  2929.     $echo "$generic_help" 1>&2
  2930.     exit $EXIT_FAILURE
  2931.   fi
  2932. fi # test -z "$show_help"
  2933. if test -n "$exec_cmd"; then
  2934.   eval exec $exec_cmd
  2935.   exit $EXIT_FAILURE
  2936. fi
  2937. # We need to display help for each of the modes.
  2938. case $mode in
  2939. "") $echo 
  2940. "Usage: $modename [OPTION]... [MODE-ARG]...
  2941. Provide generalized library-building support services.
  2942.     --config          show all configuration variables
  2943.     --debug           enable verbose shell tracing
  2944. -n, --dry-run         display commands without modifying any files
  2945.     --features        display basic configuration information and exit
  2946.     --finish          same as `--mode=finish'
  2947.     --help            display this help message and exit
  2948.     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
  2949.     --quiet           same as `--silent'
  2950.     --silent          don't print informational messages
  2951.     --tag=TAG         use configuration variables from tag TAG
  2952.     --version         print version information
  2953. MODE must be one of the following:
  2954.       clean           remove files from the build directory
  2955.       compile         compile a source file into a libtool object
  2956.       execute         automatically set library path, then run a program
  2957.       finish          complete the installation of libtool libraries
  2958.       install         install libraries or executables
  2959.       link            create a library or an executable
  2960.       uninstall       remove libraries from an installed directory
  2961. MODE-ARGS vary depending on the MODE.  Try `$modename --help --mode=MODE' for
  2962. a more detailed description of MODE.
  2963. Report bugs to <bug-libtool@gnu.org>."
  2964.   exit $EXIT_SUCCESS
  2965.   ;;
  2966. clean)
  2967.   $echo 
  2968. "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
  2969. Remove files from the build directory.
  2970. RM is the name of the program to use to delete files associated with each FILE
  2971. (typically `/bin/rm').  RM-OPTIONS are options (such as `-f') to be passed
  2972. to RM.
  2973. If FILE is a libtool library, object or program, all the files associated
  2974. with it are deleted. Otherwise, only FILE itself is deleted using RM."
  2975.   ;;
  2976. compile)
  2977.   $echo 
  2978. "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
  2979. Compile a source file into a libtool library object.
  2980. This mode accepts the following additional options:
  2981.   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
  2982.   -prefer-pic       try to building PIC objects only
  2983.   -prefer-non-pic   try to building non-PIC objects only
  2984.   -static           always build a `.o' file suitable for static linking
  2985. COMPILE-COMMAND is a command to be used in creating a `standard' object file
  2986. from the given SOURCEFILE.
  2987. The output file name is determined by removing the directory component from
  2988. SOURCEFILE, then substituting the C source code suffix `.c' with the
  2989. library object suffix, `.lo'."
  2990.   ;;
  2991. execute)
  2992.   $echo 
  2993. "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
  2994. Automatically set library path, then run a program.
  2995. This mode accepts the following additional options:
  2996.   -dlopen FILE      add the directory containing FILE to the library path
  2997. This mode sets the library path environment variable according to `-dlopen'
  2998. flags.
  2999. If any of the ARGS are libtool executable wrappers, then they are translated
  3000. into their corresponding uninstalled binary, and any of their required library
  3001. directories are added to the library path.
  3002. Then, COMMAND is executed, with ARGS as arguments."
  3003.   ;;
  3004. finish)
  3005.   $echo 
  3006. "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
  3007. Complete the installation of libtool libraries.
  3008. Each LIBDIR is a directory that contains libtool libraries.
  3009. The commands that this mode executes may require superuser privileges.  Use
  3010. the `--dry-run' option if you just want to see what would be executed."
  3011.   ;;
  3012. install)
  3013.   $echo 
  3014. "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
  3015. Install executables or libraries.
  3016. INSTALL-COMMAND is the installation command.  The first component should be
  3017. either the `install' or `cp' program.
  3018. The rest of the components are interpreted as arguments to that command (only
  3019. BSD-compatible install options are recognized)."
  3020.   ;;
  3021. link)
  3022.   $echo 
  3023. "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
  3024. Link object files or libraries together to form another library, or to
  3025. create an executable program.
  3026. LINK-COMMAND is a command using the C compiler that you would use to create
  3027. a program from several object files.
  3028. The following components of LINK-COMMAND are treated specially:
  3029.   -all-static       do not do any dynamic linking at all
  3030.   -avoid-version    do not add a version suffix if possible
  3031.   -dlopen FILE      `-dlpreopen' FILE if it cannot be dlopened at runtime
  3032.   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
  3033.   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
  3034.   -export-symbols SYMFILE
  3035.     try to export only the symbols listed in SYMFILE
  3036.   -export-symbols-regex REGEX
  3037.     try to export only the symbols matching REGEX
  3038.   -LLIBDIR          search LIBDIR for required installed libraries
  3039.   -lNAME            OUTPUT-FILE requires the installed library libNAME
  3040.   -module           build a library that can dlopened
  3041.   -no-fast-install  disable the fast-install mode
  3042.   -no-install       link a not-installable executable
  3043.   -no-undefined     declare that a library does not refer to external symbols
  3044.   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
  3045.   -objectlist FILE  Use a list of object files found in FILE to specify objects
  3046.   -precious-files-regex REGEX
  3047.                     don't remove output files matching REGEX
  3048.   -release RELEASE  specify package release information
  3049.   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
  3050.   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
  3051.   -static           do not do any dynamic linking of libtool libraries
  3052.   -version-info CURRENT[:REVISION[:AGE]]
  3053.     specify library version info [each variable defaults to 0]
  3054. All other options (arguments beginning with `-') are ignored.
  3055. Every other argument is treated as a filename.  Files ending in `.la' are
  3056. treated as uninstalled libtool libraries, other files are standard or library
  3057. object files.
  3058. If the OUTPUT-FILE ends in `.la', then a libtool library is created,
  3059. only library objects (`.lo' files) may be specified, and `-rpath' is
  3060. required, except when creating a convenience library.
  3061. If OUTPUT-FILE ends in `.a' or `.lib', then a standard library is created
  3062. using `ar' and `ranlib', or on Windows using `lib'.
  3063. If OUTPUT-FILE ends in `.lo' or `.${objext}', then a reloadable object file
  3064. is created, otherwise an executable program is created."
  3065.   ;;
  3066. uninstall)
  3067.   $echo 
  3068. "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
  3069. Remove libraries from an installation directory.
  3070. RM is the name of the program to use to delete files associated with each FILE
  3071. (typically `/bin/rm').  RM-OPTIONS are options (such as `-f') to be passed
  3072. to RM.
  3073. If FILE is a libtool library, all the files associated with it are deleted.
  3074. Otherwise, only FILE itself is deleted using RM."
  3075.   ;;
  3076. *)
  3077.   $echo "$modename: invalid operation mode `$mode'" 1>&2
  3078.   $echo "$help" 1>&2
  3079.   exit $EXIT_FAILURE
  3080.   ;;
  3081. esac
  3082. $echo
  3083. $echo "Try `$modename --help' for more information about other modes."
  3084. exit $?
  3085. # The TAGs below are defined such that we never get into a situation
  3086. # in which we disable both kinds of libraries.  Given conflicting
  3087. # choices, we go for a static library, that is the most portable,
  3088. # since we can't tell whether shared libraries were disabled because
  3089. # the user asked for that or because the platform doesn't support
  3090. # them.  This is particularly important on AIX, because we don't
  3091. # support having both static and shared libraries enabled at the same
  3092. # time on that platform, so we default to a shared-only configuration.
  3093. # If a disable-shared tag is given, we'll fallback to a static-only
  3094. # configuration.  But we'll never go from static-only to shared-only.
  3095. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
  3096. disable_libs=shared
  3097. # ### END LIBTOOL TAG CONFIG: disable-shared
  3098. # ### BEGIN LIBTOOL TAG CONFIG: disable-static
  3099. disable_libs=static
  3100. # ### END LIBTOOL TAG CONFIG: disable-static
  3101. # Local Variables:
  3102. # mode:shell-script
  3103. # sh-indentation:2
  3104. # End: