ltmain.sh
上传用户:ledjyj
上传日期:2014-08-27
资源大小:2639k
文件大小:192k
源码类别:

驱动编程

开发平台:

Unix_Linux

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