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 # define SED for historic ltconfig's generated by Libtool 1.3
52 test -z "$SED" && SED=sed
54 # The name of this program.
55 progname=`$echo "$0" | ${SED} 's%^.*/%%'`
62 TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)"
65 help="Try \`$progname --help' for more information."
66 magic="%%%MAGIC variable%%%"
71 # Sed substitution that helps us do robust quoting. It backslashifies
72 # metacharacters that are still active within double-quoted strings.
73 Xsed="${SED}"' -e 1s/^X//'
74 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
75 # test EBCDIC or ASCII
76 case `echo A|od -x` in
77 *[Cc]1*) # EBCDIC based system
78 SP2NL="tr '\100' '\n'"
79 NL2SP="tr '\r\n' '\100\100'"
81 *) # Assume ASCII based system
82 SP2NL="tr '\040' '\012'"
83 NL2SP="tr '\015\012' '\040\040'"
88 # Only set LANG and LC_ALL to C if already set.
89 # These must not be set unconditionally because not all systems understand
90 # e.g. LANG=C (notably SCO).
91 # We save the old values to restore during execute mode.
92 if test "${LC_ALL+set}" = set; then
93 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
95 if test "${LANG+set}" = set; then
96 save_LANG="$LANG"; LANG=C; export LANG
99 # Make sure IFS has a sensible default
102 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
103 echo "$modename: not configured to build any kind of library" 1>&2
104 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
117 lo2o="s/\\.lo\$/.${objext}/"
118 o2lo="s/\\.${objext}\$/.lo/"
120 # Parse our command line options once, thoroughly.
127 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
131 # If the previous option needs an argument, assign it.
132 if test -n "$prev"; then
135 execute_dlfiles="$execute_dlfiles $arg"
147 # Have we seen a non-optional argument yet?
154 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
159 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
164 echo "$progname: enabling shell trace mode"
174 if test "$build_libtool_libs" = yes; then
175 echo "enable shared libraries"
177 echo "disable shared libraries"
179 if test "$build_old_libs" = yes; then
180 echo "enable static libraries"
182 echo "disable static libraries"
187 --finish) mode="finish" ;;
189 --mode) prevopt="--mode" prev=mode ;;
190 --mode=*) mode="$optarg" ;;
192 --preserve-dup-deps) duplicate_deps="yes" ;;
204 $echo "$modename: unrecognized option \`$arg'" 1>&2
216 if test -n "$prevopt"; then
217 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
222 # If this variable is set in any of the actions, the command in it
223 # will be execed at the end. This prevents here-documents from being
224 # left over by shells.
227 if test -z "$show_help"; then
229 # Infer the operation mode.
230 if test -z "$mode"; then
232 *cc | *++ | gcc* | *-gcc* | xlc*)
244 *db | *dbx | *strace | *truss)
254 # If we have no mode, but dlfiles were specified, then do execute mode.
255 test -n "$execute_dlfiles" && mode=execute
257 # Just use the default operation mode.
258 if test -z "$mode"; then
259 if test -n "$nonopt"; then
260 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
262 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
269 # Only execute mode is allowed to have -dlopen flags.
270 if test -n "$execute_dlfiles" && test "$mode" != execute; then
271 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
276 # Change the help message to a mode-specific one.
278 help="Try \`$modename --help --mode=$mode' for more information."
280 # These modes are in order of execution frequency so that they run quickly.
282 # libtool compile mode
284 modename="$modename: compile"
285 # Get the compilation command and the source file.
298 # Aesthetically quote the previous argument.
300 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
303 # Double-quote args containing other shell metacharacters.
304 # Many Bourne shells cannot handle close brackets correctly
305 # in scan sets, so we specify it separately.
306 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
311 # Add the previous argument to base_compile.
312 if test -z "$base_compile"; then
313 base_compile="$lastarg"
315 base_compile="$base_compile $lastarg"
321 # Accept any command-line options.
324 if test "$user_target" != "no"; then
325 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
352 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
354 save_ifs="$IFS"; IFS=','
358 # Double-quote args containing other shell metacharacters.
359 # Many Bourne shells cannot handle close brackets correctly
360 # in scan sets, so we specify it separately.
362 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
366 lastarg="$lastarg $arg"
369 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
371 # Add the arguments to base_compile.
372 if test -z "$base_compile"; then
373 base_compile="$lastarg"
375 base_compile="$base_compile $lastarg"
383 # The next one is the -o target name
388 # We got the output file
395 # Accept the current argument as the source file.
399 # Aesthetically quote the previous argument.
401 # Backslashify any backslashes, double quotes, and dollar signs.
402 # These are the only characters that are still specially
403 # interpreted inside of double-quoted scrings.
404 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
406 # Double-quote args containing other shell metacharacters.
407 # Many Bourne shells cannot handle close brackets correctly
408 # in scan sets, so we specify it separately.
410 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
411 lastarg="\"$lastarg\""
415 # Add the previous argument to base_compile.
416 if test -z "$base_compile"; then
417 base_compile="$lastarg"
419 base_compile="$base_compile $lastarg"
427 # Get the name of the library object.
428 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
431 $echo "$modename: you must specify a target with \`-o'" 1>&2
436 # Recognize several different file suffixes.
437 # If the user specifies -o file.o, it is replaced with file.lo
452 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
455 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
457 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
462 if test -z "$base_compile"; then
463 $echo "$modename: you must specify a compilation command" 1>&2
468 # Delete any leftover library objects.
469 if test "$build_old_libs" = yes; then
470 removelist="$obj $libobj"
476 trap "$run $rm $removelist; exit 1" 1 2 15
478 # On Cygwin there's no "real" PIC flag so we must build both object types
480 cygwin* | mingw* | pw32* | os2*)
484 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
485 # non-PIC code in shared libraries is not supported
489 # Calculate the filename of the output object if compiler does
490 # not support -o with -c
491 if test "$compiler_c_o" = no; then
492 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
493 lockfile="$output_obj.lock"
494 removelist="$removelist $output_obj $lockfile"
495 trap "$run $rm $removelist; exit 1" 1 2 15
501 # Lock this critical section if it is needed
502 # We use this script file to make the link, it avoids creating a new file
503 if test "$need_locks" = yes; then
504 until $run ln "$0" "$lockfile" 2>/dev/null; do
505 $show "Waiting for $lockfile to be removed"
508 elif test "$need_locks" = warn; then
509 if test -f "$lockfile"; then
511 *** ERROR, $lockfile exists and contains:
512 `cat $lockfile 2>/dev/null`
514 This indicates that another process is trying to use the same
515 temporary object file, and libtool could not work around it because
516 your compiler does not support \`-c' and \`-o' together. If you
517 repeat this compilation, it may succeed, by chance, but you had better
518 avoid parallel builds (make -j) in this platform, or get a better
524 echo $srcfile > "$lockfile"
527 if test -n "$fix_srcfile_path"; then
528 eval srcfile=\"$fix_srcfile_path\"
531 # Only build a PIC object if we are building libtool libraries.
532 if test "$build_libtool_libs" = yes; then
533 # Without this assignment, base_compile gets emptied.
534 fbsd_hideous_sh_bug=$base_compile
536 if test "$pic_mode" != no; then
537 # All platforms use -DPIC, to notify preprocessed assembler code.
538 command="$base_compile $srcfile $pic_flag -DPIC"
540 # Don't build PIC code
541 command="$base_compile $srcfile"
543 if test "$build_old_libs" = yes; then
545 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
546 if test "X$dir" = "X$libobj"; then
551 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
553 if test -d "$dir"; then
560 if test $status -ne 0 && test ! -d $dir; then
565 if test "$compiler_o_lo" = yes; then
567 command="$command -o $output_obj"
568 elif test "$compiler_c_o" = yes; then
570 command="$command -o $output_obj"
573 $run $rm "$output_obj"
575 if $run eval "$command"; then :
577 test -n "$output_obj" && $run $rm $removelist
581 if test "$need_locks" = warn &&
582 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
584 *** ERROR, $lockfile contains:
585 `cat $lockfile 2>/dev/null`
587 but it should contain:
590 This indicates that another process is trying to use the same
591 temporary object file, and libtool could not work around it because
592 your compiler does not support \`-c' and \`-o' together. If you
593 repeat this compilation, it may succeed, by chance, but you had better
594 avoid parallel builds (make -j) in this platform, or get a better
601 # Just move the object if needed, then go on to compile the next one
602 if test x"$output_obj" != x"$libobj"; then
603 $show "$mv $output_obj $libobj"
604 if $run $mv $output_obj $libobj; then :
612 # If we have no pic_flag, then copy the object into place and finish.
613 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
614 test "$build_old_libs" = yes; then
615 # Rename the .lo from within objdir to obj
616 if test -f $obj; then
621 $show "$mv $libobj $obj"
622 if $run $mv $libobj $obj; then :
629 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
630 if test "X$xdir" = "X$obj"; then
635 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
636 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
637 # Now arrange that obj and lo_libobj become the same file
638 $show "(cd $xdir && $LN_S $baseobj $libobj)"
639 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
640 # Unlock the critical section if it was locked
641 if test "$need_locks" != no; then
652 # Allow error messages only from the first compilation.
653 suppress_output=' >/dev/null 2>&1'
656 # Only build a position-dependent object if we build old libraries.
657 if test "$build_old_libs" = yes; then
658 if test "$pic_mode" != yes; then
659 # Don't build PIC code
660 command="$base_compile $srcfile"
662 # All platforms use -DPIC, to notify preprocessed assembler code.
663 command="$base_compile $srcfile $pic_flag -DPIC"
665 if test "$compiler_c_o" = yes; then
666 command="$command -o $obj"
670 # Suppress compiler output if we already did a PIC compilation.
671 command="$command$suppress_output"
672 $run $rm "$output_obj"
674 if $run eval "$command"; then :
680 if test "$need_locks" = warn &&
681 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
683 *** ERROR, $lockfile contains:
684 `cat $lockfile 2>/dev/null`
686 but it should contain:
689 This indicates that another process is trying to use the same
690 temporary object file, and libtool could not work around it because
691 your compiler does not support \`-c' and \`-o' together. If you
692 repeat this compilation, it may succeed, by chance, but you had better
693 avoid parallel builds (make -j) in this platform, or get a better
700 # Just move the object if needed
701 if test x"$output_obj" != x"$obj"; then
702 $show "$mv $output_obj $obj"
703 if $run $mv $output_obj $obj; then :
711 # Create an invalid libtool object if no PIC, so that we do not
712 # accidentally link it into a program.
713 if test "$build_libtool_libs" != yes; then
714 $show "echo timestamp > $libobj"
715 $run eval "echo timestamp > \$libobj" || exit $?
717 # Move the .lo from within objdir
718 $show "$mv $libobj $lo_libobj"
719 if $run $mv $libobj $lo_libobj; then :
728 # Unlock the critical section if it was locked
729 if test "$need_locks" != no; then
738 modename="$modename: link"
740 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
741 # It is impossible to link a dll without this setting, and
742 # we shouldn't force the makefile maintainer to figure out
743 # which system we are compiling for in order to pass an extra
744 # flag for every libtool invokation.
747 # FIXME: Unfortunately, there are problems with the above when trying
748 # to make a dll which has undefined symbols, in which case not
749 # even a static library is built. For now, we need to specify
750 # -no-undefined on the libtool link line when we can be certain
751 # that all symbols are satisfied, otherwise we get a static library.
758 libtool_args="$nonopt"
759 compile_command="$nonopt"
760 finalize_command="$nonopt"
773 lib_search_path=`pwd`
782 export_symbols_regex=
789 prefer_static_libs=no
801 # We need to know -static, to get the right output filenames.
805 -all-static | -static)
806 if test "X$arg" = "X-all-static"; then
807 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
808 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
810 if test -n "$link_static_flag"; then
811 dlopen_self=$dlopen_self_static
814 if test -z "$pic_flag" && test -n "$link_static_flag"; then
815 dlopen_self=$dlopen_self_static
818 build_libtool_libs=no
820 prefer_static_libs=yes
826 # See if our shared archives depend on static archives.
827 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
829 # Go through the arguments, transforming them on the way.
830 while test $# -gt 0; do
834 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
835 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
839 libtool_args="$libtool_args $qarg"
841 # If the previous option needs an argument, assign it.
842 if test -n "$prev"; then
845 compile_command="$compile_command @OUTPUT@"
846 finalize_command="$finalize_command @OUTPUT@"
852 if test "$preload" = no; then
853 # Add the symbol object into the linking commands.
854 compile_command="$compile_command @SYMFILE@"
855 finalize_command="$finalize_command @SYMFILE@"
859 *.la | *.lo) ;; # We handle these cases below.
861 if test "$dlself" = no; then
869 if test "$prev" = dlprefiles; then
871 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
881 if test "$prev" = dlfiles; then
882 dlfiles="$dlfiles $arg"
884 dlprefiles="$dlprefiles $arg"
892 export_symbols="$arg"
893 if test ! -f "$arg"; then
894 $echo "$modename: symbol file \`$arg' does not exist"
901 export_symbols_regex="$arg"
906 inst_prefix_dir="$arg"
916 # We need an absolute path.
918 [\\/]* | [A-Za-z]:[\\/]*) ;;
920 $echo "$modename: only absolute run-paths are allowed" 1>&2
924 if test "$prev" = rpath; then
927 *) rpath="$rpath $arg" ;;
932 *) xrpath="$xrpath $arg" ;;
939 compiler_flags="$compiler_flags $qarg"
941 compile_command="$compile_command $qarg"
942 finalize_command="$finalize_command $qarg"
946 linker_flags="$linker_flags $qarg"
947 compiler_flags="$compiler_flags $wl$qarg"
949 compile_command="$compile_command $wl$qarg"
950 finalize_command="$finalize_command $wl$qarg"
954 eval "$prev=\"\$arg\""
965 if test -n "$link_static_flag"; then
966 compile_command="$compile_command $link_static_flag"
967 finalize_command="$finalize_command $link_static_flag"
973 # FIXME: remove this flag sometime in the future.
974 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
998 -export-symbols | -export-symbols-regex)
999 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1000 $echo "$modename: more than one -exported-symbols argument is not allowed"
1003 if test "X$arg" = "X-export-symbols"; then
1016 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1017 # so, if we see these flags be careful not to treat them like -L
1019 case $with_gcc/$host in
1020 no/*-*-irix* | no/*-*-nonstopux*)
1021 compile_command="$compile_command $arg"
1022 finalize_command="$finalize_command $arg"
1029 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1030 # We need an absolute path.
1032 [\\/]* | [A-Za-z]:[\\/]*) ;;
1034 absdir=`cd "$dir" && pwd`
1035 if test -z "$absdir"; then
1036 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1045 deplibs="$deplibs -L$dir"
1046 lib_search_path="$lib_search_path $dir"
1050 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1051 case :$dllsearchpath: in
1053 *) dllsearchpath="$dllsearchpath:$dir";;
1061 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1063 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1064 # These systems don't actually have a C or math library (as such)
1067 *-*-mingw* | *-*-os2*)
1068 # These systems don't actually have a C library (as such)
1069 test "X$arg" = "X-lc" && continue
1071 *-*-openbsd* | *-*-freebsd*)
1072 # Do not include libc due to us having libc/libc_r.
1073 test "X$arg" = "X-lc" && continue
1076 elif test "X$arg" = "X-lc_r"; then
1078 *-*-openbsd* | *-*-freebsd*)
1079 # Do not include libc_r directly, use -pthread flag.
1084 deplibs="$deplibs $arg"
1100 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1101 # The PATH hackery in wrapper scripts is required on Windows
1102 # in order for the loader to find any dlls it needs.
1103 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1104 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1107 *) no_install=yes ;;
1135 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1136 # We need an absolute path.
1138 [\\/]* | [A-Za-z]:[\\/]*) ;;
1140 $echo "$modename: only absolute run-paths are allowed" 1>&2
1146 *) xrpath="$xrpath $dir" ;;
1152 # The effects of -static are defined in a previous loop.
1153 # We used to do the same as -all-static on platforms that
1154 # didn't have a PIC flag, but the assumption that the effects
1155 # would be equivalent was wrong. It would break on at least
1156 # Digital Unix and AIX.
1171 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1173 save_ifs="$IFS"; IFS=','
1174 for flag in $args; do
1177 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1182 compiler_flags="$compiler_flags $flag"
1185 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1189 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1191 save_ifs="$IFS"; IFS=','
1192 for flag in $args; do
1195 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1200 compiler_flags="$compiler_flags $wl$flag"
1201 linker_flags="$linker_flags $flag"
1204 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1217 -Kthread | -mthreads | -mt | -pthread | -pthreads | -threads | -qthreaded | -kthread )
1218 compiler_flags="$compiler_flags $arg"
1222 # Some other compiler flag.
1224 # Unknown arguments in both finalize_command and compile_command need
1225 # to be aesthetically quoted because they are evaled later.
1226 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1228 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1235 # A library or standard object.
1236 if test "$prev" = dlfiles; then
1237 # This file was specified with -dlopen.
1238 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1239 dlfiles="$dlfiles $arg"
1243 # If libtool objects are unsupported, then we need to preload.
1248 if test "$prev" = dlprefiles; then
1249 # Preload the old-style object.
1250 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1254 *.lo) libobjs="$libobjs $arg" ;;
1255 *) objs="$objs $arg" ;;
1262 deplibs="$deplibs $arg"
1263 old_deplibs="$old_deplibs $arg"
1268 # A libtool-controlled library.
1270 if test "$prev" = dlfiles; then
1271 # This library was specified with -dlopen.
1272 dlfiles="$dlfiles $arg"
1274 elif test "$prev" = dlprefiles; then
1275 # The library was specified with -dlpreopen.
1276 dlprefiles="$dlprefiles $arg"
1279 deplibs="$deplibs $arg"
1284 # Some other compiler argument.
1286 # Unknown arguments in both finalize_command and compile_command need
1287 # to be aesthetically quoted because they are evaled later.
1288 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1290 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1297 # Now actually substitute the argument into the commands.
1298 if test -n "$arg"; then
1299 compile_command="$compile_command $arg"
1300 finalize_command="$finalize_command $arg"
1302 done # argument parsing loop
1304 if test -n "$prev"; then
1305 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1310 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1311 eval arg=\"$export_dynamic_flag_spec\"
1312 compile_command="$compile_command $arg"
1313 finalize_command="$finalize_command $arg"
1316 # calculate the name of the file, without its directory
1317 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1318 libobjs_save="$libobjs"
1320 if test -n "$shlibpath_var"; then
1321 # get the directories listed in $shlibpath_var
1322 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1326 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1327 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1329 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1330 if test "X$output_objdir" = "X$output"; then
1331 output_objdir="$objdir"
1333 output_objdir="$output_objdir/$objdir"
1335 # Create the object directory.
1336 if test ! -d $output_objdir; then
1337 $show "$mkdir $output_objdir"
1338 $run $mkdir $output_objdir
1340 if test $status -ne 0 && test ! -d $output_objdir; then
1345 # Determine the type of output
1348 $echo "$modename: you must specify an output file" 1>&2
1352 *.$libext) linkmode=oldlib ;;
1353 *.lo | *.$objext) linkmode=obj ;;
1354 *.la) linkmode=lib ;;
1355 *) linkmode=prog ;; # Anything else should be a program.
1360 # Find all interdependent deplibs by searching for libraries
1361 # that are linked more than once (e.g. -la -lb -la)
1362 for deplib in $deplibs; do
1363 if test "X$duplicate_deps" = "Xyes" ; then
1365 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1368 libs="$libs $deplib"
1373 need_relink=no # whether we're linking any uninstalled libtool libraries
1374 notinst_deplibs= # not-installed libtool libraries
1375 notinst_path= # paths that contain not-installed libtool libraries
1379 for file in $dlfiles $dlprefiles; do
1383 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1395 passes="conv scan dlopen dlpreopen link"
1400 for pass in $passes; do
1401 if test "$linkmode" = prog; then
1402 # Determine which files to process
1406 save_deplibs="$deplibs" # Collect dlpreopened libraries
1409 dlpreopen) libs="$dlprefiles" ;;
1410 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1413 for deplib in $libs; do
1418 if test "$linkmode" = oldlib && test "$linkmode" = obj; then
1419 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1422 if test "$pass" = conv; then
1423 deplibs="$deplib $deplibs"
1426 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1427 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1428 # Search the libtool library
1429 lib="$searchdir/lib${name}.la"
1430 if test -f "$lib"; then
1435 if test "$found" != yes; then
1436 # deplib doesn't seem to be a libtool library
1437 if test "$linkmode,$pass" = "prog,link"; then
1438 compile_deplibs="$deplib $compile_deplibs"
1439 finalize_deplibs="$deplib $finalize_deplibs"
1441 deplibs="$deplib $deplibs"
1442 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1450 deplibs="$deplib $deplibs"
1451 test "$pass" = conv && continue
1452 newdependency_libs="$deplib $newdependency_libs"
1453 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1456 if test "$pass" = conv; then
1457 deplibs="$deplib $deplibs"
1460 if test "$pass" = scan; then
1461 deplibs="$deplib $deplibs"
1462 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1464 compile_deplibs="$deplib $compile_deplibs"
1465 finalize_deplibs="$deplib $finalize_deplibs"
1469 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1475 if test "$pass" = link; then
1476 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1477 # Make sure the xrpath contains only unique directories.
1480 *) xrpath="$xrpath $dir" ;;
1483 deplibs="$deplib $deplibs"
1486 *.la) lib="$deplib" ;;
1488 if test "$pass" = conv; then
1489 deplibs="$deplib $deplibs"
1494 if test "$deplibs_check_method" != pass_all; then
1496 echo "*** Warning: Trying to link with static lib archive $deplib."
1497 echo "*** I have the capability to make that library automatically link in when"
1498 echo "*** you link to this library. But I can only do this if you have a"
1499 echo "*** shared version of the library, which you do not appear to have"
1500 echo "*** because the file extensions .$libext of this argument makes me believe"
1501 echo "*** that it is just a static archive that I should not used here."
1504 echo "*** Warning: Linking the shared library $output against the"
1505 echo "*** static library $deplib is not portable!"
1506 deplibs="$deplib $deplibs"
1511 if test "$pass" != link; then
1512 deplibs="$deplib $deplibs"
1514 compile_deplibs="$deplib $compile_deplibs"
1515 finalize_deplibs="$deplib $finalize_deplibs"
1522 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1523 # If there is no dlopen support or we're linking statically,
1524 # we need to preload.
1525 newdlprefiles="$newdlprefiles $deplib"
1526 compile_deplibs="$deplib $compile_deplibs"
1527 finalize_deplibs="$deplib $finalize_deplibs"
1529 newdlfiles="$newdlfiles $deplib"
1538 if test "$found" = yes || test -f "$lib"; then :
1540 $echo "$modename: cannot find the library \`$lib'" 1>&2
1544 # Check to see that this really is a libtool archive.
1545 if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1547 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1551 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1552 test "X$ladir" = "X$lib" && ladir="."
1560 # If the library was installed with an old release of libtool,
1561 # it will not redefine variable installed.
1566 */* | *\\*) . $lib ;;
1570 if test "$linkmode,$pass" = "lib,link" ||
1571 test "$linkmode,$pass" = "prog,scan" ||
1572 { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then
1573 # Add dl[pre]opened files of deplib
1574 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1575 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1578 if test "$pass" = conv; then
1579 # Only check for convenience libraries
1580 deplibs="$lib $deplibs"
1581 if test -z "$libdir"; then
1582 if test -z "$old_library"; then
1583 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1586 # It is a libtool convenience library, so add in its objects.
1587 convenience="$convenience $ladir/$objdir/$old_library"
1588 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1590 for deplib in $dependency_libs; do
1591 deplibs="$deplib $deplibs"
1592 if test "X$duplicate_deps" = "Xyes" ; then
1593 case "$tmp_libs " in
1594 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1597 tmp_libs="$tmp_libs $deplib"
1599 elif test "$linkmode" != prog && test "$linkmode" != lib; then
1600 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1606 # Get the name of the library we link against.
1608 for l in $old_library $library_names; do
1611 if test -z "$linklib"; then
1612 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1616 # This library was specified with -dlopen.
1617 if test "$pass" = dlopen; then
1618 if test -z "$libdir"; then
1619 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1622 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1623 # If there is no dlname, no dlopen support or we're linking
1624 # statically, we need to preload.
1625 dlprefiles="$dlprefiles $lib"
1627 newdlfiles="$newdlfiles $lib"
1632 # We need an absolute path.
1634 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1636 abs_ladir=`cd "$ladir" && pwd`
1637 if test -z "$abs_ladir"; then
1638 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1639 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1644 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1646 # Find the relevant object directory and library name.
1647 if test "X$installed" = Xyes; then
1648 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1649 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1658 dir="$ladir/$objdir"
1659 absdir="$abs_ladir/$objdir"
1660 # Remove this search path later
1661 notinst_path="$notinst_path $abs_ladir"
1662 fi # $installed = yes
1663 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1665 # This library was specified with -dlpreopen.
1666 if test "$pass" = dlpreopen; then
1667 if test -z "$libdir"; then
1668 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1671 # Prefer using a static library (so that no silly _DYNAMIC symbols
1672 # are required to link).
1673 if test -n "$old_library"; then
1674 newdlprefiles="$newdlprefiles $dir/$old_library"
1675 # Otherwise, use the dlname, so that lt_dlopen finds it.
1676 elif test -n "$dlname"; then
1677 newdlprefiles="$newdlprefiles $dir/$dlname"
1679 newdlprefiles="$newdlprefiles $dir/$linklib"
1681 fi # $pass = dlpreopen
1683 if test -z "$libdir"; then
1684 # Link the convenience library
1685 if test "$linkmode" = lib; then
1686 deplibs="$dir/$old_library $deplibs"
1687 elif test "$linkmode,$pass" = "prog,link"; then
1688 compile_deplibs="$dir/$old_library $compile_deplibs"
1689 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1691 deplibs="$lib $deplibs"
1696 if test "$linkmode" = prog && test "$pass" != link; then
1697 newlib_search_path="$newlib_search_path $ladir"
1698 deplibs="$lib $deplibs"
1701 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1702 test "$build_libtool_libs" = no; then
1707 for deplib in $dependency_libs; do
1709 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1711 # Need to link against all dependency_libs?
1712 if test "$linkalldeplibs" = yes; then
1713 deplibs="$deplib $deplibs"
1715 # Need to hardcode shared library paths
1716 # or/and link against static libraries
1717 newdependency_libs="$deplib $newdependency_libs"
1719 if test "X$duplicate_deps" = "Xyes" ; then
1720 case "$tmp_libs " in
1721 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1724 tmp_libs="$tmp_libs $deplib"
1727 fi # $linkmode = prog...
1729 link_static=no # Whether the deplib will be linked statically
1730 if test -n "$library_names" &&
1731 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1732 # Link against this shared library
1734 if test "$linkmode,$pass" = "prog,link" ||
1735 { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then
1736 # Hardcode the library path.
1737 # Skip directories that are in the system default run-time
1739 case " $sys_lib_dlsearch_path " in
1742 case "$compile_rpath " in
1744 *) compile_rpath="$compile_rpath $absdir"
1748 case " $sys_lib_dlsearch_path " in
1751 case "$finalize_rpath " in
1753 *) finalize_rpath="$finalize_rpath $libdir"
1757 if test "$linkmode" = prog; then
1758 # We need to hardcode the library path
1759 if test -n "$shlibpath_var"; then
1760 # Make sure the rpath contains only unique directories.
1761 case "$temp_rpath " in
1764 *) temp_rpath="$temp_rpath $dir" ;;
1768 fi # $linkmode,$pass = prog,link...
1770 if test "$alldeplibs" = yes &&
1771 { test "$deplibs_check_method" = pass_all ||
1772 { test "$build_libtool_libs" = yes &&
1773 test -n "$library_names"; }; }; then
1774 # We only need to search for static libraries
1778 if test "$installed" = no; then
1779 notinst_deplibs="$notinst_deplibs $lib"
1783 if test -n "$old_archive_from_expsyms_cmds"; then
1784 # figure out the soname
1785 set dummy $library_names
1788 libname=`eval \\$echo \"$libname_spec\"`
1789 # use dlname if we got it. it's perfectly good, no?
1790 if test -n "$dlname"; then
1792 elif test -n "$soname_spec"; then
1796 major=`expr $current - $age`
1800 eval soname=\"$soname_spec\"
1805 # Make a new name for the extract_expsyms_cmds to use
1807 soname=`echo $soroot | ${SED} -e 's/^.*\///'`
1808 newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
1810 # If the library has no export list, then create one now
1811 if test -f "$output_objdir/$soname-def"; then :
1813 $show "extracting exported symbol list from \`$soname'"
1814 save_ifs="$IFS"; IFS='~'
1815 eval cmds=\"$extract_expsyms_cmds\"
1816 for cmd in $cmds; do
1819 $run eval "$cmd" || exit $?
1825 if test -f "$output_objdir/$newlib"; then :; else
1826 $show "generating import library for \`$soname'"
1827 save_ifs="$IFS"; IFS='~'
1828 eval cmds=\"$old_archive_from_expsyms_cmds\"
1829 for cmd in $cmds; do
1832 $run eval "$cmd" || exit $?
1836 # make sure the library variables are pointing to the new library
1839 fi # test -n $old_archive_from_expsyms_cmds
1841 if test "$linkmode" = prog || test "$mode" != relink; then
1846 case $hardcode_action in
1847 immediate | unsupported)
1848 if test "$hardcode_direct" = no; then
1850 elif test "$hardcode_minus_L" = no; then
1852 *-*-sunos*) add_shlibpath="$dir" ;;
1856 elif test "$hardcode_shlibpath_var" = no; then
1857 add_shlibpath="$dir"
1864 if test "$hardcode_direct" = yes; then
1866 elif test "$hardcode_minus_L" = yes; then
1869 elif test "$hardcode_shlibpath_var" = yes; then
1870 add_shlibpath="$dir"
1879 if test "$lib_linked" != yes; then
1880 $echo "$modename: configuration error: unsupported hardcode properties"
1884 if test -n "$add_shlibpath"; then
1885 case :$compile_shlibpath: in
1886 *":$add_shlibpath:"*) ;;
1887 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1890 if test "$linkmode" = prog; then
1891 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1892 test -n "$add" && compile_deplibs="$add $compile_deplibs"
1894 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1895 test -n "$add" && deplibs="$add $deplibs"
1896 if test "$hardcode_direct" != yes && \
1897 test "$hardcode_minus_L" != yes && \
1898 test "$hardcode_shlibpath_var" = yes; then
1899 case :$finalize_shlibpath: in
1901 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1907 if test "$linkmode" = prog || test "$mode" = relink; then
1911 # Finalize command for both is simple: just hardcode it.
1912 if test "$hardcode_direct" = yes; then
1913 add="$libdir/$linklib"
1914 elif test "$hardcode_minus_L" = yes; then
1915 # Try looking first in the location we're being installed to.
1917 if test -n "$inst_prefix_dir"; then
1920 add_dir="-L$inst_prefix_dir$libdir"
1924 add_dir="$add_dir -L$libdir"
1926 elif test "$hardcode_shlibpath_var" = yes; then
1927 case :$finalize_shlibpath: in
1929 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1933 # We cannot seem to hardcode it, guess we'll fake it.
1934 # Try looking first in the location we're being installed to.
1936 if test -n "$inst_prefix_dir"; then
1939 add_dir="-L$inst_prefix_dir$libdir"
1943 add_dir="$add_dir -L$libdir"
1947 if test "$linkmode" = prog; then
1948 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
1949 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
1951 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1952 test -n "$add" && deplibs="$add $deplibs"
1955 elif test "$linkmode" = prog; then
1956 if test "$alldeplibs" = yes &&
1957 { test "$deplibs_check_method" = pass_all ||
1958 { test "$build_libtool_libs" = yes &&
1959 test -n "$library_names"; }; }; then
1960 # We only need to search for static libraries
1964 # Try to link the static library
1965 # Here we assume that one of hardcode_direct or hardcode_minus_L
1966 # is not unsupported. This is valid on all known static and
1968 if test "$hardcode_direct" != unsupported; then
1969 test -n "$old_library" && linklib="$old_library"
1970 compile_deplibs="$dir/$linklib $compile_deplibs"
1971 finalize_deplibs="$dir/$linklib $finalize_deplibs"
1973 compile_deplibs="-l$name -L$dir $compile_deplibs"
1974 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
1976 elif test "$build_libtool_libs" = yes; then
1977 # Not a shared library
1978 if test "$deplibs_check_method" != pass_all; then
1979 # We're trying link a shared library against a static one
1980 # but the system doesn't support it.
1982 # Just print a warning and add the library to dependency_libs so
1983 # that the program can be linked against the static library.
1985 echo "*** Warning: This system can not link to static lib archive $lib."
1986 echo "*** I have the capability to make that library automatically link in when"
1987 echo "*** you link to this library. But I can only do this if you have a"
1988 echo "*** shared version of the library, which you do not appear to have."
1989 if test "$module" = yes; then
1990 echo "*** But as you try to build a module library, libtool will still create "
1991 echo "*** a static module, that should work as long as the dlopening application"
1992 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
1993 if test -z "$global_symbol_pipe"; then
1995 echo "*** However, this would only work if libtool was able to extract symbol"
1996 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1997 echo "*** not find such a program. So, this module is probably useless."
1998 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2000 if test "$build_old_libs" = no; then
2001 build_libtool_libs=module
2004 build_libtool_libs=no
2008 convenience="$convenience $dir/$old_library"
2009 old_convenience="$old_convenience $dir/$old_library"
2010 deplibs="$dir/$old_library $deplibs"
2013 fi # link shared/static library?
2015 if test "$linkmode" = lib; then
2016 if test -n "$dependency_libs" &&
2017 { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
2018 test "$link_static" = yes; }; then
2019 # Extract -R from dependency_libs
2021 for libdir in $dependency_libs; do
2023 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2025 *" $temp_xrpath "*) ;;
2026 *) xrpath="$xrpath $temp_xrpath";;
2028 *) temp_deplibs="$temp_deplibs $libdir";;
2031 dependency_libs="$temp_deplibs"
2034 newlib_search_path="$newlib_search_path $absdir"
2035 # Link against this library
2036 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2037 # ... and its dependency_libs
2039 for deplib in $dependency_libs; do
2040 newdependency_libs="$deplib $newdependency_libs"
2041 if test "X$duplicate_deps" = "Xyes" ; then
2042 case "$tmp_libs " in
2043 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2046 tmp_libs="$tmp_libs $deplib"
2049 if test "$link_all_deplibs" != no; then
2050 # Add the search paths of all dependency libraries
2051 for deplib in $dependency_libs; do
2053 -L*) path="$deplib" ;;
2055 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2056 test "X$dir" = "X$deplib" && dir="."
2057 # We need an absolute path.
2059 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2061 absdir=`cd "$dir" && pwd`
2062 if test -z "$absdir"; then
2063 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2068 if grep "^installed=no" $deplib > /dev/null; then
2069 path="-L$absdir/$objdir"
2071 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2072 if test -z "$libdir"; then
2073 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2076 if test "$absdir" != "$libdir"; then
2077 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2084 case " $deplibs " in
2086 *) deplibs="$deplibs $path" ;;
2089 fi # link_all_deplibs != no
2091 done # for deplib in $libs
2092 if test "$pass" = dlpreopen; then
2093 # Link the dlpreopened libraries before other libraries
2094 for deplib in $save_deplibs; do
2095 deplibs="$deplib $deplibs"
2098 if test "$pass" != dlopen; then
2099 test "$pass" != scan && dependency_libs="$newdependency_libs"
2100 if test "$pass" != conv; then
2101 # Make sure lib_search_path contains only unique directories.
2103 for dir in $newlib_search_path; do
2104 case "$lib_search_path " in
2106 *) lib_search_path="$lib_search_path $dir" ;;
2112 if test "$linkmode,$pass" != "prog,link"; then
2115 vars="compile_deplibs finalize_deplibs"
2117 for var in $vars dependency_libs; do
2118 # Add libraries to $var in reverse order
2119 eval tmp_libs=\"\$$var\"
2121 for deplib in $tmp_libs; do
2123 -L*) new_libs="$deplib $new_libs" ;;
2125 case " $specialdeplibs " in
2126 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2128 case " $new_libs " in
2130 *) new_libs="$deplib $new_libs" ;;
2138 for deplib in $new_libs; do
2141 case " $tmp_libs " in
2143 *) tmp_libs="$tmp_libs $deplib" ;;
2146 *) tmp_libs="$tmp_libs $deplib" ;;
2149 eval $var=\"$tmp_libs\"
2152 if test "$pass" = "conv" &&
2153 { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2154 libs="$deplibs" # reset libs
2158 if test "$linkmode" = prog; then
2159 dlfiles="$newdlfiles"
2160 dlprefiles="$newdlprefiles"
2165 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2166 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2169 if test -n "$rpath"; then
2170 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2173 if test -n "$xrpath"; then
2174 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2177 if test -n "$vinfo"; then
2178 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2181 if test -n "$release"; then
2182 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2185 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2186 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2189 # Now set the variables for building old libraries.
2190 build_libtool_libs=no
2192 objs="$objs$old_deplibs"
2196 # Make sure we only generate libraries of the form `libNAME.la'.
2199 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2200 eval libname=\"$libname_spec\"
2203 if test "$module" = no; then
2204 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2208 if test "$need_lib_prefix" != no; then
2209 # Add the "lib" prefix for modules if required
2210 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2211 eval libname=\"$libname_spec\"
2213 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2218 if test -n "$objs"; then
2219 if test "$deplibs_check_method" != pass_all; then
2220 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2224 echo "*** Warning: Linking the shared library $output against the non-libtool"
2225 echo "*** objects $objs is not portable!"
2226 libobjs="$libobjs $objs"
2230 if test "$dlself" != no; then
2231 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2235 if test $# -gt 2; then
2236 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2241 if test -z "$rpath"; then
2242 if test "$build_libtool_libs" = yes; then
2243 # Building a libtool convenience library.
2245 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2246 build_libtool_libs=convenience
2250 if test -n "$vinfo"; then
2251 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2254 if test -n "$release"; then
2255 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2259 # Parse the version information argument.
2260 save_ifs="$IFS"; IFS=':'
2261 set dummy $vinfo 0 0 0
2264 if test -n "$8"; then
2265 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2274 # Check that each of the things are valid numbers.
2278 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2279 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2287 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2288 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2296 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2297 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2302 if test $age -gt $current; then
2303 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2304 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2308 # Calculate the version variables.
2312 case $version_type in
2316 # Like Linux, but with the current version available in
2317 # verstring for coding it into the library header
2318 major=.`expr $current - $age`
2319 versuffix="$major.$age.$revision"
2320 # Darwin ld doesn't like 0 for these options...
2321 minor_current=`expr $current + 1`
2322 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2327 versuffix=".$current.$revision";
2332 versuffix=".$current";
2336 major=`expr $current - $age + 1`
2338 case $version_type in
2339 nonstopux) verstring_prefix=nonstopux ;;
2340 *) verstring_prefix=sgi ;;
2342 verstring="$verstring_prefix$major.$revision"
2344 # Add in all the interfaces that we are compatible with.
2346 while test $loop != 0; do
2347 iface=`expr $revision - $loop`
2348 loop=`expr $loop - 1`
2349 verstring="$verstring_prefix$major.$iface:$verstring"
2352 # Before this point, $major must not contain `.'.
2354 versuffix="$major.$revision"
2358 major=.`expr $current - $age`
2359 versuffix="$major.$age.$revision"
2363 major=.`expr $current - $age`
2364 versuffix=".$current.$age.$revision"
2365 verstring="$current.$age.$revision"
2367 # Add in all the interfaces that we are compatible with.
2369 while test $loop != 0; do
2370 iface=`expr $current - $loop`
2371 loop=`expr $loop - 1`
2372 verstring="$verstring:${iface}.0"
2375 # Make executables depend on our current version.
2376 verstring="$verstring:${current}.0"
2381 versuffix=".$current.$revision"
2385 # Use '-' rather than '.', since we only want one
2386 # extension on DOS 8.3 filesystems.
2387 major=`expr $current - $age`
2392 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2393 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2398 # Clear the version info if we defaulted, and they specified a release.
2399 if test -z "$vinfo" && test -n "$release"; then
2402 case $version_type in
2404 # we can't check for "0.0" in archive_cmds due to quoting
2405 # problems, so we reset it completely
2412 if test "$need_version" = no; then
2419 # Remove version info from name if versioning should be avoided
2420 if test "$avoid_version" = yes && test "$need_version" = no; then
2426 # Check to see if the archive will have undefined symbols.
2427 if test "$allow_undefined" = yes; then
2428 if test "$allow_undefined_flag" = unsupported; then
2429 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2430 build_libtool_libs=no
2434 # Don't allow undefined symbols.
2435 allow_undefined_flag="$no_undefined_flag"
2439 if test "$mode" != relink; then
2440 # Remove our outputs.
2441 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2442 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2445 # Now set the variables for building old libraries.
2446 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2447 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2449 # Transform .lo files to .o files.
2450 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2453 # Eliminate all temporary directories.
2454 for path in $notinst_path; do
2455 lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
2456 deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
2457 dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
2460 if test -n "$xrpath"; then
2461 # If the user specified any rpath flags, then add them.
2463 for libdir in $xrpath; do
2464 temp_xrpath="$temp_xrpath -R$libdir"
2465 case "$finalize_rpath " in
2467 *) finalize_rpath="$finalize_rpath $libdir" ;;
2470 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
2471 dependency_libs="$temp_xrpath $dependency_libs"
2475 # Make sure dlfiles contains only unique files that won't be dlpreopened
2476 old_dlfiles="$dlfiles"
2478 for lib in $old_dlfiles; do
2479 case " $dlprefiles $dlfiles " in
2481 *) dlfiles="$dlfiles $lib" ;;
2485 # Make sure dlprefiles contains only unique files
2486 old_dlprefiles="$dlprefiles"
2488 for lib in $old_dlprefiles; do
2489 case "$dlprefiles " in
2491 *) dlprefiles="$dlprefiles $lib" ;;
2495 if test "$build_libtool_libs" = yes; then
2496 if test -n "$rpath"; then
2498 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2499 # these systems don't actually have a c library (as such)!
2501 *-*-rhapsody* | *-*-darwin1.[012])
2502 # Rhapsody C library is in the System framework
2503 deplibs="$deplibs -framework System"
2506 # Don't link with libc until the a.out ld.so is fixed.
2508 *-*-openbsd* | *-*-freebsd*)
2509 # Do not include libc due to us having libc/libc_r.
2512 # Add libc to deplibs on all other systems if necessary.
2513 if test "$build_libtool_need_lc" = "yes"; then
2514 deplibs="$deplibs -lc"
2520 # Transform deplibs into only deplibs that can be linked in shared.
2522 libname_save=$libname
2523 release_save=$release
2524 versuffix_save=$versuffix
2526 # I'm not sure if I'm treating the release correctly. I think
2527 # release should show up in the -l (ie -lgmp5) so we don't want to
2528 # add it in twice. Is that correct?
2534 case $deplibs_check_method in
2536 # Don't check for shared/static. Everything works.
2537 # This might be a little naive. We might want to check
2538 # whether the library exists or not. But this is on
2539 # osf3 & osf4 and I'm not really sure... Just
2540 # implementing what was already the behaviour.
2544 # This code stresses the "libraries are programs" paradigm to its
2545 # limits. Maybe even breaks it. We compile a program, linking it
2546 # against the deplibs as a proxy for the library. Then we can check
2547 # whether they linked in statically or dynamically with ldd.
2549 cat > conftest.c <<EOF
2550 int main() { return 0; }
2553 $CC -o conftest conftest.c $deplibs
2554 if test $? -eq 0 ; then
2555 ldd_output=`ldd conftest`
2556 for i in $deplibs; do
2557 name="`expr $i : '-l\(.*\)'`"
2558 # If $name is empty we are operating on a -L argument.
2559 if test -n "$name" && test "$name" != "0"; then
2560 libname=`eval \\$echo \"$libname_spec\"`
2561 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2562 set dummy $deplib_matches
2564 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2565 newdeplibs="$newdeplibs $i"
2569 echo "*** Warning: dynamic linker does not accept needed library $i."
2570 echo "*** I have the capability to make that library automatically link in when"
2571 echo "*** you link to this library. But I can only do this if you have a"
2572 echo "*** shared version of the library, which I believe you do not have"
2573 echo "*** because a test_compile did reveal that the linker did not use it for"
2574 echo "*** its dynamic dependency list that programs get resolved with at runtime."
2577 newdeplibs="$newdeplibs $i"
2581 # Error occured in the first compile. Let's try to salvage
2582 # the situation: Compile a separate program for each library.
2583 for i in $deplibs; do
2584 name="`expr $i : '-l\(.*\)'`"
2585 # If $name is empty we are operating on a -L argument.
2586 if test -n "$name" && test "$name" != "0"; then
2588 $CC -o conftest conftest.c $i
2590 if test $? -eq 0 ; then
2591 ldd_output=`ldd conftest`
2592 libname=`eval \\$echo \"$libname_spec\"`
2593 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2594 set dummy $deplib_matches
2596 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2597 newdeplibs="$newdeplibs $i"
2601 echo "*** Warning: dynamic linker does not accept needed library $i."
2602 echo "*** I have the capability to make that library automatically link in when"
2603 echo "*** you link to this library. But I can only do this if you have a"
2604 echo "*** shared version of the library, which you do not appear to have"
2605 echo "*** because a test_compile did reveal that the linker did not use this one"
2606 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
2611 echo "*** Warning! Library $i is needed by this library but I was not able to"
2612 echo "*** make it link in! You will probably need to install it or some"
2613 echo "*** library that it depends on before this library will be fully"
2614 echo "*** functional. Installing it before continuing would be even better."
2617 newdeplibs="$newdeplibs $i"
2623 set dummy $deplibs_check_method
2624 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2625 for a_deplib in $deplibs; do
2626 name="`expr $a_deplib : '-l\(.*\)'`"
2627 # If $name is empty we are operating on a -L argument.
2628 if test -n "$name" && test "$name" != "0"; then
2629 libname=`eval \\$echo \"$libname_spec\"`
2630 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2631 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2632 for potent_lib in $potential_libs; do
2633 # Follow soft links.
2634 if ls -lLd "$potent_lib" 2>/dev/null \
2635 | grep " -> " >/dev/null; then
2638 # The statement above tries to avoid entering an
2639 # endless loop below, in case of cyclic links.
2640 # We might still enter an endless loop, since a link
2641 # loop can be closed while we follow links,
2643 potlib="$potent_lib"
2644 while test -h "$potlib" 2>/dev/null; do
2645 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
2647 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2648 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2651 # It is ok to link against an archive when
2652 # building a shared library.
2653 if $AR -t $potlib > /dev/null 2>&1; then
2654 newdeplibs="$newdeplibs $a_deplib"
2658 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2660 | egrep "$file_magic_regex" > /dev/null; then
2661 newdeplibs="$newdeplibs $a_deplib"
2667 if test -n "$a_deplib" ; then
2670 echo "*** Warning: linker path does not have real file for library $a_deplib."
2671 echo "*** I have the capability to make that library automatically link in when"
2672 echo "*** you link to this library. But I can only do this if you have a"
2673 echo "*** shared version of the library, which you do not appear to have"
2674 echo "*** because I did check the linker path looking for a file starting"
2675 if test -z "$potlib" ; then
2676 echo "*** with $libname but no candidates were found. (...for file magic test)"
2678 echo "*** with $libname and none of the candidates passed a file format test"
2679 echo "*** using a file magic. Last file checked: $potlib"
2683 # Add a -L argument.
2684 newdeplibs="$newdeplibs $a_deplib"
2686 done # Gone through all deplibs.
2689 set dummy $deplibs_check_method
2690 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2691 for a_deplib in $deplibs; do
2692 name="`expr $a_deplib : '-l\(.*\)'`"
2693 # If $name is empty we are operating on a -L argument.
2694 if test -n "$name" && test "$name" != "0"; then
2695 libname=`eval \\$echo \"$libname_spec\"`
2696 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2697 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2698 for potent_lib in $potential_libs; do
2699 potlib="$potent_lib" # see symlink-check below in file_magic test
2700 if eval echo \"$potent_lib\" 2>/dev/null \
2702 | egrep "$match_pattern_regex" > /dev/null; then
2703 newdeplibs="$newdeplibs $a_deplib"
2709 if test -n "$a_deplib" ; then
2712 echo "*** Warning: linker path does not have real file for library $a_deplib."
2713 echo "*** I have the capability to make that library automatically link in when"
2714 echo "*** you link to this library. But I can only do this if you have a"
2715 echo "*** shared version of the library, which you do not appear to have"
2716 echo "*** because I did check the linker path looking for a file starting"
2717 if test -z "$potlib" ; then
2718 echo "*** with $libname but no candidates were found. (...for regex pattern test)"
2720 echo "*** with $libname and none of the candidates passed a file format test"
2721 echo "*** using a regex pattern. Last file checked: $potlib"
2725 # Add a -L argument.
2726 newdeplibs="$newdeplibs $a_deplib"
2728 done # Gone through all deplibs.
2732 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2733 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2734 grep . >/dev/null; then
2736 if test "X$deplibs_check_method" = "Xnone"; then
2737 echo "*** Warning: inter-library dependencies are not supported in this platform."
2739 echo "*** Warning: inter-library dependencies are not known to be supported."
2741 echo "*** All declared inter-library dependencies are being dropped."
2746 versuffix=$versuffix_save
2748 release=$release_save
2749 libname=$libname_save
2753 *-*-rhapsody* | *-*-darwin1.[012])
2754 # On Rhapsody replace the C library is the System framework
2755 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2759 if test "$droppeddeps" = yes; then
2760 if test "$module" = yes; then
2762 echo "*** Warning: libtool could not satisfy all declared inter-library"
2763 echo "*** dependencies of module $libname. Therefore, libtool will create"
2764 echo "*** a static module, that should work as long as the dlopening"
2765 echo "*** application is linked with the -dlopen flag."
2766 if test -z "$global_symbol_pipe"; then
2768 echo "*** However, this would only work if libtool was able to extract symbol"
2769 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2770 echo "*** not find such a program. So, this module is probably useless."
2771 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2773 if test "$build_old_libs" = no; then
2774 oldlibs="$output_objdir/$libname.$libext"
2775 build_libtool_libs=module
2778 build_libtool_libs=no
2781 echo "*** The inter-library dependencies that have been dropped here will be"
2782 echo "*** automatically added whenever a program is linked with this library"
2783 echo "*** or is declared to -dlopen it."
2785 if test "$allow_undefined" = no; then
2787 echo "*** Since this library must not contain undefined symbols,"
2788 echo "*** because either the platform does not support them or"
2789 echo "*** it was explicitly requested with -no-undefined,"
2790 echo "*** libtool will only create a static version of it."
2791 if test "$build_old_libs" = no; then
2792 oldlibs="$output_objdir/$libname.$libext"
2793 build_libtool_libs=module
2796 build_libtool_libs=no
2801 # Done checking deplibs!
2805 # All the library-specific variables (install_libdir is set above).
2810 # Test again, we may have decided not to build it any more
2811 if test "$build_libtool_libs" = yes; then
2812 if test "$hardcode_into_libs" = yes; then
2813 # Hardcode the library paths
2816 rpath="$finalize_rpath"
2817 test "$mode" != relink && rpath="$compile_rpath$rpath"
2818 for libdir in $rpath; do
2819 if test -n "$hardcode_libdir_flag_spec"; then
2820 if test -n "$hardcode_libdir_separator"; then
2821 if test -z "$hardcode_libdirs"; then
2822 hardcode_libdirs="$libdir"
2824 # Just accumulate the unique libdirs.
2825 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2826 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2829 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2834 eval flag=\"$hardcode_libdir_flag_spec\"
2835 dep_rpath="$dep_rpath $flag"
2837 elif test -n "$runpath_var"; then
2838 case "$perm_rpath " in
2840 *) perm_rpath="$perm_rpath $libdir" ;;
2844 # Substitute the hardcoded libdirs into the rpath.
2845 if test -n "$hardcode_libdir_separator" &&
2846 test -n "$hardcode_libdirs"; then
2847 libdir="$hardcode_libdirs"
2848 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
2850 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2851 # We should set the runpath_var.
2853 for dir in $perm_rpath; do
2856 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2858 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
2861 shlibpath="$finalize_shlibpath"
2862 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
2863 if test -n "$shlibpath"; then
2864 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2867 # Get the real and link names of the library.
2868 eval library_names=\"$library_names_spec\"
2869 set dummy $library_names
2873 if test -n "$soname_spec"; then
2874 eval soname=\"$soname_spec\"
2878 test -z "$dlname" && dlname=$soname
2880 lib="$output_objdir/$realname"
2883 linknames="$linknames $link"
2886 # Ensure that we have .o objects for linkers which dislike .lo
2887 # (e.g. aix) in case we are running --disable-static
2888 for obj in $libobjs; do
2889 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2890 if test "X$xdir" = "X$obj"; then
2895 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2896 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2897 if test ! -f $xdir/$oldobj; then
2898 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2899 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2903 # Use standard objects if they are pic
2904 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2906 # Prepare the list of exported symbols
2907 if test -z "$export_symbols"; then
2908 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2909 $show "generating symbol list for \`$libname.la'"
2910 export_symbols="$output_objdir/$libname.exp"
2911 $run $rm $export_symbols
2912 eval cmds=\"$export_symbols_cmds\"
2913 save_ifs="$IFS"; IFS='~'
2914 for cmd in $cmds; do
2917 $run eval "$cmd" || exit $?
2920 if test -n "$export_symbols_regex"; then
2921 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2922 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2923 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2924 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2929 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2930 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2933 if test -n "$convenience"; then
2934 if test -n "$whole_archive_flag_spec"; then
2935 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2937 gentop="$output_objdir/${outputname}x"
2938 $show "${rm}r $gentop"
2939 $run ${rm}r "$gentop"
2940 $show "mkdir $gentop"
2941 $run mkdir "$gentop"
2943 if test $status -ne 0 && test ! -d "$gentop"; then
2946 generated="$generated $gentop"
2948 for xlib in $convenience; do
2949 # Extract the objects.
2951 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2952 *) xabs=`pwd`"/$xlib" ;;
2954 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2955 xdir="$gentop/$xlib"
2957 $show "${rm}r $xdir"
2962 if test $status -ne 0 && test ! -d "$xdir"; then
2965 $show "(cd $xdir && $AR x $xabs)"
2966 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2968 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2973 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2974 eval flag=\"$thread_safe_flag_spec\"
2975 linker_flags="$linker_flags $flag"
2978 # Make a backup of the uninstalled library when relinking
2979 if test "$mode" = relink; then
2980 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
2983 # Do each of the archive commands.
2984 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2985 eval cmds=\"$archive_expsym_cmds\"
2987 save_deplibs="$deplibs"
2988 for conv in $convenience; do
2990 for test_deplib in $deplibs; do
2991 if test "$test_deplib" != "$conv"; then
2992 tmp_deplibs="$tmp_deplibs $test_deplib"
2995 deplibs="$tmp_deplibs"
2997 eval cmds=\"$archive_cmds\"
2998 deplibs="$save_deplibs"
3000 save_ifs="$IFS"; IFS='~'
3001 for cmd in $cmds; do
3004 $run eval "$cmd" || exit $?
3008 # Restore the uninstalled library and exit
3009 if test "$mode" = relink; then
3010 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3014 # Create links to the real library.
3015 for linkname in $linknames; do
3016 if test "$realname" != "$linkname"; then
3017 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3018 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
3022 # If -module or -export-dynamic was specified, set the dlname.
3023 if test "$module" = yes || test "$export_dynamic" = yes; then
3024 # On all known operating systems, these are identical.
3031 if test -n "$deplibs"; then
3032 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3035 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3036 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3039 if test -n "$rpath"; then
3040 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3043 if test -n "$xrpath"; then
3044 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3047 if test -n "$vinfo"; then
3048 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3051 if test -n "$release"; then
3052 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3057 if test -n "$objs$old_deplibs"; then
3058 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3062 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
3070 # Delete the old objects.
3071 $run $rm $obj $libobj
3073 # Objects from convenience libraries. This assumes
3074 # single-version convenience libraries. Whenever we create
3075 # different ones for PIC/non-PIC, this we'll have to duplicate
3079 # reload_cmds runs $LD directly, so let us get rid of
3080 # -Wl from whole_archive_flag_spec
3083 if test -n "$convenience"; then
3084 if test -n "$whole_archive_flag_spec"; then
3085 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3087 gentop="$output_objdir/${obj}x"
3088 $show "${rm}r $gentop"
3089 $run ${rm}r "$gentop"
3090 $show "mkdir $gentop"
3091 $run mkdir "$gentop"
3093 if test $status -ne 0 && test ! -d "$gentop"; then
3096 generated="$generated $gentop"
3098 for xlib in $convenience; do
3099 # Extract the objects.
3101 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3102 *) xabs=`pwd`"/$xlib" ;;
3104 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3105 xdir="$gentop/$xlib"
3107 $show "${rm}r $xdir"
3112 if test $status -ne 0 && test ! -d "$xdir"; then
3115 $show "(cd $xdir && $AR x $xabs)"
3116 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3118 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3123 # Create the old-style object.
3124 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
3127 eval cmds=\"$reload_cmds\"
3128 save_ifs="$IFS"; IFS='~'
3129 for cmd in $cmds; do
3132 $run eval "$cmd" || exit $?
3136 # Exit if we aren't doing a library object file.
3137 if test -z "$libobj"; then
3138 if test -n "$gentop"; then
3139 $show "${rm}r $gentop"
3146 if test "$build_libtool_libs" != yes; then
3147 if test -n "$gentop"; then
3148 $show "${rm}r $gentop"
3152 # Create an invalid libtool object if no PIC, so that we don't
3153 # accidentally link it into a program.
3154 $show "echo timestamp > $libobj"
3155 $run eval "echo timestamp > $libobj" || exit $?
3159 if test -n "$pic_flag" || test "$pic_mode" != default; then
3160 # Only do commands if we really have different PIC objects.
3161 reload_objs="$libobjs $reload_conv_objs"
3163 eval cmds=\"$reload_cmds\"
3164 save_ifs="$IFS"; IFS='~'
3165 for cmd in $cmds; do
3168 $run eval "$cmd" || exit $?
3172 # Just create a symlink.
3175 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3176 if test "X$xdir" = "X$libobj"; then
3181 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3182 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3183 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3184 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3187 if test -n "$gentop"; then
3188 $show "${rm}r $gentop"
3197 *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
3199 if test -n "$vinfo"; then
3200 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3203 if test -n "$release"; then
3204 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3207 if test "$preload" = yes; then
3208 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3209 test "$dlopen_self_static" = unknown; then
3210 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3215 *-*-rhapsody* | *-*-darwin1.[012])
3216 # On Rhapsody replace the C library is the System framework
3217 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3218 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3221 # Don't allow lazy linking, it breaks C++ global constructors
3222 compile_command="$compile_command ${wl}-bind_at_load"
3223 finalize_command="$finalize_command ${wl}-bind_at_load"
3229 compile_command="$compile_command $compile_deplibs"
3230 finalize_command="$finalize_command $finalize_deplibs"
3232 if test -n "$rpath$xrpath"; then
3233 # If the user specified any rpath flags, then add them.
3234 for libdir in $rpath $xrpath; do
3235 # This is the magic to use -rpath.
3236 case "$finalize_rpath " in
3238 *) finalize_rpath="$finalize_rpath $libdir" ;;
3243 # Now hardcode the library paths
3246 for libdir in $compile_rpath $finalize_rpath; do
3247 if test -n "$hardcode_libdir_flag_spec"; then
3248 if test -n "$hardcode_libdir_separator"; then
3249 if test -z "$hardcode_libdirs"; then
3250 hardcode_libdirs="$libdir"
3252 # Just accumulate the unique libdirs.
3253 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3254 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3257 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3262 eval flag=\"$hardcode_libdir_flag_spec\"
3263 rpath="$rpath $flag"
3265 elif test -n "$runpath_var"; then
3266 case "$perm_rpath " in
3268 *) perm_rpath="$perm_rpath $libdir" ;;
3272 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3273 case :$dllsearchpath: in
3275 *) dllsearchpath="$dllsearchpath:$libdir";;
3280 # Substitute the hardcoded libdirs into the rpath.
3281 if test -n "$hardcode_libdir_separator" &&
3282 test -n "$hardcode_libdirs"; then
3283 libdir="$hardcode_libdirs"
3284 eval rpath=\" $hardcode_libdir_flag_spec\"
3286 compile_rpath="$rpath"
3290 for libdir in $finalize_rpath; do
3291 if test -n "$hardcode_libdir_flag_spec"; then
3292 if test -n "$hardcode_libdir_separator"; then
3293 if test -z "$hardcode_libdirs"; then
3294 hardcode_libdirs="$libdir"
3296 # Just accumulate the unique libdirs.
3297 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3298 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3301 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3306 eval flag=\"$hardcode_libdir_flag_spec\"
3307 rpath="$rpath $flag"
3309 elif test -n "$runpath_var"; then
3310 case "$finalize_perm_rpath " in
3312 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3316 # Substitute the hardcoded libdirs into the rpath.
3317 if test -n "$hardcode_libdir_separator" &&
3318 test -n "$hardcode_libdirs"; then
3319 libdir="$hardcode_libdirs"
3320 eval rpath=\" $hardcode_libdir_flag_spec\"
3322 finalize_rpath="$rpath"
3324 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3325 # Transform all the library objects into standard objects.
3326 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3327 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3331 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3332 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3333 dlsyms="${outputname}S.c"
3335 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3339 if test -n "$dlsyms"; then
3343 # Discover the nlist of each of the dlfiles.
3344 nlist="$output_objdir/${outputname}.nm"
3346 $show "$rm $nlist ${nlist}S ${nlist}T"
3347 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3349 # Parse the name list into a source file.
3350 $show "creating $output_objdir/$dlsyms"
3352 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3353 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3354 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3360 /* Prevent the only kind of declaration conflicts we can make. */
3361 #define lt_preloaded_symbols some_other_symbol
3363 /* External symbol declarations for the compiler. */\
3366 if test "$dlself" = yes; then
3367 $show "generating symbol list for \`$output'"
3369 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3371 # Add our own program objects to the symbol list.
3372 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3373 for arg in $progfiles; do
3374 $show "extracting global C symbols from \`$arg'"
3375 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3378 if test -n "$exclude_expsyms"; then
3379 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3380 $run eval '$mv "$nlist"T "$nlist"'
3383 if test -n "$export_symbols_regex"; then
3384 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3385 $run eval '$mv "$nlist"T "$nlist"'
3388 # Prepare the list of exported symbols
3389 if test -z "$export_symbols"; then
3390 export_symbols="$output_objdir/$output.exp"
3391 $run $rm $export_symbols
3392 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3394 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3395 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3396 $run eval 'mv "$nlist"T "$nlist"'
3400 for arg in $dlprefiles; do
3401 $show "extracting global C symbols from \`$arg'"
3402 name=`echo "$arg" | ${SED} -e 's%^.*/%%'`
3403 $run eval 'echo ": $name " >> "$nlist"'
3404 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3407 if test -z "$run"; then
3408 # Make sure we have at least an empty file.
3409 test -f "$nlist" || : > "$nlist"
3411 if test -n "$exclude_expsyms"; then
3412 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3413 $mv "$nlist"T "$nlist"
3416 # Try sorting and uniquifying the output.
3417 if grep -v "^: " < "$nlist" |
3418 if sort -k 3 </dev/null >/dev/null 2>&1; then
3423 uniq > "$nlist"S; then
3426 grep -v "^: " < "$nlist" > "$nlist"S
3429 if test -f "$nlist"S; then
3430 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3432 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3435 $echo >> "$output_objdir/$dlsyms" "\
3437 #undef lt_preloaded_symbols
3439 #if defined (__STDC__) && __STDC__
3440 # define lt_ptr void *
3442 # define lt_ptr char *
3446 /* The mapping between symbol names and symbols. */
3451 lt_preloaded_symbols[] =
3455 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
3457 $echo >> "$output_objdir/$dlsyms" "\
3461 /* This works around a problem in FreeBSD linker */
3462 #ifdef FREEBSD_WORKAROUND
3463 static const void *lt_preloaded_setup() {
3464 return lt_preloaded_symbols;
3474 pic_flag_for_symtable=
3476 # compiling the symbol table file with pic_flag works around
3477 # a FreeBSD bug that causes programs to crash when -lm is
3478 # linked before any other PIC object. But we must not use
3479 # pic_flag when linking with -static. The problem exists in
3480 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3481 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3482 case "$compile_command " in
3484 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3487 case "$compile_command " in
3489 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3493 # Now compile the dynamic symbol file.
3494 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3495 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3497 # Clean up the generated files.
3498 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3499 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3501 # Transform the symbol file into the correct name.
3502 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3503 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3506 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3511 # We keep going just in case the user didn't refer to
3512 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3513 # really was required.
3515 # Nullify the symbol file.
3516 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3517 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3520 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
3521 # Replace the output file specification.
3522 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3523 link_command="$compile_command$compile_rpath"
3525 # We have no uninstalled library dependencies, so finalize right now.
3526 $show "$link_command"
3527 $run eval "$link_command"
3530 # Delete the generated files.
3531 if test -n "$dlsyms"; then
3532 $show "$rm $output_objdir/${outputname}S.${objext}"
3533 $run $rm "$output_objdir/${outputname}S.${objext}"
3539 if test -n "$shlibpath_var"; then
3540 # We should set the shlibpath_var
3542 for dir in $temp_rpath; do
3544 [\\/]* | [A-Za-z]:[\\/]*)
3549 # Relative path: add a thisdir entry.
3550 rpath="$rpath\$thisdir/$dir:"
3557 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3558 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3560 if test -n "$finalize_shlibpath"; then
3561 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3566 if test -n "$runpath_var"; then
3567 if test -n "$perm_rpath"; then
3568 # We should set the runpath_var.
3570 for dir in $perm_rpath; do
3573 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3575 if test -n "$finalize_perm_rpath"; then
3576 # We should set the runpath_var.
3578 for dir in $finalize_perm_rpath; do
3581 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3585 if test "$no_install" = yes; then
3586 # We don't need to create a wrapper script.
3587 link_command="$compile_var$compile_command$compile_rpath"
3588 # Replace the output file specification.
3589 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3590 # Delete the old output file.
3592 # Link the executable and exit
3593 $show "$link_command"
3594 $run eval "$link_command" || exit $?
3598 if test "$hardcode_action" = relink; then
3599 # Fast installation is not supported
3600 link_command="$compile_var$compile_command$compile_rpath"
3601 relink_command="$finalize_var$finalize_command$finalize_rpath"
3603 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3604 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3606 if test "$fast_install" != no; then
3607 link_command="$finalize_var$compile_command$finalize_rpath"
3608 if test "$fast_install" = yes; then
3609 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3611 # fast_install is set to needless
3615 link_command="$compile_var$compile_command$compile_rpath"
3616 relink_command="$finalize_var$finalize_command$finalize_rpath"
3620 # Replace the output file specification.
3621 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3623 # Delete the old output files.
3624 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3626 $show "$link_command"
3627 $run eval "$link_command" || exit $?
3629 # Now create the wrapper script.
3630 $show "creating $output"
3632 # Quote the relink command for shipping.
3633 if test -n "$relink_command"; then
3634 # Preserve any variables that may affect compiler behavior
3635 for var in $variables_saved_for_relink; do
3636 if eval test -z \"\${$var+set}\"; then
3637 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3638 elif eval var_value=\$$var; test -z "$var_value"; then
3639 relink_command="$var=; export $var; $relink_command"
3641 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3642 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3645 relink_command="(cd `pwd`; $relink_command)"
3646 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3649 # Quote $echo for shipping.
3650 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3652 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3653 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3655 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3657 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3660 # Only actually do things if our run command is non-null.
3661 if test -z "$run"; then
3662 # win32 will think the script is a binary if it has
3663 # a .exe suffix, so we strip it off here.
3665 *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;;
3667 # test for cygwin because mv fails w/o .exe extensions
3669 *cygwin*) exeext=.exe ;;
3673 trap "$rm $output; exit 1" 1 2 15
3678 # $output - temporary wrapper script for $objdir/$outputname
3679 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3681 # The $output program cannot be directly executed until all the libtool
3682 # libraries that it depends on are installed.
3684 # This wrapper script should never be moved out of the build directory.
3685 # If it is, it will not operate correctly.
3687 # Sed substitution that helps us do robust quoting. It backslashifies
3688 # metacharacters that are still active within double-quoted strings.
3689 Xsed="${SED}"' -e 1s/^X//'
3690 sed_quote_subst='$sed_quote_subst'
3692 # The HP-UX ksh and POSIX shell print the target directory to stdout
3694 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3696 relink_command=\"$relink_command\"
3698 # This environment variable determines our operation mode.
3699 if test \"\$libtool_install_magic\" = \"$magic\"; then
3700 # install mode needs the following variable:
3701 notinst_deplibs='$notinst_deplibs'
3703 # When we are sourced in execute mode, \$file and \$echo are already set.
3704 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3707 # Make sure echo works.
3708 if test \"X\$1\" = X--no-reexec; then
3709 # Discard the --no-reexec flag, and continue.
3711 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3712 # Yippee, \$echo works!
3715 # Restart under the correct shell, and then maybe \$echo will work.
3716 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3722 # Find the directory that this script lives in.
3723 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3724 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3726 # Follow symbolic links until we get to the real thisdir.
3727 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
3728 while test -n \"\$file\"; do
3729 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3731 # If there was a directory component, then change thisdir.
3732 if test \"x\$destdir\" != \"x\$file\"; then
3733 case \"\$destdir\" in
3734 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3735 *) thisdir=\"\$thisdir/\$destdir\" ;;
3739 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3740 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
3743 # Try to get the absolute directory name.
3744 absdir=\`cd \"\$thisdir\" && pwd\`
3745 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3748 if test "$fast_install" = yes; then
3750 program=lt-'$outputname'$exeext
3751 progdir=\"\$thisdir/$objdir\"
3753 if test ! -f \"\$progdir/\$program\" || \\
3754 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
3755 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3757 file=\"\$\$-\$program\"
3759 if test ! -d \"\$progdir\"; then
3760 $mkdir \"\$progdir\"
3762 $rm \"\$progdir/\$file\"
3767 # relink executable if necessary
3768 if test -n \"\$relink_command\"; then
3769 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3771 $echo \"\$relink_command_output\" >&2
3772 $rm \"\$progdir/\$file\"
3777 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3778 { $rm \"\$progdir/\$program\";
3779 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3780 $rm \"\$progdir/\$file\"
3784 program='$outputname'
3785 progdir=\"\$thisdir/$objdir\"
3791 if test -f \"\$progdir/\$program\"; then"
3793 # Export our shlibpath_var if we have one.
3794 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3796 # Add our own library path to $shlibpath_var
3797 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3799 # Some systems cannot cope with colon-terminated $shlibpath_var
3800 # The second colon is a workaround for a bug in BeOS R4 ${SED}
3801 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3803 export $shlibpath_var
3807 # fixup the dll searchpath if we need to.
3808 if test -n "$dllsearchpath"; then
3810 # Add the dll search path components to the executable PATH
3811 PATH=$dllsearchpath:\$PATH
3816 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3817 # Run the actual program with our arguments.
3820 # win32 systems need to use the prog path for dll
3822 *-*-cygwin* | *-*-pw32*)
3824 exec \$progdir/\$program \${1+\"\$@\"}
3828 # Backslashes separate directories on plain windows
3829 *-*-mingw | *-*-os2*)
3831 exec \$progdir\\\\\$program \${1+\"\$@\"}
3837 # Export the path to the program.
3838 PATH=\"\$progdir:\$PATH\"
3841 exec \$program \${1+\"\$@\"}
3846 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3850 # The program doesn't exist.
3851 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3852 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3853 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3864 # See if we need to build an old-fashioned archive.
3865 for oldlib in $oldlibs; do
3867 if test "$build_libtool_libs" = convenience; then
3868 oldobjs="$libobjs_save"
3869 addlibs="$convenience"
3870 build_libtool_libs=no
3872 if test "$build_libtool_libs" = module; then
3873 oldobjs="$libobjs_save"
3874 build_libtool_libs=no
3876 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3878 addlibs="$old_convenience"
3881 if test -n "$addlibs"; then
3882 gentop="$output_objdir/${outputname}x"
3883 $show "${rm}r $gentop"
3884 $run ${rm}r "$gentop"
3885 $show "mkdir $gentop"
3886 $run mkdir "$gentop"
3888 if test $status -ne 0 && test ! -d "$gentop"; then
3891 generated="$generated $gentop"
3893 # Add in members from convenience archives.
3894 for xlib in $addlibs; do
3895 # Extract the objects.
3897 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3898 *) xabs=`pwd`"/$xlib" ;;
3900 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3901 xdir="$gentop/$xlib"
3903 $show "${rm}r $xdir"
3908 if test $status -ne 0 && test ! -d "$xdir"; then
3911 $show "(cd $xdir && $AR x $xabs)"
3912 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3914 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3918 # Do each command in the archive commands.
3919 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3920 eval cmds=\"$old_archive_from_new_cmds\"
3922 # Ensure that we have .o objects in place in case we decided
3923 # not to build a shared library, and have fallen back to building
3924 # static libs even though --disable-static was passed!
3925 for oldobj in $oldobjs; do
3926 if test ! -f $oldobj; then
3927 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3928 if test "X$xdir" = "X$oldobj"; then
3933 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3934 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3935 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3936 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3940 eval cmds=\"$old_archive_cmds\"
3942 save_ifs="$IFS"; IFS='~'
3943 for cmd in $cmds; do
3946 $run eval "$cmd" || exit $?
3951 if test -n "$generated"; then
3952 $show "${rm}r$generated"
3953 $run ${rm}r$generated
3956 # Now create the libtool archive.
3960 test "$build_old_libs" = yes && old_library="$libname.$libext"
3961 $show "creating $output"
3963 # Preserve any variables that may affect compiler behavior
3964 for var in $variables_saved_for_relink; do
3965 if eval test -z \"\${$var+set}\"; then
3966 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3967 elif eval var_value=\$$var; test -z "$var_value"; then
3968 relink_command="$var=; export $var; $relink_command"
3970 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3971 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3974 # Quote the link command for shipping.
3975 relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
3976 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3978 # Only create the output if not a dry run.
3979 if test -z "$run"; then
3980 for installed in no yes; do
3981 if test "$installed" = yes; then
3982 if test -z "$install_libdir"; then
3985 output="$output_objdir/$outputname"i
3986 # Replace all uninstalled libtool libraries with the installed ones
3988 for deplib in $dependency_libs; do
3991 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3992 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3993 if test -z "$libdir"; then
3994 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3997 # We do not want portage's install root ($D) present. Check only for
3998 # this if the .la is being installed.
3999 if test "$installed" = yes && test "$D"; then
4000 eval mynewdependency_lib="`echo "$libdir/$name" |sed -e "s:$D::g" -e 's://:/:g'`"
4002 mynewdependency_lib="$libdir/$name"
4004 # Do not add duplicates
4005 if test "$mynewdependency_lib"; then
4006 if test -z "`echo $newdependency_libs |grep -e "$mynewdependency_lib"`"; then
4007 newdependency_libs="$newdependency_libs $mynewdependency_lib"
4012 if test "$installed" = yes; then
4013 # Rather use S=WORKDIR if our version of portage supports it.
4014 # This is because some ebuild (gcc) do not use $S as buildroot.
4015 if test "$PWORKDIR"; then
4018 # We do not want portage's build root ($S) present.
4019 if test -n "`echo $deplib |grep -e "$S"`" && test "$S"; then
4020 mynewdependency_lib=""
4021 # We do not want portage's install root ($D) present.
4022 elif test -n "`echo $deplib |grep -e "$D"`" && test "$D"; then
4023 eval mynewdependency_lib="`echo "$deplib" |sed -e "s:$D::g" -e 's://:/:g'`"
4025 mynewdependency_lib="$deplib"
4028 mynewdependency_lib="$deplib"
4030 # Do not add duplicates
4031 if test "$mynewdependency_lib"; then
4032 if test -z "`echo $newdependency_libs |grep -e "$mynewdependency_lib"`"; then
4033 newdependency_libs="$newdependency_libs $mynewdependency_lib"
4039 dependency_libs="$newdependency_libs"
4041 for lib in $dlfiles; do
4042 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4043 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4044 if test -z "$libdir"; then
4045 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4048 newdlfiles="$newdlfiles $libdir/$name"
4050 dlfiles="$newdlfiles"
4052 for lib in $dlprefiles; do
4053 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4054 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4055 if test -z "$libdir"; then
4056 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4059 newdlprefiles="$newdlprefiles $libdir/$name"
4061 dlprefiles="$newdlprefiles"
4064 # place dlname in correct position for cygwin
4066 case $host,$output,$installed,$module,$dlname in
4067 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
4069 # Do not add duplicates
4070 if test "$installed" = yes && test "$D"; then
4071 install_libdir="`echo "$install_libdir" |sed -e "s:$D::g" -e 's://:/:g'`"
4074 # $outputname - a libtool library file
4075 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4077 # Please DO NOT delete this file!
4078 # It is necessary for linking the library.
4080 # The name that we can dlopen(3).
4083 # Names of this library.
4084 library_names='$library_names'
4086 # The name of the static archive.
4087 old_library='$old_library'
4089 # Libraries that this one depends upon.
4090 dependency_libs='$dependency_libs'
4092 # Version information for $libname.
4097 # Is this an already installed library?
4098 installed=$installed
4100 # Files to dlopen/dlpreopen
4102 dlpreopen='$dlprefiles'
4104 # Directory that this library needs to be installed in:
4105 libdir='$install_libdir'"
4106 if test "$installed" = no && test "$need_relink" = yes; then
4108 relink_command=\"$relink_command\""
4113 # Do a symbolic link so that the libtool archive can be found in
4114 # LD_LIBRARY_PATH before the program is installed.
4115 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4116 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
4122 # libtool install mode
4124 modename="$modename: install"
4126 # There may be an optional sh(1) argument at the beginning of
4127 # install_prog (especially on Windows NT).
4128 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
4129 # Allow the use of GNU shtool's install command.
4130 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
4131 # Aesthetically quote it.
4132 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4134 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4138 install_prog="$arg "
4146 # The real first argument should be the name of the installation program.
4147 # Aesthetically quote it.
4148 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4150 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4154 install_prog="$install_prog$arg"
4156 # We need to accept at least all the BSD install flags.
4166 if test -n "$dest"; then
4167 files="$files $dest"
4185 # If the previous option needed an argument, then skip it.
4186 if test -n "$prev"; then
4195 # Aesthetically quote the argument.
4196 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4198 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4202 install_prog="$install_prog $arg"
4205 if test -z "$install_prog"; then
4206 $echo "$modename: you must specify an install program" 1>&2
4211 if test -n "$prev"; then
4212 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4217 if test -z "$files"; then
4218 if test -z "$dest"; then
4219 $echo "$modename: no file or destination specified" 1>&2
4221 $echo "$modename: you must specify a destination" 1>&2
4227 # Strip any trailing slash from the destination.
4228 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4230 # Check to see that the destination is a directory.
4231 test -d "$dest" && isdir=yes
4232 if test "$isdir" = yes; then
4236 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4237 test "X$destdir" = "X$dest" && destdir=.
4238 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4240 # Not a directory, so check to see that there is only one file specified.
4242 if test $# -gt 2; then
4243 $echo "$modename: \`$dest' is not a directory" 1>&2
4249 [\\/]* | [A-Za-z]:[\\/]*) ;;
4251 for file in $files; do
4255 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4264 # This variable tells wrapper scripts just to set variables rather
4265 # than running their programs.
4266 libtool_install_magic="$magic"
4271 for file in $files; do
4273 # Do each installation.
4276 # Do the static libraries later.
4277 staticlibs="$staticlibs $file"
4281 # Check to see that this really is a libtool archive.
4282 if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4284 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4292 # If there is no directory component, then add one.
4294 */* | *\\*) . $file ;;
4298 # Add the libdir to current_libdirs if it is the destination.
4299 if test "X$destdir" = "X$libdir"; then
4300 case "$current_libdirs " in
4302 *) current_libdirs="$current_libdirs $libdir" ;;
4305 # Note the libdir as a future libdir.
4306 case "$future_libdirs " in
4308 *) future_libdirs="$future_libdirs $libdir" ;;
4312 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4313 test "X$dir" = "X$file/" && dir=
4316 if test -n "$relink_command"; then
4317 # Determine the prefix the user has applied to our future dir.
4318 inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"`
4320 # Don't allow the user to place us outside of our expected
4321 # location b/c this prevents finding dependent libraries that
4322 # are installed to the same prefix.
4323 if test "$inst_prefix_dir" = "$destdir"; then
4324 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
4328 if test -n "$inst_prefix_dir"; then
4329 # Stick the inst_prefix_dir data into the link command.
4330 relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
4332 relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"`
4335 $echo "$modename: warning: relinking \`$file'" 1>&2
4336 $show "$relink_command"
4337 if $run eval "$relink_command"; then :
4339 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4344 # See the names of the shared library.
4345 set dummy $library_names
4346 if test -n "$2"; then
4352 test -n "$relink_command" && srcname="$realname"T
4354 # Install the shared library and build the symlinks.
4355 $show "$install_prog $dir/$srcname $destdir/$realname"
4356 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4357 if test -n "$stripme" && test -n "$striplib"; then
4358 $show "$striplib $destdir/$realname"
4359 $run eval "$striplib $destdir/$realname" || exit $?
4362 if test $# -gt 0; then
4363 # Delete the old symlinks, and create new ones.
4366 if test "$linkname" != "$realname"; then
4367 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4368 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4373 # Do each command in the postinstall commands.
4374 lib="$destdir/$realname"
4375 eval cmds=\"$postinstall_cmds\"
4376 save_ifs="$IFS"; IFS='~'
4377 for cmd in $cmds; do
4380 $run eval "$cmd" || exit $?
4385 # Install the pseudo-library for information purposes.
4386 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4387 instname="$dir/$name"i
4388 $show "$install_prog $instname $destdir/$name"
4389 $run eval "$install_prog $instname $destdir/$name" || exit $?
4391 # Maybe install the static library, too.
4392 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4396 # Install (i.e. copy) a libtool object.
4398 # Figure out destination file name, if it wasn't already specified.
4399 if test -n "$destname"; then
4400 destfile="$destdir/$destname"
4402 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4403 destfile="$destdir/$destfile"
4406 # Deduce the name of the destination old-style object file.
4409 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4412 staticdest="$destfile"
4416 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4422 # Install the libtool object if requested.
4423 if test -n "$destfile"; then
4424 $show "$install_prog $file $destfile"
4425 $run eval "$install_prog $file $destfile" || exit $?
4428 # Install the old object if enabled.
4429 if test "$build_old_libs" = yes; then
4430 # Deduce the name of the old-style object file.
4431 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4433 $show "$install_prog $staticobj $staticdest"
4434 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4440 # Figure out destination file name, if it wasn't already specified.
4441 if test -n "$destname"; then
4442 destfile="$destdir/$destname"
4444 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4445 destfile="$destdir/$destfile"
4448 # Do a test to see if this is really a libtool program.
4451 wrapper=`echo $file | ${SED} -e 's,.exe$,,'`
4457 if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
4461 # If there is no directory component, then add one.
4463 */* | *\\*) . $wrapper ;;
4467 # Check the variables that should have been set.
4468 if test -z "$notinst_deplibs"; then
4469 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
4474 for lib in $notinst_deplibs; do
4475 # Check to see that each library is installed.
4477 if test -f "$lib"; then
4478 # If there is no directory component, then add one.
4480 */* | *\\*) . $lib ;;
4484 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4485 if test -n "$libdir" && test ! -f "$libfile"; then
4486 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4492 # If there is no directory component, then add one.
4494 */* | *\\*) . $wrapper ;;
4499 if test "$fast_install" = no && test -n "$relink_command"; then
4500 if test "$finalize" = yes && test -z "$run"; then
4502 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4503 tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
4504 if test $? = 0 ; then :
4506 tmpdir="$tmpdir/libtool-$$"
4508 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4510 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4513 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4514 outputname="$tmpdir/$file"
4515 # Replace the output file specification.
4516 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4518 $show "$relink_command"
4519 if $run eval "$relink_command"; then :
4521 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4527 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4530 # Install the binary that we compiled earlier.
4531 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4535 # remove .exe since cygwin /usr/bin/install will append another
4537 case $install_prog,$host in
4538 /usr/bin/install*,*cygwin*)
4539 case $file:$destfile in
4544 destfile=$destfile.exe
4547 destfile=`echo $destfile | ${SED} -e 's,.exe$,,'`
4552 $show "$install_prog$stripme $file $destfile"
4553 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4554 test -n "$outputname" && ${rm}r "$tmpdir"
4559 for file in $staticlibs; do
4560 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4562 # Set up the ranlib parameters.
4563 oldlib="$destdir/$name"
4565 $show "$install_prog $file $oldlib"
4566 $run eval "$install_prog \$file \$oldlib" || exit $?
4568 if test -n "$stripme" && test -n "$striplib"; then
4569 $show "$old_striplib $oldlib"
4570 $run eval "$old_striplib $oldlib" || exit $?
4573 # Do each command in the postinstall commands.
4574 eval cmds=\"$old_postinstall_cmds\"
4575 save_ifs="$IFS"; IFS='~'
4576 for cmd in $cmds; do
4579 $run eval "$cmd" || exit $?
4584 if test -n "$future_libdirs"; then
4585 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4588 if test -n "$current_libdirs"; then
4589 # Maybe just do a dry run.
4590 test -n "$run" && current_libdirs=" -n$current_libdirs"
4591 exec_cmd='$SHELL $0 --finish$current_libdirs'
4597 # libtool finish mode
4599 modename="$modename: finish"
4603 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4606 libdirs="$libdirs $dir"
4609 for libdir in $libdirs; do
4610 if test -n "$finish_cmds"; then
4611 # Do each command in the finish commands.
4612 eval cmds=\"$finish_cmds\"
4613 save_ifs="$IFS"; IFS='~'
4614 for cmd in $cmds; do
4617 $run eval "$cmd" || admincmds="$admincmds
4622 if test -n "$finish_eval"; then
4623 # Do the single finish_eval.
4624 eval cmds=\"$finish_eval\"
4625 $run eval "$cmds" || admincmds="$admincmds
4631 # Exit here if they wanted silent mode.
4632 test "$show" = ":" && exit 0
4634 echo "----------------------------------------------------------------------"
4635 echo "Libraries have been installed in:"
4636 for libdir in $libdirs; do
4640 echo "If you ever happen to want to link against installed libraries"
4641 echo "in a given directory, LIBDIR, you must either use libtool, and"
4642 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4643 echo "flag during linking and do at least one of the following:"
4644 if test -n "$shlibpath_var"; then
4645 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4646 echo " during execution"
4648 if test -n "$runpath_var"; then
4649 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4650 echo " during linking"
4652 if test -n "$hardcode_libdir_flag_spec"; then
4654 eval flag=\"$hardcode_libdir_flag_spec\"
4656 echo " - use the \`$flag' linker flag"
4658 if test -n "$admincmds"; then
4659 echo " - have your system administrator run these commands:$admincmds"
4661 if test -f /etc/ld.so.conf; then
4662 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4665 echo "See any operating system documentation about shared libraries for"
4666 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4667 echo "----------------------------------------------------------------------"
4671 # libtool execute mode
4673 modename="$modename: execute"
4675 # The first argument is the command name.
4677 if test -z "$cmd"; then
4678 $echo "$modename: you must specify a COMMAND" 1>&2
4683 # Handle -dlopen flags immediately.
4684 for file in $execute_dlfiles; do
4685 if test ! -f "$file"; then
4686 $echo "$modename: \`$file' is not a file" 1>&2
4694 # Check to see that this really is a libtool archive.
4695 if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4697 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4702 # Read the libtool library.
4706 # If there is no directory component, then add one.
4708 */* | *\\*) . $file ;;
4712 # Skip this library if it cannot be dlopened.
4713 if test -z "$dlname"; then
4714 # Warn if it was a shared library.
4715 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4719 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4720 test "X$dir" = "X$file" && dir=.
4722 if test -f "$dir/$objdir/$dlname"; then
4725 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4731 # Just add the directory containing the .lo file.
4732 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4733 test "X$dir" = "X$file" && dir=.
4737 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4742 # Get the absolute pathname.
4743 absdir=`cd "$dir" && pwd`
4744 test -n "$absdir" && dir="$absdir"
4746 # Now add the directory to shlibpath_var.
4747 if eval "test -z \"\$$shlibpath_var\""; then
4748 eval "$shlibpath_var=\"\$dir\""
4750 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4754 # This variable tells wrapper scripts just to set shlibpath_var
4755 # rather than running their programs.
4756 libtool_execute_magic="$magic"
4758 # Check if any of the arguments is a wrapper script.
4765 # Do a test to see if this is really a libtool program.
4766 if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4767 # If there is no directory component, then add one.
4769 */* | *\\*) . $file ;;
4773 # Transform arg to wrapped name.
4774 file="$progdir/$program"
4778 # Quote arguments (to preserve shell metacharacters).
4779 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4780 args="$args \"$file\""
4783 if test -z "$run"; then
4784 if test -n "$shlibpath_var"; then
4785 # Export the shlibpath_var.
4786 eval "export $shlibpath_var"
4789 # Restore saved enviroment variables
4790 if test "${save_LC_ALL+set}" = set; then
4791 LC_ALL="$save_LC_ALL"; export LC_ALL
4793 if test "${save_LANG+set}" = set; then
4794 LANG="$save_LANG"; export LANG
4797 # Now prepare to actually exec the command.
4798 exec_cmd="\$cmd$args"
4800 # Display what would be done.
4801 if test -n "$shlibpath_var"; then
4802 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4803 $echo "export $shlibpath_var"
4810 # libtool clean and uninstall mode
4812 modename="$modename: $mode"
4818 # This variable tells wrapper scripts just to set variables rather
4819 # than running their programs.
4820 libtool_install_magic="$magic"
4825 -f) rm="$rm $arg"; rmforce=yes ;;
4826 -*) rm="$rm $arg" ;;
4827 *) files="$files $arg" ;;
4831 if test -z "$rm"; then
4832 $echo "$modename: you must specify an RM program" 1>&2
4839 for file in $files; do
4840 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4841 if test "X$dir" = "X$file"; then
4845 objdir="$dir/$objdir"
4847 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4848 test "$mode" = uninstall && objdir="$dir"
4850 # Remember objdir for removal later, being careful to avoid duplicates
4851 if test "$mode" = clean; then
4854 *) rmdirs="$rmdirs $objdir" ;;
4858 # Don't error if the file doesn't exist and rm -f was used.
4859 if (test -L "$file") >/dev/null 2>&1 \
4860 || (test -h "$file") >/dev/null 2>&1 \
4861 || test -f "$file"; then
4863 elif test -d "$file"; then
4866 elif test "$rmforce" = yes; then
4874 # Possibly a libtool archive, so verify it.
4875 if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4878 # Delete the libtool libraries and symlinks.
4879 for n in $library_names; do
4880 rmfiles="$rmfiles $objdir/$n"
4882 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4883 test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4885 if test "$mode" = uninstall; then
4886 if test -n "$library_names"; then
4887 # Do each command in the postuninstall commands.
4888 eval cmds=\"$postuninstall_cmds\"
4889 save_ifs="$IFS"; IFS='~'
4890 for cmd in $cmds; do
4894 if test $? != 0 && test "$rmforce" != yes; then
4901 if test -n "$old_library"; then
4902 # Do each command in the old_postuninstall commands.
4903 eval cmds=\"$old_postuninstall_cmds\"
4904 save_ifs="$IFS"; IFS='~'
4905 for cmd in $cmds; do
4909 if test $? != 0 && test "$rmforce" != yes; then
4915 # FIXME: should reinstall the best remaining shared library.
4921 if test "$build_old_libs" = yes; then
4922 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
4923 rmfiles="$rmfiles $dir/$oldobj"
4928 # Do a test to see if this is a libtool program.
4929 if test "$mode" = clean &&
4930 (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4934 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4935 if test "$fast_install" = yes && test -n "$relink_command"; then
4936 rmfiles="$rmfiles $objdir/lt-$name"
4941 $show "$rm $rmfiles"
4942 $run $rm $rmfiles || exit_status=1
4945 # Try to remove the ${objdir}s in the directories where we deleted files
4946 for dir in $rmdirs; do
4947 if test -d "$dir"; then
4949 $run rmdir $dir >/dev/null 2>&1
4957 $echo "$modename: you must specify a MODE" 1>&2
4958 $echo "$generic_help" 1>&2
4963 if test -z "$exec_cmd"; then
4964 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4965 $echo "$generic_help" 1>&2
4968 fi # test -z "$show_help"
4970 if test -n "$exec_cmd"; then
4975 # We need to display help for each of the modes.
4978 "Usage: $modename [OPTION]... [MODE-ARG]...
4980 Provide generalized library-building support services.
4982 --config show all configuration variables
4983 --debug enable verbose shell tracing
4984 -n, --dry-run display commands without modifying any files
4985 --features display basic configuration information and exit
4986 --finish same as \`--mode=finish'
4987 --help display this help message and exit
4988 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4989 --quiet same as \`--silent'
4990 --silent don't print informational messages
4991 --version print version information
4993 MODE must be one of the following:
4995 clean remove files from the build directory
4996 compile compile a source file into a libtool object
4997 execute automatically set library path, then run a program
4998 finish complete the installation of libtool libraries
4999 install install libraries or executables
5000 link create a library or an executable
5001 uninstall remove libraries from an installed directory
5003 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
5004 a more detailed description of MODE."
5010 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
5012 Remove files from the build directory.
5014 RM is the name of the program to use to delete files associated with each FILE
5015 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5018 If FILE is a libtool library, object or program, all the files associated
5019 with it are deleted. Otherwise, only FILE itself is deleted using RM."
5024 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
5026 Compile a source file into a libtool library object.
5028 This mode accepts the following additional options:
5030 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
5031 -prefer-pic try to building PIC objects only
5032 -prefer-non-pic try to building non-PIC objects only
5033 -static always build a \`.o' file suitable for static linking
5035 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
5036 from the given SOURCEFILE.
5038 The output file name is determined by removing the directory component from
5039 SOURCEFILE, then substituting the C source code suffix \`.c' with the
5040 library object suffix, \`.lo'."
5045 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
5047 Automatically set library path, then run a program.
5049 This mode accepts the following additional options:
5051 -dlopen FILE add the directory containing FILE to the library path
5053 This mode sets the library path environment variable according to \`-dlopen'
5056 If any of the ARGS are libtool executable wrappers, then they are translated
5057 into their corresponding uninstalled binary, and any of their required library
5058 directories are added to the library path.
5060 Then, COMMAND is executed, with ARGS as arguments."
5065 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
5067 Complete the installation of libtool libraries.
5069 Each LIBDIR is a directory that contains libtool libraries.
5071 The commands that this mode executes may require superuser privileges. Use
5072 the \`--dry-run' option if you just want to see what would be executed."
5077 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
5079 Install executables or libraries.
5081 INSTALL-COMMAND is the installation command. The first component should be
5082 either the \`install' or \`cp' program.
5084 The rest of the components are interpreted as arguments to that command (only
5085 BSD-compatible install options are recognized)."
5090 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
5092 Link object files or libraries together to form another library, or to
5093 create an executable program.
5095 LINK-COMMAND is a command using the C compiler that you would use to create
5096 a program from several object files.
5098 The following components of LINK-COMMAND are treated specially:
5100 -all-static do not do any dynamic linking at all
5101 -avoid-version do not add a version suffix if possible
5102 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
5103 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
5104 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
5105 -export-symbols SYMFILE
5106 try to export only the symbols listed in SYMFILE
5107 -export-symbols-regex REGEX
5108 try to export only the symbols matching REGEX
5109 -LLIBDIR search LIBDIR for required installed libraries
5110 -lNAME OUTPUT-FILE requires the installed library libNAME
5111 -module build a library that can dlopened
5112 -no-fast-install disable the fast-install mode
5113 -no-install link a not-installable executable
5114 -no-undefined declare that a library does not refer to external symbols
5115 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
5116 -release RELEASE specify package release information
5117 -rpath LIBDIR the created library will eventually be installed in LIBDIR
5118 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
5119 -static do not do any dynamic linking of libtool libraries
5120 -version-info CURRENT[:REVISION[:AGE]]
5121 specify library version info [each variable defaults to 0]
5123 All other options (arguments beginning with \`-') are ignored.
5125 Every other argument is treated as a filename. Files ending in \`.la' are
5126 treated as uninstalled libtool libraries, other files are standard or library
5129 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
5130 only library objects (\`.lo' files) may be specified, and \`-rpath' is
5131 required, except when creating a convenience library.
5133 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
5134 using \`ar' and \`ranlib', or on Windows using \`lib'.
5136 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
5137 is created, otherwise an executable program is created."
5142 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
5144 Remove libraries from an installation directory.
5146 RM is the name of the program to use to delete files associated with each FILE
5147 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5150 If FILE is a libtool library, all the files associated with it are deleted.
5151 Otherwise, only FILE itself is deleted using RM."
5155 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5162 $echo "Try \`$modename --help' for more information about other modes."