1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
5 # Free Software Foundation, Inc.
6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Check that we have a working $echo.
28 if test "X$1" = X--no-reexec; then
29 # Discard the --no-reexec flag, and continue.
31 elif test "X$1" = X--fallback-echo; then
32 # Avoid inline document here, it may be left over
34 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
35 # Yippee, $echo works!
38 # Restart under the correct shell, and then maybe $echo will work.
39 exec $SHELL "$0" --no-reexec ${1+"$@"}
42 if test "X$1" = X--fallback-echo; then
43 # used as fallback echo
51 # The name of this program.
52 progname=`$echo "$0" | sed 's%^.*/%%'`
59 TIMESTAMP=" (1.920 2001/04/24 23:26:18)"
62 help="Try \`$progname --help' for more information."
63 magic="%%%MAGIC variable%%%"
68 # Sed substitution that helps us do robust quoting. It backslashifies
69 # metacharacters that are still active within double-quoted strings.
71 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
73 NL2SP='tr \015\012 \040\040'
76 # Only set LANG and LC_ALL to C if already set.
77 # These must not be set unconditionally because not all systems understand
78 # e.g. LANG=C (notably SCO).
79 # We save the old values to restore during execute mode.
80 if test "${LC_ALL+set}" = set; then
81 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
83 if test "${LANG+set}" = set; then
84 save_LANG="$LANG"; LANG=C; export LANG
87 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
88 echo "$modename: not configured to build any kind of library" 1>&2
89 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
102 lo2o="s/\\.lo\$/.${objext}/"
103 o2lo="s/\\.${objext}\$/.lo/"
105 # Parse our command line options once, thoroughly.
112 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
116 # If the previous option needs an argument, assign it.
117 if test -n "$prev"; then
120 execute_dlfiles="$execute_dlfiles $arg"
132 # Have we seen a non-optional argument yet?
139 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
144 sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
149 echo "$progname: enabling shell trace mode"
159 if test "$build_libtool_libs" = yes; then
160 echo "enable shared libraries"
162 echo "disable shared libraries"
164 if test "$build_old_libs" = yes; then
165 echo "enable static libraries"
167 echo "disable static libraries"
172 --finish) mode="finish" ;;
174 --mode) prevopt="--mode" prev=mode ;;
175 --mode=*) mode="$optarg" ;;
187 $echo "$modename: unrecognized option \`$arg'" 1>&2
199 if test -n "$prevopt"; then
200 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
205 if test -z "$show_help"; then
207 # Infer the operation mode.
208 if test -z "$mode"; then
210 *cc | *++ | gcc* | *-gcc*)
222 *db | *dbx | *strace | *truss)
232 # If we have no mode, but dlfiles were specified, then do execute mode.
233 test -n "$execute_dlfiles" && mode=execute
235 # Just use the default operation mode.
236 if test -z "$mode"; then
237 if test -n "$nonopt"; then
238 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
240 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
247 # Only execute mode is allowed to have -dlopen flags.
248 if test -n "$execute_dlfiles" && test "$mode" != execute; then
249 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
254 # Change the help message to a mode-specific one.
256 help="Try \`$modename --help --mode=$mode' for more information."
258 # These modes are in order of execution frequency so that they run quickly.
260 # libtool compile mode
262 modename="$modename: compile"
263 # Get the compilation command and the source file.
276 # Aesthetically quote the previous argument.
278 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
281 # Double-quote args containing other shell metacharacters.
282 # Many Bourne shells cannot handle close brackets correctly
283 # in scan sets, so we specify it separately.
284 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
289 # Add the previous argument to base_compile.
290 if test -z "$base_compile"; then
291 base_compile="$lastarg"
293 base_compile="$base_compile $lastarg"
299 # Accept any command-line options.
302 if test "$user_target" != "no"; then
303 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
330 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
332 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
336 # Double-quote args containing other shell metacharacters.
337 # Many Bourne shells cannot handle close brackets correctly
338 # in scan sets, so we specify it separately.
340 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
344 lastarg="$lastarg $arg"
347 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
349 # Add the arguments to base_compile.
350 if test -z "$base_compile"; then
351 base_compile="$lastarg"
353 base_compile="$base_compile $lastarg"
361 # The next one is the -o target name
366 # We got the output file
373 # Accept the current argument as the source file.
377 # Aesthetically quote the previous argument.
379 # Backslashify any backslashes, double quotes, and dollar signs.
380 # These are the only characters that are still specially
381 # interpreted inside of double-quoted scrings.
382 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
384 # Double-quote args containing other shell metacharacters.
385 # Many Bourne shells cannot handle close brackets correctly
386 # in scan sets, so we specify it separately.
388 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
389 lastarg="\"$lastarg\""
393 # Add the previous argument to base_compile.
394 if test -z "$base_compile"; then
395 base_compile="$lastarg"
397 base_compile="$base_compile $lastarg"
405 # Get the name of the library object.
406 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
409 $echo "$modename: you must specify a target with \`-o'" 1>&2
414 # Recognize several different file suffixes.
415 # If the user specifies -o file.o, it is replaced with file.lo
430 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
433 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
435 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
440 if test -z "$base_compile"; then
441 $echo "$modename: you must specify a compilation command" 1>&2
446 # Delete any leftover library objects.
447 if test "$build_old_libs" = yes; then
448 removelist="$obj $libobj"
454 trap "$run $rm $removelist; exit 1" 1 2 15
456 # On Cygwin there's no "real" PIC flag so we must build both object types
458 cygwin* | mingw* | pw32* | os2*)
462 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
463 # non-PIC code in shared libraries is not supported
467 # Calculate the filename of the output object if compiler does
468 # not support -o with -c
469 if test "$compiler_c_o" = no; then
470 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
471 lockfile="$output_obj.lock"
472 removelist="$removelist $output_obj $lockfile"
473 trap "$run $rm $removelist; exit 1" 1 2 15
479 # Lock this critical section if it is needed
480 # We use this script file to make the link, it avoids creating a new file
481 if test "$need_locks" = yes; then
482 until $run ln "$0" "$lockfile" 2>/dev/null; do
483 $show "Waiting for $lockfile to be removed"
486 elif test "$need_locks" = warn; then
487 if test -f "$lockfile"; then
489 *** ERROR, $lockfile exists and contains:
490 `cat $lockfile 2>/dev/null`
492 This indicates that another process is trying to use the same
493 temporary object file, and libtool could not work around it because
494 your compiler does not support \`-c' and \`-o' together. If you
495 repeat this compilation, it may succeed, by chance, but you had better
496 avoid parallel builds (make -j) in this platform, or get a better
502 echo $srcfile > "$lockfile"
505 if test -n "$fix_srcfile_path"; then
506 eval srcfile=\"$fix_srcfile_path\"
509 # Only build a PIC object if we are building libtool libraries.
510 if test "$build_libtool_libs" = yes; then
511 # Without this assignment, base_compile gets emptied.
512 fbsd_hideous_sh_bug=$base_compile
514 if test "$pic_mode" != no; then
515 # All platforms use -DPIC, to notify preprocessed assembler code.
516 command="$base_compile $srcfile $pic_flag -DPIC"
518 # Don't build PIC code
519 command="$base_compile $srcfile"
521 if test "$build_old_libs" = yes; then
523 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
524 if test "X$dir" = "X$libobj"; then
529 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
531 if test -d "$dir"; then
538 if test $status -ne 0 && test ! -d $dir; then
543 if test "$compiler_o_lo" = yes; then
545 command="$command -o $output_obj"
546 elif test "$compiler_c_o" = yes; then
548 command="$command -o $output_obj"
551 $run $rm "$output_obj"
553 if $run eval "$command"; then :
555 test -n "$output_obj" && $run $rm $removelist
559 if test "$need_locks" = warn &&
560 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
562 *** ERROR, $lockfile contains:
563 `cat $lockfile 2>/dev/null`
565 but it should contain:
568 This indicates that another process is trying to use the same
569 temporary object file, and libtool could not work around it because
570 your compiler does not support \`-c' and \`-o' together. If you
571 repeat this compilation, it may succeed, by chance, but you had better
572 avoid parallel builds (make -j) in this platform, or get a better
579 # Just move the object if needed, then go on to compile the next one
580 if test x"$output_obj" != x"$libobj"; then
581 $show "$mv $output_obj $libobj"
582 if $run $mv $output_obj $libobj; then :
590 # If we have no pic_flag, then copy the object into place and finish.
591 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
592 test "$build_old_libs" = yes; then
593 # Rename the .lo from within objdir to obj
594 if test -f $obj; then
599 $show "$mv $libobj $obj"
600 if $run $mv $libobj $obj; then :
607 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
608 if test "X$xdir" = "X$obj"; then
613 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
614 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
615 # Now arrange that obj and lo_libobj become the same file
616 $show "(cd $xdir && $LN_S $baseobj $libobj)"
617 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
626 # Allow error messages only from the first compilation.
627 suppress_output=' >/dev/null 2>&1'
630 # Only build a position-dependent object if we build old libraries.
631 if test "$build_old_libs" = yes; then
632 if test "$pic_mode" != yes; then
633 # Don't build PIC code
634 command="$base_compile $srcfile"
636 # All platforms use -DPIC, to notify preprocessed assembler code.
637 command="$base_compile $srcfile $pic_flag -DPIC"
639 if test "$compiler_c_o" = yes; then
640 command="$command -o $obj"
644 # Suppress compiler output if we already did a PIC compilation.
645 command="$command$suppress_output"
646 $run $rm "$output_obj"
648 if $run eval "$command"; then :
654 if test "$need_locks" = warn &&
655 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
657 *** ERROR, $lockfile contains:
658 `cat $lockfile 2>/dev/null`
660 but it should contain:
663 This indicates that another process is trying to use the same
664 temporary object file, and libtool could not work around it because
665 your compiler does not support \`-c' and \`-o' together. If you
666 repeat this compilation, it may succeed, by chance, but you had better
667 avoid parallel builds (make -j) in this platform, or get a better
674 # Just move the object if needed
675 if test x"$output_obj" != x"$obj"; then
676 $show "$mv $output_obj $obj"
677 if $run $mv $output_obj $obj; then :
685 # Create an invalid libtool object if no PIC, so that we do not
686 # accidentally link it into a program.
687 if test "$build_libtool_libs" != yes; then
688 $show "echo timestamp > $libobj"
689 $run eval "echo timestamp > \$libobj" || exit $?
691 # Move the .lo from within objdir
692 $show "$mv $libobj $lo_libobj"
693 if $run $mv $libobj $lo_libobj; then :
702 # Unlock the critical section if it was locked
703 if test "$need_locks" != no; then
712 modename="$modename: link"
714 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
715 # It is impossible to link a dll without this setting, and
716 # we shouldn't force the makefile maintainer to figure out
717 # which system we are compiling for in order to pass an extra
718 # flag for every libtool invokation.
721 # FIXME: Unfortunately, there are problems with the above when trying
722 # to make a dll which has undefined symbols, in which case not
723 # even a static library is built. For now, we need to specify
724 # -no-undefined on the libtool link line when we can be certain
725 # that all symbols are satisfied, otherwise we get a static library.
732 libtool_args="$nonopt"
733 compile_command="$nonopt"
734 finalize_command="$nonopt"
747 lib_search_path=`pwd`
755 export_symbols_regex=
762 prefer_static_libs=no
774 # We need to know -static, to get the right output filenames.
778 -all-static | -static)
779 if test "X$arg" = "X-all-static"; then
780 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
781 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
783 if test -n "$link_static_flag"; then
784 dlopen_self=$dlopen_self_static
787 if test -z "$pic_flag" && test -n "$link_static_flag"; then
788 dlopen_self=$dlopen_self_static
791 build_libtool_libs=no
793 prefer_static_libs=yes
799 # See if our shared archives depend on static archives.
800 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
802 # Go through the arguments, transforming them on the way.
803 while test $# -gt 0; do
807 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
808 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
812 libtool_args="$libtool_args $qarg"
814 # If the previous option needs an argument, assign it.
815 if test -n "$prev"; then
818 compile_command="$compile_command @OUTPUT@"
819 finalize_command="$finalize_command @OUTPUT@"
825 if test "$preload" = no; then
826 # Add the symbol object into the linking commands.
827 compile_command="$compile_command @SYMFILE@"
828 finalize_command="$finalize_command @SYMFILE@"
832 *.la | *.lo) ;; # We handle these cases below.
834 if test "$dlself" = no; then
842 if test "$prev" = dlprefiles; then
844 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
854 if test "$prev" = dlfiles; then
855 dlfiles="$dlfiles $arg"
857 dlprefiles="$dlprefiles $arg"
865 export_symbols="$arg"
866 if test ! -f "$arg"; then
867 $echo "$modename: symbol file \`$arg' does not exist"
874 export_symbols_regex="$arg"
884 # We need an absolute path.
886 [\\/]* | [A-Za-z]:[\\/]*) ;;
888 $echo "$modename: only absolute run-paths are allowed" 1>&2
892 if test "$prev" = rpath; then
895 *) rpath="$rpath $arg" ;;
900 *) xrpath="$xrpath $arg" ;;
907 compiler_flags="$compiler_flags $qarg"
909 compile_command="$compile_command $qarg"
910 finalize_command="$finalize_command $qarg"
914 linker_flags="$linker_flags $qarg"
915 compiler_flags="$compiler_flags $wl$qarg"
917 compile_command="$compile_command $wl$qarg"
918 finalize_command="$finalize_command $wl$qarg"
922 eval "$prev=\"\$arg\""
933 if test -n "$link_static_flag"; then
934 compile_command="$compile_command $link_static_flag"
935 finalize_command="$finalize_command $link_static_flag"
941 # FIXME: remove this flag sometime in the future.
942 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
966 -export-symbols | -export-symbols-regex)
967 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
968 $echo "$modename: more than one -exported-symbols argument is not allowed"
971 if test "X$arg" = "X-export-symbols"; then
979 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
980 # so, if we see these flags be careful not to treat them like -L
982 case $with_gcc/$host in
984 compile_command="$compile_command $arg"
985 finalize_command="$finalize_command $arg"
992 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
993 # We need an absolute path.
995 [\\/]* | [A-Za-z]:[\\/]*) ;;
997 absdir=`cd "$dir" && pwd`
998 if test -z "$absdir"; then
999 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1008 deplibs="$deplibs -L$dir"
1009 lib_search_path="$lib_search_path $dir"
1013 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1014 case :$dllsearchpath: in
1016 *) dllsearchpath="$dllsearchpath:$dir";;
1024 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1026 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1027 # These systems don't actually have a C or math library (as such)
1030 *-*-mingw* | *-*-os2*)
1031 # These systems don't actually have a C library (as such)
1032 test "X$arg" = "X-lc" && continue
1036 deplibs="$deplibs $arg"
1052 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1053 # The PATH hackery in wrapper scripts is required on Windows
1054 # in order for the loader to find any dlls it needs.
1055 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1056 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1059 *) no_install=yes ;;
1087 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1088 # We need an absolute path.
1090 [\\/]* | [A-Za-z]:[\\/]*) ;;
1092 $echo "$modename: only absolute run-paths are allowed" 1>&2
1098 *) xrpath="$xrpath $dir" ;;
1104 # The effects of -static are defined in a previous loop.
1105 # We used to do the same as -all-static on platforms that
1106 # didn't have a PIC flag, but the assumption that the effects
1107 # would be equivalent was wrong. It would break on at least
1108 # Digital Unix and AIX.
1123 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1125 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1126 for flag in $args; do
1129 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1134 compiler_flags="$compiler_flags $flag"
1137 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1141 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1143 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1144 for flag in $args; do
1147 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1152 compiler_flags="$compiler_flags $wl$flag"
1153 linker_flags="$linker_flags $flag"
1156 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1169 # Some other compiler flag.
1171 # Unknown arguments in both finalize_command and compile_command need
1172 # to be aesthetically quoted because they are evaled later.
1173 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1175 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1182 # A library or standard object.
1183 if test "$prev" = dlfiles; then
1184 # This file was specified with -dlopen.
1185 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1186 dlfiles="$dlfiles $arg"
1190 # If libtool objects are unsupported, then we need to preload.
1195 if test "$prev" = dlprefiles; then
1196 # Preload the old-style object.
1197 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1201 *.lo) libobjs="$libobjs $arg" ;;
1202 *) objs="$objs $arg" ;;
1209 deplibs="$deplibs $arg"
1210 old_deplibs="$old_deplibs $arg"
1215 # A libtool-controlled library.
1217 if test "$prev" = dlfiles; then
1218 # This library was specified with -dlopen.
1219 dlfiles="$dlfiles $arg"
1221 elif test "$prev" = dlprefiles; then
1222 # The library was specified with -dlpreopen.
1223 dlprefiles="$dlprefiles $arg"
1226 deplibs="$deplibs $arg"
1231 # Some other compiler argument.
1233 # Unknown arguments in both finalize_command and compile_command need
1234 # to be aesthetically quoted because they are evaled later.
1235 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1237 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1244 # Now actually substitute the argument into the commands.
1245 if test -n "$arg"; then
1246 compile_command="$compile_command $arg"
1247 finalize_command="$finalize_command $arg"
1249 done # argument parsing loop
1251 if test -n "$prev"; then
1252 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1257 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1258 eval arg=\"$export_dynamic_flag_spec\"
1259 compile_command="$compile_command $arg"
1260 finalize_command="$finalize_command $arg"
1263 # calculate the name of the file, without its directory
1264 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1265 libobjs_save="$libobjs"
1267 if test -n "$shlibpath_var"; then
1268 # get the directories listed in $shlibpath_var
1269 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1273 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1274 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1276 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1277 if test "X$output_objdir" = "X$output"; then
1278 output_objdir="$objdir"
1280 output_objdir="$output_objdir/$objdir"
1282 # Create the object directory.
1283 if test ! -d $output_objdir; then
1284 $show "$mkdir $output_objdir"
1285 $run $mkdir $output_objdir
1287 if test $status -ne 0 && test ! -d $output_objdir; then
1292 # Determine the type of output
1295 $echo "$modename: you must specify an output file" 1>&2
1299 *.$libext) linkmode=oldlib ;;
1300 *.lo | *.$objext) linkmode=obj ;;
1301 *.la) linkmode=lib ;;
1302 *) linkmode=prog ;; # Anything else should be a program.
1307 # Find all interdependent deplibs by searching for libraries
1308 # that are linked more than once (e.g. -la -lb -la)
1309 for deplib in $deplibs; do
1311 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1313 libs="$libs $deplib"
1318 need_relink=no # whether we're linking any uninstalled libtool libraries
1319 notinst_deplibs= # not-installed libtool libraries
1320 notinst_path= # paths that contain not-installed libtool libraries
1324 for file in $dlfiles $dlprefiles; do
1328 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1340 passes="conv scan dlopen dlpreopen link"
1345 for pass in $passes; do
1346 if test "$linkmode" = prog; then
1347 # Determine which files to process
1351 save_deplibs="$deplibs" # Collect dlpreopened libraries
1354 dlpreopen) libs="$dlprefiles" ;;
1355 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1358 for deplib in $libs; do
1363 if test "$linkmode" = oldlib && test "$linkmode" = obj; then
1364 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1367 if test "$pass" = conv; then
1368 deplibs="$deplib $deplibs"
1371 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1372 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1373 # Search the libtool library
1374 lib="$searchdir/lib${name}.la"
1375 if test -f "$lib"; then
1380 if test "$found" != yes; then
1381 # deplib doesn't seem to be a libtool library
1382 if test "$linkmode,$pass" = "prog,link"; then
1383 compile_deplibs="$deplib $compile_deplibs"
1384 finalize_deplibs="$deplib $finalize_deplibs"
1386 deplibs="$deplib $deplibs"
1387 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1395 deplibs="$deplib $deplibs"
1396 test "$pass" = conv && continue
1397 newdependency_libs="$deplib $newdependency_libs"
1398 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1401 if test "$pass" = conv; then
1402 deplibs="$deplib $deplibs"
1405 if test "$pass" = scan; then
1406 deplibs="$deplib $deplibs"
1407 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1409 compile_deplibs="$deplib $compile_deplibs"
1410 finalize_deplibs="$deplib $finalize_deplibs"
1414 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1420 if test "$pass" = link; then
1421 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1422 # Make sure the xrpath contains only unique directories.
1425 *) xrpath="$xrpath $dir" ;;
1428 deplibs="$deplib $deplibs"
1431 *.la) lib="$deplib" ;;
1433 if test "$pass" = conv; then
1434 deplibs="$deplib $deplibs"
1439 if test "$deplibs_check_method" != pass_all; then
1441 echo "*** Warning: This library needs some functionality provided by $deplib."
1442 echo "*** I have the capability to make that library automatically link in when"
1443 echo "*** you link to this library. But I can only do this if you have a"
1444 echo "*** shared version of the library, which you do not appear to have."
1447 echo "*** Warning: Linking the shared library $output against the"
1448 echo "*** static library $deplib is not portable!"
1449 deplibs="$deplib $deplibs"
1454 if test "$pass" != link; then
1455 deplibs="$deplib $deplibs"
1457 compile_deplibs="$deplib $compile_deplibs"
1458 finalize_deplibs="$deplib $finalize_deplibs"
1465 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1466 # If there is no dlopen support or we're linking statically,
1467 # we need to preload.
1468 newdlprefiles="$newdlprefiles $deplib"
1469 compile_deplibs="$deplib $compile_deplibs"
1470 finalize_deplibs="$deplib $finalize_deplibs"
1472 newdlfiles="$newdlfiles $deplib"
1481 if test $found = yes || test -f "$lib"; then :
1483 $echo "$modename: cannot find the library \`$lib'" 1>&2
1487 # Check to see that this really is a libtool archive.
1488 if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1490 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1494 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1495 test "X$ladir" = "X$lib" && ladir="."
1503 # If the library was installed with an old release of libtool,
1504 # it will not redefine variable installed.
1509 */* | *\\*) . $lib ;;
1513 if test "$linkmode,$pass" = "lib,link" ||
1514 test "$linkmode,$pass" = "prog,scan" ||
1515 { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then
1516 # Add dl[pre]opened files of deplib
1517 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1518 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1521 if test "$pass" = conv; then
1522 # Only check for convenience libraries
1523 deplibs="$lib $deplibs"
1524 if test -z "$libdir"; then
1525 if test -z "$old_library"; then
1526 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1529 # It is a libtool convenience library, so add in its objects.
1530 convenience="$convenience $ladir/$objdir/$old_library"
1531 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1533 for deplib in $dependency_libs; do
1534 deplibs="$deplib $deplibs"
1535 case "$tmp_libs " in
1536 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1538 tmp_libs="$tmp_libs $deplib"
1540 elif test "$linkmode" != prog && test "$linkmode" != lib; then
1541 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1547 # Get the name of the library we link against.
1549 for l in $old_library $library_names; do
1552 if test -z "$linklib"; then
1553 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1557 # This library was specified with -dlopen.
1558 if test "$pass" = dlopen; then
1559 if test -z "$libdir"; then
1560 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1563 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1564 # If there is no dlname, no dlopen support or we're linking
1565 # statically, we need to preload.
1566 dlprefiles="$dlprefiles $lib"
1568 newdlfiles="$newdlfiles $lib"
1573 # We need an absolute path.
1575 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1577 abs_ladir=`cd "$ladir" && pwd`
1578 if test -z "$abs_ladir"; then
1579 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1580 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1585 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1587 # Find the relevant object directory and library name.
1588 if test "X$installed" = Xyes; then
1589 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1590 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1599 dir="$ladir/$objdir"
1600 absdir="$abs_ladir/$objdir"
1601 # Remove this search path later
1602 notinst_path="$notinst_path $abs_ladir"
1603 fi # $installed = yes
1604 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1606 # This library was specified with -dlpreopen.
1607 if test "$pass" = dlpreopen; then
1608 if test -z "$libdir"; then
1609 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1612 # Prefer using a static library (so that no silly _DYNAMIC symbols
1613 # are required to link).
1614 if test -n "$old_library"; then
1615 newdlprefiles="$newdlprefiles $dir/$old_library"
1616 # Otherwise, use the dlname, so that lt_dlopen finds it.
1617 elif test -n "$dlname"; then
1618 newdlprefiles="$newdlprefiles $dir/$dlname"
1620 newdlprefiles="$newdlprefiles $dir/$linklib"
1622 fi # $pass = dlpreopen
1624 if test -z "$libdir"; then
1625 # Link the convenience library
1626 if test "$linkmode" = lib; then
1627 deplibs="$dir/$old_library $deplibs"
1628 elif test "$linkmode,$pass" = "prog,link"; then
1629 compile_deplibs="$dir/$old_library $compile_deplibs"
1630 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1632 deplibs="$lib $deplibs"
1637 if test "$linkmode" = prog && test "$pass" != link; then
1638 newlib_search_path="$newlib_search_path $ladir"
1639 deplibs="$lib $deplibs"
1642 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1643 test "$build_libtool_libs" = no; then
1648 for deplib in $dependency_libs; do
1650 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1652 # Need to link against all dependency_libs?
1653 if test $linkalldeplibs = yes; then
1654 deplibs="$deplib $deplibs"
1656 # Need to hardcode shared library paths
1657 # or/and link against static libraries
1658 newdependency_libs="$deplib $newdependency_libs"
1660 case "$tmp_libs " in
1661 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1663 tmp_libs="$tmp_libs $deplib"
1666 fi # $linkmode = prog...
1668 link_static=no # Whether the deplib will be linked statically
1669 if test -n "$library_names" &&
1670 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1671 # Link against this shared library
1673 if test "$linkmode,$pass" = "prog,link" ||
1674 { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then
1675 # Hardcode the library path.
1676 # Skip directories that are in the system default run-time
1678 case " $sys_lib_dlsearch_path " in
1681 case "$compile_rpath " in
1683 *) compile_rpath="$compile_rpath $absdir"
1687 case " $sys_lib_dlsearch_path " in
1690 case "$finalize_rpath " in
1692 *) finalize_rpath="$finalize_rpath $libdir"
1696 if test "$linkmode" = prog; then
1697 # We need to hardcode the library path
1698 if test -n "$shlibpath_var"; then
1699 # Make sure the rpath contains only unique directories.
1700 case "$temp_rpath " in
1703 *) temp_rpath="$temp_rpath $dir" ;;
1707 fi # $linkmode,$pass = prog,link...
1709 if test "$alldeplibs" = yes &&
1710 { test "$deplibs_check_method" = pass_all ||
1711 { test "$build_libtool_libs" = yes &&
1712 test -n "$library_names"; }; }; then
1713 # We only need to search for static libraries
1717 if test "$installed" = no; then
1718 notinst_deplibs="$notinst_deplibs $lib"
1722 if test -n "$old_archive_from_expsyms_cmds"; then
1723 # figure out the soname
1724 set dummy $library_names
1727 libname=`eval \\$echo \"$libname_spec\"`
1728 # use dlname if we got it. it's perfectly good, no?
1729 if test -n "$dlname"; then
1731 elif test -n "$soname_spec"; then
1735 major=`expr $current - $age`
1739 eval soname=\"$soname_spec\"
1744 # Make a new name for the extract_expsyms_cmds to use
1746 soname=`echo $soroot | sed -e 's/^.*\///'`
1747 newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
1749 # If the library has no export list, then create one now
1750 if test -f "$output_objdir/$soname-def"; then :
1752 $show "extracting exported symbol list from \`$soname'"
1753 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
1754 eval cmds=\"$extract_expsyms_cmds\"
1755 for cmd in $cmds; do
1758 $run eval "$cmd" || exit $?
1764 if test -f "$output_objdir/$newlib"; then :; else
1765 $show "generating import library for \`$soname'"
1766 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
1767 eval cmds=\"$old_archive_from_expsyms_cmds\"
1768 for cmd in $cmds; do
1771 $run eval "$cmd" || exit $?
1775 # make sure the library variables are pointing to the new library
1778 fi # test -n $old_archive_from_expsyms_cmds
1780 if test "$linkmode" = prog || test "$mode" != relink; then
1785 case $hardcode_action in
1786 immediate | unsupported)
1787 if test "$hardcode_direct" = no; then
1789 elif test "$hardcode_minus_L" = no; then
1791 *-*-sunos*) add_shlibpath="$dir" ;;
1795 elif test "$hardcode_shlibpath_var" = no; then
1796 add_shlibpath="$dir"
1803 if test "$hardcode_direct" = yes; then
1805 elif test "$hardcode_minus_L" = yes; then
1808 elif test "$hardcode_shlibpath_var" = yes; then
1809 add_shlibpath="$dir"
1818 if test "$lib_linked" != yes; then
1819 $echo "$modename: configuration error: unsupported hardcode properties"
1823 if test -n "$add_shlibpath"; then
1824 case :$compile_shlibpath: in
1825 *":$add_shlibpath:"*) ;;
1826 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1829 if test "$linkmode" = prog; then
1830 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1831 test -n "$add" && compile_deplibs="$add $compile_deplibs"
1833 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1834 test -n "$add" && deplibs="$add $deplibs"
1835 if test "$hardcode_direct" != yes && \
1836 test "$hardcode_minus_L" != yes && \
1837 test "$hardcode_shlibpath_var" = yes; then
1838 case :$finalize_shlibpath: in
1840 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1846 if test "$linkmode" = prog || test "$mode" = relink; then
1850 # Finalize command for both is simple: just hardcode it.
1851 if test "$hardcode_direct" = yes; then
1852 add="$libdir/$linklib"
1853 elif test "$hardcode_minus_L" = yes; then
1856 elif test "$hardcode_shlibpath_var" = yes; then
1857 case :$finalize_shlibpath: in
1859 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1863 # We cannot seem to hardcode it, guess we'll fake it.
1865 test -d $ladir/.libs && add_dir="$add_dir -L$ladir/.libs"
1869 if test "$linkmode" = prog; then
1870 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
1871 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
1873 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1874 test -n "$add" && deplibs="$add $deplibs"
1877 elif test "$linkmode" = prog; then
1878 if test "$alldeplibs" = yes &&
1879 { test "$deplibs_check_method" = pass_all ||
1880 { test "$build_libtool_libs" = yes &&
1881 test -n "$library_names"; }; }; then
1882 # We only need to search for static libraries
1886 # Try to link the static library
1887 # Here we assume that one of hardcode_direct or hardcode_minus_L
1888 # is not unsupported. This is valid on all known static and
1890 if test "$hardcode_direct" != unsupported; then
1891 test -n "$old_library" && linklib="$old_library"
1892 compile_deplibs="$dir/$linklib $compile_deplibs"
1893 finalize_deplibs="$dir/$linklib $finalize_deplibs"
1895 compile_deplibs="-l$name -L$dir $compile_deplibs"
1896 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
1898 elif test "$build_libtool_libs" = yes; then
1899 # Not a shared library
1900 if test "$deplibs_check_method" != pass_all; then
1901 # We're trying link a shared library against a static one
1902 # but the system doesn't support it.
1904 # Just print a warning and add the library to dependency_libs so
1905 # that the program can be linked against the static library.
1907 echo "*** Warning: This library needs some functionality provided by $lib."
1908 echo "*** I have the capability to make that library automatically link in when"
1909 echo "*** you link to this library. But I can only do this if you have a"
1910 echo "*** shared version of the library, which you do not appear to have."
1911 if test "$module" = yes; then
1912 echo "*** Therefore, libtool will create a static module, that should work "
1913 echo "*** as long as the dlopening application is linked with the -dlopen flag."
1914 if test -z "$global_symbol_pipe"; then
1916 echo "*** However, this would only work if libtool was able to extract symbol"
1917 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1918 echo "*** not find such a program. So, this module is probably useless."
1919 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1921 if test "$build_old_libs" = no; then
1922 build_libtool_libs=module
1925 build_libtool_libs=no
1929 convenience="$convenience $dir/$old_library"
1930 old_convenience="$old_convenience $dir/$old_library"
1931 deplibs="$dir/$old_library $deplibs"
1934 fi # link shared/static library?
1936 if test "$linkmode" = lib; then
1937 if test -n "$dependency_libs" &&
1938 { test "$hardcode_into_libs" != yes || test $build_old_libs = yes ||
1939 test $link_static = yes; }; then
1940 # Extract -R from dependency_libs
1942 for libdir in $dependency_libs; do
1944 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
1946 *" $temp_xrpath "*) ;;
1947 *) xrpath="$xrpath $temp_xrpath";;
1949 *) temp_deplibs="$temp_deplibs $libdir";;
1952 dependency_libs="$temp_deplibs"
1955 newlib_search_path="$newlib_search_path $absdir"
1956 # Link against this library
1957 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
1958 # ... and its dependency_libs
1960 for deplib in $dependency_libs; do
1961 newdependency_libs="$deplib $newdependency_libs"
1962 case "$tmp_libs " in
1963 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1965 tmp_libs="$tmp_libs $deplib"
1968 if test "$link_all_deplibs" != no; then
1969 # Add the search paths of all dependency libraries
1970 for deplib in $dependency_libs; do
1972 -L*) path="$deplib" ;;
1974 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
1975 test "X$dir" = "X$deplib" && dir="."
1976 # We need an absolute path.
1978 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1980 absdir=`cd "$dir" && pwd`
1981 if test -z "$absdir"; then
1982 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1987 if grep "^installed=no" $deplib > /dev/null; then
1988 path="-L$absdir/$objdir"
1990 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
1991 if test -z "$libdir"; then
1992 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
1995 if test "$absdir" != "$libdir"; then
1996 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2003 case " $deplibs " in
2005 *) deplibs="$deplibs $path" ;;
2008 fi # link_all_deplibs != no
2010 done # for deplib in $libs
2011 if test "$pass" = dlpreopen; then
2012 # Link the dlpreopened libraries before other libraries
2013 for deplib in $save_deplibs; do
2014 deplibs="$deplib $deplibs"
2017 if test "$pass" != dlopen; then
2018 test "$pass" != scan && dependency_libs="$newdependency_libs"
2019 if test "$pass" != conv; then
2020 # Make sure lib_search_path contains only unique directories.
2022 for dir in $newlib_search_path; do
2023 case "$lib_search_path " in
2025 *) lib_search_path="$lib_search_path $dir" ;;
2031 if test "$linkmode,$pass" != "prog,link"; then
2034 vars="compile_deplibs finalize_deplibs"
2036 for var in $vars dependency_libs; do
2037 # Add libraries to $var in reverse order
2038 eval tmp_libs=\"\$$var\"
2040 for deplib in $tmp_libs; do
2042 -L*) new_libs="$deplib $new_libs" ;;
2044 case " $specialdeplibs " in
2045 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2047 case " $new_libs " in
2049 *) new_libs="$deplib $new_libs" ;;
2057 for deplib in $new_libs; do
2060 case " $tmp_libs " in
2062 *) tmp_libs="$tmp_libs $deplib" ;;
2065 *) tmp_libs="$tmp_libs $deplib" ;;
2068 eval $var=\"$tmp_libs\"
2071 if test "$pass" = "conv" &&
2072 { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2073 libs="$deplibs" # reset libs
2077 if test "$linkmode" = prog; then
2078 dlfiles="$newdlfiles"
2079 dlprefiles="$newdlprefiles"
2084 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2085 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2088 if test -n "$rpath"; then
2089 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2092 if test -n "$xrpath"; then
2093 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2096 if test -n "$vinfo"; then
2097 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2100 if test -n "$release"; then
2101 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2104 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2105 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2108 # Now set the variables for building old libraries.
2109 build_libtool_libs=no
2111 objs="$objs$old_deplibs"
2115 # Make sure we only generate libraries of the form `libNAME.la'.
2118 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2119 eval libname=\"$libname_spec\"
2122 if test "$module" = no; then
2123 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2127 if test "$need_lib_prefix" != no; then
2128 # Add the "lib" prefix for modules if required
2129 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2130 eval libname=\"$libname_spec\"
2132 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2137 if test -n "$objs"; then
2138 if test "$deplibs_check_method" != pass_all; then
2139 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2143 echo "*** Warning: Linking the shared library $output against the non-libtool"
2144 echo "*** objects $objs is not portable!"
2145 libobjs="$libobjs $objs"
2149 if test "$dlself" != no; then
2150 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2154 if test $# -gt 2; then
2155 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2160 if test -z "$rpath"; then
2161 if test "$build_libtool_libs" = yes; then
2162 # Building a libtool convenience library.
2164 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2165 build_libtool_libs=convenience
2169 if test -n "$vinfo"; then
2170 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2173 if test -n "$release"; then
2174 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2178 # Parse the version information argument.
2179 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
2180 set dummy $vinfo 0 0 0
2183 if test -n "$8"; then
2184 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2193 # Check that each of the things are valid numbers.
2195 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2197 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2198 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2204 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2206 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2207 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2213 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2215 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2216 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2221 if test $age -gt $current; then
2222 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2223 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2227 # Calculate the version variables.
2231 case $version_type in
2235 # Like Linux, but with the current version available in
2236 # verstring for coding it into the library header
2237 major=.`expr $current - $age`
2238 versuffix="$major.$age.$revision"
2239 # Darwin ld doesn't like 0 for these options...
2240 minor_current=`expr $current + 1`
2241 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2246 versuffix=".$current.$revision";
2251 versuffix=".$current";
2255 major=`expr $current - $age + 1`
2256 verstring="sgi$major.$revision"
2258 # Add in all the interfaces that we are compatible with.
2260 while test $loop != 0; do
2261 iface=`expr $revision - $loop`
2262 loop=`expr $loop - 1`
2263 verstring="sgi$major.$iface:$verstring"
2266 # Before this point, $major must not contain `.'.
2268 versuffix="$major.$revision"
2272 major=.`expr $current - $age`
2273 versuffix="$major.$age.$revision"
2277 major=`expr $current - $age`
2278 versuffix=".$current.$age.$revision"
2279 verstring="$current.$age.$revision"
2281 # Add in all the interfaces that we are compatible with.
2283 while test $loop != 0; do
2284 iface=`expr $current - $loop`
2285 loop=`expr $loop - 1`
2286 verstring="$verstring:${iface}.0"
2289 # Make executables depend on our current version.
2290 verstring="$verstring:${current}.0"
2295 versuffix=".$current.$revision"
2299 # Use '-' rather than '.', since we only want one
2300 # extension on DOS 8.3 filesystems.
2301 major=`expr $current - $age`
2306 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2307 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2312 # Clear the version info if we defaulted, and they specified a release.
2313 if test -z "$vinfo" && test -n "$release"; then
2316 if test "$need_version" = no; then
2323 # Remove version info from name if versioning should be avoided
2324 if test "$avoid_version" = yes && test "$need_version" = no; then
2330 # Check to see if the archive will have undefined symbols.
2331 if test "$allow_undefined" = yes; then
2332 if test "$allow_undefined_flag" = unsupported; then
2333 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2334 build_libtool_libs=no
2338 # Don't allow undefined symbols.
2339 allow_undefined_flag="$no_undefined_flag"
2343 if test "$mode" != relink; then
2344 # Remove our outputs.
2345 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2346 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2349 # Now set the variables for building old libraries.
2350 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2351 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2353 # Transform .lo files to .o files.
2354 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2357 # Eliminate all temporary directories.
2358 for path in $notinst_path; do
2359 lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2360 deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2361 dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2364 if test -n "$xrpath"; then
2365 # If the user specified any rpath flags, then add them.
2367 for libdir in $xrpath; do
2368 temp_xrpath="$temp_xrpath -R$libdir"
2369 case "$finalize_rpath " in
2371 *) finalize_rpath="$finalize_rpath $libdir" ;;
2374 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2375 dependency_libs="$temp_xrpath $dependency_libs"
2379 # Make sure dlfiles contains only unique files that won't be dlpreopened
2380 old_dlfiles="$dlfiles"
2382 for lib in $old_dlfiles; do
2383 case " $dlprefiles $dlfiles " in
2385 *) dlfiles="$dlfiles $lib" ;;
2389 # Make sure dlprefiles contains only unique files
2390 old_dlprefiles="$dlprefiles"
2392 for lib in $old_dlprefiles; do
2393 case "$dlprefiles " in
2395 *) dlprefiles="$dlprefiles $lib" ;;
2399 if test "$build_libtool_libs" = yes; then
2400 if test -n "$rpath"; then
2402 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2403 # these systems don't actually have a c library (as such)!
2405 *-*-rhapsody* | *-*-darwin1.[012])
2406 # Rhapsody C library is in the System framework
2407 deplibs="$deplibs -framework System"
2410 # Don't link with libc until the a.out ld.so is fixed.
2413 # Add libc to deplibs on all other systems if necessary.
2414 if test "$build_libtool_need_lc" = "yes"; then
2415 deplibs="$deplibs -lc"
2421 # Transform deplibs into only deplibs that can be linked in shared.
2423 libname_save=$libname
2424 release_save=$release
2425 versuffix_save=$versuffix
2427 # I'm not sure if I'm treating the release correctly. I think
2428 # release should show up in the -l (ie -lgmp5) so we don't want to
2429 # add it in twice. Is that correct?
2435 case $deplibs_check_method in
2437 # Don't check for shared/static. Everything works.
2438 # This might be a little naive. We might want to check
2439 # whether the library exists or not. But this is on
2440 # osf3 & osf4 and I'm not really sure... Just
2441 # implementing what was already the behaviour.
2445 # This code stresses the "libraries are programs" paradigm to its
2446 # limits. Maybe even breaks it. We compile a program, linking it
2447 # against the deplibs as a proxy for the library. Then we can check
2448 # whether they linked in statically or dynamically with ldd.
2450 cat > conftest.c <<EOF
2451 int main() { return 0; }
2454 $CC -o conftest conftest.c $deplibs
2455 if test $? -eq 0 ; then
2456 ldd_output=`ldd conftest`
2457 for i in $deplibs; do
2458 name="`expr $i : '-l\(.*\)'`"
2459 # If $name is empty we are operating on a -L argument.
2460 if test -n "$name" && test "$name" != "0"; then
2461 libname=`eval \\$echo \"$libname_spec\"`
2462 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2463 set dummy $deplib_matches
2465 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2466 newdeplibs="$newdeplibs $i"
2470 echo "*** Warning: This library needs some functionality provided by $i."
2471 echo "*** I have the capability to make that library automatically link in when"
2472 echo "*** you link to this library. But I can only do this if you have a"
2473 echo "*** shared version of the library, which you do not appear to have."
2476 newdeplibs="$newdeplibs $i"
2480 # Error occured in the first compile. Let's try to salvage the situation:
2481 # Compile a seperate program for each library.
2482 for i in $deplibs; do
2483 name="`expr $i : '-l\(.*\)'`"
2484 # If $name is empty we are operating on a -L argument.
2485 if test -n "$name" && test "$name" != "0"; then
2487 $CC -o conftest conftest.c $i
2489 if test $? -eq 0 ; then
2490 ldd_output=`ldd conftest`
2491 libname=`eval \\$echo \"$libname_spec\"`
2492 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2493 set dummy $deplib_matches
2495 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2496 newdeplibs="$newdeplibs $i"
2500 echo "*** Warning: This library needs some functionality provided by $i."
2501 echo "*** I have the capability to make that library automatically link in when"
2502 echo "*** you link to this library. But I can only do this if you have a"
2503 echo "*** shared version of the library, which you do not appear to have."
2508 echo "*** Warning! Library $i is needed by this library but I was not able to"
2509 echo "*** make it link in! You will probably need to install it or some"
2510 echo "*** library that it depends on before this library will be fully"
2511 echo "*** functional. Installing it before continuing would be even better."
2514 newdeplibs="$newdeplibs $i"
2520 set dummy $deplibs_check_method
2521 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2522 for a_deplib in $deplibs; do
2523 name="`expr $a_deplib : '-l\(.*\)'`"
2524 # If $name is empty we are operating on a -L argument.
2525 if test -n "$name" && test "$name" != "0"; then
2526 libname=`eval \\$echo \"$libname_spec\"`
2527 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2528 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2529 for potent_lib in $potential_libs; do
2530 # Follow soft links.
2531 if ls -lLd "$potent_lib" 2>/dev/null \
2532 | grep " -> " >/dev/null; then
2535 # The statement above tries to avoid entering an
2536 # endless loop below, in case of cyclic links.
2537 # We might still enter an endless loop, since a link
2538 # loop can be closed while we follow links,
2540 potlib="$potent_lib"
2541 while test -h "$potlib" 2>/dev/null; do
2542 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2544 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2545 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2548 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2550 | egrep "$file_magic_regex" > /dev/null; then
2551 newdeplibs="$newdeplibs $a_deplib"
2557 if test -n "$a_deplib" ; then
2560 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2561 echo "*** I have the capability to make that library automatically link in when"
2562 echo "*** you link to this library. But I can only do this if you have a"
2563 echo "*** shared version of the library, which you do not appear to have."
2566 # Add a -L argument.
2567 newdeplibs="$newdeplibs $a_deplib"
2569 done # Gone through all deplibs.
2572 set dummy $deplibs_check_method
2573 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2574 for a_deplib in $deplibs; do
2575 name="`expr $a_deplib : '-l\(.*\)'`"
2576 # If $name is empty we are operating on a -L argument.
2577 if test -n "$name" && test "$name" != "0"; then
2578 libname=`eval \\$echo \"$libname_spec\"`
2579 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2580 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2581 for potent_lib in $potential_libs; do
2582 if eval echo \"$potent_lib\" 2>/dev/null \
2584 | egrep "$match_pattern_regex" > /dev/null; then
2585 newdeplibs="$newdeplibs $a_deplib"
2591 if test -n "$a_deplib" ; then
2594 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2595 echo "*** I have the capability to make that library automatically link in when"
2596 echo "*** you link to this library. But I can only do this if you have a"
2597 echo "*** shared version of the library, which you do not appear to have."
2600 # Add a -L argument.
2601 newdeplibs="$newdeplibs $a_deplib"
2603 done # Gone through all deplibs.
2607 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2608 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2609 grep . >/dev/null; then
2611 if test "X$deplibs_check_method" = "Xnone"; then
2612 echo "*** Warning: inter-library dependencies are not supported in this platform."
2614 echo "*** Warning: inter-library dependencies are not known to be supported."
2616 echo "*** All declared inter-library dependencies are being dropped."
2621 versuffix=$versuffix_save
2623 release=$release_save
2624 libname=$libname_save
2628 *-*-rhapsody* | *-*-darwin1.[012])
2629 # On Rhapsody replace the C library is the System framework
2630 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2634 if test "$droppeddeps" = yes; then
2635 if test "$module" = yes; then
2637 echo "*** Warning: libtool could not satisfy all declared inter-library"
2638 echo "*** dependencies of module $libname. Therefore, libtool will create"
2639 echo "*** a static module, that should work as long as the dlopening"
2640 echo "*** application is linked with the -dlopen flag."
2641 if test -z "$global_symbol_pipe"; then
2643 echo "*** However, this would only work if libtool was able to extract symbol"
2644 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2645 echo "*** not find such a program. So, this module is probably useless."
2646 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2648 if test "$build_old_libs" = no; then
2649 oldlibs="$output_objdir/$libname.$libext"
2650 build_libtool_libs=module
2653 build_libtool_libs=no
2656 echo "*** The inter-library dependencies that have been dropped here will be"
2657 echo "*** automatically added whenever a program is linked with this library"
2658 echo "*** or is declared to -dlopen it."
2660 if test $allow_undefined = no; then
2662 echo "*** Since this library must not contain undefined symbols,"
2663 echo "*** because either the platform does not support them or"
2664 echo "*** it was explicitly requested with -no-undefined,"
2665 echo "*** libtool will only create a static version of it."
2666 if test "$build_old_libs" = no; then
2667 oldlibs="$output_objdir/$libname.$libext"
2668 build_libtool_libs=module
2671 build_libtool_libs=no
2676 # Done checking deplibs!
2680 # All the library-specific variables (install_libdir is set above).
2685 # Test again, we may have decided not to build it any more
2686 if test "$build_libtool_libs" = yes; then
2687 if test "$hardcode_into_libs" = yes; then
2688 # Hardcode the library paths
2691 rpath="$finalize_rpath"
2692 test "$mode" != relink && rpath="$compile_rpath$rpath"
2693 for libdir in $rpath; do
2694 if test -n "$hardcode_libdir_flag_spec"; then
2695 if test -n "$hardcode_libdir_separator"; then
2696 if test -z "$hardcode_libdirs"; then
2697 hardcode_libdirs="$libdir"
2699 # Just accumulate the unique libdirs.
2700 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2701 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2704 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2709 eval flag=\"$hardcode_libdir_flag_spec\"
2710 dep_rpath="$dep_rpath $flag"
2712 elif test -n "$runpath_var"; then
2713 case "$perm_rpath " in
2715 *) perm_rpath="$perm_rpath $libdir" ;;
2719 # Substitute the hardcoded libdirs into the rpath.
2720 if test -n "$hardcode_libdir_separator" &&
2721 test -n "$hardcode_libdirs"; then
2722 libdir="$hardcode_libdirs"
2723 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
2725 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2726 # We should set the runpath_var.
2728 for dir in $perm_rpath; do
2731 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2733 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
2736 shlibpath="$finalize_shlibpath"
2737 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
2738 if test -n "$shlibpath"; then
2739 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2742 # Get the real and link names of the library.
2743 eval library_names=\"$library_names_spec\"
2744 set dummy $library_names
2748 if test -n "$soname_spec"; then
2749 eval soname=\"$soname_spec\"
2753 test -z "$dlname" && dlname=$soname
2755 lib="$output_objdir/$realname"
2758 linknames="$linknames $link"
2761 # Ensure that we have .o objects for linkers which dislike .lo
2762 # (e.g. aix) in case we are running --disable-static
2763 for obj in $libobjs; do
2764 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2765 if test "X$xdir" = "X$obj"; then
2770 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2771 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2772 if test ! -f $xdir/$oldobj; then
2773 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2774 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2778 # Use standard objects if they are pic
2779 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2781 # Prepare the list of exported symbols
2782 if test -z "$export_symbols"; then
2783 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2784 $show "generating symbol list for \`$libname.la'"
2785 export_symbols="$output_objdir/$libname.exp"
2786 $run $rm $export_symbols
2787 eval cmds=\"$export_symbols_cmds\"
2788 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2789 for cmd in $cmds; do
2792 $run eval "$cmd" || exit $?
2795 if test -n "$export_symbols_regex"; then
2796 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2797 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2798 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2799 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2804 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2805 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2808 if test -n "$convenience"; then
2809 if test -n "$whole_archive_flag_spec"; then
2810 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2812 gentop="$output_objdir/${outputname}x"
2813 $show "${rm}r $gentop"
2814 $run ${rm}r "$gentop"
2815 $show "mkdir $gentop"
2816 $run mkdir "$gentop"
2818 if test $status -ne 0 && test ! -d "$gentop"; then
2821 generated="$generated $gentop"
2823 for xlib in $convenience; do
2824 # Extract the objects.
2826 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2827 *) xabs=`pwd`"/$xlib" ;;
2829 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2830 xdir="$gentop/$xlib"
2832 $show "${rm}r $xdir"
2837 if test $status -ne 0 && test ! -d "$xdir"; then
2840 $show "(cd $xdir && $AR x $xabs)"
2841 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2843 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2848 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2849 eval flag=\"$thread_safe_flag_spec\"
2850 linker_flags="$linker_flags $flag"
2853 # Make a backup of the uninstalled library when relinking
2854 if test "$mode" = relink; then
2855 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
2858 # Do each of the archive commands.
2859 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2860 eval cmds=\"$archive_expsym_cmds\"
2862 eval cmds=\"$archive_cmds\"
2864 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2865 for cmd in $cmds; do
2868 $run eval "$cmd" || exit $?
2872 # Restore the uninstalled library and exit
2873 if test "$mode" = relink; then
2874 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
2878 # Create links to the real library.
2879 for linkname in $linknames; do
2880 if test "$realname" != "$linkname"; then
2881 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2882 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2886 # If -module or -export-dynamic was specified, set the dlname.
2887 if test "$module" = yes || test "$export_dynamic" = yes; then
2888 # On all known operating systems, these are identical.
2895 if test -n "$deplibs"; then
2896 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2899 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2900 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2903 if test -n "$rpath"; then
2904 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2907 if test -n "$xrpath"; then
2908 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2911 if test -n "$vinfo"; then
2912 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2915 if test -n "$release"; then
2916 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2921 if test -n "$objs$old_deplibs"; then
2922 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2926 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2934 # Delete the old objects.
2935 $run $rm $obj $libobj
2937 # Objects from convenience libraries. This assumes
2938 # single-version convenience libraries. Whenever we create
2939 # different ones for PIC/non-PIC, this we'll have to duplicate
2943 # reload_cmds runs $LD directly, so let us get rid of
2944 # -Wl from whole_archive_flag_spec
2947 if test -n "$convenience"; then
2948 if test -n "$whole_archive_flag_spec"; then
2949 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2951 gentop="$output_objdir/${obj}x"
2952 $show "${rm}r $gentop"
2953 $run ${rm}r "$gentop"
2954 $show "mkdir $gentop"
2955 $run mkdir "$gentop"
2957 if test $status -ne 0 && test ! -d "$gentop"; then
2960 generated="$generated $gentop"
2962 for xlib in $convenience; do
2963 # Extract the objects.
2965 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2966 *) xabs=`pwd`"/$xlib" ;;
2968 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2969 xdir="$gentop/$xlib"
2971 $show "${rm}r $xdir"
2976 if test $status -ne 0 && test ! -d "$xdir"; then
2979 $show "(cd $xdir && $AR x $xabs)"
2980 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2982 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2987 # Create the old-style object.
2988 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
2991 eval cmds=\"$reload_cmds\"
2992 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2993 for cmd in $cmds; do
2996 $run eval "$cmd" || exit $?
3000 # Exit if we aren't doing a library object file.
3001 if test -z "$libobj"; then
3002 if test -n "$gentop"; then
3003 $show "${rm}r $gentop"
3010 if test "$build_libtool_libs" != yes; then
3011 if test -n "$gentop"; then
3012 $show "${rm}r $gentop"
3016 # Create an invalid libtool object if no PIC, so that we don't
3017 # accidentally link it into a program.
3018 $show "echo timestamp > $libobj"
3019 $run eval "echo timestamp > $libobj" || exit $?
3023 if test -n "$pic_flag" || test "$pic_mode" != default; then
3024 # Only do commands if we really have different PIC objects.
3025 reload_objs="$libobjs $reload_conv_objs"
3027 eval cmds=\"$reload_cmds\"
3028 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3029 for cmd in $cmds; do
3032 $run eval "$cmd" || exit $?
3036 # Just create a symlink.
3039 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3040 if test "X$xdir" = "X$libobj"; then
3045 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3046 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3047 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3048 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3051 if test -n "$gentop"; then
3052 $show "${rm}r $gentop"
3061 *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3063 if test -n "$vinfo"; then
3064 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3067 if test -n "$release"; then
3068 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3071 if test "$preload" = yes; then
3072 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3073 test "$dlopen_self_static" = unknown; then
3074 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3079 *-*-rhapsody* | *-*-darwin1.[012])
3080 # On Rhapsody replace the C library is the System framework
3081 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3082 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3086 compile_command="$compile_command $compile_deplibs"
3087 finalize_command="$finalize_command $finalize_deplibs"
3089 if test -n "$rpath$xrpath"; then
3090 # If the user specified any rpath flags, then add them.
3091 for libdir in $rpath $xrpath; do
3092 # This is the magic to use -rpath.
3093 case "$finalize_rpath " in
3095 *) finalize_rpath="$finalize_rpath $libdir" ;;
3100 # Now hardcode the library paths
3103 for libdir in $compile_rpath $finalize_rpath; do
3104 if test -n "$hardcode_libdir_flag_spec"; then
3105 if test -n "$hardcode_libdir_separator"; then
3106 if test -z "$hardcode_libdirs"; then
3107 hardcode_libdirs="$libdir"
3109 # Just accumulate the unique libdirs.
3110 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3111 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3114 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3119 eval flag=\"$hardcode_libdir_flag_spec\"
3120 rpath="$rpath $flag"
3122 elif test -n "$runpath_var"; then
3123 case "$perm_rpath " in
3125 *) perm_rpath="$perm_rpath $libdir" ;;
3129 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3130 case :$dllsearchpath: in
3132 *) dllsearchpath="$dllsearchpath:$libdir";;
3137 # Substitute the hardcoded libdirs into the rpath.
3138 if test -n "$hardcode_libdir_separator" &&
3139 test -n "$hardcode_libdirs"; then
3140 libdir="$hardcode_libdirs"
3141 eval rpath=\" $hardcode_libdir_flag_spec\"
3143 compile_rpath="$rpath"
3147 for libdir in $finalize_rpath; do
3148 if test -n "$hardcode_libdir_flag_spec"; then
3149 if test -n "$hardcode_libdir_separator"; then
3150 if test -z "$hardcode_libdirs"; then
3151 hardcode_libdirs="$libdir"
3153 # Just accumulate the unique libdirs.
3154 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3155 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3158 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3163 eval flag=\"$hardcode_libdir_flag_spec\"
3164 rpath="$rpath $flag"
3166 elif test -n "$runpath_var"; then
3167 case "$finalize_perm_rpath " in
3169 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3173 # Substitute the hardcoded libdirs into the rpath.
3174 if test -n "$hardcode_libdir_separator" &&
3175 test -n "$hardcode_libdirs"; then
3176 libdir="$hardcode_libdirs"
3177 eval rpath=\" $hardcode_libdir_flag_spec\"
3179 finalize_rpath="$rpath"
3181 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3182 # Transform all the library objects into standard objects.
3183 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3184 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3188 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3189 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3190 dlsyms="${outputname}S.c"
3192 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3196 if test -n "$dlsyms"; then
3200 # Discover the nlist of each of the dlfiles.
3201 nlist="$output_objdir/${outputname}.nm"
3203 $show "$rm $nlist ${nlist}S ${nlist}T"
3204 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3206 # Parse the name list into a source file.
3207 $show "creating $output_objdir/$dlsyms"
3209 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3210 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3211 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3217 /* Prevent the only kind of declaration conflicts we can make. */
3218 #define lt_preloaded_symbols some_other_symbol
3220 /* External symbol declarations for the compiler. */\
3223 if test "$dlself" = yes; then
3224 $show "generating symbol list for \`$output'"
3226 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3228 # Add our own program objects to the symbol list.
3229 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3230 for arg in $progfiles; do
3231 $show "extracting global C symbols from \`$arg'"
3232 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3235 if test -n "$exclude_expsyms"; then
3236 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3237 $run eval '$mv "$nlist"T "$nlist"'
3240 if test -n "$export_symbols_regex"; then
3241 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3242 $run eval '$mv "$nlist"T "$nlist"'
3245 # Prepare the list of exported symbols
3246 if test -z "$export_symbols"; then
3247 export_symbols="$output_objdir/$output.exp"
3248 $run $rm $export_symbols
3249 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3251 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3252 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3253 $run eval 'mv "$nlist"T "$nlist"'
3257 for arg in $dlprefiles; do
3258 $show "extracting global C symbols from \`$arg'"
3259 name=`echo "$arg" | sed -e 's%^.*/%%'`
3260 $run eval 'echo ": $name " >> "$nlist"'
3261 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3264 if test -z "$run"; then
3265 # Make sure we have at least an empty file.
3266 test -f "$nlist" || : > "$nlist"
3268 if test -n "$exclude_expsyms"; then
3269 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3270 $mv "$nlist"T "$nlist"
3273 # Try sorting and uniquifying the output.
3274 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3277 grep -v "^: " < "$nlist" > "$nlist"S
3280 if test -f "$nlist"S; then
3281 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3283 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3286 $echo >> "$output_objdir/$dlsyms" "\
3288 #undef lt_preloaded_symbols
3290 #if defined (__STDC__) && __STDC__
3291 # define lt_ptr_t void *
3293 # define lt_ptr_t char *
3297 /* The mapping between symbol names and symbols. */
3302 lt_preloaded_symbols[] =
3306 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
3307 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
3308 < "$nlist" >> "$output_objdir/$dlsyms"
3310 $echo >> "$output_objdir/$dlsyms" "\
3314 /* This works around a problem in FreeBSD linker */
3315 #ifdef FREEBSD_WORKAROUND
3316 static const void *lt_preloaded_setup() {
3317 return lt_preloaded_symbols;
3327 pic_flag_for_symtable=
3329 # compiling the symbol table file with pic_flag works around
3330 # a FreeBSD bug that causes programs to crash when -lm is
3331 # linked before any other PIC object. But we must not use
3332 # pic_flag when linking with -static. The problem exists in
3333 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3334 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3335 case "$compile_command " in
3337 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3340 case "$compile_command " in
3342 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3346 # Now compile the dynamic symbol file.
3347 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3348 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3350 # Clean up the generated files.
3351 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3352 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3354 # Transform the symbol file into the correct name.
3355 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3356 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3359 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3364 # We keep going just in case the user didn't refer to
3365 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3366 # really was required.
3368 # Nullify the symbol file.
3369 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3370 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3373 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3374 # Replace the output file specification.
3375 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3376 link_command="$compile_command$compile_rpath"
3378 # We have no uninstalled library dependencies, so finalize right now.
3379 $show "$link_command"
3380 $run eval "$link_command"
3383 # Delete the generated files.
3384 if test -n "$dlsyms"; then
3385 $show "$rm $output_objdir/${outputname}S.${objext}"
3386 $run $rm "$output_objdir/${outputname}S.${objext}"
3392 if test -n "$shlibpath_var"; then
3393 # We should set the shlibpath_var
3395 for dir in $temp_rpath; do
3397 [\\/]* | [A-Za-z]:[\\/]*)
3402 # Relative path: add a thisdir entry.
3403 rpath="$rpath\$thisdir/$dir:"
3410 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3411 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3413 if test -n "$finalize_shlibpath"; then
3414 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3419 if test -n "$runpath_var"; then
3420 if test -n "$perm_rpath"; then
3421 # We should set the runpath_var.
3423 for dir in $perm_rpath; do
3426 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3428 if test -n "$finalize_perm_rpath"; then
3429 # We should set the runpath_var.
3431 for dir in $finalize_perm_rpath; do
3434 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3438 if test "$no_install" = yes; then
3439 # We don't need to create a wrapper script.
3440 link_command="$compile_var$compile_command$compile_rpath"
3441 # Replace the output file specification.
3442 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3443 # Delete the old output file.
3445 # Link the executable and exit
3446 $show "$link_command"
3447 $run eval "$link_command" || exit $?
3451 if test "$hardcode_action" = relink; then
3452 # Fast installation is not supported
3453 link_command="$compile_var$compile_command$compile_rpath"
3454 relink_command="$finalize_var$finalize_command$finalize_rpath"
3456 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3457 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3459 if test "$fast_install" != no; then
3460 link_command="$finalize_var$compile_command$finalize_rpath"
3461 if test "$fast_install" = yes; then
3462 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3464 # fast_install is set to needless
3468 link_command="$compile_var$compile_command$compile_rpath"
3469 relink_command="$finalize_var$finalize_command$finalize_rpath"
3473 # Replace the output file specification.
3474 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3476 # Delete the old output files.
3477 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3479 $show "$link_command"
3480 $run eval "$link_command" || exit $?
3482 # Now create the wrapper script.
3483 $show "creating $output"
3485 # Quote the relink command for shipping.
3486 if test -n "$relink_command"; then
3487 # Preserve any variables that may affect compiler behavior
3488 for var in $variables_saved_for_relink; do
3489 if eval test -z \"\${$var+set}\"; then
3490 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3491 elif eval var_value=\$$var; test -z "$var_value"; then
3492 relink_command="$var=; export $var; $relink_command"
3494 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3495 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3498 relink_command="cd `pwd`; $relink_command"
3499 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3502 # Quote $echo for shipping.
3503 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3505 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3506 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3508 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3510 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3513 # Only actually do things if our run command is non-null.
3514 if test -z "$run"; then
3515 # win32 will think the script is a binary if it has
3516 # a .exe suffix, so we strip it off here.
3518 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3520 # test for cygwin because mv fails w/o .exe extensions
3522 *cygwin*) exeext=.exe ;;
3526 trap "$rm $output; exit 1" 1 2 15
3531 # $output - temporary wrapper script for $objdir/$outputname
3532 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3534 # The $output program cannot be directly executed until all the libtool
3535 # libraries that it depends on are installed.
3537 # This wrapper script should never be moved out of the build directory.
3538 # If it is, it will not operate correctly.
3540 # Sed substitution that helps us do robust quoting. It backslashifies
3541 # metacharacters that are still active within double-quoted strings.
3542 Xsed='sed -e 1s/^X//'
3543 sed_quote_subst='$sed_quote_subst'
3545 # The HP-UX ksh and POSIX shell print the target directory to stdout
3547 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3549 relink_command=\"$relink_command\"
3551 # This environment variable determines our operation mode.
3552 if test \"\$libtool_install_magic\" = \"$magic\"; then
3553 # install mode needs the following variable:
3554 notinst_deplibs='$notinst_deplibs'
3556 # When we are sourced in execute mode, \$file and \$echo are already set.
3557 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3560 # Make sure echo works.
3561 if test \"X\$1\" = X--no-reexec; then
3562 # Discard the --no-reexec flag, and continue.
3564 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3565 # Yippee, \$echo works!
3568 # Restart under the correct shell, and then maybe \$echo will work.
3569 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3575 # Find the directory that this script lives in.
3576 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3577 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3579 # Follow symbolic links until we get to the real thisdir.
3580 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3581 while test -n \"\$file\"; do
3582 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3584 # If there was a directory component, then change thisdir.
3585 if test \"x\$destdir\" != \"x\$file\"; then
3586 case \"\$destdir\" in
3587 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3588 *) thisdir=\"\$thisdir/\$destdir\" ;;
3592 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3593 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
3596 # Try to get the absolute directory name.
3597 absdir=\`cd \"\$thisdir\" && pwd\`
3598 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3601 if test "$fast_install" = yes; then
3603 program=lt-'$outputname'$exeext
3604 progdir=\"\$thisdir/$objdir\"
3606 if test ! -f \"\$progdir/\$program\" || \\
3607 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
3608 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3610 file=\"\$\$-\$program\"
3612 if test ! -d \"\$progdir\"; then
3613 $mkdir \"\$progdir\"
3615 $rm \"\$progdir/\$file\"
3620 # relink executable if necessary
3621 if test -n \"\$relink_command\"; then
3622 if (eval \$relink_command); then :
3624 $rm \"\$progdir/\$file\"
3629 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3630 { $rm \"\$progdir/\$program\";
3631 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3632 $rm \"\$progdir/\$file\"
3636 program='$outputname'
3637 progdir=\"\$thisdir/$objdir\"
3643 if test -f \"\$progdir/\$program\"; then"
3645 # Export our shlibpath_var if we have one.
3646 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3648 # Add our own library path to $shlibpath_var
3649 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3651 # Some systems cannot cope with colon-terminated $shlibpath_var
3652 # The second colon is a workaround for a bug in BeOS R4 sed
3653 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3655 export $shlibpath_var
3659 # fixup the dll searchpath if we need to.
3660 if test -n "$dllsearchpath"; then
3662 # Add the dll search path components to the executable PATH
3663 PATH=$dllsearchpath:\$PATH
3668 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3669 # Run the actual program with our arguments.
3672 # win32 systems need to use the prog path for dll
3674 *-*-cygwin* | *-*-pw32*)
3676 exec \$progdir/\$program \${1+\"\$@\"}
3680 # Backslashes separate directories on plain windows
3681 *-*-mingw | *-*-os2*)
3683 exec \$progdir\\\\\$program \${1+\"\$@\"}
3689 # Export the path to the program.
3690 PATH=\"\$progdir:\$PATH\"
3693 exec \$program \${1+\"\$@\"}
3698 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3702 # The program doesn't exist.
3703 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3704 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3705 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3716 # See if we need to build an old-fashioned archive.
3717 for oldlib in $oldlibs; do
3719 if test "$build_libtool_libs" = convenience; then
3720 oldobjs="$libobjs_save"
3721 addlibs="$convenience"
3722 build_libtool_libs=no
3724 if test "$build_libtool_libs" = module; then
3725 oldobjs="$libobjs_save"
3726 build_libtool_libs=no
3728 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3730 addlibs="$old_convenience"
3733 if test -n "$addlibs"; then
3734 gentop="$output_objdir/${outputname}x"
3735 $show "${rm}r $gentop"
3736 $run ${rm}r "$gentop"
3737 $show "mkdir $gentop"
3738 $run mkdir "$gentop"
3740 if test $status -ne 0 && test ! -d "$gentop"; then
3743 generated="$generated $gentop"
3745 # Add in members from convenience archives.
3746 for xlib in $addlibs; do
3747 # Extract the objects.
3749 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3750 *) xabs=`pwd`"/$xlib" ;;
3752 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3753 xdir="$gentop/$xlib"
3755 $show "${rm}r $xdir"
3760 if test $status -ne 0 && test ! -d "$xdir"; then
3763 $show "(cd $xdir && $AR x $xabs)"
3764 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3766 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3770 # Do each command in the archive commands.
3771 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3772 eval cmds=\"$old_archive_from_new_cmds\"
3774 # Ensure that we have .o objects in place in case we decided
3775 # not to build a shared library, and have fallen back to building
3776 # static libs even though --disable-static was passed!
3777 for oldobj in $oldobjs; do
3778 if test ! -f $oldobj; then
3779 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3780 if test "X$xdir" = "X$oldobj"; then
3785 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3786 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3787 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3788 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3792 eval cmds=\"$old_archive_cmds\"
3794 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3795 for cmd in $cmds; do
3798 $run eval "$cmd" || exit $?
3803 if test -n "$generated"; then
3804 $show "${rm}r$generated"
3805 $run ${rm}r$generated
3808 # Now create the libtool archive.
3812 test "$build_old_libs" = yes && old_library="$libname.$libext"
3813 $show "creating $output"
3815 # Preserve any variables that may affect compiler behavior
3816 for var in $variables_saved_for_relink; do
3817 if eval test -z \"\${$var+set}\"; then
3818 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3819 elif eval var_value=\$$var; test -z "$var_value"; then
3820 relink_command="$var=; export $var; $relink_command"
3822 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3823 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3826 # Quote the link command for shipping.
3827 relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
3828 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3830 # Only create the output if not a dry run.
3831 if test -z "$run"; then
3832 for installed in no yes; do
3833 if test "$installed" = yes; then
3834 if test -z "$install_libdir"; then
3837 output="$output_objdir/$outputname"i
3838 # Replace all uninstalled libtool libraries with the installed ones
3840 for deplib in $dependency_libs; do
3843 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3844 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3845 if test -z "$libdir"; then
3846 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3849 newdependency_libs="$newdependency_libs $libdir/$name"
3851 *) newdependency_libs="$newdependency_libs $deplib" ;;
3854 dependency_libs="$newdependency_libs"
3856 for lib in $dlfiles; do
3857 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3858 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3859 if test -z "$libdir"; then
3860 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3863 newdlfiles="$newdlfiles $libdir/$name"
3865 dlfiles="$newdlfiles"
3867 for lib in $dlprefiles; do
3868 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3869 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3870 if test -z "$libdir"; then
3871 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3874 newdlprefiles="$newdlprefiles $libdir/$name"
3876 dlprefiles="$newdlprefiles"
3879 # place dlname in correct position for cygwin
3881 case $host,$output,$installed,$module,$dlname in
3882 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
3885 # $outputname - a libtool library file
3886 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3888 # Please DO NOT delete this file!
3889 # It is necessary for linking the library.
3891 # The name that we can dlopen(3).
3894 # Names of this library.
3895 library_names='$library_names'
3897 # The name of the static archive.
3898 old_library='$old_library'
3900 # Libraries that this one depends upon.
3901 dependency_libs='$dependency_libs'
3903 # Version information for $libname.
3908 # Is this an already installed library?
3909 installed=$installed
3911 # Files to dlopen/dlpreopen
3913 dlpreopen='$dlprefiles'
3915 # Directory that this library needs to be installed in:
3916 libdir='$install_libdir'"
3917 if test "$installed" = no && test $need_relink = yes; then
3919 relink_command=\"$relink_command\""
3924 # Do a symbolic link so that the libtool archive can be found in
3925 # LD_LIBRARY_PATH before the program is installed.
3926 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3927 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
3933 # libtool install mode
3935 modename="$modename: install"
3937 # There may be an optional sh(1) argument at the beginning of
3938 # install_prog (especially on Windows NT).
3939 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
3940 # Allow the use of GNU shtool's install command.
3941 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
3942 # Aesthetically quote it.
3943 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3945 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3949 install_prog="$arg "
3957 # The real first argument should be the name of the installation program.
3958 # Aesthetically quote it.
3959 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3961 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3965 install_prog="$install_prog$arg"
3967 # We need to accept at least all the BSD install flags.
3977 if test -n "$dest"; then
3978 files="$files $dest"
3996 # If the previous option needed an argument, then skip it.
3997 if test -n "$prev"; then
4006 # Aesthetically quote the argument.
4007 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4009 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4013 install_prog="$install_prog $arg"
4016 if test -z "$install_prog"; then
4017 $echo "$modename: you must specify an install program" 1>&2
4022 if test -n "$prev"; then
4023 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4028 if test -z "$files"; then
4029 if test -z "$dest"; then
4030 $echo "$modename: no file or destination specified" 1>&2
4032 $echo "$modename: you must specify a destination" 1>&2
4038 # Strip any trailing slash from the destination.
4039 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4041 # Check to see that the destination is a directory.
4042 test -d "$dest" && isdir=yes
4043 if test "$isdir" = yes; then
4047 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4048 test "X$destdir" = "X$dest" && destdir=.
4049 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4051 # Not a directory, so check to see that there is only one file specified.
4053 if test $# -gt 2; then
4054 $echo "$modename: \`$dest' is not a directory" 1>&2
4060 [\\/]* | [A-Za-z]:[\\/]*) ;;
4062 for file in $files; do
4066 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4075 # This variable tells wrapper scripts just to set variables rather
4076 # than running their programs.
4077 libtool_install_magic="$magic"
4082 for file in $files; do
4084 # Do each installation.
4087 # Do the static libraries later.
4088 staticlibs="$staticlibs $file"
4092 # Check to see that this really is a libtool archive.
4093 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4095 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4103 # If there is no directory component, then add one.
4105 */* | *\\*) . $file ;;
4109 # Add the libdir to current_libdirs if it is the destination.
4110 if test "X$destdir" = "X$libdir"; then
4111 case "$current_libdirs " in
4113 *) current_libdirs="$current_libdirs $libdir" ;;
4116 # Note the libdir as a future libdir.
4117 case "$future_libdirs " in
4119 *) future_libdirs="$future_libdirs $libdir" ;;
4123 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4124 test "X$dir" = "X$file/" && dir=
4127 if test -n "$relink_command"; then
4128 $echo "$modename: warning: relinking \`$file'" 1>&2
4129 $show "$relink_command"
4130 if $run eval "$relink_command"; then :
4132 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4137 # See the names of the shared library.
4138 set dummy $library_names
4139 if test -n "$2"; then
4145 test -n "$relink_command" && srcname="$realname"T
4147 # Install the shared library and build the symlinks.
4148 $show "$install_prog $dir/$srcname $destdir/$realname"
4149 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4150 if test -n "$stripme" && test -n "$striplib"; then
4151 $show "$striplib $destdir/$realname"
4152 $run eval "$striplib $destdir/$realname" || exit $?
4155 if test $# -gt 0; then
4156 # Delete the old symlinks, and create new ones.
4159 if test "$linkname" != "$realname"; then
4160 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4161 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4166 # Do each command in the postinstall commands.
4167 lib="$destdir/$realname"
4168 eval cmds=\"$postinstall_cmds\"
4169 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4170 for cmd in $cmds; do
4173 $run eval "$cmd" || exit $?
4178 # Install the pseudo-library for information purposes.
4179 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4180 instname="$dir/$name"i
4181 $show "$install_prog $instname $destdir/$name"
4182 $run eval "$install_prog $instname $destdir/$name" || exit $?
4184 # Maybe install the static library, too.
4185 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4189 # Install (i.e. copy) a libtool object.
4191 # Figure out destination file name, if it wasn't already specified.
4192 if test -n "$destname"; then
4193 destfile="$destdir/$destname"
4195 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4196 destfile="$destdir/$destfile"
4199 # Deduce the name of the destination old-style object file.
4202 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4205 staticdest="$destfile"
4209 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4215 # Install the libtool object if requested.
4216 if test -n "$destfile"; then
4217 $show "$install_prog $file $destfile"
4218 $run eval "$install_prog $file $destfile" || exit $?
4221 # Install the old object if enabled.
4222 if test "$build_old_libs" = yes; then
4223 # Deduce the name of the old-style object file.
4224 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4226 $show "$install_prog $staticobj $staticdest"
4227 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4233 # Figure out destination file name, if it wasn't already specified.
4234 if test -n "$destname"; then
4235 destfile="$destdir/$destname"
4237 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4238 destfile="$destdir/$destfile"
4241 # Do a test to see if this is really a libtool program.
4242 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4246 # If there is no directory component, then add one.
4248 */* | *\\*) . $file ;;
4252 # Check the variables that should have been set.
4253 if test -z "$notinst_deplibs"; then
4254 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4259 for lib in $notinst_deplibs; do
4260 # Check to see that each library is installed.
4262 if test -f "$lib"; then
4263 # If there is no directory component, then add one.
4265 */* | *\\*) . $lib ;;
4269 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4270 if test -n "$libdir" && test ! -f "$libfile"; then
4271 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4277 # If there is no directory component, then add one.
4279 */* | *\\*) . $file ;;
4284 if test "$fast_install" = no && test -n "$relink_command"; then
4285 if test "$finalize" = yes && test -z "$run"; then
4287 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4288 tmpdir="$tmpdir/libtool-$$"
4289 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4291 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4294 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4295 outputname="$tmpdir/$file"
4296 # Replace the output file specification.
4297 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4299 $show "$relink_command"
4300 if $run eval "$relink_command"; then :
4302 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4308 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4311 # Install the binary that we compiled earlier.
4312 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4316 # remove .exe since cygwin /usr/bin/install will append another
4318 case $install_prog,$host in
4319 /usr/bin/install*,*cygwin*)
4320 case $file:$destfile in
4325 destfile=$destfile.exe
4328 destfile=`echo $destfile | sed -e 's,.exe$,,'`
4333 $show "$install_prog$stripme $file $destfile"
4334 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4335 test -n "$outputname" && ${rm}r "$tmpdir"
4340 for file in $staticlibs; do
4341 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4343 # Set up the ranlib parameters.
4344 oldlib="$destdir/$name"
4346 $show "$install_prog $file $oldlib"
4347 $run eval "$install_prog \$file \$oldlib" || exit $?
4349 if test -n "$stripme" && test -n "$striplib"; then
4350 $show "$old_striplib $oldlib"
4351 $run eval "$old_striplib $oldlib" || exit $?
4354 # Do each command in the postinstall commands.
4355 eval cmds=\"$old_postinstall_cmds\"
4356 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4357 for cmd in $cmds; do
4360 $run eval "$cmd" || exit $?
4365 if test -n "$future_libdirs"; then
4366 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4369 if test -n "$current_libdirs"; then
4370 # Maybe just do a dry run.
4371 test -n "$run" && current_libdirs=" -n$current_libdirs"
4372 exec $SHELL $0 --finish$current_libdirs
4379 # libtool finish mode
4381 modename="$modename: finish"
4385 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4388 libdirs="$libdirs $dir"
4391 for libdir in $libdirs; do
4392 if test -n "$finish_cmds"; then
4393 # Do each command in the finish commands.
4394 eval cmds=\"$finish_cmds\"
4395 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4396 for cmd in $cmds; do
4399 $run eval "$cmd" || admincmds="$admincmds
4404 if test -n "$finish_eval"; then
4405 # Do the single finish_eval.
4406 eval cmds=\"$finish_eval\"
4407 $run eval "$cmds" || admincmds="$admincmds
4413 # Exit here if they wanted silent mode.
4414 test "$show" = ":" && exit 0
4416 echo "----------------------------------------------------------------------"
4417 echo "Libraries have been installed in:"
4418 for libdir in $libdirs; do
4422 echo "If you ever happen to want to link against installed libraries"
4423 echo "in a given directory, LIBDIR, you must either use libtool, and"
4424 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4425 echo "flag during linking and do at least one of the following:"
4426 if test -n "$shlibpath_var"; then
4427 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4428 echo " during execution"
4430 if test -n "$runpath_var"; then
4431 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4432 echo " during linking"
4434 if test -n "$hardcode_libdir_flag_spec"; then
4436 eval flag=\"$hardcode_libdir_flag_spec\"
4438 echo " - use the \`$flag' linker flag"
4440 if test -n "$admincmds"; then
4441 echo " - have your system administrator run these commands:$admincmds"
4443 if test -f /etc/ld.so.conf; then
4444 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4447 echo "See any operating system documentation about shared libraries for"
4448 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4449 echo "----------------------------------------------------------------------"
4453 # libtool execute mode
4455 modename="$modename: execute"
4457 # The first argument is the command name.
4459 if test -z "$cmd"; then
4460 $echo "$modename: you must specify a COMMAND" 1>&2
4465 # Handle -dlopen flags immediately.
4466 for file in $execute_dlfiles; do
4467 if test ! -f "$file"; then
4468 $echo "$modename: \`$file' is not a file" 1>&2
4476 # Check to see that this really is a libtool archive.
4477 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4479 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4484 # Read the libtool library.
4488 # If there is no directory component, then add one.
4490 */* | *\\*) . $file ;;
4494 # Skip this library if it cannot be dlopened.
4495 if test -z "$dlname"; then
4496 # Warn if it was a shared library.
4497 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4501 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4502 test "X$dir" = "X$file" && dir=.
4504 if test -f "$dir/$objdir/$dlname"; then
4507 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4513 # Just add the directory containing the .lo file.
4514 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4515 test "X$dir" = "X$file" && dir=.
4519 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4524 # Get the absolute pathname.
4525 absdir=`cd "$dir" && pwd`
4526 test -n "$absdir" && dir="$absdir"
4528 # Now add the directory to shlibpath_var.
4529 if eval "test -z \"\$$shlibpath_var\""; then
4530 eval "$shlibpath_var=\"\$dir\""
4532 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4536 # This variable tells wrapper scripts just to set shlibpath_var
4537 # rather than running their programs.
4538 libtool_execute_magic="$magic"
4540 # Check if any of the arguments is a wrapper script.
4547 # Do a test to see if this is really a libtool program.
4548 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4549 # If there is no directory component, then add one.
4551 */* | *\\*) . $file ;;
4555 # Transform arg to wrapped name.
4556 file="$progdir/$program"
4560 # Quote arguments (to preserve shell metacharacters).
4561 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4562 args="$args \"$file\""
4565 if test -z "$run"; then
4566 if test -n "$shlibpath_var"; then
4567 # Export the shlibpath_var.
4568 eval "export $shlibpath_var"
4571 # Restore saved enviroment variables
4572 if test "${save_LC_ALL+set}" = set; then
4573 LC_ALL="$save_LC_ALL"; export LC_ALL
4575 if test "${save_LANG+set}" = set; then
4576 LANG="$save_LANG"; export LANG
4579 # Now actually exec the command.
4580 eval "exec \$cmd$args"
4582 $echo "$modename: cannot exec \$cmd$args"
4585 # Display what would be done.
4586 if test -n "$shlibpath_var"; then
4587 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4588 $echo "export $shlibpath_var"
4595 # libtool clean and uninstall mode
4597 modename="$modename: $mode"
4603 # This variable tells wrapper scripts just to set variables rather
4604 # than running their programs.
4605 libtool_install_magic="$magic"
4610 -f) rm="$rm $arg"; rmforce=yes ;;
4611 -*) rm="$rm $arg" ;;
4612 *) files="$files $arg" ;;
4616 if test -z "$rm"; then
4617 $echo "$modename: you must specify an RM program" 1>&2
4624 for file in $files; do
4625 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4626 if test "X$dir" = "X$file"; then
4630 objdir="$dir/$objdir"
4632 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4633 test $mode = uninstall && objdir="$dir"
4635 # Remember objdir for removal later, being careful to avoid duplicates
4636 if test $mode = clean; then
4639 *) rmdirs="$rmdirs $objdir" ;;
4643 # Don't error if the file doesn't exist and rm -f was used.
4644 if (test -L "$file") >/dev/null 2>&1 \
4645 || (test -h "$file") >/dev/null 2>&1 \
4646 || test -f "$file"; then
4648 elif test -d "$file"; then
4651 elif test "$rmforce" = yes; then
4659 # Possibly a libtool archive, so verify it.
4660 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4663 # Delete the libtool libraries and symlinks.
4664 for n in $library_names; do
4665 rmfiles="$rmfiles $objdir/$n"
4667 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4668 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4670 if test $mode = uninstall; then
4671 if test -n "$library_names"; then
4672 # Do each command in the postuninstall commands.
4673 eval cmds=\"$postuninstall_cmds\"
4674 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4675 for cmd in $cmds; do
4679 if test $? != 0 && test "$rmforce" != yes; then
4686 if test -n "$old_library"; then
4687 # Do each command in the old_postuninstall commands.
4688 eval cmds=\"$old_postuninstall_cmds\"
4689 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4690 for cmd in $cmds; do
4694 if test $? != 0 && test "$rmforce" != yes; then
4700 # FIXME: should reinstall the best remaining shared library.
4706 if test "$build_old_libs" = yes; then
4707 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
4708 rmfiles="$rmfiles $dir/$oldobj"
4713 # Do a test to see if this is a libtool program.
4714 if test $mode = clean &&
4715 (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4719 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4720 if test "$fast_install" = yes && test -n "$relink_command"; then
4721 rmfiles="$rmfiles $objdir/lt-$name"
4726 $show "$rm $rmfiles"
4727 $run $rm $rmfiles || exit_status=1
4730 # Try to remove the ${objdir}s in the directories where we deleted files
4731 for dir in $rmdirs; do
4732 if test -d "$dir"; then
4734 $run rmdir $dir >/dev/null 2>&1
4742 $echo "$modename: you must specify a MODE" 1>&2
4743 $echo "$generic_help" 1>&2
4748 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4749 $echo "$generic_help" 1>&2
4751 fi # test -z "$show_help"
4753 # We need to display help for each of the modes.
4756 "Usage: $modename [OPTION]... [MODE-ARG]...
4758 Provide generalized library-building support services.
4760 --config show all configuration variables
4761 --debug enable verbose shell tracing
4762 -n, --dry-run display commands without modifying any files
4763 --features display basic configuration information and exit
4764 --finish same as \`--mode=finish'
4765 --help display this help message and exit
4766 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4767 --quiet same as \`--silent'
4768 --silent don't print informational messages
4769 --version print version information
4771 MODE must be one of the following:
4773 clean remove files from the build directory
4774 compile compile a source file into a libtool object
4775 execute automatically set library path, then run a program
4776 finish complete the installation of libtool libraries
4777 install install libraries or executables
4778 link create a library or an executable
4779 uninstall remove libraries from an installed directory
4781 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
4782 a more detailed description of MODE."
4788 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
4790 Remove files from the build directory.
4792 RM is the name of the program to use to delete files associated with each FILE
4793 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4796 If FILE is a libtool library, object or program, all the files associated
4797 with it are deleted. Otherwise, only FILE itself is deleted using RM."
4802 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
4804 Compile a source file into a libtool library object.
4806 This mode accepts the following additional options:
4808 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
4809 -prefer-pic try to building PIC objects only
4810 -prefer-non-pic try to building non-PIC objects only
4811 -static always build a \`.o' file suitable for static linking
4813 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
4814 from the given SOURCEFILE.
4816 The output file name is determined by removing the directory component from
4817 SOURCEFILE, then substituting the C source code suffix \`.c' with the
4818 library object suffix, \`.lo'."
4823 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
4825 Automatically set library path, then run a program.
4827 This mode accepts the following additional options:
4829 -dlopen FILE add the directory containing FILE to the library path
4831 This mode sets the library path environment variable according to \`-dlopen'
4834 If any of the ARGS are libtool executable wrappers, then they are translated
4835 into their corresponding uninstalled binary, and any of their required library
4836 directories are added to the library path.
4838 Then, COMMAND is executed, with ARGS as arguments."
4843 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
4845 Complete the installation of libtool libraries.
4847 Each LIBDIR is a directory that contains libtool libraries.
4849 The commands that this mode executes may require superuser privileges. Use
4850 the \`--dry-run' option if you just want to see what would be executed."
4855 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4857 Install executables or libraries.
4859 INSTALL-COMMAND is the installation command. The first component should be
4860 either the \`install' or \`cp' program.
4862 The rest of the components are interpreted as arguments to that command (only
4863 BSD-compatible install options are recognized)."
4868 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4870 Link object files or libraries together to form another library, or to
4871 create an executable program.
4873 LINK-COMMAND is a command using the C compiler that you would use to create
4874 a program from several object files.
4876 The following components of LINK-COMMAND are treated specially:
4878 -all-static do not do any dynamic linking at all
4879 -avoid-version do not add a version suffix if possible
4880 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4881 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4882 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4883 -export-symbols SYMFILE
4884 try to export only the symbols listed in SYMFILE
4885 -export-symbols-regex REGEX
4886 try to export only the symbols matching REGEX
4887 -LLIBDIR search LIBDIR for required installed libraries
4888 -lNAME OUTPUT-FILE requires the installed library libNAME
4889 -module build a library that can dlopened
4890 -no-fast-install disable the fast-install mode
4891 -no-install link a not-installable executable
4892 -no-undefined declare that a library does not refer to external symbols
4893 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4894 -release RELEASE specify package release information
4895 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4896 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4897 -static do not do any dynamic linking of libtool libraries
4898 -version-info CURRENT[:REVISION[:AGE]]
4899 specify library version info [each variable defaults to 0]
4901 All other options (arguments beginning with \`-') are ignored.
4903 Every other argument is treated as a filename. Files ending in \`.la' are
4904 treated as uninstalled libtool libraries, other files are standard or library
4907 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4908 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4909 required, except when creating a convenience library.
4911 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4912 using \`ar' and \`ranlib', or on Windows using \`lib'.
4914 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4915 is created, otherwise an executable program is created."
4920 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4922 Remove libraries from an installation directory.
4924 RM is the name of the program to use to delete files associated with each FILE
4925 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4928 If FILE is a libtool library, all the files associated with it are deleted.
4929 Otherwise, only FILE itself is deleted using RM."
4933 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4940 $echo "Try \`$modename --help' for more information about other modes."