1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
5 # Free Software Foundation, Inc.
6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Check that we have a working $echo.
28 if test "X$1" = X--no-reexec
; then
29 # Discard the --no-reexec flag, and continue.
31 elif test "X$1" = X--fallback-echo
; then
32 # Avoid inline document here, it may be left over
34 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
35 # Yippee, $echo works!
38 # Restart under the correct shell, and then maybe $echo will work.
39 exec $SHELL "$0" --no-reexec ${1+"$@"}
42 if test "X$1" = X--fallback-echo
; then
43 # used as fallback echo
51 # The name of this program.
52 progname
=`$echo "$0" | ${SED} 's%^.*/%%'`
59 TIMESTAMP
=" (1.1090 2002/02/07 19:54:36)"
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'
73 NL2SP
='tr \015\012 \040\040'
76 # Only set LANG and LC_ALL to C if already set.
77 # These must not be set unconditionally because not all systems understand
78 # e.g. LANG=C (notably SCO).
79 # We save the old values to restore during execute mode.
80 if test "${LC_ALL+set}" = set; then
81 save_LC_ALL
="$LC_ALL"; LC_ALL
=C
; export LC_ALL
83 if test "${LANG+set}" = set; then
84 save_LANG
="$LANG"; LANG
=C
; export LANG
87 # Make sure IFS has a sensible default
90 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
91 echo "$modename: not configured to build any kind of library" 1>&2
92 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
105 lo2o
="s/\\.lo\$/.${objext}/"
106 o2lo
="s/\\.${objext}\$/.lo/"
108 # Parse our command line options once, thoroughly.
109 while test "$#" -gt 0
115 -*=*) optarg
=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
119 # If the previous option needs an argument, assign it.
120 if test -n "$prev"; then
123 execute_dlfiles
="$execute_dlfiles $arg"
128 # Check whether tagname contains only valid characters
131 echo "$progname: invalid tag name: $tagname" 1>&2
138 # Don't test for the "default" C tag, as we know, it's there, but
139 # not specially marked.
142 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev
/null
; then
143 taglist
="$taglist $tagname"
144 # Evaluate the configuration.
145 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
147 echo "$progname: ignoring unknown tag $tagname" 1>&2
162 # Have we seen a non-optional argument yet?
169 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
171 echo "Copyright 1996, 1997, 1998, 1999, 2000, 2001"
172 echo "Free Software Foundation, Inc."
173 echo "This is free software; see the source for copying conditions. There is NO"
174 echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
179 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
180 # Now print the configurations for the tags.
181 for tagname
in $taglist; do
182 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
188 echo "$progname: enabling shell trace mode"
198 if test "$build_libtool_libs" = yes; then
199 echo "enable shared libraries"
201 echo "disable shared libraries"
203 if test "$build_old_libs" = yes; then
204 echo "enable static libraries"
206 echo "disable static libraries"
211 --finish) mode
="finish" ;;
213 --mode) prevopt
="--mode" prev
=mode
;;
214 --mode=*) mode
="$optarg" ;;
216 --preserve-dup-deps) duplicate_deps
="yes" ;;
222 --tag) prevopt
="--tag" prev
=tag
;;
224 set tag
"$optarg" ${1+"$@"}
235 $echo "$modename: unrecognized option \`$arg'" 1>&2
247 if test -n "$prevopt"; then
248 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
253 # If this variable is set in any of the actions, the command in it
254 # will be execed at the end. This prevents here-documents from being
255 # left over by shells.
258 if test -z "$show_help"; then
260 # Infer the operation mode.
261 if test -z "$mode"; then
263 *cc |
*++ | gcc
* |
*-gcc*)
275 *db |
*dbx |
*strace |
*truss
)
285 # If we have no mode, but dlfiles were specified, then do execute mode.
286 test -n "$execute_dlfiles" && mode
=execute
288 # Just use the default operation mode.
289 if test -z "$mode"; then
290 if test -n "$nonopt"; then
291 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
293 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
300 # Only execute mode is allowed to have -dlopen flags.
301 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
302 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
307 # Change the help message to a mode-specific one.
309 help="Try \`$modename --help --mode=$mode' for more information."
311 # These modes are in order of execution frequency so that they run quickly.
313 # libtool compile mode
315 modename
="$modename: compile"
316 # Get the compilation command and the source file.
329 # Aesthetically quote the previous argument.
331 lastarg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
334 # Double-quote args containing other shell metacharacters.
335 # Many Bourne shells cannot handle close brackets correctly
336 # in scan sets, so we specify it separately.
337 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
342 # Add the previous argument to base_compile.
343 if test -z "$base_compile"; then
344 base_compile
="$lastarg"
346 base_compile
="$base_compile $lastarg"
352 # Accept any command-line options.
355 if test "$user_target" != "no"; then
356 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
383 args
=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
385 save_ifs
="$IFS"; IFS
=','
389 # Double-quote args containing other shell metacharacters.
390 # Many Bourne shells cannot handle close brackets correctly
391 # in scan sets, so we specify it separately.
393 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
397 lastarg
="$lastarg $arg"
400 lastarg
=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
402 # Add the arguments to base_compile.
403 if test -z "$base_compile"; then
404 base_compile
="$lastarg"
406 base_compile
="$base_compile $lastarg"
414 # The next one is the -o target name
419 # We got the output file
426 # Accept the current argument as the source file.
430 # Aesthetically quote the previous argument.
432 # Backslashify any backslashes, double quotes, and dollar signs.
433 # These are the only characters that are still specially
434 # interpreted inside of double-quoted scrings.
435 lastarg
=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
437 # Double-quote args containing other shell metacharacters.
438 # Many Bourne shells cannot handle close brackets correctly
439 # in scan sets, so we specify it separately.
441 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
442 lastarg
="\"$lastarg\""
446 # Add the previous argument to base_compile.
447 if test -z "$base_compile"; then
448 base_compile
="$lastarg"
450 base_compile
="$base_compile $lastarg"
458 # Get the name of the library object.
459 libobj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
462 $echo "$modename: you must specify a target with \`-o'" 1>&2
467 # Recognize several different file suffixes.
468 # If the user specifies -o file.o, it is replaced with file.lo
478 *.class
) xform
=class
;;
483 *.java
) xform
=java
;;
486 libobj
=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
489 *.lo
) obj
=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
491 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
496 # Infer tagged configuration to use if any are available and
497 # if one wasn't chosen via the "--tag" command line option.
498 # Only attempt this if the compiler in the base compile
499 # command doesn't match the default compiler.
500 if test -n "$available_tags" && test -z "$tagname"; then
501 case "$base_compile " in
503 # Blanks in the command may have been stripped by the calling shell,
504 # but not from the CC environment variable when ltconfig was run.
507 for z
in $available_tags; do
508 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev
/null
; then
509 # Evaluate the configuration.
510 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
511 case "$base_compile " in
513 # The compiler in the base compile command matches
514 # the one in the tagged configuration.
515 # Assume this is the tagged configuration we want.
526 # If $tagname still isn't set, then no tagged configuration
527 # was found and let the user know that the "--tag" command
528 # line option must be used.
529 if test -z "$tagname"; then
530 echo "$modename: unable to infer tagged configuration"
531 echo "$modename: specify a tag with \`--tag'" 1>&2
534 # echo "$modename: using $tagname tagged configuration"
540 objname
=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
541 xdir
=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
542 if test "X$xdir" = "X$obj"; then
547 lobj
=${xdir}$objdir/$objname
549 if test -z "$base_compile"; then
550 $echo "$modename: you must specify a compilation command" 1>&2
555 # Delete any leftover library objects.
556 if test "$build_old_libs" = yes; then
557 removelist
="$obj $lobj $libobj ${libobj}T"
559 removelist
="$lobj $libobj ${libobj}T"
563 trap "$run $rm $removelist; exit 1" 1 2 15
565 # On Cygwin there's no "real" PIC flag so we must build both object types
567 cygwin
* | mingw
* | pw32
* | os2
*)
571 if test "$pic_mode" = no
&& test "$deplibs_check_method" != pass_all
; then
572 # non-PIC code in shared libraries is not supported
576 # Calculate the filename of the output object if compiler does
577 # not support -o with -c
578 if test "$compiler_c_o" = no
; then
579 output_obj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.
${objext}
580 lockfile
="$output_obj.lock"
581 removelist
="$removelist $output_obj $lockfile"
582 trap "$run $rm $removelist; exit 1" 1 2 15
589 # Lock this critical section if it is needed
590 # We use this script file to make the link, it avoids creating a new file
591 if test "$need_locks" = yes; then
592 until $run ln "$0" "$lockfile" 2>/dev
/null
; do
593 $show "Waiting for $lockfile to be removed"
596 elif test "$need_locks" = warn
; then
597 if test -f "$lockfile"; then
599 *** ERROR, $lockfile exists and contains:
600 `cat $lockfile 2>/dev/null`
602 This indicates that another process is trying to use the same
603 temporary object file, and libtool could not work around it because
604 your compiler does not support \`-c' and \`-o' together. If you
605 repeat this compilation, it may succeed, by chance, but you had better
606 avoid parallel builds (make -j) in this platform, or get a better
612 echo $srcfile > "$lockfile"
615 if test -n "$fix_srcfile_path"; then
616 eval srcfile
=\"$fix_srcfile_path\"
619 $run $rm "$libobj" "${libobj}T"
621 # Create a libtool object file (analogous to a ".la" file),
622 # but don't create it if we're doing a dry run.
623 test -z "$run" && cat > ${libobj}T
<<EOF
624 # $libobj - a libtool object file
625 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
627 # Please DO NOT delete this file!
628 # It is necessary for linking the library.
630 # Name of the PIC object.
633 # Only build a PIC object if we are building libtool libraries.
634 if test "$build_libtool_libs" = yes; then
635 # Without this assignment, base_compile gets emptied.
636 fbsd_hideous_sh_bug
=$base_compile
638 if test "$pic_mode" != no
; then
639 command="$base_compile $srcfile $pic_flag"
641 # Don't build PIC code
642 command="$base_compile $srcfile"
645 if test ! -d "${xdir}$objdir"; then
646 $show "$mkdir ${xdir}$objdir"
647 $run $mkdir ${xdir}$objdir
649 if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
654 if test -z "$output_obj"; then
655 # Place PIC objects in $objdir
656 command="$command -o $lobj"
659 $run $rm "$lobj" "$output_obj"
662 if $run eval "$command"; then :
664 test -n "$output_obj" && $run $rm $removelist
668 if test "$need_locks" = warn
&&
669 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
671 *** ERROR, $lockfile contains:
672 `cat $lockfile 2>/dev/null`
674 but it should contain:
677 This indicates that another process is trying to use the same
678 temporary object file, and libtool could not work around it because
679 your compiler does not support \`-c' and \`-o' together. If you
680 repeat this compilation, it may succeed, by chance, but you had better
681 avoid parallel builds (make -j) in this platform, or get a better
688 # Just move the object if needed, then go on to compile the next one
689 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
690 $show "$mv $output_obj $lobj"
691 if $run $mv $output_obj $lobj; then :
699 # Append the name of the PIC object to the libtool object file.
700 test -z "$run" && cat >> ${libobj}T
<<EOF
701 pic_object='$objdir/$objname'
705 # Allow error messages only from the first compilation.
706 suppress_output
=' >/dev/null 2>&1'
708 # No PIC object so indicate it doesn't exist in the libtool
710 test -z "$run" && cat >> ${libobj}T
<<EOF
716 # Only build a position-dependent object if we build old libraries.
717 if test "$build_old_libs" = yes; then
718 if test "$pic_mode" != yes; then
719 # Don't build PIC code
720 command="$base_compile $srcfile"
722 command="$base_compile $srcfile $pic_flag"
724 if test "$compiler_c_o" = yes; then
725 command="$command -o $obj"
728 # Suppress compiler output if we already did a PIC compilation.
729 command="$command$suppress_output"
730 $run $rm "$obj" "$output_obj"
732 if $run eval "$command"; then :
738 if test "$need_locks" = warn
&&
739 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
741 *** ERROR, $lockfile contains:
742 `cat $lockfile 2>/dev/null`
744 but it should contain:
747 This indicates that another process is trying to use the same
748 temporary object file, and libtool could not work around it because
749 your compiler does not support \`-c' and \`-o' together. If you
750 repeat this compilation, it may succeed, by chance, but you had better
751 avoid parallel builds (make -j) in this platform, or get a better
758 # Just move the object if needed
759 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
760 $show "$mv $output_obj $obj"
761 if $run $mv $output_obj $obj; then :
769 # Append the name of the non-PIC object the libtool object file.
770 # Only append if the libtool object file exists.
771 test -z "$run" && cat >> ${libobj}T
<<EOF
772 # Name of the non-PIC object.
773 non_pic_object='$objname'
777 # Append the name of the non-PIC object the libtool object file.
778 # Only append if the libtool object file exists.
779 test -z "$run" && cat >> ${libobj}T
<<EOF
780 # Name of the non-PIC object.
786 $run $mv "${libobj}T" "${libobj}"
788 # Unlock the critical section if it was locked
789 if test "$need_locks" != no
; then
798 modename
="$modename: link"
800 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
801 # It is impossible to link a dll without this setting, and
802 # we shouldn't force the makefile maintainer to figure out
803 # which system we are compiling for in order to pass an extra
804 # flag for every libtool invokation.
807 # FIXME: Unfortunately, there are problems with the above when trying
808 # to make a dll which has undefined symbols, in which case not
809 # even a static library is built. For now, we need to specify
810 # -no-undefined on the libtool link line when we can be certain
811 # that all symbols are satisfied, otherwise we get a static library.
818 libtool_args
="$nonopt"
819 base_compile
="$nonopt"
820 compile_command
="$nonopt"
821 finalize_command
="$nonopt"
835 lib_search_path
=`pwd`
843 export_symbols_regex
=
851 prefer_static_libs
=no
863 # We need to know -static, to get the right output filenames.
867 -all-static |
-static)
868 if test "X$arg" = "X-all-static"; then
869 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
870 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
872 if test -n "$link_static_flag"; then
873 dlopen_self
=$dlopen_self_static
876 if test -z "$pic_flag" && test -n "$link_static_flag"; then
877 dlopen_self
=$dlopen_self_static
880 build_libtool_libs
=no
882 prefer_static_libs
=yes
888 # See if our shared archives depend on static archives.
889 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
891 # Go through the arguments, transforming them on the way.
892 while test "$#" -gt 0; do
894 base_compile
="$base_compile $arg"
897 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
898 qarg
=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
902 libtool_args
="$libtool_args $qarg"
904 # If the previous option needs an argument, assign it.
905 if test -n "$prev"; then
908 compile_command
="$compile_command @OUTPUT@"
909 finalize_command
="$finalize_command @OUTPUT@"
915 if test "$preload" = no
; then
916 # Add the symbol object into the linking commands.
917 compile_command
="$compile_command @SYMFILE@"
918 finalize_command
="$finalize_command @SYMFILE@"
922 *.la |
*.lo
) ;; # We handle these cases below.
924 if test "$dlself" = no
; then
932 if test "$prev" = dlprefiles
; then
934 elif test "$prev" = dlfiles
&& test "$dlopen_self" != yes; then
944 if test "$prev" = dlfiles
; then
945 dlfiles
="$dlfiles $arg"
947 dlprefiles
="$dlprefiles $arg"
955 export_symbols
="$arg"
956 if test ! -f "$arg"; then
957 $echo "$modename: symbol file \`$arg' does not exist"
964 export_symbols_regex
="$arg"
974 if test -f "$arg"; then
977 for fil
in `cat $save_arg`
979 # moreargs="$moreargs $fil"
981 # A libtool-controlled object.
983 # Check to see that this really is a libtool object.
984 if (${SED} -e '2q' $arg |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
989 # If there is no directory component, then add one.
991 */* |
*\\*) .
$arg ;;
995 if test -z "$pic_object" || \
996 test -z "$non_pic_object" ||
997 test "$pic_object" = none
&& \
998 test "$non_pic_object" = none
; then
999 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1003 # Extract subdirectory from the argument.
1004 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1005 if test "X$xdir" = "X$arg"; then
1011 if test "$pic_object" != none
; then
1012 # Prepend the subdirectory the object is found in.
1013 pic_object
="$xdir$pic_object"
1015 if test "$prev" = dlfiles
; then
1016 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1017 dlfiles
="$dlfiles $pic_object"
1021 # If libtool objects are unsupported, then we need to preload.
1026 # CHECK ME: I think I busted this. -Ossama
1027 if test "$prev" = dlprefiles
; then
1028 # Preload the old-style object.
1029 dlprefiles
="$dlprefiles $pic_object"
1034 libobjs
="$libobjs $pic_object"
1039 if test "$non_pic_object" != none
; then
1040 # Prepend the subdirectory the object is found in.
1041 non_pic_object
="$xdir$non_pic_object"
1043 # A standard non-PIC object
1044 non_pic_objects
="$non_pic_objects $non_pic_object"
1045 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1046 arg
="$non_pic_object"
1050 # Only an error if not doing a dry-run.
1051 if test -z "$run"; then
1052 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1057 # Extract subdirectory from the argument.
1058 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1059 if test "X$xdir" = "X$arg"; then
1065 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1066 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1067 libobjs
="$libobjs $pic_object"
1068 non_pic_objects
="$non_pic_objects $non_pic_object"
1073 $echo "$modename: link input file \`$save_arg' does not exist"
1081 # We need an absolute path.
1083 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1085 $echo "$modename: only absolute run-paths are allowed" 1>&2
1089 if test "$prev" = rpath
; then
1092 *) rpath
="$rpath $arg" ;;
1097 *) xrpath
="$xrpath $arg" ;;
1104 compiler_flags
="$compiler_flags $qarg"
1106 compile_command
="$compile_command $qarg"
1107 finalize_command
="$finalize_command $qarg"
1111 linker_flags
="$linker_flags $qarg"
1112 compiler_flags
="$compiler_flags $wl$qarg"
1114 compile_command
="$compile_command $wl$qarg"
1115 finalize_command
="$finalize_command $wl$qarg"
1119 eval "$prev=\"\$arg\""
1124 fi # test -n "$prev"
1130 if test -n "$link_static_flag"; then
1131 compile_command
="$compile_command $link_static_flag"
1132 finalize_command
="$finalize_command $link_static_flag"
1138 # FIXME: remove this flag sometime in the future.
1139 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1163 -export-symbols |
-export-symbols-regex)
1164 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
1165 $echo "$modename: more than one -exported-symbols argument is not allowed"
1168 if test "X$arg" = "X-export-symbols"; then
1176 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1177 # so, if we see these flags be careful not to treat them like -L
1179 case $with_gcc/$host in
1180 no
/*-*-irix* |
/*-*-irix*)
1181 compile_command
="$compile_command $arg"
1182 finalize_command
="$finalize_command $arg"
1189 dir
=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1190 # We need an absolute path.
1192 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1194 absdir
=`cd "$dir" && pwd`
1195 if test -z "$absdir"; then
1196 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1205 deplibs
="$deplibs -L$dir"
1206 lib_search_path
="$lib_search_path $dir"
1210 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1211 case :$dllsearchpath: in
1213 *) dllsearchpath
="$dllsearchpath:$dir";;
1221 if test "X$arg" = "X-lc" ||
test "X$arg" = "X-lm"; then
1223 *-*-cygwin* |
*-*-pw32* |
*-*-beos*)
1224 # These systems don't actually have a C or math library (as such)
1227 *-*-mingw* |
*-*-os2*)
1228 # These systems don't actually have a C library (as such)
1229 test "X$arg" = "X-lc" && continue
1231 *-*-openbsd* |
*-*-freebsd*)
1232 # Do not include libc due to us having libc/libc_r.
1233 test "X$arg" = "X-lc" && continue
1235 *-*-rhapsody* |
*-*-darwin1.
[012])
1236 # Rhapsody C and math libraries are in the System framework
1237 deplibs
="$deplibs -framework System"
1240 elif test "X$arg" = "X-lc_r"; then
1242 *-*-openbsd* |
*-*-freebsd*)
1243 # Do not include libc_r directly, use -pthread flag.
1248 deplibs
="$deplibs $arg"
1264 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1265 # The PATH hackery in wrapper scripts is required on Windows
1266 # in order for the loader to find any dlls it needs.
1267 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1268 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1271 *) no_install
=yes ;;
1304 dir
=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1305 # We need an absolute path.
1307 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1309 $echo "$modename: only absolute run-paths are allowed" 1>&2
1315 *) xrpath
="$xrpath $dir" ;;
1321 # The effects of -static are defined in a previous loop.
1322 # We used to do the same as -all-static on platforms that
1323 # didn't have a PIC flag, but the assumption that the effects
1324 # would be equivalent was wrong. It would break on at least
1325 # Digital Unix and AIX.
1340 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1342 save_ifs
="$IFS"; IFS
=','
1343 for flag
in $args; do
1346 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1351 compiler_flags
="$compiler_flags $flag"
1354 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1358 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1360 save_ifs
="$IFS"; IFS
=','
1361 for flag
in $args; do
1364 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1369 compiler_flags
="$compiler_flags $wl$flag"
1370 linker_flags
="$linker_flags $flag"
1373 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1386 # Some other compiler flag.
1388 # Unknown arguments in both finalize_command and compile_command need
1389 # to be aesthetically quoted because they are evaled later.
1390 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1392 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1396 add_flags
="$add_flags $arg"
1400 # A standard object.
1405 # A libtool-controlled object.
1407 # Check to see that this really is a libtool object.
1408 if (${SED} -e '2q' $arg |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1413 # If there is no directory component, then add one.
1415 */* |
*\\*) .
$arg ;;
1419 if test -z "$pic_object" || \
1420 test -z "$non_pic_object" ||
1421 test "$pic_object" = none
&& \
1422 test "$non_pic_object" = none
; then
1423 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1427 # Extract subdirectory from the argument.
1428 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1429 if test "X$xdir" = "X$arg"; then
1435 if test "$pic_object" != none
; then
1436 # Prepend the subdirectory the object is found in.
1437 pic_object
="$xdir$pic_object"
1439 if test "$prev" = dlfiles
; then
1440 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1441 dlfiles
="$dlfiles $pic_object"
1445 # If libtool objects are unsupported, then we need to preload.
1450 # CHECK ME: I think I busted this. -Ossama
1451 if test "$prev" = dlprefiles
; then
1452 # Preload the old-style object.
1453 dlprefiles
="$dlprefiles $pic_object"
1458 libobjs
="$libobjs $pic_object"
1463 if test "$non_pic_object" != none
; then
1464 # Prepend the subdirectory the object is found in.
1465 non_pic_object
="$xdir$non_pic_object"
1467 # A standard non-PIC object
1468 non_pic_objects
="$non_pic_objects $non_pic_object"
1469 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1470 arg
="$non_pic_object"
1474 # Only an error if not doing a dry-run.
1475 if test -z "$run"; then
1476 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1481 # Extract subdirectory from the argument.
1482 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1483 if test "X$xdir" = "X$arg"; then
1489 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1490 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1491 libobjs
="$libobjs $pic_object"
1492 non_pic_objects
="$non_pic_objects $non_pic_object"
1499 deplibs
="$deplibs $arg"
1500 old_deplibs
="$old_deplibs $arg"
1505 # A libtool-controlled library.
1507 if test "$prev" = dlfiles
; then
1508 # This library was specified with -dlopen.
1509 dlfiles
="$dlfiles $arg"
1511 elif test "$prev" = dlprefiles
; then
1512 # The library was specified with -dlpreopen.
1513 dlprefiles
="$dlprefiles $arg"
1516 deplibs
="$deplibs $arg"
1521 # Some other compiler argument.
1523 # Unknown arguments in both finalize_command and compile_command need
1524 # to be aesthetically quoted because they are evaled later.
1525 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1527 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1531 add_flags
="$add_flags $arg"
1535 # Now actually substitute the argument into the commands.
1536 if test -n "$arg"; then
1537 compile_command
="$compile_command $arg"
1538 finalize_command
="$finalize_command $arg"
1540 done # argument parsing loop
1542 if test -n "$prev"; then
1543 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1548 # Infer tagged configuration to use if any are available and
1549 # if one wasn't chosen via the "--tag" command line option.
1550 # Only attempt this if the compiler in the base link
1551 # command doesn't match the default compiler.
1552 if test -n "$available_tags" && test -z "$tagname"; then
1553 case $base_compile in
1555 # Blanks in the command may have been stripped by the calling shell,
1556 # but not from the CC environment variable when ltconfig was run.
1559 for z
in $available_tags; do
1560 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev
/null
; then
1561 # Evaluate the configuration.
1562 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
1563 case $base_compile in
1565 # The compiler in $compile_command matches
1566 # the one in the tagged configuration.
1567 # Assume this is the tagged configuration we want.
1578 # If $tagname still isn't set, then no tagged configuration
1579 # was found and let the user know that the "--tag" command
1580 # line option must be used.
1581 if test -z "$tagname"; then
1582 echo "$modename: unable to infer tagged configuration"
1583 echo "$modename: specify a tag with \`--tag'" 1>&2
1586 # echo "$modename: using $tagname tagged configuration"
1592 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1593 eval arg
=\"$export_dynamic_flag_spec\"
1594 compile_command
="$compile_command $arg"
1595 finalize_command
="$finalize_command $arg"
1599 # calculate the name of the file, without its directory
1600 outputname
=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1601 libobjs_save
="$libobjs"
1603 if test -n "$shlibpath_var"; then
1604 # get the directories listed in $shlibpath_var
1605 eval shlib_search_path
=\
`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1609 eval sys_lib_search_path
=\"$sys_lib_search_path_spec\"
1610 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
1612 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1613 if test "X$output_objdir" = "X$output"; then
1614 output_objdir
="$objdir"
1616 output_objdir
="$output_objdir/$objdir"
1618 # Create the object directory.
1619 if test ! -d "$output_objdir"; then
1620 $show "$mkdir $output_objdir"
1621 $run $mkdir $output_objdir
1623 if test "$status" -ne 0 && test ! -d "$output_objdir"; then
1628 # Determine the type of output
1631 $echo "$modename: you must specify an output file" 1>&2
1635 *.
$libext) linkmode
=oldlib
;;
1636 *.lo |
*.
$objext) linkmode
=obj
;;
1637 *.la
) linkmode
=lib
;;
1638 *) linkmode
=prog
;; # Anything else should be a program.
1643 # Find all interdependent deplibs by searching for libraries
1644 # that are linked more than once (e.g. -la -lb -la)
1645 for deplib
in $deplibs; do
1646 if test "X$duplicate_deps" = "Xyes" ; then
1648 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1651 libs
="$libs $deplib"
1654 if test "$linkmode" = lib
; then
1655 libs
="$predeps $libs $compiler_lib_search_path $postdeps"
1657 # Compute libraries that are listed more than once in $predeps
1658 # $postdeps and mark them as special (i.e., whose duplicates are
1659 # not to be eliminated).
1661 if test "X$duplicate_deps" = "Xyes" ; then
1662 for pre_post_dep
in $predeps $postdeps; do
1663 case "$pre_post_deps " in
1664 *" $pre_post_dep "*) specialdeplibs
="$specialdeplibs $pre_post_deps" ;;
1666 pre_post_deps
="$pre_post_deps $pre_post_dep"
1675 need_relink
=no
# whether we're linking any uninstalled libtool libraries
1676 notinst_deplibs
= # not-installed libtool libraries
1677 notinst_path
= # paths that contain not-installed libtool libraries
1681 for file in $dlfiles $dlprefiles; do
1685 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1697 passes
="conv scan dlopen dlpreopen link"
1702 for pass
in $passes; do
1703 if test "$linkmode,$pass" = "lib,link" ||
1704 test "$linkmode,$pass" = "prog,scan"; then
1708 if test "$linkmode" = prog
; then
1710 dlopen
) libs
="$dlfiles" ;;
1711 dlpreopen
) libs
="$dlprefiles" ;;
1712 link
) libs
="$deplibs %DEPLIBS% $dependency_libs" ;;
1715 if test "$pass" = dlopen
; then
1716 # Collect dlpreopened libraries
1717 save_deplibs
="$deplibs"
1720 for deplib
in $libs; do
1725 if test "$linkmode" != lib
&& test "$linkmode" != prog
; then
1726 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1729 if test "$pass" = conv
&& test "$allow_undefined" = yes; then
1730 deplibs
="$deplib $deplibs"
1733 name
=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1734 for searchdir
in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1735 # Search the libtool library
1736 lib
="$searchdir/lib${name}.la"
1737 if test -f "$lib"; then
1742 if test "$found" != yes; then
1743 # deplib doesn't seem to be a libtool library
1744 if test "$linkmode,$pass" = "prog,link"; then
1745 compile_deplibs
="$deplib $compile_deplibs"
1746 finalize_deplibs
="$deplib $finalize_deplibs"
1748 deplibs
="$deplib $deplibs"
1749 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
1757 deplibs
="$deplib $deplibs"
1758 test "$pass" = conv
&& continue
1759 newdependency_libs
="$deplib $newdependency_libs"
1760 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1763 if test "$pass" = conv
; then
1764 deplibs
="$deplib $deplibs"
1767 if test "$pass" = scan
; then
1768 deplibs
="$deplib $deplibs"
1769 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1771 compile_deplibs
="$deplib $compile_deplibs"
1772 finalize_deplibs
="$deplib $finalize_deplibs"
1776 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1782 if test "$pass" = link
; then
1783 dir
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1784 # Make sure the xrpath contains only unique directories.
1787 *) xrpath
="$xrpath $dir" ;;
1790 deplibs
="$deplib $deplibs"
1793 *.la
) lib
="$deplib" ;;
1795 if test "$pass" = conv
; then
1796 deplibs
="$deplib $deplibs"
1801 if test "$deplibs_check_method" != pass_all
; then
1803 echo "*** Warning: Trying to link with static lib archive $deplib."
1804 echo "*** I have the capability to make that library automatically link in when"
1805 echo "*** you link to this library. But I can only do this if you have a"
1806 echo "*** shared version of the library, which you do not appear to have"
1807 echo "*** because the file extensions .$libext of this argument makes me believe"
1808 echo "*** that it is just a static archive that I should not used here."
1811 echo "*** Warning: Linking the shared library $output against the"
1812 echo "*** static library $deplib is not portable!"
1813 deplibs
="$deplib $deplibs"
1818 if test "$pass" != link
; then
1819 deplibs
="$deplib $deplibs"
1821 compile_deplibs
="$deplib $compile_deplibs"
1822 finalize_deplibs
="$deplib $finalize_deplibs"
1829 if test "$pass" = conv
; then
1830 deplibs
="$deplib $deplibs"
1831 elif test "$linkmode" = prog
; then
1832 if test "$pass" = dlpreopen ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1833 # If there is no dlopen support or we're linking statically,
1834 # we need to preload.
1835 newdlprefiles
="$newdlprefiles $deplib"
1836 compile_deplibs
="$deplib $compile_deplibs"
1837 finalize_deplibs
="$deplib $finalize_deplibs"
1839 newdlfiles
="$newdlfiles $deplib"
1849 if test "$found" = yes ||
test -f "$lib"; then :
1851 $echo "$modename: cannot find the library \`$lib'" 1>&2
1855 # Check to see that this really is a libtool archive.
1856 if (${SED} -e '2q' $lib |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
1858 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1862 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1863 test "X$ladir" = "X$lib" && ladir
="."
1871 # If the library was installed with an old release of libtool,
1872 # it will not redefine variable installed.
1877 */* |
*\\*) .
$lib ;;
1881 if test "$linkmode,$pass" = "lib,link" ||
1882 test "$linkmode,$pass" = "prog,scan" ||
1883 { test "$linkmode" != prog
&& test "$linkmode" != lib
; }; then
1884 test -n "$dlopen" && dlfiles
="$dlfiles $dlopen"
1885 test -n "$dlpreopen" && dlprefiles
="$dlprefiles $dlpreopen"
1888 if test "$pass" = conv
; then
1889 # Only check for convenience libraries
1890 deplibs
="$lib $deplibs"
1892 for deplib
in $dependency_libs; do
1893 #echo "Adding $deplib to \$deplibs"
1894 deplibs
="$deplib $deplibs"
1895 if test "X$duplicate_deps" = "Xyes" ; then
1896 case "$tmp_libs " in
1897 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1900 tmp_libs
="$tmp_libs $deplib"
1902 if test -z "$libdir"; then
1903 if test -z "$old_library"; then
1904 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1907 # It is a libtool convenience library, so add in its objects.
1908 convenience
="$convenience $ladir/$objdir/$old_library"
1909 old_convenience
="$old_convenience $ladir/$objdir/$old_library"
1910 elif test "$linkmode" != prog
&& test "$linkmode" != lib
; then
1911 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1917 # Get the name of the library we link against.
1919 for l
in $old_library $library_names; do
1922 if test -z "$linklib"; then
1923 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1927 # This library was specified with -dlopen.
1928 if test "$pass" = dlopen
; then
1929 if test -z "$libdir"; then
1930 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1933 if test -z "$dlname" ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1934 # If there is no dlname, no dlopen support or we're linking
1935 # statically, we need to preload. We also need to preload any
1936 # dependent libraries so libltdl's deplib preloader doesn't
1937 # bomb out in the load deplibs phase.
1938 dlprefiles
="$dlprefiles $lib $dependency_libs"
1940 newdlfiles
="$newdlfiles $lib"
1945 # We need an absolute path.
1947 [\\/]* |
[A-Za-z
]:[\\/]*) abs_ladir
="$ladir" ;;
1949 abs_ladir
=`cd "$ladir" && pwd`
1950 if test -z "$abs_ladir"; then
1951 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1952 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1957 laname
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1959 # Find the relevant object directory and library name.
1960 if test "X$installed" = Xyes
; then
1961 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1962 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1971 dir
="$ladir/$objdir"
1972 absdir
="$abs_ladir/$objdir"
1973 # Remove this search path later
1974 notinst_path
="$notinst_path $abs_ladir"
1975 fi # $installed = yes
1976 name
=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1978 # This library was specified with -dlpreopen.
1979 if test "$pass" = dlpreopen
; then
1980 if test -z "$libdir"; then
1981 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1984 # Prefer using a static library (so that no silly _DYNAMIC symbols
1985 # are required to link).
1986 if test -n "$old_library"; then
1987 newdlprefiles
="$newdlprefiles $dir/$old_library"
1988 # Otherwise, use the dlname, so that lt_dlopen finds it.
1989 elif test -n "$dlname"; then
1990 newdlprefiles
="$newdlprefiles $dir/$dlname"
1992 newdlprefiles
="$newdlprefiles $dir/$linklib"
1994 fi # $pass = dlpreopen
1996 if test -z "$libdir"; then
1997 # Link the convenience library
1998 if test "$linkmode" = lib
; then
1999 deplibs
="$dir/$old_library $deplibs"
2000 elif test "$linkmode,$pass" = "prog,link"; then
2001 compile_deplibs
="$dir/$old_library $compile_deplibs"
2002 finalize_deplibs
="$dir/$old_library $finalize_deplibs"
2004 deplibs
="$lib $deplibs" # used for prog,scan pass
2009 if test "$linkmode" = prog
&& test "$pass" != link
; then
2010 newlib_search_path
="$newlib_search_path $ladir"
2011 deplibs
="$lib $deplibs"
2014 if test "$link_all_deplibs" != no ||
test -z "$library_names" ||
2015 test "$build_libtool_libs" = no
; then
2020 for deplib
in $dependency_libs; do
2022 -L*) newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2024 # Need to link against all dependency_libs?
2025 if test "$linkalldeplibs" = yes; then
2026 deplibs
="$deplib $deplibs"
2028 # Need to hardcode shared library paths
2029 # or/and link against static libraries
2030 newdependency_libs
="$deplib $newdependency_libs"
2032 if test "X$duplicate_deps" = "Xyes" ; then
2033 case "$tmp_libs " in
2034 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2037 tmp_libs
="$tmp_libs $deplib"
2040 fi # $linkmode = prog...
2042 if test "$linkmode,$pass" = "prog,link"; then
2043 if test -n "$library_names" &&
2044 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
2045 # We need to hardcode the library path
2046 if test -n "$shlibpath_var"; then
2047 # Make sure the rpath contains only unique directories.
2048 case "$temp_rpath " in
2051 *) temp_rpath
="$temp_rpath $dir" ;;
2055 # Hardcode the library path.
2056 # Skip directories that are in the system default run-time
2058 case " $sys_lib_dlsearch_path " in
2061 case "$compile_rpath " in
2063 *) compile_rpath
="$compile_rpath $absdir"
2067 case " $sys_lib_dlsearch_path " in
2070 case "$finalize_rpath " in
2072 *) finalize_rpath
="$finalize_rpath $libdir"
2076 fi # $linkmode,$pass = prog,link...
2078 if test "$alldeplibs" = yes &&
2079 { test "$deplibs_check_method" = pass_all ||
2080 { test "$build_libtool_libs" = yes &&
2081 test -n "$library_names"; }; }; then
2082 # We only need to search for static libraries
2087 link_static
=no
# Whether the deplib will be linked statically
2088 if test -n "$library_names" &&
2089 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
2090 if test "$installed" = no
; then
2091 notinst_deplibs
="$notinst_deplibs $lib"
2094 # This is a shared library
2095 if test "$linkmode" = lib
&&
2096 test "$hardcode_into_libs" = yes; then
2097 # Hardcode the library path.
2098 # Skip directories that are in the system default run-time
2100 case " $sys_lib_dlsearch_path " in
2103 case "$compile_rpath " in
2105 *) compile_rpath
="$compile_rpath $absdir"
2109 case " $sys_lib_dlsearch_path " in
2112 case "$finalize_rpath " in
2114 *) finalize_rpath
="$finalize_rpath $libdir"
2120 if test -n "$old_archive_from_expsyms_cmds"; then
2121 # figure out the soname
2122 set dummy
$library_names
2125 libname
=`eval \\$echo \"$libname_spec\"`
2126 # use dlname if we got it. it's perfectly good, no?
2127 if test -n "$dlname"; then
2129 elif test -n "$soname_spec"; then
2133 major
=`expr $current - $age`
2137 eval soname
=\"$soname_spec\"
2142 # Make a new name for the extract_expsyms_cmds to use
2144 soname
=`echo $soroot | ${SED} -e 's/^.*\///'`
2145 newlib
="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2147 # If the library has no export list, then create one now
2148 if test -f "$output_objdir/$soname-def"; then :
2150 $show "extracting exported symbol list from \`$soname'"
2151 save_ifs
="$IFS"; IFS
='~'
2152 eval cmds
=\"$extract_expsyms_cmds\"
2153 for cmd
in $cmds; do
2156 $run eval "$cmd" ||
exit $?
2162 if test -f "$output_objdir/$newlib"; then :; else
2163 $show "generating import library for \`$soname'"
2164 save_ifs
="$IFS"; IFS
='~'
2165 eval cmds
=\"$old_archive_from_expsyms_cmds\"
2166 for cmd
in $cmds; do
2169 $run eval "$cmd" ||
exit $?
2173 # make sure the library variables are pointing to the new library
2176 fi # test -n "$old_archive_from_expsyms_cmds"
2178 if test "$linkmode" = prog ||
test "$mode" != relink
; then
2183 case $hardcode_action in
2184 immediate | unsupported
)
2185 if test "$hardcode_direct" = no
; then
2187 elif test "$hardcode_minus_L" = no
; then
2189 *-*-sunos*) add_shlibpath
="$dir" ;;
2193 elif test "$hardcode_shlibpath_var" = no
; then
2194 add_shlibpath
="$dir"
2201 if test "$hardcode_direct" = yes; then
2203 elif test "$hardcode_minus_L" = yes; then
2206 elif test "$hardcode_shlibpath_var" = yes; then
2207 add_shlibpath
="$dir"
2216 if test "$lib_linked" != yes; then
2217 $echo "$modename: configuration error: unsupported hardcode properties"
2221 if test -n "$add_shlibpath"; then
2222 case :$compile_shlibpath: in
2223 *":$add_shlibpath:"*) ;;
2224 *) compile_shlibpath
="$compile_shlibpath$add_shlibpath:" ;;
2227 if test "$linkmode" = prog
; then
2228 test -n "$add_dir" && compile_deplibs
="$add_dir $compile_deplibs"
2229 test -n "$add" && compile_deplibs
="$add $compile_deplibs"
2231 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2232 test -n "$add" && deplibs
="$add $deplibs"
2233 if test "$hardcode_direct" != yes && \
2234 test "$hardcode_minus_L" != yes && \
2235 test "$hardcode_shlibpath_var" = yes; then
2236 case :$finalize_shlibpath: in
2238 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2244 if test "$linkmode" = prog ||
test "$mode" = relink
; then
2248 # Finalize command for both is simple: just hardcode it.
2249 if test "$hardcode_direct" = yes; then
2250 add
="$libdir/$linklib"
2251 elif test "$hardcode_minus_L" = yes; then
2254 elif test "$hardcode_shlibpath_var" = yes; then
2255 case :$finalize_shlibpath: in
2257 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2261 # We cannot seem to hardcode it, guess we'll fake it.
2266 if test "$linkmode" = prog
; then
2267 test -n "$add_dir" && finalize_deplibs
="$add_dir $finalize_deplibs"
2268 test -n "$add" && finalize_deplibs
="$add $finalize_deplibs"
2270 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2271 test -n "$add" && deplibs
="$add $deplibs"
2274 elif test "$linkmode" = prog
; then
2275 # Here we assume that one of hardcode_direct or hardcode_minus_L
2276 # is not unsupported. This is valid on all known static and
2278 if test "$hardcode_direct" != unsupported
; then
2279 test -n "$old_library" && linklib
="$old_library"
2280 compile_deplibs
="$dir/$linklib $compile_deplibs"
2281 finalize_deplibs
="$dir/$linklib $finalize_deplibs"
2283 compile_deplibs
="-l$name -L$dir $compile_deplibs"
2284 finalize_deplibs
="-l$name -L$dir $finalize_deplibs"
2286 elif test "$build_libtool_libs" = yes; then
2287 # Not a shared library
2288 if test "$deplibs_check_method" != pass_all
; then
2289 # We're trying link a shared library against a static one
2290 # but the system doesn't support it.
2292 # Just print a warning and add the library to dependency_libs so
2293 # that the program can be linked against the static library.
2295 echo "*** Warning: This system can not link to static lib archive $lib."
2296 echo "*** I have the capability to make that library automatically link in when"
2297 echo "*** you link to this library. But I can only do this if you have a"
2298 echo "*** shared version of the library, which you do not appear to have."
2299 if test "$module" = yes; then
2300 echo "*** But as you try to build a module library, libtool will still create "
2301 echo "*** a static module, that should work as long as the dlopening application"
2302 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2303 if test -z "$global_symbol_pipe"; then
2305 echo "*** However, this would only work if libtool was able to extract symbol"
2306 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2307 echo "*** not find such a program. So, this module is probably useless."
2308 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2310 if test "$build_old_libs" = no
; then
2311 build_libtool_libs
=module
2314 build_libtool_libs
=no
2318 convenience
="$convenience $dir/$old_library"
2319 old_convenience
="$old_convenience $dir/$old_library"
2320 deplibs
="$dir/$old_library $deplibs"
2323 fi # link shared/static library?
2325 if test "$linkmode" = lib
; then
2326 #if test -n "$dependency_libs" &&
2327 # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
2328 # test "$link_static" = yes; }; then
2329 # Extract -R from dependency_libs
2331 for libdir
in $dependency_libs; do
2333 -R*) temp_xrpath
=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2335 *" $temp_xrpath "*) ;;
2336 *) xrpath
="$xrpath $temp_xrpath";;
2338 *) temp_deplibs
="$temp_deplibs $libdir";;
2341 dependency_libs
="$temp_deplibs"
2344 newlib_search_path
="$newlib_search_path $absdir"
2345 # Link against this library
2346 test "$link_static" = no
&& newdependency_libs
="$abs_ladir/$laname $newdependency_libs"
2347 # ... and its dependency_libs
2349 for deplib
in $dependency_libs; do
2350 newdependency_libs
="$deplib $newdependency_libs"
2351 if test "X$duplicate_deps" = "Xyes" ; then
2352 case "$tmp_libs " in
2353 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2356 tmp_libs
="$tmp_libs $deplib"
2359 if test "$link_all_deplibs" != no
; then
2360 # Add the search paths of all dependency libraries
2361 for deplib
in $dependency_libs; do
2363 -L*) path
="$deplib" ;;
2365 dir
=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2366 test "X$dir" = "X$deplib" && dir
="."
2367 # We need an absolute path.
2369 [\\/]* |
[A-Za-z
]:[\\/]*) absdir
="$dir" ;;
2371 absdir
=`cd "$dir" && pwd`
2372 if test -z "$absdir"; then
2373 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2378 if grep "^installed=no" $deplib > /dev
/null
; then
2379 path
="-L$absdir/$objdir"
2381 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2382 if test -z "$libdir"; then
2383 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2391 case " $deplibs " in
2393 *) deplibs
="$deplibs $path" ;;
2396 fi # link_all_deplibs != no
2398 done # for deplib in $libs
2399 dependency_libs
="$newdependency_libs"
2400 if test "$pass" = dlpreopen
; then
2401 # Link the dlpreopened libraries before other libraries
2402 for deplib
in $save_deplibs; do
2403 deplibs
="$deplib $deplibs"
2406 if test "$pass" != dlopen
; then
2407 if test "$pass" != conv
; then
2408 # Make sure lib_search_path contains only unique directories.
2410 for dir
in $newlib_search_path; do
2411 case "$lib_search_path " in
2413 *) lib_search_path
="$lib_search_path $dir" ;;
2419 if test "$linkmode,$pass" != "prog,link"; then
2422 vars
="compile_deplibs finalize_deplibs"
2424 for var
in $vars dependency_libs
; do
2425 # Add libraries to $var in reverse order
2426 eval tmp_libs
=\"\$
$var\"
2428 for deplib
in $tmp_libs; do
2429 # FIXME: Pedantically, this is the right thing to do, so
2430 # that some nasty dependency loop isn't accidentally
2432 #new_libs="$deplib $new_libs"
2433 # Pragmatically, this seems to cause very few problems in
2436 -L*) new_libs
="$deplib $new_libs" ;;
2438 # And here is the reason: when a library appears more
2439 # than once as an explicit dependence of a library, or
2440 # is implicitly linked in more than once by the
2441 # compiler, it is considered special, and multiple
2442 # occurrences thereof are not removed. Compare this
2443 # with having the same library being listed as a
2444 # dependency of multiple other libraries: in this case,
2445 # we know (pedantically, we assume) the library does not
2446 # need to be listed more than once, so we keep only the
2447 # last copy. This is not always right, but it is rare
2448 # enough that we require users that really mean to play
2449 # such unportable linking tricks to link the library
2450 # using -Wl,-lname, so that libtool does not consider it
2451 # for duplicate removal.
2452 case " $specialdeplibs " in
2453 *" $deplib "*) new_libs
="$deplib $new_libs" ;;
2455 case " $new_libs " in
2457 *) new_libs
="$deplib $new_libs" ;;
2465 for deplib
in $new_libs; do
2468 case " $tmp_libs " in
2470 *) tmp_libs
="$tmp_libs $deplib" ;;
2474 temp_xrpath
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2476 *" $temp_xrpath "*) ;;
2477 *) xrpath
="$xrpath $temp_xrpath";;
2479 *) tmp_libs
="$tmp_libs $deplib" ;;
2482 eval $var=\"$tmp_libs\"
2486 if test "$linkmode" = prog
; then
2487 dlfiles
="$newdlfiles"
2488 dlprefiles
="$newdlprefiles"
2493 if test -n "$deplibs"; then
2494 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2497 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
2498 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2501 if test -n "$rpath"; then
2502 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2505 if test -n "$xrpath"; then
2506 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2509 if test -n "$vinfo"; then
2510 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2513 if test -n "$release"; then
2514 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2517 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
2518 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2521 # Now set the variables for building old libraries.
2522 build_libtool_libs
=no
2524 objs
="$objs$old_deplibs"
2528 # Make sure we only generate libraries of the form `libNAME.la'.
2531 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2532 eval libname
=\"$libname_spec\"
2535 if test "$module" = no
; then
2536 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2540 if test "$need_lib_prefix" != no
; then
2541 # Add the "lib" prefix for modules if required
2542 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2543 eval libname
=\"$libname_spec\"
2545 libname
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2550 if test -n "$objs"; then
2551 if test "$deplibs_check_method" != pass_all
; then
2552 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2556 echo "*** Warning: Linking the shared library $output against the non-libtool"
2557 echo "*** objects $objs is not portable!"
2558 libobjs
="$libobjs $objs"
2562 if test "$dlself" != no
; then
2563 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2567 if test "$#" -gt 2; then
2568 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2573 if test -z "$rpath"; then
2574 if test "$build_libtool_libs" = yes; then
2575 # Building a libtool convenience library.
2576 # Some compilers have problems with a `.al' extension so
2577 # convenience libraries should have the same extension an
2578 # archive normally would.
2579 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
2580 build_libtool_libs
=convenience
2584 if test -n "$vinfo"; then
2585 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2588 if test -n "$release"; then
2589 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2593 # Parse the version information argument.
2594 save_ifs
="$IFS"; IFS
=':'
2595 set dummy
$vinfo 0 0 0
2598 if test -n "$8"; then
2599 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2608 # Check that each of the things are valid numbers.
2610 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2612 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2613 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2619 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2621 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2622 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2628 0 |
[1-9] |
[1-9][0-9] |
[1-9][0-9][0-9]) ;;
2630 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2631 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2636 if test "$age" -gt "$current"; then
2637 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2638 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2642 # Calculate the version variables.
2646 case $version_type in
2650 # Like Linux, but with the current version available in
2651 # verstring for coding it into the library header
2652 major
=.
`expr $current - $age`
2653 versuffix
="$major.$age.$revision"
2654 # Darwin ld doesn't like 0 for these options...
2655 minor_current
=`expr $current + 1`
2656 verstring
="-compatibility_version $minor_current -current_version $minor_current.$revision"
2661 versuffix
=".$current.$revision";
2666 versuffix
=".$current";
2670 case $version_type in
2671 nonstopux
) verstring_prefix
=nonstopux
;;
2672 *) verstring_prefix
=sgi
;;
2674 verstring
="$verstring_prefix$major.$revision"
2676 major
=`expr $current - $age + 1`
2678 # Add in all the interfaces that we are compatible with.
2680 while test "$loop" -ne 0; do
2681 iface
=`expr $revision - $loop`
2682 loop
=`expr $loop - 1`
2683 verstring
="$verstring_prefix$major.$iface:$verstring"
2686 # Before this point, $major must not contain `.'.
2688 versuffix
="$major.$revision"
2692 major
=.
`expr $current - $age`
2693 versuffix
="$major.$age.$revision"
2697 major
=`expr $current - $age`
2698 versuffix
=".$current.$age.$revision"
2699 verstring
="$current.$age.$revision"
2701 # Add in all the interfaces that we are compatible with.
2703 while test "$loop" -ne 0; do
2704 iface
=`expr $current - $loop`
2705 loop
=`expr $loop - 1`
2706 verstring
="$verstring:${iface}.0"
2709 # Make executables depend on our current version.
2710 verstring
="$verstring:${current}.0"
2715 versuffix
=".$current.$revision"
2719 # Use '-' rather than '.', since we only want one
2720 # extension on DOS 8.3 filesystems.
2721 major
=`expr $current - $age`
2726 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2727 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2732 # Clear the version info if we defaulted, and they specified a release.
2733 if test -z "$vinfo" && test -n "$release"; then
2735 case $version_type in
2737 # we can't check for "0.0" in archive_cmds due to quoting
2738 # problems, so we reset it completely
2745 if test "$need_version" = no
; then
2752 # Remove version info from name if versioning should be avoided
2753 if test "$avoid_version" = yes && test "$need_version" = no
; then
2759 # Check to see if the archive will have undefined symbols.
2760 if test "$allow_undefined" = yes; then
2761 if test "$allow_undefined_flag" = unsupported
; then
2762 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2763 build_libtool_libs
=no
2767 # Don't allow undefined symbols.
2768 allow_undefined_flag
="$no_undefined_flag"
2772 if test "$mode" != relink
; then
2773 # Remove our outputs, but don't remove object files since they
2774 # may have been created when compiling PIC objects.
2776 tempremovelist
=`echo "$output_objdir/*"`
2777 for p
in $tempremovelist; do
2781 $output_objdir/$outputname |
$output_objdir/$libname.
* |
$output_objdir/${libname}${release}.
*)
2782 removelist
="$removelist $p"
2787 if test -n "$removelist"; then
2788 $show "${rm}r $removelist"
2789 $run ${rm}r
$removelist
2793 # Now set the variables for building old libraries.
2794 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
2795 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
2797 # Transform .lo files to .o files.
2798 oldobjs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2801 # Eliminate all temporary directories.
2802 for path
in $notinst_path; do
2803 lib_search_path
=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
2804 deplibs
=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
2805 dependency_libs
=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
2808 if test -n "$xrpath"; then
2809 # If the user specified any rpath flags, then add them.
2811 for libdir
in $xrpath; do
2812 temp_xrpath
="$temp_xrpath -R$libdir"
2813 case "$finalize_rpath " in
2815 *) finalize_rpath
="$finalize_rpath $libdir" ;;
2818 if true ||
test "$hardcode_into_libs" != yes ||
test "$build_old_libs" = yes; then
2819 dependency_libs
="$temp_xrpath $dependency_libs"
2823 # Make sure dlfiles contains only unique files that won't be dlpreopened
2824 old_dlfiles
="$dlfiles"
2826 for lib
in $old_dlfiles; do
2827 case " $dlprefiles $dlfiles " in
2829 *) dlfiles
="$dlfiles $lib" ;;
2833 # Make sure dlprefiles contains only unique files
2834 old_dlprefiles
="$dlprefiles"
2836 for lib
in $old_dlprefiles; do
2837 case "$dlprefiles " in
2839 *) dlprefiles
="$dlprefiles $lib" ;;
2843 if test "$build_libtool_libs" = yes; then
2844 if test -n "$rpath"; then
2846 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2* |
*-*-beos*)
2847 # these systems don't actually have a c library (as such)!
2849 *-*-rhapsody* |
*-*-darwin1.
[012])
2850 # Rhapsody C library is in the System framework
2851 deplibs
="$deplibs -framework System"
2854 # Don't link with libc until the a.out ld.so is fixed.
2856 *-*-openbsd* |
*-*-freebsd*)
2857 # Do not include libc due to us having libc/libc_r.
2858 test "X$arg" = "X-lc" && continue
2861 # Add libc to deplibs on all other systems if necessary.
2862 if test "$build_libtool_need_lc" = "yes"; then
2863 deplibs
="$deplibs -lc"
2869 # Transform deplibs into only deplibs that can be linked in shared.
2871 libname_save
=$libname
2872 release_save
=$release
2873 versuffix_save
=$versuffix
2875 # I'm not sure if I'm treating the release correctly. I think
2876 # release should show up in the -l (ie -lgmp5) so we don't want to
2877 # add it in twice. Is that correct?
2883 case $deplibs_check_method in
2885 # Don't check for shared/static. Everything works.
2886 # This might be a little naive. We might want to check
2887 # whether the library exists or not. But this is on
2888 # osf3 & osf4 and I'm not really sure... Just
2889 # implementing what was already the behaviour.
2893 # This code stresses the "libraries are programs" paradigm to its
2894 # limits. Maybe even breaks it. We compile a program, linking it
2895 # against the deplibs as a proxy for the library. Then we can check
2896 # whether they linked in statically or dynamically with ldd.
2898 cat > conftest.c
<<EOF
2899 int main() { return 0; }
2902 $LTCC -o conftest conftest.c
$deplibs
2903 if test "$?" -eq 0 ; then
2904 ldd_output
=`ldd conftest`
2905 for i
in $deplibs; do
2906 name
="`expr $i : '-l\(.*\)'`"
2907 # If $name is empty we are operating on a -L argument.
2908 if test "$name" != "" && test "$name" -ne "0"; then
2909 libname
=`eval \\$echo \"$libname_spec\"`
2910 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
2911 set dummy
$deplib_matches
2913 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2914 newdeplibs
="$newdeplibs $i"
2918 echo "*** Warning: dynamic linker does not accept needed library $i."
2919 echo "*** I have the capability to make that library automatically link in when"
2920 echo "*** you link to this library. But I can only do this if you have a"
2921 echo "*** shared version of the library, which I believe you do not have"
2922 echo "*** because a test_compile did reveal that the linker did not use it for"
2923 echo "*** its dynamic dependency list that programs get resolved with at runtime."
2926 newdeplibs
="$newdeplibs $i"
2930 # Error occured in the first compile. Let's try to salvage
2931 # the situation: Compile a separate program for each library.
2932 for i
in $deplibs; do
2933 name
="`expr $i : '-l\(.*\)'`"
2934 # If $name is empty we are operating on a -L argument.
2935 if test "$name" != "" && test "$name" != "0"; then
2937 $LTCC -o conftest conftest.c
$i
2939 if test "$?" -eq 0 ; then
2940 ldd_output
=`ldd conftest`
2941 libname
=`eval \\$echo \"$libname_spec\"`
2942 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
2943 set dummy
$deplib_matches
2945 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2946 newdeplibs
="$newdeplibs $i"
2950 echo "*** Warning: dynamic linker does not accept needed library $i."
2951 echo "*** I have the capability to make that library automatically link in when"
2952 echo "*** you link to this library. But I can only do this if you have a"
2953 echo "*** shared version of the library, which you do not appear to have"
2954 echo "*** because a test_compile did reveal that the linker did not use this one"
2955 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
2960 echo "*** Warning! Library $i is needed by this library but I was not able to"
2961 echo "*** make it link in! You will probably need to install it or some"
2962 echo "*** library that it depends on before this library will be fully"
2963 echo "*** functional. Installing it before continuing would be even better."
2966 newdeplibs
="$newdeplibs $i"
2972 set dummy
$deplibs_check_method
2973 file_magic_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2974 for a_deplib
in $deplibs; do
2975 name
="`expr $a_deplib : '-l\(.*\)'`"
2976 # If $name is empty we are operating on a -L argument.
2977 if test "$name" != "" && test "$name" != "0"; then
2978 libname
=`eval \\$echo \"$libname_spec\"`
2979 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2980 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
2981 for potent_lib
in $potential_libs; do
2982 # Follow soft links.
2983 if ls -lLd "$potent_lib" 2>/dev
/null \
2984 |
grep " -> " >/dev
/null
; then
2987 # The statement above tries to avoid entering an
2988 # endless loop below, in case of cyclic links.
2989 # We might still enter an endless loop, since a link
2990 # loop can be closed while we follow links,
2992 potlib
="$potent_lib"
2993 while test -h "$potlib" 2>/dev
/null
; do
2994 potliblink
=`ls -ld $potlib | ${SED} 's/.* -> //'`
2996 [\\/]* |
[A-Za-z
]:[\\/]*) potlib
="$potliblink";;
2997 *) potlib
=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3000 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null \
3002 |
egrep "$file_magic_regex" > /dev
/null
; then
3003 newdeplibs
="$newdeplibs $a_deplib"
3009 if test -n "$a_deplib" ; then
3012 echo "*** Warning: linker path does not have real file for library $a_deplib."
3013 echo "*** I have the capability to make that library automatically link in when"
3014 echo "*** you link to this library. But I can only do this if you have a"
3015 echo "*** shared version of the library, which you do not appear to have"
3016 echo "*** because I did check the linker path looking for a file starting"
3017 if test -z "$potlib" ; then
3018 echo "*** with $libname but no candidates were found. (...for file magic test)"
3020 echo "*** with $libname and none of the candidates passed a file format test"
3021 echo "*** using a file magic. Last file checked: $potlib"
3025 # Add a -L argument.
3026 newdeplibs
="$newdeplibs $a_deplib"
3028 done # Gone through all deplibs.
3031 set dummy
$deplibs_check_method
3032 match_pattern_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3033 for a_deplib
in $deplibs; do
3034 name
="`expr $a_deplib : '-l\(.*\)'`"
3035 # If $name is empty we are operating on a -L argument.
3036 if test -n "$name" && test "$name" != "0"; then
3037 libname
=`eval \\$echo \"$libname_spec\"`
3038 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3039 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
3040 for potent_lib
in $potential_libs; do
3041 potlib
="$potent_lib" # see symlink-check above in file_magic test
3042 if eval echo \"$potent_lib\" 2>/dev
/null \
3044 |
egrep "$match_pattern_regex" > /dev
/null
; then
3045 newdeplibs
="$newdeplibs $a_deplib"
3051 if test -n "$a_deplib" ; then
3054 echo "*** Warning: linker path does not have real file for library $a_deplib."
3055 echo "*** I have the capability to make that library automatically link in when"
3056 echo "*** you link to this library. But I can only do this if you have a"
3057 echo "*** shared version of the library, which you do not appear to have"
3058 echo "*** because I did check the linker path looking for a file starting"
3059 if test -z "$potlib" ; then
3060 echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3062 echo "*** with $libname and none of the candidates passed a file format test"
3063 echo "*** using a regex pattern. Last file checked: $potlib"
3067 # Add a -L argument.
3068 newdeplibs
="$newdeplibs $a_deplib"
3070 done # Gone through all deplibs.
3074 if $echo "X $deplibs" |
$Xsed -e 's/ -lc$//' \
3075 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
3076 grep .
>/dev
/null
; then
3078 if test "X$deplibs_check_method" = "Xnone"; then
3079 echo "*** Warning: inter-library dependencies are not supported in this platform."
3081 echo "*** Warning: inter-library dependencies are not known to be supported."
3083 echo "*** All declared inter-library dependencies are being dropped."
3088 versuffix
=$versuffix_save
3090 release
=$release_save
3091 libname
=$libname_save
3095 *-*-rhapsody* |
*-*-darwin1.
[012])
3096 # On Rhapsody replace the C library is the System framework
3097 newdeplibs
=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3101 if test "$droppeddeps" = yes; then
3102 if test "$module" = yes; then
3104 echo "*** Warning: libtool could not satisfy all declared inter-library"
3105 echo "*** dependencies of module $libname. Therefore, libtool will create"
3106 echo "*** a static module, that should work as long as the dlopening"
3107 echo "*** application is linked with the -dlopen flag."
3108 if test -z "$global_symbol_pipe"; then
3110 echo "*** However, this would only work if libtool was able to extract symbol"
3111 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3112 echo "*** not find such a program. So, this module is probably useless."
3113 echo "*** \`nm' from GNU binutils and a full rebuild may help."
3115 if test "$build_old_libs" = no
; then
3116 oldlibs
="$output_objdir/$libname.$libext"
3117 build_libtool_libs
=module
3120 build_libtool_libs
=no
3123 echo "*** The inter-library dependencies that have been dropped here will be"
3124 echo "*** automatically added whenever a program is linked with this library"
3125 echo "*** or is declared to -dlopen it."
3127 if test "$allow_undefined" = no
; then
3129 echo "*** Since this library must not contain undefined symbols,"
3130 echo "*** because either the platform does not support them or"
3131 echo "*** it was explicitly requested with -no-undefined,"
3132 echo "*** libtool will only create a static version of it."
3133 if test "$build_old_libs" = no
; then
3134 oldlibs
="$output_objdir/$libname.$libext"
3135 build_libtool_libs
=module
3138 build_libtool_libs
=no
3143 # Done checking deplibs!
3147 # All the library-specific variables (install_libdir is set above).
3152 # Test again, we may have decided not to build it any more
3153 if test "$build_libtool_libs" = yes; then
3154 if test "$hardcode_into_libs" = yes; then
3155 # Hardcode the library paths
3158 rpath
="$finalize_rpath"
3159 test "$mode" != relink
&& test "$fast_install" = no
&& rpath
="$compile_rpath$rpath"
3160 for libdir
in $rpath; do
3161 if test -n "$hardcode_libdir_flag_spec"; then
3162 if test -n "$hardcode_libdir_separator"; then
3163 if test -z "$hardcode_libdirs"; then
3164 hardcode_libdirs
="$libdir"
3166 # Just accumulate the unique libdirs.
3167 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3168 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3171 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3176 eval flag
=\"$hardcode_libdir_flag_spec\"
3177 dep_rpath
="$dep_rpath $flag"
3179 elif test -n "$runpath_var"; then
3180 case "$perm_rpath " in
3182 *) perm_rpath
="$perm_rpath $libdir" ;;
3186 # Substitute the hardcoded libdirs into the rpath.
3187 if test -n "$hardcode_libdir_separator" &&
3188 test -n "$hardcode_libdirs"; then
3189 libdir
="$hardcode_libdirs"
3190 eval dep_rpath
=\"$hardcode_libdir_flag_spec\"
3192 if test -n "$runpath_var" && test -n "$perm_rpath"; then
3193 # We should set the runpath_var.
3195 for dir
in $perm_rpath; do
3198 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3200 test -n "$dep_rpath" && deplibs
="$dep_rpath $deplibs"
3203 shlibpath
="$finalize_shlibpath"
3204 test "$mode" != relink
&& shlibpath
="$compile_shlibpath$shlibpath"
3205 if test -n "$shlibpath"; then
3206 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3209 # Get the real and link names of the library.
3210 eval library_names
=\"$library_names_spec\"
3211 set dummy
$library_names
3215 if test -n "$soname_spec"; then
3216 eval soname
=\"$soname_spec\"
3220 if test -z "$dlname"; then
3224 lib
="$output_objdir/$realname"
3227 linknames
="$linknames $link"
3230 # Use standard objects if they are pic
3231 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3233 # Prepare the list of exported symbols
3234 if test -z "$export_symbols"; then
3235 if test "$always_export_symbols" = yes ||
test -n "$export_symbols_regex"; then
3236 $show "generating symbol list for \`$libname.la'"
3237 export_symbols
="$output_objdir/$libname.exp"
3238 $run $rm $export_symbols
3239 eval cmds
=\"$export_symbols_cmds\"
3240 save_ifs
="$IFS"; IFS
='~'
3241 for cmd
in $cmds; do
3244 $run eval "$cmd" ||
exit $?
3247 if test -n "$export_symbols_regex"; then
3248 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3249 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3250 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3251 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3256 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3257 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3260 if test -n "$convenience"; then
3261 if test -n "$whole_archive_flag_spec"; then
3262 save_libobjs
=$libobjs
3263 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
3265 gentop
="$output_objdir/${outputname}x"
3266 $show "${rm}r $gentop"
3267 $run ${rm}r
"$gentop"
3268 $show "$mkdir $gentop"
3269 $run $mkdir "$gentop"
3271 if test "$status" -ne 0 && test ! -d "$gentop"; then
3274 generated
="$generated $gentop"
3276 for xlib
in $convenience; do
3277 # Extract the objects.
3279 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3280 *) xabs
=`pwd`"/$xlib" ;;
3282 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3283 xdir
="$gentop/$xlib"
3285 $show "${rm}r $xdir"
3287 $show "$mkdir $xdir"
3290 if test "$status" -ne 0 && test ! -d "$xdir"; then
3293 $show "(cd $xdir && $AR x $xabs)"
3294 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3296 libobjs
="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3301 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3302 eval flag
=\"$thread_safe_flag_spec\"
3303 linker_flags
="$linker_flags $flag"
3306 # Make a backup of the uninstalled library when relinking
3307 if test "$mode" = relink
; then
3308 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' ||
exit $?
3311 # Add all flags from the command line. We here create a library,
3312 # but those flags were only added to compile_command and
3313 # finalize_command, which are only used when creating executables.
3314 # So do it by hand here.
3315 compiler_flags
="$compiler_flags $add_flags"
3316 # Only add it to commands which use CC, instead of LD, i.e.
3317 # only to $compiler_flags
3318 #linker_flags="$linker_flags $add_flags"
3320 # Do each of the archive commands.
3321 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3322 eval cmds
=\"$archive_expsym_cmds\"
3324 eval cmds
=\"$archive_cmds\"
3327 if len
=`expr "X$cmds" : ".*"` &&
3328 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
3331 # The command line is too long to link in one step, link piecewise.
3332 $echo "creating reloadable object files..."
3334 # Save the value of $output and $libobjs because we want to
3335 # use them later. If we have whole_archive_flag_spec, we
3336 # want to use save_libobjs as it was before
3337 # whole_archive_flag_spec was expanded, because we can't
3338 # assume the linker understands whole_archive_flag_spec.
3339 # This may have to be revisited, in case too many
3340 # convenience libraries get linked in and end up exceeding
3342 if test -z "$convenience" ||
test -z "$whole_archive_flag_spec"; then
3343 save_libobjs
=$libobjs
3347 # Clear the reloadable object creation command queue and
3348 # initialize k to one.
3355 output
=$output_objdir/$save_output-${k}.
$objext
3356 # Loop over the list of objects to be linked.
3357 for obj
in $save_libobjs
3359 eval test_cmds
=\"$reload_cmds $objlist $last_robj\"
3360 if test "X$objlist" = X ||
3361 { len
=`expr "X$test_cmds" : ".*"` &&
3362 test "$len" -le "$max_cmd_len"; }; then
3363 objlist
="$objlist $obj"
3365 # The command $test_cmds is almost too long, add a
3366 # command to the queue.
3367 if test "$k" -eq 1 ; then
3368 # The first file doesn't have a previous command to add.
3369 eval concat_cmds
=\"$reload_cmds $objlist $last_robj\"
3371 # All subsequent reloadable object files will link in
3372 # the last one created.
3373 eval concat_cmds
=\"\
$concat_cmds~
$reload_cmds $objlist $last_robj\"
3375 last_robj
=$output_objdir/$save_output-${k}.
$objext
3377 output
=$output_objdir/$save_output-${k}.
$objext
3382 # Handle the remaining objects by creating one last
3383 # reloadable object file. All subsequent reloadable object
3384 # files will link in the last one created.
3385 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
3386 eval concat_cmds
=\"\
${concat_cmds}$reload_cmds $objlist $last_robj\"
3388 # Set up a command to remove the reloadale object files
3389 # after they are used.
3391 while test "$i" -lt "$k"
3394 delfiles
="$delfiles $output_objdir/$save_output-${i}.$objext"
3397 $echo "creating a temporary reloadable object file: $output"
3399 # Loop through the commands generated above and execute them.
3400 save_ifs
="$IFS"; IFS
='~'
3401 for cmd
in $concat_cmds; do
3404 $run eval "$cmd" ||
exit $?
3409 # Restore the value of output.
3412 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3413 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
3415 # Expand the library linking commands again to reset the
3416 # value of $libobjs for piecewise linking.
3418 # Do each of the archive commands.
3419 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3420 eval cmds
=\"$archive_expsym_cmds\"
3422 eval cmds
=\"$archive_cmds\"
3425 # Append the command to remove the reloadable object files
3426 # to the just-reset $cmds.
3427 eval cmds
=\"\
$cmds~
$rm $delfiles\"
3429 save_ifs
="$IFS"; IFS
='~'
3430 for cmd
in $cmds; do
3433 $run eval "$cmd" ||
exit $?
3437 # Restore the uninstalled library and exit
3438 if test "$mode" = relink
; then
3439 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' ||
exit $?
3443 # Create links to the real library.
3444 for linkname
in $linknames; do
3445 if test "$realname" != "$linkname"; then
3446 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3447 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' ||
exit $?
3451 # If -module or -export-dynamic was specified, set the dlname.
3452 if test "$module" = yes ||
test "$export_dynamic" = yes; then
3453 # On all known operating systems, these are identical.
3460 if test -n "$deplibs"; then
3461 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3464 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3465 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3468 if test -n "$rpath"; then
3469 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3472 if test -n "$xrpath"; then
3473 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3476 if test -n "$vinfo"; then
3477 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3480 if test -n "$release"; then
3481 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3486 if test -n "$objs$old_deplibs"; then
3487 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3491 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
3499 # Delete the old objects.
3500 $run $rm $obj $libobj
3502 # Objects from convenience libraries. This assumes
3503 # single-version convenience libraries. Whenever we create
3504 # different ones for PIC/non-PIC, this we'll have to duplicate
3508 # reload_cmds runs $LD directly, so let us get rid of
3509 # -Wl from whole_archive_flag_spec
3512 if test -n "$convenience"; then
3513 if test -n "$whole_archive_flag_spec"; then
3514 eval reload_conv_objs
=\"\
$reload_objs $whole_archive_flag_spec\"
3516 gentop
="$output_objdir/${obj}x"
3517 $show "${rm}r $gentop"
3518 $run ${rm}r
"$gentop"
3519 $show "$mkdir $gentop"
3520 $run $mkdir "$gentop"
3522 if test "$status" -ne 0 && test ! -d "$gentop"; then
3525 generated
="$generated $gentop"
3527 for xlib
in $convenience; do
3528 # Extract the objects.
3530 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3531 *) xabs
=`pwd`"/$xlib" ;;
3533 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3534 xdir
="$gentop/$xlib"
3536 $show "${rm}r $xdir"
3538 $show "$mkdir $xdir"
3541 if test "$status" -ne 0 && test ! -d "$xdir"; then
3544 $show "(cd $xdir && $AR x $xabs)"
3545 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3547 reload_conv_objs
="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3552 # Create the old-style object.
3553 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
3556 eval cmds
=\"$reload_cmds\"
3557 save_ifs
="$IFS"; IFS
='~'
3558 for cmd
in $cmds; do
3561 $run eval "$cmd" ||
exit $?
3565 # Exit if we aren't doing a library object file.
3566 if test -z "$libobj"; then
3567 if test -n "$gentop"; then
3568 $show "${rm}r $gentop"
3575 if test "$build_libtool_libs" != yes; then
3576 if test -n "$gentop"; then
3577 $show "${rm}r $gentop"
3581 # Create an invalid libtool object if no PIC, so that we don't
3582 # accidentally link it into a program.
3583 # $show "echo timestamp > $libobj"
3584 # $run eval "echo timestamp > $libobj" || exit $?
3588 if test -n "$pic_flag" ||
test "$pic_mode" != default
; then
3589 # Only do commands if we really have different PIC objects.
3590 reload_objs
="$libobjs $reload_conv_objs"
3592 eval cmds
=\"$reload_cmds\"
3593 save_ifs
="$IFS"; IFS
='~'
3594 for cmd
in $cmds; do
3597 $run eval "$cmd" ||
exit $?
3602 if test -n "$gentop"; then
3603 $show "${rm}r $gentop"
3612 *cygwin
*) output
=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
3614 if test -n "$vinfo"; then
3615 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3618 if test -n "$release"; then
3619 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3622 if test "$preload" = yes; then
3623 if test "$dlopen_support" = unknown
&& test "$dlopen_self" = unknown
&&
3624 test "$dlopen_self_static" = unknown
; then
3625 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3630 *-*-rhapsody* |
*-*-darwin1.
[012])
3631 # On Rhapsody replace the C library is the System framework
3632 compile_deplibs
=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3633 finalize_deplibs
=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3637 compile_command
="$compile_command $compile_deplibs"
3638 finalize_command
="$finalize_command $finalize_deplibs"
3640 if test -n "$rpath$xrpath"; then
3641 # If the user specified any rpath flags, then add them.
3642 for libdir
in $rpath $xrpath; do
3643 # This is the magic to use -rpath.
3644 case "$finalize_rpath " in
3646 *) finalize_rpath
="$finalize_rpath $libdir" ;;
3651 # Now hardcode the library paths
3654 for libdir
in $compile_rpath $finalize_rpath; do
3655 if test -n "$hardcode_libdir_flag_spec"; then
3656 if test -n "$hardcode_libdir_separator"; then
3657 if test -z "$hardcode_libdirs"; then
3658 hardcode_libdirs
="$libdir"
3660 # Just accumulate the unique libdirs.
3661 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3662 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3665 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3670 eval flag
=\"$hardcode_libdir_flag_spec\"
3671 rpath
="$rpath $flag"
3673 elif test -n "$runpath_var"; then
3674 case "$perm_rpath " in
3676 *) perm_rpath
="$perm_rpath $libdir" ;;
3680 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
3681 case :$dllsearchpath: in
3683 *) dllsearchpath
="$dllsearchpath:$libdir";;
3688 # Substitute the hardcoded libdirs into the rpath.
3689 if test -n "$hardcode_libdir_separator" &&
3690 test -n "$hardcode_libdirs"; then
3691 libdir
="$hardcode_libdirs"
3692 eval rpath
=\" $hardcode_libdir_flag_spec\"
3694 compile_rpath
="$rpath"
3698 for libdir
in $finalize_rpath; do
3699 if test -n "$hardcode_libdir_flag_spec"; then
3700 if test -n "$hardcode_libdir_separator"; then
3701 if test -z "$hardcode_libdirs"; then
3702 hardcode_libdirs
="$libdir"
3704 # Just accumulate the unique libdirs.
3705 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3706 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3709 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3714 eval flag
=\"$hardcode_libdir_flag_spec\"
3715 rpath
="$rpath $flag"
3717 elif test -n "$runpath_var"; then
3718 case "$finalize_perm_rpath " in
3720 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
3724 # Substitute the hardcoded libdirs into the rpath.
3725 if test -n "$hardcode_libdir_separator" &&
3726 test -n "$hardcode_libdirs"; then
3727 libdir
="$hardcode_libdirs"
3728 eval rpath
=\" $hardcode_libdir_flag_spec\"
3730 finalize_rpath
="$rpath"
3732 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3733 # Transform all the library objects into standard objects.
3734 compile_command
=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3735 finalize_command
=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3739 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3740 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3741 dlsyms
="${outputname}S.c"
3743 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3747 if test -n "$dlsyms"; then
3751 # Discover the nlist of each of the dlfiles.
3752 nlist
="$output_objdir/${outputname}.nm"
3754 $show "$rm $nlist ${nlist}S ${nlist}T"
3755 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3757 # Parse the name list into a source file.
3758 $show "creating $output_objdir/$dlsyms"
3760 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3761 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3762 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3768 /* Prevent the only kind of declaration conflicts we can make. */
3769 #define lt_preloaded_symbols some_other_symbol
3771 /* External symbol declarations for the compiler. */\
3774 if test "$dlself" = yes; then
3775 $show "generating symbol list for \`$output'"
3777 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3779 # Add our own program objects to the symbol list.
3780 progfiles
=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3781 for arg
in $progfiles; do
3782 $show "extracting global C symbols from \`$arg'"
3783 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3786 if test -n "$exclude_expsyms"; then
3787 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3788 $run eval '$mv "$nlist"T "$nlist"'
3791 if test -n "$export_symbols_regex"; then
3792 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3793 $run eval '$mv "$nlist"T "$nlist"'
3796 # Prepare the list of exported symbols
3797 if test -z "$export_symbols"; then
3798 export_symbols
="$output_objdir/$output.exp"
3799 $run $rm $export_symbols
3800 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3802 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3803 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3804 $run eval 'mv "$nlist"T "$nlist"'
3808 for arg
in $dlprefiles; do
3809 $show "extracting global C symbols from \`$arg'"
3810 name
=`echo "$arg" | ${SED} -e 's%^.*/%%'`
3811 $run eval 'echo ": $name " >> "$nlist"'
3812 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3815 if test -z "$run"; then
3816 # Make sure we have at least an empty file.
3817 test -f "$nlist" ||
: > "$nlist"
3819 if test -n "$exclude_expsyms"; then
3820 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3821 $mv "$nlist"T
"$nlist"
3824 # Try sorting and uniquifying the output.
3825 if grep -v "^: " < "$nlist" |
sort +2 |
uniq > "$nlist"S
; then
3828 grep -v "^: " < "$nlist" > "$nlist"S
3831 if test -f "$nlist"S
; then
3832 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3834 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3837 $echo >> "$output_objdir/$dlsyms" "\
3839 #undef lt_preloaded_symbols
3841 #if defined (__STDC__) && __STDC__
3842 # define lt_ptr void *
3844 # define lt_ptr char *
3848 /* The mapping between symbol names and symbols. */
3853 lt_preloaded_symbols[] =
3857 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
3859 $echo >> "$output_objdir/$dlsyms" "\
3863 /* This works around a problem in FreeBSD linker */
3864 #ifdef FREEBSD_WORKAROUND
3865 static const void *lt_preloaded_setup() {
3866 return lt_preloaded_symbols;
3876 pic_flag_for_symtable
=
3878 # compiling the symbol table file with pic_flag works around
3879 # a FreeBSD bug that causes programs to crash when -lm is
3880 # linked before any other PIC object. But we must not use
3881 # pic_flag when linking with -static. The problem exists in
3882 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3883 *-*-freebsd2*|
*-*-freebsd3.0
*|
*-*-freebsdelf3.0
*)
3884 case "$compile_command " in
3886 *) pic_flag_for_symtable
=" $pic_flag -DFREEBSD_WORKAROUND";;
3889 case "$compile_command " in
3891 *) pic_flag_for_symtable
=" $pic_flag";;
3895 # Now compile the dynamic symbol file.
3896 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3897 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' ||
exit $?
3899 # Clean up the generated files.
3900 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3901 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3903 # Transform the symbol file into the correct name.
3904 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3905 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3908 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3913 # We keep going just in case the user didn't refer to
3914 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3915 # really was required.
3917 # Nullify the symbol file.
3918 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3919 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3922 # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
3923 # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
3924 # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
3925 # This does not apply on AIX for ia64, which uses a SysV linker.
3928 *-*-aix4* |
*-*-aix5*)
3929 compile_command
=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
3930 finalize_command
=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
3933 if test "$need_relink" = no ||
test "$build_libtool_libs" != yes; then
3934 # Replace the output file specification.
3935 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3936 link_command
="$compile_command$compile_rpath"
3938 # We have no uninstalled library dependencies, so finalize right now.
3939 $show "$link_command"
3940 $run eval "$link_command"
3943 # Delete the generated files.
3944 if test -n "$dlsyms"; then
3945 $show "$rm $output_objdir/${outputname}S.${objext}"
3946 $run $rm "$output_objdir/${outputname}S.${objext}"
3952 if test -n "$shlibpath_var"; then
3953 # We should set the shlibpath_var
3955 for dir
in $temp_rpath; do
3957 [\\/]* |
[A-Za-z
]:[\\/]*)
3962 # Relative path: add a thisdir entry.
3963 rpath
="$rpath\$thisdir/$dir:"
3970 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3971 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3973 if test -n "$finalize_shlibpath"; then
3974 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3979 if test -n "$runpath_var"; then
3980 if test -n "$perm_rpath"; then
3981 # We should set the runpath_var.
3983 for dir
in $perm_rpath; do
3986 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
3988 if test -n "$finalize_perm_rpath"; then
3989 # We should set the runpath_var.
3991 for dir
in $finalize_perm_rpath; do
3994 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
3998 if test "$no_install" = yes; then
3999 # We don't need to create a wrapper script.
4000 link_command
="$compile_var$compile_command$compile_rpath"
4001 # Replace the output file specification.
4002 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4003 # Delete the old output file.
4005 # Link the executable and exit
4006 $show "$link_command"
4007 $run eval "$link_command" ||
exit $?
4011 if test "$hardcode_action" = relink
; then
4012 # Fast installation is not supported
4013 link_command
="$compile_var$compile_command$compile_rpath"
4014 relink_command
="$finalize_var$finalize_command$finalize_rpath"
4016 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4017 $echo "$modename: \`$output' will be relinked during installation" 1>&2
4019 if test "$fast_install" != no
; then
4020 link_command
="$finalize_var$compile_command$finalize_rpath"
4021 if test "$fast_install" = yes; then
4022 relink_command
=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4024 # fast_install is set to needless
4028 link_command
="$compile_var$compile_command$compile_rpath"
4029 relink_command
="$finalize_var$finalize_command$finalize_rpath"
4033 # Replace the output file specification.
4034 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4036 # Delete the old output files.
4037 $run $rm $output $output_objdir/$outputname $output_objdir/lt-
$outputname
4039 $show "$link_command"
4040 $run eval "$link_command" ||
exit $?
4042 # Now create the wrapper script.
4043 $show "creating $output"
4045 # Quote the relink command for shipping.
4046 if test -n "$relink_command"; then
4047 # Preserve any variables that may affect compiler behavior
4048 for var
in $variables_saved_for_relink; do
4049 if eval test -z \"\
${$var+set}\"; then
4050 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4051 elif eval var_value
=\$
$var; test -z "$var_value"; then
4052 relink_command
="$var=; export $var; $relink_command"
4054 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4055 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
4058 relink_command
="(cd `pwd`; $relink_command)"
4059 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4062 # Quote $echo for shipping.
4063 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
4065 [\\/]* |
[A-Za-z
]:[\\/]*) qecho
="$SHELL $0 --fallback-echo";;
4066 *) qecho
="$SHELL `pwd`/$0 --fallback-echo";;
4068 qecho
=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4070 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4073 # Only actually do things if our run command is non-null.
4074 if test -z "$run"; then
4075 # win32 will think the script is a binary if it has
4076 # a .exe suffix, so we strip it off here.
4078 *.exe
) output
=`echo $output|${SED} 's,.exe$,,'` ;;
4080 # test for cygwin because mv fails w/o .exe extensions
4082 *cygwin
*) exeext
=.exe
;;
4086 trap "$rm $output; exit 1" 1 2 15
4091 # $output - temporary wrapper script for $objdir/$outputname
4092 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4094 # The $output program cannot be directly executed until all the libtool
4095 # libraries that it depends on are installed.
4097 # This wrapper script should never be moved out of the build directory.
4098 # If it is, it will not operate correctly.
4100 # Sed substitution that helps us do robust quoting. It backslashifies
4101 # metacharacters that are still active within double-quoted strings.
4102 Xsed='${SED} -e 1s/^X//'
4103 sed_quote_subst='$sed_quote_subst'
4105 # The HP-UX ksh and POSIX shell print the target directory to stdout
4107 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
4109 relink_command=\"$relink_command\"
4111 # This environment variable determines our operation mode.
4112 if test \"\$libtool_install_magic\" = \"$magic\"; then
4113 # install mode needs the following variable:
4114 notinst_deplibs='$notinst_deplibs'
4116 # When we are sourced in execute mode, \$file and \$echo are already set.
4117 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4120 # Make sure echo works.
4121 if test \"X\$1\" = X--no-reexec; then
4122 # Discard the --no-reexec flag, and continue.
4124 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
4125 # Yippee, \$echo works!
4128 # Restart under the correct shell, and then maybe \$echo will work.
4129 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
4135 # Find the directory that this script lives in.
4136 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
4137 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4139 # Follow symbolic links until we get to the real thisdir.
4140 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4141 while test -n \"\$file\"; do
4142 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4144 # If there was a directory component, then change thisdir.
4145 if test \"x\$destdir\" != \"x\$file\"; then
4146 case \"\$destdir\" in
4147 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4148 *) thisdir=\"\$thisdir/\$destdir\" ;;
4152 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4153 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4156 # Try to get the absolute directory name.
4157 absdir=\`cd \"\$thisdir\" && pwd\`
4158 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4161 if test "$fast_install" = yes; then
4163 program=lt-'$outputname'$exeext
4164 progdir=\"\$thisdir/$objdir\"
4166 if test ! -f \"\$progdir/\$program\" || \\
4167 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4168 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4170 file=\"\$\$-\$program\"
4172 if test ! -d \"\$progdir\"; then
4173 $mkdir \"\$progdir\"
4175 $rm \"\$progdir/\$file\"
4180 # relink executable if necessary
4181 if test -n \"\$relink_command\"; then
4182 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4184 $echo \"\$relink_command_output\" >&2
4185 $rm \"\$progdir/\$file\"
4190 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4191 { $rm \"\$progdir/\$program\";
4192 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4193 $rm \"\$progdir/\$file\"
4197 program='$outputname'
4198 progdir=\"\$thisdir/$objdir\"
4204 if test -f \"\$progdir/\$program\"; then"
4206 # Export our shlibpath_var if we have one.
4207 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4209 # Add our own library path to $shlibpath_var
4210 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4212 # Some systems cannot cope with colon-terminated $shlibpath_var
4213 # The second colon is a workaround for a bug in BeOS R4 sed
4214 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4216 export $shlibpath_var
4220 # fixup the dll searchpath if we need to.
4221 if test -n "$dllsearchpath"; then
4223 # Add the dll search path components to the executable PATH
4224 PATH=$dllsearchpath:\$PATH
4229 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4230 # Run the actual program with our arguments.
4233 # win32 systems need to use the prog path for dll
4235 *-*-cygwin* |
*-*-pw32*)
4237 exec \$progdir/\$program \${1+\"\$@\"}
4241 # Backslashes separate directories on plain windows
4242 *-*-mingw |
*-*-os2*)
4244 exec \$progdir\\\\\$program \${1+\"\$@\"}
4250 # Export the path to the program.
4251 PATH=\"\$progdir:\$PATH\"
4254 exec \$program \${1+\"\$@\"}
4259 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4263 # The program doesn't exist.
4264 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4265 \$echo \"This script is just a wrapper for \$program.\" 1>&2
4266 echo \"See the $PACKAGE documentation for more information.\" 1>&2
4277 # See if we need to build an old-fashioned archive.
4278 for oldlib
in $oldlibs; do
4280 if test "$build_libtool_libs" = convenience
; then
4281 oldobjs
="$libobjs_save"
4282 addlibs
="$convenience"
4283 build_libtool_libs
=no
4285 if test "$build_libtool_libs" = module
; then
4286 oldobjs
="$libobjs_save"
4287 build_libtool_libs
=no
4289 #oldobjs="$oldobjs$old_deplibs $non_pic_objects"
4290 oldobjs
="$old_deplibs $non_pic_objects"
4292 addlibs
="$old_convenience"
4295 if test -n "$addlibs"; then
4296 gentop
="$output_objdir/${outputname}x"
4297 $show "${rm}r $gentop"
4298 $run ${rm}r
"$gentop"
4299 $show "$mkdir $gentop"
4300 $run $mkdir "$gentop"
4302 if test "$status" -ne 0 && test ! -d "$gentop"; then
4305 generated
="$generated $gentop"
4307 # Add in members from convenience archives.
4308 for xlib
in $addlibs; do
4309 # Extract the objects.
4311 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
4312 *) xabs
=`pwd`"/$xlib" ;;
4314 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
4315 xdir
="$gentop/$xlib"
4317 $show "${rm}r $xdir"
4319 $show "$mkdir $xdir"
4322 if test "$status" -ne 0 && test ! -d "$xdir"; then
4325 $show "(cd $xdir && $AR x $xabs)"
4326 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
4328 oldobjs
="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
4332 compiler_flags
="$compiler_flags $add_flags"
4334 # Do each command in the archive commands.
4335 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
4336 eval cmds
=\"$old_archive_from_new_cmds\"
4338 eval cmds
=\"$old_archive_cmds\"
4340 if len
=`expr "X$cmds" : ".*"` &&
4341 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
4344 # the command line is too long to link in one step, link in parts
4345 $echo "using piecewise archive linking..."
4350 save_oldobjs
=$oldobjs
4351 for obj
in $save_oldobjs
4353 oldobjs
="$objlist $obj"
4354 objlist
="$objlist $obj"
4355 eval test_cmds
=\"$old_archive_cmds\"
4356 if len
=`expr "X$test_cmds" : ".*"` &&
4357 test "$len" -le "$max_cmd_len"; then
4360 # the above command should be used before it gets too long
4362 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
4363 eval concat_cmds
=\"\
${concat_cmds}$old_archive_cmds\"
4369 eval cmds
=\"\
$concat_cmds~
$old_archive_cmds\"
4372 save_ifs
="$IFS"; IFS
='~'
4373 for cmd
in $cmds; do
4376 $run eval "$cmd" ||
exit $?
4381 if test -n "$generated"; then
4382 $show "${rm}r$generated"
4383 $run ${rm}r
$generated
4386 # Now create the libtool archive.
4390 test "$build_old_libs" = yes && old_library
="$libname.$libext"
4391 $show "creating $output"
4393 # Preserve any variables that may affect compiler behavior
4394 for var
in $variables_saved_for_relink; do
4395 if eval test -z \"\
${$var+set}\"; then
4396 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4397 elif eval var_value
=\$
$var; test -z "$var_value"; then
4398 relink_command
="$var=; export $var; $relink_command"
4400 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4401 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
4404 # Quote the link command for shipping.
4405 relink_command
="($relink_command; cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
4406 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4408 # Only create the output if not a dry run.
4409 if test -z "$run"; then
4410 for installed
in no
yes; do
4411 if test "$installed" = yes; then
4412 if test -z "$install_libdir"; then
4415 output
="$output_objdir/$outputname"i
4416 # Replace all uninstalled libtool libraries with the installed ones
4418 for deplib
in $dependency_libs; do
4421 name
=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
4422 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
4423 if test -z "$libdir"; then
4424 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
4427 newdependency_libs
="$newdependency_libs $libdir/$name"
4429 *) newdependency_libs
="$newdependency_libs $deplib" ;;
4432 dependency_libs
="$newdependency_libs"
4434 for lib
in $dlfiles; do
4435 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4436 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4437 if test -z "$libdir"; then
4438 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4441 newdlfiles
="$newdlfiles $libdir/$name"
4443 dlfiles
="$newdlfiles"
4445 for lib
in $dlprefiles; do
4446 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4447 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4448 if test -z "$libdir"; then
4449 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4452 newdlprefiles
="$newdlprefiles $libdir/$name"
4454 dlprefiles
="$newdlprefiles"
4457 # place dlname in correct position for cygwin
4459 case $host,$output,$installed,$module,$dlname in
4460 *cygwin
*,*lai
,yes,no
,*.dll
) tdlname
=..
/bin
/$dlname ;;
4463 # $outputname - a libtool library file
4464 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4466 # Please DO NOT delete this file!
4467 # It is necessary for linking the library.
4469 # The name that we can dlopen(3).
4472 # Names of this library.
4473 library_names='$library_names'
4475 # The name of the static archive.
4476 old_library='$old_library'
4478 # Libraries that this one depends upon.
4479 dependency_libs='$dependency_libs'
4481 # Version information for $libname.
4486 # Is this an already installed library?
4487 installed=$installed
4489 # Files to dlopen/dlpreopen
4491 dlpreopen='$dlprefiles'
4493 # Directory that this library needs to be installed in:
4494 libdir='$install_libdir'"
4495 if test "$installed" = no
&& test "$need_relink" = yes && test "$fast_install" = no
; then
4497 relink_command=\"$relink_command\""
4502 # Do a symbolic link so that the libtool archive can be found in
4503 # LD_LIBRARY_PATH before the program is installed.
4504 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4505 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' ||
exit $?
4511 # libtool install mode
4513 modename
="$modename: install"
4515 # There may be an optional sh(1) argument at the beginning of
4516 # install_prog (especially on Windows NT).
4517 if test "$nonopt" = "$SHELL" ||
test "$nonopt" = /bin
/sh ||
4518 # Allow the use of GNU shtool's install command.
4519 $echo "X$nonopt" |
$Xsed |
grep shtool
> /dev
/null
; then
4520 # Aesthetically quote it.
4521 arg
=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4523 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4527 install_prog
="$arg "
4535 # The real first argument should be the name of the installation program.
4536 # Aesthetically quote it.
4537 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4539 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4543 install_prog
="$install_prog$arg"
4545 # We need to accept at least all the BSD install flags.
4555 if test -n "$dest"; then
4556 files
="$files $dest"
4574 # If the previous option needed an argument, then skip it.
4575 if test -n "$prev"; then
4584 # Aesthetically quote the argument.
4585 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4587 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4591 install_prog
="$install_prog $arg"
4594 if test -z "$install_prog"; then
4595 $echo "$modename: you must specify an install program" 1>&2
4600 if test -n "$prev"; then
4601 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4606 if test -z "$files"; then
4607 if test -z "$dest"; then
4608 $echo "$modename: no file or destination specified" 1>&2
4610 $echo "$modename: you must specify a destination" 1>&2
4616 # Strip any trailing slash from the destination.
4617 dest
=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4619 # Check to see that the destination is a directory.
4620 test -d "$dest" && isdir
=yes
4621 if test "$isdir" = yes; then
4625 destdir
=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4626 test "X$destdir" = "X$dest" && destdir
=.
4627 destname
=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4629 # Not a directory, so check to see that there is only one file specified.
4631 if test "$#" -gt 2; then
4632 $echo "$modename: \`$dest' is not a directory" 1>&2
4638 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
4640 for file in $files; do
4644 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4653 # This variable tells wrapper scripts just to set variables rather
4654 # than running their programs.
4655 libtool_install_magic
="$magic"
4660 for file in $files; do
4662 # Do each installation.
4665 # Do the static libraries later.
4666 staticlibs
="$staticlibs $file"
4670 # Check to see that this really is a libtool archive.
4671 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
4673 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4681 # If there is no directory component, then add one.
4683 */* |
*\\*) .
$file ;;
4687 # Add the libdir to current_libdirs if it is the destination.
4688 if test "X$destdir" = "X$libdir"; then
4689 case "$current_libdirs " in
4691 *) current_libdirs
="$current_libdirs $libdir" ;;
4694 # Note the libdir as a future libdir.
4695 case "$future_libdirs " in
4697 *) future_libdirs
="$future_libdirs $libdir" ;;
4701 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4702 test "X$dir" = "X$file/" && dir
=
4705 if test -n "$relink_command"; then
4706 $echo "$modename: warning: relinking \`$file'" 1>&2
4707 $show "$relink_command"
4708 if $run eval "$relink_command"; then :
4710 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4715 # See the names of the shared library.
4716 set dummy
$library_names
4717 if test -n "$2"; then
4723 test -n "$relink_command" && srcname
="$realname"T
4725 # Install the shared library and build the symlinks.
4726 $show "$install_prog $dir/$srcname $destdir/$realname"
4727 $run eval "$install_prog $dir/$srcname $destdir/$realname" ||
exit $?
4728 if test -n "$stripme" && test -n "$striplib"; then
4729 $show "$striplib $destdir/$realname"
4730 $run eval "$striplib $destdir/$realname" ||
exit $?
4733 if test "$#" -gt 0; then
4734 # Delete the old symlinks, and create new ones.
4737 if test "$linkname" != "$realname"; then
4738 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4739 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4744 # Do each command in the postinstall commands.
4745 lib
="$destdir/$realname"
4746 eval cmds
=\"$postinstall_cmds\"
4747 save_ifs
="$IFS"; IFS
='~'
4748 for cmd
in $cmds; do
4751 $run eval "$cmd" ||
exit $?
4756 # Install the pseudo-library for information purposes.
4757 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4758 instname
="$dir/$name"i
4759 $show "$install_prog $instname $destdir/$name"
4760 $run eval "$install_prog $instname $destdir/$name" ||
exit $?
4762 # Maybe install the static library, too.
4763 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
4767 # Install (i.e. copy) a libtool object.
4769 # Figure out destination file name, if it wasn't already specified.
4770 if test -n "$destname"; then
4771 destfile
="$destdir/$destname"
4773 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4774 destfile
="$destdir/$destfile"
4777 # Deduce the name of the destination old-style object file.
4780 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4783 staticdest
="$destfile"
4787 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4793 # Install the libtool object if requested.
4794 if test -n "$destfile"; then
4795 $show "$install_prog $file $destfile"
4796 $run eval "$install_prog $file $destfile" ||
exit $?
4799 # Install the old object if enabled.
4800 if test "$build_old_libs" = yes; then
4801 # Deduce the name of the old-style object file.
4802 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
4804 $show "$install_prog $staticobj $staticdest"
4805 $run eval "$install_prog \$staticobj \$staticdest" ||
exit $?
4811 # Figure out destination file name, if it wasn't already specified.
4812 if test -n "$destname"; then
4813 destfile
="$destdir/$destname"
4815 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4816 destfile
="$destdir/$destfile"
4819 # Do a test to see if this is really a libtool program.
4822 wrapper
=`echo $file | ${SED} -e 's,.exe$,,'`
4828 if (${SED} -e '4q' $wrapper |
egrep "^# Generated by .*$PACKAGE")>/dev
/null
2>&1; then
4832 # If there is no directory component, then add one.
4834 */* |
*\\*) .
$wrapper ;;
4838 # Check the variables that should have been set.
4839 if test -z "$notinst_deplibs"; then
4840 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
4845 for lib
in $notinst_deplibs; do
4846 # Check to see that each library is installed.
4848 if test -f "$lib"; then
4849 # If there is no directory component, then add one.
4851 */* |
*\\*) .
$lib ;;
4855 libfile
="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4856 if test -n "$libdir" && test ! -f "$libfile"; then
4857 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4863 # If there is no directory component, then add one.
4865 */* |
*\\*) .
$file ;;
4870 if test "$fast_install" = no
&& test -n "$relink_command"; then
4871 if test "$finalize" = yes && test -z "$run"; then
4873 test -n "$TMPDIR" && tmpdir
="$TMPDIR"
4874 tmpdir
="$tmpdir/libtool-$$"
4875 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4877 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4880 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4881 outputname
="$tmpdir/$file"
4882 # Replace the output file specification.
4883 relink_command
=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4885 $show "$relink_command"
4886 if $run eval "$relink_command"; then :
4888 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4894 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4897 # Install the binary that we compiled earlier.
4898 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4902 # remove .exe since cygwin /usr/bin/install will append another
4904 case $install_prog,$host in
4905 */usr
/bin
/install*,*cygwin
*)
4906 case $file:$destfile in
4911 destfile
=$destfile.exe
4914 destfile
=`echo $destfile | ${SED} -e 's,.exe$,,'`
4919 $show "$install_prog$stripme $file $destfile"
4920 $run eval "$install_prog\$stripme \$file \$destfile" ||
exit $?
4921 test -n "$outputname" && ${rm}r
"$tmpdir"
4926 for file in $staticlibs; do
4927 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4929 # Set up the ranlib parameters.
4930 oldlib
="$destdir/$name"
4932 $show "$install_prog $file $oldlib"
4933 $run eval "$install_prog \$file \$oldlib" ||
exit $?
4935 if test -n "$stripme" && test -n "$striplib"; then
4936 $show "$old_striplib $oldlib"
4937 $run eval "$old_striplib $oldlib" ||
exit $?
4940 # Do each command in the postinstall commands.
4941 eval cmds
=\"$old_postinstall_cmds\"
4942 save_ifs
="$IFS"; IFS
='~'
4943 for cmd
in $cmds; do
4946 $run eval "$cmd" ||
exit $?
4951 if test -n "$future_libdirs"; then
4952 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4955 if test -n "$current_libdirs"; then
4956 # Maybe just do a dry run.
4957 test -n "$run" && current_libdirs
=" -n$current_libdirs"
4958 exec_cmd
='$SHELL $0 --finish$current_libdirs'
4964 # libtool finish mode
4966 modename
="$modename: finish"
4970 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4973 libdirs
="$libdirs $dir"
4976 for libdir
in $libdirs; do
4977 if test -n "$finish_cmds"; then
4978 # Do each command in the finish commands.
4979 eval cmds
=\"$finish_cmds\"
4980 save_ifs
="$IFS"; IFS
='~'
4981 for cmd
in $cmds; do
4984 $run eval "$cmd" || admincmds
="$admincmds
4989 if test -n "$finish_eval"; then
4990 # Do the single finish_eval.
4991 eval cmds
=\"$finish_eval\"
4992 $run eval "$cmds" || admincmds
="$admincmds
4998 # Exit here if they wanted silent mode.
5001 echo "----------------------------------------------------------------------"
5002 echo "Libraries have been installed in:"
5003 for libdir
in $libdirs; do
5007 echo "If you ever happen to want to link against installed libraries"
5008 echo "in a given directory, LIBDIR, you must either use libtool, and"
5009 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
5010 echo "flag during linking and do at least one of the following:"
5011 if test -n "$shlibpath_var"; then
5012 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
5013 echo " during execution"
5015 if test -n "$runpath_var"; then
5016 echo " - add LIBDIR to the \`$runpath_var' environment variable"
5017 echo " during linking"
5019 if test -n "$hardcode_libdir_flag_spec"; then
5021 eval flag
=\"$hardcode_libdir_flag_spec\"
5023 echo " - use the \`$flag' linker flag"
5025 if test -n "$admincmds"; then
5026 echo " - have your system administrator run these commands:$admincmds"
5028 if test -f /etc
/ld.so.conf
; then
5029 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
5032 echo "See any operating system documentation about shared libraries for"
5033 echo "more information, such as the ld(1) and ld.so(8) manual pages."
5034 echo "----------------------------------------------------------------------"
5038 # libtool execute mode
5040 modename
="$modename: execute"
5042 # The first argument is the command name.
5044 if test -z "$cmd"; then
5045 $echo "$modename: you must specify a COMMAND" 1>&2
5050 # Handle -dlopen flags immediately.
5051 for file in $execute_dlfiles; do
5052 if test ! -f "$file"; then
5053 $echo "$modename: \`$file' is not a file" 1>&2
5061 # Check to see that this really is a libtool archive.
5062 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
5064 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5069 # Read the libtool library.
5073 # If there is no directory component, then add one.
5075 */* |
*\\*) .
$file ;;
5079 # Skip this library if it cannot be dlopened.
5080 if test -z "$dlname"; then
5081 # Warn if it was a shared library.
5082 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
5086 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5087 test "X$dir" = "X$file" && dir
=.
5089 if test -f "$dir/$objdir/$dlname"; then
5092 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
5098 # Just add the directory containing the .lo file.
5099 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5100 test "X$dir" = "X$file" && dir
=.
5104 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
5109 # Get the absolute pathname.
5110 absdir
=`cd "$dir" && pwd`
5111 test -n "$absdir" && dir
="$absdir"
5113 # Now add the directory to shlibpath_var.
5114 if eval "test -z \"\$$shlibpath_var\""; then
5115 eval "$shlibpath_var=\"\$dir\""
5117 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
5121 # This variable tells wrapper scripts just to set shlibpath_var
5122 # rather than running their programs.
5123 libtool_execute_magic
="$magic"
5125 # Check if any of the arguments is a wrapper script.
5132 # Do a test to see if this is really a libtool program.
5133 if (${SED} -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
5134 # If there is no directory component, then add one.
5136 */* |
*\\*) .
$file ;;
5140 # Transform arg to wrapped name.
5141 file="$progdir/$program"
5145 # Quote arguments (to preserve shell metacharacters).
5146 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5147 args
="$args \"$file\""
5150 if test -z "$run"; then
5151 if test -n "$shlibpath_var"; then
5152 # Export the shlibpath_var.
5153 eval "export $shlibpath_var"
5156 # Restore saved enviroment variables
5157 if test "${save_LC_ALL+set}" = set; then
5158 LC_ALL
="$save_LC_ALL"; export LC_ALL
5160 if test "${save_LANG+set}" = set; then
5161 LANG
="$save_LANG"; export LANG
5164 # Now prepare to actually exec the command.
5165 exec_cmd
="\$cmd$args"
5167 # Display what would be done.
5168 if test -n "$shlibpath_var"; then
5169 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5170 $echo "export $shlibpath_var"
5177 # libtool clean and uninstall mode
5179 modename
="$modename: $mode"
5185 # This variable tells wrapper scripts just to set variables rather
5186 # than running their programs.
5187 libtool_install_magic
="$magic"
5192 -f) rm="$rm $arg"; rmforce
=yes ;;
5193 -*) rm="$rm $arg" ;;
5194 *) files
="$files $arg" ;;
5198 if test -z "$rm"; then
5199 $echo "$modename: you must specify an RM program" 1>&2
5206 for file in $files; do
5207 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5208 if test "X$dir" = "X$file"; then
5212 objdir
="$dir/$objdir"
5214 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5215 test "$mode" = uninstall
&& objdir
="$dir"
5217 # Remember objdir for removal later, being careful to avoid duplicates
5218 if test "$mode" = clean
; then
5221 *) rmdirs
="$rmdirs $objdir" ;;
5225 # Don't error if the file doesn't exist and rm -f was used.
5226 if (test -L "$file") >/dev
/null
2>&1 \
5227 ||
(test -h "$file") >/dev
/null
2>&1 \
5228 ||
test -f "$file"; then
5230 elif test -d "$file"; then
5233 elif test "$rmforce" = yes; then
5241 # Possibly a libtool archive, so verify it.
5242 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
5245 # Delete the libtool libraries and symlinks.
5246 for n
in $library_names; do
5247 rmfiles
="$rmfiles $objdir/$n"
5249 test -n "$old_library" && rmfiles
="$rmfiles $objdir/$old_library"
5250 test "$mode" = clean
&& rmfiles
="$rmfiles $objdir/$name $objdir/${name}i"
5252 if test "$mode" = uninstall
; then
5253 if test -n "$library_names"; then
5254 # Do each command in the postuninstall commands.
5255 eval cmds
=\"$postuninstall_cmds\"
5256 save_ifs
="$IFS"; IFS
='~'
5257 for cmd
in $cmds; do
5261 if test "$?" -ne 0 && test "$rmforce" != yes; then
5268 if test -n "$old_library"; then
5269 # Do each command in the old_postuninstall commands.
5270 eval cmds
=\"$old_postuninstall_cmds\"
5271 save_ifs
="$IFS"; IFS
='~'
5272 for cmd
in $cmds; do
5276 if test "$?" -ne 0 && test "$rmforce" != yes; then
5282 # FIXME: should reinstall the best remaining shared library.
5288 # Possibly a libtool object, so verify it.
5289 if (${SED} -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
5294 # Add PIC object to the list of files to remove.
5295 if test -n "$pic_object" \
5296 && test "$pic_object" != none
; then
5297 rmfiles
="$rmfiles $dir/$pic_object"
5300 # Add non-PIC object to the list of files to remove.
5301 if test -n "$non_pic_object" \
5302 && test "$non_pic_object" != none
; then
5303 rmfiles
="$rmfiles $dir/$non_pic_object"
5309 # Do a test to see if this is a libtool program.
5310 if test "$mode" = clean
&&
5311 (${SED} -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
5315 rmfiles
="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
5316 if test "$fast_install" = yes && test -n "$relink_command"; then
5317 rmfiles
="$rmfiles $objdir/lt-$name"
5322 $show "$rm $rmfiles"
5323 $run $rm $rmfiles || exit_status
=1
5326 # Try to remove the ${objdir}s in the directories where we deleted files
5327 for dir
in $rmdirs; do
5328 if test -d "$dir"; then
5330 $run rmdir $dir >/dev
/null
2>&1
5338 $echo "$modename: you must specify a MODE" 1>&2
5339 $echo "$generic_help" 1>&2
5344 if test -z "$exec_cmd"; then
5345 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5346 $echo "$generic_help" 1>&2
5349 fi # test -z "$show_help"
5351 if test -n "$exec_cmd"; then
5356 # We need to display help for each of the modes.
5359 "Usage: $modename [OPTION]... [MODE-ARG]...
5361 Provide generalized library-building support services.
5363 --config show all configuration variables
5364 --debug enable verbose shell tracing
5365 -n, --dry-run display commands without modifying any files
5366 --features display basic configuration information and exit
5367 --finish same as \`--mode=finish'
5368 --help display this help message and exit
5369 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
5370 --quiet same as \`--silent'
5371 --silent don't print informational messages
5372 --tag=TAG use configuration variables from tag TAG
5373 --version print version information
5375 MODE must be one of the following:
5377 clean remove files from the build directory
5378 compile compile a source file into a libtool object
5379 execute automatically set library path, then run a program
5380 finish complete the installation of libtool libraries
5381 install install libraries or executables
5382 link create a library or an executable
5383 uninstall remove libraries from an installed directory
5385 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
5386 a more detailed description of MODE."
5392 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
5394 Remove files from the build directory.
5396 RM is the name of the program to use to delete files associated with each FILE
5397 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5400 If FILE is a libtool library, object or program, all the files associated
5401 with it are deleted. Otherwise, only FILE itself is deleted using RM."
5406 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
5408 Compile a source file into a libtool library object.
5410 This mode accepts the following additional options:
5412 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
5413 -prefer-pic try to building PIC objects only
5414 -prefer-non-pic try to building non-PIC objects only
5415 -static always build a \`.o' file suitable for static linking
5417 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
5418 from the given SOURCEFILE.
5420 The output file name is determined by removing the directory component from
5421 SOURCEFILE, then substituting the C source code suffix \`.c' with the
5422 library object suffix, \`.lo'."
5427 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
5429 Automatically set library path, then run a program.
5431 This mode accepts the following additional options:
5433 -dlopen FILE add the directory containing FILE to the library path
5435 This mode sets the library path environment variable according to \`-dlopen'
5438 If any of the ARGS are libtool executable wrappers, then they are translated
5439 into their corresponding uninstalled binary, and any of their required library
5440 directories are added to the library path.
5442 Then, COMMAND is executed, with ARGS as arguments."
5447 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
5449 Complete the installation of libtool libraries.
5451 Each LIBDIR is a directory that contains libtool libraries.
5453 The commands that this mode executes may require superuser privileges. Use
5454 the \`--dry-run' option if you just want to see what would be executed."
5459 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
5461 Install executables or libraries.
5463 INSTALL-COMMAND is the installation command. The first component should be
5464 either the \`install' or \`cp' program.
5466 The rest of the components are interpreted as arguments to that command (only
5467 BSD-compatible install options are recognized)."
5472 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
5474 Link object files or libraries together to form another library, or to
5475 create an executable program.
5477 LINK-COMMAND is a command using the C compiler that you would use to create
5478 a program from several object files.
5480 The following components of LINK-COMMAND are treated specially:
5482 -all-static do not do any dynamic linking at all
5483 -avoid-version do not add a version suffix if possible
5484 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
5485 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
5486 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
5487 -export-symbols SYMFILE
5488 try to export only the symbols listed in SYMFILE
5489 -export-symbols-regex REGEX
5490 try to export only the symbols matching REGEX
5491 -LLIBDIR search LIBDIR for required installed libraries
5492 -lNAME OUTPUT-FILE requires the installed library libNAME
5493 -module build a library that can dlopened
5494 -no-fast-install disable the fast-install mode
5495 -no-install link a not-installable executable
5496 -no-undefined declare that a library does not refer to external symbols
5497 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
5498 -objectlist FILE Use a list of object files found in FILE to specify objects
5499 -release RELEASE specify package release information
5500 -rpath LIBDIR the created library will eventually be installed in LIBDIR
5501 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
5502 -static do not do any dynamic linking of libtool libraries
5503 -version-info CURRENT[:REVISION[:AGE]]
5504 specify library version info [each variable defaults to 0]
5506 All other options (arguments beginning with \`-') are ignored.
5508 Every other argument is treated as a filename. Files ending in \`.la' are
5509 treated as uninstalled libtool libraries, other files are standard or library
5512 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
5513 only library objects (\`.lo' files) may be specified, and \`-rpath' is
5514 required, except when creating a convenience library.
5516 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
5517 using \`ar' and \`ranlib', or on Windows using \`lib'.
5519 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
5520 is created, otherwise an executable program is created."
5525 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
5527 Remove libraries from an installation directory.
5529 RM is the name of the program to use to delete files associated with each FILE
5530 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5533 If FILE is a libtool library, all the files associated with it are deleted.
5534 Otherwise, only FILE itself is deleted using RM."
5538 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5545 $echo "Try \`$modename --help' for more information about other modes."
5549 # The TAGs below are defined such that we never get into a situation
5550 # in which we disable both kinds of libraries. Given conflicting
5551 # choices, we go for a static library, that is the most portable,
5552 # since we can't tell whether shared libraries were disabled because
5553 # the user asked for that or because the platform doesn't support
5554 # them. This is particularly important on AIX, because we don't
5555 # support having both static and shared libraries enabled at the same
5556 # time on that platform, so we default to a shared-only configuration.
5557 # If a disable-shared tag is given, we'll fallback to a static-only
5558 # configuration. But we'll never go from static-only to shared-only.
5560 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
5561 build_libtool_libs
=no
5563 # ### END LIBTOOL TAG CONFIG: disable-shared
5565 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
5566 build_old_libs
=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
5567 # ### END LIBTOOL TAG CONFIG: disable-static