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-1998 Free Software Foundation, Inc.
5 # 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`($echo '\t') 2>/dev/null`" = 'X\t'; then
31 # Yippee, $echo works!
34 # Restart under the correct shell, and then maybe $echo will work.
35 exec $SHELL "$0" --no-reexec ${1+"$@"}
38 # The name of this program.
39 progname
=`$echo "$0" | sed 's%^.*/%%'`
48 help="Try \`$progname --help' for more information."
49 magic
="%%%MAGIC variable%%%"
54 # Sed substitution that helps us do robust quoting. It backslashifies
55 # metacharacters that are still active within double-quoted strings.
57 sed_quote_subst
='s/\([\\`\\"$\\\\]\)/\\\1/g'
60 # Only set LANG and LC_ALL to C if already set.
61 # These must not be set unconditionally because not all systems understand
62 # e.g. LANG=C (notably SCO).
63 # We save the old values to restore during execute mode.
64 if test "${LC_ALL+set}" = set; then
65 save_LC_ALL
="$LC_ALL"; LC_ALL
=C
; export LC_ALL
67 if test "${LANG+set}" = set; then
68 save_LANG
="$LANG"; LANG
=C
; export LANG
71 if test "$LTCONFIG_VERSION" != "$VERSION"; then
72 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
73 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
77 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
78 echo "$modename: not configured to build any kind of library" 1>&2
79 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
92 lo2o
="s/\\.lo\$/.${objext}/"
93 los2o
="s/\\.lo /.${objext} /g"
95 # Parse our command line options once, thoroughly.
102 -*=*) optarg
=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
106 # If the previous option needs an argument, assign it.
107 if test -n "$prev"; then
110 eval "$prev=\"\$$prev \$arg\""
122 # Have we seen a non-optional argument yet?
129 echo "$PROGRAM (GNU $PACKAGE) $VERSION"
134 sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
139 echo "$progname: enabling shell trace mode"
149 if test "$build_libtool_libs" = yes; then
150 echo "enable shared libraries"
152 echo "disable shared libraries"
154 if test "$build_old_libs" = yes; then
155 echo "enable static libraries"
157 echo "disable static libraries"
162 --finish) mode
="finish" ;;
164 --mode) prevopt
="--mode" prev
=mode
;;
165 --mode=*) mode
="$optarg" ;;
177 $echo "$modename: unrecognized option \`$arg'" 1>&2
189 if test -n "$prevopt"; then
190 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
195 if test -z "$show_help"; then
197 # Infer the operation mode.
198 if test -z "$mode"; then
200 *cc |
*++ | gcc
* |
*-gcc*)
212 *db |
*dbx |
*strace |
*truss
)
222 # If we have no mode, but dlfiles were specified, then do execute mode.
223 test -n "$execute_dlfiles" && mode
=execute
225 # Just use the default operation mode.
226 if test -z "$mode"; then
227 if test -n "$nonopt"; then
228 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
230 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
237 # Only execute mode is allowed to have -dlopen flags.
238 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
239 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
244 # Change the help message to a mode-specific one.
246 help="Try \`$modename --help --mode=$mode' for more information."
248 # These modes are in order of execution frequency so that they run quickly.
250 # libtool compile mode
252 modename
="$modename: compile"
253 # Get the compilation command and the source file.
261 # Accept any command-line options.
264 $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
275 # Accept the current argument as the source file.
279 # Aesthetically quote the previous argument.
281 # Backslashify any backslashes, double quotes, and dollar signs.
282 # These are the only characters that are still specially
283 # interpreted inside of double-quoted scrings.
284 lastarg
=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
286 # Double-quote args containing other shell metacharacters.
287 # Many Bourne shells cannot handle close brackets correctly in scan
288 # sets, so we specify it separately.
290 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
291 lastarg
="\"$lastarg\""
295 # Add the previous argument to base_compile.
296 if test -z "$base_compile"; then
297 base_compile
="$lastarg"
299 base_compile
="$base_compile $lastarg"
303 # Get the name of the library object.
304 libobj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
306 # Recognize several different file suffixes.
321 libobj
=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
324 *.lo
) obj
=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
326 $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
331 if test -z "$base_compile"; then
332 $echo "$modename: you must specify a compilation command" 1>&2
337 # Delete any leftover library objects.
338 if test "$build_old_libs" = yes; then
339 $run $rm $obj $libobj
340 trap "$run $rm $obj $libobj; exit 1" 1 2 15
343 trap "$run $rm $libobj; exit 1" 1 2 15
346 if test -n "$fix_srcfile_path"; then
347 eval srcfile
=\"$fix_srcfile_path\"
350 # Only build a PIC object if we are building libtool libraries.
351 if test "$build_libtool_libs" = yes; then
352 # Without this assignment, base_compile gets emptied.
353 fbsd_hideous_sh_bug
=$base_compile
355 # All platforms use -DPIC, to notify preprocessed assembler code.
356 $show "$base_compile$pic_flag -DPIC $srcfile"
357 if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then :
359 test -n "$obj" && $run $rm $obj
363 # If we have no pic_flag, then copy the object into place and finish.
364 if test -z "$pic_flag"; then
365 $show "$LN_S $obj $libobj"
366 $run $LN_S $obj $libobj
370 # Just move the object, then go on to compile the next one
371 $show "$mv $obj $libobj"
372 $run $mv $obj $libobj ||
exit $?
374 # Allow error messages only from the first compilation.
375 suppress_output
=' >/dev/null 2>&1'
378 # Only build a position-dependent object if we build old libraries.
379 if test "$build_old_libs" = yes; then
380 # Suppress compiler output if we already did a PIC compilation.
381 $show "$base_compile $srcfile$suppress_output"
382 if $run eval "$base_compile \$srcfile$suppress_output"; then :
384 $run $rm $obj $libobj
389 # Create an invalid libtool object if no PIC, so that we do not
390 # accidentally link it into a program.
391 if test "$build_libtool_libs" != yes; then
392 $show "echo timestamp > $libobj"
393 $run eval "echo timestamp > \$libobj" ||
exit $?
401 modename
="$modename: link"
404 compile_command
="$CC"
405 finalize_command
="$CC"
418 link_against_libtool_libs
=
429 # We need to know -static, to get the right output filenames.
433 -all-static |
-static)
434 if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
435 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
437 build_libtool_libs
=no
444 # See if our shared archives depend on static archives.
445 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
447 # Go through the arguments, transforming them on the way.
448 while test $# -gt 0; do
452 # If the previous option needs an argument, assign it.
453 if test -n "$prev"; then
456 compile_command
="$compile_command @OUTPUT@"
457 finalize_command
="$finalize_command @OUTPUT@"
464 *.la |
*.lo
) ;; # We handle these cases below.
466 dlprefiles
="$dlprefiles $arg"
467 test "$prev" = dlfiles
&& dlfiles
="$dlfiles $arg"
483 eval "$prev=\"\$arg\""
494 if test -n "$link_static_flag"; then
495 compile_command
="$compile_command $link_static_flag"
496 finalize_command
="$finalize_command $link_static_flag"
502 # FIXME: remove this flag sometime in the future.
503 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
518 if test "$export_dynamic" != yes; then
520 if test -n "$export_dynamic_flag_spec"; then
521 eval arg
=\"$export_dynamic_flag_spec\"
526 # Add the symbol object into the linking commands.
527 compile_command
="$compile_command @SYMFILE@"
528 finalize_command
="$finalize_command @SYMFILE@"
533 dir
=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
535 /* |
[A-Za-z
]:[/\\]*)
536 # Add the corresponding hardcode_libdir_flag, if it is not identical.
539 $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
543 deplibs
="$deplibs $arg"
546 -l*) deplibs
="$deplibs $arg" ;;
566 # If we have no pic_flag, then this is the same as -all-static.
567 if test -z "$pic_flag" && test -n "$link_static_flag"; then
568 compile_command
="$compile_command $link_static_flag"
569 finalize_command
="$finalize_command $link_static_flag"
579 # Some other compiler flag.
581 # Unknown arguments in both finalize_command and compile_command need
582 # to be aesthetically quoted because they are evaled later.
583 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
585 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
591 *.o |
*.obj |
*.a |
*.lib
)
598 if test "$prev" = dlfiles
; then
599 dlfiles
="$dlfiles $arg"
600 if test "$build_libtool_libs" = yes; then
604 # If libtool objects are unsupported, then we need to preload.
609 if test "$prev" = dlprefiles
; then
610 # Preload the old-style object.
611 dlprefiles
="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
614 libobjs
="$libobjs $arg"
618 # A libtool-controlled library.
625 # Check to see that this really is a libtool archive.
626 if (sed -e '2q' $arg |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
628 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
632 # If there is no directory component, then add one.
634 */* |
*\\*) .
$arg ;;
638 # Get the name of the library we link against.
640 for l
in $old_library $library_names; do
644 if test -z "$linklib"; then
645 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
649 # Find the relevant object directory and library name.
650 name
=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
651 dir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
652 if test "X$dir" = "X$arg"; then
658 if test -z "$libdir"; then
659 # It is a libtool convenience library, so add in its objects.
660 convenience
="$convenience $dir/$old_library"l
661 old_convenience
="$old_convenience $dir/$old_library"
662 compile_command
="$compile_command $dir/$old_library"
663 finalize_command
="$finalize_command $dir/$old_library"
667 # This library was specified with -dlopen.
668 if test "$prev" = dlfiles
; then
669 dlfiles
="$dlfiles $arg"
670 if test -z "$dlname"; then
671 # If there is no dlname, we need to preload.
674 # We should not create a dependency on this library, but we
675 # may need any libraries it requires.
676 compile_command
="$compile_command$dependency_libs"
677 finalize_command
="$finalize_command$dependency_libs"
683 # The library was specified with -dlpreopen.
684 if test "$prev" = dlprefiles
; then
685 # Prefer using a static library (so that no silly _DYNAMIC symbols
686 # are required to link).
687 if test -n "$old_library"; then
688 dlprefiles
="$dlprefiles $dir/$old_library"
690 dlprefiles
="$dlprefiles $dir/$linklib"
695 if test "$build_libtool_libs" = yes && test -n "$library_names"; then
696 link_against_libtool_libs
="$link_against_libtool_libs $arg"
697 if test -n "$shlibpath_var"; then
698 # Make sure the rpath contains only unique directories.
699 case "$temp_rpath " in
701 *) temp_rpath
="$temp_rpath $dir" ;;
705 # This is the magic to use -rpath.
706 if test -n "$hardcode_libdir_flag_spec"; then
707 if test -n "$hardcode_libdir_separator"; then
708 if test -z "$hardcode_libdirs"; then
709 # Put the magic libdir with the hardcode flag.
710 hardcode_libdirs
="$libdir"
711 libdir
="@HARDCODE_LIBDIRS@"
713 # Just accumulate the unique libdirs.
714 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
715 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
718 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
725 if test -n "$libdir"; then
726 eval flag
=\"$hardcode_libdir_flag_spec\"
728 compile_command
="$compile_command $flag"
729 finalize_command
="$finalize_command $flag"
731 elif test -n "$runpath_var"; then
732 # Do the same for the permanent run path.
733 case "$perm_rpath " in
735 *) perm_rpath
="$perm_rpath $libdir" ;;
741 case "$hardcode_action" in
742 immediate | unsupported
)
743 if test "$hardcode_direct" = no
; then
744 compile_command
="$compile_command $dir/$linklib"
745 elif test "$hardcode_minus_L" = no
; then
748 compile_shlibpath
="$compile_shlibpath$dir:"
751 compile_command
="$compile_command -L$dir -l$name"
752 elif test "$hardcode_shlibpath_var" = no
; then
753 compile_shlibpath
="$compile_shlibpath$dir:"
754 compile_command
="$compile_command -l$name"
761 # We need an absolute path.
763 /* |
[A-Za-z
]:[/\\]*) ;;
765 absdir
=`cd "$dir" && pwd`
766 if test -z "$absdir"; then
767 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
774 if test "$hardcode_direct" = yes; then
775 compile_command
="$compile_command $dir/$linklib"
776 elif test "$hardcode_minus_L" = yes; then
777 compile_command
="$compile_command -L$dir -l$name"
778 elif test "$hardcode_shlibpath_var" = yes; then
779 compile_shlibpath
="$compile_shlibpath$dir:"
780 compile_command
="$compile_command -l$name"
791 if test "$lib_linked" != yes; then
792 $echo "$modename: configuration error: unsupported hardcode properties"
796 # Finalize command for both is simple: just hardcode it.
797 if test "$hardcode_direct" = yes; then
798 finalize_command
="$finalize_command $libdir/$linklib"
799 elif test "$hardcode_minus_L" = yes; then
800 finalize_command
="$finalize_command -L$libdir -l$name"
801 elif test "$hardcode_shlibpath_var" = yes; then
802 finalize_shlibpath
="$finalize_shlibpath$libdir:"
803 finalize_command
="$finalize_command -l$name"
805 # We cannot seem to hardcode it, guess we'll fake it.
806 finalize_command
="$finalize_command -L$libdir -l$name"
809 # Transform directly to old archives if we don't build new libraries.
810 if test -n "$pic_flag" && test -z "$old_library"; then
811 $echo "$modename: cannot find static library for \`$arg'" 1>&2
815 # Here we assume that one of hardcode_direct or hardcode_minus_L
816 # is not unsupported. This is valid on all known static and
818 if test "$hardcode_direct" != unsupported
; then
819 test -n "$old_library" && linklib
="$old_library"
820 compile_command
="$compile_command $dir/$linklib"
821 finalize_command
="$finalize_command $dir/$linklib"
823 compile_command
="$compile_command -L$dir -l$name"
824 finalize_command
="$finalize_command -L$dir -l$name"
828 # Add in any libraries that this one depends upon.
829 compile_command
="$compile_command$dependency_libs"
830 finalize_command
="$finalize_command$dependency_libs"
834 # Some other compiler argument.
836 # Unknown arguments in both finalize_command and compile_command need
837 # to be aesthetically quoted because they are evaled later.
838 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
840 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
847 # Now actually substitute the argument into the commands.
848 if test -n "$arg"; then
849 compile_command
="$compile_command $arg"
850 finalize_command
="$finalize_command $arg"
854 if test -n "$prev"; then
855 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
863 $echo "$modename: you must specify an output file" 1>&2
869 $echo "$modename: output file \`$output' must have no directory components" 1>&2
875 if test -n "$link_against_libtool_libs"; then
876 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
880 if test -n "$deplibs"; then
881 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
884 if test -n "$dlfiles$dlprefiles"; then
885 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
888 if test -n "$rpath"; then
889 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
892 if test -n "$vinfo"; then
893 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
896 if test -n "$release"; then
897 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
900 # Now set the variables for building old libraries.
901 build_libtool_libs
=no
906 # Make sure we only generate libraries of the form `libNAME.la'.
910 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
916 name
=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
917 eval libname
=\"$libname_spec\"
919 # All the library-specific variables (install_libdir is set above).
924 if test -n "$objs"; then
925 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
929 # How the heck are we supposed to write a wrapper for a shared library?
930 if test -n "$link_against_libtool_libs"; then
931 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
935 if test -n "$dlfiles$dlprefiles"; then
936 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
940 if test $# -gt 2; then
941 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
945 # Now set the variables for building old libraries.
946 oldlibs
="$objdir/$libname.$libext"
947 if test -z "$rpath"; then
948 # Building a libtool convenience library.
949 oldlibs
="$objdir/$libname.al $oldlibs"
950 build_libtool_libs
=convenience
952 if test -n "$vinfo"; then
953 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
956 if test -n "$release"; then
957 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
961 # Parse the version information argument.
962 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=':'
963 set dummy
$vinfo 0 0 0
966 if test -n "$8"; then
967 $echo "$modename: too many parameters to \`-version-info'" 1>&2
976 # Check that each of the things are valid numbers.
978 0 |
[1-9] |
[1-9][0-9]*) ;;
980 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
981 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
987 0 |
[1-9] |
[1-9][0-9]*) ;;
989 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
990 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
996 0 |
[1-9] |
[1-9][0-9]*) ;;
998 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
999 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1004 if test $age -gt $current; then
1005 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1006 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1010 # Calculate the version variables.
1014 case "$version_type" in
1018 major
=.
`expr $current - $age`
1019 versuffix
="$major.$age.$revision"
1023 major
=`expr $current - $age`
1024 versuffix
=".$current.$age.$revision"
1025 verstring
="$current.$age.$revision"
1027 # Add in all the interfaces that we are compatible with.
1029 while test $loop != 0; do
1030 iface
=`expr $current - $loop`
1031 loop
=`expr $loop - 1`
1032 verstring
="$verstring:${iface}.0"
1035 # Make executables depend on our current version.
1036 verstring
="$verstring:${current}.0"
1041 versuffix
=".$current.$revision"
1045 # Like Linux, but with '-' rather than '.', since we only
1046 # want one extension on Windows 95.
1047 major
=`expr $current - $age`
1048 versuffix
="-$major-$age-$revision"
1052 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1053 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1058 # Clear the version info if we defaulted, and they specified a release.
1059 if test -z "$vinfo" && test -n "$release"; then
1070 # Check to see if the archive will have undefined symbols.
1071 if test "$allow_undefined" = yes; then
1072 if test "$allow_undefined_flag" = unsupported
; then
1073 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1074 build_libtool_libs
=no
1078 # Don't allow undefined symbols.
1079 allow_undefined_flag
="$no_undefined_flag"
1082 # Add libc to deplibs on all systems.
1083 dependency_libs
="$deplibs"
1084 deplibs
="$deplibs -lc"
1087 # Create the output directory, or remove our outputs if we need to.
1088 if test -d $objdir; then
1089 $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
1090 $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.
*
1092 $show "$mkdir $objdir"
1095 if test $status -ne 0 && test ! -d $objdir; then
1100 if test "$build_libtool_libs" = yes; then
1101 # Get the real and link names of the library.
1102 eval library_names
=\"$library_names_spec\"
1103 set dummy
$library_names
1107 if test -n "$soname_spec"; then
1108 eval soname
=\"$soname_spec\"
1113 lib
="$objdir/$realname"
1116 linknames
="$linknames $link"
1119 # Use standard objects if they are PIC.
1120 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'`
1122 # Transform .lo files to .o files.
1123 test "$build_old_libs" = yes && oldobjs
="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1125 if test -n "$whole_archive_flag_spec"; then
1126 if test -n "$convenience"; then
1127 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
1130 for xlib
in $convenience; do
1131 # Extract the objects.
1133 generated
="$generated $xdir"
1134 xlib
=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
1136 $show "${rm}r $xdir"
1141 if test $status -ne 0 && test ! -d "$xdir"; then
1144 $show "(cd $xdir && $AR x ../$xlib)"
1145 $run eval "(cd \$xdir && $AR x ../\$xlib)" ||
exit $?
1147 libobjs
="$libobjs `echo $xdir/*`"
1151 # Do each of the archive commands.
1152 eval cmds
=\"$archive_cmds\"
1153 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
1154 for cmd
in $cmds; do
1157 $run eval "$cmd" ||
exit $?
1161 # Create links to the real library.
1162 for linkname
in $linknames; do
1163 if test "$realname" != "$linkname"; then
1164 $show "(cd $objdir && $LN_S $realname $linkname)"
1165 $run eval '(cd $objdir && $LN_S $realname $linkname)' ||
exit $?
1169 # If -export-dynamic was specified, set the dlname.
1170 if test "$export_dynamic" = yes; then
1171 # On all known operating systems, these are identical.
1178 if test -n "$link_against_libtool_libs"; then
1179 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
1183 if test -n "$deplibs"; then
1184 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
1187 if test -n "$dlfiles$dlprefiles"; then
1188 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
1191 if test -n "$rpath"; then
1192 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
1195 if test -n "$vinfo"; then
1196 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
1199 if test -n "$release"; then
1200 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
1205 if test -n "$objs"; then
1206 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
1210 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
1218 # Delete the old objects.
1219 $run $rm $obj $libobj
1221 # Create the old-style object.
1222 reload_objs
="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1225 eval cmds
=\"$reload_cmds\"
1226 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
1227 for cmd
in $cmds; do
1230 $run eval "$cmd" ||
exit $?
1234 # Exit if we aren't doing a library object file.
1235 test -z "$libobj" && exit 0
1237 if test "$build_libtool_libs" != yes; then
1238 # Create an invalid libtool object if no PIC, so that we don't
1239 # accidentally link it into a program.
1240 $show "echo timestamp > $libobj"
1241 $run eval "echo timestamp > $libobj" ||
exit $?
1245 if test -n "$pic_flag"; then
1246 # Only do commands if we really have different PIC objects.
1247 reload_objs
="$libobjs"
1249 eval cmds
=\"$reload_cmds\"
1250 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
1251 for cmd
in $cmds; do
1254 $run eval "$cmd" ||
exit $?
1258 # Just create a symlink.
1259 $show "$LN_S $obj $libobj"
1260 $run $LN_S $obj $libobj ||
exit $?
1267 if test -n "$vinfo"; then
1268 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
1271 if test -n "$release"; then
1272 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
1275 if test -n "$rpath"; then
1276 # If the user specified any rpath flags, then add them.
1277 for libdir
in $rpath; do
1278 if test -n "$hardcode_libdir_flag_spec"; then
1279 if test -n "$hardcode_libdir_separator"; then
1280 if test -z "$hardcode_libdirs"; then
1281 # Put the magic libdir with the hardcode flag.
1282 hardcode_libdirs
="$libdir"
1283 libdir
="@HARDCODE_LIBDIRS@"
1285 # Just accumulate the unique libdirs.
1286 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
1287 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
1290 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
1297 if test -n "$libdir"; then
1298 eval flag
=\"$hardcode_libdir_flag_spec\"
1300 compile_command
="$compile_command $flag"
1301 finalize_command
="$finalize_command $flag"
1303 elif test -n "$runpath_var"; then
1304 case "$perm_rpath " in
1306 *) perm_rpath
="$perm_rpath $libdir" ;;
1312 # Substitute the hardcoded libdirs into the compile commands.
1313 if test -n "$hardcode_libdir_separator"; then
1314 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
1315 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
1318 if test -n "$libobjs" && test "$build_old_libs" = yes; then
1319 # Transform all the library objects into standard objects.
1320 compile_command
=`$echo "X$compile_command " | $Xsed -e "$los2o" -e 's/ $//'`
1321 finalize_command
=`$echo "X$finalize_command " | $Xsed -e "$los2o" -e 's/ $//'`
1324 if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
1325 dlsyms
="${output}S.c"
1330 if test -n "$dlsyms"; then
1331 # Add our own program objects to the preloaded list.
1332 dlprefiles
=`$echo "X$objs$dlprefiles " | $Xsed -e "$los2o" -e 's/ $//'`
1334 # Discover the nlist of each of the dlfiles.
1335 nlist
="$objdir/${output}.nm"
1337 if test -d $objdir; then
1338 $show "$rm $nlist ${nlist}T"
1339 $run $rm "$nlist" "${nlist}T"
1341 $show "$mkdir $objdir"
1344 if test $status -ne 0 && test ! -d $objdir; then
1349 for arg
in $dlprefiles; do
1350 $show "extracting global C symbols from \`$arg'"
1351 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
1354 # Parse the name list into a source file.
1355 $show "creating $objdir/$dlsyms"
1356 if test -z "$run"; then
1357 # Make sure we at least have an empty file.
1358 test -f "$nlist" ||
: > "$nlist"
1360 # Try sorting and uniquifying the output.
1361 if sort "$nlist" |
uniq > "$nlist"T
; then
1362 mv -f "$nlist"T
"$nlist"
1363 wcout
=`wc "$nlist" 2>/dev/null`
1364 count
=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
1365 (test "$count" -ge 0) 2>/dev
/null || count
=-1
1374 $echo > "$objdir/$dlsyms" "\
1375 /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
1376 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
1382 /* Prevent the only kind of declaration conflicts we can make. */
1383 #define dld_preloaded_symbol_count some_other_symbol
1384 #define dld_preloaded_symbols some_other_symbol
1386 /* External symbol declarations for the compiler. */\
1389 if test -f "$nlist"; then
1390 sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
1392 echo '/* NONE */' >> "$objdir/$dlsyms"
1395 $echo >> "$objdir/$dlsyms" "\
1397 #undef dld_preloaded_symbol_count
1398 #undef dld_preloaded_symbols
1400 #if defined (__STDC__) && __STDC__
1401 # define __ptr_t void *
1403 # define __ptr_t char *
1406 /* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
1407 int dld_preloaded_symbol_count = $count;
1409 /* The mapping between symbol names and symbols. */
1414 dld_preloaded_symbols[] =
1418 if test -f "$nlist"; then
1419 sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
1422 $echo >> "$objdir/$dlsyms" "\
1433 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
1439 # Now compile the dynamic symbol file.
1440 $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
1441 $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' ||
exit $?
1443 # Transform the symbol file into the correct name.
1444 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
1445 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
1446 elif test "$export_dynamic" != yes; then
1447 test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
1449 # We keep going just in case the user didn't refer to
1450 # dld_preloaded_symbols. The linker will fail if global_symbol_pipe
1451 # really was required.
1452 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
1454 # Nullify the symbol file.
1455 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
1456 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
1459 if test -z "$link_against_libtool_libs" ||
test "$build_libtool_libs" != yes; then
1460 # Replace the output file specification.
1461 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1462 finalize_command
=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1464 # We have no uninstalled library dependencies, so finalize right now.
1465 $show "$compile_command"
1466 $run eval "$compile_command"
1470 # Replace the output file specification.
1471 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
1472 finalize_command
=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
1474 # Create the binary in the object directory, then wrap it.
1475 if test ! -d $objdir; then
1476 $show "$mkdir $objdir"
1479 if test $status -ne 0 && test ! -d $objdir; then
1484 if test -n "$shlibpath_var"; then
1485 # We should set the shlibpath_var
1487 for dir
in $temp_rpath; do
1489 /* |
[A-Za-z
]:[/\\]*)
1494 # Relative path: add a thisdir entry.
1495 rpath
="$rpath\$thisdir/$dir:"
1502 # Delete the old output file.
1505 if test -n "$compile_shlibpath"; then
1506 compile_command
="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
1508 if test -n "$finalize_shlibpath"; then
1509 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
1512 if test -n "$runpath_var" && test -n "$perm_rpath"; then
1513 # We should set the runpath_var.
1515 for dir
in $perm_rpath; do
1518 compile_command
="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
1519 finalize_command
="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
1522 if test "$hardcode_action" = relink
; then
1523 # AGH! Flame the AIX and HP-UX people for me, will ya?
1524 $echo "$modename: warning: using a buggy system linker" 1>&2
1525 $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
1528 $show "$compile_command"
1529 $run eval "$compile_command" ||
exit $?
1531 # Now create the wrapper script.
1532 $show "creating $output"
1534 # Quote the finalize command for shipping.
1535 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
1537 # Quote $echo for shipping.
1538 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
1540 # Only actually do things if our run command is non-null.
1541 if test -z "$run"; then
1543 trap "$rm $output; exit 1" 1 2 15
1548 # $output - temporary wrapper script for $objdir/$output
1549 # Generated by $PROGRAM - GNU $PACKAGE $VERSION
1551 # The $output program cannot be directly executed until all the libtool
1552 # libraries that it depends on are installed.
1554 # This wrapper script should never be moved out of \``pwd`'.
1555 # If it is, it will not operate correctly.
1557 # Sed substitution that helps us do robust quoting. It backslashifies
1558 # metacharacters that are still active within double-quoted strings.
1559 Xsed='sed -e s/^X//'
1560 sed_quote_subst='$sed_quote_subst'
1562 # The HP-UX ksh and POSIX shell print the target directory to stdout
1564 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
1566 # This environment variable determines our operation mode.
1567 if test \"\$libtool_install_magic\" = \"$magic\"; then
1568 # install mode needs the following variables:
1569 link_against_libtool_libs='$link_against_libtool_libs'
1570 finalize_command=\"$finalize_command\"
1572 # When we are sourced in execute mode, \$file and \$echo are already set.
1573 if test \"\$libtool_execute_magic\" != \"$magic\"; then
1576 # Make sure echo works.
1577 if test \"X\$1\" = X--no-reexec; then
1578 # Discard the --no-reexec flag, and continue.
1580 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
1581 # Yippee, \$echo works!
1584 # Restart under the correct shell, and then maybe \$echo will work.
1585 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
1591 # Find the directory that this script lives in.
1592 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
1593 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
1595 # Follow symbolic links until we get to the real thisdir.
1596 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
1597 while test -n \"\$file\"; do
1598 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
1600 # If there was a directory component, then change thisdir.
1601 if test \"x\$destdir\" != \"x\$file\"; then
1602 case \"\$destdir\" in
1603 /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
1604 *) thisdir=\"\$thisdir/\$destdir\" ;;
1608 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
1609 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
1612 # Try to get the absolute directory name.
1613 absdir=\`cd \"\$thisdir\" && pwd\`
1614 test -n \"\$absdir\" && thisdir=\"\$absdir\"
1616 progdir=\"\$thisdir/$objdir\"
1619 if test -f \"\$progdir/\$program\"; then"
1621 # Export our shlibpath_var if we have one.
1622 if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
1624 # Add our own library path to $shlibpath_var
1625 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
1627 # Some systems cannot cope with colon-terminated $shlibpath_var
1628 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
1630 export $shlibpath_var
1635 if test \"\$libtool_execute_magic\" != \"$magic\"; then
1636 # Run the actual program with our arguments.
1638 # Export the path to the program.
1639 PATH=\"\$progdir:\$PATH\"
1642 exec \$program \${1+\"\$@\"}
1644 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
1648 # The program doesn't exist.
1649 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
1650 \$echo \"This script is just a wrapper for \$program.\" 1>&2
1651 echo \"See the $PACKAGE documentation for more information.\" 1>&2
1662 # See if we need to build an old-fashioned archive.
1663 for oldlib
in $oldlibs; do
1665 if test "$build_libtool_libs" = convenience
; then
1667 addlibs
="$convenience"
1668 build_libtool_libs
=no
1670 oldobjs
="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1671 addlibs
="$old_convenience"
1674 # Add in members from convenience archives.
1675 for xlib
in $addlibs; do
1676 # Extract the objects.
1678 generated
="$generated $xdir"
1679 xlib
=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
1681 $show "${rm}r $xdir"
1686 if test $status -ne 0 && test ! -d "$xdir"; then
1689 $show "(cd $xdir && $AR x ../$xlib)"
1690 $run eval "(cd \$xdir && $AR x ../\$xlib)" ||
exit $?
1692 oldobjs
="$oldobjs `echo $xdir/*`"
1695 # Do each command in the archive commands.
1696 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
1697 eval cmds
=\"$old_archive_from_new_cmds\"
1699 eval cmds
=\"$old_archive_cmds\"
1701 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
1702 for cmd
in $cmds; do
1705 $run eval "$cmd" ||
exit $?
1710 if test -n "$generated"; then
1711 $show "${rm}r$generated"
1712 $run ${rm}r
$generated
1715 # Now create the libtool archive.
1719 test "$build_old_libs" = yes && old_library
="$libname.$libext"
1720 $show "creating $output"
1722 # Only create the output if not a dry run.
1723 if test -z "$run"; then
1725 # $output - a libtool library file
1726 # Generated by $PROGRAM - GNU $PACKAGE $VERSION
1728 # The name that we can dlopen(3).
1731 # Names of this library.
1732 library_names='$library_names'
1734 # The name of the static archive.
1735 old_library='$old_library'
1737 # Libraries that this one depends upon.
1738 dependency_libs='$dependency_libs'
1740 # Version information for $libname.
1745 # Directory that this library needs to be installed in:
1746 libdir='$install_libdir'\
1750 # Do a symbolic link so that the libtool archive can be found in
1751 # LD_LIBRARY_PATH before the program is installed.
1752 $show "(cd $objdir && $LN_S ../$output $output)"
1753 $run eval "(cd $objdir && $LN_S ../$output $output)" ||
exit $?
1759 # libtool install mode
1761 modename
="$modename: install"
1763 # There may be an optional sh(1) argument at the beginning of
1764 # install_prog (especially on Windows NT).
1765 if test "$nonopt" = "$SHELL" ||
test "$nonopt" = "/bin/sh"; then
1766 # Aesthetically quote it.
1767 arg
=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
1769 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1773 install_prog
="$arg "
1781 # The real first argument should be the name of the installation program.
1782 # Aesthetically quote it.
1783 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1785 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1789 install_prog
="$install_prog$arg"
1791 # We need to accept at least all the BSD install flags.
1801 if test -n "$dest"; then
1802 files
="$files $dest"
1820 # If the previous option needed an argument, then skip it.
1821 if test -n "$prev"; then
1830 # Aesthetically quote the argument.
1831 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1833 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1837 install_prog
="$install_prog $arg"
1840 if test -z "$install_prog"; then
1841 $echo "$modename: you must specify an install program" 1>&2
1846 if test -n "$prev"; then
1847 $echo "$modename: the \`$prev' option requires an argument" 1>&2
1852 if test -z "$files"; then
1853 if test -z "$dest"; then
1854 $echo "$modename: no file or destination specified" 1>&2
1856 $echo "$modename: you must specify a destination" 1>&2
1862 # Strip any trailing slash from the destination.
1863 dest
=`$echo "X$dest" | $Xsed -e 's%/$%%'`
1865 # Check to see that the destination is a directory.
1866 test -d "$dest" && isdir
=yes
1867 if test "$isdir" = yes; then
1871 destdir
=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
1872 test "X$destdir" = "X$dest" && destdir
=.
1873 destname
=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
1875 # Not a directory, so check to see that there is only one file specified.
1877 if test $# -gt 2; then
1878 $echo "$modename: \`$dest' is not a directory" 1>&2
1884 /* |
[A-Za-z
]:[/\\]*) ;;
1886 for file in $files; do
1890 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
1899 # This variable tells wrapper scripts just to set variables rather
1900 # than running their programs.
1901 libtool_install_magic
="$magic"
1906 for file in $files; do
1908 # Do each installation.
1911 # Do the static libraries later.
1912 staticlibs
="$staticlibs $file"
1916 # Check to see that this really is a libtool archive.
1917 if (sed -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
1919 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
1926 # If there is no directory component, then add one.
1928 */* |
*\\*) .
$file ;;
1932 # Add the libdir to current_libdirs if it is the destination.
1933 if test "X$destdir" = "X$libdir"; then
1934 case "$current_libdirs " in
1936 *) current_libdirs
="$current_libdirs $libdir" ;;
1939 # Note the libdir as a future libdir.
1940 case "$future_libdirs " in
1942 *) future_libdirs
="$future_libdirs $libdir" ;;
1946 dir
="`$echo "X
$file" | $Xsed -e 's%/[^/]*$%%'`/"
1947 test "X$dir" = "X$file/" && dir
=
1950 # See the names of the shared library.
1951 set dummy
$library_names
1952 if test -n "$2"; then
1957 # Install the shared library and build the symlinks.
1958 $show "$install_prog $dir/$realname $destdir/$realname"
1959 $run eval "$install_prog $dir/$realname $destdir/$realname" ||
exit $?
1960 test "X$dlname" = "X$realname" && dlname
=
1962 if test $# -gt 0; then
1963 # Delete the old symlinks.
1967 if test "X$linkname" != "X$realname"; then
1968 rmcmd
="$rmcmd $destdir/$linkname"
1974 # ... and create new ones.
1977 if test "X$linkname" != "X$realname"; then
1978 test "X$dlname" = "X$linkname" && dlname
=
1979 $show "(cd $destdir && $LN_S $realname $linkname)"
1980 $run eval "(cd $destdir && $LN_S $realname $linkname)"
1985 if test -n "$dlname"; then
1986 # Install the dynamically-loadable library.
1987 $show "$install_prog $dir/$dlname $destdir/$dlname"
1988 $run eval "$install_prog $dir/$dlname $destdir/$dlname" ||
exit $?
1991 # Do each command in the postinstall commands.
1992 lib
="$destdir/$realname"
1993 eval cmds
=\"$postinstall_cmds\"
1994 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
1995 for cmd
in $cmds; do
1998 $run eval "$cmd" ||
exit $?
2003 # Install the pseudo-library for information purposes.
2004 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2005 $show "$install_prog $file $destdir/$name"
2006 $run eval "$install_prog $file $destdir/$name" ||
exit $?
2008 # Maybe install the static library, too.
2009 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
2013 # Install (i.e. copy) a libtool object.
2015 # Figure out destination file name, if it wasn't already specified.
2016 if test -n "$destname"; then
2017 destfile
="$destdir/$destname"
2019 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2020 destfile
="$destdir/$destfile"
2023 # Deduce the name of the destination old-style object file.
2026 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
2029 staticdest
="$destfile"
2033 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
2039 # Install the libtool object if requested.
2040 if test -n "$destfile"; then
2041 $show "$install_prog $file $destfile"
2042 $run eval "$install_prog $file $destfile" ||
exit $?
2045 # Install the old object if enabled.
2046 if test "$build_old_libs" = yes; then
2047 # Deduce the name of the old-style object file.
2048 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
2050 $show "$install_prog $staticobj $staticdest"
2051 $run eval "$install_prog \$staticobj \$staticdest" ||
exit $?
2057 # Figure out destination file name, if it wasn't already specified.
2058 if test -n "$destname"; then
2059 destfile
="$destdir/$destname"
2061 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2062 destfile
="$destdir/$destfile"
2065 # Do a test to see if this is really a libtool program.
2066 if (sed -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
2067 link_against_libtool_libs
=
2070 # If there is no directory component, then add one.
2072 */* |
*\\*) .
$file ;;
2076 # Check the variables that should have been set.
2077 if test -z "$link_against_libtool_libs" ||
test -z "$finalize_command"; then
2078 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
2083 for lib
in $link_against_libtool_libs; do
2084 # Check to see that each library is installed.
2086 if test -f "$lib"; then
2087 # If there is no directory component, then add one.
2089 */* |
*\\*) .
$lib ;;
2093 libfile
="$libdir/`$echo "X
$lib" | $Xsed -e 's%^.*/%%g'`"
2094 if test -n "$libdir" && test ! -f "$libfile"; then
2095 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
2100 if test "$hardcode_action" = relink
; then
2101 if test "$finalize" = yes; then
2102 $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
2103 $show "$finalize_command"
2104 if $run eval "$finalize_command"; then :
2106 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
2109 file="$objdir/$file"T
2111 $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
2114 # Install the binary that we compiled earlier.
2115 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2119 $show "$install_prog$stripme $file $destfile"
2120 $run eval "$install_prog\$stripme \$file \$destfile" ||
exit $?
2125 for file in $staticlibs; do
2126 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2128 # Set up the ranlib parameters.
2129 oldlib
="$destdir/$name"
2131 $show "$install_prog $file $oldlib"
2132 $run eval "$install_prog \$file \$oldlib" ||
exit $?
2134 # Do each command in the postinstall commands.
2135 eval cmds
=\"$old_postinstall_cmds\"
2136 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
2137 for cmd
in $cmds; do
2140 $run eval "$cmd" ||
exit $?
2145 if test -n "$future_libdirs"; then
2146 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
2149 if test -n "$current_libdirs"; then
2150 # Maybe just do a dry run.
2151 test -n "$run" && current_libdirs
=" -n$current_libdirs"
2152 exec $SHELL $0 --finish$current_libdirs
2159 # libtool finish mode
2161 modename
="$modename: finish"
2165 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2168 libdirs
="$libdirs $dir"
2171 for libdir
in $libdirs; do
2172 if test -n "$finish_cmds"; then
2173 # Do each command in the finish commands.
2174 eval cmds
=\"$finish_cmds\"
2175 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
2176 for cmd
in $cmds; do
2179 $run eval "$cmd" || admincmds
="$admincmds
2184 if test -n "$finish_eval"; then
2185 # Do the single finish_eval.
2186 eval cmds
=\"$finish_eval\"
2187 $run eval "$cmds" || admincmds
="$admincmds
2193 echo "----------------------------------------------------------------------"
2194 echo "Libraries have been installed in:"
2195 for libdir
in $libdirs; do
2199 echo "To link against installed libraries in a given directory, LIBDIR,"
2200 echo "you must use the \`-LLIBDIR' flag during linking."
2202 echo " You will also need to do at least one of the following:"
2203 if test -n "$shlibpath_var"; then
2204 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2205 echo " during execution"
2207 if test -n "$runpath_var"; then
2208 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2209 echo " during linking"
2211 if test -n "$hardcode_libdir_flag_spec"; then
2213 eval flag
=\"$hardcode_libdir_flag_spec\"
2215 echo " - use the \`$flag' linker flag"
2217 if test -n "$admincmds"; then
2218 echo " - have your system administrator run these commands:$admincmds"
2220 if test -f /etc
/ld.so.conf
; then
2221 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2224 echo "See any operating system documentation about shared libraries for"
2225 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2226 echo "----------------------------------------------------------------------"
2230 # libtool execute mode
2232 modename
="$modename: execute"
2234 # The first argument is the command name.
2236 if test -z "$cmd"; then
2237 $echo "$modename: you must specify a COMMAND" 1>&2
2242 # Handle -dlopen flags immediately.
2243 for file in $execute_dlfiles; do
2244 if test ! -f "$file"; then
2245 $echo "$modename: \`$file' is not a file" 1>&2
2253 # Check to see that this really is a libtool archive.
2254 if (sed -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
2256 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2261 # Read the libtool library.
2265 # If there is no directory component, then add one.
2267 */* |
*\\*) .
$file ;;
2271 # Skip this library if it cannot be dlopened.
2272 if test -z "$dlname"; then
2273 # Warn if it was a shared library.
2274 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
2278 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2279 test "X$dir" = "X$file" && dir
=.
2281 if test -f "$dir/$objdir/$dlname"; then
2284 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
2290 # Just add the directory containing the .lo file.
2291 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2292 test "X$dir" = "X$file" && dir
=.
2296 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
2301 # Get the absolute pathname.
2302 absdir
=`cd "$dir" && pwd`
2303 test -n "$absdir" && dir
="$absdir"
2305 # Now add the directory to shlibpath_var.
2306 if eval "test -z \"\$$shlibpath_var\""; then
2307 eval "$shlibpath_var=\"\$dir\""
2309 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2313 # This variable tells wrapper scripts just to set shlibpath_var
2314 # rather than running their programs.
2315 libtool_execute_magic
="$magic"
2317 # Check if any of the arguments is a wrapper script.
2324 # Do a test to see if this is really a libtool program.
2325 if (sed -e '4q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
2326 # If there is no directory component, then add one.
2328 */* |
*\\*) .
$file ;;
2332 # Transform arg to wrapped name.
2333 file="$progdir/$program"
2337 # Quote arguments (to preserve shell metacharacters).
2338 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
2339 args
="$args \"$file\""
2342 if test -z "$run"; then
2343 # Export the shlibpath_var.
2344 eval "export $shlibpath_var"
2346 # Restore saved enviroment variables
2347 if test "${save_LC_ALL+set}" = set; then
2348 LC_ALL
="$save_LC_ALL"; export LC_ALL
2350 if test "${save_LANG+set}" = set; then
2351 LANG
="$save_LANG"; export LANG
2354 # Now actually exec the command.
2355 eval "exec \$cmd$args"
2357 $echo "$modename: cannot exec \$cmd$args"
2360 # Display what would be done.
2361 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
2362 $echo "export $shlibpath_var"
2368 # libtool uninstall mode
2370 modename
="$modename: uninstall"
2377 -*) rm="$rm $arg" ;;
2378 *) files
="$files $arg" ;;
2382 if test -z "$rm"; then
2383 $echo "$modename: you must specify an RM program" 1>&2
2388 for file in $files; do
2389 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2390 test "X$dir" = "X$file" && dir
=.
2391 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2397 # Possibly a libtool archive, so verify it.
2398 if (sed -e '2q' $file |
egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
2401 # Delete the libtool libraries and symlinks.
2402 for n
in $library_names; do
2403 rmfiles
="$rmfiles $dir/$n"
2404 test "X$n" = "X$dlname" && dlname
=
2406 test -n "$dlname" && rmfiles
="$rmfiles $dir/$dlname"
2407 test -n "$old_library" && rmfiles
="$rmfiles $dir/$old_library"
2409 $show "$rm $rmfiles"
2412 if test -n "$library_names"; then
2413 # Do each command in the postuninstall commands.
2414 eval cmds
=\"$postuninstall_cmds\"
2415 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
2416 for cmd
in $cmds; do
2424 if test -n "$old_library"; then
2425 # Do each command in the old_postuninstall commands.
2426 eval cmds
=\"$old_postuninstall_cmds\"
2427 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=';'
2428 for cmd
in $cmds; do
2436 # FIXME: should reinstall the best remaining shared library.
2441 if test "$build_old_libs" = yes; then
2442 oldobj
=`$echo "X$name" | $Xsed -e "$lo2o"`
2443 rmfiles
="$rmfiles $dir/$oldobj"
2445 $show "$rm $rmfiles"
2450 $show "$rm $rmfiles"
2459 $echo "$modename: you must specify a MODE" 1>&2
2460 $echo "$generic_help" 1>&2
2465 $echo "$modename: invalid operation mode \`$mode'" 1>&2
2466 $echo "$generic_help" 1>&2
2468 fi # test -z "$show_help"
2470 # We need to display help for each of the modes.
2473 "Usage: $modename [OPTION]... [MODE-ARG]...
2475 Provide generalized library-building support services.
2477 --config show all configuration variables
2478 --debug enable verbose shell tracing
2479 -n, --dry-run display commands without modifying any files
2480 --features display basic configuration information and exit
2481 --finish same as \`--mode=finish'
2482 --help display this help message and exit
2483 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
2484 --quiet same as \`--silent'
2485 --silent don't print informational messages
2486 --version print version information
2488 MODE must be one of the following:
2490 compile compile a source file into a libtool object
2491 execute automatically set library path, then run a program
2492 finish complete the installation of libtool libraries
2493 install install libraries or executables
2494 link create a library or an executable
2495 uninstall remove libraries from an installed directory
2497 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
2498 a more detailed description of MODE."
2504 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
2506 Compile a source file into a libtool library object.
2508 This mode accepts the following additional options:
2510 -static always build a \`.o' file suitable for static linking
2512 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2513 from the given SOURCEFILE.
2515 The output file name is determined by removing the directory component from
2516 SOURCEFILE, then substituting the C source code suffix \`.c' with the
2517 library object suffix, \`.lo'."
2522 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
2524 Automatically set library path, then run a program.
2526 This mode accepts the following additional options:
2528 -dlopen FILE add the directory containing FILE to the library path
2530 This mode sets the library path environment variable according to \`-dlopen'
2533 If any of the ARGS are libtool executable wrappers, then they are translated
2534 into their corresponding uninstalled binary, and any of their required library
2535 directories are added to the library path.
2537 Then, COMMAND is executed, with ARGS as arguments."
2542 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
2544 Complete the installation of libtool libraries.
2546 Each LIBDIR is a directory that contains libtool libraries.
2548 The commands that this mode executes may require superuser privileges. Use
2549 the \`--dry-run' option if you just want to see what would be executed."
2554 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
2556 Install executables or libraries.
2558 INSTALL-COMMAND is the installation command. The first component should be
2559 either the \`install' or \`cp' program.
2561 The rest of the components are interpreted as arguments to that command (only
2562 BSD-compatible install options are recognized)."
2567 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
2569 Link object files or libraries together to form another library, or to
2570 create an executable program.
2572 LINK-COMMAND is a command using the C compiler that you would use to create
2573 a program from several object files.
2575 The following components of LINK-COMMAND are treated specially:
2577 -all-static do not do any dynamic linking at all
2578 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
2579 -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols
2580 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2581 -LLIBDIR search LIBDIR for required installed libraries
2582 -lNAME OUTPUT-FILE requires the installed library libNAME
2583 -no-undefined declare that a library does not refer to external symbols
2584 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
2585 -release RELEASE specify package release information
2586 -rpath LIBDIR the created library will eventually be installed in LIBDIR
2587 -static do not do any dynamic linking of libtool libraries
2588 -version-info CURRENT[:REVISION[:AGE]]
2589 specify library version info [each variable defaults to 0]
2591 All other options (arguments beginning with \`-') are ignored.
2593 Every other argument is treated as a filename. Files ending in \`.la' are
2594 treated as uninstalled libtool libraries, other files are standard or library
2597 If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
2598 library objects (\`.lo' files) may be specified, and \`-rpath' is required.
2600 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2601 using \`ar' and \`ranlib', or on WIndows using \`lib'.
2603 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2604 is created, otherwise an executable program is created."
2609 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2611 Remove libraries from an installation directory.
2613 RM is the name of the program to use to delete files associated with each FILE
2614 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2617 If FILE is a libtool library, all the files associated with it are deleted.
2618 Otherwise, only FILE itself is deleted using RM."
2622 $echo "$modename: invalid operation mode \`$mode'" 1>&2
2629 $echo "Try \`$modename --help' for more information about other modes."