1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
4 # Copyright (C) 1996-1999 Free Software Foundation, Inc.
5 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
26 # Check that we have a working $echo.
27 if test "X$1" = X--no-reexec; then
28 # Discard the --no-reexec flag, and continue.
30 elif test "X$1" = X--fallback-echo; then
31 # Avoid inline document here, it may be left over
33 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34 # Yippee, $echo works!
37 # Restart under the correct shell, and then maybe $echo will work.
38 exec $SHELL "$0" --no-reexec ${1+"$@"}
41 if test "X$1" = X--fallback-echo; then
42 # used as fallback echo
50 # The name of this program.
51 progname=`$echo "$0" | sed 's%^.*/%%'`
58 TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)"
61 help="Try \`$progname --help' for more information."
62 magic="%%%MAGIC variable%%%"
67 # Sed substitution that helps us do robust quoting. It backslashifies
68 # metacharacters that are still active within double-quoted strings.
70 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 NL2SP='tr \015\012 \040\040'
75 # Only set LANG and LC_ALL to C if already set.
76 # These must not be set unconditionally because not all systems understand
77 # e.g. LANG=C (notably SCO).
78 # We save the old values to restore during execute mode.
79 if test "${LC_ALL+set}" = set; then
80 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
82 if test "${LANG+set}" = set; then
83 save_LANG="$LANG"; LANG=C; export LANG
86 if test "$LTCONFIG_VERSION" != "$VERSION"; then
87 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
88 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
92 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
93 echo "$modename: not configured to build any kind of library" 1>&2
94 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
107 lo2o="s/\\.lo\$/.${objext}/"
108 o2lo="s/\\.${objext}\$/.lo/"
110 # Parse our command line options once, thoroughly.
117 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
121 # If the previous option needs an argument, assign it.
122 if test -n "$prev"; then
125 eval "$prev=\"\$$prev \$arg\""
137 # Have we seen a non-optional argument yet?
144 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
149 sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
154 echo "$progname: enabling shell trace mode"
164 if test "$build_libtool_libs" = yes; then
165 echo "enable shared libraries"
167 echo "disable shared libraries"
169 if test "$build_old_libs" = yes; then
170 echo "enable static libraries"
172 echo "disable static libraries"
177 --finish) mode="finish" ;;
179 --mode) prevopt="--mode" prev=mode ;;
180 --mode=*) mode="$optarg" ;;
192 $echo "$modename: unrecognized option \`$arg'" 1>&2
204 if test -n "$prevopt"; then
205 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
210 if test -z "$show_help"; then
212 # Infer the operation mode.
213 if test -z "$mode"; then
215 *cc | *++ | gcc* | *-gcc*)
227 *db | *dbx | *strace | *truss)
237 # If we have no mode, but dlfiles were specified, then do execute mode.
238 test -n "$execute_dlfiles" && mode=execute
240 # Just use the default operation mode.
241 if test -z "$mode"; then
242 if test -n "$nonopt"; then
243 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
245 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
252 # Only execute mode is allowed to have -dlopen flags.
253 if test -n "$execute_dlfiles" && test "$mode" != execute; then
254 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
259 # Change the help message to a mode-specific one.
261 help="Try \`$modename --help --mode=$mode' for more information."
263 # These modes are in order of execution frequency so that they run quickly.
265 # libtool compile mode
267 modename="$modename: compile"
268 # Get the compilation command and the source file.
277 # Accept any command-line options.
280 if test "$user_target" != "no"; then
281 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
293 case "$user_target" in
295 # The next one is the -o target name
300 # We got the output file
307 # Accept the current argument as the source file.
311 # Aesthetically quote the previous argument.
313 # Backslashify any backslashes, double quotes, and dollar signs.
314 # These are the only characters that are still specially
315 # interpreted inside of double-quoted scrings.
316 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
318 # Double-quote args containing other shell metacharacters.
319 # Many Bourne shells cannot handle close brackets correctly in scan
320 # sets, so we specify it separately.
322 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
323 lastarg="\"$lastarg\""
327 # Add the previous argument to base_compile.
328 if test -z "$base_compile"; then
329 base_compile="$lastarg"
331 base_compile="$base_compile $lastarg"
335 case "$user_target" in
339 # Get the name of the library object.
340 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
343 $echo "$modename: you must specify a target with \`-o'" 1>&2
348 # Recognize several different file suffixes.
349 # If the user specifies -o file.o, it is replaced with file.lo
364 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
367 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
369 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
374 if test -z "$base_compile"; then
375 $echo "$modename: you must specify a compilation command" 1>&2
380 # Delete any leftover library objects.
381 if test "$build_old_libs" = yes; then
382 removelist="$obj $libobj"
388 trap "$run $rm $removelist; exit 1" 1 2 15
390 # Calculate the filename of the output object if compiler does
391 # not support -o with -c
392 if test "$compiler_c_o" = no; then
393 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
394 lockfile="$output_obj.lock"
395 removelist="$removelist $output_obj $lockfile"
396 trap "$run $rm $removelist; exit 1" 1 2 15
402 # Lock this critical section if it is needed
403 # We use this script file to make the link, it avoids creating a new file
404 if test "$need_locks" = yes; then
405 until ln "$0" "$lockfile" 2>/dev/null; do
406 $show "Waiting for $lockfile to be removed"
409 elif test "$need_locks" = warn; then
410 if test -f "$lockfile"; then
412 *** ERROR, $lockfile exists and contains:
413 `cat $lockfile 2>/dev/null`
415 This indicates that another process is trying to use the same
416 temporary object file, and libtool could not work around it because
417 your compiler does not support \`-c' and \`-o' together. If you
418 repeat this compilation, it may succeed, by chance, but you had better
419 avoid parallel builds (make -j) in this platform, or get a better
425 echo $srcfile > "$lockfile"
428 if test -n "$fix_srcfile_path"; then
429 eval srcfile=\"$fix_srcfile_path\"
432 # Only build a PIC object if we are building libtool libraries.
433 if test "$build_libtool_libs" = yes; then
434 # Without this assignment, base_compile gets emptied.
435 fbsd_hideous_sh_bug=$base_compile
437 # All platforms use -DPIC, to notify preprocessed assembler code.
438 command="$base_compile $pic_flag -DPIC $srcfile"
439 if test "$build_old_libs" = yes; then
441 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
442 if test "X$dir" = "X$libobj"; then
447 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
449 if test -d "$dir"; then
456 if test $status -ne 0 && test ! -d $dir; then
461 if test "$compiler_o_lo" = yes; then
463 command="$command -o $output_obj"
464 elif test "$compiler_c_o" = yes; then
466 command="$command -o $output_obj"
469 $run $rm "$output_obj"
471 if $run eval "$command"; then :
473 test -n "$output_obj" && $run $rm $removelist
477 if test "$need_locks" = warn &&
478 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
480 *** ERROR, $lockfile contains:
481 `cat $lockfile 2>/dev/null`
483 but it should contain:
486 This indicates that another process is trying to use the same
487 temporary object file, and libtool could not work around it because
488 your compiler does not support \`-c' and \`-o' together. If you
489 repeat this compilation, it may succeed, by chance, but you had better
490 avoid parallel builds (make -j) in this platform, or get a better
497 # Just move the object if needed, then go on to compile the next one
498 if test x"$output_obj" != x"$libobj"; then
499 $show "$mv $output_obj $libobj"
500 if $run $mv $output_obj $libobj; then :
508 # If we have no pic_flag, then copy the object into place and finish.
509 if test -z "$pic_flag" && test "$build_old_libs" = yes; then
510 # Rename the .lo from within objdir to obj
511 if test -f $obj; then
516 $show "$mv $libobj $obj"
517 if $run $mv $libobj $obj; then :
524 # Now arrange that obj and lo_libobj become the same file
525 $show "$LN_S $obj $lo_libobj"
526 if $run $LN_S $obj $lo_libobj; then
535 # Allow error messages only from the first compilation.
536 suppress_output=' >/dev/null 2>&1'
539 # Only build a position-dependent object if we build old libraries.
540 if test "$build_old_libs" = yes; then
541 command="$base_compile $srcfile"
542 if test "$compiler_c_o" = yes; then
543 command="$command -o $obj"
547 # Suppress compiler output if we already did a PIC compilation.
548 command="$command$suppress_output"
549 $run $rm "$output_obj"
551 if $run eval "$command"; then :
557 if test "$need_locks" = warn &&
558 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
560 *** ERROR, $lockfile contains:
561 `cat $lockfile 2>/dev/null`
563 but it should contain:
566 This indicates that another process is trying to use the same
567 temporary object file, and libtool could not work around it because
568 your compiler does not support \`-c' and \`-o' together. If you
569 repeat this compilation, it may succeed, by chance, but you had better
570 avoid parallel builds (make -j) in this platform, or get a better
577 # Just move the object if needed
578 if test x"$output_obj" != x"$obj"; then
579 $show "$mv $output_obj $obj"
580 if $run $mv $output_obj $obj; then :
588 # Create an invalid libtool object if no PIC, so that we do not
589 # accidentally link it into a program.
590 if test "$build_libtool_libs" != yes; then
591 $show "echo timestamp > $libobj"
592 $run eval "echo timestamp > \$libobj" || exit $?
594 # Move the .lo from within objdir
595 $show "$mv $libobj $lo_libobj"
596 if $run $mv $libobj $lo_libobj; then :
605 # Unlock the critical section if it was locked
606 if test "$need_locks" != no; then
615 modename="$modename: link"
616 C_compiler="$CC" # save it, to compile generated C sources
619 *-*-cygwin* | *-*-mingw* | *-*-os2*)
620 # It is impossible to link a dll without this setting, and
621 # we shouldn't force the makefile maintainer to figure out
622 # which system we are compiling for in order to pass an extra
623 # flag for every libtool invokation.
626 # FIXME: Unfortunately, there are problems with the above when trying
627 # to make a dll which has undefined symbols, in which case not
628 # even a static library is built. For now, we need to specify
629 # -no-undefined on the libtool link line when we can be certain
630 # that all symbols are satisfied, otherwise we get a static library.
633 # This is a source program that is used to create dlls on Windows
634 # Don't remove nor modify the starting and closing comments
635 # /* ltdll.c starts here */
636 # #define WIN32_LEAN_AND_MEAN
637 # #include <windows.h>
638 # #undef WIN32_LEAN_AND_MEAN
642 # # ifdef __CYGWIN32__
643 # # define __CYGWIN__ __CYGWIN32__
650 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
656 # #include <cygwin/cygwin_dll.h>
657 # DECLARE_CYGWIN_DLL( DllMain );
659 # HINSTANCE __hDllInstance_base;
662 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
664 # __hDllInstance_base = hInst;
667 # /* ltdll.c ends here */
668 # This is a source program that is used to create import libraries
669 # on Windows for dlls which lack them. Don't remove nor modify the
670 # starting and closing comments
671 # /* impgen.c starts here */
672 # /* Copyright (C) 1999 Free Software Foundation, Inc.
674 # This file is part of GNU libtool.
676 # This program is free software; you can redistribute it and/or modify
677 # it under the terms of the GNU General Public License as published by
678 # the Free Software Foundation; either version 2 of the License, or
679 # (at your option) any later version.
681 # This program is distributed in the hope that it will be useful,
682 # but WITHOUT ANY WARRANTY; without even the implied warranty of
683 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
684 # GNU General Public License for more details.
686 # You should have received a copy of the GNU General Public License
687 # along with this program; if not, write to the Free Software
688 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
691 # #include <stdio.h> /* for printf() */
692 # #include <unistd.h> /* for open(), lseek(), read() */
693 # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
694 # #include <string.h> /* for strdup() */
696 # static unsigned int
697 # pe_get16 (fd, offset)
701 # unsigned char b[2];
702 # lseek (fd, offset, SEEK_SET);
704 # return b[0] + (b[1]<<8);
707 # static unsigned int
708 # pe_get32 (fd, offset)
712 # unsigned char b[4];
713 # lseek (fd, offset, SEEK_SET);
715 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
718 # static unsigned int
722 # unsigned char *b = ptr;
723 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
732 # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
733 # unsigned long export_rva, export_size, nsections, secptr, expptr;
734 # unsigned long name_rvas, nexp;
735 # unsigned char *expdata, *erva;
736 # char *filename, *dll_name;
738 # filename = argv[1];
740 # dll = open(filename, O_RDONLY|O_BINARY);
744 # dll_name = filename;
746 # for (i=0; filename[i]; i++)
747 # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
748 # dll_name = filename + i +1;
750 # pe_header_offset = pe_get32 (dll, 0x3c);
751 # opthdr_ofs = pe_header_offset + 4 + 20;
752 # num_entries = pe_get32 (dll, opthdr_ofs + 92);
754 # if (num_entries < 1) /* no exports */
757 # export_rva = pe_get32 (dll, opthdr_ofs + 96);
758 # export_size = pe_get32 (dll, opthdr_ofs + 100);
759 # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
760 # secptr = (pe_header_offset + 4 + 20 +
761 # pe_get16 (dll, pe_header_offset + 4 + 16));
764 # for (i = 0; i < nsections; i++)
767 # unsigned long secptr1 = secptr + 40 * i;
768 # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
769 # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
770 # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
771 # lseek(dll, secptr1, SEEK_SET);
772 # read(dll, sname, 8);
773 # if (vaddr <= export_rva && vaddr+vsize > export_rva)
775 # expptr = fptr + (export_rva - vaddr);
776 # if (export_rva + export_size > vaddr + vsize)
777 # export_size = vsize - (export_rva - vaddr);
782 # expdata = (unsigned char*)malloc(export_size);
783 # lseek (dll, expptr, SEEK_SET);
784 # read (dll, expdata, export_size);
785 # erva = expdata - export_rva;
787 # nexp = pe_as32 (expdata+24);
788 # name_rvas = pe_as32 (expdata+32);
790 # printf ("EXPORTS\n");
791 # for (i = 0; i<nexp; i++)
793 # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
794 # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
799 # /* impgen.c ends here */
805 compile_command="$CC"
806 finalize_command="$CC"
817 if test -n "$shlibpath_var"; then
818 # get the directories listed in $shlibpath_var
819 eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
823 # now prepend the system-specific ones
824 eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
825 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
833 export_symbols_regex=
836 link_against_libtool_libs=
840 prefer_static_libs=no
852 # We need to know -static, to get the right output filenames.
856 -all-static | -static)
857 if test "X$arg" = "X-all-static"; then
858 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
859 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
861 if test -n "$link_static_flag"; then
862 dlopen_self=$dlopen_self_static
865 if test -z "$pic_flag" && test -n "$link_static_flag"; then
866 dlopen_self=$dlopen_self_static
869 build_libtool_libs=no
871 prefer_static_libs=yes
877 # See if our shared archives depend on static archives.
878 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
880 # Go through the arguments, transforming them on the way.
881 while test $# -gt 0; do
885 # If the previous option needs an argument, assign it.
886 if test -n "$prev"; then
889 compile_command="$compile_command @OUTPUT@"
890 finalize_command="$finalize_command @OUTPUT@"
896 if test "$preload" = no; then
897 # Add the symbol object into the linking commands.
898 compile_command="$compile_command @SYMFILE@"
899 finalize_command="$finalize_command @SYMFILE@"
903 *.la | *.lo) ;; # We handle these cases below.
905 if test "$dlself" = no; then
913 if test "$prev" = dlprefiles; then
915 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
925 if test "$prev" = dlfiles; then
926 dlfiles="$dlfiles $arg"
928 dlprefiles="$dlprefiles $arg"
935 export_symbols="$arg"
936 if test ! -f "$arg"; then
937 $echo "$modename: symbol file \`$arg' does not exist"
944 export_symbols_regex="$arg"
954 # We need an absolute path.
956 [\\/]* | [A-Za-z]:[\\/]*) ;;
958 $echo "$modename: only absolute run-paths are allowed" 1>&2
962 if test "$prev" = rpath; then
965 *) rpath="$rpath $arg" ;;
970 *) xrpath="$xrpath $arg" ;;
977 eval "$prev=\"\$arg\""
988 if test -n "$link_static_flag"; then
989 compile_command="$compile_command $link_static_flag"
990 finalize_command="$finalize_command $link_static_flag"
996 # FIXME: remove this flag sometime in the future.
997 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1021 -export-symbols | -export-symbols-regex)
1022 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1023 $echo "$modename: not more than one -exported-symbols argument allowed"
1026 if test "X$arg" = "X-export-symbols"; then
1035 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1036 # We need an absolute path.
1038 [\\/]* | [A-Za-z]:[\\/]*) ;;
1040 absdir=`cd "$dir" && pwd`
1041 if test -z "$absdir"; then
1042 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1043 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1049 case " $deplibs " in
1051 *) deplibs="$deplibs $arg";;
1053 case " $lib_search_path " in
1055 *) lib_search_path="$lib_search_path $dir";;
1058 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1059 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1060 case ":$dllsearchpath:" in
1061 ::) dllsearchpath="$dllsearchdir";;
1062 *":$dllsearchdir:"*) ;;
1063 *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1070 if test "$arg" = "-lc"; then
1072 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1073 # These systems don't actually have c library (as such)
1077 elif test "$arg" = "-lm"; then
1079 *-*-cygwin* | *-*-beos*)
1080 # These systems don't actually have math library (as such)
1085 deplibs="$deplibs $arg"
1116 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1117 # We need an absolute path.
1119 [\\/]* | [A-Za-z]:[\\/]*) ;;
1121 $echo "$modename: only absolute run-paths are allowed" 1>&2
1127 *) xrpath="$xrpath $dir" ;;
1133 # If we have no pic_flag, then this is the same as -all-static.
1134 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1135 compile_command="$compile_command $link_static_flag"
1136 finalize_command="$finalize_command $link_static_flag"
1151 # Some other compiler flag.
1153 # Unknown arguments in both finalize_command and compile_command need
1154 # to be aesthetically quoted because they are evaled later.
1155 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1157 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1163 *.o | *.obj | *.a | *.lib)
1164 # A standard object.
1170 if test "$prev" = dlfiles; then
1171 dlfiles="$dlfiles $arg"
1172 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1176 # If libtool objects are unsupported, then we need to preload.
1181 if test "$prev" = dlprefiles; then
1182 # Preload the old-style object.
1183 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1186 libobjs="$libobjs $arg"
1190 # A libtool-controlled library.
1197 # Check to see that this really is a libtool archive.
1198 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1200 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1204 # If the library was installed with an old release of libtool,
1205 # it will not redefine variable installed.
1209 # If there is no directory component, then add one.
1211 */* | *\\*) . $arg ;;
1215 # Get the name of the library we link against.
1217 for l in $old_library $library_names; do
1221 if test -z "$linklib"; then
1222 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1226 # Find the relevant object directory and library name.
1227 name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1229 if test "X$installed" = Xyes; then
1232 dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1233 if test "X$dir" = "X$arg"; then
1240 if test -n "$dependency_libs"; then
1241 # Extract -R and -L from dependency_libs
1243 for deplib in $dependency_libs; do
1245 -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1246 case " $rpath $xrpath " in
1247 *" $temp_xrpath "*) ;;
1248 *) xrpath="$xrpath $temp_xrpath";;
1250 -L*) case "$compile_command $temp_deplibs " in
1252 *) temp_deplibs="$temp_deplibs $deplib";;
1254 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1255 case " $lib_search_path " in
1257 *) lib_search_path="$lib_search_path $temp_dir";;
1260 *) temp_deplibs="$temp_deplibs $deplib";;
1263 dependency_libs="$temp_deplibs"
1266 if test -z "$libdir"; then
1267 # It is a libtool convenience library, so add in its objects.
1268 convenience="$convenience $dir/$old_library"
1269 old_convenience="$old_convenience $dir/$old_library"
1270 deplibs="$deplibs$dependency_libs"
1271 compile_command="$compile_command $dir/$old_library$dependency_libs"
1272 finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1276 # This library was specified with -dlopen.
1277 if test "$prev" = dlfiles; then
1278 dlfiles="$dlfiles $arg"
1279 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1280 # If there is no dlname, no dlopen support or we're linking statically,
1281 # we need to preload.
1284 # We should not create a dependency on this library, but we
1285 # may need any libraries it requires.
1286 compile_command="$compile_command$dependency_libs"
1287 finalize_command="$finalize_command$dependency_libs"
1293 # The library was specified with -dlpreopen.
1294 if test "$prev" = dlprefiles; then
1295 # Prefer using a static library (so that no silly _DYNAMIC symbols
1296 # are required to link).
1297 if test -n "$old_library"; then
1298 dlprefiles="$dlprefiles $dir/$old_library"
1300 dlprefiles="$dlprefiles $dir/$linklib"
1305 if test -n "$library_names" &&
1306 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1307 link_against_libtool_libs="$link_against_libtool_libs $arg"
1308 if test -n "$shlibpath_var"; then
1309 # Make sure the rpath contains only unique directories.
1310 case "$temp_rpath " in
1312 *) temp_rpath="$temp_rpath $dir" ;;
1316 # We need an absolute path.
1318 [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1320 absdir=`cd "$dir" && pwd`
1321 if test -z "$absdir"; then
1322 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1323 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1329 # This is the magic to use -rpath.
1330 # Skip directories that are in the system default run-time
1331 # search path, unless they have been requested with -R.
1332 case " $sys_lib_dlsearch_path " in
1335 case "$compile_rpath " in
1337 *) compile_rpath="$compile_rpath $absdir"
1342 case " $sys_lib_dlsearch_path " in
1345 case "$finalize_rpath " in
1347 *) finalize_rpath="$finalize_rpath $libdir"
1353 case "$hardcode_action" in
1354 immediate | unsupported)
1355 if test "$hardcode_direct" = no; then
1356 compile_command="$compile_command $dir/$linklib"
1357 deplibs="$deplibs $dir/$linklib"
1359 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1360 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1361 if test -n "$dllsearchpath"; then
1362 dllsearchpath="$dllsearchpath:$dllsearchdir"
1364 dllsearchpath="$dllsearchdir"
1368 elif test "$hardcode_minus_L" = no; then
1371 compile_shlibpath="$compile_shlibpath$dir:"
1374 case "$compile_command " in
1376 *) compile_command="$compile_command -L$dir";;
1378 compile_command="$compile_command -l$name"
1379 deplibs="$deplibs -L$dir -l$name"
1380 elif test "$hardcode_shlibpath_var" = no; then
1381 case ":$compile_shlibpath:" in
1383 *) compile_shlibpath="$compile_shlibpath$dir:";;
1385 compile_command="$compile_command -l$name"
1386 deplibs="$deplibs -l$name"
1393 if test "$hardcode_direct" = yes; then
1394 compile_command="$compile_command $absdir/$linklib"
1395 deplibs="$deplibs $absdir/$linklib"
1396 elif test "$hardcode_minus_L" = yes; then
1397 case "$compile_command " in
1399 *) compile_command="$compile_command -L$absdir";;
1401 compile_command="$compile_command -l$name"
1402 deplibs="$deplibs -L$absdir -l$name"
1403 elif test "$hardcode_shlibpath_var" = yes; then
1404 case ":$compile_shlibpath:" in
1406 *) compile_shlibpath="$compile_shlibpath$absdir:";;
1408 compile_command="$compile_command -l$name"
1409 deplibs="$deplibs -l$name"
1420 if test "$lib_linked" != yes; then
1421 $echo "$modename: configuration error: unsupported hardcode properties"
1425 # Finalize command for both is simple: just hardcode it.
1426 if test "$hardcode_direct" = yes; then
1427 finalize_command="$finalize_command $libdir/$linklib"
1428 elif test "$hardcode_minus_L" = yes; then
1429 case "$finalize_command " in
1431 *) finalize_command="$finalize_command -L$libdir";;
1433 finalize_command="$finalize_command -l$name"
1434 elif test "$hardcode_shlibpath_var" = yes; then
1435 case ":$finalize_shlibpath:" in
1437 *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1439 finalize_command="$finalize_command -l$name"
1441 # We cannot seem to hardcode it, guess we'll fake it.
1442 case "$finalize_command " in
1444 *) finalize_command="$finalize_command -L$libdir";;
1446 finalize_command="$finalize_command -l$name"
1449 # Transform directly to old archives if we don't build new libraries.
1450 if test -n "$pic_flag" && test -z "$old_library"; then
1451 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1455 # Here we assume that one of hardcode_direct or hardcode_minus_L
1456 # is not unsupported. This is valid on all known static and
1458 if test "$hardcode_direct" != unsupported; then
1459 test -n "$old_library" && linklib="$old_library"
1460 compile_command="$compile_command $dir/$linklib"
1461 finalize_command="$finalize_command $dir/$linklib"
1463 case "$compile_command " in
1465 *) compile_command="$compile_command -L$dir";;
1467 compile_command="$compile_command -l$name"
1468 case "$finalize_command " in
1470 *) finalize_command="$finalize_command -L$dir";;
1472 finalize_command="$finalize_command -l$name"
1476 # Add in any libraries that this one depends upon.
1477 compile_command="$compile_command$dependency_libs"
1478 finalize_command="$finalize_command$dependency_libs"
1482 # Some other compiler argument.
1484 # Unknown arguments in both finalize_command and compile_command need
1485 # to be aesthetically quoted because they are evaled later.
1486 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1488 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1495 # Now actually substitute the argument into the commands.
1496 if test -n "$arg"; then
1497 compile_command="$compile_command $arg"
1498 finalize_command="$finalize_command $arg"
1502 if test -n "$prev"; then
1503 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1508 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1509 eval arg=\"$export_dynamic_flag_spec\"
1510 compile_command="$compile_command $arg"
1511 finalize_command="$finalize_command $arg"
1515 # calculate the name of the file, without its directory
1516 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1517 libobjs_save="$libobjs"
1521 $echo "$modename: you must specify an output file" 1>&2
1527 if test -n "$link_against_libtool_libs"; then
1528 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1532 if test -n "$deplibs"; then
1533 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1536 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1537 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1540 if test -n "$rpath"; then
1541 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1544 if test -n "$xrpath"; then
1545 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1548 if test -n "$vinfo"; then
1549 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1552 if test -n "$release"; then
1553 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1556 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1557 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1560 # Now set the variables for building old libraries.
1561 build_libtool_libs=no
1566 # Make sure we only generate libraries of the form `libNAME.la'.
1567 case "$outputname" in
1569 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1570 eval libname=\"$libname_spec\"
1573 if test "$module" = no; then
1574 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1578 if test "$need_lib_prefix" != no; then
1579 # Add the "lib" prefix for modules if required
1580 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1581 eval libname=\"$libname_spec\"
1583 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1588 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1589 if test "X$output_objdir" = "X$output"; then
1590 output_objdir="$objdir"
1592 output_objdir="$output_objdir/$objdir"
1595 if test -n "$objs"; then
1596 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1600 # How the heck are we supposed to write a wrapper for a shared library?
1601 if test -n "$link_against_libtool_libs"; then
1602 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1606 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1607 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1611 if test $# -gt 2; then
1612 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1617 if test -z "$rpath"; then
1618 if test "$build_libtool_libs" = yes; then
1619 # Building a libtool convenience library.
1621 oldlibs="$output_objdir/$libname.$libext $oldlibs"
1622 build_libtool_libs=convenience
1625 dependency_libs="$deplibs"
1627 if test -n "$vinfo"; then
1628 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1631 if test -n "$release"; then
1632 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1636 # Parse the version information argument.
1637 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1638 set dummy $vinfo 0 0 0
1641 if test -n "$8"; then
1642 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1651 # Check that each of the things are valid numbers.
1653 0 | [1-9] | [1-9][0-9]*) ;;
1655 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1656 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1662 0 | [1-9] | [1-9][0-9]*) ;;
1664 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1665 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1671 0 | [1-9] | [1-9][0-9]*) ;;
1673 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1674 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1679 if test $age -gt $current; then
1680 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1681 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1685 # Calculate the version variables.
1689 case "$version_type" in
1693 major=`expr $current - $age + 1`
1694 versuffix="$major.$revision"
1695 verstring="sgi$major.$revision"
1697 # Add in all the interfaces that we are compatible with.
1699 while test $loop != 0; do
1700 iface=`expr $revision - $loop`
1701 loop=`expr $loop - 1`
1702 verstring="sgi$major.$iface:$verstring"
1707 major=.`expr $current - $age`
1708 versuffix="$major.$age.$revision"
1712 major=`expr $current - $age`
1713 versuffix=".$current.$age.$revision"
1714 verstring="$current.$age.$revision"
1716 # Add in all the interfaces that we are compatible with.
1718 while test $loop != 0; do
1719 iface=`expr $current - $loop`
1720 loop=`expr $loop - 1`
1721 verstring="$verstring:${iface}.0"
1724 # Make executables depend on our current version.
1725 verstring="$verstring:${current}.0"
1730 versuffix=".$current.$revision"
1735 versuffix=".$current.$revision";
1740 versuffix=".$current";
1744 # Like Linux, but with '-' rather than '.', since we only
1745 # want one extension on Windows 95.
1746 major=`expr $current - $age`
1747 versuffix="-$major-$age-$revision"
1751 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1752 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1757 # Clear the version info if we defaulted, and they specified a release.
1758 if test -z "$vinfo" && test -n "$release"; then
1761 if test "$need_version" = no; then
1768 # Remove version info from name if versioning should be avoided
1769 if test "$avoid_version" = yes && test "$need_version" = no; then
1775 # Check to see if the archive will have undefined symbols.
1776 if test "$allow_undefined" = yes; then
1777 if test "$allow_undefined_flag" = unsupported; then
1778 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1779 build_libtool_libs=no
1783 # Don't allow undefined symbols.
1784 allow_undefined_flag="$no_undefined_flag"
1787 dependency_libs="$deplibs"
1789 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1790 # these systems don't actually have a c library (as such)!
1793 # Add libc to deplibs on all other systems.
1794 deplibs="$deplibs -lc"
1799 # Create the output directory, or remove our outputs if we need to.
1800 if test -d $output_objdir; then
1801 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1802 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1804 $show "$mkdir $output_objdir"
1805 $run $mkdir $output_objdir
1807 if test $status -ne 0 && test ! -d $output_objdir; then
1812 # Now set the variables for building old libraries.
1813 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1814 oldlibs="$oldlibs $output_objdir/$libname.$libext"
1816 # Transform .lo files to .o files.
1817 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1820 if test "$build_libtool_libs" = yes; then
1821 # Transform deplibs into only deplibs that can be linked in shared.
1823 libname_save=$libname
1824 release_save=$release
1825 versuffix_save=$versuffix
1827 # I'm not sure if I'm treating the release correctly. I think
1828 # release should show up in the -l (ie -lgmp5) so we don't want to
1829 # add it in twice. Is that correct?
1835 case "$deplibs_check_method" in
1837 # Don't check for shared/static. Everything works.
1838 # This might be a little naive. We might want to check
1839 # whether the library exists or not. But this is on
1840 # osf3 & osf4 and I'm not really sure... Just
1841 # implementing what was already the behaviour.
1845 # This code stresses the "libraries are programs" paradigm to its
1846 # limits. Maybe even breaks it. We compile a program, linking it
1847 # against the deplibs as a proxy for the library. Then we can check
1848 # whether they linked in statically or dynamically with ldd.
1850 cat > conftest.c <<EOF
1851 int main() { return 0; }
1854 $C_compiler -o conftest conftest.c $deplibs
1855 if test $? -eq 0 ; then
1856 ldd_output=`ldd conftest`
1857 for i in $deplibs; do
1858 name="`expr $i : '-l\(.*\)'`"
1859 # If $name is empty we are operating on a -L argument.
1860 if test "$name" != "" ; then
1861 libname=`eval \\$echo \"$libname_spec\"`
1862 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1863 set dummy $deplib_matches
1865 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1866 newdeplibs="$newdeplibs $i"
1870 echo "*** Warning: This library needs some functionality provided by $i."
1871 echo "*** I have the capability to make that library automatically link in when"
1872 echo "*** you link to this library. But I can only do this if you have a"
1873 echo "*** shared version of the library, which you do not appear to have."
1876 newdeplibs="$newdeplibs $i"
1880 # Error occured in the first compile. Let's try to salvage the situation:
1881 # Compile a seperate program for each library.
1882 for i in $deplibs; do
1883 name="`expr $i : '-l\(.*\)'`"
1884 # If $name is empty we are operating on a -L argument.
1885 if test "$name" != "" ; then
1887 $C_compiler -o conftest conftest.c $i
1889 if test $? -eq 0 ; then
1890 ldd_output=`ldd conftest`
1891 libname=`eval \\$echo \"$libname_spec\"`
1892 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1893 set dummy $deplib_matches
1895 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1896 newdeplibs="$newdeplibs $i"
1900 echo "*** Warning: This library needs some functionality provided by $i."
1901 echo "*** I have the capability to make that library automatically link in when"
1902 echo "*** you link to this library. But I can only do this if you have a"
1903 echo "*** shared version of the library, which you do not appear to have."
1908 echo "*** Warning! Library $i is needed by this library but I was not able to"
1909 echo "*** make it link in! You will probably need to install it or some"
1910 echo "*** library that it depends on before this library will be fully"
1911 echo "*** functional. Installing it before continuing would be even better."
1914 newdeplibs="$newdeplibs $i"
1920 set dummy $deplibs_check_method
1921 file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1922 for a_deplib in $deplibs; do
1923 name="`expr $a_deplib : '-l\(.*\)'`"
1924 # If $name is empty we are operating on a -L argument.
1925 if test "$name" != "" ; then
1926 libname=`eval \\$echo \"$libname_spec\"`
1927 for i in $lib_search_path; do
1928 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1929 for potent_lib in $potential_libs; do
1930 # Follow soft links.
1931 if ls -lLd "$potent_lib" 2>/dev/null \
1932 | grep " -> " >/dev/null; then
1935 # The statement above tries to avoid entering an
1936 # endless loop below, in case of cyclic links.
1937 # We might still enter an endless loop, since a link
1938 # loop can be closed while we follow links,
1940 potlib="$potent_lib"
1941 while test -h "$potlib" 2>/dev/null; do
1942 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1943 case "$potliblink" in
1944 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1945 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1948 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1950 | egrep "$file_magic_regex" > /dev/null; then
1951 newdeplibs="$newdeplibs $a_deplib"
1957 if test -n "$a_deplib" ; then
1960 echo "*** Warning: This library needs some functionality provided by $a_deplib."
1961 echo "*** I have the capability to make that library automatically link in when"
1962 echo "*** you link to this library. But I can only do this if you have a"
1963 echo "*** shared version of the library, which you do not appear to have."
1966 # Add a -L argument.
1967 newdeplibs="$newdeplibs $a_deplib"
1969 done # Gone through all deplibs.
1973 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1974 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
1975 grep . >/dev/null; then
1977 if test "X$deplibs_check_method" = "Xnone"; then
1978 echo "*** Warning: inter-library dependencies are not supported in this platform."
1980 echo "*** Warning: inter-library dependencies are not known to be supported."
1982 echo "*** All declared inter-library dependencies are being dropped."
1987 versuffix=$versuffix_save
1989 release=$release_save
1990 libname=$libname_save
1993 if test "$droppeddeps" = yes; then
1994 if test "$module" = yes; then
1996 echo "*** Warning: libtool could not satisfy all declared inter-library"
1997 echo "*** dependencies of module $libname. Therefore, libtool will create"
1998 echo "*** a static module, that should work as long as the dlopening"
1999 echo "*** application is linked with the -dlopen flag."
2000 if test -z "$global_symbol_pipe"; then
2002 echo "*** However, this would only work if libtool was able to extract symbol"
2003 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2004 echo "*** not find such a program. So, this module is probably useless."
2005 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2007 if test "$build_old_libs" = no; then
2008 oldlibs="$output_objdir/$libname.$libext"
2009 build_libtool_libs=module
2012 build_libtool_libs=no
2015 echo "*** The inter-library dependencies that have been dropped here will be"
2016 echo "*** automatically added whenever a program is linked with this library"
2017 echo "*** or is declared to -dlopen it."
2020 # Done checking deplibs!
2024 # All the library-specific variables (install_libdir is set above).
2029 # Test again, we may have decided not to build it any more
2030 if test "$build_libtool_libs" = yes; then
2031 # Get the real and link names of the library.
2032 eval library_names=\"$library_names_spec\"
2033 set dummy $library_names
2037 if test -n "$soname_spec"; then
2038 eval soname=\"$soname_spec\"
2043 lib="$output_objdir/$realname"
2046 linknames="$linknames $link"
2049 # Ensure that we have .o objects for linkers which dislike .lo
2050 # (e.g. aix) incase we are running --disable-static
2051 for obj in $libobjs; do
2052 oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
2053 if test ! -f $oldobj; then
2054 $show "${LN_S} $obj $oldobj"
2055 $run ${LN_S} $obj $oldobj || exit $?
2059 # Use standard objects if they are pic
2060 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2062 # Prepare the list of exported symbols
2063 if test -z "$export_symbols"; then
2064 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2065 $show "generating symbol list for \`$libname.la'"
2066 export_symbols="$output_objdir/$libname.exp"
2067 $run $rm $export_symbols
2068 eval cmds=\"$export_symbols_cmds\"
2069 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2070 for cmd in $cmds; do
2073 $run eval "$cmd" || exit $?
2076 if test -n "$export_symbols_regex"; then
2077 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2078 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2079 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2080 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2085 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2086 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2089 if test -n "$convenience"; then
2090 if test -n "$whole_archive_flag_spec"; then
2091 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2093 gentop="$output_objdir/${outputname}x"
2094 $show "${rm}r $gentop"
2095 $run ${rm}r "$gentop"
2096 $show "mkdir $gentop"
2097 $run mkdir "$gentop"
2099 if test $status -ne 0 && test ! -d "$gentop"; then
2102 generated="$generated $gentop"
2104 for xlib in $convenience; do
2105 # Extract the objects.
2107 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2108 *) xabs=`pwd`"/$xlib" ;;
2110 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2111 xdir="$gentop/$xlib"
2113 $show "${rm}r $xdir"
2118 if test $status -ne 0 && test ! -d "$xdir"; then
2121 $show "(cd $xdir && $AR x $xabs)"
2122 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2124 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2129 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2130 eval flag=\"$thread_safe_flag_spec\"
2131 linkopts="$linkopts $flag"
2134 # Do each of the archive commands.
2135 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2136 eval cmds=\"$archive_expsym_cmds\"
2138 eval cmds=\"$archive_cmds\"
2140 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2141 for cmd in $cmds; do
2144 $run eval "$cmd" || exit $?
2148 # Create links to the real library.
2149 for linkname in $linknames; do
2150 if test "$realname" != "$linkname"; then
2151 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2152 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2156 # If -module or -export-dynamic was specified, set the dlname.
2157 if test "$module" = yes || test "$export_dynamic" = yes; then
2158 # On all known operating systems, these are identical.
2165 if test -n "$link_against_libtool_libs"; then
2166 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2170 if test -n "$deplibs"; then
2171 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2174 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2175 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2178 if test -n "$rpath"; then
2179 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2182 if test -n "$xrpath"; then
2183 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2186 if test -n "$vinfo"; then
2187 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2190 if test -n "$release"; then
2191 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2196 if test -n "$objs"; then
2197 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2201 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2209 # Delete the old objects.
2210 $run $rm $obj $libobj
2212 # Objects from convenience libraries. This assumes
2213 # single-version convenience libraries. Whenever we create
2214 # different ones for PIC/non-PIC, this we'll have to duplicate
2218 # reload_cmds runs $LD directly, so let us get rid of
2219 # -Wl from whole_archive_flag_spec
2222 if test -n "$convenience"; then
2223 if test -n "$whole_archive_flag_spec"; then
2224 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2226 gentop="$output_objdir/${obj}x"
2227 $show "${rm}r $gentop"
2228 $run ${rm}r "$gentop"
2229 $show "mkdir $gentop"
2230 $run mkdir "$gentop"
2232 if test $status -ne 0 && test ! -d "$gentop"; then
2235 generated="$generated $gentop"
2237 for xlib in $convenience; do
2238 # Extract the objects.
2240 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2241 *) xabs=`pwd`"/$xlib" ;;
2243 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2244 xdir="$gentop/$xlib"
2246 $show "${rm}r $xdir"
2251 if test $status -ne 0 && test ! -d "$xdir"; then
2254 $show "(cd $xdir && $AR x $xabs)"
2255 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2257 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2262 # Create the old-style object.
2263 reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2266 eval cmds=\"$reload_cmds\"
2267 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2268 for cmd in $cmds; do
2271 $run eval "$cmd" || exit $?
2275 # Exit if we aren't doing a library object file.
2276 if test -z "$libobj"; then
2277 if test -n "$gentop"; then
2278 $show "${rm}r $gentop"
2285 if test "$build_libtool_libs" != yes; then
2286 if test -n "$gentop"; then
2287 $show "${rm}r $gentop"
2291 # Create an invalid libtool object if no PIC, so that we don't
2292 # accidentally link it into a program.
2293 $show "echo timestamp > $libobj"
2294 $run eval "echo timestamp > $libobj" || exit $?
2298 if test -n "$pic_flag"; then
2299 # Only do commands if we really have different PIC objects.
2300 reload_objs="$libobjs $reload_conv_objs"
2302 eval cmds=\"$reload_cmds\"
2303 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2304 for cmd in $cmds; do
2307 $run eval "$cmd" || exit $?
2311 # Just create a symlink.
2314 $show "$LN_S $obj $libobj"
2315 $run $LN_S $obj $libobj || exit $?
2318 if test -n "$gentop"; then
2319 $show "${rm}r $gentop"
2326 # Anything else should be a program.
2328 if test -n "$vinfo"; then
2329 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2332 if test -n "$release"; then
2333 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2336 if test "$preload" = yes; then
2337 if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2338 test "$dlopen_self_static" = unknown; then
2339 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2343 if test -n "$rpath$xrpath"; then
2344 # If the user specified any rpath flags, then add them.
2345 for libdir in $rpath $xrpath; do
2346 # This is the magic to use -rpath.
2347 case "$compile_rpath " in
2349 *) compile_rpath="$compile_rpath $libdir" ;;
2351 case "$finalize_rpath " in
2353 *) finalize_rpath="$finalize_rpath $libdir" ;;
2358 # Now hardcode the library paths
2361 for libdir in $compile_rpath $finalize_rpath; do
2362 if test -n "$hardcode_libdir_flag_spec"; then
2363 if test -n "$hardcode_libdir_separator"; then
2364 if test -z "$hardcode_libdirs"; then
2365 hardcode_libdirs="$libdir"
2367 # Just accumulate the unique libdirs.
2368 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2369 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2372 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2377 eval flag=\"$hardcode_libdir_flag_spec\"
2378 rpath="$rpath $flag"
2380 elif test -n "$runpath_var"; then
2381 case "$perm_rpath " in
2383 *) perm_rpath="$perm_rpath $libdir" ;;
2387 # Substitute the hardcoded libdirs into the rpath.
2388 if test -n "$hardcode_libdir_separator" &&
2389 test -n "$hardcode_libdirs"; then
2390 libdir="$hardcode_libdirs"
2391 eval rpath=\" $hardcode_libdir_flag_spec\"
2393 compile_rpath="$rpath"
2397 for libdir in $finalize_rpath; do
2398 if test -n "$hardcode_libdir_flag_spec"; then
2399 if test -n "$hardcode_libdir_separator"; then
2400 if test -z "$hardcode_libdirs"; then
2401 hardcode_libdirs="$libdir"
2403 # Just accumulate the unique libdirs.
2404 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2405 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2408 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2413 eval flag=\"$hardcode_libdir_flag_spec\"
2414 rpath="$rpath $flag"
2416 elif test -n "$runpath_var"; then
2417 case "$finalize_perm_rpath " in
2419 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2423 # Substitute the hardcoded libdirs into the rpath.
2424 if test -n "$hardcode_libdir_separator" &&
2425 test -n "$hardcode_libdirs"; then
2426 libdir="$hardcode_libdirs"
2427 eval rpath=\" $hardcode_libdir_flag_spec\"
2429 finalize_rpath="$rpath"
2431 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2432 if test "X$output_objdir" = "X$output"; then
2433 output_objdir="$objdir"
2435 output_objdir="$output_objdir/$objdir"
2438 # Create the binary in the object directory, then wrap it.
2439 if test ! -d $output_objdir; then
2440 $show "$mkdir $output_objdir"
2441 $run $mkdir $output_objdir
2443 if test $status -ne 0 && test ! -d $output_objdir; then
2448 if test -n "$libobjs" && test "$build_old_libs" = yes; then
2449 # Transform all the library objects into standard objects.
2450 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2451 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2455 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2456 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2457 dlsyms="${outputname}S.c"
2459 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2463 if test -n "$dlsyms"; then
2467 # Discover the nlist of each of the dlfiles.
2468 nlist="$output_objdir/${outputname}.nm"
2470 $show "$rm $nlist ${nlist}S ${nlist}T"
2471 $run $rm "$nlist" "${nlist}S" "${nlist}T"
2473 # Parse the name list into a source file.
2474 $show "creating $output_objdir/$dlsyms"
2476 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2477 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2478 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2484 /* Prevent the only kind of declaration conflicts we can make. */
2485 #define lt_preloaded_symbols some_other_symbol
2487 /* External symbol declarations for the compiler. */\
2490 if test "$dlself" = yes; then
2491 $show "generating symbol list for \`$output'"
2493 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2495 # Add our own program objects to the symbol list.
2496 progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2497 for arg in $progfiles; do
2498 $show "extracting global C symbols from \`$arg'"
2499 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2502 if test -n "$exclude_expsyms"; then
2503 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2504 $run eval '$mv "$nlist"T "$nlist"'
2507 if test -n "$export_symbols_regex"; then
2508 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2509 $run eval '$mv "$nlist"T "$nlist"'
2512 # Prepare the list of exported symbols
2513 if test -z "$export_symbols"; then
2514 export_symbols="$output_objdir/$output.exp"
2515 $run $rm $export_symbols
2516 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2518 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2519 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2520 $run eval 'mv "$nlist"T "$nlist"'
2524 for arg in $dlprefiles; do
2525 $show "extracting global C symbols from \`$arg'"
2526 name=`echo "$arg" | sed -e 's%^.*/%%'`
2527 $run eval 'echo ": $name " >> "$nlist"'
2528 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2531 if test -z "$run"; then
2532 # Make sure we have at least an empty file.
2533 test -f "$nlist" || : > "$nlist"
2535 if test -n "$exclude_expsyms"; then
2536 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2537 $mv "$nlist"T "$nlist"
2540 # Try sorting and uniquifying the output.
2541 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2544 grep -v "^: " < "$nlist" > "$nlist"S
2547 if test -f "$nlist"S; then
2548 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2550 echo '/* NONE */' >> "$output_objdir/$dlsyms"
2553 $echo >> "$output_objdir/$dlsyms" "\
2555 #undef lt_preloaded_symbols
2557 #if defined (__STDC__) && __STDC__
2558 # define lt_ptr_t void *
2560 # define lt_ptr_t char *
2564 /* The mapping between symbol names and symbols. */
2569 lt_preloaded_symbols[] =
2573 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2574 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2575 < "$nlist" >> "$output_objdir/$dlsyms"
2577 $echo >> "$output_objdir/$dlsyms" "\
2581 /* This works around a problem in FreeBSD linker */
2582 #ifdef FREEBSD_WORKAROUND
2583 static const void *lt_preloaded_setup() {
2584 return lt_preloaded_symbols;
2594 pic_flag_for_symtable=
2596 # compiling the symbol table file with pic_flag works around
2597 # a FreeBSD bug that causes programs to crash when -lm is
2598 # linked before any other PIC object. But we must not use
2599 # pic_flag when linking with -static. The problem exists in
2600 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2601 *-*-freebsd2*|*-*-freebsd3.0*)
2602 case "$compile_command " in
2604 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2608 # Now compile the dynamic symbol file.
2609 $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2610 $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2612 # Clean up the generated files.
2613 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2614 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2616 # Transform the symbol file into the correct name.
2617 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2618 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2621 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2626 # We keep going just in case the user didn't refer to
2627 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2628 # really was required.
2630 # Nullify the symbol file.
2631 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2632 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2635 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2636 # Replace the output file specification.
2637 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2638 link_command="$compile_command$compile_rpath"
2640 # We have no uninstalled library dependencies, so finalize right now.
2641 $show "$link_command"
2642 $run eval "$link_command"
2645 # Delete the generated files.
2646 if test -n "$dlsyms"; then
2647 $show "$rm $output_objdir/${outputname}S.${objext}"
2648 $run $rm "$output_objdir/${outputname}S.${objext}"
2654 if test -n "$shlibpath_var"; then
2655 # We should set the shlibpath_var
2657 for dir in $temp_rpath; do
2659 [\\/]* | [A-Za-z]:[\\/]*)
2664 # Relative path: add a thisdir entry.
2665 rpath="$rpath\$thisdir/$dir:"
2672 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2673 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2675 if test -n "$finalize_shlibpath"; then
2676 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2681 if test -n "$runpath_var"; then
2682 if test -n "$perm_rpath"; then
2683 # We should set the runpath_var.
2685 for dir in $perm_rpath; do
2688 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2690 if test -n "$finalize_perm_rpath"; then
2691 # We should set the runpath_var.
2693 for dir in $finalize_perm_rpath; do
2696 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2700 if test "$hardcode_action" = relink; then
2701 # Fast installation is not supported
2702 link_command="$compile_var$compile_command$compile_rpath"
2703 relink_command="$finalize_var$finalize_command$finalize_rpath"
2705 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2706 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2708 if test "$fast_install" != no; then
2709 link_command="$finalize_var$compile_command$finalize_rpath"
2710 if test "$fast_install" = yes; then
2711 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2713 # fast_install is set to needless
2717 link_command="$compile_var$compile_command$compile_rpath"
2718 relink_command="$finalize_var$finalize_command$finalize_rpath"
2722 # Replace the output file specification.
2723 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2725 # Delete the old output files.
2726 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2728 $show "$link_command"
2729 $run eval "$link_command" || exit $?
2731 # Now create the wrapper script.
2732 $show "creating $output"
2734 # Quote the relink command for shipping.
2735 if test -n "$relink_command"; then
2736 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2739 # Quote $echo for shipping.
2740 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2742 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2743 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2745 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2747 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2750 # Only actually do things if our run command is non-null.
2751 if test -z "$run"; then
2752 # win32 will think the script is a binary if it has
2753 # a .exe suffix, so we strip it off here.
2755 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2758 trap "$rm $output; exit 1" 1 2 15
2763 # $output - temporary wrapper script for $objdir/$outputname
2764 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2766 # The $output program cannot be directly executed until all the libtool
2767 # libraries that it depends on are installed.
2769 # This wrapper script should never be moved out of the build directory.
2770 # If it is, it will not operate correctly.
2772 # Sed substitution that helps us do robust quoting. It backslashifies
2773 # metacharacters that are still active within double-quoted strings.
2774 Xsed='sed -e 1s/^X//'
2775 sed_quote_subst='$sed_quote_subst'
2777 # The HP-UX ksh and POSIX shell print the target directory to stdout
2779 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
2781 relink_command=\"$relink_command\"
2783 # This environment variable determines our operation mode.
2784 if test \"\$libtool_install_magic\" = \"$magic\"; then
2785 # install mode needs the following variable:
2786 link_against_libtool_libs='$link_against_libtool_libs'
2788 # When we are sourced in execute mode, \$file and \$echo are already set.
2789 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2792 # Make sure echo works.
2793 if test \"X\$1\" = X--no-reexec; then
2794 # Discard the --no-reexec flag, and continue.
2796 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2797 # Yippee, \$echo works!
2800 # Restart under the correct shell, and then maybe \$echo will work.
2801 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2807 # Find the directory that this script lives in.
2808 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2809 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2811 # Follow symbolic links until we get to the real thisdir.
2812 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2813 while test -n \"\$file\"; do
2814 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2816 # If there was a directory component, then change thisdir.
2817 if test \"x\$destdir\" != \"x\$file\"; then
2818 case \"\$destdir\" in
2819 [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2820 *) thisdir=\"\$thisdir/\$destdir\" ;;
2824 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2825 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2828 # Try to get the absolute directory name.
2829 absdir=\`cd \"\$thisdir\" && pwd\`
2830 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2833 if test "$fast_install" = yes; then
2835 program=lt-'$outputname'
2836 progdir=\"\$thisdir/$objdir\"
2838 if test ! -f \"\$progdir/\$program\" || \\
2839 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2840 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2842 file=\"\$\$-\$program\"
2844 if test ! -d \"\$progdir\"; then
2845 $mkdir \"\$progdir\"
2847 $rm \"\$progdir/\$file\"
2852 # relink executable if necessary
2853 if test -n \"\$relink_command\"; then
2854 if (cd \"\$thisdir\" && eval \$relink_command); then :
2856 $rm \"\$progdir/\$file\"
2861 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2862 { $rm \"\$progdir/\$program\";
2863 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2864 $rm \"\$progdir/\$file\"
2868 program='$outputname$exeext'
2869 progdir=\"\$thisdir/$objdir\"
2875 if test -f \"\$progdir/\$program\"; then"
2877 # Export our shlibpath_var if we have one.
2878 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2880 # Add our own library path to $shlibpath_var
2881 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2883 # Some systems cannot cope with colon-terminated $shlibpath_var
2884 # The second colon is a workaround for a bug in BeOS R4 sed
2885 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2887 export $shlibpath_var
2891 # fixup the dll searchpath if we need to.
2892 if test -n "$dllsearchpath"; then
2894 # Add the dll search path components to the executable PATH
2895 PATH=$dllsearchpath:\$PATH
2900 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2901 # Run the actual program with our arguments.
2904 *-*-cygwin* | *-*-mingw | *-*-os2*)
2905 # win32 systems need to use the prog path for dll
2908 exec \$progdir\\\\\$program \${1+\"\$@\"}
2913 # Export the path to the program.
2914 PATH=\"\$progdir:\$PATH\"
2917 exec \$program \${1+\"\$@\"}
2922 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2926 # The program doesn't exist.
2927 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2928 \$echo \"This script is just a wrapper for \$program.\" 1>&2
2929 echo \"See the $PACKAGE documentation for more information.\" 1>&2
2940 # See if we need to build an old-fashioned archive.
2941 for oldlib in $oldlibs; do
2943 if test "$build_libtool_libs" = convenience; then
2944 oldobjs="$libobjs_save"
2945 addlibs="$convenience"
2946 build_libtool_libs=no
2948 if test "$build_libtool_libs" = module; then
2949 oldobjs="$libobjs_save"
2950 build_libtool_libs=no
2952 oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2954 addlibs="$old_convenience"
2957 if test -n "$addlibs"; then
2958 gentop="$output_objdir/${outputname}x"
2959 $show "${rm}r $gentop"
2960 $run ${rm}r "$gentop"
2961 $show "mkdir $gentop"
2962 $run mkdir "$gentop"
2964 if test $status -ne 0 && test ! -d "$gentop"; then
2967 generated="$generated $gentop"
2969 # Add in members from convenience archives.
2970 for xlib in $addlibs; do
2971 # Extract the objects.
2973 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2974 *) xabs=`pwd`"/$xlib" ;;
2976 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2977 xdir="$gentop/$xlib"
2979 $show "${rm}r $xdir"
2984 if test $status -ne 0 && test ! -d "$xdir"; then
2987 $show "(cd $xdir && $AR x $xabs)"
2988 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2990 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
2994 # Do each command in the archive commands.
2995 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
2996 eval cmds=\"$old_archive_from_new_cmds\"
2998 # Ensure that we have .o objects in place incase we decided
2999 # not to build a shared library, and have fallen back to building
3000 # static libs even though --disable-static was passed!
3001 for oldobj in $oldobjs; do
3002 if test ! -f $oldobj; then
3003 obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
3004 $show "${LN_S} $obj $oldobj"
3005 $run ${LN_S} $obj $oldobj || exit $?
3009 eval cmds=\"$old_archive_cmds\"
3011 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3012 for cmd in $cmds; do
3015 $run eval "$cmd" || exit $?
3020 if test -n "$generated"; then
3021 $show "${rm}r$generated"
3022 $run ${rm}r$generated
3025 # Now create the libtool archive.
3029 test "$build_old_libs" = yes && old_library="$libname.$libext"
3030 $show "creating $output"
3032 if test -n "$xrpath"; then
3034 for libdir in $xrpath; do
3035 temp_xrpath="$temp_xrpath -R$libdir"
3037 dependency_libs="$temp_xrpath $dependency_libs"
3040 # Only create the output if not a dry run.
3041 if test -z "$run"; then
3042 for installed in no yes; do
3043 if test "$installed" = yes; then
3044 if test -z "$install_libdir"; then
3047 output="$output_objdir/$outputname"i
3051 # $outputname - a libtool library file
3052 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3054 # Please DO NOT delete this file!
3055 # It is necessary for linking the library.
3057 # The name that we can dlopen(3).
3060 # Names of this library.
3061 library_names='$library_names'
3063 # The name of the static archive.
3064 old_library='$old_library'
3066 # Libraries that this one depends upon.
3067 dependency_libs='$dependency_libs'
3069 # Version information for $libname.
3074 # Is this an already installed library?
3075 installed=$installed
3077 # Directory that this library needs to be installed in:
3078 libdir='$install_libdir'\
3083 # Do a symbolic link so that the libtool archive can be found in
3084 # LD_LIBRARY_PATH before the program is installed.
3085 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3086 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3092 # libtool install mode
3094 modename="$modename: install"
3096 # There may be an optional sh(1) argument at the beginning of
3097 # install_prog (especially on Windows NT).
3098 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3099 # Aesthetically quote it.
3100 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3102 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3106 install_prog="$arg "
3114 # The real first argument should be the name of the installation program.
3115 # Aesthetically quote it.
3116 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3118 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3122 install_prog="$install_prog$arg"
3124 # We need to accept at least all the BSD install flags.
3134 if test -n "$dest"; then
3135 files="$files $dest"
3153 # If the previous option needed an argument, then skip it.
3154 if test -n "$prev"; then
3163 # Aesthetically quote the argument.
3164 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3166 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3170 install_prog="$install_prog $arg"
3173 if test -z "$install_prog"; then
3174 $echo "$modename: you must specify an install program" 1>&2
3179 if test -n "$prev"; then
3180 $echo "$modename: the \`$prev' option requires an argument" 1>&2
3185 if test -z "$files"; then
3186 if test -z "$dest"; then
3187 $echo "$modename: no file or destination specified" 1>&2
3189 $echo "$modename: you must specify a destination" 1>&2
3195 # Strip any trailing slash from the destination.
3196 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3198 # Check to see that the destination is a directory.
3199 test -d "$dest" && isdir=yes
3200 if test "$isdir" = yes; then
3204 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3205 test "X$destdir" = "X$dest" && destdir=.
3206 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3208 # Not a directory, so check to see that there is only one file specified.
3210 if test $# -gt 2; then
3211 $echo "$modename: \`$dest' is not a directory" 1>&2
3217 [\\/]* | [A-Za-z]:[\\/]*) ;;
3219 for file in $files; do
3223 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3232 # This variable tells wrapper scripts just to set variables rather
3233 # than running their programs.
3234 libtool_install_magic="$magic"
3239 for file in $files; do
3241 # Do each installation.
3244 # Do the static libraries later.
3245 staticlibs="$staticlibs $file"
3249 # Check to see that this really is a libtool archive.
3250 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3252 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3259 # If there is no directory component, then add one.
3261 */* | *\\*) . $file ;;
3265 # Add the libdir to current_libdirs if it is the destination.
3266 if test "X$destdir" = "X$libdir"; then
3267 case "$current_libdirs " in
3269 *) current_libdirs="$current_libdirs $libdir" ;;
3272 # Note the libdir as a future libdir.
3273 case "$future_libdirs " in
3275 *) future_libdirs="$future_libdirs $libdir" ;;
3279 dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3280 test "X$dir" = "X$file/" && dir=
3283 # See the names of the shared library.
3284 set dummy $library_names
3285 if test -n "$2"; then
3290 # Install the shared library and build the symlinks.
3291 $show "$install_prog $dir/$realname $destdir/$realname"
3292 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3294 if test $# -gt 0; then
3295 # Delete the old symlinks, and create new ones.
3298 if test "$linkname" != "$realname"; then
3299 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3300 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3305 # Do each command in the postinstall commands.
3306 lib="$destdir/$realname"
3307 eval cmds=\"$postinstall_cmds\"
3308 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3309 for cmd in $cmds; do
3312 $run eval "$cmd" || exit $?
3317 # Install the pseudo-library for information purposes.
3318 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3319 instname="$dir/$name"i
3320 $show "$install_prog $instname $destdir/$name"
3321 $run eval "$install_prog $instname $destdir/$name" || exit $?
3323 # Maybe install the static library, too.
3324 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3328 # Install (i.e. copy) a libtool object.
3330 # Figure out destination file name, if it wasn't already specified.
3331 if test -n "$destname"; then
3332 destfile="$destdir/$destname"
3334 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3335 destfile="$destdir/$destfile"
3338 # Deduce the name of the destination old-style object file.
3341 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3344 staticdest="$destfile"
3348 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3354 # Install the libtool object if requested.
3355 if test -n "$destfile"; then
3356 $show "$install_prog $file $destfile"
3357 $run eval "$install_prog $file $destfile" || exit $?
3360 # Install the old object if enabled.
3361 if test "$build_old_libs" = yes; then
3362 # Deduce the name of the old-style object file.
3363 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3365 $show "$install_prog $staticobj $staticdest"
3366 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3372 # Figure out destination file name, if it wasn't already specified.
3373 if test -n "$destname"; then
3374 destfile="$destdir/$destname"
3376 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3377 destfile="$destdir/$destfile"
3380 # Do a test to see if this is really a libtool program.
3381 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3382 link_against_libtool_libs=
3385 # If there is no directory component, then add one.
3387 */* | *\\*) . $file ;;
3391 # Check the variables that should have been set.
3392 if test -z "$link_against_libtool_libs"; then
3393 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3398 for lib in $link_against_libtool_libs; do
3399 # Check to see that each library is installed.
3401 if test -f "$lib"; then
3402 # If there is no directory component, then add one.
3404 */* | *\\*) . $lib ;;
3408 libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3409 if test -n "$libdir" && test ! -f "$libfile"; then
3410 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3416 if test "$fast_install" = no && test -n "$relink_command"; then
3417 if test "$finalize" = yes && test -z "$run"; then
3419 test -n "$TMPDIR" && tmpdir="$TMPDIR"
3420 tmpdir="$tmpdir/libtool-$$"
3421 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3423 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3426 outputname="$tmpdir/$file"
3427 # Replace the output file specification.
3428 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3430 $show "$relink_command"
3431 if $run eval "$relink_command"; then :
3433 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3439 $echo "$modename: warning: cannot relink \`$file'" 1>&2
3442 # Install the binary that we compiled earlier.
3443 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3447 $show "$install_prog$stripme $file $destfile"
3448 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3449 test -n "$outputname" && ${rm}r "$tmpdir"
3454 for file in $staticlibs; do
3455 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3457 # Set up the ranlib parameters.
3458 oldlib="$destdir/$name"
3460 $show "$install_prog $file $oldlib"
3461 $run eval "$install_prog \$file \$oldlib" || exit $?
3463 # Do each command in the postinstall commands.
3464 eval cmds=\"$old_postinstall_cmds\"
3465 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3466 for cmd in $cmds; do
3469 $run eval "$cmd" || exit $?
3474 if test -n "$future_libdirs"; then
3475 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3478 if test -n "$current_libdirs"; then
3479 # Maybe just do a dry run.
3480 test -n "$run" && current_libdirs=" -n$current_libdirs"
3481 exec $SHELL $0 --finish$current_libdirs
3488 # libtool finish mode
3490 modename="$modename: finish"
3494 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3497 libdirs="$libdirs $dir"
3500 for libdir in $libdirs; do
3501 if test -n "$finish_cmds"; then
3502 # Do each command in the finish commands.
3503 eval cmds=\"$finish_cmds\"
3504 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3505 for cmd in $cmds; do
3508 $run eval "$cmd" || admincmds="$admincmds
3513 if test -n "$finish_eval"; then
3514 # Do the single finish_eval.
3515 eval cmds=\"$finish_eval\"
3516 $run eval "$cmds" || admincmds="$admincmds
3522 # Exit here if they wanted silent mode.
3523 test "$show" = : && exit 0
3525 echo "----------------------------------------------------------------------"
3526 echo "Libraries have been installed in:"
3527 for libdir in $libdirs; do
3531 echo "If you ever happen to want to link against installed libraries"
3532 echo "in a given directory, LIBDIR, you must either use libtool, and"
3533 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3534 echo "flag during linking and do at least one of the following:"
3535 if test -n "$shlibpath_var"; then
3536 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3537 echo " during execution"
3539 if test -n "$runpath_var"; then
3540 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3541 echo " during linking"
3543 if test -n "$hardcode_libdir_flag_spec"; then
3545 eval flag=\"$hardcode_libdir_flag_spec\"
3547 echo " - use the \`$flag' linker flag"
3549 if test -n "$admincmds"; then
3550 echo " - have your system administrator run these commands:$admincmds"
3552 if test -f /etc/ld.so.conf; then
3553 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3556 echo "See any operating system documentation about shared libraries for"
3557 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3558 echo "----------------------------------------------------------------------"
3562 # libtool execute mode
3564 modename="$modename: execute"
3566 # The first argument is the command name.
3568 if test -z "$cmd"; then
3569 $echo "$modename: you must specify a COMMAND" 1>&2
3574 # Handle -dlopen flags immediately.
3575 for file in $execute_dlfiles; do
3576 if test ! -f "$file"; then
3577 $echo "$modename: \`$file' is not a file" 1>&2
3585 # Check to see that this really is a libtool archive.
3586 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3588 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3593 # Read the libtool library.
3597 # If there is no directory component, then add one.
3599 */* | *\\*) . $file ;;
3603 # Skip this library if it cannot be dlopened.
3604 if test -z "$dlname"; then
3605 # Warn if it was a shared library.
3606 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3610 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3611 test "X$dir" = "X$file" && dir=.
3613 if test -f "$dir/$objdir/$dlname"; then
3616 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3622 # Just add the directory containing the .lo file.
3623 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3624 test "X$dir" = "X$file" && dir=.
3628 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3633 # Get the absolute pathname.
3634 absdir=`cd "$dir" && pwd`
3635 test -n "$absdir" && dir="$absdir"
3637 # Now add the directory to shlibpath_var.
3638 if eval "test -z \"\$$shlibpath_var\""; then
3639 eval "$shlibpath_var=\"\$dir\""
3641 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3645 # This variable tells wrapper scripts just to set shlibpath_var
3646 # rather than running their programs.
3647 libtool_execute_magic="$magic"
3649 # Check if any of the arguments is a wrapper script.
3656 # Do a test to see if this is really a libtool program.
3657 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3658 # If there is no directory component, then add one.
3660 */* | *\\*) . $file ;;
3664 # Transform arg to wrapped name.
3665 file="$progdir/$program"
3669 # Quote arguments (to preserve shell metacharacters).
3670 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3671 args="$args \"$file\""
3674 if test -z "$run"; then
3675 # Export the shlibpath_var.
3676 eval "export $shlibpath_var"
3678 # Restore saved enviroment variables
3679 if test "${save_LC_ALL+set}" = set; then
3680 LC_ALL="$save_LC_ALL"; export LC_ALL
3682 if test "${save_LANG+set}" = set; then
3683 LANG="$save_LANG"; export LANG
3686 # Now actually exec the command.
3687 eval "exec \$cmd$args"
3689 $echo "$modename: cannot exec \$cmd$args"
3692 # Display what would be done.
3693 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3694 $echo "export $shlibpath_var"
3700 # libtool uninstall mode
3702 modename="$modename: uninstall"
3709 -*) rm="$rm $arg" ;;
3710 *) files="$files $arg" ;;
3714 if test -z "$rm"; then
3715 $echo "$modename: you must specify an RM program" 1>&2
3720 for file in $files; do
3721 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3722 test "X$dir" = "X$file" && dir=.
3723 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3729 # Possibly a libtool archive, so verify it.
3730 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3733 # Delete the libtool libraries and symlinks.
3734 for n in $library_names; do
3735 rmfiles="$rmfiles $dir/$n"
3737 test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3739 $show "$rm $rmfiles"
3742 if test -n "$library_names"; then
3743 # Do each command in the postuninstall commands.
3744 eval cmds=\"$postuninstall_cmds\"
3745 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3746 for cmd in $cmds; do
3754 if test -n "$old_library"; then
3755 # Do each command in the old_postuninstall commands.
3756 eval cmds=\"$old_postuninstall_cmds\"
3757 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3758 for cmd in $cmds; do
3766 # FIXME: should reinstall the best remaining shared library.
3771 if test "$build_old_libs" = yes; then
3772 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3773 rmfiles="$rmfiles $dir/$oldobj"
3775 $show "$rm $rmfiles"
3780 $show "$rm $rmfiles"
3789 $echo "$modename: you must specify a MODE" 1>&2
3790 $echo "$generic_help" 1>&2
3795 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3796 $echo "$generic_help" 1>&2
3798 fi # test -z "$show_help"
3800 # We need to display help for each of the modes.
3803 "Usage: $modename [OPTION]... [MODE-ARG]...
3805 Provide generalized library-building support services.
3807 --config show all configuration variables
3808 --debug enable verbose shell tracing
3809 -n, --dry-run display commands without modifying any files
3810 --features display basic configuration information and exit
3811 --finish same as \`--mode=finish'
3812 --help display this help message and exit
3813 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3814 --quiet same as \`--silent'
3815 --silent don't print informational messages
3816 --version print version information
3818 MODE must be one of the following:
3820 compile compile a source file into a libtool object
3821 execute automatically set library path, then run a program
3822 finish complete the installation of libtool libraries
3823 install install libraries or executables
3824 link create a library or an executable
3825 uninstall remove libraries from an installed directory
3827 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3828 a more detailed description of MODE."
3834 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3836 Compile a source file into a libtool library object.
3838 This mode accepts the following additional options:
3840 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
3841 -static always build a \`.o' file suitable for static linking
3843 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3844 from the given SOURCEFILE.
3846 The output file name is determined by removing the directory component from
3847 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3848 library object suffix, \`.lo'."
3853 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3855 Automatically set library path, then run a program.
3857 This mode accepts the following additional options:
3859 -dlopen FILE add the directory containing FILE to the library path
3861 This mode sets the library path environment variable according to \`-dlopen'
3864 If any of the ARGS are libtool executable wrappers, then they are translated
3865 into their corresponding uninstalled binary, and any of their required library
3866 directories are added to the library path.
3868 Then, COMMAND is executed, with ARGS as arguments."
3873 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3875 Complete the installation of libtool libraries.
3877 Each LIBDIR is a directory that contains libtool libraries.
3879 The commands that this mode executes may require superuser privileges. Use
3880 the \`--dry-run' option if you just want to see what would be executed."
3885 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3887 Install executables or libraries.
3889 INSTALL-COMMAND is the installation command. The first component should be
3890 either the \`install' or \`cp' program.
3892 The rest of the components are interpreted as arguments to that command (only
3893 BSD-compatible install options are recognized)."
3898 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3900 Link object files or libraries together to form another library, or to
3901 create an executable program.
3903 LINK-COMMAND is a command using the C compiler that you would use to create
3904 a program from several object files.
3906 The following components of LINK-COMMAND are treated specially:
3908 -all-static do not do any dynamic linking at all
3909 -avoid-version do not add a version suffix if possible
3910 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
3911 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
3912 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3913 -export-symbols SYMFILE
3914 try to export only the symbols listed in SYMFILE
3915 -export-symbols-regex REGEX
3916 try to export only the symbols matching REGEX
3917 -LLIBDIR search LIBDIR for required installed libraries
3918 -lNAME OUTPUT-FILE requires the installed library libNAME
3919 -module build a library that can dlopened
3920 -no-undefined declare that a library does not refer to external symbols
3921 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
3922 -release RELEASE specify package release information
3923 -rpath LIBDIR the created library will eventually be installed in LIBDIR
3924 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
3925 -static do not do any dynamic linking of libtool libraries
3926 -version-info CURRENT[:REVISION[:AGE]]
3927 specify library version info [each variable defaults to 0]
3929 All other options (arguments beginning with \`-') are ignored.
3931 Every other argument is treated as a filename. Files ending in \`.la' are
3932 treated as uninstalled libtool libraries, other files are standard or library
3935 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3936 only library objects (\`.lo' files) may be specified, and \`-rpath' is
3937 required, except when creating a convenience library.
3939 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3940 using \`ar' and \`ranlib', or on Windows using \`lib'.
3942 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3943 is created, otherwise an executable program is created."
3948 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3950 Remove libraries from an installation directory.
3952 RM is the name of the program to use to delete files associated with each FILE
3953 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
3956 If FILE is a libtool library, all the files associated with it are deleted.
3957 Otherwise, only FILE itself is deleted using RM."
3961 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3968 $echo "Try \`$modename --help' for more information about other modes."