1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
5 # Free Software Foundation, Inc.
6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
29 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30 # is ksh but when the shell is invoked as "sh" and the current value of
31 # the _XPG environment variable is not equal to 1 (one), the special
32 # positional parameter $0, within a function call, is the name of the
36 # The name of this program:
37 progname=`echo "$progpath" | $SED $basename`
47 TIMESTAMP=" (1.1220.2.131 2004/09/19 12:46:56)"
49 # See if we are running on zsh, and set the options which allow our
50 # commands through without removal of \ escapes.
51 if test -n "${ZSH_VERSION+set}" ; then
55 # Check that we have a working $echo.
56 if test "X$1" = X--no-reexec; then
57 # Discard the --no-reexec flag, and continue.
59 elif test "X$1" = X--fallback-echo; then
60 # Avoid inline document here, it may be left over
62 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63 # Yippee, $echo works!
66 # Restart under the correct shell, and then maybe $echo will work.
67 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
70 if test "X$1" = X--fallback-echo; then
71 # used as fallback echo
80 help="Try \`$progname --help' for more information."
81 magic="%%%MAGIC variable%%%"
86 # Sed substitution that helps us do robust quoting. It backslashifies
87 # metacharacters that are still active within double-quoted strings.
88 Xsed="${SED}"' -e 1s/^X//'
89 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90 # test EBCDIC or ASCII
91 case `echo A|tr A '\301'` in
92 A) # EBCDIC based system
93 SP2NL="tr '\100' '\n'"
94 NL2SP="tr '\r\n' '\100\100'"
96 *) # Assume ASCII based system
97 SP2NL="tr '\040' '\012'"
98 NL2SP="tr '\015\012' '\040\040'"
103 # Only set LANG and LC_ALL to C if already set.
104 # These must not be set unconditionally because not all systems understand
105 # e.g. LANG=C (notably SCO).
106 # We save the old values to restore during execute mode.
107 if test "${LC_ALL+set}" = set; then
108 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110 if test "${LANG+set}" = set; then
111 save_LANG="$LANG"; LANG=C; export LANG
114 # Make sure IFS has a sensible default
118 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
119 $echo "$modename: not configured to build any kind of library" 1>&2
120 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
133 lo2o="s/\\.lo\$/.${objext}/"
134 o2lo="s/\\.${objext}\$/.lo/"
136 #####################################
137 # Shell function definitions:
138 # This seems to be the best place for them
140 # func_win32_libid arg
141 # return the library type of file 'arg'
143 # Need a lot of goo to handle *both* DLLs and import libs
144 # Has to be a shell function in order to 'eat' the argument
145 # that is supplied when $file_magic_command is called.
146 func_win32_libid () {
147 win32_libid_type="unknown"
148 win32_fileres=`file -L $1 2>/dev/null`
149 case $win32_fileres in
150 *ar\ archive\ import\ library*) # definitely import
151 win32_libid_type="x86 archive import"
153 *ar\ archive*) # could be an import, or static
154 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
155 $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
156 win32_nmres=`eval $NM -f posix -A $1 | \
157 sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
158 if test "X$win32_nmres" = "Ximport" ; then
159 win32_libid_type="x86 archive import"
161 win32_libid_type="x86 archive static"
166 win32_libid_type="x86 DLL"
168 *executable*) # but shell scripts are "executable" too...
169 case $win32_fileres in
170 *MS\ Windows\ PE\ Intel*)
171 win32_libid_type="x86 DLL"
176 $echo $win32_libid_type
181 # Infer tagged configuration to use if any are available and
182 # if one wasn't chosen via the "--tag" command line option.
183 # Only attempt this if the compiler in the base compile
184 # command doesn't match the default compiler.
185 # arg is usually of the form 'gcc ...'
187 if test -n "$available_tags" && test -z "$tagname"; then
191 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
195 CC_quoted="$CC_quoted $arg"
198 # Blanks in the command may have been stripped by the calling shell,
199 # but not from the CC environment variable when configure was run.
200 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
201 # Blanks at the start of $base_compile will cause this to fail
202 # if we don't check for them as well.
204 for z in $available_tags; do
205 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
206 # Evaluate the configuration.
207 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
210 # Double-quote args containing other shell metacharacters.
212 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
216 CC_quoted="$CC_quoted $arg"
219 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
220 # The compiler in the base compile command matches
221 # the one in the tagged configuration.
222 # Assume this is the tagged configuration we want.
229 # If $tagname still isn't set, then no tagged configuration
230 # was found and let the user know that the "--tag" command
231 # line option must be used.
232 if test -z "$tagname"; then
233 $echo "$modename: unable to infer tagged configuration"
234 $echo "$modename: specify a tag with \`--tag'" 1>&2
237 # $echo "$modename: using $tagname tagged configuration"
245 # func_extract_archives gentop oldlib ...
246 func_extract_archives () {
247 my_gentop="$1"; shift
255 $show "${rm}r $my_gentop"
256 $run ${rm}r "$my_gentop"
257 $show "$mkdir $my_gentop"
258 $run $mkdir "$my_gentop"
260 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
264 for my_xlib in $my_oldlibs; do
265 # Extract the objects.
267 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
268 *) my_xabs=`pwd`"/$my_xlib" ;;
270 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
271 my_xdir="$my_gentop/$my_xlib"
273 $show "${rm}r $my_xdir"
274 $run ${rm}r "$my_xdir"
275 $show "$mkdir $my_xdir"
276 $run $mkdir "$my_xdir"
278 if test "$status" -ne 0 && test ! -d "$my_xdir"; then
283 $show "Extracting $my_xabs"
284 # Do not bother doing anything if just a dry run
285 if test -z "$run"; then
286 darwin_orig_dir=`pwd`
287 cd $my_xdir || exit $?
288 darwin_archive=$my_xabs
290 darwin_base_archive=`basename $darwin_archive`
291 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
292 if test -n "$darwin_arches"; then
293 darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
295 $show "$darwin_base_archive has multiple architectures $darwin_arches"
296 for darwin_arch in $darwin_arches ; do
297 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
298 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
299 # Remove the table of contents from the thin files.
300 $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true
301 $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true
302 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
303 $AR -xo "${darwin_base_archive}"
304 rm "${darwin_base_archive}"
306 done # $darwin_arches
307 ## Okay now we have a bunch of thin objects, gotta fatten them up :)
308 darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP`
311 for darwin_file in $darwin_filelist; do
312 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
313 lipo -create -output "$darwin_file" $darwin_files
314 done # $darwin_filelist
316 cd "$darwin_orig_dir"
319 (cd $my_xdir && $AR x $my_xabs) || exit $?
324 # We will extract separately just the conflicting names and we will
325 # no longer touch any unique names. It is faster to leave these
326 # extract automatically by $AR in one run.
327 $show "(cd $my_xdir && $AR x $my_xabs)"
328 $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $?
329 if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then
332 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
333 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
334 $AR t "$my_xabs" | sort | uniq -cd | while read -r count name
337 while test "$i" -le "$count"
339 # Put our $i before any first dot (extension)
340 # Never overwrite any file
342 while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to"
344 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
346 $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')"
347 $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $?
354 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
357 func_extract_archives_result="$my_oldobjs"
359 # End of Shell function definitions
360 #####################################
363 eval std_shrext=\"$shrext_cmds\"
365 # Parse our command line options once, thoroughly.
366 while test "$#" -gt 0
372 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
376 # If the previous option needs an argument, assign it.
377 if test -n "$prev"; then
380 execute_dlfiles="$execute_dlfiles $arg"
384 preserve_args="${preserve_args}=$arg"
386 # Check whether tagname contains only valid characters
389 $echo "$progname: invalid tag name: $tagname" 1>&2
396 # Don't test for the "default" C tag, as we know, it's there, but
397 # not specially marked.
400 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
401 taglist="$taglist $tagname"
402 # Evaluate the configuration.
403 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
405 $echo "$progname: ignoring unknown tag $tagname" 1>&2
420 # Have we seen a non-optional argument yet?
427 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
429 $echo "Copyright (C) 2003 Free Software Foundation, Inc."
430 $echo "This is free software; see the source for copying conditions. There is NO"
431 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
436 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
437 # Now print the configurations for the tags.
438 for tagname in $taglist; do
439 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
445 $echo "$progname: enabling shell trace mode"
447 preserve_args="$preserve_args $arg"
456 if test "$build_libtool_libs" = yes; then
457 $echo "enable shared libraries"
459 $echo "disable shared libraries"
461 if test "$build_old_libs" = yes; then
462 $echo "enable static libraries"
464 $echo "disable static libraries"
469 --finish) mode="finish" ;;
471 --mode) prevopt="--mode" prev=mode ;;
472 --mode=*) mode="$optarg" ;;
474 --preserve-dup-deps) duplicate_deps="yes" ;;
478 preserve_args="$preserve_args $arg"
481 --tag) prevopt="--tag" prev=tag ;;
483 set tag "$optarg" ${1+"$@"}
486 preserve_args="$preserve_args --tag"
495 $echo "$modename: unrecognized option \`$arg'" 1>&2
507 if test -n "$prevopt"; then
508 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
513 # If this variable is set in any of the actions, the command in it
514 # will be execed at the end. This prevents here-documents from being
515 # left over by shells.
518 if test -z "$show_help"; then
520 # Infer the operation mode.
521 if test -z "$mode"; then
522 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
523 $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
525 *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
537 *db | *dbx | *strace | *truss)
547 # If we have no mode, but dlfiles were specified, then do execute mode.
548 test -n "$execute_dlfiles" && mode=execute
550 # Just use the default operation mode.
551 if test -z "$mode"; then
552 if test -n "$nonopt"; then
553 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
555 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
562 # Only execute mode is allowed to have -dlopen flags.
563 if test -n "$execute_dlfiles" && test "$mode" != execute; then
564 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
569 # Change the help message to a mode-specific one.
571 help="Try \`$modename --help --mode=$mode' for more information."
573 # These modes are in order of execution frequency so that they run quickly.
575 # libtool compile mode
577 modename="$modename: compile"
578 # Get the compilation command and the source file.
580 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
591 # do not "continue". Instead, add this to base_compile
603 # Accept any command-line options.
606 if test -n "$libobj" ; then
607 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
614 -static | -prefer-pic | -prefer-non-pic)
625 arg_mode=arg # the next one goes into the "base_compile" arg list
626 continue # The current "srcfile" will either be retained or
627 ;; # replaced later. I would guess that would be a bug.
630 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
632 save_ifs="$IFS"; IFS=','
636 # Double-quote args containing other shell metacharacters.
637 # Many Bourne shells cannot handle close brackets correctly
638 # in scan sets, so we specify it separately.
640 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
644 lastarg="$lastarg $arg"
647 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
649 # Add the arguments to base_compile.
650 base_compile="$base_compile $lastarg"
655 # Accept the current argument as the source file.
656 # The previous "srcfile" becomes the current argument.
663 esac # case $arg_mode
665 # Aesthetically quote the previous argument.
666 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
669 # Double-quote args containing other shell metacharacters.
670 # Many Bourne shells cannot handle close brackets correctly
671 # in scan sets, so we specify it separately.
672 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
673 lastarg="\"$lastarg\""
677 base_compile="$base_compile $lastarg"
682 $echo "$modename: you must specify an argument for -Xcompile"
686 $echo "$modename: you must specify a target with \`-o'" 1>&2
690 # Get the name of the library object.
691 [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
695 # Recognize several different file suffixes.
696 # If the user specifies -o file.o, it is replaced with file.lo
706 *.class) xform=class ;;
711 *.java) xform=java ;;
714 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
717 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
719 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
724 func_infer_tag $base_compile
726 for arg in $later; do
745 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
746 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
747 if test "X$xdir" = "X$obj"; then
752 lobj=${xdir}$objdir/$objname
754 if test -z "$base_compile"; then
755 $echo "$modename: you must specify a compilation command" 1>&2
760 # Delete any leftover library objects.
761 if test "$build_old_libs" = yes; then
762 removelist="$obj $lobj $libobj ${libobj}T"
764 removelist="$lobj $libobj ${libobj}T"
768 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
770 # On Cygwin there's no "real" PIC flag so we must build both object types
772 cygwin* | mingw* | pw32* | os2*)
776 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
777 # non-PIC code in shared libraries is not supported
781 # Calculate the filename of the output object if compiler does
782 # not support -o with -c
783 if test "$compiler_c_o" = no; then
784 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
785 lockfile="$output_obj.lock"
786 removelist="$removelist $output_obj $lockfile"
787 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
794 # Lock this critical section if it is needed
795 # We use this script file to make the link, it avoids creating a new file
796 if test "$need_locks" = yes; then
797 until $run ln "$progpath" "$lockfile" 2>/dev/null; do
798 $show "Waiting for $lockfile to be removed"
801 elif test "$need_locks" = warn; then
802 if test -f "$lockfile"; then
804 *** ERROR, $lockfile exists and contains:
805 `cat $lockfile 2>/dev/null`
807 This indicates that another process is trying to use the same
808 temporary object file, and libtool could not work around it because
809 your compiler does not support \`-c' and \`-o' together. If you
810 repeat this compilation, it may succeed, by chance, but you had better
811 avoid parallel builds (make -j) in this platform, or get a better
817 $echo $srcfile > "$lockfile"
820 if test -n "$fix_srcfile_path"; then
821 eval srcfile=\"$fix_srcfile_path\"
824 $run $rm "$libobj" "${libobj}T"
826 # Create a libtool object file (analogous to a ".la" file),
827 # but don't create it if we're doing a dry run.
828 test -z "$run" && cat > ${libobj}T <<EOF
829 # $libobj - a libtool object file
830 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
832 # Please DO NOT delete this file!
833 # It is necessary for linking the library.
835 # Name of the PIC object.
838 # Only build a PIC object if we are building libtool libraries.
839 if test "$build_libtool_libs" = yes; then
840 # Without this assignment, base_compile gets emptied.
841 fbsd_hideous_sh_bug=$base_compile
843 if test "$pic_mode" != no; then
844 command="$base_compile $srcfile $pic_flag"
846 # Don't build PIC code
847 command="$base_compile $srcfile"
850 if test ! -d "${xdir}$objdir"; then
851 $show "$mkdir ${xdir}$objdir"
852 $run $mkdir ${xdir}$objdir
854 if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
859 if test -z "$output_obj"; then
860 # Place PIC objects in $objdir
861 command="$command -o $lobj"
864 $run $rm "$lobj" "$output_obj"
867 if $run eval "$command"; then :
869 test -n "$output_obj" && $run $rm $removelist
873 if test "$need_locks" = warn &&
874 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
876 *** ERROR, $lockfile contains:
877 `cat $lockfile 2>/dev/null`
879 but it should contain:
882 This indicates that another process is trying to use the same
883 temporary object file, and libtool could not work around it because
884 your compiler does not support \`-c' and \`-o' together. If you
885 repeat this compilation, it may succeed, by chance, but you had better
886 avoid parallel builds (make -j) in this platform, or get a better
893 # Just move the object if needed, then go on to compile the next one
894 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
895 $show "$mv $output_obj $lobj"
896 if $run $mv $output_obj $lobj; then :
904 # Append the name of the PIC object to the libtool object file.
905 test -z "$run" && cat >> ${libobj}T <<EOF
906 pic_object='$objdir/$objname'
910 # Allow error messages only from the first compilation.
911 if test "$suppress_opt" = yes; then
912 suppress_output=' >/dev/null 2>&1'
915 # No PIC object so indicate it doesn't exist in the libtool
917 test -z "$run" && cat >> ${libobj}T <<EOF
923 # Only build a position-dependent object if we build old libraries.
924 if test "$build_old_libs" = yes; then
925 if test "$pic_mode" != yes; then
926 # Don't build PIC code
927 command="$base_compile $srcfile"
929 command="$base_compile $srcfile $pic_flag"
931 if test "$compiler_c_o" = yes; then
932 command="$command -o $obj"
935 # Suppress compiler output if we already did a PIC compilation.
936 command="$command$suppress_output"
937 $run $rm "$obj" "$output_obj"
939 if $run eval "$command"; then :
945 if test "$need_locks" = warn &&
946 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
948 *** ERROR, $lockfile contains:
949 `cat $lockfile 2>/dev/null`
951 but it should contain:
954 This indicates that another process is trying to use the same
955 temporary object file, and libtool could not work around it because
956 your compiler does not support \`-c' and \`-o' together. If you
957 repeat this compilation, it may succeed, by chance, but you had better
958 avoid parallel builds (make -j) in this platform, or get a better
965 # Just move the object if needed
966 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
967 $show "$mv $output_obj $obj"
968 if $run $mv $output_obj $obj; then :
976 # Append the name of the non-PIC object the libtool object file.
977 # Only append if the libtool object file exists.
978 test -z "$run" && cat >> ${libobj}T <<EOF
979 # Name of the non-PIC object.
980 non_pic_object='$objname'
984 # Append the name of the non-PIC object the libtool object file.
985 # Only append if the libtool object file exists.
986 test -z "$run" && cat >> ${libobj}T <<EOF
987 # Name of the non-PIC object.
993 $run $mv "${libobj}T" "${libobj}"
995 # Unlock the critical section if it was locked
996 if test "$need_locks" != no; then
1005 modename="$modename: link"
1007 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1008 # It is impossible to link a dll without this setting, and
1009 # we shouldn't force the makefile maintainer to figure out
1010 # which system we are compiling for in order to pass an extra
1011 # flag for every libtool invocation.
1012 # allow_undefined=no
1014 # FIXME: Unfortunately, there are problems with the above when trying
1015 # to make a dll which has undefined symbols, in which case not
1016 # even a static library is built. For now, we need to specify
1017 # -no-undefined on the libtool link line when we can be certain
1018 # that all symbols are satisfied, otherwise we get a static library.
1025 libtool_args="$nonopt"
1026 base_compile="$nonopt $@"
1027 compile_command="$nonopt"
1028 finalize_command="$nonopt"
1041 lib_search_path=`pwd`
1050 export_symbols_regex=
1058 precious_files_regex=
1059 prefer_static_libs=no
1072 func_infer_tag $base_compile
1074 # We need to know -static, to get the right output filenames.
1078 -all-static | -static)
1079 if test "X$arg" = "X-all-static"; then
1080 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1081 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1083 if test -n "$link_static_flag"; then
1084 dlopen_self=$dlopen_self_static
1087 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1088 dlopen_self=$dlopen_self_static
1091 build_libtool_libs=no
1093 prefer_static_libs=yes
1099 # See if our shared archives depend on static archives.
1100 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1102 # Go through the arguments, transforming them on the way.
1103 while test "$#" -gt 0; do
1107 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1108 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1112 libtool_args="$libtool_args $qarg"
1114 # If the previous option needs an argument, assign it.
1115 if test -n "$prev"; then
1118 compile_command="$compile_command @OUTPUT@"
1119 finalize_command="$finalize_command @OUTPUT@"
1125 if test "$preload" = no; then
1126 # Add the symbol object into the linking commands.
1127 compile_command="$compile_command @SYMFILE@"
1128 finalize_command="$finalize_command @SYMFILE@"
1132 *.la | *.lo) ;; # We handle these cases below.
1134 if test "$dlself" = no; then
1142 if test "$prev" = dlprefiles; then
1144 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1154 if test "$prev" = dlfiles; then
1155 dlfiles="$dlfiles $arg"
1157 dlprefiles="$dlprefiles $arg"
1165 export_symbols="$arg"
1166 if test ! -f "$arg"; then
1167 $echo "$modename: symbol file \`$arg' does not exist"
1174 export_symbols_regex="$arg"
1179 inst_prefix_dir="$arg"
1184 precious_files_regex="$arg"
1194 if test -f "$arg"; then
1197 for fil in `cat $save_arg`
1199 # moreargs="$moreargs $fil"
1201 # A libtool-controlled object.
1203 # Check to see that this really is a libtool object.
1204 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1209 # If there is no directory component, then add one.
1211 */* | *\\*) . $arg ;;
1215 if test -z "$pic_object" || \
1216 test -z "$non_pic_object" ||
1217 test "$pic_object" = none && \
1218 test "$non_pic_object" = none; then
1219 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1223 # Extract subdirectory from the argument.
1224 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1225 if test "X$xdir" = "X$arg"; then
1231 if test "$pic_object" != none; then
1232 # Prepend the subdirectory the object is found in.
1233 pic_object="$xdir$pic_object"
1235 if test "$prev" = dlfiles; then
1236 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1237 dlfiles="$dlfiles $pic_object"
1241 # If libtool objects are unsupported, then we need to preload.
1246 # CHECK ME: I think I busted this. -Ossama
1247 if test "$prev" = dlprefiles; then
1248 # Preload the old-style object.
1249 dlprefiles="$dlprefiles $pic_object"
1254 libobjs="$libobjs $pic_object"
1259 if test "$non_pic_object" != none; then
1260 # Prepend the subdirectory the object is found in.
1261 non_pic_object="$xdir$non_pic_object"
1263 # A standard non-PIC object
1264 non_pic_objects="$non_pic_objects $non_pic_object"
1265 if test -z "$pic_object" || test "$pic_object" = none ; then
1266 arg="$non_pic_object"
1270 # Only an error if not doing a dry-run.
1271 if test -z "$run"; then
1272 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1277 # Extract subdirectory from the argument.
1278 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1279 if test "X$xdir" = "X$arg"; then
1285 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1286 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1287 libobjs="$libobjs $pic_object"
1288 non_pic_objects="$non_pic_objects $non_pic_object"
1293 $echo "$modename: link input file \`$save_arg' does not exist"
1301 # We need an absolute path.
1303 [\\/]* | [A-Za-z]:[\\/]*) ;;
1305 $echo "$modename: only absolute run-paths are allowed" 1>&2
1309 if test "$prev" = rpath; then
1312 *) rpath="$rpath $arg" ;;
1317 *) xrpath="$xrpath $arg" ;;
1324 compiler_flags="$compiler_flags $qarg"
1326 compile_command="$compile_command $qarg"
1327 finalize_command="$finalize_command $qarg"
1331 linker_flags="$linker_flags $qarg"
1332 compiler_flags="$compiler_flags $wl$qarg"
1334 compile_command="$compile_command $wl$qarg"
1335 finalize_command="$finalize_command $wl$qarg"
1339 linker_flags="$linker_flags $qarg"
1340 compiler_flags="$compiler_flags $qarg"
1342 compile_command="$compile_command $qarg"
1343 finalize_command="$finalize_command $qarg"
1352 eval "$prev=\"\$arg\""
1357 fi # test -n "$prev"
1363 if test -n "$link_static_flag"; then
1364 compile_command="$compile_command $link_static_flag"
1365 finalize_command="$finalize_command $link_static_flag"
1371 # FIXME: remove this flag sometime in the future.
1372 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1396 -export-symbols | -export-symbols-regex)
1397 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1398 $echo "$modename: more than one -exported-symbols argument is not allowed"
1401 if test "X$arg" = "X-export-symbols"; then
1414 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1415 # so, if we see these flags be careful not to treat them like -L
1417 case $with_gcc/$host in
1418 no/*-*-irix* | /*-*-irix*)
1419 compile_command="$compile_command $arg"
1420 finalize_command="$finalize_command $arg"
1427 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1428 # We need an absolute path.
1430 [\\/]* | [A-Za-z]:[\\/]*) ;;
1432 absdir=`cd "$dir" && pwd`
1433 if test -z "$absdir"; then
1434 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1443 deplibs="$deplibs -L$dir"
1444 lib_search_path="$lib_search_path $dir"
1448 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1449 case :$dllsearchpath: in
1451 *) dllsearchpath="$dllsearchpath:$dir";;
1459 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1461 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1462 # These systems don't actually have a C or math library (as such)
1465 *-*-mingw* | *-*-os2*)
1466 # These systems don't actually have a C library (as such)
1467 test "X$arg" = "X-lc" && continue
1469 *-*-openbsd* | *-*-freebsd*)
1470 # Do not include libc due to us having libc/libc_r.
1471 test "X$arg" = "X-lc" && continue
1473 *-*-rhapsody* | *-*-darwin1.[012])
1474 # Rhapsody C and math libraries are in the System framework
1475 deplibs="$deplibs -framework System"
1478 elif test "X$arg" = "X-lc_r"; then
1480 *-*-openbsd* | *-*-freebsd*)
1481 # Do not include libc_r directly, use -pthread flag.
1486 deplibs="$deplibs $arg"
1490 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1493 compile_command="$compile_command $arg"
1494 finalize_command="$finalize_command $arg"
1497 case "$archive_cmds" in
1499 *) deplibs="$deplibs $arg";;
1511 # gcc -m* arguments should be passed to the linker via $compiler_flags
1512 # in order to pass architecture information to the linker
1513 # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo
1514 # but this is not reliable with gcc because gcc may use -mfoo to
1515 # select a different linker, different libraries, etc, while
1516 # -Wl,-mfoo simply passes -mfoo to the linker.
1518 # Unknown arguments in both finalize_command and compile_command need
1519 # to be aesthetically quoted because they are evaled later.
1520 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1522 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1526 compile_command="$compile_command $arg"
1527 finalize_command="$finalize_command $arg"
1528 if test "$with_gcc" = "yes" ; then
1529 compiler_flags="$compiler_flags $arg"
1546 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1547 # The PATH hackery in wrapper scripts is required on Windows
1548 # in order for the loader to find any dlls it needs.
1549 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1550 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1553 *) no_install=yes ;;
1570 -precious-files-regex)
1591 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1592 # We need an absolute path.
1594 [\\/]* | [A-Za-z]:[\\/]*) ;;
1596 $echo "$modename: only absolute run-paths are allowed" 1>&2
1602 *) xrpath="$xrpath $dir" ;;
1608 # The effects of -static are defined in a previous loop.
1609 # We used to do the same as -all-static on platforms that
1610 # didn't have a PIC flag, but the assumption that the effects
1611 # would be equivalent was wrong. It would break on at least
1612 # Digital Unix and AIX.
1632 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1634 save_ifs="$IFS"; IFS=','
1635 for flag in $args; do
1638 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1643 compiler_flags="$compiler_flags $flag"
1646 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1650 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1652 save_ifs="$IFS"; IFS=','
1653 for flag in $args; do
1656 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1661 compiler_flags="$compiler_flags $wl$flag"
1662 linker_flags="$linker_flags $flag"
1665 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1683 # Some other compiler flag.
1685 # Unknown arguments in both finalize_command and compile_command need
1686 # to be aesthetically quoted because they are evaled later.
1687 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1689 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1696 # A standard object.
1701 # A libtool-controlled object.
1703 # Check to see that this really is a libtool object.
1704 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1709 # If there is no directory component, then add one.
1711 */* | *\\*) . $arg ;;
1715 if test -z "$pic_object" || \
1716 test -z "$non_pic_object" ||
1717 test "$pic_object" = none && \
1718 test "$non_pic_object" = none; then
1719 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1723 # Extract subdirectory from the argument.
1724 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1725 if test "X$xdir" = "X$arg"; then
1731 if test "$pic_object" != none; then
1732 # Prepend the subdirectory the object is found in.
1733 pic_object="$xdir$pic_object"
1735 if test "$prev" = dlfiles; then
1736 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1737 dlfiles="$dlfiles $pic_object"
1741 # If libtool objects are unsupported, then we need to preload.
1746 # CHECK ME: I think I busted this. -Ossama
1747 if test "$prev" = dlprefiles; then
1748 # Preload the old-style object.
1749 dlprefiles="$dlprefiles $pic_object"
1754 libobjs="$libobjs $pic_object"
1759 if test "$non_pic_object" != none; then
1760 # Prepend the subdirectory the object is found in.
1761 non_pic_object="$xdir$non_pic_object"
1763 # A standard non-PIC object
1764 non_pic_objects="$non_pic_objects $non_pic_object"
1765 if test -z "$pic_object" || test "$pic_object" = none ; then
1766 arg="$non_pic_object"
1770 # Only an error if not doing a dry-run.
1771 if test -z "$run"; then
1772 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1777 # Extract subdirectory from the argument.
1778 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1779 if test "X$xdir" = "X$arg"; then
1785 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1786 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1787 libobjs="$libobjs $pic_object"
1788 non_pic_objects="$non_pic_objects $non_pic_object"
1795 deplibs="$deplibs $arg"
1796 old_deplibs="$old_deplibs $arg"
1801 # A libtool-controlled library.
1803 if test "$prev" = dlfiles; then
1804 # This library was specified with -dlopen.
1805 dlfiles="$dlfiles $arg"
1807 elif test "$prev" = dlprefiles; then
1808 # The library was specified with -dlpreopen.
1809 dlprefiles="$dlprefiles $arg"
1812 deplibs="$deplibs $arg"
1817 # Some other compiler argument.
1819 # Unknown arguments in both finalize_command and compile_command need
1820 # to be aesthetically quoted because they are evaled later.
1821 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1823 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1830 # Now actually substitute the argument into the commands.
1831 if test -n "$arg"; then
1832 compile_command="$compile_command $arg"
1833 finalize_command="$finalize_command $arg"
1835 done # argument parsing loop
1837 if test -n "$prev"; then
1838 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1843 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1844 eval arg=\"$export_dynamic_flag_spec\"
1845 compile_command="$compile_command $arg"
1846 finalize_command="$finalize_command $arg"
1850 # calculate the name of the file, without its directory
1851 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1852 libobjs_save="$libobjs"
1854 if test -n "$shlibpath_var"; then
1855 # get the directories listed in $shlibpath_var
1856 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1860 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1861 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1863 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1864 if test "X$output_objdir" = "X$output"; then
1865 output_objdir="$objdir"
1867 output_objdir="$output_objdir/$objdir"
1869 # Create the object directory.
1870 if test ! -d "$output_objdir"; then
1871 $show "$mkdir $output_objdir"
1872 $run $mkdir $output_objdir
1874 if test "$status" -ne 0 && test ! -d "$output_objdir"; then
1879 # Determine the type of output
1882 $echo "$modename: you must specify an output file" 1>&2
1886 *.$libext) linkmode=oldlib ;;
1887 *.lo | *.$objext) linkmode=obj ;;
1888 *.la) linkmode=lib ;;
1889 *) linkmode=prog ;; # Anything else should be a program.
1893 *cygwin* | *mingw* | *pw32*)
1894 # don't eliminate duplications in $postdeps and $predeps
1895 duplicate_compiler_generated_deps=yes
1898 duplicate_compiler_generated_deps=$duplicate_deps
1904 # Find all interdependent deplibs by searching for libraries
1905 # that are linked more than once (e.g. -la -lb -la)
1906 for deplib in $deplibs; do
1907 if test "X$duplicate_deps" = "Xyes" ; then
1909 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1912 libs="$libs $deplib"
1915 if test "$linkmode" = lib; then
1916 libs="$predeps $libs $compiler_lib_search_path $postdeps"
1918 # Compute libraries that are listed more than once in $predeps
1919 # $postdeps and mark them as special (i.e., whose duplicates are
1920 # not to be eliminated).
1922 if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
1923 for pre_post_dep in $predeps $postdeps; do
1924 case "$pre_post_deps " in
1925 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
1927 pre_post_deps="$pre_post_deps $pre_post_dep"
1936 need_relink=no # whether we're linking any uninstalled libtool libraries
1937 notinst_deplibs= # not-installed libtool libraries
1938 notinst_path= # paths that contain not-installed libtool libraries
1942 for file in $dlfiles $dlprefiles; do
1946 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1958 passes="conv scan dlopen dlpreopen link"
1963 for pass in $passes; do
1964 if test "$linkmode,$pass" = "lib,link" ||
1965 test "$linkmode,$pass" = "prog,scan"; then
1969 if test "$linkmode" = prog; then
1971 dlopen) libs="$dlfiles" ;;
1972 dlpreopen) libs="$dlprefiles" ;;
1973 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1976 if test "$pass" = dlopen; then
1977 # Collect dlpreopened libraries
1978 save_deplibs="$deplibs"
1981 for deplib in $libs; do
1985 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1986 if test "$linkmode,$pass" = "prog,link"; then
1987 compile_deplibs="$deplib $compile_deplibs"
1988 finalize_deplibs="$deplib $finalize_deplibs"
1990 case "$archive_cmds" in
1992 *) deplibs="$deplibs $arg";;
1998 if test "$linkmode" != lib && test "$linkmode" != prog; then
1999 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2002 if test "$pass" = conv; then
2003 deplibs="$deplib $deplibs"
2006 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2007 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2008 for search_ext in .la $std_shrext .so .a; do
2009 # Search the libtool library
2010 lib="$searchdir/lib${name}${search_ext}"
2011 if test -f "$lib"; then
2012 if test "$search_ext" = ".la"; then
2021 if test "$found" != yes; then
2022 # deplib doesn't seem to be a libtool library
2023 if test "$linkmode,$pass" = "prog,link"; then
2024 compile_deplibs="$deplib $compile_deplibs"
2025 finalize_deplibs="$deplib $finalize_deplibs"
2027 deplibs="$deplib $deplibs"
2028 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2031 else # deplib is a libtool library
2032 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2033 # We need to do some special things here, and not later.
2034 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2035 case " $predeps $postdeps " in
2037 if (${SED} -e '2q' $lib |
2038 grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2042 */* | *\\*) . $lib ;;
2045 for l in $old_library $library_names; do
2048 if test "X$ll" = "X$old_library" ; then # only static version available
2050 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2051 test "X$ladir" = "X$lib" && ladir="."
2052 lib=$ladir/$old_library
2053 if test "$linkmode,$pass" = "prog,link"; then
2054 compile_deplibs="$deplib $compile_deplibs"
2055 finalize_deplibs="$deplib $finalize_deplibs"
2057 deplibs="$deplib $deplibs"
2058 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2072 deplibs="$deplib $deplibs"
2073 test "$pass" = conv && continue
2074 newdependency_libs="$deplib $newdependency_libs"
2075 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2078 if test "$pass" = conv; then
2079 deplibs="$deplib $deplibs"
2082 if test "$pass" = scan; then
2083 deplibs="$deplib $deplibs"
2085 compile_deplibs="$deplib $compile_deplibs"
2086 finalize_deplibs="$deplib $finalize_deplibs"
2088 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2091 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2097 if test "$pass" = link; then
2098 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2099 # Make sure the xrpath contains only unique directories.
2102 *) xrpath="$xrpath $dir" ;;
2105 deplibs="$deplib $deplibs"
2108 *.la) lib="$deplib" ;;
2110 if test "$pass" = conv; then
2111 deplibs="$deplib $deplibs"
2117 case $deplibs_check_method in
2119 set dummy $deplibs_check_method
2120 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2121 if eval $echo \"$deplib\" 2>/dev/null \
2123 | $EGREP "$match_pattern_regex" > /dev/null; then
2131 if test "$valid_a_lib" != yes; then
2133 $echo "*** Warning: Trying to link with static lib archive $deplib."
2134 $echo "*** I have the capability to make that library automatically link in when"
2135 $echo "*** you link to this library. But I can only do this if you have a"
2136 $echo "*** shared version of the library, which you do not appear to have"
2137 $echo "*** because the file extensions .$libext of this argument makes me believe"
2138 $echo "*** that it is just a static archive that I should not used here."
2141 $echo "*** Warning: Linking the shared library $output against the"
2142 $echo "*** static library $deplib is not portable!"
2143 deplibs="$deplib $deplibs"
2148 if test "$pass" != link; then
2149 deplibs="$deplib $deplibs"
2151 compile_deplibs="$deplib $compile_deplibs"
2152 finalize_deplibs="$deplib $finalize_deplibs"
2159 if test "$pass" = conv; then
2160 deplibs="$deplib $deplibs"
2161 elif test "$linkmode" = prog; then
2162 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2163 # If there is no dlopen support or we're linking statically,
2164 # we need to preload.
2165 newdlprefiles="$newdlprefiles $deplib"
2166 compile_deplibs="$deplib $compile_deplibs"
2167 finalize_deplibs="$deplib $finalize_deplibs"
2169 newdlfiles="$newdlfiles $deplib"
2179 if test "$found" = yes || test -f "$lib"; then :
2181 $echo "$modename: cannot find the library \`$lib'" 1>&2
2185 # Check to see that this really is a libtool archive.
2186 if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2188 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2192 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2193 test "X$ladir" = "X$lib" && ladir="."
2201 # If the library was installed with an old release of libtool,
2202 # it will not redefine variables installed, or shouldnotlink
2208 */* | *\\*) . $lib ;;
2212 if test "$linkmode,$pass" = "lib,link" ||
2213 test "$linkmode,$pass" = "prog,scan" ||
2214 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2215 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2216 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2219 if test "$pass" = conv; then
2220 # Only check for convenience libraries
2221 deplibs="$lib $deplibs"
2222 if test -z "$libdir"; then
2223 if test -z "$old_library"; then
2224 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2227 # It is a libtool convenience library, so add in its objects.
2228 convenience="$convenience $ladir/$objdir/$old_library"
2229 old_convenience="$old_convenience $ladir/$objdir/$old_library"
2231 for deplib in $dependency_libs; do
2232 deplibs="$deplib $deplibs"
2233 if test "X$duplicate_deps" = "Xyes" ; then
2234 case "$tmp_libs " in
2235 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2238 tmp_libs="$tmp_libs $deplib"
2240 elif test "$linkmode" != prog && test "$linkmode" != lib; then
2241 $echo "$modename: \`$lib' is not a convenience library" 1>&2
2248 # Get the name of the library we link against.
2250 for l in $old_library $library_names; do
2253 if test -z "$linklib"; then
2254 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2258 # This library was specified with -dlopen.
2259 if test "$pass" = dlopen; then
2260 if test -z "$libdir"; then
2261 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2264 if test -z "$dlname" ||
2265 test "$dlopen_support" != yes ||
2266 test "$build_libtool_libs" = no; then
2267 # If there is no dlname, no dlopen support or we're linking
2268 # statically, we need to preload. We also need to preload any
2269 # dependent libraries so libltdl's deplib preloader doesn't
2270 # bomb out in the load deplibs phase.
2271 dlprefiles="$dlprefiles $lib $dependency_libs"
2273 newdlfiles="$newdlfiles $lib"
2278 # We need an absolute path.
2280 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2282 abs_ladir=`cd "$ladir" && pwd`
2283 if test -z "$abs_ladir"; then
2284 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2285 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2290 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2292 # Find the relevant object directory and library name.
2293 if test "X$installed" = Xyes; then
2294 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2295 $echo "$modename: warning: library \`$lib' was moved." 1>&2
2304 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2307 # Remove this search path later
2308 notinst_path="$notinst_path $abs_ladir"
2310 dir="$ladir/$objdir"
2311 absdir="$abs_ladir/$objdir"
2312 # Remove this search path later
2313 notinst_path="$notinst_path $abs_ladir"
2315 fi # $installed = yes
2316 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2318 # This library was specified with -dlpreopen.
2319 if test "$pass" = dlpreopen; then
2320 if test -z "$libdir"; then
2321 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2324 # Prefer using a static library (so that no silly _DYNAMIC symbols
2325 # are required to link).
2326 if test -n "$old_library"; then
2327 newdlprefiles="$newdlprefiles $dir/$old_library"
2328 # Otherwise, use the dlname, so that lt_dlopen finds it.
2329 elif test -n "$dlname"; then
2330 newdlprefiles="$newdlprefiles $dir/$dlname"
2332 newdlprefiles="$newdlprefiles $dir/$linklib"
2334 fi # $pass = dlpreopen
2336 if test -z "$libdir"; then
2337 # Link the convenience library
2338 if test "$linkmode" = lib; then
2339 deplibs="$dir/$old_library $deplibs"
2340 elif test "$linkmode,$pass" = "prog,link"; then
2341 compile_deplibs="$dir/$old_library $compile_deplibs"
2342 finalize_deplibs="$dir/$old_library $finalize_deplibs"
2344 deplibs="$lib $deplibs" # used for prog,scan pass
2350 if test "$linkmode" = prog && test "$pass" != link; then
2351 newlib_search_path="$newlib_search_path $ladir"
2352 deplibs="$lib $deplibs"
2355 if test "$link_all_deplibs" != no || test -z "$library_names" ||
2356 test "$build_libtool_libs" = no; then
2361 for deplib in $dependency_libs; do
2363 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2365 # Need to link against all dependency_libs?
2366 if test "$linkalldeplibs" = yes; then
2367 deplibs="$deplib $deplibs"
2369 # Need to hardcode shared library paths
2370 # or/and link against static libraries
2371 newdependency_libs="$deplib $newdependency_libs"
2373 if test "X$duplicate_deps" = "Xyes" ; then
2374 case "$tmp_libs " in
2375 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2378 tmp_libs="$tmp_libs $deplib"
2381 fi # $linkmode = prog...
2383 if test "$linkmode,$pass" = "prog,link"; then
2384 if test -n "$library_names" &&
2385 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2386 # We need to hardcode the library path
2387 if test -n "$shlibpath_var"; then
2388 # Make sure the rpath contains only unique directories.
2389 case "$temp_rpath " in
2392 *) temp_rpath="$temp_rpath $dir" ;;
2396 # Hardcode the library path.
2397 # Skip directories that are in the system default run-time
2399 case " $sys_lib_dlsearch_path " in
2402 case "$compile_rpath " in
2404 *) compile_rpath="$compile_rpath $absdir"
2408 case " $sys_lib_dlsearch_path " in
2411 case "$finalize_rpath " in
2413 *) finalize_rpath="$finalize_rpath $libdir"
2417 fi # $linkmode,$pass = prog,link...
2419 if test "$alldeplibs" = yes &&
2420 { test "$deplibs_check_method" = pass_all ||
2421 { test "$build_libtool_libs" = yes &&
2422 test -n "$library_names"; }; }; then
2423 # We only need to search for static libraries
2428 link_static=no # Whether the deplib will be linked statically
2429 if test -n "$library_names" &&
2430 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2431 if test "$installed" = no; then
2432 notinst_deplibs="$notinst_deplibs $lib"
2435 # This is a shared library
2437 # Warn about portability, can't link against -module's on
2438 # some systems (darwin)
2439 if test "$shouldnotlink" = yes && test "$pass" = link ; then
2441 if test "$linkmode" = prog; then
2442 $echo "*** Warning: Linking the executable $output against the loadable module"
2444 $echo "*** Warning: Linking the shared library $output against the loadable module"
2446 $echo "*** $linklib is not portable!"
2448 if test "$linkmode" = lib &&
2449 test "$hardcode_into_libs" = yes; then
2450 # Hardcode the library path.
2451 # Skip directories that are in the system default run-time
2453 case " $sys_lib_dlsearch_path " in
2456 case "$compile_rpath " in
2458 *) compile_rpath="$compile_rpath $absdir"
2462 case " $sys_lib_dlsearch_path " in
2465 case "$finalize_rpath " in
2467 *) finalize_rpath="$finalize_rpath $libdir"
2473 if test -n "$old_archive_from_expsyms_cmds"; then
2474 # figure out the soname
2475 set dummy $library_names
2478 libname=`eval \\$echo \"$libname_spec\"`
2479 # use dlname if we got it. it's perfectly good, no?
2480 if test -n "$dlname"; then
2482 elif test -n "$soname_spec"; then
2486 major=`expr $current - $age`
2490 eval soname=\"$soname_spec\"
2495 # Make a new name for the extract_expsyms_cmds to use
2497 soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2498 newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2500 # If the library has no export list, then create one now
2501 if test -f "$output_objdir/$soname-def"; then :
2503 $show "extracting exported symbol list from \`$soname'"
2504 save_ifs="$IFS"; IFS='~'
2505 cmds=$extract_expsyms_cmds
2506 for cmd in $cmds; do
2510 $run eval "$cmd" || exit $?
2516 if test -f "$output_objdir/$newlib"; then :; else
2517 $show "generating import library for \`$soname'"
2518 save_ifs="$IFS"; IFS='~'
2519 cmds=$old_archive_from_expsyms_cmds
2520 for cmd in $cmds; do
2524 $run eval "$cmd" || exit $?
2528 # make sure the library variables are pointing to the new library
2531 fi # test -n "$old_archive_from_expsyms_cmds"
2533 if test "$linkmode" = prog || test "$mode" != relink; then
2538 case $hardcode_action in
2539 immediate | unsupported)
2540 if test "$hardcode_direct" = no; then
2543 *-*-sco3.2v5* ) add_dir="-L$dir" ;;
2545 # if the lib is a module then we can not link against
2546 # it, someone is ignoring the new warnings I added
2547 if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
2548 $echo "** Warning, lib $linklib is a module, not a shared library"
2549 if test -z "$old_library" ; then
2551 $echo "** And there doesn't seem to be a static archive available"
2552 $echo "** The link will probably fail, sorry"
2554 add="$dir/$old_library"
2558 elif test "$hardcode_minus_L" = no; then
2560 *-*-sunos*) add_shlibpath="$dir" ;;
2564 elif test "$hardcode_shlibpath_var" = no; then
2565 add_shlibpath="$dir"
2572 if test "$hardcode_direct" = yes; then
2574 elif test "$hardcode_minus_L" = yes; then
2576 # Try looking first in the location we're being installed to.
2577 if test -n "$inst_prefix_dir"; then
2580 add_dir="$add_dir -L$inst_prefix_dir$libdir"
2585 elif test "$hardcode_shlibpath_var" = yes; then
2586 add_shlibpath="$dir"
2595 if test "$lib_linked" != yes; then
2596 $echo "$modename: configuration error: unsupported hardcode properties"
2600 if test -n "$add_shlibpath"; then
2601 case :$compile_shlibpath: in
2602 *":$add_shlibpath:"*) ;;
2603 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2606 if test "$linkmode" = prog; then
2607 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2608 test -n "$add" && compile_deplibs="$add $compile_deplibs"
2610 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2611 test -n "$add" && deplibs="$add $deplibs"
2612 if test "$hardcode_direct" != yes && \
2613 test "$hardcode_minus_L" != yes && \
2614 test "$hardcode_shlibpath_var" = yes; then
2615 case :$finalize_shlibpath: in
2617 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2623 if test "$linkmode" = prog || test "$mode" = relink; then
2627 # Finalize command for both is simple: just hardcode it.
2628 if test "$hardcode_direct" = yes; then
2629 add="$libdir/$linklib"
2630 elif test "$hardcode_minus_L" = yes; then
2633 elif test "$hardcode_shlibpath_var" = yes; then
2634 case :$finalize_shlibpath: in
2636 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2639 elif test "$hardcode_automatic" = yes; then
2640 if test -n "$inst_prefix_dir" &&
2641 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2642 add="$inst_prefix_dir$libdir/$linklib"
2644 add="$libdir/$linklib"
2647 # We cannot seem to hardcode it, guess we'll fake it.
2649 # Try looking first in the location we're being installed to.
2650 if test -n "$inst_prefix_dir"; then
2653 add_dir="$add_dir -L$inst_prefix_dir$libdir"
2660 if test "$linkmode" = prog; then
2661 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2662 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2664 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2665 test -n "$add" && deplibs="$add $deplibs"
2668 elif test "$linkmode" = prog; then
2669 # Here we assume that one of hardcode_direct or hardcode_minus_L
2670 # is not unsupported. This is valid on all known static and
2672 if test "$hardcode_direct" != unsupported; then
2673 test -n "$old_library" && linklib="$old_library"
2674 compile_deplibs="$dir/$linklib $compile_deplibs"
2675 finalize_deplibs="$dir/$linklib $finalize_deplibs"
2677 compile_deplibs="-l$name -L$dir $compile_deplibs"
2678 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2680 elif test "$build_libtool_libs" = yes; then
2681 # Not a shared library
2682 if test "$deplibs_check_method" != pass_all; then
2683 # We're trying link a shared library against a static one
2684 # but the system doesn't support it.
2686 # Just print a warning and add the library to dependency_libs so
2687 # that the program can be linked against the static library.
2689 $echo "*** Warning: This system can not link to static lib archive $lib."
2690 $echo "*** I have the capability to make that library automatically link in when"
2691 $echo "*** you link to this library. But I can only do this if you have a"
2692 $echo "*** shared version of the library, which you do not appear to have."
2693 if test "$module" = yes; then
2694 $echo "*** But as you try to build a module library, libtool will still create "
2695 $echo "*** a static module, that should work as long as the dlopening application"
2696 $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2697 if test -z "$global_symbol_pipe"; then
2699 $echo "*** However, this would only work if libtool was able to extract symbol"
2700 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2701 $echo "*** not find such a program. So, this module is probably useless."
2702 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2704 if test "$build_old_libs" = no; then
2705 build_libtool_libs=module
2708 build_libtool_libs=no
2712 convenience="$convenience $dir/$old_library"
2713 old_convenience="$old_convenience $dir/$old_library"
2714 deplibs="$dir/$old_library $deplibs"
2717 fi # link shared/static library?
2719 if test "$linkmode" = lib; then
2720 if test -n "$dependency_libs" &&
2721 { test "$hardcode_into_libs" != yes ||
2722 test "$build_old_libs" = yes ||
2723 test "$link_static" = yes; }; then
2724 # Extract -R from dependency_libs
2726 for libdir in $dependency_libs; do
2728 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2730 *" $temp_xrpath "*) ;;
2731 *) xrpath="$xrpath $temp_xrpath";;
2733 *) temp_deplibs="$temp_deplibs $libdir";;
2736 dependency_libs="$temp_deplibs"
2739 newlib_search_path="$newlib_search_path $absdir"
2740 # Link against this library
2741 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2742 # ... and its dependency_libs
2744 for deplib in $dependency_libs; do
2745 newdependency_libs="$deplib $newdependency_libs"
2746 if test "X$duplicate_deps" = "Xyes" ; then
2747 case "$tmp_libs " in
2748 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2751 tmp_libs="$tmp_libs $deplib"
2754 if test "$link_all_deplibs" != no; then
2755 # Add the search paths of all dependency libraries
2756 for deplib in $dependency_libs; do
2758 -L*) path="$deplib" ;;
2760 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2761 test "X$dir" = "X$deplib" && dir="."
2762 # We need an absolute path.
2764 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2766 absdir=`cd "$dir" && pwd`
2767 if test -z "$absdir"; then
2768 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2773 if grep "^installed=no" $deplib > /dev/null; then
2774 path="$absdir/$objdir"
2776 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2777 if test -z "$libdir"; then
2778 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2781 if test "$absdir" != "$libdir"; then
2782 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2789 # we do not want to link against static libs,
2790 # but need to link against shared
2791 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2792 if test -n "$deplibrary_names" ; then
2793 for tmp in $deplibrary_names ; do
2796 if test -f "$path/$depdepl" ; then
2797 depdepl="$path/$depdepl"
2799 # do not add paths which are already there
2800 case " $newlib_search_path " in
2802 *) newlib_search_path="$newlib_search_path $path";;
2815 # Again, we only want to link against shared libraries
2816 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2817 for tmp in $newlib_search_path ; do
2818 if test -f "$tmp/lib$tmp_libs.dylib" ; then
2819 eval depdepl="$tmp/lib$tmp_libs.dylib"
2830 case " $deplibs " in
2832 *) deplibs="$depdepl $deplibs" ;;
2834 case " $deplibs " in
2836 *) deplibs="$deplibs $path" ;;
2839 fi # link_all_deplibs != no
2841 done # for deplib in $libs
2842 dependency_libs="$newdependency_libs"
2843 if test "$pass" = dlpreopen; then
2844 # Link the dlpreopened libraries before other libraries
2845 for deplib in $save_deplibs; do
2846 deplibs="$deplib $deplibs"
2849 if test "$pass" != dlopen; then
2850 if test "$pass" != conv; then
2851 # Make sure lib_search_path contains only unique directories.
2853 for dir in $newlib_search_path; do
2854 case "$lib_search_path " in
2856 *) lib_search_path="$lib_search_path $dir" ;;
2862 if test "$linkmode,$pass" != "prog,link"; then
2865 vars="compile_deplibs finalize_deplibs"
2867 for var in $vars dependency_libs; do
2868 # Add libraries to $var in reverse order
2869 eval tmp_libs=\"\$$var\"
2871 for deplib in $tmp_libs; do
2872 # FIXME: Pedantically, this is the right thing to do, so
2873 # that some nasty dependency loop isn't accidentally
2875 #new_libs="$deplib $new_libs"
2876 # Pragmatically, this seems to cause very few problems in
2879 -L*) new_libs="$deplib $new_libs" ;;
2882 # And here is the reason: when a library appears more
2883 # than once as an explicit dependence of a library, or
2884 # is implicitly linked in more than once by the
2885 # compiler, it is considered special, and multiple
2886 # occurrences thereof are not removed. Compare this
2887 # with having the same library being listed as a
2888 # dependency of multiple other libraries: in this case,
2889 # we know (pedantically, we assume) the library does not
2890 # need to be listed more than once, so we keep only the
2891 # last copy. This is not always right, but it is rare
2892 # enough that we require users that really mean to play
2893 # such unportable linking tricks to link the library
2894 # using -Wl,-lname, so that libtool does not consider it
2895 # for duplicate removal.
2896 case " $specialdeplibs " in
2897 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2899 case " $new_libs " in
2901 *) new_libs="$deplib $new_libs" ;;
2909 for deplib in $new_libs; do
2912 case " $tmp_libs " in
2914 *) tmp_libs="$tmp_libs $deplib" ;;
2917 *) tmp_libs="$tmp_libs $deplib" ;;
2920 eval $var=\"$tmp_libs\"
2923 # Last step: remove runtime libs from dependency_libs
2924 # (they stay in deplibs)
2926 for i in $dependency_libs ; do
2927 case " $predeps $postdeps $compiler_lib_search_path " in
2932 if test -n "$i" ; then
2933 tmp_libs="$tmp_libs $i"
2936 dependency_libs=$tmp_libs
2938 if test "$linkmode" = prog; then
2939 dlfiles="$newdlfiles"
2940 dlprefiles="$newdlprefiles"
2945 if test -n "$deplibs"; then
2946 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2949 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2950 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2953 if test -n "$rpath"; then
2954 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2957 if test -n "$xrpath"; then
2958 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2961 if test -n "$vinfo"; then
2962 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
2965 if test -n "$release"; then
2966 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2969 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2970 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2973 # Now set the variables for building old libraries.
2974 build_libtool_libs=no
2976 objs="$objs$old_deplibs"
2980 # Make sure we only generate libraries of the form `libNAME.la'.
2983 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2984 eval shared_ext=\"$shrext_cmds\"
2985 eval libname=\"$libname_spec\"
2988 if test "$module" = no; then
2989 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2993 if test "$need_lib_prefix" != no; then
2994 # Add the "lib" prefix for modules if required
2995 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2996 eval shared_ext=\"$shrext_cmds\"
2997 eval libname=\"$libname_spec\"
2999 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3004 if test -n "$objs"; then
3005 if test "$deplibs_check_method" != pass_all; then
3006 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3010 $echo "*** Warning: Linking the shared library $output against the non-libtool"
3011 $echo "*** objects $objs is not portable!"
3012 libobjs="$libobjs $objs"
3016 if test "$dlself" != no; then
3017 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3021 if test "$#" -gt 2; then
3022 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3027 if test -z "$rpath"; then
3028 if test "$build_libtool_libs" = yes; then
3029 # Building a libtool convenience library.
3030 # Some compilers have problems with a `.al' extension so
3031 # convenience libraries should have the same extension an
3032 # archive normally would.
3033 oldlibs="$output_objdir/$libname.$libext $oldlibs"
3034 build_libtool_libs=convenience
3038 if test -n "$vinfo"; then
3039 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3042 if test -n "$release"; then
3043 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3047 # Parse the version information argument.
3048 save_ifs="$IFS"; IFS=':'
3049 set dummy $vinfo 0 0 0
3052 if test -n "$8"; then
3053 $echo "$modename: too many parameters to \`-version-info'" 1>&2
3058 # convert absolute version numbers to libtool ages
3059 # this retains compatibility with .la files and attempts
3060 # to make the code below a bit more comprehensible
3062 case $vinfo_number in
3066 number_revision="$4"
3068 # There are really only two kinds -- those that
3069 # use the current revision as the major version
3070 # and those that subtract age and use age as
3071 # a minor version. But, then there is irix
3072 # which has an extra 1 added just for fun
3074 case $version_type in
3075 darwin|linux|osf|windows)
3076 current=`expr $number_major + $number_minor`
3078 revision="$number_revision"
3080 freebsd-aout|freebsd-elf|sunos)
3081 current="$number_major"
3082 revision="$number_minor"
3086 current=`expr $number_major + $number_minor - 1`
3088 revision="$number_minor"
3099 # Check that each of the things are valid numbers.
3101 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
3103 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
3104 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3110 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
3112 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
3113 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3119 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
3121 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
3122 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3127 if test "$age" -gt "$current"; then
3128 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3129 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3133 # Calculate the version variables.
3137 case $version_type in
3141 # Like Linux, but with the current version available in
3142 # verstring for coding it into the library header
3143 major=.`expr $current - $age`
3144 versuffix="$major.$age.$revision"
3145 # Darwin ld doesn't like 0 for these options...
3146 minor_current=`expr $current + 1`
3147 verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3152 versuffix=".$current.$revision";
3157 versuffix=".$current";
3161 major=`expr $current - $age + 1`
3163 case $version_type in
3164 nonstopux) verstring_prefix=nonstopux ;;
3165 *) verstring_prefix=sgi ;;
3167 verstring="$verstring_prefix$major.$revision"
3169 # Add in all the interfaces that we are compatible with.
3171 while test "$loop" -ne 0; do
3172 iface=`expr $revision - $loop`
3173 loop=`expr $loop - 1`
3174 verstring="$verstring_prefix$major.$iface:$verstring"
3177 # Before this point, $major must not contain `.'.
3179 versuffix="$major.$revision"
3183 major=.`expr $current - $age`
3184 versuffix="$major.$age.$revision"
3188 major=.`expr $current - $age`
3189 versuffix=".$current.$age.$revision"
3190 verstring="$current.$age.$revision"
3192 # Add in all the interfaces that we are compatible with.
3194 while test "$loop" -ne 0; do
3195 iface=`expr $current - $loop`
3196 loop=`expr $loop - 1`
3197 verstring="$verstring:${iface}.0"
3200 # Make executables depend on our current version.
3201 verstring="$verstring:${current}.0"
3206 versuffix=".$current.$revision"
3210 # Use '-' rather than '.', since we only want one
3211 # extension on DOS 8.3 filesystems.
3212 major=`expr $current - $age`
3217 $echo "$modename: unknown library version type \`$version_type'" 1>&2
3218 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3223 # Clear the version info if we defaulted, and they specified a release.
3224 if test -z "$vinfo" && test -n "$release"; then
3226 case $version_type in
3228 # we can't check for "0.0" in archive_cmds due to quoting
3229 # problems, so we reset it completely
3236 if test "$need_version" = no; then
3243 # Remove version info from name if versioning should be avoided
3244 if test "$avoid_version" = yes && test "$need_version" = no; then
3250 # Check to see if the archive will have undefined symbols.
3251 if test "$allow_undefined" = yes; then
3252 if test "$allow_undefined_flag" = unsupported; then
3253 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3254 build_libtool_libs=no
3258 # Don't allow undefined symbols.
3259 allow_undefined_flag="$no_undefined_flag"
3263 if test "$mode" != relink; then
3264 # Remove our outputs, but don't remove object files since they
3265 # may have been created when compiling PIC objects.
3267 tempremovelist=`$echo "$output_objdir/*"`
3268 for p in $tempremovelist; do
3272 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3273 if test "X$precious_files_regex" != "X"; then
3274 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3279 removelist="$removelist $p"
3284 if test -n "$removelist"; then
3285 $show "${rm}r $removelist"
3286 $run ${rm}r $removelist
3290 # Now set the variables for building old libraries.
3291 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3292 oldlibs="$oldlibs $output_objdir/$libname.$libext"
3294 # Transform .lo files to .o files.
3295 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3298 # Eliminate all temporary directories.
3299 for path in $notinst_path; do
3300 lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
3301 deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
3302 dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
3305 if test -n "$xrpath"; then
3306 # If the user specified any rpath flags, then add them.
3308 for libdir in $xrpath; do
3309 temp_xrpath="$temp_xrpath -R$libdir"
3310 case "$finalize_rpath " in
3312 *) finalize_rpath="$finalize_rpath $libdir" ;;
3315 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3316 dependency_libs="$temp_xrpath $dependency_libs"
3320 # Make sure dlfiles contains only unique files that won't be dlpreopened
3321 old_dlfiles="$dlfiles"
3323 for lib in $old_dlfiles; do
3324 case " $dlprefiles $dlfiles " in
3326 *) dlfiles="$dlfiles $lib" ;;
3330 # Make sure dlprefiles contains only unique files
3331 old_dlprefiles="$dlprefiles"
3333 for lib in $old_dlprefiles; do
3334 case "$dlprefiles " in
3336 *) dlprefiles="$dlprefiles $lib" ;;
3340 if test "$build_libtool_libs" = yes; then
3341 if test -n "$rpath"; then
3343 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3344 # these systems don't actually have a c library (as such)!
3346 *-*-rhapsody* | *-*-darwin1.[012])
3347 # Rhapsody C library is in the System framework
3348 deplibs="$deplibs -framework System"
3351 # Don't link with libc until the a.out ld.so is fixed.
3353 *-*-openbsd* | *-*-freebsd*)
3354 # Do not include libc due to us having libc/libc_r.
3355 test "X$arg" = "X-lc" && continue
3358 # Add libc to deplibs on all other systems if necessary.
3359 if test "$build_libtool_need_lc" = "yes"; then
3360 deplibs="$deplibs -lc"
3366 # Transform deplibs into only deplibs that can be linked in shared.
3368 libname_save=$libname
3369 release_save=$release
3370 versuffix_save=$versuffix
3372 # I'm not sure if I'm treating the release correctly. I think
3373 # release should show up in the -l (ie -lgmp5) so we don't want to
3374 # add it in twice. Is that correct?
3380 case $deplibs_check_method in
3382 # Don't check for shared/static. Everything works.
3383 # This might be a little naive. We might want to check
3384 # whether the library exists or not. But this is on
3385 # osf3 & osf4 and I'm not really sure... Just
3386 # implementing what was already the behavior.
3390 # This code stresses the "libraries are programs" paradigm to its
3391 # limits. Maybe even breaks it. We compile a program, linking it
3392 # against the deplibs as a proxy for the library. Then we can check
3393 # whether they linked in statically or dynamically with ldd.
3395 cat > conftest.c <<EOF
3396 int main() { return 0; }
3399 $LTCC -o conftest conftest.c $deplibs
3400 if test "$?" -eq 0 ; then
3401 ldd_output=`ldd conftest`
3402 for i in $deplibs; do
3403 name="`expr $i : '-l\(.*\)'`"
3404 # If $name is empty we are operating on a -L argument.
3405 if test "$name" != "" && test "$name" -ne "0"; then
3406 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3407 case " $predeps $postdeps " in
3409 newdeplibs="$newdeplibs $i"
3414 if test -n "$i" ; then
3415 libname=`eval \\$echo \"$libname_spec\"`
3416 deplib_matches=`eval \\$echo \"$library_names_spec\"`
3417 set dummy $deplib_matches
3419 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3420 newdeplibs="$newdeplibs $i"
3424 $echo "*** Warning: dynamic linker does not accept needed library $i."
3425 $echo "*** I have the capability to make that library automatically link in when"
3426 $echo "*** you link to this library. But I can only do this if you have a"
3427 $echo "*** shared version of the library, which I believe you do not have"
3428 $echo "*** because a test_compile did reveal that the linker did not use it for"
3429 $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3433 newdeplibs="$newdeplibs $i"
3437 # Error occurred in the first compile. Let's try to salvage
3438 # the situation: Compile a separate program for each library.
3439 for i in $deplibs; do
3440 name="`expr $i : '-l\(.*\)'`"
3441 # If $name is empty we are operating on a -L argument.
3442 if test "$name" != "" && test "$name" != "0"; then
3444 $LTCC -o conftest conftest.c $i
3446 if test "$?" -eq 0 ; then
3447 ldd_output=`ldd conftest`
3448 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3449 case " $predeps $postdeps " in
3451 newdeplibs="$newdeplibs $i"
3456 if test -n "$i" ; then
3457 libname=`eval \\$echo \"$libname_spec\"`
3458 deplib_matches=`eval \\$echo \"$library_names_spec\"`
3459 set dummy $deplib_matches
3461 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3462 newdeplibs="$newdeplibs $i"
3466 $echo "*** Warning: dynamic linker does not accept needed library $i."
3467 $echo "*** I have the capability to make that library automatically link in when"
3468 $echo "*** you link to this library. But I can only do this if you have a"
3469 $echo "*** shared version of the library, which you do not appear to have"
3470 $echo "*** because a test_compile did reveal that the linker did not use this one"
3471 $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3477 $echo "*** Warning! Library $i is needed by this library but I was not able to"
3478 $echo "*** make it link in! You will probably need to install it or some"
3479 $echo "*** library that it depends on before this library will be fully"
3480 $echo "*** functional. Installing it before continuing would be even better."
3483 newdeplibs="$newdeplibs $i"
3489 set dummy $deplibs_check_method
3490 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3491 for a_deplib in $deplibs; do
3492 name="`expr $a_deplib : '-l\(.*\)'`"
3493 # If $name is empty we are operating on a -L argument.
3494 if test "$name" != "" && test "$name" != "0"; then
3495 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3496 case " $predeps $postdeps " in
3498 newdeplibs="$newdeplibs $a_deplib"
3503 if test -n "$a_deplib" ; then
3504 libname=`eval \\$echo \"$libname_spec\"`
3505 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3506 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3507 for potent_lib in $potential_libs; do
3508 # Follow soft links.
3509 if ls -lLd "$potent_lib" 2>/dev/null \
3510 | grep " -> " >/dev/null; then
3513 # The statement above tries to avoid entering an
3514 # endless loop below, in case of cyclic links.
3515 # We might still enter an endless loop, since a link
3516 # loop can be closed while we follow links,
3518 potlib="$potent_lib"
3519 while test -h "$potlib" 2>/dev/null; do
3520 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3522 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3523 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3526 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3528 | $EGREP "$file_magic_regex" > /dev/null; then
3529 newdeplibs="$newdeplibs $a_deplib"
3536 if test -n "$a_deplib" ; then
3539 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3540 $echo "*** I have the capability to make that library automatically link in when"
3541 $echo "*** you link to this library. But I can only do this if you have a"
3542 $echo "*** shared version of the library, which you do not appear to have"
3543 $echo "*** because I did check the linker path looking for a file starting"
3544 if test -z "$potlib" ; then
3545 $echo "*** with $libname but no candidates were found. (...for file magic test)"
3547 $echo "*** with $libname and none of the candidates passed a file format test"
3548 $echo "*** using a file magic. Last file checked: $potlib"
3552 # Add a -L argument.
3553 newdeplibs="$newdeplibs $a_deplib"
3555 done # Gone through all deplibs.
3558 set dummy $deplibs_check_method
3559 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3560 for a_deplib in $deplibs; do
3561 name="`expr $a_deplib : '-l\(.*\)'`"
3562 # If $name is empty we are operating on a -L argument.
3563 if test -n "$name" && test "$name" != "0"; then
3564 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3565 case " $predeps $postdeps " in
3567 newdeplibs="$newdeplibs $a_deplib"
3572 if test -n "$a_deplib" ; then
3573 libname=`eval \\$echo \"$libname_spec\"`
3574 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3575 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3576 for potent_lib in $potential_libs; do
3577 potlib="$potent_lib" # see symlink-check above in file_magic test
3578 if eval $echo \"$potent_lib\" 2>/dev/null \
3580 | $EGREP "$match_pattern_regex" > /dev/null; then
3581 newdeplibs="$newdeplibs $a_deplib"
3588 if test -n "$a_deplib" ; then
3591 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3592 $echo "*** I have the capability to make that library automatically link in when"
3593 $echo "*** you link to this library. But I can only do this if you have a"
3594 $echo "*** shared version of the library, which you do not appear to have"
3595 $echo "*** because I did check the linker path looking for a file starting"
3596 if test -z "$potlib" ; then
3597 $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3599 $echo "*** with $libname and none of the candidates passed a file format test"
3600 $echo "*** using a regex pattern. Last file checked: $potlib"
3604 # Add a -L argument.
3605 newdeplibs="$newdeplibs $a_deplib"
3607 done # Gone through all deplibs.
3611 tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3612 -e 's/ -[LR][^ ]*//g'`
3613 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3614 for i in $predeps $postdeps ; do
3615 # can't use Xsed below, because $i might contain '/'
3616 tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3619 if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
3620 | grep . >/dev/null; then
3622 if test "X$deplibs_check_method" = "Xnone"; then
3623 $echo "*** Warning: inter-library dependencies are not supported in this platform."
3625 $echo "*** Warning: inter-library dependencies are not known to be supported."
3627 $echo "*** All declared inter-library dependencies are being dropped."
3632 versuffix=$versuffix_save
3634 release=$release_save
3635 libname=$libname_save
3639 *-*-rhapsody* | *-*-darwin1.[012])
3640 # On Rhapsody replace the C library is the System framework
3641 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3645 if test "$droppeddeps" = yes; then
3646 if test "$module" = yes; then
3648 $echo "*** Warning: libtool could not satisfy all declared inter-library"
3649 $echo "*** dependencies of module $libname. Therefore, libtool will create"
3650 $echo "*** a static module, that should work as long as the dlopening"
3651 $echo "*** application is linked with the -dlopen flag."
3652 if test -z "$global_symbol_pipe"; then
3654 $echo "*** However, this would only work if libtool was able to extract symbol"
3655 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3656 $echo "*** not find such a program. So, this module is probably useless."
3657 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3659 if test "$build_old_libs" = no; then
3660 oldlibs="$output_objdir/$libname.$libext"
3661 build_libtool_libs=module
3664 build_libtool_libs=no
3667 $echo "*** The inter-library dependencies that have been dropped here will be"
3668 $echo "*** automatically added whenever a program is linked with this library"
3669 $echo "*** or is declared to -dlopen it."
3671 if test "$allow_undefined" = no; then
3673 $echo "*** Since this library must not contain undefined symbols,"
3674 $echo "*** because either the platform does not support them or"
3675 $echo "*** it was explicitly requested with -no-undefined,"
3676 $echo "*** libtool will only create a static version of it."
3677 if test "$build_old_libs" = no; then
3678 oldlibs="$output_objdir/$libname.$libext"
3679 build_libtool_libs=module
3682 build_libtool_libs=no
3687 # Done checking deplibs!
3691 # All the library-specific variables (install_libdir is set above).
3696 # Test again, we may have decided not to build it any more
3697 if test "$build_libtool_libs" = yes; then
3698 if test "$hardcode_into_libs" = yes; then
3699 # Hardcode the library paths
3702 rpath="$finalize_rpath"
3703 test "$mode" != relink && rpath="$compile_rpath$rpath"
3704 for libdir in $rpath; do
3705 if test -n "$hardcode_libdir_flag_spec"; then
3706 if test -n "$hardcode_libdir_separator"; then
3707 if test -z "$hardcode_libdirs"; then
3708 hardcode_libdirs="$libdir"
3710 # Just accumulate the unique libdirs.
3711 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3712 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3715 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3720 eval flag=\"$hardcode_libdir_flag_spec\"
3721 dep_rpath="$dep_rpath $flag"
3723 elif test -n "$runpath_var"; then
3724 case "$perm_rpath " in
3726 *) perm_rpath="$perm_rpath $libdir" ;;
3730 # Substitute the hardcoded libdirs into the rpath.
3731 if test -n "$hardcode_libdir_separator" &&
3732 test -n "$hardcode_libdirs"; then
3733 libdir="$hardcode_libdirs"
3734 if test -n "$hardcode_libdir_flag_spec_ld"; then
3735 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3737 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3740 if test -n "$runpath_var" && test -n "$perm_rpath"; then
3741 # We should set the runpath_var.
3743 for dir in $perm_rpath; do
3746 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3748 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3751 shlibpath="$finalize_shlibpath"
3752 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3753 if test -n "$shlibpath"; then
3754 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3757 # Get the real and link names of the library.
3758 eval shared_ext=\"$shrext_cmds\"
3759 eval library_names=\"$library_names_spec\"
3760 set dummy $library_names
3764 if test -n "$soname_spec"; then
3765 eval soname=\"$soname_spec\"
3769 if test -z "$dlname"; then
3773 lib="$output_objdir/$realname"
3776 linknames="$linknames $link"
3779 # Use standard objects if they are pic
3780 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3782 # Prepare the list of exported symbols
3783 if test -z "$export_symbols"; then
3784 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3785 $show "generating symbol list for \`$libname.la'"
3786 export_symbols="$output_objdir/$libname.exp"
3787 $run $rm $export_symbols
3788 cmds=$export_symbols_cmds
3789 save_ifs="$IFS"; IFS='~'
3790 for cmd in $cmds; do
3793 if len=`expr "X$cmd" : ".*"` &&
3794 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3796 $run eval "$cmd" || exit $?
3797 skipped_export=false
3799 # The command line is too long to execute in one step.
3800 $show "using reloadable object file for export list..."
3805 if test -n "$export_symbols_regex"; then
3806 $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3807 $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3808 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3809 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3814 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3815 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3819 for test_deplib in $deplibs; do
3820 case " $convenience " in
3821 *" $test_deplib "*) ;;
3823 tmp_deplibs="$tmp_deplibs $test_deplib"
3827 deplibs="$tmp_deplibs"
3829 if test -n "$convenience"; then
3830 if test -n "$whole_archive_flag_spec"; then
3831 save_libobjs=$libobjs
3832 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3834 gentop="$output_objdir/${outputname}x"
3835 generated="$generated $gentop"
3837 func_extract_archives $gentop $convenience
3838 libobjs="$libobjs $func_extract_archives_result"
3842 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3843 eval flag=\"$thread_safe_flag_spec\"
3844 linker_flags="$linker_flags $flag"
3847 # Make a backup of the uninstalled library when relinking
3848 if test "$mode" = relink; then
3849 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
3852 # Do each of the archive commands.
3853 if test "$module" = yes && test -n "$module_cmds" ; then
3854 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3855 eval test_cmds=\"$module_expsym_cmds\"
3856 cmds=$module_expsym_cmds
3858 eval test_cmds=\"$module_cmds\"
3862 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3863 eval test_cmds=\"$archive_expsym_cmds\"
3864 cmds=$archive_expsym_cmds
3866 eval test_cmds=\"$archive_cmds\"
3871 if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
3872 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3875 # The command line is too long to link in one step, link piecewise.
3876 $echo "creating reloadable object files..."
3878 # Save the value of $output and $libobjs because we want to
3879 # use them later. If we have whole_archive_flag_spec, we
3880 # want to use save_libobjs as it was before
3881 # whole_archive_flag_spec was expanded, because we can't
3882 # assume the linker understands whole_archive_flag_spec.
3883 # This may have to be revisited, in case too many
3884 # convenience libraries get linked in and end up exceeding
3886 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
3887 save_libobjs=$libobjs
3891 # Clear the reloadable object creation command queue and
3892 # initialize k to one.
3899 output=$output_objdir/$save_output-${k}.$objext
3900 # Loop over the list of objects to be linked.
3901 for obj in $save_libobjs
3903 eval test_cmds=\"$reload_cmds $objlist $last_robj\"
3904 if test "X$objlist" = X ||
3905 { len=`expr "X$test_cmds" : ".*"` &&
3906 test "$len" -le "$max_cmd_len"; }; then
3907 objlist="$objlist $obj"
3909 # The command $test_cmds is almost too long, add a
3910 # command to the queue.
3911 if test "$k" -eq 1 ; then
3912 # The first file doesn't have a previous command to add.
3913 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
3915 # All subsequent reloadable object files will link in
3916 # the last one created.
3917 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
3919 last_robj=$output_objdir/$save_output-${k}.$objext
3921 output=$output_objdir/$save_output-${k}.$objext
3926 # Handle the remaining objects by creating one last
3927 # reloadable object file. All subsequent reloadable object
3928 # files will link in the last one created.
3929 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
3930 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
3932 if ${skipped_export-false}; then
3933 $show "generating symbol list for \`$libname.la'"
3934 export_symbols="$output_objdir/$libname.exp"
3935 $run $rm $export_symbols
3937 # Append the command to create the export file.
3938 eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
3941 # Set up a command to remove the reloadale object files
3942 # after they are used.
3944 while test "$i" -lt "$k"
3947 delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
3950 $echo "creating a temporary reloadable object file: $output"
3952 # Loop through the commands generated above and execute them.
3953 save_ifs="$IFS"; IFS='~'
3954 for cmd in $concat_cmds; do
3957 $run eval "$cmd" || exit $?
3962 # Restore the value of output.
3965 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3966 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3968 # Expand the library linking commands again to reset the
3969 # value of $libobjs for piecewise linking.
3971 # Do each of the archive commands.
3972 if test "$module" = yes && test -n "$module_cmds" ; then
3973 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3974 cmds=$module_expsym_cmds
3979 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3980 cmds=$archive_expsym_cmds
3986 # Append the command to remove the reloadable object files
3987 # to the just-reset $cmds.
3988 eval cmds=\"\$cmds~\$rm $delfiles\"
3990 save_ifs="$IFS"; IFS='~'
3991 for cmd in $cmds; do
3995 $run eval "$cmd" || exit $?
3999 # Restore the uninstalled library and exit
4000 if test "$mode" = relink; then
4001 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4005 # Create links to the real library.
4006 for linkname in $linknames; do
4007 if test "$realname" != "$linkname"; then
4008 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4009 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4013 # If -module or -export-dynamic was specified, set the dlname.
4014 if test "$module" = yes || test "$export_dynamic" = yes; then
4015 # On all known operating systems, these are identical.
4022 if test -n "$deplibs"; then
4023 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4026 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4027 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4030 if test -n "$rpath"; then
4031 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4034 if test -n "$xrpath"; then
4035 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4038 if test -n "$vinfo"; then
4039 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4042 if test -n "$release"; then
4043 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4048 if test -n "$objs$old_deplibs"; then
4049 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4053 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4061 # Delete the old objects.
4062 $run $rm $obj $libobj
4064 # Objects from convenience libraries. This assumes
4065 # single-version convenience libraries. Whenever we create
4066 # different ones for PIC/non-PIC, this we'll have to duplicate
4070 # reload_cmds runs $LD directly, so let us get rid of
4071 # -Wl from whole_archive_flag_spec
4074 if test -n "$convenience"; then
4075 if test -n "$whole_archive_flag_spec"; then
4076 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4078 gentop="$output_objdir/${obj}x"
4079 generated="$generated $gentop"
4081 func_extract_archives $gentop $convenience
4082 reload_conv_objs="$reload_objs $func_extract_archives_result"
4086 # Create the old-style object.
4087 reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
4091 save_ifs="$IFS"; IFS='~'
4092 for cmd in $cmds; do
4096 $run eval "$cmd" || exit $?
4100 # Exit if we aren't doing a library object file.
4101 if test -z "$libobj"; then
4102 if test -n "$gentop"; then
4103 $show "${rm}r $gentop"
4110 if test "$build_libtool_libs" != yes; then
4111 if test -n "$gentop"; then
4112 $show "${rm}r $gentop"
4116 # Create an invalid libtool object if no PIC, so that we don't
4117 # accidentally link it into a program.
4118 # $show "echo timestamp > $libobj"
4119 # $run eval "echo timestamp > $libobj" || exit $?
4123 if test -n "$pic_flag" || test "$pic_mode" != default; then
4124 # Only do commands if we really have different PIC objects.
4125 reload_objs="$libobjs $reload_conv_objs"
4128 save_ifs="$IFS"; IFS='~'
4129 for cmd in $cmds; do
4133 $run eval "$cmd" || exit $?
4138 if test -n "$gentop"; then
4139 $show "${rm}r $gentop"
4148 *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4150 if test -n "$vinfo"; then
4151 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4154 if test -n "$release"; then
4155 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4158 if test "$preload" = yes; then
4159 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4160 test "$dlopen_self_static" = unknown; then
4161 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4166 *-*-rhapsody* | *-*-darwin1.[012])
4167 # On Rhapsody replace the C library is the System framework
4168 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4169 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4175 # Don't allow lazy linking, it breaks C++ global constructors
4176 if test "$tagname" = CXX ; then
4177 compile_command="$compile_command ${wl}-bind_at_load"
4178 finalize_command="$finalize_command ${wl}-bind_at_load"
4183 compile_command="$compile_command $compile_deplibs"
4184 finalize_command="$finalize_command $finalize_deplibs"
4186 if test -n "$rpath$xrpath"; then
4187 # If the user specified any rpath flags, then add them.
4188 for libdir in $rpath $xrpath; do
4189 # This is the magic to use -rpath.
4190 case "$finalize_rpath " in
4192 *) finalize_rpath="$finalize_rpath $libdir" ;;
4197 # Now hardcode the library paths
4200 for libdir in $compile_rpath $finalize_rpath; do
4201 if test -n "$hardcode_libdir_flag_spec"; then
4202 if test -n "$hardcode_libdir_separator"; then
4203 if test -z "$hardcode_libdirs"; then
4204 hardcode_libdirs="$libdir"
4206 # Just accumulate the unique libdirs.
4207 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4208 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4211 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4216 eval flag=\"$hardcode_libdir_flag_spec\"
4217 rpath="$rpath $flag"
4219 elif test -n "$runpath_var"; then
4220 case "$perm_rpath " in
4222 *) perm_rpath="$perm_rpath $libdir" ;;
4226 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4227 case :$dllsearchpath: in
4229 *) dllsearchpath="$dllsearchpath:$libdir";;
4234 # Substitute the hardcoded libdirs into the rpath.
4235 if test -n "$hardcode_libdir_separator" &&
4236 test -n "$hardcode_libdirs"; then
4237 libdir="$hardcode_libdirs"
4238 eval rpath=\" $hardcode_libdir_flag_spec\"
4240 compile_rpath="$rpath"
4244 for libdir in $finalize_rpath; do
4245 if test -n "$hardcode_libdir_flag_spec"; then
4246 if test -n "$hardcode_libdir_separator"; then
4247 if test -z "$hardcode_libdirs"; then
4248 hardcode_libdirs="$libdir"
4250 # Just accumulate the unique libdirs.
4251 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4252 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4255 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4260 eval flag=\"$hardcode_libdir_flag_spec\"
4261 rpath="$rpath $flag"
4263 elif test -n "$runpath_var"; then
4264 case "$finalize_perm_rpath " in
4266 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4270 # Substitute the hardcoded libdirs into the rpath.
4271 if test -n "$hardcode_libdir_separator" &&
4272 test -n "$hardcode_libdirs"; then
4273 libdir="$hardcode_libdirs"
4274 eval rpath=\" $hardcode_libdir_flag_spec\"
4276 finalize_rpath="$rpath"
4278 if test -n "$libobjs" && test "$build_old_libs" = yes; then
4279 # Transform all the library objects into standard objects.
4280 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4281 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4285 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4286 if test -n "$NM" && test -n "$global_symbol_pipe"; then
4287 dlsyms="${outputname}S.c"
4289 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4293 if test -n "$dlsyms"; then
4297 # Discover the nlist of each of the dlfiles.
4298 nlist="$output_objdir/${outputname}.nm"
4300 $show "$rm $nlist ${nlist}S ${nlist}T"
4301 $run $rm "$nlist" "${nlist}S" "${nlist}T"
4303 # Parse the name list into a source file.
4304 $show "creating $output_objdir/$dlsyms"
4306 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4307 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4308 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4314 /* Prevent the only kind of declaration conflicts we can make. */
4315 #define lt_preloaded_symbols some_other_symbol
4317 /* External symbol declarations for the compiler. */\
4320 if test "$dlself" = yes; then
4321 $show "generating symbol list for \`$output'"
4323 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4325 # Add our own program objects to the symbol list.
4326 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4327 for arg in $progfiles; do
4328 $show "extracting global C symbols from \`$arg'"
4329 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4332 if test -n "$exclude_expsyms"; then
4333 $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4334 $run eval '$mv "$nlist"T "$nlist"'
4337 if test -n "$export_symbols_regex"; then
4338 $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4339 $run eval '$mv "$nlist"T "$nlist"'
4342 # Prepare the list of exported symbols
4343 if test -z "$export_symbols"; then
4344 export_symbols="$output_objdir/$output.exp"
4345 $run $rm $export_symbols
4346 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4348 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
4349 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
4350 $run eval 'mv "$nlist"T "$nlist"'
4354 for arg in $dlprefiles; do
4355 $show "extracting global C symbols from \`$arg'"
4356 name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4357 $run eval '$echo ": $name " >> "$nlist"'
4358 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4361 if test -z "$run"; then
4362 # Make sure we have at least an empty file.
4363 test -f "$nlist" || : > "$nlist"
4365 if test -n "$exclude_expsyms"; then
4366 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4367 $mv "$nlist"T "$nlist"
4370 # Try sorting and uniquifying the output.
4371 if grep -v "^: " < "$nlist" |
4372 if sort -k 3 </dev/null >/dev/null 2>&1; then
4377 uniq > "$nlist"S; then
4380 grep -v "^: " < "$nlist" > "$nlist"S
4383 if test -f "$nlist"S; then
4384 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4386 $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4389 $echo >> "$output_objdir/$dlsyms" "\
4391 #undef lt_preloaded_symbols
4393 #if defined (__STDC__) && __STDC__
4394 # define lt_ptr void *
4396 # define lt_ptr char *
4400 /* The mapping between symbol names and symbols. */
4405 lt_preloaded_symbols[] =
4409 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4411 $echo >> "$output_objdir/$dlsyms" "\
4415 /* This works around a problem in FreeBSD linker */
4416 #ifdef FREEBSD_WORKAROUND
4417 static const void *lt_preloaded_setup() {
4418 return lt_preloaded_symbols;
4428 pic_flag_for_symtable=
4430 # compiling the symbol table file with pic_flag works around
4431 # a FreeBSD bug that causes programs to crash when -lm is
4432 # linked before any other PIC object. But we must not use
4433 # pic_flag when linking with -static. The problem exists in
4434 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4435 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4436 case "$compile_command " in
4438 *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4441 case "$compile_command " in
4443 *) pic_flag_for_symtable=" $pic_flag";;
4447 # Now compile the dynamic symbol file.
4448 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4449 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4451 # Clean up the generated files.
4452 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4453 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4455 # Transform the symbol file into the correct name.
4456 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4457 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4460 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4465 # We keep going just in case the user didn't refer to
4466 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
4467 # really was required.
4469 # Nullify the symbol file.
4470 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4471 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4474 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4475 # Replace the output file specification.
4476 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4477 link_command="$compile_command$compile_rpath"
4479 # We have no uninstalled library dependencies, so finalize right now.
4480 $show "$link_command"
4481 $run eval "$link_command"
4484 # Delete the generated files.
4485 if test -n "$dlsyms"; then
4486 $show "$rm $output_objdir/${outputname}S.${objext}"
4487 $run $rm "$output_objdir/${outputname}S.${objext}"
4493 if test -n "$shlibpath_var"; then
4494 # We should set the shlibpath_var
4496 for dir in $temp_rpath; do
4498 [\\/]* | [A-Za-z]:[\\/]*)
4503 # Relative path: add a thisdir entry.
4504 rpath="$rpath\$thisdir/$dir:"
4511 if test -n "$compile_shlibpath$finalize_shlibpath"; then
4512 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4514 if test -n "$finalize_shlibpath"; then
4515 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4520 if test -n "$runpath_var"; then
4521 if test -n "$perm_rpath"; then
4522 # We should set the runpath_var.
4524 for dir in $perm_rpath; do
4527 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4529 if test -n "$finalize_perm_rpath"; then
4530 # We should set the runpath_var.
4532 for dir in $finalize_perm_rpath; do
4535 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4539 if test "$no_install" = yes; then
4540 # We don't need to create a wrapper script.
4541 link_command="$compile_var$compile_command$compile_rpath"
4542 # Replace the output file specification.
4543 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4544 # Delete the old output file.
4546 # Link the executable and exit
4547 $show "$link_command"
4548 $run eval "$link_command" || exit $?
4552 if test "$hardcode_action" = relink; then
4553 # Fast installation is not supported
4554 link_command="$compile_var$compile_command$compile_rpath"
4555 relink_command="$finalize_var$finalize_command$finalize_rpath"
4557 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4558 $echo "$modename: \`$output' will be relinked during installation" 1>&2
4560 if test "$fast_install" != no; then
4561 link_command="$finalize_var$compile_command$finalize_rpath"
4562 if test "$fast_install" = yes; then
4563 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4565 # fast_install is set to needless
4569 link_command="$compile_var$compile_command$compile_rpath"
4570 relink_command="$finalize_var$finalize_command$finalize_rpath"
4574 # Replace the output file specification.
4575 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4577 # Delete the old output files.
4578 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4580 $show "$link_command"
4581 $run eval "$link_command" || exit $?
4583 # Now create the wrapper script.
4584 $show "creating $output"
4586 # Quote the relink command for shipping.
4587 if test -n "$relink_command"; then
4588 # Preserve any variables that may affect compiler behavior
4589 for var in $variables_saved_for_relink; do
4590 if eval test -z \"\${$var+set}\"; then
4591 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4592 elif eval var_value=\$$var; test -z "$var_value"; then
4593 relink_command="$var=; export $var; $relink_command"
4595 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4596 relink_command="$var=\"$var_value\"; export $var; $relink_command"
4599 relink_command="(cd `pwd`; $relink_command)"
4600 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4603 # Quote $echo for shipping.
4604 if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4606 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4607 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4609 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4611 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4614 # Only actually do things if our run command is non-null.
4615 if test -z "$run"; then
4616 # win32 will think the script is a binary if it has
4617 # a .exe suffix, so we strip it off here.
4619 *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4621 # test for cygwin because mv fails w/o .exe extensions
4625 outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4629 *cygwin* | *mingw* )
4630 cwrappersource=`$echo ${objdir}/lt-${output}.c`
4631 cwrapper=`$echo ${output}.exe`
4632 $rm $cwrappersource $cwrapper
4633 trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4635 cat > $cwrappersource <<EOF
4637 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4638 Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4640 The $output program cannot be directly executed until all the libtool
4641 libraries that it depends on are installed.
4643 This wrapper executable should never be moved out of the build directory.
4644 If it is, it will not operate correctly.
4646 Currently, it simply execs the wrapper *script* "/bin/sh $output",
4647 but could eventually absorb all of the scripts functionality and
4648 exec $objdir/$outputname directly.
4651 cat >> $cwrappersource<<"EOF"
4659 #if defined(PATH_MAX)
4660 # define LT_PATHMAX PATH_MAX
4661 #elif defined(MAXPATHLEN)
4662 # define LT_PATHMAX MAXPATHLEN
4664 # define LT_PATHMAX 1024
4667 #ifndef DIR_SEPARATOR
4668 #define DIR_SEPARATOR '/'
4671 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4673 #define HAVE_DOS_BASED_FILE_SYSTEM
4674 #ifndef DIR_SEPARATOR_2
4675 #define DIR_SEPARATOR_2 '\\'
4679 #ifndef DIR_SEPARATOR_2
4680 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4681 #else /* DIR_SEPARATOR_2 */
4682 # define IS_DIR_SEPARATOR(ch) \
4683 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4684 #endif /* DIR_SEPARATOR_2 */
4686 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4687 #define XFREE(stale) do { \
4688 if (stale) { free ((void *) stale); stale = 0; } \
4691 const char *program_name = NULL;
4693 void * xmalloc (size_t num);
4694 char * xstrdup (const char *string);
4695 char * basename (const char *name);
4696 char * fnqualify(const char *path);
4697 char * strendzap(char *str, const char *pat);
4698 void lt_fatal (const char *message, ...);
4701 main (int argc, char *argv[])
4706 program_name = (char *) xstrdup ((char *) basename (argv[0]));
4707 newargz = XMALLOC(char *, argc+2);
4710 cat >> $cwrappersource <<EOF
4711 newargz[0] = "$SHELL";
4714 cat >> $cwrappersource <<"EOF"
4715 newargz[1] = fnqualify(argv[0]);
4716 /* we know the script has the same name, without the .exe */
4717 /* so make sure newargz[1] doesn't end in .exe */
4718 strendzap(newargz[1],".exe");
4719 for (i = 1; i < argc; i++)
4720 newargz[i+1] = xstrdup(argv[i]);
4721 newargz[argc+1] = NULL;
4724 cat >> $cwrappersource <<EOF
4725 execv("$SHELL",newargz);
4728 cat >> $cwrappersource <<"EOF"
4732 xmalloc (size_t num)
4734 void * p = (void *) malloc (num);
4736 lt_fatal ("Memory exhausted");
4742 xstrdup (const char *string)
4744 return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
4749 basename (const char *name)
4753 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4754 /* Skip over the disk name in MSDOS pathnames. */
4755 if (isalpha (name[0]) && name[1] == ':')
4759 for (base = name; *name; name++)
4760 if (IS_DIR_SEPARATOR (*name))
4762 return (char *) base;
4766 fnqualify(const char *path)
4770 char tmp[LT_PATHMAX + 1];
4772 assert(path != NULL);
4774 /* Is it qualified already? */
4775 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4776 if (isalpha (path[0]) && path[1] == ':')
4777 return xstrdup (path);
4779 if (IS_DIR_SEPARATOR (path[0]))
4780 return xstrdup (path);
4782 /* prepend the current directory */
4783 /* doesn't handle '~' */
4784 if (getcwd (tmp, LT_PATHMAX) == NULL)
4785 lt_fatal ("getcwd failed");
4786 size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
4787 p = XMALLOC(char, size);
4788 sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
4793 strendzap(char *str, const char *pat)
4797 assert(str != NULL);
4798 assert(pat != NULL);
4801 patlen = strlen(pat);
4805 str += len - patlen;
4806 if (strcmp(str, pat) == 0)
4813 lt_error_core (int exit_status, const char * mode,
4814 const char * message, va_list ap)
4816 fprintf (stderr, "%s: %s: ", program_name, mode);
4817 vfprintf (stderr, message, ap);
4818 fprintf (stderr, ".\n");
4820 if (exit_status >= 0)
4825 lt_fatal (const char *message, ...)
4828 va_start (ap, message);
4829 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4833 # we should really use a build-platform specific compiler
4834 # here, but OTOH, the wrappers (shell script and this C one)
4835 # are only useful if you want to execute the "real" binary.
4836 # Since the "real" binary is built for $host, then this
4837 # wrapper might as well be built for $host, too.
4838 $run $LTCC -s -o $cwrapper $cwrappersource
4842 trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
4847 # $output - temporary wrapper script for $objdir/$outputname
4848 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4850 # The $output program cannot be directly executed until all the libtool
4851 # libraries that it depends on are installed.
4853 # This wrapper script should never be moved out of the build directory.
4854 # If it is, it will not operate correctly.
4856 # Sed substitution that helps us do robust quoting. It backslashifies
4857 # metacharacters that are still active within double-quoted strings.
4858 Xsed='${SED} -e 1s/^X//'
4859 sed_quote_subst='$sed_quote_subst'
4861 # The HP-UX ksh and POSIX shell print the target directory to stdout
4863 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
4865 relink_command=\"$relink_command\"
4867 # This environment variable determines our operation mode.
4868 if test \"\$libtool_install_magic\" = \"$magic\"; then
4869 # install mode needs the following variable:
4870 notinst_deplibs='$notinst_deplibs'
4872 # When we are sourced in execute mode, \$file and \$echo are already set.
4873 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4876 # Make sure echo works.
4877 if test \"X\$1\" = X--no-reexec; then
4878 # Discard the --no-reexec flag, and continue.
4880 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
4881 # Yippee, \$echo works!
4884 # Restart under the correct shell, and then maybe \$echo will work.
4885 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
4891 # Find the directory that this script lives in.
4892 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
4893 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4895 # Follow symbolic links until we get to the real thisdir.
4896 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4897 while test -n \"\$file\"; do
4898 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4900 # If there was a directory component, then change thisdir.
4901 if test \"x\$destdir\" != \"x\$file\"; then
4902 case \"\$destdir\" in
4903 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4904 *) thisdir=\"\$thisdir/\$destdir\" ;;
4908 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4909 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4912 # Try to get the absolute directory name.
4913 absdir=\`cd \"\$thisdir\" && pwd\`
4914 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4917 if test "$fast_install" = yes; then
4919 program=lt-'$outputname'$exeext
4920 progdir=\"\$thisdir/$objdir\"
4922 if test ! -f \"\$progdir/\$program\" || \\
4923 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4924 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4926 file=\"\$\$-\$program\"
4928 if test ! -d \"\$progdir\"; then
4929 $mkdir \"\$progdir\"
4931 $rm \"\$progdir/\$file\"
4936 # relink executable if necessary
4937 if test -n \"\$relink_command\"; then
4938 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4940 $echo \"\$relink_command_output\" >&2
4941 $rm \"\$progdir/\$file\"
4946 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4947 { $rm \"\$progdir/\$program\";
4948 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4949 $rm \"\$progdir/\$file\"
4953 program='$outputname'
4954 progdir=\"\$thisdir/$objdir\"
4960 if test -f \"\$progdir/\$program\"; then"
4962 # Export our shlibpath_var if we have one.
4963 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4965 # Add our own library path to $shlibpath_var
4966 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4968 # Some systems cannot cope with colon-terminated $shlibpath_var
4969 # The second colon is a workaround for a bug in BeOS R4 sed
4970 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4972 export $shlibpath_var
4976 # fixup the dll searchpath if we need to.
4977 if test -n "$dllsearchpath"; then
4979 # Add the dll search path components to the executable PATH
4980 PATH=$dllsearchpath:\$PATH
4985 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4986 # Run the actual program with our arguments.
4989 # Backslashes separate directories on plain windows
4990 *-*-mingw | *-*-os2*)
4992 exec \$progdir\\\\\$program \${1+\"\$@\"}
4998 exec \$progdir/\$program \${1+\"\$@\"}
5003 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5007 # The program doesn't exist.
5008 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
5009 \$echo \"This script is just a wrapper for \$program.\" 1>&2
5010 $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5021 # See if we need to build an old-fashioned archive.
5022 for oldlib in $oldlibs; do
5024 if test "$build_libtool_libs" = convenience; then
5025 oldobjs="$libobjs_save"
5026 addlibs="$convenience"
5027 build_libtool_libs=no
5029 if test "$build_libtool_libs" = module; then
5030 oldobjs="$libobjs_save"
5031 build_libtool_libs=no
5033 oldobjs="$old_deplibs $non_pic_objects"
5035 addlibs="$old_convenience"
5038 if test -n "$addlibs"; then
5039 gentop="$output_objdir/${outputname}x"
5040 generated="$generated $gentop"
5042 func_extract_archives $gentop $addlibs
5043 oldobjs="$oldobjs $func_extract_archives_result"
5046 # Do each command in the archive commands.
5047 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5048 cmds=$old_archive_from_new_cmds
5050 eval cmds=\"$old_archive_cmds\"
5052 if len=`expr "X$cmds" : ".*"` &&
5053 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5054 cmds=$old_archive_cmds
5056 # the command line is too long to link in one step, link in parts
5057 $echo "using piecewise archive linking..."
5062 save_oldobjs=$oldobjs
5063 # GNU ar 2.10+ was changed to match POSIX; thus no paths are
5064 # encoded into archives. This makes 'ar r' malfunction in
5065 # this piecewise linking case whenever conflicting object
5066 # names appear in distinct ar calls; check, warn and compensate.
5067 if (for obj in $save_oldobjs
5069 $echo "X$obj" | $Xsed -e 's%^.*/%%'
5070 done | sort | sort -uc >/dev/null 2>&1); then
5073 $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
5074 $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
5077 # Is there a better way of finding the last object in the list?
5078 for obj in $save_oldobjs
5082 for obj in $save_oldobjs
5084 oldobjs="$objlist $obj"
5085 objlist="$objlist $obj"
5086 eval test_cmds=\"$old_archive_cmds\"
5087 if len=`expr "X$test_cmds" : ".*"` &&
5088 test "$len" -le "$max_cmd_len"; then
5091 # the above command should be used before it gets too long
5093 if test "$obj" = "$last_oldobj" ; then
5096 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5097 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5103 if test "X$oldobjs" = "X" ; then
5104 eval cmds=\"\$concat_cmds\"
5106 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5110 save_ifs="$IFS"; IFS='~'
5111 for cmd in $cmds; do
5115 $run eval "$cmd" || exit $?
5120 if test -n "$generated"; then
5121 $show "${rm}r$generated"
5122 $run ${rm}r$generated
5125 # Now create the libtool archive.
5129 test "$build_old_libs" = yes && old_library="$libname.$libext"
5130 $show "creating $output"
5132 # Preserve any variables that may affect compiler behavior
5133 for var in $variables_saved_for_relink; do
5134 if eval test -z \"\${$var+set}\"; then
5135 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5136 elif eval var_value=\$$var; test -z "$var_value"; then
5137 relink_command="$var=; export $var; $relink_command"
5139 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5140 relink_command="$var=\"$var_value\"; export $var; $relink_command"
5143 # Quote the link command for shipping.
5144 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5145 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5146 if test "$hardcode_automatic" = yes ; then
5151 # Only create the output if not a dry run.
5152 if test -z "$run"; then
5153 for installed in no yes; do
5154 if test "$installed" = yes; then
5155 if test -z "$install_libdir"; then
5158 output="$output_objdir/$outputname"i
5159 # Replace all uninstalled libtool libraries with the installed ones
5161 for deplib in $dependency_libs; do
5164 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5165 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5166 if test -z "$libdir"; then
5167 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5170 newdependency_libs="$newdependency_libs $libdir/$name"
5172 *) newdependency_libs="$newdependency_libs $deplib" ;;
5175 dependency_libs="$newdependency_libs"
5177 for lib in $dlfiles; do
5178 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5179 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5180 if test -z "$libdir"; then
5181 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5184 newdlfiles="$newdlfiles $libdir/$name"
5186 dlfiles="$newdlfiles"
5188 for lib in $dlprefiles; do
5189 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5190 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5191 if test -z "$libdir"; then
5192 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5195 newdlprefiles="$newdlprefiles $libdir/$name"
5197 dlprefiles="$newdlprefiles"
5200 for lib in $dlfiles; do
5202 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5203 *) abs=`pwd`"/$lib" ;;
5205 newdlfiles="$newdlfiles $abs"
5207 dlfiles="$newdlfiles"
5209 for lib in $dlprefiles; do
5211 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5212 *) abs=`pwd`"/$lib" ;;
5214 newdlprefiles="$newdlprefiles $abs"
5216 dlprefiles="$newdlprefiles"
5219 # place dlname in correct position for cygwin
5221 case $host,$output,$installed,$module,$dlname in
5222 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5225 # $outputname - a libtool library file
5226 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5228 # Please DO NOT delete this file!
5229 # It is necessary for linking the library.
5231 # The name that we can dlopen(3).
5234 # Names of this library.
5235 library_names='$library_names'
5237 # The name of the static archive.
5238 old_library='$old_library'
5240 # Libraries that this one depends upon.
5241 dependency_libs='$dependency_libs'
5243 # Version information for $libname.
5248 # Is this an already installed library?
5249 installed=$installed
5251 # Should we warn about portability when linking against -modules?
5252 shouldnotlink=$module
5254 # Files to dlopen/dlpreopen
5256 dlpreopen='$dlprefiles'
5258 # Directory that this library needs to be installed in:
5259 libdir='$install_libdir'"
5260 if test "$installed" = no && test "$need_relink" = yes; then
5262 relink_command=\"$relink_command\""
5267 # Do a symbolic link so that the libtool archive can be found in
5268 # LD_LIBRARY_PATH before the program is installed.
5269 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5270 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5276 # libtool install mode
5278 modename="$modename: install"
5280 # There may be an optional sh(1) argument at the beginning of
5281 # install_prog (especially on Windows NT).
5282 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5283 # Allow the use of GNU shtool's install command.
5284 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
5285 # Aesthetically quote it.
5286 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5288 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5292 install_prog="$arg "
5300 # The real first argument should be the name of the installation program.
5301 # Aesthetically quote it.
5302 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5304 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5308 install_prog="$install_prog$arg"
5310 # We need to accept at least all the BSD install flags.
5320 if test -n "$dest"; then
5321 files="$files $dest"
5339 # If the previous option needed an argument, then skip it.
5340 if test -n "$prev"; then
5349 # Aesthetically quote the argument.
5350 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5352 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5356 install_prog="$install_prog $arg"
5359 if test -z "$install_prog"; then
5360 $echo "$modename: you must specify an install program" 1>&2
5365 if test -n "$prev"; then
5366 $echo "$modename: the \`$prev' option requires an argument" 1>&2
5371 if test -z "$files"; then
5372 if test -z "$dest"; then
5373 $echo "$modename: no file or destination specified" 1>&2
5375 $echo "$modename: you must specify a destination" 1>&2
5381 # Strip any trailing slash from the destination.
5382 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5384 # Check to see that the destination is a directory.
5385 test -d "$dest" && isdir=yes
5386 if test "$isdir" = yes; then
5390 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5391 test "X$destdir" = "X$dest" && destdir=.
5392 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5394 # Not a directory, so check to see that there is only one file specified.
5396 if test "$#" -gt 2; then
5397 $echo "$modename: \`$dest' is not a directory" 1>&2
5403 [\\/]* | [A-Za-z]:[\\/]*) ;;
5405 for file in $files; do
5409 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5418 # This variable tells wrapper scripts just to set variables rather
5419 # than running their programs.
5420 libtool_install_magic="$magic"
5425 for file in $files; do
5427 # Do each installation.
5430 # Do the static libraries later.
5431 staticlibs="$staticlibs $file"
5435 # Check to see that this really is a libtool archive.
5436 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5438 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5446 # If there is no directory component, then add one.
5448 */* | *\\*) . $file ;;
5452 # Add the libdir to current_libdirs if it is the destination.
5453 if test "X$destdir" = "X$libdir"; then
5454 case "$current_libdirs " in
5456 *) current_libdirs="$current_libdirs $libdir" ;;
5459 # Note the libdir as a future libdir.
5460 case "$future_libdirs " in
5462 *) future_libdirs="$future_libdirs $libdir" ;;
5466 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5467 test "X$dir" = "X$file/" && dir=
5470 if test -n "$relink_command"; then
5471 # Determine the prefix the user has applied to our future dir.
5472 inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5474 # Don't allow the user to place us outside of our expected
5475 # location b/c this prevents finding dependent libraries that
5476 # are installed to the same prefix.
5477 # At present, this check doesn't affect windows .dll's that
5478 # are installed into $libdir/../bin (currently, that works fine)
5479 # but it's something to keep an eye on.
5480 if test "$inst_prefix_dir" = "$destdir"; then
5481 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5485 if test -n "$inst_prefix_dir"; then
5486 # Stick the inst_prefix_dir data into the link command.
5487 relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5489 relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5492 $echo "$modename: warning: relinking \`$file'" 1>&2
5493 $show "$relink_command"
5494 if $run eval "$relink_command"; then :
5496 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5501 # See the names of the shared library.
5502 set dummy $library_names
5503 if test -n "$2"; then
5509 test -n "$relink_command" && srcname="$realname"T
5511 # Install the shared library and build the symlinks.
5512 $show "$install_prog $dir/$srcname $destdir/$realname"
5513 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5514 if test -n "$stripme" && test -n "$striplib"; then
5515 $show "$striplib $destdir/$realname"
5516 $run eval "$striplib $destdir/$realname" || exit $?
5519 if test "$#" -gt 0; then
5520 # Delete the old symlinks, and create new ones.
5523 if test "$linkname" != "$realname"; then
5524 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5525 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5530 # Do each command in the postinstall commands.
5531 lib="$destdir/$realname"
5532 cmds=$postinstall_cmds
5533 save_ifs="$IFS"; IFS='~'
5534 for cmd in $cmds; do
5538 $run eval "$cmd" || exit $?
5543 # Install the pseudo-library for information purposes.
5544 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5545 instname="$dir/$name"i
5546 $show "$install_prog $instname $destdir/$name"
5547 $run eval "$install_prog $instname $destdir/$name" || exit $?
5549 # Maybe install the static library, too.
5550 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
5554 # Install (i.e. copy) a libtool object.
5556 # Figure out destination file name, if it wasn't already specified.
5557 if test -n "$destname"; then
5558 destfile="$destdir/$destname"
5560 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5561 destfile="$destdir/$destfile"
5564 # Deduce the name of the destination old-style object file.
5567 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
5570 staticdest="$destfile"
5574 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
5580 # Install the libtool object if requested.
5581 if test -n "$destfile"; then
5582 $show "$install_prog $file $destfile"
5583 $run eval "$install_prog $file $destfile" || exit $?
5586 # Install the old object if enabled.
5587 if test "$build_old_libs" = yes; then
5588 # Deduce the name of the old-style object file.
5589 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
5591 $show "$install_prog $staticobj $staticdest"
5592 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
5598 # Figure out destination file name, if it wasn't already specified.
5599 if test -n "$destname"; then
5600 destfile="$destdir/$destname"
5602 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5603 destfile="$destdir/$destfile"
5606 # If the file is missing, and there is a .exe on the end, strip it
5607 # because it is most likely a libtool script we actually want to
5612 if test ! -f "$file"; then
5613 file=`$echo $file|${SED} 's,.exe$,,'`
5619 # Do a test to see if this is really a libtool program.
5622 wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
5628 if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
5632 # To insure that "foo" is sourced, and not "foo.exe",
5633 # finese the cygwin/MSYS system by explicitly sourcing "foo."
5634 # which disallows the automatic-append-.exe behavior.
5636 *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5637 *) wrapperdot=${wrapper} ;;
5639 # If there is no directory component, then add one.
5641 */* | *\\*) . ${wrapperdot} ;;
5642 *) . ./${wrapperdot} ;;
5645 # Check the variables that should have been set.
5646 if test -z "$notinst_deplibs"; then
5647 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
5652 for lib in $notinst_deplibs; do
5653 # Check to see that each library is installed.
5655 if test -f "$lib"; then
5656 # If there is no directory component, then add one.
5658 */* | *\\*) . $lib ;;
5662 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
5663 if test -n "$libdir" && test ! -f "$libfile"; then
5664 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
5670 # To insure that "foo" is sourced, and not "foo.exe",
5671 # finese the cygwin/MSYS system by explicitly sourcing "foo."
5672 # which disallows the automatic-append-.exe behavior.
5674 *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5675 *) wrapperdot=${wrapper} ;;
5677 # If there is no directory component, then add one.
5679 */* | *\\*) . ${wrapperdot} ;;
5680 *) . ./${wrapperdot} ;;
5684 if test "$fast_install" = no && test -n "$relink_command"; then
5685 if test "$finalize" = yes && test -z "$run"; then
5687 test -n "$TMPDIR" && tmpdir="$TMPDIR"
5688 tmpdir="$tmpdir/libtool-$$"
5691 if $mkdir "$tmpdir"; then
5695 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
5698 file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
5699 outputname="$tmpdir/$file"
5700 # Replace the output file specification.
5701 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
5703 $show "$relink_command"
5704 if $run eval "$relink_command"; then :
5706 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5712 $echo "$modename: warning: cannot relink \`$file'" 1>&2
5715 # Install the binary that we compiled earlier.
5716 file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
5720 # remove .exe since cygwin /usr/bin/install will append another
5722 case $install_prog,$host in
5723 */usr/bin/install*,*cygwin*)
5724 case $file:$destfile in
5729 destfile=$destfile.exe
5732 destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
5737 $show "$install_prog$stripme $file $destfile"
5738 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
5739 test -n "$outputname" && ${rm}r "$tmpdir"
5744 for file in $staticlibs; do
5745 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5747 # Set up the ranlib parameters.
5748 oldlib="$destdir/$name"
5750 $show "$install_prog $file $oldlib"
5751 $run eval "$install_prog \$file \$oldlib" || exit $?
5753 if test -n "$stripme" && test -n "$old_striplib"; then
5754 $show "$old_striplib $oldlib"
5755 $run eval "$old_striplib $oldlib" || exit $?
5758 # Do each command in the postinstall commands.
5759 cmds=$old_postinstall_cmds
5760 save_ifs="$IFS"; IFS='~'
5761 for cmd in $cmds; do
5765 $run eval "$cmd" || exit $?
5770 if test -n "$future_libdirs"; then
5771 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
5774 if test -n "$current_libdirs"; then
5775 # Maybe just do a dry run.
5776 test -n "$run" && current_libdirs=" -n$current_libdirs"
5777 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
5783 # libtool finish mode
5785 modename="$modename: finish"
5789 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
5792 libdirs="$libdirs $dir"
5795 for libdir in $libdirs; do
5796 if test -n "$finish_cmds"; then
5797 # Do each command in the finish commands.
5799 save_ifs="$IFS"; IFS='~'
5800 for cmd in $cmds; do
5804 $run eval "$cmd" || admincmds="$admincmds
5809 if test -n "$finish_eval"; then
5810 # Do the single finish_eval.
5811 eval cmds=\"$finish_eval\"
5812 $run eval "$cmds" || admincmds="$admincmds
5818 # Exit here if they wanted silent mode.
5819 test "$show" = : && exit $EXIT_SUCCESS
5821 $echo "----------------------------------------------------------------------"
5822 $echo "Libraries have been installed in:"
5823 for libdir in $libdirs; do
5827 $echo "If you ever happen to want to link against installed libraries"
5828 $echo "in a given directory, LIBDIR, you must either use libtool, and"
5829 $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
5830 $echo "flag during linking and do at least one of the following:"
5831 if test -n "$shlibpath_var"; then
5832 $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
5833 $echo " during execution"
5835 if test -n "$runpath_var"; then
5836 $echo " - add LIBDIR to the \`$runpath_var' environment variable"
5837 $echo " during linking"
5839 if test -n "$hardcode_libdir_flag_spec"; then
5841 eval flag=\"$hardcode_libdir_flag_spec\"
5843 $echo " - use the \`$flag' linker flag"
5845 if test -n "$admincmds"; then
5846 $echo " - have your system administrator run these commands:$admincmds"
5848 if test -f /etc/ld.so.conf; then
5849 $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
5852 $echo "See any operating system documentation about shared libraries for"
5853 $echo "more information, such as the ld(1) and ld.so(8) manual pages."
5854 $echo "----------------------------------------------------------------------"
5858 # libtool execute mode
5860 modename="$modename: execute"
5862 # The first argument is the command name.
5864 if test -z "$cmd"; then
5865 $echo "$modename: you must specify a COMMAND" 1>&2
5870 # Handle -dlopen flags immediately.
5871 for file in $execute_dlfiles; do
5872 if test ! -f "$file"; then
5873 $echo "$modename: \`$file' is not a file" 1>&2
5881 # Check to see that this really is a libtool archive.
5882 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5884 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5889 # Read the libtool library.
5893 # If there is no directory component, then add one.
5895 */* | *\\*) . $file ;;
5899 # Skip this library if it cannot be dlopened.
5900 if test -z "$dlname"; then
5901 # Warn if it was a shared library.
5902 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
5906 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5907 test "X$dir" = "X$file" && dir=.
5909 if test -f "$dir/$objdir/$dlname"; then
5912 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
5918 # Just add the directory containing the .lo file.
5919 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5920 test "X$dir" = "X$file" && dir=.
5924 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
5929 # Get the absolute pathname.
5930 absdir=`cd "$dir" && pwd`
5931 test -n "$absdir" && dir="$absdir"
5933 # Now add the directory to shlibpath_var.
5934 if eval "test -z \"\$$shlibpath_var\""; then
5935 eval "$shlibpath_var=\"\$dir\""
5937 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
5941 # This variable tells wrapper scripts just to set shlibpath_var
5942 # rather than running their programs.
5943 libtool_execute_magic="$magic"
5945 # Check if any of the arguments is a wrapper script.
5952 # Do a test to see if this is really a libtool program.
5953 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5954 # If there is no directory component, then add one.
5956 */* | *\\*) . $file ;;
5960 # Transform arg to wrapped name.
5961 file="$progdir/$program"
5965 # Quote arguments (to preserve shell metacharacters).
5966 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5967 args="$args \"$file\""
5970 if test -z "$run"; then
5971 if test -n "$shlibpath_var"; then
5972 # Export the shlibpath_var.
5973 eval "export $shlibpath_var"
5976 # Restore saved environment variables
5977 if test "${save_LC_ALL+set}" = set; then
5978 LC_ALL="$save_LC_ALL"; export LC_ALL
5980 if test "${save_LANG+set}" = set; then
5981 LANG="$save_LANG"; export LANG
5984 # Now prepare to actually exec the command.
5985 exec_cmd="\$cmd$args"
5987 # Display what would be done.
5988 if test -n "$shlibpath_var"; then
5989 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5990 $echo "export $shlibpath_var"
5997 # libtool clean and uninstall mode
5999 modename="$modename: $mode"
6005 # This variable tells wrapper scripts just to set variables rather
6006 # than running their programs.
6007 libtool_install_magic="$magic"
6012 -f) rm="$rm $arg"; rmforce=yes ;;
6013 -*) rm="$rm $arg" ;;
6014 *) files="$files $arg" ;;
6018 if test -z "$rm"; then
6019 $echo "$modename: you must specify an RM program" 1>&2
6026 origobjdir="$objdir"
6027 for file in $files; do
6028 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6029 if test "X$dir" = "X$file"; then
6031 objdir="$origobjdir"
6033 objdir="$dir/$origobjdir"
6035 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6036 test "$mode" = uninstall && objdir="$dir"
6038 # Remember objdir for removal later, being careful to avoid duplicates
6039 if test "$mode" = clean; then
6042 *) rmdirs="$rmdirs $objdir" ;;
6046 # Don't error if the file doesn't exist and rm -f was used.
6047 if (test -L "$file") >/dev/null 2>&1 \
6048 || (test -h "$file") >/dev/null 2>&1 \
6049 || test -f "$file"; then
6051 elif test -d "$file"; then
6054 elif test "$rmforce" = yes; then
6062 # Possibly a libtool archive, so verify it.
6063 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6066 # Delete the libtool libraries and symlinks.
6067 for n in $library_names; do
6068 rmfiles="$rmfiles $objdir/$n"
6070 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6071 test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6073 if test "$mode" = uninstall; then
6074 if test -n "$library_names"; then
6075 # Do each command in the postuninstall commands.
6076 cmds=$postuninstall_cmds
6077 save_ifs="$IFS"; IFS='~'
6078 for cmd in $cmds; do
6083 if test "$?" -ne 0 && test "$rmforce" != yes; then
6090 if test -n "$old_library"; then
6091 # Do each command in the old_postuninstall commands.
6092 cmds=$old_postuninstall_cmds
6093 save_ifs="$IFS"; IFS='~'
6094 for cmd in $cmds; do
6099 if test "$?" -ne 0 && test "$rmforce" != yes; then
6105 # FIXME: should reinstall the best remaining shared library.
6111 # Possibly a libtool object, so verify it.
6112 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6117 # Add PIC object to the list of files to remove.
6118 if test -n "$pic_object" \
6119 && test "$pic_object" != none; then
6120 rmfiles="$rmfiles $dir/$pic_object"
6123 # Add non-PIC object to the list of files to remove.
6124 if test -n "$non_pic_object" \
6125 && test "$non_pic_object" != none; then
6126 rmfiles="$rmfiles $dir/$non_pic_object"
6132 if test "$mode" = clean ; then
6136 file=`$echo $file|${SED} 's,.exe$,,'`
6137 noexename=`$echo $name|${SED} 's,.exe$,,'`
6138 # $file with .exe has already been added to rmfiles,
6139 # add $file without .exe
6140 rmfiles="$rmfiles $file"
6143 # Do a test to see if this is a libtool program.
6144 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6148 # note $name still contains .exe if it was in $file originally
6149 # as does the version of $file that was added into $rmfiles
6150 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6151 if test "$fast_install" = yes && test -n "$relink_command"; then
6152 rmfiles="$rmfiles $objdir/lt-$name"
6154 if test "X$noexename" != "X$name" ; then
6155 rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6161 $show "$rm $rmfiles"
6162 $run $rm $rmfiles || exit_status=1
6164 objdir="$origobjdir"
6166 # Try to remove the ${objdir}s in the directories where we deleted files
6167 for dir in $rmdirs; do
6168 if test -d "$dir"; then
6170 $run rmdir $dir >/dev/null 2>&1
6178 $echo "$modename: you must specify a MODE" 1>&2
6179 $echo "$generic_help" 1>&2
6184 if test -z "$exec_cmd"; then
6185 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6186 $echo "$generic_help" 1>&2
6189 fi # test -z "$show_help"
6191 if test -n "$exec_cmd"; then
6196 # We need to display help for each of the modes.
6199 "Usage: $modename [OPTION]... [MODE-ARG]...
6201 Provide generalized library-building support services.
6203 --config show all configuration variables
6204 --debug enable verbose shell tracing
6205 -n, --dry-run display commands without modifying any files
6206 --features display basic configuration information and exit
6207 --finish same as \`--mode=finish'
6208 --help display this help message and exit
6209 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
6210 --quiet same as \`--silent'
6211 --silent don't print informational messages
6212 --tag=TAG use configuration variables from tag TAG
6213 --version print version information
6215 MODE must be one of the following:
6217 clean remove files from the build directory
6218 compile compile a source file into a libtool object
6219 execute automatically set library path, then run a program
6220 finish complete the installation of libtool libraries
6221 install install libraries or executables
6222 link create a library or an executable
6223 uninstall remove libraries from an installed directory
6225 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
6226 a more detailed description of MODE.
6228 Report bugs to <bug-libtool@gnu.org>."
6234 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6236 Remove files from the build directory.
6238 RM is the name of the program to use to delete files associated with each FILE
6239 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6242 If FILE is a libtool library, object or program, all the files associated
6243 with it are deleted. Otherwise, only FILE itself is deleted using RM."
6248 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6250 Compile a source file into a libtool library object.
6252 This mode accepts the following additional options:
6254 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
6255 -prefer-pic try to building PIC objects only
6256 -prefer-non-pic try to building non-PIC objects only
6257 -static always build a \`.o' file suitable for static linking
6259 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6260 from the given SOURCEFILE.
6262 The output file name is determined by removing the directory component from
6263 SOURCEFILE, then substituting the C source code suffix \`.c' with the
6264 library object suffix, \`.lo'."
6269 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6271 Automatically set library path, then run a program.
6273 This mode accepts the following additional options:
6275 -dlopen FILE add the directory containing FILE to the library path
6277 This mode sets the library path environment variable according to \`-dlopen'
6280 If any of the ARGS are libtool executable wrappers, then they are translated
6281 into their corresponding uninstalled binary, and any of their required library
6282 directories are added to the library path.
6284 Then, COMMAND is executed, with ARGS as arguments."
6289 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6291 Complete the installation of libtool libraries.
6293 Each LIBDIR is a directory that contains libtool libraries.
6295 The commands that this mode executes may require superuser privileges. Use
6296 the \`--dry-run' option if you just want to see what would be executed."
6301 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6303 Install executables or libraries.
6305 INSTALL-COMMAND is the installation command. The first component should be
6306 either the \`install' or \`cp' program.
6308 The rest of the components are interpreted as arguments to that command (only
6309 BSD-compatible install options are recognized)."
6314 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6316 Link object files or libraries together to form another library, or to
6317 create an executable program.
6319 LINK-COMMAND is a command using the C compiler that you would use to create
6320 a program from several object files.
6322 The following components of LINK-COMMAND are treated specially:
6324 -all-static do not do any dynamic linking at all
6325 -avoid-version do not add a version suffix if possible
6326 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
6327 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
6328 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6329 -export-symbols SYMFILE
6330 try to export only the symbols listed in SYMFILE
6331 -export-symbols-regex REGEX
6332 try to export only the symbols matching REGEX
6333 -LLIBDIR search LIBDIR for required installed libraries
6334 -lNAME OUTPUT-FILE requires the installed library libNAME
6335 -module build a library that can dlopened
6336 -no-fast-install disable the fast-install mode
6337 -no-install link a not-installable executable
6338 -no-undefined declare that a library does not refer to external symbols
6339 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
6340 -objectlist FILE Use a list of object files found in FILE to specify objects
6341 -precious-files-regex REGEX
6342 don't remove output files matching REGEX
6343 -release RELEASE specify package release information
6344 -rpath LIBDIR the created library will eventually be installed in LIBDIR
6345 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
6346 -static do not do any dynamic linking of libtool libraries
6347 -version-info CURRENT[:REVISION[:AGE]]
6348 specify library version info [each variable defaults to 0]
6350 All other options (arguments beginning with \`-') are ignored.
6352 Every other argument is treated as a filename. Files ending in \`.la' are
6353 treated as uninstalled libtool libraries, other files are standard or library
6356 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6357 only library objects (\`.lo' files) may be specified, and \`-rpath' is
6358 required, except when creating a convenience library.
6360 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6361 using \`ar' and \`ranlib', or on Windows using \`lib'.
6363 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6364 is created, otherwise an executable program is created."
6369 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6371 Remove libraries from an installation directory.
6373 RM is the name of the program to use to delete files associated with each FILE
6374 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6377 If FILE is a libtool library, all the files associated with it are deleted.
6378 Otherwise, only FILE itself is deleted using RM."
6382 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6389 $echo "Try \`$modename --help' for more information about other modes."
6393 # The TAGs below are defined such that we never get into a situation
6394 # in which we disable both kinds of libraries. Given conflicting
6395 # choices, we go for a static library, that is the most portable,
6396 # since we can't tell whether shared libraries were disabled because
6397 # the user asked for that or because the platform doesn't support
6398 # them. This is particularly important on AIX, because we don't
6399 # support having both static and shared libraries enabled at the same
6400 # time on that platform, so we default to a shared-only configuration.
6401 # If a disable-shared tag is given, we'll fallback to a static-only
6402 # configuration. But we'll never go from static-only to shared-only.
6404 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6405 build_libtool_libs=no
6407 # ### END LIBTOOL TAG CONFIG: disable-shared
6409 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
6410 build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
6411 # ### END LIBTOOL TAG CONFIG: disable-static