Home | History | Annotate | Download | only in jpeg-6b
      1 # ltmain.sh - Provide generalized library-building support services.
      2 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
      3 #
      4 # Copyright (C) 1996-1998 Free Software Foundation, Inc.
      5 # Gordon Matzigkeit <gord (at] gnu.ai.mit.edu>, 1996
      6 #
      7 # This program is free software; you can redistribute it and/or modify
      8 # it under the terms of the GNU General Public License as published by
      9 # the Free Software Foundation; either version 2 of the License, or
     10 # (at your option) any later version.
     11 #
     12 # This program is distributed in the hope that it will be useful, but
     13 # WITHOUT ANY WARRANTY; without even the implied warranty of
     14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15 # General Public License for more details.
     16 #
     17 # You should have received a copy of the GNU General Public License
     18 # along with this program; if not, write to the Free Software
     19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     20 #
     21 # As a special exception to the GNU General Public License, if you
     22 # distribute this file as part of a program that contains a
     23 # configuration script generated by Autoconf, you may include it under
     24 # the same distribution terms that you use for the rest of that program.
     25 
     26 # The name of this program.
     27 progname=`$echo "$0" | sed 's%^.*/%%'`
     28 modename="$progname"
     29 
     30 # Constants.
     31 PROGRAM=ltmain.sh
     32 PACKAGE=libtool
     33 VERSION=1.2
     34 
     35 default_mode=
     36 help="Try \`$progname --help' for more information."
     37 magic="%%%MAGIC variable%%%"
     38 mkdir="mkdir"
     39 mv="mv -f"
     40 rm="rm -f"
     41 
     42 # Sed substitution that helps us do robust quoting.  It backslashifies
     43 # metacharacters that are still active within double-quoted strings.
     44 Xsed='sed -e s/^X//'
     45 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
     46 
     47 # NLS nuisances.
     48 # Only set LANG and LC_ALL to C if already set.
     49 # These must not be set unconditionally because not all systems understand
     50 # e.g. LANG=C (notably SCO).
     51 if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
     52 if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
     53 
     54 if test "$LTCONFIG_VERSION" != "$VERSION"; then
     55   echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
     56   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
     57   exit 1
     58 fi
     59 
     60 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
     61   echo "$modename: not configured to build any kind of library" 1>&2
     62   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
     63   exit 1
     64 fi
     65 
     66 # Global variables.
     67 mode=$default_mode
     68 nonopt=
     69 prev=
     70 prevopt=
     71 run=
     72 show="$echo"
     73 show_help=
     74 execute_dlfiles=
     75 
     76 # Parse our command line options once, thoroughly.
     77 while test $# -gt 0
     78 do
     79   arg="$1"
     80   shift
     81 
     82   case "$arg" in
     83   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
     84   *) optarg= ;;
     85   esac
     86 
     87   # If the previous option needs an argument, assign it.
     88   if test -n "$prev"; then
     89     case "$prev" in
     90     execute_dlfiles)
     91       eval "$prev=\"\$$prev \$arg\""
     92       ;;
     93     *)
     94       eval "$prev=\$arg"
     95       ;;
     96     esac
     97 
     98     prev=
     99     prevopt=
    100     continue
    101   fi
    102 
    103   # Have we seen a non-optional argument yet?
    104   case "$arg" in
    105   --help)
    106     show_help=yes
    107     ;;
    108 
    109   --version)
    110     echo "$PROGRAM (GNU $PACKAGE) $VERSION"
    111     exit 0
    112     ;;
    113 
    114   --dry-run | -n)
    115     run=:
    116     ;;
    117 
    118   --features)
    119     echo "host: $host"
    120     if test "$build_libtool_libs" = yes; then
    121       echo "enable shared libraries"
    122     else
    123       echo "disable shared libraries"
    124     fi
    125     if test "$build_old_libs" = yes; then
    126       echo "enable static libraries"
    127     else
    128       echo "disable static libraries"
    129     fi
    130     exit 0
    131     ;;
    132 
    133   --finish) mode="finish" ;;
    134 
    135   --mode) prevopt="--mode" prev=mode ;;
    136   --mode=*) mode="$optarg" ;;
    137 
    138   --quiet | --silent)
    139     show=:
    140     ;;
    141 
    142   -dlopen)
    143     prevopt="-dlopen"
    144     prev=execute_dlfiles
    145     ;;
    146 
    147   -*)
    148     $echo "$modename: unrecognized option \`$arg'" 1>&2
    149     $echo "$help" 1>&2
    150     exit 1
    151     ;;
    152 
    153   *)
    154     nonopt="$arg"
    155     break
    156     ;;
    157   esac
    158 done
    159 
    160 if test -n "$prevopt"; then
    161   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
    162   $echo "$help" 1>&2
    163   exit 1
    164 fi
    165 
    166 if test -z "$show_help"; then
    167 
    168   # Infer the operation mode.
    169   if test -z "$mode"; then
    170     case "$nonopt" in
    171     *cc | *++ | gcc* | *-gcc*)
    172       mode=link
    173       for arg
    174       do
    175         case "$arg" in
    176         -c)
    177            mode=compile
    178            break
    179            ;;
    180         esac
    181       done
    182       ;;
    183     *db | *dbx)
    184       mode=execute
    185       ;;
    186     *install*|cp|mv)
    187       mode=install
    188       ;;
    189     *rm)
    190       mode=uninstall
    191       ;;
    192     *)
    193       # If we have no mode, but dlfiles were specified, then do execute mode.
    194       test -n "$execute_dlfiles" && mode=execute
    195 
    196       # Just use the default operation mode.
    197       if test -z "$mode"; then
    198         if test -n "$nonopt"; then
    199           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
    200         else
    201           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
    202         fi
    203       fi
    204       ;;
    205     esac
    206   fi
    207 
    208   # Only execute mode is allowed to have -dlopen flags.
    209   if test -n "$execute_dlfiles" && test "$mode" != execute; then
    210     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
    211     $echo "$help" 1>&2
    212     exit 1
    213   fi
    214 
    215   # Change the help message to a mode-specific one.
    216   generic_help="$help"
    217   help="Try \`$modename --help --mode=$mode' for more information."
    218 
    219   # These modes are in order of execution frequency so that they run quickly.
    220   case "$mode" in
    221   # libtool compile mode
    222   compile)
    223     modename="$modename: compile"
    224     # Get the compilation command and the source file.
    225     base_compile=
    226     lastarg=
    227     srcfile="$nonopt"
    228     suppress_output=
    229 
    230     for arg
    231     do
    232       # Accept any command-line options.
    233       case "$arg" in
    234       -o)
    235 	$echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
    236 	$echo "$help" 1>&2
    237 	exit 1
    238 	;;
    239 
    240       -static)
    241 	build_libtool_libs=no
    242 	build_old_libs=yes
    243 	continue
    244 	;;
    245       esac
    246 
    247       # Accept the current argument as the source file.
    248       lastarg="$srcfile"
    249       srcfile="$arg"
    250 
    251       # Aesthetically quote the previous argument.
    252 
    253       # Backslashify any backslashes, double quotes, and dollar signs.
    254       # These are the only characters that are still specially
    255       # interpreted inside of double-quoted scrings.
    256       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
    257 
    258       # Double-quote args containing other shell metacharacters.
    259       # Many Bourne shells cannot handle close brackets correctly in scan
    260       # sets, so we specify it separately.
    261       case "$lastarg" in
    262       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
    263 	lastarg="\"$lastarg\""
    264 	;;
    265       esac
    266 
    267       # Add the previous argument to base_compile.
    268       if test -z "$base_compile"; then
    269 	base_compile="$lastarg"
    270       else
    271 	base_compile="$base_compile $lastarg"
    272       fi
    273     done
    274 
    275     # Get the name of the library object.
    276     libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
    277 
    278     # Recognize several different file suffixes.
    279     xform='[cCFSfms]'
    280     case "$libobj" in
    281     *.ada) xform=ada ;;
    282     *.adb) xform=adb ;;
    283     *.ads) xform=ads ;;
    284     *.asm) xform=asm ;;
    285     *.c++) xform=c++ ;;
    286     *.cc) xform=cc ;;
    287     *.cpp) xform=cpp ;;
    288     *.cxx) xform=cxx ;;
    289     *.f90) xform=f90 ;;
    290     *.for) xform=for ;;
    291     esac
    292 
    293     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
    294 
    295     case "$libobj" in
    296     *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;;
    297     *)
    298       $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
    299       exit 1
    300       ;;
    301     esac
    302 
    303     if test -z "$base_compile"; then
    304       $echo "$modename: you must specify a compilation command" 1>&2
    305       $echo "$help" 1>&2
    306       exit 1
    307     fi
    308 
    309     # Delete any leftover library objects.
    310     if test "$build_old_libs" = yes; then
    311       $run $rm $obj $libobj
    312       trap "$run $rm $obj $libobj; exit 1" 1 2 15
    313     else
    314       $run $rm $libobj
    315       trap "$run $rm $libobj; exit 1" 1 2 15
    316     fi
    317 
    318     # Only build a PIC object if we are building libtool libraries.
    319     if test "$build_libtool_libs" = yes; then
    320       # Without this assignment, base_compile gets emptied.
    321       fbsd_hideous_sh_bug=$base_compile
    322 
    323       # All platforms use -DPIC, to notify preprocessed assembler code.
    324       $show "$base_compile$pic_flag -DPIC $srcfile"
    325       if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then :
    326       else
    327         test -n "$obj" && $run $rm $obj
    328         exit 1
    329       fi
    330 
    331       # If we have no pic_flag, then copy the object into place and finish.
    332       if test -z "$pic_flag"; then
    333         $show "$LN_S $obj $libobj"
    334         $run $LN_S $obj $libobj
    335         exit $?
    336       fi
    337 
    338       # Just move the object, then go on to compile the next one
    339       $show "$mv $obj $libobj"
    340       $run $mv $obj $libobj || exit 1
    341 
    342       # Allow error messages only from the first compilation.
    343       suppress_output=' >/dev/null 2>&1'
    344     fi
    345 
    346     # Only build a position-dependent object if we build old libraries.
    347     if test "$build_old_libs" = yes; then
    348       # Suppress compiler output if we already did a PIC compilation.
    349       $show "$base_compile $srcfile$suppress_output"
    350       if $run eval "$base_compile \$srcfile$suppress_output"; then :
    351       else
    352         $run $rm $obj $libobj
    353         exit 1
    354       fi
    355     fi
    356 
    357     # Create an invalid libtool object if no PIC, so that we do not
    358     # accidentally link it into a program.
    359     if test "$build_libtool_libs" != yes; then
    360       $show "echo timestamp > $libobj"
    361       $run eval "echo timestamp > \$libobj" || exit $?
    362     fi
    363 
    364     exit 0
    365     ;;
    366 
    367   # libtool link mode
    368   link)
    369     modename="$modename: link"
    370     CC="$nonopt"
    371     allow_undefined=yes
    372     compile_command="$CC"
    373     finalize_command="$CC"
    374 
    375     compile_shlibpath=
    376     finalize_shlibpath=
    377     deplibs=
    378     dlfiles=
    379     dlprefiles=
    380     export_dynamic=no
    381     hardcode_libdirs=
    382     libobjs=
    383     link_against_libtool_libs=
    384     ltlibs=
    385     objs=
    386     prev=
    387     prevarg=
    388     release=
    389     rpath=
    390     perm_rpath=
    391     temp_rpath=
    392     vinfo=
    393 
    394     # We need to know -static, to get the right output filenames.
    395     for arg
    396     do
    397       case "$arg" in
    398       -all-static | -static)
    399         if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
    400 	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
    401         fi
    402         build_libtool_libs=no
    403 	build_old_libs=yes
    404         break
    405         ;;
    406       esac
    407     done
    408 
    409     # See if our shared archives depend on static archives.
    410     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
    411 
    412     # Go through the arguments, transforming them on the way.
    413     for arg
    414     do
    415       # If the previous option needs an argument, assign it.
    416       if test -n "$prev"; then
    417         case "$prev" in
    418         output)
    419           compile_command="$compile_command @OUTPUT@"
    420           finalize_command="$finalize_command @OUTPUT@"
    421           ;;
    422         esac
    423 
    424         case "$prev" in
    425         dlfiles|dlprefiles)
    426           case "$arg" in
    427           *.la | *.lo) ;;  # We handle these cases below.
    428           *)
    429             dlprefiles="$dlprefiles $arg"
    430             test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
    431             prev=
    432             ;;
    433           esac
    434           ;;
    435 	release)
    436 	  release="-$arg"
    437 	  prev=
    438 	  continue
    439 	  ;;
    440         rpath)
    441           rpath="$rpath $arg"
    442 	  prev=
    443 	  continue
    444 	  ;;
    445         *)
    446           eval "$prev=\"\$arg\""
    447           prev=
    448           continue
    449           ;;
    450         esac
    451       fi
    452 
    453       prevarg="$arg"
    454 
    455       case "$arg" in
    456       -all-static)
    457 	if test -n "$link_static_flag"; then
    458           compile_command="$compile_command $link_static_flag"
    459 	  finalize_command="$finalize_command $link_static_flag"
    460         fi
    461         continue
    462 	;;
    463 
    464       -allow-undefined)
    465 	# FIXME: remove this flag sometime in the future.
    466 	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
    467 	continue
    468 	;;
    469 
    470       -dlopen)
    471         prev=dlfiles
    472         continue
    473         ;;
    474 
    475       -dlpreopen)
    476         prev=dlprefiles
    477         continue
    478         ;;
    479 
    480       -export-dynamic)
    481         if test "$export_dynamic" != yes; then
    482           export_dynamic=yes
    483 	  if test -n "$export_dynamic_flag_spec"; then
    484 	    eval arg=\"$export_dynamic_flag_spec\"
    485 	  else
    486 	    arg=
    487 	  fi
    488 
    489           # Add the symbol object into the linking commands.
    490 	  compile_command="$compile_command @SYMFILE@"
    491 	  finalize_command="$finalize_command @SYMFILE@"
    492         fi
    493         ;;
    494 
    495       -L*)
    496         dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
    497         case "$dir" in
    498         /* | [A-Za-z]:\\*)
    499 	  # Add the corresponding hardcode_libdir_flag, if it is not identical.
    500           ;;
    501         *)
    502           $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
    503           exit 1
    504           ;;
    505         esac
    506         deplibs="$deplibs $arg"
    507         ;;
    508 
    509       -l*) deplibs="$deplibs $arg" ;;
    510 
    511       -no-undefined)
    512 	allow_undefined=no
    513 	continue
    514 	;;
    515 
    516       -o) prev=output ;;
    517 
    518       -release)
    519 	prev=release
    520 	continue
    521 	;;
    522 
    523       -rpath)
    524         prev=rpath
    525         continue
    526         ;;
    527 
    528       -static)
    529 	# If we have no pic_flag, then this is the same as -all-static.
    530 	if test -z "$pic_flag" && test -n "$link_static_flag"; then
    531           compile_command="$compile_command $link_static_flag"
    532 	  finalize_command="$finalize_command $link_static_flag"
    533         fi
    534 	continue
    535 	;;
    536 
    537       -version-info)
    538         prev=vinfo
    539         continue
    540         ;;
    541 
    542       # Some other compiler flag.
    543       -* | +*)
    544 	# Unknown arguments in both finalize_command and compile_command need
    545 	# to be aesthetically quoted because they are evaled later.
    546 	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    547 	case "$arg" in
    548 	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
    549 	  arg="\"$arg\""
    550 	  ;;
    551 	esac
    552         ;;
    553 
    554       *.o | *.a)
    555         # A standard object.
    556         objs="$objs $arg"
    557         ;;
    558 
    559       *.lo)
    560         # A library object.
    561 	if test "$prev" = dlfiles; then
    562 	  dlfiles="$dlfiles $arg"
    563 	  if test "$build_libtool_libs" = yes; then
    564 	    prev=
    565 	    continue
    566 	  else
    567 	    # If libtool objects are unsupported, then we need to preload.
    568 	    prev=dlprefiles
    569 	  fi
    570 	fi
    571 
    572 	if test "$prev" = dlprefiles; then
    573 	  # Preload the old-style object.
    574 	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'`
    575 	  prev=
    576 	fi
    577 	libobjs="$libobjs $arg"
    578         ;;
    579 
    580       *.la)
    581         # A libtool-controlled library.
    582 
    583         dlname=
    584         libdir=
    585         library_names=
    586         old_library=
    587 
    588         # Check to see that this really is a libtool archive.
    589         if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
    590         else
    591           $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
    592           exit 1
    593         fi
    594 
    595         # If there is no directory component, then add one.
    596         case "$arg" in
    597         */* | *\\*) . $arg ;;
    598         *) . ./$arg ;;
    599         esac
    600 
    601         if test -z "$libdir"; then
    602           $echo "$modename: \`$arg' contains no -rpath information" 1>&2
    603           exit 1
    604         fi
    605 
    606         # Get the name of the library we link against.
    607         linklib=
    608         for l in $old_library $library_names; do
    609           linklib="$l"
    610         done
    611 
    612         if test -z "$linklib"; then
    613           $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
    614           exit 1
    615         fi
    616 
    617         # Find the relevant object directory and library name.
    618         name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
    619         dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    620         if test "X$dir" = "X$arg"; then
    621           dir="$objdir"
    622         else
    623           dir="$dir/$objdir"
    624         fi
    625 
    626         # This library was specified with -dlopen.
    627         if test "$prev" = dlfiles; then
    628           dlfiles="$dlfiles $arg"
    629           if test -z "$dlname"; then
    630             # If there is no dlname, we need to preload.
    631             prev=dlprefiles
    632           else
    633             # We should not create a dependency on this library, but we
    634 	    # may need any libraries it requires.
    635 	    compile_command="$compile_command$dependency_libs"
    636 	    finalize_command="$finalize_command$dependency_libs"
    637             prev=
    638             continue
    639           fi
    640         fi
    641 
    642         # The library was specified with -dlpreopen.
    643         if test "$prev" = dlprefiles; then
    644           # Prefer using a static library (so that no silly _DYNAMIC symbols
    645           # are required to link).
    646           if test -n "$old_library"; then
    647             dlprefiles="$dlprefiles $dir/$old_library"
    648           else
    649             dlprefiles="$dlprefiles $dir/$linklib"
    650           fi
    651           prev=
    652         fi
    653 
    654         if test "$build_libtool_libs" = yes && test -n "$library_names"; then
    655           link_against_libtool_libs="$link_against_libtool_libs $arg"
    656           if test -n "$shlibpath_var"; then
    657             # Make sure the rpath contains only unique directories.
    658             case "$temp_rpath " in
    659             *" $dir "*) ;;
    660             *) temp_rpath="$temp_rpath $dir" ;;
    661             esac
    662           fi
    663 
    664 	  # This is the magic to use -rpath.
    665           if test -n "$hardcode_libdir_flag_spec"; then
    666             if test -n "$hardcode_libdir_separator"; then
    667               if test -z "$hardcode_libdirs"; then
    668                 # Put the magic libdir with the hardcode flag.
    669                 hardcode_libdirs="$libdir"
    670                 libdir="@HARDCODE_LIBDIRS@"
    671               else
    672                 # Just accumulate the unique libdirs.
    673 		case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
    674 		*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
    675 		  ;;
    676 		*)
    677 		  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
    678 		  ;;
    679 		esac
    680                 libdir=
    681               fi
    682             fi
    683 
    684             if test -n "$libdir"; then
    685               eval flag=\"$hardcode_libdir_flag_spec\"
    686 
    687               compile_command="$compile_command $flag"
    688               finalize_command="$finalize_command $flag"
    689             fi
    690           elif test -n "$runpath_var"; then
    691             # Do the same for the permanent run path.
    692             case "$perm_rpath " in
    693             *" $libdir "*) ;;
    694             *) perm_rpath="$perm_rpath $libdir" ;;
    695             esac
    696           fi
    697 
    698 
    699           case "$hardcode_action" in
    700           immediate)
    701             if test "$hardcode_direct" = no; then
    702               compile_command="$compile_command $dir/$linklib"
    703             elif test "$hardcode_minus_L" = no; then
    704               compile_command="$compile_command -L$dir -l$name"
    705             elif test "$hardcode_shlibpath_var" = no; then
    706               compile_shlibpath="$compile_shlibpath$dir:"
    707               compile_command="$compile_command -l$name"
    708             fi
    709             ;;
    710 
    711           relink)
    712             # We need an absolute path.
    713             case "$dir" in
    714             /* | [A-Za-z]:\\*) ;;
    715             *)
    716               absdir=`cd "$dir" && pwd`
    717               if test -z "$absdir"; then
    718                 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
    719                 exit 1
    720               fi
    721               dir="$absdir"
    722               ;;
    723             esac
    724 
    725             if test "$hardcode_direct" = yes; then
    726               compile_command="$compile_command $dir/$linklib"
    727             elif test "$hardcode_minus_L" = yes; then
    728               compile_command="$compile_command -L$dir -l$name"
    729             elif test "$hardcode_shlibpath_var" = yes; then
    730               compile_shlibpath="$compile_shlibpath$dir:"
    731               compile_command="$compile_command -l$name"
    732             fi
    733             ;;
    734 
    735           *)
    736             $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2
    737             exit 1
    738             ;;
    739           esac
    740 
    741           # Finalize command for both is simple: just hardcode it.
    742           if test "$hardcode_direct" = yes; then
    743             finalize_command="$finalize_command $libdir/$linklib"
    744           elif test "$hardcode_minus_L" = yes; then
    745             finalize_command="$finalize_command -L$libdir -l$name"
    746           elif test "$hardcode_shlibpath_var" = yes; then
    747             finalize_shlibpath="$finalize_shlibpath$libdir:"
    748             finalize_command="$finalize_command -l$name"
    749           else
    750             # We cannot seem to hardcode it, guess we'll fake it.
    751             finalize_command="$finalize_command -L$libdir -l$name"
    752           fi
    753         else
    754           # Transform directly to old archives if we don't build new libraries.
    755           if test -n "$pic_flag" && test -z "$old_library"; then
    756             $echo "$modename: cannot find static library for \`$arg'" 1>&2
    757             exit 1
    758           fi
    759 
    760 	  # Here we assume that one of hardcode_direct or hardcode_minus_L
    761 	  # is not unsupported.  This is valid on all known static and
    762 	  # shared platforms.
    763 	  if test "$hardcode_direct" != unsupported; then
    764 	    test -n "$old_library" && linklib="$old_library"
    765 	    compile_command="$compile_command $dir/$linklib"
    766 	    finalize_command="$finalize_command $dir/$linklib"
    767 	  else
    768 	    compile_command="$compile_command -L$dir -l$name"
    769 	    finalize_command="$finalize_command -L$dir -l$name"
    770 	  fi
    771         fi
    772 
    773 	# Add in any libraries that this one depends upon.
    774 	compile_command="$compile_command$dependency_libs"
    775 	finalize_command="$finalize_command$dependency_libs"
    776 	continue
    777         ;;
    778 
    779       # Some other compiler argument.
    780       *)
    781 	# Unknown arguments in both finalize_command and compile_command need
    782 	# to be aesthetically quoted because they are evaled later.
    783 	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    784 	case "$arg" in
    785 	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
    786 	  arg="\"$arg\""
    787 	  ;;
    788 	esac
    789         ;;
    790       esac
    791 
    792       # Now actually substitute the argument into the commands.
    793       if test -n "$arg"; then
    794 	compile_command="$compile_command $arg"
    795 	finalize_command="$finalize_command $arg"
    796       fi
    797     done
    798 
    799     if test -n "$prev"; then
    800       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
    801       $echo "$help" 1>&2
    802       exit 1
    803     fi
    804 
    805     if test -n "$vinfo" && test -n "$release"; then
    806       $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2
    807       $echo "$help" 1>&2
    808       exit 1
    809     fi
    810 
    811     oldlib=
    812     oldobjs=
    813     case "$output" in
    814     "")
    815       $echo "$modename: you must specify an output file" 1>&2
    816       $echo "$help" 1>&2
    817       exit 1
    818       ;;
    819 
    820     */* | *\\*)
    821       $echo "$modename: output file \`$output' must have no directory components" 1>&2
    822       exit 1
    823       ;;
    824 
    825     *.a)
    826       # Now set the variables for building old libraries.
    827       build_libtool_libs=no
    828       build_old_libs=yes
    829       oldlib="$output"
    830       $show "$rm $oldlib"
    831       $run $rm $oldlib
    832       ;;
    833 
    834     *.la)
    835       # Make sure we only generate libraries of the form `libNAME.la'.
    836       case "$output" in
    837       lib*) ;;
    838       *)
    839 	$echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
    840 	$echo "$help" 1>&2
    841 	exit 1
    842 	;;
    843       esac
    844 
    845       name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
    846       eval libname=\"$libname_spec\"
    847 
    848       # All the library-specific variables (install_libdir is set above).
    849       library_names=
    850       old_library=
    851       dlname=
    852       current=0
    853       revision=0
    854       age=0
    855 
    856       if test -n "$objs"; then
    857         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
    858         exit 1
    859       fi
    860 
    861       # How the heck are we supposed to write a wrapper for a shared library?
    862       if test -n "$link_against_libtool_libs"; then
    863         $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
    864         exit 1
    865       fi
    866 
    867       if test -n "$dlfiles$dlprefiles"; then
    868         $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
    869         # Nullify the symbol file.
    870         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
    871         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
    872       fi
    873 
    874       if test -z "$rpath"; then
    875         $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
    876 	$echo "$help" 1>&2
    877         exit 1
    878       fi
    879 
    880       set dummy $rpath
    881       if test $# -gt 2; then
    882 	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
    883       fi
    884       install_libdir="$2"
    885 
    886       # Parse the version information argument.
    887       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=':'
    888       set dummy $vinfo
    889       IFS="$save_ifs"
    890 
    891       if test -n "$5"; then
    892         $echo "$modename: too many parameters to \`-version-info'" 1>&2
    893         $echo "$help" 1>&2
    894         exit 1
    895       fi
    896 
    897       test -n "$2" && current="$2"
    898       test -n "$3" && revision="$3"
    899       test -n "$4" && age="$4"
    900 
    901       # Check that each of the things are valid numbers.
    902       case "$current" in
    903       0 | [1-9] | [1-9][0-9]*) ;;
    904       *)
    905         $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
    906         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    907         exit 1
    908         ;;
    909       esac
    910 
    911       case "$revision" in
    912       0 | [1-9] | [1-9][0-9]*) ;;
    913       *)
    914         $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
    915         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    916         exit 1
    917         ;;
    918       esac
    919 
    920       case "$age" in
    921       0 | [1-9] | [1-9][0-9]*) ;;
    922       *)
    923         $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
    924         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    925         exit 1
    926         ;;
    927       esac
    928 
    929       if test $age -gt $current; then
    930         $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
    931         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    932         exit 1
    933       fi
    934 
    935       # Calculate the version variables.
    936       version_vars="version_type current age revision"
    937       case "$version_type" in
    938       none) ;;
    939 
    940       linux)
    941         version_vars="$version_vars major versuffix"
    942         major=`expr $current - $age`
    943         versuffix="$major.$age.$revision"
    944         ;;
    945 
    946       osf)
    947         version_vars="$version_vars versuffix verstring"
    948         major=`expr $current - $age`
    949         versuffix="$current.$age.$revision"
    950         verstring="$versuffix"
    951 
    952         # Add in all the interfaces that we are compatible with.
    953         loop=$age
    954         while test $loop != 0; do
    955           iface=`expr $current - $loop`
    956           loop=`expr $loop - 1`
    957           verstring="$verstring:${iface}.0"
    958         done
    959 
    960         # Make executables depend on our current version.
    961         verstring="$verstring:${current}.0"
    962         ;;
    963 
    964       sunos)
    965         version_vars="$version_vars major versuffix"
    966         major="$current"
    967         versuffix="$current.$revision"
    968         ;;
    969 
    970       *)
    971         $echo "$modename: unknown library version type \`$version_type'" 1>&2
    972         echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
    973         exit 1
    974         ;;
    975       esac
    976 
    977       # Create the output directory, or remove our outputs if we need to.
    978       if test -d $objdir; then
    979         $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
    980         $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
    981       else
    982         $show "$mkdir $objdir"
    983         $run $mkdir $objdir
    984 	status=$?
    985 	if test $status -eq 0 || test -d $objdir; then :
    986 	else
    987 	  exit $status
    988 	fi
    989       fi
    990 
    991       # Check to see if the archive will have undefined symbols.
    992       if test "$allow_undefined" = yes; then
    993         if test "$allow_undefined_flag" = unsupported; then
    994           $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
    995           build_libtool_libs=no
    996 	  build_old_libs=yes
    997         fi
    998       else
    999         # Don't allow undefined symbols.
   1000         allow_undefined_flag="$no_undefined_flag"
   1001       fi
   1002 
   1003       # Add libc to deplibs on all systems.
   1004       dependency_libs="$deplibs"
   1005       deplibs="$deplibs -lc"
   1006 
   1007       if test "$build_libtool_libs" = yes; then
   1008         # Get the real and link names of the library.
   1009         eval library_names=\"$library_names_spec\"
   1010         set dummy $library_names
   1011         realname="$2"
   1012         shift; shift
   1013 
   1014         if test -n "$soname_spec"; then
   1015           eval soname=\"$soname_spec\"
   1016         else
   1017           soname="$realname"
   1018         fi
   1019 
   1020         lib="$objdir/$realname"
   1021 	for link
   1022 	do
   1023 	  linknames="$linknames $link"
   1024 	done
   1025 
   1026         # Use standard objects if they are PIC.
   1027         test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
   1028 
   1029         # Do each of the archive commands.
   1030         eval cmds=\"$archive_cmds\"
   1031         IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   1032         for cmd in $cmds; do
   1033           IFS="$save_ifs"
   1034           $show "$cmd"
   1035           $run eval "$cmd" || exit $?
   1036         done
   1037         IFS="$save_ifs"
   1038 
   1039         # Create links to the real library.
   1040         for linkname in $linknames; do
   1041           $show "(cd $objdir && $LN_S $realname $linkname)"
   1042           $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
   1043         done
   1044 
   1045         # If -export-dynamic was specified, set the dlname.
   1046         if test "$export_dynamic" = yes; then
   1047           # On all known operating systems, these are identical.
   1048           dlname="$soname"
   1049         fi
   1050       fi
   1051 
   1052       # Now set the variables for building old libraries.
   1053       oldlib="$objdir/$libname.a"
   1054       ;;
   1055 
   1056     *.lo | *.o)
   1057       if test -n "$link_against_libtool_libs"; then
   1058         $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
   1059         exit 1
   1060       fi
   1061 
   1062       if test -n "$deplibs"; then
   1063         $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
   1064       fi
   1065 
   1066       if test -n "$dlfiles$dlprefiles"; then
   1067         $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
   1068         # Nullify the symbol file.
   1069         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
   1070         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
   1071       fi
   1072 
   1073       if test -n "$rpath"; then
   1074         $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
   1075       fi
   1076 
   1077       if test -n "$vinfo"; then
   1078         $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
   1079       fi
   1080 
   1081       if test -n "$release"; then
   1082         $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
   1083       fi
   1084 
   1085       case "$output" in
   1086       *.lo)
   1087         if test -n "$objs"; then
   1088           $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
   1089           exit 1
   1090         fi
   1091         libobj="$output"
   1092         obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'`
   1093         ;;
   1094       *)
   1095         libobj=
   1096         obj="$output"
   1097         ;;
   1098       esac
   1099 
   1100       # Delete the old objects.
   1101       $run $rm $obj $libobj
   1102 
   1103       # Create the old-style object.
   1104       reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
   1105 
   1106       output="$obj"
   1107       eval cmds=\"$reload_cmds\"
   1108       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   1109       for cmd in $cmds; do
   1110         IFS="$save_ifs"
   1111         $show "$cmd"
   1112         $run eval "$cmd" || exit $?
   1113       done
   1114       IFS="$save_ifs"
   1115 
   1116       # Exit if we aren't doing a library object file.
   1117       test -z "$libobj" && exit 0
   1118 
   1119       if test "$build_libtool_libs" != yes; then
   1120         # Create an invalid libtool object if no PIC, so that we don't
   1121         # accidentally link it into a program.
   1122         $show "echo timestamp > $libobj"
   1123         $run eval "echo timestamp > $libobj" || exit $?
   1124         exit 0
   1125       fi
   1126 
   1127       if test -n "$pic_flag"; then
   1128         # Only do commands if we really have different PIC objects.
   1129         reload_objs="$libobjs"
   1130         output="$libobj"
   1131         eval cmds=\"$reload_cmds\"
   1132         IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   1133         for cmd in $cmds; do
   1134           IFS="$save_ifs"
   1135           $show "$cmd"
   1136           $run eval "$cmd" || exit $?
   1137         done
   1138         IFS="$save_ifs"
   1139       else
   1140         # Just create a symlink.
   1141         $show "$LN_S $obj $libobj"
   1142         $run $LN_S $obj $libobj || exit 1
   1143       fi
   1144 
   1145       exit 0
   1146       ;;
   1147 
   1148     *)
   1149       if test -n "$vinfo"; then
   1150         $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
   1151       fi
   1152 
   1153       if test -n "$release"; then
   1154         $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
   1155       fi
   1156 
   1157       if test -n "$rpath"; then
   1158 	# If the user specified any rpath flags, then add them.
   1159 	for libdir in $rpath; do
   1160           if test -n "$hardcode_libdir_flag_spec"; then
   1161             if test -n "$hardcode_libdir_separator"; then
   1162               if test -z "$hardcode_libdirs"; then
   1163                 # Put the magic libdir with the hardcode flag.
   1164                 hardcode_libdirs="$libdir"
   1165                 libdir="@HARDCODE_LIBDIRS@"
   1166               else
   1167                 # Just accumulate the unique libdirs.
   1168 		case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
   1169 		*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
   1170 		  ;;
   1171 		*)
   1172 		  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
   1173 		  ;;
   1174 		esac
   1175                 libdir=
   1176               fi
   1177             fi
   1178 
   1179             if test -n "$libdir"; then
   1180               eval flag=\"$hardcode_libdir_flag_spec\"
   1181 
   1182               compile_command="$compile_command $flag"
   1183               finalize_command="$finalize_command $flag"
   1184             fi
   1185           elif test -n "$runpath_var"; then
   1186             case "$perm_rpath " in
   1187             *" $libdir "*) ;;
   1188             *) perm_rpath="$perm_rpath $libdir" ;;
   1189             esac
   1190           fi
   1191 	done
   1192       fi
   1193 
   1194       # Substitute the hardcoded libdirs into the compile commands.
   1195       if test -n "$hardcode_libdir_separator"; then
   1196 	compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
   1197 	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
   1198       fi
   1199 
   1200       if test -n "$libobjs" && test "$build_old_libs" = yes; then
   1201         # Transform all the library objects into standard objects.
   1202         compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
   1203         finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
   1204       fi
   1205 
   1206       if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
   1207         dlsyms="${output}S.c"
   1208       else
   1209         dlsyms=
   1210       fi
   1211 
   1212       if test -n "$dlsyms"; then
   1213         # Add our own program objects to the preloaded list.
   1214         dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
   1215 
   1216 	# Discover the nlist of each of the dlfiles.
   1217         nlist="$objdir/${output}.nm"
   1218 
   1219 	if test -d $objdir; then
   1220 	  $show "$rm $nlist ${nlist}T"
   1221 	  $run $rm "$nlist" "${nlist}T"
   1222 	else
   1223 	  $show "$mkdir $objdir"
   1224 	  $run $mkdir $objdir
   1225 	  status=$?
   1226 	  if test $status -eq 0 || test -d $objdir; then :
   1227 	  else
   1228 	    exit $status
   1229 	  fi
   1230 	fi
   1231 
   1232         for arg in $dlprefiles; do
   1233 	  $show "extracting global C symbols from \`$arg'"
   1234 	  $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
   1235         done
   1236 
   1237         # Parse the name list into a source file.
   1238         $show "creating $objdir/$dlsyms"
   1239         if test -z "$run"; then
   1240 	  # Make sure we at least have an empty file.
   1241 	  test -f "$nlist" || : > "$nlist"
   1242 
   1243 	  # Try sorting and uniquifying the output.
   1244 	  if sort "$nlist" | uniq > "$nlist"T; then
   1245 	    mv -f "$nlist"T "$nlist"
   1246 	    wcout=`wc "$nlist" 2>/dev/null`
   1247 	    count=`echo "X$wcout" | $Xsed -e 's/^[ 	]*\([0-9][0-9]*\).*$/\1/'`
   1248 	    (test "$count" -ge 0) 2>/dev/null || count=-1
   1249 	  else
   1250 	    $rm "$nlist"T
   1251 	    count=-1
   1252 	  fi
   1253 
   1254 	  case "$dlsyms" in
   1255 	  "") ;;
   1256 	  *.c)
   1257 	    $echo > "$objdir/$dlsyms" "\
   1258 /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
   1259 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
   1260 
   1261 #ifdef __cplusplus
   1262 extern \"C\" {
   1263 #endif
   1264 
   1265 /* Prevent the only kind of declaration conflicts we can make. */
   1266 #define dld_preloaded_symbol_count some_other_symbol
   1267 #define dld_preloaded_symbols some_other_symbol
   1268 
   1269 /* External symbol declarations for the compiler. */\
   1270 "
   1271 
   1272 	    if test -f "$nlist"; then
   1273 	      sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
   1274 	    else
   1275 	      echo '/* NONE */' >> "$objdir/$dlsyms"
   1276 	    fi
   1277 
   1278 	    $echo >> "$objdir/$dlsyms" "\
   1279 
   1280 #undef dld_preloaded_symbol_count
   1281 #undef dld_preloaded_symbols
   1282 
   1283 #if defined (__STDC__) && __STDC__
   1284 # define __ptr_t void *
   1285 #else
   1286 # define __ptr_t char *
   1287 #endif
   1288 
   1289 /* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
   1290 int dld_preloaded_symbol_count = $count;
   1291 
   1292 /* The mapping between symbol names and symbols. */
   1293 struct {
   1294   char *name;
   1295   __ptr_t address;
   1296 }
   1297 dld_preloaded_symbols[] =
   1298 {\
   1299 "
   1300 
   1301 	    if test -f "$nlist"; then
   1302 	      sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
   1303 	    fi
   1304 
   1305 	    $echo >> "$objdir/$dlsyms" "\
   1306   {0, (__ptr_t) 0}
   1307 };
   1308 
   1309 #ifdef __cplusplus
   1310 }
   1311 #endif\
   1312 "
   1313 	    ;;
   1314 
   1315 	  *)
   1316 	    $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
   1317 	    exit 1
   1318 	    ;;
   1319 	  esac
   1320         fi
   1321 
   1322         # Now compile the dynamic symbol file.
   1323         $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
   1324         $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
   1325 
   1326         # Transform the symbol file into the correct name.
   1327         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
   1328         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
   1329       elif test "$export_dynamic" != yes; then
   1330         test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
   1331       else
   1332         # We keep going just in case the user didn't refer to
   1333         # dld_preloaded_symbols.  The linker will fail if global_symbol_pipe
   1334         # really was required.
   1335         $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
   1336 
   1337         # Nullify the symbol file.
   1338         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
   1339         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
   1340       fi
   1341 
   1342       if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
   1343         # Replace the output file specification.
   1344         compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
   1345         finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
   1346 
   1347         # We have no uninstalled library dependencies, so finalize right now.
   1348         $show "$compile_command"
   1349         $run eval "$compile_command"
   1350         exit $?
   1351       fi
   1352 
   1353       # Replace the output file specification.
   1354       compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
   1355       finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
   1356 
   1357       # Create the binary in the object directory, then wrap it.
   1358       if test -d $objdir; then :
   1359       else
   1360         $show "$mkdir $objdir"
   1361 	$run $mkdir $objdir
   1362 	status=$?
   1363 	if test $status -eq 0 || test -d $objdir; then :
   1364 	else
   1365 	  exit $status
   1366 	fi
   1367       fi
   1368 
   1369       if test -n "$shlibpath_var"; then
   1370         # We should set the shlibpath_var
   1371         rpath=
   1372         for dir in $temp_rpath; do
   1373           case "$dir" in
   1374           /* | [A-Za-z]:\\*)
   1375             # Absolute path.
   1376             rpath="$rpath$dir:"
   1377             ;;
   1378           *)
   1379             # Relative path: add a thisdir entry.
   1380             rpath="$rpath\$thisdir/$dir:"
   1381             ;;
   1382           esac
   1383         done
   1384         temp_rpath="$rpath"
   1385       fi
   1386 
   1387       # Delete the old output file.
   1388       $run $rm $output
   1389 
   1390       if test -n "$compile_shlibpath"; then
   1391         compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
   1392       fi
   1393       if test -n "$finalize_shlibpath"; then
   1394         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
   1395       fi
   1396 
   1397       if test -n "$runpath_var" && test -n "$perm_rpath"; then
   1398         # We should set the runpath_var.
   1399         rpath=
   1400         for dir in $perm_rpath; do
   1401           rpath="$rpath$dir:"
   1402         done
   1403         compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
   1404         finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
   1405       fi
   1406 
   1407       case "$hardcode_action" in
   1408       relink)
   1409         # AGH! Flame the AIX and HP-UX people for me, will ya?
   1410         $echo "$modename: warning: using a buggy system linker" 1>&2
   1411         $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
   1412         ;;
   1413       esac
   1414 
   1415       $show "$compile_command"
   1416       $run eval "$compile_command" || exit $?
   1417 
   1418       # Now create the wrapper script.
   1419       $show "creating $output"
   1420 
   1421       # Quote the finalize command for shipping.
   1422       finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
   1423 
   1424       # Quote $echo for shipping.
   1425       qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
   1426 
   1427       # Only actually do things if our run command is non-null.
   1428       if test -z "$run"; then
   1429         $rm $output
   1430         trap "$rm $output; exit 1" 1 2 15
   1431 
   1432         $echo > $output "\
   1433 #! /bin/sh
   1434 
   1435 # $output - temporary wrapper script for $objdir/$output
   1436 # Generated by ltmain.sh - GNU $PACKAGE $VERSION
   1437 #
   1438 # The $output program cannot be directly executed until all the libtool
   1439 # libraries that it depends on are installed.
   1440 #
   1441 # This wrapper script should never be moved out of \``pwd`'.
   1442 # If it is, it will not operate correctly.
   1443 
   1444 # Sed substitution that helps us do robust quoting.  It backslashifies
   1445 # metacharacters that are still active within double-quoted strings.
   1446 Xsed='sed -e s/^X//'
   1447 sed_quote_subst='$sed_quote_subst'
   1448 
   1449 # The HP-UX ksh and POSIX shell print the target directory to stdout
   1450 # if CDPATH is set.
   1451 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
   1452 
   1453 # This environment variable determines our operation mode.
   1454 if test \"\$libtool_install_magic\" = \"$magic\"; then
   1455   # install mode needs the following variables:
   1456   link_against_libtool_libs='$link_against_libtool_libs'
   1457   finalize_command=\"$finalize_command\"
   1458 else
   1459   # When we are sourced in execute mode, \$file and \$echo are already set.
   1460   if test \"\$libtool_execute_magic\" = \"$magic\"; then :
   1461   else
   1462     echo=\"$qecho\"
   1463     file=\"\$0\"
   1464   fi\
   1465 "
   1466         $echo >> $output "\
   1467 
   1468   # Find the directory that this script lives in.
   1469   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
   1470   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
   1471 
   1472   # Follow symbolic links until we get to the real thisdir.
   1473   file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
   1474   while test -n \"\$file\"; do
   1475     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
   1476 
   1477     # If there was a directory component, then change thisdir.
   1478     if test \"x\$destdir\" != \"x\$file\"; then
   1479       case \"\$destdir\" in
   1480       /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;;
   1481       *) thisdir=\"\$thisdir/\$destdir\" ;;
   1482       esac
   1483     fi
   1484 
   1485     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
   1486     file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
   1487   done
   1488 
   1489   # Try to get the absolute directory name.
   1490   absdir=\`cd \"\$thisdir\" && pwd\`
   1491   test -n \"\$absdir\" && thisdir=\"\$absdir\"
   1492 
   1493   progdir=\"\$thisdir/$objdir\"
   1494   program='$output'
   1495 
   1496   if test -f \"\$progdir/\$program\"; then"
   1497 
   1498         # Export our shlibpath_var if we have one.
   1499         if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
   1500           $echo >> $output "\
   1501     # Add our own library path to $shlibpath_var
   1502     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
   1503 
   1504     # Some systems cannot cope with colon-terminated $shlibpath_var
   1505     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
   1506 
   1507     export $shlibpath_var
   1508 "
   1509         fi
   1510 
   1511         $echo >> $output "\
   1512     if test \"\$libtool_execute_magic\" != \"$magic\"; then
   1513       # Run the actual program with our arguments.
   1514 
   1515       # Export the path to the program.
   1516       PATH=\"\$progdir:\$PATH\"
   1517       export PATH
   1518 
   1519       exec \$program \${1+\"\$@\"}
   1520 
   1521       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
   1522       exit 1
   1523     fi
   1524   else
   1525     # The program doesn't exist.
   1526     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
   1527     \$echo \"This script is just a wrapper for \$program.\" 1>&2
   1528     echo \"See the $PACKAGE documentation for more information.\" 1>&2
   1529     exit 1
   1530   fi
   1531 fi\
   1532 "
   1533         chmod +x $output
   1534       fi
   1535       exit 0
   1536       ;;
   1537     esac
   1538 
   1539     # See if we need to build an old-fashioned archive.
   1540     if test "$build_old_libs" = "yes"; then
   1541       # Transform .lo files to .o files.
   1542       oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
   1543 
   1544       # Do each command in the archive commands.
   1545       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
   1546 	eval cmds=\"$old_archive_from_new_cmds\"
   1547       else
   1548 	eval cmds=\"$old_archive_cmds\"
   1549       fi
   1550       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   1551       for cmd in $cmds; do
   1552         IFS="$save_ifs"
   1553         $show "$cmd"
   1554         $run eval "$cmd" || exit $?
   1555       done
   1556       IFS="$save_ifs"
   1557     fi
   1558 
   1559     # Now create the libtool archive.
   1560     case "$output" in
   1561     *.la)
   1562       old_library=
   1563       test "$build_old_libs" = yes && old_library="$libname.a"
   1564 
   1565       $show "creating $output"
   1566 
   1567       # Only create the output if not a dry run.
   1568       if test -z "$run"; then
   1569         $echo > $output "\
   1570 # $output - a libtool library file
   1571 # Generated by ltmain.sh - GNU $PACKAGE $VERSION
   1572 
   1573 # The name that we can dlopen(3).
   1574 dlname='$dlname'
   1575 
   1576 # Names of this library.
   1577 library_names='$library_names'
   1578 
   1579 # The name of the static archive.
   1580 old_library='$old_library'
   1581 
   1582 # Libraries that this one depends upon.
   1583 dependency_libs='$dependency_libs'
   1584 
   1585 # Version information for $libname.
   1586 current=$current
   1587 age=$age
   1588 revision=$revision
   1589 
   1590 # Directory that this library needs to be installed in:
   1591 libdir='$install_libdir'\
   1592 "
   1593       fi
   1594 
   1595       # Do a symbolic link so that the libtool archive can be found in
   1596       # LD_LIBRARY_PATH before the program is installed.
   1597       $show "(cd $objdir && $LN_S ../$output $output)"
   1598       $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1
   1599       ;;
   1600     esac
   1601     exit 0
   1602     ;;
   1603 
   1604   # libtool install mode
   1605   install)
   1606     modename="$modename: install"
   1607 
   1608     # There may be an optional /bin/sh argument at the beginning of
   1609     # install_prog (especially on Windows NT).
   1610     if test "$nonopt" = "$SHELL"; then
   1611       # Aesthetically quote it.
   1612       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
   1613       case "$arg" in
   1614       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
   1615 	arg="\"$arg\""
   1616 	;;
   1617       esac
   1618       install_prog="$arg "
   1619       arg="$1"
   1620       shift
   1621     else
   1622       install_prog=
   1623       arg="$nonopt"
   1624     fi
   1625 
   1626     # The real first argument should be the name of the installation program.
   1627     # Aesthetically quote it.
   1628     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
   1629     case "$arg" in
   1630     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
   1631       arg="\"$arg\""
   1632       ;;
   1633     esac
   1634     install_prog="$install_prog$arg"
   1635 
   1636     # We need to accept at least all the BSD install flags.
   1637     dest=
   1638     files=
   1639     opts=
   1640     prev=
   1641     install_type=
   1642     isdir=
   1643     stripme=
   1644     for arg
   1645     do
   1646       if test -n "$dest"; then
   1647         files="$files $dest"
   1648         dest="$arg"
   1649         continue
   1650       fi
   1651 
   1652       case "$arg" in
   1653       -d) isdir=yes ;;
   1654       -f) prev="-f" ;;
   1655       -g) prev="-g" ;;
   1656       -m) prev="-m" ;;
   1657       -o) prev="-o" ;;
   1658       -s)
   1659         stripme=" -s"
   1660         continue
   1661         ;;
   1662       -*) ;;
   1663 
   1664       *)
   1665         # If the previous option needed an argument, then skip it.
   1666         if test -n "$prev"; then
   1667           prev=
   1668         else
   1669           dest="$arg"
   1670           continue
   1671         fi
   1672         ;;
   1673       esac
   1674 
   1675       # Aesthetically quote the argument.
   1676       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
   1677       case "$arg" in
   1678       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
   1679 	arg="\"$arg\""
   1680 	;;
   1681       esac
   1682       install_prog="$install_prog $arg"
   1683     done
   1684 
   1685     if test -z "$install_prog"; then
   1686       $echo "$modename: you must specify an install program" 1>&2
   1687       $echo "$help" 1>&2
   1688       exit 1
   1689     fi
   1690 
   1691     if test -n "$prev"; then
   1692       $echo "$modename: the \`$prev' option requires an argument" 1>&2
   1693       $echo "$help" 1>&2
   1694       exit 1
   1695     fi
   1696 
   1697     if test -z "$files"; then
   1698       if test -z "$dest"; then
   1699         $echo "$modename: no file or destination specified" 1>&2
   1700       else
   1701         $echo "$modename: you must specify a destination" 1>&2
   1702       fi
   1703       $echo "$help" 1>&2
   1704       exit 1
   1705     fi
   1706 
   1707     # Strip any trailing slash from the destination.
   1708     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
   1709 
   1710     # Check to see that the destination is a directory.
   1711     test -d "$dest" && isdir=yes
   1712     if test -n "$isdir"; then
   1713       destdir="$dest"
   1714       destname=
   1715     else
   1716       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
   1717       test "X$destdir" = "X$dest" && destdir=.
   1718       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
   1719 
   1720       # Not a directory, so check to see that there is only one file specified.
   1721       set dummy $files
   1722       if test $# -gt 2; then
   1723         $echo "$modename: \`$dest' is not a directory" 1>&2
   1724         $echo "$help" 1>&2
   1725         exit 1
   1726       fi
   1727     fi
   1728     case "$destdir" in
   1729     /* | [A-Za-z]:\\*) ;;
   1730     *)
   1731       for file in $files; do
   1732         case "$file" in
   1733         *.lo) ;;
   1734         *)
   1735           $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
   1736           $echo "$help" 1>&2
   1737           exit 1
   1738           ;;
   1739         esac
   1740       done
   1741       ;;
   1742     esac
   1743 
   1744     # This variable tells wrapper scripts just to set variables rather
   1745     # than running their programs.
   1746     libtool_install_magic="$magic"
   1747 
   1748     staticlibs=
   1749     future_libdirs=
   1750     current_libdirs=
   1751     for file in $files; do
   1752 
   1753       # Do each installation.
   1754       case "$file" in
   1755       *.a)
   1756         # Do the static libraries later.
   1757         staticlibs="$staticlibs $file"
   1758         ;;
   1759 
   1760       *.la)
   1761         # Check to see that this really is a libtool archive.
   1762         if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
   1763         else
   1764           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
   1765           $echo "$help" 1>&2
   1766           exit 1
   1767         fi
   1768 
   1769         library_names=
   1770         old_library=
   1771         # If there is no directory component, then add one.
   1772         case "$file" in
   1773         */* | *\\*) . $file ;;
   1774         *) . ./$file ;;
   1775         esac
   1776 
   1777         # Add the libdir to current_libdirs if it is the destination.
   1778         if test "X$destdir" = "X$libdir"; then
   1779           case "$current_libdirs " in
   1780           *" $libdir "*) ;;
   1781           *) current_libdirs="$current_libdirs $libdir" ;;
   1782           esac
   1783         else
   1784           # Note the libdir as a future libdir.
   1785           case "$future_libdirs " in
   1786           *" $libdir "*) ;;
   1787           *) future_libdirs="$future_libdirs $libdir" ;;
   1788           esac
   1789         fi
   1790 
   1791         dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
   1792         test "X$dir" = "X$file/" && dir=
   1793         dir="$dir$objdir"
   1794 
   1795         # See the names of the shared library.
   1796         set dummy $library_names
   1797         if test -n "$2"; then
   1798           realname="$2"
   1799           shift
   1800           shift
   1801 
   1802           # Install the shared library and build the symlinks.
   1803           $show "$install_prog $dir/$realname $destdir/$realname"
   1804           $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
   1805           test "X$dlname" = "X$realname" && dlname=
   1806 
   1807           if test $# -gt 0; then
   1808             # Delete the old symlinks.
   1809             rmcmd="$rm"
   1810             for linkname
   1811             do
   1812               rmcmd="$rmcmd $destdir/$linkname"
   1813             done
   1814             $show "$rmcmd"
   1815             $run $rmcmd
   1816 
   1817             # ... and create new ones.
   1818             for linkname
   1819             do
   1820               test "X$dlname" = "X$linkname" && dlname=
   1821               $show "(cd $destdir && $LN_S $realname $linkname)"
   1822               $run eval "(cd $destdir && $LN_S $realname $linkname)"
   1823             done
   1824           fi
   1825 
   1826           if test -n "$dlname"; then
   1827             # Install the dynamically-loadable library.
   1828             $show "$install_prog $dir/$dlname $destdir/$dlname"
   1829             $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
   1830           fi
   1831 
   1832           # Do each command in the postinstall commands.
   1833           lib="$destdir/$realname"
   1834           eval cmds=\"$postinstall_cmds\"
   1835           IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   1836           for cmd in $cmds; do
   1837             IFS="$save_ifs"
   1838             $show "$cmd"
   1839             $run eval "$cmd" || exit $?
   1840           done
   1841           IFS="$save_ifs"
   1842         fi
   1843 
   1844         # Install the pseudo-library for information purposes.
   1845         name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
   1846         $show "$install_prog $file $destdir/$name"
   1847         $run eval "$install_prog $file $destdir/$name" || exit $?
   1848 
   1849         # Maybe install the static library, too.
   1850         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
   1851         ;;
   1852 
   1853       *.lo)
   1854         # Install (i.e. copy) a libtool object.
   1855 
   1856         # Figure out destination file name, if it wasn't already specified.
   1857         if test -n "$destname"; then
   1858           destfile="$destdir/$destname"
   1859         else
   1860           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
   1861           destfile="$destdir/$destfile"
   1862         fi
   1863 
   1864         # Deduce the name of the destination old-style object file.
   1865         case "$destfile" in
   1866         *.lo)
   1867           staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'`
   1868           ;;
   1869         *.o)
   1870           staticdest="$destfile"
   1871           destfile=
   1872           ;;
   1873         *)
   1874           $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
   1875           $echo "$help" 1>&2
   1876           exit 1
   1877           ;;
   1878         esac
   1879 
   1880         # Install the libtool object if requested.
   1881         if test -n "$destfile"; then
   1882           $show "$install_prog $file $destfile"
   1883           $run eval "$install_prog $file $destfile" || exit $?
   1884         fi
   1885 
   1886         # Install the old object if enabled.
   1887         if test "$build_old_libs" = yes; then
   1888           # Deduce the name of the old-style object file.
   1889           staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'`
   1890 
   1891           $show "$install_prog $staticobj $staticdest"
   1892           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
   1893         fi
   1894         exit 0
   1895         ;;
   1896 
   1897       *)
   1898         # Do a test to see if this is really a libtool program.
   1899         if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then
   1900           link_against_libtool_libs=
   1901           finalize_command=
   1902 
   1903           # If there is no directory component, then add one.
   1904           case "$file" in
   1905           */* | *\\*) . $file ;;
   1906           *) . ./$file ;;
   1907           esac
   1908 
   1909           # Check the variables that should have been set.
   1910           if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
   1911             $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
   1912             exit 1
   1913           fi
   1914 
   1915           finalize=yes
   1916           for lib in $link_against_libtool_libs; do
   1917             # Check to see that each library is installed.
   1918             libdir=
   1919             if test -f "$lib"; then
   1920               # If there is no directory component, then add one.
   1921               case "$lib" in
   1922               */* | *\\*) . $lib ;;
   1923               *) . ./$lib ;;
   1924               esac
   1925             fi
   1926             libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
   1927             if test -z "$libdir"; then
   1928               $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
   1929             elif test -f "$libfile"; then :
   1930             else
   1931               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
   1932               finalize=no
   1933             fi
   1934           done
   1935 
   1936           if test "$hardcode_action" = relink; then
   1937             if test "$finalize" = yes; then
   1938               $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
   1939               $show "$finalize_command"
   1940               if $run eval "$finalize_command"; then :
   1941               else
   1942                 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
   1943                 continue
   1944               fi
   1945               file="$objdir/$file"T
   1946             else
   1947               $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
   1948             fi
   1949           else
   1950             # Install the binary that we compiled earlier.
   1951 	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
   1952           fi
   1953         fi
   1954 
   1955         $show "$install_prog$stripme $file $dest"
   1956         $run eval "$install_prog\$stripme \$file \$dest" || exit $?
   1957         ;;
   1958       esac
   1959     done
   1960 
   1961     for file in $staticlibs; do
   1962       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
   1963 
   1964       # Set up the ranlib parameters.
   1965       oldlib="$destdir/$name"
   1966 
   1967       $show "$install_prog $file $oldlib"
   1968       $run eval "$install_prog \$file \$oldlib" || exit $?
   1969 
   1970       # Do each command in the postinstall commands.
   1971       eval cmds=\"$old_postinstall_cmds\"
   1972       IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   1973       for cmd in $cmds; do
   1974         IFS="$save_ifs"
   1975         $show "$cmd"
   1976         $run eval "$cmd" || exit $?
   1977       done
   1978       IFS="$save_ifs"
   1979     done
   1980 
   1981     if test -n "$future_libdirs"; then
   1982       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
   1983     fi
   1984 
   1985     if test -n "$current_libdirs"; then
   1986       # Maybe just do a dry run.
   1987       test -n "$run" && current_libdirs=" -n$current_libdirs"
   1988       exec $SHELL $0 --finish$current_libdirs
   1989       exit 1
   1990     fi
   1991 
   1992     exit 0
   1993     ;;
   1994 
   1995   # libtool finish mode
   1996   finish)
   1997     modename="$modename: finish"
   1998     libdirs="$nonopt"
   1999 
   2000     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
   2001       for dir
   2002       do
   2003         libdirs="$libdirs $dir"
   2004       done
   2005 
   2006       for libdir in $libdirs; do
   2007 	if test -n "$finish_cmds"; then
   2008 	  # Do each command in the finish commands.
   2009 	  eval cmds=\"$finish_cmds\"
   2010           IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   2011           for cmd in $cmds; do
   2012             IFS="$save_ifs"
   2013             $show "$cmd"
   2014             $run eval "$cmd"
   2015           done
   2016           IFS="$save_ifs"
   2017 	fi
   2018 	if test -n "$finish_eval"; then
   2019 	  # Do the single finish_eval.
   2020 	  eval cmds=\"$finish_eval\"
   2021 	  $run eval "$cmds"
   2022 	fi
   2023       done
   2024     fi
   2025 
   2026     echo "------------------------------------------------------------------------------"
   2027     echo "Libraries have been installed in:"
   2028     for libdir in $libdirs; do
   2029       echo "   $libdir"
   2030     done
   2031     echo
   2032     echo "To link against installed libraries in a given directory, LIBDIR,"
   2033     echo "you must use the \`-LLIBDIR' flag during linking."
   2034     echo
   2035     echo " You will also need to do one of the following:"
   2036     if test -n "$shlibpath_var"; then
   2037       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
   2038       echo "     during execution"
   2039     fi
   2040     if test -n "$runpath_var"; then
   2041       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
   2042       echo "     during linking"
   2043     fi
   2044     if test -n "$hardcode_libdir_flag_spec"; then
   2045       libdir=LIBDIR
   2046       eval flag=\"$hardcode_libdir_flag_spec\"
   2047 
   2048       echo "   - use the \`$flag' linker flag"
   2049     fi
   2050     if test -f /etc/ld.so.conf; then
   2051       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
   2052     fi
   2053     echo
   2054     echo "See any operating system documentation about shared libraries for"
   2055     echo "more information, such as the ld(1) and ld.so(8) manual pages."
   2056     echo "------------------------------------------------------------------------------"
   2057     exit 0
   2058     ;;
   2059 
   2060   # libtool execute mode
   2061   execute)
   2062     modename="$modename: execute"
   2063 
   2064     # The first argument is the command name.
   2065     cmd="$nonopt"
   2066     if test -z "$cmd"; then
   2067       $echo "$modename: you must specify a COMMAND" 1>&2
   2068       $echo "$help"
   2069       exit 1
   2070     fi
   2071 
   2072     # Handle -dlopen flags immediately.
   2073     for file in $execute_dlfiles; do
   2074       if test -f "$file"; then :
   2075       else
   2076 	$echo "$modename: \`$file' is not a file" 1>&2
   2077 	$echo "$help" 1>&2
   2078 	exit 1
   2079       fi
   2080 
   2081       dir=
   2082       case "$file" in
   2083       *.la)
   2084         # Check to see that this really is a libtool archive.
   2085         if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then :
   2086         else
   2087           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
   2088           $echo "$help" 1>&2
   2089           exit 1
   2090         fi
   2091 
   2092 	# Read the libtool library.
   2093 	dlname=
   2094 	library_names=
   2095 
   2096         # If there is no directory component, then add one.
   2097 	case "$file" in
   2098 	*/* | *\\*) . $file ;;
   2099         *) . ./$file ;;
   2100 	esac
   2101 
   2102 	# Skip this library if it cannot be dlopened.
   2103 	if test -z "$dlname"; then
   2104 	  # Warn if it was a shared library.
   2105 	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
   2106 	  continue
   2107 	fi
   2108 
   2109 	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
   2110 	test "X$dir" = "X$file" && dir=.
   2111 
   2112 	if test -f "$dir/$objdir/$dlname"; then
   2113 	  dir="$dir/$objdir"
   2114 	else
   2115 	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
   2116 	  exit 1
   2117 	fi
   2118 	;;
   2119 
   2120       *.lo)
   2121 	# Just add the directory containing the .lo file.
   2122 	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
   2123 	test "X$dir" = "X$file" && dir=.
   2124 	;;
   2125 
   2126       *)
   2127 	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
   2128         continue
   2129 	;;
   2130       esac
   2131 
   2132       # Get the absolute pathname.
   2133       absdir=`cd "$dir" && pwd`
   2134       test -n "$absdir" && dir="$absdir"
   2135 
   2136       # Now add the directory to shlibpath_var.
   2137       if eval "test -z \"\$$shlibpath_var\""; then
   2138 	eval "$shlibpath_var=\"\$dir\""
   2139       else
   2140 	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
   2141       fi
   2142     done
   2143 
   2144     # This variable tells wrapper scripts just to set shlibpath_var
   2145     # rather than running their programs.
   2146     libtool_execute_magic="$magic"
   2147 
   2148     # Check if any of the arguments is a wrapper script.
   2149     args=
   2150     for file
   2151     do
   2152       case "$file" in
   2153       -*) ;;
   2154       *)
   2155         # Do a test to see if this is really a libtool program.
   2156         if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then
   2157 	  # If there is no directory component, then add one.
   2158 	  case "$file" in
   2159 	  */* | *\\*) . $file ;;
   2160 	  *) . ./$file ;;
   2161 	  esac
   2162 
   2163 	  # Transform arg to wrapped name.
   2164 	  file="$progdir/$program"
   2165 	fi
   2166         ;;
   2167       esac
   2168       # Quote arguments (to preserve shell metacharacters).
   2169       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
   2170       args="$args \"$file\""
   2171     done
   2172 
   2173     if test -z "$run"; then
   2174       # Export the shlibpath_var.
   2175       eval "export $shlibpath_var"
   2176 
   2177       # Now actually exec the command.
   2178       eval "exec \$cmd$args"
   2179 
   2180       $echo "$modename: cannot exec \$cmd$args"
   2181       exit 1
   2182     else
   2183       # Display what would be done.
   2184       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
   2185       $echo "export $shlibpath_var"
   2186       $echo "$cmd$args"
   2187       exit 0
   2188     fi
   2189     ;;
   2190 
   2191   # libtool uninstall mode
   2192   uninstall)
   2193     modename="$modename: uninstall"
   2194     rm="$nonopt"
   2195     files=
   2196 
   2197     for arg
   2198     do
   2199       case "$arg" in
   2200       -*) rm="$rm $arg" ;;
   2201       *) files="$files $arg" ;;
   2202       esac
   2203     done
   2204 
   2205     if test -z "$rm"; then
   2206       $echo "$modename: you must specify an RM program" 1>&2
   2207       $echo "$help" 1>&2
   2208       exit 1
   2209     fi
   2210 
   2211     for file in $files; do
   2212       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
   2213       test "X$dir" = "X$file" && dir=.
   2214       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
   2215 
   2216       rmfiles="$file"
   2217 
   2218       case "$name" in
   2219       *.la)
   2220         # Possibly a libtool archive, so verify it.
   2221         if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then
   2222           . $dir/$name
   2223 
   2224           # Delete the libtool libraries and symlinks.
   2225           for n in $library_names; do
   2226             rmfiles="$rmfiles $dir/$n"
   2227             test "X$n" = "X$dlname" && dlname=
   2228           done
   2229           test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
   2230           test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
   2231 
   2232 	  $show "$rm $rmfiles"
   2233 	  $run $rm $rmfiles
   2234 
   2235 	  if test -n "$library_names"; then
   2236 	    # Do each command in the postuninstall commands.
   2237 	    eval cmds=\"$postuninstall_cmds\"
   2238 	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   2239 	    for cmd in $cmds; do
   2240 	      IFS="$save_ifs"
   2241 	      $show "$cmd"
   2242 	      $run eval "$cmd"
   2243 	    done
   2244 	    IFS="$save_ifs"
   2245 	  fi
   2246 
   2247           if test -n "$old_library"; then
   2248 	    # Do each command in the old_postuninstall commands.
   2249 	    eval cmds=\"$old_postuninstall_cmds\"
   2250 	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=';'
   2251 	    for cmd in $cmds; do
   2252 	      IFS="$save_ifs"
   2253 	      $show "$cmd"
   2254 	      $run eval "$cmd"
   2255 	    done
   2256 	    IFS="$save_ifs"
   2257 	  fi
   2258 
   2259           # FIXME: should reinstall the best remaining shared library.
   2260         fi
   2261         ;;
   2262 
   2263       *.lo)
   2264         if test "$build_old_libs" = yes; then
   2265           oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'`
   2266           rmfiles="$rmfiles $dir/$oldobj"
   2267         fi
   2268 	$show "$rm $rmfiles"
   2269 	$run $rm $rmfiles
   2270         ;;
   2271 
   2272       *)
   2273       	$show "$rm $rmfiles"
   2274 	$run $rm $rmfiles
   2275 	;;
   2276       esac
   2277     done
   2278     exit 0
   2279     ;;
   2280 
   2281   "")
   2282     $echo "$modename: you must specify a MODE" 1>&2
   2283     $echo "$generic_help" 1>&2
   2284     exit 1
   2285     ;;
   2286   esac
   2287 
   2288   $echo "$modename: invalid operation mode \`$mode'" 1>&2
   2289   $echo "$generic_help" 1>&2
   2290   exit 1
   2291 fi # test -z "$show_help"
   2292 
   2293 # We need to display help for each of the modes.
   2294 case "$mode" in
   2295 "") $echo \
   2296 "Usage: $modename [OPTION]... [MODE-ARG]...
   2297 
   2298 Provide generalized library-building support services.
   2299 
   2300 -n, --dry-run         display commands without modifying any files
   2301     --features        display configuration information and exit
   2302     --finish          same as \`--mode=finish'
   2303     --help            display this help message and exit
   2304     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
   2305     --quiet           same as \`--silent'
   2306     --silent          don't print informational messages
   2307     --version         print version information
   2308 
   2309 MODE must be one of the following:
   2310 
   2311       compile         compile a source file into a libtool object
   2312       execute         automatically set library path, then run a program
   2313       finish          complete the installation of libtool libraries
   2314       install         install libraries or executables
   2315       link            create a library or an executable
   2316       uninstall       remove libraries from an installed directory
   2317 
   2318 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
   2319 a more detailed description of MODE."
   2320   exit 0
   2321   ;;
   2322 
   2323 compile)
   2324   $echo \
   2325 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
   2326 
   2327 Compile a source file into a libtool library object.
   2328 
   2329 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
   2330 from the given SOURCEFILE.
   2331 
   2332 The output file name is determined by removing the directory component from
   2333 SOURCEFILE, then substituting the C source code suffix \`.c' with the
   2334 library object suffix, \`.lo'."
   2335   ;;
   2336 
   2337 execute)
   2338   $echo \
   2339 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
   2340 
   2341 Automatically set library path, then run a program.
   2342 
   2343 This mode accepts the following additional options:
   2344 
   2345   -dlopen FILE      add the directory containing FILE to the library path
   2346 
   2347 This mode sets the library path environment variable according to \`-dlopen'
   2348 flags.
   2349 
   2350 If any of the ARGS are libtool executable wrappers, then they are translated
   2351 into their corresponding uninstalled binary, and any of their required library
   2352 directories are added to the library path.
   2353 
   2354 Then, COMMAND is executed, with ARGS as arguments."
   2355   ;;
   2356 
   2357 finish)
   2358   $echo \
   2359 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
   2360 
   2361 Complete the installation of libtool libraries.
   2362 
   2363 Each LIBDIR is a directory that contains libtool libraries.
   2364 
   2365 The commands that this mode executes may require superuser privileges.  Use
   2366 the \`--dry-run' option if you just want to see what would be executed."
   2367   ;;
   2368 
   2369 install)
   2370   $echo \
   2371 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
   2372 
   2373 Install executables or libraries.
   2374 
   2375 INSTALL-COMMAND is the installation command.  The first component should be
   2376 either the \`install' or \`cp' program.
   2377 
   2378 The rest of the components are interpreted as arguments to that command (only
   2379 BSD-compatible install options are recognized)."
   2380   ;;
   2381 
   2382 link)
   2383   $echo \
   2384 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
   2385 
   2386 Link object files or libraries together to form another library, or to
   2387 create an executable program.
   2388 
   2389 LINK-COMMAND is a command using the C compiler that you would use to create
   2390 a program from several object files.
   2391 
   2392 The following components of LINK-COMMAND are treated specially:
   2393 
   2394   -all-static       do not do any dynamic linking at all
   2395   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   2396   -dlpreopen FILE   link in FILE and add its symbols to dld_preloaded_symbols
   2397   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   2398   -LLIBDIR          search LIBDIR for required installed libraries
   2399   -lNAME            OUTPUT-FILE requires the installed library libNAME
   2400   -no-undefined     declare that a library does not refer to external symbols
   2401   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
   2402   -release RELEASE  specify package release information
   2403   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
   2404   -static           do not do any dynamic linking of libtool libraries
   2405   -version-info CURRENT[:REVISION[:AGE]]
   2406                     specify library version info [each variable defaults to 0]
   2407 
   2408 All other options (arguments beginning with \`-') are ignored.
   2409 
   2410 Every other argument is treated as a filename.  Files ending in \`.la' are
   2411 treated as uninstalled libtool libraries, other files are standard or library
   2412 object files.
   2413 
   2414 If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
   2415 library objects (\`.lo' files) may be specified, and \`-rpath' is required.
   2416 
   2417 If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar'
   2418 and \`ranlib'.
   2419 
   2420 If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is
   2421 created, otherwise an executable program is created."
   2422   ;;
   2423 
   2424 uninstall)
   2425   $echo
   2426 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
   2427 
   2428 Remove libraries from an installation directory.
   2429 
   2430 RM is the name of the program to use to delete files associated with each FILE
   2431 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
   2432 to RM.
   2433 
   2434 If FILE is a libtool library, all the files associated with it are deleted.
   2435 Otherwise, only FILE itself is deleted using RM."
   2436   ;;
   2437 
   2438 *)
   2439   $echo "$modename: invalid operation mode \`$mode'" 1>&2
   2440   $echo "$help" 1>&2
   2441   exit 1
   2442   ;;
   2443 esac
   2444 
   2445 echo
   2446 $echo "Try \`$modename --help' for more information about other modes."
   2447 
   2448 exit 0
   2449 
   2450 # Local Variables:
   2451 # mode:shell-script
   2452 # sh-indentation:2
   2453 # End:
   2454