1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
5 # Free Software Foundation, Inc.
6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Check that we have a working $echo.
28 if test "X$1" = X--no-reexec; then
29 # Discard the --no-reexec flag, and continue.
31 elif test "X$1" = X--fallback-echo; then
32 # Avoid inline document here, it may be left over
34 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
35 # Yippee, $echo works!
38 # Restart under the correct shell, and then maybe $echo will work.
39 exec $SHELL "$0" --no-reexec ${1+"$@"}
42 if test "X$1" = X--fallback-echo; then
43 # used as fallback echo
51 # The name of this program.
52 progname=`$echo "$0" | sed 's%^.*/%%'`
59 TIMESTAMP=" (1.922 2001/04/25 00:05:37)"
62 help="Try \`$progname --help' for more information."
63 magic="%%%MAGIC variable%%%"
68 # Sed substitution that helps us do robust quoting. It backslashifies
69 # metacharacters that are still active within double-quoted strings.
71 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
73 NL2SP='tr \015\012 \040\040'
76 # Only set LANG and LC_ALL to C if already set.
77 # These must not be set unconditionally because not all systems understand
78 # e.g. LANG=C (notably SCO).
79 # We save the old values to restore during execute mode.
80 if test "${LC_ALL+set}" = set; then
81 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
83 if test "${LANG+set}" = set; then
84 save_LANG="$LANG"; LANG=C; export LANG
87 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
88 echo "$modename: not configured to build any kind of library" 1>&2
89 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
102 lo2o="s/\\.lo\$/.${objext}/"
103 o2lo="s/\\.${objext}\$/.lo/"
105 # Parse our command line options once, thoroughly.
112 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
116 # If the previous option needs an argument, assign it.
117 if test -n "$prev"; then
120 execute_dlfiles="$execute_dlfiles $arg"
132 # Have we seen a non-optional argument yet?
139 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
144 sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
149 echo "$progname: enabling shell trace mode"
159 if test "$build_libtool_libs" = yes; then
160 echo "enable shared libraries"
162 echo "disable shared libraries"
164 if test "$build_old_libs" = yes; then
165 echo "enable static libraries"
167 echo "disable static libraries"
172 --finish) mode="finish" ;;
174 --mode) prevopt="--mode" prev=mode ;;
175 --mode=*) mode="$optarg" ;;
187 $echo "$modename: unrecognized option \`$arg'" 1>&2
199 if test -n "$prevopt"; then
200 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
205 if test -z "$show_help"; then
207 # Infer the operation mode.
208 if test -z "$mode"; then
210 *cc | *++ | gcc* | *-gcc*)
222 *db | *dbx | *strace | *truss)
232 # If we have no mode, but dlfiles were specified, then do execute mode.
233 test -n "$execute_dlfiles" && mode=execute
235 # Just use the default operation mode.
236 if test -z "$mode"; then
237 if test -n "$nonopt"; then
238 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
240 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
247 # Only execute mode is allowed to have -dlopen flags.
248 if test -n "$execute_dlfiles" && test "$mode" != execute; then
249 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
254 # Change the help message to a mode-specific one.
256 help="Try \`$modename --help --mode=$mode' for more information."
258 # These modes are in order of execution frequency so that they run quickly.
260 # libtool compile mode
262 modename="$modename: compile"
263 # Get the compilation command and the source file.
276 # Aesthetically quote the previous argument.
278 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
281 # Double-quote args containing other shell metacharacters.
282 # Many Bourne shells cannot handle close brackets correctly
283 # in scan sets, so we specify it separately.
284 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
289 # Add the previous argument to base_compile.
290 if test -z "$base_compile"; then
291 base_compile="$lastarg"
293 base_compile="$base_compile $lastarg"
299 # Accept any command-line options.
302 if test "$user_target" != "no"; then
303 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
330 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
332 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
336 # Double-quote args containing other shell metacharacters.
337 # Many Bourne shells cannot handle close brackets correctly
338 # in scan sets, so we specify it separately.
340 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
344 lastarg="$lastarg $arg"
347 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
349 # Add the arguments to base_compile.
350 if test -z "$base_compile"; then
351 base_compile="$lastarg"
353 base_compile="$base_compile $lastarg"
361 # The next one is the -o target name
366 # We got the output file
373 # Accept the current argument as the source file.
377 # Aesthetically quote the previous argument.
379 # Backslashify any backslashes, double quotes, and dollar signs.
380 # These are the only characters that are still specially
381 # interpreted inside of double-quoted scrings.
382 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
384 # Double-quote args containing other shell metacharacters.
385 # Many Bourne shells cannot handle close brackets correctly
386 # in scan sets, so we specify it separately.
388 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
389 lastarg="\"$lastarg\""
393 # Add the previous argument to base_compile.
394 if test -z "$base_compile"; then
395 base_compile="$lastarg"
397 base_compile="$base_compile $lastarg"
405 # Get the name of the library object.
406 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
409 $echo "$modename: you must specify a target with \`-o'" 1>&2
414 # Recognize several different file suffixes.
415 # If the user specifies -o file.o, it is replaced with file.lo
430 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
433 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
435 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
440 if test -z "$base_compile"; then
441 $echo "$modename: you must specify a compilation command" 1>&2
446 # Delete any leftover library objects.
447 if test "$build_old_libs" = yes; then
448 removelist="$obj $libobj"
454 trap "$run $rm $removelist; exit 1" 1 2 15
456 # On Cygwin there's no "real" PIC flag so we must build both object types
458 cygwin* | mingw* | pw32* | os2*)
462 if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
463 # non-PIC code in shared libraries is not supported
467 # Calculate the filename of the output object if compiler does
468 # not support -o with -c
469 if test "$compiler_c_o" = no; then
470 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
471 lockfile="$output_obj.lock"
472 removelist="$removelist $output_obj $lockfile"
473 trap "$run $rm $removelist; exit 1" 1 2 15
479 # Lock this critical section if it is needed
480 # We use this script file to make the link, it avoids creating a new file
481 if test "$need_locks" = yes; then
482 until $run ln "$0" "$lockfile" 2>/dev/null; do
483 $show "Waiting for $lockfile to be removed"
486 elif test "$need_locks" = warn; then
487 if test -f "$lockfile"; then
489 *** ERROR, $lockfile exists and contains:
490 `cat $lockfile 2>/dev/null`
492 This indicates that another process is trying to use the same
493 temporary object file, and libtool could not work around it because
494 your compiler does not support \`-c' and \`-o' together. If you
495 repeat this compilation, it may succeed, by chance, but you had better
496 avoid parallel builds (make -j) in this platform, or get a better
502 echo $srcfile > "$lockfile"
505 if test -n "$fix_srcfile_path"; then
506 eval srcfile=\"$fix_srcfile_path\"
509 # Only build a PIC object if we are building libtool libraries.
510 if test "$build_libtool_libs" = yes; then
511 # Without this assignment, base_compile gets emptied.
512 fbsd_hideous_sh_bug=$base_compile
514 if test "$pic_mode" != no; then
515 # All platforms use -DPIC, to notify preprocessed assembler code.
516 command="$base_compile $srcfile $pic_flag -DPIC"
518 # Don't build PIC code
519 command="$base_compile $srcfile"
521 if test "$build_old_libs" = yes; then
523 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
524 if test "X$dir" = "X$libobj"; then
529 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
531 if test -d "$dir"; then
538 if test $status -ne 0 && test ! -d $dir; then
543 if test "$compiler_o_lo" = yes; then
545 command="$command -o $output_obj"
546 elif test "$compiler_c_o" = yes; then
548 command="$command -o $output_obj"
551 $run $rm "$output_obj"
553 if $run eval "$command"; then :
555 test -n "$output_obj" && $run $rm $removelist
559 if test "$need_locks" = warn &&
560 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
562 *** ERROR, $lockfile contains:
563 `cat $lockfile 2>/dev/null`
565 but it should contain:
568 This indicates that another process is trying to use the same
569 temporary object file, and libtool could not work around it because
570 your compiler does not support \`-c' and \`-o' together. If you
571 repeat this compilation, it may succeed, by chance, but you had better
572 avoid parallel builds (make -j) in this platform, or get a better
579 # Just move the object if needed, then go on to compile the next one
580 if test x"$output_obj" != x"$libobj"; then
581 $show "$mv $output_obj $libobj"
582 if $run $mv $output_obj $libobj; then :
590 # If we have no pic_flag, then copy the object into place and finish.
591 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
592 test "$build_old_libs" = yes; then
593 # Rename the .lo from within objdir to obj
594 if test -f $obj; then
599 $show "$mv $libobj $obj"
600 if $run $mv $libobj $obj; then :
607 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
608 if test "X$xdir" = "X$obj"; then
613 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
614 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
615 # Now arrange that obj and lo_libobj become the same file
616 $show "(cd $xdir && $LN_S $baseobj $libobj)"
617 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
626 # Allow error messages only from the first compilation.
627 suppress_output=' >/dev/null 2>&1'
630 # Only build a position-dependent object if we build old libraries.
631 if test "$build_old_libs" = yes; then
632 if test "$pic_mode" != yes; then
633 # Don't build PIC code
634 command="$base_compile $srcfile"
636 # All platforms use -DPIC, to notify preprocessed assembler code.
637 command="$base_compile $srcfile $pic_flag -DPIC"
639 if test "$compiler_c_o" = yes; then
640 command="$command -o $obj"
644 # Suppress compiler output if we already did a PIC compilation.
645 command="$command$suppress_output"
646 $run $rm "$output_obj"
648 if $run eval "$command"; then :
654 if test "$need_locks" = warn &&
655 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
657 *** ERROR, $lockfile contains:
658 `cat $lockfile 2>/dev/null`
660 but it should contain:
663 This indicates that another process is trying to use the same
664 temporary object file, and libtool could not work around it because
665 your compiler does not support \`-c' and \`-o' together. If you
666 repeat this compilation, it may succeed, by chance, but you had better
667 avoid parallel builds (make -j) in this platform, or get a better
674 # Just move the object if needed
675 if test x"$output_obj" != x"$obj"; then
676 $show "$mv $output_obj $obj"
677 if $run $mv $output_obj $obj; then :
685 # Create an invalid libtool object if no PIC, so that we do not
686 # accidentally link it into a program.
687 if test "$build_libtool_libs" != yes; then
688 $show "echo timestamp > $libobj"
689 $run eval "echo timestamp > \$libobj" || exit $?
691 # Move the .lo from within objdir
692 $show "$mv $libobj $lo_libobj"
693 if $run $mv $libobj $lo_libobj; then :
702 # Unlock the critical section if it was locked
703 if test "$need_locks" != no; then
712 modename="$modename: link"
714 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
715 # It is impossible to link a dll without this setting, and
716 # we shouldn't force the makefile maintainer to figure out
717 # which system we are compiling for in order to pass an extra
718 # flag for every libtool invokation.
721 # FIXME: Unfortunately, there are problems with the above when trying
722 # to make a dll which has undefined symbols, in which case not
723 # even a static library is built. For now, we need to specify
724 # -no-undefined on the libtool link line when we can be certain
725 # that all symbols are satisfied, otherwise we get a static library.
732 libtool_args="$nonopt"
733 compile_command="$nonopt"
734 finalize_command="$nonopt"
747 lib_search_path=`pwd`
756 export_symbols_regex=
763 prefer_static_libs=no
775 # We need to know -static, to get the right output filenames.
779 -all-static | -static)
780 if test "X$arg" = "X-all-static"; then
781 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
782 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
784 if test -n "$link_static_flag"; then
785 dlopen_self=$dlopen_self_static
788 if test -z "$pic_flag" && test -n "$link_static_flag"; then
789 dlopen_self=$dlopen_self_static
792 build_libtool_libs=no
794 prefer_static_libs=yes
800 # See if our shared archives depend on static archives.
801 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
803 # Go through the arguments, transforming them on the way.
804 while test $# -gt 0; do
808 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
809 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
813 libtool_args="$libtool_args $qarg"
815 # If the previous option needs an argument, assign it.
816 if test -n "$prev"; then
819 compile_command="$compile_command @OUTPUT@"
820 finalize_command="$finalize_command @OUTPUT@"
826 if test "$preload" = no; then
827 # Add the symbol object into the linking commands.
828 compile_command="$compile_command @SYMFILE@"
829 finalize_command="$finalize_command @SYMFILE@"
833 *.la | *.lo) ;; # We handle these cases below.
835 if test "$dlself" = no; then
843 if test "$prev" = dlprefiles; then
845 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
855 if test "$prev" = dlfiles; then
856 dlfiles="$dlfiles $arg"
858 dlprefiles="$dlprefiles $arg"
866 export_symbols="$arg"
867 if test ! -f "$arg"; then
868 $echo "$modename: symbol file \`$arg' does not exist"
875 export_symbols_regex="$arg"
880 inst_prefix_dir="$arg"
890 # We need an absolute path.
892 [\\/]* | [A-Za-z]:[\\/]*) ;;
894 $echo "$modename: only absolute run-paths are allowed" 1>&2
898 if test "$prev" = rpath; then
901 *) rpath="$rpath $arg" ;;
906 *) xrpath="$xrpath $arg" ;;
913 compiler_flags="$compiler_flags $qarg"
915 compile_command="$compile_command $qarg"
916 finalize_command="$finalize_command $qarg"
920 linker_flags="$linker_flags $qarg"
921 compiler_flags="$compiler_flags $wl$qarg"
923 compile_command="$compile_command $wl$qarg"
924 finalize_command="$finalize_command $wl$qarg"
928 eval "$prev=\"\$arg\""
939 if test -n "$link_static_flag"; then
940 compile_command="$compile_command $link_static_flag"
941 finalize_command="$finalize_command $link_static_flag"
947 # FIXME: remove this flag sometime in the future.
948 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
972 -export-symbols | -export-symbols-regex)
973 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
974 $echo "$modename: more than one -exported-symbols argument is not allowed"
977 if test "X$arg" = "X-export-symbols"; then
990 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
991 # so, if we see these flags be careful not to treat them like -L
993 case $with_gcc/$host in
995 compile_command="$compile_command $arg"
996 finalize_command="$finalize_command $arg"
1003 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1004 # We need an absolute path.
1006 [\\/]* | [A-Za-z]:[\\/]*) ;;
1008 absdir=`cd "$dir" && pwd`
1009 if test -z "$absdir"; then
1010 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1019 deplibs="$deplibs -L$dir"
1020 lib_search_path="$lib_search_path $dir"
1024 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1025 case :$dllsearchpath: in
1027 *) dllsearchpath="$dllsearchpath:$dir";;
1035 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1037 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1038 # These systems don't actually have a C or math library (as such)
1041 *-*-mingw* | *-*-os2*)
1042 # These systems don't actually have a C library (as such)
1043 test "X$arg" = "X-lc" && continue
1047 deplibs="$deplibs $arg"
1063 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1064 # The PATH hackery in wrapper scripts is required on Windows
1065 # in order for the loader to find any dlls it needs.
1066 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1067 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1070 *) no_install=yes ;;
1098 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1099 # We need an absolute path.
1101 [\\/]* | [A-Za-z]:[\\/]*) ;;
1103 $echo "$modename: only absolute run-paths are allowed" 1>&2
1109 *) xrpath="$xrpath $dir" ;;
1115 # The effects of -static are defined in a previous loop.
1116 # We used to do the same as -all-static on platforms that
1117 # didn't have a PIC flag, but the assumption that the effects
1118 # would be equivalent was wrong. It would break on at least
1119 # Digital Unix and AIX.
1134 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1136 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1137 for flag in $args; do
1140 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1145 compiler_flags="$compiler_flags $flag"
1148 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1152 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1154 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1155 for flag in $args; do
1158 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1163 compiler_flags="$compiler_flags $wl$flag"
1164 linker_flags="$linker_flags $flag"
1167 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1180 # Some other compiler flag.
1182 # Unknown arguments in both finalize_command and compile_command need
1183 # to be aesthetically quoted because they are evaled later.
1184 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1186 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1193 # A library or standard object.
1194 if test "$prev" = dlfiles; then
1195 # This file was specified with -dlopen.
1196 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1197 dlfiles="$dlfiles $arg"
1201 # If libtool objects are unsupported, then we need to preload.
1206 if test "$prev" = dlprefiles; then
1207 # Preload the old-style object.
1208 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1212 *.lo) libobjs="$libobjs $arg" ;;
1213 *) objs="$objs $arg" ;;
1220 deplibs="$deplibs $arg"
1221 old_deplibs="$old_deplibs $arg"
1226 # A libtool-controlled library.
1228 if test "$prev" = dlfiles; then
1229 # This library was specified with -dlopen.
1230 dlfiles="$dlfiles $arg"
1232 elif test "$prev" = dlprefiles; then
1233 # The library was specified with -dlpreopen.
1234 dlprefiles="$dlprefiles $arg"
1237 deplibs="$deplibs $arg"
1242 # Some other compiler argument.
1244 # Unknown arguments in both finalize_command and compile_command need
1245 # to be aesthetically quoted because they are evaled later.
1246 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1248 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1255 # Now actually substitute the argument into the commands.
1256 if test -n "$arg"; then
1257 compile_command="$compile_command $arg"
1258 finalize_command="$finalize_command $arg"
1260 done # argument parsing loop
1262 if test -n "$prev"; then
1263 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1268 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1269 eval arg=\"$export_dynamic_flag_spec\"
1270 compile_command="$compile_command $arg"
1271 finalize_command="$finalize_command $arg"
1274 # calculate the name of the file, without its directory
1275 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1276 libobjs_save="$libobjs"
1278 if test -n "$shlibpath_var"; then
1279 # get the directories listed in $shlibpath_var
1280 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1284 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1285 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1287 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1288 if test "X$output_objdir" = "X$output"; then
1289 output_objdir="$objdir"
1291 output_objdir="$output_objdir/$objdir"
1293 # Create the object directory.
1294 if test ! -d $output_objdir; then
1295 $show "$mkdir $output_objdir"
1296 $run $mkdir $output_objdir
1298 if test $status -ne 0 && test ! -d $output_objdir; then
1303 # Determine the type of output
1306 $echo "$modename: you must specify an output file" 1>&2
1310 *.$libext) linkmode=oldlib ;;
1311 *.lo | *.$objext) linkmode=obj ;;
1312 *.la) linkmode=lib ;;
1313 *) linkmode=prog ;; # Anything else should be a program.
1318 # Find all interdependent deplibs by searching for libraries
1319 # that are linked more than once (e.g. -la -lb -la)
1320 for deplib in $deplibs; do
1322 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1324 libs="$libs $deplib"
1329 need_relink=no # whether we're linking any uninstalled libtool libraries
1330 notinst_deplibs= # not-installed libtool libraries
1331 notinst_path= # paths that contain not-installed libtool libraries
1335 for file in $dlfiles $dlprefiles; do
1339 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1351 passes="conv scan dlopen dlpreopen link"
1356 for pass in $passes; do
1357 if test $linkmode = prog; then
1358 # Determine which files to process
1362 save_deplibs="$deplibs" # Collect dlpreopened libraries
1365 dlpreopen) libs="$dlprefiles" ;;
1366 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1369 for deplib in $libs; do
1374 if test $linkmode = oldlib && test $linkmode = obj; then
1375 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1378 if test $pass = conv; then
1379 deplibs="$deplib $deplibs"
1382 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1383 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1384 # Search the libtool library
1385 lib="$searchdir/lib${name}.la"
1386 if test -f "$lib"; then
1391 if test "$found" != yes; then
1392 # deplib doesn't seem to be a libtool library
1393 if test "$linkmode,$pass" = "prog,link"; then
1394 compile_deplibs="$deplib $compile_deplibs"
1395 finalize_deplibs="$deplib $finalize_deplibs"
1397 deplibs="$deplib $deplibs"
1398 test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1406 deplibs="$deplib $deplibs"
1407 test $pass = conv && continue
1408 newdependency_libs="$deplib $newdependency_libs"
1409 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1412 if test $pass = conv; then
1413 deplibs="$deplib $deplibs"
1416 if test $pass = scan; then
1417 deplibs="$deplib $deplibs"
1418 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1420 compile_deplibs="$deplib $compile_deplibs"
1421 finalize_deplibs="$deplib $finalize_deplibs"
1425 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1431 if test $pass = link; then
1432 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1433 # Make sure the xrpath contains only unique directories.
1436 *) xrpath="$xrpath $dir" ;;
1439 deplibs="$deplib $deplibs"
1442 *.la) lib="$deplib" ;;
1444 if test $pass = conv; then
1445 deplibs="$deplib $deplibs"
1450 if test "$deplibs_check_method" != pass_all; then
1452 echo "*** Warning: This library needs some functionality provided by $deplib."
1453 echo "*** I have the capability to make that library automatically link in when"
1454 echo "*** you link to this library. But I can only do this if you have a"
1455 echo "*** shared version of the library, which you do not appear to have."
1458 echo "*** Warning: Linking the shared library $output against the"
1459 echo "*** static library $deplib is not portable!"
1460 deplibs="$deplib $deplibs"
1465 if test $pass != link; then
1466 deplibs="$deplib $deplibs"
1468 compile_deplibs="$deplib $compile_deplibs"
1469 finalize_deplibs="$deplib $finalize_deplibs"
1476 if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1477 # If there is no dlopen support or we're linking statically,
1478 # we need to preload.
1479 newdlprefiles="$newdlprefiles $deplib"
1480 compile_deplibs="$deplib $compile_deplibs"
1481 finalize_deplibs="$deplib $finalize_deplibs"
1483 newdlfiles="$newdlfiles $deplib"
1492 if test $found = yes || test -f "$lib"; then :
1494 $echo "$modename: cannot find the library \`$lib'" 1>&2
1498 # Check to see that this really is a libtool archive.
1499 if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1501 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1505 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1506 test "X$ladir" = "X$lib" && ladir="."
1514 # If the library was installed with an old release of libtool,
1515 # it will not redefine variable installed.
1520 */* | *\\*) . $lib ;;
1524 if test "$linkmode,$pass" = "lib,link" ||
1525 test "$linkmode,$pass" = "prog,scan" ||
1526 { test $linkmode = oldlib && test $linkmode = obj; }; then
1527 # Add dl[pre]opened files of deplib
1528 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1529 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1532 if test $pass = conv; then
1533 # Only check for convenience libraries
1534 deplibs="$lib $deplibs"
1535 if test -z "$libdir"; then
1536 if test -z "$old_library"; then
1537 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1540 # It is a libtool convenience library, so add in its objects.
1541 convenience="$convenience $ladir/$objdir/$old_library"
1542 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1544 for deplib in $dependency_libs; do
1545 deplibs="$deplib $deplibs"
1546 case "$tmp_libs " in
1547 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1549 tmp_libs="$tmp_libs $deplib"
1551 elif test $linkmode != prog && test $linkmode != lib; then
1552 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1558 # Get the name of the library we link against.
1560 for l in $old_library $library_names; do
1563 if test -z "$linklib"; then
1564 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1568 # This library was specified with -dlopen.
1569 if test $pass = dlopen; then
1570 if test -z "$libdir"; then
1571 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1574 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1575 # If there is no dlname, no dlopen support or we're linking
1576 # statically, we need to preload.
1577 dlprefiles="$dlprefiles $lib"
1579 newdlfiles="$newdlfiles $lib"
1584 # We need an absolute path.
1586 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1588 abs_ladir=`cd "$ladir" && pwd`
1589 if test -z "$abs_ladir"; then
1590 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1591 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1596 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1598 # Find the relevant object directory and library name.
1599 if test "X$installed" = Xyes; then
1600 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1601 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1610 dir="$ladir/$objdir"
1611 absdir="$abs_ladir/$objdir"
1612 # Remove this search path later
1613 notinst_path="$notinst_path $abs_ladir"
1614 fi # $installed = yes
1615 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1617 # This library was specified with -dlpreopen.
1618 if test $pass = dlpreopen; then
1619 if test -z "$libdir"; then
1620 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1623 # Prefer using a static library (so that no silly _DYNAMIC symbols
1624 # are required to link).
1625 if test -n "$old_library"; then
1626 newdlprefiles="$newdlprefiles $dir/$old_library"
1627 # Otherwise, use the dlname, so that lt_dlopen finds it.
1628 elif test -n "$dlname"; then
1629 newdlprefiles="$newdlprefiles $dir/$dlname"
1631 newdlprefiles="$newdlprefiles $dir/$linklib"
1633 fi # $pass = dlpreopen
1635 if test -z "$libdir"; then
1636 # Link the convenience library
1637 if test $linkmode = lib; then
1638 deplibs="$dir/$old_library $deplibs"
1639 elif test "$linkmode,$pass" = "prog,link"; then
1640 compile_deplibs="$dir/$old_library $compile_deplibs"
1641 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1643 deplibs="$lib $deplibs"
1648 if test $linkmode = prog && test $pass != link; then
1649 newlib_search_path="$newlib_search_path $ladir"
1650 deplibs="$lib $deplibs"
1653 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1654 test "$build_libtool_libs" = no; then
1659 for deplib in $dependency_libs; do
1661 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1663 # Need to link against all dependency_libs?
1664 if test $linkalldeplibs = yes; then
1665 deplibs="$deplib $deplibs"
1667 # Need to hardcode shared library paths
1668 # or/and link against static libraries
1669 newdependency_libs="$deplib $newdependency_libs"
1671 case "$tmp_libs " in
1672 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1674 tmp_libs="$tmp_libs $deplib"
1677 fi # $linkmode = prog...
1679 link_static=no # Whether the deplib will be linked statically
1680 if test -n "$library_names" &&
1681 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1682 # Link against this shared library
1684 if test "$linkmode,$pass" = "prog,link" ||
1685 { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
1686 # Hardcode the library path.
1687 # Skip directories that are in the system default run-time
1689 case " $sys_lib_dlsearch_path " in
1692 case "$compile_rpath " in
1694 *) compile_rpath="$compile_rpath $absdir"
1698 case " $sys_lib_dlsearch_path " in
1701 case "$finalize_rpath " in
1703 *) finalize_rpath="$finalize_rpath $libdir"
1707 if test $linkmode = prog; then
1708 # We need to hardcode the library path
1709 if test -n "$shlibpath_var"; then
1710 # Make sure the rpath contains only unique directories.
1711 case "$temp_rpath " in
1714 *) temp_rpath="$temp_rpath $dir" ;;
1718 fi # $linkmode,$pass = prog,link...
1720 if test "$alldeplibs" = yes &&
1721 { test "$deplibs_check_method" = pass_all ||
1722 { test "$build_libtool_libs" = yes &&
1723 test -n "$library_names"; }; }; then
1724 # We only need to search for static libraries
1728 if test "$installed" = no; then
1729 notinst_deplibs="$notinst_deplibs $lib"
1733 if test -n "$old_archive_from_expsyms_cmds"; then
1734 # figure out the soname
1735 set dummy $library_names
1738 libname=`eval \\$echo \"$libname_spec\"`
1739 # use dlname if we got it. it's perfectly good, no?
1740 if test -n "$dlname"; then
1742 elif test -n "$soname_spec"; then
1746 major=`expr $current - $age`
1750 eval soname=\"$soname_spec\"
1755 # Make a new name for the extract_expsyms_cmds to use
1757 soname=`echo $soroot | sed -e 's/^.*\///'`
1758 newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
1760 # If the library has no export list, then create one now
1761 if test -f "$output_objdir/$soname-def"; then :
1763 $show "extracting exported symbol list from \`$soname'"
1764 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
1765 eval cmds=\"$extract_expsyms_cmds\"
1766 for cmd in $cmds; do
1769 $run eval "$cmd" || exit $?
1775 if test -f "$output_objdir/$newlib"; then :; else
1776 $show "generating import library for \`$soname'"
1777 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
1778 eval cmds=\"$old_archive_from_expsyms_cmds\"
1779 for cmd in $cmds; do
1782 $run eval "$cmd" || exit $?
1786 # make sure the library variables are pointing to the new library
1789 fi # test -n $old_archive_from_expsyms_cmds
1791 if test $linkmode = prog || test "$mode" != relink; then
1796 case $hardcode_action in
1797 immediate | unsupported)
1798 if test "$hardcode_direct" = no; then
1800 elif test "$hardcode_minus_L" = no; then
1802 *-*-sunos*) add_shlibpath="$dir" ;;
1806 elif test "$hardcode_shlibpath_var" = no; then
1807 add_shlibpath="$dir"
1814 if test "$hardcode_direct" = yes; then
1816 elif test "$hardcode_minus_L" = yes; then
1819 elif test "$hardcode_shlibpath_var" = yes; then
1820 add_shlibpath="$dir"
1829 if test "$lib_linked" != yes; then
1830 $echo "$modename: configuration error: unsupported hardcode properties"
1834 if test -n "$add_shlibpath"; then
1835 case :$compile_shlibpath: in
1836 *":$add_shlibpath:"*) ;;
1837 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1840 if test $linkmode = prog; then
1841 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1842 test -n "$add" && compile_deplibs="$add $compile_deplibs"
1844 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1845 test -n "$add" && deplibs="$add $deplibs"
1846 if test "$hardcode_direct" != yes && \
1847 test "$hardcode_minus_L" != yes && \
1848 test "$hardcode_shlibpath_var" = yes; then
1849 case :$finalize_shlibpath: in
1851 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1857 if test $linkmode = prog || test "$mode" = relink; then
1861 # Finalize command for both is simple: just hardcode it.
1862 if test "$hardcode_direct" = yes; then
1863 add="$libdir/$linklib"
1864 elif test "$hardcode_minus_L" = yes; then
1865 # Try looking first in the location we're being installed to.
1867 if test -n "$inst_prefix_dir"; then
1870 add_dir="-L$inst_prefix_dir$libdir"
1874 add_dir="$add_dir -L$libdir"
1876 elif test "$hardcode_shlibpath_var" = yes; then
1877 case :$finalize_shlibpath: in
1879 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1883 # We cannot seem to hardcode it, guess we'll fake it.
1884 # Try looking first in the location we're being installed to.
1886 if test -n "$inst_prefix_dir"; then
1889 add_dir="-L$inst_prefix_dir$libdir"
1893 add_dir="$add_dir -L$libdir"
1898 if test "$linkmode" = prog; then
1899 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
1900 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
1902 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1903 test -n "$add" && deplibs="$add $deplibs"
1906 elif test $linkmode = prog; then
1907 if test "$alldeplibs" = yes &&
1908 { test "$deplibs_check_method" = pass_all ||
1909 { test "$build_libtool_libs" = yes &&
1910 test -n "$library_names"; }; }; then
1911 # We only need to search for static libraries
1915 # Try to link the static library
1916 # Here we assume that one of hardcode_direct or hardcode_minus_L
1917 # is not unsupported. This is valid on all known static and
1919 if test "$hardcode_direct" != unsupported; then
1920 test -n "$old_library" && linklib="$old_library"
1921 compile_deplibs="$dir/$linklib $compile_deplibs"
1922 finalize_deplibs="$dir/$linklib $finalize_deplibs"
1924 compile_deplibs="-l$name -L$dir $compile_deplibs"
1925 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
1927 elif test "$build_libtool_libs" = yes; then
1928 # Not a shared library
1929 if test "$deplibs_check_method" != pass_all; then
1930 # We're trying link a shared library against a static one
1931 # but the system doesn't support it.
1933 # Just print a warning and add the library to dependency_libs so
1934 # that the program can be linked against the static library.
1936 echo "*** Warning: This library needs some functionality provided by $lib."
1937 echo "*** I have the capability to make that library automatically link in when"
1938 echo "*** you link to this library. But I can only do this if you have a"
1939 echo "*** shared version of the library, which you do not appear to have."
1940 if test "$module" = yes; then
1941 echo "*** Therefore, libtool will create a static module, that should work "
1942 echo "*** as long as the dlopening application is linked with the -dlopen flag."
1943 if test -z "$global_symbol_pipe"; then
1945 echo "*** However, this would only work if libtool was able to extract symbol"
1946 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1947 echo "*** not find such a program. So, this module is probably useless."
1948 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1950 if test "$build_old_libs" = no; then
1951 build_libtool_libs=module
1954 build_libtool_libs=no
1958 convenience="$convenience $dir/$old_library"
1959 old_convenience="$old_convenience $dir/$old_library"
1960 deplibs="$dir/$old_library $deplibs"
1963 fi # link shared/static library?
1965 if test $linkmode = lib; then
1966 if test -n "$dependency_libs" &&
1967 { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
1968 test $link_static = yes; }; then
1969 # Extract -R from dependency_libs
1971 for libdir in $dependency_libs; do
1973 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
1975 *" $temp_xrpath "*) ;;
1976 *) xrpath="$xrpath $temp_xrpath";;
1978 *) temp_deplibs="$temp_deplibs $libdir";;
1981 dependency_libs="$temp_deplibs"
1984 newlib_search_path="$newlib_search_path $absdir"
1985 # Link against this library
1986 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
1987 # ... and its dependency_libs
1989 for deplib in $dependency_libs; do
1990 newdependency_libs="$deplib $newdependency_libs"
1991 case "$tmp_libs " in
1992 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1994 tmp_libs="$tmp_libs $deplib"
1997 if test $link_all_deplibs != no; then
1998 # Add the search paths of all dependency libraries
1999 for deplib in $dependency_libs; do
2001 -L*) path="$deplib" ;;
2003 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2004 test "X$dir" = "X$deplib" && dir="."
2005 # We need an absolute path.
2007 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2009 absdir=`cd "$dir" && pwd`
2010 if test -z "$absdir"; then
2011 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2016 if grep "^installed=no" $deplib > /dev/null; then
2017 path="-L$absdir/$objdir"
2019 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2020 if test -z "$libdir"; then
2021 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2024 if test "$absdir" != "$libdir"; then
2025 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2032 case " $deplibs " in
2034 *) deplibs="$deplibs $path" ;;
2037 fi # link_all_deplibs != no
2039 done # for deplib in $libs
2040 if test $pass = dlpreopen; then
2041 # Link the dlpreopened libraries before other libraries
2042 for deplib in $save_deplibs; do
2043 deplibs="$deplib $deplibs"
2046 if test $pass != dlopen; then
2047 test $pass != scan && dependency_libs="$newdependency_libs"
2048 if test $pass != conv; then
2049 # Make sure lib_search_path contains only unique directories.
2051 for dir in $newlib_search_path; do
2052 case "$lib_search_path " in
2054 *) lib_search_path="$lib_search_path $dir" ;;
2060 if test "$linkmode,$pass" != "prog,link"; then
2063 vars="compile_deplibs finalize_deplibs"
2065 for var in $vars dependency_libs; do
2066 # Add libraries to $var in reverse order
2067 eval tmp_libs=\"\$$var\"
2069 for deplib in $tmp_libs; do
2071 -L*) new_libs="$deplib $new_libs" ;;
2073 case " $specialdeplibs " in
2074 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2076 case " $new_libs " in
2078 *) new_libs="$deplib $new_libs" ;;
2086 for deplib in $new_libs; do
2089 case " $tmp_libs " in
2091 *) tmp_libs="$tmp_libs $deplib" ;;
2094 *) tmp_libs="$tmp_libs $deplib" ;;
2097 eval $var=\"$tmp_libs\"
2100 if test "$pass" = "conv" &&
2101 { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2102 libs="$deplibs" # reset libs
2106 if test $linkmode = prog; then
2107 dlfiles="$newdlfiles"
2108 dlprefiles="$newdlprefiles"
2113 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2114 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2117 if test -n "$rpath"; then
2118 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2121 if test -n "$xrpath"; then
2122 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2125 if test -n "$vinfo"; then
2126 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2129 if test -n "$release"; then
2130 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2133 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2134 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2137 # Now set the variables for building old libraries.
2138 build_libtool_libs=no
2140 objs="$objs$old_deplibs"
2144 # Make sure we only generate libraries of the form `libNAME.la'.
2147 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2148 eval libname=\"$libname_spec\"
2151 if test "$module" = no; then
2152 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2156 if test "$need_lib_prefix" != no; then
2157 # Add the "lib" prefix for modules if required
2158 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2159 eval libname=\"$libname_spec\"
2161 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2166 if test -n "$objs"; then
2167 if test "$deplibs_check_method" != pass_all; then
2168 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2172 echo "*** Warning: Linking the shared library $output against the non-libtool"
2173 echo "*** objects $objs is not portable!"
2174 libobjs="$libobjs $objs"
2178 if test "$dlself" != no; then
2179 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2183 if test $# -gt 2; then
2184 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2189 if test -z "$rpath"; then
2190 if test "$build_libtool_libs" = yes; then
2191 # Building a libtool convenience library.
2193 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2194 build_libtool_libs=convenience
2198 if test -n "$vinfo"; then
2199 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2202 if test -n "$release"; then
2203 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2207 # Parse the version information argument.
2208 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
2209 set dummy $vinfo 0 0 0
2212 if test -n "$8"; then
2213 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2222 # Check that each of the things are valid numbers.
2226 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2227 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2235 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2236 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2244 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2245 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2250 if test $age -gt $current; then
2251 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2252 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2256 # Calculate the version variables.
2260 case $version_type in
2264 # Like Linux, but with the current version available in
2265 # verstring for coding it into the library header
2266 major=.`expr $current - $age`
2267 versuffix="$major.$age.$revision"
2268 # Darwin ld doesn't like 0 for these options...
2269 minor_current=`expr $current + 1`
2270 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2275 versuffix=".$current.$revision";
2280 versuffix=".$current";
2284 major=`expr $current - $age + 1`
2285 verstring="sgi$major.$revision"
2287 # Add in all the interfaces that we are compatible with.
2289 while test $loop != 0; do
2290 iface=`expr $revision - $loop`
2291 loop=`expr $loop - 1`
2292 verstring="sgi$major.$iface:$verstring"
2295 # Before this point, $major must not contain `.'.
2297 versuffix="$major.$revision"
2301 major=.`expr $current - $age`
2302 versuffix="$major.$age.$revision"
2306 major=`expr $current - $age`
2307 versuffix=".$current.$age.$revision"
2308 verstring="$current.$age.$revision"
2310 # Add in all the interfaces that we are compatible with.
2312 while test $loop != 0; do
2313 iface=`expr $current - $loop`
2314 loop=`expr $loop - 1`
2315 verstring="$verstring:${iface}.0"
2318 # Make executables depend on our current version.
2319 verstring="$verstring:${current}.0"
2324 versuffix=".$current.$revision"
2328 # Use '-' rather than '.', since we only want one
2329 # extension on DOS 8.3 filesystems.
2330 major=`expr $current - $age`
2335 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2336 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2341 # Clear the version info if we defaulted, and they specified a release.
2342 if test -z "$vinfo" && test -n "$release"; then
2345 if test "$need_version" = no; then
2352 # Remove version info from name if versioning should be avoided
2353 if test "$avoid_version" = yes && test "$need_version" = no; then
2359 # Check to see if the archive will have undefined symbols.
2360 if test "$allow_undefined" = yes; then
2361 if test "$allow_undefined_flag" = unsupported; then
2362 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2363 build_libtool_libs=no
2367 # Don't allow undefined symbols.
2368 allow_undefined_flag="$no_undefined_flag"
2372 if test "$mode" != relink; then
2373 # Remove our outputs.
2374 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2375 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2378 # Now set the variables for building old libraries.
2379 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2380 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2382 # Transform .lo files to .o files.
2383 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2386 # Eliminate all temporary directories.
2387 for path in $notinst_path; do
2388 lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2389 deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2390 dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2393 if test -n "$xrpath"; then
2394 # If the user specified any rpath flags, then add them.
2396 for libdir in $xrpath; do
2397 temp_xrpath="$temp_xrpath -R$libdir"
2398 case "$finalize_rpath " in
2400 *) finalize_rpath="$finalize_rpath $libdir" ;;
2403 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2404 dependency_libs="$temp_xrpath $dependency_libs"
2408 # Make sure dlfiles contains only unique files that won't be dlpreopened
2409 old_dlfiles="$dlfiles"
2411 for lib in $old_dlfiles; do
2412 case " $dlprefiles $dlfiles " in
2414 *) dlfiles="$dlfiles $lib" ;;
2418 # Make sure dlprefiles contains only unique files
2419 old_dlprefiles="$dlprefiles"
2421 for lib in $old_dlprefiles; do
2422 case "$dlprefiles " in
2424 *) dlprefiles="$dlprefiles $lib" ;;
2428 if test "$build_libtool_libs" = yes; then
2429 if test -n "$rpath"; then
2431 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2432 # these systems don't actually have a c library (as such)!
2434 *-*-rhapsody* | *-*-darwin1.[012])
2435 # Rhapsody C library is in the System framework
2436 deplibs="$deplibs -framework System"
2439 # Don't link with libc until the a.out ld.so is fixed.
2442 # Add libc to deplibs on all other systems if necessary.
2443 if test $build_libtool_need_lc = "yes"; then
2444 deplibs="$deplibs -lc"
2450 # Transform deplibs into only deplibs that can be linked in shared.
2452 libname_save=$libname
2453 release_save=$release
2454 versuffix_save=$versuffix
2456 # I'm not sure if I'm treating the release correctly. I think
2457 # release should show up in the -l (ie -lgmp5) so we don't want to
2458 # add it in twice. Is that correct?
2464 case $deplibs_check_method in
2466 # Don't check for shared/static. Everything works.
2467 # This might be a little naive. We might want to check
2468 # whether the library exists or not. But this is on
2469 # osf3 & osf4 and I'm not really sure... Just
2470 # implementing what was already the behaviour.
2474 # This code stresses the "libraries are programs" paradigm to its
2475 # limits. Maybe even breaks it. We compile a program, linking it
2476 # against the deplibs as a proxy for the library. Then we can check
2477 # whether they linked in statically or dynamically with ldd.
2479 cat > conftest.c <<EOF
2480 int main() { return 0; }
2483 $CC -o conftest conftest.c $deplibs
2484 if test $? -eq 0 ; then
2485 ldd_output=`ldd conftest`
2486 for i in $deplibs; do
2487 name="`expr $i : '-l\(.*\)'`"
2488 # If $name is empty we are operating on a -L argument.
2489 if test -n "$name" && test "$name" != "0"; then
2490 libname=`eval \\$echo \"$libname_spec\"`
2491 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2492 set dummy $deplib_matches
2494 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2495 newdeplibs="$newdeplibs $i"
2499 echo "*** Warning: This library needs some functionality provided by $i."
2500 echo "*** I have the capability to make that library automatically link in when"
2501 echo "*** you link to this library. But I can only do this if you have a"
2502 echo "*** shared version of the library, which you do not appear to have."
2505 newdeplibs="$newdeplibs $i"
2509 # Error occured in the first compile. Let's try to salvage the situation:
2510 # Compile a seperate program for each library.
2511 for i in $deplibs; do
2512 name="`expr $i : '-l\(.*\)'`"
2513 # If $name is empty we are operating on a -L argument.
2514 if test -n "$name" && test "$name" != "0"; then
2516 $CC -o conftest conftest.c $i
2518 if test $? -eq 0 ; then
2519 ldd_output=`ldd conftest`
2520 libname=`eval \\$echo \"$libname_spec\"`
2521 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2522 set dummy $deplib_matches
2524 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2525 newdeplibs="$newdeplibs $i"
2529 echo "*** Warning: This library needs some functionality provided by $i."
2530 echo "*** I have the capability to make that library automatically link in when"
2531 echo "*** you link to this library. But I can only do this if you have a"
2532 echo "*** shared version of the library, which you do not appear to have."
2537 echo "*** Warning! Library $i is needed by this library but I was not able to"
2538 echo "*** make it link in! You will probably need to install it or some"
2539 echo "*** library that it depends on before this library will be fully"
2540 echo "*** functional. Installing it before continuing would be even better."
2543 newdeplibs="$newdeplibs $i"
2549 set dummy $deplibs_check_method
2550 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2551 for a_deplib in $deplibs; do
2552 name="`expr $a_deplib : '-l\(.*\)'`"
2553 # If $name is empty we are operating on a -L argument.
2554 if test -n "$name" && test "$name" != "0"; then
2555 libname=`eval \\$echo \"$libname_spec\"`
2556 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2557 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2558 for potent_lib in $potential_libs; do
2559 # Follow soft links.
2560 if ls -lLd "$potent_lib" 2>/dev/null \
2561 | grep " -> " >/dev/null; then
2564 # The statement above tries to avoid entering an
2565 # endless loop below, in case of cyclic links.
2566 # We might still enter an endless loop, since a link
2567 # loop can be closed while we follow links,
2569 potlib="$potent_lib"
2570 while test -h "$potlib" 2>/dev/null; do
2571 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2573 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2574 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2577 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2579 | egrep "$file_magic_regex" > /dev/null; then
2580 newdeplibs="$newdeplibs $a_deplib"
2586 if test -n "$a_deplib" ; then
2589 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2590 echo "*** I have the capability to make that library automatically link in when"
2591 echo "*** you link to this library. But I can only do this if you have a"
2592 echo "*** shared version of the library, which you do not appear to have."
2595 # Add a -L argument.
2596 newdeplibs="$newdeplibs $a_deplib"
2598 done # Gone through all deplibs.
2601 set dummy $deplibs_check_method
2602 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2603 for a_deplib in $deplibs; do
2604 name="`expr $a_deplib : '-l\(.*\)'`"
2605 # If $name is empty we are operating on a -L argument.
2606 if test -n "$name" && test "$name" != "0"; then
2607 libname=`eval \\$echo \"$libname_spec\"`
2608 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2609 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2610 for potent_lib in $potential_libs; do
2611 if eval echo \"$potent_lib\" 2>/dev/null \
2613 | egrep "$match_pattern_regex" > /dev/null; then
2614 newdeplibs="$newdeplibs $a_deplib"
2620 if test -n "$a_deplib" ; then
2623 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2624 echo "*** I have the capability to make that library automatically link in when"
2625 echo "*** you link to this library. But I can only do this if you have a"
2626 echo "*** shared version of the library, which you do not appear to have."
2629 # Add a -L argument.
2630 newdeplibs="$newdeplibs $a_deplib"
2632 done # Gone through all deplibs.
2636 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2637 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2638 grep . >/dev/null; then
2640 if test "X$deplibs_check_method" = "Xnone"; then
2641 echo "*** Warning: inter-library dependencies are not supported in this platform."
2643 echo "*** Warning: inter-library dependencies are not known to be supported."
2645 echo "*** All declared inter-library dependencies are being dropped."
2650 versuffix=$versuffix_save
2652 release=$release_save
2653 libname=$libname_save
2657 *-*-rhapsody* | *-*-darwin1.[012])
2658 # On Rhapsody replace the C library is the System framework
2659 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2663 if test "$droppeddeps" = yes; then
2664 if test "$module" = yes; then
2666 echo "*** Warning: libtool could not satisfy all declared inter-library"
2667 echo "*** dependencies of module $libname. Therefore, libtool will create"
2668 echo "*** a static module, that should work as long as the dlopening"
2669 echo "*** application is linked with the -dlopen flag."
2670 if test -z "$global_symbol_pipe"; then
2672 echo "*** However, this would only work if libtool was able to extract symbol"
2673 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2674 echo "*** not find such a program. So, this module is probably useless."
2675 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2677 if test "$build_old_libs" = no; then
2678 oldlibs="$output_objdir/$libname.$libext"
2679 build_libtool_libs=module
2682 build_libtool_libs=no
2685 echo "*** The inter-library dependencies that have been dropped here will be"
2686 echo "*** automatically added whenever a program is linked with this library"
2687 echo "*** or is declared to -dlopen it."
2689 if test $allow_undefined = no; then
2691 echo "*** Since this library must not contain undefined symbols,"
2692 echo "*** because either the platform does not support them or"
2693 echo "*** it was explicitly requested with -no-undefined,"
2694 echo "*** libtool will only create a static version of it."
2695 if test "$build_old_libs" = no; then
2696 oldlibs="$output_objdir/$libname.$libext"
2697 build_libtool_libs=module
2700 build_libtool_libs=no
2705 # Done checking deplibs!
2709 # All the library-specific variables (install_libdir is set above).
2714 # Test again, we may have decided not to build it any more
2715 if test "$build_libtool_libs" = yes; then
2716 if test $hardcode_into_libs = yes; then
2717 # Hardcode the library paths
2720 rpath="$finalize_rpath"
2721 test "$mode" != relink && rpath="$compile_rpath$rpath"
2722 for libdir in $rpath; do
2723 if test -n "$hardcode_libdir_flag_spec"; then
2724 if test -n "$hardcode_libdir_separator"; then
2725 if test -z "$hardcode_libdirs"; then
2726 hardcode_libdirs="$libdir"
2728 # Just accumulate the unique libdirs.
2729 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2730 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2733 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2738 eval flag=\"$hardcode_libdir_flag_spec\"
2739 dep_rpath="$dep_rpath $flag"
2741 elif test -n "$runpath_var"; then
2742 case "$perm_rpath " in
2744 *) perm_rpath="$perm_rpath $libdir" ;;
2748 # Substitute the hardcoded libdirs into the rpath.
2749 if test -n "$hardcode_libdir_separator" &&
2750 test -n "$hardcode_libdirs"; then
2751 libdir="$hardcode_libdirs"
2752 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
2754 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2755 # We should set the runpath_var.
2757 for dir in $perm_rpath; do
2760 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2762 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
2765 shlibpath="$finalize_shlibpath"
2766 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
2767 if test -n "$shlibpath"; then
2768 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2771 # Get the real and link names of the library.
2772 eval library_names=\"$library_names_spec\"
2773 set dummy $library_names
2777 if test -n "$soname_spec"; then
2778 eval soname=\"$soname_spec\"
2782 test -z "$dlname" && dlname=$soname
2784 lib="$output_objdir/$realname"
2787 linknames="$linknames $link"
2790 # Ensure that we have .o objects for linkers which dislike .lo
2791 # (e.g. aix) in case we are running --disable-static
2792 for obj in $libobjs; do
2793 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2794 if test "X$xdir" = "X$obj"; then
2799 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2800 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2801 if test ! -f $xdir/$oldobj; then
2802 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2803 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2807 # Use standard objects if they are pic
2808 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2810 # Prepare the list of exported symbols
2811 if test -z "$export_symbols"; then
2812 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2813 $show "generating symbol list for \`$libname.la'"
2814 export_symbols="$output_objdir/$libname.exp"
2815 $run $rm $export_symbols
2816 eval cmds=\"$export_symbols_cmds\"
2817 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2818 for cmd in $cmds; do
2821 $run eval "$cmd" || exit $?
2824 if test -n "$export_symbols_regex"; then
2825 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2826 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2827 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2828 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2833 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2834 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2837 if test -n "$convenience"; then
2838 if test -n "$whole_archive_flag_spec"; then
2839 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2841 gentop="$output_objdir/${outputname}x"
2842 $show "${rm}r $gentop"
2843 $run ${rm}r "$gentop"
2844 $show "mkdir $gentop"
2845 $run mkdir "$gentop"
2847 if test $status -ne 0 && test ! -d "$gentop"; then
2850 generated="$generated $gentop"
2852 for xlib in $convenience; do
2853 # Extract the objects.
2855 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2856 *) xabs=`pwd`"/$xlib" ;;
2858 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2859 xdir="$gentop/$xlib"
2861 $show "${rm}r $xdir"
2866 if test $status -ne 0 && test ! -d "$xdir"; then
2869 $show "(cd $xdir && $AR x $xabs)"
2870 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2872 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2877 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2878 eval flag=\"$thread_safe_flag_spec\"
2879 linker_flags="$linker_flags $flag"
2882 # Make a backup of the uninstalled library when relinking
2883 if test "$mode" = relink; then
2884 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
2887 # Do each of the archive commands.
2888 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2889 eval cmds=\"$archive_expsym_cmds\"
2891 eval cmds=\"$archive_cmds\"
2893 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2894 for cmd in $cmds; do
2897 $run eval "$cmd" || exit $?
2901 # Restore the uninstalled library and exit
2902 if test "$mode" = relink; then
2903 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
2907 # Create links to the real library.
2908 for linkname in $linknames; do
2909 if test "$realname" != "$linkname"; then
2910 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2911 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2915 # If -module or -export-dynamic was specified, set the dlname.
2916 if test "$module" = yes || test "$export_dynamic" = yes; then
2917 # On all known operating systems, these are identical.
2924 if test -n "$deplibs"; then
2925 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2928 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2929 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2932 if test -n "$rpath"; then
2933 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2936 if test -n "$xrpath"; then
2937 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2940 if test -n "$vinfo"; then
2941 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2944 if test -n "$release"; then
2945 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2950 if test -n "$objs$old_deplibs"; then
2951 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2955 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2963 # Delete the old objects.
2964 $run $rm $obj $libobj
2966 # Objects from convenience libraries. This assumes
2967 # single-version convenience libraries. Whenever we create
2968 # different ones for PIC/non-PIC, this we'll have to duplicate
2972 # reload_cmds runs $LD directly, so let us get rid of
2973 # -Wl from whole_archive_flag_spec
2976 if test -n "$convenience"; then
2977 if test -n "$whole_archive_flag_spec"; then
2978 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2980 gentop="$output_objdir/${obj}x"
2981 $show "${rm}r $gentop"
2982 $run ${rm}r "$gentop"
2983 $show "mkdir $gentop"
2984 $run mkdir "$gentop"
2986 if test $status -ne 0 && test ! -d "$gentop"; then
2989 generated="$generated $gentop"
2991 for xlib in $convenience; do
2992 # Extract the objects.
2994 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2995 *) xabs=`pwd`"/$xlib" ;;
2997 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2998 xdir="$gentop/$xlib"
3000 $show "${rm}r $xdir"
3005 if test $status -ne 0 && test ! -d "$xdir"; then
3008 $show "(cd $xdir && $AR x $xabs)"
3009 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3011 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3016 # Create the old-style object.
3017 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
3020 eval cmds=\"$reload_cmds\"
3021 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3022 for cmd in $cmds; do
3025 $run eval "$cmd" || exit $?
3029 # Exit if we aren't doing a library object file.
3030 if test -z "$libobj"; then
3031 if test -n "$gentop"; then
3032 $show "${rm}r $gentop"
3039 if test "$build_libtool_libs" != yes; then
3040 if test -n "$gentop"; then
3041 $show "${rm}r $gentop"
3045 # Create an invalid libtool object if no PIC, so that we don't
3046 # accidentally link it into a program.
3047 $show "echo timestamp > $libobj"
3048 $run eval "echo timestamp > $libobj" || exit $?
3052 if test -n "$pic_flag" || test "$pic_mode" != default; then
3053 # Only do commands if we really have different PIC objects.
3054 reload_objs="$libobjs $reload_conv_objs"
3056 eval cmds=\"$reload_cmds\"
3057 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3058 for cmd in $cmds; do
3061 $run eval "$cmd" || exit $?
3065 # Just create a symlink.
3068 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3069 if test "X$xdir" = "X$libobj"; then
3074 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3075 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3076 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3077 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3080 if test -n "$gentop"; then
3081 $show "${rm}r $gentop"
3090 *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3092 if test -n "$vinfo"; then
3093 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3096 if test -n "$release"; then
3097 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3100 if test "$preload" = yes; then
3101 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3102 test "$dlopen_self_static" = unknown; then
3103 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3108 *-*-rhapsody* | *-*-darwin1.[012])
3109 # On Rhapsody replace the C library is the System framework
3110 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3111 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3115 compile_command="$compile_command $compile_deplibs"
3116 finalize_command="$finalize_command $finalize_deplibs"
3118 if test -n "$rpath$xrpath"; then
3119 # If the user specified any rpath flags, then add them.
3120 for libdir in $rpath $xrpath; do
3121 # This is the magic to use -rpath.
3122 case "$finalize_rpath " in
3124 *) finalize_rpath="$finalize_rpath $libdir" ;;
3129 # Now hardcode the library paths
3132 for libdir in $compile_rpath $finalize_rpath; do
3133 if test -n "$hardcode_libdir_flag_spec"; then
3134 if test -n "$hardcode_libdir_separator"; then
3135 if test -z "$hardcode_libdirs"; then
3136 hardcode_libdirs="$libdir"
3138 # Just accumulate the unique libdirs.
3139 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3140 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3143 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3148 eval flag=\"$hardcode_libdir_flag_spec\"
3149 rpath="$rpath $flag"
3151 elif test -n "$runpath_var"; then
3152 case "$perm_rpath " in
3154 *) perm_rpath="$perm_rpath $libdir" ;;
3158 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3159 case :$dllsearchpath: in
3161 *) dllsearchpath="$dllsearchpath:$libdir";;
3166 # Substitute the hardcoded libdirs into the rpath.
3167 if test -n "$hardcode_libdir_separator" &&
3168 test -n "$hardcode_libdirs"; then
3169 libdir="$hardcode_libdirs"
3170 eval rpath=\" $hardcode_libdir_flag_spec\"
3172 compile_rpath="$rpath"
3176 for libdir in $finalize_rpath; do
3177 if test -n "$hardcode_libdir_flag_spec"; then
3178 if test -n "$hardcode_libdir_separator"; then
3179 if test -z "$hardcode_libdirs"; then
3180 hardcode_libdirs="$libdir"
3182 # Just accumulate the unique libdirs.
3183 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3184 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3187 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3192 eval flag=\"$hardcode_libdir_flag_spec\"
3193 rpath="$rpath $flag"
3195 elif test -n "$runpath_var"; then
3196 case "$finalize_perm_rpath " in
3198 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3202 # Substitute the hardcoded libdirs into the rpath.
3203 if test -n "$hardcode_libdir_separator" &&
3204 test -n "$hardcode_libdirs"; then
3205 libdir="$hardcode_libdirs"
3206 eval rpath=\" $hardcode_libdir_flag_spec\"
3208 finalize_rpath="$rpath"
3210 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3211 # Transform all the library objects into standard objects.
3212 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3213 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3217 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3218 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3219 dlsyms="${outputname}S.c"
3221 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3225 if test -n "$dlsyms"; then
3229 # Discover the nlist of each of the dlfiles.
3230 nlist="$output_objdir/${outputname}.nm"
3232 $show "$rm $nlist ${nlist}S ${nlist}T"
3233 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3235 # Parse the name list into a source file.
3236 $show "creating $output_objdir/$dlsyms"
3238 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3239 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3240 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3246 /* Prevent the only kind of declaration conflicts we can make. */
3247 #define lt_preloaded_symbols some_other_symbol
3249 /* External symbol declarations for the compiler. */\
3252 if test "$dlself" = yes; then
3253 $show "generating symbol list for \`$output'"
3255 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3257 # Add our own program objects to the symbol list.
3258 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3259 for arg in $progfiles; do
3260 $show "extracting global C symbols from \`$arg'"
3261 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3264 if test -n "$exclude_expsyms"; then
3265 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3266 $run eval '$mv "$nlist"T "$nlist"'
3269 if test -n "$export_symbols_regex"; then
3270 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3271 $run eval '$mv "$nlist"T "$nlist"'
3274 # Prepare the list of exported symbols
3275 if test -z "$export_symbols"; then
3276 export_symbols="$output_objdir/$output.exp"
3277 $run $rm $export_symbols
3278 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3280 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3281 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3282 $run eval 'mv "$nlist"T "$nlist"'
3286 for arg in $dlprefiles; do
3287 $show "extracting global C symbols from \`$arg'"
3288 name=`echo "$arg" | sed -e 's%^.*/%%'`
3289 $run eval 'echo ": $name " >> "$nlist"'
3290 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3293 if test -z "$run"; then
3294 # Make sure we have at least an empty file.
3295 test -f "$nlist" || : > "$nlist"
3297 if test -n "$exclude_expsyms"; then
3298 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3299 $mv "$nlist"T "$nlist"
3302 # Try sorting and uniquifying the output.
3303 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3306 grep -v "^: " < "$nlist" > "$nlist"S
3309 if test -f "$nlist"S; then
3310 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3312 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3315 $echo >> "$output_objdir/$dlsyms" "\
3317 #undef lt_preloaded_symbols
3319 #if defined (__STDC__) && __STDC__
3320 # define lt_ptr_t void *
3322 # define lt_ptr_t char *
3326 /* The mapping between symbol names and symbols. */
3331 lt_preloaded_symbols[] =
3335 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
3336 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
3337 < "$nlist" >> "$output_objdir/$dlsyms"
3339 $echo >> "$output_objdir/$dlsyms" "\
3343 /* This works around a problem in FreeBSD linker */
3344 #ifdef FREEBSD_WORKAROUND
3345 static const void *lt_preloaded_setup() {
3346 return lt_preloaded_symbols;
3356 pic_flag_for_symtable=
3358 # compiling the symbol table file with pic_flag works around
3359 # a FreeBSD bug that causes programs to crash when -lm is
3360 # linked before any other PIC object. But we must not use
3361 # pic_flag when linking with -static. The problem exists in
3362 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3363 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3364 case "$compile_command " in
3366 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3369 case "$compile_command " in
3371 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3375 # Now compile the dynamic symbol file.
3376 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3377 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3379 # Clean up the generated files.
3380 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3381 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3383 # Transform the symbol file into the correct name.
3384 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3385 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3388 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3393 # We keep going just in case the user didn't refer to
3394 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3395 # really was required.
3397 # Nullify the symbol file.
3398 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3399 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3402 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3403 # Replace the output file specification.
3404 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3405 link_command="$compile_command$compile_rpath"
3407 # We have no uninstalled library dependencies, so finalize right now.
3408 $show "$link_command"
3409 $run eval "$link_command"
3412 # Delete the generated files.
3413 if test -n "$dlsyms"; then
3414 $show "$rm $output_objdir/${outputname}S.${objext}"
3415 $run $rm "$output_objdir/${outputname}S.${objext}"
3421 if test -n "$shlibpath_var"; then
3422 # We should set the shlibpath_var
3424 for dir in $temp_rpath; do
3426 [\\/]* | [A-Za-z]:[\\/]*)
3431 # Relative path: add a thisdir entry.
3432 rpath="$rpath\$thisdir/$dir:"
3439 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3440 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3442 if test -n "$finalize_shlibpath"; then
3443 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3448 if test -n "$runpath_var"; then
3449 if test -n "$perm_rpath"; then
3450 # We should set the runpath_var.
3452 for dir in $perm_rpath; do
3455 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3457 if test -n "$finalize_perm_rpath"; then
3458 # We should set the runpath_var.
3460 for dir in $finalize_perm_rpath; do
3463 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3467 if test "$no_install" = yes; then
3468 # We don't need to create a wrapper script.
3469 link_command="$compile_var$compile_command$compile_rpath"
3470 # Replace the output file specification.
3471 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3472 # Delete the old output file.
3474 # Link the executable and exit
3475 $show "$link_command"
3476 $run eval "$link_command" || exit $?
3480 if test "$hardcode_action" = relink; then
3481 # Fast installation is not supported
3482 link_command="$compile_var$compile_command$compile_rpath"
3483 relink_command="$finalize_var$finalize_command$finalize_rpath"
3485 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3486 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3488 if test "$fast_install" != no; then
3489 link_command="$finalize_var$compile_command$finalize_rpath"
3490 if test "$fast_install" = yes; then
3491 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3493 # fast_install is set to needless
3497 link_command="$compile_var$compile_command$compile_rpath"
3498 relink_command="$finalize_var$finalize_command$finalize_rpath"
3502 # Replace the output file specification.
3503 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3505 # Delete the old output files.
3506 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3508 $show "$link_command"
3509 $run eval "$link_command" || exit $?
3511 # Now create the wrapper script.
3512 $show "creating $output"
3514 # Quote the relink command for shipping.
3515 if test -n "$relink_command"; then
3516 # Preserve any variables that may affect compiler behavior
3517 for var in $variables_saved_for_relink; do
3518 if eval test -z \"\${$var+set}\"; then
3519 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3520 elif eval var_value=\$$var; test -z "$var_value"; then
3521 relink_command="$var=; export $var; $relink_command"
3523 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3524 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3527 relink_command="cd `pwd`; $relink_command"
3528 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3531 # Quote $echo for shipping.
3532 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3534 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3535 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3537 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3539 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3542 # Only actually do things if our run command is non-null.
3543 if test -z "$run"; then
3544 # win32 will think the script is a binary if it has
3545 # a .exe suffix, so we strip it off here.
3547 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3549 # test for cygwin because mv fails w/o .exe extensions
3551 *cygwin*) exeext=.exe ;;
3555 trap "$rm $output; exit 1" 1 2 15
3560 # $output - temporary wrapper script for $objdir/$outputname
3561 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3563 # The $output program cannot be directly executed until all the libtool
3564 # libraries that it depends on are installed.
3566 # This wrapper script should never be moved out of the build directory.
3567 # If it is, it will not operate correctly.
3569 # Sed substitution that helps us do robust quoting. It backslashifies
3570 # metacharacters that are still active within double-quoted strings.
3571 Xsed='sed -e 1s/^X//'
3572 sed_quote_subst='$sed_quote_subst'
3574 # The HP-UX ksh and POSIX shell print the target directory to stdout
3576 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3578 relink_command=\"$relink_command\"
3580 # This environment variable determines our operation mode.
3581 if test \"\$libtool_install_magic\" = \"$magic\"; then
3582 # install mode needs the following variable:
3583 notinst_deplibs='$notinst_deplibs'
3585 # When we are sourced in execute mode, \$file and \$echo are already set.
3586 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3589 # Make sure echo works.
3590 if test \"X\$1\" = X--no-reexec; then
3591 # Discard the --no-reexec flag, and continue.
3593 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3594 # Yippee, \$echo works!
3597 # Restart under the correct shell, and then maybe \$echo will work.
3598 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3604 # Find the directory that this script lives in.
3605 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3606 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3608 # Follow symbolic links until we get to the real thisdir.
3609 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3610 while test -n \"\$file\"; do
3611 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3613 # If there was a directory component, then change thisdir.
3614 if test \"x\$destdir\" != \"x\$file\"; then
3615 case \"\$destdir\" in
3616 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3617 *) thisdir=\"\$thisdir/\$destdir\" ;;
3621 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3622 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
3625 # Try to get the absolute directory name.
3626 absdir=\`cd \"\$thisdir\" && pwd\`
3627 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3630 if test "$fast_install" = yes; then
3632 program=lt-'$outputname'$exeext
3633 progdir=\"\$thisdir/$objdir\"
3635 if test ! -f \"\$progdir/\$program\" || \\
3636 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
3637 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3639 file=\"\$\$-\$program\"
3641 if test ! -d \"\$progdir\"; then
3642 $mkdir \"\$progdir\"
3644 $rm \"\$progdir/\$file\"
3649 # relink executable if necessary
3650 if test -n \"\$relink_command\"; then
3651 if (eval \$relink_command); then :
3653 $rm \"\$progdir/\$file\"
3658 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3659 { $rm \"\$progdir/\$program\";
3660 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3661 $rm \"\$progdir/\$file\"
3665 program='$outputname'
3666 progdir=\"\$thisdir/$objdir\"
3672 if test -f \"\$progdir/\$program\"; then"
3674 # Export our shlibpath_var if we have one.
3675 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3677 # Add our own library path to $shlibpath_var
3678 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3680 # Some systems cannot cope with colon-terminated $shlibpath_var
3681 # The second colon is a workaround for a bug in BeOS R4 sed
3682 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3684 export $shlibpath_var
3688 # fixup the dll searchpath if we need to.
3689 if test -n "$dllsearchpath"; then
3691 # Add the dll search path components to the executable PATH
3692 PATH=$dllsearchpath:\$PATH
3697 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3698 # Run the actual program with our arguments.
3701 # win32 systems need to use the prog path for dll
3703 *-*-cygwin* | *-*-pw32*)
3705 exec \$progdir/\$program \${1+\"\$@\"}
3709 # Backslashes separate directories on plain windows
3710 *-*-mingw | *-*-os2*)
3712 exec \$progdir\\\\\$program \${1+\"\$@\"}
3718 # Export the path to the program.
3719 PATH=\"\$progdir:\$PATH\"
3722 exec \$program \${1+\"\$@\"}
3727 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3731 # The program doesn't exist.
3732 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3733 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3734 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3745 # See if we need to build an old-fashioned archive.
3746 for oldlib in $oldlibs; do
3748 if test "$build_libtool_libs" = convenience; then
3749 oldobjs="$libobjs_save"
3750 addlibs="$convenience"
3751 build_libtool_libs=no
3753 if test "$build_libtool_libs" = module; then
3754 oldobjs="$libobjs_save"
3755 build_libtool_libs=no
3757 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3759 addlibs="$old_convenience"
3762 if test -n "$addlibs"; then
3763 gentop="$output_objdir/${outputname}x"
3764 $show "${rm}r $gentop"
3765 $run ${rm}r "$gentop"
3766 $show "mkdir $gentop"
3767 $run mkdir "$gentop"
3769 if test $status -ne 0 && test ! -d "$gentop"; then
3772 generated="$generated $gentop"
3774 # Add in members from convenience archives.
3775 for xlib in $addlibs; do
3776 # Extract the objects.
3778 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3779 *) xabs=`pwd`"/$xlib" ;;
3781 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3782 xdir="$gentop/$xlib"
3784 $show "${rm}r $xdir"
3789 if test $status -ne 0 && test ! -d "$xdir"; then
3792 $show "(cd $xdir && $AR x $xabs)"
3793 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3795 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3799 # Do each command in the archive commands.
3800 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3801 eval cmds=\"$old_archive_from_new_cmds\"
3803 # Ensure that we have .o objects in place in case we decided
3804 # not to build a shared library, and have fallen back to building
3805 # static libs even though --disable-static was passed!
3806 for oldobj in $oldobjs; do
3807 if test ! -f $oldobj; then
3808 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3809 if test "X$xdir" = "X$oldobj"; then
3814 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3815 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3816 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3817 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3821 eval cmds=\"$old_archive_cmds\"
3823 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3824 for cmd in $cmds; do
3827 $run eval "$cmd" || exit $?
3832 if test -n "$generated"; then
3833 $show "${rm}r$generated"
3834 $run ${rm}r$generated
3837 # Now create the libtool archive.
3841 test "$build_old_libs" = yes && old_library="$libname.$libext"
3842 $show "creating $output"
3844 # Preserve any variables that may affect compiler behavior
3845 for var in $variables_saved_for_relink; do
3846 if eval test -z \"\${$var+set}\"; then
3847 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3848 elif eval var_value=\$$var; test -z "$var_value"; then
3849 relink_command="$var=; export $var; $relink_command"
3851 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3852 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3855 # Quote the link command for shipping.
3856 relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@"
3857 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3859 # Only create the output if not a dry run.
3860 if test -z "$run"; then
3861 for installed in no yes; do
3862 if test "$installed" = yes; then
3863 if test -z "$install_libdir"; then
3866 output="$output_objdir/$outputname"i
3867 # Replace all uninstalled libtool libraries with the installed ones
3869 for deplib in $dependency_libs; do
3872 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3873 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3874 if test -z "$libdir"; then
3875 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3878 newdependency_libs="$newdependency_libs $libdir/$name"
3880 *) newdependency_libs="$newdependency_libs $deplib" ;;
3883 dependency_libs="$newdependency_libs"
3885 for lib in $dlfiles; do
3886 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3887 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3888 if test -z "$libdir"; then
3889 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3892 newdlfiles="$newdlfiles $libdir/$name"
3894 dlfiles="$newdlfiles"
3896 for lib in $dlprefiles; do
3897 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3898 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3899 if test -z "$libdir"; then
3900 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3903 newdlprefiles="$newdlprefiles $libdir/$name"
3905 dlprefiles="$newdlprefiles"
3908 # place dlname in correct position for cygwin
3910 case $host,$output,$installed,$module,$dlname in
3911 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
3914 # $outputname - a libtool library file
3915 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3917 # Please DO NOT delete this file!
3918 # It is necessary for linking the library.
3920 # The name that we can dlopen(3).
3923 # Names of this library.
3924 library_names='$library_names'
3926 # The name of the static archive.
3927 old_library='$old_library'
3929 # Libraries that this one depends upon.
3930 dependency_libs='$dependency_libs'
3932 # Version information for $libname.
3937 # Is this an already installed library?
3938 installed=$installed
3940 # Files to dlopen/dlpreopen
3942 dlpreopen='$dlprefiles'
3944 # Directory that this library needs to be installed in:
3945 libdir='$install_libdir'"
3946 if test "$installed" = no && test $need_relink = yes; then
3948 relink_command=\"$relink_command\""
3953 # Do a symbolic link so that the libtool archive can be found in
3954 # LD_LIBRARY_PATH before the program is installed.
3955 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3956 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
3962 # libtool install mode
3964 modename="$modename: install"
3966 # There may be an optional sh(1) argument at the beginning of
3967 # install_prog (especially on Windows NT).
3968 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
3969 # Allow the use of GNU shtool's install command.
3970 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
3971 # Aesthetically quote it.
3972 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3974 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3978 install_prog="$arg "
3986 # The real first argument should be the name of the installation program.
3987 # Aesthetically quote it.
3988 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3990 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3994 install_prog="$install_prog$arg"
3996 # We need to accept at least all the BSD install flags.
4006 if test -n "$dest"; then
4007 files="$files $dest"
4025 # If the previous option needed an argument, then skip it.
4026 if test -n "$prev"; then
4035 # Aesthetically quote the argument.
4036 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4038 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4042 install_prog="$install_prog $arg"
4045 if test -z "$install_prog"; then
4046 $echo "$modename: you must specify an install program" 1>&2
4051 if test -n "$prev"; then
4052 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4057 if test -z "$files"; then
4058 if test -z "$dest"; then
4059 $echo "$modename: no file or destination specified" 1>&2
4061 $echo "$modename: you must specify a destination" 1>&2
4067 # Strip any trailing slash from the destination.
4068 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4070 # Check to see that the destination is a directory.
4071 test -d "$dest" && isdir=yes
4072 if test "$isdir" = yes; then
4076 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4077 test "X$destdir" = "X$dest" && destdir=.
4078 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4080 # Not a directory, so check to see that there is only one file specified.
4082 if test $# -gt 2; then
4083 $echo "$modename: \`$dest' is not a directory" 1>&2
4089 [\\/]* | [A-Za-z]:[\\/]*) ;;
4091 for file in $files; do
4095 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4104 # This variable tells wrapper scripts just to set variables rather
4105 # than running their programs.
4106 libtool_install_magic="$magic"
4111 for file in $files; do
4113 # Do each installation.
4116 # Do the static libraries later.
4117 staticlibs="$staticlibs $file"
4121 # Check to see that this really is a libtool archive.
4122 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4124 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4132 # If there is no directory component, then add one.
4134 */* | *\\*) . $file ;;
4138 # Add the libdir to current_libdirs if it is the destination.
4139 if test "X$destdir" = "X$libdir"; then
4140 case "$current_libdirs " in
4142 *) current_libdirs="$current_libdirs $libdir" ;;
4145 # Note the libdir as a future libdir.
4146 case "$future_libdirs " in
4148 *) future_libdirs="$future_libdirs $libdir" ;;
4152 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4153 test "X$dir" = "X$file/" && dir=
4156 if test -n "$relink_command"; then
4157 # Determine the prefix the user has applied to our future dir.
4158 inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"`
4160 # Don't allow the user to place us outside of our expected
4161 # location b/c this prevents finding dependent libraries that
4162 # are installed to the same prefix.
4163 if test "$inst_prefix_dir" = "$destdir"; then
4164 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
4168 if test -n "$inst_prefix_dir"; then
4169 # Stick the inst_prefix_dir data into the link command.
4170 relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
4172 relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"`
4175 $echo "$modename: warning: relinking \`$file'" 1>&2
4176 $show "$relink_command"
4177 if $run eval "$relink_command"; then :
4179 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4184 # See the names of the shared library.
4185 set dummy $library_names
4186 if test -n "$2"; then
4192 test -n "$relink_command" && srcname="$realname"T
4194 # Install the shared library and build the symlinks.
4195 $show "$install_prog $dir/$srcname $destdir/$realname"
4196 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4197 if test -n "$stripme" && test -n "$striplib"; then
4198 $show "$striplib $destdir/$realname"
4199 $run eval "$striplib $destdir/$realname" || exit $?
4202 if test $# -gt 0; then
4203 # Delete the old symlinks, and create new ones.
4206 if test "$linkname" != "$realname"; then
4207 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4208 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4213 # Do each command in the postinstall commands.
4214 lib="$destdir/$realname"
4215 eval cmds=\"$postinstall_cmds\"
4216 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4217 for cmd in $cmds; do
4220 $run eval "$cmd" || exit $?
4225 # Install the pseudo-library for information purposes.
4226 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4227 instname="$dir/$name"i
4228 $show "$install_prog $instname $destdir/$name"
4229 $run eval "$install_prog $instname $destdir/$name" || exit $?
4231 # Maybe install the static library, too.
4232 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4236 # Install (i.e. copy) a libtool object.
4238 # Figure out destination file name, if it wasn't already specified.
4239 if test -n "$destname"; then
4240 destfile="$destdir/$destname"
4242 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4243 destfile="$destdir/$destfile"
4246 # Deduce the name of the destination old-style object file.
4249 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4252 staticdest="$destfile"
4256 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4262 # Install the libtool object if requested.
4263 if test -n "$destfile"; then
4264 $show "$install_prog $file $destfile"
4265 $run eval "$install_prog $file $destfile" || exit $?
4268 # Install the old object if enabled.
4269 if test "$build_old_libs" = yes; then
4270 # Deduce the name of the old-style object file.
4271 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4273 $show "$install_prog $staticobj $staticdest"
4274 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4280 # Figure out destination file name, if it wasn't already specified.
4281 if test -n "$destname"; then
4282 destfile="$destdir/$destname"
4284 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4285 destfile="$destdir/$destfile"
4288 # Do a test to see if this is really a libtool program.
4289 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4293 # If there is no directory component, then add one.
4295 */* | *\\*) . $file ;;
4299 # Check the variables that should have been set.
4300 if test -z "$notinst_deplibs"; then
4301 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4306 for lib in $notinst_deplibs; do
4307 # Check to see that each library is installed.
4309 if test -f "$lib"; then
4310 # If there is no directory component, then add one.
4312 */* | *\\*) . $lib ;;
4316 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4317 if test -n "$libdir" && test ! -f "$libfile"; then
4318 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4324 # If there is no directory component, then add one.
4326 */* | *\\*) . $file ;;
4331 if test "$fast_install" = no && test -n "$relink_command"; then
4332 if test "$finalize" = yes && test -z "$run"; then
4334 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4335 tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
4336 if test $? = 0 ; then :
4338 tmpdir="$tmpdir/libtool-$$"
4340 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4342 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4345 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4346 outputname="$tmpdir/$file"
4347 # Replace the output file specification.
4348 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4350 $show "$relink_command"
4351 if $run eval "$relink_command"; then :
4353 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4359 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4362 # Install the binary that we compiled earlier.
4363 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4367 # remove .exe since cygwin /usr/bin/install will append another
4369 case $install_prog,$host in
4370 /usr/bin/install*,*cygwin*)
4371 case $file:$destfile in
4376 destfile=$destfile.exe
4379 destfile=`echo $destfile | sed -e 's,.exe$,,'`
4384 $show "$install_prog$stripme $file $destfile"
4385 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4386 test -n "$outputname" && ${rm}r "$tmpdir"
4391 for file in $staticlibs; do
4392 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4394 # Set up the ranlib parameters.
4395 oldlib="$destdir/$name"
4397 $show "$install_prog $file $oldlib"
4398 $run eval "$install_prog \$file \$oldlib" || exit $?
4400 if test -n "$stripme" && test -n "$striplib"; then
4401 $show "$old_striplib $oldlib"
4402 $run eval "$old_striplib $oldlib" || exit $?
4405 # Do each command in the postinstall commands.
4406 eval cmds=\"$old_postinstall_cmds\"
4407 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4408 for cmd in $cmds; do
4411 $run eval "$cmd" || exit $?
4416 if test -n "$future_libdirs"; then
4417 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4420 if test -n "$current_libdirs"; then
4421 # Maybe just do a dry run.
4422 test -n "$run" && current_libdirs=" -n$current_libdirs"
4423 exec $SHELL $0 --finish$current_libdirs
4430 # libtool finish mode
4432 modename="$modename: finish"
4436 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4439 libdirs="$libdirs $dir"
4442 for libdir in $libdirs; do
4443 if test -n "$finish_cmds"; then
4444 # Do each command in the finish commands.
4445 eval cmds=\"$finish_cmds\"
4446 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4447 for cmd in $cmds; do
4450 $run eval "$cmd" || admincmds="$admincmds
4455 if test -n "$finish_eval"; then
4456 # Do the single finish_eval.
4457 eval cmds=\"$finish_eval\"
4458 $run eval "$cmds" || admincmds="$admincmds
4464 # Exit here if they wanted silent mode.
4465 test "$show" = ":" && exit 0
4467 echo "----------------------------------------------------------------------"
4468 echo "Libraries have been installed in:"
4469 for libdir in $libdirs; do
4473 echo "If you ever happen to want to link against installed libraries"
4474 echo "in a given directory, LIBDIR, you must either use libtool, and"
4475 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4476 echo "flag during linking and do at least one of the following:"
4477 if test -n "$shlibpath_var"; then
4478 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4479 echo " during execution"
4481 if test -n "$runpath_var"; then
4482 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4483 echo " during linking"
4485 if test -n "$hardcode_libdir_flag_spec"; then
4487 eval flag=\"$hardcode_libdir_flag_spec\"
4489 echo " - use the \`$flag' linker flag"
4491 if test -n "$admincmds"; then
4492 echo " - have your system administrator run these commands:$admincmds"
4494 if test -f /etc/ld.so.conf; then
4495 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4498 echo "See any operating system documentation about shared libraries for"
4499 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4500 echo "----------------------------------------------------------------------"
4504 # libtool execute mode
4506 modename="$modename: execute"
4508 # The first argument is the command name.
4510 if test -z "$cmd"; then
4511 $echo "$modename: you must specify a COMMAND" 1>&2
4516 # Handle -dlopen flags immediately.
4517 for file in $execute_dlfiles; do
4518 if test ! -f "$file"; then
4519 $echo "$modename: \`$file' is not a file" 1>&2
4527 # Check to see that this really is a libtool archive.
4528 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4530 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4535 # Read the libtool library.
4539 # If there is no directory component, then add one.
4541 */* | *\\*) . $file ;;
4545 # Skip this library if it cannot be dlopened.
4546 if test -z "$dlname"; then
4547 # Warn if it was a shared library.
4548 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4552 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4553 test "X$dir" = "X$file" && dir=.
4555 if test -f "$dir/$objdir/$dlname"; then
4558 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4564 # Just add the directory containing the .lo file.
4565 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4566 test "X$dir" = "X$file" && dir=.
4570 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4575 # Get the absolute pathname.
4576 absdir=`cd "$dir" && pwd`
4577 test -n "$absdir" && dir="$absdir"
4579 # Now add the directory to shlibpath_var.
4580 if eval "test -z \"\$$shlibpath_var\""; then
4581 eval "$shlibpath_var=\"\$dir\""
4583 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4587 # This variable tells wrapper scripts just to set shlibpath_var
4588 # rather than running their programs.
4589 libtool_execute_magic="$magic"
4591 # Check if any of the arguments is a wrapper script.
4598 # Do a test to see if this is really a libtool program.
4599 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4600 # If there is no directory component, then add one.
4602 */* | *\\*) . $file ;;
4606 # Transform arg to wrapped name.
4607 file="$progdir/$program"
4611 # Quote arguments (to preserve shell metacharacters).
4612 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4613 args="$args \"$file\""
4616 if test -z "$run"; then
4617 if test -n "$shlibpath_var"; then
4618 # Export the shlibpath_var.
4619 eval "export $shlibpath_var"
4622 # Restore saved enviroment variables
4623 if test "${save_LC_ALL+set}" = set; then
4624 LC_ALL="$save_LC_ALL"; export LC_ALL
4626 if test "${save_LANG+set}" = set; then
4627 LANG="$save_LANG"; export LANG
4630 # Now actually exec the command.
4631 eval "exec \$cmd$args"
4633 $echo "$modename: cannot exec \$cmd$args"
4636 # Display what would be done.
4637 if test -n "$shlibpath_var"; then
4638 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4639 $echo "export $shlibpath_var"
4646 # libtool clean and uninstall mode
4648 modename="$modename: $mode"
4654 # This variable tells wrapper scripts just to set variables rather
4655 # than running their programs.
4656 libtool_install_magic="$magic"
4661 -f) rm="$rm $arg"; rmforce=yes ;;
4662 -*) rm="$rm $arg" ;;
4663 *) files="$files $arg" ;;
4667 if test -z "$rm"; then
4668 $echo "$modename: you must specify an RM program" 1>&2
4675 for file in $files; do
4676 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4677 if test "X$dir" = "X$file"; then
4681 objdir="$dir/$objdir"
4683 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4684 test $mode = uninstall && objdir="$dir"
4686 # Remember objdir for removal later, being careful to avoid duplicates
4687 if test $mode = clean; then
4690 *) rmdirs="$rmdirs $objdir" ;;
4694 # Don't error if the file doesn't exist and rm -f was used.
4695 if (test -L "$file") >/dev/null 2>&1 \
4696 || (test -h "$file") >/dev/null 2>&1 \
4697 || test -f "$file"; then
4699 elif test -d "$file"; then
4702 elif test "$rmforce" = yes; then
4710 # Possibly a libtool archive, so verify it.
4711 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4714 # Delete the libtool libraries and symlinks.
4715 for n in $library_names; do
4716 rmfiles="$rmfiles $objdir/$n"
4718 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4719 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4721 if test $mode = uninstall; then
4722 if test -n "$library_names"; then
4723 # Do each command in the postuninstall commands.
4724 eval cmds=\"$postuninstall_cmds\"
4725 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4726 for cmd in $cmds; do
4730 if test $? != 0 && test "$rmforce" != yes; then
4737 if test -n "$old_library"; then
4738 # Do each command in the old_postuninstall commands.
4739 eval cmds=\"$old_postuninstall_cmds\"
4740 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4741 for cmd in $cmds; do
4745 if test $? != 0 && test "$rmforce" != yes; then
4751 # FIXME: should reinstall the best remaining shared library.
4757 if test "$build_old_libs" = yes; then
4758 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
4759 rmfiles="$rmfiles $dir/$oldobj"
4764 # Do a test to see if this is a libtool program.
4765 if test $mode = clean &&
4766 (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4770 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4771 if test "$fast_install" = yes && test -n "$relink_command"; then
4772 rmfiles="$rmfiles $objdir/lt-$name"
4777 $show "$rm $rmfiles"
4778 $run $rm $rmfiles || exit_status=1
4781 # Try to remove the ${objdir}s in the directories where we deleted files
4782 for dir in $rmdirs; do
4783 if test -d "$dir"; then
4785 $run rmdir $dir >/dev/null 2>&1
4793 $echo "$modename: you must specify a MODE" 1>&2
4794 $echo "$generic_help" 1>&2
4799 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4800 $echo "$generic_help" 1>&2
4802 fi # test -z "$show_help"
4804 # We need to display help for each of the modes.
4807 "Usage: $modename [OPTION]... [MODE-ARG]...
4809 Provide generalized library-building support services.
4811 --config show all configuration variables
4812 --debug enable verbose shell tracing
4813 -n, --dry-run display commands without modifying any files
4814 --features display basic configuration information and exit
4815 --finish same as \`--mode=finish'
4816 --help display this help message and exit
4817 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4818 --quiet same as \`--silent'
4819 --silent don't print informational messages
4820 --version print version information
4822 MODE must be one of the following:
4824 clean remove files from the build directory
4825 compile compile a source file into a libtool object
4826 execute automatically set library path, then run a program
4827 finish complete the installation of libtool libraries
4828 install install libraries or executables
4829 link create a library or an executable
4830 uninstall remove libraries from an installed directory
4832 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
4833 a more detailed description of MODE."
4839 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
4841 Remove files from the build directory.
4843 RM is the name of the program to use to delete files associated with each FILE
4844 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4847 If FILE is a libtool library, object or program, all the files associated
4848 with it are deleted. Otherwise, only FILE itself is deleted using RM."
4853 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
4855 Compile a source file into a libtool library object.
4857 This mode accepts the following additional options:
4859 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
4860 -prefer-pic try to building PIC objects only
4861 -prefer-non-pic try to building non-PIC objects only
4862 -static always build a \`.o' file suitable for static linking
4864 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
4865 from the given SOURCEFILE.
4867 The output file name is determined by removing the directory component from
4868 SOURCEFILE, then substituting the C source code suffix \`.c' with the
4869 library object suffix, \`.lo'."
4874 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
4876 Automatically set library path, then run a program.
4878 This mode accepts the following additional options:
4880 -dlopen FILE add the directory containing FILE to the library path
4882 This mode sets the library path environment variable according to \`-dlopen'
4885 If any of the ARGS are libtool executable wrappers, then they are translated
4886 into their corresponding uninstalled binary, and any of their required library
4887 directories are added to the library path.
4889 Then, COMMAND is executed, with ARGS as arguments."
4894 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
4896 Complete the installation of libtool libraries.
4898 Each LIBDIR is a directory that contains libtool libraries.
4900 The commands that this mode executes may require superuser privileges. Use
4901 the \`--dry-run' option if you just want to see what would be executed."
4906 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4908 Install executables or libraries.
4910 INSTALL-COMMAND is the installation command. The first component should be
4911 either the \`install' or \`cp' program.
4913 The rest of the components are interpreted as arguments to that command (only
4914 BSD-compatible install options are recognized)."
4919 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4921 Link object files or libraries together to form another library, or to
4922 create an executable program.
4924 LINK-COMMAND is a command using the C compiler that you would use to create
4925 a program from several object files.
4927 The following components of LINK-COMMAND are treated specially:
4929 -all-static do not do any dynamic linking at all
4930 -avoid-version do not add a version suffix if possible
4931 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4932 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4933 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4934 -export-symbols SYMFILE
4935 try to export only the symbols listed in SYMFILE
4936 -export-symbols-regex REGEX
4937 try to export only the symbols matching REGEX
4938 -LLIBDIR search LIBDIR for required installed libraries
4939 -lNAME OUTPUT-FILE requires the installed library libNAME
4940 -module build a library that can dlopened
4941 -no-fast-install disable the fast-install mode
4942 -no-install link a not-installable executable
4943 -no-undefined declare that a library does not refer to external symbols
4944 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4945 -release RELEASE specify package release information
4946 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4947 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4948 -static do not do any dynamic linking of libtool libraries
4949 -version-info CURRENT[:REVISION[:AGE]]
4950 specify library version info [each variable defaults to 0]
4952 All other options (arguments beginning with \`-') are ignored.
4954 Every other argument is treated as a filename. Files ending in \`.la' are
4955 treated as uninstalled libtool libraries, other files are standard or library
4958 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4959 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4960 required, except when creating a convenience library.
4962 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4963 using \`ar' and \`ranlib', or on Windows using \`lib'.
4965 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4966 is created, otherwise an executable program is created."
4971 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4973 Remove libraries from an installation directory.
4975 RM is the name of the program to use to delete files associated with each FILE
4976 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4979 If FILE is a libtool library, all the files associated with it are deleted.
4980 Otherwise, only FILE itself is deleted using RM."
4984 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4991 $echo "Try \`$modename --help' for more information about other modes."