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.117 1999/04/29 13:07:13)"
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"
470 if $run eval "$command"; then :
472 test -n "$output_obj" && $run $rm $removelist
476 if test "$need_locks" = warn
&&
477 test x
"`cat $lockfile 2>/dev/null`" != x
"$srcfile"; then
479 *** ERROR, $lockfile contains:
480 `cat $lockfile 2>/dev/null`
482 but it should contain:
485 This indicates that another process is trying to use the same
486 temporary object file, and libtool could not work around it because
487 your compiler does not support \`-c' and \`-o' together. If you
488 repeat this compilation, it may succeed, by chance, but you had better
489 avoid parallel builds (make -j) in this platform, or get a better
496 # Just move the object if needed, then go on to compile the next one
497 if test x
"$output_obj" != x
"$libobj"; then
498 $show "$mv $output_obj $libobj"
499 if $run $mv $output_obj $libobj; then :
507 # If we have no pic_flag, then copy the object into place and finish.
508 if test -z "$pic_flag" && test "$build_old_libs" = yes; then
509 # Rename the .lo from within objdir to obj
510 if test -f $obj; then
515 $show "$mv $libobj $obj"
516 if $run $mv $libobj $obj; then :
523 # Now arrange that obj and lo_libobj become the same file
524 $show "$LN_S $obj $lo_libobj"
525 if $run $LN_S $obj $lo_libobj; then
534 # Allow error messages only from the first compilation.
535 suppress_output
=' >/dev/null 2>&1'
538 # Only build a position-dependent object if we build old libraries.
539 if test "$build_old_libs" = yes; then
540 command="$base_compile $srcfile"
541 if test "$compiler_c_o" = yes; then
542 command="$command -o $obj"
546 # Suppress compiler output if we already did a PIC compilation.
547 command="$command$suppress_output"
549 if $run eval "$command"; then :
555 if test "$need_locks" = warn
&&
556 test x
"`cat $lockfile 2>/dev/null`" != x
"$srcfile"; then
558 *** ERROR, $lockfile contains:
559 `cat $lockfile 2>/dev/null`
561 but it should contain:
564 This indicates that another process is trying to use the same
565 temporary object file, and libtool could not work around it because
566 your compiler does not support \`-c' and \`-o' together. If you
567 repeat this compilation, it may succeed, by chance, but you had better
568 avoid parallel builds (make -j) in this platform, or get a better
575 # Just move the object if needed
576 if test x
"$output_obj" != x
"$obj"; then
577 $show "$mv $output_obj $obj"
578 if $run $mv $output_obj $obj; then :
586 # Create an invalid libtool object if no PIC, so that we do not
587 # accidentally link it into a program.
588 if test "$build_libtool_libs" != yes; then
589 $show "echo timestamp > $libobj"
590 $run eval "echo timestamp > \$libobj" || exit $?
592 # Move the .lo from within objdir
593 $show "$mv $libobj $lo_libobj"
594 if $run $mv $libobj $lo_libobj; then :
603 # Unlock the critical section if it was locked
604 if test "$need_locks" != no
; then
613 modename
="$modename: link"
614 C_compiler
="$CC" # save it, to compile generated C sources
617 *-*-cygwin* | *-*-mingw* | *-*-os2*)
618 # It is impossible to link a dll without this setting, and
619 # we shouldn't force the makefile maintainer to figure out
620 # which system we are compiling for in order to pass an extra
621 # flag for every libtool invokation.
624 # FIXME: Unfortunately, there are problems with the above when trying
625 # to make a dll which has undefined symbols, in which case not
626 # even a static library is built. For now, we need to specify
627 # -no-undefined on the libtool link line when we can be certain
628 # that all symbols are satisfied, otherwise we get a static library.
631 # This is a source program that is used to create dlls on Windows
632 # Don't remove nor modify the starting and closing comments
633 # /* ltdll.c starts here */
634 # #define WIN32_LEAN_AND_MEAN
635 # #include <windows.h>
636 # #undef WIN32_LEAN_AND_MEAN
642 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
647 # #include <cygwin/cygwin_dll.h>
648 # DECLARE_CYGWIN_DLL( DllMain );
649 # HINSTANCE __hDllInstance_base;
652 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
654 # __hDllInstance_base = hInst;
657 # /* ltdll.c ends here */
658 # This is a source program that is used to create import libraries
659 # on Windows for dlls which lack them. Don't remove nor modify the
660 # starting and closing comments
661 # /* impgen.c starts here */
662 # /* Copyright (C) 1999 Free Software Foundation, Inc.
664 # This file is part of GNU libtool.
666 # This program is free software; you can redistribute it and/or modify
667 # it under the terms of the GNU General Public License as published by
668 # the Free Software Foundation; either version 2 of the License, or
669 # (at your option) any later version.
671 # This program is distributed in the hope that it will be useful,
672 # but WITHOUT ANY WARRANTY; without even the implied warranty of
673 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
674 # GNU General Public License for more details.
676 # You should have received a copy of the GNU General Public License
677 # along with this program; if not, write to the Free Software
678 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
681 # #include <stdio.h> /* for printf() */
682 # #include <unistd.h> /* for open(), lseek(), read() */
683 # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
684 # #include <string.h> /* for strdup() */
686 # static unsigned int
687 # pe_get16 (fd, offset)
691 # unsigned char b[2];
692 # lseek (fd, offset, SEEK_SET);
694 # return b[0] + (b[1]<<8);
697 # static unsigned int
698 # pe_get32 (fd, offset)
702 # unsigned char b[4];
703 # lseek (fd, offset, SEEK_SET);
705 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
708 # static unsigned int
712 # unsigned char *b = ptr;
713 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
722 # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
723 # unsigned long export_rva, export_size, nsections, secptr, expptr;
724 # unsigned long name_rvas, nexp;
725 # unsigned char *expdata, *erva;
726 # char *filename, *dll_name;
728 # filename = argv[1];
730 # dll = open(filename, O_RDONLY|O_BINARY);
734 # dll_name = filename;
736 # for (i=0; filename[i]; i++)
737 # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
738 # dll_name = filename + i +1;
740 # pe_header_offset = pe_get32 (dll, 0x3c);
741 # opthdr_ofs = pe_header_offset + 4 + 20;
742 # num_entries = pe_get32 (dll, opthdr_ofs + 92);
744 # if (num_entries < 1) /* no exports */
747 # export_rva = pe_get32 (dll, opthdr_ofs + 96);
748 # export_size = pe_get32 (dll, opthdr_ofs + 100);
749 # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
750 # secptr = (pe_header_offset + 4 + 20 +
751 # pe_get16 (dll, pe_header_offset + 4 + 16));
754 # for (i = 0; i < nsections; i++)
757 # unsigned long secptr1 = secptr + 40 * i;
758 # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
759 # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
760 # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
761 # lseek(dll, secptr1, SEEK_SET);
762 # read(dll, sname, 8);
763 # if (vaddr <= export_rva && vaddr+vsize > export_rva)
765 # expptr = fptr + (export_rva - vaddr);
766 # if (export_rva + export_size > vaddr + vsize)
767 # export_size = vsize - (export_rva - vaddr);
772 # expdata = (unsigned char*)malloc(export_size);
773 # lseek (dll, expptr, SEEK_SET);
774 # read (dll, expdata, export_size);
775 # erva = expdata - export_rva;
777 # nexp = pe_as32 (expdata+24);
778 # name_rvas = pe_as32 (expdata+32);
780 # printf ("EXPORTS\n");
781 # for (i = 0; i<nexp; i++)
783 # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
784 # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
789 # /* impgen.c ends here */
795 compile_command
="$CC"
796 finalize_command
="$CC"
807 if test -n "$shlibpath_var"; then
808 # get the directories listed in $shlibpath_var
809 eval lib_search_path
=\
`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
813 # now prepend the system-specific ones
814 eval lib_search_path
=\"$sys_lib_search_path_spec\
$lib_search_path\"
815 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
823 export_symbols_regex
=
826 link_against_libtool_libs
=
830 prefer_static_libs
=no
842 # We need to know -static, to get the right output filenames.
846 -all-static | -static)
847 if test "X$arg" = "X-all-static"; then
848 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
849 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
851 if test -n "$link_static_flag"; then
852 dlopen_self
=$dlopen_self_static
855 if test -z "$pic_flag" && test -n "$link_static_flag"; then
856 dlopen_self
=$dlopen_self_static
859 build_libtool_libs
=no
861 prefer_static_libs
=yes
867 # See if our shared archives depend on static archives.
868 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
870 # Go through the arguments, transforming them on the way.
871 while test $# -gt 0; do
875 # If the previous option needs an argument, assign it.
876 if test -n "$prev"; then
879 compile_command
="$compile_command @OUTPUT@"
880 finalize_command
="$finalize_command @OUTPUT@"
886 if test "$preload" = no
; then
887 # Add the symbol object into the linking commands.
888 compile_command
="$compile_command @SYMFILE@"
889 finalize_command
="$finalize_command @SYMFILE@"
893 *.la
| *.lo
) ;; # We handle these cases below.
895 if test "$prev" = dlprefiles
; then
897 elif test "$prev" = dlfiles
&& test "$dlopen_self" != yes; then
907 if test "$prev" = dlfiles
; then
908 dlfiles
="$dlfiles $arg"
910 dlprefiles
="$dlprefiles $arg"
917 export_symbols
="$arg"
918 if test ! -f "$arg"; then
919 $echo "$modename: symbol file \`$arg' does not exist"
926 export_symbols_regex
="$arg"
936 # We need an absolute path.
938 [\\/]* | [A
-Za-z]:[\\/]*) ;;
940 $echo "$modename: only absolute run-paths are allowed" 1>&2
944 if test "$prev" = rpath
; then
947 *) rpath
="$rpath $arg" ;;
952 *) xrpath
="$xrpath $arg" ;;
959 eval "$prev=\"\$arg\""
970 if test -n "$link_static_flag"; then
971 compile_command
="$compile_command $link_static_flag"
972 finalize_command
="$finalize_command $link_static_flag"
978 # FIXME: remove this flag sometime in the future.
979 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1003 -export-symbols | -export-symbols-regex)
1004 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1005 $echo "$modename: not more than one -exported-symbols argument allowed"
1008 if test "X$arg" = "X-export-symbols"; then
1017 dir
=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1018 # We need an absolute path.
1020 [\\/]* | [A
-Za-z]:[\\/]*) ;;
1022 absdir
=`cd "$dir" && pwd`
1023 if test -z "$absdir"; then
1024 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1030 case " $deplibs " in
1032 *) deplibs
="$deplibs $arg";;
1034 case " $lib_search_path " in
1036 *) lib_search_path
="$lib_search_path $dir";;
1039 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1040 dllsearchdir
=`cd "$dir" && pwd || echo "$dir"`
1041 case ":$dllsearchpath:" in
1042 ::) dllsearchpath
="$dllsearchdir";;
1043 *":$dllsearchdir:"*) ;;
1044 *) dllsearchpath
="$dllsearchpath:$dllsearchdir";;
1051 if test "$arg" = "-lc"; then
1053 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1054 # These systems don't actually have c library (as such)
1058 elif test "$arg" = "-lm"; then
1060 *-*-cygwin* | *-*-beos*)
1061 # These systems don't actually have math library (as such)
1066 deplibs
="$deplibs $arg"
1097 dir
=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1098 # We need an absolute path.
1100 [\\/]* | [A
-Za-z]:[\\/]*) ;;
1102 $echo "$modename: only absolute run-paths are allowed" 1>&2
1108 *) xrpath
="$xrpath $dir" ;;
1114 # If we have no pic_flag, then this is the same as -all-static.
1115 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1116 compile_command
="$compile_command $link_static_flag"
1117 finalize_command
="$finalize_command $link_static_flag"
1132 # Some other compiler flag.
1134 # Unknown arguments in both finalize_command and compile_command need
1135 # to be aesthetically quoted because they are evaled later.
1136 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1138 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1144 *.o
| *.obj
| *.a
| *.lib
)
1145 # A standard object.
1151 if test "$prev" = dlfiles
; then
1152 dlfiles
="$dlfiles $arg"
1153 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1157 # If libtool objects are unsupported, then we need to preload.
1162 if test "$prev" = dlprefiles
; then
1163 # Preload the old-style object.
1164 dlprefiles
="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1167 libobjs
="$libobjs $arg"
1171 # A libtool-controlled library.
1178 # Check to see that this really is a libtool archive.
1179 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
1181 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1185 # If the library was installed with an old release of libtool,
1186 # it will not redefine variable installed.
1190 # If there is no directory component, then add one.
1192 */* | *\\*) .
$arg ;;
1196 # Get the name of the library we link against.
1198 for l
in $old_library $library_names; do
1202 if test -z "$linklib"; then
1203 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1207 # Find the relevant object directory and library name.
1208 name
=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1210 if test "X$installed" = Xyes
; then
1213 dir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1214 if test "X$dir" = "X$arg"; then
1221 if test -n "$dependency_libs"; then
1222 # Extract -R from dependency_libs
1224 for deplib
in $dependency_libs; do
1226 -R*) temp_xrpath
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1227 case " $rpath $xrpath " in
1228 *" $temp_xrpath "*) ;;
1229 *) xrpath
="$xrpath $temp_xrpath";;
1231 -L*) case "$compile_command $temp_deplibs " in
1233 *) temp_deplibs
="$temp_deplibs $deplib";;
1235 *) temp_deplibs
="$temp_deplibs $deplib";;
1238 dependency_libs
="$temp_deplibs"
1241 if test -z "$libdir"; then
1242 # It is a libtool convenience library, so add in its objects.
1243 convenience
="$convenience $dir/$old_library"
1244 old_convenience
="$old_convenience $dir/$old_library"
1245 deplibs
="$deplibs$dependency_libs"
1246 compile_command
="$compile_command $dir/$old_library$dependency_libs"
1247 finalize_command
="$finalize_command $dir/$old_library$dependency_libs"
1251 # This library was specified with -dlopen.
1252 if test "$prev" = dlfiles
; then
1253 dlfiles
="$dlfiles $arg"
1254 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no
; then
1255 # If there is no dlname, no dlopen support or we're linking statically,
1256 # we need to preload.
1259 # We should not create a dependency on this library, but we
1260 # may need any libraries it requires.
1261 compile_command
="$compile_command$dependency_libs"
1262 finalize_command
="$finalize_command$dependency_libs"
1268 # The library was specified with -dlpreopen.
1269 if test "$prev" = dlprefiles
; then
1270 # Prefer using a static library (so that no silly _DYNAMIC symbols
1271 # are required to link).
1272 if test -n "$old_library"; then
1273 dlprefiles
="$dlprefiles $dir/$old_library"
1275 dlprefiles
="$dlprefiles $dir/$linklib"
1280 if test -n "$library_names" &&
1281 { test "$prefer_static_libs" = no
|| test -z "$old_library"; }; then
1282 link_against_libtool_libs
="$link_against_libtool_libs $arg"
1283 if test -n "$shlibpath_var"; then
1284 # Make sure the rpath contains only unique directories.
1285 case "$temp_rpath " in
1287 *) temp_rpath
="$temp_rpath $dir" ;;
1291 # We need an absolute path.
1293 [\\/] | [A
-Za-z]:[\\/]*) absdir
="$dir" ;;
1295 absdir
=`cd "$dir" && pwd`
1296 if test -z "$absdir"; then
1297 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1303 # This is the magic to use -rpath.
1304 # Skip directories that are in the system default run-time
1305 # search path, unless they have been requested with -R.
1306 case " $sys_lib_dlsearch_path " in
1309 case "$compile_rpath " in
1311 *) compile_rpath
="$compile_rpath $absdir"
1316 case " $sys_lib_dlsearch_path " in
1319 case "$finalize_rpath " in
1321 *) finalize_rpath
="$finalize_rpath $libdir"
1327 case "$hardcode_action" in
1328 immediate
| unsupported
)
1329 if test "$hardcode_direct" = no
; then
1330 compile_command
="$compile_command $dir/$linklib"
1331 deplibs
="$deplibs $dir/$linklib"
1333 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1334 dllsearchdir
=`cd "$dir" && pwd || echo "$dir"`
1335 if test -n "$dllsearchpath"; then
1336 dllsearchpath
="$dllsearchpath:$dllsearchdir"
1338 dllsearchpath
="$dllsearchdir"
1342 elif test "$hardcode_minus_L" = no
; then
1345 compile_shlibpath
="$compile_shlibpath$dir:"
1348 case "$compile_command " in
1350 *) compile_command
="$compile_command -L$dir";;
1352 compile_command
="$compile_command -l$name"
1353 deplibs
="$deplibs -L$dir -l$name"
1354 elif test "$hardcode_shlibpath_var" = no
; then
1355 case ":$compile_shlibpath:" in
1357 *) compile_shlibpath
="$compile_shlibpath$dir:";;
1359 compile_command
="$compile_command -l$name"
1360 deplibs
="$deplibs -l$name"
1367 if test "$hardcode_direct" = yes; then
1368 compile_command
="$compile_command $absdir/$linklib"
1369 deplibs
="$deplibs $absdir/$linklib"
1370 elif test "$hardcode_minus_L" = yes; then
1371 case "$compile_command " in
1373 *) compile_command
="$compile_command -L$absdir";;
1375 compile_command
="$compile_command -l$name"
1376 deplibs
="$deplibs -L$absdir -l$name"
1377 elif test "$hardcode_shlibpath_var" = yes; then
1378 case ":$compile_shlibpath:" in
1380 *) compile_shlibpath
="$compile_shlibpath$absdir:";;
1382 compile_command
="$compile_command -l$name"
1383 deplibs
="$deplibs -l$name"
1394 if test "$lib_linked" != yes; then
1395 $echo "$modename: configuration error: unsupported hardcode properties"
1399 # Finalize command for both is simple: just hardcode it.
1400 if test "$hardcode_direct" = yes; then
1401 finalize_command
="$finalize_command $libdir/$linklib"
1402 elif test "$hardcode_minus_L" = yes; then
1403 case "$finalize_command " in
1405 *) finalize_command
="$finalize_command -L$libdir";;
1407 finalize_command
="$finalize_command -l$name"
1408 elif test "$hardcode_shlibpath_var" = yes; then
1409 case ":$finalize_shlibpath:" in
1411 *) finalize_shlibpath
="$finalize_shlibpath$libdir:";;
1413 finalize_command
="$finalize_command -l$name"
1415 # We cannot seem to hardcode it, guess we'll fake it.
1416 case "$finalize_command " in
1418 *) finalize_command
="$finalize_command -L$libdir";;
1420 finalize_command
="$finalize_command -l$name"
1423 # Transform directly to old archives if we don't build new libraries.
1424 if test -n "$pic_flag" && test -z "$old_library"; then
1425 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1429 # Here we assume that one of hardcode_direct or hardcode_minus_L
1430 # is not unsupported. This is valid on all known static and
1432 if test "$hardcode_direct" != unsupported
; then
1433 test -n "$old_library" && linklib
="$old_library"
1434 compile_command
="$compile_command $dir/$linklib"
1435 finalize_command
="$finalize_command $dir/$linklib"
1437 case "$compile_command " in
1439 *) compile_command
="$compile_command -L$dir";;
1441 compile_command
="$compile_command -l$name"
1442 case "$finalize_command " in
1444 *) finalize_command
="$finalize_command -L$dir";;
1446 finalize_command
="$finalize_command -l$name"
1450 # Add in any libraries that this one depends upon.
1451 compile_command
="$compile_command$dependency_libs"
1452 finalize_command
="$finalize_command$dependency_libs"
1456 # Some other compiler argument.
1458 # Unknown arguments in both finalize_command and compile_command need
1459 # to be aesthetically quoted because they are evaled later.
1460 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1462 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1469 # Now actually substitute the argument into the commands.
1470 if test -n "$arg"; then
1471 compile_command
="$compile_command $arg"
1472 finalize_command
="$finalize_command $arg"
1476 if test -n "$prev"; then
1477 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1482 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1483 eval arg
=\"$export_dynamic_flag_spec\"
1484 compile_command
="$compile_command $arg"
1485 finalize_command
="$finalize_command $arg"
1489 # calculate the name of the file, without its directory
1490 outputname
=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1491 libobjs_save
="$libobjs"
1495 $echo "$modename: you must specify an output file" 1>&2
1501 if test -n "$link_against_libtool_libs"; then
1502 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1506 if test -n "$deplibs"; then
1507 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1510 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no
; then
1511 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1514 if test -n "$rpath"; then
1515 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1518 if test -n "$xrpath"; then
1519 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1522 if test -n "$vinfo"; then
1523 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1526 if test -n "$release"; then
1527 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1530 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1531 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1534 # Now set the variables for building old libraries.
1535 build_libtool_libs
=no
1540 # Make sure we only generate libraries of the form `libNAME.la'.
1541 case "$outputname" in
1543 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1544 eval libname
=\"$libname_spec\"
1547 if test "$module" = no
; then
1548 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1552 if test "$need_lib_prefix" != no
; then
1553 # Add the "lib" prefix for modules if required
1554 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1555 eval libname
=\"$libname_spec\"
1557 libname
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1562 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1563 if test "X$output_objdir" = "X$output"; then
1564 output_objdir
="$objdir"
1566 output_objdir
="$output_objdir/$objdir"
1569 if test -n "$objs"; then
1570 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1574 # How the heck are we supposed to write a wrapper for a shared library?
1575 if test -n "$link_against_libtool_libs"; then
1576 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1580 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no
; then
1581 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1585 if test $# -gt 2; then
1586 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1591 if test -z "$rpath"; then
1592 if test "$build_libtool_libs" = yes; then
1593 # Building a libtool convenience library.
1595 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
1596 build_libtool_libs
=convenience
1599 dependency_libs
="$deplibs"
1601 if test -n "$vinfo"; then
1602 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1605 if test -n "$release"; then
1606 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1610 # Parse the version information argument.
1611 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
=':'
1612 set dummy
$vinfo 0 0 0
1615 if test -n "$8"; then
1616 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1625 # Check that each of the things are valid numbers.
1627 0 | [1-9] | [1-9][0-9]*) ;;
1629 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1630 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1636 0 | [1-9] | [1-9][0-9]*) ;;
1638 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1639 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1645 0 | [1-9] | [1-9][0-9]*) ;;
1647 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1648 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1653 if test $age -gt $current; then
1654 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1655 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1659 # Calculate the version variables.
1663 case "$version_type" in
1667 major
=`expr $current - $age + 1`
1668 versuffix
="$major.$revision"
1669 verstring
="sgi$major.$revision"
1671 # Add in all the interfaces that we are compatible with.
1673 while test $loop != 0; do
1674 iface
=`expr $revision - $loop`
1675 loop
=`expr $loop - 1`
1676 verstring
="sgi$major.$iface:$verstring"
1681 major
=.
`expr $current - $age`
1682 versuffix
="$major.$age.$revision"
1686 major
=`expr $current - $age`
1687 versuffix
=".$current.$age.$revision"
1688 verstring
="$current.$age.$revision"
1690 # Add in all the interfaces that we are compatible with.
1692 while test $loop != 0; do
1693 iface
=`expr $current - $loop`
1694 loop
=`expr $loop - 1`
1695 verstring
="$verstring:${iface}.0"
1698 # Make executables depend on our current version.
1699 verstring
="$verstring:${current}.0"
1704 versuffix
=".$current.$revision"
1709 versuffix
=".$current.$revision";
1714 versuffix
=".$current";
1718 # Like Linux, but with '-' rather than '.', since we only
1719 # want one extension on Windows 95.
1720 major
=`expr $current - $age`
1721 versuffix
="-$major-$age-$revision"
1725 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1726 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1731 # Clear the version info if we defaulted, and they specified a release.
1732 if test -z "$vinfo" && test -n "$release"; then
1735 if test "$need_version" = no
; then
1742 # Remove version info from name if versioning should be avoided
1743 if test "$avoid_version" = yes && test "$need_version" = no
; then
1749 # Check to see if the archive will have undefined symbols.
1750 if test "$allow_undefined" = yes; then
1751 if test "$allow_undefined_flag" = unsupported
; then
1752 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1753 build_libtool_libs
=no
1757 # Don't allow undefined symbols.
1758 allow_undefined_flag
="$no_undefined_flag"
1761 dependency_libs
="$deplibs"
1763 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1764 # these systems don't actually have a c library (as such)!
1767 # Add libc to deplibs on all other systems.
1768 deplibs
="$deplibs -lc"
1773 # Create the output directory, or remove our outputs if we need to.
1774 if test -d $output_objdir; then
1775 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1776 $run ${rm}r
$output_objdir/$outputname $output_objdir/$libname.
* $output_objdir/${libname}${release}.
*
1778 $show "$mkdir $output_objdir"
1779 $run $mkdir $output_objdir
1781 if test $status -ne 0 && test ! -d $output_objdir; then
1786 # Now set the variables for building old libraries.
1787 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
1788 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
1790 # Transform .lo files to .o files.
1791 oldobjs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1794 if test "$build_libtool_libs" = yes; then
1795 # Transform deplibs into only deplibs that can be linked in shared.
1797 libname_save
=$libname
1798 release_save
=$release
1799 versuffix_save
=$versuffix
1801 # I'm not sure if I'm treating the release correctly. I think
1802 # release should show up in the -l (ie -lgmp5) so we don't want to
1803 # add it in twice. Is that correct?
1809 case "$deplibs_check_method" in
1811 # Don't check for shared/static. Everything works.
1812 # This might be a little naive. We might want to check
1813 # whether the library exists or not. But this is on
1814 # osf3 & osf4 and I'm not really sure... Just
1815 # implementing what was already the behaviour.
1819 # This code stresses the "libraries are programs" paradigm to its
1820 # limits. Maybe even breaks it. We compile a program, linking it
1821 # against the deplibs as a proxy for the library. Then we can check
1822 # whether they linked in statically or dynamically with ldd.
1824 cat > conftest.c
<<EOF
1825 int main() { return 0; }
1828 $C_compiler -o conftest conftest.c
$deplibs
1829 if test $?
-eq 0 ; then
1830 ldd_output
=`ldd conftest`
1831 for i
in $deplibs; do
1832 name
="`expr $i : '-l\(.*\)'`"
1833 # If $name is empty we are operating on a -L argument.
1834 if test "$name" != "" ; then
1835 libname
=`eval \\$echo \"$libname_spec\"`
1836 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
1837 set dummy
$deplib_matches
1839 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1840 newdeplibs
="$newdeplibs $i"
1844 echo "*** Warning: This library needs some functionality provided by $i."
1845 echo "*** I have the capability to make that library automatically link in when"
1846 echo "*** you link to this library. But I can only do this if you have a"
1847 echo "*** shared version of the library, which you do not appear to have."
1850 newdeplibs
="$newdeplibs $i"
1854 # Error occured in the first compile. Let's try to salvage the situation:
1855 # Compile a seperate program for each library.
1856 for i
in $deplibs; do
1857 name
="`expr $i : '-l\(.*\)'`"
1858 # If $name is empty we are operating on a -L argument.
1859 if test "$name" != "" ; then
1861 $C_compiler -o conftest conftest.c
$i
1863 if test $?
-eq 0 ; then
1864 ldd_output
=`ldd conftest`
1865 libname
=`eval \\$echo \"$libname_spec\"`
1866 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
1867 set dummy
$deplib_matches
1869 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1870 newdeplibs
="$newdeplibs $i"
1874 echo "*** Warning: This library needs some functionality provided by $i."
1875 echo "*** I have the capability to make that library automatically link in when"
1876 echo "*** you link to this library. But I can only do this if you have a"
1877 echo "*** shared version of the library, which you do not appear to have."
1882 echo "*** Warning! Library $i is needed by this library but I was not able to"
1883 echo "*** make it link in! You will probably need to install it or some"
1884 echo "*** library that it depends on before this library will be fully"
1885 echo "*** functional. Installing it before continuing would be even better."
1888 newdeplibs
="$newdeplibs $i"
1894 set dummy
$deplibs_check_method
1895 file_magic_regex
="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1896 for a_deplib
in $deplibs; do
1897 name
="`expr $a_deplib : '-l\(.*\)'`"
1898 # If $name is empty we are operating on a -L argument.
1899 if test "$name" != "" ; then
1900 libname
=`eval \\$echo \"$libname_spec\"`
1901 for i
in $lib_search_path; do
1902 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
1903 for potent_lib
in $potential_libs; do
1904 # Follow soft links.
1905 if ls -lLd "$potlib" 2>/dev
/null \
1906 | grep " -> " >/dev
/null
; then
1909 # The statement above tries to avoid entering an
1910 # endless loop below, in case of cyclic links.
1911 # We might still enter an endless loop, since a link
1912 # loop can be closed while we follow links,
1914 potlib
="$potent_lib"
1915 while test -h "$potlib" 2>/dev
/null
; do
1916 potliblink
=`ls -ld $potlib | sed 's/.* -> //'`
1917 case "$potliblink" in
1918 [\\/]* | [A
-Za-z]:[\\/]*) potlib
="$potliblink";;
1919 *) potlib
=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1922 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null \
1924 | egrep "$file_magic_regex" > /dev
/null
; then
1925 newdeplibs
="$newdeplibs $a_deplib"
1931 if test -n "$a_deplib" ; then
1934 echo "*** Warning: This library needs some functionality provided by $a_deplib."
1935 echo "*** I have the capability to make that library automatically link in when"
1936 echo "*** you link to this library. But I can only do this if you have a"
1937 echo "*** shared version of the library, which you do not appear to have."
1940 # Add a -L argument.
1941 newdeplibs
="$newdeplibs $a_deplib"
1943 done # Gone through all deplibs.
1947 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1948 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
1949 grep .
>/dev
/null
; then
1951 if test "X$deplibs_check_method" = "Xnone"; then
1952 echo "*** Warning: inter-library dependencies are not supported in this platform."
1954 echo "*** Warning: inter-library dependencies are not known to be supported."
1956 echo "*** All declared inter-library dependencies are being dropped."
1961 versuffix
=$versuffix_save
1963 release
=$release_save
1964 libname
=$libname_save
1967 if test "$droppeddeps" = yes; then
1968 if test "$module" = yes; then
1970 echo "*** Warning: libtool could not satisfy all declared inter-library"
1971 echo "*** dependencies of module $libname. Therefore, libtool will create"
1972 echo "*** a static module, that should work as long as the dlopening"
1973 echo "*** application is linked with the -dlopen flag."
1974 if test -z "$global_symbol_pipe"; then
1976 echo "*** However, this would only work if libtool was able to extract symbol"
1977 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1978 echo "*** not find such a program. So, this module is probably useless."
1979 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1981 if test "$build_old_libs" = no
; then
1982 oldlibs
="$output_objdir/$libname.$libext"
1983 build_libtool_libs
=module
1986 build_libtool_libs
=no
1989 echo "*** The inter-library dependencies that have been dropped here will be"
1990 echo "*** automatically added whenever a program is linked with this library"
1991 echo "*** or is declared to -dlopen it."
1994 # Done checking deplibs!
1998 # All the library-specific variables (install_libdir is set above).
2003 # Test again, we may have decided not to build it any more
2004 if test "$build_libtool_libs" = yes; then
2005 # Get the real and link names of the library.
2006 eval library_names
=\"$library_names_spec\"
2007 set dummy
$library_names
2011 if test -n "$soname_spec"; then
2012 eval soname
=\"$soname_spec\"
2017 lib
="$output_objdir/$realname"
2020 linknames
="$linknames $link"
2023 # Ensure that we have .o objects for linkers which dislike .lo
2024 # (e.g. aix) incase we are running --disable-static
2025 for obj
in $libobjs; do
2026 oldobj
=`$echo "X$obj" | $Xsed -e "$lo2o"`
2027 if test ! -f $oldobj; then
2028 $show "${LN_S} $obj $oldobj"
2029 $run ${LN_S} $obj $oldobj || exit $?
2033 # Use standard objects if they are pic
2034 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2036 if test -n "$whole_archive_flag_spec"; then
2037 if test -n "$convenience"; then
2038 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
2041 gentop
="$output_objdir/${outputname}x"
2042 $show "${rm}r $gentop"
2043 $run ${rm}r
"$gentop"
2044 $show "mkdir $gentop"
2045 $run mkdir "$gentop"
2047 if test $status -ne 0 && test ! -d "$gentop"; then
2050 generated
="$generated $gentop"
2052 for xlib
in $convenience; do
2053 # Extract the objects.
2055 [\\/]* | [A
-Za-z]:[\\/]*) xabs
="$xlib" ;;
2056 *) xabs
=`pwd`"/$xlib" ;;
2058 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2059 xdir
="$gentop/$xlib"
2061 $show "${rm}r $xdir"
2066 if test $status -ne 0 && test ! -d "$xdir"; then
2069 $show "(cd $xdir && $AR x $xabs)"
2070 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2072 libobjs
="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2076 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2077 eval flag
=\"$thread_safe_flag_spec\"
2078 linkopts
="$linkopts $flag"
2081 # Prepare the list of exported symbols
2082 if test -z "$export_symbols"; then
2083 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2084 $show "generating symbol list for \`$libname.la'"
2085 export_symbols
="$output_objdir/$libname.exp"
2086 $run $rm $export_symbols
2087 eval cmds
=\"$export_symbols_cmds\"
2088 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
2089 for cmd
in $cmds; do
2092 $run eval "$cmd" || exit $?
2095 if test -n "$export_symbols_regex"; then
2096 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2097 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2098 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2099 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2104 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2105 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2108 # Do each of the archive commands.
2109 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2110 eval cmds
=\"$archive_expsym_cmds\"
2112 eval cmds
=\"$archive_cmds\"
2114 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
2115 for cmd
in $cmds; do
2118 $run eval "$cmd" || exit $?
2122 # Create links to the real library.
2123 for linkname
in $linknames; do
2124 if test "$realname" != "$linkname"; then
2125 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2126 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2130 # If -module or -export-dynamic was specified, set the dlname.
2131 if test "$module" = yes || test "$export_dynamic" = yes; then
2132 # On all known operating systems, these are identical.
2139 if test -n "$link_against_libtool_libs"; then
2140 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2144 if test -n "$deplibs"; then
2145 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2148 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no
; then
2149 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2152 if test -n "$rpath"; then
2153 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2156 if test -n "$xrpath"; then
2157 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2160 if test -n "$vinfo"; then
2161 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2164 if test -n "$release"; then
2165 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2170 if test -n "$objs"; then
2171 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2175 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
2183 # Delete the old objects.
2184 $run $rm $obj $libobj
2186 # Create the old-style object.
2187 reload_objs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2190 eval cmds
=\"$reload_cmds\"
2191 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
2192 for cmd
in $cmds; do
2195 $run eval "$cmd" || exit $?
2199 # Exit if we aren't doing a library object file.
2200 test -z "$libobj" && exit 0
2202 if test "$build_libtool_libs" != yes; then
2203 # Create an invalid libtool object if no PIC, so that we don't
2204 # accidentally link it into a program.
2205 $show "echo timestamp > $libobj"
2206 $run eval "echo timestamp > $libobj" || exit $?
2210 if test -n "$pic_flag"; then
2211 # Only do commands if we really have different PIC objects.
2212 reload_objs
="$libobjs"
2214 eval cmds
=\"$reload_cmds\"
2215 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
2216 for cmd
in $cmds; do
2219 $run eval "$cmd" || exit $?
2223 # Just create a symlink.
2226 $show "$LN_S $obj $libobj"
2227 $run $LN_S $obj $libobj || exit $?
2233 # Anything else should be a program.
2235 if test -n "$vinfo"; then
2236 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2239 if test -n "$release"; then
2240 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2243 if test "$preload" = yes; then
2244 if test "$dlopen" = unknown
&& test "$dlopen_self" = unknown
&&
2245 test "$dlopen_self_static" = unknown
; then
2246 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2250 if test -n "$rpath$xrpath"; then
2251 # If the user specified any rpath flags, then add them.
2252 for libdir
in $rpath $xrpath; do
2253 # This is the magic to use -rpath.
2254 case "$compile_rpath " in
2256 *) compile_rpath
="$compile_rpath $libdir" ;;
2258 case "$finalize_rpath " in
2260 *) finalize_rpath
="$finalize_rpath $libdir" ;;
2265 # Now hardcode the library paths
2268 for libdir
in $compile_rpath $finalize_rpath; do
2269 if test -n "$hardcode_libdir_flag_spec"; then
2270 if test -n "$hardcode_libdir_separator"; then
2271 if test -z "$hardcode_libdirs"; then
2272 hardcode_libdirs
="$libdir"
2274 # Just accumulate the unique libdirs.
2275 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2276 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2279 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2284 eval flag
=\"$hardcode_libdir_flag_spec\"
2285 rpath
="$rpath $flag"
2287 elif test -n "$runpath_var"; then
2288 case "$perm_rpath " in
2290 *) perm_rpath
="$perm_rpath $libdir" ;;
2294 # Substitute the hardcoded libdirs into the rpath.
2295 if test -n "$hardcode_libdir_separator" &&
2296 test -n "$hardcode_libdirs"; then
2297 libdir
="$hardcode_libdirs"
2298 eval rpath
=\" $hardcode_libdir_flag_spec\"
2300 compile_rpath
="$rpath"
2304 for libdir
in $finalize_rpath; do
2305 if test -n "$hardcode_libdir_flag_spec"; then
2306 if test -n "$hardcode_libdir_separator"; then
2307 if test -z "$hardcode_libdirs"; then
2308 hardcode_libdirs
="$libdir"
2310 # Just accumulate the unique libdirs.
2311 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2312 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2315 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2320 eval flag
=\"$hardcode_libdir_flag_spec\"
2321 rpath
="$rpath $flag"
2323 elif test -n "$runpath_var"; then
2324 case "$finalize_perm_rpath " in
2326 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
2330 # Substitute the hardcoded libdirs into the rpath.
2331 if test -n "$hardcode_libdir_separator" &&
2332 test -n "$hardcode_libdirs"; then
2333 libdir
="$hardcode_libdirs"
2334 eval rpath
=\" $hardcode_libdir_flag_spec\"
2336 finalize_rpath
="$rpath"
2338 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2339 if test "X$output_objdir" = "X$output"; then
2340 output_objdir
="$objdir"
2342 output_objdir
="$output_objdir/$objdir"
2345 # Create the binary in the object directory, then wrap it.
2346 if test ! -d $output_objdir; then
2347 $show "$mkdir $output_objdir"
2348 $run $mkdir $output_objdir
2350 if test $status -ne 0 && test ! -d $output_objdir; then
2355 if test -n "$libobjs" && test "$build_old_libs" = yes; then
2356 # Transform all the library objects into standard objects.
2357 compile_command
=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2358 finalize_command
=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2362 if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then
2363 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2364 dlsyms
="${outputname}S.c"
2366 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2370 if test -n "$dlsyms"; then
2374 # Discover the nlist of each of the dlfiles.
2375 nlist
="$output_objdir/${outputname}.nm"
2377 $show "$rm $nlist ${nlist}S ${nlist}T"
2378 $run $rm "$nlist" "${nlist}S" "${nlist}T"
2380 # Parse the name list into a source file.
2381 $show "creating $output_objdir/$dlsyms"
2383 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2384 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2385 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2391 /* Prevent the only kind of declaration conflicts we can make. */
2392 #define lt_preloaded_symbols some_other_symbol
2394 /* External symbol declarations for the compiler. */\
2397 if test "$dlself" = yes; then
2398 $show "generating symbol list for \`$output'"
2400 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2402 # Add our own program objects to the symbol list.
2403 progfiles
=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2404 for arg
in $progfiles; do
2405 $show "extracting global C symbols from \`$arg'"
2406 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2409 if test -n "$exclude_expsyms"; then
2410 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2411 $run eval '$mv "$nlist"T "$nlist"'
2414 if test -n "$export_symbols_regex"; then
2415 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2416 $run eval '$mv "$nlist"T "$nlist"'
2419 # Prepare the list of exported symbols
2420 if test -z "$export_symbols"; then
2421 export_symbols
="$output_objdir/$output.exp"
2422 $run $rm $export_symbols
2423 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2425 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2426 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2427 $run eval 'mv "$nlist"T "$nlist"'
2431 for arg
in $dlprefiles; do
2432 $show "extracting global C symbols from \`$arg'"
2433 name
=`echo "$arg" | sed -e 's%^.*/%%'`
2434 $run eval 'echo ": $name " >> "$nlist"'
2435 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2438 if test -z "$run"; then
2439 # Make sure we have at least an empty file.
2440 test -f "$nlist" || : > "$nlist"
2442 if test -n "$exclude_expsyms"; then
2443 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2444 $mv "$nlist"T
"$nlist"
2447 # Try sorting and uniquifying the output.
2448 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S
; then
2451 grep -v "^: " < "$nlist" > "$nlist"S
2454 if test -f "$nlist"S
; then
2455 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2457 echo '/* NONE */' >> "$output_objdir/$dlsyms"
2460 $echo >> "$output_objdir/$dlsyms" "\
2462 #undef lt_preloaded_symbols
2464 #if defined (__STDC__) && __STDC__
2465 # define lt_ptr_t void *
2467 # define lt_ptr_t char *
2471 /* The mapping between symbol names and symbols. */
2476 lt_preloaded_symbols[] =
2480 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2481 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2482 < "$nlist" >> "$output_objdir/$dlsyms"
2484 $echo >> "$output_objdir/$dlsyms" "\
2488 /* This works around a problem in FreeBSD linker */
2489 #ifdef FREEBSD_WORKAROUND
2490 static const void *lt_preloaded_setup() {
2491 return lt_preloaded_symbols;
2501 pic_flag_for_symtable
=
2503 # compiling the symbol table file with pic_flag works around
2504 # a FreeBSD bug that causes programs to crash when -lm is
2505 # linked before any other PIC object. But we must not use
2506 # pic_flag when linking with -static. The problem exists in
2507 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2508 *-*-freebsd2*|*-*-freebsd3.0
*)
2509 case "$compile_command " in
2511 *) pic_flag_for_symtable
=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2515 # Now compile the dynamic symbol file.
2516 $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2517 $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2519 # Clean up the generated files.
2520 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2521 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2523 # Transform the symbol file into the correct name.
2524 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2525 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2528 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2533 # We keep going just in case the user didn't refer to
2534 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2535 # really was required.
2537 # Nullify the symbol file.
2538 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2539 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2542 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2543 # Replace the output file specification.
2544 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2545 link_command
="$compile_command$compile_rpath"
2547 # We have no uninstalled library dependencies, so finalize right now.
2548 $show "$link_command"
2549 $run eval "$link_command"
2552 # Delete the generated files.
2553 if test -n "$dlsyms"; then
2554 $show "$rm $output_objdir/${outputname}S.${objext}"
2555 $run $rm "$output_objdir/${outputname}S.${objext}"
2561 if test -n "$shlibpath_var"; then
2562 # We should set the shlibpath_var
2564 for dir
in $temp_rpath; do
2566 [\\/]* | [A
-Za-z]:[\\/]*)
2571 # Relative path: add a thisdir entry.
2572 rpath
="$rpath\$thisdir/$dir:"
2579 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2580 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2582 if test -n "$finalize_shlibpath"; then
2583 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2588 if test -n "$runpath_var"; then
2589 if test -n "$perm_rpath"; then
2590 # We should set the runpath_var.
2592 for dir
in $perm_rpath; do
2595 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
2597 if test -n "$finalize_perm_rpath"; then
2598 # We should set the runpath_var.
2600 for dir
in $finalize_perm_rpath; do
2603 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
2607 if test "$hardcode_action" = relink
; then
2608 # Fast installation is not supported
2609 link_command
="$compile_var$compile_command$compile_rpath"
2610 relink_command
="$finalize_var$finalize_command$finalize_rpath"
2612 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2613 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2615 if test "$fast_install" != no
; then
2616 link_command
="$finalize_var$compile_command$finalize_rpath"
2617 if test "$fast_install" = yes; then
2618 relink_command
=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2620 # fast_install is set to needless
2624 link_command
="$compile_var$compile_command$compile_rpath"
2625 relink_command
="$finalize_var$finalize_command$finalize_rpath"
2629 # Replace the output file specification.
2630 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2632 # Delete the old output files.
2633 $run $rm $output $output_objdir/$outputname $output_objdir/lt
-$outputname
2635 $show "$link_command"
2636 $run eval "$link_command" || exit $?
2638 # Now create the wrapper script.
2639 $show "creating $output"
2641 # Quote the relink command for shipping.
2642 if test -n "$relink_command"; then
2643 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2646 # Quote $echo for shipping.
2647 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2649 [\\/]* | [A
-Za-z]:[\\/]*) qecho
="$SHELL $0 --fallback-echo";;
2650 *) qecho
="$SHELL `pwd`/$0 --fallback-echo";;
2652 qecho
=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2654 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2657 # Only actually do things if our run command is non-null.
2658 if test -z "$run"; then
2659 # win32 will think the script is a binary if it has
2660 # a .exe suffix, so we strip it off here.
2662 *.exe
) output
=`echo $output|sed 's,.exe$,,'` ;;
2665 trap "$rm $output; exit 1" 1 2 15
2670 # $output - temporary wrapper script for $objdir/$outputname
2671 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2673 # The $output program cannot be directly executed until all the libtool
2674 # libraries that it depends on are installed.
2676 # This wrapper script should never be moved out of the build directory.
2677 # If it is, it will not operate correctly.
2679 # Sed substitution that helps us do robust quoting. It backslashifies
2680 # metacharacters that are still active within double-quoted strings.
2681 Xsed='sed -e 1s/^X//'
2682 sed_quote_subst='$sed_quote_subst'
2684 # The HP-UX ksh and POSIX shell print the target directory to stdout
2686 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
2688 relink_command=\"$relink_command\"
2690 # This environment variable determines our operation mode.
2691 if test \"\$libtool_install_magic\" = \"$magic\"; then
2692 # install mode needs the following variable:
2693 link_against_libtool_libs='$link_against_libtool_libs'
2695 # When we are sourced in execute mode, \$file and \$echo are already set.
2696 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2699 # Make sure echo works.
2700 if test \"X\$1\" = X--no-reexec; then
2701 # Discard the --no-reexec flag, and continue.
2703 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2704 # Yippee, \$echo works!
2707 # Restart under the correct shell, and then maybe \$echo will work.
2708 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2714 # Find the directory that this script lives in.
2715 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2716 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2718 # Follow symbolic links until we get to the real thisdir.
2719 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2720 while test -n \"\$file\"; do
2721 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2723 # If there was a directory component, then change thisdir.
2724 if test \"x\$destdir\" != \"x\$file\"; then
2725 case \"\$destdir\" in
2726 [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2727 *) thisdir=\"\$thisdir/\$destdir\" ;;
2731 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2732 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2735 # Try to get the absolute directory name.
2736 absdir=\`cd \"\$thisdir\" && pwd\`
2737 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2740 if test "$fast_install" = yes; then
2742 program=lt-'$outputname'
2743 progdir=\"\$thisdir/$objdir\"
2745 if test ! -f \"\$progdir/\$program\" || \\
2746 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2747 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2749 file=\"\$\$-\$program\"
2751 if test ! -d \"\$progdir\"; then
2752 $mkdir \"\$progdir\"
2754 $rm \"\$progdir/\$file\"
2759 # relink executable if necessary
2760 if test -n \"\$relink_command\"; then
2761 if (cd \"\$thisdir\" && eval \$relink_command); then :
2763 $rm \"\$progdir/\$file\"
2768 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2769 { $rm \"\$progdir/\$program\";
2770 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2771 $rm \"\$progdir/\$file\"
2775 program='$outputname'
2776 progdir=\"\$thisdir/$objdir\"
2782 if test -f \"\$progdir/\$program\"; then"
2784 # Export our shlibpath_var if we have one.
2785 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2787 # Add our own library path to $shlibpath_var
2788 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2790 # Some systems cannot cope with colon-terminated $shlibpath_var
2791 # The second colon is a workaround for a bug in BeOS R4 sed
2792 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2794 export $shlibpath_var
2798 # fixup the dll searchpath if we need to.
2799 if test -n "$dllsearchpath"; then
2801 # Add the dll search path components to the executable PATH
2802 PATH=$dllsearchpath:\$PATH
2807 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2808 # Run the actual program with our arguments.
2811 *-*-cygwin* | *-*-mingw | *-*-os2*)
2812 # win32 systems need to use the prog path for dll
2815 exec \$progdir\\\\\$program \${1+\"\$@\"}
2820 # Export the path to the program.
2821 PATH=\"\$progdir:\$PATH\"
2824 exec \$program \${1+\"\$@\"}
2829 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2833 # The program doesn't exist.
2834 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2835 \$echo \"This script is just a wrapper for \$program.\" 1>&2
2836 echo \"See the $PACKAGE documentation for more information.\" 1>&2
2847 # See if we need to build an old-fashioned archive.
2848 for oldlib
in $oldlibs; do
2850 if test "$build_libtool_libs" = convenience
; then
2851 oldobjs
="$libobjs_save"
2852 addlibs
="$convenience"
2853 build_libtool_libs
=no
2855 if test "$build_libtool_libs" = module
; then
2856 oldobjs
="$libobjs_save"
2857 build_libtool_libs
=no
2859 oldobjs
="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2861 addlibs
="$old_convenience"
2864 if test -n "$addlibs"; then
2865 gentop
="$output_objdir/${outputname}x"
2866 $show "${rm}r $gentop"
2867 $run ${rm}r
"$gentop"
2868 $show "mkdir $gentop"
2869 $run mkdir "$gentop"
2871 if test $status -ne 0 && test ! -d "$gentop"; then
2874 generated
="$generated $gentop"
2876 # Add in members from convenience archives.
2877 for xlib
in $addlibs; do
2878 # Extract the objects.
2880 [\\/]* | [A
-Za-z]:[\\/]*) xabs
="$xlib" ;;
2881 *) xabs
=`pwd`"/$xlib" ;;
2883 xlib
=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2884 xdir
="$gentop/$xlib"
2886 $show "${rm}r $xdir"
2891 if test $status -ne 0 && test ! -d "$xdir"; then
2894 $show "(cd $xdir && $AR x $xabs)"
2895 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2897 oldobjs
="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
2901 # Do each command in the archive commands.
2902 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
2903 eval cmds
=\"$old_archive_from_new_cmds\"
2905 # Ensure that we have .o objects in place incase we decided
2906 # not to build a shared library, and have fallen back to building
2907 # static libs even though --disable-static was passed!
2908 for oldobj
in $oldobjs; do
2909 if test ! -f $oldobj; then
2910 obj
=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
2911 $show "${LN_S} $obj $oldobj"
2912 $run ${LN_S} $obj $oldobj || exit $?
2916 eval cmds
=\"$old_archive_cmds\"
2918 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
2919 for cmd
in $cmds; do
2922 $run eval "$cmd" || exit $?
2927 if test -n "$generated"; then
2928 $show "${rm}r$generated"
2929 $run ${rm}r
$generated
2932 # Now create the libtool archive.
2936 test "$build_old_libs" = yes && old_library
="$libname.$libext"
2937 $show "creating $output"
2939 if test -n "$xrpath"; then
2941 for libdir
in $xrpath; do
2942 temp_xrpath
="$temp_xrpath -R$libdir"
2944 dependency_libs
="$temp_xrpath $dependency_libs"
2947 # Only create the output if not a dry run.
2948 if test -z "$run"; then
2949 for installed
in no
yes; do
2950 if test "$installed" = yes; then
2951 if test -z "$install_libdir"; then
2954 output
="$output_objdir/$outputname"i
2958 # $outputname - a libtool library file
2959 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2961 # Please DO NOT delete this file!
2962 # It is necessary for linking the library.
2964 # The name that we can dlopen(3).
2967 # Names of this library.
2968 library_names='$library_names'
2970 # The name of the static archive.
2971 old_library='$old_library'
2973 # Libraries that this one depends upon.
2974 dependency_libs='$dependency_libs'
2976 # Version information for $libname.
2981 # Is this an already installed library?
2982 installed=$installed
2984 # Directory that this library needs to be installed in:
2985 libdir='$install_libdir'\
2990 # Do a symbolic link so that the libtool archive can be found in
2991 # LD_LIBRARY_PATH before the program is installed.
2992 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
2993 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
2999 # libtool install mode
3001 modename
="$modename: install"
3003 # There may be an optional sh(1) argument at the beginning of
3004 # install_prog (especially on Windows NT).
3005 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin
/sh
; then
3006 # Aesthetically quote it.
3007 arg
=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3009 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3013 install_prog
="$arg "
3021 # The real first argument should be the name of the installation program.
3022 # Aesthetically quote it.
3023 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3025 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3029 install_prog
="$install_prog$arg"
3031 # We need to accept at least all the BSD install flags.
3041 if test -n "$dest"; then
3042 files
="$files $dest"
3060 # If the previous option needed an argument, then skip it.
3061 if test -n "$prev"; then
3070 # Aesthetically quote the argument.
3071 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3073 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3077 install_prog
="$install_prog $arg"
3080 if test -z "$install_prog"; then
3081 $echo "$modename: you must specify an install program" 1>&2
3086 if test -n "$prev"; then
3087 $echo "$modename: the \`$prev' option requires an argument" 1>&2
3092 if test -z "$files"; then
3093 if test -z "$dest"; then
3094 $echo "$modename: no file or destination specified" 1>&2
3096 $echo "$modename: you must specify a destination" 1>&2
3102 # Strip any trailing slash from the destination.
3103 dest
=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3105 # Check to see that the destination is a directory.
3106 test -d "$dest" && isdir
=yes
3107 if test "$isdir" = yes; then
3111 destdir
=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3112 test "X$destdir" = "X$dest" && destdir
=.
3113 destname
=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3115 # Not a directory, so check to see that there is only one file specified.
3117 if test $# -gt 2; then
3118 $echo "$modename: \`$dest' is not a directory" 1>&2
3124 [\\/]* | [A
-Za-z]:[\\/]*) ;;
3126 for file in $files; do
3130 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3139 # This variable tells wrapper scripts just to set variables rather
3140 # than running their programs.
3141 libtool_install_magic
="$magic"
3146 for file in $files; do
3148 # Do each installation.
3151 # Do the static libraries later.
3152 staticlibs
="$staticlibs $file"
3156 # Check to see that this really is a libtool archive.
3157 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
3159 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3166 # If there is no directory component, then add one.
3168 */* | *\\*) .
$file ;;
3172 # Add the libdir to current_libdirs if it is the destination.
3173 if test "X$destdir" = "X$libdir"; then
3174 case "$current_libdirs " in
3176 *) current_libdirs
="$current_libdirs $libdir" ;;
3179 # Note the libdir as a future libdir.
3180 case "$future_libdirs " in
3182 *) future_libdirs
="$future_libdirs $libdir" ;;
3186 dir
="`$echo "X
$file" | $Xsed -e 's%/[^/]*$%%'`/"
3187 test "X$dir" = "X$file/" && dir
=
3190 # See the names of the shared library.
3191 set dummy
$library_names
3192 if test -n "$2"; then
3197 # Install the shared library and build the symlinks.
3198 $show "$install_prog $dir/$realname $destdir/$realname"
3199 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3200 test "X$dlname" = "X$realname" && dlname
=
3202 if test $# -gt 0; then
3203 # Delete the old symlinks, and create new ones.
3206 test "X$dlname" = "X$linkname" && dlname
=
3207 if test "$linkname" != "$realname"; then
3208 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3209 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3214 if test -n "$dlname"; then
3215 # Install the dynamically-loadable library.
3216 $show "$install_prog $dir/$dlname $destdir/$dlname"
3217 $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
3220 # Do each command in the postinstall commands.
3221 lib
="$destdir/$realname"
3222 eval cmds
=\"$postinstall_cmds\"
3223 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3224 for cmd
in $cmds; do
3227 $run eval "$cmd" || exit $?
3232 # Install the pseudo-library for information purposes.
3233 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3234 instname
="$dir/$name"i
3235 $show "$install_prog $instname $destdir/$name"
3236 $run eval "$install_prog $instname $destdir/$name" || exit $?
3238 # Maybe install the static library, too.
3239 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
3243 # Install (i.e. copy) a libtool object.
3245 # Figure out destination file name, if it wasn't already specified.
3246 if test -n "$destname"; then
3247 destfile
="$destdir/$destname"
3249 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3250 destfile
="$destdir/$destfile"
3253 # Deduce the name of the destination old-style object file.
3256 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3259 staticdest
="$destfile"
3263 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3269 # Install the libtool object if requested.
3270 if test -n "$destfile"; then
3271 $show "$install_prog $file $destfile"
3272 $run eval "$install_prog $file $destfile" || exit $?
3275 # Install the old object if enabled.
3276 if test "$build_old_libs" = yes; then
3277 # Deduce the name of the old-style object file.
3278 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
3280 $show "$install_prog $staticobj $staticdest"
3281 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3287 # Figure out destination file name, if it wasn't already specified.
3288 if test -n "$destname"; then
3289 destfile
="$destdir/$destname"
3291 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3292 destfile
="$destdir/$destfile"
3295 # Do a test to see if this is really a libtool program.
3296 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
3297 link_against_libtool_libs
=
3300 # If there is no directory component, then add one.
3302 */* | *\\*) .
$file ;;
3306 # Check the variables that should have been set.
3307 if test -z "$link_against_libtool_libs"; then
3308 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3313 for lib
in $link_against_libtool_libs; do
3314 # Check to see that each library is installed.
3316 if test -f "$lib"; then
3317 # If there is no directory component, then add one.
3319 */* | *\\*) .
$lib ;;
3323 libfile
="$libdir/`$echo "X
$lib" | $Xsed -e 's%^.*/%%g'`"
3324 if test -n "$libdir" && test ! -f "$libfile"; then
3325 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3331 if test "$fast_install" = no
&& test -n "$relink_command"; then
3332 if test "$finalize" = yes && test -z "$run"; then
3334 test -n "$TMPDIR" && tmpdir
="$TMPDIR"
3335 tmpdir
="$tmpdir/libtool-$$"
3336 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3338 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3341 outputname
="$tmpdir/$file"
3342 # Replace the output file specification.
3343 relink_command
=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3345 $show "$relink_command"
3346 if $run eval "$relink_command"; then :
3348 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3354 $echo "$modename: warning: cannot relink \`$file'" 1>&2
3357 # Install the binary that we compiled earlier.
3358 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3362 $show "$install_prog$stripme $file $destfile"
3363 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3364 test -n "$outputname" && ${rm}r
"$tmpdir"
3369 for file in $staticlibs; do
3370 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3372 # Set up the ranlib parameters.
3373 oldlib
="$destdir/$name"
3375 $show "$install_prog $file $oldlib"
3376 $run eval "$install_prog \$file \$oldlib" || exit $?
3378 # Do each command in the postinstall commands.
3379 eval cmds
=\"$old_postinstall_cmds\"
3380 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3381 for cmd
in $cmds; do
3384 $run eval "$cmd" || exit $?
3389 if test -n "$future_libdirs"; then
3390 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3393 if test -n "$current_libdirs"; then
3394 # Maybe just do a dry run.
3395 test -n "$run" && current_libdirs
=" -n$current_libdirs"
3396 exec $SHELL $0 --finish$current_libdirs
3403 # libtool finish mode
3405 modename
="$modename: finish"
3409 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3412 libdirs
="$libdirs $dir"
3415 for libdir
in $libdirs; do
3416 if test -n "$finish_cmds"; then
3417 # Do each command in the finish commands.
3418 eval cmds
=\"$finish_cmds\"
3419 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3420 for cmd
in $cmds; do
3423 $run eval "$cmd" || admincmds
="$admincmds
3428 if test -n "$finish_eval"; then
3429 # Do the single finish_eval.
3430 eval cmds
=\"$finish_eval\"
3431 $run eval "$cmds" || admincmds
="$admincmds
3437 # Exit here if they wanted silent mode.
3438 test "$show" = : && exit 0
3440 echo "----------------------------------------------------------------------"
3441 echo "Libraries have been installed in:"
3442 for libdir
in $libdirs; do
3446 echo "If you ever happen to want to link against installed libraries"
3447 echo "in a given directory, LIBDIR, you must either use libtool, and"
3448 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3449 echo "flag during linking and do at least one of the following:"
3450 if test -n "$shlibpath_var"; then
3451 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3452 echo " during execution"
3454 if test -n "$runpath_var"; then
3455 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3456 echo " during linking"
3458 if test -n "$hardcode_libdir_flag_spec"; then
3460 eval flag
=\"$hardcode_libdir_flag_spec\"
3462 echo " - use the \`$flag' linker flag"
3464 if test -n "$admincmds"; then
3465 echo " - have your system administrator run these commands:$admincmds"
3467 if test -f /etc
/ld.so.conf
; then
3468 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3471 echo "See any operating system documentation about shared libraries for"
3472 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3473 echo "----------------------------------------------------------------------"
3477 # libtool execute mode
3479 modename
="$modename: execute"
3481 # The first argument is the command name.
3483 if test -z "$cmd"; then
3484 $echo "$modename: you must specify a COMMAND" 1>&2
3489 # Handle -dlopen flags immediately.
3490 for file in $execute_dlfiles; do
3491 if test ! -f "$file"; then
3492 $echo "$modename: \`$file' is not a file" 1>&2
3500 # Check to see that this really is a libtool archive.
3501 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
3503 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3508 # Read the libtool library.
3512 # If there is no directory component, then add one.
3514 */* | *\\*) .
$file ;;
3518 # Skip this library if it cannot be dlopened.
3519 if test -z "$dlname"; then
3520 # Warn if it was a shared library.
3521 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3525 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3526 test "X$dir" = "X$file" && dir
=.
3528 if test -f "$dir/$objdir/$dlname"; then
3531 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3537 # Just add the directory containing the .lo file.
3538 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3539 test "X$dir" = "X$file" && dir
=.
3543 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3548 # Get the absolute pathname.
3549 absdir
=`cd "$dir" && pwd`
3550 test -n "$absdir" && dir
="$absdir"
3552 # Now add the directory to shlibpath_var.
3553 if eval "test -z \"\$$shlibpath_var\""; then
3554 eval "$shlibpath_var=\"\$dir\""
3556 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3560 # This variable tells wrapper scripts just to set shlibpath_var
3561 # rather than running their programs.
3562 libtool_execute_magic
="$magic"
3564 # Check if any of the arguments is a wrapper script.
3571 # Do a test to see if this is really a libtool program.
3572 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
3573 # If there is no directory component, then add one.
3575 */* | *\\*) .
$file ;;
3579 # Transform arg to wrapped name.
3580 file="$progdir/$program"
3584 # Quote arguments (to preserve shell metacharacters).
3585 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3586 args
="$args \"$file\""
3589 if test -z "$run"; then
3590 # Export the shlibpath_var.
3591 eval "export $shlibpath_var"
3593 # Restore saved enviroment variables
3594 if test "${save_LC_ALL+set}" = set; then
3595 LC_ALL
="$save_LC_ALL"; export LC_ALL
3597 if test "${save_LANG+set}" = set; then
3598 LANG
="$save_LANG"; export LANG
3601 # Now actually exec the command.
3602 eval "exec \$cmd$args"
3604 $echo "$modename: cannot exec \$cmd$args"
3607 # Display what would be done.
3608 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3609 $echo "export $shlibpath_var"
3615 # libtool uninstall mode
3617 modename
="$modename: uninstall"
3624 -*) rm="$rm $arg" ;;
3625 *) files
="$files $arg" ;;
3629 if test -z "$rm"; then
3630 $echo "$modename: you must specify an RM program" 1>&2
3635 for file in $files; do
3636 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3637 test "X$dir" = "X$file" && dir
=.
3638 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3644 # Possibly a libtool archive, so verify it.
3645 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
3648 # Delete the libtool libraries and symlinks.
3649 for n
in $library_names; do
3650 rmfiles
="$rmfiles $dir/$n"
3651 test "X$n" = "X$dlname" && dlname
=
3653 test -n "$dlname" && rmfiles
="$rmfiles $dir/$dlname"
3654 test -n "$old_library" && rmfiles
="$rmfiles $dir/$old_library"
3656 $show "$rm $rmfiles"
3659 if test -n "$library_names"; then
3660 # Do each command in the postuninstall commands.
3661 eval cmds
=\"$postuninstall_cmds\"
3662 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3663 for cmd
in $cmds; do
3671 if test -n "$old_library"; then
3672 # Do each command in the old_postuninstall commands.
3673 eval cmds
=\"$old_postuninstall_cmds\"
3674 IFS
="${IFS= }"; save_ifs
="$IFS"; IFS
='~'
3675 for cmd
in $cmds; do
3683 # FIXME: should reinstall the best remaining shared library.
3688 if test "$build_old_libs" = yes; then
3689 oldobj
=`$echo "X$name" | $Xsed -e "$lo2o"`
3690 rmfiles
="$rmfiles $dir/$oldobj"
3692 $show "$rm $rmfiles"
3697 $show "$rm $rmfiles"
3706 $echo "$modename: you must specify a MODE" 1>&2
3707 $echo "$generic_help" 1>&2
3712 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3713 $echo "$generic_help" 1>&2
3715 fi # test -z "$show_help"
3717 # We need to display help for each of the modes.
3720 "Usage: $modename [OPTION]... [MODE-ARG]...
3722 Provide generalized library-building support services.
3724 --config show all configuration variables
3725 --debug enable verbose shell tracing
3726 -n, --dry-run display commands without modifying any files
3727 --features display basic configuration information and exit
3728 --finish same as \`--mode=finish'
3729 --help display this help message and exit
3730 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3731 --quiet same as \`--silent'
3732 --silent don't print informational messages
3733 --version print version information
3735 MODE must be one of the following:
3737 compile compile a source file into a libtool object
3738 execute automatically set library path, then run a program
3739 finish complete the installation of libtool libraries
3740 install install libraries or executables
3741 link create a library or an executable
3742 uninstall remove libraries from an installed directory
3744 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3745 a more detailed description of MODE."
3751 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3753 Compile a source file into a libtool library object.
3755 This mode accepts the following additional options:
3757 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
3758 -static always build a \`.o' file suitable for static linking
3760 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3761 from the given SOURCEFILE.
3763 The output file name is determined by removing the directory component from
3764 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3765 library object suffix, \`.lo'."
3770 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3772 Automatically set library path, then run a program.
3774 This mode accepts the following additional options:
3776 -dlopen FILE add the directory containing FILE to the library path
3778 This mode sets the library path environment variable according to \`-dlopen'
3781 If any of the ARGS are libtool executable wrappers, then they are translated
3782 into their corresponding uninstalled binary, and any of their required library
3783 directories are added to the library path.
3785 Then, COMMAND is executed, with ARGS as arguments."
3790 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3792 Complete the installation of libtool libraries.
3794 Each LIBDIR is a directory that contains libtool libraries.
3796 The commands that this mode executes may require superuser privileges. Use
3797 the \`--dry-run' option if you just want to see what would be executed."
3802 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3804 Install executables or libraries.
3806 INSTALL-COMMAND is the installation command. The first component should be
3807 either the \`install' or \`cp' program.
3809 The rest of the components are interpreted as arguments to that command (only
3810 BSD-compatible install options are recognized)."
3815 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3817 Link object files or libraries together to form another library, or to
3818 create an executable program.
3820 LINK-COMMAND is a command using the C compiler that you would use to create
3821 a program from several object files.
3823 The following components of LINK-COMMAND are treated specially:
3825 -all-static do not do any dynamic linking at all
3826 -avoid-version do not add a version suffix if possible
3827 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
3828 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
3829 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3830 -export-symbols SYMFILE
3831 try to export only the symbols listed in SYMFILE
3832 -export-symbols-regex REGEX
3833 try to export only the symbols matching REGEX
3834 -LLIBDIR search LIBDIR for required installed libraries
3835 -lNAME OUTPUT-FILE requires the installed library libNAME
3836 -module build a library that can dlopened
3837 -no-undefined declare that a library does not refer to external symbols
3838 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
3839 -release RELEASE specify package release information
3840 -rpath LIBDIR the created library will eventually be installed in LIBDIR
3841 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
3842 -static do not do any dynamic linking of libtool libraries
3843 -version-info CURRENT[:REVISION[:AGE]]
3844 specify library version info [each variable defaults to 0]
3846 All other options (arguments beginning with \`-') are ignored.
3848 Every other argument is treated as a filename. Files ending in \`.la' are
3849 treated as uninstalled libtool libraries, other files are standard or library
3852 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3853 only library objects (\`.lo' files) may be specified, and \`-rpath' is
3854 required, except when creating a convenience library.
3856 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3857 using \`ar' and \`ranlib', or on Windows using \`lib'.
3859 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3860 is created, otherwise an executable program is created."
3865 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3867 Remove libraries from an installation directory.
3869 RM is the name of the program to use to delete files associated with each FILE
3870 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
3873 If FILE is a libtool library, all the files associated with it are deleted.
3874 Otherwise, only FILE itself is deleted using RM."
3878 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3885 $echo "Try \`$modename --help' for more information about other modes."