1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
4 # Copyright (C) 1996-2000 Free Software Foundation, Inc.
5 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
26 # Check that we have a working $echo.
27 if test "X$1" = X--no-reexec
; then
28 # Discard the --no-reexec flag, and continue.
30 elif test "X$1" = X--fallback-echo
; then
31 # Avoid inline document here, it may be left over
33 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34 # Yippee, $echo works!
37 # Restart under the correct shell, and then maybe $echo will work.
38 exec $SHELL "$0" --no-reexec ${1+"$@"}
41 if test "X$1" = X--fallback-echo
; then
42 # used as fallback echo
50 # The name of this program.
51 progname
=`$echo "$0" | sed 's%^.*/%%'`
58 TIMESTAMP
=" (1.641.2.111 2000/09/05 10:29:18)"
61 help="Try \`$progname --help' for more information."
62 magic
="%%%MAGIC variable%%%"
67 # Sed substitution that helps us do robust quoting. It backslashifies
68 # metacharacters that are still active within double-quoted strings.
70 sed_quote_subst
='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 NL2SP
='tr \015\012 \040\040'
75 # Only set LANG and LC_ALL to C if already set.
76 # These must not be set unconditionally because not all systems understand
77 # e.g. LANG=C (notably SCO).
78 # We save the old values to restore during execute mode.
79 if test "${LC_ALL+set}" = set; then
80 save_LC_ALL
="$LC_ALL"; LC_ALL
=C
; export LC_ALL
82 if test "${LANG+set}" = set; then
83 save_LANG
="$LANG"; LANG
=C
; export LANG
86 if test "$LTCONFIG_VERSION" != "$VERSION"; then
87 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
88 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
92 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
93 echo "$modename: not configured to build any kind of library" 1>&2
94 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
107 lo2o
="s/\\.lo\$/.${objext}/"
108 o2lo
="s/\\.${objext}\$/.lo/"
110 # Parse our command line options once, thoroughly.
117 -*=*) optarg
=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
121 # If the previous option needs an argument, assign it.
122 if test -n "$prev"; then
125 eval "$prev=\"\$$prev \$arg\""
130 # Check whether tagname contains only valid characters
133 echo "$progname: invalid tag name: $tagname" 1>&2
138 if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev
/null
; then
139 taglist
="$taglist $tagname"
140 # Evaluate the configuration.
141 eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
143 echo "$progname: ignoring unknown tag $tagname" 1>&2
156 # Have we seen a non-optional argument yet?
163 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
168 sed -n -e '/^### BEGIN LIBTOOL CONFIG/,/^### END LIBTOOL CONFIG/p' < "$0"
169 # Now print the configurations for the tags.
170 for tagname
in $taglist; do
171 sed -n -e "/^### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
177 echo "$progname: enabling shell trace mode"
187 if test "$build_libtool_libs" = yes; then
188 echo "enable shared libraries"
190 echo "disable shared libraries"
192 if test "$build_old_libs" = yes; then
193 echo "enable static libraries"
195 echo "disable static libraries"
200 --finish) mode
="finish" ;;
202 --mode) prevopt
="--mode" prev
=mode
;;
203 --mode=*) mode
="$optarg" ;;
209 --tag) prevopt
="--tag" prev
=tag
;;
211 set tag
"$optarg" ${1+"$@"}
222 $echo "$modename: unrecognized option \`$arg'" 1>&2
234 if test -n "$prevopt"; then
235 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
240 if test -z "$show_help"; then
242 # Infer the operation mode.
243 if test -z "$mode"; then
245 *cc |
*++ | gcc
* |
*-gcc*)
257 *db |
*dbx |
*strace |
*truss
)
267 # If we have no mode, but dlfiles were specified, then do execute mode.
268 test -n "$execute_dlfiles" && mode
=execute
270 # Just use the default operation mode.
271 if test -z "$mode"; then
272 if test -n "$nonopt"; then
273 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
275 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
282 # Only execute mode is allowed to have -dlopen flags.
283 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
284 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
289 # Change the help message to a mode-specific one.
291 help="Try \`$modename --help --mode=$mode' for more information."
293 # These modes are in order of execution frequency so that they run quickly.
295 # libtool compile mode
297 modename
="$modename: compile"
298 # Get the compilation command and the source file.
311 # Aesthetically quote the previous argument.
313 lastarg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
316 # Double-quote args containing other shell metacharacters.
317 # Many Bourne shells cannot handle close brackets correctly
318 # in scan sets, so we specify it separately.
319 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
324 # Add the previous argument to base_compile.
325 if test -z "$base_compile"; then
326 base_compile
="$lastarg"
328 base_compile
="$base_compile $lastarg"
334 # Accept any command-line options.
337 if test "$user_target" != "no"; then
338 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
365 args
=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
367 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=','
371 # Double-quote args containing other shell metacharacters.
372 # Many Bourne shells cannot handle close brackets correctly
373 # in scan sets, so we specify it separately.
375 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
379 lastarg
="$lastarg $arg"
382 lastarg
=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
384 # Add the arguments to base_compile.
385 if test -z "$base_compile"; then
386 base_compile
="$lastarg"
388 base_compile
="$base_compile $lastarg"
394 case "$user_target" in
396 # The next one is the -o target name
401 # We got the output file
408 # Accept the current argument as the source file.
412 # Aesthetically quote the previous argument.
414 # Backslashify any backslashes, double quotes, and dollar signs.
415 # These are the only characters that are still specially
416 # interpreted inside of double-quoted scrings.
417 lastarg
=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
419 # Double-quote args containing other shell metacharacters.
420 # Many Bourne shells cannot handle close brackets correctly
421 # in scan sets, so we specify it separately.
423 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
424 lastarg
="\"$lastarg\""
428 # Add the previous argument to base_compile.
429 if test -z "$base_compile"; then
430 base_compile
="$lastarg"
432 base_compile
="$base_compile $lastarg"
436 case "$user_target" in
440 # Get the name of the library object.
441 libobj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
444 $echo "$modename: you must specify a target with \`-o'" 1>&2
449 # Recognize several different file suffixes.
450 # If the user specifies -o file.o, it is replaced with file.lo
459 *.class
) xform
=class
;;
464 *.java
) xform
=java
;;
467 libobj
=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
470 *.lo
) obj
=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
472 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
477 # Infer tagged configuration to use if any are available and
478 # if one wasn't chosen via the "--tag" command line option.
479 # Only attempt this if the compiler in the base compile
480 # command doesn't match the default compiler.
481 if test -n "$available_tags" && test -z "$tagname"; then
482 case $base_compile in
484 # Blanks in the command may have been stripped by the calling shell,
485 # but not from the CC environment variable when ltconfig was run.
488 for z
in $available_tags; do
489 if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev
/null
; then
490 # Evaluate the configuration.
491 eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
492 case $base_compile in
494 # The compiler in the base compile command matches
495 # the one in the tagged configuration.
496 # Assume this is the tagged configuration we want.
507 # If $tagname still isn't set, then no tagged configuration
508 # was found and let the user know that the "--tag" command
509 # line option must be used.
510 if test -z "$tagname"; then
511 echo "$modename: unable to infer tagged configuration"
512 echo "$modename: specify a tag with \`--tag'" 1>&2
515 # echo "$modename: using $tagname tagged configuration"
521 objname
=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
522 xdir
=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
523 if test "X$xdir" = "X$obj"; then
528 lobj
=${xdir}$objdir/$objname
530 if test -z "$base_compile"; then
531 $echo "$modename: you must specify a compilation command" 1>&2
536 # Delete any leftover library objects.
537 if test "$build_old_libs" = yes; then
538 removelist
="$obj $lobj $libobj ${libobj}T"
540 removelist
="$lobj $libobj ${libobj}T"
544 trap "$run $rm $removelist; exit 1" 1 2 15
546 # On Cygwin there's no "real" PIC flag so we must build both object types
548 cygwin
* | mingw
* | os2
*)
552 if test $pic_mode = no
&& test "$deplibs_check_method" != pass_all
; then
553 # non-PIC code in shared libraries is not supported
557 # Calculate the filename of the output object if compiler does
558 # not support -o with -c
559 if test "$compiler_c_o" = no
; then
560 output_obj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.
${objext}
561 lockfile
="$output_obj.lock"
562 removelist
="$removelist $output_obj $lockfile"
563 trap "$run $rm $removelist; exit 1" 1 2 15
570 # Lock this critical section if it is needed
571 # We use this script file to make the link, it avoids creating a new file
572 if test "$need_locks" = yes; then
573 until $run ln "$0" "$lockfile" 2>/dev
/null
; do
574 $show "Waiting for $lockfile to be removed"
577 elif test "$need_locks" = warn
; then
578 if test -f "$lockfile"; then
580 *** ERROR, $lockfile exists and contains:
581 `cat $lockfile 2>/dev/null`
583 This indicates that another process is trying to use the same
584 temporary object file, and libtool could not work around it because
585 your compiler does not support \`-c' and \`-o' together. If you
586 repeat this compilation, it may succeed, by chance, but you had better
587 avoid parallel builds (make -j) in this platform, or get a better
593 echo $srcfile > "$lockfile"
596 if test -n "$fix_srcfile_path"; then
597 eval srcfile
=\"$fix_srcfile_path\"
600 $run $rm "$libobj" "${libobj}T"
602 # Create a libtool object file (analogous to a ".la" file),
603 # but don't create it if we're doing a dry run.
604 test -z "$run" && cat > ${libobj}T
<<EOF
605 # $libobj - a libtool object file
606 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
608 # Please DO NOT delete this file!
609 # It is necessary for linking the library.
611 # Name of the PIC object.
614 # Only build a PIC object if we are building libtool libraries.
615 if test "$build_libtool_libs" = yes; then
616 # Without this assignment, base_compile gets emptied.
617 fbsd_hideous_sh_bug
=$base_compile
619 if test "$pic_mode" != no
; then
620 command="$base_compile $srcfile $pic_flag"
622 # Don't build PIC code
623 command="$base_compile $srcfile"
626 if test ! -d ${xdir}$objdir; then
627 $show "$mkdir ${xdir}$objdir"
628 $run $mkdir ${xdir}$objdir
630 if test $status -ne 0 && test ! -d ${xdir}$objdir; then
635 if test -z "$output_obj"; then
636 # Place PIC objects in $objdir
637 command="$command -o $lobj"
640 $run $rm "$lobj" "$output_obj"
643 if $run eval "$command"; then :
645 test -n "$output_obj" && $run $rm $removelist
649 if test "$need_locks" = warn
&&
650 test x
"`cat $lockfile 2>/dev/null`" != x
"$srcfile"; then
652 *** ERROR, $lockfile contains:
653 `cat $lockfile 2>/dev/null`
655 but it should contain:
658 This indicates that another process is trying to use the same
659 temporary object file, and libtool could not work around it because
660 your compiler does not support \`-c' and \`-o' together. If you
661 repeat this compilation, it may succeed, by chance, but you had better
662 avoid parallel builds (make -j) in this platform, or get a better
669 # Just move the object if needed, then go on to compile the next one
670 if test -n "$output_obj" && test "x$output_obj" != "x$lobj"; then
671 $show "$mv $output_obj $lobj"
672 if $run $mv $output_obj $lobj; then :
680 # Append the name of the PIC object to the libtool object file.
681 test -z "$run" && cat >> ${libobj}T
<<EOF
682 pic_object='$objdir/$objname'
686 # Allow error messages only from the first compilation.
687 suppress_output
=' >/dev/null 2>&1'
689 # No PIC object so indicate it doesn't exist in the libtool
691 test -z "$run" && cat >> ${libobj}T
<<EOF
697 # Only build a position-dependent object if we build old libraries.
698 if test "$build_old_libs" = yes; then
699 if test "$pic_mode" != yes; then
700 # Don't build PIC code
701 command="$base_compile $srcfile"
703 command="$base_compile $srcfile $pic_flag"
705 if test "$compiler_c_o" = yes; then
706 command="$command -o $obj"
709 # Suppress compiler output if we already did a PIC compilation.
710 command="$command$suppress_output"
711 $run $rm "$obj" "$output_obj"
713 if $run eval "$command"; then :
719 if test "$need_locks" = warn
&&
720 test x
"`cat $lockfile 2>/dev/null`" != x
"$srcfile"; then
722 *** ERROR, $lockfile contains:
723 `cat $lockfile 2>/dev/null`
725 but it should contain:
728 This indicates that another process is trying to use the same
729 temporary object file, and libtool could not work around it because
730 your compiler does not support \`-c' and \`-o' together. If you
731 repeat this compilation, it may succeed, by chance, but you had better
732 avoid parallel builds (make -j) in this platform, or get a better
739 # Just move the object if needed
740 if test -n "$output_obj" && test "x$output_obj" != "x$obj"; then
741 $show "$mv $output_obj $obj"
742 if $run $mv $output_obj $obj; then :
750 # Append the name of the non-PIC object the libtool object file.
751 # Only append if the libtool object file exists.
752 test -z "$run" && cat >> ${libobj}T
<<EOF
753 # Name of the non-PIC object.
754 non_pic_object='$objname'
758 # Append the name of the non-PIC object the libtool object file.
759 # Only append if the libtool object file exists.
760 test -z "$run" && cat >> ${libobj}T
<<EOF
761 # Name of the non-PIC object.
767 $run $mv "${libobj}T" "${libobj}"
769 # Unlock the critical section if it was locked
770 if test "$need_locks" != no
; then
779 modename
="$modename: link"
781 *-*-cygwin* |
*-*-mingw* |
*-*-os2*)
782 # It is impossible to link a dll without this setting, and
783 # we shouldn't force the makefile maintainer to figure out
784 # which system we are compiling for in order to pass an extra
785 # flag for every libtool invokation.
788 # FIXME: Unfortunately, there are problems with the above when trying
789 # to make a dll which has undefined symbols, in which case not
790 # even a static library is built. For now, we need to specify
791 # -no-undefined on the libtool link line when we can be certain
792 # that all symbols are satisfied, otherwise we get a static library.
799 libtool_args
="$nonopt"
800 base_compile
="$nonopt"
801 compile_command
="$nonopt"
802 finalize_command
="$nonopt"
815 lib_search_path
=`pwd`
823 export_symbols_regex
=
831 prefer_static_libs
=no
843 # We need to know -static, to get the right output filenames.
847 -all-static |
-static)
848 if test "X$arg" = "X-all-static"; then
849 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
850 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
852 if test -n "$link_static_flag"; then
853 dlopen_self
=$dlopen_self_static
856 if test -z "$pic_flag" && test -n "$link_static_flag"; then
857 dlopen_self
=$dlopen_self_static
860 build_libtool_libs
=no
862 prefer_static_libs
=yes
868 # See if our shared archives depend on static archives.
869 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
871 # Go through the arguments, transforming them on the way.
872 while test $# -gt 0; do
874 base_compile
="$base_compile $arg"
877 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
878 qarg
=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
882 libtool_args
="$libtool_args $qarg"
884 # If the previous option needs an argument, assign it.
885 if test -n "$prev"; then
888 compile_command
="$compile_command @OUTPUT@"
889 finalize_command
="$finalize_command @OUTPUT@"
895 if test "$preload" = no
; then
896 # Add the symbol object into the linking commands.
897 compile_command
="$compile_command @SYMFILE@"
898 finalize_command
="$finalize_command @SYMFILE@"
902 *.la |
*.lo
) ;; # We handle these cases below.
904 if test "$dlself" = no
; then
912 if test "$prev" = dlprefiles
; then
914 elif test "$prev" = dlfiles
&& test "$dlopen_self" != yes; then
924 if test "$prev" = dlfiles
; then
925 dlfiles
="$dlfiles $arg"
927 dlprefiles
="$dlprefiles $arg"
935 export_symbols
="$arg"
936 if test ! -f "$arg"; then
937 $echo "$modename: symbol file \`$arg' does not exist"
944 export_symbols_regex
="$arg"
954 # We need an absolute path.
956 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
958 $echo "$modename: only absolute run-paths are allowed" 1>&2
962 if test "$prev" = rpath
; then
965 *) rpath
="$rpath $arg" ;;
970 *) xrpath
="$xrpath $arg" ;;
977 compiler_flags
="$compiler_flags $qarg"
979 compile_command
="$compile_command $qarg"
980 finalize_command
="$finalize_command $qarg"
984 linker_flags
="$linker_flags $qarg"
985 compiler_flags
="$compiler_flags $wl$qarg"
987 compile_command
="$compile_command $wl$qarg"
988 finalize_command
="$finalize_command $wl$qarg"
992 eval "$prev=\"\$arg\""
1003 if test -n "$link_static_flag"; then
1004 compile_command
="$compile_command $link_static_flag"
1005 finalize_command
="$finalize_command $link_static_flag"
1011 # FIXME: remove this flag sometime in the future.
1012 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1036 -export-symbols |
-export-symbols-regex)
1037 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
1038 $echo "$modename: not more than one -exported-symbols argument allowed"
1041 if test "X$arg" = "X-export-symbols"; then
1049 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1050 # so, if we see these flags be careful not to treat them like -L
1052 case $with_gcc/$host in
1054 compile_command
="$compile_command $arg"
1055 finalize_command
="$finalize_command $arg"
1062 dir
=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1063 # We need an absolute path.
1065 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1067 absdir
=`cd "$dir" && pwd`
1068 if test -z "$absdir"; then
1069 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1078 deplibs
="$deplibs -L$dir"
1079 lib_search_path
="$lib_search_path $dir"
1083 *-*-cygwin* |
*-*-mingw* |
*-*-os2*)
1084 case ":$dllsearchpath:" in
1086 *) dllsearchpath
="$dllsearchpath:$dir";;
1094 if test "$arg" = "-lc"; then
1096 *-*-cygwin* |
*-*-mingw* |
*-*-os2* |
*-*-beos*)
1097 # These systems don't actually have c library (as such)
1101 elif test "$arg" = "-lm"; then
1103 *-*-cygwin* |
*-*-beos*)
1104 # These systems don't actually have math library (as such)
1109 deplibs
="$deplibs $arg"
1125 *-*-cygwin* |
*-*-mingw* |
*-*-os2*)
1126 # The PATH hackery in wrapper scripts is required on Windows
1127 # in order for the loader to find any dlls it needs.
1128 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1129 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1133 # rhapsody is a little odd...
1134 deplibs
="$deplibs -framework System"
1166 dir
=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1167 # We need an absolute path.
1169 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1171 $echo "$modename: only absolute run-paths are allowed" 1>&2
1177 *) xrpath
="$xrpath $dir" ;;
1183 # The effects of -static are defined in a previous loop.
1184 # We used to do the same as -all-static on platforms that
1185 # didn't have a PIC flag, but the assumption that the effects
1186 # would be equivalent was wrong. It would break on at least
1187 # Digital Unix and AIX.
1202 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1204 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=','
1205 for flag
in $args; do
1208 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1213 compiler_flags
="$compiler_flags $flag"
1216 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1220 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1222 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=','
1223 for flag
in $args; do
1226 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1231 compiler_flags
="$compiler_flags $wl$flag"
1232 linker_flags
="$linker_flags $flag"
1235 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1248 # Some other compiler flag.
1250 # Unknown arguments in both finalize_command and compile_command need
1251 # to be aesthetically quoted because they are evaled later.
1252 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1254 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1261 # A standard object.
1266 # A libtool-controlled object.
1268 # Check to see that this really is a libtool object.
1269 if (sed -e '2q' $arg |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1274 # If there is no directory component, then add one.
1276 */* |
*\\*) .
$arg ;;
1280 if test -z "$pic_object" || \
1281 test -z "$non_pic_object" ||
1282 test "$pic_object" = none
&& \
1283 test "$non_pic_object" = none
; then
1284 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1288 # Extract subdirectory from the argument.
1289 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1290 if test "X$xdir" = "X$arg"; then
1296 if test "$pic_object" != none
; then
1297 # Prepend the subdirectory the object is found in.
1298 pic_object
="$xdir$pic_object"
1300 if test "$prev" = dlfiles
; then
1301 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1302 dlfiles
="$dlfiles $pic_object"
1306 # If libtool objects are unsupported, then we need to preload.
1311 # CHECK ME: I think I busted this. -Ossama
1312 if test "$prev" = dlprefiles
; then
1313 # Preload the old-style object.
1314 dlprefiles
="$dlprefiles $pic_object"
1319 libobjs
="$libobjs $pic_object"
1324 if test "$non_pic_object" != none
; then
1325 # Prepend the subdirectory the object is found in.
1326 non_pic_object
="$xdir$non_pic_object"
1328 # A standard non-PIC object
1329 non_pic_objects
="$non_pic_objects $non_pic_object"
1330 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1331 arg
="$non_pic_object"
1335 # Only an error if not doing a dry-run.
1336 if test -z "$run"; then
1337 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342 # Extract subdirectory from the argument.
1343 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1344 if test "X$xdir" = "X$arg"; then
1350 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1351 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1352 libobjs
="$libobjs $pic_object"
1353 non_pic_objects
="$non_pic_objects $non_pic_object"
1360 deplibs
="$deplibs $arg"
1361 old_deplibs
="$old_deplibs $arg"
1366 # A libtool-controlled library.
1368 if test "$prev" = dlfiles
; then
1369 # This library was specified with -dlopen.
1370 dlfiles
="$dlfiles $arg"
1372 elif test "$prev" = dlprefiles
; then
1373 # The library was specified with -dlpreopen.
1374 dlprefiles
="$dlprefiles $arg"
1377 deplibs
="$deplibs $arg"
1382 # Some other compiler argument.
1384 # Unknown arguments in both finalize_command and compile_command need
1385 # to be aesthetically quoted because they are evaled later.
1386 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1388 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1395 # Now actually substitute the argument into the commands.
1396 if test -n "$arg"; then
1397 compile_command
="$compile_command $arg"
1398 finalize_command
="$finalize_command $arg"
1402 if test -n "$prev"; then
1403 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1408 # Infer tagged configuration to use if any are available and
1409 # if one wasn't chosen via the "--tag" command line option.
1410 # Only attempt this if the compiler in the base link
1411 # command doesn't match the default compiler.
1412 if test -n "$available_tags" && test -z "$tagname"; then
1413 case $base_compile in
1415 # Blanks in the command may have been stripped by the calling shell,
1416 # but not from the CC environment variable when ltconfig was run.
1419 for z
in $available_tags; do
1420 if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev
/null
; then
1421 # Evaluate the configuration.
1422 eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
1423 case $base_compile in
1425 # The compiler in $compile_command matches
1426 # the one in the tagged configuration.
1427 # Assume this is the tagged configuration we want.
1438 # If $tagname still isn't set, then no tagged configuration
1439 # was found and let the user know that the "--tag" command
1440 # line option must be used.
1441 if test -z "$tagname"; then
1442 echo "$modename: unable to infer tagged configuration"
1443 echo "$modename: specify a tag with \`--tag'" 1>&2
1446 # echo "$modename: using $tagname tagged configuration"
1452 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1453 eval arg
=\"$export_dynamic_flag_spec\"
1454 compile_command
="$compile_command $arg"
1455 finalize_command
="$finalize_command $arg"
1459 # calculate the name of the file, without its directory
1460 outputname
=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1461 libobjs_save
="$libobjs"
1463 if test -n "$shlibpath_var"; then
1464 # get the directories listed in $shlibpath_var
1465 eval shlib_search_path
=\
`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1469 eval sys_lib_search_path
=\"$sys_lib_search_path_spec\"
1470 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
1472 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1473 if test "X$output_objdir" = "X$output"; then
1474 output_objdir
="$objdir"
1476 output_objdir
="$output_objdir/$objdir"
1478 # Create the object directory.
1479 if test ! -d $output_objdir; then
1480 $show "$mkdir $output_objdir"
1481 $run $mkdir $output_objdir
1483 if test $status -ne 0 && test ! -d $output_objdir; then
1488 # Determine the type of output
1491 $echo "$modename: you must specify an output file" 1>&2
1495 *.
$libext) linkmode
=oldlib
;;
1496 *.lo |
*.
$objext) linkmode
=obj
;;
1497 *.la
) linkmode
=lib
;;
1498 *) linkmode
=prog
;; # Anything else should be a program.
1503 # Find all interdependent deplibs by searching for libraries
1504 # that are linked more than once (e.g. -la -lb -la)
1505 for deplib
in $deplibs; do
1507 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1509 libs
="$libs $deplib"
1512 if test $linkmode = lib
; then
1513 libs
="$predeps $libs $compiler_lib_search_path $postdeps"
1519 need_relink
=no
# whether we're linking any uninstalled libtool libraries
1520 uninst_deplibs
= # uninstalled libtool libraries
1521 uninst_path
= # paths that contain uninstalled libtool libraries
1525 for file in $dlfiles $dlprefiles; do
1529 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1541 passes
="conv scan dlopen dlpreopen link"
1546 for pass
in $passes; do
1547 if test "$linkmode,$pass" = "lib,link" ||
1548 test "$linkmode,$pass" = "prog,scan"; then
1552 if test $linkmode = prog
; then
1554 dlopen
) libs
="$dlfiles" ;;
1555 dlpreopen
) libs
="$dlprefiles" ;;
1556 link
) libs
="$deplibs %DEPLIBS% $dependency_libs" ;;
1559 if test $pass = dlopen
; then
1560 # Collect dlpreopened libraries
1561 save_deplibs
="$deplibs"
1564 for deplib
in $libs; do
1569 if test $linkmode != lib
&& test $linkmode != prog
; then
1570 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1573 if test $pass = conv
; then
1574 deplibs
="$deplib $deplibs"
1577 name
=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1578 for searchdir
in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1579 # Search the libtool library
1580 lib
="$searchdir/lib${name}.la"
1581 if test -f "$lib"; then
1586 if test "$found" != yes; then
1587 if test "$linkmode,$pass" = "prog,link"; then
1588 compile_deplibs
="$deplib $compile_deplibs"
1589 finalize_deplibs
="$deplib $finalize_deplibs"
1591 deplibs
="$deplib $deplibs"
1592 test $linkmode = lib
&& newdependency_libs
="$deplib $newdependency_libs"
1600 deplibs
="$deplib $deplibs"
1601 test $pass = conv
&& continue
1602 newdependency_libs
="$deplib $newdependency_libs"
1603 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1606 if test $pass = conv
; then
1607 deplibs
="$deplib $deplibs"
1610 if test $pass = scan
; then
1611 deplibs
="$deplib $deplibs"
1612 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1614 compile_deplibs
="$deplib $compile_deplibs"
1615 finalize_deplibs
="$deplib $finalize_deplibs"
1619 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1625 if test $pass = link
; then
1626 dir
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1627 # Make sure the xrpath contains only unique directories.
1630 *) xrpath
="$xrpath $dir" ;;
1633 deplibs
="$deplib $deplibs"
1636 *.la
) lib
="$deplib" ;;
1638 if test $pass = conv
; then
1639 deplibs
="$deplib $deplibs"
1644 if test "$deplibs_check_method" != pass_all
; then
1646 echo "*** Warning: This library needs some functionality provided by $deplib."
1647 echo "*** I have the capability to make that library automatically link in when"
1648 echo "*** you link to this library. But I can only do this if you have a"
1649 echo "*** shared version of the library, which you do not appear to have."
1652 echo "*** Warning: Linking the shared library $output against the"
1653 echo "*** static library $deplib is not portable!"
1654 deplibs
="$deplib $deplibs"
1659 if test $pass != link
; then
1660 deplibs
="$deplib $deplibs"
1662 compile_deplibs
="$deplib $compile_deplibs"
1663 finalize_deplibs
="$deplib $finalize_deplibs"
1670 if test $pass = conv
; then
1671 deplibs
="$deplib $deplibs"
1672 elif test $linkmode = prog
; then
1673 if test $pass = dlpreopen ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1674 # If there is no dlopen support or we're linking statically,
1675 # we need to preload.
1676 newdlprefiles
="$newdlprefiles $deplib"
1677 compile_deplibs
="$deplib $compile_deplibs"
1678 finalize_deplibs
="$deplib $finalize_deplibs"
1680 newdlfiles
="$newdlfiles $deplib"
1690 if test $found = yes ||
test -f "$lib"; then :
1692 $echo "$modename: cannot find the library \`$lib'" 1>&2
1696 # Check to see that this really is a libtool archive.
1697 if (sed -e '2q' $lib |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
1699 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1703 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1704 test "X$ladir" = "X$lib" && ladir
="."
1712 # If the library was installed with an old release of libtool,
1713 # it will not redefine variable installed.
1718 */* |
*\\*) .
$lib ;;
1722 if test "$linkmode,$pass" = "lib,link" ||
1723 test "$linkmode,$pass" = "prog,scan" ||
1724 { test $linkmode != prog
&& test $linkmode != lib
; }; then
1725 test -n "$dlopen" && dlfiles
="$dlfiles $dlopen"
1726 test -n "$dlpreopen" && dlprefiles
="$dlprefiles $dlpreopen"
1729 if test $pass = conv
; then
1730 # only check for convenience libraries
1731 deplibs
="$lib $deplibs"
1732 if test -z "$libdir"; then
1733 if test -z "$old_library"; then
1734 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1737 # It is a libtool convenience library, so add in its objects.
1738 convenience
="$convenience $ladir/$objdir/$old_library"
1739 old_convenience
="$old_convenience $ladir/$objdir/$old_library"
1741 for deplib
in $dependency_libs; do
1742 deplibs
="$deplib $deplibs"
1743 case "$tmp_libs " in
1744 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1746 tmp_libs
="$tmp_libs $deplib"
1748 elif test $linkmode != prog
&& test $linkmode != lib
; then
1749 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1755 # Get the name of the library we link against.
1757 for l
in $old_library $library_names; do
1760 if test -z "$linklib"; then
1761 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1765 # This library was specified with -dlopen.
1766 if test $pass = dlopen
; then
1767 if test -z "$libdir"; then
1768 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1771 if test -z "$dlname" ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
1772 # If there is no dlname, no dlopen support or we're linking statically,
1773 # we need to preload.
1774 dlprefiles
="$dlprefiles $lib"
1776 newdlfiles
="$newdlfiles $lib"
1781 # We need an absolute path.
1783 [\\/]* |
[A-Za-z
]:[\\/]*) abs_ladir
="$ladir" ;;
1785 abs_ladir
=`cd "$ladir" && pwd`
1786 if test -z "$abs_ladir"; then
1787 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1788 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1793 laname
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1795 # Find the relevant object directory and library name.
1796 if test "X$installed" = Xyes
; then
1797 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1798 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1807 dir
="$ladir/$objdir"
1808 absdir
="$abs_ladir/$objdir"
1809 # Remove this search path later
1810 uninst_path
="$uninst_path $abs_ladir"
1812 name
=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1814 # This library was specified with -dlpreopen.
1815 if test $pass = dlpreopen
; then
1816 if test -z "$libdir"; then
1817 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1820 # Prefer using a static library (so that no silly _DYNAMIC symbols
1821 # are required to link).
1822 if test -n "$old_library"; then
1823 newdlprefiles
="$newdlprefiles $dir/$old_library"
1824 # Otherwise, use the dlname, so that lt_dlopen finds it.
1825 elif test -n "$dlname"; then
1826 newdlprefiles
="$newdlprefiles $dir/$dlname"
1828 newdlprefiles
="$newdlprefiles $dir/$linklib"
1832 if test -z "$libdir"; then
1833 # link the convenience library
1834 if test $linkmode = lib
; then
1835 deplibs
="$dir/$old_library $deplibs"
1836 elif test "$linkmode,$pass" = "prog,link"; then
1837 compile_deplibs
="$dir/$old_library $compile_deplibs"
1838 finalize_deplibs
="$dir/$old_library $finalize_deplibs"
1840 deplibs
="$lib $deplibs" # used for prog,scan pass
1845 if test $linkmode = prog
&& test $pass != link
; then
1846 newlib_search_path
="$newlib_search_path $ladir"
1847 deplibs
="$lib $deplibs"
1850 if test "$link_all_deplibs" != no ||
test -z "$library_names" ||
1851 test "$build_libtool_libs" = no
; then
1856 for deplib
in $dependency_libs; do
1858 -L*) newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1860 # Need to link against all dependency_libs?
1861 if test $linkalldeplibs = yes; then
1862 deplibs
="$deplib $deplibs"
1864 # Need to hardcode shared library paths
1865 # or/and link against static libraries
1866 newdependency_libs
="$deplib $newdependency_libs"
1868 case "$tmp_libs " in
1869 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
1871 tmp_libs
="$tmp_libs $deplib"
1876 if test "$linkmode,$pass" = "prog,link"; then
1877 if test -n "$library_names" &&
1878 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
1879 # We need to hardcode the library path
1880 if test -n "$shlibpath_var"; then
1881 # Make sure the rpath contains only unique directories.
1882 case "$temp_rpath " in
1885 *) temp_rpath
="$temp_rpath $dir" ;;
1889 # Hardcode the library path.
1890 # Skip directories that are in the system default run-time
1892 case " $sys_lib_dlsearch_path " in
1895 case "$compile_rpath " in
1897 *) compile_rpath
="$compile_rpath $absdir"
1902 case " $sys_lib_dlsearch_path " in
1905 case "$finalize_rpath " in
1907 *) finalize_rpath
="$finalize_rpath $libdir"
1913 if test "$alldeplibs" = yes &&
1914 { test "$deplibs_check_method" = pass_all ||
1915 { test "$build_libtool_libs" = yes &&
1916 test -n "$library_names"; }; }; then
1917 # We only need to search for static libraries
1922 link_static
=no
# Whether the deplib will be linked statically
1923 if test -n "$library_names" &&
1924 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
1925 if test "$installed" = no
; then
1926 uninst_deplibs
="$uninst_deplibs $lib"
1929 # This is a shared library
1930 if test $linkmode = lib
&&
1931 test $hardcode_into_libs = yes; then
1932 # Hardcode the library path.
1933 # Skip directories that are in the system default run-time
1935 case " $sys_lib_dlsearch_path " in
1938 case "$compile_rpath " in
1940 *) compile_rpath
="$compile_rpath $absdir"
1944 case " $sys_lib_dlsearch_path " in
1947 case "$finalize_rpath " in
1949 *) finalize_rpath
="$finalize_rpath $libdir"
1955 if test -n "$old_archive_from_expsyms_cmds"; then
1956 # figure out the soname
1957 set dummy
$library_names
1960 libname
=`eval \\$echo \"$libname_spec\"`
1961 if test -n "$soname_spec"; then
1962 eval soname
=\"$soname_spec\"
1967 # Make a new name for the extract_expsyms_cmds to use
1968 newlib
="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
1970 # If the library has no export list, then create one now
1971 if test -f "$output_objdir/$soname-def"; then :
1973 $show "extracting exported symbol list from \`$soname'"
1974 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
1975 eval cmds
=\"$extract_expsyms_cmds\"
1976 for cmd
in $cmds; do
1979 $run eval "$cmd" ||
exit $?
1985 if test -f "$output_objdir/$newlib"; then :; else
1986 $show "generating import library for \`$soname'"
1987 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
1988 eval cmds
=\"$old_archive_from_expsyms_cmds\"
1989 for cmd
in $cmds; do
1992 $run eval "$cmd" ||
exit $?
1996 # make sure the library variables are pointing to the new library
2001 if test $linkmode = prog ||
test "$mode" != relink
; then
2006 case "$hardcode_action" in
2007 immediate | unsupported
)
2008 if test "$hardcode_direct" = no
; then
2010 elif test "$hardcode_minus_L" = no
; then
2012 *-*-sunos*) add_shlibpath
="$dir" ;;
2016 elif test "$hardcode_shlibpath_var" = no
; then
2017 add_shlibpath
="$dir"
2024 if test "$hardcode_direct" = yes; then
2026 elif test "$hardcode_minus_L" = yes; then
2029 elif test "$hardcode_shlibpath_var" = yes; then
2030 add_shlibpath
="$dir"
2039 if test "$lib_linked" != yes; then
2040 $echo "$modename: configuration error: unsupported hardcode properties"
2044 if test -n "$add_shlibpath"; then
2045 case ":$compile_shlibpath:" in
2046 *":$add_shlibpath:"*) ;;
2047 *) compile_shlibpath
="$compile_shlibpath$add_shlibpath:" ;;
2050 if test $linkmode = prog
; then
2051 test -n "$add_dir" && compile_deplibs
="$add_dir $compile_deplibs"
2052 test -n "$add" && compile_deplibs
="$add $compile_deplibs"
2054 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2055 test -n "$add" && deplibs
="$add $deplibs"
2056 if test "$hardcode_direct" != yes && \
2057 test "$hardcode_minus_L" != yes && \
2058 test "$hardcode_shlibpath_var" = yes; then
2059 case ":$finalize_shlibpath:" in
2061 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2067 if test $linkmode = prog ||
test "$mode" = relink
; then
2071 # Finalize command for both is simple: just hardcode it.
2072 if test "$hardcode_direct" = yes; then
2073 add
="$libdir/$linklib"
2074 elif test "$hardcode_minus_L" = yes; then
2077 elif test "$hardcode_shlibpath_var" = yes; then
2078 case ":$finalize_shlibpath:" in
2080 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2084 # We cannot seem to hardcode it, guess we'll fake it.
2089 if test $linkmode = prog
; then
2090 test -n "$add_dir" && finalize_deplibs
="$add_dir $finalize_deplibs"
2091 test -n "$add" && finalize_deplibs
="$add $finalize_deplibs"
2093 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2094 test -n "$add" && deplibs
="$add $deplibs"
2097 elif test $linkmode = prog
; then
2098 # Here we assume that one of hardcode_direct or hardcode_minus_L
2099 # is not unsupported. This is valid on all known static and
2101 if test "$hardcode_direct" != unsupported
; then
2102 test -n "$old_library" && linklib
="$old_library"
2103 compile_deplibs
="$dir/$linklib $compile_deplibs"
2104 finalize_deplibs
="$dir/$linklib $finalize_deplibs"
2106 compile_deplibs
="-l$name -L$dir $compile_deplibs"
2107 finalize_deplibs
="-l$name -L$dir $finalize_deplibs"
2109 elif test "$build_libtool_libs" = yes; then
2110 # Not a shared library
2111 if test "$deplibs_check_method" != pass_all
; then
2112 # We're trying link a shared library against a static one
2113 # but the system doesn't support it.
2114 # Just print a warning and add the library to dependency_libs so
2115 # that the program can be linked against the static library.
2117 echo "*** Warning: This library needs some functionality provided by $lib."
2118 echo "*** I have the capability to make that library automatically link in when"
2119 echo "*** you link to this library. But I can only do this if you have a"
2120 echo "*** shared version of the library, which you do not appear to have."
2122 convenience
="$convenience $dir/$old_library"
2123 old_convenience
="$old_convenience $dir/$old_library"
2124 deplibs
="$dir/$old_library $deplibs"
2129 if test $linkmode = lib
; then
2130 if test -n "$dependency_libs" &&
2131 { test $hardcode_into_libs != yes ||
test $build_old_libs = yes ||
2132 test $link_static = yes; }; then
2133 # Extract -R from dependency_libs
2135 for libdir
in $dependency_libs; do
2137 -R*) temp_xrpath
=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2139 *" $temp_xrpath "*) ;;
2140 *) xrpath
="$xrpath $temp_xrpath";;
2142 *) temp_deplibs
="$temp_deplibs $libdir";;
2145 dependency_libs
="$temp_deplibs"
2148 newlib_search_path
="$newlib_search_path $absdir"
2149 # Link against this library
2150 test "$link_static" = no
&& newdependency_libs
="$abs_ladir/$laname $newdependency_libs"
2151 # ... and its dependency_libs
2153 for deplib
in $dependency_libs; do
2154 newdependency_libs
="$deplib $newdependency_libs"
2155 case "$tmp_libs " in
2156 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2158 tmp_libs
="$tmp_libs $deplib"
2161 if test $link_all_deplibs != no
; then
2162 # Add the search paths of all dependency libraries
2163 for deplib
in $dependency_libs; do
2165 -L*) path
="$deplib" ;;
2167 dir
=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2168 test "X$dir" = "X$deplib" && dir
="."
2169 # We need an absolute path.
2171 [\\/]* |
[A-Za-z
]:[\\/]*) absdir
="$dir" ;;
2173 absdir
=`cd "$dir" && pwd`
2174 if test -z "$absdir"; then
2175 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2180 if grep "^installed=no" $deplib > /dev
/null
; then
2181 path
="-L$absdir/$objdir"
2183 eval libdir
=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2184 if test -z "$libdir"; then
2185 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2188 if test "$absdir" != "$libdir"; then
2189 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2196 case " $deplibs " in
2198 *) deplibs
="$path $deplibs" ;;
2204 dependency_libs
="$newdependency_libs"
2205 if test $pass = dlpreopen
; then
2206 # Link the dlpreopened libraries before other libraries
2207 for deplib
in $save_deplibs; do
2208 deplibs
="$deplib $deplibs"
2211 if test $pass != dlopen
; then
2212 if test $pass != conv
; then
2213 # Make sure lib_search_path contains only unique directories.
2215 for dir
in $newlib_search_path; do
2216 case "$lib_search_path " in
2218 *) lib_search_path
="$lib_search_path $dir" ;;
2224 if test "$linkmode,$pass" != "prog,link"; then
2227 vars
="compile_deplibs finalize_deplibs"
2229 for var
in $vars dependency_libs
; do
2230 # Make sure that $var contains only unique libraries
2231 # and add them in reverse order
2232 eval tmp_libs
=\"\$
$var\"
2234 for deplib
in $tmp_libs; do
2236 -L*) new_libs
="$deplib $new_libs" ;;
2238 case " $specialdeplibs " in
2239 *" $deplib "*) new_libs
="$deplib $new_libs" ;;
2241 case " $new_libs " in
2243 *) new_libs
="$deplib $new_libs" ;;
2251 for deplib
in $new_libs; do
2254 case " $tmp_libs " in
2256 *) tmp_libs
="$tmp_libs $deplib" ;;
2259 *) tmp_libs
="$tmp_libs $deplib" ;;
2262 eval $var=\"$tmp_libs\"
2266 if test $linkmode = prog
; then
2267 dlfiles
="$newdlfiles"
2268 dlprefiles
="$newdlprefiles"
2273 if test -n "$deplibs"; then
2274 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2277 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
2278 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2281 if test -n "$rpath"; then
2282 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2285 if test -n "$xrpath"; then
2286 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2289 if test -n "$vinfo"; then
2290 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2293 if test -n "$release"; then
2294 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2297 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
2298 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2301 # Now set the variables for building old libraries.
2302 build_libtool_libs
=no
2304 objs
="$objs$old_deplibs"
2308 # Make sure we only generate libraries of the form `libNAME.la'.
2309 case "$outputname" in
2311 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2312 eval libname
=\"$libname_spec\"
2315 if test "$module" = no
; then
2316 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2320 if test "$need_lib_prefix" != no
; then
2321 # Add the "lib" prefix for modules if required
2322 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2323 eval libname
=\"$libname_spec\"
2325 libname
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2330 if test -n "$objs"; then
2331 if test "$deplibs_check_method" != pass_all
; then
2332 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2336 echo "*** Warning: Linking the shared library $output against the non-libtool"
2337 echo "*** objects $objs is not portable!"
2338 libobjs
="$libobjs $objs"
2342 if test "$dlself" != no
; then
2343 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2347 if test $# -gt 2; then
2348 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2353 if test -z "$rpath"; then
2354 if test "$build_libtool_libs" = yes; then
2355 # Building a libtool convenience library.
2356 # Some compilers have problems with a `.al' extension so
2357 # convenience libraries should have the same extension an
2358 # archive normally would.
2359 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
2360 build_libtool_libs
=convenience
2364 if test -n "$vinfo"; then
2365 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2368 if test -n "$release"; then
2369 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2373 # Parse the version information argument.
2374 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=':'
2375 set dummy
$vinfo 0 0 0
2378 if test -n "$8"; then
2379 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2388 # Check that each of the things are valid numbers.
2390 0 |
[1-9] |
[1-9][0-9]*) ;;
2392 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2393 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2399 0 |
[1-9] |
[1-9][0-9]*) ;;
2401 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2402 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2408 0 |
[1-9] |
[1-9][0-9]*) ;;
2410 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2411 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2416 if test $age -gt $current; then
2417 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2418 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2422 # Calculate the version variables.
2426 case "$version_type" in
2430 major
=`expr $current - $age + 1`
2431 verstring
="sgi$major.$revision"
2433 # Add in all the interfaces that we are compatible with.
2435 while test $loop != 0; do
2436 iface
=`expr $revision - $loop`
2437 loop
=`expr $loop - 1`
2438 verstring
="sgi$major.$iface:$verstring"
2441 # Before this point, $major must not contain `.'.
2443 versuffix
="$major.$revision"
2447 major
=.
`expr $current - $age`
2448 versuffix
="$major.$age.$revision"
2452 major
=`expr $current - $age`
2453 versuffix
=".$current.$age.$revision"
2454 verstring
="$current.$age.$revision"
2456 # Add in all the interfaces that we are compatible with.
2458 while test $loop != 0; do
2459 iface
=`expr $current - $loop`
2460 loop
=`expr $loop - 1`
2461 verstring
="$verstring:${iface}.0"
2464 # Make executables depend on our current version.
2465 verstring
="$verstring:${current}.0"
2470 versuffix
=".$current.$revision"
2475 versuffix
=".$current.$revision";
2480 versuffix
=".$current";
2484 # Like Linux, but with '-' rather than '.', since we only
2485 # want one extension on Windows 95.
2486 major
=`expr $current - $age`
2487 versuffix
="-$major-$age-$revision"
2491 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2492 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2497 # Clear the version info if we defaulted, and they specified a release.
2498 if test -z "$vinfo" && test -n "$release"; then
2501 if test "$need_version" = no
; then
2508 # Remove version info from name if versioning should be avoided
2509 if test "$avoid_version" = yes && test "$need_version" = no
; then
2515 # Check to see if the archive will have undefined symbols.
2516 if test "$allow_undefined" = yes; then
2517 if test "$allow_undefined_flag" = unsupported
; then
2518 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2519 build_libtool_libs
=no
2523 # Don't allow undefined symbols.
2524 allow_undefined_flag
="$no_undefined_flag"
2528 if test "$mode" != relink
; then
2529 # Remove our outputs, but don't remove object files since they
2530 # may have been created when compiling PIC objects.
2532 tempremovelist
=`echo "$output_objdir/*"`
2533 for p
in $tempremovelist; do
2537 $output_objdir/$outputname |
$output_objdir/$libname.
* |
$output_objdir/${libname}${release}.
*)
2538 removelist
="$removelist $p"
2543 if test -n "$removelist"; then
2544 $show "${rm}r $removelist"
2545 $run ${rm}r
$removelist
2549 # Now set the variables for building old libraries.
2550 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
2551 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
2553 # Transform .lo files to .o files.
2554 oldobjs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2557 # Eliminate all temporary directories.
2558 for path
in $uninst_path; do
2559 lib_search_path
=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2560 deplibs
=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2561 dependency_libs
=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2564 if test -n "$xrpath"; then
2565 # If the user specified any rpath flags, then add them.
2567 for libdir
in $xrpath; do
2568 temp_xrpath
="$temp_xrpath -R$libdir"
2569 case "$finalize_rpath " in
2571 *) finalize_rpath
="$finalize_rpath $libdir" ;;
2574 if test $hardcode_into_libs != yes ||
test $build_old_libs = yes; then
2575 dependency_libs
="$temp_xrpath $dependency_libs"
2579 # Make sure dlfiles contains only unique files that won't be dlpreopened
2580 old_dlfiles
="$dlfiles"
2582 for lib
in $old_dlfiles; do
2583 case " $dlprefiles $dlfiles " in
2585 *) dlfiles
="$dlfiles $lib" ;;
2589 # Make sure dlprefiles contains only unique files
2590 old_dlprefiles
="$dlprefiles"
2592 for lib
in $old_dlprefiles; do
2593 case "$dlprefiles " in
2595 *) dlprefiles
="$dlprefiles $lib" ;;
2599 if test "$build_libtool_libs" = yes; then
2600 if test -n "$rpath"; then
2602 *-*-cygwin* |
*-*-mingw* |
*-*-os2* |
*-*-beos*)
2603 # these systems don't actually have a c library (as such)!
2606 # Add libc to deplibs on all other systems if necessary.
2607 if test $build_libtool_need_lc = "yes"; then
2608 deplibs
="$deplibs -lc"
2614 # Transform deplibs into only deplibs that can be linked in shared.
2616 libname_save
=$libname
2617 release_save
=$release
2618 versuffix_save
=$versuffix
2620 # I'm not sure if I'm treating the release correctly. I think
2621 # release should show up in the -l (ie -lgmp5) so we don't want to
2622 # add it in twice. Is that correct?
2628 case "$deplibs_check_method" in
2630 # Don't check for shared/static. Everything works.
2631 # This might be a little naive. We might want to check
2632 # whether the library exists or not. But this is on
2633 # osf3 & osf4 and I'm not really sure... Just
2634 # implementing what was already the behaviour.
2638 # This code stresses the "libraries are programs" paradigm to its
2639 # limits. Maybe even breaks it. We compile a program, linking it
2640 # against the deplibs as a proxy for the library. Then we can check
2641 # whether they linked in statically or dynamically with ldd.
2643 cat > conftest.c
<<EOF
2644 int main() { return 0; }
2647 $LTCC -o conftest conftest.c
$deplibs
2648 if test $?
-eq 0 ; then
2649 ldd_output
=`ldd conftest`
2650 for i
in $deplibs; do
2651 name
="`expr $i : '-l\(.*\)'`"
2652 # If $name is empty we are operating on a -L argument.
2653 if test "$name" != "" ; then
2654 libname
=`eval \\$echo \"$libname_spec\"`
2655 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
2656 set dummy
$deplib_matches
2658 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2659 newdeplibs
="$newdeplibs $i"
2663 echo "*** Warning: This library needs some functionality provided by $i."
2664 echo "*** I have the capability to make that library automatically link in when"
2665 echo "*** you link to this library. But I can only do this if you have a"
2666 echo "*** shared version of the library, which you do not appear to have."
2669 newdeplibs
="$newdeplibs $i"
2673 # Error occured in the first compile. Let's try to salvage the situation:
2674 # Compile a seperate program for each library.
2675 for i
in $deplibs; do
2676 name
="`expr $i : '-l\(.*\)'`"
2677 # If $name is empty we are operating on a -L argument.
2678 if test "$name" != "" ; then
2680 $LTCC -o conftest conftest.c
$i
2682 if test $?
-eq 0 ; then
2683 ldd_output
=`ldd conftest`
2684 libname
=`eval \\$echo \"$libname_spec\"`
2685 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
2686 set dummy
$deplib_matches
2688 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2689 newdeplibs
="$newdeplibs $i"
2693 echo "*** Warning: This library needs some functionality provided by $i."
2694 echo "*** I have the capability to make that library automatically link in when"
2695 echo "*** you link to this library. But I can only do this if you have a"
2696 echo "*** shared version of the library, which you do not appear to have."
2701 echo "*** Warning! Library $i is needed by this library but I was not able to"
2702 echo "*** make it link in! You will probably need to install it or some"
2703 echo "*** library that it depends on before this library will be fully"
2704 echo "*** functional. Installing it before continuing would be even better."
2707 newdeplibs
="$newdeplibs $i"
2713 set dummy
$deplibs_check_method
2714 file_magic_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2715 for a_deplib
in $deplibs; do
2716 name
="`expr $a_deplib : '-l\(.*\)'`"
2717 # If $name is empty we are operating on a -L argument.
2718 if test "$name" != "" ; then
2719 libname
=`eval \\$echo \"$libname_spec\"`
2720 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2721 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
2722 for potent_lib
in $potential_libs; do
2723 # Follow soft links.
2724 if ls -lLd "$potent_lib" 2>/dev
/null \
2725 |
grep " -> " >/dev
/null
; then
2728 # The statement above tries to avoid entering an
2729 # endless loop below, in case of cyclic links.
2730 # We might still enter an endless loop, since a link
2731 # loop can be closed while we follow links,
2733 potlib
="$potent_lib"
2734 while test -h "$potlib" 2>/dev
/null
; do
2735 potliblink
=`ls -ld $potlib | sed 's/.* -> //'`
2736 case "$potliblink" in
2737 [\\/]* |
[A-Za-z
]:[\\/]*) potlib
="$potliblink";;
2738 *) potlib
=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2741 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null \
2743 |
egrep "$file_magic_regex" > /dev
/null
; then
2744 newdeplibs
="$newdeplibs $a_deplib"
2750 if test -n "$a_deplib" ; then
2753 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2754 echo "*** I have the capability to make that library automatically link in when"
2755 echo "*** you link to this library. But I can only do this if you have a"
2756 echo "*** shared version of the library, which you do not appear to have."
2759 # Add a -L argument.
2760 newdeplibs
="$newdeplibs $a_deplib"
2762 done # Gone through all deplibs.
2766 if $echo "X $deplibs" |
$Xsed -e 's/ -lc$//' \
2767 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2768 grep .
>/dev
/null
; then
2770 if test "X$deplibs_check_method" = "Xnone"; then
2771 echo "*** Warning: inter-library dependencies are not supported in this platform."
2773 echo "*** Warning: inter-library dependencies are not known to be supported."
2775 echo "*** All declared inter-library dependencies are being dropped."
2780 versuffix
=$versuffix_save
2782 release
=$release_save
2783 libname
=$libname_save
2786 if test "$droppeddeps" = yes; then
2787 if test "$module" = yes; then
2789 echo "*** Warning: libtool could not satisfy all declared inter-library"
2790 echo "*** dependencies of module $libname. Therefore, libtool will create"
2791 echo "*** a static module, that should work as long as the dlopening"
2792 echo "*** application is linked with the -dlopen flag."
2793 if test -z "$global_symbol_pipe"; then
2795 echo "*** However, this would only work if libtool was able to extract symbol"
2796 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2797 echo "*** not find such a program. So, this module is probably useless."
2798 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2800 if test "$build_old_libs" = no
; then
2801 oldlibs
="$output_objdir/$libname.$libext"
2802 build_libtool_libs
=module
2805 build_libtool_libs
=no
2808 echo "*** The inter-library dependencies that have been dropped here will be"
2809 echo "*** automatically added whenever a program is linked with this library"
2810 echo "*** or is declared to -dlopen it."
2813 # Done checking deplibs!
2817 # All the library-specific variables (install_libdir is set above).
2822 # Test again, we may have decided not to build it any more
2823 if test "$build_libtool_libs" = yes; then
2824 if test $hardcode_into_libs = yes; then
2825 # Hardcode the library paths
2828 rpath
="$finalize_rpath"
2829 test "$mode" != relink
&& rpath
="$compile_rpath$rpath"
2830 for libdir
in $rpath; do
2831 if test -n "$hardcode_libdir_flag_spec"; then
2832 if test -n "$hardcode_libdir_separator"; then
2833 if test -z "$hardcode_libdirs"; then
2834 hardcode_libdirs
="$libdir"
2836 # Just accumulate the unique libdirs.
2837 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2838 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2841 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2846 eval flag
=\"$hardcode_libdir_flag_spec\"
2847 dep_rpath
="$dep_rpath $flag"
2849 elif test -n "$runpath_var"; then
2850 case "$perm_rpath " in
2852 *) perm_rpath
="$perm_rpath $libdir" ;;
2856 # Substitute the hardcoded libdirs into the rpath.
2857 if test -n "$hardcode_libdir_separator" &&
2858 test -n "$hardcode_libdirs"; then
2859 libdir
="$hardcode_libdirs"
2860 eval dep_rpath
=\"$hardcode_libdir_flag_spec\"
2862 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2863 # We should set the runpath_var.
2865 for dir
in $perm_rpath; do
2868 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2870 test -n "$dep_rpath" && deplibs
="$dep_rpath $deplibs"
2873 shlibpath
="$finalize_shlibpath"
2874 test "$mode" != relink
&& shlibpath
="$compile_shlibpath$shlibpath"
2875 if test -n "$shlibpath"; then
2876 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2879 # Get the real and link names of the library.
2880 eval library_names
=\"$library_names_spec\"
2881 set dummy
$library_names
2885 if test -n "$soname_spec"; then
2886 eval soname
=\"$soname_spec\"
2891 lib
="$output_objdir/$realname"
2894 linknames
="$linknames $link"
2897 # # Ensure that we have .o objects for linkers which dislike .lo
2898 # # (e.g. aix) in case we are running --disable-static
2899 # for obj in $libobjs; do
2900 # xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2901 # if test "X$xdir" = "X$obj"; then
2906 # baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2907 # oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2908 # if test ! -f $xdir/$oldobj && test "$baseobj" != "$oldobj"; then
2909 # $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2910 # $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2914 # Use standard objects if they are pic
2915 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2917 # Prepare the list of exported symbols
2918 if test -z "$export_symbols"; then
2919 if test "$always_export_symbols" = yes ||
test -n "$export_symbols_regex"; then
2920 $show "generating symbol list for \`$libname.la'"
2921 export_symbols
="$output_objdir/$libname.exp"
2922 $run $rm $export_symbols
2923 eval cmds
=\"$export_symbols_cmds\"
2924 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
2925 for cmd
in $cmds; do
2928 $run eval "$cmd" ||
exit $?
2931 if test -n "$export_symbols_regex"; then
2932 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2933 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2934 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2935 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2940 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2941 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2944 if test -n "$convenience"; then
2945 if test -n "$whole_archive_flag_spec"; then
2946 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
2948 gentop
="$output_objdir/${outputname}x"
2949 $show "${rm}r $gentop"
2950 $run ${rm}r
"$gentop"
2951 $show "$mkdir $gentop"
2952 $run $mkdir "$gentop"
2954 if test $status -ne 0 && test ! -d "$gentop"; then
2957 generated
="$generated $gentop"
2959 for xlib
in $convenience; do
2960 # Extract the objects.
2962 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
2963 *) xabs
=`pwd`"/$xlib" ;;
2965 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2966 xdir
="$gentop/$xlib"
2968 $show "${rm}r $xdir"
2970 $show "$mkdir $xdir"
2973 if test $status -ne 0 && test ! -d "$xdir"; then
2976 $show "(cd $xdir && $AR x $xabs)"
2977 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
2979 libobjs
="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
2984 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2985 eval flag
=\"$thread_safe_flag_spec\"
2986 linker_flags
="$linker_flags $flag"
2989 # Make a backup of the uninstalled library when relinking
2990 if test "$mode" = relink
; then
2991 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' ||
exit $?
2994 # Do each of the archive commands.
2995 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2996 eval cmds
=\"$archive_expsym_cmds\"
2998 eval cmds
=\"$archive_cmds\"
3000 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3001 for cmd
in $cmds; do
3004 $run eval "$cmd" ||
exit $?
3008 # Restore the uninstalled library and exit
3009 if test "$mode" = relink
; then
3010 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' ||
exit $?
3014 # Create links to the real library.
3015 for linkname
in $linknames; do
3016 if test "$realname" != "$linkname"; then
3017 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3018 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' ||
exit $?
3022 # If -module or -export-dynamic was specified, set the dlname.
3023 if test "$module" = yes ||
test "$export_dynamic" = yes; then
3024 # On all known operating systems, these are identical.
3031 if test -n "$deplibs"; then
3032 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3035 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3036 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3039 if test -n "$rpath"; then
3040 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3043 if test -n "$xrpath"; then
3044 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3047 if test -n "$vinfo"; then
3048 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3051 if test -n "$release"; then
3052 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3057 if test -n "$objs$old_deplibs"; then
3058 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3062 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
3070 # Delete the old objects.
3071 $run $rm $obj $libobj
3073 # Objects from convenience libraries. This assumes
3074 # single-version convenience libraries. Whenever we create
3075 # different ones for PIC/non-PIC, this we'll have to duplicate
3079 # reload_cmds runs $LD directly, so let us get rid of
3080 # -Wl from whole_archive_flag_spec
3083 if test -n "$convenience"; then
3084 if test -n "$whole_archive_flag_spec"; then
3085 eval reload_conv_objs
=\"\
$reload_objs $whole_archive_flag_spec\"
3087 gentop
="$output_objdir/${obj}x"
3088 $show "${rm}r $gentop"
3089 $run ${rm}r
"$gentop"
3090 $show "$mkdir $gentop"
3091 $run $mkdir "$gentop"
3093 if test $status -ne 0 && test ! -d "$gentop"; then
3096 generated
="$generated $gentop"
3098 for xlib
in $convenience; do
3099 # Extract the objects.
3101 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3102 *) xabs
=`pwd`"/$xlib" ;;
3104 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3105 xdir
="$gentop/$xlib"
3107 $show "${rm}r $xdir"
3109 $show "$mkdir $xdir"
3112 if test $status -ne 0 && test ! -d "$xdir"; then
3115 $show "(cd $xdir && $AR x $xabs)"
3116 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3118 reload_conv_objs
="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3123 # Create the old-style object.
3124 reload_objs
="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
3127 eval cmds
=\"$reload_cmds\"
3128 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3129 for cmd
in $cmds; do
3132 $run eval "$cmd" ||
exit $?
3136 # Exit if we aren't doing a library object file.
3137 if test -z "$libobj"; then
3138 if test -n "$gentop"; then
3139 $show "${rm}r $gentop"
3146 if test "$build_libtool_libs" != yes; then
3147 if test -n "$gentop"; then
3148 $show "${rm}r $gentop"
3152 # Create an invalid libtool object if no PIC, so that we don't
3153 # accidentally link it into a program.
3154 # $show "echo timestamp > $libobj"
3155 # $run eval "echo timestamp > $libobj" || exit $?
3159 if test -n "$pic_flag" ||
test "$pic_mode" != default
; then
3160 # Only do commands if we really have different PIC objects.
3161 reload_objs
="$libobjs $reload_conv_objs"
3163 eval cmds
=\"$reload_cmds\"
3164 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3165 for cmd
in $cmds; do
3168 $run eval "$cmd" ||
exit $?
3172 # # Just create a symlink.
3175 # xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3176 # if test "X$xdir" = "X$libobj"; then
3181 # baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3182 # oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3183 # $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3184 # $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3187 if test -n "$gentop"; then
3188 $show "${rm}r $gentop"
3196 if test -n "$vinfo"; then
3197 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3200 if test -n "$release"; then
3201 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3204 if test "$preload" = yes; then
3205 if test "$dlopen_support" = unknown
&& test "$dlopen_self" = unknown
&&
3206 test "$dlopen_self_static" = unknown
; then
3207 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3211 compile_command
="$compile_command $compile_deplibs"
3212 finalize_command
="$finalize_command $finalize_deplibs"
3214 if test -n "$rpath$xrpath"; then
3215 # If the user specified any rpath flags, then add them.
3216 for libdir
in $rpath $xrpath; do
3217 # This is the magic to use -rpath.
3218 case "$finalize_rpath " in
3220 *) finalize_rpath
="$finalize_rpath $libdir" ;;
3225 # Now hardcode the library paths
3228 for libdir
in $compile_rpath $finalize_rpath; do
3229 if test -n "$hardcode_libdir_flag_spec"; then
3230 if test -n "$hardcode_libdir_separator"; then
3231 if test -z "$hardcode_libdirs"; then
3232 hardcode_libdirs
="$libdir"
3234 # Just accumulate the unique libdirs.
3235 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
3236 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3239 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3244 eval flag
=\"$hardcode_libdir_flag_spec\"
3245 rpath
="$rpath $flag"
3247 elif test -n "$runpath_var"; then
3248 case "$perm_rpath " in
3250 *) perm_rpath
="$perm_rpath $libdir" ;;
3254 *-*-cygwin* |
*-*-mingw* |
*-*-os2*)
3255 case ":$dllsearchpath:" in
3257 *) dllsearchpath
="$dllsearchpath:$libdir";;
3262 # Substitute the hardcoded libdirs into the rpath.
3263 if test -n "$hardcode_libdir_separator" &&
3264 test -n "$hardcode_libdirs"; then
3265 libdir
="$hardcode_libdirs"
3266 eval rpath
=\" $hardcode_libdir_flag_spec\"
3268 compile_rpath
="$rpath"
3272 for libdir
in $finalize_rpath; do
3273 if test -n "$hardcode_libdir_flag_spec"; then
3274 if test -n "$hardcode_libdir_separator"; then
3275 if test -z "$hardcode_libdirs"; then
3276 hardcode_libdirs
="$libdir"
3278 # Just accumulate the unique libdirs.
3279 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
3280 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3283 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3288 eval flag
=\"$hardcode_libdir_flag_spec\"
3289 rpath
="$rpath $flag"
3291 elif test -n "$runpath_var"; then
3292 case "$finalize_perm_rpath " in
3294 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
3298 # Substitute the hardcoded libdirs into the rpath.
3299 if test -n "$hardcode_libdir_separator" &&
3300 test -n "$hardcode_libdirs"; then
3301 libdir
="$hardcode_libdirs"
3302 eval rpath
=\" $hardcode_libdir_flag_spec\"
3304 finalize_rpath
="$rpath"
3307 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3308 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3309 dlsyms
="${outputname}S.c"
3311 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3315 if test -n "$dlsyms"; then
3319 # Discover the nlist of each of the dlfiles.
3320 nlist
="$output_objdir/${outputname}.nm"
3322 $show "$rm $nlist ${nlist}S ${nlist}T"
3323 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3325 # Parse the name list into a source file.
3326 $show "creating $output_objdir/$dlsyms"
3328 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3329 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3330 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3336 /* Prevent the only kind of declaration conflicts we can make. */
3337 #define lt_preloaded_symbols some_other_symbol
3339 /* External symbol declarations for the compiler. */\
3342 if test "$dlself" = yes; then
3343 $show "generating symbol list for \`$output'"
3345 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3347 # Add our own program objects to the symbol list.
3348 progfiles
="$objs$old_deplibs"
3349 for arg
in $progfiles; do
3350 $show "extracting global C symbols from \`$arg'"
3351 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3354 if test -n "$exclude_expsyms"; then
3355 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3356 $run eval '$mv "$nlist"T "$nlist"'
3359 if test -n "$export_symbols_regex"; then
3360 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3361 $run eval '$mv "$nlist"T "$nlist"'
3364 # Prepare the list of exported symbols
3365 if test -z "$export_symbols"; then
3366 export_symbols
="$output_objdir/$output.exp"
3367 $run $rm $export_symbols
3368 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3370 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3371 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3372 $run eval 'mv "$nlist"T "$nlist"'
3376 for arg
in $dlprefiles; do
3377 $show "extracting global C symbols from \`$arg'"
3378 name
=`echo "$arg" | sed -e 's%^.*/%%'`
3379 $run eval 'echo ": $name " >> "$nlist"'
3380 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3383 if test -z "$run"; then
3384 # Make sure we have at least an empty file.
3385 test -f "$nlist" ||
: > "$nlist"
3387 if test -n "$exclude_expsyms"; then
3388 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3389 $mv "$nlist"T
"$nlist"
3392 # Try sorting and uniquifying the output.
3393 if grep -v "^: " < "$nlist" |
sort +2 |
uniq > "$nlist"S
; then
3396 grep -v "^: " < "$nlist" > "$nlist"S
3399 if test -f "$nlist"S
; then
3400 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3402 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3405 $echo >> "$output_objdir/$dlsyms" "\
3407 #undef lt_preloaded_symbols
3409 #if defined (__STDC__) && __STDC__
3410 # define lt_ptr_t void *
3412 # define lt_ptr_t char *
3416 /* The mapping between symbol names and symbols. */
3421 lt_preloaded_symbols[] =
3425 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
3426 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
3427 < "$nlist" >> "$output_objdir/$dlsyms"
3429 $echo >> "$output_objdir/$dlsyms" "\
3433 /* This works around a problem in FreeBSD linker */
3434 #ifdef FREEBSD_WORKAROUND
3435 static const void *lt_preloaded_setup() {
3436 return lt_preloaded_symbols;
3446 pic_flag_for_symtable
=
3448 # compiling the symbol table file with pic_flag works around
3449 # a FreeBSD bug that causes programs to crash when -lm is
3450 # linked before any other PIC object. But we must not use
3451 # pic_flag when linking with -static. The problem exists in
3452 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3453 *-*-freebsd2*|
*-*-freebsd3.0
*|
*-*-freebsdelf3.0
*)
3454 case "$compile_command " in
3456 *) pic_flag_for_symtable
=" $pic_flag -DFREEBSD_WORKAROUND";;
3459 case "$compile_command " in
3461 *) pic_flag_for_symtable
=" $pic_flag";;
3465 # Now compile the dynamic symbol file.
3466 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3467 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' ||
exit $?
3469 # Clean up the generated files.
3470 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3471 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3473 # Transform the symbol file into the correct name.
3474 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3475 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3478 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3483 # We keep going just in case the user didn't refer to
3484 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3485 # really was required.
3487 # Nullify the symbol file.
3488 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3489 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3492 if test $need_relink = no ||
test "$build_libtool_libs" != yes; then
3493 # Replace the output file specification.
3494 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3495 link_command
="$compile_command$compile_rpath"
3497 # We have no uninstalled library dependencies, so finalize right now.
3498 $show "$link_command"
3499 $run eval "$link_command"
3502 # Delete the generated files.
3503 if test -n "$dlsyms"; then
3504 $show "$rm $output_objdir/${outputname}S.${objext}"
3505 $run $rm "$output_objdir/${outputname}S.${objext}"
3511 if test -n "$shlibpath_var"; then
3512 # We should set the shlibpath_var
3514 for dir
in $temp_rpath; do
3516 [\\/]* |
[A-Za-z
]:[\\/]*)
3521 # Relative path: add a thisdir entry.
3522 rpath
="$rpath\$thisdir/$dir:"
3529 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3530 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3532 if test -n "$finalize_shlibpath"; then
3533 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3538 if test -n "$runpath_var"; then
3539 if test -n "$perm_rpath"; then
3540 # We should set the runpath_var.
3542 for dir
in $perm_rpath; do
3545 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
3547 if test -n "$finalize_perm_rpath"; then
3548 # We should set the runpath_var.
3550 for dir
in $finalize_perm_rpath; do
3553 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
3557 if test "$no_install" = yes; then
3558 # We don't need to create a wrapper script.
3559 link_command
="$compile_var$compile_command$compile_rpath"
3560 # Replace the output file specification.
3561 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3562 # Delete the old output file.
3564 # Link the executable and exit
3565 $show "$link_command"
3566 $run eval "$link_command" ||
exit $?
3570 if test "$hardcode_action" = relink
; then
3571 # Fast installation is not supported
3572 link_command
="$compile_var$compile_command$compile_rpath"
3573 relink_command
="$finalize_var$finalize_command$finalize_rpath"
3575 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3576 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3578 if test "$fast_install" != no
; then
3579 link_command
="$finalize_var$compile_command$finalize_rpath"
3580 if test "$fast_install" = yes; then
3581 relink_command
=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3583 # fast_install is set to needless
3587 link_command
="$compile_var$compile_command$compile_rpath"
3588 relink_command
="$finalize_var$finalize_command$finalize_rpath"
3592 # Replace the output file specification.
3593 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3595 # Delete the old output files.
3596 $run $rm $output $output_objdir/$outputname $output_objdir/lt-
$outputname
3598 $show "$link_command"
3599 $run eval "$link_command" ||
exit $?
3601 # Now create the wrapper script.
3602 $show "creating $output"
3604 # Quote the relink command for shipping.
3605 if test -n "$relink_command"; then
3606 # Preserve any variables that may affect compiler behavior
3607 for var
in $variables_saved_for_relink; do
3608 if eval test -z \"\
${$var+set}\"; then
3609 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3610 elif eval var_value
=\$
$var; test -z "$var_value"; then
3611 relink_command
="$var=; export $var; $relink_command"
3613 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3614 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
3617 relink_command
="cd `pwd`; $relink_command"
3618 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3621 # Quote $echo for shipping.
3622 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3624 [\\/]* |
[A-Za-z
]:[\\/]*) qecho
="$SHELL $0 --fallback-echo";;
3625 *) qecho
="$SHELL `pwd`/$0 --fallback-echo";;
3627 qecho
=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3629 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3632 # Only actually do things if our run command is non-null.
3633 if test -z "$run"; then
3634 # win32 will think the script is a binary if it has
3635 # a .exe suffix, so we strip it off here.
3637 *.exe
) output
=`echo $output|sed 's,.exe$,,'` ;;
3640 trap "$rm $output; exit 1" 1 2 15
3645 # $output - temporary wrapper script for $objdir/$outputname
3646 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3648 # The $output program cannot be directly executed until all the libtool
3649 # libraries that it depends on are installed.
3651 # This wrapper script should never be moved out of the build directory.
3652 # If it is, it will not operate correctly.
3654 # Sed substitution that helps us do robust quoting. It backslashifies
3655 # metacharacters that are still active within double-quoted strings.
3656 Xsed='sed -e 1s/^X//'
3657 sed_quote_subst='$sed_quote_subst'
3659 # The HP-UX ksh and POSIX shell print the target directory to stdout
3661 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3663 relink_command=\"$relink_command\"
3665 # This environment variable determines our operation mode.
3666 if test \"\$libtool_install_magic\" = \"$magic\"; then
3667 # install mode needs the following variable:
3668 uninst_deplibs='$uninst_deplibs'
3670 # When we are sourced in execute mode, \$file and \$echo are already set.
3671 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3674 # Make sure echo works.
3675 if test \"X\$1\" = X--no-reexec; then
3676 # Discard the --no-reexec flag, and continue.
3678 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3679 # Yippee, \$echo works!
3682 # Restart under the correct shell, and then maybe \$echo will work.
3683 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3689 # Find the directory that this script lives in.
3690 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3691 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3693 # Follow symbolic links until we get to the real thisdir.
3694 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3695 while test -n \"\$file\"; do
3696 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3698 # If there was a directory component, then change thisdir.
3699 if test \"x\$destdir\" != \"x\$file\"; then
3700 case \"\$destdir\" in
3701 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3702 *) thisdir=\"\$thisdir/\$destdir\" ;;
3706 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3707 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
3710 # Try to get the absolute directory name.
3711 absdir=\`cd \"\$thisdir\" && pwd\`
3712 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3715 if test "$fast_install" = yes; then
3717 program=lt-'$outputname'
3718 progdir=\"\$thisdir/$objdir\"
3720 if test ! -f \"\$progdir/\$program\" || \\
3721 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
3722 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3724 file=\"\$\$-\$program\"
3726 if test ! -d \"\$progdir\"; then
3727 $mkdir \"\$progdir\"
3729 $rm \"\$progdir/\$file\"
3734 # relink executable if necessary
3735 if test -n \"\$relink_command\"; then
3736 if (eval \$relink_command); then :
3738 $rm \"\$progdir/\$file\"
3743 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3744 { $rm \"\$progdir/\$program\";
3745 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3746 $rm \"\$progdir/\$file\"
3750 program='$outputname'
3751 progdir=\"\$thisdir/$objdir\"
3757 if test -f \"\$progdir/\$program\"; then"
3759 # Export our shlibpath_var if we have one.
3760 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3762 # Add our own library path to $shlibpath_var
3763 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3765 # Some systems cannot cope with colon-terminated $shlibpath_var
3766 # The second colon is a workaround for a bug in BeOS R4 sed
3767 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3769 export $shlibpath_var
3773 # fixup the dll searchpath if we need to.
3774 if test -n "$dllsearchpath"; then
3776 # Add the dll search path components to the executable PATH
3777 PATH=$dllsearchpath:\$PATH
3782 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3783 # Run the actual program with our arguments.
3786 # win32 systems need to use the prog path for dll
3790 exec \$progdir/\$program \${1+\"\$@\"}
3794 # Backslashes separate directories on plain windows
3795 *-*-mingw |
*-*-os2*)
3797 exec \$progdir\\\\\$program \${1+\"\$@\"}
3803 # Export the path to the program.
3804 PATH=\"\$progdir:\$PATH\"
3807 exec \$program \${1+\"\$@\"}
3812 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3816 # The program doesn't exist.
3817 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3818 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3819 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3830 # See if we need to build an old-fashioned archive.
3831 for oldlib
in $oldlibs; do
3833 if test "$build_libtool_libs" = convenience
; then
3834 oldobjs
="$libobjs_save"
3835 addlibs
="$convenience"
3836 build_libtool_libs
=no
3838 if test "$build_libtool_libs" = module
; then
3839 oldobjs
="$libobjs_save"
3840 build_libtool_libs
=no
3842 oldobjs
="$objs$old_deplibs $non_pic_objects"
3844 addlibs
="$old_convenience"
3847 if test -n "$addlibs"; then
3848 gentop
="$output_objdir/${outputname}x"
3849 $show "${rm}r $gentop"
3850 $run ${rm}r
"$gentop"
3851 $show "$mkdir $gentop"
3852 $run $mkdir "$gentop"
3854 if test $status -ne 0 && test ! -d "$gentop"; then
3857 generated
="$generated $gentop"
3859 # Add in members from convenience archives.
3860 for xlib
in $addlibs; do
3861 # Extract the objects.
3863 [\\/]* |
[A-Za-z
]:[\\/]*) xabs
="$xlib" ;;
3864 *) xabs
=`pwd`"/$xlib" ;;
3866 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3867 xdir
="$gentop/$xlib"
3869 $show "${rm}r $xdir"
3871 $show "$mkdir $xdir"
3874 if test $status -ne 0 && test ! -d "$xdir"; then
3877 $show "(cd $xdir && $AR x $xabs)"
3878 $run eval "(cd \$xdir && $AR x \$xabs)" ||
exit $?
3880 oldobjs
="$oldobjs "`find $xdir -name \*.${objext} -print | $NL2SP`
3884 # Do each command in the archive commands.
3885 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3886 eval cmds
=\"$old_archive_from_new_cmds\"
3888 # # Ensure that we have .o objects in place in case we decided
3889 # # not to build a shared library, and have fallen back to building
3890 # # static libs even though --disable-static was passed!
3891 # for oldobj in $oldobjs; do
3892 # if test ! -f $oldobj; then
3893 # xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3894 # if test "X$xdir" = "X$oldobj"; then
3899 # baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3900 # obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3901 # $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3902 # $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3906 eval cmds
=\"$old_archive_cmds\"
3908 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3909 for cmd
in $cmds; do
3912 $run eval "$cmd" ||
exit $?
3917 if test -n "$generated"; then
3918 $show "${rm}r$generated"
3919 $run ${rm}r
$generated
3922 # Now create the libtool archive.
3926 test "$build_old_libs" = yes && old_library
="$libname.$libext"
3927 $show "creating $output"
3929 # Preserve any variables that may affect compiler behavior
3930 for var
in $variables_saved_for_relink; do
3931 if eval test -z \"\
${$var+set}\"; then
3932 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3933 elif eval var_value
=\$
$var; test -z "$var_value"; then
3934 relink_command
="$var=; export $var; $relink_command"
3936 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3937 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
3940 # Quote the link command for shipping.
3941 relink_command
="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
3942 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3944 # Only create the output if not a dry run.
3945 if test -z "$run"; then
3946 for installed
in no
yes; do
3947 if test "$installed" = yes; then
3948 if test -z "$install_libdir"; then
3951 output
="$output_objdir/$outputname"i
3952 # Replace all uninstalled libtool libraries with the installed ones
3954 for deplib
in $dependency_libs; do
3957 name
=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3958 eval libdir
=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3959 if test -z "$libdir"; then
3960 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3963 newdependency_libs
="$newdependency_libs $libdir/$name"
3965 *) newdependency_libs
="$newdependency_libs $deplib" ;;
3968 dependency_libs
="$newdependency_libs"
3970 for lib
in $dlfiles; do
3971 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3972 eval libdir
=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3973 if test -z "$libdir"; then
3974 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3977 newdlfiles
="$newdlfiles $libdir/$name"
3979 dlfiles
="$newdlfiles"
3981 for lib
in $dlprefiles; do
3982 name
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3983 eval libdir
=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3984 if test -z "$libdir"; then
3985 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3988 newdlprefiles
="$newdlprefiles $libdir/$name"
3990 dlprefiles
="$newdlprefiles"
3994 # $outputname - a libtool library file
3995 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3997 # Please DO NOT delete this file!
3998 # It is necessary for linking the library.
4000 # The name that we can dlopen(3).
4003 # Names of this library.
4004 library_names='$library_names'
4006 # The name of the static archive.
4007 old_library='$old_library'
4009 # Libraries that this one depends upon.
4010 dependency_libs='$dependency_libs'
4012 # Version information for $libname.
4017 # Is this an already installed library?
4018 installed=$installed
4020 # Files to dlopen/dlpreopen
4022 dlpreopen='$dlprefiles'
4024 # Directory that this library needs to be installed in:
4025 libdir='$install_libdir'"
4026 if test "$installed" = no
&& test $need_relink = yes; then
4028 relink_command=\"$relink_command\""
4033 # Do a symbolic link so that the libtool archive can be found in
4034 # LD_LIBRARY_PATH before the program is installed.
4035 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4036 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' ||
exit $?
4042 # libtool install mode
4044 modename
="$modename: install"
4046 # There may be an optional sh(1) argument at the beginning of
4047 # install_prog (especially on Windows NT).
4048 if test "$nonopt" = "$SHELL" ||
test "$nonopt" = /bin
/sh ||
4049 # Allow the use of GNU shtool's install command.
4050 $echo "X$nonopt" |
$Xsed |
grep shtool
> /dev
/null
; then
4051 # Aesthetically quote it.
4052 arg
=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4054 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4058 install_prog
="$arg "
4066 # The real first argument should be the name of the installation program.
4067 # Aesthetically quote it.
4068 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4070 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4074 install_prog
="$install_prog$arg"
4076 # We need to accept at least all the BSD install flags.
4086 if test -n "$dest"; then
4087 files
="$files $dest"
4105 # If the previous option needed an argument, then skip it.
4106 if test -n "$prev"; then
4115 # Aesthetically quote the argument.
4116 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4118 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4122 install_prog
="$install_prog $arg"
4125 if test -z "$install_prog"; then
4126 $echo "$modename: you must specify an install program" 1>&2
4131 if test -n "$prev"; then
4132 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4137 if test -z "$files"; then
4138 if test -z "$dest"; then
4139 $echo "$modename: no file or destination specified" 1>&2
4141 $echo "$modename: you must specify a destination" 1>&2
4147 # Strip any trailing slash from the destination.
4148 dest
=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4150 # Check to see that the destination is a directory.
4151 test -d "$dest" && isdir
=yes
4152 if test "$isdir" = yes; then
4156 destdir
=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4157 test "X$destdir" = "X$dest" && destdir
=.
4158 destname
=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4160 # Not a directory, so check to see that there is only one file specified.
4162 if test $# -gt 2; then
4163 $echo "$modename: \`$dest' is not a directory" 1>&2
4169 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
4171 for file in $files; do
4175 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4184 # This variable tells wrapper scripts just to set variables rather
4185 # than running their programs.
4186 libtool_install_magic
="$magic"
4191 for file in $files; do
4193 # Do each installation.
4196 # Do the static libraries later.
4197 staticlibs
="$staticlibs $file"
4201 # Check to see that this really is a libtool archive.
4202 if (sed -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
4204 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4212 # If there is no directory component, then add one.
4214 */* |
*\\*) .
$file ;;
4218 # Add the libdir to current_libdirs if it is the destination.
4219 if test "X$destdir" = "X$libdir"; then
4220 case "$current_libdirs " in
4222 *) current_libdirs
="$current_libdirs $libdir" ;;
4225 # Note the libdir as a future libdir.
4226 case "$future_libdirs " in
4228 *) future_libdirs
="$future_libdirs $libdir" ;;
4232 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4233 test "X$dir" = "X$file/" && dir
=
4236 if test -n "$relink_command"; then
4237 $echo "$modename: warning: relinking \`$file'" 1>&2
4238 $show "$relink_command"
4239 if $run eval "$relink_command"; then :
4241 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4246 # See the names of the shared library.
4247 set dummy
$library_names
4248 if test -n "$2"; then
4254 test -n "$relink_command" && srcname
="$realname"T
4256 # Install the shared library and build the symlinks.
4257 $show "$install_prog $dir/$srcname $destdir/$realname"
4258 $run eval "$install_prog $dir/$srcname $destdir/$realname" ||
exit $?
4259 if test -n "$stripme" && test -n "$striplib"; then
4260 $show "$striplib $destdir/$realname"
4261 $run eval "$striplib $destdir/$realname" ||
exit $?
4264 if test $# -gt 0; then
4265 # Delete the old symlinks, and create new ones.
4268 if test "$linkname" != "$realname"; then
4269 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4270 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4275 # Do each command in the postinstall commands.
4276 lib
="$destdir/$realname"
4277 eval cmds
=\"$postinstall_cmds\"
4278 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
4279 for cmd
in $cmds; do
4282 $run eval "$cmd" ||
exit $?
4287 # Install the pseudo-library for information purposes.
4288 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4289 instname
="$dir/$name"i
4290 $show "$install_prog $instname $destdir/$name"
4291 $run eval "$install_prog $instname $destdir/$name" ||
exit $?
4293 # Maybe install the static library, too.
4294 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
4298 # Install (i.e. copy) a libtool object.
4300 # Figure out destination file name, if it wasn't already specified.
4301 if test -n "$destname"; then
4302 destfile
="$destdir/$destname"
4304 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4305 destfile
="$destdir/$destfile"
4308 # Deduce the name of the destination old-style object file.
4311 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4314 staticdest
="$destfile"
4318 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4324 # Install the libtool object if requested.
4325 if test -n "$destfile"; then
4326 $show "$install_prog $file $destfile"
4327 $run eval "$install_prog $file $destfile" ||
exit $?
4330 # Install the old object if enabled.
4331 if test "$build_old_libs" = yes; then
4332 # Deduce the name of the old-style object file.
4333 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
4335 $show "$install_prog $staticobj $staticdest"
4336 $run eval "$install_prog \$staticobj \$staticdest" ||
exit $?
4342 # Figure out destination file name, if it wasn't already specified.
4343 if test -n "$destname"; then
4344 destfile
="$destdir/$destname"
4346 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4347 destfile
="$destdir/$destfile"
4350 # Do a test to see if this is really a libtool program.
4351 if (sed -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4355 # If there is no directory component, then add one.
4357 */* |
*\\*) .
$file ;;
4361 # Check the variables that should have been set.
4362 if test -z "$uninst_deplibs"; then
4363 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4368 for lib
in $uninst_deplibs; do
4369 # Check to see that each library is installed.
4371 if test -f "$lib"; then
4372 # If there is no directory component, then add one.
4374 */* |
*\\*) .
$lib ;;
4378 libfile
="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4379 if test -n "$libdir" && test ! -f "$libfile"; then
4380 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4386 # If there is no directory component, then add one.
4388 */* |
*\\*) .
$file ;;
4393 if test "$fast_install" = no
&& test -n "$relink_command"; then
4394 if test "$finalize" = yes && test -z "$run"; then
4396 test -n "$TMPDIR" && tmpdir
="$TMPDIR"
4397 tmpdir
="$tmpdir/libtool-$$"
4398 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4400 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4403 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4404 outputname
="$tmpdir/$file"
4405 # Replace the output file specification.
4406 relink_command
=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4408 $show "$relink_command"
4409 if $run eval "$relink_command"; then :
4411 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4417 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4420 # Install the binary that we compiled earlier.
4421 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4425 $show "$install_prog$stripme $file $destfile"
4426 $run eval "$install_prog\$stripme \$file \$destfile" ||
exit $?
4427 test -n "$outputname" && ${rm}r
"$tmpdir"
4432 for file in $staticlibs; do
4433 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4435 # Set up the ranlib parameters.
4436 oldlib
="$destdir/$name"
4438 $show "$install_prog $file $oldlib"
4439 $run eval "$install_prog \$file \$oldlib" ||
exit $?
4441 if test -n "$stripme" && test -n "$striplib"; then
4442 $show "$old_striplib $oldlib"
4443 $run eval "$old_striplib $oldlib" ||
exit $?
4446 # Do each command in the postinstall commands.
4447 eval cmds
=\"$old_postinstall_cmds\"
4448 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
4449 for cmd
in $cmds; do
4452 $run eval "$cmd" ||
exit $?
4457 if test -n "$future_libdirs"; then
4458 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4461 if test -n "$current_libdirs"; then
4462 # Maybe just do a dry run.
4463 test -n "$run" && current_libdirs
=" -n$current_libdirs"
4464 exec $SHELL $0 --finish$current_libdirs
4471 # libtool finish mode
4473 modename
="$modename: finish"
4477 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4480 libdirs
="$libdirs $dir"
4483 for libdir
in $libdirs; do
4484 if test -n "$finish_cmds"; then
4485 # Do each command in the finish commands.
4486 eval cmds
=\"$finish_cmds\"
4487 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
4488 for cmd
in $cmds; do
4491 $run eval "$cmd" || admincmds
="$admincmds
4496 if test -n "$finish_eval"; then
4497 # Do the single finish_eval.
4498 eval cmds
=\"$finish_eval\"
4499 $run eval "$cmds" || admincmds
="$admincmds
4505 # Exit here if they wanted silent mode.
4506 test "$show" = : && exit 0
4508 echo "----------------------------------------------------------------------"
4509 echo "Libraries have been installed in:"
4510 for libdir
in $libdirs; do
4514 echo "If you ever happen to want to link against installed libraries"
4515 echo "in a given directory, LIBDIR, you must either use libtool, and"
4516 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
4517 echo "flag during linking and do at least one of the following:"
4518 if test -n "$shlibpath_var"; then
4519 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4520 echo " during execution"
4522 if test -n "$runpath_var"; then
4523 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4524 echo " during linking"
4526 if test -n "$hardcode_libdir_flag_spec"; then
4528 eval flag
=\"$hardcode_libdir_flag_spec\"
4530 echo " - use the \`$flag' linker flag"
4532 if test -n "$admincmds"; then
4533 echo " - have your system administrator run these commands:$admincmds"
4535 if test -f /etc
/ld.so.conf
; then
4536 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4539 echo "See any operating system documentation about shared libraries for"
4540 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4541 echo "----------------------------------------------------------------------"
4545 # libtool execute mode
4547 modename
="$modename: execute"
4549 # The first argument is the command name.
4551 if test -z "$cmd"; then
4552 $echo "$modename: you must specify a COMMAND" 1>&2
4557 # Handle -dlopen flags immediately.
4558 for file in $execute_dlfiles; do
4559 if test ! -f "$file"; then
4560 $echo "$modename: \`$file' is not a file" 1>&2
4568 # Check to see that this really is a libtool archive.
4569 if (sed -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
4571 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4576 # Read the libtool library.
4580 # If there is no directory component, then add one.
4582 */* |
*\\*) .
$file ;;
4586 # Skip this library if it cannot be dlopened.
4587 if test -z "$dlname"; then
4588 # Warn if it was a shared library.
4589 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4593 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4594 test "X$dir" = "X$file" && dir
=.
4596 if test -f "$dir/$objdir/$dlname"; then
4599 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4605 # Just add the directory containing the .lo file.
4606 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4607 test "X$dir" = "X$file" && dir
=.
4611 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4616 # Get the absolute pathname.
4617 absdir
=`cd "$dir" && pwd`
4618 test -n "$absdir" && dir
="$absdir"
4620 # Now add the directory to shlibpath_var.
4621 if eval "test -z \"\$$shlibpath_var\""; then
4622 eval "$shlibpath_var=\"\$dir\""
4624 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4628 # This variable tells wrapper scripts just to set shlibpath_var
4629 # rather than running their programs.
4630 libtool_execute_magic
="$magic"
4632 # Check if any of the arguments is a wrapper script.
4639 # Do a test to see if this is really a libtool program.
4640 if (sed -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4641 # If there is no directory component, then add one.
4643 */* |
*\\*) .
$file ;;
4647 # Transform arg to wrapped name.
4648 file="$progdir/$program"
4652 # Quote arguments (to preserve shell metacharacters).
4653 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4654 args
="$args \"$file\""
4657 if test -z "$run"; then
4658 if test -n "$shlibpath_var"; then
4659 # Export the shlibpath_var.
4660 eval "export $shlibpath_var"
4663 # Restore saved enviroment variables
4664 if test "${save_LC_ALL+set}" = set; then
4665 LC_ALL
="$save_LC_ALL"; export LC_ALL
4667 if test "${save_LANG+set}" = set; then
4668 LANG
="$save_LANG"; export LANG
4671 # Now actually exec the command.
4672 eval "exec \$cmd$args"
4674 $echo "$modename: cannot exec \$cmd$args"
4677 # Display what would be done.
4678 if test -n "$shlibpath_var"; then
4679 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4680 $echo "export $shlibpath_var"
4687 # libtool clean and uninstall mode
4689 modename
="$modename: $mode"
4693 # This variable tells wrapper scripts just to set variables rather
4694 # than running their programs.
4695 libtool_install_magic
="$magic"
4700 -*) rm="$rm $arg" ;;
4701 *) files
="$files $arg" ;;
4705 if test -z "$rm"; then
4706 $echo "$modename: you must specify an RM program" 1>&2
4711 for file in $files; do
4712 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4713 if test "X$dir" = "X$file"; then
4717 objdir
="$dir/$objdir"
4719 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4720 test $mode = uninstall
&& objdir
="$dir"
4726 # Possibly a libtool archive, so verify it.
4727 if (sed -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4730 # Delete the libtool libraries and symlinks.
4731 for n
in $library_names; do
4732 rmfiles
="$rmfiles $objdir/$n"
4734 test -n "$old_library" && rmfiles
="$rmfiles $objdir/$old_library"
4735 test $mode = clean
&& rmfiles
="$rmfiles $objdir/$name $objdir/${name}i"
4737 if test $mode = uninstall
; then
4738 if test -n "$library_names"; then
4739 # Do each command in the postuninstall commands.
4740 eval cmds
=\"$postuninstall_cmds\"
4741 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
4742 for cmd
in $cmds; do
4750 if test -n "$old_library"; then
4751 # Do each command in the old_postuninstall commands.
4752 eval cmds
=\"$old_postuninstall_cmds\"
4753 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
4754 for cmd
in $cmds; do
4761 # FIXME: should reinstall the best remaining shared library.
4767 # Possibly a libtool object, so verify it.
4768 if (sed -e '2q' $arg |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4773 # Add PIC object to the list of files to remove.
4774 if test -n "$pic_object" \
4775 && test "$pic_object" != none
; then
4776 rmfiles
="$rmfiles $dir/$pic_object"
4779 # Add non-PIC object to the list of files to remove.
4780 if test -n "$non_pic_object" \
4781 && test "$non_pic_object" != none
; then
4782 rmfiles
="$rmfiles $dir/$non_pic_object"
4788 # Do a test to see if this is a libtool program.
4789 if test $mode = clean
&&
4790 (sed -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
4794 rmfiles
="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4795 if test "$fast_install" = yes && test -n "$relink_command"; then
4796 rmfiles
="$rmfiles $objdir/lt-$name"
4801 $show "$rm $rmfiles"
4808 $echo "$modename: you must specify a MODE" 1>&2
4809 $echo "$generic_help" 1>&2
4814 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4815 $echo "$generic_help" 1>&2
4817 fi # test -z "$show_help"
4819 # We need to display help for each of the modes.
4822 "Usage: $modename [OPTION]... [MODE-ARG]...
4824 Provide generalized library-building support services.
4826 --config show all configuration variables
4827 --debug enable verbose shell tracing
4828 -n, --dry-run display commands without modifying any files
4829 --features display basic configuration information and exit
4830 --finish same as \`--mode=finish'
4831 --help display this help message and exit
4832 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4833 --quiet same as \`--silent'
4834 --silent don't print informational messages
4835 --tag=TAG use configuration variables from tag TAG
4836 --version print version information
4838 MODE must be one of the following:
4840 clean remove files from the build directory
4841 compile compile a source file into a libtool object
4842 execute automatically set library path, then run a program
4843 finish complete the installation of libtool libraries
4844 install install libraries or executables
4845 link create a library or an executable
4846 uninstall remove libraries from an installed directory
4848 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
4849 a more detailed description of MODE."
4855 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
4857 Remove files from the build directory.
4859 RM is the name of the program to use to delete files associated with each FILE
4860 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4863 If FILE is a libtool library, object or program, all the files associated
4864 with it are deleted. Otherwise, only FILE itself is deleted using RM."
4869 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
4871 Compile a source file into a libtool library object.
4873 This mode accepts the following additional options:
4875 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
4876 -static always build a \`.o' file suitable for static linking
4878 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
4879 from the given SOURCEFILE.
4881 The output file name is determined by removing the directory component from
4882 SOURCEFILE, then substituting the C source code suffix \`.c' with the
4883 library object suffix, \`.lo'."
4888 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
4890 Automatically set library path, then run a program.
4892 This mode accepts the following additional options:
4894 -dlopen FILE add the directory containing FILE to the library path
4896 This mode sets the library path environment variable according to \`-dlopen'
4899 If any of the ARGS are libtool executable wrappers, then they are translated
4900 into their corresponding uninstalled binary, and any of their required library
4901 directories are added to the library path.
4903 Then, COMMAND is executed, with ARGS as arguments."
4908 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
4910 Complete the installation of libtool libraries.
4912 Each LIBDIR is a directory that contains libtool libraries.
4914 The commands that this mode executes may require superuser privileges. Use
4915 the \`--dry-run' option if you just want to see what would be executed."
4920 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4922 Install executables or libraries.
4924 INSTALL-COMMAND is the installation command. The first component should be
4925 either the \`install' or \`cp' program.
4927 The rest of the components are interpreted as arguments to that command (only
4928 BSD-compatible install options are recognized)."
4933 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4935 Link object files or libraries together to form another library, or to
4936 create an executable program.
4938 LINK-COMMAND is a command using the C compiler that you would use to create
4939 a program from several object files.
4941 The following components of LINK-COMMAND are treated specially:
4943 -all-static do not do any dynamic linking at all
4944 -avoid-version do not add a version suffix if possible
4945 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4946 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4947 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4948 -export-symbols SYMFILE
4949 try to export only the symbols listed in SYMFILE
4950 -export-symbols-regex REGEX
4951 try to export only the symbols matching REGEX
4952 -LLIBDIR search LIBDIR for required installed libraries
4953 -lNAME OUTPUT-FILE requires the installed library libNAME
4954 -module build a library that can dlopened
4955 -no-fast-install disable the fast-install mode
4956 -no-install link a not-installable executable
4957 -no-undefined declare that a library does not refer to external symbols
4958 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4959 -release RELEASE specify package release information
4960 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4961 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4962 -static do not do any dynamic linking of libtool libraries
4963 -version-info CURRENT[:REVISION[:AGE]]
4964 specify library version info [each variable defaults to 0]
4966 All other options (arguments beginning with \`-') are ignored.
4968 Every other argument is treated as a filename. Files ending in \`.la' are
4969 treated as uninstalled libtool libraries, other files are standard or library
4972 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4973 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4974 required, except when creating a convenience library.
4976 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4977 using \`ar' and \`ranlib', or on Windows using \`lib'.
4979 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4980 is created, otherwise an executable program is created."
4985 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4987 Remove libraries from an installation directory.
4989 RM is the name of the program to use to delete files associated with each FILE
4990 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4993 If FILE is a libtool library, all the files associated with it are deleted.
4994 Otherwise, only FILE itself is deleted using RM."
4998 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5005 $echo "Try \`$modename --help' for more information about other modes."
5009 ### BEGIN LIBTOOL TAG CONFIG: disable-shared
5010 build_libtool_libs
=no
5011 ### END LIBTOOL TAG CONFIG: disable-shared
5013 ### BEGIN LIBTOOL TAG CONFIG: disable-static
5015 ### END LIBTOOL TAG CONFIG: disable-static