ltmain.sh
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:195k
源码类别:

OpenGL

开发平台:

Visual C++

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