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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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.2.53 2001/09/11 03:18:52)"
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 # Make sure IFS has a sensible default
90 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
91 echo "$modename: not configured to build any kind of library" 1>&2
92 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
105 lo2o="s/\\.lo\$/.${objext}/"
106 o2lo="s/\\.${objext}\$/.lo/"
108 # Parse our command line options once, thoroughly.
115 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
119 # If the previous option needs an argument, assign it.
120 if test -n "$prev"; then
123 execute_dlfiles="$execute_dlfiles $arg"
135 # Have we seen a non-optional argument yet?
142 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
147 sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
152 echo "$progname: enabling shell trace mode"
162 if test "$build_libtool_libs" = yes; then
163 echo "enable shared libraries"
165 echo "disable shared libraries"
167 if test "$build_old_libs" = yes; then
168 echo "enable static libraries"
170 echo "disable static libraries"
175 --finish) mode="finish" ;;
177 --mode) prevopt="--mode" prev=mode ;;
178 --mode=*) mode="$optarg" ;;
190 $echo "$modename: unrecognized option \`$arg'" 1>&2
202 if test -n "$prevopt"; then
203 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
208 # If this variable is set in any of the actions, the command in it
209 # will be execed at the end. This prevents here-documents from being
210 # left over by shells.
213 if test -z "$show_help"; then
215 # Infer the operation mode.
216 if test -z "$mode"; then
218 *cc | *++ | gcc* | *-gcc*)
230 *db | *dbx | *strace | *truss)
240 # If we have no mode, but dlfiles were specified, then do execute mode.
241 test -n "$execute_dlfiles" && mode=execute
243 # Just use the default operation mode.
244 if test -z "$mode"; then
245 if test -n "$nonopt"; then
246 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
248 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
255 # Only execute mode is allowed to have -dlopen flags.
256 if test -n "$execute_dlfiles" && test "$mode" != execute; then
257 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
262 # Change the help message to a mode-specific one.
264 help="Try \`$modename --help --mode=$mode' for more information."
266 # These modes are in order of execution frequency so that they run quickly.
268 # libtool compile mode
270 modename="$modename: compile"
271 # Get the compilation command and the source file.
284 # Aesthetically quote the previous argument.
286 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
289 # Double-quote args containing other shell metacharacters.
290 # Many Bourne shells cannot handle close brackets correctly
291 # in scan sets, so we specify it separately.
292 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
297 # Add the previous argument to base_compile.
298 if test -z "$base_compile"; then
299 base_compile="$lastarg"
301 base_compile="$base_compile $lastarg"
307 # Accept any command-line options.
310 if test "$user_target" != "no"; then
311 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
338 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
340 save_ifs="$IFS"; IFS=','
344 # Double-quote args containing other shell metacharacters.
345 # Many Bourne shells cannot handle close brackets correctly
346 # in scan sets, so we specify it separately.
348 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
352 lastarg="$lastarg $arg"
355 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
357 # Add the arguments to base_compile.
358 if test -z "$base_compile"; then
359 base_compile="$lastarg"
361 base_compile="$base_compile $lastarg"
369 # The next one is the -o target name
374 # We got the output file
381 # Accept the current argument as the source file.
385 # Aesthetically quote the previous argument.
387 # Backslashify any backslashes, double quotes, and dollar signs.
388 # These are the only characters that are still specially
389 # interpreted inside of double-quoted scrings.
390 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
392 # Double-quote args containing other shell metacharacters.
393 # Many Bourne shells cannot handle close brackets correctly
394 # in scan sets, so we specify it separately.
396 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
397 lastarg="\"$lastarg\""
401 # Add the previous argument to base_compile.
402 if test -z "$base_compile"; then
403 base_compile="$lastarg"
405 base_compile="$base_compile $lastarg"
413 # Get the name of the library object.
414 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
417 $echo "$modename: you must specify a target with \`-o'" 1>&2
422 # Recognize several different file suffixes.
423 # If the user specifies -o file.o, it is replaced with file.lo
438 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
441 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
443 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
448 if test -z "$base_compile"; then
449 $echo "$modename: you must specify a compilation command" 1>&2
454 # Delete any leftover library objects.
455 if test "$build_old_libs" = yes; then
456 removelist="$obj $libobj"
462 trap "$run $rm $removelist; exit 1" 1 2 15
464 # On Cygwin there's no "real" PIC flag so we must build both object types
466 cygwin* | mingw* | pw32* | os2*)
470 if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
471 # non-PIC code in shared libraries is not supported
475 # Calculate the filename of the output object if compiler does
476 # not support -o with -c
477 if test "$compiler_c_o" = no; then
478 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
479 lockfile="$output_obj.lock"
480 removelist="$removelist $output_obj $lockfile"
481 trap "$run $rm $removelist; exit 1" 1 2 15
487 # Lock this critical section if it is needed
488 # We use this script file to make the link, it avoids creating a new file
489 if test "$need_locks" = yes; then
490 until $run ln "$0" "$lockfile" 2>/dev/null; do
491 $show "Waiting for $lockfile to be removed"
494 elif test "$need_locks" = warn; then
495 if test -f "$lockfile"; then
497 *** ERROR, $lockfile exists and contains:
498 `cat $lockfile 2>/dev/null`
500 This indicates that another process is trying to use the same
501 temporary object file, and libtool could not work around it because
502 your compiler does not support \`-c' and \`-o' together. If you
503 repeat this compilation, it may succeed, by chance, but you had better
504 avoid parallel builds (make -j) in this platform, or get a better
510 echo $srcfile > "$lockfile"
513 if test -n "$fix_srcfile_path"; then
514 eval srcfile=\"$fix_srcfile_path\"
517 # Only build a PIC object if we are building libtool libraries.
518 if test "$build_libtool_libs" = yes; then
519 # Without this assignment, base_compile gets emptied.
520 fbsd_hideous_sh_bug=$base_compile
522 if test "$pic_mode" != no; then
523 # All platforms use -DPIC, to notify preprocessed assembler code.
524 command="$base_compile $srcfile $pic_flag -DPIC"
526 # Don't build PIC code
527 command="$base_compile $srcfile"
529 if test "$build_old_libs" = yes; then
531 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
532 if test "X$dir" = "X$libobj"; then
537 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
539 if test -d "$dir"; then
546 if test $status -ne 0 && test ! -d $dir; then
551 if test "$compiler_o_lo" = yes; then
553 command="$command -o $output_obj"
554 elif test "$compiler_c_o" = yes; then
556 command="$command -o $output_obj"
559 $run $rm "$output_obj"
561 if $run eval "$command"; then :
563 test -n "$output_obj" && $run $rm $removelist
567 if test "$need_locks" = warn &&
568 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
570 *** ERROR, $lockfile contains:
571 `cat $lockfile 2>/dev/null`
573 but it should contain:
576 This indicates that another process is trying to use the same
577 temporary object file, and libtool could not work around it because
578 your compiler does not support \`-c' and \`-o' together. If you
579 repeat this compilation, it may succeed, by chance, but you had better
580 avoid parallel builds (make -j) in this platform, or get a better
587 # Just move the object if needed, then go on to compile the next one
588 if test x"$output_obj" != x"$libobj"; then
589 $show "$mv $output_obj $libobj"
590 if $run $mv $output_obj $libobj; then :
598 # If we have no pic_flag, then copy the object into place and finish.
599 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
600 test "$build_old_libs" = yes; then
601 # Rename the .lo from within objdir to obj
602 if test -f $obj; then
607 $show "$mv $libobj $obj"
608 if $run $mv $libobj $obj; then :
615 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
616 if test "X$xdir" = "X$obj"; then
621 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
622 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
623 # Now arrange that obj and lo_libobj become the same file
624 $show "(cd $xdir && $LN_S $baseobj $libobj)"
625 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
626 # Unlock the critical section if it was locked
627 if test "$need_locks" != no; then
638 # Allow error messages only from the first compilation.
639 suppress_output=' >/dev/null 2>&1'
642 # Only build a position-dependent object if we build old libraries.
643 if test "$build_old_libs" = yes; then
644 if test "$pic_mode" != yes; then
645 # Don't build PIC code
646 command="$base_compile $srcfile"
648 # All platforms use -DPIC, to notify preprocessed assembler code.
649 command="$base_compile $srcfile $pic_flag -DPIC"
651 if test "$compiler_c_o" = yes; then
652 command="$command -o $obj"
656 # Suppress compiler output if we already did a PIC compilation.
657 command="$command$suppress_output"
658 $run $rm "$output_obj"
660 if $run eval "$command"; then :
666 if test "$need_locks" = warn &&
667 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
669 *** ERROR, $lockfile contains:
670 `cat $lockfile 2>/dev/null`
672 but it should contain:
675 This indicates that another process is trying to use the same
676 temporary object file, and libtool could not work around it because
677 your compiler does not support \`-c' and \`-o' together. If you
678 repeat this compilation, it may succeed, by chance, but you had better
679 avoid parallel builds (make -j) in this platform, or get a better
686 # Just move the object if needed
687 if test x"$output_obj" != x"$obj"; then
688 $show "$mv $output_obj $obj"
689 if $run $mv $output_obj $obj; then :
697 # Create an invalid libtool object if no PIC, so that we do not
698 # accidentally link it into a program.
699 if test "$build_libtool_libs" != yes; then
700 $show "echo timestamp > $libobj"
701 $run eval "echo timestamp > \$libobj" || exit $?
703 # Move the .lo from within objdir
704 $show "$mv $libobj $lo_libobj"
705 if $run $mv $libobj $lo_libobj; then :
714 # Unlock the critical section if it was locked
715 if test "$need_locks" != no; then
724 modename="$modename: link"
726 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
727 # It is impossible to link a dll without this setting, and
728 # we shouldn't force the makefile maintainer to figure out
729 # which system we are compiling for in order to pass an extra
730 # flag for every libtool invokation.
733 # FIXME: Unfortunately, there are problems with the above when trying
734 # to make a dll which has undefined symbols, in which case not
735 # even a static library is built. For now, we need to specify
736 # -no-undefined on the libtool link line when we can be certain
737 # that all symbols are satisfied, otherwise we get a static library.
744 libtool_args="$nonopt"
745 compile_command="$nonopt"
746 finalize_command="$nonopt"
759 lib_search_path=`pwd`
767 export_symbols_regex=
774 prefer_static_libs=no
786 # We need to know -static, to get the right output filenames.
790 -all-static | -static)
791 if test "X$arg" = "X-all-static"; then
792 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
793 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
795 if test -n "$link_static_flag"; then
796 dlopen_self=$dlopen_self_static
799 if test -z "$pic_flag" && test -n "$link_static_flag"; then
800 dlopen_self=$dlopen_self_static
803 build_libtool_libs=no
805 prefer_static_libs=yes
811 # See if our shared archives depend on static archives.
812 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
814 # Go through the arguments, transforming them on the way.
815 while test $# -gt 0; do
819 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
820 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
824 libtool_args="$libtool_args $qarg"
826 # If the previous option needs an argument, assign it.
827 if test -n "$prev"; then
830 compile_command="$compile_command @OUTPUT@"
831 finalize_command="$finalize_command @OUTPUT@"
837 if test "$preload" = no; then
838 # Add the symbol object into the linking commands.
839 compile_command="$compile_command @SYMFILE@"
840 finalize_command="$finalize_command @SYMFILE@"
844 *.la | *.lo) ;; # We handle these cases below.
846 if test "$dlself" = no; then
854 if test "$prev" = dlprefiles; then
856 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
866 if test "$prev" = dlfiles; then
867 dlfiles="$dlfiles $arg"
869 dlprefiles="$dlprefiles $arg"
877 export_symbols="$arg"
878 if test ! -f "$arg"; then
879 $echo "$modename: symbol file \`$arg' does not exist"
886 export_symbols_regex="$arg"
896 # We need an absolute path.
898 [\\/]* | [A-Za-z]:[\\/]*) ;;
900 $echo "$modename: only absolute run-paths are allowed" 1>&2
904 if test "$prev" = rpath; then
907 *) rpath="$rpath $arg" ;;
912 *) xrpath="$xrpath $arg" ;;
919 compiler_flags="$compiler_flags $qarg"
921 compile_command="$compile_command $qarg"
922 finalize_command="$finalize_command $qarg"
926 linker_flags="$linker_flags $qarg"
927 compiler_flags="$compiler_flags $wl$qarg"
929 compile_command="$compile_command $wl$qarg"
930 finalize_command="$finalize_command $wl$qarg"
934 eval "$prev=\"\$arg\""
945 if test -n "$link_static_flag"; then
946 compile_command="$compile_command $link_static_flag"
947 finalize_command="$finalize_command $link_static_flag"
953 # FIXME: remove this flag sometime in the future.
954 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
978 -export-symbols | -export-symbols-regex)
979 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
980 $echo "$modename: more than one -exported-symbols argument is not allowed"
983 if test "X$arg" = "X-export-symbols"; then
991 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
992 # so, if we see these flags be careful not to treat them like -L
994 case $with_gcc/$host in
996 compile_command="$compile_command $arg"
997 finalize_command="$finalize_command $arg"
1004 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1005 # We need an absolute path.
1007 [\\/]* | [A-Za-z]:[\\/]*) ;;
1009 absdir=`cd "$dir" && pwd`
1010 if test -z "$absdir"; then
1011 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1020 deplibs="$deplibs -L$dir"
1021 lib_search_path="$lib_search_path $dir"
1025 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1026 case :$dllsearchpath: in
1028 *) dllsearchpath="$dllsearchpath:$dir";;
1036 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1038 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1039 # These systems don't actually have a C or math library (as such)
1042 *-*-mingw* | *-*-os2*)
1043 # These systems don't actually have a C library (as such)
1044 test "X$arg" = "X-lc" && continue
1047 # Do not include libc due to us having libc/libc_r.
1048 test "X$arg" = "X-lc" && continue
1051 elif test "X$arg" = "X-lc_r"; then
1054 # Do not include libc_r directly, use -pthread flag.
1059 deplibs="$deplibs $arg"
1068 #### Local change for Sleepycat's Berkeley DB [#6117]:
1082 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1083 # The PATH hackery in wrapper scripts is required on Windows
1084 # in order for the loader to find any dlls it needs.
1085 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1086 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1089 *) no_install=yes ;;
1117 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1118 # We need an absolute path.
1120 [\\/]* | [A-Za-z]:[\\/]*) ;;
1122 $echo "$modename: only absolute run-paths are allowed" 1>&2
1128 *) xrpath="$xrpath $dir" ;;
1134 # The effects of -static are defined in a previous loop.
1135 # We used to do the same as -all-static on platforms that
1136 # didn't have a PIC flag, but the assumption that the effects
1137 # would be equivalent was wrong. It would break on at least
1138 # Digital Unix and AIX.
1153 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1155 save_ifs="$IFS"; IFS=','
1156 for flag in $args; do
1159 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1164 compiler_flags="$compiler_flags $flag"
1167 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1171 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1173 save_ifs="$IFS"; IFS=','
1174 for flag in $args; do
1177 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1182 compiler_flags="$compiler_flags $wl$flag"
1183 linker_flags="$linker_flags $flag"
1186 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1199 # Some other compiler flag.
1201 # Unknown arguments in both finalize_command and compile_command need
1202 # to be aesthetically quoted because they are evaled later.
1203 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1205 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1212 # A library or standard object.
1213 if test "$prev" = dlfiles; then
1214 # This file was specified with -dlopen.
1215 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1216 dlfiles="$dlfiles $arg"
1220 # If libtool objects are unsupported, then we need to preload.
1225 if test "$prev" = dlprefiles; then
1226 # Preload the old-style object.
1227 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1231 *.lo) libobjs="$libobjs $arg" ;;
1232 *) objs="$objs $arg" ;;
1239 deplibs="$deplibs $arg"
1240 old_deplibs="$old_deplibs $arg"
1245 # A libtool-controlled library.
1247 if test "$prev" = dlfiles; then
1248 # This library was specified with -dlopen.
1249 dlfiles="$dlfiles $arg"
1251 elif test "$prev" = dlprefiles; then
1252 # The library was specified with -dlpreopen.
1253 dlprefiles="$dlprefiles $arg"
1256 deplibs="$deplibs $arg"
1261 # Some other compiler argument.
1263 # Unknown arguments in both finalize_command and compile_command need
1264 # to be aesthetically quoted because they are evaled later.
1265 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1267 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1274 # Now actually substitute the argument into the commands.
1275 if test -n "$arg"; then
1276 compile_command="$compile_command $arg"
1277 finalize_command="$finalize_command $arg"
1279 done # argument parsing loop
1281 if test -n "$prev"; then
1282 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1287 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1288 eval arg=\"$export_dynamic_flag_spec\"
1289 compile_command="$compile_command $arg"
1290 finalize_command="$finalize_command $arg"
1293 # calculate the name of the file, without its directory
1294 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1295 libobjs_save="$libobjs"
1297 if test -n "$shlibpath_var"; then
1298 # get the directories listed in $shlibpath_var
1299 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1303 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1304 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1306 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1307 if test "X$output_objdir" = "X$output"; then
1308 output_objdir="$objdir"
1310 output_objdir="$output_objdir/$objdir"
1312 # Create the object directory.
1313 if test ! -d $output_objdir; then
1314 $show "$mkdir $output_objdir"
1315 $run $mkdir $output_objdir
1317 if test $status -ne 0 && test ! -d $output_objdir; then
1322 # Determine the type of output
1325 $echo "$modename: you must specify an output file" 1>&2
1329 *.$libext) linkmode=oldlib ;;
1330 *.lo | *.$objext) linkmode=obj ;;
1331 *.la) linkmode=lib ;;
1332 *) linkmode=prog ;; # Anything else should be a program.
1337 # Find all interdependent deplibs by searching for libraries
1338 # that are linked more than once (e.g. -la -lb -la)
1339 for deplib in $deplibs; do
1341 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1343 libs="$libs $deplib"
1348 need_relink=no # whether we're linking any uninstalled libtool libraries
1349 notinst_deplibs= # not-installed libtool libraries
1350 notinst_path= # paths that contain not-installed libtool libraries
1354 for file in $dlfiles $dlprefiles; do
1358 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1370 passes="conv scan dlopen dlpreopen link"
1375 for pass in $passes; do
1376 if test $linkmode = prog; then
1377 # Determine which files to process
1381 save_deplibs="$deplibs" # Collect dlpreopened libraries
1384 dlpreopen) libs="$dlprefiles" ;;
1385 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1388 for deplib in $libs; do
1393 if test $linkmode = oldlib && test $linkmode = obj; then
1394 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1397 if test $pass = conv; then
1398 deplibs="$deplib $deplibs"
1401 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1402 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1403 # Search the libtool library
1404 lib="$searchdir/lib${name}.la"
1405 if test -f "$lib"; then
1410 if test "$found" != yes; then
1411 # deplib doesn't seem to be a libtool library
1412 if test "$linkmode,$pass" = "prog,link"; then
1413 compile_deplibs="$deplib $compile_deplibs"
1414 finalize_deplibs="$deplib $finalize_deplibs"
1416 deplibs="$deplib $deplibs"
1417 test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1425 deplibs="$deplib $deplibs"
1426 test $pass = conv && continue
1427 newdependency_libs="$deplib $newdependency_libs"
1428 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1431 if test $pass = conv; then
1432 deplibs="$deplib $deplibs"
1435 if test $pass = scan; then
1436 deplibs="$deplib $deplibs"
1437 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1439 compile_deplibs="$deplib $compile_deplibs"
1440 finalize_deplibs="$deplib $finalize_deplibs"
1444 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1450 if test $pass = link; then
1451 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1452 # Make sure the xrpath contains only unique directories.
1455 *) xrpath="$xrpath $dir" ;;
1458 deplibs="$deplib $deplibs"
1461 *.la) lib="$deplib" ;;
1463 if test $pass = conv; then
1464 deplibs="$deplib $deplibs"
1469 if test "$deplibs_check_method" != pass_all; then
1471 echo "*** Warning: This library needs some functionality provided by $deplib."
1472 echo "*** I have the capability to make that library automatically link in when"
1473 echo "*** you link to this library. But I can only do this if you have a"
1474 echo "*** shared version of the library, which you do not appear to have."
1477 echo "*** Warning: Linking the shared library $output against the"
1478 echo "*** static library $deplib is not portable!"
1479 deplibs="$deplib $deplibs"
1484 if test $pass != link; then
1485 deplibs="$deplib $deplibs"
1487 compile_deplibs="$deplib $compile_deplibs"
1488 finalize_deplibs="$deplib $finalize_deplibs"
1495 if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1496 # If there is no dlopen support or we're linking statically,
1497 # we need to preload.
1498 newdlprefiles="$newdlprefiles $deplib"
1499 compile_deplibs="$deplib $compile_deplibs"
1500 finalize_deplibs="$deplib $finalize_deplibs"
1502 newdlfiles="$newdlfiles $deplib"
1511 if test $found = yes || test -f "$lib"; then :
1513 $echo "$modename: cannot find the library \`$lib'" 1>&2
1517 # Check to see that this really is a libtool archive.
1518 if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1520 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1524 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1525 test "X$ladir" = "X$lib" && ladir="."
1533 # If the library was installed with an old release of libtool,
1534 # it will not redefine variable installed.
1539 */* | *\\*) . $lib ;;
1543 if test "$linkmode,$pass" = "lib,link" ||
1544 test "$linkmode,$pass" = "prog,scan" ||
1545 { test $linkmode = oldlib && test $linkmode = obj; }; then
1546 # Add dl[pre]opened files of deplib
1547 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1548 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1551 if test $pass = conv; then
1552 # Only check for convenience libraries
1553 deplibs="$lib $deplibs"
1554 if test -z "$libdir"; then
1555 if test -z "$old_library"; then
1556 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1559 # It is a libtool convenience library, so add in its objects.
1560 convenience="$convenience $ladir/$objdir/$old_library"
1561 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1563 for deplib in $dependency_libs; do
1564 deplibs="$deplib $deplibs"
1565 case "$tmp_libs " in
1566 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1568 tmp_libs="$tmp_libs $deplib"
1570 elif test $linkmode != prog && test $linkmode != lib; then
1571 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1577 # Get the name of the library we link against.
1579 for l in $old_library $library_names; do
1582 if test -z "$linklib"; then
1583 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1587 # This library was specified with -dlopen.
1588 if test $pass = dlopen; then
1589 if test -z "$libdir"; then
1590 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1593 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1594 # If there is no dlname, no dlopen support or we're linking
1595 # statically, we need to preload.
1596 dlprefiles="$dlprefiles $lib"
1598 newdlfiles="$newdlfiles $lib"
1603 # We need an absolute path.
1605 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1607 abs_ladir=`cd "$ladir" && pwd`
1608 if test -z "$abs_ladir"; then
1609 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1610 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1615 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1617 # Find the relevant object directory and library name.
1618 if test "X$installed" = Xyes; then
1619 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1620 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1629 dir="$ladir/$objdir"
1630 absdir="$abs_ladir/$objdir"
1631 # Remove this search path later
1632 notinst_path="$notinst_path $abs_ladir"
1633 fi # $installed = yes
1634 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1636 # This library was specified with -dlpreopen.
1637 if test $pass = dlpreopen; then
1638 if test -z "$libdir"; then
1639 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1642 # Prefer using a static library (so that no silly _DYNAMIC symbols
1643 # are required to link).
1644 if test -n "$old_library"; then
1645 newdlprefiles="$newdlprefiles $dir/$old_library"
1646 # Otherwise, use the dlname, so that lt_dlopen finds it.
1647 elif test -n "$dlname"; then
1648 newdlprefiles="$newdlprefiles $dir/$dlname"
1650 newdlprefiles="$newdlprefiles $dir/$linklib"
1652 fi # $pass = dlpreopen
1654 if test -z "$libdir"; then
1655 # Link the convenience library
1656 if test $linkmode = lib; then
1657 deplibs="$dir/$old_library $deplibs"
1658 elif test "$linkmode,$pass" = "prog,link"; then
1659 compile_deplibs="$dir/$old_library $compile_deplibs"
1660 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1662 deplibs="$lib $deplibs"
1667 if test $linkmode = prog && test $pass != link; then
1668 newlib_search_path="$newlib_search_path $ladir"
1669 deplibs="$lib $deplibs"
1672 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1673 test "$build_libtool_libs" = no; then
1678 for deplib in $dependency_libs; do
1680 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1682 # Need to link against all dependency_libs?
1683 if test $linkalldeplibs = yes; then
1684 deplibs="$deplib $deplibs"
1686 # Need to hardcode shared library paths
1687 # or/and link against static libraries
1688 newdependency_libs="$deplib $newdependency_libs"
1690 case "$tmp_libs " in
1691 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1693 tmp_libs="$tmp_libs $deplib"
1696 fi # $linkmode = prog...
1698 link_static=no # Whether the deplib will be linked statically
1699 if test -n "$library_names" &&
1700 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1701 # Link against this shared library
1703 if test "$linkmode,$pass" = "prog,link" ||
1704 { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
1705 # Hardcode the library path.
1706 # Skip directories that are in the system default run-time
1708 case " $sys_lib_dlsearch_path " in
1711 case "$compile_rpath " in
1713 *) compile_rpath="$compile_rpath $absdir"
1717 case " $sys_lib_dlsearch_path " in
1720 case "$finalize_rpath " in
1722 *) finalize_rpath="$finalize_rpath $libdir"
1726 if test $linkmode = prog; then
1727 # We need to hardcode the library path
1728 if test -n "$shlibpath_var"; then
1729 # Make sure the rpath contains only unique directories.
1730 case "$temp_rpath " in
1733 *) temp_rpath="$temp_rpath $dir" ;;
1737 fi # $linkmode,$pass = prog,link...
1739 if test "$alldeplibs" = yes &&
1740 { test "$deplibs_check_method" = pass_all ||
1741 { test "$build_libtool_libs" = yes &&
1742 test -n "$library_names"; }; }; then
1743 # We only need to search for static libraries
1747 if test "$installed" = no; then
1748 notinst_deplibs="$notinst_deplibs $lib"
1752 if test -n "$old_archive_from_expsyms_cmds"; then
1753 # figure out the soname
1754 set dummy $library_names
1757 libname=`eval \\$echo \"$libname_spec\"`
1758 # use dlname if we got it. it's perfectly good, no?
1759 if test -n "$dlname"; then
1761 elif test -n "$soname_spec"; then
1765 major=`expr $current - $age`
1769 eval soname=\"$soname_spec\"
1774 # Make a new name for the extract_expsyms_cmds to use
1776 soname=`echo $soroot | sed -e 's/^.*\///'`
1777 newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
1779 # If the library has no export list, then create one now
1780 if test -f "$output_objdir/$soname-def"; then :
1782 $show "extracting exported symbol list from \`$soname'"
1783 save_ifs="$IFS"; IFS='~'
1784 eval cmds=\"$extract_expsyms_cmds\"
1785 for cmd in $cmds; do
1788 $run eval "$cmd" || exit $?
1794 if test -f "$output_objdir/$newlib"; then :; else
1795 $show "generating import library for \`$soname'"
1796 save_ifs="$IFS"; IFS='~'
1797 eval cmds=\"$old_archive_from_expsyms_cmds\"
1798 for cmd in $cmds; do
1801 $run eval "$cmd" || exit $?
1805 # make sure the library variables are pointing to the new library
1808 fi # test -n $old_archive_from_expsyms_cmds
1810 if test $linkmode = prog || test "$mode" != relink; then
1815 case $hardcode_action in
1816 immediate | unsupported)
1817 if test "$hardcode_direct" = no; then
1819 elif test "$hardcode_minus_L" = no; then
1821 *-*-sunos*) add_shlibpath="$dir" ;;
1825 elif test "$hardcode_shlibpath_var" = no; then
1826 add_shlibpath="$dir"
1833 if test "$hardcode_direct" = yes; then
1835 elif test "$hardcode_minus_L" = yes; then
1838 elif test "$hardcode_shlibpath_var" = yes; then
1839 add_shlibpath="$dir"
1848 if test "$lib_linked" != yes; then
1849 $echo "$modename: configuration error: unsupported hardcode properties"
1853 if test -n "$add_shlibpath"; then
1854 case :$compile_shlibpath: in
1855 *":$add_shlibpath:"*) ;;
1856 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1859 if test $linkmode = prog; then
1860 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1861 test -n "$add" && compile_deplibs="$add $compile_deplibs"
1863 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1864 test -n "$add" && deplibs="$add $deplibs"
1865 if test "$hardcode_direct" != yes && \
1866 test "$hardcode_minus_L" != yes && \
1867 test "$hardcode_shlibpath_var" = yes; then
1868 case :$finalize_shlibpath: in
1870 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1876 if test $linkmode = prog || test "$mode" = relink; then
1880 # Finalize command for both is simple: just hardcode it.
1881 if test "$hardcode_direct" = yes; then
1882 add="$libdir/$linklib"
1883 elif test "$hardcode_minus_L" = yes; then
1886 elif test "$hardcode_shlibpath_var" = yes; then
1887 case :$finalize_shlibpath: in
1889 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1893 # We cannot seem to hardcode it, guess we'll fake it.
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 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.
2224 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2226 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2227 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2233 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2235 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2236 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2242 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
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 case $version_type in
2347 # we can't check for "0.0" in archive_cmds due to quoting
2348 # problems, so we reset it completely
2355 if test "$need_version" = no; then
2362 # Remove version info from name if versioning should be avoided
2363 if test "$avoid_version" = yes && test "$need_version" = no; then
2369 # Check to see if the archive will have undefined symbols.
2370 if test "$allow_undefined" = yes; then
2371 if test "$allow_undefined_flag" = unsupported; then
2372 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2373 build_libtool_libs=no
2377 # Don't allow undefined symbols.
2378 allow_undefined_flag="$no_undefined_flag"
2382 if test "$mode" != relink; then
2383 # Remove our outputs.
2384 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2385 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2388 # Now set the variables for building old libraries.
2389 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2390 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2392 # Transform .lo files to .o files.
2393 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2396 # Eliminate all temporary directories.
2397 for path in $notinst_path; do
2398 lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2399 deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2400 dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2403 if test -n "$xrpath"; then
2404 # If the user specified any rpath flags, then add them.
2406 for libdir in $xrpath; do
2407 temp_xrpath="$temp_xrpath -R$libdir"
2408 case "$finalize_rpath " in
2410 *) finalize_rpath="$finalize_rpath $libdir" ;;
2413 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2414 dependency_libs="$temp_xrpath $dependency_libs"
2418 # Make sure dlfiles contains only unique files that won't be dlpreopened
2419 old_dlfiles="$dlfiles"
2421 for lib in $old_dlfiles; do
2422 case " $dlprefiles $dlfiles " in
2424 *) dlfiles="$dlfiles $lib" ;;
2428 # Make sure dlprefiles contains only unique files
2429 old_dlprefiles="$dlprefiles"
2431 for lib in $old_dlprefiles; do
2432 case "$dlprefiles " in
2434 *) dlprefiles="$dlprefiles $lib" ;;
2438 if test "$build_libtool_libs" = yes; then
2439 if test -n "$rpath"; then
2441 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2442 # these systems don't actually have a c library (as such)!
2444 *-*-rhapsody* | *-*-darwin1.[012])
2445 # Rhapsody C library is in the System framework
2446 deplibs="$deplibs -framework System"
2449 # Don't link with libc until the a.out ld.so is fixed.
2452 # Do not include libc due to us having libc/libc_r.
2454 #### Local change for Sleepycat's Berkeley DB [#2380]:
2455 # FreeBSD, like OpenBSD, uses libc/libc_r and should not
2456 # link against libc/c_r explicitly; the -pthread linker flag
2457 # implicitly controls use of -lc and -lc_r.
2459 # Do not include libc due to us having libc/libc_r.
2462 # Add libc to deplibs on all other systems if necessary.
2463 if test $build_libtool_need_lc = "yes"; then
2464 deplibs="$deplibs -lc"
2470 # Transform deplibs into only deplibs that can be linked in shared.
2472 libname_save=$libname
2473 release_save=$release
2474 versuffix_save=$versuffix
2476 # I'm not sure if I'm treating the release correctly. I think
2477 # release should show up in the -l (ie -lgmp5) so we don't want to
2478 # add it in twice. Is that correct?
2484 case $deplibs_check_method in
2486 # Don't check for shared/static. Everything works.
2487 # This might be a little naive. We might want to check
2488 # whether the library exists or not. But this is on
2489 # osf3 & osf4 and I'm not really sure... Just
2490 # implementing what was already the behaviour.
2494 # This code stresses the "libraries are programs" paradigm to its
2495 # limits. Maybe even breaks it. We compile a program, linking it
2496 # against the deplibs as a proxy for the library. Then we can check
2497 # whether they linked in statically or dynamically with ldd.
2499 cat > conftest.c <<EOF
2500 int main() { return 0; }
2503 $CC -o conftest conftest.c $deplibs
2504 if test $? -eq 0 ; then
2505 ldd_output=`ldd conftest`
2506 for i in $deplibs; do
2507 name="`expr $i : '-l\(.*\)'`"
2508 # If $name is empty we are operating on a -L argument.
2509 if test -n "$name" && test "$name" != "0"; then
2510 libname=`eval \\$echo \"$libname_spec\"`
2511 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2512 set dummy $deplib_matches
2514 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2515 newdeplibs="$newdeplibs $i"
2519 echo "*** Warning: This library needs some functionality provided by $i."
2520 echo "*** I have the capability to make that library automatically link in when"
2521 echo "*** you link to this library. But I can only do this if you have a"
2522 echo "*** shared version of the library, which you do not appear to have."
2525 newdeplibs="$newdeplibs $i"
2529 # Error occured in the first compile. Let's try to salvage the situation:
2530 # Compile a seperate program for each library.
2531 for i in $deplibs; do
2532 name="`expr $i : '-l\(.*\)'`"
2533 # If $name is empty we are operating on a -L argument.
2534 if test -n "$name" && test "$name" != "0"; then
2536 $CC -o conftest conftest.c $i
2538 if test $? -eq 0 ; then
2539 ldd_output=`ldd conftest`
2540 libname=`eval \\$echo \"$libname_spec\"`
2541 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2542 set dummy $deplib_matches
2544 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2545 newdeplibs="$newdeplibs $i"
2549 echo "*** Warning: This library needs some functionality provided by $i."
2550 echo "*** I have the capability to make that library automatically link in when"
2551 echo "*** you link to this library. But I can only do this if you have a"
2552 echo "*** shared version of the library, which you do not appear to have."
2557 echo "*** Warning! Library $i is needed by this library but I was not able to"
2558 echo "*** make it link in! You will probably need to install it or some"
2559 echo "*** library that it depends on before this library will be fully"
2560 echo "*** functional. Installing it before continuing would be even better."
2563 newdeplibs="$newdeplibs $i"
2569 set dummy $deplibs_check_method
2570 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2571 for a_deplib in $deplibs; do
2572 name="`expr $a_deplib : '-l\(.*\)'`"
2573 # If $name is empty we are operating on a -L argument.
2574 if test -n "$name" && test "$name" != "0"; then
2575 libname=`eval \\$echo \"$libname_spec\"`
2576 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2577 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2578 for potent_lib in $potential_libs; do
2579 # Follow soft links.
2580 if ls -lLd "$potent_lib" 2>/dev/null \
2581 | grep " -> " >/dev/null; then
2584 # The statement above tries to avoid entering an
2585 # endless loop below, in case of cyclic links.
2586 # We might still enter an endless loop, since a link
2587 # loop can be closed while we follow links,
2589 potlib="$potent_lib"
2590 while test -h "$potlib" 2>/dev/null; do
2591 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2593 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2594 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2597 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2599 | egrep "$file_magic_regex" > /dev/null; then
2600 newdeplibs="$newdeplibs $a_deplib"
2606 if test -n "$a_deplib" ; then
2609 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2610 echo "*** I have the capability to make that library automatically link in when"
2611 echo "*** you link to this library. But I can only do this if you have a"
2612 echo "*** shared version of the library, which you do not appear to have."
2615 # Add a -L argument.
2616 newdeplibs="$newdeplibs $a_deplib"
2618 done # Gone through all deplibs.
2621 set dummy $deplibs_check_method
2622 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2623 for a_deplib in $deplibs; do
2624 name="`expr $a_deplib : '-l\(.*\)'`"
2625 # If $name is empty we are operating on a -L argument.
2626 if test -n "$name" && test "$name" != "0"; then
2627 libname=`eval \\$echo \"$libname_spec\"`
2628 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2629 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2630 for potent_lib in $potential_libs; do
2631 if eval echo \"$potent_lib\" 2>/dev/null \
2633 | egrep "$match_pattern_regex" > /dev/null; then
2634 newdeplibs="$newdeplibs $a_deplib"
2640 if test -n "$a_deplib" ; then
2643 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2644 echo "*** I have the capability to make that library automatically link in when"
2645 echo "*** you link to this library. But I can only do this if you have a"
2646 echo "*** shared version of the library, which you do not appear to have."
2649 # Add a -L argument.
2650 newdeplibs="$newdeplibs $a_deplib"
2652 done # Gone through all deplibs.
2656 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2657 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2658 grep . >/dev/null; then
2660 if test "X$deplibs_check_method" = "Xnone"; then
2661 echo "*** Warning: inter-library dependencies are not supported in this platform."
2663 echo "*** Warning: inter-library dependencies are not known to be supported."
2665 echo "*** All declared inter-library dependencies are being dropped."
2670 versuffix=$versuffix_save
2672 release=$release_save
2673 libname=$libname_save
2677 *-*-rhapsody* | *-*-darwin1.[012])
2678 # On Rhapsody replace the C library is the System framework
2679 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2683 if test "$droppeddeps" = yes; then
2684 if test "$module" = yes; then
2686 echo "*** Warning: libtool could not satisfy all declared inter-library"
2687 echo "*** dependencies of module $libname. Therefore, libtool will create"
2688 echo "*** a static module, that should work as long as the dlopening"
2689 echo "*** application is linked with the -dlopen flag."
2690 if test -z "$global_symbol_pipe"; then
2692 echo "*** However, this would only work if libtool was able to extract symbol"
2693 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2694 echo "*** not find such a program. So, this module is probably useless."
2695 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2697 if test "$build_old_libs" = no; then
2698 oldlibs="$output_objdir/$libname.$libext"
2699 build_libtool_libs=module
2702 build_libtool_libs=no
2705 echo "*** The inter-library dependencies that have been dropped here will be"
2706 echo "*** automatically added whenever a program is linked with this library"
2707 echo "*** or is declared to -dlopen it."
2709 if test $allow_undefined = no; then
2711 echo "*** Since this library must not contain undefined symbols,"
2712 echo "*** because either the platform does not support them or"
2713 echo "*** it was explicitly requested with -no-undefined,"
2714 echo "*** libtool will only create a static version of it."
2715 if test "$build_old_libs" = no; then
2716 oldlibs="$output_objdir/$libname.$libext"
2717 build_libtool_libs=module
2720 build_libtool_libs=no
2725 # Done checking deplibs!
2729 # All the library-specific variables (install_libdir is set above).
2734 # Test again, we may have decided not to build it any more
2735 if test "$build_libtool_libs" = yes; then
2736 if test $hardcode_into_libs = yes; then
2737 # Hardcode the library paths
2740 rpath="$finalize_rpath"
2741 test "$mode" != relink && rpath="$compile_rpath$rpath"
2742 for libdir in $rpath; do
2743 if test -n "$hardcode_libdir_flag_spec"; then
2744 if test -n "$hardcode_libdir_separator"; then
2745 if test -z "$hardcode_libdirs"; then
2746 hardcode_libdirs="$libdir"
2748 # Just accumulate the unique libdirs.
2749 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2750 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2753 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2758 eval flag=\"$hardcode_libdir_flag_spec\"
2759 dep_rpath="$dep_rpath $flag"
2761 elif test -n "$runpath_var"; then
2762 case "$perm_rpath " in
2764 *) perm_rpath="$perm_rpath $libdir" ;;
2768 # Substitute the hardcoded libdirs into the rpath.
2769 if test -n "$hardcode_libdir_separator" &&
2770 test -n "$hardcode_libdirs"; then
2771 libdir="$hardcode_libdirs"
2772 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
2774 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2775 # We should set the runpath_var.
2777 for dir in $perm_rpath; do
2780 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2782 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
2785 shlibpath="$finalize_shlibpath"
2786 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
2787 if test -n "$shlibpath"; then
2788 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2791 # Get the real and link names of the library.
2792 eval library_names=\"$library_names_spec\"
2793 set dummy $library_names
2797 if test -n "$soname_spec"; then
2798 eval soname=\"$soname_spec\"
2802 test -z "$dlname" && dlname=$soname
2804 lib="$output_objdir/$realname"
2807 linknames="$linknames $link"
2810 # Ensure that we have .o objects for linkers which dislike .lo
2811 # (e.g. aix) in case we are running --disable-static
2812 for obj in $libobjs; do
2813 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2814 if test "X$xdir" = "X$obj"; then
2819 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2820 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2821 if test ! -f $xdir/$oldobj; then
2822 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2823 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2827 # Use standard objects if they are pic
2828 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2830 # Prepare the list of exported symbols
2831 if test -z "$export_symbols"; then
2832 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2833 $show "generating symbol list for \`$libname.la'"
2834 export_symbols="$output_objdir/$libname.exp"
2835 $run $rm $export_symbols
2836 eval cmds=\"$export_symbols_cmds\"
2837 save_ifs="$IFS"; IFS='~'
2838 for cmd in $cmds; do
2841 $run eval "$cmd" || exit $?
2844 if test -n "$export_symbols_regex"; then
2845 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2846 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2847 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2848 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2853 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2854 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2857 if test -n "$convenience"; then
2858 if test -n "$whole_archive_flag_spec"; then
2859 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2861 gentop="$output_objdir/${outputname}x"
2862 $show "${rm}r $gentop"
2863 $run ${rm}r "$gentop"
2864 $show "mkdir $gentop"
2865 $run mkdir "$gentop"
2867 if test $status -ne 0 && test ! -d "$gentop"; then
2870 generated="$generated $gentop"
2872 for xlib in $convenience; do
2873 # Extract the objects.
2875 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2876 *) xabs=`pwd`"/$xlib" ;;
2878 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2879 xdir="$gentop/$xlib"
2881 $show "${rm}r $xdir"
2886 if test $status -ne 0 && test ! -d "$xdir"; then
2889 $show "(cd $xdir && $AR x $xabs)"
2890 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2892 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2897 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2898 eval flag=\"$thread_safe_flag_spec\"
2899 linker_flags="$linker_flags $flag"
2902 # Make a backup of the uninstalled library when relinking
2903 if test "$mode" = relink; then
2904 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
2907 # Do each of the archive commands.
2908 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2909 eval cmds=\"$archive_expsym_cmds\"
2911 eval cmds=\"$archive_cmds\"
2913 save_ifs="$IFS"; IFS='~'
2914 for cmd in $cmds; do
2917 $run eval "$cmd" || exit $?
2921 # Restore the uninstalled library and exit
2922 if test "$mode" = relink; then
2923 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
2927 # Create links to the real library.
2928 for linkname in $linknames; do
2929 if test "$realname" != "$linkname"; then
2930 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2931 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2935 # If -module or -export-dynamic was specified, set the dlname.
2936 if test "$module" = yes || test "$export_dynamic" = yes; then
2937 # On all known operating systems, these are identical.
2944 if test -n "$deplibs"; then
2945 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2948 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2949 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2952 if test -n "$rpath"; then
2953 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2956 if test -n "$xrpath"; then
2957 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2960 if test -n "$vinfo"; then
2961 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2964 if test -n "$release"; then
2965 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2970 if test -n "$objs$old_deplibs"; then
2971 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2975 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2983 # Delete the old objects.
2984 $run $rm $obj $libobj
2986 # Objects from convenience libraries. This assumes
2987 # single-version convenience libraries. Whenever we create
2988 # different ones for PIC/non-PIC, this we'll have to duplicate
2992 # reload_cmds runs $LD directly, so let us get rid of
2993 # -Wl from whole_archive_flag_spec
2996 if test -n "$convenience"; then
2997 if test -n "$whole_archive_flag_spec"; then
2998 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3000 gentop="$output_objdir/${obj}x"
3001 $show "${rm}r $gentop"
3002 $run ${rm}r "$gentop"
3003 $show "mkdir $gentop"
3004 $run mkdir "$gentop"
3006 if test $status -ne 0 && test ! -d "$gentop"; then
3009 generated="$generated $gentop"
3011 for xlib in $convenience; do
3012 # Extract the objects.
3014 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3015 *) xabs=`pwd`"/$xlib" ;;
3017 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3018 xdir="$gentop/$xlib"
3020 $show "${rm}r $xdir"
3025 if test $status -ne 0 && test ! -d "$xdir"; then
3028 $show "(cd $xdir && $AR x $xabs)"
3029 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3031 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3036 # Create the old-style object.
3037 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
3040 eval cmds=\"$reload_cmds\"
3041 save_ifs="$IFS"; IFS='~'
3042 for cmd in $cmds; do
3045 $run eval "$cmd" || exit $?
3049 # Exit if we aren't doing a library object file.
3050 if test -z "$libobj"; then
3051 if test -n "$gentop"; then
3052 $show "${rm}r $gentop"
3059 if test "$build_libtool_libs" != yes; then
3060 if test -n "$gentop"; then
3061 $show "${rm}r $gentop"
3065 # Create an invalid libtool object if no PIC, so that we don't
3066 # accidentally link it into a program.
3067 $show "echo timestamp > $libobj"
3068 $run eval "echo timestamp > $libobj" || exit $?
3072 if test -n "$pic_flag" || test "$pic_mode" != default; then
3073 # Only do commands if we really have different PIC objects.
3074 reload_objs="$libobjs $reload_conv_objs"
3076 eval cmds=\"$reload_cmds\"
3077 save_ifs="$IFS"; IFS='~'
3078 for cmd in $cmds; do
3081 $run eval "$cmd" || exit $?
3085 # Just create a symlink.
3088 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3089 if test "X$xdir" = "X$libobj"; then
3094 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3095 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3096 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3097 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3100 if test -n "$gentop"; then
3101 $show "${rm}r $gentop"
3110 *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3112 if test -n "$vinfo"; then
3113 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3116 if test -n "$release"; then
3117 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3120 if test "$preload" = yes; then
3121 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3122 test "$dlopen_self_static" = unknown; then
3123 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3128 *-*-rhapsody* | *-*-darwin1.[012])
3129 # On Rhapsody replace the C library is the System framework
3130 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3131 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3135 compile_command="$compile_command $compile_deplibs"
3136 finalize_command="$finalize_command $finalize_deplibs"
3138 if test -n "$rpath$xrpath"; then
3139 # If the user specified any rpath flags, then add them.
3140 for libdir in $rpath $xrpath; do
3141 # This is the magic to use -rpath.
3142 case "$finalize_rpath " in
3144 *) finalize_rpath="$finalize_rpath $libdir" ;;
3149 # Now hardcode the library paths
3152 for libdir in $compile_rpath $finalize_rpath; do
3153 if test -n "$hardcode_libdir_flag_spec"; then
3154 if test -n "$hardcode_libdir_separator"; then
3155 if test -z "$hardcode_libdirs"; then
3156 hardcode_libdirs="$libdir"
3158 # Just accumulate the unique libdirs.
3159 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3160 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3163 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3168 eval flag=\"$hardcode_libdir_flag_spec\"
3169 rpath="$rpath $flag"
3171 elif test -n "$runpath_var"; then
3172 case "$perm_rpath " in
3174 *) perm_rpath="$perm_rpath $libdir" ;;
3178 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3179 case :$dllsearchpath: in
3181 *) dllsearchpath="$dllsearchpath:$libdir";;
3186 # Substitute the hardcoded libdirs into the rpath.
3187 if test -n "$hardcode_libdir_separator" &&
3188 test -n "$hardcode_libdirs"; then
3189 libdir="$hardcode_libdirs"
3190 eval rpath=\" $hardcode_libdir_flag_spec\"
3192 compile_rpath="$rpath"
3196 for libdir in $finalize_rpath; do
3197 if test -n "$hardcode_libdir_flag_spec"; then
3198 if test -n "$hardcode_libdir_separator"; then
3199 if test -z "$hardcode_libdirs"; then
3200 hardcode_libdirs="$libdir"
3202 # Just accumulate the unique libdirs.
3203 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3204 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3207 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3212 eval flag=\"$hardcode_libdir_flag_spec\"
3213 rpath="$rpath $flag"
3215 elif test -n "$runpath_var"; then
3216 case "$finalize_perm_rpath " in
3218 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3222 # Substitute the hardcoded libdirs into the rpath.
3223 if test -n "$hardcode_libdir_separator" &&
3224 test -n "$hardcode_libdirs"; then
3225 libdir="$hardcode_libdirs"
3226 eval rpath=\" $hardcode_libdir_flag_spec\"
3228 finalize_rpath="$rpath"
3230 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3231 # Transform all the library objects into standard objects.
3232 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3233 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3237 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3238 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3239 dlsyms="${outputname}S.c"
3241 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3245 if test -n "$dlsyms"; then
3249 # Discover the nlist of each of the dlfiles.
3250 nlist="$output_objdir/${outputname}.nm"
3252 $show "$rm $nlist ${nlist}S ${nlist}T"
3253 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3255 # Parse the name list into a source file.
3256 $show "creating $output_objdir/$dlsyms"
3258 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3259 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3260 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3266 /* Prevent the only kind of declaration conflicts we can make. */
3267 #define lt_preloaded_symbols some_other_symbol
3269 /* External symbol declarations for the compiler. */\
3272 if test "$dlself" = yes; then
3273 $show "generating symbol list for \`$output'"
3275 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3277 # Add our own program objects to the symbol list.
3278 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3279 for arg in $progfiles; do
3280 $show "extracting global C symbols from \`$arg'"
3281 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3284 if test -n "$exclude_expsyms"; then
3285 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3286 $run eval '$mv "$nlist"T "$nlist"'
3289 if test -n "$export_symbols_regex"; then
3290 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3291 $run eval '$mv "$nlist"T "$nlist"'
3294 # Prepare the list of exported symbols
3295 if test -z "$export_symbols"; then
3296 export_symbols="$output_objdir/$output.exp"
3297 $run $rm $export_symbols
3298 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3300 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3301 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3302 $run eval 'mv "$nlist"T "$nlist"'
3306 for arg in $dlprefiles; do
3307 $show "extracting global C symbols from \`$arg'"
3308 name=`echo "$arg" | sed -e 's%^.*/%%'`
3309 $run eval 'echo ": $name " >> "$nlist"'
3310 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3313 if test -z "$run"; then
3314 # Make sure we have at least an empty file.
3315 test -f "$nlist" || : > "$nlist"
3317 if test -n "$exclude_expsyms"; then
3318 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3319 $mv "$nlist"T "$nlist"
3322 # Try sorting and uniquifying the output.
3323 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3326 grep -v "^: " < "$nlist" > "$nlist"S
3329 if test -f "$nlist"S; then
3330 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3332 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3335 $echo >> "$output_objdir/$dlsyms" "\
3337 #undef lt_preloaded_symbols
3339 #if defined (__STDC__) && __STDC__
3340 # define lt_ptr void *
3342 # define lt_ptr char *
3346 /* The mapping between symbol names and symbols. */
3351 lt_preloaded_symbols[] =
3355 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
3357 $echo >> "$output_objdir/$dlsyms" "\
3361 /* This works around a problem in FreeBSD linker */
3362 #ifdef FREEBSD_WORKAROUND
3363 static const void *lt_preloaded_setup() {
3364 return lt_preloaded_symbols;
3374 pic_flag_for_symtable=
3376 # compiling the symbol table file with pic_flag works around
3377 # a FreeBSD bug that causes programs to crash when -lm is
3378 # linked before any other PIC object. But we must not use
3379 # pic_flag when linking with -static. The problem exists in
3380 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3381 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3382 case "$compile_command " in
3384 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3387 case "$compile_command " in
3389 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3393 # Now compile the dynamic symbol file.
3394 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3395 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3397 # Clean up the generated files.
3398 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3399 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3401 # Transform the symbol file into the correct name.
3402 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3403 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3406 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3411 # We keep going just in case the user didn't refer to
3412 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3413 # really was required.
3415 # Nullify the symbol file.
3416 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3417 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3420 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3421 # Replace the output file specification.
3422 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3423 link_command="$compile_command$compile_rpath"
3425 # We have no uninstalled library dependencies, so finalize right now.
3426 $show "$link_command"
3427 $run eval "$link_command"
3430 # Delete the generated files.
3431 if test -n "$dlsyms"; then
3432 $show "$rm $output_objdir/${outputname}S.${objext}"
3433 $run $rm "$output_objdir/${outputname}S.${objext}"
3439 if test -n "$shlibpath_var"; then
3440 # We should set the shlibpath_var
3442 for dir in $temp_rpath; do
3444 [\\/]* | [A-Za-z]:[\\/]*)
3449 # Relative path: add a thisdir entry.
3450 rpath="$rpath\$thisdir/$dir:"
3457 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3458 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3460 if test -n "$finalize_shlibpath"; then
3461 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3466 if test -n "$runpath_var"; then
3467 if test -n "$perm_rpath"; then
3468 # We should set the runpath_var.
3470 for dir in $perm_rpath; do
3473 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3475 if test -n "$finalize_perm_rpath"; then
3476 # We should set the runpath_var.
3478 for dir in $finalize_perm_rpath; do
3481 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3485 if test "$no_install" = yes; then
3486 # We don't need to create a wrapper script.
3487 link_command="$compile_var$compile_command$compile_rpath"
3488 # Replace the output file specification.
3489 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3490 # Delete the old output file.
3492 # Link the executable and exit
3493 $show "$link_command"
3494 $run eval "$link_command" || exit $?
3498 if test "$hardcode_action" = relink; then
3499 # Fast installation is not supported
3500 link_command="$compile_var$compile_command$compile_rpath"
3501 relink_command="$finalize_var$finalize_command$finalize_rpath"
3503 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3504 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3506 if test "$fast_install" != no; then
3507 link_command="$finalize_var$compile_command$finalize_rpath"
3508 if test "$fast_install" = yes; then
3509 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3511 # fast_install is set to needless
3515 link_command="$compile_var$compile_command$compile_rpath"
3516 relink_command="$finalize_var$finalize_command$finalize_rpath"
3520 # Replace the output file specification.
3521 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3523 # Delete the old output files.
3524 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3526 $show "$link_command"
3527 $run eval "$link_command" || exit $?
3529 # Now create the wrapper script.
3530 $show "creating $output"
3532 # Quote the relink command for shipping.
3533 if test -n "$relink_command"; then
3534 # Preserve any variables that may affect compiler behavior
3535 for var in $variables_saved_for_relink; do
3536 if eval test -z \"\${$var+set}\"; then
3537 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3538 elif eval var_value=\$$var; test -z "$var_value"; then
3539 relink_command="$var=; export $var; $relink_command"
3541 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3542 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3545 relink_command="cd `pwd`; $relink_command"
3546 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3549 # Quote $echo for shipping.
3550 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3552 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3553 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3555 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3557 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3560 # Only actually do things if our run command is non-null.
3561 if test -z "$run"; then
3562 # win32 will think the script is a binary if it has
3563 # a .exe suffix, so we strip it off here.
3565 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3567 # test for cygwin because mv fails w/o .exe extensions
3569 *cygwin*) exeext=.exe ;;
3573 trap "$rm $output; exit 1" 1 2 15
3578 # $output - temporary wrapper script for $objdir/$outputname
3579 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3581 # The $output program cannot be directly executed until all the libtool
3582 # libraries that it depends on are installed.
3584 # This wrapper script should never be moved out of the build directory.
3585 # If it is, it will not operate correctly.
3587 # Sed substitution that helps us do robust quoting. It backslashifies
3588 # metacharacters that are still active within double-quoted strings.
3589 Xsed='sed -e 1s/^X//'
3590 sed_quote_subst='$sed_quote_subst'
3592 # The HP-UX ksh and POSIX shell print the target directory to stdout
3594 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3596 relink_command=\"$relink_command\"
3598 # This environment variable determines our operation mode.
3599 if test \"\$libtool_install_magic\" = \"$magic\"; then
3600 # install mode needs the following variable:
3601 notinst_deplibs='$notinst_deplibs'
3603 # When we are sourced in execute mode, \$file and \$echo are already set.
3604 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3607 # Make sure echo works.
3608 if test \"X\$1\" = X--no-reexec; then
3609 # Discard the --no-reexec flag, and continue.
3611 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3612 # Yippee, \$echo works!
3615 # Restart under the correct shell, and then maybe \$echo will work.
3616 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3622 # Find the directory that this script lives in.
3623 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3624 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3626 # Follow symbolic links until we get to the real thisdir.
3627 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3628 while test -n \"\$file\"; do
3629 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3631 # If there was a directory component, then change thisdir.
3632 if test \"x\$destdir\" != \"x\$file\"; then
3633 case \"\$destdir\" in
3634 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3635 *) thisdir=\"\$thisdir/\$destdir\" ;;
3639 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3640 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
3643 # Try to get the absolute directory name.
3644 absdir=\`cd \"\$thisdir\" && pwd\`
3645 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3648 if test "$fast_install" = yes; then
3650 program=lt-'$outputname'$exeext
3651 progdir=\"\$thisdir/$objdir\"
3653 if test ! -f \"\$progdir/\$program\" || \\
3654 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
3655 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3657 file=\"\$\$-\$program\"
3659 if test ! -d \"\$progdir\"; then
3660 $mkdir \"\$progdir\"
3662 $rm \"\$progdir/\$file\"
3667 # relink executable if necessary
3668 if test -n \"\$relink_command\"; then
3669 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3671 $echo \"\$relink_command_output\" >&2
3672 $rm \"\$progdir/\$file\"
3677 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3678 { $rm \"\$progdir/\$program\";
3679 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3680 $rm \"\$progdir/\$file\"
3684 program='$outputname'
3685 progdir=\"\$thisdir/$objdir\"
3691 if test -f \"\$progdir/\$program\"; then"
3693 # Export our shlibpath_var if we have one.
3694 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3696 # Add our own library path to $shlibpath_var
3697 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3699 # Some systems cannot cope with colon-terminated $shlibpath_var
3700 # The second colon is a workaround for a bug in BeOS R4 sed
3701 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3703 export $shlibpath_var
3707 # fixup the dll searchpath if we need to.
3708 if test -n "$dllsearchpath"; then
3710 # Add the dll search path components to the executable PATH
3711 PATH=$dllsearchpath:\$PATH
3716 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3717 # Run the actual program with our arguments.
3720 # win32 systems need to use the prog path for dll
3722 *-*-cygwin* | *-*-pw32*)
3724 exec \$progdir/\$program \${1+\"\$@\"}
3728 # Backslashes separate directories on plain windows
3729 *-*-mingw | *-*-os2*)
3731 exec \$progdir\\\\\$program \${1+\"\$@\"}
3737 # Export the path to the program.
3738 PATH=\"\$progdir:\$PATH\"
3741 exec \$program \${1+\"\$@\"}
3746 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3750 # The program doesn't exist.
3751 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3752 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3753 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3764 # See if we need to build an old-fashioned archive.
3765 for oldlib in $oldlibs; do
3767 if test "$build_libtool_libs" = convenience; then
3768 oldobjs="$libobjs_save"
3769 addlibs="$convenience"
3770 build_libtool_libs=no
3772 if test "$build_libtool_libs" = module; then
3773 oldobjs="$libobjs_save"
3774 build_libtool_libs=no
3776 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3778 addlibs="$old_convenience"
3781 if test -n "$addlibs"; then
3782 gentop="$output_objdir/${outputname}x"
3783 $show "${rm}r $gentop"
3784 $run ${rm}r "$gentop"
3785 $show "mkdir $gentop"
3786 $run mkdir "$gentop"
3788 if test $status -ne 0 && test ! -d "$gentop"; then
3791 generated="$generated $gentop"
3793 # Add in members from convenience archives.
3794 for xlib in $addlibs; do
3795 # Extract the objects.
3797 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3798 *) xabs=`pwd`"/$xlib" ;;
3800 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3801 xdir="$gentop/$xlib"
3803 $show "${rm}r $xdir"
3808 if test $status -ne 0 && test ! -d "$xdir"; then
3811 $show "(cd $xdir && $AR x $xabs)"
3812 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3814 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3818 # Do each command in the archive commands.
3819 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3820 eval cmds=\"$old_archive_from_new_cmds\"
3822 # Ensure that we have .o objects in place in case we decided
3823 # not to build a shared library, and have fallen back to building
3824 # static libs even though --disable-static was passed!
3825 for oldobj in $oldobjs; do
3826 if test ! -f $oldobj; then
3827 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3828 if test "X$xdir" = "X$oldobj"; then
3833 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3834 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3835 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3836 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3840 eval cmds=\"$old_archive_cmds\"
3842 save_ifs="$IFS"; IFS='~'
3843 for cmd in $cmds; do
3846 $run eval "$cmd" || exit $?
3851 if test -n "$generated"; then
3852 $show "${rm}r$generated"
3853 $run ${rm}r$generated
3856 # Now create the libtool archive.
3860 test "$build_old_libs" = yes && old_library="$libname.$libext"
3861 $show "creating $output"
3863 # Preserve any variables that may affect compiler behavior
3864 for var in $variables_saved_for_relink; do
3865 if eval test -z \"\${$var+set}\"; then
3866 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3867 elif eval var_value=\$$var; test -z "$var_value"; then
3868 relink_command="$var=; export $var; $relink_command"
3870 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3871 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3874 # Quote the link command for shipping.
3875 relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
3876 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3878 # Only create the output if not a dry run.
3879 if test -z "$run"; then
3880 for installed in no yes; do
3881 if test "$installed" = yes; then
3882 if test -z "$install_libdir"; then
3885 output="$output_objdir/$outputname"i
3886 # Replace all uninstalled libtool libraries with the installed ones
3888 for deplib in $dependency_libs; do
3891 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3892 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3893 if test -z "$libdir"; then
3894 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3897 newdependency_libs="$newdependency_libs $libdir/$name"
3899 *) newdependency_libs="$newdependency_libs $deplib" ;;
3902 dependency_libs="$newdependency_libs"
3904 for lib in $dlfiles; do
3905 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3906 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3907 if test -z "$libdir"; then
3908 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3911 newdlfiles="$newdlfiles $libdir/$name"
3913 dlfiles="$newdlfiles"
3915 for lib in $dlprefiles; do
3916 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3917 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3918 if test -z "$libdir"; then
3919 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3922 newdlprefiles="$newdlprefiles $libdir/$name"
3924 dlprefiles="$newdlprefiles"
3927 # place dlname in correct position for cygwin
3929 case $host,$output,$installed,$module,$dlname in
3930 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
3933 # $outputname - a libtool library file
3934 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3936 # Please DO NOT delete this file!
3937 # It is necessary for linking the library.
3939 # The name that we can dlopen(3).
3942 # Names of this library.
3943 library_names='$library_names'
3945 # The name of the static archive.
3946 old_library='$old_library'
3948 # Libraries that this one depends upon.
3949 dependency_libs='$dependency_libs'
3951 # Version information for $libname.
3956 # Is this an already installed library?
3957 installed=$installed
3959 # Files to dlopen/dlpreopen
3961 dlpreopen='$dlprefiles'
3963 # Directory that this library needs to be installed in:
3964 libdir='$install_libdir'"
3965 if test "$installed" = no && test $need_relink = yes; then
3967 relink_command=\"$relink_command\""
3972 # Do a symbolic link so that the libtool archive can be found in
3973 # LD_LIBRARY_PATH before the program is installed.
3974 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3975 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
3981 # libtool install mode
3983 modename="$modename: install"
3985 # There may be an optional sh(1) argument at the beginning of
3986 # install_prog (especially on Windows NT).
3987 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
3988 # Allow the use of GNU shtool's install command.
3989 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
3990 # Aesthetically quote it.
3991 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3993 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3997 install_prog="$arg "
4005 # The real first argument should be the name of the installation program.
4006 # Aesthetically quote it.
4007 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4009 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4013 install_prog="$install_prog$arg"
4015 # We need to accept at least all the BSD install flags.
4025 if test -n "$dest"; then
4026 files="$files $dest"
4044 # If the previous option needed an argument, then skip it.
4045 if test -n "$prev"; then
4054 # Aesthetically quote the argument.
4055 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4057 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4061 install_prog="$install_prog $arg"
4064 if test -z "$install_prog"; then
4065 $echo "$modename: you must specify an install program" 1>&2
4070 if test -n "$prev"; then
4071 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4076 if test -z "$files"; then
4077 if test -z "$dest"; then
4078 $echo "$modename: no file or destination specified" 1>&2
4080 $echo "$modename: you must specify a destination" 1>&2
4086 # Strip any trailing slash from the destination.
4087 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4089 # Check to see that the destination is a directory.
4090 test -d "$dest" && isdir=yes
4091 if test "$isdir" = yes; then
4095 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4096 test "X$destdir" = "X$dest" && destdir=.
4097 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4099 # Not a directory, so check to see that there is only one file specified.
4101 if test $# -gt 2; then
4102 $echo "$modename: \`$dest' is not a directory" 1>&2
4108 [\\/]* | [A-Za-z]:[\\/]*) ;;
4110 for file in $files; do
4114 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4123 # This variable tells wrapper scripts just to set variables rather
4124 # than running their programs.
4125 libtool_install_magic="$magic"
4130 for file in $files; do
4132 # Do each installation.
4135 # Do the static libraries later.
4136 staticlibs="$staticlibs $file"
4140 # Check to see that this really is a libtool archive.
4141 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4143 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4151 # If there is no directory component, then add one.
4153 */* | *\\*) . $file ;;
4157 # Add the libdir to current_libdirs if it is the destination.
4158 if test "X$destdir" = "X$libdir"; then
4159 case "$current_libdirs " in
4161 *) current_libdirs="$current_libdirs $libdir" ;;
4164 # Note the libdir as a future libdir.
4165 case "$future_libdirs " in
4167 *) future_libdirs="$future_libdirs $libdir" ;;
4171 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4172 test "X$dir" = "X$file/" && dir=
4175 if test -n "$relink_command"; then
4176 $echo "$modename: warning: relinking \`$file'" 1>&2
4177 $show "$relink_command"
4178 if $run eval "$relink_command"; then :
4180 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4185 # See the names of the shared library.
4186 set dummy $library_names
4187 if test -n "$2"; then
4193 test -n "$relink_command" && srcname="$realname"T
4195 # Install the shared library and build the symlinks.
4196 $show "$install_prog $dir/$srcname $destdir/$realname"
4197 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4198 if test -n "$stripme" && test -n "$striplib"; then
4199 $show "$striplib $destdir/$realname"
4200 $run eval "$striplib $destdir/$realname" || exit $?
4203 if test $# -gt 0; then
4204 # Delete the old symlinks, and create new ones.
4207 if test "$linkname" != "$realname"; then
4208 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4209 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4214 # Do each command in the postinstall commands.
4215 lib="$destdir/$realname"
4216 eval cmds=\"$postinstall_cmds\"
4217 save_ifs="$IFS"; IFS='~'
4218 for cmd in $cmds; do
4221 $run eval "$cmd" || exit $?
4226 # Install the pseudo-library for information purposes.
4227 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4228 instname="$dir/$name"i
4229 $show "$install_prog $instname $destdir/$name"
4230 $run eval "$install_prog $instname $destdir/$name" || exit $?
4232 # Maybe install the static library, too.
4233 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4237 # Install (i.e. copy) a libtool object.
4239 # Figure out destination file name, if it wasn't already specified.
4240 if test -n "$destname"; then
4241 destfile="$destdir/$destname"
4243 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4244 destfile="$destdir/$destfile"
4247 # Deduce the name of the destination old-style object file.
4250 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4253 staticdest="$destfile"
4257 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4263 # Install the libtool object if requested.
4264 if test -n "$destfile"; then
4265 $show "$install_prog $file $destfile"
4266 $run eval "$install_prog $file $destfile" || exit $?
4269 # Install the old object if enabled.
4270 if test "$build_old_libs" = yes; then
4271 # Deduce the name of the old-style object file.
4272 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4274 $show "$install_prog $staticobj $staticdest"
4275 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4281 # Figure out destination file name, if it wasn't already specified.
4282 if test -n "$destname"; then
4283 destfile="$destdir/$destname"
4285 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4286 destfile="$destdir/$destfile"
4289 # Do a test to see if this is really a libtool program.
4290 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4294 # If there is no directory component, then add one.
4296 */* | *\\*) . $file ;;
4300 # Check the variables that should have been set.
4301 if test -z "$notinst_deplibs"; then
4302 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4307 for lib in $notinst_deplibs; do
4308 # Check to see that each library is installed.
4310 if test -f "$lib"; then
4311 # If there is no directory component, then add one.
4313 */* | *\\*) . $lib ;;
4317 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4318 if test -n "$libdir" && test ! -f "$libfile"; then
4319 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4325 # If there is no directory component, then add one.
4327 */* | *\\*) . $file ;;
4332 if test "$fast_install" = no && test -n "$relink_command"; then
4333 if test "$finalize" = yes && test -z "$run"; then
4335 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4336 tmpdir="$tmpdir/libtool-$$"
4337 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4339 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4342 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4343 outputname="$tmpdir/$file"
4344 # Replace the output file specification.
4345 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4347 $show "$relink_command"
4348 if $run eval "$relink_command"; then :
4350 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4356 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4359 # Install the binary that we compiled earlier.
4360 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4364 # remove .exe since cygwin /usr/bin/install will append another
4366 case $install_prog,$host in
4367 /usr/bin/install*,*cygwin*)
4368 case $file:$destfile in
4373 destfile=$destfile.exe
4376 destfile=`echo $destfile | sed -e 's,.exe$,,'`
4381 $show "$install_prog$stripme $file $destfile"
4382 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4383 test -n "$outputname" && ${rm}r "$tmpdir"
4388 for file in $staticlibs; do
4389 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4391 # Set up the ranlib parameters.
4392 oldlib="$destdir/$name"
4394 $show "$install_prog $file $oldlib"
4395 $run eval "$install_prog \$file \$oldlib" || exit $?
4397 if test -n "$stripme" && test -n "$striplib"; then
4398 $show "$old_striplib $oldlib"
4399 $run eval "$old_striplib $oldlib" || exit $?
4402 # Do each command in the postinstall commands.
4403 eval cmds=\"$old_postinstall_cmds\"
4404 save_ifs="$IFS"; IFS='~'
4405 for cmd in $cmds; do
4408 $run eval "$cmd" || exit $?
4413 if test -n "$future_libdirs"; then
4414 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4417 if test -n "$current_libdirs"; then
4418 # Maybe just do a dry run.
4419 test -n "$run" && current_libdirs=" -n$current_libdirs"
4420 exec_cmd='$SHELL $0 --finish$current_libdirs'
4426 # libtool finish mode
4428 modename="$modename: finish"
4432 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4435 libdirs="$libdirs $dir"
4438 for libdir in $libdirs; do
4439 if test -n "$finish_cmds"; then
4440 # Do each command in the finish commands.
4441 eval cmds=\"$finish_cmds\"
4442 save_ifs="$IFS"; IFS='~'
4443 for cmd in $cmds; do
4446 $run eval "$cmd" || admincmds="$admincmds
4451 if test -n "$finish_eval"; then
4452 # Do the single finish_eval.
4453 eval cmds=\"$finish_eval\"
4454 $run eval "$cmds" || admincmds="$admincmds
4460 # Exit here if they wanted silent mode.
4461 test "$show" = ":" && exit 0
4463 echo "----------------------------------------------------------------------"
4464 echo "Libraries have been installed in:"
4465 for libdir in $libdirs; do
4469 echo "If you ever happen to want to link against installed libraries"
4470 echo "in a given directory, LIBDIR, you must either use libtool, and"
4471 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4472 echo "flag during linking and do at least one of the following:"
4473 if test -n "$shlibpath_var"; then
4474 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4475 echo " during execution"
4477 if test -n "$runpath_var"; then
4478 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4479 echo " during linking"
4481 if test -n "$hardcode_libdir_flag_spec"; then
4483 eval flag=\"$hardcode_libdir_flag_spec\"
4485 echo " - use the \`$flag' linker flag"
4487 if test -n "$admincmds"; then
4488 echo " - have your system administrator run these commands:$admincmds"
4490 if test -f /etc/ld.so.conf; then
4491 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4494 echo "See any operating system documentation about shared libraries for"
4495 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4496 echo "----------------------------------------------------------------------"
4500 # libtool execute mode
4502 modename="$modename: execute"
4504 # The first argument is the command name.
4506 if test -z "$cmd"; then
4507 $echo "$modename: you must specify a COMMAND" 1>&2
4512 # Handle -dlopen flags immediately.
4513 for file in $execute_dlfiles; do
4514 if test ! -f "$file"; then
4515 $echo "$modename: \`$file' is not a file" 1>&2
4523 # Check to see that this really is a libtool archive.
4524 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4526 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4531 # Read the libtool library.
4535 # If there is no directory component, then add one.
4537 */* | *\\*) . $file ;;
4541 # Skip this library if it cannot be dlopened.
4542 if test -z "$dlname"; then
4543 # Warn if it was a shared library.
4544 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4548 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4549 test "X$dir" = "X$file" && dir=.
4551 if test -f "$dir/$objdir/$dlname"; then
4554 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4560 # Just add the directory containing the .lo file.
4561 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4562 test "X$dir" = "X$file" && dir=.
4566 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4571 # Get the absolute pathname.
4572 absdir=`cd "$dir" && pwd`
4573 test -n "$absdir" && dir="$absdir"
4575 # Now add the directory to shlibpath_var.
4576 if eval "test -z \"\$$shlibpath_var\""; then
4577 eval "$shlibpath_var=\"\$dir\""
4579 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4583 # This variable tells wrapper scripts just to set shlibpath_var
4584 # rather than running their programs.
4585 libtool_execute_magic="$magic"
4587 # Check if any of the arguments is a wrapper script.
4594 # Do a test to see if this is really a libtool program.
4595 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4596 # If there is no directory component, then add one.
4598 */* | *\\*) . $file ;;
4602 # Transform arg to wrapped name.
4603 file="$progdir/$program"
4607 # Quote arguments (to preserve shell metacharacters).
4608 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4609 args="$args \"$file\""
4612 if test -z "$run"; then
4613 if test -n "$shlibpath_var"; then
4614 # Export the shlibpath_var.
4615 eval "export $shlibpath_var"
4618 # Restore saved enviroment variables
4619 if test "${save_LC_ALL+set}" = set; then
4620 LC_ALL="$save_LC_ALL"; export LC_ALL
4622 if test "${save_LANG+set}" = set; then
4623 LANG="$save_LANG"; export LANG
4626 # Now prepare to actually exec the command.
4627 exec_cmd='"$cmd"$args'
4629 # Display what would be done.
4630 if test -n "$shlibpath_var"; then
4631 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4632 $echo "export $shlibpath_var"
4639 # libtool clean and uninstall mode
4641 modename="$modename: $mode"
4647 # This variable tells wrapper scripts just to set variables rather
4648 # than running their programs.
4649 libtool_install_magic="$magic"
4654 -f) rm="$rm $arg"; rmforce=yes ;;
4655 -*) rm="$rm $arg" ;;
4656 *) files="$files $arg" ;;
4660 if test -z "$rm"; then
4661 $echo "$modename: you must specify an RM program" 1>&2
4668 for file in $files; do
4669 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4670 if test "X$dir" = "X$file"; then
4674 objdir="$dir/$objdir"
4676 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4677 test $mode = uninstall && objdir="$dir"
4679 # Remember objdir for removal later, being careful to avoid duplicates
4680 if test $mode = clean; then
4683 *) rmdirs="$rmdirs $objdir" ;;
4687 # Don't error if the file doesn't exist and rm -f was used.
4688 if (test -L "$file") >/dev/null 2>&1 \
4689 || (test -h "$file") >/dev/null 2>&1 \
4690 || test -f "$file"; then
4692 elif test -d "$file"; then
4695 elif test "$rmforce" = yes; then
4703 # Possibly a libtool archive, so verify it.
4704 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4707 # Delete the libtool libraries and symlinks.
4708 for n in $library_names; do
4709 rmfiles="$rmfiles $objdir/$n"
4711 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4712 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4714 if test $mode = uninstall; then
4715 if test -n "$library_names"; then
4716 # Do each command in the postuninstall commands.
4717 eval cmds=\"$postuninstall_cmds\"
4718 save_ifs="$IFS"; IFS='~'
4719 for cmd in $cmds; do
4723 if test $? != 0 && test "$rmforce" != yes; then
4730 if test -n "$old_library"; then
4731 # Do each command in the old_postuninstall commands.
4732 eval cmds=\"$old_postuninstall_cmds\"
4733 save_ifs="$IFS"; IFS='~'
4734 for cmd in $cmds; do
4738 if test $? != 0 && test "$rmforce" != yes; then
4744 # FIXME: should reinstall the best remaining shared library.
4750 if test "$build_old_libs" = yes; then
4751 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
4752 rmfiles="$rmfiles $dir/$oldobj"
4757 # Do a test to see if this is a libtool program.
4758 if test $mode = clean &&
4759 (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4763 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4764 if test "$fast_install" = yes && test -n "$relink_command"; then
4765 rmfiles="$rmfiles $objdir/lt-$name"
4770 $show "$rm $rmfiles"
4771 $run $rm $rmfiles || exit_status=1
4774 # Try to remove the ${objdir}s in the directories where we deleted files
4775 for dir in $rmdirs; do
4776 if test -d "$dir"; then
4778 $run rmdir $dir >/dev/null 2>&1
4786 $echo "$modename: you must specify a MODE" 1>&2
4787 $echo "$generic_help" 1>&2
4792 if test -z "$exec_cmd"; then
4793 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4794 $echo "$generic_help" 1>&2
4797 fi # test -z "$show_help"
4799 if test -n "$exec_cmd"; then
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 -jnimodule build a library that can dlopened via Java JNI
4941 -module build a library that can dlopened
4942 -no-fast-install disable the fast-install mode
4943 -no-install link a not-installable executable
4944 -no-undefined declare that a library does not refer to external symbols
4945 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4946 -release RELEASE specify package release information
4947 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4948 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4949 -static do not do any dynamic linking of libtool libraries
4950 -version-info CURRENT[:REVISION[:AGE]]
4951 specify library version info [each variable defaults to 0]
4953 All other options (arguments beginning with \`-') are ignored.
4955 Every other argument is treated as a filename. Files ending in \`.la' are
4956 treated as uninstalled libtool libraries, other files are standard or library
4959 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4960 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4961 required, except when creating a convenience library.
4963 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4964 using \`ar' and \`ranlib', or on Windows using \`lib'.
4966 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4967 is created, otherwise an executable program is created."
4972 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4974 Remove libraries from an installation directory.
4976 RM is the name of the program to use to delete files associated with each FILE
4977 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4980 If FILE is a libtool library, all the files associated with it are deleted.
4981 Otherwise, only FILE itself is deleted using RM."
4985 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4992 $echo "Try \`$modename --help' for more information about other modes."