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, 2003
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.1240 2003/06/26 06:55:19)"
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|tr A '\301'` in
74 A
) # 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 #####################################
118 # Shell function definitions:
119 # This seems to be the best place for them
121 # Need a lot of goo to handle *both* DLLs and import libs
122 # Has to be a shell function in order to 'eat' the argument
123 # that is supplied when $file_magic_command is called.
125 win32_libid_type
="unknown"
126 win32_fileres
=`file -L $1 2>/dev/null`
127 case $win32_fileres in
128 *ar\ archive\ import\ library
*) # definitely import
129 win32_libid_type
="x86 archive import"
131 *ar\ archive
*) # could be an import, or static
132 if eval $OBJDUMP -f $1 |
$SED -e '10q' 2>/dev
/null | \
133 grep -E 'file format pe-i386(.*architecture: i386)?' >/dev
/null
; then
134 win32_nmres
=`eval $NM -f posix -A $1 | \
135 sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
136 if test "X$win32_nmres" = "Ximport" ; then
137 win32_libid_type
="x86 archive import"
139 win32_libid_type
="x86 archive static"
144 win32_libid_type
="x86 DLL"
146 *executable
*) # but shell scripts are "executable" too...
147 case $win32_fileres in
148 *MS\ Windows\ PE\ Intel
*)
149 win32_libid_type
="x86 DLL"
154 $echo $win32_libid_type
157 # End of Shell function definitions
158 #####################################
160 # Parse our command line options once, thoroughly.
161 while test "$#" -gt 0
167 -*=*) optarg
=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
171 # If the previous option needs an argument, assign it.
172 if test -n "$prev"; then
175 execute_dlfiles
="$execute_dlfiles $arg"
180 # Check whether tagname contains only valid characters
183 $echo "$progname: invalid tag name: $tagname" 1>&2
190 # Don't test for the "default" C tag, as we know, it's there, but
191 # not specially marked.
194 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev
/null
; then
195 taglist
="$taglist $tagname"
196 # Evaluate the configuration.
197 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
199 $echo "$progname: ignoring unknown tag $tagname" 1>&2
214 # Have we seen a non-optional argument yet?
221 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
223 $echo "Copyright (C) 2003 Free Software Foundation, Inc."
224 $echo "This is free software; see the source for copying conditions. There is NO"
225 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
230 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
231 # Now print the configurations for the tags.
232 for tagname
in $taglist; do
233 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
239 $echo "$progname: enabling shell trace mode"
249 if test "$build_libtool_libs" = yes; then
250 $echo "enable shared libraries"
252 $echo "disable shared libraries"
254 if test "$build_old_libs" = yes; then
255 $echo "enable static libraries"
257 $echo "disable static libraries"
262 --finish) mode
="finish" ;;
264 --mode) prevopt
="--mode" prev
=mode
;;
265 --mode=*) mode
="$optarg" ;;
267 --preserve-dup-deps) duplicate_deps
="yes" ;;
273 --tag) prevopt
="--tag" prev
=tag
;;
275 set tag
"$optarg" ${1+"$@"}
286 $echo "$modename: unrecognized option \`$arg'" 1>&2
298 if test -n "$prevopt"; then
299 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
304 # If this variable is set in any of the actions, the command in it
305 # will be execed at the end. This prevents here-documents from being
306 # left over by shells.
309 if test -z "$show_help"; then
311 # Infer the operation mode.
312 if test -z "$mode"; then
313 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
314 $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
316 *cc | cc
* |
*++ | gcc
* |
*-gcc* | g
++* | xlc
*)
328 *db |
*dbx |
*strace |
*truss
)
338 # If we have no mode, but dlfiles were specified, then do execute mode.
339 test -n "$execute_dlfiles" && mode
=execute
341 # Just use the default operation mode.
342 if test -z "$mode"; then
343 if test -n "$nonopt"; then
344 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
346 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
353 # Only execute mode is allowed to have -dlopen flags.
354 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
355 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
360 # Change the help message to a mode-specific one.
362 help="Try \`$modename --help --mode=$mode' for more information."
364 # These modes are in order of execution frequency so that they run quickly.
366 # libtool compile mode
368 modename
="$modename: compile"
369 # Get the compilation command and the source file.
371 srcfile
="$nonopt" # always keep a non-empty value in "srcfile"
380 # do not "continue". Instead, add this to base_compile
392 # Accept any command-line options.
395 if test -n "$libobj" ; then
396 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
419 arg_mode
=arg
# the next one goes into the "base_compile" arg list
420 continue # The current "srcfile" will either be retained or
421 ;; # replaced later. I would guess that would be a bug.
424 args
=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
426 save_ifs
="$IFS"; IFS
=','
430 # Double-quote args containing other shell metacharacters.
431 # Many Bourne shells cannot handle close brackets correctly
432 # in scan sets, so we specify it separately.
434 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
438 lastarg
="$lastarg $arg"
441 lastarg
=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
443 # Add the arguments to base_compile.
444 base_compile
="$base_compile $lastarg"
449 # Accept the current argument as the source file.
450 # The previous "srcfile" becomes the current argument.
457 esac # case $arg_mode
459 # Aesthetically quote the previous argument.
460 lastarg
=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
463 # Double-quote args containing other shell metacharacters.
464 # Many Bourne shells cannot handle close brackets correctly
465 # in scan sets, so we specify it separately.
466 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
467 lastarg
="\"$lastarg\""
471 base_compile
="$base_compile $lastarg"
476 $echo "$modename: you must specify an argument for -Xcompile"
480 $echo "$modename: you must specify a target with \`-o'" 1>&2
484 # Get the name of the library object.
485 [ -z "$libobj" ] && libobj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
489 # Recognize several different file suffixes.
490 # If the user specifies -o file.o, it is replaced with file.lo
500 *.class
) xform
=class
;;
505 *.java
) xform
=java
;;
508 libobj
=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
511 *.lo
) obj
=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
513 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
518 # Infer tagged configuration to use if any are available and
519 # if one wasn't chosen via the "--tag" command line option.
520 # Only attempt this if the compiler in the base compile
521 # command doesn't match the default compiler.
522 if test -n "$available_tags" && test -z "$tagname"; then
523 case $base_compile in
524 # Blanks in the command may have been stripped by the calling shell,
525 # but not from the CC environment variable when configure was run.
526 " $CC "* |
"$CC "* |
" `$echo $CC` "* |
"`$echo $CC` "*) ;;
527 # Blanks at the start of $base_compile will cause this to fail
528 # if we don't check for them as well.
530 for z
in $available_tags; do
531 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev
/null
; then
532 # Evaluate the configuration.
533 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
534 case "$base_compile " in
535 "$CC "* |
" $CC "* |
"`$echo $CC` "* |
" `$echo $CC` "*)
536 # The compiler in the base compile command matches
537 # the one in the tagged configuration.
538 # Assume this is the tagged configuration we want.
545 # If $tagname still isn't set, then no tagged configuration
546 # was found and let the user know that the "--tag" command
547 # line option must be used.
548 if test -z "$tagname"; then
549 $echo "$modename: unable to infer tagged configuration"
550 $echo "$modename: specify a tag with \`--tag'" 1>&2
553 # $echo "$modename: using $tagname tagged configuration"
559 objname
=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
560 xdir
=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
561 if test "X$xdir" = "X$obj"; then
566 lobj
=${xdir}$objdir/$objname
568 if test -z "$base_compile"; then
569 $echo "$modename: you must specify a compilation command" 1>&2
574 # Delete any leftover library objects.
575 if test "$build_old_libs" = yes; then
576 removelist
="$obj $lobj $libobj ${libobj}T"
578 removelist
="$lobj $libobj ${libobj}T"
582 trap "$run $rm $removelist; exit 1" 1 2 15
584 # On Cygwin there's no "real" PIC flag so we must build both object types
586 cygwin
* | mingw
* | pw32
* | os2
*)
590 if test "$pic_mode" = no
&& test "$deplibs_check_method" != pass_all
; then
591 # non-PIC code in shared libraries is not supported
595 # Calculate the filename of the output object if compiler does
596 # not support -o with -c
597 if test "$compiler_c_o" = no
; then
598 output_obj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.
${objext}
599 lockfile
="$output_obj.lock"
600 removelist
="$removelist $output_obj $lockfile"
601 trap "$run $rm $removelist; exit 1" 1 2 15
608 # Lock this critical section if it is needed
609 # We use this script file to make the link, it avoids creating a new file
610 if test "$need_locks" = yes; then
611 until $run ln "$0" "$lockfile" 2>/dev
/null
; do
612 $show "Waiting for $lockfile to be removed"
615 elif test "$need_locks" = warn
; then
616 if test -f "$lockfile"; then
618 *** ERROR, $lockfile exists and contains:
619 `cat $lockfile 2>/dev/null`
621 This indicates that another process is trying to use the same
622 temporary object file, and libtool could not work around it because
623 your compiler does not support \`-c' and \`-o' together. If you
624 repeat this compilation, it may succeed, by chance, but you had better
625 avoid parallel builds (make -j) in this platform, or get a better
631 $echo $srcfile > "$lockfile"
634 if test -n "$fix_srcfile_path"; then
635 eval srcfile
=\"$fix_srcfile_path\"
638 $run $rm "$libobj" "${libobj}T"
640 # Create a libtool object file (analogous to a ".la" file),
641 # but don't create it if we're doing a dry run.
642 test -z "$run" && cat > ${libobj}T
<<EOF
643 # $libobj - a libtool object file
644 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
646 # Please DO NOT delete this file!
647 # It is necessary for linking the library.
649 # Name of the PIC object.
652 # Only build a PIC object if we are building libtool libraries.
653 if test "$build_libtool_libs" = yes; then
654 # Without this assignment, base_compile gets emptied.
655 fbsd_hideous_sh_bug
=$base_compile
657 if test "$pic_mode" != no
; then
658 command="$base_compile $srcfile $pic_flag"
660 # Don't build PIC code
661 command="$base_compile $srcfile"
664 if test ! -d "${xdir}$objdir"; then
665 $show "$mkdir ${xdir}$objdir"
666 $run $mkdir ${xdir}$objdir
668 if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
673 if test -z "$output_obj"; then
674 # Place PIC objects in $objdir
675 command="$command -o $lobj"
678 $run $rm "$lobj" "$output_obj"
681 if $run eval "$command"; then :
683 test -n "$output_obj" && $run $rm $removelist
687 if test "$need_locks" = warn
&&
688 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
690 *** ERROR, $lockfile contains:
691 `cat $lockfile 2>/dev/null`
693 but it should contain:
696 This indicates that another process is trying to use the same
697 temporary object file, and libtool could not work around it because
698 your compiler does not support \`-c' and \`-o' together. If you
699 repeat this compilation, it may succeed, by chance, but you had better
700 avoid parallel builds (make -j) in this platform, or get a better
707 # Just move the object if needed, then go on to compile the next one
708 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
709 $show "$mv $output_obj $lobj"
710 if $run $mv $output_obj $lobj; then :
718 # Append the name of the PIC object to the libtool object file.
719 test -z "$run" && cat >> ${libobj}T
<<EOF
720 pic_object='$objdir/$objname'
724 # Allow error messages only from the first compilation.
725 suppress_output
=' >/dev/null 2>&1'
727 # No PIC object so indicate it doesn't exist in the libtool
729 test -z "$run" && cat >> ${libobj}T
<<EOF
735 # Only build a position-dependent object if we build old libraries.
736 if test "$build_old_libs" = yes; then
737 if test "$pic_mode" != yes; then
738 # Don't build PIC code
739 command="$base_compile $srcfile"
741 command="$base_compile $srcfile $pic_flag"
743 if test "$compiler_c_o" = yes; then
744 command="$command -o $obj"
747 # Suppress compiler output if we already did a PIC compilation.
748 command="$command$suppress_output"
749 $run $rm "$obj" "$output_obj"
751 if $run eval "$command"; then :
757 if test "$need_locks" = warn
&&
758 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
760 *** ERROR, $lockfile contains:
761 `cat $lockfile 2>/dev/null`
763 but it should contain:
766 This indicates that another process is trying to use the same
767 temporary object file, and libtool could not work around it because
768 your compiler does not support \`-c' and \`-o' together. If you
769 repeat this compilation, it may succeed, by chance, but you had better
770 avoid parallel builds (make -j) in this platform, or get a better
777 # Just move the object if needed
778 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
779 $show "$mv $output_obj $obj"
780 if $run $mv $output_obj $obj; then :
788 # Append the name of the non-PIC object the libtool object file.
789 # Only append if the libtool object file exists.
790 test -z "$run" && cat >> ${libobj}T
<<EOF
791 # Name of the non-PIC object.
792 non_pic_object='$objname'
796 # Append the name of the non-PIC object the libtool object file.
797 # Only append if the libtool object file exists.
798 test -z "$run" && cat >> ${libobj}T
<<EOF
799 # Name of the non-PIC object.
805 $run $mv "${libobj}T" "${libobj}"
807 # Unlock the critical section if it was locked
808 if test "$need_locks" != no
; then
817 modename
="$modename: link"
819 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
820 # It is impossible to link a dll without this setting, and
821 # we shouldn't force the makefile maintainer to figure out
822 # which system we are compiling for in order to pass an extra
823 # flag for every libtool invocation.
826 # FIXME: Unfortunately, there are problems with the above when trying
827 # to make a dll which has undefined symbols, in which case not
828 # even a static library is built. For now, we need to specify
829 # -no-undefined on the libtool link line when we can be certain
830 # that all symbols are satisfied, otherwise we get a static library.
837 libtool_args
="$nonopt"
838 base_compile
="$nonopt"
839 compile_command
="$nonopt"
840 finalize_command
="$nonopt"
854 lib_search_path
=`pwd`
863 export_symbols_regex
=
871 prefer_static_libs
=no
884 # We need to know -static, to get the right output filenames.
888 -all-static |
-static)
889 if test "X$arg" = "X-all-static"; then
890 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
891 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
893 if test -n "$link_static_flag"; then
894 dlopen_self
=$dlopen_self_static
897 if test -z "$pic_flag" && test -n "$link_static_flag"; then
898 dlopen_self
=$dlopen_self_static
901 build_libtool_libs
=no
903 prefer_static_libs
=yes
909 # See if our shared archives depend on static archives.
910 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
912 # Go through the arguments, transforming them on the way.
913 while test "$#" -gt 0; do
915 base_compile
="$base_compile $arg"
918 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
919 qarg
=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
923 libtool_args
="$libtool_args $qarg"
925 # If the previous option needs an argument, assign it.
926 if test -n "$prev"; then
929 compile_command
="$compile_command @OUTPUT@"
930 finalize_command
="$finalize_command @OUTPUT@"
936 if test "$preload" = no
; then
937 # Add the symbol object into the linking commands.
938 compile_command
="$compile_command @SYMFILE@"
939 finalize_command
="$finalize_command @SYMFILE@"
943 *.la |
*.lo
) ;; # We handle these cases below.
945 if test "$dlself" = no
; then
953 if test "$prev" = dlprefiles
; then
955 elif test "$prev" = dlfiles
&& test "$dlopen_self" != yes; then
965 if test "$prev" = dlfiles
; then
966 dlfiles
="$dlfiles $arg"
968 dlprefiles
="$dlprefiles $arg"
976 export_symbols
="$arg"
977 if test ! -f "$arg"; then
978 $echo "$modename: symbol file \`$arg' does not exist"
985 export_symbols_regex
="$arg"
990 inst_prefix_dir
="$arg"
1000 if test -f "$arg"; then
1003 for fil
in `cat $save_arg`
1005 # moreargs="$moreargs $fil"
1007 # A libtool-controlled object.
1009 # Check to see that this really is a libtool object.
1010 if (${SED} -e '2q' $arg |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1015 # If there is no directory component, then add one.
1017 */* |
*\\*) .
$arg ;;
1021 if test -z "$pic_object" || \
1022 test -z "$non_pic_object" ||
1023 test "$pic_object" = none
&& \
1024 test "$non_pic_object" = none
; then
1025 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1029 # Extract subdirectory from the argument.
1030 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1031 if test "X$xdir" = "X$arg"; then
1037 if test "$pic_object" != none
; then
1038 # Prepend the subdirectory the object is found in.
1039 pic_object
="$xdir$pic_object"
1041 if test "$prev" = dlfiles
; then
1042 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1043 dlfiles
="$dlfiles $pic_object"
1047 # If libtool objects are unsupported, then we need to preload.
1052 # CHECK ME: I think I busted this. -Ossama
1053 if test "$prev" = dlprefiles
; then
1054 # Preload the old-style object.
1055 dlprefiles
="$dlprefiles $pic_object"
1060 libobjs
="$libobjs $pic_object"
1065 if test "$non_pic_object" != none
; then
1066 # Prepend the subdirectory the object is found in.
1067 non_pic_object
="$xdir$non_pic_object"
1069 # A standard non-PIC object
1070 non_pic_objects
="$non_pic_objects $non_pic_object"
1071 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1072 arg
="$non_pic_object"
1076 # Only an error if not doing a dry-run.
1077 if test -z "$run"; then
1078 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1083 # Extract subdirectory from the argument.
1084 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1085 if test "X$xdir" = "X$arg"; then
1091 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1092 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1093 libobjs
="$libobjs $pic_object"
1094 non_pic_objects
="$non_pic_objects $non_pic_object"
1099 $echo "$modename: link input file \`$save_arg' does not exist"
1107 # We need an absolute path.
1109 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1111 $echo "$modename: only absolute run-paths are allowed" 1>&2
1115 if test "$prev" = rpath
; then
1118 *) rpath
="$rpath $arg" ;;
1123 *) xrpath
="$xrpath $arg" ;;
1130 compiler_flags
="$compiler_flags $qarg"
1132 compile_command
="$compile_command $qarg"
1133 finalize_command
="$finalize_command $qarg"
1137 linker_flags
="$linker_flags $qarg"
1138 compiler_flags
="$compiler_flags $wl$qarg"
1140 compile_command
="$compile_command $wl$qarg"
1141 finalize_command
="$finalize_command $wl$qarg"
1145 linker_flags
="$linker_flags $qarg"
1146 compiler_flags
="$compiler_flags $qarg"
1148 compile_command
="$compile_command $qarg"
1149 finalize_command
="$finalize_command $qarg"
1153 eval "$prev=\"\$arg\""
1158 fi # test -n "$prev"
1164 if test -n "$link_static_flag"; then
1165 compile_command
="$compile_command $link_static_flag"
1166 finalize_command
="$finalize_command $link_static_flag"
1172 # FIXME: remove this flag sometime in the future.
1173 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1197 -export-symbols |
-export-symbols-regex)
1198 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
1199 $echo "$modename: more than one -exported-symbols argument is not allowed"
1202 if test "X$arg" = "X-export-symbols"; then
1215 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1216 # so, if we see these flags be careful not to treat them like -L
1218 case $with_gcc/$host in
1219 no
/*-*-irix* |
/*-*-irix*)
1220 compile_command
="$compile_command $arg"
1221 finalize_command
="$finalize_command $arg"
1228 dir
=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1229 # We need an absolute path.
1231 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1233 absdir
=`cd "$dir" && pwd`
1234 if test -z "$absdir"; then
1235 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1244 deplibs
="$deplibs -L$dir"
1245 lib_search_path
="$lib_search_path $dir"
1249 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1250 case :$dllsearchpath: in
1252 *) dllsearchpath
="$dllsearchpath:$dir";;
1260 if test "X$arg" = "X-lc" ||
test "X$arg" = "X-lm"; then
1262 *-*-cygwin* |
*-*-pw32* |
*-*-beos*)
1263 # These systems don't actually have a C or math library (as such)
1267 # prevent being parsed by the freebsd regexp below
1269 *-*-mingw* |
*-*-os2*)
1270 # These systems don't actually have a C library (as such)
1271 test "X$arg" = "X-lc" && continue
1273 *-*-openbsd* |
*-*-freebsd*)
1274 # Do not include libc due to us having libc/libc_r.
1275 test "X$arg" = "X-lc" && continue
1277 *-*-rhapsody* |
*-*-darwin1.
[012])
1278 # Rhapsody C and math libraries are in the System framework
1279 deplibs
="$deplibs -framework System"
1282 elif test "X$arg" = "X-lc_r"; then
1285 # prevent being parsed by the freebsd regexp below
1288 # Do not include libc_r directly, use -pthread flag.
1293 deplibs
="$deplibs $arg"
1302 # gcc -m* arguments should be passed to the linker via $compiler_flags
1303 # in order to pass architecture information to the linker
1304 # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo
1305 # but this is not reliable with gcc because gcc may use -mfoo to
1306 # select a different linker, different libraries, etc, while
1307 # -Wl,-mfoo simply passes -mfoo to the linker.
1309 # Unknown arguments in both finalize_command and compile_command need
1310 # to be aesthetically quoted because they are evaled later.
1311 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1313 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1317 compile_command
="$compile_command $arg"
1318 finalize_command
="$finalize_command $arg"
1319 if test "$with_gcc" = "yes" ; then
1320 compiler_flags
="$compiler_flags $arg"
1337 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1338 # The PATH hackery in wrapper scripts is required on Windows
1339 # in order for the loader to find any dlls it needs.
1340 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1341 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1344 *) no_install
=yes ;;
1377 dir
=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1378 # We need an absolute path.
1380 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1382 $echo "$modename: only absolute run-paths are allowed" 1>&2
1388 *) xrpath
="$xrpath $dir" ;;
1394 # The effects of -static are defined in a previous loop.
1395 # We used to do the same as -all-static on platforms that
1396 # didn't have a PIC flag, but the assumption that the effects
1397 # would be equivalent was wrong. It would break on at least
1398 # Digital Unix and AIX.
1418 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1420 save_ifs
="$IFS"; IFS
=','
1421 for flag
in $args; do
1424 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1429 compiler_flags
="$compiler_flags $flag"
1432 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1436 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1438 save_ifs
="$IFS"; IFS
=','
1439 for flag
in $args; do
1442 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1447 compiler_flags
="$compiler_flags $wl$flag"
1448 linker_flags
="$linker_flags $flag"
1451 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1469 # Some other compiler flag.
1471 # Unknown arguments in both finalize_command and compile_command need
1472 # to be aesthetically quoted because they are evaled later.
1473 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1475 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1479 add_flags
="$add_flags $arg"
1483 # A standard object.
1488 # A libtool-controlled object.
1490 # Check to see that this really is a libtool object.
1491 if (${SED} -e '2q' $arg |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1496 # If there is no directory component, then add one.
1498 */* |
*\\*) .
$arg ;;
1502 if test -z "$pic_object" || \
1503 test -z "$non_pic_object" ||
1504 test "$pic_object" = none
&& \
1505 test "$non_pic_object" = none
; then
1506 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1510 # Extract subdirectory from the argument.
1511 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1512 if test "X$xdir" = "X$arg"; then
1518 if test "$pic_object" != none
; then
1519 # Prepend the subdirectory the object is found in.
1520 pic_object
="$xdir$pic_object"
1522 if test "$prev" = dlfiles
; then
1523 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1524 dlfiles
="$dlfiles $pic_object"
1528 # If libtool objects are unsupported, then we need to preload.
1533 # CHECK ME: I think I busted this. -Ossama
1534 if test "$prev" = dlprefiles
; then
1535 # Preload the old-style object.
1536 dlprefiles
="$dlprefiles $pic_object"
1541 libobjs
="$libobjs $pic_object"
1546 if test "$non_pic_object" != none
; then
1547 # Prepend the subdirectory the object is found in.
1548 non_pic_object
="$xdir$non_pic_object"
1550 # A standard non-PIC object
1551 non_pic_objects
="$non_pic_objects $non_pic_object"
1552 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1553 arg
="$non_pic_object"
1557 # Only an error if not doing a dry-run.
1558 if test -z "$run"; then
1559 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1564 # Extract subdirectory from the argument.
1565 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1566 if test "X$xdir" = "X$arg"; then
1572 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1573 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1574 libobjs
="$libobjs $pic_object"
1575 non_pic_objects
="$non_pic_objects $non_pic_object"
1582 deplibs
="$deplibs $arg"
1583 old_deplibs
="$old_deplibs $arg"
1588 # A libtool-controlled library.
1590 if test "$prev" = dlfiles
; then
1591 # This library was specified with -dlopen.
1592 dlfiles
="$dlfiles $arg"
1594 elif test "$prev" = dlprefiles
; then
1595 # The library was specified with -dlpreopen.
1596 dlprefiles
="$dlprefiles $arg"
1599 deplibs
="$deplibs $arg"
1604 # Some other compiler argument.
1606 # Unknown arguments in both finalize_command and compile_command need
1607 # to be aesthetically quoted because they are evaled later.
1608 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1610 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1614 add_flags
="$add_flags $arg"
1618 # Now actually substitute the argument into the commands.
1619 if test -n "$arg"; then
1620 compile_command
="$compile_command $arg"
1621 finalize_command
="$finalize_command $arg"
1623 done # argument parsing loop
1625 if test -n "$prev"; then
1626 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1631 # Infer tagged configuration to use if any are available and
1632 # if one wasn't chosen via the "--tag" command line option.
1633 # Only attempt this if the compiler in the base link
1634 # command doesn't match the default compiler.
1635 if test -n "$available_tags" && test -z "$tagname"; then
1636 case $base_compile in
1637 # Blanks in the command may have been stripped by the calling shell,
1638 # but not from the CC environment variable when configure was run.
1639 "$CC "* |
" $CC "* |
"`$echo $CC` "* |
" `$echo $CC` "*) ;;
1640 # Blanks at the start of $base_compile will cause this to fail
1641 # if we don't check for them as well.
1643 for z
in $available_tags; do
1644 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev
/null
; then
1645 # Evaluate the configuration.
1646 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
1647 case $base_compile in
1648 "$CC "* |
" $CC "* |
"`$echo $CC` "* |
" `$echo $CC` "*)
1649 # The compiler in $compile_command matches
1650 # the one in the tagged configuration.
1651 # Assume this is the tagged configuration we want.
1658 # If $tagname still isn't set, then no tagged configuration
1659 # was found and let the user know that the "--tag" command
1660 # line option must be used.
1661 if test -z "$tagname"; then
1662 $echo "$modename: unable to infer tagged configuration"
1663 $echo "$modename: specify a tag with \`--tag'" 1>&2
1666 # $echo "$modename: using $tagname tagged configuration"
1672 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1673 eval arg
=\"$export_dynamic_flag_spec\"
1674 compile_command
="$compile_command $arg"
1675 finalize_command
="$finalize_command $arg"
1679 # calculate the name of the file, without its directory
1680 outputname
=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1681 libobjs_save
="$libobjs"
1683 if test -n "$shlibpath_var"; then
1684 # get the directories listed in $shlibpath_var
1685 eval shlib_search_path
=\
`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1689 eval sys_lib_search_path
=\"$sys_lib_search_path_spec\"
1690 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
1692 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1693 if test "X$output_objdir" = "X$output"; then
1694 output_objdir
="$objdir"
1696 output_objdir
="$output_objdir/$objdir"
1698 # Create the object directory.
1699 if test ! -d "$output_objdir"; then
1700 $show "$mkdir $output_objdir"
1701 $run $mkdir $output_objdir
1703 if test "$status" -ne 0 && test ! -d "$output_objdir"; then
1708 # Determine the type of output
1711 $echo "$modename: you must specify an output file" 1>&2
1715 *.
$libext) linkmode
=oldlib
;;
1716 *.lo |
*.
$objext) linkmode
=obj
;;
1717 *.la
) linkmode
=lib
;;
1718 *) linkmode
=prog
;; # Anything else should be a program.
1722 *cygwin
* |
*mingw
* |
*pw32
*)
1723 # don't eliminate duplcations in $postdeps and $predeps
1724 duplicate_compiler_generated_deps
=yes
1727 duplicate_compiler_generated_deps
=$duplicate_deps
1733 # Find all interdependent deplibs by searching for libraries
1734 # that are linked more than once (e.g. -la -lb -la)
1735 for deplib
in $deplibs; do
1736 if test "X$duplicate_deps" = "Xyes" ; then
1738 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1741 libs
="$libs $deplib"
1744 if test "$linkmode" = lib
; then
1745 libs
="$predeps $libs $compiler_lib_search_path $postdeps"
1747 # Compute libraries that are listed more than once in $predeps
1748 # $postdeps and mark them as special (i.e., whose duplicates are
1749 # not to be eliminated).
1751 if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
1752 for pre_post_dep
in $predeps $postdeps; do
1753 case "$pre_post_deps " in
1754 *" $pre_post_dep "*) specialdeplibs
="$specialdeplibs $pre_post_deps" ;;
1756 pre_post_deps
="$pre_post_deps $pre_post_dep"
1765 need_relink
=no
# whether we're linking any uninstalled libtool libraries
1766 notinst_deplibs
= # not-installed libtool libraries
1767 notinst_path
= # paths that contain not-installed libtool libraries
1771 for file in $dlfiles $dlprefiles; do
1775 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1787 passes
="conv scan dlopen dlpreopen link"
1792 for pass
in $passes; do
1793 if test "$linkmode,$pass" = "lib,link" ||
1794 test "$linkmode,$pass" = "prog,scan"; then
1798 if test "$linkmode" = prog
; then
1800 dlopen
) libs
="$dlfiles" ;;
1801 dlpreopen
) libs
="$dlprefiles" ;;
1802 link
) libs
="$deplibs %DEPLIBS% $dependency_libs" ;;
1805 if test "$pass" = dlopen
; then
1806 # Collect dlpreopened libraries
1807 save_deplibs
="$deplibs"
1810 for deplib
in $libs; do
1815 if test "$linkmode" != lib
&& test "$linkmode" != prog
; then
1816 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1819 if test "$pass" = conv
&& test "$allow_undefined" = yes; then
1820 deplibs
="$deplib $deplibs"
1823 name
=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1824 for searchdir
in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1825 for search_ext
in .la
$shrext .so .a
; do
1826 # Search the libtool library
1827 lib
="$searchdir/lib${name}${search_ext}"
1828 if test -f "$lib"; then
1829 if test "$search_ext" = ".la"; then
1838 if test "$found" != yes; then
1839 # deplib doesn't seem to be a libtool library
1840 if test "$linkmode,$pass" = "prog,link"; then
1841 compile_deplibs
="$deplib $compile_deplibs"
1842 finalize_deplibs
="$deplib $finalize_deplibs"
1844 deplibs
="$deplib $deplibs"
1845 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
1848 else # deplib is a libtool library
1849 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
1850 # We need to do some special things here, and not later.
1851 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1852 case " $predeps $postdeps " in
1854 if (${SED} -e '2q' $lib |
1855 grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1859 */* |
*\\*) .
$lib ;;
1862 for l
in $old_library $library_names; do
1865 if test "X$ll" = "X$old_library" ; then # only static version available
1867 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1868 test "X$ladir" = "X$lib" && ladir
="."
1869 lib
=$ladir/$old_library
1870 if test "$linkmode,$pass" = "prog,link"; then
1871 compile_deplibs
="$deplib $compile_deplibs"
1872 finalize_deplibs
="$deplib $finalize_deplibs"
1874 deplibs
="$deplib $deplibs"
1875 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
1889 deplibs
="$deplib $deplibs"
1890 test "$pass" = conv
&& continue
1891 newdependency_libs
="$deplib $newdependency_libs"
1892 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1895 if test "$pass" = conv
; then
1896 deplibs
="$deplib $deplibs"
1899 if test "$pass" = scan
; then
1900 deplibs
="$deplib $deplibs"
1901 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1903 compile_deplibs
="$deplib $compile_deplibs"
1904 finalize_deplibs
="$deplib $finalize_deplibs"
1908 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1914 if test "$pass" = link
; then
1915 dir
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1916 # Make sure the xrpath contains only unique directories.
1919 *) xrpath
="$xrpath $dir" ;;
1922 deplibs
="$deplib $deplibs"
1925 *.la
) lib
="$deplib" ;;
1927 if test "$pass" = conv
; then
1928 deplibs
="$deplib $deplibs"
1933 if test "$deplibs_check_method" != pass_all
; then
1935 $echo "*** Warning: Trying to link with static lib archive $deplib."
1936 $echo "*** I have the capability to make that library automatically link in when"
1937 $echo "*** you link to this library. But I can only do this if you have a"
1938 $echo "*** shared version of the library, which you do not appear to have"
1939 $echo "*** because the file extensions .$libext of this argument makes me believe"
1940 $echo "*** that it is just a static archive that I should not used here."
1943 $echo "*** Warning: Linking the shared library $output against the"
1944 $echo "*** static library $deplib is not portable!"
1945 deplibs
="$deplib $deplibs"
1950 if test "$pass" != link
; then
1951 deplibs
="$deplib $deplibs"
1953 compile_deplibs
="$deplib $compile_deplibs"
1954 finalize_deplibs
="$deplib $finalize_deplibs"
1961 if test "$pass" = conv
; then
1962 deplibs
="$deplib $deplibs"
1963 elif test "$linkmode" = prog
; then
1964 if test "$pass" = dlpreopen ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1965 # If there is no dlopen support or we're linking statically,
1966 # we need to preload.
1967 newdlprefiles
="$newdlprefiles $deplib"
1968 compile_deplibs
="$deplib $compile_deplibs"
1969 finalize_deplibs
="$deplib $finalize_deplibs"
1971 newdlfiles
="$newdlfiles $deplib"
1981 if test "$found" = yes ||
test -f "$lib"; then :
1983 $echo "$modename: cannot find the library \`$lib'" 1>&2
1987 # Check to see that this really is a libtool archive.
1988 if (${SED} -e '2q' $lib |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
1990 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1994 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1995 test "X$ladir" = "X$lib" && ladir
="."
2003 # If the library was installed with an old release of libtool,
2004 # it will not redefine variables installed, or shouldnotlink
2010 */* |
*\\*) .
$lib ;;
2014 if test "$linkmode,$pass" = "lib,link" ||
2015 test "$linkmode,$pass" = "prog,scan" ||
2016 { test "$linkmode" != prog
&& test "$linkmode" != lib
; }; then
2017 test -n "$dlopen" && dlfiles
="$dlfiles $dlopen"
2018 test -n "$dlpreopen" && dlprefiles
="$dlprefiles $dlpreopen"
2021 if test "$pass" = conv
; then
2022 # Only check for convenience libraries
2023 deplibs
="$lib $deplibs"
2025 for deplib
in $dependency_libs; do
2026 #echo "Adding $deplib to \$deplibs"
2027 deplibs
="$deplib $deplibs"
2028 if test "X$duplicate_deps" = "Xyes" ; then
2029 case "$tmp_libs " in
2030 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2033 tmp_libs
="$tmp_libs $deplib"
2035 if test -z "$libdir"; then
2036 if test -z "$old_library"; then
2037 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2040 # It is a libtool convenience library, so add in its objects.
2041 convenience
="$convenience $ladir/$objdir/$old_library"
2042 old_convenience
="$old_convenience $ladir/$objdir/$old_library"
2043 elif test "$linkmode" != prog
&& test "$linkmode" != lib
; then
2044 $echo "$modename: \`$lib' is not a convenience library" 1>&2
2051 # Get the name of the library we link against.
2053 for l
in $old_library $library_names; do
2056 if test -z "$linklib"; then
2057 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2061 # This library was specified with -dlopen.
2062 if test "$pass" = dlopen
; then
2063 if test -z "$libdir"; then
2064 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2067 if test -z "$dlname" ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
2068 # If there is no dlname, no dlopen support or we're linking
2069 # statically, we need to preload. We also need to preload any
2070 # dependent libraries so libltdl's deplib preloader doesn't
2071 # bomb out in the load deplibs phase.
2072 dlprefiles
="$dlprefiles $lib $dependency_libs"
2074 newdlfiles
="$newdlfiles $lib"
2079 # We need an absolute path.
2081 [\\/]* |
[A-Za-z
]:[\\/]*) abs_ladir
="$ladir" ;;
2083 abs_ladir
=`cd "$ladir" && pwd`
2084 if test -z "$abs_ladir"; then
2085 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2086 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2091 laname
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2093 # Find the relevant object directory and library name.
2094 if test "X$installed" = Xyes
; then
2095 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2096 $echo "$modename: warning: library \`$lib' was moved." 1>&2
2105 dir
="$ladir/$objdir"
2106 absdir
="$abs_ladir/$objdir"
2107 # Remove this search path later
2108 notinst_path
="$notinst_path $abs_ladir"
2109 fi # $installed = yes
2110 name
=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2112 # This library was specified with -dlpreopen.
2113 if test "$pass" = dlpreopen
; then
2114 if test -z "$libdir"; then
2115 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2118 # Prefer using a static library (so that no silly _DYNAMIC symbols
2119 # are required to link).
2120 if test -n "$old_library"; then
2121 newdlprefiles
="$newdlprefiles $dir/$old_library"
2122 # Otherwise, use the dlname, so that lt_dlopen finds it.
2123 elif test -n "$dlname"; then
2124 newdlprefiles
="$newdlprefiles $dir/$dlname"
2126 newdlprefiles
="$newdlprefiles $dir/$linklib"
2128 fi # $pass = dlpreopen
2130 if test -z "$libdir"; then
2131 # Link the convenience library
2132 if test "$linkmode" = lib
; then
2133 deplibs
="$dir/$old_library $deplibs"
2134 elif test "$linkmode,$pass" = "prog,link"; then
2135 compile_deplibs
="$dir/$old_library $compile_deplibs"
2136 finalize_deplibs
="$dir/$old_library $finalize_deplibs"
2138 deplibs
="$lib $deplibs" # used for prog,scan pass
2144 if test "$linkmode" = prog
&& test "$pass" != link
; then
2145 newlib_search_path
="$newlib_search_path $ladir"
2146 deplibs
="$lib $deplibs"
2149 if test "$link_all_deplibs" != no ||
test -z "$library_names" ||
2150 test "$build_libtool_libs" = no
; then
2155 for deplib
in $dependency_libs; do
2157 -L*) newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2159 # Need to link against all dependency_libs?
2160 if test "$linkalldeplibs" = yes; then
2161 deplibs
="$deplib $deplibs"
2163 # Need to hardcode shared library paths
2164 # or/and link against static libraries
2165 newdependency_libs
="$deplib $newdependency_libs"
2167 if test "X$duplicate_deps" = "Xyes" ; then
2168 case "$tmp_libs " in
2169 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2172 tmp_libs
="$tmp_libs $deplib"
2175 fi # $linkmode = prog...
2177 if test "$linkmode,$pass" = "prog,link"; then
2178 if test -n "$library_names" &&
2179 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
2180 # We need to hardcode the library path
2181 if test -n "$shlibpath_var"; then
2182 # Make sure the rpath contains only unique directories.
2183 case "$temp_rpath " in
2186 *) temp_rpath
="$temp_rpath $dir" ;;
2190 # Hardcode the library path.
2191 # Skip directories that are in the system default run-time
2193 case " $sys_lib_dlsearch_path " in
2196 case "$compile_rpath " in
2198 *) compile_rpath
="$compile_rpath $absdir"
2202 case " $sys_lib_dlsearch_path " in
2205 case "$finalize_rpath " in
2207 *) finalize_rpath
="$finalize_rpath $libdir"
2211 fi # $linkmode,$pass = prog,link...
2213 if test "$alldeplibs" = yes &&
2214 { test "$deplibs_check_method" = pass_all ||
2215 { test "$build_libtool_libs" = yes &&
2216 test -n "$library_names"; }; }; then
2217 # We only need to search for static libraries
2222 link_static
=no
# Whether the deplib will be linked statically
2223 if test -n "$library_names" &&
2224 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
2225 if test "$installed" = no
; then
2226 notinst_deplibs
="$notinst_deplibs $lib"
2229 # This is a shared library
2231 # Warn about portability, can't link against -module's on some systems (darwin)
2232 if test "$shouldnotlink" = yes && test "$pass" = link
; then
2234 if test "$linkmode" = prog
; then
2235 $echo "*** Warning: Linking the executable $output against the loadable module"
2237 $echo "*** Warning: Linking the shared library $output against the loadable module"
2239 $echo "*** $linklib is not portable!"
2241 if test "$linkmode" = lib
&&
2242 test "$hardcode_into_libs" = yes; then
2243 # Hardcode the library path.
2244 # Skip directories that are in the system default run-time
2246 case " $sys_lib_dlsearch_path " in
2249 case "$compile_rpath " in
2251 *) compile_rpath
="$compile_rpath $absdir"
2255 case " $sys_lib_dlsearch_path " in
2258 case "$finalize_rpath " in
2260 *) finalize_rpath
="$finalize_rpath $libdir"
2266 if test -n "$old_archive_from_expsyms_cmds"; then
2267 # figure out the soname
2268 set dummy
$library_names
2271 libname
=`eval \\$echo \"$libname_spec\"`
2272 # use dlname if we got it. it's perfectly good, no?
2273 if test -n "$dlname"; then
2275 elif test -n "$soname_spec"; then
2279 major
=`expr $current - $age`
2283 eval soname
=\"$soname_spec\"
2288 # Make a new name for the extract_expsyms_cmds to use
2290 soname
=`$echo $soroot | ${SED} -e 's/^.*\///'`
2291 newlib
="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2293 # If the library has no export list, then create one now
2294 if test -f "$output_objdir/$soname-def"; then :
2296 $show "extracting exported symbol list from \`$soname'"
2297 save_ifs
="$IFS"; IFS
='~'
2298 eval cmds
=\"$extract_expsyms_cmds\"
2299 for cmd
in $cmds; do
2302 $run eval "$cmd" ||
exit $?
2308 if test -f "$output_objdir/$newlib"; then :; else
2309 $show "generating import library for \`$soname'"
2310 save_ifs
="$IFS"; IFS
='~'
2311 eval cmds
=\"$old_archive_from_expsyms_cmds\"
2312 for cmd
in $cmds; do
2315 $run eval "$cmd" ||
exit $?
2319 # make sure the library variables are pointing to the new library
2322 fi # test -n "$old_archive_from_expsyms_cmds"
2324 if test "$linkmode" = prog ||
test "$mode" != relink
; then
2329 case $hardcode_action in
2330 immediate | unsupported
)
2331 if test "$hardcode_direct" = no
; then
2334 *-*-sco3.2v5
* ) add_dir
="-L$dir" ;;
2336 # if the lib is a module then we can not link against it, someone
2337 # is ignoring the new warnings I added
2338 if /usr
/bin
/file -L $add 2> /dev
/null |
grep "bundle" >/dev
/null
; then
2339 $echo "** Warning, lib $linklib is a module, not a shared library"
2340 if test -z "$old_library" ; then
2342 $echo "** And there doesn't seem to be a static archive available"
2343 $echo "** The link will probably fail, sorry"
2345 add
="$dir/$old_library"
2349 elif test "$hardcode_minus_L" = no
; then
2351 *-*-sunos*) add_shlibpath
="$dir" ;;
2355 elif test "$hardcode_shlibpath_var" = no
; then
2356 add_shlibpath
="$dir"
2363 if test "$hardcode_direct" = yes; then
2365 elif test "$hardcode_minus_L" = yes; then
2367 # Try looking first in the location we're being installed to.
2368 if test -n "$inst_prefix_dir"; then
2371 add_dir
="-L$inst_prefix_dir$libdir $add_dir"
2376 elif test "$hardcode_shlibpath_var" = yes; then
2377 add_shlibpath
="$dir"
2386 if test "$lib_linked" != yes; then
2387 $echo "$modename: configuration error: unsupported hardcode properties"
2391 if test -n "$add_shlibpath"; then
2392 case :$compile_shlibpath: in
2393 *":$add_shlibpath:"*) ;;
2394 *) compile_shlibpath
="$compile_shlibpath$add_shlibpath:" ;;
2397 if test "$linkmode" = prog
; then
2398 test -n "$add_dir" && compile_deplibs
="$add_dir $compile_deplibs"
2399 test -n "$add" && compile_deplibs
="$add $compile_deplibs"
2401 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2402 test -n "$add" && deplibs
="$add $deplibs"
2403 if test "$hardcode_direct" != yes && \
2404 test "$hardcode_minus_L" != yes && \
2405 test "$hardcode_shlibpath_var" = yes; then
2406 case :$finalize_shlibpath: in
2408 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2414 if test "$linkmode" = prog ||
test "$mode" = relink
; then
2418 # Finalize command for both is simple: just hardcode it.
2419 if test "$hardcode_direct" = yes; then
2420 add
="$libdir/$linklib"
2421 elif test "$hardcode_minus_L" = yes; then
2424 elif test "$hardcode_shlibpath_var" = yes; then
2425 case :$finalize_shlibpath: in
2427 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2430 elif test "$hardcode_automatic" = yes; then
2431 if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
2432 add
="$inst_prefix_dir$libdir/$linklib"
2434 add
="$libdir/$linklib"
2437 # We cannot seem to hardcode it, guess we'll fake it.
2439 # Try looking first in the location we're being installed to.
2440 if test -n "$inst_prefix_dir"; then
2443 add_dir
="-L$inst_prefix_dir$libdir $add_dir"
2450 if test "$linkmode" = prog
; then
2451 test -n "$add_dir" && finalize_deplibs
="$add_dir $finalize_deplibs"
2452 test -n "$add" && finalize_deplibs
="$add $finalize_deplibs"
2454 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2455 test -n "$add" && deplibs
="$add $deplibs"
2458 elif test "$linkmode" = prog
; then
2459 # Here we assume that one of hardcode_direct or hardcode_minus_L
2460 # is not unsupported. This is valid on all known static and
2462 if test "$hardcode_direct" != unsupported
; then
2463 test -n "$old_library" && linklib
="$old_library"
2464 compile_deplibs
="$dir/$linklib $compile_deplibs"
2465 finalize_deplibs
="$dir/$linklib $finalize_deplibs"
2467 compile_deplibs
="-l$name -L$dir $compile_deplibs"
2468 finalize_deplibs
="-l$name -L$dir $finalize_deplibs"
2470 elif test "$build_libtool_libs" = yes; then
2471 # Not a shared library
2472 if test "$deplibs_check_method" != pass_all
; then
2473 # We're trying link a shared library against a static one
2474 # but the system doesn't support it.
2476 # Just print a warning and add the library to dependency_libs so
2477 # that the program can be linked against the static library.
2479 $echo "*** Warning: This system can not link to static lib archive $lib."
2480 $echo "*** I have the capability to make that library automatically link in when"
2481 $echo "*** you link to this library. But I can only do this if you have a"
2482 $echo "*** shared version of the library, which you do not appear to have."
2483 if test "$module" = yes; then
2484 $echo "*** But as you try to build a module library, libtool will still create "
2485 $echo "*** a static module, that should work as long as the dlopening application"
2486 $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2487 if test -z "$global_symbol_pipe"; then
2489 $echo "*** However, this would only work if libtool was able to extract symbol"
2490 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2491 $echo "*** not find such a program. So, this module is probably useless."
2492 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2494 if test "$build_old_libs" = no
; then
2495 build_libtool_libs
=module
2498 build_libtool_libs
=no
2502 convenience
="$convenience $dir/$old_library"
2503 old_convenience
="$old_convenience $dir/$old_library"
2504 deplibs
="$dir/$old_library $deplibs"
2507 fi # link shared/static library?
2509 if test "$linkmode" = lib
; then
2510 #if test -n "$dependency_libs" &&
2511 # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
2512 # test "$link_static" = yes; }; then
2513 # Extract -R from dependency_libs
2515 for libdir
in $dependency_libs; do
2517 -R*) temp_xrpath
=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2519 *" $temp_xrpath "*) ;;
2520 *) xrpath
="$xrpath $temp_xrpath";;
2522 *) temp_deplibs
="$temp_deplibs $libdir";;
2525 dependency_libs
="$temp_deplibs"
2528 newlib_search_path
="$newlib_search_path $absdir"
2529 # Link against this library
2530 test "$link_static" = no
&& newdependency_libs
="$abs_ladir/$laname $newdependency_libs"
2531 # ... and its dependency_libs
2533 for deplib
in $dependency_libs; do
2534 newdependency_libs
="$deplib $newdependency_libs"
2535 if test "X$duplicate_deps" = "Xyes" ; then
2536 case "$tmp_libs " in
2537 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2540 tmp_libs
="$tmp_libs $deplib"
2543 if test "$link_all_deplibs" != no
; then
2544 # Add the search paths of all dependency libraries
2545 for deplib
in $dependency_libs; do
2547 -L*) path
="$deplib" ;;
2549 dir
=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2550 test "X$dir" = "X$deplib" && dir
="."
2551 # We need an absolute path.
2553 [\\/]* |
[A-Za-z
]:[\\/]*) absdir
="$dir" ;;
2555 absdir
=`cd "$dir" && pwd`
2556 if test -z "$absdir"; then
2557 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2562 if grep "^installed=no" $deplib > /dev
/null
; then
2563 path
="$absdir/$objdir"
2565 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2566 if test -z "$libdir"; then
2567 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2570 if test "$absdir" != "$libdir"; then
2571 # Sure, some shells/systems don't implement the -ef.
2572 # Those will have to live with the warning.
2573 test "$absdir" -ef "$libdir" > /dev
/null
2>&1 ||
2574 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2581 # we do not want to link against static libs, but need to link against shared
2582 eval deplibrary_names
=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2583 if test -n "$deplibrary_names" ; then
2584 for tmp
in $deplibrary_names ; do
2587 if test -f "$path/$depdepl" ; then
2588 depdepl
="$path/$depdepl"
2590 # do not add paths which are already there
2591 case " $newlib_search_path " in
2593 *) newlib_search_path
="$newlib_search_path $path";;
2607 # Again, we only want to link against shared libraries
2608 eval tmp_libs
=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2609 for tmp
in $newlib_search_path ; do
2610 if test -f "$tmp/lib$tmp_libs.dylib" ; then
2611 eval depdepl
="$tmp/lib$tmp_libs.dylib"
2622 case " $deplibs " in
2624 *) deplibs
="$deplibs $depdepl" ;;
2626 case " $deplibs " in
2628 *) deplibs
="$deplibs $path" ;;
2631 fi # link_all_deplibs != no
2633 done # for deplib in $libs
2634 dependency_libs
="$newdependency_libs"
2635 if test "$pass" = dlpreopen
; then
2636 # Link the dlpreopened libraries before other libraries
2637 for deplib
in $save_deplibs; do
2638 deplibs
="$deplib $deplibs"
2641 if test "$pass" != dlopen
; then
2642 if test "$pass" != conv
; then
2643 # Make sure lib_search_path contains only unique directories.
2645 for dir
in $newlib_search_path; do
2646 case "$lib_search_path " in
2648 *) lib_search_path
="$lib_search_path $dir" ;;
2654 if test "$linkmode,$pass" != "prog,link"; then
2657 vars
="compile_deplibs finalize_deplibs"
2659 for var
in $vars dependency_libs
; do
2660 # Add libraries to $var in reverse order
2661 eval tmp_libs
=\"\$
$var\"
2663 for deplib
in $tmp_libs; do
2664 # FIXME: Pedantically, this is the right thing to do, so
2665 # that some nasty dependency loop isn't accidentally
2667 #new_libs="$deplib $new_libs"
2668 # Pragmatically, this seems to cause very few problems in
2671 -L*) new_libs
="$deplib $new_libs" ;;
2674 # And here is the reason: when a library appears more
2675 # than once as an explicit dependence of a library, or
2676 # is implicitly linked in more than once by the
2677 # compiler, it is considered special, and multiple
2678 # occurrences thereof are not removed. Compare this
2679 # with having the same library being listed as a
2680 # dependency of multiple other libraries: in this case,
2681 # we know (pedantically, we assume) the library does not
2682 # need to be listed more than once, so we keep only the
2683 # last copy. This is not always right, but it is rare
2684 # enough that we require users that really mean to play
2685 # such unportable linking tricks to link the library
2686 # using -Wl,-lname, so that libtool does not consider it
2687 # for duplicate removal.
2688 case " $specialdeplibs " in
2689 *" $deplib "*) new_libs
="$deplib $new_libs" ;;
2691 case " $new_libs " in
2693 *) new_libs
="$deplib $new_libs" ;;
2701 for deplib
in $new_libs; do
2704 case " $tmp_libs " in
2706 *) tmp_libs
="$tmp_libs $deplib" ;;
2709 *) tmp_libs
="$tmp_libs $deplib" ;;
2712 eval $var=\"$tmp_libs\"
2715 # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
2717 for i
in $dependency_libs ; do
2718 case " $predeps $postdeps $compiler_lib_search_path " in
2723 if test -n "$i" ; then
2724 tmp_libs
="$tmp_libs $i"
2727 dependency_libs
=$tmp_libs
2729 if test "$linkmode" = prog
; then
2730 dlfiles
="$newdlfiles"
2731 dlprefiles
="$newdlprefiles"
2736 if test -n "$deplibs"; then
2737 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2740 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
2741 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2744 if test -n "$rpath"; then
2745 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2748 if test -n "$xrpath"; then
2749 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2752 if test -n "$vinfo"; then
2753 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
2756 if test -n "$release"; then
2757 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2760 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
2761 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2764 # Now set the variables for building old libraries.
2765 build_libtool_libs
=no
2767 objs
="$objs$old_deplibs"
2771 # Make sure we only generate libraries of the form `libNAME.la'.
2774 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2775 eval shared_ext
=\"$shrext\"
2776 eval libname
=\"$libname_spec\"
2779 if test "$module" = no
; then
2780 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2784 if test "$need_lib_prefix" != no
; then
2785 # Add the "lib" prefix for modules if required
2786 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2787 eval shared_ext
=\"$shrext\"
2788 eval libname
=\"$libname_spec\"
2790 libname
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2795 if test -n "$objs"; then
2796 if test "$deplibs_check_method" != pass_all
; then
2797 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2801 $echo "*** Warning: Linking the shared library $output against the non-libtool"
2802 $echo "*** objects $objs is not portable!"
2803 libobjs
="$libobjs $objs"
2807 if test "$dlself" != no
; then
2808 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2812 if test "$#" -gt 2; then
2813 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2818 if test -z "$rpath"; then
2819 if test "$build_libtool_libs" = yes; then
2820 # Building a libtool convenience library.
2821 # Some compilers have problems with a `.al' extension so
2822 # convenience libraries should have the same extension an
2823 # archive normally would.
2824 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
2825 build_libtool_libs
=convenience
2829 if test -n "$vinfo"; then
2830 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
2833 if test -n "$release"; then
2834 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2838 # Parse the version information argument.
2839 save_ifs
="$IFS"; IFS
=':'
2840 set dummy
$vinfo 0 0 0
2843 if test -n "$8"; then
2844 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2849 # convert absolute version numbers to libtool ages
2850 # this retains compatibility with .la files and attempts
2851 # to make the code below a bit more comprehensible
2853 case $vinfo_number in
2857 number_revision
="$4"
2859 # There are really only two kinds -- those that
2860 # use the current revision as the major version
2861 # and those that subtract age and use age as
2862 # a minor version. But, then there is irix
2863 # which has an extra 1 added just for fun
2865 case $version_type in
2866 darwin|linux|osf|windows
)
2867 current
=`expr $number_major + $number_minor`
2869 revision
="$number_revision"
2871 freebsd-aout|freebsd-elf|sunos
)
2872 current
="$number_major"
2873 revision
="$number_minor"
2877 current
=`expr $number_major + $number_minor - 1`
2879 revision
="$number_minor"
2890 # Check that each of the things are valid numbers.
2892 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2894 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2895 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2901 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2903 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2904 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2910 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2912 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2913 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2918 if test "$age" -gt "$current"; then
2919 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2920 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2924 # Calculate the version variables.
2928 case $version_type in
2932 # Like Linux, but with the current version available in
2933 # verstring for coding it into the library header
2934 major
=.
`expr $current - $age`
2935 versuffix
="$major.$age.$revision"
2936 # Darwin ld doesn't like 0 for these options...
2937 minor_current
=`expr $current + 1`
2938 verstring
="-compatibility_version $minor_current -current_version $minor_current.$revision"
2943 versuffix
=".$current.$revision";
2948 versuffix
=".$current";
2952 major
=`expr $current - $age + 1`
2954 case $version_type in
2955 nonstopux
) verstring_prefix
=nonstopux
;;
2956 *) verstring_prefix
=sgi
;;
2958 verstring
="$verstring_prefix$major.$revision"
2960 # Add in all the interfaces that we are compatible with.
2962 while test "$loop" -ne 0; do
2963 iface
=`expr $revision - $loop`
2964 loop
=`expr $loop - 1`
2965 verstring
="$verstring_prefix$major.$iface:$verstring"
2968 # Before this point, $major must not contain `.'.
2970 versuffix
="$major.$revision"
2974 major
=.
`expr $current - $age`
2975 versuffix
="$major.$age.$revision"
2979 major
=.
`expr $current - $age`
2980 versuffix
=".$current.$age.$revision"
2981 verstring
="$current.$age.$revision"
2983 # Add in all the interfaces that we are compatible with.
2985 while test "$loop" -ne 0; do
2986 iface
=`expr $current - $loop`
2987 loop
=`expr $loop - 1`
2988 verstring
="$verstring:${iface}.0"
2991 # Make executables depend on our current version.
2992 verstring
="$verstring:${current}.0"
2997 versuffix
=".$current.$revision"
3001 # Use '-' rather than '.', since we only want one
3002 # extension on DOS 8.3 filesystems.
3003 major
=`expr $current - $age`
3008 $echo "$modename: unknown library version type \`$version_type'" 1>&2
3009 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3014 # Clear the version info if we defaulted, and they specified a release.
3015 if test -z "$vinfo" && test -n "$release"; then
3017 case $version_type in
3019 # we can't check for "0.0" in archive_cmds due to quoting
3020 # problems, so we reset it completely
3027 if test "$need_version" = no
; then
3034 # Remove version info from name if versioning should be avoided
3035 if test "$avoid_version" = yes && test "$need_version" = no
; then
3041 # Check to see if the archive will have undefined symbols.
3042 if test "$allow_undefined" = yes; then
3043 if test "$allow_undefined_flag" = unsupported
; then
3044 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3045 build_libtool_libs
=no
3049 # Don't allow undefined symbols.
3050 allow_undefined_flag
="$no_undefined_flag"
3054 if test "$mode" != relink
; then
3055 # Remove our outputs, but don't remove object files since they
3056 # may have been created when compiling PIC objects.
3058 tempremovelist
=`$echo "$output_objdir/*"`
3059 for p
in $tempremovelist; do
3063 $output_objdir/$outputname |
$output_objdir/$libname.
* |
$output_objdir/${libname}${release}.
*)
3064 removelist
="$removelist $p"
3069 if test -n "$removelist"; then
3070 $show "${rm}r $removelist"
3071 $run ${rm}r
$removelist
3075 # Now set the variables for building old libraries.
3076 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
3077 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
3079 # Transform .lo files to .o files.
3080 oldobjs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3083 # Eliminate all temporary directories.
3084 for path
in $notinst_path; do
3085 lib_search_path
=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
3086 deplibs
=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
3087 dependency_libs
=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
3090 if test -n "$xrpath"; then
3091 # If the user specified any rpath flags, then add them.
3093 for libdir
in $xrpath; do
3094 temp_xrpath
="$temp_xrpath -R$libdir"
3095 case "$finalize_rpath " in
3097 *) finalize_rpath
="$finalize_rpath $libdir" ;;
3100 if true ||
test "$hardcode_into_libs" != yes ||
test "$build_old_libs" = yes; then
3101 dependency_libs
="$temp_xrpath $dependency_libs"
3105 # Make sure dlfiles contains only unique files that won't be dlpreopened
3106 old_dlfiles
="$dlfiles"
3108 for lib
in $old_dlfiles; do
3109 case " $dlprefiles $dlfiles " in
3111 *) dlfiles
="$dlfiles $lib" ;;
3115 # Make sure dlprefiles contains only unique files
3116 old_dlprefiles
="$dlprefiles"
3118 for lib
in $old_dlprefiles; do
3119 case "$dlprefiles " in
3121 *) dlprefiles
="$dlprefiles $lib" ;;
3125 if test "$build_libtool_libs" = yes; then
3126 if test -n "$rpath"; then
3128 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2* |
*-*-beos*)
3129 # these systems don't actually have a c library (as such)!
3131 *-*-rhapsody* |
*-*-darwin1.
[012])
3132 # Rhapsody C library is in the System framework
3133 deplibs
="$deplibs -framework System"
3136 # Don't link with libc until the a.out ld.so is fixed.
3139 # Prevent $arg from being parsed by the freebsd regexp below.
3140 if test "$build_libtool_need_lc" = "yes"; then
3141 deplibs
="$deplibs -lc"
3144 *-*-openbsd* |
*-*-freebsd*)
3145 # Do not include libc due to us having libc/libc_r.
3146 test "X$arg" = "X-lc" && continue
3149 # Add libc to deplibs on all other systems if necessary.
3150 if test "$build_libtool_need_lc" = "yes"; then
3151 deplibs
="$deplibs -lc"
3157 # Transform deplibs into only deplibs that can be linked in shared.
3159 libname_save
=$libname
3160 release_save
=$release
3161 versuffix_save
=$versuffix
3163 # I'm not sure if I'm treating the release correctly. I think
3164 # release should show up in the -l (ie -lgmp5) so we don't want to
3165 # add it in twice. Is that correct?
3171 case $deplibs_check_method in
3173 # Don't check for shared/static. Everything works.
3174 # This might be a little naive. We might want to check
3175 # whether the library exists or not. But this is on
3176 # osf3 & osf4 and I'm not really sure... Just
3177 # implementing what was already the behavior.
3181 # This code stresses the "libraries are programs" paradigm to its
3182 # limits. Maybe even breaks it. We compile a program, linking it
3183 # against the deplibs as a proxy for the library. Then we can check
3184 # whether they linked in statically or dynamically with ldd.
3186 cat > conftest.c
<<EOF
3187 int main() { return 0; }
3190 $LTCC -o conftest conftest.c
$deplibs
3191 if test "$?" -eq 0 ; then
3192 ldd_output
=`ldd conftest`
3193 for i
in $deplibs; do
3194 name
="`expr $i : '-l\(.*\)'`"
3195 # If $name is empty we are operating on a -L argument.
3196 if test "$name" != "" && test "$name" -ne "0"; then
3197 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3198 case " $predeps $postdeps " in
3200 newdeplibs
="$newdeplibs $i"
3205 if test -n "$i" ; then
3206 libname
=`eval \\$echo \"$libname_spec\"`
3207 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
3208 set dummy
$deplib_matches
3210 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3211 newdeplibs
="$newdeplibs $i"
3215 $echo "*** Warning: dynamic linker does not accept needed library $i."
3216 $echo "*** I have the capability to make that library automatically link in when"
3217 $echo "*** you link to this library. But I can only do this if you have a"
3218 $echo "*** shared version of the library, which I believe you do not have"
3219 $echo "*** because a test_compile did reveal that the linker did not use it for"
3220 $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3224 newdeplibs
="$newdeplibs $i"
3228 # Error occurred in the first compile. Let's try to salvage
3229 # the situation: Compile a separate program for each library.
3230 for i
in $deplibs; do
3231 name
="`expr $i : '-l\(.*\)'`"
3232 # If $name is empty we are operating on a -L argument.
3233 if test "$name" != "" && test "$name" != "0"; then
3235 $LTCC -o conftest conftest.c
$i
3237 if test "$?" -eq 0 ; then
3238 ldd_output
=`ldd conftest`
3239 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3240 case " $predeps $postdeps " in
3242 newdeplibs
="$newdeplibs $i"
3247 if test -n "$i" ; then
3248 libname
=`eval \\$echo \"$libname_spec\"`
3249 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
3250 set dummy
$deplib_matches
3252 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3253 newdeplibs
="$newdeplibs $i"
3257 $echo "*** Warning: dynamic linker does not accept needed library $i."
3258 $echo "*** I have the capability to make that library automatically link in when"
3259 $echo "*** you link to this library. But I can only do this if you have a"
3260 $echo "*** shared version of the library, which you do not appear to have"
3261 $echo "*** because a test_compile did reveal that the linker did not use this one"
3262 $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3268 $echo "*** Warning! Library $i is needed by this library but I was not able to"
3269 $echo "*** make it link in! You will probably need to install it or some"
3270 $echo "*** library that it depends on before this library will be fully"
3271 $echo "*** functional. Installing it before continuing would be even better."
3274 newdeplibs
="$newdeplibs $i"
3280 set dummy
$deplibs_check_method
3281 file_magic_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3282 for a_deplib
in $deplibs; do
3283 name
="`expr $a_deplib : '-l\(.*\)'`"
3284 # If $name is empty we are operating on a -L argument.
3285 if test "$name" != "" && test "$name" != "0"; then
3286 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3287 case " $predeps $postdeps " in
3289 newdeplibs
="$newdeplibs $a_deplib"
3294 if test -n "$a_deplib" ; then
3295 libname
=`eval \\$echo \"$libname_spec\"`
3296 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3297 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
3298 for potent_lib
in $potential_libs; do
3299 # Follow soft links.
3300 if ls -lLd "$potent_lib" 2>/dev
/null \
3301 |
grep " -> " >/dev
/null
; then
3304 # The statement above tries to avoid entering an
3305 # endless loop below, in case of cyclic links.
3306 # We might still enter an endless loop, since a link
3307 # loop can be closed while we follow links,
3309 potlib
="$potent_lib"
3310 while test -h "$potlib" 2>/dev
/null
; do
3311 potliblink
=`ls -ld $potlib | ${SED} 's/.* -> //'`
3313 [\\/]* |
[A-Za-z
]:[\\/]*) potlib
="$potliblink";;
3314 *) potlib
=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3317 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null \
3319 |
$EGREP "$file_magic_regex" > /dev
/null
; then
3320 newdeplibs
="$newdeplibs $a_deplib"
3327 if test -n "$a_deplib" ; then
3330 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3331 $echo "*** I have the capability to make that library automatically link in when"
3332 $echo "*** you link to this library. But I can only do this if you have a"
3333 $echo "*** shared version of the library, which you do not appear to have"
3334 $echo "*** because I did check the linker path looking for a file starting"
3335 if test -z "$potlib" ; then
3336 $echo "*** with $libname but no candidates were found. (...for file magic test)"
3338 $echo "*** with $libname and none of the candidates passed a file format test"
3339 $echo "*** using a file magic. Last file checked: $potlib"
3343 # Add a -L argument.
3344 newdeplibs
="$newdeplibs $a_deplib"
3346 done # Gone through all deplibs.
3349 set dummy
$deplibs_check_method
3350 match_pattern_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3351 for a_deplib
in $deplibs; do
3352 name
="`expr $a_deplib : '-l\(.*\)'`"
3353 # If $name is empty we are operating on a -L argument.
3354 if test -n "$name" && test "$name" != "0"; then
3355 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3356 case " $predeps $postdeps " in
3358 newdeplibs
="$newdeplibs $a_deplib"
3363 if test -n "$a_deplib" ; then
3364 libname
=`eval \\$echo \"$libname_spec\"`
3365 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3366 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
3367 for potent_lib
in $potential_libs; do
3368 potlib
="$potent_lib" # see symlink-check above in file_magic test
3369 if eval $echo \"$potent_lib\" 2>/dev
/null \
3371 |
$EGREP "$match_pattern_regex" > /dev
/null
; then
3372 newdeplibs
="$newdeplibs $a_deplib"
3379 if test -n "$a_deplib" ; then
3382 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3383 $echo "*** I have the capability to make that library automatically link in when"
3384 $echo "*** you link to this library. But I can only do this if you have a"
3385 $echo "*** shared version of the library, which you do not appear to have"
3386 $echo "*** because I did check the linker path looking for a file starting"
3387 if test -z "$potlib" ; then
3388 $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3390 $echo "*** with $libname and none of the candidates passed a file format test"
3391 $echo "*** using a regex pattern. Last file checked: $potlib"
3395 # Add a -L argument.
3396 newdeplibs
="$newdeplibs $a_deplib"
3398 done # Gone through all deplibs.
3402 tmp_deplibs
=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3403 -e 's/ -[LR][^ ]*//g'`
3404 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3405 for i
in $predeps $postdeps ; do
3406 # can't use Xsed below, because $i might contain '/'
3407 tmp_deplibs
=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3410 if $echo "X $tmp_deplibs" |
$Xsed -e 's/[ ]//g' \
3411 |
grep .
>/dev
/null
; then
3413 if test "X$deplibs_check_method" = "Xnone"; then
3414 $echo "*** Warning: inter-library dependencies are not supported in this platform."
3416 $echo "*** Warning: inter-library dependencies are not known to be supported."
3418 $echo "*** All declared inter-library dependencies are being dropped."
3423 versuffix
=$versuffix_save
3425 release
=$release_save
3426 libname
=$libname_save
3430 *-*-rhapsody* |
*-*-darwin1.
[012])
3431 # On Rhapsody replace the C library is the System framework
3432 newdeplibs
=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3436 if test "$droppeddeps" = yes; then
3437 if test "$module" = yes; then
3439 $echo "*** Warning: libtool could not satisfy all declared inter-library"
3440 $echo "*** dependencies of module $libname. Therefore, libtool will create"
3441 $echo "*** a static module, that should work as long as the dlopening"
3442 $echo "*** application is linked with the -dlopen flag."
3443 if test -z "$global_symbol_pipe"; then
3445 $echo "*** However, this would only work if libtool was able to extract symbol"
3446 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3447 $echo "*** not find such a program. So, this module is probably useless."
3448 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3450 if test "$build_old_libs" = no
; then
3451 oldlibs
="$output_objdir/$libname.$libext"
3452 build_libtool_libs
=module
3455 build_libtool_libs
=no
3458 $echo "*** The inter-library dependencies that have been dropped here will be"
3459 $echo "*** automatically added whenever a program is linked with this library"
3460 $echo "*** or is declared to -dlopen it."
3462 if test "$allow_undefined" = no
; then
3464 $echo "*** Since this library must not contain undefined symbols,"
3465 $echo "*** because either the platform does not support them or"
3466 $echo "*** it was explicitly requested with -no-undefined,"
3467 $echo "*** libtool will only create a static version of it."
3468 if test "$build_old_libs" = no
; then
3469 oldlibs
="$output_objdir/$libname.$libext"
3470 build_libtool_libs
=module
3473 build_libtool_libs
=no
3478 # Done checking deplibs!
3482 # All the library-specific variables (install_libdir is set above).
3487 # Test again, we may have decided not to build it any more
3488 if test "$build_libtool_libs" = yes; then
3489 if test "$hardcode_into_libs" = yes; then
3490 # Hardcode the library paths
3493 rpath
="$finalize_rpath"
3494 test "$mode" != relink
&& test "$fast_install" = no
&& rpath
="$compile_rpath$rpath"
3495 for libdir
in $rpath; do
3496 if test -n "$hardcode_libdir_flag_spec"; then
3497 if test -n "$hardcode_libdir_separator"; then
3498 if test -z "$hardcode_libdirs"; then
3499 hardcode_libdirs
="$libdir"
3501 # Just accumulate the unique libdirs.
3502 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3503 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3506 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3511 eval flag
=\"$hardcode_libdir_flag_spec\"
3512 dep_rpath
="$dep_rpath $flag"
3514 elif test -n "$runpath_var"; then
3515 case "$perm_rpath " in
3517 *) perm_rpath
="$perm_rpath $libdir" ;;
3521 # Substitute the hardcoded libdirs into the rpath.
3522 if test -n "$hardcode_libdir_separator" &&
3523 test -n "$hardcode_libdirs"; then
3524 libdir
="$hardcode_libdirs"
3525 if test -n "$hardcode_libdir_flag_spec_ld"; then
3526 eval dep_rpath
=\"$hardcode_libdir_flag_spec_ld\"
3528 eval dep_rpath
=\"$hardcode_libdir_flag_spec\"
3531 if test -n "$runpath_var" && test -n "$perm_rpath"; then
3532 # We should set the runpath_var.
3534 for dir
in $perm_rpath; do
3537 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3539 test -n "$dep_rpath" && deplibs
="$dep_rpath $deplibs"
3542 shlibpath
="$finalize_shlibpath"
3543 test "$mode" != relink
&& shlibpath
="$compile_shlibpath$shlibpath"
3544 if test -n "$shlibpath"; then
3545 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3548 # Get the real and link names of the library.
3549 eval shared_ext
=\"$shrext\"
3550 eval library_names
=\"$library_names_spec\"
3551 set dummy
$library_names
3555 if test -n "$soname_spec"; then
3556 eval soname
=\"$soname_spec\"
3560 if test -z "$dlname"; then
3564 lib
="$output_objdir/$realname"
3567 linknames
="$linknames $link"
3570 # Use standard objects if they are pic
3571 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3573 # Prepare the list of exported symbols
3574 if test -z "$export_symbols"; then
3575 if test "$always_export_symbols" = yes ||
test -n "$export_symbols_regex"; then
3576 $show "generating symbol list for \`$libname.la'"
3577 export_symbols
="$output_objdir/$libname.exp"
3578 $run $rm $export_symbols
3579 eval cmds
=\"$export_symbols_cmds\"
3580 save_ifs
="$IFS"; IFS
='~'
3581 for cmd
in $cmds; do
3583 if len
=`expr "X$cmd" : ".*"` &&
3584 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
3586 $run eval "$cmd" ||
exit $?
3587 skipped_export
=false
3589 # The command line is too long to execute in one step.
3590 $show "using reloadable object file for export list..."
3595 if test -n "$export_symbols_regex"; then
3596 $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3597 $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3598 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3599 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3604 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3605 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3609 for test_deplib
in $deplibs; do
3610 case " $convenience " in
3611 *" $test_deplib "*) ;;
3613 tmp_deplibs
="$tmp_deplibs $test_deplib"
3617 deplibs
="$tmp_deplibs"
3619 if test -n "$convenience"; then
3620 if test -n "$whole_archive_flag_spec"; then
3621 save_libobjs
=$libobjs
3622 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
3624 gentop
="$output_objdir/${outputname}x"
3625 $show "${rm}r $gentop"
3626 $run ${rm}r
"$gentop"
3627 $show "$mkdir $gentop"
3628 $run $mkdir "$gentop"
3630 if test "$status" -ne 0 && test ! -d "$gentop"; then
3633 generated
="$generated $gentop"
3635 for xlib
in $convenience; do
3636 # Extract the objects.
3638 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3639 *) xabs
=`pwd`"/$xlib" ;;
3641 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3642 xdir
="$gentop/$xlib"
3644 $show "${rm}r $xdir"
3646 $show "$mkdir $xdir"
3649 if test "$status" -ne 0 && test ! -d "$xdir"; then
3652 # We will extract separately just the conflicting names and we will no
3653 # longer touch any unique names. It is faster to leave these extract
3654 # automatically by $AR in one run.
3655 $show "(cd $xdir && $AR x $xabs)"
3656 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3657 if ($AR t
"$xabs" |
sort |
sort -uc >/dev
/null
2>&1); then
3660 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
3661 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
3662 $AR t
"$xabs" |
sort |
uniq -cd |
while read -r count name
3665 while test "$i" -le "$count"
3667 # Put our $i before any first dot (extension)
3668 # Never overwrite any file
3670 while test "X$name_to" = "X$name" ||
test -f "$xdir/$name_to"
3672 name_to
=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
3674 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
3675 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" ||
exit $?
3681 libobjs
="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3686 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3687 eval flag
=\"$thread_safe_flag_spec\"
3688 linker_flags
="$linker_flags $flag"
3691 # Make a backup of the uninstalled library when relinking
3692 if test "$mode" = relink
; then
3693 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' ||
exit $?
3696 # Add all flags from the command line. We here create a library,
3697 # but those flags were only added to compile_command and
3698 # finalize_command, which are only used when creating executables.
3699 # So do it by hand here.
3700 compiler_flags
="$compiler_flags $add_flags"
3701 # Only add it to commands which use CC, instead of LD, i.e.
3702 # only to $compiler_flags
3703 #linker_flags="$linker_flags $add_flags"
3705 # Do each of the archive commands.
3706 if test "$module" = yes && test -n "$module_cmds" ; then
3707 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3708 eval cmds
=\"$module_expsym_cmds\"
3710 eval cmds
=\"$module_cmds\"
3713 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3714 eval cmds
=\"$archive_expsym_cmds\"
3716 eval cmds
=\"$archive_cmds\"
3720 if test "X$skipped_export" != "X:" && len
=`expr "X$cmds" : ".*"` &&
3721 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
3724 # The command line is too long to link in one step, link piecewise.
3725 $echo "creating reloadable object files..."
3727 # Save the value of $output and $libobjs because we want to
3728 # use them later. If we have whole_archive_flag_spec, we
3729 # want to use save_libobjs as it was before
3730 # whole_archive_flag_spec was expanded, because we can't
3731 # assume the linker understands whole_archive_flag_spec.
3732 # This may have to be revisited, in case too many
3733 # convenience libraries get linked in and end up exceeding
3735 if test -z "$convenience" ||
test -z "$whole_archive_flag_spec"; then
3736 save_libobjs
=$libobjs
3740 # Clear the reloadable object creation command queue and
3741 # initialize k to one.
3748 output
=$output_objdir/$save_output-${k}.
$objext
3749 # Loop over the list of objects to be linked.
3750 for obj
in $save_libobjs
3752 eval test_cmds
=\"$reload_cmds $objlist $last_robj\"
3753 if test "X$objlist" = X ||
3754 { len
=`expr "X$test_cmds" : ".*"` &&
3755 test "$len" -le "$max_cmd_len"; }; then
3756 objlist
="$objlist $obj"
3758 # The command $test_cmds is almost too long, add a
3759 # command to the queue.
3760 if test "$k" -eq 1 ; then
3761 # The first file doesn't have a previous command to add.
3762 eval concat_cmds
=\"$reload_cmds $objlist $last_robj\"
3764 # All subsequent reloadable object files will link in
3765 # the last one created.
3766 eval concat_cmds
=\"\
$concat_cmds~
$reload_cmds $objlist $last_robj\"
3768 last_robj
=$output_objdir/$save_output-${k}.
$objext
3770 output
=$output_objdir/$save_output-${k}.
$objext
3775 # Handle the remaining objects by creating one last
3776 # reloadable object file. All subsequent reloadable object
3777 # files will link in the last one created.
3778 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
3779 eval concat_cmds
=\"\
${concat_cmds}$reload_cmds $objlist $last_robj\"
3781 if ${skipped_export-false}; then
3782 $show "generating symbol list for \`$libname.la'"
3783 export_symbols
="$output_objdir/$libname.exp"
3784 $run $rm $export_symbols
3786 # Append the command to create the export file.
3787 eval concat_cmds
=\"\
$concat_cmds~
$export_symbols_cmds\"
3790 # Set up a command to remove the reloadale object files
3791 # after they are used.
3793 while test "$i" -lt "$k"
3796 delfiles
="$delfiles $output_objdir/$save_output-${i}.$objext"
3799 $echo "creating a temporary reloadable object file: $output"
3801 # Loop through the commands generated above and execute them.
3802 save_ifs
="$IFS"; IFS
='~'
3803 for cmd
in $concat_cmds; do
3806 $run eval "$cmd" ||
exit $?
3811 # Restore the value of output.
3814 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3815 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
3817 # Expand the library linking commands again to reset the
3818 # value of $libobjs for piecewise linking.
3820 # Do each of the archive commands.
3821 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3822 eval cmds
=\"$archive_expsym_cmds\"
3824 eval cmds
=\"$archive_cmds\"
3827 # Append the command to remove the reloadable object files
3828 # to the just-reset $cmds.
3829 eval cmds
=\"\
$cmds~
$rm $delfiles\"
3831 save_ifs
="$IFS"; IFS
='~'
3832 for cmd
in $cmds; do
3835 $run eval "$cmd" ||
exit $?
3839 # Restore the uninstalled library and exit
3840 if test "$mode" = relink
; then
3841 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' ||
exit $?
3845 # Create links to the real library.
3846 for linkname
in $linknames; do
3847 if test "$realname" != "$linkname"; then
3848 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3849 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' ||
exit $?
3853 # If -module or -export-dynamic was specified, set the dlname.
3854 if test "$module" = yes ||
test "$export_dynamic" = yes; then
3855 # On all known operating systems, these are identical.
3862 if test -n "$deplibs"; then
3863 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3866 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3867 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3870 if test -n "$rpath"; then
3871 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3874 if test -n "$xrpath"; then
3875 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3878 if test -n "$vinfo"; then
3879 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3882 if test -n "$release"; then
3883 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3888 if test -n "$objs$old_deplibs"; then
3889 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3893 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
3901 # Delete the old objects.
3902 $run $rm $obj $libobj
3904 # Objects from convenience libraries. This assumes
3905 # single-version convenience libraries. Whenever we create
3906 # different ones for PIC/non-PIC, this we'll have to duplicate
3910 # reload_cmds runs $LD directly, so let us get rid of
3911 # -Wl from whole_archive_flag_spec
3914 if test -n "$convenience"; then
3915 if test -n "$whole_archive_flag_spec"; then
3916 eval reload_conv_objs
=\"\
$reload_objs $whole_archive_flag_spec\"
3918 gentop
="$output_objdir/${obj}x"
3919 $show "${rm}r $gentop"
3920 $run ${rm}r
"$gentop"
3921 $show "$mkdir $gentop"
3922 $run $mkdir "$gentop"
3924 if test "$status" -ne 0 && test ! -d "$gentop"; then
3927 generated
="$generated $gentop"
3929 for xlib
in $convenience; do
3930 # Extract the objects.
3932 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3933 *) xabs
=`pwd`"/$xlib" ;;
3935 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3936 xdir
="$gentop/$xlib"
3938 $show "${rm}r $xdir"
3940 $show "$mkdir $xdir"
3943 if test "$status" -ne 0 && test ! -d "$xdir"; then
3946 # We will extract separately just the conflicting names and we will no
3947 # longer touch any unique names. It is faster to leave these extract
3948 # automatically by $AR in one run.
3949 $show "(cd $xdir && $AR x $xabs)"
3950 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3951 if ($AR t
"$xabs" |
sort |
sort -uc >/dev
/null
2>&1); then
3954 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
3955 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
3956 $AR t
"$xabs" |
sort |
uniq -cd |
while read -r count name
3959 while test "$i" -le "$count"
3961 # Put our $i before any first dot (extension)
3962 # Never overwrite any file
3964 while test "X$name_to" = "X$name" ||
test -f "$xdir/$name_to"
3966 name_to
=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
3968 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
3969 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" ||
exit $?
3975 reload_conv_objs
="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3980 # Create the old-style object.
3981 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
3984 eval cmds
=\"$reload_cmds\"
3985 save_ifs
="$IFS"; IFS
='~'
3986 for cmd
in $cmds; do
3989 $run eval "$cmd" ||
exit $?
3993 # Exit if we aren't doing a library object file.
3994 if test -z "$libobj"; then
3995 if test -n "$gentop"; then
3996 $show "${rm}r $gentop"
4003 if test "$build_libtool_libs" != yes; then
4004 if test -n "$gentop"; then
4005 $show "${rm}r $gentop"
4009 # Create an invalid libtool object if no PIC, so that we don't
4010 # accidentally link it into a program.
4011 # $show "echo timestamp > $libobj"
4012 # $run eval "echo timestamp > $libobj" || exit $?
4016 if test -n "$pic_flag" ||
test "$pic_mode" != default
; then
4017 # Only do commands if we really have different PIC objects.
4018 reload_objs
="$libobjs $reload_conv_objs"
4020 eval cmds
=\"$reload_cmds\"
4021 save_ifs
="$IFS"; IFS
='~'
4022 for cmd
in $cmds; do
4025 $run eval "$cmd" ||
exit $?
4030 if test -n "$gentop"; then
4031 $show "${rm}r $gentop"
4040 *cygwin
*) output
=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4042 if test -n "$vinfo"; then
4043 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4046 if test -n "$release"; then
4047 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4050 if test "$preload" = yes; then
4051 if test "$dlopen_support" = unknown
&& test "$dlopen_self" = unknown
&&
4052 test "$dlopen_self_static" = unknown
; then
4053 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4058 *-*-rhapsody* |
*-*-darwin1.
[012])
4059 # On Rhapsody replace the C library is the System framework
4060 compile_deplibs
=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4061 finalize_deplibs
=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4067 # Don't allow lazy linking, it breaks C++ global constructors
4068 if test "$tagname" = CXX
; then
4069 compile_command
="$compile_command ${wl}-bind_at_load"
4070 finalize_command
="$finalize_command ${wl}-bind_at_load"
4075 compile_command
="$compile_command $compile_deplibs"
4076 finalize_command
="$finalize_command $finalize_deplibs"
4078 if test -n "$rpath$xrpath"; then
4079 # If the user specified any rpath flags, then add them.
4080 for libdir
in $rpath $xrpath; do
4081 # This is the magic to use -rpath.
4082 case "$finalize_rpath " in
4084 *) finalize_rpath
="$finalize_rpath $libdir" ;;
4089 # Now hardcode the library paths
4092 for libdir
in $compile_rpath $finalize_rpath; do
4093 if test -n "$hardcode_libdir_flag_spec"; then
4094 if test -n "$hardcode_libdir_separator"; then
4095 if test -z "$hardcode_libdirs"; then
4096 hardcode_libdirs
="$libdir"
4098 # Just accumulate the unique libdirs.
4099 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4100 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4103 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4108 eval flag
=\"$hardcode_libdir_flag_spec\"
4109 rpath
="$rpath $flag"
4111 elif test -n "$runpath_var"; then
4112 case "$perm_rpath " in
4114 *) perm_rpath
="$perm_rpath $libdir" ;;
4118 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
4119 case :$dllsearchpath: in
4121 *) dllsearchpath
="$dllsearchpath:$libdir";;
4126 # Substitute the hardcoded libdirs into the rpath.
4127 if test -n "$hardcode_libdir_separator" &&
4128 test -n "$hardcode_libdirs"; then
4129 libdir
="$hardcode_libdirs"
4130 eval rpath
=\" $hardcode_libdir_flag_spec\"
4132 compile_rpath
="$rpath"
4136 for libdir
in $finalize_rpath; do
4137 if test -n "$hardcode_libdir_flag_spec"; then
4138 if test -n "$hardcode_libdir_separator"; then
4139 if test -z "$hardcode_libdirs"; then
4140 hardcode_libdirs
="$libdir"
4142 # Just accumulate the unique libdirs.
4143 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4144 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4147 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4152 eval flag
=\"$hardcode_libdir_flag_spec\"
4153 rpath
="$rpath $flag"
4155 elif test -n "$runpath_var"; then
4156 case "$finalize_perm_rpath " in
4158 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
4162 # Substitute the hardcoded libdirs into the rpath.
4163 if test -n "$hardcode_libdir_separator" &&
4164 test -n "$hardcode_libdirs"; then
4165 libdir
="$hardcode_libdirs"
4166 eval rpath
=\" $hardcode_libdir_flag_spec\"
4168 finalize_rpath
="$rpath"
4170 if test -n "$libobjs" && test "$build_old_libs" = yes; then
4171 # Transform all the library objects into standard objects.
4172 compile_command
=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4173 finalize_command
=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4177 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
4178 if test -n "$NM" && test -n "$global_symbol_pipe"; then
4179 dlsyms
="${outputname}S.c"
4181 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4185 if test -n "$dlsyms"; then
4189 # Discover the nlist of each of the dlfiles.
4190 nlist
="$output_objdir/${outputname}.nm"
4192 $show "$rm $nlist ${nlist}S ${nlist}T"
4193 $run $rm "$nlist" "${nlist}S" "${nlist}T"
4195 # Parse the name list into a source file.
4196 $show "creating $output_objdir/$dlsyms"
4198 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4199 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4200 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4206 /* Prevent the only kind of declaration conflicts we can make. */
4207 #define lt_preloaded_symbols some_other_symbol
4209 /* External symbol declarations for the compiler. */\
4212 if test "$dlself" = yes; then
4213 $show "generating symbol list for \`$output'"
4215 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4217 # Add our own program objects to the symbol list.
4218 progfiles
=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4219 for arg
in $progfiles; do
4220 $show "extracting global C symbols from \`$arg'"
4221 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4224 if test -n "$exclude_expsyms"; then
4225 $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4226 $run eval '$mv "$nlist"T "$nlist"'
4229 if test -n "$export_symbols_regex"; then
4230 $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4231 $run eval '$mv "$nlist"T "$nlist"'
4234 # Prepare the list of exported symbols
4235 if test -z "$export_symbols"; then
4236 export_symbols
="$output_objdir/$output.exp"
4237 $run $rm $export_symbols
4238 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4240 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
4241 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
4242 $run eval 'mv "$nlist"T "$nlist"'
4246 for arg
in $dlprefiles; do
4247 $show "extracting global C symbols from \`$arg'"
4248 name
=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4249 $run eval '$echo ": $name " >> "$nlist"'
4250 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4253 if test -z "$run"; then
4254 # Make sure we have at least an empty file.
4255 test -f "$nlist" ||
: > "$nlist"
4257 if test -n "$exclude_expsyms"; then
4258 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4259 $mv "$nlist"T
"$nlist"
4262 # Try sorting and uniquifying the output.
4263 if grep -v "^: " < "$nlist" |
4264 if sort -k 3 </dev
/null
>/dev
/null
2>&1; then
4269 uniq > "$nlist"S
; then
4272 grep -v "^: " < "$nlist" > "$nlist"S
4275 if test -f "$nlist"S
; then
4276 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4278 $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4281 $echo >> "$output_objdir/$dlsyms" "\
4283 #undef lt_preloaded_symbols
4285 #if defined (__STDC__) && __STDC__
4286 # define lt_ptr void *
4288 # define lt_ptr char *
4292 /* The mapping between symbol names and symbols. */
4297 lt_preloaded_symbols[] =
4301 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4303 $echo >> "$output_objdir/$dlsyms" "\
4307 /* This works around a problem in FreeBSD linker */
4308 #ifdef FREEBSD_WORKAROUND
4309 static const void *lt_preloaded_setup() {
4310 return lt_preloaded_symbols;
4320 pic_flag_for_symtable
=
4322 # compiling the symbol table file with pic_flag works around
4323 # a FreeBSD bug that causes programs to crash when -lm is
4324 # linked before any other PIC object. But we must not use
4325 # pic_flag when linking with -static. The problem exists in
4326 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4327 *-*-freebsd2*|
*-*-freebsd3.0
*|
*-*-freebsdelf3.0
*)
4328 case "$compile_command " in
4330 *) pic_flag_for_symtable
=" $pic_flag -DFREEBSD_WORKAROUND";;
4333 case "$compile_command " in
4335 *) pic_flag_for_symtable
=" $pic_flag";;
4339 # Now compile the dynamic symbol file.
4340 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4341 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' ||
exit $?
4343 # Clean up the generated files.
4344 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4345 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4347 # Transform the symbol file into the correct name.
4348 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4349 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4352 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4357 # We keep going just in case the user didn't refer to
4358 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
4359 # really was required.
4361 # Nullify the symbol file.
4362 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4363 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4366 # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
4367 # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
4368 # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
4369 # This does not apply on AIX for ia64, which uses a SysV linker.
4372 *-*-aix4* |
*-*-aix5*)
4373 compile_command
=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
4374 finalize_command
=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
4377 if test "$need_relink" = no ||
test "$build_libtool_libs" != yes; then
4378 # Replace the output file specification.
4379 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4380 link_command
="$compile_command$compile_rpath"
4382 # We have no uninstalled library dependencies, so finalize right now.
4383 $show "$link_command"
4384 $run eval "$link_command"
4387 # Delete the generated files.
4388 if test -n "$dlsyms"; then
4389 $show "$rm $output_objdir/${outputname}S.${objext}"
4390 $run $rm "$output_objdir/${outputname}S.${objext}"
4396 if test -n "$shlibpath_var"; then
4397 # We should set the shlibpath_var
4399 for dir
in $temp_rpath; do
4401 [\\/]* |
[A-Za-z
]:[\\/]*)
4406 # Relative path: add a thisdir entry.
4407 rpath
="$rpath\$thisdir/$dir:"
4414 if test -n "$compile_shlibpath$finalize_shlibpath"; then
4415 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4417 if test -n "$finalize_shlibpath"; then
4418 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4423 if test -n "$runpath_var"; then
4424 if test -n "$perm_rpath"; then
4425 # We should set the runpath_var.
4427 for dir
in $perm_rpath; do
4430 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
4432 if test -n "$finalize_perm_rpath"; then
4433 # We should set the runpath_var.
4435 for dir
in $finalize_perm_rpath; do
4438 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
4442 if test "$no_install" = yes; then
4443 # We don't need to create a wrapper script.
4444 link_command
="$compile_var$compile_command$compile_rpath"
4445 # Replace the output file specification.
4446 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4447 # Delete the old output file.
4449 # Link the executable and exit
4450 $show "$link_command"
4451 $run eval "$link_command" ||
exit $?
4455 if test "$hardcode_action" = relink
; then
4456 # Fast installation is not supported
4457 link_command
="$compile_var$compile_command$compile_rpath"
4458 relink_command
="$finalize_var$finalize_command$finalize_rpath"
4460 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4461 $echo "$modename: \`$output' will be relinked during installation" 1>&2
4463 if test "$fast_install" != no
; then
4464 link_command
="$finalize_var$compile_command$finalize_rpath"
4465 if test "$fast_install" = yes; then
4466 relink_command
=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4468 # fast_install is set to needless
4472 link_command
="$compile_var$compile_command$compile_rpath"
4473 relink_command
="$finalize_var$finalize_command$finalize_rpath"
4477 # Replace the output file specification.
4478 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4480 # Delete the old output files.
4481 $run $rm $output $output_objdir/$outputname $output_objdir/lt-
$outputname
4483 $show "$link_command"
4484 $run eval "$link_command" ||
exit $?
4486 # Now create the wrapper script.
4487 $show "creating $output"
4489 # Quote the relink command for shipping.
4490 if test -n "$relink_command"; then
4491 # Preserve any variables that may affect compiler behavior
4492 for var
in $variables_saved_for_relink; do
4493 if eval test -z \"\
${$var+set}\"; then
4494 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4495 elif eval var_value
=\$
$var; test -z "$var_value"; then
4496 relink_command
="$var=; export $var; $relink_command"
4498 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4499 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
4502 relink_command
="(cd `pwd`; $relink_command)"
4503 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4506 # Quote $echo for shipping.
4507 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
4509 [\\/]* |
[A-Za-z
]:[\\/]*) qecho
="$SHELL $0 --fallback-echo";;
4510 *) qecho
="$SHELL `pwd`/$0 --fallback-echo";;
4512 qecho
=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4514 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4517 # Only actually do things if our run command is non-null.
4518 if test -z "$run"; then
4519 # win32 will think the script is a binary if it has
4520 # a .exe suffix, so we strip it off here.
4522 *.exe
) output
=`$echo $output|${SED} 's,.exe$,,'` ;;
4524 # test for cygwin because mv fails w/o .exe extensions
4528 outputname
=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4532 *cygwin
* |
*mingw
* )
4533 cwrappersource
=`$echo ${objdir}/lt-${output}.c`
4534 cwrapper
=`$echo ${output}.exe`
4535 $rm $cwrappersource $cwrapper
4536 trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
4538 cat > $cwrappersource <<EOF
4540 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4541 Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4543 The $output program cannot be directly executed until all the libtool
4544 libraries that it depends on are installed.
4546 This wrapper executable should never be moved out of the build directory.
4547 If it is, it will not operate correctly.
4549 Currently, it simply execs the wrapper *script* "/bin/sh $output",
4550 but could eventually absorb all of the scripts functionality and
4551 exec $objdir/$outputname directly.
4554 cat >> $cwrappersource<<"EOF"
4562 #if defined(PATH_MAX)
4563 # define LT_PATHMAX PATH_MAX
4564 #elif defined(MAXPATHLEN)
4565 # define LT_PATHMAX MAXPATHLEN
4567 # define LT_PATHMAX 1024
4570 #ifndef DIR_SEPARATOR
4571 #define DIR_SEPARATOR '/'
4574 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4576 #define HAVE_DOS_BASED_FILE_SYSTEM
4577 #ifndef DIR_SEPARATOR_2
4578 #define DIR_SEPARATOR_2 '\\'
4582 #ifndef DIR_SEPARATOR_2
4583 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4584 #else /* DIR_SEPARATOR_2 */
4585 # define IS_DIR_SEPARATOR(ch) \
4586 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4587 #endif /* DIR_SEPARATOR_2 */
4589 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4590 #define XFREE(stale) do { \
4591 if (stale) { free ((void *) stale); stale = 0; } \
4594 const char *program_name = NULL;
4596 void * xmalloc (size_t num);
4597 char * xstrdup (const char *string);
4598 char * basename (const char *name);
4599 char * fnqualify(const char *path);
4600 char * strendzap(char *str, const char *pat);
4601 void lt_fatal (const char *message, ...);
4604 main (int argc, char *argv[])
4609 program_name = (char *) xstrdup ((char *) basename (argv[0]));
4610 newargz = XMALLOC(char *, argc+2);
4613 cat >> $cwrappersource <<EOF
4614 newargz[0] = "$SHELL";
4617 cat >> $cwrappersource <<"EOF"
4618 newargz
[1] = fnqualify
(argv
[0]);
4619 /* we know the
script has the same name
, without the .exe
*/
4620 /* so
make sure newargz
[1] doesn
't end in .exe */
4621 strendzap(newargz[1],".exe");
4622 for (i = 1; i < argc; i++)
4623 newargz[i+1] = xstrdup(argv[i]);
4624 newargz[argc+1] = NULL;
4627 cat >> $cwrappersource <<EOF
4628 execv("$SHELL",newargz);
4631 cat >> $cwrappersource <<"EOF"
4635 xmalloc (size_t num)
4637 void * p = (void *) malloc (num);
4639 lt_fatal ("Memory exhausted");
4645 xstrdup (const char *string)
4647 return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
4652 basename (const char *name)
4656 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4657 /* Skip over the disk name in MSDOS pathnames. */
4658 if (isalpha (name[0]) && name[1] == ':')
4662 for (base = name; *name; name++)
4663 if (IS_DIR_SEPARATOR (*name))
4665 return (char *) base;
4669 fnqualify(const char *path)
4673 char tmp[LT_PATHMAX + 1];
4675 assert(path != NULL);
4677 /* Is it qualified already? */
4678 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4679 if (isalpha (path[0]) && path[1] == ':')
4680 return xstrdup (path);
4682 if (IS_DIR_SEPARATOR (path[0]))
4683 return xstrdup (path);
4685 /* prepend the current directory */
4686 /* doesn't handle
'~' */
4687 if (getcwd
(tmp
, LT_PATHMAX
) == NULL
)
4688 lt_fatal
("getcwd failed");
4689 size
= strlen
(tmp
) + 1 + strlen
(path
) + 1; /* +2 for '/' and
'\0' */
4690 p
= XMALLOC
(char
, size
);
4691 sprintf
(p
, "%s%c%s", tmp
, DIR_SEPARATOR
, path
);
4696 strendzap
(char
*str
, const char
*pat
)
4700 assert
(str
!= NULL
);
4701 assert
(pat
!= NULL
);
4704 patlen
= strlen
(pat
);
4708 str
+= len
- patlen
;
4709 if (strcmp
(str
, pat
) == 0)
4716 lt_error_core
(int exit_status
, const char
* mode
,
4717 const char
* message
, va_list ap
)
4719 fprintf
(stderr
, "%s: %s: ", program_name
, mode
);
4720 vfprintf
(stderr
, message
, ap
);
4721 fprintf
(stderr
, ".\n");
4723 if (exit_status
>= 0)
4728 lt_fatal
(const char
*message
, ...
)
4731 va_start
(ap
, message
);
4732 lt_error_core
(EXIT_FAILURE
, "FATAL", message
, ap
);
4736 # we should really use a build-platform specific compiler
4737 # here, but OTOH, the wrappers (shell script and this C one)
4738 # are only useful if you want to execute the "real" binary.
4739 # Since the "real" binary is built for $host, then this
4740 # wrapper might as well be built for $host, too.
4741 $run $LTCC -s -o $cwrapper $cwrappersource
4745 trap "$rm $output; exit 1" 1 2 15
4750 # $output - temporary wrapper script for $objdir/$outputname
4751 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4753 # The $output program cannot be directly executed until all the libtool
4754 # libraries that it depends on are installed.
4756 # This wrapper script should never be moved out of the build directory.
4757 # If it is, it will not operate correctly.
4759 # Sed substitution that helps us do robust quoting. It backslashifies
4760 # metacharacters that are still active within double-quoted strings.
4761 Xsed='${SED} -e 1s/^X//'
4762 sed_quote_subst='$sed_quote_subst'
4764 # The HP-UX ksh and POSIX shell print the target directory to stdout
4766 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
4768 relink_command=\"$relink_command\"
4770 # This environment variable determines our operation mode.
4771 if test \"\$libtool_install_magic\" = \"$magic\"; then
4772 # install mode needs the following variable:
4773 notinst_deplibs='$notinst_deplibs'
4775 # When we are sourced in execute mode, \$file and \$echo are already set.
4776 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4779 # Make sure echo works.
4780 if test \"X\$1\" = X--no-reexec; then
4781 # Discard the --no-reexec flag, and continue.
4783 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
4784 # Yippee, \$echo works!
4787 # Restart under the correct shell, and then maybe \$echo will work.
4788 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
4794 # Find the directory that this script lives in.
4795 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
4796 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4798 # Follow symbolic links until we get to the real thisdir.
4799 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4800 while test -n \"\$file\"; do
4801 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4803 # If there was a directory component, then change thisdir.
4804 if test \"x\$destdir\" != \"x\$file\"; then
4805 case \"\$destdir\" in
4806 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4807 *) thisdir=\"\$thisdir/\$destdir\" ;;
4811 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4812 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4815 # Try to get the absolute directory name.
4816 absdir=\`cd \"\$thisdir\" && pwd\`
4817 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4820 if test "$fast_install" = yes; then
4822 program=lt-'$outputname'$exeext
4823 progdir=\"\$thisdir/$objdir\"
4825 if test ! -f \"\$progdir/\$program\" || \\
4826 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4827 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4829 file=\"\$\$-\$program\"
4831 if test ! -d \"\$progdir\"; then
4832 $mkdir \"\$progdir\"
4834 $rm \"\$progdir/\$file\"
4839 # relink executable if necessary
4840 if test -n \"\$relink_command\"; then
4841 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4843 $echo \"\$relink_command_output\" >&2
4844 $rm \"\$progdir/\$file\"
4849 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4850 { $rm \"\$progdir/\$program\";
4851 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4852 $rm \"\$progdir/\$file\"
4856 program='$outputname'
4857 progdir=\"\$thisdir/$objdir\"
4863 if test -f \"\$progdir/\$program\"; then"
4865 # Export our shlibpath_var if we have one.
4866 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4868 # Add our own library path to $shlibpath_var
4869 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4871 # Some systems cannot cope with colon-terminated $shlibpath_var
4872 # The second colon is a workaround for a bug in BeOS R4 sed
4873 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4875 export $shlibpath_var
4879 # fixup the dll searchpath if we need to.
4880 if test -n "$dllsearchpath"; then
4882 # Add the dll search path components to the executable PATH
4883 PATH=$dllsearchpath:\$PATH
4888 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4889 # Run the actual program with our arguments.
4892 # Backslashes separate directories on plain windows
4893 *-*-mingw |
*-*-os2*)
4895 exec \$progdir\\\\\$program \${1+\"\$@\"}
4901 exec \$progdir/\$program \${1+\"\$@\"}
4906 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4910 # The program doesn't exist.
4911 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4912 \$echo \"This script is just a wrapper for \$program.\" 1>&2
4913 $echo \"See the $PACKAGE documentation for more information.\" 1>&2
4924 # See if we need to build an old-fashioned archive.
4925 for oldlib
in $oldlibs; do
4927 if test "$build_libtool_libs" = convenience
; then
4928 oldobjs
="$libobjs_save"
4929 addlibs
="$convenience"
4930 build_libtool_libs
=no
4932 if test "$build_libtool_libs" = module
; then
4933 oldobjs
="$libobjs_save"
4934 build_libtool_libs
=no
4936 oldobjs
="$old_deplibs $non_pic_objects"
4938 addlibs
="$old_convenience"
4941 if test -n "$addlibs"; then
4942 gentop
="$output_objdir/${outputname}x"
4943 $show "${rm}r $gentop"
4944 $run ${rm}r
"$gentop"
4945 $show "$mkdir $gentop"
4946 $run $mkdir "$gentop"
4948 if test "$status" -ne 0 && test ! -d "$gentop"; then
4951 generated
="$generated $gentop"
4953 # Add in members from convenience archives.
4954 for xlib
in $addlibs; do
4955 # Extract the objects.
4957 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
4958 *) xabs
=`pwd`"/$xlib" ;;
4960 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
4961 xdir
="$gentop/$xlib"
4963 $show "${rm}r $xdir"
4965 $show "$mkdir $xdir"
4968 if test "$status" -ne 0 && test ! -d "$xdir"; then
4971 # We will extract separately just the conflicting names and we will no
4972 # longer touch any unique names. It is faster to leave these extract
4973 # automatically by $AR in one run.
4974 $show "(cd $xdir && $AR x $xabs)"
4975 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
4976 if ($AR t
"$xabs" |
sort |
sort -uc >/dev
/null
2>&1); then
4979 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
4980 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
4981 $AR t
"$xabs" |
sort |
uniq -cd |
while read -r count name
4984 while test "$i" -le "$count"
4986 # Put our $i before any first dot (extension)
4987 # Never overwrite any file
4989 while test "X$name_to" = "X$name" ||
test -f "$xdir/$name_to"
4991 name_to
=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
4993 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
4994 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" ||
exit $?
5000 oldobjs
="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
5004 compiler_flags
="$compiler_flags $add_flags"
5006 # Do each command in the archive commands.
5007 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5008 eval cmds
=\"$old_archive_from_new_cmds\"
5010 eval cmds
=\"$old_archive_cmds\"
5012 if len
=`expr "X$cmds" : ".*"` &&
5013 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
5016 # the command line is too long to link in one step, link in parts
5017 $echo "using piecewise archive linking..."
5022 save_oldobjs
=$oldobjs
5023 # GNU ar 2.10+ was changed to match POSIX; thus no paths are
5024 # encoded into archives. This makes 'ar r' malfunction in
5025 # this piecewise linking case whenever conflicting object
5026 # names appear in distinct ar calls; check, warn and compensate.
5027 if (for obj
in $save_oldobjs
5029 $echo "X$obj" |
$Xsed -e 's%^.*/%%'
5030 done |
sort |
sort -uc >/dev
/null
2>&1); then
5033 $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
5034 $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
5037 # Is there a better way of finding the last object in the list?
5038 for obj
in $save_oldobjs
5042 for obj
in $save_oldobjs
5044 oldobjs
="$objlist $obj"
5045 objlist
="$objlist $obj"
5046 eval test_cmds
=\"$old_archive_cmds\"
5047 if len
=`expr "X$test_cmds" : ".*"` &&
5048 test "$len" -le "$max_cmd_len"; then
5051 # the above command should be used before it gets too long
5053 if test "$obj" = "$last_oldobj" ; then
5056 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
5057 eval concat_cmds
=\"\
${concat_cmds}$old_archive_cmds\"
5063 if test "X$oldobjs" = "X" ; then
5064 eval cmds
=\"\
$concat_cmds\"
5066 eval cmds
=\"\
$concat_cmds~
$old_archive_cmds\"
5070 save_ifs
="$IFS"; IFS
='~'
5071 for cmd
in $cmds; do
5074 $run eval "$cmd" ||
exit $?
5079 if test -n "$generated"; then
5080 $show "${rm}r$generated"
5081 $run ${rm}r
$generated
5084 # Now create the libtool archive.
5088 test "$build_old_libs" = yes && old_library
="$libname.$libext"
5089 $show "creating $output"
5091 # Preserve any variables that may affect compiler behavior
5092 for var
in $variables_saved_for_relink; do
5093 if eval test -z \"\
${$var+set}\"; then
5094 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5095 elif eval var_value
=\$
$var; test -z "$var_value"; then
5096 relink_command
="$var=; export $var; $relink_command"
5098 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5099 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
5102 # Quote the link command for shipping.
5103 relink_command
="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
5104 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5105 if test "$hardcode_automatic" = yes ; then
5108 # Only create the output if not a dry run.
5109 if test -z "$run"; then
5110 for installed
in no
yes; do
5111 if test "$installed" = yes; then
5112 if test -z "$install_libdir"; then
5115 output
="$output_objdir/$outputname"i
5116 # Replace all uninstalled libtool libraries with the installed ones
5118 for deplib
in $dependency_libs; do
5121 name
=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5122 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5123 if test -z "$libdir"; then
5124 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5127 newdependency_libs
="$newdependency_libs $libdir/$name"
5129 *) newdependency_libs
="$newdependency_libs $deplib" ;;
5132 dependency_libs
="$newdependency_libs"
5134 for lib
in $dlfiles; do
5135 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5136 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5137 if test -z "$libdir"; then
5138 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5141 newdlfiles
="$newdlfiles $libdir/$name"
5143 dlfiles
="$newdlfiles"
5145 for lib
in $dlprefiles; do
5146 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5147 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5148 if test -z "$libdir"; then
5149 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5152 newdlprefiles
="$newdlprefiles $libdir/$name"
5154 dlprefiles
="$newdlprefiles"
5157 # place dlname in correct position for cygwin
5159 case $host,$output,$installed,$module,$dlname in
5160 *cygwin
*,*lai
,yes,no
,*.dll |
*mingw
*,*lai
,yes,no
,*.dll
) tdlname
=..
/bin
/$dlname ;;
5163 # $outputname - a libtool library file
5164 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5166 # Please DO NOT delete this file!
5167 # It is necessary for linking the library.
5169 # The name that we can dlopen(3).
5172 # Names of this library.
5173 library_names='$library_names'
5175 # The name of the static archive.
5176 old_library='$old_library'
5178 # Libraries that this one depends upon.
5179 dependency_libs='$dependency_libs'
5181 # Version information for $libname.
5186 # Is this an already installed library?
5187 installed=$installed
5189 # Should we warn about portability when linking against -modules?
5190 shouldnotlink=$module
5192 # Files to dlopen/dlpreopen
5194 dlpreopen='$dlprefiles'
5196 # Directory that this library needs to be installed in:
5197 libdir='$install_libdir'"
5198 if test "$installed" = no
&& test "$need_relink" = yes && test "$fast_install" = no
; then
5200 relink_command=\"$relink_command\""
5205 # Do a symbolic link so that the libtool archive can be found in
5206 # LD_LIBRARY_PATH before the program is installed.
5207 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5208 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' ||
exit $?
5214 # libtool install mode
5216 modename
="$modename: install"
5218 # There may be an optional sh(1) argument at the beginning of
5219 # install_prog (especially on Windows NT).
5220 if test "$nonopt" = "$SHELL" ||
test "$nonopt" = /bin
/sh ||
5221 # Allow the use of GNU shtool's install command.
5222 $echo "X$nonopt" |
$Xsed |
grep shtool
> /dev
/null
; then
5223 # Aesthetically quote it.
5224 arg
=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5226 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5230 install_prog
="$arg "
5238 # The real first argument should be the name of the installation program.
5239 # Aesthetically quote it.
5240 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5242 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5246 install_prog
="$install_prog$arg"
5248 # We need to accept at least all the BSD install flags.
5258 if test -n "$dest"; then
5259 files
="$files $dest"
5277 # If the previous option needed an argument, then skip it.
5278 if test -n "$prev"; then
5287 # Aesthetically quote the argument.
5288 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5290 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5294 install_prog
="$install_prog $arg"
5297 if test -z "$install_prog"; then
5298 $echo "$modename: you must specify an install program" 1>&2
5303 if test -n "$prev"; then
5304 $echo "$modename: the \`$prev' option requires an argument" 1>&2
5309 if test -z "$files"; then
5310 if test -z "$dest"; then
5311 $echo "$modename: no file or destination specified" 1>&2
5313 $echo "$modename: you must specify a destination" 1>&2
5319 # Strip any trailing slash from the destination.
5320 dest
=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5322 # Check to see that the destination is a directory.
5323 test -d "$dest" && isdir
=yes
5324 if test "$isdir" = yes; then
5328 destdir
=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5329 test "X$destdir" = "X$dest" && destdir
=.
5330 destname
=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5332 # Not a directory, so check to see that there is only one file specified.
5334 if test "$#" -gt 2; then
5335 $echo "$modename: \`$dest' is not a directory" 1>&2
5341 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
5343 for file in $files; do
5347 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5356 # This variable tells wrapper scripts just to set variables rather
5357 # than running their programs.
5358 libtool_install_magic
="$magic"
5363 for file in $files; do
5365 # Do each installation.
5368 # Do the static libraries later.
5369 staticlibs
="$staticlibs $file"
5373 # Check to see that this really is a libtool archive.
5374 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
5376 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5384 # If there is no directory component, then add one.
5386 */* |
*\\*) .
$file ;;
5390 # Add the libdir to current_libdirs if it is the destination.
5391 if test "X$destdir" = "X$libdir"; then
5392 case "$current_libdirs " in
5394 *) current_libdirs
="$current_libdirs $libdir" ;;
5397 # Note the libdir as a future libdir.
5398 case "$future_libdirs " in
5400 *) future_libdirs
="$future_libdirs $libdir" ;;
5404 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5405 test "X$dir" = "X$file/" && dir
=
5408 if test -n "$relink_command"; then
5409 # Determine the prefix the user has applied to our future dir.
5410 inst_prefix_dir
=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5412 # Don't allow the user to place us outside of our expected
5413 # location b/c this prevents finding dependent libraries that
5414 # are installed to the same prefix.
5415 # At present, this check doesn't affect windows .dll's that
5416 # are installed into $libdir/../bin (currently, that works fine)
5417 # but it's something to keep an eye on.
5418 if test "$inst_prefix_dir" = "$destdir"; then
5419 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5423 if test -n "$inst_prefix_dir"; then
5424 # Stick the inst_prefix_dir data into the link command.
5425 relink_command
=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5427 relink_command
=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5430 $echo "$modename: warning: relinking \`$file'" 1>&2
5431 $show "$relink_command"
5432 if $run eval "$relink_command"; then :
5434 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5439 # See the names of the shared library.
5440 set dummy
$library_names
5441 if test -n "$2"; then
5447 test -n "$relink_command" && srcname
="$realname"T
5449 # Install the shared library and build the symlinks.
5450 $show "$install_prog $dir/$srcname $destdir/$realname"
5451 $run eval "$install_prog $dir/$srcname $destdir/$realname" ||
exit $?
5452 if test -n "$stripme" && test -n "$striplib"; then
5453 $show "$striplib $destdir/$realname"
5454 $run eval "$striplib $destdir/$realname" ||
exit $?
5457 if test "$#" -gt 0; then
5458 # Delete the old symlinks, and create new ones.
5461 if test "$linkname" != "$realname"; then
5462 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5463 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5468 # Do each command in the postinstall commands.
5469 lib
="$destdir/$realname"
5470 eval cmds
=\"$postinstall_cmds\"
5471 save_ifs
="$IFS"; IFS
='~'
5472 for cmd
in $cmds; do
5475 $run eval "$cmd" ||
exit $?
5480 # Install the pseudo-library for information purposes.
5481 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5482 instname
="$dir/$name"i
5483 $show "$install_prog $instname $destdir/$name"
5484 $run eval "$install_prog $instname $destdir/$name" ||
exit $?
5486 # Maybe install the static library, too.
5487 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
5491 # Install (i.e. copy) a libtool object.
5493 # Figure out destination file name, if it wasn't already specified.
5494 if test -n "$destname"; then
5495 destfile
="$destdir/$destname"
5497 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5498 destfile
="$destdir/$destfile"
5501 # Deduce the name of the destination old-style object file.
5504 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
5507 staticdest
="$destfile"
5511 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
5517 # Install the libtool object if requested.
5518 if test -n "$destfile"; then
5519 $show "$install_prog $file $destfile"
5520 $run eval "$install_prog $file $destfile" ||
exit $?
5523 # Install the old object if enabled.
5524 if test "$build_old_libs" = yes; then
5525 # Deduce the name of the old-style object file.
5526 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
5528 $show "$install_prog $staticobj $staticdest"
5529 $run eval "$install_prog \$staticobj \$staticdest" ||
exit $?
5535 # Figure out destination file name, if it wasn't already specified.
5536 if test -n "$destname"; then
5537 destfile
="$destdir/$destname"
5539 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5540 destfile
="$destdir/$destfile"
5543 # If the file is missing, and there is a .exe on the end, strip it
5544 # because it is most likely a libtool script we actually want to
5549 if test ! -f "$file"; then
5550 file=`$echo $file|${SED} 's,.exe$,,'`
5556 # Do a test to see if this is really a libtool program.
5559 wrapper
=`$echo $file | ${SED} -e 's,.exe$,,'`
5565 if (${SED} -e '4q' $wrapper |
grep "^# Generated by .*$PACKAGE")>/dev
/null
2>&1; then
5569 # To insure that "foo" is sourced, and not "foo.exe",
5570 # finese the cygwin/MSYS system by explicitly sourcing "foo."
5571 # which disallows the automatic-append-.exe behavior.
5573 *cygwin
* |
*mingw
*) wrapperdot
=${wrapper}.
;;
5574 *) wrapperdot
=${wrapper} ;;
5576 # If there is no directory component, then add one.
5578 */* |
*\\*) .
${wrapperdot} ;;
5579 *) . .
/${wrapperdot} ;;
5582 # Check the variables that should have been set.
5583 if test -z "$notinst_deplibs"; then
5584 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
5589 for lib
in $notinst_deplibs; do
5590 # Check to see that each library is installed.
5592 if test -f "$lib"; then
5593 # If there is no directory component, then add one.
5595 */* |
*\\*) .
$lib ;;
5599 libfile
="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
5600 if test -n "$libdir" && test ! -f "$libfile"; then
5601 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
5607 # To insure that "foo" is sourced, and not "foo.exe",
5608 # finese the cygwin/MSYS system by explicitly sourcing "foo."
5609 # which disallows the automatic-append-.exe behavior.
5611 *cygwin
* |
*mingw
*) wrapperdot
=${wrapper}.
;;
5612 *) wrapperdot
=${wrapper} ;;
5614 # If there is no directory component, then add one.
5616 */* |
*\\*) .
${wrapperdot} ;;
5617 *) . .
/${wrapperdot} ;;
5621 if test "$fast_install" = no
&& test -n "$relink_command"; then
5622 if test "$finalize" = yes && test -z "$run"; then
5624 test -n "$TMPDIR" && tmpdir
="$TMPDIR"
5625 tmpdir
="$tmpdir/libtool-$$"
5626 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
5628 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
5631 file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
5632 outputname
="$tmpdir/$file"
5633 # Replace the output file specification.
5634 relink_command
=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
5636 $show "$relink_command"
5637 if $run eval "$relink_command"; then :
5639 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5645 $echo "$modename: warning: cannot relink \`$file'" 1>&2
5648 # Install the binary that we compiled earlier.
5649 file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
5653 # remove .exe since cygwin /usr/bin/install will append another
5655 case $install_prog,$host in
5656 */usr
/bin
/install*,*cygwin
*)
5657 case $file:$destfile in
5662 destfile
=$destfile.exe
5665 destfile
=`$echo $destfile | ${SED} -e 's,.exe$,,'`
5670 $show "$install_prog$stripme $file $destfile"
5671 $run eval "$install_prog\$stripme \$file \$destfile" ||
exit $?
5672 test -n "$outputname" && ${rm}r
"$tmpdir"
5677 for file in $staticlibs; do
5678 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5680 # Set up the ranlib parameters.
5681 oldlib
="$destdir/$name"
5683 $show "$install_prog $file $oldlib"
5684 $run eval "$install_prog \$file \$oldlib" ||
exit $?
5686 if test -n "$stripme" && test -n "$striplib"; then
5687 $show "$old_striplib $oldlib"
5688 $run eval "$old_striplib $oldlib" ||
exit $?
5691 # Do each command in the postinstall commands.
5692 eval cmds
=\"$old_postinstall_cmds\"
5693 save_ifs
="$IFS"; IFS
='~'
5694 for cmd
in $cmds; do
5697 $run eval "$cmd" ||
exit $?
5702 if test -n "$future_libdirs"; then
5703 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
5706 if test -n "$current_libdirs"; then
5707 # Maybe just do a dry run.
5708 test -n "$run" && current_libdirs
=" -n$current_libdirs"
5709 exec_cmd
='$SHELL $0 --finish$current_libdirs'
5715 # libtool finish mode
5717 modename
="$modename: finish"
5721 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
5724 libdirs
="$libdirs $dir"
5727 for libdir
in $libdirs; do
5728 if test -n "$finish_cmds"; then
5729 # Do each command in the finish commands.
5730 eval cmds
=\"$finish_cmds\"
5731 save_ifs
="$IFS"; IFS
='~'
5732 for cmd
in $cmds; do
5735 $run eval "$cmd" || admincmds
="$admincmds
5740 if test -n "$finish_eval"; then
5741 # Do the single finish_eval.
5742 eval cmds
=\"$finish_eval\"
5743 $run eval "$cmds" || admincmds
="$admincmds
5749 # Exit here if they wanted silent mode.
5752 $echo "----------------------------------------------------------------------"
5753 $echo "Libraries have been installed in:"
5754 for libdir
in $libdirs; do
5758 $echo "If you ever happen to want to link against installed libraries"
5759 $echo "in a given directory, LIBDIR, you must either use libtool, and"
5760 $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
5761 $echo "flag during linking and do at least one of the following:"
5762 if test -n "$shlibpath_var"; then
5763 $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
5764 $echo " during execution"
5766 if test -n "$runpath_var"; then
5767 $echo " - add LIBDIR to the \`$runpath_var' environment variable"
5768 $echo " during linking"
5770 if test -n "$hardcode_libdir_flag_spec"; then
5772 eval flag
=\"$hardcode_libdir_flag_spec\"
5774 $echo " - use the \`$flag' linker flag"
5776 if test -n "$admincmds"; then
5777 $echo " - have your system administrator run these commands:$admincmds"
5779 if test -f /etc
/ld.so.conf
; then
5780 $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
5783 $echo "See any operating system documentation about shared libraries for"
5784 $echo "more information, such as the ld(1) and ld.so(8) manual pages."
5785 $echo "----------------------------------------------------------------------"
5789 # libtool execute mode
5791 modename
="$modename: execute"
5793 # The first argument is the command name.
5795 if test -z "$cmd"; then
5796 $echo "$modename: you must specify a COMMAND" 1>&2
5801 # Handle -dlopen flags immediately.
5802 for file in $execute_dlfiles; do
5803 if test ! -f "$file"; then
5804 $echo "$modename: \`$file' is not a file" 1>&2
5812 # Check to see that this really is a libtool archive.
5813 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
5815 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5820 # Read the libtool library.
5824 # If there is no directory component, then add one.
5826 */* |
*\\*) .
$file ;;
5830 # Skip this library if it cannot be dlopened.
5831 if test -z "$dlname"; then
5832 # Warn if it was a shared library.
5833 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
5837 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5838 test "X$dir" = "X$file" && dir
=.
5840 if test -f "$dir/$objdir/$dlname"; then
5843 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
5849 # Just add the directory containing the .lo file.
5850 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5851 test "X$dir" = "X$file" && dir
=.
5855 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
5860 # Get the absolute pathname.
5861 absdir
=`cd "$dir" && pwd`
5862 test -n "$absdir" && dir
="$absdir"
5864 # Now add the directory to shlibpath_var.
5865 if eval "test -z \"\$$shlibpath_var\""; then
5866 eval "$shlibpath_var=\"\$dir\""
5868 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
5872 # This variable tells wrapper scripts just to set shlibpath_var
5873 # rather than running their programs.
5874 libtool_execute_magic
="$magic"
5876 # Check if any of the arguments is a wrapper script.
5883 # Do a test to see if this is really a libtool program.
5884 if (${SED} -e '4q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
5885 # If there is no directory component, then add one.
5887 */* |
*\\*) .
$file ;;
5891 # Transform arg to wrapped name.
5892 file="$progdir/$program"
5896 # Quote arguments (to preserve shell metacharacters).
5897 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5898 args
="$args \"$file\""
5901 if test -z "$run"; then
5902 if test -n "$shlibpath_var"; then
5903 # Export the shlibpath_var.
5904 eval "export $shlibpath_var"
5907 # Restore saved environment variables
5908 if test "${save_LC_ALL+set}" = set; then
5909 LC_ALL
="$save_LC_ALL"; export LC_ALL
5911 if test "${save_LANG+set}" = set; then
5912 LANG
="$save_LANG"; export LANG
5915 # Now prepare to actually exec the command.
5916 exec_cmd
="\$cmd$args"
5918 # Display what would be done.
5919 if test -n "$shlibpath_var"; then
5920 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5921 $echo "export $shlibpath_var"
5928 # libtool clean and uninstall mode
5930 modename
="$modename: $mode"
5936 # This variable tells wrapper scripts just to set variables rather
5937 # than running their programs.
5938 libtool_install_magic
="$magic"
5943 -f) rm="$rm $arg"; rmforce
=yes ;;
5944 -*) rm="$rm $arg" ;;
5945 *) files
="$files $arg" ;;
5949 if test -z "$rm"; then
5950 $echo "$modename: you must specify an RM program" 1>&2
5957 origobjdir
="$objdir"
5958 for file in $files; do
5959 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5960 if test "X$dir" = "X$file"; then
5962 objdir
="$origobjdir"
5964 objdir
="$dir/$origobjdir"
5966 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5967 test "$mode" = uninstall
&& objdir
="$dir"
5969 # Remember objdir for removal later, being careful to avoid duplicates
5970 if test "$mode" = clean
; then
5973 *) rmdirs
="$rmdirs $objdir" ;;
5977 # Don't error if the file doesn't exist and rm -f was used.
5978 if (test -L "$file") >/dev
/null
2>&1 \
5979 ||
(test -h "$file") >/dev
/null
2>&1 \
5980 ||
test -f "$file"; then
5982 elif test -d "$file"; then
5985 elif test "$rmforce" = yes; then
5993 # Possibly a libtool archive, so verify it.
5994 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
5997 # Delete the libtool libraries and symlinks.
5998 for n
in $library_names; do
5999 rmfiles
="$rmfiles $objdir/$n"
6001 test -n "$old_library" && rmfiles
="$rmfiles $objdir/$old_library"
6002 test "$mode" = clean
&& rmfiles
="$rmfiles $objdir/$name $objdir/${name}i"
6004 if test "$mode" = uninstall
; then
6005 if test -n "$library_names"; then
6006 # Do each command in the postuninstall commands.
6007 eval cmds
=\"$postuninstall_cmds\"
6008 save_ifs
="$IFS"; IFS
='~'
6009 for cmd
in $cmds; do
6013 if test "$?" -ne 0 && test "$rmforce" != yes; then
6020 if test -n "$old_library"; then
6021 # Do each command in the old_postuninstall commands.
6022 eval cmds
=\"$old_postuninstall_cmds\"
6023 save_ifs
="$IFS"; IFS
='~'
6024 for cmd
in $cmds; do
6028 if test "$?" -ne 0 && test "$rmforce" != yes; then
6034 # FIXME: should reinstall the best remaining shared library.
6040 # Possibly a libtool object, so verify it.
6041 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
6046 # Add PIC object to the list of files to remove.
6047 if test -n "$pic_object" \
6048 && test "$pic_object" != none
; then
6049 rmfiles
="$rmfiles $dir/$pic_object"
6052 # Add non-PIC object to the list of files to remove.
6053 if test -n "$non_pic_object" \
6054 && test "$non_pic_object" != none
; then
6055 rmfiles
="$rmfiles $dir/$non_pic_object"
6061 if test "$mode" = clean
; then
6065 file=`$echo $file|${SED} 's,.exe$,,'`
6066 noexename
=`$echo $name|${SED} 's,.exe$,,'`
6067 # $file with .exe has already been added to rmfiles,
6068 # add $file without .exe
6069 rmfiles
="$rmfiles $file"
6072 # Do a test to see if this is a libtool program.
6073 if (${SED} -e '4q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
6077 # note $name still contains .exe if it was in $file originally
6078 # as does the version of $file that was added into $rmfiles
6079 rmfiles
="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6080 if test "$fast_install" = yes && test -n "$relink_command"; then
6081 rmfiles
="$rmfiles $objdir/lt-$name"
6083 if test "X$noexename" != "X$name" ; then
6084 rmfiles
="$rmfiles $objdir/lt-${noexename}.c"
6090 $show "$rm $rmfiles"
6091 $run $rm $rmfiles || exit_status
=1
6093 objdir
="$origobjdir"
6095 # Try to remove the ${objdir}s in the directories where we deleted files
6096 for dir
in $rmdirs; do
6097 if test -d "$dir"; then
6099 $run rmdir $dir >/dev
/null
2>&1
6107 $echo "$modename: you must specify a MODE" 1>&2
6108 $echo "$generic_help" 1>&2
6113 if test -z "$exec_cmd"; then
6114 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6115 $echo "$generic_help" 1>&2
6118 fi # test -z "$show_help"
6120 if test -n "$exec_cmd"; then
6125 # We need to display help for each of the modes.
6128 "Usage: $modename [OPTION]... [MODE-ARG]...
6130 Provide generalized library-building support services.
6132 --config show all configuration variables
6133 --debug enable verbose shell tracing
6134 -n, --dry-run display commands without modifying any files
6135 --features display basic configuration information and exit
6136 --finish same as \`--mode=finish'
6137 --help display this help message and exit
6138 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
6139 --quiet same as \`--silent'
6140 --silent don't print informational messages
6141 --tag=TAG use configuration variables from tag TAG
6142 --version print version information
6144 MODE must be one of the following:
6146 clean remove files from the build directory
6147 compile compile a source file into a libtool object
6148 execute automatically set library path, then run a program
6149 finish complete the installation of libtool libraries
6150 install install libraries or executables
6151 link create a library or an executable
6152 uninstall remove libraries from an installed directory
6154 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
6155 a more detailed description of MODE.
6157 Report bugs to <bug-libtool@gnu.org>."
6163 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6165 Remove files from the build directory.
6167 RM is the name of the program to use to delete files associated with each FILE
6168 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6171 If FILE is a libtool library, object or program, all the files associated
6172 with it are deleted. Otherwise, only FILE itself is deleted using RM."
6177 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6179 Compile a source file into a libtool library object.
6181 This mode accepts the following additional options:
6183 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
6184 -prefer-pic try to building PIC objects only
6185 -prefer-non-pic try to building non-PIC objects only
6186 -static always build a \`.o' file suitable for static linking
6188 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6189 from the given SOURCEFILE.
6191 The output file name is determined by removing the directory component from
6192 SOURCEFILE, then substituting the C source code suffix \`.c' with the
6193 library object suffix, \`.lo'."
6198 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6200 Automatically set library path, then run a program.
6202 This mode accepts the following additional options:
6204 -dlopen FILE add the directory containing FILE to the library path
6206 This mode sets the library path environment variable according to \`-dlopen'
6209 If any of the ARGS are libtool executable wrappers, then they are translated
6210 into their corresponding uninstalled binary, and any of their required library
6211 directories are added to the library path.
6213 Then, COMMAND is executed, with ARGS as arguments."
6218 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6220 Complete the installation of libtool libraries.
6222 Each LIBDIR is a directory that contains libtool libraries.
6224 The commands that this mode executes may require superuser privileges. Use
6225 the \`--dry-run' option if you just want to see what would be executed."
6230 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6232 Install executables or libraries.
6234 INSTALL-COMMAND is the installation command. The first component should be
6235 either the \`install' or \`cp' program.
6237 The rest of the components are interpreted as arguments to that command (only
6238 BSD-compatible install options are recognized)."
6243 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6245 Link object files or libraries together to form another library, or to
6246 create an executable program.
6248 LINK-COMMAND is a command using the C compiler that you would use to create
6249 a program from several object files.
6251 The following components of LINK-COMMAND are treated specially:
6253 -all-static do not do any dynamic linking at all
6254 -avoid-version do not add a version suffix if possible
6255 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
6256 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
6257 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6258 -export-symbols SYMFILE
6259 try to export only the symbols listed in SYMFILE
6260 -export-symbols-regex REGEX
6261 try to export only the symbols matching REGEX
6262 -LLIBDIR search LIBDIR for required installed libraries
6263 -lNAME OUTPUT-FILE requires the installed library libNAME
6264 -module build a library that can dlopened
6265 -no-fast-install disable the fast-install mode
6266 -no-install link a not-installable executable
6267 -no-undefined declare that a library does not refer to external symbols
6268 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
6269 -objectlist FILE Use a list of object files found in FILE to specify objects
6270 -release RELEASE specify package release information
6271 -rpath LIBDIR the created library will eventually be installed in LIBDIR
6272 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
6273 -static do not do any dynamic linking of libtool libraries
6274 -version-info CURRENT[:REVISION[:AGE]]
6275 specify library version info [each variable defaults to 0]
6277 All other options (arguments beginning with \`-') are ignored.
6279 Every other argument is treated as a filename. Files ending in \`.la' are
6280 treated as uninstalled libtool libraries, other files are standard or library
6283 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6284 only library objects (\`.lo' files) may be specified, and \`-rpath' is
6285 required, except when creating a convenience library.
6287 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6288 using \`ar' and \`ranlib', or on Windows using \`lib'.
6290 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6291 is created, otherwise an executable program is created."
6296 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6298 Remove libraries from an installation directory.
6300 RM is the name of the program to use to delete files associated with each FILE
6301 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6304 If FILE is a libtool library, all the files associated with it are deleted.
6305 Otherwise, only FILE itself is deleted using RM."
6309 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6316 $echo "Try \`$modename --help' for more information about other modes."
6320 # The TAGs below are defined such that we never get into a situation
6321 # in which we disable both kinds of libraries. Given conflicting
6322 # choices, we go for a static library, that is the most portable,
6323 # since we can't tell whether shared libraries were disabled because
6324 # the user asked for that or because the platform doesn't support
6325 # them. This is particularly important on AIX, because we don't
6326 # support having both static and shared libraries enabled at the same
6327 # time on that platform, so we default to a shared-only configuration.
6328 # If a disable-shared tag is given, we'll fallback to a static-only
6329 # configuration. But we'll never go from static-only to shared-only.
6331 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6332 build_libtool_libs
=no
6334 # ### END LIBTOOL TAG CONFIG: disable-shared
6336 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
6337 build_old_libs
=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
6338 # ### END LIBTOOL TAG CONFIG: disable-static