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.206 2000/05/27 11:12:27)"
61 help="Try \`$progname --help' for more information."
62 magic="%%%MAGIC variable%%%"
67 # Sed substitution that helps us do robust quoting. It backslashifies
68 # metacharacters that are still active within double-quoted strings.
70 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 NL2SP='tr \015\012 \040\040'
75 # Only set LANG and LC_ALL to C if already set.
76 # These must not be set unconditionally because not all systems understand
77 # e.g. LANG=C (notably SCO).
78 # We save the old values to restore during execute mode.
79 if test "${LC_ALL+set}" = set; then
80 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
82 if test "${LANG+set}" = set; then
83 save_LANG="$LANG"; LANG=C; export LANG
86 if test "$LTCONFIG_VERSION" != "$VERSION"; then
87 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
88 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
92 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
93 echo "$modename: not configured to build any kind of library" 1>&2
94 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
107 lo2o="s/\\.lo\$/.${objext}/"
108 o2lo="s/\\.${objext}\$/.lo/"
110 # Parse our command line options once, thoroughly.
117 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
121 # If the previous option needs an argument, assign it.
122 if test -n "$prev"; then
125 eval "$prev=\"\$$prev \$arg\""
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 $srcfile $pic_flag -DPIC"
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 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
525 if test "X$xdir" = "X$obj"; then
530 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
531 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
532 # Now arrange that obj and lo_libobj become the same file
533 $show "(cd $xdir && $LN_S $baseobj $libobj)"
534 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
543 # Allow error messages only from the first compilation.
544 suppress_output=' >/dev/null 2>&1'
547 # Only build a position-dependent object if we build old libraries.
548 if test "$build_old_libs" = yes; then
549 command="$base_compile $srcfile"
550 if test "$compiler_c_o" = yes; then
551 command="$command -o $obj"
555 # Suppress compiler output if we already did a PIC compilation.
556 command="$command$suppress_output"
557 $run $rm "$output_obj"
559 if $run eval "$command"; then :
565 if test "$need_locks" = warn &&
566 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
568 *** ERROR, $lockfile contains:
569 `cat $lockfile 2>/dev/null`
571 but it should contain:
574 This indicates that another process is trying to use the same
575 temporary object file, and libtool could not work around it because
576 your compiler does not support \`-c' and \`-o' together. If you
577 repeat this compilation, it may succeed, by chance, but you had better
578 avoid parallel builds (make -j) in this platform, or get a better
585 # Just move the object if needed
586 if test x"$output_obj" != x"$obj"; then
587 $show "$mv $output_obj $obj"
588 if $run $mv $output_obj $obj; then :
596 # Create an invalid libtool object if no PIC, so that we do not
597 # accidentally link it into a program.
598 if test "$build_libtool_libs" != yes; then
599 $show "echo timestamp > $libobj"
600 $run eval "echo timestamp > \$libobj" || exit $?
602 # Move the .lo from within objdir
603 $show "$mv $libobj $lo_libobj"
604 if $run $mv $libobj $lo_libobj; then :
613 # Unlock the critical section if it was locked
614 if test "$need_locks" != no; then
623 modename="$modename: link"
625 *-*-cygwin* | *-*-mingw* | *-*-os2*)
626 # It is impossible to link a dll without this setting, and
627 # we shouldn't force the makefile maintainer to figure out
628 # which system we are compiling for in order to pass an extra
629 # flag for every libtool invokation.
632 # FIXME: Unfortunately, there are problems with the above when trying
633 # to make a dll which has undefined symbols, in which case not
634 # even a static library is built. For now, we need to specify
635 # -no-undefined on the libtool link line when we can be certain
636 # that all symbols are satisfied, otherwise we get a static library.
639 # This is a source program that is used to create dlls on Windows
640 # Don't remove nor modify the starting and closing comments
641 # /* ltdll.c starts here */
642 # #define WIN32_LEAN_AND_MEAN
643 # #include <windows.h>
644 # #undef WIN32_LEAN_AND_MEAN
648 # # ifdef __CYGWIN32__
649 # # define __CYGWIN__ __CYGWIN32__
656 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
662 # #include <cygwin/cygwin_dll.h>
663 # DECLARE_CYGWIN_DLL( DllMain );
665 # HINSTANCE __hDllInstance_base;
668 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
670 # __hDllInstance_base = hInst;
673 # /* ltdll.c ends here */
674 # This is a source program that is used to create import libraries
675 # on Windows for dlls which lack them. Don't remove nor modify the
676 # starting and closing comments
677 # /* impgen.c starts here */
678 # /* Copyright (C) 1999 Free Software Foundation, Inc.
680 # This file is part of GNU libtool.
682 # This program is free software; you can redistribute it and/or modify
683 # it under the terms of the GNU General Public License as published by
684 # the Free Software Foundation; either version 2 of the License, or
685 # (at your option) any later version.
687 # This program is distributed in the hope that it will be useful,
688 # but WITHOUT ANY WARRANTY; without even the implied warranty of
689 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
690 # GNU General Public License for more details.
692 # You should have received a copy of the GNU General Public License
693 # along with this program; if not, write to the Free Software
694 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
697 # #include <stdio.h> /* for printf() */
698 # #include <unistd.h> /* for open(), lseek(), read() */
699 # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
700 # #include <string.h> /* for strdup() */
702 # static unsigned int
703 # pe_get16 (fd, offset)
707 # unsigned char b[2];
708 # lseek (fd, offset, SEEK_SET);
710 # return b[0] + (b[1]<<8);
713 # static unsigned int
714 # pe_get32 (fd, offset)
718 # unsigned char b[4];
719 # lseek (fd, offset, SEEK_SET);
721 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
724 # static unsigned int
728 # unsigned char *b = ptr;
729 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
738 # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
739 # unsigned long export_rva, export_size, nsections, secptr, expptr;
740 # unsigned long name_rvas, nexp;
741 # unsigned char *expdata, *erva;
742 # char *filename, *dll_name;
744 # filename = argv[1];
746 # dll = open(filename, O_RDONLY|O_BINARY);
750 # dll_name = filename;
752 # for (i=0; filename[i]; i++)
753 # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
754 # dll_name = filename + i +1;
756 # pe_header_offset = pe_get32 (dll, 0x3c);
757 # opthdr_ofs = pe_header_offset + 4 + 20;
758 # num_entries = pe_get32 (dll, opthdr_ofs + 92);
760 # if (num_entries < 1) /* no exports */
763 # export_rva = pe_get32 (dll, opthdr_ofs + 96);
764 # export_size = pe_get32 (dll, opthdr_ofs + 100);
765 # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
766 # secptr = (pe_header_offset + 4 + 20 +
767 # pe_get16 (dll, pe_header_offset + 4 + 16));
770 # for (i = 0; i < nsections; i++)
773 # unsigned long secptr1 = secptr + 40 * i;
774 # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
775 # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
776 # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
777 # lseek(dll, secptr1, SEEK_SET);
778 # read(dll, sname, 8);
779 # if (vaddr <= export_rva && vaddr+vsize > export_rva)
781 # expptr = fptr + (export_rva - vaddr);
782 # if (export_rva + export_size > vaddr + vsize)
783 # export_size = vsize - (export_rva - vaddr);
788 # expdata = (unsigned char*)malloc(export_size);
789 # lseek (dll, expptr, SEEK_SET);
790 # read (dll, expdata, export_size);
791 # erva = expdata - export_rva;
793 # nexp = pe_as32 (expdata+24);
794 # name_rvas = pe_as32 (expdata+32);
796 # printf ("EXPORTS\n");
797 # for (i = 0; i<nexp; i++)
799 # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
800 # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
805 # /* impgen.c ends here */
811 compile_command="$nonopt"
812 finalize_command="$nonopt"
823 if test -n "$shlibpath_var"; then
824 # get the directories listed in $shlibpath_var
825 eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
829 # now prepend the system-specific ones
830 eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
831 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
839 export_symbols_regex=
842 link_against_libtool_libs=
846 prefer_static_libs=no
858 # We need to know -static, to get the right output filenames.
862 -all-static | -static)
863 if test "X$arg" = "X-all-static"; then
864 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
865 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
867 if test -n "$link_static_flag"; then
868 dlopen_self=$dlopen_self_static
871 if test -z "$pic_flag" && test -n "$link_static_flag"; then
872 dlopen_self=$dlopen_self_static
875 build_libtool_libs=no
877 prefer_static_libs=yes
883 # See if our shared archives depend on static archives.
884 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
886 # Go through the arguments, transforming them on the way.
887 while test $# -gt 0; do
891 # If the previous option needs an argument, assign it.
892 if test -n "$prev"; then
895 compile_command="$compile_command @OUTPUT@"
896 finalize_command="$finalize_command @OUTPUT@"
902 if test "$preload" = no; then
903 # Add the symbol object into the linking commands.
904 compile_command="$compile_command @SYMFILE@"
905 finalize_command="$finalize_command @SYMFILE@"
909 *.la | *.lo) ;; # We handle these cases below.
911 if test "$dlself" = no; then
919 if test "$prev" = dlprefiles; then
921 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
931 if test "$prev" = dlfiles; then
932 dlfiles="$dlfiles $arg"
934 dlprefiles="$dlprefiles $arg"
941 export_symbols="$arg"
942 if test ! -f "$arg"; then
943 $echo "$modename: symbol file \`$arg' does not exist"
950 export_symbols_regex="$arg"
960 # We need an absolute path.
962 [\\/]* | [A-Za-z]:[\\/]*) ;;
964 $echo "$modename: only absolute run-paths are allowed" 1>&2
968 if test "$prev" = rpath; then
971 *) rpath="$rpath $arg" ;;
976 *) xrpath="$xrpath $arg" ;;
983 eval "$prev=\"\$arg\""
994 if test -n "$link_static_flag"; then
995 compile_command="$compile_command $link_static_flag"
996 finalize_command="$finalize_command $link_static_flag"
1002 # FIXME: remove this flag sometime in the future.
1003 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1027 -export-symbols | -export-symbols-regex)
1028 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1029 $echo "$modename: not more than one -exported-symbols argument allowed"
1032 if test "X$arg" = "X-export-symbols"; then
1041 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1042 # We need an absolute path.
1044 [\\/]* | [A-Za-z]:[\\/]*) ;;
1046 absdir=`cd "$dir" && pwd`
1047 if test -z "$absdir"; then
1048 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1049 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1055 case " $deplibs " in
1057 *) deplibs="$deplibs $arg";;
1059 case " $lib_search_path " in
1061 *) lib_search_path="$lib_search_path $dir";;
1064 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1065 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1066 case ":$dllsearchpath:" in
1067 ::) dllsearchpath="$dllsearchdir";;
1068 *":$dllsearchdir:"*) ;;
1069 *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1076 if test "$arg" = "-lc"; then
1078 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1079 # These systems don't actually have c library (as such)
1082 *-*-rhapsody* | *-*-darwin1.[012])
1083 # Rhapsody C library is in the System framework
1084 deplibs="$deplibs -framework System"
1088 elif test "$arg" = "-lm"; then
1090 *-*-cygwin* | *-*-beos*)
1091 # These systems don't actually have math library (as such)
1094 *-*-rhapsody* | *-*-darwin1.[012])
1095 # Rhapsody math library is in the System framework
1096 deplibs="$deplibs -framework System"
1101 deplibs="$deplibs $arg"
1132 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1133 # We need an absolute path.
1135 [\\/]* | [A-Za-z]:[\\/]*) ;;
1137 $echo "$modename: only absolute run-paths are allowed" 1>&2
1143 *) xrpath="$xrpath $dir" ;;
1149 # If we have no pic_flag, then this is the same as -all-static.
1150 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1151 compile_command="$compile_command $link_static_flag"
1152 finalize_command="$finalize_command $link_static_flag"
1167 # Some other compiler flag.
1169 # Unknown arguments in both finalize_command and compile_command need
1170 # to be aesthetically quoted because they are evaled later.
1171 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1173 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1179 *.o | *.obj | *.a | *.lib)
1180 # A standard object.
1186 if test "$prev" = dlfiles; then
1187 dlfiles="$dlfiles $arg"
1188 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1192 # If libtool objects are unsupported, then we need to preload.
1197 if test "$prev" = dlprefiles; then
1198 # Preload the old-style object.
1199 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1202 libobjs="$libobjs $arg"
1206 # A libtool-controlled library.
1213 # Check to see that this really is a libtool archive.
1214 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1216 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1220 # If the library was installed with an old release of libtool,
1221 # it will not redefine variable installed.
1225 # If there is no directory component, then add one.
1227 */* | *\\*) . $arg ;;
1231 # Get the name of the library we link against.
1233 for l in $old_library $library_names; do
1237 if test -z "$linklib"; then
1238 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1242 # Find the relevant object directory and library name.
1243 name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1245 if test "X$installed" = Xyes; then
1248 dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1249 if test "X$dir" = "X$arg"; then
1256 if test -n "$dependency_libs"; then
1257 # Extract -R and -L from dependency_libs
1259 for deplib in $dependency_libs; do
1261 -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1262 case " $rpath $xrpath " in
1263 *" $temp_xrpath "*) ;;
1264 *) xrpath="$xrpath $temp_xrpath";;
1266 -L*) case "$compile_command $temp_deplibs " in
1268 *) temp_deplibs="$temp_deplibs $deplib";;
1270 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1271 case " $lib_search_path " in
1273 *) lib_search_path="$lib_search_path $temp_dir";;
1276 *) temp_deplibs="$temp_deplibs $deplib";;
1279 dependency_libs="$temp_deplibs"
1282 if test -z "$libdir"; then
1283 # It is a libtool convenience library, so add in its objects.
1284 convenience="$convenience $dir/$old_library"
1285 old_convenience="$old_convenience $dir/$old_library"
1286 deplibs="$deplibs$dependency_libs"
1287 compile_command="$compile_command $dir/$old_library$dependency_libs"
1288 finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1292 # This library was specified with -dlopen.
1293 if test "$prev" = dlfiles; then
1294 dlfiles="$dlfiles $arg"
1295 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1296 # If there is no dlname, no dlopen support or we're linking statically,
1297 # we need to preload.
1300 # We should not create a dependency on this library, but we
1301 # may need any libraries it requires.
1302 compile_command="$compile_command$dependency_libs"
1303 finalize_command="$finalize_command$dependency_libs"
1309 # The library was specified with -dlpreopen.
1310 if test "$prev" = dlprefiles; then
1311 # Prefer using a static library (so that no silly _DYNAMIC symbols
1312 # are required to link).
1313 if test -n "$old_library"; then
1314 dlprefiles="$dlprefiles $dir/$old_library"
1316 dlprefiles="$dlprefiles $dir/$linklib"
1321 if test -n "$library_names" &&
1322 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1323 link_against_libtool_libs="$link_against_libtool_libs $arg"
1324 if test -n "$shlibpath_var"; then
1325 # Make sure the rpath contains only unique directories.
1326 case "$temp_rpath " in
1328 *) temp_rpath="$temp_rpath $dir" ;;
1332 # We need an absolute path.
1334 [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1336 absdir=`cd "$dir" && pwd`
1337 if test -z "$absdir"; then
1338 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1339 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1345 # This is the magic to use -rpath.
1346 # Skip directories that are in the system default run-time
1347 # search path, unless they have been requested with -R.
1348 case " $sys_lib_dlsearch_path " in
1351 case "$compile_rpath " in
1353 *) compile_rpath="$compile_rpath $absdir"
1358 case " $sys_lib_dlsearch_path " in
1361 case "$finalize_rpath " in
1363 *) finalize_rpath="$finalize_rpath $libdir"
1369 case "$hardcode_action" in
1370 immediate | unsupported)
1371 if test "$hardcode_direct" = no; then
1372 compile_command="$compile_command $dir/$linklib"
1373 deplibs="$deplibs $dir/$linklib"
1375 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1376 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1377 if test -n "$dllsearchpath"; then
1378 dllsearchpath="$dllsearchpath:$dllsearchdir"
1380 dllsearchpath="$dllsearchdir"
1384 elif test "$hardcode_minus_L" = no; then
1387 compile_shlibpath="$compile_shlibpath$dir:"
1390 case "$compile_command " in
1392 *) compile_command="$compile_command -L$dir";;
1394 compile_command="$compile_command -l$name"
1395 deplibs="$deplibs -L$dir -l$name"
1396 elif test "$hardcode_shlibpath_var" = no; then
1397 case ":$compile_shlibpath:" in
1399 *) compile_shlibpath="$compile_shlibpath$dir:";;
1401 compile_command="$compile_command -l$name"
1402 deplibs="$deplibs -l$name"
1409 if test "$hardcode_direct" = yes; then
1410 compile_command="$compile_command $absdir/$linklib"
1411 deplibs="$deplibs $absdir/$linklib"
1412 elif test "$hardcode_minus_L" = yes; then
1413 case "$compile_command " in
1415 *) compile_command="$compile_command -L$absdir";;
1417 compile_command="$compile_command -l$name"
1418 deplibs="$deplibs -L$absdir -l$name"
1419 elif test "$hardcode_shlibpath_var" = yes; then
1420 case ":$compile_shlibpath:" in
1422 *) compile_shlibpath="$compile_shlibpath$absdir:";;
1424 compile_command="$compile_command -l$name"
1425 deplibs="$deplibs -l$name"
1436 if test "$lib_linked" != yes; then
1437 $echo "$modename: configuration error: unsupported hardcode properties"
1441 # Finalize command for both is simple: just hardcode it.
1442 if test "$hardcode_direct" = yes; then
1443 finalize_command="$finalize_command $libdir/$linklib"
1444 elif test "$hardcode_minus_L" = yes; then
1445 case "$finalize_command " in
1447 *) finalize_command="$finalize_command -L$libdir";;
1449 finalize_command="$finalize_command -l$name"
1450 elif test "$hardcode_shlibpath_var" = yes; then
1451 case ":$finalize_shlibpath:" in
1453 *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1455 finalize_command="$finalize_command -l$name"
1457 # We cannot seem to hardcode it, guess we'll fake it.
1458 case "$finalize_command " in
1460 *) finalize_command="$finalize_command -L$libdir";;
1462 finalize_command="$finalize_command -l$name"
1465 # Transform directly to old archives if we don't build new libraries.
1466 if test -n "$pic_flag" && test -z "$old_library"; then
1467 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1471 # Here we assume that one of hardcode_direct or hardcode_minus_L
1472 # is not unsupported. This is valid on all known static and
1474 if test "$hardcode_direct" != unsupported; then
1475 test -n "$old_library" && linklib="$old_library"
1476 compile_command="$compile_command $dir/$linklib"
1477 finalize_command="$finalize_command $dir/$linklib"
1479 case "$compile_command " in
1481 *) compile_command="$compile_command -L$dir";;
1483 compile_command="$compile_command -l$name"
1484 case "$finalize_command " in
1486 *) finalize_command="$finalize_command -L$dir";;
1488 finalize_command="$finalize_command -l$name"
1492 # Add in any libraries that this one depends upon.
1493 compile_command="$compile_command$dependency_libs"
1494 finalize_command="$finalize_command$dependency_libs"
1498 # Some other compiler argument.
1500 # Unknown arguments in both finalize_command and compile_command need
1501 # to be aesthetically quoted because they are evaled later.
1502 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1504 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1511 # Now actually substitute the argument into the commands.
1512 if test -n "$arg"; then
1513 compile_command="$compile_command $arg"
1514 finalize_command="$finalize_command $arg"
1518 if test -n "$prev"; then
1519 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1524 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1525 eval arg=\"$export_dynamic_flag_spec\"
1526 compile_command="$compile_command $arg"
1527 finalize_command="$finalize_command $arg"
1531 # calculate the name of the file, without its directory
1532 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1533 libobjs_save="$libobjs"
1537 $echo "$modename: you must specify an output file" 1>&2
1543 if test -n "$link_against_libtool_libs"; then
1544 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1548 if test -n "$deplibs"; then
1549 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1552 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1553 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1556 if test -n "$rpath"; then
1557 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1560 if test -n "$xrpath"; then
1561 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1564 if test -n "$vinfo"; then
1565 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1568 if test -n "$release"; then
1569 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1572 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1573 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1576 # Now set the variables for building old libraries.
1577 build_libtool_libs=no
1582 # Make sure we only generate libraries of the form `libNAME.la'.
1583 case "$outputname" in
1585 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1586 eval libname=\"$libname_spec\"
1589 if test "$module" = no; then
1590 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1594 if test "$need_lib_prefix" != no; then
1595 # Add the "lib" prefix for modules if required
1596 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1597 eval libname=\"$libname_spec\"
1599 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1604 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1605 if test "X$output_objdir" = "X$output"; then
1606 output_objdir="$objdir"
1608 output_objdir="$output_objdir/$objdir"
1611 if test -n "$objs"; then
1612 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1616 # How the heck are we supposed to write a wrapper for a shared library?
1617 if test -n "$link_against_libtool_libs"; then
1618 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1622 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1623 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1627 if test $# -gt 2; then
1628 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1633 if test -z "$rpath"; then
1634 if test "$build_libtool_libs" = yes; then
1635 # Building a libtool convenience library.
1637 oldlibs="$output_objdir/$libname.$libext $oldlibs"
1638 build_libtool_libs=convenience
1641 dependency_libs="$deplibs"
1643 if test -n "$vinfo"; then
1644 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1647 if test -n "$release"; then
1648 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1652 # Parse the version information argument.
1653 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1654 set dummy $vinfo 0 0 0
1657 if test -n "$8"; then
1658 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1667 # Check that each of the things are valid numbers.
1669 0 | [1-9] | [1-9][0-9]*) ;;
1671 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1672 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1678 0 | [1-9] | [1-9][0-9]*) ;;
1680 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1681 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1687 0 | [1-9] | [1-9][0-9]*) ;;
1689 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1690 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1695 if test $age -gt $current; then
1696 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1697 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1701 # Calculate the version variables.
1705 case "$version_type" in
1709 major=`expr $current - $age + 1`
1710 versuffix="$major.$revision"
1711 verstring="sgi$major.$revision"
1713 # Add in all the interfaces that we are compatible with.
1715 while test $loop != 0; do
1716 iface=`expr $revision - $loop`
1717 loop=`expr $loop - 1`
1718 verstring="sgi$major.$iface:$verstring"
1723 major=.`expr $current - $age`
1724 versuffix="$major.$age.$revision"
1728 major=`expr $current - $age`
1729 versuffix=".$current.$age.$revision"
1730 verstring="$current.$age.$revision"
1732 # Add in all the interfaces that we are compatible with.
1734 while test $loop != 0; do
1735 iface=`expr $current - $loop`
1736 loop=`expr $loop - 1`
1737 verstring="$verstring:${iface}.0"
1740 # Make executables depend on our current version.
1741 verstring="$verstring:${current}.0"
1746 versuffix=".$current.$revision"
1751 versuffix=".$current.$revision";
1756 versuffix=".$current";
1760 # Like Linux, but with '-' rather than '.', since we only
1761 # want one extension on Windows 95.
1762 major=`expr $current - $age`
1763 versuffix="-$major-$age-$revision"
1767 # Like Linux, but with the current version available in
1768 # verstring for coding it into the library header
1769 major=.`expr $current - $age`
1770 versuffix="$major.$age.$revision"
1771 # Darwin ld doesn't like 0 for these options...
1772 minor_current=`expr $current + 1`
1773 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
1777 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1778 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1783 # Clear the version info if we defaulted, and they specified a release.
1784 if test -z "$vinfo" && test -n "$release"; then
1786 case "$version_type" in
1788 # we can't check for "0.0" in archive_cmds due to quoting
1789 # problems, so we reset it completely
1796 if test "$need_version" = no; then
1803 # Remove version info from name if versioning should be avoided
1804 if test "$avoid_version" = yes && test "$need_version" = no; then
1810 # Check to see if the archive will have undefined symbols.
1811 if test "$allow_undefined" = yes; then
1812 if test "$allow_undefined_flag" = unsupported; then
1813 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1814 build_libtool_libs=no
1818 # Don't allow undefined symbols.
1819 allow_undefined_flag="$no_undefined_flag"
1822 dependency_libs="$deplibs"
1824 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1825 # these systems don't actually have a c library (as such)!
1827 *-*-rhapsody* | *-*-darwin1.[012])
1828 # Rhapsody C library is in the System framework
1829 deplibs="$deplibs -framework System"
1832 # Add libc to deplibs on all other systems.
1833 deplibs="$deplibs -lc"
1838 # Create the output directory, or remove our outputs if we need to.
1839 if test -d $output_objdir; then
1840 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1841 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1843 $show "$mkdir $output_objdir"
1844 $run $mkdir $output_objdir
1846 if test $status -ne 0 && test ! -d $output_objdir; then
1851 # Now set the variables for building old libraries.
1852 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1853 oldlibs="$oldlibs $output_objdir/$libname.$libext"
1855 # Transform .lo files to .o files.
1856 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1859 if test "$build_libtool_libs" = yes; then
1860 # Transform deplibs into only deplibs that can be linked in shared.
1862 libname_save=$libname
1863 release_save=$release
1864 versuffix_save=$versuffix
1866 # I'm not sure if I'm treating the release correctly. I think
1867 # release should show up in the -l (ie -lgmp5) so we don't want to
1868 # add it in twice. Is that correct?
1874 case "$deplibs_check_method" in
1876 # Don't check for shared/static. Everything works.
1877 # This might be a little naive. We might want to check
1878 # whether the library exists or not. But this is on
1879 # osf3 & osf4 and I'm not really sure... Just
1880 # implementing what was already the behaviour.
1884 # This code stresses the "libraries are programs" paradigm to its
1885 # limits. Maybe even breaks it. We compile a program, linking it
1886 # against the deplibs as a proxy for the library. Then we can check
1887 # whether they linked in statically or dynamically with ldd.
1889 cat > conftest.c <<EOF
1890 int main() { return 0; }
1893 $CC -o conftest conftest.c $deplibs
1894 if test $? -eq 0 ; then
1895 ldd_output=`ldd conftest`
1896 for i in $deplibs; do
1897 name="`expr $i : '-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 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1902 set dummy $deplib_matches
1904 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1905 newdeplibs="$newdeplibs $i"
1909 echo "*** Warning: This library needs some functionality provided by $i."
1910 echo "*** I have the capability to make that library automatically link in when"
1911 echo "*** you link to this library. But I can only do this if you have a"
1912 echo "*** shared version of the library, which you do not appear to have."
1915 newdeplibs="$newdeplibs $i"
1919 # Error occured in the first compile. Let's try to salvage the situation:
1920 # Compile a seperate program for each library.
1921 for i in $deplibs; do
1922 name="`expr $i : '-l\(.*\)'`"
1923 # If $name is empty we are operating on a -L argument.
1924 if test "$name" != "" ; then
1926 $CC -o conftest conftest.c $i
1928 if test $? -eq 0 ; then
1929 ldd_output=`ldd conftest`
1930 libname=`eval \\$echo \"$libname_spec\"`
1931 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1932 set dummy $deplib_matches
1934 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1935 newdeplibs="$newdeplibs $i"
1939 echo "*** Warning: This library needs some functionality provided by $i."
1940 echo "*** I have the capability to make that library automatically link in when"
1941 echo "*** you link to this library. But I can only do this if you have a"
1942 echo "*** shared version of the library, which you do not appear to have."
1947 echo "*** Warning! Library $i is needed by this library but I was not able to"
1948 echo "*** make it link in! You will probably need to install it or some"
1949 echo "*** library that it depends on before this library will be fully"
1950 echo "*** functional. Installing it before continuing would be even better."
1953 newdeplibs="$newdeplibs $i"
1959 set dummy $deplibs_check_method
1960 file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1961 for a_deplib in $deplibs; do
1962 name="`expr $a_deplib : '-l\(.*\)'`"
1963 # If $name is empty we are operating on a -L argument.
1964 if test "$name" != "" ; then
1965 libname=`eval \\$echo \"$libname_spec\"`
1966 for i in $lib_search_path; do
1967 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1968 for potent_lib in $potential_libs; do
1969 # Follow soft links.
1970 if ls -lLd "$potent_lib" 2>/dev/null \
1971 | grep " -> " >/dev/null; then
1974 # The statement above tries to avoid entering an
1975 # endless loop below, in case of cyclic links.
1976 # We might still enter an endless loop, since a link
1977 # loop can be closed while we follow links,
1979 potlib="$potent_lib"
1980 while test -h "$potlib" 2>/dev/null; do
1981 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1982 case "$potliblink" in
1983 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1984 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1987 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1989 | egrep "$file_magic_regex" > /dev/null; then
1990 newdeplibs="$newdeplibs $a_deplib"
1996 if test -n "$a_deplib" ; then
1999 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2000 echo "*** I have the capability to make that library automatically link in when"
2001 echo "*** you link to this library. But I can only do this if you have a"
2002 echo "*** shared version of the library, which you do not appear to have."
2005 # Add a -L argument.
2006 newdeplibs="$newdeplibs $a_deplib"
2008 done # Gone through all deplibs.
2012 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2013 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2014 grep . >/dev/null; then
2016 if test "X$deplibs_check_method" = "Xnone"; then
2017 echo "*** Warning: inter-library dependencies are not supported in this platform."
2019 echo "*** Warning: inter-library dependencies are not known to be supported."
2021 echo "*** All declared inter-library dependencies are being dropped."
2026 versuffix=$versuffix_save
2028 release=$release_save
2029 libname=$libname_save
2032 if test "$droppeddeps" = yes; then
2033 if test "$module" = yes; then
2035 echo "*** Warning: libtool could not satisfy all declared inter-library"
2036 echo "*** dependencies of module $libname. Therefore, libtool will create"
2037 echo "*** a static module, that should work as long as the dlopening"
2038 echo "*** application is linked with the -dlopen flag."
2039 if test -z "$global_symbol_pipe"; then
2041 echo "*** However, this would only work if libtool was able to extract symbol"
2042 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2043 echo "*** not find such a program. So, this module is probably useless."
2044 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2046 if test "$build_old_libs" = no; then
2047 oldlibs="$output_objdir/$libname.$libext"
2048 build_libtool_libs=module
2051 build_libtool_libs=no
2054 echo "*** The inter-library dependencies that have been dropped here will be"
2055 echo "*** automatically added whenever a program is linked with this library"
2056 echo "*** or is declared to -dlopen it."
2059 # Done checking deplibs!
2063 # All the library-specific variables (install_libdir is set above).
2068 # Test again, we may have decided not to build it any more
2069 if test "$build_libtool_libs" = yes; then
2070 # Get the real and link names of the library.
2071 eval library_names=\"$library_names_spec\"
2072 set dummy $library_names
2076 if test -n "$soname_spec"; then
2077 eval soname=\"$soname_spec\"
2082 lib="$output_objdir/$realname"
2085 linknames="$linknames $link"
2088 # Ensure that we have .o objects for linkers which dislike .lo
2089 # (e.g. aix) in case we are running --disable-static
2090 for obj in $libobjs; do
2091 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2092 if test "X$xdir" = "X$obj"; then
2097 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2098 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2099 if test ! -f $xdir/$oldobj; then
2100 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2101 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2105 # Use standard objects if they are pic
2106 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2108 # Prepare the list of exported symbols
2109 if test -z "$export_symbols"; then
2110 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2111 $show "generating symbol list for \`$libname.la'"
2112 export_symbols="$output_objdir/$libname.exp"
2113 $run $rm $export_symbols
2114 eval cmds=\"$export_symbols_cmds\"
2115 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2116 for cmd in $cmds; do
2119 $run eval "$cmd" || exit $?
2122 if test -n "$export_symbols_regex"; then
2123 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2124 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2125 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2126 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2131 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2132 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2135 if test -n "$convenience"; then
2136 if test -n "$whole_archive_flag_spec"; then
2137 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2139 gentop="$output_objdir/${outputname}x"
2140 $show "${rm}r $gentop"
2141 $run ${rm}r "$gentop"
2142 $show "mkdir $gentop"
2143 $run mkdir "$gentop"
2145 if test $status -ne 0 && test ! -d "$gentop"; then
2148 generated="$generated $gentop"
2150 for xlib in $convenience; do
2151 # Extract the objects.
2153 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2154 *) xabs=`pwd`"/$xlib" ;;
2156 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2157 xdir="$gentop/$xlib"
2159 $show "${rm}r $xdir"
2164 if test $status -ne 0 && test ! -d "$xdir"; then
2167 $show "(cd $xdir && $AR x $xabs)"
2168 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2170 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2175 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2176 eval flag=\"$thread_safe_flag_spec\"
2177 linkopts="$linkopts $flag"
2180 # Do each of the archive commands.
2181 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2182 eval cmds=\"$archive_expsym_cmds\"
2184 eval cmds=\"$archive_cmds\"
2186 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2187 for cmd in $cmds; do
2190 $run eval "$cmd" || exit $?
2194 # Create links to the real library.
2195 for linkname in $linknames; do
2196 if test "$realname" != "$linkname"; then
2197 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2198 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2202 # If -module or -export-dynamic was specified, set the dlname.
2203 if test "$module" = yes || test "$export_dynamic" = yes; then
2204 # On all known operating systems, these are identical.
2211 if test -n "$link_against_libtool_libs"; then
2212 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2216 if test -n "$deplibs"; then
2217 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2220 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2221 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2224 if test -n "$rpath"; then
2225 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2228 if test -n "$xrpath"; then
2229 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2232 if test -n "$vinfo"; then
2233 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2236 if test -n "$release"; then
2237 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2242 if test -n "$objs"; then
2243 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2247 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2255 # Delete the old objects.
2256 $run $rm $obj $libobj
2258 # Objects from convenience libraries. This assumes
2259 # single-version convenience libraries. Whenever we create
2260 # different ones for PIC/non-PIC, this we'll have to duplicate
2264 # reload_cmds runs $LD directly, so let us get rid of
2265 # -Wl from whole_archive_flag_spec
2268 if test -n "$convenience"; then
2269 if test -n "$whole_archive_flag_spec"; then
2270 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2272 gentop="$output_objdir/${obj}x"
2273 $show "${rm}r $gentop"
2274 $run ${rm}r "$gentop"
2275 $show "mkdir $gentop"
2276 $run mkdir "$gentop"
2278 if test $status -ne 0 && test ! -d "$gentop"; then
2281 generated="$generated $gentop"
2283 for xlib in $convenience; do
2284 # Extract the objects.
2286 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2287 *) xabs=`pwd`"/$xlib" ;;
2289 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2290 xdir="$gentop/$xlib"
2292 $show "${rm}r $xdir"
2297 if test $status -ne 0 && test ! -d "$xdir"; then
2300 $show "(cd $xdir && $AR x $xabs)"
2301 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2303 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2308 # Create the old-style object.
2309 reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2312 eval cmds=\"$reload_cmds\"
2313 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2314 for cmd in $cmds; do
2317 $run eval "$cmd" || exit $?
2321 # Exit if we aren't doing a library object file.
2322 if test -z "$libobj"; then
2323 if test -n "$gentop"; then
2324 $show "${rm}r $gentop"
2331 if test "$build_libtool_libs" != yes; then
2332 if test -n "$gentop"; then
2333 $show "${rm}r $gentop"
2337 # Create an invalid libtool object if no PIC, so that we don't
2338 # accidentally link it into a program.
2339 $show "echo timestamp > $libobj"
2340 $run eval "echo timestamp > $libobj" || exit $?
2344 if test -n "$pic_flag"; then
2345 # Only do commands if we really have different PIC objects.
2346 reload_objs="$libobjs $reload_conv_objs"
2348 eval cmds=\"$reload_cmds\"
2349 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2350 for cmd in $cmds; do
2353 $run eval "$cmd" || exit $?
2357 # Just create a symlink.
2360 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
2361 if test "X$xdir" = "X$libobj"; then
2366 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
2367 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2368 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
2369 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
2372 if test -n "$gentop"; then
2373 $show "${rm}r $gentop"
2380 # Anything else should be a program.
2382 if test -n "$vinfo"; then
2383 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2386 if test -n "$release"; then
2387 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2390 if test "$preload" = yes; then
2391 if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2392 test "$dlopen_self_static" = unknown; then
2393 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2397 if test -n "$rpath$xrpath"; then
2398 # If the user specified any rpath flags, then add them.
2399 for libdir in $rpath $xrpath; do
2400 # This is the magic to use -rpath.
2401 case "$compile_rpath " in
2403 *) compile_rpath="$compile_rpath $libdir" ;;
2405 case "$finalize_rpath " in
2407 *) finalize_rpath="$finalize_rpath $libdir" ;;
2412 # Now hardcode the library paths
2415 for libdir in $compile_rpath $finalize_rpath; do
2416 if test -n "$hardcode_libdir_flag_spec"; then
2417 if test -n "$hardcode_libdir_separator"; then
2418 if test -z "$hardcode_libdirs"; then
2419 hardcode_libdirs="$libdir"
2421 # Just accumulate the unique libdirs.
2422 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2423 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2426 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2431 eval flag=\"$hardcode_libdir_flag_spec\"
2432 rpath="$rpath $flag"
2434 elif test -n "$runpath_var"; then
2435 case "$perm_rpath " in
2437 *) perm_rpath="$perm_rpath $libdir" ;;
2441 # Substitute the hardcoded libdirs into the rpath.
2442 if test -n "$hardcode_libdir_separator" &&
2443 test -n "$hardcode_libdirs"; then
2444 libdir="$hardcode_libdirs"
2445 eval rpath=\" $hardcode_libdir_flag_spec\"
2447 compile_rpath="$rpath"
2451 for libdir in $finalize_rpath; do
2452 if test -n "$hardcode_libdir_flag_spec"; then
2453 if test -n "$hardcode_libdir_separator"; then
2454 if test -z "$hardcode_libdirs"; then
2455 hardcode_libdirs="$libdir"
2457 # Just accumulate the unique libdirs.
2458 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2459 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2462 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2467 eval flag=\"$hardcode_libdir_flag_spec\"
2468 rpath="$rpath $flag"
2470 elif test -n "$runpath_var"; then
2471 case "$finalize_perm_rpath " in
2473 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2477 # Substitute the hardcoded libdirs into the rpath.
2478 if test -n "$hardcode_libdir_separator" &&
2479 test -n "$hardcode_libdirs"; then
2480 libdir="$hardcode_libdirs"
2481 eval rpath=\" $hardcode_libdir_flag_spec\"
2483 finalize_rpath="$rpath"
2485 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2486 if test "X$output_objdir" = "X$output"; then
2487 output_objdir="$objdir"
2489 output_objdir="$output_objdir/$objdir"
2492 # Create the binary in the object directory, then wrap it.
2493 if test ! -d $output_objdir; then
2494 $show "$mkdir $output_objdir"
2495 $run $mkdir $output_objdir
2497 if test $status -ne 0 && test ! -d $output_objdir; then
2502 if test -n "$libobjs" && test "$build_old_libs" = yes; then
2503 # Transform all the library objects into standard objects.
2504 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2505 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2509 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2510 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2511 dlsyms="${outputname}S.c"
2513 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2517 if test -n "$dlsyms"; then
2521 # Discover the nlist of each of the dlfiles.
2522 nlist="$output_objdir/${outputname}.nm"
2524 $show "$rm $nlist ${nlist}S ${nlist}T"
2525 $run $rm "$nlist" "${nlist}S" "${nlist}T"
2527 # Parse the name list into a source file.
2528 $show "creating $output_objdir/$dlsyms"
2530 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2531 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2532 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2538 /* Prevent the only kind of declaration conflicts we can make. */
2539 #define lt_preloaded_symbols some_other_symbol
2541 /* External symbol declarations for the compiler. */\
2544 if test "$dlself" = yes; then
2545 $show "generating symbol list for \`$output'"
2547 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2549 # Add our own program objects to the symbol list.
2550 progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2551 for arg in $progfiles; do
2552 $show "extracting global C symbols from \`$arg'"
2553 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2556 if test -n "$exclude_expsyms"; then
2557 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2558 $run eval '$mv "$nlist"T "$nlist"'
2561 if test -n "$export_symbols_regex"; then
2562 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2563 $run eval '$mv "$nlist"T "$nlist"'
2566 # Prepare the list of exported symbols
2567 if test -z "$export_symbols"; then
2568 export_symbols="$output_objdir/$output.exp"
2569 $run $rm $export_symbols
2570 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2572 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2573 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2574 $run eval 'mv "$nlist"T "$nlist"'
2578 for arg in $dlprefiles; do
2579 $show "extracting global C symbols from \`$arg'"
2580 name=`echo "$arg" | sed -e 's%^.*/%%'`
2581 $run eval 'echo ": $name " >> "$nlist"'
2582 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2585 if test -z "$run"; then
2586 # Make sure we have at least an empty file.
2587 test -f "$nlist" || : > "$nlist"
2589 if test -n "$exclude_expsyms"; then
2590 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2591 $mv "$nlist"T "$nlist"
2594 # Try sorting and uniquifying the output.
2595 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2598 grep -v "^: " < "$nlist" > "$nlist"S
2601 if test -f "$nlist"S; then
2602 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2604 echo '/* NONE */' >> "$output_objdir/$dlsyms"
2607 $echo >> "$output_objdir/$dlsyms" "\
2609 #undef lt_preloaded_symbols
2611 #if defined (__STDC__) && __STDC__
2612 # define lt_ptr_t void *
2614 # define lt_ptr_t char *
2618 /* The mapping between symbol names and symbols. */
2623 lt_preloaded_symbols[] =
2627 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2628 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2629 < "$nlist" >> "$output_objdir/$dlsyms"
2631 $echo >> "$output_objdir/$dlsyms" "\
2635 /* This works around a problem in FreeBSD linker */
2636 #ifdef FREEBSD_WORKAROUND
2637 static const void *lt_preloaded_setup() {
2638 return lt_preloaded_symbols;
2648 pic_flag_for_symtable=
2650 # compiling the symbol table file with pic_flag works around
2651 # a FreeBSD bug that causes programs to crash when -lm is
2652 # linked before any other PIC object. But we must not use
2653 # pic_flag when linking with -static. The problem exists in
2654 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2655 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2656 case "$compile_command " in
2658 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2661 case "$compile_command " in
2663 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
2667 # Now compile the dynamic symbol file.
2668 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2669 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2671 # Clean up the generated files.
2672 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2673 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2675 # Transform the symbol file into the correct name.
2676 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2677 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2680 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2685 # We keep going just in case the user didn't refer to
2686 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2687 # really was required.
2689 # Nullify the symbol file.
2690 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2691 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2694 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2695 # Replace the output file specification.
2696 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2697 link_command="$compile_command$compile_rpath"
2699 # We have no uninstalled library dependencies, so finalize right now.
2700 $show "$link_command"
2701 $run eval "$link_command"
2704 # Delete the generated files.
2705 if test -n "$dlsyms"; then
2706 $show "$rm $output_objdir/${outputname}S.${objext}"
2707 $run $rm "$output_objdir/${outputname}S.${objext}"
2713 if test -n "$shlibpath_var"; then
2714 # We should set the shlibpath_var
2716 for dir in $temp_rpath; do
2718 [\\/]* | [A-Za-z]:[\\/]*)
2723 # Relative path: add a thisdir entry.
2724 rpath="$rpath\$thisdir/$dir:"
2731 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2732 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2734 if test -n "$finalize_shlibpath"; then
2735 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2740 if test -n "$runpath_var"; then
2741 if test -n "$perm_rpath"; then
2742 # We should set the runpath_var.
2744 for dir in $perm_rpath; do
2747 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2749 if test -n "$finalize_perm_rpath"; then
2750 # We should set the runpath_var.
2752 for dir in $finalize_perm_rpath; do
2755 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2759 if test "$hardcode_action" = relink; then
2760 # Fast installation is not supported
2761 link_command="$compile_var$compile_command$compile_rpath"
2762 relink_command="$finalize_var$finalize_command$finalize_rpath"
2764 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2765 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2767 if test "$fast_install" != no; then
2768 link_command="$finalize_var$compile_command$finalize_rpath"
2769 if test "$fast_install" = yes; then
2770 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2772 # fast_install is set to needless
2776 link_command="$compile_var$compile_command$compile_rpath"
2777 relink_command="$finalize_var$finalize_command$finalize_rpath"
2781 # Replace the output file specification.
2782 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2784 # Delete the old output files.
2785 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2787 $show "$link_command"
2788 $run eval "$link_command" || exit $?
2790 # Now create the wrapper script.
2791 $show "creating $output"
2793 # Quote the relink command for shipping.
2794 if test -n "$relink_command"; then
2795 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2798 # Quote $echo for shipping.
2799 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2801 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2802 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2804 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2806 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2809 # Only actually do things if our run command is non-null.
2810 if test -z "$run"; then
2811 # win32 will think the script is a binary if it has
2812 # a .exe suffix, so we strip it off here.
2814 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2817 trap "$rm $output; exit 1" 1 2 15
2822 # $output - temporary wrapper script for $objdir/$outputname
2823 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2825 # The $output program cannot be directly executed until all the libtool
2826 # libraries that it depends on are installed.
2828 # This wrapper script should never be moved out of the build directory.
2829 # If it is, it will not operate correctly.
2831 # Sed substitution that helps us do robust quoting. It backslashifies
2832 # metacharacters that are still active within double-quoted strings.
2833 Xsed='sed -e 1s/^X//'
2834 sed_quote_subst='$sed_quote_subst'
2836 # The HP-UX ksh and POSIX shell print the target directory to stdout
2838 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2840 relink_command=\"$relink_command\"
2842 # This environment variable determines our operation mode.
2843 if test \"\$libtool_install_magic\" = \"$magic\"; then
2844 # install mode needs the following variable:
2845 link_against_libtool_libs='$link_against_libtool_libs'
2847 # When we are sourced in execute mode, \$file and \$echo are already set.
2848 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2851 # Make sure echo works.
2852 if test \"X\$1\" = X--no-reexec; then
2853 # Discard the --no-reexec flag, and continue.
2855 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2856 # Yippee, \$echo works!
2859 # Restart under the correct shell, and then maybe \$echo will work.
2860 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2866 # Find the directory that this script lives in.
2867 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2868 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2870 # Follow symbolic links until we get to the real thisdir.
2871 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2872 while test -n \"\$file\"; do
2873 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2875 # If there was a directory component, then change thisdir.
2876 if test \"x\$destdir\" != \"x\$file\"; then
2877 case \"\$destdir\" in
2878 [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2879 *) thisdir=\"\$thisdir/\$destdir\" ;;
2883 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2884 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2887 # Try to get the absolute directory name.
2888 absdir=\`cd \"\$thisdir\" && pwd\`
2889 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2892 if test "$fast_install" = yes; then
2894 program=lt-'$outputname'
2895 progdir=\"\$thisdir/$objdir\"
2897 if test ! -f \"\$progdir/\$program\" || \\
2898 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2899 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2901 file=\"\$\$-\$program\"
2903 if test ! -d \"\$progdir\"; then
2904 $mkdir \"\$progdir\"
2906 $rm \"\$progdir/\$file\"
2911 # relink executable if necessary
2912 if test -n \"\$relink_command\"; then
2913 if (cd \"\$thisdir\" && eval \$relink_command); then :
2915 $rm \"\$progdir/\$file\"
2920 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2921 { $rm \"\$progdir/\$program\";
2922 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2923 $rm \"\$progdir/\$file\"
2927 program='$outputname'
2928 progdir=\"\$thisdir/$objdir\"
2934 if test -f \"\$progdir/\$program\"; then"
2936 # Export our shlibpath_var if we have one.
2937 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2939 # Add our own library path to $shlibpath_var
2940 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2942 # Some systems cannot cope with colon-terminated $shlibpath_var
2943 # The second colon is a workaround for a bug in BeOS R4 sed
2944 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2946 export $shlibpath_var
2950 # fixup the dll searchpath if we need to.
2951 if test -n "$dllsearchpath"; then
2953 # Add the dll search path components to the executable PATH
2954 PATH=$dllsearchpath:\$PATH
2959 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2960 # Run the actual program with our arguments.
2963 # win32 systems need to use the prog path for dll
2967 exec \$progdir/\$program \${1+\"\$@\"}
2971 # Backslashes separate directories on plain windows
2972 *-*-mingw | *-*-os2*)
2974 exec \$progdir\\\\\$program \${1+\"\$@\"}
2980 # Export the path to the program.
2981 PATH=\"\$progdir:\$PATH\"
2984 exec \$program \${1+\"\$@\"}
2989 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2993 # The program doesn't exist.
2994 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2995 \$echo \"This script is just a wrapper for \$program.\" 1>&2
2996 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3007 # See if we need to build an old-fashioned archive.
3008 for oldlib in $oldlibs; do
3010 if test "$build_libtool_libs" = convenience; then
3011 oldobjs="$libobjs_save"
3012 addlibs="$convenience"
3013 build_libtool_libs=no
3015 if test "$build_libtool_libs" = module; then
3016 oldobjs="$libobjs_save"
3017 build_libtool_libs=no
3019 oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3021 addlibs="$old_convenience"
3024 if test -n "$addlibs"; then
3025 gentop="$output_objdir/${outputname}x"
3026 $show "${rm}r $gentop"
3027 $run ${rm}r "$gentop"
3028 $show "mkdir $gentop"
3029 $run mkdir "$gentop"
3031 if test $status -ne 0 && test ! -d "$gentop"; then
3034 generated="$generated $gentop"
3036 # Add in members from convenience archives.
3037 for xlib in $addlibs; do
3038 # Extract the objects.
3040 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3041 *) xabs=`pwd`"/$xlib" ;;
3043 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3044 xdir="$gentop/$xlib"
3046 $show "${rm}r $xdir"
3051 if test $status -ne 0 && test ! -d "$xdir"; then
3054 $show "(cd $xdir && $AR x $xabs)"
3055 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3057 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3061 # Do each command in the archive commands.
3062 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3063 eval cmds=\"$old_archive_from_new_cmds\"
3065 # Ensure that we have .o objects in place in case we decided
3066 # not to build a shared library, and have fallen back to building
3067 # static libs even though --disable-static was passed!
3068 for oldobj in $oldobjs; do
3069 if test ! -f $oldobj; then
3070 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3071 if test "X$xdir" = "X$oldobj"; then
3076 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3077 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3078 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3079 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3083 eval cmds=\"$old_archive_cmds\"
3085 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3086 for cmd in $cmds; do
3089 $run eval "$cmd" || exit $?
3094 if test -n "$generated"; then
3095 $show "${rm}r$generated"
3096 $run ${rm}r$generated
3099 # Now create the libtool archive.
3103 test "$build_old_libs" = yes && old_library="$libname.$libext"
3104 $show "creating $output"
3106 if test -n "$xrpath"; then
3108 for libdir in $xrpath; do
3109 temp_xrpath="$temp_xrpath -R$libdir"
3111 dependency_libs="$temp_xrpath $dependency_libs"
3114 # Only create the output if not a dry run.
3115 if test -z "$run"; then
3116 for installed in no yes; do
3117 if test "$installed" = yes; then
3118 if test -z "$install_libdir"; then
3121 output="$output_objdir/$outputname"i
3125 # $outputname - a libtool library file
3126 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3128 # Please DO NOT delete this file!
3129 # It is necessary for linking the library.
3131 # The name that we can dlopen(3).
3134 # Names of this library.
3135 library_names='$library_names'
3137 # The name of the static archive.
3138 old_library='$old_library'
3140 # Libraries that this one depends upon.
3141 dependency_libs='$dependency_libs'
3143 # Version information for $libname.
3148 # Is this an already installed library?
3149 installed=$installed
3151 # Directory that this library needs to be installed in:
3152 libdir='$install_libdir'\
3157 # Do a symbolic link so that the libtool archive can be found in
3158 # LD_LIBRARY_PATH before the program is installed.
3159 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3160 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3166 # libtool install mode
3168 modename="$modename: install"
3170 # There may be an optional sh(1) argument at the beginning of
3171 # install_prog (especially on Windows NT).
3172 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3173 # Aesthetically quote it.
3174 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3176 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3180 install_prog="$arg "
3188 # The real first argument should be the name of the installation program.
3189 # Aesthetically quote it.
3190 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3192 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3196 install_prog="$install_prog$arg"
3198 # We need to accept at least all the BSD install flags.
3208 if test -n "$dest"; then
3209 files="$files $dest"
3227 # If the previous option needed an argument, then skip it.
3228 if test -n "$prev"; then
3237 # Aesthetically quote the argument.
3238 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3240 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3244 install_prog="$install_prog $arg"
3247 if test -z "$install_prog"; then
3248 $echo "$modename: you must specify an install program" 1>&2
3253 if test -n "$prev"; then
3254 $echo "$modename: the \`$prev' option requires an argument" 1>&2
3259 if test -z "$files"; then
3260 if test -z "$dest"; then
3261 $echo "$modename: no file or destination specified" 1>&2
3263 $echo "$modename: you must specify a destination" 1>&2
3269 # Strip any trailing slash from the destination.
3270 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3272 # Check to see that the destination is a directory.
3273 test -d "$dest" && isdir=yes
3274 if test "$isdir" = yes; then
3278 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3279 test "X$destdir" = "X$dest" && destdir=.
3280 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3282 # Not a directory, so check to see that there is only one file specified.
3284 if test $# -gt 2; then
3285 $echo "$modename: \`$dest' is not a directory" 1>&2
3291 [\\/]* | [A-Za-z]:[\\/]*) ;;
3293 for file in $files; do
3297 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3306 # This variable tells wrapper scripts just to set variables rather
3307 # than running their programs.
3308 libtool_install_magic="$magic"
3313 for file in $files; do
3315 # Do each installation.
3318 # Do the static libraries later.
3319 staticlibs="$staticlibs $file"
3323 # Check to see that this really is a libtool archive.
3324 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3326 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3333 # If there is no directory component, then add one.
3335 */* | *\\*) . $file ;;
3339 # Add the libdir to current_libdirs if it is the destination.
3340 if test "X$destdir" = "X$libdir"; then
3341 case "$current_libdirs " in
3343 *) current_libdirs="$current_libdirs $libdir" ;;
3346 # Note the libdir as a future libdir.
3347 case "$future_libdirs " in
3349 *) future_libdirs="$future_libdirs $libdir" ;;
3353 dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3354 test "X$dir" = "X$file/" && dir=
3357 # See the names of the shared library.
3358 set dummy $library_names
3359 if test -n "$2"; then
3364 # Install the shared library and build the symlinks.
3365 $show "$install_prog $dir/$realname $destdir/$realname"
3366 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3368 if test $# -gt 0; then
3369 # Delete the old symlinks, and create new ones.
3372 if test "$linkname" != "$realname"; then
3373 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3374 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3379 # Do each command in the postinstall commands.
3380 lib="$destdir/$realname"
3381 eval cmds=\"$postinstall_cmds\"
3382 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3383 for cmd in $cmds; do
3386 $run eval "$cmd" || exit $?
3391 # Install the pseudo-library for information purposes.
3392 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3393 instname="$dir/$name"i
3394 $show "$install_prog $instname $destdir/$name"
3395 $run eval "$install_prog $instname $destdir/$name" || exit $?
3397 # Maybe install the static library, too.
3398 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3402 # Install (i.e. copy) a libtool object.
3404 # Figure out destination file name, if it wasn't already specified.
3405 if test -n "$destname"; then
3406 destfile="$destdir/$destname"
3408 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3409 destfile="$destdir/$destfile"
3412 # Deduce the name of the destination old-style object file.
3415 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3418 staticdest="$destfile"
3422 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3428 # Install the libtool object if requested.
3429 if test -n "$destfile"; then
3430 $show "$install_prog $file $destfile"
3431 $run eval "$install_prog $file $destfile" || exit $?
3434 # Install the old object if enabled.
3435 if test "$build_old_libs" = yes; then
3436 # Deduce the name of the old-style object file.
3437 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3439 $show "$install_prog $staticobj $staticdest"
3440 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3446 # Figure out destination file name, if it wasn't already specified.
3447 if test -n "$destname"; then
3448 destfile="$destdir/$destname"
3450 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3451 destfile="$destdir/$destfile"
3454 # Do a test to see if this is really a libtool program.
3455 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3456 link_against_libtool_libs=
3459 # If there is no directory component, then add one.
3461 */* | *\\*) . $file ;;
3465 # Check the variables that should have been set.
3466 if test -z "$link_against_libtool_libs"; then
3467 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3472 for lib in $link_against_libtool_libs; do
3473 # Check to see that each library is installed.
3475 if test -f "$lib"; then
3476 # If there is no directory component, then add one.
3478 */* | *\\*) . $lib ;;
3482 libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3483 if test -n "$libdir" && test ! -f "$libfile"; then
3484 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3490 if test "$fast_install" = no && test -n "$relink_command"; then
3491 if test "$finalize" = yes && test -z "$run"; then
3493 test -n "$TMPDIR" && tmpdir="$TMPDIR"
3494 tmpdir="$tmpdir/libtool-$$"
3495 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3497 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3500 outputname="$tmpdir/$file"
3501 # Replace the output file specification.
3502 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3504 $show "$relink_command"
3505 if $run eval "$relink_command"; then :
3507 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3513 $echo "$modename: warning: cannot relink \`$file'" 1>&2
3516 # Install the binary that we compiled earlier.
3517 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3521 $show "$install_prog$stripme $file $destfile"
3522 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3523 test -n "$outputname" && ${rm}r "$tmpdir"
3528 for file in $staticlibs; do
3529 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3531 # Set up the ranlib parameters.
3532 oldlib="$destdir/$name"
3534 $show "$install_prog $file $oldlib"
3535 $run eval "$install_prog \$file \$oldlib" || exit $?
3537 # Do each command in the postinstall commands.
3538 eval cmds=\"$old_postinstall_cmds\"
3539 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3540 for cmd in $cmds; do
3543 $run eval "$cmd" || exit $?
3548 if test -n "$future_libdirs"; then
3549 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3552 if test -n "$current_libdirs"; then
3553 # Maybe just do a dry run.
3554 test -n "$run" && current_libdirs=" -n$current_libdirs"
3555 exec $SHELL $0 --finish$current_libdirs
3562 # libtool finish mode
3564 modename="$modename: finish"
3568 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3571 libdirs="$libdirs $dir"
3574 for libdir in $libdirs; do
3575 if test -n "$finish_cmds"; then
3576 # Do each command in the finish commands.
3577 eval cmds=\"$finish_cmds\"
3578 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3579 for cmd in $cmds; do
3582 $run eval "$cmd" || admincmds="$admincmds
3587 if test -n "$finish_eval"; then
3588 # Do the single finish_eval.
3589 eval cmds=\"$finish_eval\"
3590 $run eval "$cmds" || admincmds="$admincmds
3596 # Exit here if they wanted silent mode.
3597 test "$show" = : && exit 0
3599 echo "----------------------------------------------------------------------"
3600 echo "Libraries have been installed in:"
3601 for libdir in $libdirs; do
3605 echo "If you ever happen to want to link against installed libraries"
3606 echo "in a given directory, LIBDIR, you must either use libtool, and"
3607 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3608 echo "flag during linking and do at least one of the following:"
3609 if test -n "$shlibpath_var"; then
3610 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3611 echo " during execution"
3613 if test -n "$runpath_var"; then
3614 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3615 echo " during linking"
3617 if test -n "$hardcode_libdir_flag_spec"; then
3619 eval flag=\"$hardcode_libdir_flag_spec\"
3621 echo " - use the \`$flag' linker flag"
3623 if test -n "$admincmds"; then
3624 echo " - have your system administrator run these commands:$admincmds"
3626 if test -f /etc/ld.so.conf; then
3627 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3630 echo "See any operating system documentation about shared libraries for"
3631 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3632 echo "----------------------------------------------------------------------"
3636 # libtool execute mode
3638 modename="$modename: execute"
3640 # The first argument is the command name.
3642 if test -z "$cmd"; then
3643 $echo "$modename: you must specify a COMMAND" 1>&2
3648 # Handle -dlopen flags immediately.
3649 for file in $execute_dlfiles; do
3650 if test ! -f "$file"; then
3651 $echo "$modename: \`$file' is not a file" 1>&2
3659 # Check to see that this really is a libtool archive.
3660 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3662 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3667 # Read the libtool library.
3671 # If there is no directory component, then add one.
3673 */* | *\\*) . $file ;;
3677 # Skip this library if it cannot be dlopened.
3678 if test -z "$dlname"; then
3679 # Warn if it was a shared library.
3680 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3684 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3685 test "X$dir" = "X$file" && dir=.
3687 if test -f "$dir/$objdir/$dlname"; then
3690 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3696 # Just add the directory containing the .lo file.
3697 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3698 test "X$dir" = "X$file" && dir=.
3702 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3707 # Get the absolute pathname.
3708 absdir=`cd "$dir" && pwd`
3709 test -n "$absdir" && dir="$absdir"
3711 # Now add the directory to shlibpath_var.
3712 if eval "test -z \"\$$shlibpath_var\""; then
3713 eval "$shlibpath_var=\"\$dir\""
3715 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3719 # This variable tells wrapper scripts just to set shlibpath_var
3720 # rather than running their programs.
3721 libtool_execute_magic="$magic"
3723 # Check if any of the arguments is a wrapper script.
3730 # Do a test to see if this is really a libtool program.
3731 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3732 # If there is no directory component, then add one.
3734 */* | *\\*) . $file ;;
3738 # Transform arg to wrapped name.
3739 file="$progdir/$program"
3743 # Quote arguments (to preserve shell metacharacters).
3744 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3745 args="$args \"$file\""
3748 if test -z "$run"; then
3749 if test -n "$shlibpath_var"; then
3750 # Export the shlibpath_var.
3751 eval "export $shlibpath_var"
3754 # Restore saved enviroment variables
3755 if test "${save_LC_ALL+set}" = set; then
3756 LC_ALL="$save_LC_ALL"; export LC_ALL
3758 if test "${save_LANG+set}" = set; then
3759 LANG="$save_LANG"; export LANG
3762 # Now actually exec the command.
3763 eval "exec \$cmd$args"
3765 $echo "$modename: cannot exec \$cmd$args"
3768 # Display what would be done.
3769 if test -n "$shlibpath_var"; then
3770 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3771 $echo "export $shlibpath_var"
3778 # libtool uninstall mode
3780 modename="$modename: uninstall"
3787 -*) rm="$rm $arg" ;;
3788 *) files="$files $arg" ;;
3792 if test -z "$rm"; then
3793 $echo "$modename: you must specify an RM program" 1>&2
3798 for file in $files; do
3799 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3800 test "X$dir" = "X$file" && dir=.
3801 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3807 # Possibly a libtool archive, so verify it.
3808 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3811 # Delete the libtool libraries and symlinks.
3812 for n in $library_names; do
3813 rmfiles="$rmfiles $dir/$n"
3815 test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3817 $show "$rm $rmfiles"
3820 if test -n "$library_names"; then
3821 # Do each command in the postuninstall commands.
3822 eval cmds=\"$postuninstall_cmds\"
3823 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3824 for cmd in $cmds; do
3832 if test -n "$old_library"; then
3833 # Do each command in the old_postuninstall commands.
3834 eval cmds=\"$old_postuninstall_cmds\"
3835 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3836 for cmd in $cmds; do
3844 # FIXME: should reinstall the best remaining shared library.
3849 if test "$build_old_libs" = yes; then
3850 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3851 rmfiles="$rmfiles $dir/$oldobj"
3853 $show "$rm $rmfiles"
3858 $show "$rm $rmfiles"
3867 $echo "$modename: you must specify a MODE" 1>&2
3868 $echo "$generic_help" 1>&2
3873 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3874 $echo "$generic_help" 1>&2
3876 fi # test -z "$show_help"
3878 # We need to display help for each of the modes.
3881 "Usage: $modename [OPTION]... [MODE-ARG]...
3883 Provide generalized library-building support services.
3885 --config show all configuration variables
3886 --debug enable verbose shell tracing
3887 -n, --dry-run display commands without modifying any files
3888 --features display basic configuration information and exit
3889 --finish same as \`--mode=finish'
3890 --help display this help message and exit
3891 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3892 --quiet same as \`--silent'
3893 --silent don't print informational messages
3894 --version print version information
3896 MODE must be one of the following:
3898 compile compile a source file into a libtool object
3899 execute automatically set library path, then run a program
3900 finish complete the installation of libtool libraries
3901 install install libraries or executables
3902 link create a library or an executable
3903 uninstall remove libraries from an installed directory
3905 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3906 a more detailed description of MODE."
3912 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3914 Compile a source file into a libtool library object.
3916 This mode accepts the following additional options:
3918 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
3919 -static always build a \`.o' file suitable for static linking
3921 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3922 from the given SOURCEFILE.
3924 The output file name is determined by removing the directory component from
3925 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3926 library object suffix, \`.lo'."
3931 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3933 Automatically set library path, then run a program.
3935 This mode accepts the following additional options:
3937 -dlopen FILE add the directory containing FILE to the library path
3939 This mode sets the library path environment variable according to \`-dlopen'
3942 If any of the ARGS are libtool executable wrappers, then they are translated
3943 into their corresponding uninstalled binary, and any of their required library
3944 directories are added to the library path.
3946 Then, COMMAND is executed, with ARGS as arguments."
3951 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3953 Complete the installation of libtool libraries.
3955 Each LIBDIR is a directory that contains libtool libraries.
3957 The commands that this mode executes may require superuser privileges. Use
3958 the \`--dry-run' option if you just want to see what would be executed."
3963 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3965 Install executables or libraries.
3967 INSTALL-COMMAND is the installation command. The first component should be
3968 either the \`install' or \`cp' program.
3970 The rest of the components are interpreted as arguments to that command (only
3971 BSD-compatible install options are recognized)."
3976 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3978 Link object files or libraries together to form another library, or to
3979 create an executable program.
3981 LINK-COMMAND is a command using the C compiler that you would use to create
3982 a program from several object files.
3984 The following components of LINK-COMMAND are treated specially:
3986 -all-static do not do any dynamic linking at all
3987 -avoid-version do not add a version suffix if possible
3988 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
3989 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
3990 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3991 -export-symbols SYMFILE
3992 try to export only the symbols listed in SYMFILE
3993 -export-symbols-regex REGEX
3994 try to export only the symbols matching REGEX
3995 -LLIBDIR search LIBDIR for required installed libraries
3996 -lNAME OUTPUT-FILE requires the installed library libNAME
3997 -module build a library that can dlopened
3998 -no-undefined declare that a library does not refer to external symbols
3999 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4000 -release RELEASE specify package release information
4001 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4002 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4003 -static do not do any dynamic linking of libtool libraries
4004 -version-info CURRENT[:REVISION[:AGE]]
4005 specify library version info [each variable defaults to 0]
4007 All other options (arguments beginning with \`-') are ignored.
4009 Every other argument is treated as a filename. Files ending in \`.la' are
4010 treated as uninstalled libtool libraries, other files are standard or library
4013 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4014 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4015 required, except when creating a convenience library.
4017 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4018 using \`ar' and \`ranlib', or on Windows using \`lib'.
4020 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4021 is created, otherwise an executable program is created."
4026 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4028 Remove libraries from an installation directory.
4030 RM is the name of the program to use to delete files associated with each FILE
4031 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4034 If FILE is a libtool library, all the files associated with it are deleted.
4035 Otherwise, only FILE itself is deleted using RM."
4039 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4046 $echo "Try \`$modename --help' for more information about other modes."