1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
6 # Copyright (C) 1996-1999 Free Software Foundation, Inc.
7 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 # As a special exception to the GNU General Public License, if you
24 # distribute this file as part of a program that contains a
25 # configuration script generated by Autoconf, you may include it under
26 # the same distribution terms that you use for the rest of that program.
28 # Portions Copyright 1998-2001 OpenLDAP Foundation.
29 # This file is distributed with OpenLDAP Software, which contains a
30 # configuration script generated by autoconf and is distributable
31 # under the same distributions terms as OpenLDAP inself.
32 # See the OpenLDAP COPYRIGHT and LICENSE file for details.
34 # Check that we have a working $echo.
35 if test "X$1" = X--no-reexec; then
36 # Discard the --no-reexec flag, and continue.
38 elif test "X$1" = X--fallback-echo; then
39 # Avoid inline document here, it may be left over
41 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
42 # Yippee, $echo works!
45 # Restart under the correct shell, and then maybe $echo will work.
46 exec $SHELL "$0" --no-reexec ${1+"$@"}
49 if test "X$1" = X--fallback-echo; then
50 # used as fallback echo
58 # The name of this program.
59 progname=`$echo "$0" | sed 's%^.*/%%'`
65 VERSION=1.3.5+OpenLDAP
66 TIMESTAMP=" (1.385.2.206 2000/10/02 14:18:00)"
69 help="Try \`$progname --help' for more information."
70 magic="%%%MAGIC variable%%%"
75 # Sed substitution that helps us do robust quoting. It backslashifies
76 # metacharacters that are still active within double-quoted strings.
78 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
80 NL2SP='tr \015\012 \040\040'
83 # Only set LANG and LC_ALL to C if already set.
84 # These must not be set unconditionally because not all systems understand
85 # e.g. LANG=C (notably SCO).
86 # We save the old values to restore during execute mode.
87 if test "${LC_ALL+set}" = set; then
88 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
90 if test "${LANG+set}" = set; then
91 save_LANG="$LANG"; LANG=C; export LANG
94 if test "$LTCONFIG_VERSION" != "$VERSION"; then
95 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
96 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
100 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
101 echo "$modename: not configured to build any kind of library" 1>&2
102 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
115 lo2o="s/\\.lo\$/.${objext}/"
116 o2lo="s/\\.${objext}\$/.lo/"
118 # Parse our command line options once, thoroughly.
125 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
129 # If the previous option needs an argument, assign it.
130 if test -n "$prev"; then
133 eval "$prev=\"\$$prev \$arg\""
145 # Have we seen a non-optional argument yet?
152 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
157 sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
162 echo "$progname: enabling shell trace mode"
172 if test "$build_libtool_libs" = yes; then
173 echo "enable shared libraries"
175 echo "disable shared libraries"
177 if test "$build_old_libs" = yes; then
178 echo "enable static libraries"
180 echo "disable static libraries"
185 --finish) mode="finish" ;;
187 --mode) prevopt="--mode" prev=mode ;;
188 --mode=*) mode="$optarg" ;;
191 build_libtool_libs=yes
196 build_libtool_libs=no
210 $echo "$modename: unrecognized option \`$arg'" 1>&2
222 if test -n "$prevopt"; then
223 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
228 if test -z "$show_help"; then
230 # Infer the operation mode.
231 if test -z "$mode"; then
233 *cc | *++ | gcc* | *-gcc*)
245 *db | *dbx | *strace | *truss)
255 # If we have no mode, but dlfiles were specified, then do execute mode.
256 test -n "$execute_dlfiles" && mode=execute
258 # Just use the default operation mode.
259 if test -z "$mode"; then
260 if test -n "$nonopt"; then
261 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
263 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
270 # Only execute mode is allowed to have -dlopen flags.
271 if test -n "$execute_dlfiles" && test "$mode" != execute; then
272 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
277 # Change the help message to a mode-specific one.
279 help="Try \`$modename --help --mode=$mode' for more information."
281 # These modes are in order of execution frequency so that they run quickly.
283 # libtool compile mode
285 modename="$modename: compile"
286 # Get the compilation command and the source file.
295 # Accept any command-line options.
298 if test "$user_target" != "no"; then
299 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
311 case "$user_target" in
313 # The next one is the -o target name
318 # We got the output file
325 # Accept the current argument as the source file.
329 # Aesthetically quote the previous argument.
331 # Backslashify any backslashes, double quotes, and dollar signs.
332 # These are the only characters that are still specially
333 # interpreted inside of double-quoted scrings.
334 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
336 # Double-quote args containing other shell metacharacters.
337 # Many Bourne shells cannot handle close brackets correctly in scan
338 # sets, so we specify it separately.
340 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
341 lastarg="\"$lastarg\""
345 # Add the previous argument to base_compile.
346 if test -z "$base_compile"; then
347 base_compile="$lastarg"
349 base_compile="$base_compile $lastarg"
353 case "$user_target" in
357 # Get the name of the library object.
358 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
361 $echo "$modename: you must specify a target with \`-o'" 1>&2
366 # Recognize several different file suffixes.
367 # If the user specifies -o file.o, it is replaced with file.lo
382 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
385 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
387 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
392 if test -z "$base_compile"; then
393 $echo "$modename: you must specify a compilation command" 1>&2
398 # Delete any leftover library objects.
399 if test "$build_old_libs" = yes; then
400 removelist="$obj $libobj"
406 trap "$run $rm $removelist; exit 1" 1 2 15
408 # Calculate the filename of the output object if compiler does
409 # not support -o with -c
410 if test "$compiler_c_o" = no; then
411 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
412 lockfile="$output_obj.lock"
413 removelist="$removelist $output_obj $lockfile"
414 trap "$run $rm $removelist; exit 1" 1 2 15
420 # Lock this critical section if it is needed
421 # We use this script file to make the link, it avoids creating a new file
422 if test "$need_locks" = yes; then
423 until ln "$0" "$lockfile" 2>/dev/null; do
424 $show "Waiting for $lockfile to be removed"
427 elif test "$need_locks" = warn; then
428 if test -f "$lockfile"; then
430 *** ERROR, $lockfile exists and contains:
431 `cat $lockfile 2>/dev/null`
433 This indicates that another process is trying to use the same
434 temporary object file, and libtool could not work around it because
435 your compiler does not support \`-c' and \`-o' together. If you
436 repeat this compilation, it may succeed, by chance, but you had better
437 avoid parallel builds (make -j) in this platform, or get a better
443 echo $srcfile > "$lockfile"
446 if test -n "$fix_srcfile_path"; then
447 eval srcfile=\"$fix_srcfile_path\"
450 # Only build a PIC object if we are building libtool libraries.
451 if test "$build_libtool_libs" = yes; then
452 # Without this assignment, base_compile gets emptied.
453 fbsd_hideous_sh_bug=$base_compile
455 # All platforms use -DPIC, to notify preprocessed assembler code.
456 command="$base_compile $srcfile $pic_flag -DPIC"
457 if test "$build_old_libs" = yes; then
459 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
460 if test "X$dir" = "X$libobj"; then
465 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
467 if test -d "$dir"; then
474 if test $status -ne 0 && test ! -d $dir; then
479 if test "$compiler_o_lo" = yes; then
481 command="$command -o $output_obj"
482 elif test "$compiler_c_o" = yes; then
484 command="$command -o $output_obj"
487 $run $rm "$output_obj"
489 if $run eval "$command"; then :
491 test -n "$output_obj" && $run $rm $removelist
495 if test "$need_locks" = warn &&
496 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
498 *** ERROR, $lockfile contains:
499 `cat $lockfile 2>/dev/null`
501 but it should contain:
504 This indicates that another process is trying to use the same
505 temporary object file, and libtool could not work around it because
506 your compiler does not support \`-c' and \`-o' together. If you
507 repeat this compilation, it may succeed, by chance, but you had better
508 avoid parallel builds (make -j) in this platform, or get a better
515 # Just move the object if needed, then go on to compile the next one
516 if test x"$output_obj" != x"$libobj"; then
517 $show "$mv $output_obj $libobj"
518 if $run $mv $output_obj $libobj; then :
526 # If we have no pic_flag, then copy the object into place and finish.
527 if test -z "$pic_flag" && test "$build_old_libs" = yes; then
528 # Rename the .lo from within objdir to obj
529 if test -f $obj; then
534 $show "$mv $libobj $obj"
535 if $run $mv $libobj $obj; then :
542 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
543 if test "X$xdir" = "X$obj"; then
548 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
549 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
550 # Now arrange that obj and lo_libobj become the same file
551 $show "(cd $xdir && $LN_S $baseobj $libobj)"
552 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
561 # Allow error messages only from the first compilation.
562 suppress_output=' >/dev/null 2>&1'
565 # Only build a position-dependent object if we build old libraries.
566 if test "$build_old_libs" = yes; then
567 command="$base_compile $srcfile"
568 if test "$compiler_c_o" = yes; then
569 command="$command -o $obj"
573 # Suppress compiler output if we already did a PIC compilation.
574 command="$command$suppress_output"
575 $run $rm "$output_obj"
577 if $run eval "$command"; then :
583 if test "$need_locks" = warn &&
584 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
586 *** ERROR, $lockfile contains:
587 `cat $lockfile 2>/dev/null`
589 but it should contain:
592 This indicates that another process is trying to use the same
593 temporary object file, and libtool could not work around it because
594 your compiler does not support \`-c' and \`-o' together. If you
595 repeat this compilation, it may succeed, by chance, but you had better
596 avoid parallel builds (make -j) in this platform, or get a better
603 # Just move the object if needed
604 if test x"$output_obj" != x"$obj"; then
605 $show "$mv $output_obj $obj"
606 if $run $mv $output_obj $obj; then :
614 # Create an invalid libtool object if no PIC, so that we do not
615 # accidentally link it into a program.
616 if test "$build_libtool_libs" != yes; then
617 $show "echo timestamp > $libobj"
618 $run eval "echo timestamp > \$libobj" || exit $?
620 # Move the .lo from within objdir
621 $show "$mv $libobj $lo_libobj"
622 if $run $mv $libobj $lo_libobj; then :
631 # Unlock the critical section if it was locked
632 if test "$need_locks" != no; then
641 modename="$modename: link"
643 *-*-cygwin* | *-*-mingw* | *-*-os2*)
644 # It is impossible to link a dll without this setting, and
645 # we shouldn't force the makefile maintainer to figure out
646 # which system we are compiling for in order to pass an extra
647 # flag for every libtool invokation.
650 # FIXME: Unfortunately, there are problems with the above when trying
651 # to make a dll which has undefined symbols, in which case not
652 # even a static library is built. For now, we need to specify
653 # -no-undefined on the libtool link line when we can be certain
654 # that all symbols are satisfied, otherwise we get a static library.
657 # This is a source program that is used to create dlls on Windows
658 # Don't remove nor modify the starting and closing comments
659 # /* ltdll.c starts here */
660 # #define WIN32_LEAN_AND_MEAN
661 # #include <windows.h>
662 # #undef WIN32_LEAN_AND_MEAN
666 # # ifdef __CYGWIN32__
667 # # define __CYGWIN__ __CYGWIN32__
674 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
680 # #include <cygwin/cygwin_dll.h>
681 # DECLARE_CYGWIN_DLL( DllMain );
683 # HINSTANCE __hDllInstance_base;
686 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
688 # __hDllInstance_base = hInst;
691 # /* ltdll.c ends here */
692 # This is a source program that is used to create import libraries
693 # on Windows for dlls which lack them. Don't remove nor modify the
694 # starting and closing comments
695 # /* impgen.c starts here */
696 # /* Copyright (C) 1999 Free Software Foundation, Inc.
698 # This file is part of GNU libtool.
700 # This program is free software; you can redistribute it and/or modify
701 # it under the terms of the GNU General Public License as published by
702 # the Free Software Foundation; either version 2 of the License, or
703 # (at your option) any later version.
705 # This program is distributed in the hope that it will be useful,
706 # but WITHOUT ANY WARRANTY; without even the implied warranty of
707 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
708 # GNU General Public License for more details.
710 # You should have received a copy of the GNU General Public License
711 # along with this program; if not, write to the Free Software
712 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
715 # #include <stdio.h> /* for printf() */
716 # #include <unistd.h> /* for open(), lseek(), read() */
717 # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
718 # #include <string.h> /* for strdup() */
720 # static unsigned int
721 # pe_get16 (fd, offset)
725 # unsigned char b[2];
726 # lseek (fd, offset, SEEK_SET);
728 # return b[0] + (b[1]<<8);
731 # static unsigned int
732 # pe_get32 (fd, offset)
736 # unsigned char b[4];
737 # lseek (fd, offset, SEEK_SET);
739 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
742 # static unsigned int
746 # unsigned char *b = ptr;
747 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
756 # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
757 # unsigned long export_rva, export_size, nsections, secptr, expptr;
758 # unsigned long name_rvas, nexp;
759 # unsigned char *expdata, *erva;
760 # char *filename, *dll_name;
762 # filename = argv[1];
764 # dll = open(filename, O_RDONLY|O_BINARY);
768 # dll_name = filename;
770 # for (i=0; filename[i]; i++)
771 # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
772 # dll_name = filename + i +1;
774 # pe_header_offset = pe_get32 (dll, 0x3c);
775 # opthdr_ofs = pe_header_offset + 4 + 20;
776 # num_entries = pe_get32 (dll, opthdr_ofs + 92);
778 # if (num_entries < 1) /* no exports */
781 # export_rva = pe_get32 (dll, opthdr_ofs + 96);
782 # export_size = pe_get32 (dll, opthdr_ofs + 100);
783 # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
784 # secptr = (pe_header_offset + 4 + 20 +
785 # pe_get16 (dll, pe_header_offset + 4 + 16));
788 # for (i = 0; i < nsections; i++)
791 # unsigned long secptr1 = secptr + 40 * i;
792 # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
793 # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
794 # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
795 # lseek(dll, secptr1, SEEK_SET);
796 # read(dll, sname, 8);
797 # if (vaddr <= export_rva && vaddr+vsize > export_rva)
799 # expptr = fptr + (export_rva - vaddr);
800 # if (export_rva + export_size > vaddr + vsize)
801 # export_size = vsize - (export_rva - vaddr);
806 # expdata = (unsigned char*)malloc(export_size);
807 # lseek (dll, expptr, SEEK_SET);
808 # read (dll, expdata, export_size);
809 # erva = expdata - export_rva;
811 # nexp = pe_as32 (expdata+24);
812 # name_rvas = pe_as32 (expdata+32);
814 # printf ("EXPORTS\n");
815 # for (i = 0; i<nexp; i++)
817 # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
818 # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
823 # /* impgen.c ends here */
829 compile_command="$nonopt"
830 finalize_command="$nonopt"
841 if test -n "$shlibpath_var"; then
842 # get the directories listed in $shlibpath_var
843 eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
847 # now prepend the system-specific ones
848 eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
849 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
857 export_symbols_regex=
860 link_against_libtool_libs=
864 prefer_static_libs=no
876 # We need to know -static, to get the right output filenames.
880 -all-static | -static)
881 if test "X$arg" = "X-all-static"; then
882 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
883 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
885 if test -n "$link_static_flag"; then
886 dlopen_self=$dlopen_self_static
889 if test -z "$pic_flag" && test -n "$link_static_flag"; then
890 dlopen_self=$dlopen_self_static
893 build_libtool_libs=no
895 prefer_static_libs=yes
901 # See if our shared archives depend on static archives.
902 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
904 # Go through the arguments, transforming them on the way.
905 while test $# -gt 0; do
909 # If the previous option needs an argument, assign it.
910 if test -n "$prev"; then
913 compile_command="$compile_command @OUTPUT@"
914 finalize_command="$finalize_command @OUTPUT@"
920 if test "$preload" = no; then
921 # Add the symbol object into the linking commands.
922 compile_command="$compile_command @SYMFILE@"
923 finalize_command="$finalize_command @SYMFILE@"
927 *.la | *.lo) ;; # We handle these cases below.
929 if test "$dlself" = no; then
937 if test "$prev" = dlprefiles; then
939 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
949 if test "$prev" = dlfiles; then
950 dlfiles="$dlfiles $arg"
952 dlprefiles="$dlprefiles $arg"
959 export_symbols="$arg"
960 if test ! -f "$arg"; then
961 $echo "$modename: symbol file \`$arg' does not exist"
968 export_symbols_regex="$arg"
978 # We need an absolute path.
980 [\\/]* | [A-Za-z]:[\\/]*) ;;
982 $echo "$modename: only absolute run-paths are allowed" 1>&2
986 if test "$prev" = rpath; then
989 *) rpath="$rpath $arg" ;;
994 *) xrpath="$xrpath $arg" ;;
1001 eval "$prev=\"\$arg\""
1012 if test -n "$link_static_flag"; then
1013 compile_command="$compile_command $link_static_flag"
1014 finalize_command="$finalize_command $link_static_flag"
1020 # FIXME: remove this flag sometime in the future.
1021 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1045 -export-symbols | -export-symbols-regex)
1046 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1047 $echo "$modename: not more than one -exported-symbols argument allowed"
1050 if test "X$arg" = "X-export-symbols"; then
1059 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1060 # We need an absolute path.
1062 [\\/]* | [A-Za-z]:[\\/]*) ;;
1064 absdir=`cd "$dir" && pwd`
1065 if test -z "$absdir"; then
1066 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1067 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1073 case " $deplibs " in
1075 *) deplibs="$deplibs $arg";;
1077 case " $lib_search_path " in
1079 *) lib_search_path="$lib_search_path $dir";;
1082 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1083 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1084 case ":$dllsearchpath:" in
1085 ::) dllsearchpath="$dllsearchdir";;
1086 *":$dllsearchdir:"*) ;;
1087 *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1094 if test "$arg" = "-lc"; then
1096 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | *-*-aix*)
1097 # These systems don't actually have c library (as such)
1100 *-*-rhapsody* | *-*-darwin*)
1101 # Darwin C library is in the System framework
1102 deplibs="$deplibs -framework System"
1105 elif test "$arg" = "-lm"; then
1107 *-*-cygwin* | *-*-beos*)
1108 # These systems don't actually have math library (as such)
1111 *-*-rhapsody* | *-*-darwin*)
1112 # Darwin math library is in the System framework
1113 deplibs="$deplibs -framework System"
1117 deplibs="$deplibs $arg"
1148 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1149 # We need an absolute path.
1151 [\\/]* | [A-Za-z]:[\\/]*) ;;
1153 $echo "$modename: only absolute run-paths are allowed" 1>&2
1159 *) xrpath="$xrpath $dir" ;;
1165 # If we have no pic_flag, then this is the same as -all-static.
1166 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1167 compile_command="$compile_command $link_static_flag"
1168 finalize_command="$finalize_command $link_static_flag"
1183 # Some other compiler flag.
1185 # Unknown arguments in both finalize_command and compile_command need
1186 # to be aesthetically quoted because they are evaled later.
1187 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1189 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1195 *.o | *.obj | *.a | *.lib)
1196 # A standard object.
1202 if test "$prev" = dlfiles; then
1203 dlfiles="$dlfiles $arg"
1204 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1208 # If libtool objects are unsupported, then we need to preload.
1213 if test "$prev" = dlprefiles; then
1214 # Preload the old-style object.
1215 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1218 libobjs="$libobjs $arg"
1222 # A libtool-controlled library.
1229 # Check to see that this really is a libtool archive.
1230 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1232 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1236 # If the library was installed with an old release of libtool,
1237 # it will not redefine variable installed.
1241 # If there is no directory component, then add one.
1243 */* | *\\*) . $arg ;;
1247 # Get the name of the library we link against.
1249 for l in $old_library $library_names; do
1253 if test -z "$linklib"; then
1254 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1258 # Find the relevant object directory and library name.
1259 name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1261 if test "X$installed" = Xyes; then
1264 dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1265 if test "X$dir" = "X$arg"; then
1272 if test -n "$dependency_libs"; then
1273 # Extract -R and -L from dependency_libs
1275 for deplib in $dependency_libs; do
1277 -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1278 case " $rpath $xrpath " in
1279 *" $temp_xrpath "*) ;;
1280 *) xrpath="$xrpath $temp_xrpath";;
1282 -L*) case "$compile_command $temp_deplibs " in
1284 *) temp_deplibs="$temp_deplibs $deplib";;
1286 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1287 case " $lib_search_path " in
1289 *) lib_search_path="$lib_search_path $temp_dir";;
1292 *) temp_deplibs="$temp_deplibs $deplib";;
1295 dependency_libs="$temp_deplibs"
1298 if test -z "$libdir"; then
1299 # It is a libtool convenience library, so add in its objects.
1300 convenience="$convenience $dir/$old_library"
1301 old_convenience="$old_convenience $dir/$old_library"
1302 deplibs="$deplibs$dependency_libs"
1303 compile_command="$compile_command $dir/$old_library$dependency_libs"
1304 finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1308 # This library was specified with -dlopen.
1309 if test "$prev" = dlfiles; then
1310 dlfiles="$dlfiles $arg"
1311 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1312 # If there is no dlname, no dlopen support or we're linking statically,
1313 # we need to preload.
1316 # We should not create a dependency on this library, but we
1317 # may need any libraries it requires.
1318 compile_command="$compile_command$dependency_libs"
1319 finalize_command="$finalize_command$dependency_libs"
1325 # The library was specified with -dlpreopen.
1326 if test "$prev" = dlprefiles; then
1327 # Prefer using a static library (so that no silly _DYNAMIC symbols
1328 # are required to link).
1329 if test -n "$old_library"; then
1330 dlprefiles="$dlprefiles $dir/$old_library"
1332 dlprefiles="$dlprefiles $dir/$linklib"
1337 if test -n "$library_names" &&
1338 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1339 link_against_libtool_libs="$link_against_libtool_libs $arg"
1340 if test -n "$shlibpath_var"; then
1341 # Make sure the rpath contains only unique directories.
1342 case "$temp_rpath " in
1344 *) temp_rpath="$temp_rpath $dir" ;;
1348 # We need an absolute path.
1350 [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1352 absdir=`cd "$dir" && pwd`
1353 if test -z "$absdir"; then
1354 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1355 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1361 # This is the magic to use -rpath.
1362 # Skip directories that are in the system default run-time
1363 # search path, unless they have been requested with -R.
1364 case " $sys_lib_dlsearch_path " in
1367 case "$compile_rpath " in
1369 *) compile_rpath="$compile_rpath $absdir"
1374 case " $sys_lib_dlsearch_path " in
1377 case "$finalize_rpath " in
1379 *) finalize_rpath="$finalize_rpath $libdir"
1385 case "$hardcode_action" in
1386 immediate | unsupported)
1387 if test "$hardcode_direct" = no; then
1388 compile_command="$compile_command $dir/$linklib"
1389 deplibs="$deplibs $dir/$linklib"
1391 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1392 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1393 if test -n "$dllsearchpath"; then
1394 dllsearchpath="$dllsearchpath:$dllsearchdir"
1396 dllsearchpath="$dllsearchdir"
1400 elif test "$hardcode_minus_L" = no; then
1403 compile_shlibpath="$compile_shlibpath$dir:"
1406 case "$compile_command " in
1408 *) compile_command="$compile_command -L$dir";;
1410 compile_command="$compile_command -l$name"
1411 deplibs="$deplibs -L$dir -l$name"
1412 elif test "$hardcode_shlibpath_var" = no; then
1413 case ":$compile_shlibpath:" in
1415 *) compile_shlibpath="$compile_shlibpath$dir:";;
1417 compile_command="$compile_command -l$name"
1418 deplibs="$deplibs -l$name"
1425 if test "$hardcode_direct" = yes; then
1426 compile_command="$compile_command $absdir/$linklib"
1427 deplibs="$deplibs $absdir/$linklib"
1428 elif test "$hardcode_minus_L" = yes; then
1429 case "$compile_command " in
1431 *) compile_command="$compile_command -L$absdir";;
1433 compile_command="$compile_command -l$name"
1434 deplibs="$deplibs -L$absdir -l$name"
1435 elif test "$hardcode_shlibpath_var" = yes; then
1436 case ":$compile_shlibpath:" in
1438 *) compile_shlibpath="$compile_shlibpath$absdir:";;
1440 compile_command="$compile_command -l$name"
1441 deplibs="$deplibs -l$name"
1452 if test "$lib_linked" != yes; then
1453 $echo "$modename: configuration error: unsupported hardcode properties"
1457 # Finalize command for both is simple: just hardcode it.
1458 if test "$hardcode_direct" = yes; then
1459 finalize_command="$finalize_command $libdir/$linklib"
1460 elif test "$hardcode_minus_L" = yes; then
1461 case "$finalize_command " in
1463 *) finalize_command="$finalize_command -L$libdir";;
1465 finalize_command="$finalize_command -l$name"
1466 elif test "$hardcode_shlibpath_var" = yes; then
1467 case ":$finalize_shlibpath:" in
1469 *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1471 finalize_command="$finalize_command -l$name"
1473 # We cannot seem to hardcode it, guess we'll fake it.
1474 case "$finalize_command " in
1476 *) finalize_command="$finalize_command -L$libdir";;
1478 finalize_command="$finalize_command -l$name"
1481 # Transform directly to old archives if we don't build new libraries.
1482 if test -n "$pic_flag" && test -z "$old_library"; then
1483 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1487 # Here we assume that one of hardcode_direct or hardcode_minus_L
1488 # is not unsupported. This is valid on all known static and
1490 if test "$hardcode_direct" != unsupported; then
1491 test -n "$old_library" && linklib="$old_library"
1492 compile_command="$compile_command $dir/$linklib"
1493 finalize_command="$finalize_command $dir/$linklib"
1495 case "$compile_command " in
1497 *) compile_command="$compile_command -L$dir";;
1499 compile_command="$compile_command -l$name"
1500 case "$finalize_command " in
1502 *) finalize_command="$finalize_command -L$dir";;
1504 finalize_command="$finalize_command -l$name"
1508 # Add in any libraries that this one depends upon.
1509 compile_command="$compile_command$dependency_libs"
1510 finalize_command="$finalize_command$dependency_libs"
1514 # Some other compiler argument.
1516 # Unknown arguments in both finalize_command and compile_command need
1517 # to be aesthetically quoted because they are evaled later.
1518 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1520 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1527 # Now actually substitute the argument into the commands.
1528 if test -n "$arg"; then
1529 compile_command="$compile_command $arg"
1530 finalize_command="$finalize_command $arg"
1534 if test -n "$prev"; then
1535 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1540 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1541 eval arg=\"$export_dynamic_flag_spec\"
1542 compile_command="$compile_command $arg"
1543 finalize_command="$finalize_command $arg"
1547 # calculate the name of the file, without its directory
1548 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1549 libobjs_save="$libobjs"
1553 $echo "$modename: you must specify an output file" 1>&2
1559 if test -n "$link_against_libtool_libs"; then
1560 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1564 if test -n "$deplibs"; then
1565 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1568 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1569 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1572 if test -n "$rpath"; then
1573 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1576 if test -n "$xrpath"; then
1577 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1580 if test -n "$vinfo"; then
1581 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1584 if test -n "$release"; then
1585 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1588 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1589 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1592 # Now set the variables for building old libraries.
1593 build_libtool_libs=no
1598 # Make sure we only generate libraries of the form `libNAME.la'.
1599 case "$outputname" in
1601 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1602 eval libname=\"$libname_spec\"
1605 if test "$module" = no; then
1606 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1610 if test "$need_lib_prefix" != no; then
1611 # Add the "lib" prefix for modules if required
1612 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1613 eval libname=\"$libname_spec\"
1615 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1620 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1621 if test "X$output_objdir" = "X$output"; then
1622 output_objdir="$objdir"
1624 output_objdir="$output_objdir/$objdir"
1627 if test -n "$objs"; then
1628 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1632 # How the heck are we supposed to write a wrapper for a shared library?
1633 if test -n "$link_against_libtool_libs"; then
1634 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1638 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1639 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1643 if test $# -gt 2; then
1644 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1647 if test -n "$hardcode_default_flag"; then
1648 eval linkopts=\"$linkopts$hardcode_default_flag\"
1652 if test -z "$rpath"; then
1653 if test "$build_libtool_libs" = yes; then
1654 # Building a libtool convenience library.
1656 oldlibs="$output_objdir/$libname.$libext $oldlibs"
1657 build_libtool_libs=convenience
1660 dependency_libs="$deplibs"
1662 if test -n "$vinfo"; then
1663 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1666 if test -n "$release"; then
1667 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1671 # Parse the version information argument.
1672 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1673 set dummy $vinfo 0 0 0
1676 if test -n "$8"; then
1677 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1686 # Check that each of the things are valid numbers.
1688 0 | [1-9] | [1-9][0-9]*) ;;
1690 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1691 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1697 0 | [1-9] | [1-9][0-9]*) ;;
1699 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1700 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1706 0 | [1-9] | [1-9][0-9]*) ;;
1708 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1709 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1714 if test $age -gt $current; then
1715 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1716 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1720 # Calculate the version variables.
1724 case "$version_type" in
1728 major=`expr $current - $age + 1`
1729 versuffix="$major.$revision"
1730 verstring="sgi$major.$revision"
1732 # Add in all the interfaces that we are compatible with.
1734 while test $loop != 0; do
1735 iface=`expr $revision - $loop`
1736 loop=`expr $loop - 1`
1737 verstring="sgi$major.$iface:$verstring"
1742 major=.`expr $current - $age`
1743 versuffix="$major.$age.$revision"
1747 major=`expr $current - $age`
1748 versuffix=".$current.$age.$revision"
1749 verstring="$current.$age.$revision"
1751 # Add in all the interfaces that we are compatible with.
1753 while test $loop != 0; do
1754 iface=`expr $current - $loop`
1755 loop=`expr $loop - 1`
1756 verstring="$verstring:${iface}.0"
1759 # Make executables depend on our current version.
1760 verstring="$verstring:${current}.0"
1765 versuffix=".$current.$revision"
1770 versuffix=".$current.$revision";
1775 versuffix=".$current";
1779 # Like Linux, but with '-' rather than '.', since we only
1780 # want one extension on Windows 95.
1781 major=`expr $current - $age`
1782 versuffix="-$major-$age-$revision"
1786 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1787 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1792 # Clear the version info if we defaulted, and they specified a release.
1793 if test -z "$vinfo" && test -n "$release"; then
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* | *-*-aix*)
1825 # these systems don't actually have a c library (as such)!
1828 # rhapsody is a little odd...
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 if test -z "$compile_rpath" -a -n "$hardcode_default_flag"; then
2486 eval compile_rpath=\" $hardcode_default_flag\"
2489 if test -z "$finalize_rpath" -a -n "$hardcode_default_flag"; then
2490 eval finalize_rpath=\" $hardcode_default_flag\"
2493 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2494 if test "X$output_objdir" = "X$output"; then
2495 output_objdir="$objdir"
2497 output_objdir="$output_objdir/$objdir"
2500 # Create the binary in the object directory, then wrap it.
2501 if test ! -d $output_objdir; then
2502 $show "$mkdir $output_objdir"
2503 $run $mkdir $output_objdir
2505 if test $status -ne 0 && test ! -d $output_objdir; then
2510 if test -n "$libobjs" && test "$build_old_libs" = yes; then
2511 # Transform all the library objects into standard objects.
2512 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2513 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2517 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2518 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2519 dlsyms="${outputname}S.c"
2521 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2525 if test -n "$dlsyms"; then
2529 # Discover the nlist of each of the dlfiles.
2530 nlist="$output_objdir/${outputname}.nm"
2532 $show "$rm $nlist ${nlist}S ${nlist}T"
2533 $run $rm "$nlist" "${nlist}S" "${nlist}T"
2535 # Parse the name list into a source file.
2536 $show "creating $output_objdir/$dlsyms"
2538 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2539 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2540 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2546 /* Prevent the only kind of declaration conflicts we can make. */
2547 #define lt_preloaded_symbols some_other_symbol
2549 /* External symbol declarations for the compiler. */\
2552 if test "$dlself" = yes; then
2553 $show "generating symbol list for \`$output'"
2555 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2557 # Add our own program objects to the symbol list.
2558 progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2559 for arg in $progfiles; do
2560 $show "extracting global C symbols from \`$arg'"
2561 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2564 if test -n "$exclude_expsyms"; then
2565 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2566 $run eval '$mv "$nlist"T "$nlist"'
2569 if test -n "$export_symbols_regex"; then
2570 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2571 $run eval '$mv "$nlist"T "$nlist"'
2574 # Prepare the list of exported symbols
2575 if test -z "$export_symbols"; then
2576 export_symbols="$output_objdir/$output.exp"
2577 $run $rm $export_symbols
2578 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2580 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2581 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2582 $run eval 'mv "$nlist"T "$nlist"'
2586 # Prepare the list of exported symbols
2587 if test -z "$export_symbols"; then
2588 if test "$always_export_symbols" = yes -a -n "$link_export_all"; then
2589 eval link_export=\"$link_export_all\"
2590 elif test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2591 $show "generating symbol list for \`$output'"
2592 export_symbols="$output_objdir/$output.exp"
2593 $run $rm $export_symbols
2595 eval cmds=\"$export_symbols_cmds\"
2596 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2597 for cmd in $cmds; do
2600 $run eval "$cmd" || exit $?
2603 if test -n "$export_symbols_regex"; then
2604 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2605 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2606 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2607 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2612 for arg in $dlprefiles; do
2613 $show "extracting global C symbols from \`$arg'"
2614 name=`echo "$arg" | sed -e 's%^.*/%%'`
2615 $run eval 'echo ": $name " >> "$nlist"'
2616 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2619 if test -z "$run"; then
2620 # Make sure we have at least an empty file.
2621 test -f "$nlist" || : > "$nlist"
2623 if test -n "$exclude_expsyms"; then
2624 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2625 $mv "$nlist"T "$nlist"
2628 # Try sorting and uniquifying the output.
2629 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2632 grep -v "^: " < "$nlist" > "$nlist"S
2635 if test -f "$nlist"S; then
2636 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2638 echo '/* NONE */' >> "$output_objdir/$dlsyms"
2641 $echo >> "$output_objdir/$dlsyms" "\
2643 #undef lt_preloaded_symbols
2645 #if defined (__STDC__) && __STDC__
2646 # define lt_ptr_t void *
2648 # define lt_ptr_t char *
2652 /* The mapping between symbol names and symbols. */
2657 lt_preloaded_symbols[] =
2661 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2662 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2663 < "$nlist" >> "$output_objdir/$dlsyms"
2665 $echo >> "$output_objdir/$dlsyms" "\
2669 /* This works around a problem in FreeBSD linker */
2670 #ifdef FREEBSD_WORKAROUND
2671 static const void *lt_preloaded_setup() {
2672 return lt_preloaded_symbols;
2682 pic_flag_for_symtable=
2684 # compiling the symbol table file with pic_flag works around
2685 # a FreeBSD bug that causes programs to crash when -lm is
2686 # linked before any other PIC object. But we must not use
2687 # pic_flag when linking with -static. The problem exists in
2688 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2689 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2690 case "$compile_command " in
2692 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2695 case "$compile_command " in
2697 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
2701 # Now compile the dynamic symbol file.
2702 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2703 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2705 # Clean up the generated files.
2706 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2707 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2709 # Transform the symbol file into the correct name.
2710 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2711 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2714 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2719 # We keep going just in case the user didn't refer to
2720 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2721 # really was required.
2723 # Nullify the symbol file.
2724 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2725 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2729 if test -n "$export_symbols" -o -n "$dlsyms"; then
2730 eval link_export_opt=\"$link_export\"
2733 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2734 # Replace the output file specification.
2735 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2736 link_command="$compile_command$compile_rpath$link_export_opt"
2738 # We have no uninstalled library dependencies, so finalize right now.
2739 $show "$link_command"
2740 $run eval "$link_command"
2743 # Delete the generated files.
2744 if test -n "$dlsyms"; then
2745 $show "$rm $output_objdir/${outputname}S.${objext}"
2746 $run $rm "$output_objdir/${outputname}S.${objext}"
2752 if test -n "$shlibpath_var"; then
2753 # We should set the shlibpath_var
2755 for dir in $temp_rpath; do
2757 [\\/]* | [A-Za-z]:[\\/]*)
2762 # Relative path: add a thisdir entry.
2763 rpath="$rpath\$thisdir/$dir:"
2770 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2771 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2773 if test -n "$finalize_shlibpath"; then
2774 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2779 if test -n "$runpath_var"; then
2780 if test -n "$perm_rpath"; then
2781 # We should set the runpath_var.
2783 for dir in $perm_rpath; do
2786 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2788 if test -n "$finalize_perm_rpath"; then
2789 # We should set the runpath_var.
2791 for dir in $finalize_perm_rpath; do
2794 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2798 if test "$hardcode_action" = relink; then
2799 # Fast installation is not supported
2800 link_command="$compile_var$compile_command$compile_rpath"
2801 relink_command="$finalize_var$finalize_command$finalize_rpath"
2803 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2804 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2806 if test "$fast_install" != no; then
2807 link_command="$finalize_var$compile_command$finalize_rpath"
2808 if test "$fast_install" = yes; then
2809 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2811 # fast_install is set to needless
2815 link_command="$compile_var$compile_command$compile_rpath"
2816 relink_command="$finalize_var$finalize_command$finalize_rpath"
2820 # Replace the output file specification.
2821 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2823 link_command="$link_command$link_export_opt"
2825 # Delete the old output files.
2826 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2828 $show "$link_command"
2829 $run eval "$link_command" || exit $?
2831 # Now create the wrapper script.
2832 $show "creating $output"
2834 # Quote the relink command for shipping.
2835 if test -n "$relink_command"; then
2836 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2839 # Quote $echo for shipping.
2840 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2842 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2843 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2845 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2847 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2850 # Only actually do things if our run command is non-null.
2851 if test -z "$run"; then
2852 # win32 will think the script is a binary if it has
2853 # a .exe suffix, so we strip it off here.
2855 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2858 trap "$rm $output; exit 1" 1 2 15
2863 # $output - temporary wrapper script for $objdir/$outputname
2864 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2866 # The $output program cannot be directly executed until all the libtool
2867 # libraries that it depends on are installed.
2869 # This wrapper script should never be moved out of the build directory.
2870 # If it is, it will not operate correctly.
2872 # Sed substitution that helps us do robust quoting. It backslashifies
2873 # metacharacters that are still active within double-quoted strings.
2874 Xsed='sed -e 1s/^X//'
2875 sed_quote_subst='$sed_quote_subst'
2877 # The HP-UX ksh and POSIX shell print the target directory to stdout
2879 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2881 relink_command=\"$relink_command\"
2883 # This environment variable determines our operation mode.
2884 if test \"\$libtool_install_magic\" = \"$magic\"; then
2885 # install mode needs the following variable:
2886 link_against_libtool_libs='$link_against_libtool_libs'
2888 # When we are sourced in execute mode, \$file and \$echo are already set.
2889 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2892 # Make sure echo works.
2893 if test \"X\$1\" = X--no-reexec; then
2894 # Discard the --no-reexec flag, and continue.
2896 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2897 # Yippee, \$echo works!
2900 # Restart under the correct shell, and then maybe \$echo will work.
2901 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2907 # Find the directory that this script lives in.
2908 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2909 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2911 # Follow symbolic links until we get to the real thisdir.
2912 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2913 while test -n \"\$file\"; do
2914 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2916 # If there was a directory component, then change thisdir.
2917 if test \"x\$destdir\" != \"x\$file\"; then
2918 case \"\$destdir\" in
2919 [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2920 *) thisdir=\"\$thisdir/\$destdir\" ;;
2924 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2925 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2928 # Try to get the absolute directory name.
2929 absdir=\`cd \"\$thisdir\" && pwd\`
2930 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2933 if test "$fast_install" = yes; then
2935 program=lt-'$outputname'
2936 progdir=\"\$thisdir/$objdir\"
2938 if test ! -f \"\$progdir/\$program\" || \\
2939 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2940 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2942 file=\"\$\$-\$program\"
2944 if test ! -d \"\$progdir\"; then
2945 $mkdir \"\$progdir\"
2947 $rm \"\$progdir/\$file\"
2952 # relink executable if necessary
2953 if test -n \"\$relink_command\"; then
2954 if (cd \"\$thisdir\" && eval \$relink_command); then :
2956 $rm \"\$progdir/\$file\"
2961 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2962 { $rm \"\$progdir/\$program\";
2963 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2964 $rm \"\$progdir/\$file\"
2968 program='$outputname'
2969 progdir=\"\$thisdir/$objdir\"
2975 if test -f \"\$progdir/\$program\"; then"
2977 # Export our shlibpath_var if we have one.
2978 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2980 # Add our own library path to $shlibpath_var
2981 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2983 # Some systems cannot cope with colon-terminated $shlibpath_var
2984 # The second colon is a workaround for a bug in BeOS R4 sed
2985 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2987 export $shlibpath_var
2991 # fixup the dll searchpath if we need to.
2992 if test -n "$dllsearchpath"; then
2994 # Add the dll search path components to the executable PATH
2995 PATH=$dllsearchpath:\$PATH
3000 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3001 # Run the actual program with our arguments.
3004 # win32 systems need to use the prog path for dll
3008 exec \$progdir/\$program \${1+\"\$@\"}
3012 # Backslashes separate directories on plain windows
3013 *-*-mingw | *-*-os2*)
3015 exec \$progdir\\\\\$program \${1+\"\$@\"}
3021 # Export the path to the program.
3022 PATH=\"\$progdir:\$PATH\"
3025 exec \$program \${1+\"\$@\"}
3030 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3034 # The program doesn't exist.
3035 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3036 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3037 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3048 # See if we need to build an old-fashioned archive.
3049 for oldlib in $oldlibs; do
3051 if test "$build_libtool_libs" = convenience; then
3052 oldobjs="$libobjs_save"
3053 addlibs="$convenience"
3054 build_libtool_libs=no
3056 if test "$build_libtool_libs" = module; then
3057 oldobjs="$libobjs_save"
3058 build_libtool_libs=no
3060 oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3062 addlibs="$old_convenience"
3065 if test -n "$addlibs"; then
3066 gentop="$output_objdir/${outputname}x"
3067 $show "${rm}r $gentop"
3068 $run ${rm}r "$gentop"
3069 $show "mkdir $gentop"
3070 $run mkdir "$gentop"
3072 if test $status -ne 0 && test ! -d "$gentop"; then
3075 generated="$generated $gentop"
3077 # Add in members from convenience archives.
3078 for xlib in $addlibs; do
3079 # Extract the objects.
3081 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3082 *) xabs=`pwd`"/$xlib" ;;
3084 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3085 xdir="$gentop/$xlib"
3087 $show "${rm}r $xdir"
3092 if test $status -ne 0 && test ! -d "$xdir"; then
3095 $show "(cd $xdir && $AR x $xabs)"
3096 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3098 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3102 # Do each command in the archive commands.
3103 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3104 eval cmds=\"$old_archive_from_new_cmds\"
3106 # Ensure that we have .o objects in place in case we decided
3107 # not to build a shared library, and have fallen back to building
3108 # static libs even though --disable-static was passed!
3109 for oldobj in $oldobjs; do
3110 if test ! -f $oldobj; then
3111 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3112 if test "X$xdir" = "X$oldobj"; then
3117 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3118 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3119 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3120 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3124 eval cmds=\"$old_archive_cmds\"
3126 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3127 for cmd in $cmds; do
3130 $run eval "$cmd" || exit $?
3135 if test -n "$generated"; then
3136 $show "${rm}r$generated"
3137 $run ${rm}r$generated
3140 # Now create the libtool archive.
3144 test "$build_old_libs" = yes && old_library="$libname.$libext"
3145 $show "creating $output"
3147 if test -n "$xrpath"; then
3149 for libdir in $xrpath; do
3150 temp_xrpath="$temp_xrpath -R$libdir"
3152 dependency_libs="$temp_xrpath $dependency_libs"
3155 # Only create the output if not a dry run.
3156 if test -z "$run"; then
3157 for installed in no yes; do
3158 if test "$installed" = yes; then
3159 if test -z "$install_libdir"; then
3162 output="$output_objdir/$outputname"i
3166 # $outputname - a libtool library file
3167 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3169 # Please DO NOT delete this file!
3170 # It is necessary for linking the library.
3172 # The name that we can dlopen(3).
3175 # Names of this library.
3176 library_names='$library_names'
3178 # The name of the static archive.
3179 old_library='$old_library'
3181 # Libraries that this one depends upon.
3182 dependency_libs='$dependency_libs'
3184 # Version information for $libname.
3189 # Is this an already installed library?
3190 installed=$installed
3192 # Directory that this library needs to be installed in:
3193 libdir='$install_libdir'\
3198 # Do a symbolic link so that the libtool archive can be found in
3199 # LD_LIBRARY_PATH before the program is installed.
3200 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3201 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3207 # libtool install mode
3209 modename="$modename: install"
3211 # There may be an optional sh(1) argument at the beginning of
3212 # install_prog (especially on Windows NT).
3213 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3214 # Aesthetically quote it.
3215 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3217 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3221 install_prog="$arg "
3229 # The real first argument should be the name of the installation program.
3230 # Aesthetically quote it.
3231 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3233 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3237 install_prog="$install_prog$arg"
3239 # We need to accept at least all the BSD install flags.
3249 if test -n "$dest"; then
3250 files="$files $dest"
3268 # If the previous option needed an argument, then skip it.
3269 if test -n "$prev"; then
3278 # Aesthetically quote the argument.
3279 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3281 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3285 install_prog="$install_prog $arg"
3288 if test -z "$install_prog"; then
3289 $echo "$modename: you must specify an install program" 1>&2
3294 if test -n "$prev"; then
3295 $echo "$modename: the \`$prev' option requires an argument" 1>&2
3300 if test -z "$files"; then
3301 if test -z "$dest"; then
3302 $echo "$modename: no file or destination specified" 1>&2
3304 $echo "$modename: you must specify a destination" 1>&2
3310 # Strip any trailing slash from the destination.
3311 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3313 # Check to see that the destination is a directory.
3314 test -d "$dest" && isdir=yes
3315 if test "$isdir" = yes; then
3319 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3320 test "X$destdir" = "X$dest" && destdir=.
3321 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3323 # Not a directory, so check to see that there is only one file specified.
3325 if test $# -gt 2; then
3326 $echo "$modename: \`$dest' is not a directory" 1>&2
3332 [\\/]* | [A-Za-z]:[\\/]*) ;;
3334 for file in $files; do
3338 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3347 # This variable tells wrapper scripts just to set variables rather
3348 # than running their programs.
3349 libtool_install_magic="$magic"
3354 for file in $files; do
3356 # Do each installation.
3359 # Do the static libraries later.
3360 staticlibs="$staticlibs $file"
3364 # Check to see that this really is a libtool archive.
3365 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3367 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3374 # If there is no directory component, then add one.
3376 */* | *\\*) . $file ;;
3380 # Add the libdir to current_libdirs if it is the destination.
3381 if test "X$destdir" = "X$libdir"; then
3382 case "$current_libdirs " in
3384 *) current_libdirs="$current_libdirs $libdir" ;;
3387 # Note the libdir as a future libdir.
3388 case "$future_libdirs " in
3390 *) future_libdirs="$future_libdirs $libdir" ;;
3394 dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3395 test "X$dir" = "X$file/" && dir=
3398 # See the names of the shared library.
3399 set dummy $library_names
3400 if test -n "$2"; then
3405 # Install the shared library and build the symlinks.
3406 $show "$install_prog $dir/$realname $destdir/$realname"
3407 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3409 if test $# -gt 0; then
3410 # Delete the old symlinks, and create new ones.
3413 if test "$linkname" != "$realname"; then
3414 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3415 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3420 # Do each command in the postinstall commands.
3421 lib="$destdir/$realname"
3422 eval cmds=\"$postinstall_cmds\"
3423 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3424 for cmd in $cmds; do
3427 $run eval "$cmd" || exit $?
3432 # Install the pseudo-library for information purposes.
3433 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3434 instname="$dir/$name"i
3435 $show "$install_prog $instname $destdir/$name"
3436 $run eval "$install_prog $instname $destdir/$name" || exit $?
3438 # Maybe install the static library, too.
3439 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3443 # Install (i.e. copy) a libtool object.
3445 # Figure out destination file name, if it wasn't already specified.
3446 if test -n "$destname"; then
3447 destfile="$destdir/$destname"
3449 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3450 destfile="$destdir/$destfile"
3453 # Deduce the name of the destination old-style object file.
3456 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3459 staticdest="$destfile"
3463 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3469 # Install the libtool object if requested.
3470 if test -n "$destfile"; then
3471 $show "$install_prog $file $destfile"
3472 $run eval "$install_prog $file $destfile" || exit $?
3475 # Install the old object if enabled.
3476 if test "$build_old_libs" = yes; then
3477 # Deduce the name of the old-style object file.
3478 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3480 $show "$install_prog $staticobj $staticdest"
3481 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3487 # Figure out destination file name, if it wasn't already specified.
3488 if test -n "$destname"; then
3489 destfile="$destdir/$destname"
3491 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3492 destfile="$destdir/$destfile"
3495 # Do a test to see if this is really a libtool program.
3496 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3497 link_against_libtool_libs=
3500 # If there is no directory component, then add one.
3502 */* | *\\*) . $file ;;
3506 # Check the variables that should have been set.
3507 if test -z "$link_against_libtool_libs"; then
3508 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3513 for lib in $link_against_libtool_libs; do
3514 # Check to see that each library is installed.
3516 if test -f "$lib"; then
3517 # If there is no directory component, then add one.
3519 */* | *\\*) . $lib ;;
3523 libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3524 if test -n "$libdir" && test ! -f "$libfile"; then
3525 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3531 if test "$fast_install" = no && test -n "$relink_command"; then
3532 if test "$finalize" = yes && test -z "$run"; then
3534 test -n "$TMPDIR" && tmpdir="$TMPDIR"
3535 tmpdir="$tmpdir/libtool-$$"
3536 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3538 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3541 outputname="$tmpdir/$file"
3542 # Replace the output file specification.
3543 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3545 $show "$relink_command"
3546 if $run eval "$relink_command"; then :
3548 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3554 $echo "$modename: warning: cannot relink \`$file'" 1>&2
3557 # Install the binary that we compiled earlier.
3558 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3562 $show "$install_prog$stripme $file $destfile"
3563 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3564 test -n "$outputname" && ${rm}r "$tmpdir"
3569 for file in $staticlibs; do
3570 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3572 # Set up the ranlib parameters.
3573 oldlib="$destdir/$name"
3575 $show "$install_prog $file $oldlib"
3576 $run eval "$install_prog \$file \$oldlib" || exit $?
3578 # Do each command in the postinstall commands.
3579 eval cmds=\"$old_postinstall_cmds\"
3580 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3581 for cmd in $cmds; do
3584 $run eval "$cmd" || exit $?
3589 if test -n "$future_libdirs"; then
3590 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3593 if test -n "$current_libdirs"; then
3594 # Maybe just do a dry run.
3595 test -n "$run" && current_libdirs=" -n$current_libdirs"
3596 exec $SHELL $0 --finish$current_libdirs
3603 # libtool finish mode
3605 modename="$modename: finish"
3609 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3612 libdirs="$libdirs $dir"
3615 for libdir in $libdirs; do
3616 if test -n "$finish_cmds"; then
3617 # Do each command in the finish commands.
3618 eval cmds=\"$finish_cmds\"
3619 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3620 for cmd in $cmds; do
3623 $run eval "$cmd" || admincmds="$admincmds
3628 if test -n "$finish_eval"; then
3629 # Do the single finish_eval.
3630 eval cmds=\"$finish_eval\"
3631 $run eval "$cmds" || admincmds="$admincmds
3637 # Exit here if they wanted silent mode.
3638 test "$show" = : && exit 0
3640 echo "----------------------------------------------------------------------"
3641 echo "Libraries have been installed in:"
3642 for libdir in $libdirs; do
3646 echo "If you ever happen to want to link against installed libraries"
3647 echo "in a given directory, LIBDIR, you must either use libtool, and"
3648 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3649 echo "flag during linking and do at least one of the following:"
3650 if test -n "$shlibpath_var"; then
3651 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3652 echo " during execution"
3654 if test -n "$runpath_var"; then
3655 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3656 echo " during linking"
3658 if test -n "$hardcode_libdir_flag_spec"; then
3660 eval flag=\"$hardcode_libdir_flag_spec\"
3662 echo " - use the \`$flag' linker flag"
3664 if test -n "$admincmds"; then
3665 echo " - have your system administrator run these commands:$admincmds"
3667 if test -f /etc/ld.so.conf; then
3668 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3671 echo "See any operating system documentation about shared libraries for"
3672 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3673 echo "----------------------------------------------------------------------"
3677 # libtool execute mode
3679 modename="$modename: execute"
3681 # The first argument is the command name.
3683 if test -z "$cmd"; then
3684 $echo "$modename: you must specify a COMMAND" 1>&2
3689 # Handle -dlopen flags immediately.
3690 for file in $execute_dlfiles; do
3691 if test ! -f "$file"; then
3692 $echo "$modename: \`$file' is not a file" 1>&2
3700 # Check to see that this really is a libtool archive.
3701 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3703 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3708 # Read the libtool library.
3712 # If there is no directory component, then add one.
3714 */* | *\\*) . $file ;;
3718 # Skip this library if it cannot be dlopened.
3719 if test -z "$dlname"; then
3720 # Warn if it was a shared library.
3721 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3725 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3726 test "X$dir" = "X$file" && dir=.
3728 if test -f "$dir/$objdir/$dlname"; then
3731 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3737 # Just add the directory containing the .lo file.
3738 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3739 test "X$dir" = "X$file" && dir=.
3743 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3748 # Get the absolute pathname.
3749 absdir=`cd "$dir" && pwd`
3750 test -n "$absdir" && dir="$absdir"
3752 # Now add the directory to shlibpath_var.
3753 if eval "test -z \"\$$shlibpath_var\""; then
3754 eval "$shlibpath_var=\"\$dir\""
3756 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3760 # This variable tells wrapper scripts just to set shlibpath_var
3761 # rather than running their programs.
3762 libtool_execute_magic="$magic"
3764 # Check if any of the arguments is a wrapper script.
3771 # Do a test to see if this is really a libtool program.
3772 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3773 # If there is no directory component, then add one.
3775 */* | *\\*) . $file ;;
3779 # Transform arg to wrapped name.
3780 file="$progdir/$program"
3784 # Quote arguments (to preserve shell metacharacters).
3785 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3786 args="$args \"$file\""
3789 if test -z "$run"; then
3790 if test -n "$shlibpath_var"; then
3791 # Export the shlibpath_var.
3792 eval "export $shlibpath_var"
3795 # Restore saved enviroment variables
3796 if test "${save_LC_ALL+set}" = set; then
3797 LC_ALL="$save_LC_ALL"; export LC_ALL
3799 if test "${save_LANG+set}" = set; then
3800 LANG="$save_LANG"; export LANG
3803 # Now actually exec the command.
3804 eval "exec \$cmd$args"
3806 $echo "$modename: cannot exec \$cmd$args"
3809 # Display what would be done.
3810 if test -n "$shlibpath_var"; then
3811 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3812 $echo "export $shlibpath_var"
3819 # libtool uninstall mode
3821 modename="$modename: uninstall"
3828 -*) rm="$rm $arg" ;;
3829 *) files="$files $arg" ;;
3833 if test -z "$rm"; then
3834 $echo "$modename: you must specify an RM program" 1>&2
3839 for file in $files; do
3840 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3841 test "X$dir" = "X$file" && dir=.
3842 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3848 # Possibly a libtool archive, so verify it.
3849 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3852 # Delete the libtool libraries and symlinks.
3853 for n in $library_names; do
3854 rmfiles="$rmfiles $dir/$n"
3856 test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3858 $show "$rm $rmfiles"
3861 if test -n "$library_names"; then
3862 # Do each command in the postuninstall commands.
3863 eval cmds=\"$postuninstall_cmds\"
3864 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3865 for cmd in $cmds; do
3873 if test -n "$old_library"; then
3874 # Do each command in the old_postuninstall commands.
3875 eval cmds=\"$old_postuninstall_cmds\"
3876 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3877 for cmd in $cmds; do
3885 # FIXME: should reinstall the best remaining shared library.
3890 if test "$build_old_libs" = yes; then
3891 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3892 rmfiles="$rmfiles $dir/$oldobj"
3894 $show "$rm $rmfiles"
3899 $show "$rm $rmfiles"
3908 $echo "$modename: you must specify a MODE" 1>&2
3909 $echo "$generic_help" 1>&2
3914 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3915 $echo "$generic_help" 1>&2
3917 fi # test -z "$show_help"
3919 # We need to display help for each of the modes.
3922 "Usage: $modename [OPTION]... [MODE-ARG]...
3924 Provide generalized library-building support services.
3926 --config show all configuration variables
3927 --debug enable verbose shell tracing
3928 -n, --dry-run display commands without modifying any files
3929 --features display basic configuration information and exit
3930 --finish same as \`--mode=finish'
3931 --help display this help message and exit
3932 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3933 --quiet same as \`--silent'
3934 --silent don't print informational messages
3935 --version print version information
3937 MODE must be one of the following:
3939 compile compile a source file into a libtool object
3940 execute automatically set library path, then run a program
3941 finish complete the installation of libtool libraries
3942 install install libraries or executables
3943 link create a library or an executable
3944 uninstall remove libraries from an installed directory
3946 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3947 a more detailed description of MODE."
3953 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3955 Compile a source file into a libtool library object.
3957 This mode accepts the following additional options:
3959 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
3960 -static always build a \`.o' file suitable for static linking
3962 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3963 from the given SOURCEFILE.
3965 The output file name is determined by removing the directory component from
3966 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3967 library object suffix, \`.lo'."
3972 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3974 Automatically set library path, then run a program.
3976 This mode accepts the following additional options:
3978 -dlopen FILE add the directory containing FILE to the library path
3980 This mode sets the library path environment variable according to \`-dlopen'
3983 If any of the ARGS are libtool executable wrappers, then they are translated
3984 into their corresponding uninstalled binary, and any of their required library
3985 directories are added to the library path.
3987 Then, COMMAND is executed, with ARGS as arguments."
3992 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3994 Complete the installation of libtool libraries.
3996 Each LIBDIR is a directory that contains libtool libraries.
3998 The commands that this mode executes may require superuser privileges. Use
3999 the \`--dry-run' option if you just want to see what would be executed."
4004 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4006 Install executables or libraries.
4008 INSTALL-COMMAND is the installation command. The first component should be
4009 either the \`install' or \`cp' program.
4011 The rest of the components are interpreted as arguments to that command (only
4012 BSD-compatible install options are recognized)."
4017 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4019 Link object files or libraries together to form another library, or to
4020 create an executable program.
4022 LINK-COMMAND is a command using the C compiler that you would use to create
4023 a program from several object files.
4025 The following components of LINK-COMMAND are treated specially:
4027 -all-static do not do any dynamic linking at all
4028 -avoid-version do not add a version suffix if possible
4029 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4030 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4031 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4032 -export-symbols SYMFILE
4033 try to export only the symbols listed in SYMFILE
4034 -export-symbols-regex REGEX
4035 try to export only the symbols matching REGEX
4036 -LLIBDIR search LIBDIR for required installed libraries
4037 -lNAME OUTPUT-FILE requires the installed library libNAME
4038 -module build a library that can dlopened
4039 -no-undefined declare that a library does not refer to external symbols
4040 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4041 -release RELEASE specify package release information
4042 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4043 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4044 -static do not do any dynamic linking of libtool libraries
4045 -version-info CURRENT[:REVISION[:AGE]]
4046 specify library version info [each variable defaults to 0]
4048 All other options (arguments beginning with \`-') are ignored.
4050 Every other argument is treated as a filename. Files ending in \`.la' are
4051 treated as uninstalled libtool libraries, other files are standard or library
4054 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4055 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4056 required, except when creating a convenience library.
4058 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4059 using \`ar' and \`ranlib', or on Windows using \`lib'.
4061 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4062 is created, otherwise an executable program is created."
4067 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4069 Remove libraries from an installation directory.
4071 RM is the name of the program to use to delete files associated with each FILE
4072 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4075 If FILE is a libtool library, all the files associated with it are deleted.
4076 Otherwise, only FILE itself is deleted using RM."
4080 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4087 $echo "Try \`$modename --help' for more information about other modes."