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-1999 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.385.2.150 1999/05/26 00:28:32)"
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'
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\""
137 # Have we seen a non-optional argument yet?
144 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
149 sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
154 echo "$progname: enabling shell trace mode"
164 if test "$build_libtool_libs" = yes; then
165 echo "enable shared libraries"
167 echo "disable shared libraries"
169 if test "$build_old_libs" = yes; then
170 echo "enable static libraries"
172 echo "disable static libraries"
177 --finish) mode="finish" ;;
179 --mode) prevopt="--mode" prev=mode ;;
180 --mode=*) mode="$optarg" ;;
192 $echo "$modename: unrecognized option \`$arg'" 1>&2
204 if test -n "$prevopt"; then
205 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
210 if test -z "$show_help"; then
212 # Infer the operation mode.
213 if test -z "$mode"; then
215 *cc | *++ | gcc* | *-gcc*)
227 *db | *dbx | *strace | *truss)
237 # If we have no mode, but dlfiles were specified, then do execute mode.
238 test -n "$execute_dlfiles" && mode=execute
240 # Just use the default operation mode.
241 if test -z "$mode"; then
242 if test -n "$nonopt"; then
243 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
245 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
252 # Only execute mode is allowed to have -dlopen flags.
253 if test -n "$execute_dlfiles" && test "$mode" != execute; then
254 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
259 # Change the help message to a mode-specific one.
261 help="Try \`$modename --help --mode=$mode' for more information."
263 # These modes are in order of execution frequency so that they run quickly.
265 # libtool compile mode
267 modename="$modename: compile"
268 # Get the compilation command and the source file.
277 # Accept any command-line options.
280 if test "$user_target" != "no"; then
281 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
293 case "$user_target" in
295 # The next one is the -o target name
300 # We got the output file
307 # Accept the current argument as the source file.
311 # Aesthetically quote the previous argument.
313 # Backslashify any backslashes, double quotes, and dollar signs.
314 # These are the only characters that are still specially
315 # interpreted inside of double-quoted scrings.
316 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
318 # Double-quote args containing other shell metacharacters.
319 # Many Bourne shells cannot handle close brackets correctly in scan
320 # sets, so we specify it separately.
322 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
323 lastarg="\"$lastarg\""
327 # Add the previous argument to base_compile.
328 if test -z "$base_compile"; then
329 base_compile="$lastarg"
331 base_compile="$base_compile $lastarg"
335 case "$user_target" in
339 # Get the name of the library object.
340 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
343 $echo "$modename: you must specify a target with \`-o'" 1>&2
348 # Recognize several different file suffixes.
349 # If the user specifies -o file.o, it is replaced with file.lo
364 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
367 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
369 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
374 if test -z "$base_compile"; then
375 $echo "$modename: you must specify a compilation command" 1>&2
380 # Delete any leftover library objects.
381 if test "$build_old_libs" = yes; then
382 removelist="$obj $libobj"
388 trap "$run $rm $removelist; exit 1" 1 2 15
390 # Calculate the filename of the output object if compiler does
391 # not support -o with -c
392 if test "$compiler_c_o" = no; then
393 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
394 lockfile="$output_obj.lock"
395 removelist="$removelist $output_obj $lockfile"
396 trap "$run $rm $removelist; exit 1" 1 2 15
402 # Lock this critical section if it is needed
403 # We use this script file to make the link, it avoids creating a new file
404 if test "$need_locks" = yes; then
405 until ln "$0" "$lockfile" 2>/dev/null; do
406 $show "Waiting for $lockfile to be removed"
409 elif test "$need_locks" = warn; then
410 if test -f "$lockfile"; then
412 *** ERROR, $lockfile exists and contains:
413 `cat $lockfile 2>/dev/null`
415 This indicates that another process is trying to use the same
416 temporary object file, and libtool could not work around it because
417 your compiler does not support \`-c' and \`-o' together. If you
418 repeat this compilation, it may succeed, by chance, but you had better
419 avoid parallel builds (make -j) in this platform, or get a better
425 echo $srcfile > "$lockfile"
428 if test -n "$fix_srcfile_path"; then
429 eval srcfile=\"$fix_srcfile_path\"
432 # Only build a PIC object if we are building libtool libraries.
433 if test "$build_libtool_libs" = yes; then
434 # Without this assignment, base_compile gets emptied.
435 fbsd_hideous_sh_bug=$base_compile
437 # All platforms use -DPIC, to notify preprocessed assembler code.
438 command="$base_compile $pic_flag -DPIC $srcfile"
439 if test "$build_old_libs" = yes; then
441 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
442 if test "X$dir" = "X$libobj"; then
447 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
449 if test -d "$dir"; then
456 if test $status -ne 0 && test ! -d $dir; then
461 if test "$compiler_o_lo" = yes; then
463 command="$command -o $output_obj"
464 elif test "$compiler_c_o" = yes; then
466 command="$command -o $output_obj"
469 $run $rm "$output_obj"
471 if $run eval "$command"; then :
473 test -n "$output_obj" && $run $rm $removelist
477 if test "$need_locks" = warn &&
478 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
480 *** ERROR, $lockfile contains:
481 `cat $lockfile 2>/dev/null`
483 but it should contain:
486 This indicates that another process is trying to use the same
487 temporary object file, and libtool could not work around it because
488 your compiler does not support \`-c' and \`-o' together. If you
489 repeat this compilation, it may succeed, by chance, but you had better
490 avoid parallel builds (make -j) in this platform, or get a better
497 # Just move the object if needed, then go on to compile the next one
498 if test x"$output_obj" != x"$libobj"; then
499 $show "$mv $output_obj $libobj"
500 if $run $mv $output_obj $libobj; then :
508 # If we have no pic_flag, then copy the object into place and finish.
509 if test -z "$pic_flag" && test "$build_old_libs" = yes; then
510 # Rename the .lo from within objdir to obj
511 if test -f $obj; then
516 $show "$mv $libobj $obj"
517 if $run $mv $libobj $obj; then :
524 # Now arrange that obj and lo_libobj become the same file
525 $show "$LN_S $obj $lo_libobj"
526 if $run $LN_S $obj $lo_libobj; then
535 # Allow error messages only from the first compilation.
536 suppress_output=' >/dev/null 2>&1'
539 # Only build a position-dependent object if we build old libraries.
540 if test "$build_old_libs" = yes; then
541 command="$base_compile $srcfile"
542 if test "$compiler_c_o" = yes; then
543 command="$command -o $obj"
547 # Suppress compiler output if we already did a PIC compilation.
548 command="$command$suppress_output"
549 $run $rm "$output_obj"
551 if $run eval "$command"; then :
557 if test "$need_locks" = warn &&
558 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
560 *** ERROR, $lockfile contains:
561 `cat $lockfile 2>/dev/null`
563 but it should contain:
566 This indicates that another process is trying to use the same
567 temporary object file, and libtool could not work around it because
568 your compiler does not support \`-c' and \`-o' together. If you
569 repeat this compilation, it may succeed, by chance, but you had better
570 avoid parallel builds (make -j) in this platform, or get a better
577 # Just move the object if needed
578 if test x"$output_obj" != x"$obj"; then
579 $show "$mv $output_obj $obj"
580 if $run $mv $output_obj $obj; then :
588 # Create an invalid libtool object if no PIC, so that we do not
589 # accidentally link it into a program.
590 if test "$build_libtool_libs" != yes; then
591 $show "echo timestamp > $libobj"
592 $run eval "echo timestamp > \$libobj" || exit $?
594 # Move the .lo from within objdir
595 $show "$mv $libobj $lo_libobj"
596 if $run $mv $libobj $lo_libobj; then :
605 # Unlock the critical section if it was locked
606 if test "$need_locks" != no; then
615 modename="$modename: link"
616 C_compiler="$CC" # save it, to compile generated C sources
619 *-*-cygwin* | *-*-mingw* | *-*-os2*)
620 # It is impossible to link a dll without this setting, and
621 # we shouldn't force the makefile maintainer to figure out
622 # which system we are compiling for in order to pass an extra
623 # flag for every libtool invokation.
626 # FIXME: Unfortunately, there are problems with the above when trying
627 # to make a dll which has undefined symbols, in which case not
628 # even a static library is built. For now, we need to specify
629 # -no-undefined on the libtool link line when we can be certain
630 # that all symbols are satisfied, otherwise we get a static library.
633 # This is a source program that is used to create dlls on Windows
634 # Don't remove nor modify the starting and closing comments
635 # /* ltdll.c starts here */
636 # #define WIN32_LEAN_AND_MEAN
637 # #include <windows.h>
638 # #undef WIN32_LEAN_AND_MEAN
644 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
649 # #include <cygwin/cygwin_dll.h>
650 # DECLARE_CYGWIN_DLL( DllMain );
651 # HINSTANCE __hDllInstance_base;
654 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
656 # __hDllInstance_base = hInst;
659 # /* ltdll.c ends here */
660 # This is a source program that is used to create import libraries
661 # on Windows for dlls which lack them. Don't remove nor modify the
662 # starting and closing comments
663 # /* impgen.c starts here */
664 # /* Copyright (C) 1999 Free Software Foundation, Inc.
666 # This file is part of GNU libtool.
668 # This program is free software; you can redistribute it and/or modify
669 # it under the terms of the GNU General Public License as published by
670 # the Free Software Foundation; either version 2 of the License, or
671 # (at your option) any later version.
673 # This program is distributed in the hope that it will be useful,
674 # but WITHOUT ANY WARRANTY; without even the implied warranty of
675 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
676 # GNU General Public License for more details.
678 # You should have received a copy of the GNU General Public License
679 # along with this program; if not, write to the Free Software
680 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
683 # #include <stdio.h> /* for printf() */
684 # #include <unistd.h> /* for open(), lseek(), read() */
685 # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
686 # #include <string.h> /* for strdup() */
688 # static unsigned int
689 # pe_get16 (fd, offset)
693 # unsigned char b[2];
694 # lseek (fd, offset, SEEK_SET);
696 # return b[0] + (b[1]<<8);
699 # static unsigned int
700 # pe_get32 (fd, offset)
704 # unsigned char b[4];
705 # lseek (fd, offset, SEEK_SET);
707 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
710 # static unsigned int
714 # unsigned char *b = ptr;
715 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
724 # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
725 # unsigned long export_rva, export_size, nsections, secptr, expptr;
726 # unsigned long name_rvas, nexp;
727 # unsigned char *expdata, *erva;
728 # char *filename, *dll_name;
730 # filename = argv[1];
732 # dll = open(filename, O_RDONLY|O_BINARY);
736 # dll_name = filename;
738 # for (i=0; filename[i]; i++)
739 # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
740 # dll_name = filename + i +1;
742 # pe_header_offset = pe_get32 (dll, 0x3c);
743 # opthdr_ofs = pe_header_offset + 4 + 20;
744 # num_entries = pe_get32 (dll, opthdr_ofs + 92);
746 # if (num_entries < 1) /* no exports */
749 # export_rva = pe_get32 (dll, opthdr_ofs + 96);
750 # export_size = pe_get32 (dll, opthdr_ofs + 100);
751 # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
752 # secptr = (pe_header_offset + 4 + 20 +
753 # pe_get16 (dll, pe_header_offset + 4 + 16));
756 # for (i = 0; i < nsections; i++)
759 # unsigned long secptr1 = secptr + 40 * i;
760 # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
761 # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
762 # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
763 # lseek(dll, secptr1, SEEK_SET);
764 # read(dll, sname, 8);
765 # if (vaddr <= export_rva && vaddr+vsize > export_rva)
767 # expptr = fptr + (export_rva - vaddr);
768 # if (export_rva + export_size > vaddr + vsize)
769 # export_size = vsize - (export_rva - vaddr);
774 # expdata = (unsigned char*)malloc(export_size);
775 # lseek (dll, expptr, SEEK_SET);
776 # read (dll, expdata, export_size);
777 # erva = expdata - export_rva;
779 # nexp = pe_as32 (expdata+24);
780 # name_rvas = pe_as32 (expdata+32);
782 # printf ("EXPORTS\n");
783 # for (i = 0; i<nexp; i++)
785 # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
786 # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
791 # /* impgen.c ends here */
800 compile_command="$CC"
801 finalize_command="$CC"
812 if test -n "$shlibpath_var"; then
813 # get the directories listed in $shlibpath_var
814 eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
818 # now prepend the system-specific ones
819 eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
820 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
828 export_symbols_regex=
831 link_against_libtool_libs=
835 prefer_static_libs=no
847 # We need to know -static, to get the right output filenames.
851 -all-static | -static)
852 if test "X$arg" = "X-all-static"; then
853 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
854 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
856 if test -n "$link_static_flag"; then
857 dlopen_self=$dlopen_self_static
860 if test -z "$pic_flag" && test -n "$link_static_flag"; then
861 dlopen_self=$dlopen_self_static
864 build_libtool_libs=no
866 prefer_static_libs=yes
872 # See if our shared archives depend on static archives.
873 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
875 # Go through the arguments, transforming them on the way.
876 while test $# -gt 0; do
880 # If the previous option needs an argument, assign it.
881 if test -n "$prev"; then
884 compile_command="$compile_command @OUTPUT@"
885 finalize_command="$finalize_command @OUTPUT@"
891 if test "$preload" = no; then
892 # Add the symbol object into the linking commands.
893 compile_command="$compile_command @SYMFILE@"
894 finalize_command="$finalize_command @SYMFILE@"
898 *.la | *.lo) ;; # We handle these cases below.
900 if test "$prev" = dlprefiles; then
902 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
912 if test "$prev" = dlfiles; then
913 dlfiles="$dlfiles $arg"
915 dlprefiles="$dlprefiles $arg"
922 export_symbols="$arg"
923 if test ! -f "$arg"; then
924 $echo "$modename: symbol file \`$arg' does not exist"
931 export_symbols_regex="$arg"
941 # We need an absolute path.
943 [\\/]* | [A-Za-z]:[\\/]*) ;;
945 $echo "$modename: only absolute run-paths are allowed" 1>&2
949 if test "$prev" = rpath; then
952 *) rpath="$rpath $arg" ;;
957 *) xrpath="$xrpath $arg" ;;
964 eval "$prev=\"\$arg\""
975 if test -n "$link_static_flag"; then
976 compile_command="$compile_command $link_static_flag"
977 finalize_command="$finalize_command $link_static_flag"
983 # FIXME: remove this flag sometime in the future.
984 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1008 -export-symbols | -export-symbols-regex)
1009 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1010 $echo "$modename: not more than one -exported-symbols argument allowed"
1013 if test "X$arg" = "X-export-symbols"; then
1022 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1023 # We need an absolute path.
1025 [\\/]* | [A-Za-z]:[\\/]*) ;;
1027 absdir=`cd "$dir" && pwd`
1028 if test -z "$absdir"; then
1029 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1030 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1036 case " $deplibs " in
1038 *) deplibs="$deplibs $arg";;
1040 case " $lib_search_path " in
1042 *) lib_search_path="$lib_search_path $dir";;
1045 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1046 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1047 case ":$dllsearchpath:" in
1048 ::) dllsearchpath="$dllsearchdir";;
1049 *":$dllsearchdir:"*) ;;
1050 *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1057 if test "$arg" = "-lc"; then
1059 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1060 # These systems don't actually have c library (as such)
1064 elif test "$arg" = "-lm"; then
1066 *-*-cygwin* | *-*-beos*)
1067 # These systems don't actually have math library (as such)
1072 deplibs="$deplibs $arg"
1103 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1104 # We need an absolute path.
1106 [\\/]* | [A-Za-z]:[\\/]*) ;;
1108 $echo "$modename: only absolute run-paths are allowed" 1>&2
1114 *) xrpath="$xrpath $dir" ;;
1120 # If we have no pic_flag, then this is the same as -all-static.
1121 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1122 compile_command="$compile_command $link_static_flag"
1123 finalize_command="$finalize_command $link_static_flag"
1138 # Some other compiler flag.
1140 # Unknown arguments in both finalize_command and compile_command need
1141 # to be aesthetically quoted because they are evaled later.
1142 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1144 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1150 *.o | *.obj | *.a | *.lib)
1151 # A standard object.
1157 if test "$prev" = dlfiles; then
1158 dlfiles="$dlfiles $arg"
1159 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1163 # If libtool objects are unsupported, then we need to preload.
1168 if test "$prev" = dlprefiles; then
1169 # Preload the old-style object.
1170 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1173 libobjs="$libobjs $arg"
1177 # A libtool-controlled library.
1184 # Check to see that this really is a libtool archive.
1185 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1187 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1191 # If the library was installed with an old release of libtool,
1192 # it will not redefine variable installed.
1196 # If there is no directory component, then add one.
1198 */* | *\\*) . $arg ;;
1202 # Get the name of the library we link against.
1204 for l in $old_library $library_names; do
1208 if test -z "$linklib"; then
1209 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1213 # Find the relevant object directory and library name.
1214 name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1216 if test "X$installed" = Xyes; then
1219 dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1220 if test "X$dir" = "X$arg"; then
1227 if test -n "$dependency_libs"; then
1228 # Extract -R from dependency_libs
1230 for deplib in $dependency_libs; do
1232 -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1233 case " $rpath $xrpath " in
1234 *" $temp_xrpath "*) ;;
1235 *) xrpath="$xrpath $temp_xrpath";;
1237 -L*) case "$compile_command $temp_deplibs " in
1239 *) temp_deplibs="$temp_deplibs $deplib";;
1241 *) temp_deplibs="$temp_deplibs $deplib";;
1244 dependency_libs="$temp_deplibs"
1247 if test -z "$libdir"; then
1248 # It is a libtool convenience library, so add in its objects.
1249 convenience="$convenience $dir/$old_library"
1250 old_convenience="$old_convenience $dir/$old_library"
1251 deplibs="$deplibs$dependency_libs"
1252 compile_command="$compile_command $dir/$old_library$dependency_libs"
1253 finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1257 # This library was specified with -dlopen.
1258 if test "$prev" = dlfiles; then
1259 dlfiles="$dlfiles $arg"
1260 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1261 # If there is no dlname, no dlopen support or we're linking statically,
1262 # we need to preload.
1265 # We should not create a dependency on this library, but we
1266 # may need any libraries it requires.
1267 compile_command="$compile_command$dependency_libs"
1268 finalize_command="$finalize_command$dependency_libs"
1274 # The library was specified with -dlpreopen.
1275 if test "$prev" = dlprefiles; then
1276 # Prefer using a static library (so that no silly _DYNAMIC symbols
1277 # are required to link).
1278 if test -n "$old_library"; then
1279 dlprefiles="$dlprefiles $dir/$old_library"
1281 dlprefiles="$dlprefiles $dir/$linklib"
1286 if test -n "$library_names" &&
1287 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1288 link_against_libtool_libs="$link_against_libtool_libs $arg"
1289 if test -n "$shlibpath_var"; then
1290 # Make sure the rpath contains only unique directories.
1291 case "$temp_rpath " in
1293 *) temp_rpath="$temp_rpath $dir" ;;
1297 # We need an absolute path.
1299 [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1301 absdir=`cd "$dir" && pwd`
1302 if test -z "$absdir"; then
1303 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1304 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1310 # This is the magic to use -rpath.
1311 # Skip directories that are in the system default run-time
1312 # search path, unless they have been requested with -R.
1313 case " $sys_lib_dlsearch_path " in
1316 case "$compile_rpath " in
1318 *) compile_rpath="$compile_rpath $absdir"
1323 case " $sys_lib_dlsearch_path " in
1326 case "$finalize_rpath " in
1328 *) finalize_rpath="$finalize_rpath $libdir"
1334 case "$hardcode_action" in
1335 immediate | unsupported)
1336 if test "$hardcode_direct" = no; then
1337 compile_command="$compile_command $dir/$linklib"
1338 deplibs="$deplibs $dir/$linklib"
1340 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1341 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1342 if test -n "$dllsearchpath"; then
1343 dllsearchpath="$dllsearchpath:$dllsearchdir"
1345 dllsearchpath="$dllsearchdir"
1349 elif test "$hardcode_minus_L" = no; then
1352 compile_shlibpath="$compile_shlibpath$dir:"
1355 case "$compile_command " in
1357 *) compile_command="$compile_command -L$dir";;
1359 compile_command="$compile_command -l$name"
1360 deplibs="$deplibs -L$dir -l$name"
1361 elif test "$hardcode_shlibpath_var" = no; then
1362 case ":$compile_shlibpath:" in
1364 *) compile_shlibpath="$compile_shlibpath$dir:";;
1366 compile_command="$compile_command -l$name"
1367 deplibs="$deplibs -l$name"
1374 if test "$hardcode_direct" = yes; then
1375 compile_command="$compile_command $absdir/$linklib"
1376 deplibs="$deplibs $absdir/$linklib"
1377 elif test "$hardcode_minus_L" = yes; then
1378 case "$compile_command " in
1380 *) compile_command="$compile_command -L$absdir";;
1382 compile_command="$compile_command -l$name"
1383 deplibs="$deplibs -L$absdir -l$name"
1384 elif test "$hardcode_shlibpath_var" = yes; then
1385 case ":$compile_shlibpath:" in
1387 *) compile_shlibpath="$compile_shlibpath$absdir:";;
1389 compile_command="$compile_command -l$name"
1390 deplibs="$deplibs -l$name"
1401 if test "$lib_linked" != yes; then
1402 $echo "$modename: configuration error: unsupported hardcode properties"
1406 # Finalize command for both is simple: just hardcode it.
1407 if test "$hardcode_direct" = yes; then
1408 finalize_command="$finalize_command $libdir/$linklib"
1409 elif test "$hardcode_minus_L" = yes; then
1410 case "$finalize_command " in
1412 *) finalize_command="$finalize_command -L$libdir";;
1414 finalize_command="$finalize_command -l$name"
1415 elif test "$hardcode_shlibpath_var" = yes; then
1416 case ":$finalize_shlibpath:" in
1418 *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1420 finalize_command="$finalize_command -l$name"
1422 # We cannot seem to hardcode it, guess we'll fake it.
1423 case "$finalize_command " in
1425 *) finalize_command="$finalize_command -L$libdir";;
1427 finalize_command="$finalize_command -l$name"
1430 # Transform directly to old archives if we don't build new libraries.
1431 if test -n "$pic_flag" && test -z "$old_library"; then
1432 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1436 # Here we assume that one of hardcode_direct or hardcode_minus_L
1437 # is not unsupported. This is valid on all known static and
1439 if test "$hardcode_direct" != unsupported; then
1440 test -n "$old_library" && linklib="$old_library"
1441 compile_command="$compile_command $dir/$linklib"
1442 finalize_command="$finalize_command $dir/$linklib"
1444 case "$compile_command " in
1446 *) compile_command="$compile_command -L$dir";;
1448 compile_command="$compile_command -l$name"
1449 case "$finalize_command " in
1451 *) finalize_command="$finalize_command -L$dir";;
1453 finalize_command="$finalize_command -l$name"
1457 # Add in any libraries that this one depends upon.
1458 compile_command="$compile_command$dependency_libs"
1459 finalize_command="$finalize_command$dependency_libs"
1463 # Some other compiler argument.
1465 # Unknown arguments in both finalize_command and compile_command need
1466 # to be aesthetically quoted because they are evaled later.
1467 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1469 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1476 # Now actually substitute the argument into the commands.
1477 if test -n "$arg"; then
1478 compile_command="$compile_command $arg"
1479 finalize_command="$finalize_command $arg"
1483 if test -n "$prev"; then
1484 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1489 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1490 eval arg=\"$export_dynamic_flag_spec\"
1491 compile_command="$compile_command $arg"
1492 finalize_command="$finalize_command $arg"
1496 # calculate the name of the file, without its directory
1497 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1498 libobjs_save="$libobjs"
1502 $echo "$modename: you must specify an output file" 1>&2
1508 if test -n "$link_against_libtool_libs"; then
1509 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1513 if test -n "$deplibs"; then
1514 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1517 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1518 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1521 if test -n "$rpath"; then
1522 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1525 if test -n "$xrpath"; then
1526 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1529 if test -n "$vinfo"; then
1530 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1533 if test -n "$release"; then
1534 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1537 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1538 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1541 # Now set the variables for building old libraries.
1542 build_libtool_libs=no
1547 # Make sure we only generate libraries of the form `libNAME.la'.
1548 case "$outputname" in
1550 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1551 eval libname=\"$libname_spec\"
1554 if test "$module" = no; then
1555 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1559 if test "$need_lib_prefix" != no; then
1560 # Add the "lib" prefix for modules if required
1561 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1562 eval libname=\"$libname_spec\"
1564 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1569 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1570 if test "X$output_objdir" = "X$output"; then
1571 output_objdir="$objdir"
1573 output_objdir="$output_objdir/$objdir"
1576 if test -n "$objs"; then
1577 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1581 # How the heck are we supposed to write a wrapper for a shared library?
1582 if test -n "$link_against_libtool_libs"; then
1583 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1587 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1588 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1592 if test $# -gt 2; then
1593 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1598 if test -z "$rpath"; then
1599 if test "$build_libtool_libs" = yes; then
1600 # Building a libtool convenience library.
1602 oldlibs="$output_objdir/$libname.$libext $oldlibs"
1603 build_libtool_libs=convenience
1606 dependency_libs="$deplibs"
1608 if test -n "$vinfo"; then
1609 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1612 if test -n "$release"; then
1613 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1617 # Parse the version information argument.
1618 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1619 set dummy $vinfo 0 0 0
1622 if test -n "$8"; then
1623 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1632 # Check that each of the things are valid numbers.
1634 0 | [1-9] | [1-9][0-9]*) ;;
1636 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1637 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1643 0 | [1-9] | [1-9][0-9]*) ;;
1645 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1646 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1652 0 | [1-9] | [1-9][0-9]*) ;;
1654 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1655 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1660 if test $age -gt $current; then
1661 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1662 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1666 # Calculate the version variables.
1670 case "$version_type" in
1674 major=`expr $current - $age + 1`
1675 versuffix="$major.$revision"
1676 verstring="sgi$major.$revision"
1678 # Add in all the interfaces that we are compatible with.
1680 while test $loop != 0; do
1681 iface=`expr $revision - $loop`
1682 loop=`expr $loop - 1`
1683 verstring="sgi$major.$iface:$verstring"
1688 major=.`expr $current - $age`
1689 versuffix="$major.$age.$revision"
1693 major=`expr $current - $age`
1694 versuffix=".$current.$age.$revision"
1695 verstring="$current.$age.$revision"
1697 # Add in all the interfaces that we are compatible with.
1699 while test $loop != 0; do
1700 iface=`expr $current - $loop`
1701 loop=`expr $loop - 1`
1702 verstring="$verstring:${iface}.0"
1705 # Make executables depend on our current version.
1706 verstring="$verstring:${current}.0"
1711 versuffix=".$current.$revision"
1716 versuffix=".$current.$revision";
1721 versuffix=".$current";
1725 # Like Linux, but with '-' rather than '.', since we only
1726 # want one extension on Windows 95.
1727 major=`expr $current - $age`
1728 versuffix="-$major-$age-$revision"
1732 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1733 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1738 # Clear the version info if we defaulted, and they specified a release.
1739 if test -z "$vinfo" && test -n "$release"; then
1742 if test "$need_version" = no; then
1749 # Remove version info from name if versioning should be avoided
1750 if test "$avoid_version" = yes && test "$need_version" = no; then
1756 # Check to see if the archive will have undefined symbols.
1757 if test "$allow_undefined" = yes; then
1758 if test "$allow_undefined_flag" = unsupported; then
1759 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1760 build_libtool_libs=no
1764 # Don't allow undefined symbols.
1765 allow_undefined_flag="$no_undefined_flag"
1768 dependency_libs="$deplibs"
1770 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1771 # these systems don't actually have a c library (as such)!
1774 # Add libc to deplibs on all other systems.
1775 deplibs="$deplibs -lc"
1780 # Create the output directory, or remove our outputs if we need to.
1781 if test -d $output_objdir; then
1782 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1783 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1785 $show "$mkdir $output_objdir"
1786 $run $mkdir $output_objdir
1788 if test $status -ne 0 && test ! -d $output_objdir; then
1793 # Now set the variables for building old libraries.
1794 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1795 oldlibs="$oldlibs $output_objdir/$libname.$libext"
1797 # Transform .lo files to .o files.
1798 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1801 if test "$build_libtool_libs" = yes; then
1802 # Transform deplibs into only deplibs that can be linked in shared.
1804 libname_save=$libname
1805 release_save=$release
1806 versuffix_save=$versuffix
1808 # I'm not sure if I'm treating the release correctly. I think
1809 # release should show up in the -l (ie -lgmp5) so we don't want to
1810 # add it in twice. Is that correct?
1816 case "$deplibs_check_method" in
1818 # Don't check for shared/static. Everything works.
1819 # This might be a little naive. We might want to check
1820 # whether the library exists or not. But this is on
1821 # osf3 & osf4 and I'm not really sure... Just
1822 # implementing what was already the behaviour.
1826 # This code stresses the "libraries are programs" paradigm to its
1827 # limits. Maybe even breaks it. We compile a program, linking it
1828 # against the deplibs as a proxy for the library. Then we can check
1829 # whether they linked in statically or dynamically with ldd.
1831 cat > conftest.c <<EOF
1832 int main() { return 0; }
1835 $C_compiler -o conftest conftest.c $deplibs
1836 if test $? -eq 0 ; then
1837 ldd_output=`ldd conftest`
1838 for i in $deplibs; do
1839 name="`expr $i : '-l\(.*\)'`"
1840 # If $name is empty we are operating on a -L argument.
1841 if test "$name" != "" ; then
1842 libname=`eval \\$echo \"$libname_spec\"`
1843 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1844 set dummy $deplib_matches
1846 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1847 newdeplibs="$newdeplibs $i"
1851 echo "*** Warning: This library needs some functionality provided by $i."
1852 echo "*** I have the capability to make that library automatically link in when"
1853 echo "*** you link to this library. But I can only do this if you have a"
1854 echo "*** shared version of the library, which you do not appear to have."
1857 newdeplibs="$newdeplibs $i"
1861 # Error occured in the first compile. Let's try to salvage the situation:
1862 # Compile a seperate program for each library.
1863 for i in $deplibs; do
1864 name="`expr $i : '-l\(.*\)'`"
1865 # If $name is empty we are operating on a -L argument.
1866 if test "$name" != "" ; then
1868 $C_compiler -o conftest conftest.c $i
1870 if test $? -eq 0 ; then
1871 ldd_output=`ldd conftest`
1872 libname=`eval \\$echo \"$libname_spec\"`
1873 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1874 set dummy $deplib_matches
1876 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1877 newdeplibs="$newdeplibs $i"
1881 echo "*** Warning: This library needs some functionality provided by $i."
1882 echo "*** I have the capability to make that library automatically link in when"
1883 echo "*** you link to this library. But I can only do this if you have a"
1884 echo "*** shared version of the library, which you do not appear to have."
1889 echo "*** Warning! Library $i is needed by this library but I was not able to"
1890 echo "*** make it link in! You will probably need to install it or some"
1891 echo "*** library that it depends on before this library will be fully"
1892 echo "*** functional. Installing it before continuing would be even better."
1895 newdeplibs="$newdeplibs $i"
1901 set dummy $deplibs_check_method
1902 file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1903 for a_deplib in $deplibs; do
1904 name="`expr $a_deplib : '-l\(.*\)'`"
1905 # If $name is empty we are operating on a -L argument.
1906 if test "$name" != "" ; then
1907 libname=`eval \\$echo \"$libname_spec\"`
1908 for i in $lib_search_path; do
1909 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1910 for potent_lib in $potential_libs; do
1911 # Follow soft links.
1912 if ls -lLd "$potent_lib" 2>/dev/null \
1913 | grep " -> " >/dev/null; then
1916 # The statement above tries to avoid entering an
1917 # endless loop below, in case of cyclic links.
1918 # We might still enter an endless loop, since a link
1919 # loop can be closed while we follow links,
1921 potlib="$potent_lib"
1922 while test -h "$potlib" 2>/dev/null; do
1923 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1924 case "$potliblink" in
1925 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1926 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1929 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1931 | egrep "$file_magic_regex" > /dev/null; then
1932 newdeplibs="$newdeplibs $a_deplib"
1938 if test -n "$a_deplib" ; then
1941 echo "*** Warning: This library needs some functionality provided by $a_deplib."
1942 echo "*** I have the capability to make that library automatically link in when"
1943 echo "*** you link to this library. But I can only do this if you have a"
1944 echo "*** shared version of the library, which you do not appear to have."
1947 # Add a -L argument.
1948 newdeplibs="$newdeplibs $a_deplib"
1950 done # Gone through all deplibs.
1954 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1955 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
1956 grep . >/dev/null; then
1958 if test "X$deplibs_check_method" = "Xnone"; then
1959 echo "*** Warning: inter-library dependencies are not supported in this platform."
1961 echo "*** Warning: inter-library dependencies are not known to be supported."
1963 echo "*** All declared inter-library dependencies are being dropped."
1968 versuffix=$versuffix_save
1970 release=$release_save
1971 libname=$libname_save
1974 if test "$droppeddeps" = yes; then
1975 if test "$module" = yes; then
1977 echo "*** Warning: libtool could not satisfy all declared inter-library"
1978 echo "*** dependencies of module $libname. Therefore, libtool will create"
1979 echo "*** a static module, that should work as long as the dlopening"
1980 echo "*** application is linked with the -dlopen flag."
1981 if test -z "$global_symbol_pipe"; then
1983 echo "*** However, this would only work if libtool was able to extract symbol"
1984 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1985 echo "*** not find such a program. So, this module is probably useless."
1986 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1988 if test "$build_old_libs" = no; then
1989 oldlibs="$output_objdir/$libname.$libext"
1990 build_libtool_libs=module
1993 build_libtool_libs=no
1996 echo "*** The inter-library dependencies that have been dropped here will be"
1997 echo "*** automatically added whenever a program is linked with this library"
1998 echo "*** or is declared to -dlopen it."
2001 # Done checking deplibs!
2005 # All the library-specific variables (install_libdir is set above).
2010 # Test again, we may have decided not to build it any more
2011 if test "$build_libtool_libs" = yes; then
2012 # Get the real and link names of the library.
2013 eval library_names=\"$library_names_spec\"
2014 set dummy $library_names
2018 if test -n "$soname_spec"; then
2019 eval soname=\"$soname_spec\"
2024 lib="$output_objdir/$realname"
2027 linknames="$linknames $link"
2030 # Ensure that we have .o objects for linkers which dislike .lo
2031 # (e.g. aix) incase we are running --disable-static
2032 for obj in $libobjs; do
2033 oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
2034 if test ! -f $oldobj; then
2035 $show "${LN_S} $obj $oldobj"
2036 $run ${LN_S} $obj $oldobj || exit $?
2040 # Use standard objects if they are pic
2041 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2043 if test -n "$whole_archive_flag_spec"; then
2044 if test -n "$convenience"; then
2045 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2048 gentop="$output_objdir/${outputname}x"
2049 $show "${rm}r $gentop"
2050 $run ${rm}r "$gentop"
2051 $show "mkdir $gentop"
2052 $run mkdir "$gentop"
2054 if test $status -ne 0 && test ! -d "$gentop"; then
2057 generated="$generated $gentop"
2059 for xlib in $convenience; do
2060 # Extract the objects.
2062 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2063 *) xabs=`pwd`"/$xlib" ;;
2065 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2066 xdir="$gentop/$xlib"
2068 $show "${rm}r $xdir"
2073 if test $status -ne 0 && test ! -d "$xdir"; then
2076 $show "(cd $xdir && $AR x $xabs)"
2077 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2079 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2083 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2084 eval flag=\"$thread_safe_flag_spec\"
2085 linkopts="$linkopts $flag"
2088 # Prepare the list of exported symbols
2089 if test -z "$export_symbols"; then
2090 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2091 $show "generating symbol list for \`$libname.la'"
2092 export_symbols="$output_objdir/$libname.exp"
2093 $run $rm $export_symbols
2094 eval cmds=\"$export_symbols_cmds\"
2095 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2096 for cmd in $cmds; do
2099 $run eval "$cmd" || exit $?
2102 if test -n "$export_symbols_regex"; then
2103 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2104 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2105 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2106 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2111 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2112 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2115 # Do each of the archive commands.
2116 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2117 eval cmds=\"$archive_expsym_cmds\"
2119 eval cmds=\"$archive_cmds\"
2121 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2122 for cmd in $cmds; do
2125 $run eval "$cmd" || exit $?
2129 # Create links to the real library.
2130 for linkname in $linknames; do
2131 if test "$realname" != "$linkname"; then
2132 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2133 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2137 # If -module or -export-dynamic was specified, set the dlname.
2138 if test "$module" = yes || test "$export_dynamic" = yes; then
2139 # On all known operating systems, these are identical.
2146 if test -n "$link_against_libtool_libs"; then
2147 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2151 if test -n "$deplibs"; then
2152 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2155 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2156 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2159 if test -n "$rpath"; then
2160 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2163 if test -n "$xrpath"; then
2164 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2167 if test -n "$vinfo"; then
2168 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2171 if test -n "$release"; then
2172 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2177 if test -n "$objs"; then
2178 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2182 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2190 # Delete the old objects.
2191 $run $rm $obj $libobj
2193 # Create the old-style object.
2194 reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2197 eval cmds=\"$reload_cmds\"
2198 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2199 for cmd in $cmds; do
2202 $run eval "$cmd" || exit $?
2206 # Exit if we aren't doing a library object file.
2207 test -z "$libobj" && exit 0
2209 if test "$build_libtool_libs" != yes; then
2210 # Create an invalid libtool object if no PIC, so that we don't
2211 # accidentally link it into a program.
2212 $show "echo timestamp > $libobj"
2213 $run eval "echo timestamp > $libobj" || exit $?
2217 if test -n "$pic_flag"; then
2218 # Only do commands if we really have different PIC objects.
2219 reload_objs="$libobjs"
2221 eval cmds=\"$reload_cmds\"
2222 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2223 for cmd in $cmds; do
2226 $run eval "$cmd" || exit $?
2230 # Just create a symlink.
2233 $show "$LN_S $obj $libobj"
2234 $run $LN_S $obj $libobj || exit $?
2240 # Anything else should be a program.
2242 if test -n "$vinfo"; then
2243 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2246 if test -n "$release"; then
2247 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2250 if test "$preload" = yes; then
2251 if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2252 test "$dlopen_self_static" = unknown; then
2253 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2257 if test -n "$rpath$xrpath"; then
2258 # If the user specified any rpath flags, then add them.
2259 for libdir in $rpath $xrpath; do
2260 # This is the magic to use -rpath.
2261 case "$compile_rpath " in
2263 *) compile_rpath="$compile_rpath $libdir" ;;
2265 case "$finalize_rpath " in
2267 *) finalize_rpath="$finalize_rpath $libdir" ;;
2272 # Now hardcode the library paths
2275 for libdir in $compile_rpath $finalize_rpath; do
2276 if test -n "$hardcode_libdir_flag_spec"; then
2277 if test -n "$hardcode_libdir_separator"; then
2278 if test -z "$hardcode_libdirs"; then
2279 hardcode_libdirs="$libdir"
2281 # Just accumulate the unique libdirs.
2282 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2283 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2286 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2291 eval flag=\"$hardcode_libdir_flag_spec\"
2292 rpath="$rpath $flag"
2294 elif test -n "$runpath_var"; then
2295 case "$perm_rpath " in
2297 *) perm_rpath="$perm_rpath $libdir" ;;
2301 # Substitute the hardcoded libdirs into the rpath.
2302 if test -n "$hardcode_libdir_separator" &&
2303 test -n "$hardcode_libdirs"; then
2304 libdir="$hardcode_libdirs"
2305 eval rpath=\" $hardcode_libdir_flag_spec\"
2307 compile_rpath="$rpath"
2311 for libdir in $finalize_rpath; do
2312 if test -n "$hardcode_libdir_flag_spec"; then
2313 if test -n "$hardcode_libdir_separator"; then
2314 if test -z "$hardcode_libdirs"; then
2315 hardcode_libdirs="$libdir"
2317 # Just accumulate the unique libdirs.
2318 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2319 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2322 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2327 eval flag=\"$hardcode_libdir_flag_spec\"
2328 rpath="$rpath $flag"
2330 elif test -n "$runpath_var"; then
2331 case "$finalize_perm_rpath " in
2333 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2337 # Substitute the hardcoded libdirs into the rpath.
2338 if test -n "$hardcode_libdir_separator" &&
2339 test -n "$hardcode_libdirs"; then
2340 libdir="$hardcode_libdirs"
2341 eval rpath=\" $hardcode_libdir_flag_spec\"
2343 finalize_rpath="$rpath"
2345 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2346 if test "X$output_objdir" = "X$output"; then
2347 output_objdir="$objdir"
2349 output_objdir="$output_objdir/$objdir"
2352 # Create the binary in the object directory, then wrap it.
2353 if test ! -d $output_objdir; then
2354 $show "$mkdir $output_objdir"
2355 $run $mkdir $output_objdir
2357 if test $status -ne 0 && test ! -d $output_objdir; then
2362 if test -n "$libobjs" && test "$build_old_libs" = yes; then
2363 # Transform all the library objects into standard objects.
2364 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2365 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2369 if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then
2370 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2371 dlsyms="${outputname}S.c"
2373 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2377 if test -n "$dlsyms"; then
2381 # Discover the nlist of each of the dlfiles.
2382 nlist="$output_objdir/${outputname}.nm"
2384 $show "$rm $nlist ${nlist}S ${nlist}T"
2385 $run $rm "$nlist" "${nlist}S" "${nlist}T"
2387 # Parse the name list into a source file.
2388 $show "creating $output_objdir/$dlsyms"
2390 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2391 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2392 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2398 /* Prevent the only kind of declaration conflicts we can make. */
2399 #define lt_preloaded_symbols some_other_symbol
2401 /* External symbol declarations for the compiler. */\
2404 if test "$dlself" = yes; then
2405 $show "generating symbol list for \`$output'"
2407 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2409 # Add our own program objects to the symbol list.
2410 progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2411 for arg in $progfiles; do
2412 $show "extracting global C symbols from \`$arg'"
2413 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2416 if test -n "$exclude_expsyms"; then
2417 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2418 $run eval '$mv "$nlist"T "$nlist"'
2421 if test -n "$export_symbols_regex"; then
2422 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2423 $run eval '$mv "$nlist"T "$nlist"'
2426 # Prepare the list of exported symbols
2427 if test -z "$export_symbols"; then
2428 export_symbols="$output_objdir/$output.exp"
2429 $run $rm $export_symbols
2430 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2432 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2433 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2434 $run eval 'mv "$nlist"T "$nlist"'
2438 for arg in $dlprefiles; do
2439 $show "extracting global C symbols from \`$arg'"
2440 name=`echo "$arg" | sed -e 's%^.*/%%'`
2441 $run eval 'echo ": $name " >> "$nlist"'
2442 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2445 if test -z "$run"; then
2446 # Make sure we have at least an empty file.
2447 test -f "$nlist" || : > "$nlist"
2449 if test -n "$exclude_expsyms"; then
2450 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2451 $mv "$nlist"T "$nlist"
2454 # Try sorting and uniquifying the output.
2455 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2458 grep -v "^: " < "$nlist" > "$nlist"S
2461 if test -f "$nlist"S; then
2462 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2464 echo '/* NONE */' >> "$output_objdir/$dlsyms"
2467 $echo >> "$output_objdir/$dlsyms" "\
2469 #undef lt_preloaded_symbols
2471 #if defined (__STDC__) && __STDC__
2472 # define lt_ptr_t void *
2474 # define lt_ptr_t char *
2478 /* The mapping between symbol names and symbols. */
2483 lt_preloaded_symbols[] =
2487 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2488 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2489 < "$nlist" >> "$output_objdir/$dlsyms"
2491 $echo >> "$output_objdir/$dlsyms" "\
2495 /* This works around a problem in FreeBSD linker */
2496 #ifdef FREEBSD_WORKAROUND
2497 static const void *lt_preloaded_setup() {
2498 return lt_preloaded_symbols;
2508 pic_flag_for_symtable=
2510 # compiling the symbol table file with pic_flag works around
2511 # a FreeBSD bug that causes programs to crash when -lm is
2512 # linked before any other PIC object. But we must not use
2513 # pic_flag when linking with -static. The problem exists in
2514 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2515 *-*-freebsd2*|*-*-freebsd3.0*)
2516 case "$compile_command " in
2518 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2522 # Now compile the dynamic symbol file.
2523 $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2524 $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2526 # Clean up the generated files.
2527 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2528 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2530 # Transform the symbol file into the correct name.
2531 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2532 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2535 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2540 # We keep going just in case the user didn't refer to
2541 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2542 # really was required.
2544 # Nullify the symbol file.
2545 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2546 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2549 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2550 # Replace the output file specification.
2551 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2552 link_command="$compile_command$compile_rpath"
2554 # We have no uninstalled library dependencies, so finalize right now.
2555 $show "$link_command"
2556 $run eval "$link_command"
2559 # Delete the generated files.
2560 if test -n "$dlsyms"; then
2561 $show "$rm $output_objdir/${outputname}S.${objext}"
2562 $run $rm "$output_objdir/${outputname}S.${objext}"
2568 if test -n "$shlibpath_var"; then
2569 # We should set the shlibpath_var
2571 for dir in $temp_rpath; do
2573 [\\/]* | [A-Za-z]:[\\/]*)
2578 # Relative path: add a thisdir entry.
2579 rpath="$rpath\$thisdir/$dir:"
2586 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2587 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2589 if test -n "$finalize_shlibpath"; then
2590 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2595 if test -n "$runpath_var"; then
2596 if test -n "$perm_rpath"; then
2597 # We should set the runpath_var.
2599 for dir in $perm_rpath; do
2602 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2604 if test -n "$finalize_perm_rpath"; then
2605 # We should set the runpath_var.
2607 for dir in $finalize_perm_rpath; do
2610 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2614 if test "$hardcode_action" = relink; then
2615 # Fast installation is not supported
2616 link_command="$compile_var$compile_command$compile_rpath"
2617 relink_command="$finalize_var$finalize_command$finalize_rpath"
2619 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2620 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2622 if test "$fast_install" != no; then
2623 link_command="$finalize_var$compile_command$finalize_rpath"
2624 if test "$fast_install" = yes; then
2625 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2627 # fast_install is set to needless
2631 link_command="$compile_var$compile_command$compile_rpath"
2632 relink_command="$finalize_var$finalize_command$finalize_rpath"
2636 # Replace the output file specification.
2637 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2639 # Delete the old output files.
2640 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2642 $show "$link_command"
2643 $run eval "$link_command" || exit $?
2645 # Now create the wrapper script.
2646 $show "creating $output"
2648 # Quote the relink command for shipping.
2649 if test -n "$relink_command"; then
2650 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2653 # Quote $echo for shipping.
2654 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2656 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2657 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2659 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2661 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2664 # Only actually do things if our run command is non-null.
2665 if test -z "$run"; then
2666 # win32 will think the script is a binary if it has
2667 # a .exe suffix, so we strip it off here.
2669 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2672 trap "$rm $output; exit 1" 1 2 15
2677 # $output - temporary wrapper script for $objdir/$outputname
2678 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2680 # The $output program cannot be directly executed until all the libtool
2681 # libraries that it depends on are installed.
2683 # This wrapper script should never be moved out of the build directory.
2684 # If it is, it will not operate correctly.
2686 # Sed substitution that helps us do robust quoting. It backslashifies
2687 # metacharacters that are still active within double-quoted strings.
2688 Xsed='sed -e 1s/^X//'
2689 sed_quote_subst='$sed_quote_subst'
2691 # The HP-UX ksh and POSIX shell print the target directory to stdout
2693 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
2695 relink_command=\"$relink_command\"
2697 # This environment variable determines our operation mode.
2698 if test \"\$libtool_install_magic\" = \"$magic\"; then
2699 # install mode needs the following variable:
2700 link_against_libtool_libs='$link_against_libtool_libs'
2702 # When we are sourced in execute mode, \$file and \$echo are already set.
2703 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2706 # Make sure echo works.
2707 if test \"X\$1\" = X--no-reexec; then
2708 # Discard the --no-reexec flag, and continue.
2710 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2711 # Yippee, \$echo works!
2714 # Restart under the correct shell, and then maybe \$echo will work.
2715 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2721 # Find the directory that this script lives in.
2722 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2723 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2725 # Follow symbolic links until we get to the real thisdir.
2726 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2727 while test -n \"\$file\"; do
2728 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2730 # If there was a directory component, then change thisdir.
2731 if test \"x\$destdir\" != \"x\$file\"; then
2732 case \"\$destdir\" in
2733 [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2734 *) thisdir=\"\$thisdir/\$destdir\" ;;
2738 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2739 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2742 # Try to get the absolute directory name.
2743 absdir=\`cd \"\$thisdir\" && pwd\`
2744 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2747 if test "$fast_install" = yes; then
2749 program=lt-'$outputname'
2750 progdir=\"\$thisdir/$objdir\"
2752 if test ! -f \"\$progdir/\$program\" || \\
2753 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2754 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2756 file=\"\$\$-\$program\"
2758 if test ! -d \"\$progdir\"; then
2759 $mkdir \"\$progdir\"
2761 $rm \"\$progdir/\$file\"
2766 # relink executable if necessary
2767 if test -n \"\$relink_command\"; then
2768 if (cd \"\$thisdir\" && eval \$relink_command); then :
2770 $rm \"\$progdir/\$file\"
2775 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2776 { $rm \"\$progdir/\$program\";
2777 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2778 $rm \"\$progdir/\$file\"
2782 program='$outputname'
2783 progdir=\"\$thisdir/$objdir\"
2789 if test -f \"\$progdir/\$program\"; then"
2791 # Export our shlibpath_var if we have one.
2792 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2794 # Add our own library path to $shlibpath_var
2795 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2797 # Some systems cannot cope with colon-terminated $shlibpath_var
2798 # The second colon is a workaround for a bug in BeOS R4 sed
2799 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2801 export $shlibpath_var
2805 # fixup the dll searchpath if we need to.
2806 if test -n "$dllsearchpath"; then
2808 # Add the dll search path components to the executable PATH
2809 PATH=$dllsearchpath:\$PATH
2814 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2815 # Run the actual program with our arguments.
2818 *-*-cygwin* | *-*-mingw | *-*-os2*)
2819 # win32 systems need to use the prog path for dll
2822 exec \$progdir\\\\\$program \${1+\"\$@\"}
2827 # Export the path to the program.
2828 PATH=\"\$progdir:\$PATH\"
2831 exec \$program \${1+\"\$@\"}
2836 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2840 # The program doesn't exist.
2841 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2842 \$echo \"This script is just a wrapper for \$program.\" 1>&2
2843 echo \"See the $PACKAGE documentation for more information.\" 1>&2
2854 # See if we need to build an old-fashioned archive.
2855 for oldlib in $oldlibs; do
2857 if test "$build_libtool_libs" = convenience; then
2858 oldobjs="$libobjs_save"
2859 addlibs="$convenience"
2860 build_libtool_libs=no
2862 if test "$build_libtool_libs" = module; then
2863 oldobjs="$libobjs_save"
2864 build_libtool_libs=no
2866 oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2868 addlibs="$old_convenience"
2871 if test -n "$addlibs"; then
2872 gentop="$output_objdir/${outputname}x"
2873 $show "${rm}r $gentop"
2874 $run ${rm}r "$gentop"
2875 $show "mkdir $gentop"
2876 $run mkdir "$gentop"
2878 if test $status -ne 0 && test ! -d "$gentop"; then
2881 generated="$generated $gentop"
2883 # Add in members from convenience archives.
2884 for xlib in $addlibs; do
2885 # Extract the objects.
2887 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2888 *) xabs=`pwd`"/$xlib" ;;
2890 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2891 xdir="$gentop/$xlib"
2893 $show "${rm}r $xdir"
2898 if test $status -ne 0 && test ! -d "$xdir"; then
2901 $show "(cd $xdir && $AR x $xabs)"
2902 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2904 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
2908 # Do each command in the archive commands.
2909 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
2910 eval cmds=\"$old_archive_from_new_cmds\"
2912 # Ensure that we have .o objects in place incase we decided
2913 # not to build a shared library, and have fallen back to building
2914 # static libs even though --disable-static was passed!
2915 for oldobj in $oldobjs; do
2916 if test ! -f $oldobj; then
2917 obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
2918 $show "${LN_S} $obj $oldobj"
2919 $run ${LN_S} $obj $oldobj || exit $?
2923 eval cmds=\"$old_archive_cmds\"
2925 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2926 for cmd in $cmds; do
2929 $run eval "$cmd" || exit $?
2934 if test -n "$generated"; then
2935 $show "${rm}r$generated"
2936 $run ${rm}r$generated
2939 # Now create the libtool archive.
2943 test "$build_old_libs" = yes && old_library="$libname.$libext"
2944 $show "creating $output"
2946 if test -n "$xrpath"; then
2948 for libdir in $xrpath; do
2949 temp_xrpath="$temp_xrpath -R$libdir"
2951 dependency_libs="$temp_xrpath $dependency_libs"
2954 # Only create the output if not a dry run.
2955 if test -z "$run"; then
2956 for installed in no yes; do
2957 if test "$installed" = yes; then
2958 if test -z "$install_libdir"; then
2961 output="$output_objdir/$outputname"i
2965 # $outputname - a libtool library file
2966 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2968 # Please DO NOT delete this file!
2969 # It is necessary for linking the library.
2971 # The name that we can dlopen(3).
2974 # Names of this library.
2975 library_names='$library_names'
2977 # The name of the static archive.
2978 old_library='$old_library'
2980 # Libraries that this one depends upon.
2981 dependency_libs='$dependency_libs'
2983 # Version information for $libname.
2988 # Is this an already installed library?
2989 installed=$installed
2991 # Directory that this library needs to be installed in:
2992 libdir='$install_libdir'\
2997 # Do a symbolic link so that the libtool archive can be found in
2998 # LD_LIBRARY_PATH before the program is installed.
2999 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3000 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3006 # libtool install mode
3008 modename="$modename: install"
3010 # There may be an optional sh(1) argument at the beginning of
3011 # install_prog (especially on Windows NT).
3012 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3013 # Aesthetically quote it.
3014 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3016 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3020 install_prog="$arg "
3028 # The real first argument should be the name of the installation program.
3029 # Aesthetically quote it.
3030 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3032 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3036 install_prog="$install_prog$arg"
3038 # We need to accept at least all the BSD install flags.
3048 if test -n "$dest"; then
3049 files="$files $dest"
3067 # If the previous option needed an argument, then skip it.
3068 if test -n "$prev"; then
3077 # Aesthetically quote the argument.
3078 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3080 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3084 install_prog="$install_prog $arg"
3087 if test -z "$install_prog"; then
3088 $echo "$modename: you must specify an install program" 1>&2
3093 if test -n "$prev"; then
3094 $echo "$modename: the \`$prev' option requires an argument" 1>&2
3099 if test -z "$files"; then
3100 if test -z "$dest"; then
3101 $echo "$modename: no file or destination specified" 1>&2
3103 $echo "$modename: you must specify a destination" 1>&2
3109 # Strip any trailing slash from the destination.
3110 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3112 # Check to see that the destination is a directory.
3113 test -d "$dest" && isdir=yes
3114 if test "$isdir" = yes; then
3118 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3119 test "X$destdir" = "X$dest" && destdir=.
3120 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3122 # Not a directory, so check to see that there is only one file specified.
3124 if test $# -gt 2; then
3125 $echo "$modename: \`$dest' is not a directory" 1>&2
3131 [\\/]* | [A-Za-z]:[\\/]*) ;;
3133 for file in $files; do
3137 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3146 # This variable tells wrapper scripts just to set variables rather
3147 # than running their programs.
3148 libtool_install_magic="$magic"
3153 for file in $files; do
3155 # Do each installation.
3158 # Do the static libraries later.
3159 staticlibs="$staticlibs $file"
3163 # Check to see that this really is a libtool archive.
3164 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3166 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3173 # If there is no directory component, then add one.
3175 */* | *\\*) . $file ;;
3179 # Add the libdir to current_libdirs if it is the destination.
3180 if test "X$destdir" = "X$libdir"; then
3181 case "$current_libdirs " in
3183 *) current_libdirs="$current_libdirs $libdir" ;;
3186 # Note the libdir as a future libdir.
3187 case "$future_libdirs " in
3189 *) future_libdirs="$future_libdirs $libdir" ;;
3193 dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3194 test "X$dir" = "X$file/" && dir=
3197 # See the names of the shared library.
3198 set dummy $library_names
3199 if test -n "$2"; then
3204 # Install the shared library and build the symlinks.
3205 $show "$install_prog $dir/$realname $destdir/$realname"
3206 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3207 test "X$dlname" = "X$realname" && dlname=
3209 if test $# -gt 0; then
3210 # Delete the old symlinks, and create new ones.
3213 test "X$dlname" = "X$linkname" && dlname=
3214 if test "$linkname" != "$realname"; then
3215 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3216 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3221 if test -n "$dlname"; then
3222 # Install the dynamically-loadable library.
3223 $show "$install_prog $dir/$dlname $destdir/$dlname"
3224 $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
3227 # Do each command in the postinstall commands.
3228 lib="$destdir/$realname"
3229 eval cmds=\"$postinstall_cmds\"
3230 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3231 for cmd in $cmds; do
3234 $run eval "$cmd" || exit $?
3239 # Install the pseudo-library for information purposes.
3240 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3241 instname="$dir/$name"i
3242 $show "$install_prog $instname $destdir/$name"
3243 $run eval "$install_prog $instname $destdir/$name" || exit $?
3245 # Maybe install the static library, too.
3246 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3250 # Install (i.e. copy) a libtool object.
3252 # Figure out destination file name, if it wasn't already specified.
3253 if test -n "$destname"; then
3254 destfile="$destdir/$destname"
3256 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3257 destfile="$destdir/$destfile"
3260 # Deduce the name of the destination old-style object file.
3263 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3266 staticdest="$destfile"
3270 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3276 # Install the libtool object if requested.
3277 if test -n "$destfile"; then
3278 $show "$install_prog $file $destfile"
3279 $run eval "$install_prog $file $destfile" || exit $?
3282 # Install the old object if enabled.
3283 if test "$build_old_libs" = yes; then
3284 # Deduce the name of the old-style object file.
3285 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3287 $show "$install_prog $staticobj $staticdest"
3288 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3294 # Figure out destination file name, if it wasn't already specified.
3295 if test -n "$destname"; then
3296 destfile="$destdir/$destname"
3298 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3299 destfile="$destdir/$destfile"
3302 # Do a test to see if this is really a libtool program.
3303 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3304 link_against_libtool_libs=
3307 # If there is no directory component, then add one.
3309 */* | *\\*) . $file ;;
3313 # Check the variables that should have been set.
3314 if test -z "$link_against_libtool_libs"; then
3315 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3320 for lib in $link_against_libtool_libs; do
3321 # Check to see that each library is installed.
3323 if test -f "$lib"; then
3324 # If there is no directory component, then add one.
3326 */* | *\\*) . $lib ;;
3330 libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3331 if test -n "$libdir" && test ! -f "$libfile"; then
3332 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3338 if test "$fast_install" = no && test -n "$relink_command"; then
3339 if test "$finalize" = yes && test -z "$run"; then
3341 test -n "$TMPDIR" && tmpdir="$TMPDIR"
3342 tmpdir="$tmpdir/libtool-$$"
3343 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3345 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3348 outputname="$tmpdir/$file"
3349 # Replace the output file specification.
3350 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3352 $show "$relink_command"
3353 if $run eval "$relink_command"; then :
3355 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3361 $echo "$modename: warning: cannot relink \`$file'" 1>&2
3364 # Install the binary that we compiled earlier.
3365 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3369 $show "$install_prog$stripme $file $destfile"
3370 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3371 test -n "$outputname" && ${rm}r "$tmpdir"
3376 for file in $staticlibs; do
3377 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3379 # Set up the ranlib parameters.
3380 oldlib="$destdir/$name"
3382 $show "$install_prog $file $oldlib"
3383 $run eval "$install_prog \$file \$oldlib" || exit $?
3385 # Do each command in the postinstall commands.
3386 eval cmds=\"$old_postinstall_cmds\"
3387 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3388 for cmd in $cmds; do
3391 $run eval "$cmd" || exit $?
3396 if test -n "$future_libdirs"; then
3397 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3400 if test -n "$current_libdirs"; then
3401 # Maybe just do a dry run.
3402 test -n "$run" && current_libdirs=" -n$current_libdirs"
3403 exec $SHELL $0 --finish$current_libdirs
3410 # libtool finish mode
3412 modename="$modename: finish"
3416 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3419 libdirs="$libdirs $dir"
3422 for libdir in $libdirs; do
3423 if test -n "$finish_cmds"; then
3424 # Do each command in the finish commands.
3425 eval cmds=\"$finish_cmds\"
3426 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3427 for cmd in $cmds; do
3430 $run eval "$cmd" || admincmds="$admincmds
3435 if test -n "$finish_eval"; then
3436 # Do the single finish_eval.
3437 eval cmds=\"$finish_eval\"
3438 $run eval "$cmds" || admincmds="$admincmds
3444 # Exit here if they wanted silent mode.
3445 test "$show" = : && exit 0
3447 echo "----------------------------------------------------------------------"
3448 echo "Libraries have been installed in:"
3449 for libdir in $libdirs; do
3453 echo "If you ever happen to want to link against installed libraries"
3454 echo "in a given directory, LIBDIR, you must either use libtool, and"
3455 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3456 echo "flag during linking and do at least one of the following:"
3457 if test -n "$shlibpath_var"; then
3458 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3459 echo " during execution"
3461 if test -n "$runpath_var"; then
3462 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3463 echo " during linking"
3465 if test -n "$hardcode_libdir_flag_spec"; then
3467 eval flag=\"$hardcode_libdir_flag_spec\"
3469 echo " - use the \`$flag' linker flag"
3471 if test -n "$admincmds"; then
3472 echo " - have your system administrator run these commands:$admincmds"
3474 if test -f /etc/ld.so.conf; then
3475 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3478 echo "See any operating system documentation about shared libraries for"
3479 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3480 echo "----------------------------------------------------------------------"
3484 # libtool execute mode
3486 modename="$modename: execute"
3488 # The first argument is the command name.
3490 if test -z "$cmd"; then
3491 $echo "$modename: you must specify a COMMAND" 1>&2
3496 # Handle -dlopen flags immediately.
3497 for file in $execute_dlfiles; do
3498 if test ! -f "$file"; then
3499 $echo "$modename: \`$file' is not a file" 1>&2
3507 # Check to see that this really is a libtool archive.
3508 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3510 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3515 # Read the libtool library.
3519 # If there is no directory component, then add one.
3521 */* | *\\*) . $file ;;
3525 # Skip this library if it cannot be dlopened.
3526 if test -z "$dlname"; then
3527 # Warn if it was a shared library.
3528 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3532 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3533 test "X$dir" = "X$file" && dir=.
3535 if test -f "$dir/$objdir/$dlname"; then
3538 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3544 # Just add the directory containing the .lo file.
3545 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3546 test "X$dir" = "X$file" && dir=.
3550 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3555 # Get the absolute pathname.
3556 absdir=`cd "$dir" && pwd`
3557 test -n "$absdir" && dir="$absdir"
3559 # Now add the directory to shlibpath_var.
3560 if eval "test -z \"\$$shlibpath_var\""; then
3561 eval "$shlibpath_var=\"\$dir\""
3563 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3567 # This variable tells wrapper scripts just to set shlibpath_var
3568 # rather than running their programs.
3569 libtool_execute_magic="$magic"
3571 # Check if any of the arguments is a wrapper script.
3578 # Do a test to see if this is really a libtool program.
3579 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3580 # If there is no directory component, then add one.
3582 */* | *\\*) . $file ;;
3586 # Transform arg to wrapped name.
3587 file="$progdir/$program"
3591 # Quote arguments (to preserve shell metacharacters).
3592 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3593 args="$args \"$file\""
3596 if test -z "$run"; then
3597 # Export the shlibpath_var.
3598 eval "export $shlibpath_var"
3600 # Restore saved enviroment variables
3601 if test "${save_LC_ALL+set}" = set; then
3602 LC_ALL="$save_LC_ALL"; export LC_ALL
3604 if test "${save_LANG+set}" = set; then
3605 LANG="$save_LANG"; export LANG
3608 # Now actually exec the command.
3609 eval "exec \$cmd$args"
3611 $echo "$modename: cannot exec \$cmd$args"
3614 # Display what would be done.
3615 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3616 $echo "export $shlibpath_var"
3622 # libtool uninstall mode
3624 modename="$modename: uninstall"
3631 -*) rm="$rm $arg" ;;
3632 *) files="$files $arg" ;;
3636 if test -z "$rm"; then
3637 $echo "$modename: you must specify an RM program" 1>&2
3642 for file in $files; do
3643 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3644 test "X$dir" = "X$file" && dir=.
3645 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3651 # Possibly a libtool archive, so verify it.
3652 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3655 # Delete the libtool libraries and symlinks.
3656 for n in $library_names; do
3657 rmfiles="$rmfiles $dir/$n"
3658 test "X$n" = "X$dlname" && dlname=
3660 test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
3661 test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3663 $show "$rm $rmfiles"
3666 if test -n "$library_names"; then
3667 # Do each command in the postuninstall commands.
3668 eval cmds=\"$postuninstall_cmds\"
3669 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3670 for cmd in $cmds; do
3678 if test -n "$old_library"; then
3679 # Do each command in the old_postuninstall commands.
3680 eval cmds=\"$old_postuninstall_cmds\"
3681 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3682 for cmd in $cmds; do
3690 # FIXME: should reinstall the best remaining shared library.
3695 if test "$build_old_libs" = yes; then
3696 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3697 rmfiles="$rmfiles $dir/$oldobj"
3699 $show "$rm $rmfiles"
3704 $show "$rm $rmfiles"
3713 $echo "$modename: you must specify a MODE" 1>&2
3714 $echo "$generic_help" 1>&2
3719 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3720 $echo "$generic_help" 1>&2
3722 fi # test -z "$show_help"
3724 # We need to display help for each of the modes.
3727 "Usage: $modename [OPTION]... [MODE-ARG]...
3729 Provide generalized library-building support services.
3731 --config show all configuration variables
3732 --debug enable verbose shell tracing
3733 -n, --dry-run display commands without modifying any files
3734 --features display basic configuration information and exit
3735 --finish same as \`--mode=finish'
3736 --help display this help message and exit
3737 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3738 --quiet same as \`--silent'
3739 --silent don't print informational messages
3740 --version print version information
3742 MODE must be one of the following:
3744 compile compile a source file into a libtool object
3745 execute automatically set library path, then run a program
3746 finish complete the installation of libtool libraries
3747 install install libraries or executables
3748 link create a library or an executable
3749 uninstall remove libraries from an installed directory
3751 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3752 a more detailed description of MODE."
3758 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3760 Compile a source file into a libtool library object.
3762 This mode accepts the following additional options:
3764 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
3765 -static always build a \`.o' file suitable for static linking
3767 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3768 from the given SOURCEFILE.
3770 The output file name is determined by removing the directory component from
3771 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3772 library object suffix, \`.lo'."
3777 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3779 Automatically set library path, then run a program.
3781 This mode accepts the following additional options:
3783 -dlopen FILE add the directory containing FILE to the library path
3785 This mode sets the library path environment variable according to \`-dlopen'
3788 If any of the ARGS are libtool executable wrappers, then they are translated
3789 into their corresponding uninstalled binary, and any of their required library
3790 directories are added to the library path.
3792 Then, COMMAND is executed, with ARGS as arguments."
3797 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3799 Complete the installation of libtool libraries.
3801 Each LIBDIR is a directory that contains libtool libraries.
3803 The commands that this mode executes may require superuser privileges. Use
3804 the \`--dry-run' option if you just want to see what would be executed."
3809 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3811 Install executables or libraries.
3813 INSTALL-COMMAND is the installation command. The first component should be
3814 either the \`install' or \`cp' program.
3816 The rest of the components are interpreted as arguments to that command (only
3817 BSD-compatible install options are recognized)."
3822 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3824 Link object files or libraries together to form another library, or to
3825 create an executable program.
3827 LINK-COMMAND is a command using the C compiler that you would use to create
3828 a program from several object files.
3830 The following components of LINK-COMMAND are treated specially:
3832 -all-static do not do any dynamic linking at all
3833 -avoid-version do not add a version suffix if possible
3834 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
3835 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
3836 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3837 -export-symbols SYMFILE
3838 try to export only the symbols listed in SYMFILE
3839 -export-symbols-regex REGEX
3840 try to export only the symbols matching REGEX
3841 -LLIBDIR search LIBDIR for required installed libraries
3842 -lNAME OUTPUT-FILE requires the installed library libNAME
3843 -module build a library that can dlopened
3844 -no-undefined declare that a library does not refer to external symbols
3845 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
3846 -release RELEASE specify package release information
3847 -rpath LIBDIR the created library will eventually be installed in LIBDIR
3848 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
3849 -static do not do any dynamic linking of libtool libraries
3850 -version-info CURRENT[:REVISION[:AGE]]
3851 specify library version info [each variable defaults to 0]
3853 All other options (arguments beginning with \`-') are ignored.
3855 Every other argument is treated as a filename. Files ending in \`.la' are
3856 treated as uninstalled libtool libraries, other files are standard or library
3859 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3860 only library objects (\`.lo' files) may be specified, and \`-rpath' is
3861 required, except when creating a convenience library.
3863 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3864 using \`ar' and \`ranlib', or on Windows using \`lib'.
3866 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3867 is created, otherwise an executable program is created."
3872 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3874 Remove libraries from an installation directory.
3876 RM is the name of the program to use to delete files associated with each FILE
3877 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
3880 If FILE is a libtool library, all the files associated with it are deleted.
3881 Otherwise, only FILE itself is deleted using RM."
3885 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3892 $echo "Try \`$modename --help' for more information about other modes."