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 # 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 # used as fallback echo
37 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
38 # Yippee, $echo works!
41 # Restart under the correct shell, and then maybe $echo will work.
42 exec $SHELL "$0" --no-reexec ${1+"$@"}
45 # The name of this program.
46 progname=`$echo "$0" | sed 's%^.*/%%'`
53 TIMESTAMP=" (1.385 1999/03/15 17:24:54)"
56 help="Try \`$progname --help' for more information."
57 magic="%%%MAGIC variable%%%"
62 # Sed substitution that helps us do robust quoting. It backslashifies
63 # metacharacters that are still active within double-quoted strings.
65 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
70 # Only set LANG and LC_ALL to C if already set.
71 # These must not be set unconditionally because not all systems understand
72 # e.g. LANG=C (notably SCO).
73 # We save the old values to restore during execute mode.
74 if test "${LC_ALL+set}" = set; then
75 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
77 if test "${LANG+set}" = set; then
78 save_LANG="$LANG"; LANG=C; export LANG
81 if test "$LTCONFIG_VERSION" != "$VERSION"; then
82 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
83 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
87 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
88 echo "$modename: not configured to build any kind of library" 1>&2
89 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
102 lo2o="s/\\.lo\$/.${objext}/"
104 # Parse our command line options once, thoroughly.
111 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
115 # If the previous option needs an argument, assign it.
116 if test -n "$prev"; then
119 eval "$prev=\"\$$prev \$arg\""
131 # Have we seen a non-optional argument yet?
138 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
143 sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
148 echo "$progname: enabling shell trace mode"
158 if test "$build_libtool_libs" = yes; then
159 echo "enable shared libraries"
161 echo "disable shared libraries"
163 if test "$build_old_libs" = yes; then
164 echo "enable static libraries"
166 echo "disable static libraries"
171 --finish) mode="finish" ;;
173 --mode) prevopt="--mode" prev=mode ;;
174 --mode=*) mode="$optarg" ;;
186 $echo "$modename: unrecognized option \`$arg'" 1>&2
198 if test -n "$prevopt"; then
199 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
204 if test -z "$show_help"; then
206 # Infer the operation mode.
207 if test -z "$mode"; then
209 *cc | *++ | gcc* | *-gcc*)
221 *db | *dbx | *strace | *truss)
231 # If we have no mode, but dlfiles were specified, then do execute mode.
232 test -n "$execute_dlfiles" && mode=execute
234 # Just use the default operation mode.
235 if test -z "$mode"; then
236 if test -n "$nonopt"; then
237 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
239 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
246 # Only execute mode is allowed to have -dlopen flags.
247 if test -n "$execute_dlfiles" && test "$mode" != execute; then
248 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
253 # Change the help message to a mode-specific one.
255 help="Try \`$modename --help --mode=$mode' for more information."
257 # These modes are in order of execution frequency so that they run quickly.
259 # libtool compile mode
261 modename="$modename: compile"
262 # Get the compilation command and the source file.
271 # Accept any command-line options.
274 if test "$user_target" != "no"; then
275 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
287 case "$user_target" in
289 # The next one is the -o target name
294 # We got the output file
301 # Accept the current argument as the source file.
305 # Aesthetically quote the previous argument.
307 # Backslashify any backslashes, double quotes, and dollar signs.
308 # These are the only characters that are still specially
309 # interpreted inside of double-quoted scrings.
310 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
312 # Double-quote args containing other shell metacharacters.
313 # Many Bourne shells cannot handle close brackets correctly in scan
314 # sets, so we specify it separately.
316 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
317 lastarg="\"$lastarg\""
321 # Add the previous argument to base_compile.
322 if test -z "$base_compile"; then
323 base_compile="$lastarg"
325 base_compile="$base_compile $lastarg"
329 case "$user_target" in
333 # Get the name of the library object.
334 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
337 $echo "$modename: you must specify a target with \`-o'" 1>&2
342 # Recognize several different file suffixes.
343 # If the user specifies -o file.o, it is replaced with file.lo
358 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
361 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
363 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
368 if test -z "$base_compile"; then
369 $echo "$modename: you must specify a compilation command" 1>&2
374 # Delete any leftover library objects.
375 if test "$build_old_libs" = yes; then
376 removelist="$obj $libobj"
382 trap "$run $rm $removelist; exit 1" 1 2 15
384 # Calculate the filename of the output object if compiler does
385 # not support -o with -c
386 if test "$compiler_c_o" = no; then
387 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
388 lockfile="$output_obj.lock"
389 removelist="$removelist $output_obj $lockfile"
390 trap "$run $rm $removelist; exit 1" 1 2 15
396 # Lock this critical section if it is needed
397 # We use this script file to make the link, it avoids creating a new file
398 if test "$need_locks" = yes; then
399 until ln "$0" "$lockfile" 2>/dev/null; do
400 $show "Waiting for $lockfile to be removed"
403 elif test "$need_locks" = warn; then
404 if test -f "$lockfile"; then
406 *** ERROR, $lockfile exists and contains:
407 `cat $lockfile 2>/dev/null`
409 This indicates that another process is trying to use the same
410 temporary object file, and libtool could not work around it because
411 your compiler does not support \`-c' and \`-o' together. If you
412 repeat this compilation, it may succeed, by chance, but you had better
413 avoid parallel builds (make -j) in this platform, or get a better
419 echo $srcfile > "$lockfile"
422 if test -n "$fix_srcfile_path"; then
423 eval srcfile=\"$fix_srcfile_path\"
426 # Only build a PIC object if we are building libtool libraries.
427 if test "$build_libtool_libs" = yes; then
428 # Without this assignment, base_compile gets emptied.
429 fbsd_hideous_sh_bug=$base_compile
431 # All platforms use -DPIC, to notify preprocessed assembler code.
432 command="$base_compile $pic_flag -DPIC $srcfile"
433 if test "$build_old_libs" = yes; then
435 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
436 if test "X$dir" = "X$libobj"; then
441 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
443 if test -d "$dir"; then
450 if test $status -ne 0 && test ! -d $dir; then
455 if test "$compiler_o_lo" = yes; then
457 command="$command -o $output_obj"
458 elif test "$compiler_c_o" = yes; then
460 command="$command -o $output_obj"
464 if $run eval "$command"; then :
466 test -n "$output_obj" && $run $rm $removelist
470 if test "$need_locks" = warn &&
471 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
473 *** ERROR, $lockfile contains:
474 `cat $lockfile 2>/dev/null`
476 but it should contain:
479 This indicates that another process is trying to use the same
480 temporary object file, and libtool could not work around it because
481 your compiler does not support \`-c' and \`-o' together. If you
482 repeat this compilation, it may succeed, by chance, but you had better
483 avoid parallel builds (make -j) in this platform, or get a better
490 # Just move the object if needed, then go on to compile the next one
491 if test x"$output_obj" != x"$libobj"; then
492 $show "$mv $output_obj $libobj"
493 if $run $mv $output_obj $libobj; then :
501 # If we have no pic_flag, then copy the object into place and finish.
502 if test -z "$pic_flag" && test "$build_old_libs" = yes; then
503 # Rename the .lo from within objdir to obj
504 if test -f $obj; then
509 $show "$mv $libobj $obj"
510 if $run $mv $libobj $obj; then :
517 # Now arrange that obj and lo_libobj become the same file
518 $show "$LN_S $obj $lo_libobj"
519 if $run $LN_S $obj $lo_libobj; then
528 # Allow error messages only from the first compilation.
529 suppress_output=' >/dev/null 2>&1'
532 # Only build a position-dependent object if we build old libraries.
533 if test "$build_old_libs" = yes; then
534 command="$base_compile $srcfile"
535 if test "$compiler_c_o" = yes; then
536 command="$command -o $obj"
540 # Suppress compiler output if we already did a PIC compilation.
541 command="$command$suppress_output"
543 if $run eval "$command"; then :
549 if test "$need_locks" = warn &&
550 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
552 *** ERROR, $lockfile contains:
553 `cat $lockfile 2>/dev/null`
555 but it should contain:
558 This indicates that another process is trying to use the same
559 temporary object file, and libtool could not work around it because
560 your compiler does not support \`-c' and \`-o' together. If you
561 repeat this compilation, it may succeed, by chance, but you had better
562 avoid parallel builds (make -j) in this platform, or get a better
569 # Just move the object if needed
570 if test x"$output_obj" != x"$obj"; then
571 $show "$mv $output_obj $obj"
572 if $run $mv $output_obj $obj; then :
580 # Create an invalid libtool object if no PIC, so that we do not
581 # accidentally link it into a program.
582 if test "$build_libtool_libs" != yes; then
583 $show "echo timestamp > $libobj"
584 $run eval "echo timestamp > \$libobj" || exit $?
586 # Move the .lo from within objdir
587 $show "$mv $libobj $lo_libobj"
588 if $run $mv $libobj $lo_libobj; then :
597 # Unlock the critical section if it was locked
598 if test "$need_locks" != no; then
607 modename="$modename: link"
608 C_compiler="$CC" # save it, to compile generated C sources
611 *-*-cygwin* | *-*-mingw* | *-*-os2*)
612 # It is impossible to link a dll without this setting, and
613 # we shouldn't force the makefile maintainer to figure out
614 # which system we are compiling for in order to pass an extra
615 # flag for every libtool invokation.
618 # FIXME: Unfortunately, there are problems with the above when trying
619 # to make a dll which has undefined symbols, in which case not
620 # even a static library is built. For now, we need to specify
621 # -no-undefined on the libtool link line when we can be certain
622 # that all symbols are satisfied, otherwise we get a static library.
625 # This is a source program that is used to create dlls on Windows
626 # Don't remove nor modify the starting and closing comments
627 # /* ltdll.c starts here */
628 # #define WIN32_LEAN_AND_MEAN
629 # #include <windows.h>
630 # #undef WIN32_LEAN_AND_MEAN
633 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
635 # #include <cygwin/cygwin_dll.h>
636 # DECLARE_CYGWIN_DLL( DllMain );
637 # HINSTANCE __hDllInstance_base;
640 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
642 # __hDllInstance_base = hInst;
645 # /* ltdll.c ends here */
646 # This is a source program that is used to create import libraries
647 # on Windows for dlls which lack them. Don't remove nor modify the
648 # starting and closing comments
649 # /* impgen.c starts here */
650 # /* Copyright (C) 1999 Free Software Foundation, Inc.
652 # This file is part of GNU libtool.
654 # This program is free software; you can redistribute it and/or modify
655 # it under the terms of the GNU General Public License as published by
656 # the Free Software Foundation; either version 2 of the License, or
657 # (at your option) any later version.
659 # This program is distributed in the hope that it will be useful,
660 # but WITHOUT ANY WARRANTY; without even the implied warranty of
661 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
662 # GNU General Public License for more details.
664 # You should have received a copy of the GNU General Public License
665 # along with this program; if not, write to the Free Software
666 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
669 # #include <stdio.h> /* for printf() */
670 # #include <unistd.h> /* for open(), lseek(), read() */
671 # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
672 # #include <string.h> /* for strdup() */
674 # static unsigned int
675 # pe_get16 (fd, offset)
679 # unsigned char b[2];
680 # lseek (fd, offset, SEEK_SET);
682 # return b[0] + (b[1]<<8);
685 # static unsigned int
686 # pe_get32 (fd, offset)
690 # unsigned char b[4];
691 # lseek (fd, offset, SEEK_SET);
693 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
696 # static unsigned int
700 # unsigned char *b = ptr;
701 # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
710 # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
711 # unsigned long export_rva, export_size, nsections, secptr, expptr;
712 # unsigned long name_rvas, nexp;
713 # unsigned char *expdata, *erva;
714 # char *filename, *dll_name;
716 # filename = argv[1];
718 # dll = open(filename, O_RDONLY|O_BINARY);
722 # dll_name = filename;
724 # for (i=0; filename[i]; i++)
725 # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
726 # dll_name = filename + i +1;
728 # pe_header_offset = pe_get32 (dll, 0x3c);
729 # opthdr_ofs = pe_header_offset + 4 + 20;
730 # num_entries = pe_get32 (dll, opthdr_ofs + 92);
732 # if (num_entries < 1) /* no exports */
735 # export_rva = pe_get32 (dll, opthdr_ofs + 96);
736 # export_size = pe_get32 (dll, opthdr_ofs + 100);
737 # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
738 # secptr = (pe_header_offset + 4 + 20 +
739 # pe_get16 (dll, pe_header_offset + 4 + 16));
742 # for (i = 0; i < nsections; i++)
745 # unsigned long secptr1 = secptr + 40 * i;
746 # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
747 # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
748 # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
749 # lseek(dll, secptr1, SEEK_SET);
750 # read(dll, sname, 8);
751 # if (vaddr <= export_rva && vaddr+vsize > export_rva)
753 # expptr = fptr + (export_rva - vaddr);
754 # if (export_rva + export_size > vaddr + vsize)
755 # export_size = vsize - (export_rva - vaddr);
760 # expdata = (unsigned char*)malloc(export_size);
761 # lseek (dll, expptr, SEEK_SET);
762 # read (dll, expdata, export_size);
763 # erva = expdata - export_rva;
765 # nexp = pe_as32 (expdata+24);
766 # name_rvas = pe_as32 (expdata+32);
768 # printf ("EXPORTS\n");
769 # for (i = 0; i<nexp; i++)
771 # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
772 # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
777 # /* impgen.c ends here */
783 compile_command="$CC"
784 finalize_command="$CC"
795 if test -n "$shlibpath_var"; then
796 # get the directories listed in $shlibpath_var
797 eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
801 # now prepend the system-specific ones
802 eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
803 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
811 export_symbols_regex=
814 link_against_libtool_libs=
829 # We need to know -static, to get the right output filenames.
833 -all-static | -static)
834 if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
835 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
837 build_libtool_libs=no
844 # See if our shared archives depend on static archives.
845 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
847 # Go through the arguments, transforming them on the way.
848 while test $# -gt 0; do
852 # If the previous option needs an argument, assign it.
853 if test -n "$prev"; then
856 compile_command="$compile_command @OUTPUT@"
857 finalize_command="$finalize_command @OUTPUT@"
863 if test "$preload" = no; then
864 # Add the symbol object into the linking commands.
865 compile_command="$compile_command @SYMFILE@"
866 finalize_command="$finalize_command @SYMFILE@"
870 *.la | *.lo) ;; # We handle these cases below.
872 if test "$prev" = dlprefiles; then
874 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
881 dlprefiles="$dlprefiles $arg"
882 test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
888 export_symbols="$arg"
889 if test ! -f "$arg"; then
890 $echo "$modename: symbol file \`$arg' does not exist"
897 export_symbols_regex="$arg"
912 xrpath="$xrpath $arg"
917 eval "$prev=\"\$arg\""
928 if test -n "$link_static_flag"; then
929 compile_command="$compile_command $link_static_flag"
930 finalize_command="$finalize_command $link_static_flag"
931 dlopen_self=$dlopen_self_static
937 # FIXME: remove this flag sometime in the future.
938 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
958 if test "$export_dynamic" != yes; then
960 if test -n "$export_dynamic_flag_spec"; then
961 eval arg=\"$export_dynamic_flag_spec\"
968 -export-symbols | -export-symbols-regex)
969 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
970 $echo "$modename: cannot have more than one -exported-symbols"
973 if test "$arg" = "-export-symbols"; then
982 dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
984 /* | [A-Za-z]:[/\\]*)
985 # Add the corresponding hardcode_libdir_flag, if it is not identical.
988 $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
994 *) deplibs="$deplibs $arg";;
996 case " $lib_search_path " in
998 *) lib_search_path="$lib_search_path $dir";;
1001 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1002 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1003 case ":$dllsearchpath:" in
1004 ::) dllsearchpath="$dllsearchdir";;
1005 *":$dllsearchdir:"*) ;;
1006 *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1013 deplibs="$deplibs $arg"
1017 if test "$module" != yes; then
1019 if test -n "$export_dynamic_flag_spec"; then
1020 eval arg=\"$export_dynamic_flag_spec\"
1050 xrpath="$xrpath "`$echo "X$arg" | $Xsed -e 's/^-R//'`
1055 # If we have no pic_flag, then this is the same as -all-static.
1056 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1057 compile_command="$compile_command $link_static_flag"
1058 finalize_command="$finalize_command $link_static_flag"
1059 dlopen_self=$dlopen_self_static
1074 # Some other compiler flag.
1076 # Unknown arguments in both finalize_command and compile_command need
1077 # to be aesthetically quoted because they are evaled later.
1078 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1080 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1086 *.o | *.obj | *.a | *.lib)
1087 # A standard object.
1093 if test "$prev" = dlfiles; then
1094 dlfiles="$dlfiles $arg"
1095 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1099 # If libtool objects are unsupported, then we need to preload.
1104 if test "$prev" = dlprefiles; then
1105 # Preload the old-style object.
1106 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1109 libobjs="$libobjs $arg"
1113 # A libtool-controlled library.
1120 # Check to see that this really is a libtool archive.
1121 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1123 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1127 # If the library was installed with an old release of libtool,
1128 # it will not redefine variable installed.
1131 # If there is no directory component, then add one.
1133 */* | *\\*) . $arg ;;
1137 # Get the name of the library we link against.
1139 for l in $old_library $library_names; do
1143 if test -z "$linklib"; then
1144 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1148 # Find the relevant object directory and library name.
1149 name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1151 if test "X$installed" = Xyes; then
1154 dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1155 if test "X$dir" = "X$arg"; then
1162 if test -n "$dependency_libs"; then
1163 # Extract -R from dependency_libs
1165 for deplib in $dependency_libs; do
1167 -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1168 case " $rpath $xrpath " in
1169 *" $temp_xrpath "*) ;;
1170 *) xrpath="$xrpath $temp_xrpath";;
1172 -L*) case "$compile_command $temp_deplibs " in
1174 *) temp_deplibs="$temp_deplibs $deplib";;
1176 *) temp_deplibs="$temp_deplibs $deplib";;
1179 dependency_libs="$temp_deplibs"
1182 if test -z "$libdir"; then
1183 # It is a libtool convenience library, so add in its objects.
1184 convenience="$convenience $dir/$old_library"
1185 old_convenience="$old_convenience $dir/$old_library"
1186 deplibs="$deplibs$dependency_libs"
1187 compile_command="$compile_command $dir/$old_library$dependency_libs"
1188 finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1192 # This library was specified with -dlopen.
1193 if test "$prev" = dlfiles; then
1194 dlfiles="$dlfiles $arg"
1195 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1196 # If there is no dlname, no dlopen support or we're linking statically,
1197 # we need to preload.
1200 # We should not create a dependency on this library, but we
1201 # may need any libraries it requires.
1202 compile_command="$compile_command$dependency_libs"
1203 finalize_command="$finalize_command$dependency_libs"
1209 # The library was specified with -dlpreopen.
1210 if test "$prev" = dlprefiles; then
1211 # Prefer using a static library (so that no silly _DYNAMIC symbols
1212 # are required to link).
1213 if test -n "$old_library"; then
1214 dlprefiles="$dlprefiles $dir/$old_library"
1216 dlprefiles="$dlprefiles $dir/$linklib"
1221 if test "$build_libtool_libs" = yes && test -n "$library_names"; then
1222 link_against_libtool_libs="$link_against_libtool_libs $arg"
1223 if test -n "$shlibpath_var"; then
1224 # Make sure the rpath contains only unique directories.
1225 case "$temp_rpath " in
1227 *) temp_rpath="$temp_rpath $dir" ;;
1231 # We need an absolute path.
1233 /* | [A-Za-z]:[/\\]*) absdir="$dir" ;;
1235 absdir=`cd "$dir" && pwd`
1236 if test -z "$absdir"; then
1237 $echo "$modename: cannot determine absolute directory name of \`$libdir'" 1>&2
1243 # This is the magic to use -rpath.
1244 # Skip directories that are in the system default run-time
1245 # search path, unless they have been requested with -R.
1246 case " $sys_lib_dlsearch_path " in
1249 case "$compile_rpath " in
1251 *) compile_rpath="$compile_rpath $absdir"
1256 case " $sys_lib_dlsearch_path " in
1259 case "$finalize_rpath " in
1261 *) finalize_rpath="$finalize_rpath $libdir"
1267 case "$hardcode_action" in
1268 immediate | unsupported)
1269 if test "$hardcode_direct" = no; then
1270 compile_command="$compile_command $dir/$linklib"
1271 deplibs="$deplibs $dir/$linklib"
1273 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1274 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1275 if test -n "$dllsearchpath"; then
1276 dllsearchpath="$dllsearchpath:$dllsearchdir"
1278 dllsearchpath="$dllsearchdir"
1282 elif test "$hardcode_minus_L" = no; then
1285 compile_shlibpath="$compile_shlibpath$dir:"
1288 case "$compile_command " in
1290 *) compile_command="$compile_command -L$dir";;
1292 compile_command="$compile_command -l$name"
1293 deplibs="$deplibs -L$dir -l$name"
1294 elif test "$hardcode_shlibpath_var" = no; then
1295 case ":$compile_shlibpath:" in
1297 *) compile_shlibpath="$compile_shlibpath$dir:";;
1299 compile_command="$compile_command -l$name"
1300 deplibs="$deplibs -l$name"
1307 if test "$hardcode_direct" = yes; then
1308 compile_command="$compile_command $absdir/$linklib"
1309 deplibs="$deplibs $absdir/$linklib"
1310 elif test "$hardcode_minus_L" = yes; then
1311 case "$compile_command " in
1313 *) compile_command="$compile_command -L$absdir";;
1315 compile_command="$compile_command -l$name"
1316 deplibs="$deplibs -L$absdir -l$name"
1317 elif test "$hardcode_shlibpath_var" = yes; then
1318 case ":$compile_shlibpath:" in
1320 *) compile_shlibpath="$compile_shlibpath$absdir:";;
1322 compile_command="$compile_command -l$name"
1323 deplibs="$deplibs -l$name"
1334 if test "$lib_linked" != yes; then
1335 $echo "$modename: configuration error: unsupported hardcode properties"
1339 # Finalize command for both is simple: just hardcode it.
1340 if test "$hardcode_direct" = yes; then
1341 finalize_command="$finalize_command $libdir/$linklib"
1342 elif test "$hardcode_minus_L" = yes; then
1343 case "$finalize_command " in
1345 *) finalize_command="$finalize_command -L$libdir";;
1347 finalize_command="$finalize_command -l$name"
1348 elif test "$hardcode_shlibpath_var" = yes; then
1349 case ":$finalize_shlibpath:" in
1351 *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1353 finalize_command="$finalize_command -l$name"
1355 # We cannot seem to hardcode it, guess we'll fake it.
1356 case "$finalize_command " in
1358 *) finalize_command="$finalize_command -L$libdir";;
1360 finalize_command="$finalize_command -l$name"
1363 # Transform directly to old archives if we don't build new libraries.
1364 if test -n "$pic_flag" && test -z "$old_library"; then
1365 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1369 # Here we assume that one of hardcode_direct or hardcode_minus_L
1370 # is not unsupported. This is valid on all known static and
1372 if test "$hardcode_direct" != unsupported; then
1373 test -n "$old_library" && linklib="$old_library"
1374 compile_command="$compile_command $dir/$linklib"
1375 finalize_command="$finalize_command $dir/$linklib"
1377 case "$compile_command " in
1379 *) compile_command="$compile_command -L$dir";;
1381 compile_command="$compile_command -l$name"
1382 case "$finalize_command " in
1384 *) finalize_command="$finalize_command -L$dir";;
1386 finalize_command="$finalize_command -l$name"
1390 # Add in any libraries that this one depends upon.
1391 compile_command="$compile_command$dependency_libs"
1392 finalize_command="$finalize_command$dependency_libs"
1396 # Some other compiler argument.
1398 # Unknown arguments in both finalize_command and compile_command need
1399 # to be aesthetically quoted because they are evaled later.
1400 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1402 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1409 # Now actually substitute the argument into the commands.
1410 if test -n "$arg"; then
1411 compile_command="$compile_command $arg"
1412 finalize_command="$finalize_command $arg"
1416 if test -n "$prev"; then
1417 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1423 # calculate the name of the file, without its directory
1424 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1425 libobjs_save="$libobjs"
1429 $echo "$modename: you must specify an output file" 1>&2
1435 if test -n "$link_against_libtool_libs"; then
1436 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1440 if test -n "$deplibs"; then
1441 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1444 if test -n "$dlfiles$dlprefiles"; then
1445 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1448 if test -n "$rpath"; then
1449 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1452 if test -n "$xrpath"; then
1453 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1456 if test -n "$vinfo"; then
1457 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1460 if test -n "$release"; then
1461 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1464 if test -n "$export_symbols"; then
1465 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1468 # Now set the variables for building old libraries.
1469 build_libtool_libs=no
1474 # Make sure we only generate libraries of the form `libNAME.la'.
1475 case "$outputname" in
1477 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1478 eval libname=\"$libname_spec\"
1481 if test "$module" = no; then
1482 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1486 if test "$need_lib_prefix" != no; then
1487 # Add the "lib" prefix for modules if required
1488 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1489 eval libname=\"$libname_spec\"
1491 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1496 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1497 if test "X$output_objdir" = "X$output"; then
1498 output_objdir="$objdir"
1500 output_objdir="$output_objdir/$objdir"
1503 # All the library-specific variables (install_libdir is set above).
1508 if test -n "$objs"; then
1509 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1513 # How the heck are we supposed to write a wrapper for a shared library?
1514 if test -n "$link_against_libtool_libs"; then
1515 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1519 if test -n "$dlfiles$dlprefiles"; then
1520 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1524 if test $# -gt 2; then
1525 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1530 if test -z "$rpath"; then
1531 if test "$build_libtool_libs" = yes; then
1532 # Building a libtool convenience library.
1534 oldlibs="$output_objdir/$libname.$libext $oldlibs"
1535 build_libtool_libs=convenience
1538 dependency_libs="$deplibs"
1540 if test -n "$vinfo"; then
1541 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1544 if test -n "$release"; then
1545 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1549 # Parse the version information argument.
1550 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1551 set dummy $vinfo 0 0 0
1554 if test -n "$8"; then
1555 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1564 # Check that each of the things are valid numbers.
1566 0 | [1-9] | [1-9][0-9]*) ;;
1568 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1569 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1575 0 | [1-9] | [1-9][0-9]*) ;;
1577 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1578 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1584 0 | [1-9] | [1-9][0-9]*) ;;
1586 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1587 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1592 if test $age -gt $current; then
1593 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1594 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1598 # Calculate the version variables.
1602 case "$version_type" in
1606 major=`expr $current - $age + 1`
1607 versuffix="$major.$revision"
1608 verstring="sgi$major.$revision"
1610 # Add in all the interfaces that we are compatible with.
1612 while test $loop != 0; do
1613 iface=`expr $revision - $loop`
1614 loop=`expr $loop - 1`
1615 verstring="sgi$major.$iface:$verstring"
1620 major=.`expr $current - $age`
1621 versuffix="$major.$age.$revision"
1625 major=`expr $current - $age`
1626 versuffix=".$current.$age.$revision"
1627 verstring="$current.$age.$revision"
1629 # Add in all the interfaces that we are compatible with.
1631 while test $loop != 0; do
1632 iface=`expr $current - $loop`
1633 loop=`expr $loop - 1`
1634 verstring="$verstring:${iface}.0"
1637 # Make executables depend on our current version.
1638 verstring="$verstring:${current}.0"
1643 versuffix=".$current.$revision"
1648 versuffix=".$current.$revision";
1653 versuffix=".$current";
1657 # Like Linux, but with '-' rather than '.', since we only
1658 # want one extension on Windows 95.
1659 major=`expr $current - $age`
1660 versuffix="-$major-$age-$revision"
1664 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1665 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1670 # Clear the version info if we defaulted, and they specified a release.
1671 if test -z "$vinfo" && test -n "$release"; then
1674 if test "$need_version" = no; then
1681 # Remove version info from name if versioning should be avoided
1682 if test "$avoid_version" = yes && test "$need_version" = no; then
1688 # Check to see if the archive will have undefined symbols.
1689 if test "$allow_undefined" = yes; then
1690 if test "$allow_undefined_flag" = unsupported; then
1691 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1692 build_libtool_libs=no
1696 # Don't allow undefined symbols.
1697 allow_undefined_flag="$no_undefined_flag"
1700 dependency_libs="$deplibs"
1702 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1703 # these systems don't actually have a c library (as such)!
1706 # Add libc to deplibs on all other systems.
1707 deplibs="$deplibs -lc"
1712 # Create the output directory, or remove our outputs if we need to.
1713 if test -d $output_objdir; then
1714 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1715 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1717 $show "$mkdir $output_objdir"
1718 $run $mkdir $output_objdir
1720 if test $status -ne 0 && test ! -d $output_objdir; then
1725 # Now set the variables for building old libraries.
1726 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1727 oldlibs="$oldlibs $output_objdir/$libname.$libext"
1729 # Transform .lo files to .o files.
1730 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1733 if test "$build_libtool_libs" = yes; then
1734 # Transform deplibs into only deplibs that can be linked in shared.
1736 libname_save=$libname
1737 release_save=$release
1738 versuffix_save=$versuffix
1740 # I'm not sure if I'm treating the release correctly. I think
1741 # release should show up in the -l (ie -lgmp5) so we don't want to
1742 # add it in twice. Is that correct?
1748 case "$deplibs_check_method" in
1751 ;; # Don't check for shared/static. Everything works.
1752 # This might be a little naive. We might want to check
1753 # whether the library exists or not. But this is on
1754 # osf3 & osf4 and I'm not really sure... Just
1755 # implementing what was already the behaviour.
1757 # This code stresses the "libraries are programs" paradigm to its
1758 # limits. Maybe even breaks it. We compile a program, linking it
1759 # against the deplibs as a proxy for the library. Then we can check
1760 # whether they linked in statically or dynamically with ldd.
1762 cat > conftest.c <<EOF
1763 int main() { return 0; }
1766 $C_compiler -o conftest conftest.c $deplibs
1767 if test $? -eq 0 ; then
1768 ldd_output=`ldd conftest`
1769 for i in $deplibs; do
1770 name="`expr $i : '-l\(.*\)'`"
1771 # If $name is empty we are operating on a -L argument.
1772 if test "$name" != "" ; then
1773 libname=`eval \\$echo \"$libname_spec\"`
1774 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1775 set dummy $deplib_matches
1777 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1778 newdeplibs="$newdeplibs $i"
1782 echo "*** Warning: This library needs some functionality provided by $i."
1783 echo "*** I have the capability to make that library automatically link in when"
1784 echo "*** you link to this library. But I can only do this if you have a"
1785 echo "*** shared version of the library, which you do not appear to have."
1788 newdeplibs="$newdeplibs $i"
1792 # Error occured in the first compile. Let's try to salvage the situation:
1793 # Compile a seperate program for each library.
1794 for i in $deplibs; do
1795 name="`expr $i : '-l\(.*\)'`"
1796 # If $name is empty we are operating on a -L argument.
1797 if test "$name" != "" ; then
1799 $C_compiler -o conftest conftest.c $i
1801 if test $? -eq 0 ; then
1802 ldd_output=`ldd conftest`
1803 libname=`eval \\$echo \"$libname_spec\"`
1804 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1805 set dummy $deplib_matches
1807 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1808 newdeplibs="$newdeplibs $i"
1812 echo "*** Warning: This library needs some functionality provided by $i."
1813 echo "*** I have the capability to make that library automatically link in when"
1814 echo "*** you link to this library. But I can only do this if you have a"
1815 echo "*** shared version of the library, which you do not appear to have."
1820 echo "*** Warning! Library $i is needed by this library but I was not able to"
1821 echo "*** make it link in! You will probably need to install it or some"
1822 echo "*** library that it depends on before this library will be fully"
1823 echo "*** functional. Installing it before continuing would be even better."
1826 newdeplibs="$newdeplibs $i"
1833 set dummy $deplibs_check_method
1834 file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1835 for a_deplib in $deplibs; do
1836 name="`expr $a_deplib : '-l\(.*\)'`"
1837 # If $name is empty we are operating on a -L argument.
1838 if test "$name" != "" ; then
1839 libname=`eval \\$echo \"$libname_spec\"`
1840 for i in $lib_search_path; do
1841 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1842 for potent_lib in $potential_libs; do
1843 # Follow soft links.
1844 if ls -lLd "$potlib" 2>/dev/null \
1845 | grep " -> " >/dev/null; then
1848 # The statement above tries to avoid entering an
1849 # endless loop below, in case of cyclic links.
1850 # We might still enter an endless loop, since a link
1851 # loop can be closed while we follow links,
1853 potlib="$potent_lib"
1854 while test -h "$potlib" 2>/dev/null; do
1855 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1856 case "$potliblink" in
1857 /*) potlib="$potliblink";;
1858 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1861 if eval $file_magic_cmd \"\$potlib\" \
1863 | egrep "$file_magic_regex" > /dev/null; then
1864 newdeplibs="$newdeplibs $a_deplib"
1870 if test -n "$a_deplib" ; then
1873 echo "*** Warning: This library needs some functionality provided by $a_deplib."
1874 echo "*** I have the capability to make that library automatically link in when"
1875 echo "*** you link to this library. But I can only do this if you have a"
1876 echo "*** shared version of the library, which you do not appear to have."
1879 # Add a -L argument.
1880 newdeplibs="$newdeplibs $a_deplib"
1882 done # Gone through all deplibs.
1884 none | unknown | *) newdeplibs=""
1885 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1886 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
1887 grep . >/dev/null; then
1889 if test "X$deplibs_check_method" = "Xnone"; then
1890 echo "*** Warning: inter-library dependencies are not supported in this platform."
1892 echo "*** Warning: inter-library dependencies are not known to be supported."
1894 echo "*** All declared inter-library dependencies are being dropped."
1899 versuffix=$versuffix_save
1901 release=$release_save
1902 libname=$libname_save
1905 if test "$droppeddeps" = yes; then
1906 if test "$module" = yes; then
1908 echo "*** Warning: libtool could not satisfy all declared inter-library"
1909 echo "*** dependencies of module $libname. Therefore, libtool will create"
1910 echo "*** a static module, that should work as long as the dlopening"
1911 echo "*** application is linked with the -dlopen flag."
1912 if test -z "$global_symbol_pipe"; then
1914 echo "*** However, this would only work if libtool was able to extract symbol"
1915 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1916 echo "*** not find such a program. So, this module is probably useless."
1917 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1919 if test "$build_old_libs" = no; then
1920 oldlibs="$output_objdir/$libname.$libext"
1921 build_libtool_libs=module
1924 build_libtool_libs=no
1929 echo "*** The inter-library dependencies that have been dropped here will be"
1930 echo "*** automatically added whenever a program is linked with this library"
1931 echo "*** or is declared to -dlopen it."
1936 # test again, we may have decided not to build it any more
1937 if test "$build_libtool_libs" = yes; then
1939 # Done checking deplibs!
1941 # Get the real and link names of the library.
1942 eval library_names=\"$library_names_spec\"
1943 set dummy $library_names
1947 if test -n "$soname_spec"; then
1948 eval soname=\"$soname_spec\"
1953 lib="$output_objdir/$realname"
1956 linknames="$linknames $link"
1959 # Ensure that we have .o objects for linkers which dislike .lo
1960 # (e.g. aix) incase we are running --disable-static
1961 for obj in $libobjs; do
1962 oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
1963 test -f $oldobj || ${LN_S} $obj $oldobj
1966 # Use standard objects if they are pic
1967 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
1969 if test -n "$whole_archive_flag_spec"; then
1970 if test -n "$convenience"; then
1971 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
1974 for xlib in $convenience; do
1975 # Extract the objects.
1977 generated="$generated $xdir"
1978 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
1980 $show "${rm}r $xdir"
1985 if test $status -ne 0 && test ! -d "$xdir"; then
1988 $show "(cd $xdir && $AR x ../$xlib)"
1989 $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
1991 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
1995 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
1996 eval flag=\"$thread_safe_flag_spec\"
1998 linkopts="$linkopts $flag"
2001 # Prepare the list of exported symbols
2002 if test -z "$export_symbols"; then
2003 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2004 $show "generating symbol list for \`$libname.la'"
2005 export_symbols="$objdir/$libname.exp"
2006 $run $rm $export_symbols
2007 eval cmds=\"$export_symbols_cmds\"
2008 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2009 for cmd in $cmds; do
2012 $run eval "$cmd" || exit $?
2015 if test -n "$export_symbols_regex"; then
2016 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2017 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2018 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2019 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2024 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2025 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2028 # Do each of the archive commands.
2029 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2030 eval cmds=\"$archive_expsym_cmds\"
2032 eval cmds=\"$archive_cmds\"
2034 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2035 for cmd in $cmds; do
2038 $run eval "$cmd" || exit $?
2042 # Create links to the real library.
2043 for linkname in $linknames; do
2044 if test "$realname" != "$linkname"; then
2045 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2046 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2050 # If -module or -export-dynamic was specified, set the dlname.
2051 if test "$module" = yes || test "$export_dynamic" = yes; then
2052 # On all known operating systems, these are identical.
2059 if test -n "$link_against_libtool_libs"; then
2060 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2064 if test -n "$deplibs"; then
2065 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2068 if test -n "$dlfiles$dlprefiles"; then
2069 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2072 if test -n "$rpath"; then
2073 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2076 if test -n "$xrpath"; then
2077 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2080 if test -n "$vinfo"; then
2081 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2084 if test -n "$release"; then
2085 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2090 if test -n "$objs"; then
2091 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2095 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2103 # Delete the old objects.
2104 $run $rm $obj $libobj
2106 # Create the old-style object.
2107 reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2110 eval cmds=\"$reload_cmds\"
2111 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2112 for cmd in $cmds; do
2115 $run eval "$cmd" || exit $?
2119 # Exit if we aren't doing a library object file.
2120 test -z "$libobj" && exit 0
2122 if test "$build_libtool_libs" != yes; then
2123 # Create an invalid libtool object if no PIC, so that we don't
2124 # accidentally link it into a program.
2125 $show "echo timestamp > $libobj"
2126 $run eval "echo timestamp > $libobj" || exit $?
2130 if test -n "$pic_flag"; then
2131 # Only do commands if we really have different PIC objects.
2132 reload_objs="$libobjs"
2134 eval cmds=\"$reload_cmds\"
2135 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2136 for cmd in $cmds; do
2139 $run eval "$cmd" || exit $?
2143 # Just create a symlink.
2146 $show "$LN_S $obj $libobj"
2147 $run $LN_S $obj $libobj || exit $?
2153 # Anything else should be a program.
2155 if test -n "$vinfo"; then
2156 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2159 if test -n "$release"; then
2160 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2163 if test "$preload" = yes; then
2164 if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2165 test "$dlopen_self_static" = unknown; then
2166 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2170 if test "$dlself" = yes && test "$export_dynamic" = no; then
2171 $echo "$modename: error: \`-dlopen self' requires \`-export-dynamic'" 1>&2
2175 if test -n "$rpath$xrpath"; then
2176 # If the user specified any rpath flags, then add them.
2177 for libdir in $rpath $xrpath; do
2178 # This is the magic to use -rpath.
2179 case "$compile_rpath " in
2181 *) compile_rpath="$compile_rpath $libdir" ;;
2183 case "$finalize_rpath " in
2185 *) finalize_rpath="$finalize_rpath $libdir" ;;
2190 # Now hardcode the library paths
2193 for libdir in $compile_rpath $finalize_rpath; do
2194 if test -n "$hardcode_libdir_flag_spec"; then
2195 if test -n "$hardcode_libdir_separator"; then
2196 if test -z "$hardcode_libdirs"; then
2197 hardcode_libdirs="$libdir"
2199 # Just accumulate the unique libdirs.
2200 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2201 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2204 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2209 eval flag=\"$hardcode_libdir_flag_spec\"
2211 rpath="$rpath $flag"
2213 elif test -n "$runpath_var"; then
2214 case "$perm_rpath " in
2216 *) perm_rpath="$perm_rpath $libdir" ;;
2220 # Substitute the hardcoded libdirs into the rpath.
2221 if test -n "$hardcode_libdir_separator" &&
2222 test -n "$hardcode_libdirs"; then
2223 libdir="$hardcode_libdirs"
2224 eval rpath=\" $hardcode_libdir_flag_spec\"
2226 compile_rpath="$rpath"
2230 for libdir in $finalize_rpath; do
2231 if test -n "$hardcode_libdir_flag_spec"; then
2232 if test -n "$hardcode_libdir_separator"; then
2233 if test -z "$hardcode_libdirs"; then
2234 hardcode_libdirs="$libdir"
2236 # Just accumulate the unique libdirs.
2237 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2238 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2241 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2246 eval flag=\"$hardcode_libdir_flag_spec\"
2248 rpath="$rpath $flag"
2250 elif test -n "$runpath_var"; then
2251 case "$finalize_perm_rpath " in
2253 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2257 # Substitute the hardcoded libdirs into the rpath.
2258 if test -n "$hardcode_libdir_separator" &&
2259 test -n "$hardcode_libdirs"; then
2260 libdir="$hardcode_libdirs"
2261 eval rpath=\" $hardcode_libdir_flag_spec\"
2263 finalize_rpath="$rpath"
2265 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2266 if test "X$output_objdir" = "X$output"; then
2267 output_objdir="$objdir"
2269 output_objdir="$output_objdir/$objdir"
2272 if test -n "$libobjs" && test "$build_old_libs" = yes; then
2273 # Transform all the library objects into standard objects.
2274 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2275 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2279 if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then
2280 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2281 dlsyms="${outputname}S.c"
2283 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2287 if test -n "$dlsyms"; then
2291 # Discover the nlist of each of the dlfiles.
2292 nlist="$objdir/${output}.nm"
2294 if test -d $objdir; then
2295 $show "$rm $nlist ${nlist}S ${nlist}T"
2296 $run $rm "$nlist" "${nlist}S" "${nlist}T"
2298 $show "$mkdir $objdir"
2301 if test $status -ne 0 && test ! -d $objdir; then
2306 # Parse the name list into a source file.
2307 $show "creating $objdir/$dlsyms"
2309 $echo > "$objdir/$dlsyms" "\
2310 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2311 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2317 /* Prevent the only kind of declaration conflicts we can make. */
2318 #define lt_preloaded_symbols some_other_symbol
2320 /* External symbol declarations for the compiler. */\
2323 if test "$dlself" = yes; then
2324 $show "generating symbol list for \`$output'"
2326 echo ': @PROGRAM@ ' > "$nlist"
2328 # Add our own program objects to the symbol list.
2329 progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2330 for arg in $progfiles; do
2331 $show "extracting global C symbols from \`$arg'"
2332 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2335 if test -n "$exclude_expsyms"; then
2336 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2337 $run eval '$mv "$nlist"T "$nlist"'
2340 if test -n "$export_symbols_regex"; then
2341 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2342 $run eval '$mv "$nlist"T "$nlist"'
2345 # Prepare the list of exported symbols
2346 if test -z "$export_symbols"; then
2347 export_symbols="$objdir/$output.exp"
2348 $run $rm $export_symbols
2349 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2351 $run $rm $export_symbols
2352 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$objdir/$output.exp"'
2353 $run eval 'grep -f "$objdir/$output.exp" < "$nlist" > "$nlist"T'
2354 $run eval 'mv "$nlist"T "$nlist"'
2358 for arg in $dlprefiles; do
2359 $show "extracting global C symbols from \`$arg'"
2360 name=`echo "$arg" | sed -e 's%^.*/%%'`
2361 $run eval 'echo ": $name " >> "$nlist"'
2362 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2365 if test -z "$run"; then
2366 # Make sure we have at least an empty file.
2367 test -f "$nlist" || : > "$nlist"
2369 if test -n "$exclude_expsyms"; then
2370 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2371 $mv "$nlist"T "$nlist"
2374 # Try sorting and uniquifying the output.
2375 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2378 grep -v "^: " < "$nlist" > "$nlist"S
2381 if test -f "$nlist"S; then
2382 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2384 echo '/* NONE */' >> "$output_objdir/$dlsyms"
2387 $echo >> "$output_objdir/$dlsyms" "\
2389 #undef lt_preloaded_symbols
2391 #if defined (__STDC__) && __STDC__
2392 # define lt_ptr_t void *
2394 # define lt_ptr_t char *
2398 /* The mapping between symbol names and symbols. */
2403 lt_preloaded_symbols[] =
2407 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2408 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2409 < "$nlist" >> "$output_objdir/$dlsyms"
2411 $echo >> "$output_objdir/$dlsyms" "\
2415 /* This works around a problem in FreeBSD linker */
2416 #ifdef FREEBSD_WORKAROUND
2417 static const void *lt_preloaded_setup() {
2418 return lt_preloaded_symbols;
2428 pic_flag_for_symtable=
2430 # compiling the symbol table file with pic_flag works around
2431 # a FreeBSD bug that causes programs to crash when -lm is
2432 # linked before any other PIC object. But we must not use
2433 # pic_flag when linking with -static. The problem exists in
2434 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2435 *-*-freebsd2*|*-*-freebsd3.0*)
2436 case "$compile_command " in
2438 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2442 # Now compile the dynamic symbol file.
2443 $show "(cd $objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2444 $run eval '(cd $objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2446 # Transform the symbol file into the correct name.
2447 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
2448 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
2451 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2456 # We keep going just in case the user didn't refer to
2457 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2458 # really was required.
2460 # Nullify the symbol file.
2461 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2462 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2465 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2466 # Replace the output file specification.
2467 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2468 link_command="$compile_command$compile_rpath"
2470 # We have no uninstalled library dependencies, so finalize right now.
2471 $show "$link_command"
2472 $run eval "$link_command"
2476 if test -n "$shlibpath_var"; then
2477 # We should set the shlibpath_var
2479 for dir in $temp_rpath; do
2481 /* | [A-Za-z]:[/\\]*)
2486 # Relative path: add a thisdir entry.
2487 rpath="$rpath\$thisdir/$dir:"
2494 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2495 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2497 if test -n "$finalize_shlibpath"; then
2498 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2503 if test -n "$runpath_var"; then
2504 if test -n "$perm_rpath"; then
2505 # We should set the runpath_var.
2507 for dir in $perm_rpath; do
2510 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2512 if test -n "$finalize_perm_rpath"; then
2513 # We should set the runpath_var.
2515 for dir in $finalize_perm_rpath; do
2518 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2522 if test "$hardcode_action" = relink; then
2523 # Fast installation is not supported
2524 link_command="$compile_var$compile_command$compile_rpath"
2525 relink_command="$finalize_var$finalize_command$finalize_rpath"
2527 # AGH! Flame the AIX and HP-UX people for me, will ya?
2528 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2529 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2531 if test "$fast_install" != no; then
2532 link_command="$finalize_var$compile_command$finalize_rpath"
2533 if test "$fast_install" = yes; then
2534 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2536 # fast_install is set to needless
2540 link_command="$compile_var$compile_command$compile_rpath"
2541 relink_command="$finalize_var$finalize_command$finalize_rpath"
2545 # Replace the output file specification.
2546 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2548 # Create the binary in the object directory, then wrap it.
2549 if test ! -d $output_objdir; then
2550 $show "$mkdir $output_objdir"
2551 $run $mkdir $output_objdir
2553 if test $status -ne 0 && test ! -d $objdir; then
2558 # Delete the old output file.
2559 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2561 $show "$link_command"
2562 $run eval "$link_command" || exit $?
2564 # Now create the wrapper script.
2565 $show "creating $output"
2567 # Quote the relink command for shipping.
2568 if test -n "$relink_command"; then
2569 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2572 # Quote $echo for shipping.
2573 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2575 /* | [A-Za-z]:[/\\]*) qecho="$SHELL $0 --fallback-echo";;
2576 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2578 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2580 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2583 # Only actually do things if our run command is non-null.
2584 if test -z "$run"; then
2585 # win32 will think the script is a binary if it has
2586 # a .exe suffix, so we strip it off here.
2588 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2591 trap "$rm $output; exit 1" 1 2 15
2596 # $output - temporary wrapper script for $objdir/$outputname
2597 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2599 # The $output program cannot be directly executed until all the libtool
2600 # libraries that it depends on are installed.
2602 # This wrapper script should never be moved out of the build directory.
2603 # If it is, it will not operate correctly.
2605 # Sed substitution that helps us do robust quoting. It backslashifies
2606 # metacharacters that are still active within double-quoted strings.
2607 Xsed='sed -e 1s/^X//'
2608 sed_quote_subst='$sed_quote_subst'
2610 # The HP-UX ksh and POSIX shell print the target directory to stdout
2612 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
2614 relink_command=\"$relink_command\"
2616 # This environment variable determines our operation mode.
2617 if test \"\$libtool_install_magic\" = \"$magic\"; then
2618 # install mode needs the following variable:
2619 link_against_libtool_libs='$link_against_libtool_libs'
2621 # When we are sourced in execute mode, \$file and \$echo are already set.
2622 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2625 # Make sure echo works.
2626 if test \"X\$1\" = X--no-reexec; then
2627 # Discard the --no-reexec flag, and continue.
2629 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2630 # Yippee, \$echo works!
2633 # Restart under the correct shell, and then maybe \$echo will work.
2634 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2640 # Find the directory that this script lives in.
2641 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2642 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2644 # Follow symbolic links until we get to the real thisdir.
2645 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2646 while test -n \"\$file\"; do
2647 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2649 # If there was a directory component, then change thisdir.
2650 if test \"x\$destdir\" != \"x\$file\"; then
2651 case \"\$destdir\" in
2652 /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
2653 *) thisdir=\"\$thisdir/\$destdir\" ;;
2657 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2658 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2661 # Try to get the absolute directory name.
2662 absdir=\`cd \"\$thisdir\" && pwd\`
2663 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2666 if test "$fast_install" = yes; then
2668 program=lt-'$outputname'
2669 progdir=\"\$thisdir/$objdir\"
2671 if test ! -f \"\$progdir/\$program\" || \\
2672 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2673 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2675 file=\"\$\$-\$program\"
2677 if test ! -d \"\$progdir\"; then
2678 $mkdir \"\$progdir\"
2680 $rm \"\$progdir/\$file\"
2685 # relink executable if necessary
2686 if test -n \"\$relink_command\"; then
2687 if (cd \"\$thisdir\" && eval \$relink_command); then :
2689 $rm \"\$progdir/\$file\"
2694 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2695 { $rm \"\$progdir/\$program\";
2696 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2697 $rm \"\$progdir/\$file\"
2701 program='$outputname'
2702 progdir=\"\$thisdir/$objdir\"
2708 if test -f \"\$progdir/\$program\"; then"
2710 # Export our shlibpath_var if we have one.
2711 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2713 # Add our own library path to $shlibpath_var
2714 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2716 # Some systems cannot cope with colon-terminated $shlibpath_var
2717 # The second colon is a workaround for a bug in BeOS R4 sed
2718 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2720 export $shlibpath_var
2724 # fixup the dll searchpath if we need to.
2725 if test -n "$dllsearchpath"; then
2727 # Add the dll search path components to the executable PATH
2728 PATH=$dllsearchpath:\$PATH
2733 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2734 # Run the actual program with our arguments.
2737 *-*-cygwin* | *-*-mingw | *-*-os2*)
2738 # win32 systems need to use the prog path for dll
2741 exec \$progdir\\\\\$program \${1+\"\$@\"}
2746 # Export the path to the program.
2747 PATH=\"\$progdir:\$PATH\"
2750 exec \$program \${1+\"\$@\"}
2755 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2759 # The program doesn't exist.
2760 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2761 \$echo \"This script is just a wrapper for \$program.\" 1>&2
2762 echo \"See the $PACKAGE documentation for more information.\" 1>&2
2773 # See if we need to build an old-fashioned archive.
2774 for oldlib in $oldlibs; do
2776 if test "$build_libtool_libs" = convenience; then
2777 oldobjs="$libobjs_save"
2778 addlibs="$convenience"
2779 build_libtool_libs=no
2781 if test "$build_libtool_libs" = module; then
2782 oldobjs="$libobjs_save"
2783 build_libtool_libs=no
2785 oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2787 addlibs="$old_convenience"
2790 # Add in members from convenience archives.
2791 for xlib in $addlibs; do
2792 # Extract the objects.
2794 generated="$generated $xdir"
2795 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2797 $show "${rm}r $xdir"
2802 if test $status -ne 0 && test ! -d "$xdir"; then
2805 $show "(cd $xdir && $AR x ../$xlib)"
2806 $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
2808 oldobjs="$oldobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2811 # Do each command in the archive commands.
2812 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
2813 eval cmds=\"$old_archive_from_new_cmds\"
2815 eval cmds=\"$old_archive_cmds\"
2817 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2818 for cmd in $cmds; do
2821 $run eval "$cmd" || exit $?
2826 if test -n "$generated"; then
2827 $show "${rm}r$generated"
2828 $run ${rm}r$generated
2831 # Now create the libtool archive.
2835 test "$build_old_libs" = yes && old_library="$libname.$libext"
2836 $show "creating $output"
2838 if test -n "$xrpath"; then
2840 for libdir in $xrpath; do
2841 temp_xrpath="$temp_xrpath -R$libdir"
2843 dependency_libs="$temp_xrpath $dependency_libs"
2846 # Only create the output if not a dry run.
2847 if test -z "$run"; then
2849 # $output - a libtool library file
2850 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2852 # The name that we can dlopen(3).
2855 # Names of this library.
2856 library_names='$library_names'
2858 # The name of the static archive.
2859 old_library='$old_library'
2861 # Libraries that this one depends upon.
2862 dependency_libs='$dependency_libs'
2864 # Version information for $libname.
2869 # Is this an already installed library?
2872 # Directory that this library needs to be installed in:
2873 libdir='$install_libdir'\
2876 $rm "$output_objdir/$outputname"i
2877 sed 's/^installed=no$/installed=yes/' \
2878 < "$output" > "$output_objdir/$outputname"i || exit 1
2881 # Do a symbolic link so that the libtool archive can be found in
2882 # LD_LIBRARY_PATH before the program is installed.
2883 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
2884 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
2890 # libtool install mode
2892 modename="$modename: install"
2894 # There may be an optional sh(1) argument at the beginning of
2895 # install_prog (especially on Windows NT).
2896 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
2897 # Aesthetically quote it.
2898 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
2900 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
2904 install_prog="$arg "
2912 # The real first argument should be the name of the installation program.
2913 # Aesthetically quote it.
2914 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2916 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
2920 install_prog="$install_prog$arg"
2922 # We need to accept at least all the BSD install flags.
2932 if test -n "$dest"; then
2933 files="$files $dest"
2951 # If the previous option needed an argument, then skip it.
2952 if test -n "$prev"; then
2961 # Aesthetically quote the argument.
2962 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2964 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
2968 install_prog="$install_prog $arg"
2971 if test -z "$install_prog"; then
2972 $echo "$modename: you must specify an install program" 1>&2
2977 if test -n "$prev"; then
2978 $echo "$modename: the \`$prev' option requires an argument" 1>&2
2983 if test -z "$files"; then
2984 if test -z "$dest"; then
2985 $echo "$modename: no file or destination specified" 1>&2
2987 $echo "$modename: you must specify a destination" 1>&2
2993 # Strip any trailing slash from the destination.
2994 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
2996 # Check to see that the destination is a directory.
2997 test -d "$dest" && isdir=yes
2998 if test "$isdir" = yes; then
3002 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3003 test "X$destdir" = "X$dest" && destdir=.
3004 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3006 # Not a directory, so check to see that there is only one file specified.
3008 if test $# -gt 2; then
3009 $echo "$modename: \`$dest' is not a directory" 1>&2
3015 /* | [A-Za-z]:[/\\]*) ;;
3017 for file in $files; do
3021 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3030 # This variable tells wrapper scripts just to set variables rather
3031 # than running their programs.
3032 libtool_install_magic="$magic"
3037 for file in $files; do
3039 # Do each installation.
3042 # Do the static libraries later.
3043 staticlibs="$staticlibs $file"
3047 # Check to see that this really is a libtool archive.
3048 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3050 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3057 # If there is no directory component, then add one.
3059 */* | *\\*) . $file ;;
3063 # Add the libdir to current_libdirs if it is the destination.
3064 if test "X$destdir" = "X$libdir"; then
3065 case "$current_libdirs " in
3067 *) current_libdirs="$current_libdirs $libdir" ;;
3070 # Note the libdir as a future libdir.
3071 case "$future_libdirs " in
3073 *) future_libdirs="$future_libdirs $libdir" ;;
3077 dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3078 test "X$dir" = "X$file/" && dir=
3081 # See the names of the shared library.
3082 set dummy $library_names
3083 if test -n "$2"; then
3088 # Install the shared library and build the symlinks.
3089 $show "$install_prog $dir/$realname $destdir/$realname"
3090 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3091 test "X$dlname" = "X$realname" && dlname=
3093 if test $# -gt 0; then
3094 # Delete the old symlinks, and create new ones.
3097 test "X$dlname" = "X$linkname" && dlname=
3098 if test "$linkname" != "$realname"; then
3099 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3100 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3105 if test -n "$dlname"; then
3106 # Install the dynamically-loadable library.
3107 $show "$install_prog $dir/$dlname $destdir/$dlname"
3108 $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
3111 # Do each command in the postinstall commands.
3112 lib="$destdir/$realname"
3113 eval cmds=\"$postinstall_cmds\"
3114 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3115 for cmd in $cmds; do
3118 $run eval "$cmd" || exit $?
3123 # Install the pseudo-library for information purposes.
3124 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3125 instname="$dir/$name"i
3126 if test ! -f "$instname"; then
3127 # Just in case it was removed...
3128 $show "Creating $instname"
3130 sed 's/^installed=no$/installed=yes/' "$file" > "$instname"
3132 $show "$install_prog $instname $destdir/$name"
3133 $run eval "$install_prog $instname $destdir/$name" || exit $?
3135 # Maybe install the static library, too.
3136 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3140 # Install (i.e. copy) a libtool object.
3142 # Figure out destination file name, if it wasn't already specified.
3143 if test -n "$destname"; then
3144 destfile="$destdir/$destname"
3146 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3147 destfile="$destdir/$destfile"
3150 # Deduce the name of the destination old-style object file.
3153 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3156 staticdest="$destfile"
3160 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3166 # Install the libtool object if requested.
3167 if test -n "$destfile"; then
3168 $show "$install_prog $file $destfile"
3169 $run eval "$install_prog $file $destfile" || exit $?
3172 # Install the old object if enabled.
3173 if test "$build_old_libs" = yes; then
3174 # Deduce the name of the old-style object file.
3175 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3177 $show "$install_prog $staticobj $staticdest"
3178 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3184 # Figure out destination file name, if it wasn't already specified.
3185 if test -n "$destname"; then
3186 destfile="$destdir/$destname"
3188 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3189 destfile="$destdir/$destfile"
3192 # Do a test to see if this is really a libtool program.
3193 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3194 link_against_libtool_libs=
3197 # If there is no directory component, then add one.
3199 */* | *\\*) . $file ;;
3203 # Check the variables that should have been set.
3204 if test -z "$link_against_libtool_libs"; then
3205 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3210 for lib in $link_against_libtool_libs; do
3211 # Check to see that each library is installed.
3213 if test -f "$lib"; then
3214 # If there is no directory component, then add one.
3216 */* | *\\*) . $lib ;;
3220 libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3221 if test -n "$libdir" && test ! -f "$libfile"; then
3222 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3228 if test "$fast_install" = no && test -n "$relink_command"; then
3229 if test "$finalize" = yes; then
3230 outputname="/tmp/$$-$file"
3231 # Replace the output file specification.
3232 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3234 $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
3235 $show "$relink_command"
3236 if $run eval "$relink_command"; then :
3238 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3243 $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
3246 # Install the binary that we compiled earlier.
3247 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3251 $show "$install_prog$stripme $file $destfile"
3252 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3253 test -n "$outputname" && $rm $outputname
3258 for file in $staticlibs; do
3259 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3261 # Set up the ranlib parameters.
3262 oldlib="$destdir/$name"
3264 $show "$install_prog $file $oldlib"
3265 $run eval "$install_prog \$file \$oldlib" || exit $?
3267 # Do each command in the postinstall commands.
3268 eval cmds=\"$old_postinstall_cmds\"
3269 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3270 for cmd in $cmds; do
3273 $run eval "$cmd" || exit $?
3278 if test -n "$future_libdirs"; then
3279 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3282 if test -n "$current_libdirs"; then
3283 # Maybe just do a dry run.
3284 test -n "$run" && current_libdirs=" -n$current_libdirs"
3285 exec $SHELL $0 --finish$current_libdirs
3292 # libtool finish mode
3294 modename="$modename: finish"
3298 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3301 libdirs="$libdirs $dir"
3304 for libdir in $libdirs; do
3305 if test -n "$finish_cmds"; then
3306 # Do each command in the finish commands.
3307 eval cmds=\"$finish_cmds\"
3308 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3309 for cmd in $cmds; do
3312 $run eval "$cmd" || admincmds="$admincmds
3317 if test -n "$finish_eval"; then
3318 # Do the single finish_eval.
3319 eval cmds=\"$finish_eval\"
3320 $run eval "$cmds" || admincmds="$admincmds
3326 # Exit here if they wanted silent mode.
3327 test "$show" = : && exit 0
3329 echo "----------------------------------------------------------------------"
3330 echo "Libraries have been installed in:"
3331 for libdir in $libdirs; do
3335 echo "If you ever happen to want to link against installed libraries"
3336 echo "in a given directory, LIBDIR, you must either use libtool, and"
3337 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3338 echo "flag during linking and do at least one of the following:"
3339 if test -n "$shlibpath_var"; then
3340 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3341 echo " during execution"
3343 if test -n "$runpath_var"; then
3344 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3345 echo " during linking"
3347 if test -n "$hardcode_libdir_flag_spec"; then
3349 eval flag=\"$hardcode_libdir_flag_spec\"
3351 echo " - use the \`$flag' linker flag"
3353 if test -n "$admincmds"; then
3354 echo " - have your system administrator run these commands:$admincmds"
3356 if test -f /etc/ld.so.conf; then
3357 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3360 echo "See any operating system documentation about shared libraries for"
3361 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3362 echo "----------------------------------------------------------------------"
3366 # libtool execute mode
3368 modename="$modename: execute"
3370 # The first argument is the command name.
3372 if test -z "$cmd"; then
3373 $echo "$modename: you must specify a COMMAND" 1>&2
3378 # Handle -dlopen flags immediately.
3379 for file in $execute_dlfiles; do
3380 if test ! -f "$file"; then
3381 $echo "$modename: \`$file' is not a file" 1>&2
3389 # Check to see that this really is a libtool archive.
3390 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3392 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3397 # Read the libtool library.
3401 # If there is no directory component, then add one.
3403 */* | *\\*) . $file ;;
3407 # Skip this library if it cannot be dlopened.
3408 if test -z "$dlname"; then
3409 # Warn if it was a shared library.
3410 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3414 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3415 test "X$dir" = "X$file" && dir=.
3417 if test -f "$dir/$objdir/$dlname"; then
3420 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3426 # Just add the directory containing the .lo file.
3427 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3428 test "X$dir" = "X$file" && dir=.
3432 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3437 # Get the absolute pathname.
3438 absdir=`cd "$dir" && pwd`
3439 test -n "$absdir" && dir="$absdir"
3441 # Now add the directory to shlibpath_var.
3442 if eval "test -z \"\$$shlibpath_var\""; then
3443 eval "$shlibpath_var=\"\$dir\""
3445 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3449 # This variable tells wrapper scripts just to set shlibpath_var
3450 # rather than running their programs.
3451 libtool_execute_magic="$magic"
3453 # Check if any of the arguments is a wrapper script.
3460 # Do a test to see if this is really a libtool program.
3461 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3462 # If there is no directory component, then add one.
3464 */* | *\\*) . $file ;;
3468 # Transform arg to wrapped name.
3469 file="$progdir/$program"
3473 # Quote arguments (to preserve shell metacharacters).
3474 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3475 args="$args \"$file\""
3478 if test -z "$run"; then
3479 # Export the shlibpath_var.
3480 eval "export $shlibpath_var"
3482 # Restore saved enviroment variables
3483 if test "${save_LC_ALL+set}" = set; then
3484 LC_ALL="$save_LC_ALL"; export LC_ALL
3486 if test "${save_LANG+set}" = set; then
3487 LANG="$save_LANG"; export LANG
3490 # Now actually exec the command.
3491 eval "exec \$cmd$args"
3493 $echo "$modename: cannot exec \$cmd$args"
3496 # Display what would be done.
3497 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3498 $echo "export $shlibpath_var"
3504 # libtool uninstall mode
3506 modename="$modename: uninstall"
3513 -*) rm="$rm $arg" ;;
3514 *) files="$files $arg" ;;
3518 if test -z "$rm"; then
3519 $echo "$modename: you must specify an RM program" 1>&2
3524 for file in $files; do
3525 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3526 test "X$dir" = "X$file" && dir=.
3527 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3533 # Possibly a libtool archive, so verify it.
3534 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3537 # Delete the libtool libraries and symlinks.
3538 for n in $library_names; do
3539 rmfiles="$rmfiles $dir/$n"
3540 test "X$n" = "X$dlname" && dlname=
3542 test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
3543 test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3545 $show "$rm $rmfiles"
3548 if test -n "$library_names"; then
3549 # Do each command in the postuninstall commands.
3550 eval cmds=\"$postuninstall_cmds\"
3551 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3552 for cmd in $cmds; do
3560 if test -n "$old_library"; then
3561 # Do each command in the old_postuninstall commands.
3562 eval cmds=\"$old_postuninstall_cmds\"
3563 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3564 for cmd in $cmds; do
3572 # FIXME: should reinstall the best remaining shared library.
3577 if test "$build_old_libs" = yes; then
3578 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3579 rmfiles="$rmfiles $dir/$oldobj"
3581 $show "$rm $rmfiles"
3586 $show "$rm $rmfiles"
3595 $echo "$modename: you must specify a MODE" 1>&2
3596 $echo "$generic_help" 1>&2
3601 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3602 $echo "$generic_help" 1>&2
3604 fi # test -z "$show_help"
3606 # We need to display help for each of the modes.
3609 "Usage: $modename [OPTION]... [MODE-ARG]...
3611 Provide generalized library-building support services.
3613 --config show all configuration variables
3614 --debug enable verbose shell tracing
3615 -n, --dry-run display commands without modifying any files
3616 --features display basic configuration information and exit
3617 --finish same as \`--mode=finish'
3618 --help display this help message and exit
3619 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3620 --quiet same as \`--silent'
3621 --silent don't print informational messages
3622 --version print version information
3624 MODE must be one of the following:
3626 compile compile a source file into a libtool object
3627 execute automatically set library path, then run a program
3628 finish complete the installation of libtool libraries
3629 install install libraries or executables
3630 link create a library or an executable
3631 uninstall remove libraries from an installed directory
3633 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3634 a more detailed description of MODE."
3640 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3642 Compile a source file into a libtool library object.
3644 This mode accepts the following additional options:
3646 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
3647 -static always build a \`.o' file suitable for static linking
3649 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3650 from the given SOURCEFILE.
3652 The output file name is determined by removing the directory component from
3653 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3654 library object suffix, \`.lo'."
3659 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3661 Automatically set library path, then run a program.
3663 This mode accepts the following additional options:
3665 -dlopen FILE add the directory containing FILE to the library path
3667 This mode sets the library path environment variable according to \`-dlopen'
3670 If any of the ARGS are libtool executable wrappers, then they are translated
3671 into their corresponding uninstalled binary, and any of their required library
3672 directories are added to the library path.
3674 Then, COMMAND is executed, with ARGS as arguments."
3679 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3681 Complete the installation of libtool libraries.
3683 Each LIBDIR is a directory that contains libtool libraries.
3685 The commands that this mode executes may require superuser privileges. Use
3686 the \`--dry-run' option if you just want to see what would be executed."
3691 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3693 Install executables or libraries.
3695 INSTALL-COMMAND is the installation command. The first component should be
3696 either the \`install' or \`cp' program.
3698 The rest of the components are interpreted as arguments to that command (only
3699 BSD-compatible install options are recognized)."
3704 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3706 Link object files or libraries together to form another library, or to
3707 create an executable program.
3709 LINK-COMMAND is a command using the C compiler that you would use to create
3710 a program from several object files.
3712 The following components of LINK-COMMAND are treated specially:
3714 -all-static do not do any dynamic linking at all
3715 -avoid-version do not add a version suffix if possible
3716 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
3717 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
3718 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3719 -export-symbols SYMFILE
3720 try to export only the symbols listed in SYMFILE
3721 -LLIBDIR search LIBDIR for required installed libraries
3722 -lNAME OUTPUT-FILE requires the installed library libNAME
3723 -module build a library that can dlopened
3724 -no-undefined declare that a library does not refer to external symbols
3725 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
3726 -release RELEASE specify package release information
3727 -rpath LIBDIR the created library will eventually be installed in LIBDIR
3728 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
3729 -static do not do any dynamic linking of libtool libraries
3730 -version-info CURRENT[:REVISION[:AGE]]
3731 specify library version info [each variable defaults to 0]
3733 All other options (arguments beginning with \`-') are ignored.
3735 Every other argument is treated as a filename. Files ending in \`.la' are
3736 treated as uninstalled libtool libraries, other files are standard or library
3739 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3740 only library objects (\`.lo' files) may be specified, and \`-rpath' is
3741 required, except when creating a convenience library.
3743 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3744 using \`ar' and \`ranlib', or on Windows using \`lib'.
3746 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3747 is created, otherwise an executable program is created."
3752 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3754 Remove libraries from an installation directory.
3756 RM is the name of the program to use to delete files associated with each FILE
3757 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
3760 If FILE is a libtool library, all the files associated with it are deleted.
3761 Otherwise, only FILE itself is deleted using RM."
3765 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3772 $echo "Try \`$modename --help' for more information about other modes."