1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
5 # Free Software Foundation, Inc.
6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Check that we have a working $echo.
28 if test "X$1" = X--no-reexec
; then
29 # Discard the --no-reexec flag, and continue.
31 elif test "X$1" = X--fallback-echo
; then
32 # Avoid inline document here, it may be left over
34 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
35 # Yippee, $echo works!
38 # Restart under the correct shell, and then maybe $echo will work.
39 exec $SHELL "$0" --no-reexec ${1+"$@"}
42 if test "X$1" = X--fallback-echo
; then
43 # used as fallback echo
51 # The name of this program.
52 progname
=`$echo "$0" | ${SED} 's%^.*/%%'`
59 TIMESTAMP
=" (1.922.2.110 2002/10/23 01:39:54)"
62 help="Try \`$progname --help' for more information."
63 magic
="%%%MAGIC variable%%%"
68 # Sed substitution that helps us do robust quoting. It backslashifies
69 # metacharacters that are still active within double-quoted strings.
70 Xsed
="${SED}"' -e 1s/^X//'
71 sed_quote_subst
='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 # test EBCDIC or ASCII
73 case `echo A|od -x` in
74 *[Cc
]1*) # EBCDIC based system
75 SP2NL
="tr '\100' '\n'"
76 NL2SP
="tr '\r\n' '\100\100'"
78 *) # Assume ASCII based system
79 SP2NL
="tr '\040' '\012'"
80 NL2SP
="tr '\015\012' '\040\040'"
85 # Only set LANG and LC_ALL to C if already set.
86 # These must not be set unconditionally because not all systems understand
87 # e.g. LANG=C (notably SCO).
88 # We save the old values to restore during execute mode.
89 if test "${LC_ALL+set}" = set; then
90 save_LC_ALL
="$LC_ALL"; LC_ALL
=C
; export LC_ALL
92 if test "${LANG+set}" = set; then
93 save_LANG
="$LANG"; LANG
=C
; export LANG
96 # Make sure IFS has a sensible default
99 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
100 echo "$modename: not configured to build any kind of library" 1>&2
101 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
114 lo2o
="s/\\.lo\$/.${objext}/"
115 o2lo
="s/\\.${objext}\$/.lo/"
117 # Parse our command line options once, thoroughly.
124 -*=*) optarg
=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
128 # If the previous option needs an argument, assign it.
129 if test -n "$prev"; then
132 execute_dlfiles
="$execute_dlfiles $arg"
144 # Have we seen a non-optional argument yet?
151 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
156 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
161 echo "$progname: enabling shell trace mode"
171 if test "$build_libtool_libs" = yes; then
172 echo "enable shared libraries"
174 echo "disable shared libraries"
176 if test "$build_old_libs" = yes; then
177 echo "enable static libraries"
179 echo "disable static libraries"
184 --finish) mode
="finish" ;;
186 --mode) prevopt
="--mode" prev
=mode
;;
187 --mode=*) mode
="$optarg" ;;
189 --preserve-dup-deps) duplicate_deps
="yes" ;;
201 $echo "$modename: unrecognized option \`$arg'" 1>&2
213 if test -n "$prevopt"; then
214 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
219 # If this variable is set in any of the actions, the command in it
220 # will be execed at the end. This prevents here-documents from being
221 # left over by shells.
224 if test -z "$show_help"; then
226 # Infer the operation mode.
227 if test -z "$mode"; then
229 *cc |
*++ | gcc
* |
*-gcc* | xlc
*)
241 *db |
*dbx |
*strace |
*truss
)
251 # If we have no mode, but dlfiles were specified, then do execute mode.
252 test -n "$execute_dlfiles" && mode
=execute
254 # Just use the default operation mode.
255 if test -z "$mode"; then
256 if test -n "$nonopt"; then
257 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
259 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
266 # Only execute mode is allowed to have -dlopen flags.
267 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
268 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
273 # Change the help message to a mode-specific one.
275 help="Try \`$modename --help --mode=$mode' for more information."
277 # These modes are in order of execution frequency so that they run quickly.
279 # libtool compile mode
281 modename
="$modename: compile"
282 # Get the compilation command and the source file.
295 # Aesthetically quote the previous argument.
297 lastarg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
300 # Double-quote args containing other shell metacharacters.
301 # Many Bourne shells cannot handle close brackets correctly
302 # in scan sets, so we specify it separately.
303 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
308 # Add the previous argument to base_compile.
309 if test -z "$base_compile"; then
310 base_compile
="$lastarg"
312 base_compile
="$base_compile $lastarg"
318 # Accept any command-line options.
321 if test "$user_target" != "no"; then
322 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
349 args
=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
351 save_ifs
="$IFS"; IFS
=','
355 # Double-quote args containing other shell metacharacters.
356 # Many Bourne shells cannot handle close brackets correctly
357 # in scan sets, so we specify it separately.
359 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
363 lastarg
="$lastarg $arg"
366 lastarg
=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
368 # Add the arguments to base_compile.
369 if test -z "$base_compile"; then
370 base_compile
="$lastarg"
372 base_compile
="$base_compile $lastarg"
380 # The next one is the -o target name
385 # We got the output file
392 # Accept the current argument as the source file.
396 # Aesthetically quote the previous argument.
398 # Backslashify any backslashes, double quotes, and dollar signs.
399 # These are the only characters that are still specially
400 # interpreted inside of double-quoted scrings.
401 lastarg
=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
403 # Double-quote args containing other shell metacharacters.
404 # Many Bourne shells cannot handle close brackets correctly
405 # in scan sets, so we specify it separately.
407 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
408 lastarg
="\"$lastarg\""
412 # Add the previous argument to base_compile.
413 if test -z "$base_compile"; then
414 base_compile
="$lastarg"
416 base_compile
="$base_compile $lastarg"
424 # Get the name of the library object.
425 libobj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
428 $echo "$modename: you must specify a target with \`-o'" 1>&2
433 # Recognize several different file suffixes.
434 # If the user specifies -o file.o, it is replaced with file.lo
449 libobj
=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
452 *.lo
) obj
=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
454 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
459 if test -z "$base_compile"; then
460 $echo "$modename: you must specify a compilation command" 1>&2
465 # Delete any leftover library objects.
466 if test "$build_old_libs" = yes; then
467 removelist
="$obj $libobj"
473 trap "$run $rm $removelist; exit 1" 1 2 15
475 # On Cygwin there's no "real" PIC flag so we must build both object types
477 cygwin
* | mingw
* | pw32
* | os2
*)
481 if test "$pic_mode" = no
&& test "$deplibs_check_method" != pass_all
; then
482 # non-PIC code in shared libraries is not supported
486 # Calculate the filename of the output object if compiler does
487 # not support -o with -c
488 if test "$compiler_c_o" = no
; then
489 output_obj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.
${objext}
490 lockfile
="$output_obj.lock"
491 removelist
="$removelist $output_obj $lockfile"
492 trap "$run $rm $removelist; exit 1" 1 2 15
498 # Lock this critical section if it is needed
499 # We use this script file to make the link, it avoids creating a new file
500 if test "$need_locks" = yes; then
501 until $run ln "$0" "$lockfile" 2>/dev
/null
; do
502 $show "Waiting for $lockfile to be removed"
505 elif test "$need_locks" = warn
; then
506 if test -f "$lockfile"; then
508 *** ERROR, $lockfile exists and contains:
509 `cat $lockfile 2>/dev/null`
511 This indicates that another process is trying to use the same
512 temporary object file, and libtool could not work around it because
513 your compiler does not support \`-c' and \`-o' together. If you
514 repeat this compilation, it may succeed, by chance, but you had better
515 avoid parallel builds (make -j) in this platform, or get a better
521 echo $srcfile > "$lockfile"
524 if test -n "$fix_srcfile_path"; then
525 eval srcfile
=\"$fix_srcfile_path\"
528 # Only build a PIC object if we are building libtool libraries.
529 if test "$build_libtool_libs" = yes; then
530 # Without this assignment, base_compile gets emptied.
531 fbsd_hideous_sh_bug
=$base_compile
533 if test "$pic_mode" != no
; then
534 # All platforms use -DPIC, to notify preprocessed assembler code.
535 command="$base_compile $srcfile $pic_flag -DPIC"
537 # Don't build PIC code
538 command="$base_compile $srcfile"
540 if test "$build_old_libs" = yes; then
542 dir
=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
543 if test "X$dir" = "X$libobj"; then
548 libobj
="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
550 if test -d "$dir"; then
557 if test $status -ne 0 && test ! -d $dir; then
562 if test "$compiler_o_lo" = yes; then
564 command="$command -o $output_obj"
565 elif test "$compiler_c_o" = yes; then
567 command="$command -o $output_obj"
570 $run $rm "$output_obj"
572 if $run eval "$command"; then :
574 test -n "$output_obj" && $run $rm $removelist
578 if test "$need_locks" = warn
&&
579 test x
"`cat $lockfile 2>/dev/null`" != x
"$srcfile"; then
581 *** ERROR, $lockfile contains:
582 `cat $lockfile 2>/dev/null`
584 but it should contain:
587 This indicates that another process is trying to use the same
588 temporary object file, and libtool could not work around it because
589 your compiler does not support \`-c' and \`-o' together. If you
590 repeat this compilation, it may succeed, by chance, but you had better
591 avoid parallel builds (make -j) in this platform, or get a better
598 # Just move the object if needed, then go on to compile the next one
599 if test x
"$output_obj" != x
"$libobj"; then
600 $show "$mv $output_obj $libobj"
601 if $run $mv $output_obj $libobj; then :
609 # If we have no pic_flag, then copy the object into place and finish.
610 if (test -z "$pic_flag" ||
test "$pic_mode" != default
) &&
611 test "$build_old_libs" = yes; then
612 # Rename the .lo from within objdir to obj
613 if test -f $obj; then
618 $show "$mv $libobj $obj"
619 if $run $mv $libobj $obj; then :
626 xdir
=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
627 if test "X$xdir" = "X$obj"; then
632 baseobj
=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
633 libobj
=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
634 # Now arrange that obj and lo_libobj become the same file
635 $show "(cd $xdir && $LN_S $baseobj $libobj)"
636 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
637 # Unlock the critical section if it was locked
638 if test "$need_locks" != no
; then
649 # Allow error messages only from the first compilation.
650 suppress_output
=' >/dev/null 2>&1'
653 # Only build a position-dependent object if we build old libraries.
654 if test "$build_old_libs" = yes; then
655 if test "$pic_mode" != yes; then
656 # Don't build PIC code
657 command="$base_compile $srcfile"
659 # All platforms use -DPIC, to notify preprocessed assembler code.
660 command="$base_compile $srcfile $pic_flag -DPIC"
662 if test "$compiler_c_o" = yes; then
663 command="$command -o $obj"
667 # Suppress compiler output if we already did a PIC compilation.
668 command="$command$suppress_output"
669 $run $rm "$output_obj"
671 if $run eval "$command"; then :
677 if test "$need_locks" = warn
&&
678 test x
"`cat $lockfile 2>/dev/null`" != x
"$srcfile"; then
680 *** ERROR, $lockfile contains:
681 `cat $lockfile 2>/dev/null`
683 but it should contain:
686 This indicates that another process is trying to use the same
687 temporary object file, and libtool could not work around it because
688 your compiler does not support \`-c' and \`-o' together. If you
689 repeat this compilation, it may succeed, by chance, but you had better
690 avoid parallel builds (make -j) in this platform, or get a better
697 # Just move the object if needed
698 if test x
"$output_obj" != x
"$obj"; then
699 $show "$mv $output_obj $obj"
700 if $run $mv $output_obj $obj; then :
708 # Create an invalid libtool object if no PIC, so that we do not
709 # accidentally link it into a program.
710 if test "$build_libtool_libs" != yes; then
711 $show "echo timestamp > $libobj"
712 $run eval "echo timestamp > \$libobj" ||
exit $?
714 # Move the .lo from within objdir
715 $show "$mv $libobj $lo_libobj"
716 if $run $mv $libobj $lo_libobj; then :
725 # Unlock the critical section if it was locked
726 if test "$need_locks" != no
; then
735 modename
="$modename: link"
737 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
738 # It is impossible to link a dll without this setting, and
739 # we shouldn't force the makefile maintainer to figure out
740 # which system we are compiling for in order to pass an extra
741 # flag for every libtool invokation.
744 # FIXME: Unfortunately, there are problems with the above when trying
745 # to make a dll which has undefined symbols, in which case not
746 # even a static library is built. For now, we need to specify
747 # -no-undefined on the libtool link line when we can be certain
748 # that all symbols are satisfied, otherwise we get a static library.
755 libtool_args
="$nonopt"
756 compile_command
="$nonopt"
757 finalize_command
="$nonopt"
770 lib_search_path
=`pwd`
778 export_symbols_regex
=
785 prefer_static_libs
=no
797 # We need to know -static, to get the right output filenames.
801 -all-static |
-static)
802 if test "X$arg" = "X-all-static"; then
803 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
804 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
806 if test -n "$link_static_flag"; then
807 dlopen_self
=$dlopen_self_static
810 if test -z "$pic_flag" && test -n "$link_static_flag"; then
811 dlopen_self
=$dlopen_self_static
814 build_libtool_libs
=no
816 prefer_static_libs
=yes
822 # See if our shared archives depend on static archives.
823 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
825 # Go through the arguments, transforming them on the way.
826 while test $# -gt 0; do
830 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
831 qarg
=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
835 libtool_args
="$libtool_args $qarg"
837 # If the previous option needs an argument, assign it.
838 if test -n "$prev"; then
841 compile_command
="$compile_command @OUTPUT@"
842 finalize_command
="$finalize_command @OUTPUT@"
848 if test "$preload" = no
; then
849 # Add the symbol object into the linking commands.
850 compile_command
="$compile_command @SYMFILE@"
851 finalize_command
="$finalize_command @SYMFILE@"
855 *.la |
*.lo
) ;; # We handle these cases below.
857 if test "$dlself" = no
; then
865 if test "$prev" = dlprefiles
; then
867 elif test "$prev" = dlfiles
&& test "$dlopen_self" != yes; then
877 if test "$prev" = dlfiles
; then
878 dlfiles
="$dlfiles $arg"
880 dlprefiles
="$dlprefiles $arg"
888 export_symbols
="$arg"
889 if test ! -f "$arg"; then
890 $echo "$modename: symbol file \`$arg' does not exist"
897 export_symbols_regex
="$arg"
907 # We need an absolute path.
909 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
911 $echo "$modename: only absolute run-paths are allowed" 1>&2
915 if test "$prev" = rpath
; then
918 *) rpath
="$rpath $arg" ;;
923 *) xrpath
="$xrpath $arg" ;;
930 compiler_flags
="$compiler_flags $qarg"
932 compile_command
="$compile_command $qarg"
933 finalize_command
="$finalize_command $qarg"
937 linker_flags
="$linker_flags $qarg"
938 compiler_flags
="$compiler_flags $wl$qarg"
940 compile_command
="$compile_command $wl$qarg"
941 finalize_command
="$finalize_command $wl$qarg"
945 eval "$prev=\"\$arg\""
956 if test -n "$link_static_flag"; then
957 compile_command
="$compile_command $link_static_flag"
958 finalize_command
="$finalize_command $link_static_flag"
964 # FIXME: remove this flag sometime in the future.
965 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
989 -export-symbols |
-export-symbols-regex)
990 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
991 $echo "$modename: more than one -exported-symbols argument is not allowed"
994 if test "X$arg" = "X-export-symbols"; then
1002 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1003 # so, if we see these flags be careful not to treat them like -L
1005 case $with_gcc/$host in
1006 no
/*-*-irix* | no
/*-*-nonstopux*)
1007 compile_command
="$compile_command $arg"
1008 finalize_command
="$finalize_command $arg"
1015 dir
=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1016 # We need an absolute path.
1018 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1020 absdir
=`cd "$dir" && pwd`
1021 if test -z "$absdir"; then
1022 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1031 deplibs
="$deplibs -L$dir"
1032 lib_search_path
="$lib_search_path $dir"
1036 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1037 case :$dllsearchpath: in
1039 *) dllsearchpath
="$dllsearchpath:$dir";;
1047 if test "X$arg" = "X-lc" ||
test "X$arg" = "X-lm"; then
1049 *-*-cygwin* |
*-*-pw32* |
*-*-beos*)
1050 # These systems don't actually have a C or math library (as such)
1053 *-*-mingw* |
*-*-os2*)
1054 # These systems don't actually have a C library (as such)
1055 test "X$arg" = "X-lc" && continue
1057 *-*-openbsd* |
*-*-freebsd*)
1058 # Do not include libc due to us having libc/libc_r.
1059 test "X$arg" = "X-lc" && continue
1062 elif test "X$arg" = "X-lc_r"; then
1064 *-*-openbsd* |
*-*-freebsd*)
1065 # Do not include libc_r directly, use -pthread flag.
1070 deplibs
="$deplibs $arg"
1086 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1087 # The PATH hackery in wrapper scripts is required on Windows
1088 # in order for the loader to find any dlls it needs.
1089 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1090 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1093 *) no_install
=yes ;;
1121 dir
=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1122 # We need an absolute path.
1124 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1126 $echo "$modename: only absolute run-paths are allowed" 1>&2
1132 *) xrpath
="$xrpath $dir" ;;
1138 # The effects of -static are defined in a previous loop.
1139 # We used to do the same as -all-static on platforms that
1140 # didn't have a PIC flag, but the assumption that the effects
1141 # would be equivalent was wrong. It would break on at least
1142 # Digital Unix and AIX.
1157 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1159 save_ifs
="$IFS"; IFS
=','
1160 for flag
in $args; do
1163 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1168 compiler_flags
="$compiler_flags $flag"
1171 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1175 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1177 save_ifs
="$IFS"; IFS
=','
1178 for flag
in $args; do
1181 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1186 compiler_flags
="$compiler_flags $wl$flag"
1187 linker_flags
="$linker_flags $flag"
1190 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1203 # Some other compiler flag.
1205 # Unknown arguments in both finalize_command and compile_command need
1206 # to be aesthetically quoted because they are evaled later.
1207 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1209 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1216 # A library or standard object.
1217 if test "$prev" = dlfiles
; then
1218 # This file was specified with -dlopen.
1219 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1220 dlfiles
="$dlfiles $arg"
1224 # If libtool objects are unsupported, then we need to preload.
1229 if test "$prev" = dlprefiles
; then
1230 # Preload the old-style object.
1231 dlprefiles
="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1235 *.lo
) libobjs
="$libobjs $arg" ;;
1236 *) objs
="$objs $arg" ;;
1243 deplibs
="$deplibs $arg"
1244 old_deplibs
="$old_deplibs $arg"
1249 # A libtool-controlled library.
1251 if test "$prev" = dlfiles
; then
1252 # This library was specified with -dlopen.
1253 dlfiles
="$dlfiles $arg"
1255 elif test "$prev" = dlprefiles
; then
1256 # The library was specified with -dlpreopen.
1257 dlprefiles
="$dlprefiles $arg"
1260 deplibs
="$deplibs $arg"
1265 # Some other compiler argument.
1267 # Unknown arguments in both finalize_command and compile_command need
1268 # to be aesthetically quoted because they are evaled later.
1269 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1271 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1278 # Now actually substitute the argument into the commands.
1279 if test -n "$arg"; then
1280 compile_command
="$compile_command $arg"
1281 finalize_command
="$finalize_command $arg"
1283 done # argument parsing loop
1285 if test -n "$prev"; then
1286 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1291 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1292 eval arg
=\"$export_dynamic_flag_spec\"
1293 compile_command
="$compile_command $arg"
1294 finalize_command
="$finalize_command $arg"
1297 # calculate the name of the file, without its directory
1298 outputname
=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1299 libobjs_save
="$libobjs"
1301 if test -n "$shlibpath_var"; then
1302 # get the directories listed in $shlibpath_var
1303 eval shlib_search_path
=\
`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1307 eval sys_lib_search_path
=\"$sys_lib_search_path_spec\"
1308 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
1310 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1311 if test "X$output_objdir" = "X$output"; then
1312 output_objdir
="$objdir"
1314 output_objdir
="$output_objdir/$objdir"
1316 # Create the object directory.
1317 if test ! -d $output_objdir; then
1318 $show "$mkdir $output_objdir"
1319 $run $mkdir $output_objdir
1321 if test $status -ne 0 && test ! -d $output_objdir; then
1326 # Determine the type of output
1329 $echo "$modename: you must specify an output file" 1>&2
1333 *.
$libext) linkmode
=oldlib
;;
1334 *.lo |
*.
$objext) linkmode
=obj
;;
1335 *.la
) linkmode
=lib
;;
1336 *) linkmode
=prog
;; # Anything else should be a program.
1341 # Find all interdependent deplibs by searching for libraries
1342 # that are linked more than once (e.g. -la -lb -la)
1343 for deplib
in $deplibs; do
1344 if test "X$duplicate_deps" = "Xyes" ; then
1346 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1349 libs
="$libs $deplib"
1354 need_relink
=no
# whether we're linking any uninstalled libtool libraries
1355 notinst_deplibs
= # not-installed libtool libraries
1356 notinst_path
= # paths that contain not-installed libtool libraries
1360 for file in $dlfiles $dlprefiles; do
1364 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1376 passes
="conv scan dlopen dlpreopen link"
1381 for pass
in $passes; do
1382 if test $linkmode = prog
; then
1383 # Determine which files to process
1387 save_deplibs
="$deplibs" # Collect dlpreopened libraries
1390 dlpreopen
) libs
="$dlprefiles" ;;
1391 link
) libs
="$deplibs %DEPLIBS% $dependency_libs" ;;
1394 for deplib
in $libs; do
1399 if test $linkmode = oldlib
&& test $linkmode = obj
; then
1400 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1403 if test $pass = conv
; then
1404 deplibs
="$deplib $deplibs"
1407 name
=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1408 for searchdir
in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1409 # Search the libtool library
1410 lib
="$searchdir/lib${name}.la"
1411 if test -f "$lib"; then
1416 if test "$found" != yes; then
1417 # deplib doesn't seem to be a libtool library
1418 if test "$linkmode,$pass" = "prog,link"; then
1419 compile_deplibs
="$deplib $compile_deplibs"
1420 finalize_deplibs
="$deplib $finalize_deplibs"
1422 deplibs
="$deplib $deplibs"
1423 test $linkmode = lib
&& newdependency_libs
="$deplib $newdependency_libs"
1431 deplibs
="$deplib $deplibs"
1432 test $pass = conv
&& continue
1433 newdependency_libs
="$deplib $newdependency_libs"
1434 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1437 if test $pass = conv
; then
1438 deplibs
="$deplib $deplibs"
1441 if test $pass = scan
; then
1442 deplibs
="$deplib $deplibs"
1443 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1445 compile_deplibs
="$deplib $compile_deplibs"
1446 finalize_deplibs
="$deplib $finalize_deplibs"
1450 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1456 if test $pass = link
; then
1457 dir
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1458 # Make sure the xrpath contains only unique directories.
1461 *) xrpath
="$xrpath $dir" ;;
1464 deplibs
="$deplib $deplibs"
1467 *.la
) lib
="$deplib" ;;
1469 if test $pass = conv
; then
1470 deplibs
="$deplib $deplibs"
1475 if test "$deplibs_check_method" != pass_all
; then
1477 echo "*** Warning: Trying to link with static lib archive $deplib."
1478 echo "*** I have the capability to make that library automatically link in when"
1479 echo "*** you link to this library. But I can only do this if you have a"
1480 echo "*** shared version of the library, which you do not appear to have"
1481 echo "*** because the file extensions .$libext of this argument makes me believe"
1482 echo "*** that it is just a static archive that I should not used here."
1485 echo "*** Warning: Linking the shared library $output against the"
1486 echo "*** static library $deplib is not portable!"
1487 deplibs
="$deplib $deplibs"
1492 if test $pass != link
; then
1493 deplibs
="$deplib $deplibs"
1495 compile_deplibs
="$deplib $compile_deplibs"
1496 finalize_deplibs
="$deplib $finalize_deplibs"
1503 if test $pass = dlpreopen ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1504 # If there is no dlopen support or we're linking statically,
1505 # we need to preload.
1506 newdlprefiles
="$newdlprefiles $deplib"
1507 compile_deplibs
="$deplib $compile_deplibs"
1508 finalize_deplibs
="$deplib $finalize_deplibs"
1510 newdlfiles
="$newdlfiles $deplib"
1519 if test $found = yes ||
test -f "$lib"; then :
1521 $echo "$modename: cannot find the library \`$lib'" 1>&2
1525 # Check to see that this really is a libtool archive.
1526 if (${SED} -e '2q' $lib |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
1528 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1532 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1533 test "X$ladir" = "X$lib" && ladir
="."
1541 # If the library was installed with an old release of libtool,
1542 # it will not redefine variable installed.
1547 */* |
*\\*) .
$lib ;;
1551 if test "$linkmode,$pass" = "lib,link" ||
1552 test "$linkmode,$pass" = "prog,scan" ||
1553 { test $linkmode = oldlib
&& test $linkmode = obj
; }; then
1554 # Add dl[pre]opened files of deplib
1555 test -n "$dlopen" && dlfiles
="$dlfiles $dlopen"
1556 test -n "$dlpreopen" && dlprefiles
="$dlprefiles $dlpreopen"
1559 if test $pass = conv
; then
1560 # Only check for convenience libraries
1561 deplibs
="$lib $deplibs"
1562 if test -z "$libdir"; then
1563 if test -z "$old_library"; then
1564 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1567 # It is a libtool convenience library, so add in its objects.
1568 convenience
="$convenience $ladir/$objdir/$old_library"
1569 old_convenience
="$old_convenience $ladir/$objdir/$old_library"
1571 for deplib
in $dependency_libs; do
1572 deplibs
="$deplib $deplibs"
1573 if test "X$duplicate_deps" = "Xyes" ; then
1574 case "$tmp_libs " in
1575 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1578 tmp_libs
="$tmp_libs $deplib"
1580 elif test $linkmode != prog
&& test $linkmode != lib
; then
1581 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1587 # Get the name of the library we link against.
1589 for l
in $old_library $library_names; do
1592 if test -z "$linklib"; then
1593 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1597 # This library was specified with -dlopen.
1598 if test $pass = dlopen
; then
1599 if test -z "$libdir"; then
1600 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1603 if test -z "$dlname" ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1604 # If there is no dlname, no dlopen support or we're linking
1605 # statically, we need to preload.
1606 dlprefiles
="$dlprefiles $lib"
1608 newdlfiles
="$newdlfiles $lib"
1613 # We need an absolute path.
1615 [\\/]* |
[A-Za-z
]:[\\/]*) abs_ladir
="$ladir" ;;
1617 abs_ladir
=`cd "$ladir" && pwd`
1618 if test -z "$abs_ladir"; then
1619 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1620 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1625 laname
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1627 # Find the relevant object directory and library name.
1628 if test "X$installed" = Xyes
; then
1629 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1630 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1639 dir
="$ladir/$objdir"
1640 absdir
="$abs_ladir/$objdir"
1641 # Remove this search path later
1642 notinst_path
="$notinst_path $abs_ladir"
1643 fi # $installed = yes
1644 name
=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1646 # This library was specified with -dlpreopen.
1647 if test $pass = dlpreopen
; then
1648 if test -z "$libdir"; then
1649 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1652 # Prefer using a static library (so that no silly _DYNAMIC symbols
1653 # are required to link).
1654 if test -n "$old_library"; then
1655 newdlprefiles
="$newdlprefiles $dir/$old_library"
1656 # Otherwise, use the dlname, so that lt_dlopen finds it.
1657 elif test -n "$dlname"; then
1658 newdlprefiles
="$newdlprefiles $dir/$dlname"
1660 newdlprefiles
="$newdlprefiles $dir/$linklib"
1662 fi # $pass = dlpreopen
1664 if test -z "$libdir"; then
1665 # Link the convenience library
1666 if test $linkmode = lib
; then
1667 deplibs
="$dir/$old_library $deplibs"
1668 elif test "$linkmode,$pass" = "prog,link"; then
1669 compile_deplibs
="$dir/$old_library $compile_deplibs"
1670 finalize_deplibs
="$dir/$old_library $finalize_deplibs"
1672 deplibs
="$lib $deplibs"
1677 if test $linkmode = prog
&& test $pass != link
; then
1678 newlib_search_path
="$newlib_search_path $ladir"
1679 deplibs
="$lib $deplibs"
1682 if test "$link_all_deplibs" != no ||
test -z "$library_names" ||
1683 test "$build_libtool_libs" = no
; then
1688 for deplib
in $dependency_libs; do
1690 -L*) newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1692 # Need to link against all dependency_libs?
1693 if test $linkalldeplibs = yes; then
1694 deplibs
="$deplib $deplibs"
1696 # Need to hardcode shared library paths
1697 # or/and link against static libraries
1698 newdependency_libs
="$deplib $newdependency_libs"
1700 if test "X$duplicate_deps" = "Xyes" ; then
1701 case "$tmp_libs " in
1702 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1705 tmp_libs
="$tmp_libs $deplib"
1708 fi # $linkmode = prog...
1710 link_static
=no
# Whether the deplib will be linked statically
1711 if test -n "$library_names" &&
1712 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
1713 # Link against this shared library
1715 if test "$linkmode,$pass" = "prog,link" ||
1716 { test $linkmode = lib
&& test $hardcode_into_libs = yes; }; then
1717 # Hardcode the library path.
1718 # Skip directories that are in the system default run-time
1720 case " $sys_lib_dlsearch_path " in
1723 case "$compile_rpath " in
1725 *) compile_rpath
="$compile_rpath $absdir"
1729 case " $sys_lib_dlsearch_path " in
1732 case "$finalize_rpath " in
1734 *) finalize_rpath
="$finalize_rpath $libdir"
1738 if test $linkmode = prog
; then
1739 # We need to hardcode the library path
1740 if test -n "$shlibpath_var"; then
1741 # Make sure the rpath contains only unique directories.
1742 case "$temp_rpath " in
1745 *) temp_rpath
="$temp_rpath $dir" ;;
1749 fi # $linkmode,$pass = prog,link...
1751 if test "$alldeplibs" = yes &&
1752 { test "$deplibs_check_method" = pass_all ||
1753 { test "$build_libtool_libs" = yes &&
1754 test -n "$library_names"; }; }; then
1755 # We only need to search for static libraries
1759 if test "$installed" = no
; then
1760 notinst_deplibs
="$notinst_deplibs $lib"
1764 if test -n "$old_archive_from_expsyms_cmds"; then
1765 # figure out the soname
1766 set dummy
$library_names
1769 libname
=`eval \\$echo \"$libname_spec\"`
1770 # use dlname if we got it. it's perfectly good, no?
1771 if test -n "$dlname"; then
1773 elif test -n "$soname_spec"; then
1777 major
=`expr $current - $age`
1781 eval soname
=\"$soname_spec\"
1786 # Make a new name for the extract_expsyms_cmds to use
1788 soname
=`echo $soroot | ${SED} -e 's/^.*\///'`
1789 newlib
="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
1791 # If the library has no export list, then create one now
1792 if test -f "$output_objdir/$soname-def"; then :
1794 $show "extracting exported symbol list from \`$soname'"
1795 save_ifs
="$IFS"; IFS
='~'
1796 eval cmds
=\"$extract_expsyms_cmds\"
1797 for cmd
in $cmds; do
1800 $run eval "$cmd" ||
exit $?
1806 if test -f "$output_objdir/$newlib"; then :; else
1807 $show "generating import library for \`$soname'"
1808 save_ifs
="$IFS"; IFS
='~'
1809 eval cmds
=\"$old_archive_from_expsyms_cmds\"
1810 for cmd
in $cmds; do
1813 $run eval "$cmd" ||
exit $?
1817 # make sure the library variables are pointing to the new library
1820 fi # test -n $old_archive_from_expsyms_cmds
1822 if test $linkmode = prog ||
test "$mode" != relink
; then
1827 case $hardcode_action in
1828 immediate | unsupported
)
1829 if test "$hardcode_direct" = no
; then
1831 elif test "$hardcode_minus_L" = no
; then
1833 *-*-sunos*) add_shlibpath
="$dir" ;;
1837 elif test "$hardcode_shlibpath_var" = no
; then
1838 add_shlibpath
="$dir"
1845 if test "$hardcode_direct" = yes; then
1847 elif test "$hardcode_minus_L" = yes; then
1850 elif test "$hardcode_shlibpath_var" = yes; then
1851 add_shlibpath
="$dir"
1860 if test "$lib_linked" != yes; then
1861 $echo "$modename: configuration error: unsupported hardcode properties"
1865 if test -n "$add_shlibpath"; then
1866 case :$compile_shlibpath: in
1867 *":$add_shlibpath:"*) ;;
1868 *) compile_shlibpath
="$compile_shlibpath$add_shlibpath:" ;;
1871 if test $linkmode = prog
; then
1872 test -n "$add_dir" && compile_deplibs
="$add_dir $compile_deplibs"
1873 test -n "$add" && compile_deplibs
="$add $compile_deplibs"
1875 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
1876 test -n "$add" && deplibs
="$add $deplibs"
1877 if test "$hardcode_direct" != yes && \
1878 test "$hardcode_minus_L" != yes && \
1879 test "$hardcode_shlibpath_var" = yes; then
1880 case :$finalize_shlibpath: in
1882 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
1888 if test $linkmode = prog ||
test "$mode" = relink
; then
1892 # Finalize command for both is simple: just hardcode it.
1893 if test "$hardcode_direct" = yes; then
1894 add
="$libdir/$linklib"
1895 elif test "$hardcode_minus_L" = yes; then
1898 elif test "$hardcode_shlibpath_var" = yes; then
1899 case :$finalize_shlibpath: in
1901 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
1905 # We cannot seem to hardcode it, guess we'll fake it.
1910 if test $linkmode = prog
; then
1911 test -n "$add_dir" && finalize_deplibs
="$add_dir $finalize_deplibs"
1912 test -n "$add" && finalize_deplibs
="$add $finalize_deplibs"
1914 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
1915 test -n "$add" && deplibs
="$add $deplibs"
1918 elif test $linkmode = prog
; then
1919 if test "$alldeplibs" = yes &&
1920 { test "$deplibs_check_method" = pass_all ||
1921 { test "$build_libtool_libs" = yes &&
1922 test -n "$library_names"; }; }; then
1923 # We only need to search for static libraries
1927 # Try to link the static library
1928 # Here we assume that one of hardcode_direct or hardcode_minus_L
1929 # is not unsupported. This is valid on all known static and
1931 if test "$hardcode_direct" != unsupported
; then
1932 test -n "$old_library" && linklib
="$old_library"
1933 compile_deplibs
="$dir/$linklib $compile_deplibs"
1934 finalize_deplibs
="$dir/$linklib $finalize_deplibs"
1936 compile_deplibs
="-l$name -L$dir $compile_deplibs"
1937 finalize_deplibs
="-l$name -L$dir $finalize_deplibs"
1939 elif test "$build_libtool_libs" = yes; then
1940 # Not a shared library
1941 if test "$deplibs_check_method" != pass_all
; then
1942 # We're trying link a shared library against a static one
1943 # but the system doesn't support it.
1945 # Just print a warning and add the library to dependency_libs so
1946 # that the program can be linked against the static library.
1948 echo "*** Warning: This system can not link to static lib archive $lib."
1949 echo "*** I have the capability to make that library automatically link in when"
1950 echo "*** you link to this library. But I can only do this if you have a"
1951 echo "*** shared version of the library, which you do not appear to have."
1952 if test "$module" = yes; then
1953 echo "*** But as you try to build a module library, libtool will still create "
1954 echo "*** a static module, that should work as long as the dlopening application"
1955 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
1956 if test -z "$global_symbol_pipe"; then
1958 echo "*** However, this would only work if libtool was able to extract symbol"
1959 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1960 echo "*** not find such a program. So, this module is probably useless."
1961 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1963 if test "$build_old_libs" = no
; then
1964 build_libtool_libs
=module
1967 build_libtool_libs
=no
1971 convenience
="$convenience $dir/$old_library"
1972 old_convenience
="$old_convenience $dir/$old_library"
1973 deplibs
="$dir/$old_library $deplibs"
1976 fi # link shared/static library?
1978 if test $linkmode = lib
; then
1979 if test -n "$dependency_libs" &&
1980 { test $hardcode_into_libs != yes ||
test $build_old_libs = yes ||
1981 test $link_static = yes; }; then
1982 # Extract -R from dependency_libs
1984 for libdir
in $dependency_libs; do
1986 -R*) temp_xrpath
=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
1988 *" $temp_xrpath "*) ;;
1989 *) xrpath
="$xrpath $temp_xrpath";;
1991 *) temp_deplibs
="$temp_deplibs $libdir";;
1994 dependency_libs
="$temp_deplibs"
1997 newlib_search_path
="$newlib_search_path $absdir"
1998 # Link against this library
1999 test "$link_static" = no
&& newdependency_libs
="$abs_ladir/$laname $newdependency_libs"
2000 # ... and its dependency_libs
2002 for deplib
in $dependency_libs; do
2003 newdependency_libs
="$deplib $newdependency_libs"
2004 if test "X$duplicate_deps" = "Xyes" ; then
2005 case "$tmp_libs " in
2006 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2009 tmp_libs
="$tmp_libs $deplib"
2012 if test $link_all_deplibs != no
; then
2013 # Add the search paths of all dependency libraries
2014 for deplib
in $dependency_libs; do
2016 -L*) path
="$deplib" ;;
2018 dir
=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2019 test "X$dir" = "X$deplib" && dir
="."
2020 # We need an absolute path.
2022 [\\/]* |
[A-Za-z
]:[\\/]*) absdir
="$dir" ;;
2024 absdir
=`cd "$dir" && pwd`
2025 if test -z "$absdir"; then
2026 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2031 if grep "^installed=no" $deplib > /dev
/null
; then
2032 path
="-L$absdir/$objdir"
2034 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2035 if test -z "$libdir"; then
2036 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2039 if test "$absdir" != "$libdir"; then
2040 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2047 case " $deplibs " in
2049 *) deplibs
="$deplibs $path" ;;
2052 fi # link_all_deplibs != no
2054 done # for deplib in $libs
2055 if test $pass = dlpreopen
; then
2056 # Link the dlpreopened libraries before other libraries
2057 for deplib
in $save_deplibs; do
2058 deplibs
="$deplib $deplibs"
2061 if test $pass != dlopen
; then
2062 test $pass != scan
&& dependency_libs
="$newdependency_libs"
2063 if test $pass != conv
; then
2064 # Make sure lib_search_path contains only unique directories.
2066 for dir
in $newlib_search_path; do
2067 case "$lib_search_path " in
2069 *) lib_search_path
="$lib_search_path $dir" ;;
2075 if test "$linkmode,$pass" != "prog,link"; then
2078 vars
="compile_deplibs finalize_deplibs"
2080 for var
in $vars dependency_libs
; do
2081 # Add libraries to $var in reverse order
2082 eval tmp_libs
=\"\$
$var\"
2084 for deplib
in $tmp_libs; do
2086 -L*) new_libs
="$deplib $new_libs" ;;
2088 case " $specialdeplibs " in
2089 *" $deplib "*) new_libs
="$deplib $new_libs" ;;
2091 case " $new_libs " in
2093 *) new_libs
="$deplib $new_libs" ;;
2101 for deplib
in $new_libs; do
2104 case " $tmp_libs " in
2106 *) tmp_libs
="$tmp_libs $deplib" ;;
2109 *) tmp_libs
="$tmp_libs $deplib" ;;
2112 eval $var=\"$tmp_libs\"
2115 if test "$pass" = "conv" &&
2116 { test "$linkmode" = "lib" ||
test "$linkmode" = "prog"; }; then
2117 libs
="$deplibs" # reset libs
2121 if test $linkmode = prog
; then
2122 dlfiles
="$newdlfiles"
2123 dlprefiles
="$newdlprefiles"
2128 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
2129 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2132 if test -n "$rpath"; then
2133 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2136 if test -n "$xrpath"; then
2137 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2140 if test -n "$vinfo"; then
2141 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2144 if test -n "$release"; then
2145 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2148 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
2149 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2152 # Now set the variables for building old libraries.
2153 build_libtool_libs
=no
2155 objs
="$objs$old_deplibs"
2159 # Make sure we only generate libraries of the form `libNAME.la'.
2162 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2163 eval libname
=\"$libname_spec\"
2166 if test "$module" = no
; then
2167 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2171 if test "$need_lib_prefix" != no
; then
2172 # Add the "lib" prefix for modules if required
2173 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2174 eval libname
=\"$libname_spec\"
2176 libname
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2181 if test -n "$objs"; then
2182 if test "$deplibs_check_method" != pass_all
; then
2183 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2187 echo "*** Warning: Linking the shared library $output against the non-libtool"
2188 echo "*** objects $objs is not portable!"
2189 libobjs
="$libobjs $objs"
2193 if test "$dlself" != no
; then
2194 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2198 if test $# -gt 2; then
2199 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2204 if test -z "$rpath"; then
2205 if test "$build_libtool_libs" = yes; then
2206 # Building a libtool convenience library.
2208 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
2209 build_libtool_libs
=convenience
2213 if test -n "$vinfo"; then
2214 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2217 if test -n "$release"; then
2218 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2222 # Parse the version information argument.
2223 save_ifs
="$IFS"; IFS
=':'
2224 set dummy
$vinfo 0 0 0
2227 if test -n "$8"; then
2228 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2237 # Check that each of the things are valid numbers.
2239 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2241 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2242 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2248 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2250 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2251 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2257 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2259 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2260 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2265 if test $age -gt $current; then
2266 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2267 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2271 # Calculate the version variables.
2275 case $version_type in
2279 # Like Linux, but with the current version available in
2280 # verstring for coding it into the library header
2281 major
=.
`expr $current - $age`
2282 versuffix
="$major.$age.$revision"
2283 # Darwin ld doesn't like 0 for these options...
2284 minor_current
=`expr $current + 1`
2285 verstring
="-compatibility_version $minor_current -current_version $minor_current.$revision"
2290 versuffix
=".$current.$revision";
2295 versuffix
=".$current";
2299 major
=`expr $current - $age + 1`
2301 case $version_type in
2302 nonstopux
) verstring_prefix
=nonstopux
;;
2303 *) verstring_prefix
=sgi
;;
2305 verstring
="$verstring_prefix$major.$revision"
2307 # Add in all the interfaces that we are compatible with.
2309 while test $loop != 0; do
2310 iface
=`expr $revision - $loop`
2311 loop
=`expr $loop - 1`
2312 verstring
="$verstring_prefix$major.$iface:$verstring"
2315 # Before this point, $major must not contain `.'.
2317 versuffix
="$major.$revision"
2321 major
=.
`expr $current - $age`
2322 versuffix
="$major.$age.$revision"
2326 major
=.
`expr $current - $age`
2327 versuffix
=".$current.$age.$revision"
2328 verstring
="$current.$age.$revision"
2330 # Add in all the interfaces that we are compatible with.
2332 while test $loop != 0; do
2333 iface
=`expr $current - $loop`
2334 loop
=`expr $loop - 1`
2335 verstring
="$verstring:${iface}.0"
2338 # Make executables depend on our current version.
2339 verstring
="$verstring:${current}.0"
2344 versuffix
=".$current.$revision"
2348 # Use '-' rather than '.', since we only want one
2349 # extension on DOS 8.3 filesystems.
2350 major
=`expr $current - $age`
2355 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2356 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2361 # Clear the version info if we defaulted, and they specified a release.
2362 if test -z "$vinfo" && test -n "$release"; then
2365 case $version_type in
2367 # we can't check for "0.0" in archive_cmds due to quoting
2368 # problems, so we reset it completely
2375 if test "$need_version" = no
; then
2382 # Remove version info from name if versioning should be avoided
2383 if test "$avoid_version" = yes && test "$need_version" = no
; then
2389 # Check to see if the archive will have undefined symbols.
2390 if test "$allow_undefined" = yes; then
2391 if test "$allow_undefined_flag" = unsupported
; then
2392 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2393 build_libtool_libs
=no
2397 # Don't allow undefined symbols.
2398 allow_undefined_flag
="$no_undefined_flag"
2402 if test "$mode" != relink
; then
2403 # Remove our outputs.
2404 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2405 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.
*
2408 # Now set the variables for building old libraries.
2409 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
2410 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
2412 # Transform .lo files to .o files.
2413 oldobjs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2416 # Eliminate all temporary directories.
2417 for path
in $notinst_path; do
2418 lib_search_path
=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
2419 deplibs
=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
2420 dependency_libs
=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
2423 if test -n "$xrpath"; then
2424 # If the user specified any rpath flags, then add them.
2426 for libdir
in $xrpath; do
2427 temp_xrpath
="$temp_xrpath -R$libdir"
2428 case "$finalize_rpath " in
2430 *) finalize_rpath
="$finalize_rpath $libdir" ;;
2433 if test $hardcode_into_libs != yes ||
test $build_old_libs = yes; then
2434 dependency_libs
="$temp_xrpath $dependency_libs"
2438 # Make sure dlfiles contains only unique files that won't be dlpreopened
2439 old_dlfiles
="$dlfiles"
2441 for lib
in $old_dlfiles; do
2442 case " $dlprefiles $dlfiles " in
2444 *) dlfiles
="$dlfiles $lib" ;;
2448 # Make sure dlprefiles contains only unique files
2449 old_dlprefiles
="$dlprefiles"
2451 for lib
in $old_dlprefiles; do
2452 case "$dlprefiles " in
2454 *) dlprefiles
="$dlprefiles $lib" ;;
2458 if test "$build_libtool_libs" = yes; then
2459 if test -n "$rpath"; then
2461 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2* |
*-*-beos*)
2462 # these systems don't actually have a c library (as such)!
2464 *-*-rhapsody* |
*-*-darwin1.
[012])
2465 # Rhapsody C library is in the System framework
2466 deplibs
="$deplibs -framework System"
2469 # Don't link with libc until the a.out ld.so is fixed.
2471 *-*-openbsd* |
*-*-freebsd*)
2472 # Do not include libc due to us having libc/libc_r.
2475 # Add libc to deplibs on all other systems if necessary.
2476 if test $build_libtool_need_lc = "yes"; then
2477 deplibs
="$deplibs -lc"
2483 # Transform deplibs into only deplibs that can be linked in shared.
2485 libname_save
=$libname
2486 release_save
=$release
2487 versuffix_save
=$versuffix
2489 # I'm not sure if I'm treating the release correctly. I think
2490 # release should show up in the -l (ie -lgmp5) so we don't want to
2491 # add it in twice. Is that correct?
2497 case $deplibs_check_method in
2499 # Don't check for shared/static. Everything works.
2500 # This might be a little naive. We might want to check
2501 # whether the library exists or not. But this is on
2502 # osf3 & osf4 and I'm not really sure... Just
2503 # implementing what was already the behaviour.
2507 # This code stresses the "libraries are programs" paradigm to its
2508 # limits. Maybe even breaks it. We compile a program, linking it
2509 # against the deplibs as a proxy for the library. Then we can check
2510 # whether they linked in statically or dynamically with ldd.
2512 cat > conftest.c
<<EOF
2513 int main() { return 0; }
2516 $CC -o conftest conftest.c
$deplibs
2517 if test $?
-eq 0 ; then
2518 ldd_output
=`ldd conftest`
2519 for i
in $deplibs; do
2520 name
="`expr $i : '-l\(.*\)'`"
2521 # If $name is empty we are operating on a -L argument.
2522 if test -n "$name" && test "$name" != "0"; then
2523 libname
=`eval \\$echo \"$libname_spec\"`
2524 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
2525 set dummy
$deplib_matches
2527 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2528 newdeplibs
="$newdeplibs $i"
2532 echo "*** Warning: dynamic linker does not accept needed library $i."
2533 echo "*** I have the capability to make that library automatically link in when"
2534 echo "*** you link to this library. But I can only do this if you have a"
2535 echo "*** shared version of the library, which I believe you do not have"
2536 echo "*** because a test_compile did reveal that the linker did not use it for"
2537 echo "*** its dynamic dependency list that programs get resolved with at runtime."
2540 newdeplibs
="$newdeplibs $i"
2544 # Error occured in the first compile. Let's try to salvage
2545 # the situation: Compile a separate program for each library.
2546 for i
in $deplibs; do
2547 name
="`expr $i : '-l\(.*\)'`"
2548 # If $name is empty we are operating on a -L argument.
2549 if test -n "$name" && test "$name" != "0"; then
2551 $CC -o conftest conftest.c
$i
2553 if test $?
-eq 0 ; then
2554 ldd_output
=`ldd conftest`
2555 libname
=`eval \\$echo \"$libname_spec\"`
2556 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
2557 set dummy
$deplib_matches
2559 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2560 newdeplibs
="$newdeplibs $i"
2564 echo "*** Warning: dynamic linker does not accept needed library $i."
2565 echo "*** I have the capability to make that library automatically link in when"
2566 echo "*** you link to this library. But I can only do this if you have a"
2567 echo "*** shared version of the library, which you do not appear to have"
2568 echo "*** because a test_compile did reveal that the linker did not use this one"
2569 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
2574 echo "*** Warning! Library $i is needed by this library but I was not able to"
2575 echo "*** make it link in! You will probably need to install it or some"
2576 echo "*** library that it depends on before this library will be fully"
2577 echo "*** functional. Installing it before continuing would be even better."
2580 newdeplibs
="$newdeplibs $i"
2586 set dummy
$deplibs_check_method
2587 file_magic_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2588 for a_deplib
in $deplibs; do
2589 name
="`expr $a_deplib : '-l\(.*\)'`"
2590 # If $name is empty we are operating on a -L argument.
2591 if test -n "$name" && test "$name" != "0"; then
2592 libname
=`eval \\$echo \"$libname_spec\"`
2593 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2594 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
2595 for potent_lib
in $potential_libs; do
2596 # Follow soft links.
2597 if ls -lLd "$potent_lib" 2>/dev
/null \
2598 |
grep " -> " >/dev
/null
; then
2601 # The statement above tries to avoid entering an
2602 # endless loop below, in case of cyclic links.
2603 # We might still enter an endless loop, since a link
2604 # loop can be closed while we follow links,
2606 potlib
="$potent_lib"
2607 while test -h "$potlib" 2>/dev
/null
; do
2608 potliblink
=`ls -ld $potlib | ${SED} 's/.* -> //'`
2610 [\\/]* |
[A-Za-z
]:[\\/]*) potlib
="$potliblink";;
2611 *) potlib
=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2614 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null \
2616 |
egrep "$file_magic_regex" > /dev
/null
; then
2617 newdeplibs
="$newdeplibs $a_deplib"
2623 if test -n "$a_deplib" ; then
2626 echo "*** Warning: linker path does not have real file for library $a_deplib."
2627 echo "*** I have the capability to make that library automatically link in when"
2628 echo "*** you link to this library. But I can only do this if you have a"
2629 echo "*** shared version of the library, which you do not appear to have"
2630 echo "*** because I did check the linker path looking for a file starting"
2631 if test -z "$potlib" ; then
2632 echo "*** with $libname but no candidates were found. (...for file magic test)"
2634 echo "*** with $libname and none of the candidates passed a file format test"
2635 echo "*** using a file magic. Last file checked: $potlib"
2639 # Add a -L argument.
2640 newdeplibs
="$newdeplibs $a_deplib"
2642 done # Gone through all deplibs.
2645 set dummy
$deplibs_check_method
2646 match_pattern_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2647 for a_deplib
in $deplibs; do
2648 name
="`expr $a_deplib : '-l\(.*\)'`"
2649 # If $name is empty we are operating on a -L argument.
2650 if test -n "$name" && test "$name" != "0"; then
2651 libname
=`eval \\$echo \"$libname_spec\"`
2652 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2653 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
2654 for potent_lib
in $potential_libs; do
2655 potlib
="$potent_lib" # see symlink-check below in file_magic test
2656 if eval echo \"$potent_lib\" 2>/dev
/null \
2658 |
egrep "$match_pattern_regex" > /dev
/null
; then
2659 newdeplibs
="$newdeplibs $a_deplib"
2665 if test -n "$a_deplib" ; then
2668 echo "*** Warning: linker path does not have real file for library $a_deplib."
2669 echo "*** I have the capability to make that library automatically link in when"
2670 echo "*** you link to this library. But I can only do this if you have a"
2671 echo "*** shared version of the library, which you do not appear to have"
2672 echo "*** because I did check the linker path looking for a file starting"
2673 if test -z "$potlib" ; then
2674 echo "*** with $libname but no candidates were found. (...for regex pattern test)"
2676 echo "*** with $libname and none of the candidates passed a file format test"
2677 echo "*** using a regex pattern. Last file checked: $potlib"
2681 # Add a -L argument.
2682 newdeplibs
="$newdeplibs $a_deplib"
2684 done # Gone through all deplibs.
2688 if $echo "X $deplibs" |
$Xsed -e 's/ -lc$//' \
2689 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2690 grep .
>/dev
/null
; then
2692 if test "X$deplibs_check_method" = "Xnone"; then
2693 echo "*** Warning: inter-library dependencies are not supported in this platform."
2695 echo "*** Warning: inter-library dependencies are not known to be supported."
2697 echo "*** All declared inter-library dependencies are being dropped."
2702 versuffix
=$versuffix_save
2704 release
=$release_save
2705 libname
=$libname_save
2709 *-*-rhapsody* |
*-*-darwin1.
[012])
2710 # On Rhapsody replace the C library is the System framework
2711 newdeplibs
=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2715 if test "$droppeddeps" = yes; then
2716 if test "$module" = yes; then
2718 echo "*** Warning: libtool could not satisfy all declared inter-library"
2719 echo "*** dependencies of module $libname. Therefore, libtool will create"
2720 echo "*** a static module, that should work as long as the dlopening"
2721 echo "*** application is linked with the -dlopen flag."
2722 if test -z "$global_symbol_pipe"; then
2724 echo "*** However, this would only work if libtool was able to extract symbol"
2725 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2726 echo "*** not find such a program. So, this module is probably useless."
2727 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2729 if test "$build_old_libs" = no
; then
2730 oldlibs
="$output_objdir/$libname.$libext"
2731 build_libtool_libs
=module
2734 build_libtool_libs
=no
2737 echo "*** The inter-library dependencies that have been dropped here will be"
2738 echo "*** automatically added whenever a program is linked with this library"
2739 echo "*** or is declared to -dlopen it."
2741 if test $allow_undefined = no
; then
2743 echo "*** Since this library must not contain undefined symbols,"
2744 echo "*** because either the platform does not support them or"
2745 echo "*** it was explicitly requested with -no-undefined,"
2746 echo "*** libtool will only create a static version of it."
2747 if test "$build_old_libs" = no
; then
2748 oldlibs
="$output_objdir/$libname.$libext"
2749 build_libtool_libs
=module
2752 build_libtool_libs
=no
2757 # Done checking deplibs!
2761 # All the library-specific variables (install_libdir is set above).
2766 # Test again, we may have decided not to build it any more
2767 if test "$build_libtool_libs" = yes; then
2768 if test $hardcode_into_libs = yes; then
2769 # Hardcode the library paths
2772 rpath
="$finalize_rpath"
2773 test "$mode" != relink
&& rpath
="$compile_rpath$rpath"
2774 for libdir
in $rpath; do
2775 if test -n "$hardcode_libdir_flag_spec"; then
2776 if test -n "$hardcode_libdir_separator"; then
2777 if test -z "$hardcode_libdirs"; then
2778 hardcode_libdirs
="$libdir"
2780 # Just accumulate the unique libdirs.
2781 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2782 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2785 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2790 eval flag
=\"$hardcode_libdir_flag_spec\"
2791 dep_rpath
="$dep_rpath $flag"
2793 elif test -n "$runpath_var"; then
2794 case "$perm_rpath " in
2796 *) perm_rpath
="$perm_rpath $libdir" ;;
2800 # Substitute the hardcoded libdirs into the rpath.
2801 if test -n "$hardcode_libdir_separator" &&
2802 test -n "$hardcode_libdirs"; then
2803 libdir
="$hardcode_libdirs"
2804 eval dep_rpath
=\"$hardcode_libdir_flag_spec\"
2806 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2807 # We should set the runpath_var.
2809 for dir
in $perm_rpath; do
2812 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2814 test -n "$dep_rpath" && deplibs
="$dep_rpath $deplibs"
2817 shlibpath
="$finalize_shlibpath"
2818 test "$mode" != relink
&& shlibpath
="$compile_shlibpath$shlibpath"
2819 if test -n "$shlibpath"; then
2820 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2823 # Get the real and link names of the library.
2824 eval library_names
=\"$library_names_spec\"
2825 set dummy
$library_names
2829 if test -n "$soname_spec"; then
2830 eval soname
=\"$soname_spec\"
2834 test -z "$dlname" && dlname
=$soname
2836 lib
="$output_objdir/$realname"
2839 linknames
="$linknames $link"
2842 # Ensure that we have .o objects for linkers which dislike .lo
2843 # (e.g. aix) in case we are running --disable-static
2844 for obj
in $libobjs; do
2845 xdir
=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2846 if test "X$xdir" = "X$obj"; then
2851 baseobj
=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2852 oldobj
=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2853 if test ! -f $xdir/$oldobj; then
2854 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2855 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' ||
exit $?
2859 # Use standard objects if they are pic
2860 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2862 # Prepare the list of exported symbols
2863 if test -z "$export_symbols"; then
2864 if test "$always_export_symbols" = yes ||
test -n "$export_symbols_regex"; then
2865 $show "generating symbol list for \`$libname.la'"
2866 export_symbols
="$output_objdir/$libname.exp"
2867 $run $rm $export_symbols
2868 eval cmds
=\"$export_symbols_cmds\"
2869 save_ifs
="$IFS"; IFS
='~'
2870 for cmd
in $cmds; do
2873 $run eval "$cmd" ||
exit $?
2876 if test -n "$export_symbols_regex"; then
2877 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2878 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2879 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2880 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2885 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2886 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2889 if test -n "$convenience"; then
2890 if test -n "$whole_archive_flag_spec"; then
2891 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
2893 gentop
="$output_objdir/${outputname}x"
2894 $show "${rm}r $gentop"
2895 $run ${rm}r
"$gentop"
2896 $show "mkdir $gentop"
2897 $run mkdir
"$gentop"
2899 if test $status -ne 0 && test ! -d "$gentop"; then
2902 generated
="$generated $gentop"
2904 for xlib
in $convenience; do
2905 # Extract the objects.
2907 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
2908 *) xabs
=`pwd`"/$xlib" ;;
2910 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2911 xdir
="$gentop/$xlib"
2913 $show "${rm}r $xdir"
2918 if test $status -ne 0 && test ! -d "$xdir"; then
2921 $show "(cd $xdir && $AR x $xabs)"
2922 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
2924 libobjs
="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2929 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2930 eval flag
=\"$thread_safe_flag_spec\"
2931 linker_flags
="$linker_flags $flag"
2934 # Make a backup of the uninstalled library when relinking
2935 if test "$mode" = relink
; then
2936 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' ||
exit $?
2939 # Do each of the archive commands.
2940 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2941 eval cmds
=\"$archive_expsym_cmds\"
2943 save_deplibs
="$deplibs"
2944 for conv
in $convenience; do
2946 for test_deplib
in $deplibs; do
2947 if test "$test_deplib" != "$conv"; then
2948 tmp_deplibs
="$tmp_deplibs $test_deplib"
2951 deplibs
="$tmp_deplibs"
2953 eval cmds
=\"$archive_cmds\"
2954 deplibs
="$save_deplibs"
2956 save_ifs
="$IFS"; IFS
='~'
2957 for cmd
in $cmds; do
2960 $run eval "$cmd" ||
exit $?
2964 # Restore the uninstalled library and exit
2965 if test "$mode" = relink
; then
2966 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' ||
exit $?
2970 # Create links to the real library.
2971 for linkname
in $linknames; do
2972 if test "$realname" != "$linkname"; then
2973 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2974 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' ||
exit $?
2978 # If -module or -export-dynamic was specified, set the dlname.
2979 if test "$module" = yes ||
test "$export_dynamic" = yes; then
2980 # On all known operating systems, these are identical.
2987 if test -n "$deplibs"; then
2988 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2991 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
2992 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2995 if test -n "$rpath"; then
2996 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2999 if test -n "$xrpath"; then
3000 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3003 if test -n "$vinfo"; then
3004 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3007 if test -n "$release"; then
3008 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3013 if test -n "$objs$old_deplibs"; then
3014 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3018 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
3026 # Delete the old objects.
3027 $run $rm $obj $libobj
3029 # Objects from convenience libraries. This assumes
3030 # single-version convenience libraries. Whenever we create
3031 # different ones for PIC/non-PIC, this we'll have to duplicate
3035 # reload_cmds runs $LD directly, so let us get rid of
3036 # -Wl from whole_archive_flag_spec
3039 if test -n "$convenience"; then
3040 if test -n "$whole_archive_flag_spec"; then
3041 eval reload_conv_objs
=\"\
$reload_objs $whole_archive_flag_spec\"
3043 gentop
="$output_objdir/${obj}x"
3044 $show "${rm}r $gentop"
3045 $run ${rm}r
"$gentop"
3046 $show "mkdir $gentop"
3047 $run mkdir
"$gentop"
3049 if test $status -ne 0 && test ! -d "$gentop"; then
3052 generated
="$generated $gentop"
3054 for xlib
in $convenience; do
3055 # Extract the objects.
3057 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3058 *) xabs
=`pwd`"/$xlib" ;;
3060 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3061 xdir
="$gentop/$xlib"
3063 $show "${rm}r $xdir"
3068 if test $status -ne 0 && test ! -d "$xdir"; then
3071 $show "(cd $xdir && $AR x $xabs)"
3072 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3074 reload_conv_objs
="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3079 # Create the old-style object.
3080 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
3083 eval cmds
=\"$reload_cmds\"
3084 save_ifs
="$IFS"; IFS
='~'
3085 for cmd
in $cmds; do
3088 $run eval "$cmd" ||
exit $?
3092 # Exit if we aren't doing a library object file.
3093 if test -z "$libobj"; then
3094 if test -n "$gentop"; then
3095 $show "${rm}r $gentop"
3102 if test "$build_libtool_libs" != yes; then
3103 if test -n "$gentop"; then
3104 $show "${rm}r $gentop"
3108 # Create an invalid libtool object if no PIC, so that we don't
3109 # accidentally link it into a program.
3110 $show "echo timestamp > $libobj"
3111 $run eval "echo timestamp > $libobj" ||
exit $?
3115 if test -n "$pic_flag" ||
test "$pic_mode" != default
; then
3116 # Only do commands if we really have different PIC objects.
3117 reload_objs
="$libobjs $reload_conv_objs"
3119 eval cmds
=\"$reload_cmds\"
3120 save_ifs
="$IFS"; IFS
='~'
3121 for cmd
in $cmds; do
3124 $run eval "$cmd" ||
exit $?
3128 # Just create a symlink.
3131 xdir
=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3132 if test "X$xdir" = "X$libobj"; then
3137 baseobj
=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3138 oldobj
=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3139 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3140 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' ||
exit $?
3143 if test -n "$gentop"; then
3144 $show "${rm}r $gentop"
3153 *cygwin
*) output
=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
3155 if test -n "$vinfo"; then
3156 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3159 if test -n "$release"; then
3160 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3163 if test "$preload" = yes; then
3164 if test "$dlopen_support" = unknown
&& test "$dlopen_self" = unknown
&&
3165 test "$dlopen_self_static" = unknown
; then
3166 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3171 *-*-rhapsody* |
*-*-darwin1.
[012])
3172 # On Rhapsody replace the C library is the System framework
3173 compile_deplibs
=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3174 finalize_deplibs
=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3177 # Don't allow lazy linking, it breaks C++ global constructors
3178 compile_command
="$compile_command ${wl}-bind_at_load"
3179 finalize_command
="$finalize_command ${wl}-bind_at_load"
3185 compile_command
="$compile_command $compile_deplibs"
3186 finalize_command
="$finalize_command $finalize_deplibs"
3188 if test -n "$rpath$xrpath"; then
3189 # If the user specified any rpath flags, then add them.
3190 for libdir
in $rpath $xrpath; do
3191 # This is the magic to use -rpath.
3192 case "$finalize_rpath " in
3194 *) finalize_rpath
="$finalize_rpath $libdir" ;;
3199 # Now hardcode the library paths
3202 for libdir
in $compile_rpath $finalize_rpath; do
3203 if test -n "$hardcode_libdir_flag_spec"; then
3204 if test -n "$hardcode_libdir_separator"; then
3205 if test -z "$hardcode_libdirs"; then
3206 hardcode_libdirs
="$libdir"
3208 # Just accumulate the unique libdirs.
3209 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3210 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3213 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3218 eval flag
=\"$hardcode_libdir_flag_spec\"
3219 rpath
="$rpath $flag"
3221 elif test -n "$runpath_var"; then
3222 case "$perm_rpath " in
3224 *) perm_rpath
="$perm_rpath $libdir" ;;
3228 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
3229 case :$dllsearchpath: in
3231 *) dllsearchpath
="$dllsearchpath:$libdir";;
3236 # Substitute the hardcoded libdirs into the rpath.
3237 if test -n "$hardcode_libdir_separator" &&
3238 test -n "$hardcode_libdirs"; then
3239 libdir
="$hardcode_libdirs"
3240 eval rpath
=\" $hardcode_libdir_flag_spec\"
3242 compile_rpath
="$rpath"
3246 for libdir
in $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 "$finalize_perm_rpath " in
3268 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
3272 # Substitute the hardcoded libdirs into the rpath.
3273 if test -n "$hardcode_libdir_separator" &&
3274 test -n "$hardcode_libdirs"; then
3275 libdir
="$hardcode_libdirs"
3276 eval rpath
=\" $hardcode_libdir_flag_spec\"
3278 finalize_rpath
="$rpath"
3280 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3281 # Transform all the library objects into standard objects.
3282 compile_command
=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3283 finalize_command
=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3287 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3288 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3289 dlsyms
="${outputname}S.c"
3291 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3295 if test -n "$dlsyms"; then
3299 # Discover the nlist of each of the dlfiles.
3300 nlist
="$output_objdir/${outputname}.nm"
3302 $show "$rm $nlist ${nlist}S ${nlist}T"
3303 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3305 # Parse the name list into a source file.
3306 $show "creating $output_objdir/$dlsyms"
3308 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3309 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3310 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3316 /* Prevent the only kind of declaration conflicts we can make. */
3317 #define lt_preloaded_symbols some_other_symbol
3319 /* External symbol declarations for the compiler. */\
3322 if test "$dlself" = yes; then
3323 $show "generating symbol list for \`$output'"
3325 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3327 # Add our own program objects to the symbol list.
3328 progfiles
=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3329 for arg
in $progfiles; do
3330 $show "extracting global C symbols from \`$arg'"
3331 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3334 if test -n "$exclude_expsyms"; then
3335 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3336 $run eval '$mv "$nlist"T "$nlist"'
3339 if test -n "$export_symbols_regex"; then
3340 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3341 $run eval '$mv "$nlist"T "$nlist"'
3344 # Prepare the list of exported symbols
3345 if test -z "$export_symbols"; then
3346 export_symbols
="$output_objdir/$output.exp"
3347 $run $rm $export_symbols
3348 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3350 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3351 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3352 $run eval 'mv "$nlist"T "$nlist"'
3356 for arg
in $dlprefiles; do
3357 $show "extracting global C symbols from \`$arg'"
3358 name
=`echo "$arg" | ${SED} -e 's%^.*/%%'`
3359 $run eval 'echo ": $name " >> "$nlist"'
3360 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3363 if test -z "$run"; then
3364 # Make sure we have at least an empty file.
3365 test -f "$nlist" ||
: > "$nlist"
3367 if test -n "$exclude_expsyms"; then
3368 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3369 $mv "$nlist"T
"$nlist"
3372 # Try sorting and uniquifying the output.
3373 if grep -v "^: " < "$nlist" |
3374 if sort -k 3 </dev
/null
>/dev
/null
2>&1; then
3379 uniq > "$nlist"S
; then
3382 grep -v "^: " < "$nlist" > "$nlist"S
3385 if test -f "$nlist"S
; then
3386 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3388 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3391 $echo >> "$output_objdir/$dlsyms" "\
3393 #undef lt_preloaded_symbols
3395 #if defined (__STDC__) && __STDC__
3396 # define lt_ptr void *
3398 # define lt_ptr char *
3402 /* The mapping between symbol names and symbols. */
3407 lt_preloaded_symbols[] =
3411 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
3413 $echo >> "$output_objdir/$dlsyms" "\
3417 /* This works around a problem in FreeBSD linker */
3418 #ifdef FREEBSD_WORKAROUND
3419 static const void *lt_preloaded_setup() {
3420 return lt_preloaded_symbols;
3430 pic_flag_for_symtable
=
3432 # compiling the symbol table file with pic_flag works around
3433 # a FreeBSD bug that causes programs to crash when -lm is
3434 # linked before any other PIC object. But we must not use
3435 # pic_flag when linking with -static. The problem exists in
3436 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3437 *-*-freebsd2*|
*-*-freebsd3.0
*|
*-*-freebsdelf3.0
*)
3438 case "$compile_command " in
3440 *) pic_flag_for_symtable
=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3443 case "$compile_command " in
3445 *) pic_flag_for_symtable
=" $pic_flag -DPIC";;
3449 # Now compile the dynamic symbol file.
3450 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3451 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' ||
exit $?
3453 # Clean up the generated files.
3454 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3455 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3457 # Transform the symbol file into the correct name.
3458 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3459 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3462 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3467 # We keep going just in case the user didn't refer to
3468 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3469 # really was required.
3471 # Nullify the symbol file.
3472 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3473 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3476 if test $need_relink = no ||
test "$build_libtool_libs" != yes; then
3477 # Replace the output file specification.
3478 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3479 link_command
="$compile_command$compile_rpath"
3481 # We have no uninstalled library dependencies, so finalize right now.
3482 $show "$link_command"
3483 $run eval "$link_command"
3486 # Delete the generated files.
3487 if test -n "$dlsyms"; then
3488 $show "$rm $output_objdir/${outputname}S.${objext}"
3489 $run $rm "$output_objdir/${outputname}S.${objext}"
3495 if test -n "$shlibpath_var"; then
3496 # We should set the shlibpath_var
3498 for dir
in $temp_rpath; do
3500 [\\/]* |
[A-Za-z
]:[\\/]*)
3505 # Relative path: add a thisdir entry.
3506 rpath
="$rpath\$thisdir/$dir:"
3513 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3514 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3516 if test -n "$finalize_shlibpath"; then
3517 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3522 if test -n "$runpath_var"; then
3523 if test -n "$perm_rpath"; then
3524 # We should set the runpath_var.
3526 for dir
in $perm_rpath; do
3529 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
3531 if test -n "$finalize_perm_rpath"; then
3532 # We should set the runpath_var.
3534 for dir
in $finalize_perm_rpath; do
3537 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
3541 if test "$no_install" = yes; then
3542 # We don't need to create a wrapper script.
3543 link_command
="$compile_var$compile_command$compile_rpath"
3544 # Replace the output file specification.
3545 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3546 # Delete the old output file.
3548 # Link the executable and exit
3549 $show "$link_command"
3550 $run eval "$link_command" ||
exit $?
3554 if test "$hardcode_action" = relink
; then
3555 # Fast installation is not supported
3556 link_command
="$compile_var$compile_command$compile_rpath"
3557 relink_command
="$finalize_var$finalize_command$finalize_rpath"
3559 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3560 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3562 if test "$fast_install" != no
; then
3563 link_command
="$finalize_var$compile_command$finalize_rpath"
3564 if test "$fast_install" = yes; then
3565 relink_command
=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3567 # fast_install is set to needless
3571 link_command
="$compile_var$compile_command$compile_rpath"
3572 relink_command
="$finalize_var$finalize_command$finalize_rpath"
3576 # Replace the output file specification.
3577 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3579 # Delete the old output files.
3580 $run $rm $output $output_objdir/$outputname $output_objdir/lt-
$outputname
3582 $show "$link_command"
3583 $run eval "$link_command" ||
exit $?
3585 # Now create the wrapper script.
3586 $show "creating $output"
3588 # Quote the relink command for shipping.
3589 if test -n "$relink_command"; then
3590 # Preserve any variables that may affect compiler behavior
3591 for var
in $variables_saved_for_relink; do
3592 if eval test -z \"\
${$var+set}\"; then
3593 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3594 elif eval var_value
=\$
$var; test -z "$var_value"; then
3595 relink_command
="$var=; export $var; $relink_command"
3597 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3598 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
3601 relink_command
="(cd `pwd`; $relink_command)"
3602 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3605 # Quote $echo for shipping.
3606 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3608 [\\/]* |
[A-Za-z
]:[\\/]*) qecho
="$SHELL $0 --fallback-echo";;
3609 *) qecho
="$SHELL `pwd`/$0 --fallback-echo";;
3611 qecho
=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3613 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3616 # Only actually do things if our run command is non-null.
3617 if test -z "$run"; then
3618 # win32 will think the script is a binary if it has
3619 # a .exe suffix, so we strip it off here.
3621 *.exe
) output
=`echo $output|${SED} 's,.exe$,,'` ;;
3623 # test for cygwin because mv fails w/o .exe extensions
3625 *cygwin
*) exeext
=.exe
;;
3629 trap "$rm $output; exit 1" 1 2 15
3634 # $output - temporary wrapper script for $objdir/$outputname
3635 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3637 # The $output program cannot be directly executed until all the libtool
3638 # libraries that it depends on are installed.
3640 # This wrapper script should never be moved out of the build directory.
3641 # If it is, it will not operate correctly.
3643 # Sed substitution that helps us do robust quoting. It backslashifies
3644 # metacharacters that are still active within double-quoted strings.
3645 Xsed="${SED}"' -e 1s/^X//'
3646 sed_quote_subst='$sed_quote_subst'
3648 # The HP-UX ksh and POSIX shell print the target directory to stdout
3650 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3652 relink_command=\"$relink_command\"
3654 # This environment variable determines our operation mode.
3655 if test \"\$libtool_install_magic\" = \"$magic\"; then
3656 # install mode needs the following variable:
3657 notinst_deplibs='$notinst_deplibs'
3659 # When we are sourced in execute mode, \$file and \$echo are already set.
3660 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3663 # Make sure echo works.
3664 if test \"X\$1\" = X--no-reexec; then
3665 # Discard the --no-reexec flag, and continue.
3667 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3668 # Yippee, \$echo works!
3671 # Restart under the correct shell, and then maybe \$echo will work.
3672 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3678 # Find the directory that this script lives in.
3679 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3680 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3682 # Follow symbolic links until we get to the real thisdir.
3683 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
3684 while test -n \"\$file\"; do
3685 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3687 # If there was a directory component, then change thisdir.
3688 if test \"x\$destdir\" != \"x\$file\"; then
3689 case \"\$destdir\" in
3690 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3691 *) thisdir=\"\$thisdir/\$destdir\" ;;
3695 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3696 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
3699 # Try to get the absolute directory name.
3700 absdir=\`cd \"\$thisdir\" && pwd\`
3701 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3704 if test "$fast_install" = yes; then
3706 program=lt-'$outputname'$exeext
3707 progdir=\"\$thisdir/$objdir\"
3709 if test ! -f \"\$progdir/\$program\" || \\
3710 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
3711 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3713 file=\"\$\$-\$program\"
3715 if test ! -d \"\$progdir\"; then
3716 $mkdir \"\$progdir\"
3718 $rm \"\$progdir/\$file\"
3723 # relink executable if necessary
3724 if test -n \"\$relink_command\"; then
3725 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3727 $echo \"\$relink_command_output\" >&2
3728 $rm \"\$progdir/\$file\"
3733 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3734 { $rm \"\$progdir/\$program\";
3735 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3736 $rm \"\$progdir/\$file\"
3740 program='$outputname'
3741 progdir=\"\$thisdir/$objdir\"
3747 if test -f \"\$progdir/\$program\"; then"
3749 # Export our shlibpath_var if we have one.
3750 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3752 # Add our own library path to $shlibpath_var
3753 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3755 # Some systems cannot cope with colon-terminated $shlibpath_var
3756 # The second colon is a workaround for a bug in BeOS R4 ${SED}
3757 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3759 export $shlibpath_var
3763 # fixup the dll searchpath if we need to.
3764 if test -n "$dllsearchpath"; then
3766 # Add the dll search path components to the executable PATH
3767 PATH=$dllsearchpath:\$PATH
3772 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3773 # Run the actual program with our arguments.
3776 # win32 systems need to use the prog path for dll
3778 *-*-cygwin* |
*-*-pw32*)
3780 exec \$progdir/\$program \${1+\"\$@\"}
3784 # Backslashes separate directories on plain windows
3785 *-*-mingw |
*-*-os2*)
3787 exec \$progdir\\\\\$program \${1+\"\$@\"}
3793 # Export the path to the program.
3794 PATH=\"\$progdir:\$PATH\"
3797 exec \$program \${1+\"\$@\"}
3802 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3806 # The program doesn't exist.
3807 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3808 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3809 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3820 # See if we need to build an old-fashioned archive.
3821 for oldlib
in $oldlibs; do
3823 if test "$build_libtool_libs" = convenience
; then
3824 oldobjs
="$libobjs_save"
3825 addlibs
="$convenience"
3826 build_libtool_libs
=no
3828 if test "$build_libtool_libs" = module
; then
3829 oldobjs
="$libobjs_save"
3830 build_libtool_libs
=no
3832 oldobjs
="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3834 addlibs
="$old_convenience"
3837 if test -n "$addlibs"; then
3838 gentop
="$output_objdir/${outputname}x"
3839 $show "${rm}r $gentop"
3840 $run ${rm}r
"$gentop"
3841 $show "mkdir $gentop"
3842 $run mkdir
"$gentop"
3844 if test $status -ne 0 && test ! -d "$gentop"; then
3847 generated
="$generated $gentop"
3849 # Add in members from convenience archives.
3850 for xlib
in $addlibs; do
3851 # Extract the objects.
3853 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3854 *) xabs
=`pwd`"/$xlib" ;;
3856 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3857 xdir
="$gentop/$xlib"
3859 $show "${rm}r $xdir"
3864 if test $status -ne 0 && test ! -d "$xdir"; then
3867 $show "(cd $xdir && $AR x $xabs)"
3868 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3870 oldobjs
="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3874 # Do each command in the archive commands.
3875 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3876 eval cmds
=\"$old_archive_from_new_cmds\"
3878 # Ensure that we have .o objects in place in case we decided
3879 # not to build a shared library, and have fallen back to building
3880 # static libs even though --disable-static was passed!
3881 for oldobj
in $oldobjs; do
3882 if test ! -f $oldobj; then
3883 xdir
=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3884 if test "X$xdir" = "X$oldobj"; then
3889 baseobj
=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3890 obj
=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3891 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3892 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' ||
exit $?
3896 eval cmds
=\"$old_archive_cmds\"
3898 save_ifs
="$IFS"; IFS
='~'
3899 for cmd
in $cmds; do
3902 $run eval "$cmd" ||
exit $?
3907 if test -n "$generated"; then
3908 $show "${rm}r$generated"
3909 $run ${rm}r
$generated
3912 # Now create the libtool archive.
3916 test "$build_old_libs" = yes && old_library
="$libname.$libext"
3917 $show "creating $output"
3919 # Preserve any variables that may affect compiler behavior
3920 for var
in $variables_saved_for_relink; do
3921 if eval test -z \"\
${$var+set}\"; then
3922 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3923 elif eval var_value
=\$
$var; test -z "$var_value"; then
3924 relink_command
="$var=; export $var; $relink_command"
3926 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3927 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
3930 # Quote the link command for shipping.
3931 relink_command
="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
3932 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3934 # Only create the output if not a dry run.
3935 if test -z "$run"; then
3936 for installed
in no
yes; do
3937 if test "$installed" = yes; then
3938 if test -z "$install_libdir"; then
3941 output
="$output_objdir/$outputname"i
3942 # Replace all uninstalled libtool libraries with the installed ones
3944 for deplib
in $dependency_libs; do
3947 name
=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3948 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3949 if test -z "$libdir"; then
3950 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3953 newdependency_libs
="$newdependency_libs $libdir/$name"
3955 *) newdependency_libs
="$newdependency_libs $deplib" ;;
3958 dependency_libs
="$newdependency_libs"
3960 for lib
in $dlfiles; do
3961 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3962 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3963 if test -z "$libdir"; then
3964 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3967 newdlfiles
="$newdlfiles $libdir/$name"
3969 dlfiles
="$newdlfiles"
3971 for lib
in $dlprefiles; do
3972 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3973 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3974 if test -z "$libdir"; then
3975 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3978 newdlprefiles
="$newdlprefiles $libdir/$name"
3980 dlprefiles
="$newdlprefiles"
3983 # place dlname in correct position for cygwin
3985 case $host,$output,$installed,$module,$dlname in
3986 *cygwin
*,*lai
,yes,no
,*.dll
) tdlname
=..
/bin
/$dlname ;;
3989 # $outputname - a libtool library file
3990 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3992 # Please DO NOT delete this file!
3993 # It is necessary for linking the library.
3995 # The name that we can dlopen(3).
3998 # Names of this library.
3999 library_names='$library_names'
4001 # The name of the static archive.
4002 old_library='$old_library'
4004 # Libraries that this one depends upon.
4005 dependency_libs='$dependency_libs'
4007 # Version information for $libname.
4012 # Is this an already installed library?
4013 installed=$installed
4015 # Files to dlopen/dlpreopen
4017 dlpreopen='$dlprefiles'
4019 # Directory that this library needs to be installed in:
4021 if test "$installed" = no
&& test $need_relink = yes; then
4023 relink_command=\"$relink_command\""
4028 # Do a symbolic link so that the libtool archive can be found in
4029 # LD_LIBRARY_PATH before the program is installed.
4030 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4031 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' ||
exit $?
4037 # libtool install mode
4039 modename
="$modename: install"
4041 # There may be an optional sh(1) argument at the beginning of
4042 # install_prog (especially on Windows NT).
4043 if test "$nonopt" = "$SHELL" ||
test "$nonopt" = /bin
/sh ||
4044 # Allow the use of GNU shtool's install command.
4045 $echo "X$nonopt" |
$Xsed |
grep shtool
> /dev
/null
; then
4046 # Aesthetically quote it.
4047 arg
=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4049 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4053 install_prog
="$arg "
4061 # The real first argument should be the name of the installation program.
4062 # Aesthetically quote it.
4063 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4065 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4069 install_prog
="$install_prog$arg"
4071 # We need to accept at least all the BSD install flags.
4081 if test -n "$dest"; then
4082 files
="$files $dest"
4100 # If the previous option needed an argument, then skip it.
4101 if test -n "$prev"; then
4110 # Aesthetically quote the argument.
4111 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4113 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4117 install_prog
="$install_prog $arg"
4120 if test -z "$install_prog"; then
4121 $echo "$modename: you must specify an install program" 1>&2
4126 if test -n "$prev"; then
4127 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4132 if test -z "$files"; then
4133 if test -z "$dest"; then
4134 $echo "$modename: no file or destination specified" 1>&2
4136 $echo "$modename: you must specify a destination" 1>&2
4142 # Strip any trailing slash from the destination.
4143 dest
=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4145 # Check to see that the destination is a directory.
4146 test -d "$dest" && isdir
=yes
4147 if test "$isdir" = yes; then
4151 destdir
=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4152 test "X$destdir" = "X$dest" && destdir
=.
4153 destname
=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4155 # Not a directory, so check to see that there is only one file specified.
4157 if test $# -gt 2; then
4158 $echo "$modename: \`$dest' is not a directory" 1>&2
4164 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
4166 for file in $files; do
4170 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4179 # This variable tells wrapper scripts just to set variables rather
4180 # than running their programs.
4181 libtool_install_magic
="$magic"
4186 for file in $files; do
4188 # Do each installation.
4191 # Do the static libraries later.
4192 staticlibs
="$staticlibs $file"
4196 # Check to see that this really is a libtool archive.
4197 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
4199 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4207 # If there is no directory component, then add one.
4209 */* |
*\\*) .
$file ;;
4213 # Add the libdir to current_libdirs if it is the destination.
4214 if test "X$destdir" = "X$libdir"; then
4215 case "$current_libdirs " in
4217 *) current_libdirs
="$current_libdirs $libdir" ;;
4220 # Note the libdir as a future libdir.
4221 case "$future_libdirs " in
4223 *) future_libdirs
="$future_libdirs $libdir" ;;
4227 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4228 test "X$dir" = "X$file/" && dir
=
4231 if test -n "$relink_command"; then
4232 $echo "$modename: warning: relinking \`$file'" 1>&2
4233 $show "$relink_command"
4234 if $run eval "$relink_command"; then :
4236 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4241 # See the names of the shared library.
4242 set dummy
$library_names
4243 if test -n "$2"; then
4249 test -n "$relink_command" && srcname
="$realname"T
4251 # Install the shared library and build the symlinks.
4252 $show "$install_prog $dir/$srcname $destdir/$realname"
4253 $run eval "$install_prog $dir/$srcname $destdir/$realname" ||
exit $?
4254 if test -n "$stripme" && test -n "$striplib"; then
4255 $show "$striplib $destdir/$realname"
4256 $run eval "$striplib $destdir/$realname" ||
exit $?
4259 if test $# -gt 0; then
4260 # Delete the old symlinks, and create new ones.
4263 if test "$linkname" != "$realname"; then
4264 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4265 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4270 # Do each command in the postinstall commands.
4271 lib
="$destdir/$realname"
4272 eval cmds
=\"$postinstall_cmds\"
4273 save_ifs
="$IFS"; IFS
='~'
4274 for cmd
in $cmds; do
4277 $run eval "$cmd" ||
exit $?
4282 # Install the pseudo-library for information purposes.
4283 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4284 instname
="$dir/$name"i
4285 $show "$install_prog $instname $destdir/$name"
4286 $run eval "$install_prog $instname $destdir/$name" ||
exit $?
4288 # Maybe install the static library, too.
4289 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
4293 # Install (i.e. copy) a libtool object.
4295 # Figure out destination file name, if it wasn't already specified.
4296 if test -n "$destname"; then
4297 destfile
="$destdir/$destname"
4299 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4300 destfile
="$destdir/$destfile"
4303 # Deduce the name of the destination old-style object file.
4306 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4309 staticdest
="$destfile"
4313 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4319 # Install the libtool object if requested.
4320 if test -n "$destfile"; then
4321 $show "$install_prog $file $destfile"
4322 $run eval "$install_prog $file $destfile" ||
exit $?
4325 # Install the old object if enabled.
4326 if test "$build_old_libs" = yes; then
4327 # Deduce the name of the old-style object file.
4328 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
4330 $show "$install_prog $staticobj $staticdest"
4331 $run eval "$install_prog \$staticobj \$staticdest" ||
exit $?
4337 # Figure out destination file name, if it wasn't already specified.
4338 if test -n "$destname"; then
4339 destfile
="$destdir/$destname"
4341 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4342 destfile
="$destdir/$destfile"
4345 # Do a test to see if this is really a libtool program.
4348 wrapper
=`echo $file | ${SED} -e 's,.exe$,,'`
4354 if (${SED} -e '4q' $wrapper |
egrep "^# Generated by .*$PACKAGE")>/dev
/null
2>&1; then
4358 # If there is no directory component, then add one.
4360 */* |
*\\*) .
$wrapper ;;
4364 # Check the variables that should have been set.
4365 if test -z "$notinst_deplibs"; then
4366 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
4371 for lib
in $notinst_deplibs; do
4372 # Check to see that each library is installed.
4374 if test -f "$lib"; then
4375 # If there is no directory component, then add one.
4377 */* |
*\\*) .
$lib ;;
4381 libfile
="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4382 if test -n "$libdir" && test ! -f "$libfile"; then
4383 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4389 # If there is no directory component, then add one.
4391 */* |
*\\*) .
$wrapper ;;
4396 if test "$fast_install" = no
&& test -n "$relink_command"; then
4397 if test "$finalize" = yes && test -z "$run"; then
4399 test -n "$TMPDIR" && tmpdir
="$TMPDIR"
4400 tmpdir
="$tmpdir/libtool-$$"
4401 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4403 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4406 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4407 outputname
="$tmpdir/$file"
4408 # Replace the output file specification.
4409 relink_command
=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4411 $show "$relink_command"
4412 if $run eval "$relink_command"; then :
4414 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4420 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4423 # Install the binary that we compiled earlier.
4424 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4428 # remove .exe since cygwin /usr/bin/install will append another
4430 case $install_prog,$host in
4431 /usr
/bin
/install*,*cygwin
*)
4432 case $file:$destfile in
4437 destfile
=$destfile.exe
4440 destfile
=`echo $destfile | ${SED} -e 's,.exe$,,'`
4445 $show "$install_prog$stripme $file $destfile"
4446 $run eval "$install_prog\$stripme \$file \$destfile" ||
exit $?
4447 test -n "$outputname" && ${rm}r
"$tmpdir"
4452 for file in $staticlibs; do
4453 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4455 # Set up the ranlib parameters.
4456 oldlib
="$destdir/$name"
4458 $show "$install_prog $file $oldlib"
4459 $run eval "$install_prog \$file \$oldlib" ||
exit $?
4461 if test -n "$stripme" && test -n "$striplib"; then
4462 $show "$old_striplib $oldlib"
4463 $run eval "$old_striplib $oldlib" ||
exit $?
4466 # Do each command in the postinstall commands.
4467 eval cmds
=\"$old_postinstall_cmds\"
4468 save_ifs
="$IFS"; IFS
='~'
4469 for cmd
in $cmds; do
4472 $run eval "$cmd" ||
exit $?
4477 if test -n "$future_libdirs"; then
4478 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4481 if test -n "$current_libdirs"; then
4482 # Maybe just do a dry run.
4483 test -n "$run" && current_libdirs
=" -n$current_libdirs"
4484 exec_cmd
='$SHELL $0 --finish$current_libdirs'
4490 # libtool finish mode
4492 modename
="$modename: finish"
4496 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4499 libdirs
="$libdirs $dir"
4502 for libdir
in $libdirs; do
4503 if test -n "$finish_cmds"; then
4504 # Do each command in the finish commands.
4505 eval cmds
=\"$finish_cmds\"
4506 save_ifs
="$IFS"; IFS
='~'
4507 for cmd
in $cmds; do
4510 $run eval "$cmd" || admincmds
="$admincmds
4515 if test -n "$finish_eval"; then
4516 # Do the single finish_eval.
4517 eval cmds
=\"$finish_eval\"
4518 $run eval "$cmds" || admincmds
="$admincmds
4524 # Exit here if they wanted silent mode.
4525 test "$show" = ":" && exit 0
4527 echo "----------------------------------------------------------------------"
4528 echo "Libraries have been installed in:"
4529 for libdir
in $libdirs; do
4533 echo "If you ever happen to want to link against installed libraries"
4534 echo "in a given directory, LIBDIR, you must either use libtool, and"
4535 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4536 echo "flag during linking and do at least one of the following:"
4537 if test -n "$shlibpath_var"; then
4538 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4539 echo " during execution"
4541 if test -n "$runpath_var"; then
4542 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4543 echo " during linking"
4545 if test -n "$hardcode_libdir_flag_spec"; then
4547 eval flag
=\"$hardcode_libdir_flag_spec\"
4549 echo " - use the \`$flag' linker flag"
4551 if test -n "$admincmds"; then
4552 echo " - have your system administrator run these commands:$admincmds"
4554 if test -f /etc
/ld.so.conf
; then
4555 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4558 echo "See any operating system documentation about shared libraries for"
4559 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4560 echo "----------------------------------------------------------------------"
4564 # libtool execute mode
4566 modename
="$modename: execute"
4568 # The first argument is the command name.
4570 if test -z "$cmd"; then
4571 $echo "$modename: you must specify a COMMAND" 1>&2
4576 # Handle -dlopen flags immediately.
4577 for file in $execute_dlfiles; do
4578 if test ! -f "$file"; then
4579 $echo "$modename: \`$file' is not a file" 1>&2
4587 # Check to see that this really is a libtool archive.
4588 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
4590 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4595 # Read the libtool library.
4599 # If there is no directory component, then add one.
4601 */* |
*\\*) .
$file ;;
4605 # Skip this library if it cannot be dlopened.
4606 if test -z "$dlname"; then
4607 # Warn if it was a shared library.
4608 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4612 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4613 test "X$dir" = "X$file" && dir
=.
4615 if test -f "$dir/$objdir/$dlname"; then
4618 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4624 # Just add the directory containing the .lo file.
4625 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4626 test "X$dir" = "X$file" && dir
=.
4630 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4635 # Get the absolute pathname.
4636 absdir
=`cd "$dir" && pwd`
4637 test -n "$absdir" && dir
="$absdir"
4639 # Now add the directory to shlibpath_var.
4640 if eval "test -z \"\$$shlibpath_var\""; then
4641 eval "$shlibpath_var=\"\$dir\""
4643 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4647 # This variable tells wrapper scripts just to set shlibpath_var
4648 # rather than running their programs.
4649 libtool_execute_magic
="$magic"
4651 # Check if any of the arguments is a wrapper script.
4658 # Do a test to see if this is really a libtool program.
4659 if (${SED} -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4660 # If there is no directory component, then add one.
4662 */* |
*\\*) .
$file ;;
4666 # Transform arg to wrapped name.
4667 file="$progdir/$program"
4671 # Quote arguments (to preserve shell metacharacters).
4672 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4673 args
="$args \"$file\""
4676 if test -z "$run"; then
4677 if test -n "$shlibpath_var"; then
4678 # Export the shlibpath_var.
4679 eval "export $shlibpath_var"
4682 # Restore saved enviroment variables
4683 if test "${save_LC_ALL+set}" = set; then
4684 LC_ALL
="$save_LC_ALL"; export LC_ALL
4686 if test "${save_LANG+set}" = set; then
4687 LANG
="$save_LANG"; export LANG
4690 # Now prepare to actually exec the command.
4691 exec_cmd
="\$cmd$args"
4693 # Display what would be done.
4694 if test -n "$shlibpath_var"; then
4695 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4696 $echo "export $shlibpath_var"
4703 # libtool clean and uninstall mode
4705 modename
="$modename: $mode"
4711 # This variable tells wrapper scripts just to set variables rather
4712 # than running their programs.
4713 libtool_install_magic
="$magic"
4718 -f) rm="$rm $arg"; rmforce
=yes ;;
4719 -*) rm="$rm $arg" ;;
4720 *) files
="$files $arg" ;;
4724 if test -z "$rm"; then
4725 $echo "$modename: you must specify an RM program" 1>&2
4732 for file in $files; do
4733 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4734 if test "X$dir" = "X$file"; then
4738 objdir
="$dir/$objdir"
4740 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4741 test $mode = uninstall
&& objdir
="$dir"
4743 # Remember objdir for removal later, being careful to avoid duplicates
4744 if test $mode = clean
; then
4747 *) rmdirs
="$rmdirs $objdir" ;;
4751 # Don't error if the file doesn't exist and rm -f was used.
4752 if (test -L "$file") >/dev
/null
2>&1 \
4753 ||
(test -h "$file") >/dev
/null
2>&1 \
4754 ||
test -f "$file"; then
4756 elif test -d "$file"; then
4759 elif test "$rmforce" = yes; then
4767 # Possibly a libtool archive, so verify it.
4768 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4771 # Delete the libtool libraries and symlinks.
4772 for n
in $library_names; do
4773 rmfiles
="$rmfiles $objdir/$n"
4775 test -n "$old_library" && rmfiles
="$rmfiles $objdir/$old_library"
4776 test $mode = clean
&& rmfiles
="$rmfiles $objdir/$name $objdir/${name}i"
4778 if test $mode = uninstall
; then
4779 if test -n "$library_names"; then
4780 # Do each command in the postuninstall commands.
4781 eval cmds
=\"$postuninstall_cmds\"
4782 save_ifs
="$IFS"; IFS
='~'
4783 for cmd
in $cmds; do
4787 if test $?
!= 0 && test "$rmforce" != yes; then
4794 if test -n "$old_library"; then
4795 # Do each command in the old_postuninstall commands.
4796 eval cmds
=\"$old_postuninstall_cmds\"
4797 save_ifs
="$IFS"; IFS
='~'
4798 for cmd
in $cmds; do
4802 if test $?
!= 0 && test "$rmforce" != yes; then
4808 # FIXME: should reinstall the best remaining shared library.
4814 if test "$build_old_libs" = yes; then
4815 oldobj
=`$echo "X$name" | $Xsed -e "$lo2o"`
4816 rmfiles
="$rmfiles $dir/$oldobj"
4821 # Do a test to see if this is a libtool program.
4822 if test $mode = clean
&&
4823 (${SED} -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4827 rmfiles
="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4828 if test "$fast_install" = yes && test -n "$relink_command"; then
4829 rmfiles
="$rmfiles $objdir/lt-$name"
4834 $show "$rm $rmfiles"
4835 $run $rm $rmfiles || exit_status
=1
4838 # Try to remove the ${objdir}s in the directories where we deleted files
4839 for dir
in $rmdirs; do
4840 if test -d "$dir"; then
4842 $run rmdir $dir >/dev
/null
2>&1
4850 $echo "$modename: you must specify a MODE" 1>&2
4851 $echo "$generic_help" 1>&2
4856 if test -z "$exec_cmd"; then
4857 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4858 $echo "$generic_help" 1>&2
4861 fi # test -z "$show_help"
4863 if test -n "$exec_cmd"; then
4868 # We need to display help for each of the modes.
4871 "Usage: $modename [OPTION]... [MODE-ARG]...
4873 Provide generalized library-building support services.
4875 --config show all configuration variables
4876 --debug enable verbose shell tracing
4877 -n, --dry-run display commands without modifying any files
4878 --features display basic configuration information and exit
4879 --finish same as \`--mode=finish'
4880 --help display this help message and exit
4881 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4882 --quiet same as \`--silent'
4883 --silent don't print informational messages
4884 --version print version information
4886 MODE must be one of the following:
4888 clean remove files from the build directory
4889 compile compile a source file into a libtool object
4890 execute automatically set library path, then run a program
4891 finish complete the installation of libtool libraries
4892 install install libraries or executables
4893 link create a library or an executable
4894 uninstall remove libraries from an installed directory
4896 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
4897 a more detailed description of MODE."
4903 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
4905 Remove files from the build directory.
4907 RM is the name of the program to use to delete files associated with each FILE
4908 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4911 If FILE is a libtool library, object or program, all the files associated
4912 with it are deleted. Otherwise, only FILE itself is deleted using RM."
4917 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
4919 Compile a source file into a libtool library object.
4921 This mode accepts the following additional options:
4923 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
4924 -prefer-pic try to building PIC objects only
4925 -prefer-non-pic try to building non-PIC objects only
4926 -static always build a \`.o' file suitable for static linking
4928 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
4929 from the given SOURCEFILE.
4931 The output file name is determined by removing the directory component from
4932 SOURCEFILE, then substituting the C source code suffix \`.c' with the
4933 library object suffix, \`.lo'."
4938 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
4940 Automatically set library path, then run a program.
4942 This mode accepts the following additional options:
4944 -dlopen FILE add the directory containing FILE to the library path
4946 This mode sets the library path environment variable according to \`-dlopen'
4949 If any of the ARGS are libtool executable wrappers, then they are translated
4950 into their corresponding uninstalled binary, and any of their required library
4951 directories are added to the library path.
4953 Then, COMMAND is executed, with ARGS as arguments."
4958 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
4960 Complete the installation of libtool libraries.
4962 Each LIBDIR is a directory that contains libtool libraries.
4964 The commands that this mode executes may require superuser privileges. Use
4965 the \`--dry-run' option if you just want to see what would be executed."
4970 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4972 Install executables or libraries.
4974 INSTALL-COMMAND is the installation command. The first component should be
4975 either the \`install' or \`cp' program.
4977 The rest of the components are interpreted as arguments to that command (only
4978 BSD-compatible install options are recognized)."
4983 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4985 Link object files or libraries together to form another library, or to
4986 create an executable program.
4988 LINK-COMMAND is a command using the C compiler that you would use to create
4989 a program from several object files.
4991 The following components of LINK-COMMAND are treated specially:
4993 -all-static do not do any dynamic linking at all
4994 -avoid-version do not add a version suffix if possible
4995 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4996 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4997 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4998 -export-symbols SYMFILE
4999 try to export only the symbols listed in SYMFILE
5000 -export-symbols-regex REGEX
5001 try to export only the symbols matching REGEX
5002 -LLIBDIR search LIBDIR for required installed libraries
5003 -lNAME OUTPUT-FILE requires the installed library libNAME
5004 -module build a library that can dlopened
5005 -no-fast-install disable the fast-install mode
5006 -no-install link a not-installable executable
5007 -no-undefined declare that a library does not refer to external symbols
5008 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
5009 -release RELEASE specify package release information
5010 -rpath LIBDIR the created library will eventually be installed in LIBDIR
5011 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
5012 -static do not do any dynamic linking of libtool libraries
5013 -version-info CURRENT[:REVISION[:AGE]]
5014 specify library version info [each variable defaults to 0]
5016 All other options (arguments beginning with \`-') are ignored.
5018 Every other argument is treated as a filename. Files ending in \`.la' are
5019 treated as uninstalled libtool libraries, other files are standard or library
5022 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
5023 only library objects (\`.lo' files) may be specified, and \`-rpath' is
5024 required, except when creating a convenience library.
5026 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
5027 using \`ar' and \`ranlib', or on Windows using \`lib'.
5029 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
5030 is created, otherwise an executable program is created."
5035 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
5037 Remove libraries from an installation directory.
5039 RM is the name of the program to use to delete files associated with each FILE
5040 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5043 If FILE is a libtool library, all the files associated with it are deleted.
5044 Otherwise, only FILE itself is deleted using RM."
5048 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5055 $echo "Try \`$modename --help' for more information about other modes."