1 # Based on libtool-1.5.22
2 # ltmain.sh - Provide generalized library-building support services.
3 # NOTE: Changing this file will not affect anything until you rerun configure.
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
6 # Free Software Foundation, Inc.
7 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23 # As a special exception to the GNU General Public License, if you
24 # distribute this file as part of a program that contains a
25 # configuration script generated by Autoconf, you may include it under
26 # the same distribution terms that you use for the rest of that program.
30 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
31 # is ksh but when the shell is invoked as "sh" and the current value of
32 # the _XPG environment variable is not equal to 1 (one), the special
33 # positional parameter $0, within a function call, is the name of the
37 # The name of this program:
38 progname
=`echo "$progpath" | $SED $basename`
48 TIMESTAMP
=" (1.1220.2.365 2005/12/18 22:14:06)"
50 # See if we are running on zsh, and set the options which allow our
51 # commands through without removal of \ escapes.
52 if test -n "${ZSH_VERSION+set}" ; then
56 # Check that we have a working $echo.
57 if test "X$1" = X--no-reexec
; then
58 # Discard the --no-reexec flag, and continue.
60 elif test "X$1" = X--fallback-echo
; then
61 # Avoid inline document here, it may be left over
63 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
64 # Yippee, $echo works!
67 # Restart under the correct shell, and then maybe $echo will work.
68 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
71 if test "X$1" = X--fallback-echo
; then
72 # used as fallback echo
81 help="Try \`$progname --help' for more information."
82 magic
="%%%MAGIC variable%%%"
87 # Sed substitution that helps us do robust quoting. It backslashifies
88 # metacharacters that are still active within double-quoted strings.
89 Xsed
="${SED}"' -e 1s/^X//'
90 sed_quote_subst
='s/\([\\`\\"$\\\\]\)/\\\1/g'
91 # test EBCDIC or ASCII
92 case `echo X|tr X '\101'` in
93 A
) # ASCII based system
94 # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
96 NL2SP
='tr \015\012 \040\040'
98 *) # EBCDIC based system
100 NL2SP
='tr \r\n \100\100'
105 # Only set LANG and LC_ALL to C if already set.
106 # These must not be set unconditionally because not all systems understand
107 # e.g. LANG=C (notably SCO).
108 # We save the old values to restore during execute mode.
109 if test "${LC_ALL+set}" = set; then
110 save_LC_ALL
="$LC_ALL"; LC_ALL
=C
; export LC_ALL
112 if test "${LANG+set}" = set; then
113 save_LANG
="$LANG"; LANG
=C
; export LANG
116 # Make sure IFS has a sensible default
121 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
122 $echo "$modename: not configured to build any kind of library" 1>&2
123 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
138 lo2o
="s/\\.lo\$/.${objext}/"
139 o2lo
="s/\\.${objext}\$/.lo/"
141 #####################################
142 # Shell function definitions:
143 # This seems to be the best place for them
145 # func_mktempdir [string]
146 # Make a temporary directory that won't clash with other running
147 # libtool processes, and avoids race conditions if possible. If
148 # given, STRING is the basename for that directory.
151 my_template
="${TMPDIR-/tmp}/${1-$progname}"
153 if test "$run" = ":"; then
154 # Return a directory name, but don't create it in dry-run mode
155 my_tmpdir
="${my_template}-$$"
158 # If mktemp works, use that first and foremost
159 my_tmpdir
=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
161 if test ! -d "$my_tmpdir"; then
162 # Failing that, at least try and use $RANDOM to avoid a race
163 my_tmpdir
="${my_template}-${RANDOM-0}$$"
165 save_mktempdir_umask
=`umask`
168 umask $save_mktempdir_umask
171 # If we're not in dry-run mode, bomb out on failure
172 test -d "$my_tmpdir" ||
{
173 $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
178 $echo "X$my_tmpdir" |
$Xsed
182 # func_win32_libid arg
183 # return the library type of file 'arg'
185 # Need a lot of goo to handle *both* DLLs and import libs
186 # Has to be a shell function in order to 'eat' the argument
187 # that is supplied when $file_magic_command is called.
190 win32_libid_type
="unknown"
191 win32_fileres
=`file -L $1 2>/dev/null`
192 case $win32_fileres in
193 *ar\ archive\ import\ library
*) # definitely import
194 win32_libid_type
="x86 archive import"
196 *ar\ archive
*) # could be an import, or static
197 if eval $OBJDUMP -f $1 |
$SED -e '10q' 2>/dev
/null | \
198 $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev
/null
; then
199 win32_nmres
=`eval $NM -f posix -A $1 | \
200 $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
202 import
*) win32_libid_type
="x86 archive import";;
203 *) win32_libid_type
="x86 archive static";;
208 win32_libid_type
="x86 DLL"
210 *executable
*) # but shell scripts are "executable" too...
211 case $win32_fileres in
212 *MS\ Windows\ PE\ Intel
*)
213 win32_libid_type
="x86 DLL"
218 $echo $win32_libid_type
223 # Infer tagged configuration to use if any are available and
224 # if one wasn't chosen via the "--tag" command line option.
225 # Only attempt this if the compiler in the base compile
226 # command doesn't match the default compiler.
227 # arg is usually of the form 'gcc ...'
230 if test -n "$available_tags" && test -z "$tagname"; then
234 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
238 CC_quoted
="$CC_quoted $arg"
241 # Blanks in the command may have been stripped by the calling shell,
242 # but not from the CC environment variable when configure was run.
243 " $CC "* |
"$CC "* |
" `$echo $CC` "* |
"`$echo $CC` "* |
" $CC_quoted"* |
"$CC_quoted "* |
" `$echo $CC_quoted` "* |
"`$echo $CC_quoted` "*) ;;
244 # Blanks at the start of $base_compile will cause this to fail
245 # if we don't check for them as well.
247 for z
in $available_tags; do
248 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev
/null
; then
249 # Evaluate the configuration.
250 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
253 # Double-quote args containing other shell metacharacters.
255 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
259 CC_quoted
="$CC_quoted $arg"
262 " $CC "* |
"$CC "* |
" `$echo $CC` "* |
"`$echo $CC` "* |
" $CC_quoted"* |
"$CC_quoted "* |
" `$echo $CC_quoted` "* |
"`$echo $CC_quoted` "*)
263 # The compiler in the base compile command matches
264 # the one in the tagged configuration.
265 # Assume this is the tagged configuration we want.
272 # If $tagname still isn't set, then no tagged configuration
273 # was found and let the user know that the "--tag" command
274 # line option must be used.
275 if test -z "$tagname"; then
276 $echo "$modename: unable to infer tagged configuration"
277 $echo "$modename: specify a tag with \`--tag'" 1>&2
280 # $echo "$modename: using $tagname tagged configuration"
288 # func_extract_an_archive dir oldlib
289 func_extract_an_archive
()
291 f_ex_an_ar_dir
="$1"; shift
292 f_ex_an_ar_oldlib
="$1"
294 $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
295 $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" ||
exit $?
296 if ($AR t
"$f_ex_an_ar_oldlib" |
sort |
sort -uc >/dev
/null
2>&1); then
299 $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
304 # func_extract_archives gentop oldlib ...
305 func_extract_archives
()
307 my_gentop
="$1"; shift
315 $show "${rm}r $my_gentop"
316 $run ${rm}r
"$my_gentop"
317 $show "$mkdir $my_gentop"
318 $run $mkdir "$my_gentop"
320 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
324 for my_xlib
in $my_oldlibs; do
325 # Extract the objects.
327 [\\/]* |
[A-Za-z
]:[\\/]*) my_xabs
="$my_xlib" ;;
328 *) my_xabs
=`pwd`"/$my_xlib" ;;
330 my_xlib
=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
331 my_xdir
="$my_gentop/$my_xlib"
333 $show "${rm}r $my_xdir"
334 $run ${rm}r
"$my_xdir"
335 $show "$mkdir $my_xdir"
336 $run $mkdir "$my_xdir"
338 if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
343 $show "Extracting $my_xabs"
344 # Do not bother doing anything if just a dry run
345 if test -z "$run"; then
346 darwin_orig_dir
=`pwd`
347 cd $my_xdir ||
exit $?
348 darwin_archive
=$my_xabs
350 darwin_base_archive
=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
351 darwin_arches
=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
352 if test -n "$darwin_arches"; then
353 darwin_arches
=`echo "$darwin_arches" | $SED -e 's/.*are://'`
355 $show "$darwin_base_archive has multiple architectures $darwin_arches"
356 for darwin_arch
in $darwin_arches ; do
357 mkdir
-p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
358 lipo
-thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
359 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
360 func_extract_an_archive
"`pwd`" "${darwin_base_archive}"
362 $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
363 done # $darwin_arches
364 ## Okay now we have a bunch of thin objects, gotta fatten them up :)
365 darwin_filelist
=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
368 for darwin_file
in $darwin_filelist; do
369 darwin_files
=`find unfat-$$ -name $darwin_file -print | $NL2SP`
370 lipo
-create -output "$darwin_file" $darwin_files
371 done # $darwin_filelist
373 cd "$darwin_orig_dir"
375 cd "$darwin_orig_dir"
376 func_extract_an_archive
"$my_xdir" "$my_xabs"
381 func_extract_an_archive
"$my_xdir" "$my_xabs"
384 my_oldobjs
="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
386 func_extract_archives_result
="$my_oldobjs"
388 # End of Shell function definitions
389 #####################################
392 eval std_shrext
=\"$shrext_cmds\"
396 # Parse our command line options once, thoroughly.
397 while test "$#" -gt 0
403 -*=*) optarg
=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
407 # If the previous option needs an argument, assign it.
408 if test -n "$prev"; then
411 execute_dlfiles
="$execute_dlfiles $arg"
415 preserve_args
="${preserve_args}=$arg"
417 # Check whether tagname contains only valid characters
420 $echo "$progname: invalid tag name: $tagname" 1>&2
427 # Don't test for the "default" C tag, as we know, it's there, but
428 # not specially marked.
431 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev
/null
; then
432 taglist
="$taglist $tagname"
433 # Evaluate the configuration.
434 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
436 $echo "$progname: ignoring unknown tag $tagname" 1>&2
451 # Have we seen a non-optional argument yet?
458 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
460 $echo "Copyright (C) 2005 Free Software Foundation, Inc."
461 $echo "This is free software; see the source for copying conditions. There is NO"
462 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
467 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
468 # Now print the configurations for the tags.
469 for tagname
in $taglist; do
470 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
476 $echo "$progname: enabling shell trace mode"
478 preserve_args
="$preserve_args $arg"
487 if test "$build_libtool_libs" = yes; then
488 $echo "enable shared libraries"
490 $echo "disable shared libraries"
492 if test "$build_old_libs" = yes; then
493 $echo "enable static libraries"
495 $echo "disable static libraries"
500 --finish) mode
="finish" ;;
502 --mode) prevopt
="--mode" prev
=mode
;;
503 --mode=*) mode
="$optarg" ;;
505 --preserve-dup-deps) duplicate_deps
="yes" ;;
509 preserve_args
="$preserve_args $arg"
515 preserve_args
="$preserve_args --tag"
518 set tag
"$optarg" ${1+"$@"}
521 preserve_args
="$preserve_args --tag"
530 $echo "$modename: unrecognized option \`$arg'" 1>&2
542 if test -n "$prevopt"; then
543 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
548 case $disable_libs in
552 build_libtool_libs
=no
556 build_old_libs
=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
560 # If this variable is set in any of the actions, the command in it
561 # will be execed at the end. This prevents here-documents from being
562 # left over by shells.
565 if test -z "$show_help"; then
567 # Infer the operation mode.
568 if test -z "$mode"; then
569 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
570 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
572 *cc | cc
* |
*++ | gcc
* |
*-gcc* | g
++* | xlc
*)
584 *db |
*dbx |
*strace |
*truss
)
594 # If we have no mode, but dlfiles were specified, then do execute mode.
595 test -n "$execute_dlfiles" && mode
=execute
597 # Just use the default operation mode.
598 if test -z "$mode"; then
599 if test -n "$nonopt"; then
600 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
602 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
609 # Only execute mode is allowed to have -dlopen flags.
610 if test -n "$execute_dlfiles" && test "$mode" != execute
; then
611 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
616 # Change the help message to a mode-specific one.
618 help="Try \`$modename --help --mode=$mode' for more information."
620 # These modes are in order of execution frequency so that they run quickly.
622 # libtool compile mode
624 modename
="$modename: compile"
625 # Get the compilation command and the source file.
627 srcfile
="$nonopt" # always keep a non-empty value in "srcfile"
638 # do not "continue". Instead, add this to base_compile
650 # Accept any command-line options.
653 if test -n "$libobj" ; then
654 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
661 -static |
-prefer-pic |
-prefer-non-pic)
672 arg_mode
=arg
# the next one goes into the "base_compile" arg list
673 continue # The current "srcfile" will either be retained or
674 ;; # replaced later. I would guess that would be a bug.
677 args
=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
679 save_ifs
="$IFS"; IFS
=','
683 # Double-quote args containing other shell metacharacters.
684 # Many Bourne shells cannot handle close brackets correctly
685 # in scan sets, so we specify it separately.
687 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
691 lastarg
="$lastarg $arg"
694 lastarg
=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
696 # Add the arguments to base_compile.
697 base_compile
="$base_compile $lastarg"
702 # Accept the current argument as the source file.
703 # The previous "srcfile" becomes the current argument.
710 esac # case $arg_mode
712 # Aesthetically quote the previous argument.
713 lastarg
=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
716 # Double-quote args containing other shell metacharacters.
717 # Many Bourne shells cannot handle close brackets correctly
718 # in scan sets, and some SunOS ksh mistreat backslash-escaping
719 # in scan sets (worked around with variable expansion),
720 # and furthermore cannot handle '|' '&' '(' ')' in scan sets
721 # at all, so we specify them separately.
722 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
723 lastarg
="\"$lastarg\""
727 base_compile
="$base_compile $lastarg"
732 $echo "$modename: you must specify an argument for -Xcompile"
736 $echo "$modename: you must specify a target with \`-o'" 1>&2
740 # Get the name of the library object.
741 [ -z "$libobj" ] && libobj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
745 # Recognize several different file suffixes.
746 # If the user specifies -o file.o, it is replaced with file.lo
756 *.class
) xform
=class
;;
761 *.java
) xform
=java
;;
764 libobj
=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
767 *.lo
) obj
=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
769 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
774 func_infer_tag
$base_compile
776 for arg
in $later; do
795 qlibobj
=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
797 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
798 qlibobj
="\"$qlibobj\"" ;;
800 test "X$libobj" != "X$qlibobj" \
801 && $echo "X$libobj" |
grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
802 && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
803 objname
=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
804 xdir
=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
805 if test "X$xdir" = "X$obj"; then
810 lobj
=${xdir}$objdir/$objname
812 if test -z "$base_compile"; then
813 $echo "$modename: you must specify a compilation command" 1>&2
818 # Delete any leftover library objects.
819 if test "$build_old_libs" = yes; then
820 removelist
="$obj $lobj $libobj ${libobj}T"
822 removelist
="$lobj $libobj ${libobj}T"
826 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
828 # On Cygwin there's no "real" PIC flag so we must build both object types
830 cygwin
* | mingw
* | pw32
* | os2
*)
834 if test "$pic_mode" = no
&& test "$deplibs_check_method" != pass_all
; then
835 # non-PIC code in shared libraries is not supported
839 # Calculate the filename of the output object if compiler does
840 # not support -o with -c
841 if test "$compiler_c_o" = no
; then
842 output_obj
=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.
${objext}
843 lockfile
="$output_obj.lock"
844 removelist
="$removelist $output_obj $lockfile"
845 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
852 # Lock this critical section if it is needed
853 # We use this script file to make the link, it avoids creating a new file
854 if test "$need_locks" = yes; then
855 until $run ln "$progpath" "$lockfile" 2>/dev
/null
; do
856 $show "Waiting for $lockfile to be removed"
859 elif test "$need_locks" = warn
; then
860 if test -f "$lockfile"; then
862 *** ERROR, $lockfile exists and contains:
863 `cat $lockfile 2>/dev/null`
865 This indicates that another process is trying to use the same
866 temporary object file, and libtool could not work around it because
867 your compiler does not support \`-c' and \`-o' together. If you
868 repeat this compilation, it may succeed, by chance, but you had better
869 avoid parallel builds (make -j) in this platform, or get a better
875 $echo "$srcfile" > "$lockfile"
878 if test -n "$fix_srcfile_path"; then
879 eval srcfile
=\"$fix_srcfile_path\"
881 qsrcfile
=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
883 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
884 qsrcfile
="\"$qsrcfile\"" ;;
887 $run $rm "$libobj" "${libobj}T"
889 # Create a libtool object file (analogous to a ".la" file),
890 # but don't create it if we're doing a dry run.
891 test -z "$run" && cat > ${libobj}T
<<EOF
892 # $libobj - a libtool object file
893 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
895 # Please DO NOT delete this file!
896 # It is necessary for linking the library.
898 # Name of the PIC object.
901 # Only build a PIC object if we are building libtool libraries.
902 if test "$build_libtool_libs" = yes; then
903 # Without this assignment, base_compile gets emptied.
904 fbsd_hideous_sh_bug
=$base_compile
906 if test "$pic_mode" != no
; then
907 command="$base_compile $qsrcfile $pic_flag"
909 # Don't build PIC code
910 command="$base_compile $qsrcfile"
913 if test ! -d "${xdir}$objdir"; then
914 $show "$mkdir ${xdir}$objdir"
915 $run $mkdir ${xdir}$objdir
917 if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
922 if test -z "$output_obj"; then
923 # Place PIC objects in $objdir
924 command="$command -o $lobj"
927 $run $rm "$lobj" "$output_obj"
930 if $run eval "$command"; then :
932 test -n "$output_obj" && $run $rm $removelist
936 if test "$need_locks" = warn
&&
937 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
939 *** ERROR, $lockfile contains:
940 `cat $lockfile 2>/dev/null`
942 but it should contain:
945 This indicates that another process is trying to use the same
946 temporary object file, and libtool could not work around it because
947 your compiler does not support \`-c' and \`-o' together. If you
948 repeat this compilation, it may succeed, by chance, but you had better
949 avoid parallel builds (make -j) in this platform, or get a better
956 # Just move the object if needed, then go on to compile the next one
957 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
958 $show "$mv $output_obj $lobj"
959 if $run $mv $output_obj $lobj; then :
967 # Append the name of the PIC object to the libtool object file.
968 test -z "$run" && cat >> ${libobj}T
<<EOF
969 pic_object='$objdir/$objname'
973 # Allow error messages only from the first compilation.
974 if test "$suppress_opt" = yes; then
975 suppress_output
=' >/dev/null 2>&1'
978 # No PIC object so indicate it doesn't exist in the libtool
980 test -z "$run" && cat >> ${libobj}T
<<EOF
986 # Only build a position-dependent object if we build old libraries.
987 if test "$build_old_libs" = yes; then
988 if test "$pic_mode" != yes; then
989 # Don't build PIC code
990 command="$base_compile $qsrcfile"
992 command="$base_compile $qsrcfile $pic_flag"
994 if test "$compiler_c_o" = yes; then
995 command="$command -o $obj"
998 # Suppress compiler output if we already did a PIC compilation.
999 command="$command$suppress_output"
1000 $run $rm "$obj" "$output_obj"
1002 if $run eval "$command"; then :
1004 $run $rm $removelist
1008 if test "$need_locks" = warn
&&
1009 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1011 *** ERROR, $lockfile contains:
1012 `cat $lockfile 2>/dev/null`
1014 but it should contain:
1017 This indicates that another process is trying to use the same
1018 temporary object file, and libtool could not work around it because
1019 your compiler does not support \`-c' and \`-o' together. If you
1020 repeat this compilation, it may succeed, by chance, but you had better
1021 avoid parallel builds (make -j) in this platform, or get a better
1024 $run $rm $removelist
1028 # Just move the object if needed
1029 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1030 $show "$mv $output_obj $obj"
1031 if $run $mv $output_obj $obj; then :
1034 $run $rm $removelist
1039 # Append the name of the non-PIC object the libtool object file.
1040 # Only append if the libtool object file exists.
1041 test -z "$run" && cat >> ${libobj}T
<<EOF
1042 # Name of the non-PIC object.
1043 non_pic_object='$objname'
1047 # Append the name of the non-PIC object the libtool object file.
1048 # Only append if the libtool object file exists.
1049 test -z "$run" && cat >> ${libobj}T
<<EOF
1050 # Name of the non-PIC object.
1056 $run $mv "${libobj}T" "${libobj}"
1058 # Unlock the critical section if it was locked
1059 if test "$need_locks" != no
; then
1060 $run $rm "$lockfile"
1068 modename
="$modename: link"
1070 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1071 # It is impossible to link a dll without this setting, and
1072 # we shouldn't force the makefile maintainer to figure out
1073 # which system we are compiling for in order to pass an extra
1074 # flag for every libtool invocation.
1075 # allow_undefined=no
1077 # FIXME: Unfortunately, there are problems with the above when trying
1078 # to make a dll which has undefined symbols, in which case not
1079 # even a static library is built. For now, we need to specify
1080 # -no-undefined on the libtool link line when we can be certain
1081 # that all symbols are satisfied, otherwise we get a static library.
1088 libtool_args
="$nonopt"
1089 base_compile
="$nonopt $@"
1090 compile_command
="$nonopt"
1091 finalize_command
="$nonopt"
1104 lib_search_path
=`pwd`
1113 export_symbols_regex
=
1121 notinst_path
= # paths that contain not-installed libtool libraries
1122 precious_files_regex
=
1123 prefer_static_libs
=no
1136 func_infer_tag
$base_compile
1138 # We need to know -static, to get the right output filenames.
1142 -all-static |
-static)
1143 if test "X$arg" = "X-all-static"; then
1144 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1145 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1147 if test -n "$link_static_flag"; then
1148 dlopen_self
=$dlopen_self_static
1150 prefer_static_libs
=yes
1152 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1153 dlopen_self
=$dlopen_self_static
1155 prefer_static_libs
=built
1157 build_libtool_libs
=no
1164 # See if our shared archives depend on static archives.
1165 test -n "$old_archive_from_new_cmds" && build_old_libs
=yes
1167 # Go through the arguments, transforming them on the way.
1168 while test "$#" -gt 0; do
1172 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1173 qarg
=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1177 libtool_args
="$libtool_args $qarg"
1179 # If the previous option needs an argument, assign it.
1180 if test -n "$prev"; then
1183 compile_command
="$compile_command @OUTPUT@"
1184 finalize_command
="$finalize_command @OUTPUT@"
1190 if test "$preload" = no
; then
1191 # Add the symbol object into the linking commands.
1192 compile_command
="$compile_command @SYMFILE@"
1193 finalize_command
="$finalize_command @SYMFILE@"
1197 *.la |
*.lo
) ;; # We handle these cases below.
1199 if test "$dlself" = no
; then
1207 if test "$prev" = dlprefiles
; then
1209 elif test "$prev" = dlfiles
&& test "$dlopen_self" != yes; then
1219 if test "$prev" = dlfiles
; then
1220 dlfiles
="$dlfiles $arg"
1222 dlprefiles
="$dlprefiles $arg"
1230 export_symbols
="$arg"
1231 if test ! -f "$arg"; then
1232 $echo "$modename: symbol file \`$arg' does not exist"
1239 export_symbols_regex
="$arg"
1244 inst_prefix_dir
="$arg"
1249 precious_files_regex
="$arg"
1259 if test -f "$arg"; then
1262 for fil
in `cat $save_arg`
1264 # moreargs="$moreargs $fil"
1266 # A libtool-controlled object.
1268 # Check to see that this really is a libtool object.
1269 if (${SED} -e '2q' $arg |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1274 # If there is no directory component, then add one.
1276 */* |
*\\*) .
$arg ;;
1280 if test -z "$pic_object" || \
1281 test -z "$non_pic_object" ||
1282 test "$pic_object" = none
&& \
1283 test "$non_pic_object" = none
; then
1284 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1288 # Extract subdirectory from the argument.
1289 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1290 if test "X$xdir" = "X$arg"; then
1296 if test "$pic_object" != none
; then
1297 # Prepend the subdirectory the object is found in.
1298 pic_object
="$xdir$pic_object"
1300 if test "$prev" = dlfiles
; then
1301 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1302 dlfiles
="$dlfiles $pic_object"
1306 # If libtool objects are unsupported, then we need to preload.
1311 # CHECK ME: I think I busted this. -Ossama
1312 if test "$prev" = dlprefiles
; then
1313 # Preload the old-style object.
1314 dlprefiles
="$dlprefiles $pic_object"
1319 libobjs
="$libobjs $pic_object"
1324 if test "$non_pic_object" != none
; then
1325 # Prepend the subdirectory the object is found in.
1326 non_pic_object
="$xdir$non_pic_object"
1328 # A standard non-PIC object
1329 non_pic_objects
="$non_pic_objects $non_pic_object"
1330 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1331 arg
="$non_pic_object"
1334 # If the PIC object exists, use it instead.
1335 # $xdir was prepended to $pic_object above.
1336 non_pic_object
="$pic_object"
1337 non_pic_objects
="$non_pic_objects $non_pic_object"
1340 # Only an error if not doing a dry-run.
1341 if test -z "$run"; then
1342 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1347 # Extract subdirectory from the argument.
1348 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1349 if test "X$xdir" = "X$arg"; then
1355 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1356 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1357 libobjs
="$libobjs $pic_object"
1358 non_pic_objects
="$non_pic_objects $non_pic_object"
1363 $echo "$modename: link input file \`$save_arg' does not exist"
1371 # We need an absolute path.
1373 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1375 $echo "$modename: only absolute run-paths are allowed" 1>&2
1379 if test "$prev" = rpath
; then
1382 *) rpath
="$rpath $arg" ;;
1387 *) xrpath
="$xrpath $arg" ;;
1394 compiler_flags
="$compiler_flags $qarg"
1396 compile_command
="$compile_command $qarg"
1397 finalize_command
="$finalize_command $qarg"
1401 linker_flags
="$linker_flags $qarg"
1402 compiler_flags
="$compiler_flags $wl$qarg"
1404 compile_command
="$compile_command $wl$qarg"
1405 finalize_command
="$finalize_command $wl$qarg"
1409 linker_flags
="$linker_flags $qarg"
1410 compiler_flags
="$compiler_flags $qarg"
1412 compile_command
="$compile_command $qarg"
1413 finalize_command
="$finalize_command $qarg"
1421 darwin_framework|darwin_framework_skip
)
1422 test "$prev" = "darwin_framework" && compiler_flags
="$compiler_flags $arg"
1423 compile_command
="$compile_command $arg"
1424 finalize_command
="$finalize_command $arg"
1429 eval "$prev=\"\$arg\""
1434 fi # test -n "$prev"
1440 if test -n "$link_static_flag"; then
1441 compile_command
="$compile_command $link_static_flag"
1442 finalize_command
="$finalize_command $link_static_flag"
1448 # FIXME: remove this flag sometime in the future.
1449 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1473 -export-symbols |
-export-symbols-regex)
1474 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
1475 $echo "$modename: more than one -exported-symbols argument is not allowed"
1478 if test "X$arg" = "X-export-symbols"; then
1486 -framework|
-arch|
-isysroot)
1488 *" ${arg} ${1} "* | *" ${arg} ${1} "*)
1489 prev
=darwin_framework_skip
;;
1490 *) compiler_flags
="$compiler_flags $arg"
1491 prev
=darwin_framework
;;
1493 compile_command
="$compile_command $arg"
1494 finalize_command
="$finalize_command $arg"
1503 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1504 # so, if we see these flags be careful not to treat them like -L
1506 case $with_gcc/$host in
1507 no
/*-*-irix* |
/*-*-irix*)
1508 compile_command
="$compile_command $arg"
1509 finalize_command
="$finalize_command $arg"
1516 dir
=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1517 # We need an absolute path.
1519 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1521 absdir
=`cd "$dir" && pwd`
1522 if test -z "$absdir"; then
1523 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1525 notinst_path
="$notinst_path $dir"
1533 deplibs
="$deplibs -L$dir"
1534 lib_search_path
="$lib_search_path $dir"
1538 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1539 testbindir
=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1540 case :$dllsearchpath: in
1542 *) dllsearchpath
="$dllsearchpath:$dir";;
1544 case :$dllsearchpath: in
1545 *":$testbindir:"*) ;;
1546 *) dllsearchpath
="$dllsearchpath:$testbindir";;
1554 if test "X$arg" = "X-lc" ||
test "X$arg" = "X-lm"; then
1556 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-beos*)
1557 # These systems don't actually have a C or math library (as such)
1561 # These systems don't actually have a C library (as such)
1562 test "X$arg" = "X-lc" && continue
1564 *-*-openbsd* |
*-*-freebsd* |
*-*-dragonfly*)
1565 # Do not include libc due to us having libc/libc_r.
1566 test "X$arg" = "X-lc" && continue
1568 *-*-rhapsody* |
*-*-darwin1.
[012])
1569 # Rhapsody C and math libraries are in the System framework
1570 deplibs
="$deplibs -framework System"
1573 *-*-sco3.2v5
* |
*-*-sco5v6*)
1574 # Causes problems with __ctype
1575 test "X$arg" = "X-lc" && continue
1577 *-*-sysv4.2uw2
* |
*-*-sysv5* |
*-*-unixware* |
*-*-OpenUNIX*)
1578 # Compiler inserts libc in the correct place for threads to work
1579 test "X$arg" = "X-lc" && continue
1582 elif test "X$arg" = "X-lc_r"; then
1584 *-*-openbsd* |
*-*-freebsd* |
*-*-dragonfly*)
1585 # Do not include libc_r directly, use -pthread flag.
1590 deplibs
="$deplibs $arg"
1594 # Tru64 UNIX uses -model [arg] to determine the layout of C++
1595 # classes, name mangling, and exception handling.
1597 compile_command
="$compile_command $arg"
1598 compiler_flags
="$compiler_flags $arg"
1599 finalize_command
="$finalize_command $arg"
1604 -mt|
-mthreads|
-kthread|
-Kthread|
-pthread|
-pthreads|
--thread-safe)
1605 compiler_flags
="$compiler_flags $arg"
1606 compile_command
="$compile_command $arg"
1607 finalize_command
="$finalize_command $arg"
1616 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1617 # -r[0-9][0-9]* specifies the processor on the SGI compiler
1618 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1619 # +DA*, +DD* enable 64-bit mode on the HP compiler
1620 # -q* pass through compiler args for the IBM compiler
1621 # -m* pass through architecture-specific compiler args for GCC
1622 # -m*, -t[45]*, -txscale* pass through architecture-specific
1623 # compiler args for GCC
1624 # -pg pass through profiling flag for GCC
1625 # @file GCC response files
1626 -64|
-mips[0-9]|
-r[0-9][0-9]*|
-xarch=*|
-xtarget=*|
+DA
*|
+DD
*|
-q*|
-m*|
-pg| \
1627 -t[45]*|
-txscale*|@
*)
1629 # Unknown arguments in both finalize_command and compile_command need
1630 # to be aesthetically quoted because they are evaled later.
1631 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1633 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1637 compile_command
="$compile_command $arg"
1638 finalize_command
="$finalize_command $arg"
1639 compiler_flags
="$compiler_flags $arg"
1655 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
1656 # The PATH hackery in wrapper scripts is required on Windows
1657 # in order for the loader to find any dlls it needs.
1658 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1659 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1662 *) no_install
=yes ;;
1679 -precious-files-regex)
1700 dir
=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1701 # We need an absolute path.
1703 [\\/]* |
[A-Za-z
]:[\\/]*) ;;
1705 $echo "$modename: only absolute run-paths are allowed" 1>&2
1711 *) xrpath
="$xrpath $dir" ;;
1717 # The effects of -static are defined in a previous loop.
1718 # We used to do the same as -all-static on platforms that
1719 # didn't have a PIC flag, but the assumption that the effects
1720 # would be equivalent was wrong. It would break on at least
1721 # Digital Unix and AIX.
1741 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1743 save_ifs
="$IFS"; IFS
=','
1744 for flag
in $args; do
1747 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1752 compiler_flags
="$compiler_flags $flag"
1755 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1759 args
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1761 save_ifs
="$IFS"; IFS
=','
1762 for flag
in $args; do
1765 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1770 compiler_flags
="$compiler_flags $wl$flag"
1771 linker_flags
="$linker_flags $flag"
1774 arg
=`$echo "X$arg" | $Xsed -e "s/^ //"`
1792 # Some other compiler flag.
1794 # Unknown arguments in both finalize_command and compile_command need
1795 # to be aesthetically quoted because they are evaled later.
1796 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1798 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1805 # A standard object.
1810 # A libtool-controlled object.
1812 # Check to see that this really is a libtool object.
1813 if (${SED} -e '2q' $arg |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
1818 # If there is no directory component, then add one.
1820 */* |
*\\*) .
$arg ;;
1824 if test -z "$pic_object" || \
1825 test -z "$non_pic_object" ||
1826 test "$pic_object" = none
&& \
1827 test "$non_pic_object" = none
; then
1828 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1832 # Extract subdirectory from the argument.
1833 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1834 if test "X$xdir" = "X$arg"; then
1840 if test "$pic_object" != none
; then
1841 # Prepend the subdirectory the object is found in.
1842 pic_object
="$xdir$pic_object"
1844 if test "$prev" = dlfiles
; then
1845 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1846 dlfiles
="$dlfiles $pic_object"
1850 # If libtool objects are unsupported, then we need to preload.
1855 # CHECK ME: I think I busted this. -Ossama
1856 if test "$prev" = dlprefiles
; then
1857 # Preload the old-style object.
1858 dlprefiles
="$dlprefiles $pic_object"
1863 libobjs
="$libobjs $pic_object"
1868 if test "$non_pic_object" != none
; then
1869 # Prepend the subdirectory the object is found in.
1870 non_pic_object
="$xdir$non_pic_object"
1872 # A standard non-PIC object
1873 non_pic_objects
="$non_pic_objects $non_pic_object"
1874 if test -z "$pic_object" ||
test "$pic_object" = none
; then
1875 arg
="$non_pic_object"
1878 # If the PIC object exists, use it instead.
1879 # $xdir was prepended to $pic_object above.
1880 non_pic_object
="$pic_object"
1881 non_pic_objects
="$non_pic_objects $non_pic_object"
1884 # Only an error if not doing a dry-run.
1885 if test -z "$run"; then
1886 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1891 # Extract subdirectory from the argument.
1892 xdir
=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1893 if test "X$xdir" = "X$arg"; then
1899 pic_object
=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1900 non_pic_object
=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1901 libobjs
="$libobjs $pic_object"
1902 non_pic_objects
="$non_pic_objects $non_pic_object"
1909 deplibs
="$deplibs $arg"
1910 old_deplibs
="$old_deplibs $arg"
1915 # A libtool-controlled library.
1917 if test "$prev" = dlfiles
; then
1918 # This library was specified with -dlopen.
1919 dlfiles
="$dlfiles $arg"
1921 elif test "$prev" = dlprefiles
; then
1922 # The library was specified with -dlpreopen.
1923 dlprefiles
="$dlprefiles $arg"
1926 deplibs
="$deplibs $arg"
1931 # Some other compiler argument.
1933 # Unknown arguments in both finalize_command and compile_command need
1934 # to be aesthetically quoted because they are evaled later.
1935 arg
=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1937 *[\
[\~\
#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1944 # Now actually substitute the argument into the commands.
1945 if test -n "$arg"; then
1946 compile_command
="$compile_command $arg"
1947 finalize_command
="$finalize_command $arg"
1949 done # argument parsing loop
1951 if test -n "$prev"; then
1952 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1957 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1958 eval arg
=\"$export_dynamic_flag_spec\"
1959 compile_command
="$compile_command $arg"
1960 finalize_command
="$finalize_command $arg"
1964 # calculate the name of the file, without its directory
1965 outputname
=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1966 libobjs_save
="$libobjs"
1968 if test -n "$shlibpath_var"; then
1969 # get the directories listed in $shlibpath_var
1970 eval shlib_search_path
=\
`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1974 eval sys_lib_search_path
=\"$sys_lib_search_path_spec\"
1975 eval sys_lib_dlsearch_path
=\"$sys_lib_dlsearch_path_spec\"
1977 output_objdir
=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1978 if test "X$output_objdir" = "X$output"; then
1979 output_objdir
="$objdir"
1981 output_objdir
="$output_objdir/$objdir"
1983 # Create the object directory.
1984 if test ! -d "$output_objdir"; then
1985 $show "$mkdir $output_objdir"
1986 $run $mkdir $output_objdir
1988 if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1993 # Determine the type of output
1996 $echo "$modename: you must specify an output file" 1>&2
2000 *.
$libext) linkmode
=oldlib
;;
2001 *.lo |
*.
$objext) linkmode
=obj
;;
2002 *.la
) linkmode
=lib
;;
2003 *) linkmode
=prog
;; # Anything else should be a program.
2007 *cygwin
* |
*mingw
* |
*pw32
*)
2008 # don't eliminate duplications in $postdeps and $predeps
2009 duplicate_compiler_generated_deps
=yes
2012 duplicate_compiler_generated_deps
=$duplicate_deps
2018 # Find all interdependent deplibs by searching for libraries
2019 # that are linked more than once (e.g. -la -lb -la)
2020 for deplib
in $deplibs; do
2021 if test "X$duplicate_deps" = "Xyes" ; then
2023 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2026 libs
="$libs $deplib"
2029 if test "$linkmode" = lib
; then
2030 libs
="$predeps $libs $compiler_lib_search_path $postdeps"
2032 # Compute libraries that are listed more than once in $predeps
2033 # $postdeps and mark them as special (i.e., whose duplicates are
2034 # not to be eliminated).
2036 if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2037 for pre_post_dep
in $predeps $postdeps; do
2038 case "$pre_post_deps " in
2039 *" $pre_post_dep "*) specialdeplibs
="$specialdeplibs $pre_post_deps" ;;
2041 pre_post_deps
="$pre_post_deps $pre_post_dep"
2050 need_relink
=no
# whether we're linking any uninstalled libtool libraries
2051 notinst_deplibs
= # not-installed libtool libraries
2055 for file in $dlfiles $dlprefiles; do
2059 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2071 passes
="conv scan dlopen dlpreopen link"
2076 for pass
in $passes; do
2077 if test "$linkmode,$pass" = "lib,link" ||
2078 test "$linkmode,$pass" = "prog,scan"; then
2082 if test "$linkmode" = prog
; then
2084 dlopen
) libs
="$dlfiles" ;;
2085 dlpreopen
) libs
="$dlprefiles" ;;
2086 link
) libs
="$deplibs %DEPLIBS% $dependency_libs" ;;
2089 if test "$pass" = dlopen
; then
2090 # Collect dlpreopened libraries
2091 save_deplibs
="$deplibs"
2094 for deplib
in $libs; do
2098 -mt|
-mthreads|
-kthread|
-Kthread|
-pthread|
-pthreads|
--thread-safe)
2099 if test "$linkmode,$pass" = "prog,link"; then
2100 compile_deplibs
="$deplib $compile_deplibs"
2101 finalize_deplibs
="$deplib $finalize_deplibs"
2103 compiler_flags
="$compiler_flags $deplib"
2108 if test "$linkmode" != lib
&& test "$linkmode" != prog
; then
2109 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2112 name
=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2113 for searchdir
in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2114 for search_ext
in .la
$std_shrext .so .a
; do
2115 # Search the libtool library
2116 lib
="$searchdir/lib${name}${search_ext}"
2117 if test -f "$lib"; then
2118 if test "$search_ext" = ".la"; then
2127 if test "$found" != yes; then
2128 # deplib doesn't seem to be a libtool library
2129 if test "$linkmode,$pass" = "prog,link"; then
2130 compile_deplibs
="$deplib $compile_deplibs"
2131 finalize_deplibs
="$deplib $finalize_deplibs"
2133 deplibs
="$deplib $deplibs"
2134 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
2137 else # deplib is a libtool library
2138 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2139 # We need to do some special things here, and not later.
2140 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2141 case " $predeps $postdeps " in
2143 if (${SED} -e '2q' $lib |
2144 grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
2148 */* |
*\\*) .
$lib ;;
2151 for l
in $old_library $library_names; do
2154 if test "X$ll" = "X$old_library" ; then # only static version available
2156 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2157 test "X$ladir" = "X$lib" && ladir
="."
2158 lib
=$ladir/$old_library
2159 if test "$linkmode,$pass" = "prog,link"; then
2160 compile_deplibs
="$deplib $compile_deplibs"
2161 finalize_deplibs
="$deplib $finalize_deplibs"
2163 deplibs
="$deplib $deplibs"
2164 test "$linkmode" = lib
&& newdependency_libs
="$deplib $newdependency_libs"
2178 deplibs
="$deplib $deplibs"
2179 test "$pass" = conv
&& continue
2180 newdependency_libs
="$deplib $newdependency_libs"
2181 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2184 if test "$pass" = conv
; then
2185 deplibs
="$deplib $deplibs"
2188 if test "$pass" = scan
; then
2189 deplibs
="$deplib $deplibs"
2191 compile_deplibs
="$deplib $compile_deplibs"
2192 finalize_deplibs
="$deplib $finalize_deplibs"
2194 newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2197 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2203 if test "$pass" = link
; then
2204 dir
=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2205 # Make sure the xrpath contains only unique directories.
2208 *) xrpath
="$xrpath $dir" ;;
2211 deplibs
="$deplib $deplibs"
2214 *.la
) lib
="$deplib" ;;
2216 if test "$pass" = conv
; then
2217 deplibs
="$deplib $deplibs"
2223 case $deplibs_check_method in
2225 set dummy
$deplibs_check_method
2226 match_pattern_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2227 if eval $echo \"$deplib\" 2>/dev
/null \
2229 |
$EGREP "$match_pattern_regex" > /dev
/null
; then
2237 if test "$valid_a_lib" != yes; then
2239 $echo "*** Warning: Trying to link with static lib archive $deplib."
2240 $echo "*** I have the capability to make that library automatically link in when"
2241 $echo "*** you link to this library. But I can only do this if you have a"
2242 $echo "*** shared version of the library, which you do not appear to have"
2243 $echo "*** because the file extensions .$libext of this argument makes me believe"
2244 $echo "*** that it is just a static archive that I should not used here."
2247 $echo "*** Warning: Linking the shared library $output against the"
2248 $echo "*** static library $deplib is not portable!"
2249 deplibs
="$deplib $deplibs"
2254 if test "$pass" != link
; then
2255 deplibs
="$deplib $deplibs"
2257 compile_deplibs
="$deplib $compile_deplibs"
2258 finalize_deplibs
="$deplib $finalize_deplibs"
2265 if test "$pass" = conv
; then
2266 deplibs
="$deplib $deplibs"
2267 elif test "$linkmode" = prog
; then
2268 if test "$pass" = dlpreopen ||
test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no
; then
2269 # If there is no dlopen support or we're linking statically,
2270 # we need to preload.
2271 newdlprefiles
="$newdlprefiles $deplib"
2272 compile_deplibs
="$deplib $compile_deplibs"
2273 finalize_deplibs
="$deplib $finalize_deplibs"
2275 newdlfiles
="$newdlfiles $deplib"
2285 if test "$found" = yes ||
test -f "$lib"; then :
2287 $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2291 # Check to see that this really is a libtool archive.
2292 if (${SED} -e '2q' $lib |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
2294 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2298 ladir
=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2299 test "X$ladir" = "X$lib" && ladir
="."
2307 # If the library was installed with an old release of libtool,
2308 # it will not redefine variables installed, or shouldnotlink
2316 */* |
*\\*) .
$lib ;;
2320 if test "$linkmode,$pass" = "lib,link" ||
2321 test "$linkmode,$pass" = "prog,scan" ||
2322 { test "$linkmode" != prog
&& test "$linkmode" != lib
; }; then
2323 test -n "$dlopen" && dlfiles
="$dlfiles $dlopen"
2324 test -n "$dlpreopen" && dlprefiles
="$dlprefiles $dlpreopen"
2327 if test "$pass" = conv
; then
2328 # Only check for convenience libraries
2329 deplibs
="$lib $deplibs"
2330 if test -z "$libdir"; then
2331 if test -z "$old_library"; then
2332 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2335 # It is a libtool convenience library, so add in its objects.
2336 convenience
="$convenience $ladir/$objdir/$old_library"
2337 old_convenience
="$old_convenience $ladir/$objdir/$old_library"
2339 for deplib
in $dependency_libs; do
2340 deplibs
="$deplib $deplibs"
2341 if test "X$duplicate_deps" = "Xyes" ; then
2342 case "$tmp_libs " in
2343 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2346 tmp_libs
="$tmp_libs $deplib"
2348 elif test "$linkmode" != prog
&& test "$linkmode" != lib
; then
2349 $echo "$modename: \`$lib' is not a convenience library" 1>&2
2356 # Get the name of the library we link against.
2358 for l
in $old_library $library_names; do
2361 if test -z "$linklib"; then
2362 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2366 # This library was specified with -dlopen.
2367 if test "$pass" = dlopen
; then
2368 if test -z "$libdir"; then
2369 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2372 if test -z "$dlname" ||
2373 test "$dlopen_support" != yes ||
2374 test "$build_libtool_libs" = no
; then
2375 # If there is no dlname, no dlopen support or we're linking
2376 # statically, we need to preload. We also need to preload any
2377 # dependent libraries so libltdl's deplib preloader doesn't
2378 # bomb out in the load deplibs phase.
2379 dlprefiles
="$dlprefiles $lib $dependency_libs"
2381 newdlfiles
="$newdlfiles $lib"
2386 # We need an absolute path.
2388 [\\/]* |
[A-Za-z
]:[\\/]*) abs_ladir
="$ladir" ;;
2390 abs_ladir
=`cd "$ladir" && pwd`
2391 if test -z "$abs_ladir"; then
2392 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2393 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2398 laname
=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2400 # Find the relevant object directory and library name.
2401 if test "X$installed" = Xyes
; then
2402 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2403 $echo "$modename: warning: library \`$lib' was moved." 1>&2
2411 test "X$hardcode_automatic" = Xyes
&& avoidtemprpath
=yes
2413 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2416 # Remove this search path later
2417 notinst_path
="$notinst_path $abs_ladir"
2419 dir
="$ladir/$objdir"
2420 absdir
="$abs_ladir/$objdir"
2421 # Remove this search path later
2422 notinst_path
="$notinst_path $abs_ladir"
2424 fi # $installed = yes
2425 name
=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2427 # This library was specified with -dlpreopen.
2428 if test "$pass" = dlpreopen
; then
2429 if test -z "$libdir"; then
2430 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2433 # Prefer using a static library (so that no silly _DYNAMIC symbols
2434 # are required to link).
2435 if test -n "$old_library"; then
2436 newdlprefiles
="$newdlprefiles $dir/$old_library"
2437 # Otherwise, use the dlname, so that lt_dlopen finds it.
2438 elif test -n "$dlname"; then
2439 newdlprefiles
="$newdlprefiles $dir/$dlname"
2441 newdlprefiles
="$newdlprefiles $dir/$linklib"
2443 fi # $pass = dlpreopen
2445 if test -z "$libdir"; then
2446 # Link the convenience library
2447 if test "$linkmode" = lib
; then
2448 deplibs
="$dir/$old_library $deplibs"
2449 elif test "$linkmode,$pass" = "prog,link"; then
2450 compile_deplibs
="$dir/$old_library $compile_deplibs"
2451 finalize_deplibs
="$dir/$old_library $finalize_deplibs"
2453 deplibs
="$lib $deplibs" # used for prog,scan pass
2459 if test "$linkmode" = prog
&& test "$pass" != link
; then
2460 newlib_search_path
="$newlib_search_path $ladir"
2461 deplibs
="$lib $deplibs"
2464 if test "$link_all_deplibs" != no ||
test -z "$library_names" ||
2465 test "$build_libtool_libs" = no
; then
2470 for deplib
in $dependency_libs; do
2472 -L*) newlib_search_path
="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2474 # Need to link against all dependency_libs?
2475 if test "$linkalldeplibs" = yes; then
2476 deplibs
="$deplib $deplibs"
2478 # Need to hardcode shared library paths
2479 # or/and link against static libraries
2480 newdependency_libs
="$deplib $newdependency_libs"
2482 if test "X$duplicate_deps" = "Xyes" ; then
2483 case "$tmp_libs " in
2484 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2487 tmp_libs
="$tmp_libs $deplib"
2490 fi # $linkmode = prog...
2492 if test "$linkmode,$pass" = "prog,link"; then
2493 if test -n "$library_names" &&
2494 { test "$prefer_static_libs" = no ||
test -z "$old_library"; }; then
2495 # We need to hardcode the library path
2496 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2497 # Make sure the rpath contains only unique directories.
2498 case "$temp_rpath " in
2501 *) temp_rpath
="$temp_rpath $absdir" ;;
2505 # Hardcode the library path.
2506 # Skip directories that are in the system default run-time
2508 case " $sys_lib_dlsearch_path " in
2511 case "$compile_rpath " in
2513 *) compile_rpath
="$compile_rpath $absdir"
2517 case " $sys_lib_dlsearch_path " in
2520 case "$finalize_rpath " in
2522 *) finalize_rpath
="$finalize_rpath $libdir"
2526 fi # $linkmode,$pass = prog,link...
2528 if test "$alldeplibs" = yes &&
2529 { test "$deplibs_check_method" = pass_all ||
2530 { test "$build_libtool_libs" = yes &&
2531 test -n "$library_names"; }; }; then
2532 # We only need to search for static libraries
2537 link_static
=no
# Whether the deplib will be linked statically
2538 use_static_libs
=$prefer_static_libs
2539 if test "$use_static_libs" = built
&& test "$installed" = yes ; then
2542 if test -n "$library_names" &&
2543 { test "$use_static_libs" = no ||
test -z "$old_library"; }; then
2544 if test "$installed" = no
; then
2545 notinst_deplibs
="$notinst_deplibs $lib"
2548 # This is a shared library
2550 # Warn about portability, can't link against -module's on
2551 # some systems (darwin)
2552 if test "$shouldnotlink" = yes && test "$pass" = link
; then
2554 if test "$linkmode" = prog
; then
2555 $echo "*** Warning: Linking the executable $output against the loadable module"
2557 $echo "*** Warning: Linking the shared library $output against the loadable module"
2559 $echo "*** $linklib is not portable!"
2561 if test "$linkmode" = lib
&&
2562 test "$hardcode_into_libs" = yes; then
2563 # Hardcode the library path.
2564 # Skip directories that are in the system default run-time
2566 case " $sys_lib_dlsearch_path " in
2569 case "$compile_rpath " in
2571 *) compile_rpath
="$compile_rpath $absdir"
2575 case " $sys_lib_dlsearch_path " in
2578 case "$finalize_rpath " in
2580 *) finalize_rpath
="$finalize_rpath $libdir"
2586 if test -n "$old_archive_from_expsyms_cmds"; then
2587 # figure out the soname
2588 set dummy
$library_names
2591 libname
=`eval \\$echo \"$libname_spec\"`
2592 # use dlname if we got it. it's perfectly good, no?
2593 if test -n "$dlname"; then
2595 elif test -n "$soname_spec"; then
2599 major
=`expr $current - $age`
2603 eval soname
=\"$soname_spec\"
2608 # Make a new name for the extract_expsyms_cmds to use
2610 soname
=`$echo $soroot | ${SED} -e 's/^.*\///'`
2611 newlib
="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2613 # If the library has no export list, then create one now
2614 if test -f "$output_objdir/$soname-def"; then :
2616 $show "extracting exported symbol list from \`$soname'"
2617 save_ifs
="$IFS"; IFS
='~'
2618 cmds
=$extract_expsyms_cmds
2619 for cmd
in $cmds; do
2623 $run eval "$cmd" ||
exit $?
2629 if test -f "$output_objdir/$newlib"; then :; else
2630 $show "generating import library for \`$soname'"
2631 save_ifs
="$IFS"; IFS
='~'
2632 cmds
=$old_archive_from_expsyms_cmds
2633 for cmd
in $cmds; do
2637 $run eval "$cmd" ||
exit $?
2641 # make sure the library variables are pointing to the new library
2644 fi # test -n "$old_archive_from_expsyms_cmds"
2646 if test "$linkmode" = prog ||
test "$mode" != relink
; then
2651 case $hardcode_action in
2652 immediate | unsupported
)
2653 if test "$hardcode_direct" = no
; then
2656 *-*-sco3.2v5.0.
[024]*) add_dir
="-L$dir" ;;
2657 *-*-sysv4*uw2
*) add_dir
="-L$dir" ;;
2658 *-*-sysv5OpenUNIX* |
*-*-sysv5UnixWare7.
[01].
[10]* | \
2659 *-*-unixware7*) add_dir
="-L$dir" ;;
2661 # if the lib is a module then we can not link against
2662 # it, someone is ignoring the new warnings I added
2663 if /usr
/bin
/file -L $add 2> /dev
/null |
2664 $EGREP ": [^:]* bundle" >/dev
/null
; then
2665 $echo "** Warning, lib $linklib is a module, not a shared library"
2666 if test -z "$old_library" ; then
2668 $echo "** And there doesn't seem to be a static archive available"
2669 $echo "** The link will probably fail, sorry"
2671 add
="$dir/$old_library"
2675 elif test "$hardcode_minus_L" = no
; then
2677 *-*-sunos*) add_shlibpath
="$dir" ;;
2681 elif test "$hardcode_shlibpath_var" = no
; then
2682 add_shlibpath
="$dir"
2689 if test "$hardcode_direct" = yes; then
2691 elif test "$hardcode_minus_L" = yes; then
2693 # Try looking first in the location we're being installed to.
2694 if test -n "$inst_prefix_dir"; then
2697 add_dir
="$add_dir -L$inst_prefix_dir$libdir"
2702 elif test "$hardcode_shlibpath_var" = yes; then
2703 add_shlibpath
="$dir"
2712 if test "$lib_linked" != yes; then
2713 $echo "$modename: configuration error: unsupported hardcode properties"
2717 if test -n "$add_shlibpath"; then
2718 case :$compile_shlibpath: in
2719 *":$add_shlibpath:"*) ;;
2720 *) compile_shlibpath
="$compile_shlibpath$add_shlibpath:" ;;
2723 if test "$linkmode" = prog
; then
2724 test -n "$add_dir" && compile_deplibs
="$add_dir $compile_deplibs"
2725 test -n "$add" && compile_deplibs
="$add $compile_deplibs"
2727 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2728 test -n "$add" && deplibs
="$add $deplibs"
2729 if test "$hardcode_direct" != yes && \
2730 test "$hardcode_minus_L" != yes && \
2731 test "$hardcode_shlibpath_var" = yes; then
2732 case :$finalize_shlibpath: in
2734 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2740 if test "$linkmode" = prog ||
test "$mode" = relink
; then
2744 # Finalize command for both is simple: just hardcode it.
2745 if test "$hardcode_direct" = yes; then
2746 add
="$libdir/$linklib"
2747 elif test "$hardcode_minus_L" = yes; then
2750 elif test "$hardcode_shlibpath_var" = yes; then
2751 case :$finalize_shlibpath: in
2753 *) finalize_shlibpath
="$finalize_shlibpath$libdir:" ;;
2756 elif test "$hardcode_automatic" = yes; then
2757 if test -n "$inst_prefix_dir" &&
2758 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2759 add
="$inst_prefix_dir$libdir/$linklib"
2761 add
="$libdir/$linklib"
2764 # We cannot seem to hardcode it, guess we'll fake it.
2766 # Try looking first in the location we're being installed to.
2767 if test -n "$inst_prefix_dir"; then
2770 add_dir
="$add_dir -L$inst_prefix_dir$libdir"
2777 if test "$linkmode" = prog
; then
2778 test -n "$add_dir" && finalize_deplibs
="$add_dir $finalize_deplibs"
2779 test -n "$add" && finalize_deplibs
="$add $finalize_deplibs"
2781 test -n "$add_dir" && deplibs
="$add_dir $deplibs"
2782 test -n "$add" && deplibs
="$add $deplibs"
2785 elif test "$linkmode" = prog
; then
2786 # Here we assume that one of hardcode_direct or hardcode_minus_L
2787 # is not unsupported. This is valid on all known static and
2789 if test "$hardcode_direct" != unsupported
; then
2790 test -n "$old_library" && linklib
="$old_library"
2791 compile_deplibs
="$dir/$linklib $compile_deplibs"
2792 finalize_deplibs
="$dir/$linklib $finalize_deplibs"
2794 compile_deplibs
="-l$name -L$dir $compile_deplibs"
2795 finalize_deplibs
="-l$name -L$dir $finalize_deplibs"
2797 elif test "$build_libtool_libs" = yes; then
2798 # Not a shared library
2799 if test "$deplibs_check_method" != pass_all
; then
2800 # We're trying link a shared library against a static one
2801 # but the system doesn't support it.
2803 # Just print a warning and add the library to dependency_libs so
2804 # that the program can be linked against the static library.
2806 $echo "*** Warning: This system can not link to static lib archive $lib."
2807 $echo "*** I have the capability to make that library automatically link in when"
2808 $echo "*** you link to this library. But I can only do this if you have a"
2809 $echo "*** shared version of the library, which you do not appear to have."
2810 if test "$module" = yes; then
2811 $echo "*** But as you try to build a module library, libtool will still create "
2812 $echo "*** a static module, that should work as long as the dlopening application"
2813 $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2814 if test -z "$global_symbol_pipe"; then
2816 $echo "*** However, this would only work if libtool was able to extract symbol"
2817 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2818 $echo "*** not find such a program. So, this module is probably useless."
2819 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2821 if test "$build_old_libs" = no
; then
2822 build_libtool_libs
=module
2825 build_libtool_libs
=no
2829 deplibs
="$dir/$old_library $deplibs"
2832 fi # link shared/static library?
2834 if test "$linkmode" = lib
; then
2835 if test -n "$dependency_libs" &&
2836 { test "$hardcode_into_libs" != yes ||
2837 test "$build_old_libs" = yes ||
2838 test "$link_static" = yes; }; then
2839 # Extract -R from dependency_libs
2841 for libdir
in $dependency_libs; do
2843 -R*) temp_xrpath
=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2845 *" $temp_xrpath "*) ;;
2846 *) xrpath
="$xrpath $temp_xrpath";;
2848 *) temp_deplibs
="$temp_deplibs $libdir";;
2851 dependency_libs
="$temp_deplibs"
2854 newlib_search_path
="$newlib_search_path $absdir"
2855 # Link against this library
2856 test "$link_static" = no
&& newdependency_libs
="$abs_ladir/$laname $newdependency_libs"
2857 # ... and its dependency_libs
2859 for deplib
in $dependency_libs; do
2860 newdependency_libs
="$deplib $newdependency_libs"
2861 if test "X$duplicate_deps" = "Xyes" ; then
2862 case "$tmp_libs " in
2863 *" $deplib "*) specialdeplibs
="$specialdeplibs $deplib" ;;
2866 tmp_libs
="$tmp_libs $deplib"
2869 if test "$link_all_deplibs" != no
; then
2870 # Add the search paths of all dependency libraries
2871 for deplib
in $dependency_libs; do
2873 -L*) path
="$deplib" ;;
2875 dir
=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2876 test "X$dir" = "X$deplib" && dir
="."
2877 # We need an absolute path.
2879 [\\/]* |
[A-Za-z
]:[\\/]*) absdir
="$dir" ;;
2881 absdir
=`cd "$dir" && pwd`
2882 if test -z "$absdir"; then
2883 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2888 if grep "^installed=no" $deplib > /dev
/null
; then
2889 path
="$absdir/$objdir"
2891 eval libdir
=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2892 if test -z "$libdir"; then
2893 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2896 if test "$absdir" != "$libdir"; then
2897 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2904 # we do not want to link against static libs,
2905 # but need to link against shared
2906 eval deplibrary_names
=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2907 if test -n "$deplibrary_names" ; then
2908 for tmp
in $deplibrary_names ; do
2911 if test -f "$path/$depdepl" ; then
2912 depdepl
="$path/$depdepl"
2914 # do not add paths which are already there
2915 case " $newlib_search_path " in
2917 *) newlib_search_path
="$newlib_search_path $path";;
2930 # Again, we only want to link against shared libraries
2931 eval tmp_libs
=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2932 for tmp
in $newlib_search_path ; do
2933 if test -f "$tmp/lib$tmp_libs.dylib" ; then
2934 eval depdepl
="$tmp/lib$tmp_libs.dylib"
2945 case " $deplibs " in
2947 *) deplibs
="$path $deplibs" ;;
2949 case " $deplibs " in
2951 *) deplibs
="$depdepl $deplibs" ;;
2954 fi # link_all_deplibs != no
2956 done # for deplib in $libs
2957 dependency_libs
="$newdependency_libs"
2958 if test "$pass" = dlpreopen
; then
2959 # Link the dlpreopened libraries before other libraries
2960 for deplib
in $save_deplibs; do
2961 deplibs
="$deplib $deplibs"
2964 if test "$pass" != dlopen
; then
2965 if test "$pass" != conv
; then
2966 # Make sure lib_search_path contains only unique directories.
2968 for dir
in $newlib_search_path; do
2969 case "$lib_search_path " in
2971 *) lib_search_path
="$lib_search_path $dir" ;;
2977 if test "$linkmode,$pass" != "prog,link"; then
2980 vars
="compile_deplibs finalize_deplibs"
2982 for var
in $vars dependency_libs
; do
2983 # Add libraries to $var in reverse order
2984 eval tmp_libs
=\"\$
$var\"
2986 for deplib
in $tmp_libs; do
2987 # FIXME: Pedantically, this is the right thing to do, so
2988 # that some nasty dependency loop isn't accidentally
2990 #new_libs="$deplib $new_libs"
2991 # Pragmatically, this seems to cause very few problems in
2994 -L*) new_libs
="$deplib $new_libs" ;;
2997 # And here is the reason: when a library appears more
2998 # than once as an explicit dependence of a library, or
2999 # is implicitly linked in more than once by the
3000 # compiler, it is considered special, and multiple
3001 # occurrences thereof are not removed. Compare this
3002 # with having the same library being listed as a
3003 # dependency of multiple other libraries: in this case,
3004 # we know (pedantically, we assume) the library does not
3005 # need to be listed more than once, so we keep only the
3006 # last copy. This is not always right, but it is rare
3007 # enough that we require users that really mean to play
3008 # such unportable linking tricks to link the library
3009 # using -Wl,-lname, so that libtool does not consider it
3010 # for duplicate removal.
3011 case " $specialdeplibs " in
3012 *" $deplib "*) new_libs
="$deplib $new_libs" ;;
3014 case " $new_libs " in
3016 *) new_libs
="$deplib $new_libs" ;;
3024 for deplib
in $new_libs; do
3027 case " $tmp_libs " in
3029 *) tmp_libs
="$tmp_libs $deplib" ;;
3032 *) tmp_libs
="$tmp_libs $deplib" ;;
3035 eval $var=\"$tmp_libs\"
3038 # Last step: remove runtime libs from dependency_libs
3039 # (they stay in deplibs)
3041 for i
in $dependency_libs ; do
3042 case " $predeps $postdeps $compiler_lib_search_path " in
3047 if test -n "$i" ; then
3048 tmp_libs
="$tmp_libs $i"
3051 dependency_libs
=$tmp_libs
3053 if test "$linkmode" = prog
; then
3054 dlfiles
="$newdlfiles"
3055 dlprefiles
="$newdlprefiles"
3060 if test -n "$deplibs"; then
3061 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3064 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
3065 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3068 if test -n "$rpath"; then
3069 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3072 if test -n "$xrpath"; then
3073 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3076 if test -n "$vinfo"; then
3077 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3080 if test -n "$release"; then
3081 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3084 if test -n "$export_symbols" ||
test -n "$export_symbols_regex"; then
3085 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3088 # Now set the variables for building old libraries.
3089 build_libtool_libs
=no
3091 objs
="$objs$old_deplibs"
3095 # Make sure we only generate libraries of the form `libNAME.la'.
3098 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3099 eval shared_ext
=\"$shrext_cmds\"
3100 eval libname
=\"$libname_spec\"
3103 if test "$module" = no
; then
3104 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3108 if test "$need_lib_prefix" != no
; then
3109 # Add the "lib" prefix for modules if required
3110 name
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3111 eval shared_ext
=\"$shrext_cmds\"
3112 eval libname
=\"$libname_spec\"
3114 libname
=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3119 if test -n "$objs"; then
3120 if test "$deplibs_check_method" != pass_all
; then
3121 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3125 $echo "*** Warning: Linking the shared library $output against the non-libtool"
3126 $echo "*** objects $objs is not portable!"
3127 libobjs
="$libobjs $objs"
3131 if test "$dlself" != no
; then
3132 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3136 if test "$#" -gt 2; then
3137 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3142 if test -z "$rpath"; then
3143 if test "$build_libtool_libs" = yes; then
3144 # Building a libtool convenience library.
3145 # Some compilers have problems with a `.al' extension so
3146 # convenience libraries should have the same extension an
3147 # archive normally would.
3148 oldlibs
="$output_objdir/$libname.$libext $oldlibs"
3149 build_libtool_libs
=convenience
3153 if test -n "$vinfo"; then
3154 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3157 if test -n "$release"; then
3158 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3162 # Parse the version information argument.
3163 save_ifs
="$IFS"; IFS
=':'
3164 set dummy
$vinfo 0 0 0
3167 if test -n "$8"; then
3168 $echo "$modename: too many parameters to \`-version-info'" 1>&2
3173 # convert absolute version numbers to libtool ages
3174 # this retains compatibility with .la files and attempts
3175 # to make the code below a bit more comprehensible
3177 case $vinfo_number in
3181 number_revision
="$4"
3183 # There are really only two kinds -- those that
3184 # use the current revision as the major version
3185 # and those that subtract age and use age as
3186 # a minor version. But, then there is irix
3187 # which has an extra 1 added just for fun
3189 case $version_type in
3190 darwin|linux|osf|windows
)
3191 current
=`expr $number_major + $number_minor`
3193 revision
="$number_revision"
3195 freebsd-aout|freebsd-elf|sunos
)
3196 current
="$number_major"
3197 revision
="$number_minor"
3201 current
=`expr $number_major + $number_minor - 1`
3203 revision
="$number_minor"
3214 # Check that each of the things are valid numbers.
3216 0|
[1-9]|
[1-9][0-9]|
[1-9][0-9][0-9]|
[1-9][0-9][0-9][0-9]|
[1-9][0-9][0-9][0-9][0-9]) ;;
3218 $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3219 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3225 0|
[1-9]|
[1-9][0-9]|
[1-9][0-9][0-9]|
[1-9][0-9][0-9][0-9]|
[1-9][0-9][0-9][0-9][0-9]) ;;
3227 $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3228 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3234 0|
[1-9]|
[1-9][0-9]|
[1-9][0-9][0-9]|
[1-9][0-9][0-9][0-9]|
[1-9][0-9][0-9][0-9][0-9]) ;;
3236 $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3237 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3242 if test "$age" -gt "$current"; then
3243 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3244 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3248 # Calculate the version variables.
3252 case $version_type in
3256 # Like Linux, but with the current version available in
3257 # verstring for coding it into the library header
3258 major
=.
`expr $current - $age`
3259 versuffix
="$major.$age.$revision"
3260 # Darwin ld doesn't like 0 for these options...
3261 minor_current
=`expr $current + 1`
3262 verstring
="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3267 versuffix
=".$current.$revision";
3272 versuffix
=".$current";
3276 major
=`expr $current - $age + 1`
3278 case $version_type in
3279 nonstopux
) verstring_prefix
=nonstopux
;;
3280 *) verstring_prefix
=sgi
;;
3282 verstring
="$verstring_prefix$major.$revision"
3284 # Add in all the interfaces that we are compatible with.
3286 while test "$loop" -ne 0; do
3287 iface
=`expr $revision - $loop`
3288 loop
=`expr $loop - 1`
3289 verstring
="$verstring_prefix$major.$iface:$verstring"
3292 # Before this point, $major must not contain `.'.
3294 versuffix
="$major.$revision"
3298 major
=.
`expr $current - $age`
3299 versuffix
="$major.$age.$revision"
3303 major
=.
`expr $current - $age`
3304 versuffix
=".$current.$age.$revision"
3305 verstring
="$current.$age.$revision"
3307 # Add in all the interfaces that we are compatible with.
3309 while test "$loop" -ne 0; do
3310 iface
=`expr $current - $loop`
3311 loop
=`expr $loop - 1`
3312 verstring
="$verstring:${iface}.0"
3315 # Make executables depend on our current version.
3316 verstring
="$verstring:${current}.0"
3321 versuffix
=".$current.$revision"
3325 # Use '-' rather than '.', since we only want one
3326 # extension on DOS 8.3 filesystems.
3327 major
=`expr $current - $age`
3332 $echo "$modename: unknown library version type \`$version_type'" 1>&2
3333 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3338 # Clear the version info if we defaulted, and they specified a release.
3339 if test -z "$vinfo" && test -n "$release"; then
3341 case $version_type in
3343 # we can't check for "0.0" in archive_cmds due to quoting
3344 # problems, so we reset it completely
3351 if test "$need_version" = no
; then
3358 # Remove version info from name if versioning should be avoided
3359 if test "$avoid_version" = yes && test "$need_version" = no
; then
3365 # Check to see if the archive will have undefined symbols.
3366 if test "$allow_undefined" = yes; then
3367 if test "$allow_undefined_flag" = unsupported
; then
3368 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3369 build_libtool_libs
=no
3373 # Don't allow undefined symbols.
3374 allow_undefined_flag
="$no_undefined_flag"
3378 if test "$mode" != relink
; then
3379 # Remove our outputs, but don't remove object files since they
3380 # may have been created when compiling PIC objects.
3382 tempremovelist
=`$echo "$output_objdir/*"`
3383 for p
in $tempremovelist; do
3387 $output_objdir/$outputname |
$output_objdir/$libname.
* |
$output_objdir/${libname}${release}.
*)
3388 if test "X$precious_files_regex" != "X"; then
3389 if echo $p |
$EGREP -e "$precious_files_regex" >/dev
/null
2>&1
3394 removelist
="$removelist $p"
3399 if test -n "$removelist"; then
3400 $show "${rm}r $removelist"
3401 $run ${rm}r
$removelist
3405 # Now set the variables for building old libraries.
3406 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience
; then
3407 oldlibs
="$oldlibs $output_objdir/$libname.$libext"
3409 # Transform .lo files to .o files.
3410 oldobjs
="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3413 # Eliminate all temporary directories.
3414 for path
in $notinst_path; do
3415 lib_search_path
=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3416 deplibs
=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3417 dependency_libs
=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3420 if test -n "$xrpath"; then
3421 # If the user specified any rpath flags, then add them.
3423 for libdir
in $xrpath; do
3424 temp_xrpath
="$temp_xrpath -R$libdir"
3425 case "$finalize_rpath " in
3427 *) finalize_rpath
="$finalize_rpath $libdir" ;;
3430 if test "$hardcode_into_libs" != yes ||
test "$build_old_libs" = yes; then
3431 dependency_libs
="$temp_xrpath $dependency_libs"
3435 # Make sure dlfiles contains only unique files that won't be dlpreopened
3436 old_dlfiles
="$dlfiles"
3438 for lib
in $old_dlfiles; do
3439 case " $dlprefiles $dlfiles " in
3441 *) dlfiles
="$dlfiles $lib" ;;
3445 # Make sure dlprefiles contains only unique files
3446 old_dlprefiles
="$dlprefiles"
3448 for lib
in $old_dlprefiles; do
3449 case "$dlprefiles " in
3451 *) dlprefiles
="$dlprefiles $lib" ;;
3455 if test "$build_libtool_libs" = yes; then
3456 if test -n "$rpath"; then
3458 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2* |
*-*-beos*)
3459 # these systems don't actually have a c library (as such)!
3461 *-*-rhapsody* |
*-*-darwin1.
[012])
3462 # Rhapsody C library is in the System framework
3463 deplibs
="$deplibs -framework System"
3466 # Don't link with libc until the a.out ld.so is fixed.
3468 *-*-openbsd* |
*-*-freebsd* |
*-*-dragonfly*)
3469 # Do not include libc due to us having libc/libc_r.
3471 *-*-sco3.2v5
* |
*-*-sco5v6*)
3472 # Causes problems with __ctype
3474 *-*-sysv4.2uw2
* |
*-*-sysv5* |
*-*-unixware* |
*-*-OpenUNIX*)
3475 # Compiler inserts libc in the correct place for threads to work
3478 # Add libc to deplibs on all other systems if necessary.
3479 if test "$build_libtool_need_lc" = "yes"; then
3480 deplibs
="$deplibs -lc"
3486 # Transform deplibs into only deplibs that can be linked in shared.
3488 libname_save
=$libname
3489 release_save
=$release
3490 versuffix_save
=$versuffix
3492 # I'm not sure if I'm treating the release correctly. I think
3493 # release should show up in the -l (ie -lgmp5) so we don't want to
3494 # add it in twice. Is that correct?
3500 case $deplibs_check_method in
3502 # Don't check for shared/static. Everything works.
3503 # This might be a little naive. We might want to check
3504 # whether the library exists or not. But this is on
3505 # osf3 & osf4 and I'm not really sure... Just
3506 # implementing what was already the behavior.
3510 # This code stresses the "libraries are programs" paradigm to its
3511 # limits. Maybe even breaks it. We compile a program, linking it
3512 # against the deplibs as a proxy for the library. Then we can check
3513 # whether they linked in statically or dynamically with ldd.
3515 cat > conftest.c
<<EOF
3516 int main() { return 0; }
3519 $LTCC $LTCFLAGS -o conftest conftest.c
$deplibs
3520 if test "$?" -eq 0 ; then
3521 ldd_output
=`ldd conftest`
3522 for i
in $deplibs; do
3523 name
=`expr $i : '-l\(.*\)'`
3524 # If $name is empty we are operating on a -L argument.
3525 if test "$name" != "" && test "$name" -ne "0"; then
3526 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3527 case " $predeps $postdeps " in
3529 newdeplibs
="$newdeplibs $i"
3534 if test -n "$i" ; then
3535 libname
=`eval \\$echo \"$libname_spec\"`
3536 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
3537 set dummy
$deplib_matches
3539 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3540 newdeplibs
="$newdeplibs $i"
3544 $echo "*** Warning: dynamic linker does not accept needed library $i."
3545 $echo "*** I have the capability to make that library automatically link in when"
3546 $echo "*** you link to this library. But I can only do this if you have a"
3547 $echo "*** shared version of the library, which I believe you do not have"
3548 $echo "*** because a test_compile did reveal that the linker did not use it for"
3549 $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3553 newdeplibs
="$newdeplibs $i"
3557 # Error occurred in the first compile. Let's try to salvage
3558 # the situation: Compile a separate program for each library.
3559 for i
in $deplibs; do
3560 name
=`expr $i : '-l\(.*\)'`
3561 # If $name is empty we are operating on a -L argument.
3562 if test "$name" != "" && test "$name" != "0"; then
3564 $LTCC $LTCFLAGS -o conftest conftest.c
$i
3566 if test "$?" -eq 0 ; then
3567 ldd_output
=`ldd conftest`
3568 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3569 case " $predeps $postdeps " in
3571 newdeplibs
="$newdeplibs $i"
3576 if test -n "$i" ; then
3577 libname
=`eval \\$echo \"$libname_spec\"`
3578 deplib_matches
=`eval \\$echo \"$library_names_spec\"`
3579 set dummy
$deplib_matches
3581 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3582 newdeplibs
="$newdeplibs $i"
3586 $echo "*** Warning: dynamic linker does not accept needed library $i."
3587 $echo "*** I have the capability to make that library automatically link in when"
3588 $echo "*** you link to this library. But I can only do this if you have a"
3589 $echo "*** shared version of the library, which you do not appear to have"
3590 $echo "*** because a test_compile did reveal that the linker did not use this one"
3591 $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3597 $echo "*** Warning! Library $i is needed by this library but I was not able to"
3598 $echo "*** make it link in! You will probably need to install it or some"
3599 $echo "*** library that it depends on before this library will be fully"
3600 $echo "*** functional. Installing it before continuing would be even better."
3603 newdeplibs
="$newdeplibs $i"
3609 set dummy
$deplibs_check_method
3610 file_magic_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3611 for a_deplib
in $deplibs; do
3612 name
=`expr $a_deplib : '-l\(.*\)'`
3613 # If $name is empty we are operating on a -L argument.
3614 if test "$name" != "" && test "$name" != "0"; then
3615 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3616 case " $predeps $postdeps " in
3618 newdeplibs
="$newdeplibs $a_deplib"
3623 if test -n "$a_deplib" ; then
3624 libname
=`eval \\$echo \"$libname_spec\"`
3625 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3626 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
3627 for potent_lib
in $potential_libs; do
3628 # Follow soft links.
3629 if ls -lLd "$potent_lib" 2>/dev
/null \
3630 |
grep " -> " >/dev
/null
; then
3633 # The statement above tries to avoid entering an
3634 # endless loop below, in case of cyclic links.
3635 # We might still enter an endless loop, since a link
3636 # loop can be closed while we follow links,
3638 potlib
="$potent_lib"
3639 while test -h "$potlib" 2>/dev
/null
; do
3640 potliblink
=`ls -ld $potlib | ${SED} 's/.* -> //'`
3642 [\\/]* |
[A-Za-z
]:[\\/]*) potlib
="$potliblink";;
3643 *) potlib
=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3646 if eval $file_magic_cmd \"\
$potlib\" 2>/dev
/null \
3648 |
$EGREP "$file_magic_regex" > /dev
/null
; then
3649 newdeplibs
="$newdeplibs $a_deplib"
3656 if test -n "$a_deplib" ; then
3659 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3660 $echo "*** I have the capability to make that library automatically link in when"
3661 $echo "*** you link to this library. But I can only do this if you have a"
3662 $echo "*** shared version of the library, which you do not appear to have"
3663 $echo "*** because I did check the linker path looking for a file starting"
3664 if test -z "$potlib" ; then
3665 $echo "*** with $libname but no candidates were found. (...for file magic test)"
3667 $echo "*** with $libname and none of the candidates passed a file format test"
3668 $echo "*** using a file magic. Last file checked: $potlib"
3672 # Add a -L argument.
3673 newdeplibs
="$newdeplibs $a_deplib"
3675 done # Gone through all deplibs.
3678 set dummy
$deplibs_check_method
3679 match_pattern_regex
=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3680 for a_deplib
in $deplibs; do
3681 name
=`expr $a_deplib : '-l\(.*\)'`
3682 # If $name is empty we are operating on a -L argument.
3683 if test -n "$name" && test "$name" != "0"; then
3684 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3685 case " $predeps $postdeps " in
3687 newdeplibs
="$newdeplibs $a_deplib"
3692 if test -n "$a_deplib" ; then
3693 libname
=`eval \\$echo \"$libname_spec\"`
3694 for i
in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3695 potential_libs
=`ls $i/$libname[.-]* 2>/dev/null`
3696 for potent_lib
in $potential_libs; do
3697 potlib
="$potent_lib" # see symlink-check above in file_magic test
3698 if eval $echo \"$potent_lib\" 2>/dev
/null \
3700 |
$EGREP "$match_pattern_regex" > /dev
/null
; then
3701 newdeplibs
="$newdeplibs $a_deplib"
3708 if test -n "$a_deplib" ; then
3711 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3712 $echo "*** I have the capability to make that library automatically link in when"
3713 $echo "*** you link to this library. But I can only do this if you have a"
3714 $echo "*** shared version of the library, which you do not appear to have"
3715 $echo "*** because I did check the linker path looking for a file starting"
3716 if test -z "$potlib" ; then
3717 $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3719 $echo "*** with $libname and none of the candidates passed a file format test"
3720 $echo "*** using a regex pattern. Last file checked: $potlib"
3724 # Add a -L argument.
3725 newdeplibs
="$newdeplibs $a_deplib"
3727 done # Gone through all deplibs.
3731 tmp_deplibs
=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3732 -e 's/ -[LR][^ ]*//g'`
3733 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3734 for i
in $predeps $postdeps ; do
3735 # can't use Xsed below, because $i might contain '/'
3736 tmp_deplibs
=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3739 if $echo "X $tmp_deplibs" |
$Xsed -e 's/[ ]//g' \
3740 |
grep .
>/dev
/null
; then
3742 if test "X$deplibs_check_method" = "Xnone"; then
3743 $echo "*** Warning: inter-library dependencies are not supported in this platform."
3745 $echo "*** Warning: inter-library dependencies are not known to be supported."
3747 $echo "*** All declared inter-library dependencies are being dropped."
3752 versuffix
=$versuffix_save
3754 release
=$release_save
3755 libname
=$libname_save
3759 *-*-rhapsody* |
*-*-darwin1.
[012])
3760 # On Rhapsody replace the C library is the System framework
3761 newdeplibs
=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3765 if test "$droppeddeps" = yes; then
3766 if test "$module" = yes; then
3768 $echo "*** Warning: libtool could not satisfy all declared inter-library"
3769 $echo "*** dependencies of module $libname. Therefore, libtool will create"
3770 $echo "*** a static module, that should work as long as the dlopening"
3771 $echo "*** application is linked with the -dlopen flag."
3772 if test -z "$global_symbol_pipe"; then
3774 $echo "*** However, this would only work if libtool was able to extract symbol"
3775 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3776 $echo "*** not find such a program. So, this module is probably useless."
3777 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3779 if test "$build_old_libs" = no
; then
3780 oldlibs
="$output_objdir/$libname.$libext"
3781 build_libtool_libs
=module
3784 build_libtool_libs
=no
3787 $echo "*** The inter-library dependencies that have been dropped here will be"
3788 $echo "*** automatically added whenever a program is linked with this library"
3789 $echo "*** or is declared to -dlopen it."
3791 if test "$allow_undefined" = no
; then
3793 $echo "*** Since this library must not contain undefined symbols,"
3794 $echo "*** because either the platform does not support them or"
3795 $echo "*** it was explicitly requested with -no-undefined,"
3796 $echo "*** libtool will only create a static version of it."
3797 if test "$build_old_libs" = no
; then
3798 oldlibs
="$output_objdir/$libname.$libext"
3799 build_libtool_libs
=module
3802 build_libtool_libs
=no
3807 # Done checking deplibs!
3812 # move library search paths that coincide with paths to not yet
3813 # installed libraries to the beginning of the library search list
3815 for path
in $notinst_path; do
3816 case " $new_libs " in
3817 *" -L$path/$objdir "*) ;;
3819 case " $deplibs " in
3820 *" -L$path/$objdir "*)
3821 new_libs
="$new_libs -L$path/$objdir" ;;
3826 for deplib
in $deplibs; do
3829 case " $new_libs " in
3831 *) new_libs
="$new_libs $deplib" ;;
3834 *) new_libs
="$new_libs $deplib" ;;
3840 # All the library-specific variables (install_libdir is set above).
3845 # Test again, we may have decided not to build it any more
3846 if test "$build_libtool_libs" = yes; then
3847 if test "$hardcode_into_libs" = yes; then
3848 # Hardcode the library paths
3851 rpath
="$finalize_rpath"
3852 test "$mode" != relink
&& rpath
="$compile_rpath$rpath"
3853 for libdir
in $rpath; do
3854 if test -n "$hardcode_libdir_flag_spec"; then
3855 if test -n "$hardcode_libdir_separator"; then
3856 if test -z "$hardcode_libdirs"; then
3857 hardcode_libdirs
="$libdir"
3859 # Just accumulate the unique libdirs.
3860 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3861 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3864 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3869 eval flag
=\"$hardcode_libdir_flag_spec\"
3870 dep_rpath
="$dep_rpath $flag"
3872 elif test -n "$runpath_var"; then
3873 case "$perm_rpath " in
3875 *) perm_rpath
="$perm_rpath $libdir" ;;
3879 # Substitute the hardcoded libdirs into the rpath.
3880 if test -n "$hardcode_libdir_separator" &&
3881 test -n "$hardcode_libdirs"; then
3882 libdir
="$hardcode_libdirs"
3883 if test -n "$hardcode_libdir_flag_spec_ld"; then
3884 eval dep_rpath
=\"$hardcode_libdir_flag_spec_ld\"
3886 eval dep_rpath
=\"$hardcode_libdir_flag_spec\"
3889 if test -n "$runpath_var" && test -n "$perm_rpath"; then
3890 # We should set the runpath_var.
3892 for dir
in $perm_rpath; do
3895 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3897 test -n "$dep_rpath" && deplibs
="$dep_rpath $deplibs"
3900 shlibpath
="$finalize_shlibpath"
3901 test "$mode" != relink
&& shlibpath
="$compile_shlibpath$shlibpath"
3902 if test -n "$shlibpath"; then
3903 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3906 # Get the real and link names of the library.
3907 eval shared_ext
=\"$shrext_cmds\"
3908 eval library_names
=\"$library_names_spec\"
3909 set dummy
$library_names
3913 if test -n "$soname_spec"; then
3914 eval soname
=\"$soname_spec\"
3918 if test -z "$dlname"; then
3922 lib
="$output_objdir/$realname"
3926 linknames
="$linknames $link"
3929 # Use standard objects if they are pic
3930 test -z "$pic_flag" && libobjs
=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3932 # Prepare the list of exported symbols
3933 if test -z "$export_symbols"; then
3934 if test "$always_export_symbols" = yes ||
test -n "$export_symbols_regex"; then
3935 $show "generating symbol list for \`$libname.la'"
3936 export_symbols
="$output_objdir/$libname.exp"
3937 $run $rm $export_symbols
3938 cmds
=$export_symbols_cmds
3939 save_ifs
="$IFS"; IFS
='~'
3940 for cmd
in $cmds; do
3943 if len
=`expr "X$cmd" : ".*"` &&
3944 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
3946 $run eval "$cmd" ||
exit $?
3947 skipped_export
=false
3949 # The command line is too long to execute in one step.
3950 $show "using reloadable object file for export list..."
3952 # Break out early, otherwise skipped_export may be
3953 # set to false by a later but shorter cmd.
3958 if test -n "$export_symbols_regex"; then
3959 $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3960 $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3961 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3962 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3967 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3968 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3972 for test_deplib
in $deplibs; do
3973 case " $convenience " in
3974 *" $test_deplib "*) ;;
3976 tmp_deplibs
="$tmp_deplibs $test_deplib"
3980 deplibs
="$tmp_deplibs"
3982 if test -n "$convenience"; then
3983 if test -n "$whole_archive_flag_spec"; then
3984 save_libobjs
=$libobjs
3985 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
3987 gentop
="$output_objdir/${outputname}x"
3988 generated
="$generated $gentop"
3990 func_extract_archives
$gentop $convenience
3991 libobjs
="$libobjs $func_extract_archives_result"
3995 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3996 eval flag
=\"$thread_safe_flag_spec\"
3997 linker_flags
="$linker_flags $flag"
4000 # Make a backup of the uninstalled library when relinking
4001 if test "$mode" = relink
; then
4002 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' ||
exit $?
4005 # Do each of the archive commands.
4006 if test "$module" = yes && test -n "$module_cmds" ; then
4007 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4008 eval test_cmds
=\"$module_expsym_cmds\"
4009 cmds
=$module_expsym_cmds
4011 eval test_cmds
=\"$module_cmds\"
4015 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4016 eval test_cmds
=\"$archive_expsym_cmds\"
4017 cmds
=$archive_expsym_cmds
4019 eval test_cmds
=\"$archive_cmds\"
4024 if test "X$skipped_export" != "X:" &&
4025 len
=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4026 test "$len" -le "$max_cmd_len" ||
test "$max_cmd_len" -le -1; then
4029 # The command line is too long to link in one step, link piecewise.
4030 $echo "creating reloadable object files..."
4032 # Save the value of $output and $libobjs because we want to
4033 # use them later. If we have whole_archive_flag_spec, we
4034 # want to use save_libobjs as it was before
4035 # whole_archive_flag_spec was expanded, because we can't
4036 # assume the linker understands whole_archive_flag_spec.
4037 # This may have to be revisited, in case too many
4038 # convenience libraries get linked in and end up exceeding
4040 if test -z "$convenience" ||
test -z "$whole_archive_flag_spec"; then
4041 save_libobjs
=$libobjs
4044 output_la
=`$echo "X$output" | $Xsed -e "$basename"`
4046 # Clear the reloadable object creation command queue and
4047 # initialize k to one.
4054 output
=$output_objdir/$output_la-${k}.
$objext
4055 # Loop over the list of objects to be linked.
4056 for obj
in $save_libobjs
4058 eval test_cmds
=\"$reload_cmds $objlist $last_robj\"
4059 if test "X$objlist" = X ||
4060 { len
=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4061 test "$len" -le "$max_cmd_len"; }; then
4062 objlist
="$objlist $obj"
4064 # The command $test_cmds is almost too long, add a
4065 # command to the queue.
4066 if test "$k" -eq 1 ; then
4067 # The first file doesn't have a previous command to add.
4068 eval concat_cmds
=\"$reload_cmds $objlist $last_robj\"
4070 # All subsequent reloadable object files will link in
4071 # the last one created.
4072 eval concat_cmds
=\"\
$concat_cmds~
$reload_cmds $objlist $last_robj\"
4074 last_robj
=$output_objdir/$output_la-${k}.
$objext
4076 output
=$output_objdir/$output_la-${k}.
$objext
4081 # Handle the remaining objects by creating one last
4082 # reloadable object file. All subsequent reloadable object
4083 # files will link in the last one created.
4084 test -z "$concat_cmds" || concat_cmds
=$concat_cmds~
4085 eval concat_cmds
=\"\
${concat_cmds}$reload_cmds $objlist $last_robj\"
4087 if ${skipped_export-false}; then
4088 $show "generating symbol list for \`$libname.la'"
4089 export_symbols
="$output_objdir/$libname.exp"
4090 $run $rm $export_symbols
4092 # Append the command to create the export file.
4093 eval concat_cmds
=\"\
$concat_cmds~
$export_symbols_cmds\"
4096 # Set up a command to remove the reloadable object files
4097 # after they are used.
4099 while test "$i" -lt "$k"
4102 delfiles
="$delfiles $output_objdir/$output_la-${i}.$objext"
4105 $echo "creating a temporary reloadable object file: $output"
4107 # Loop through the commands generated above and execute them.
4108 save_ifs
="$IFS"; IFS
='~'
4109 for cmd
in $concat_cmds; do
4112 $run eval "$cmd" ||
exit $?
4117 # Restore the value of output.
4120 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4121 eval libobjs
=\"\
$libobjs $whole_archive_flag_spec\"
4123 # Expand the library linking commands again to reset the
4124 # value of $libobjs for piecewise linking.
4126 # Do each of the archive commands.
4127 if test "$module" = yes && test -n "$module_cmds" ; then
4128 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4129 cmds
=$module_expsym_cmds
4134 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4135 cmds
=$archive_expsym_cmds
4141 # Append the command to remove the reloadable object files
4142 # to the just-reset $cmds.
4143 eval cmds
=\"\
$cmds~\
$rm $delfiles\"
4145 save_ifs
="$IFS"; IFS
='~'
4146 for cmd
in $cmds; do
4150 $run eval "$cmd" ||
{
4153 # Restore the uninstalled library and exit
4154 if test "$mode" = relink
; then
4155 $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4163 # Restore the uninstalled library and exit
4164 if test "$mode" = relink
; then
4165 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' ||
exit $?
4167 if test -n "$convenience"; then
4168 if test -z "$whole_archive_flag_spec"; then
4169 $show "${rm}r $gentop"
4170 $run ${rm}r
"$gentop"
4177 # Create links to the real library.
4178 for linkname
in $linknames; do
4179 if test "$realname" != "$linkname"; then
4180 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4181 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' ||
exit $?
4185 # If -module or -export-dynamic was specified, set the dlname.
4186 if test "$module" = yes ||
test "$export_dynamic" = yes; then
4187 # On all known operating systems, these are identical.
4194 if test -n "$deplibs"; then
4195 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4198 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
4199 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4202 if test -n "$rpath"; then
4203 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4206 if test -n "$xrpath"; then
4207 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4210 if test -n "$vinfo"; then
4211 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4214 if test -n "$release"; then
4215 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4220 if test -n "$objs$old_deplibs"; then
4221 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4225 obj
=`$echo "X$output" | $Xsed -e "$lo2o"`
4233 # Delete the old objects.
4234 $run $rm $obj $libobj
4236 # Objects from convenience libraries. This assumes
4237 # single-version convenience libraries. Whenever we create
4238 # different ones for PIC/non-PIC, this we'll have to duplicate
4242 # reload_cmds runs $LD directly, so let us get rid of
4243 # -Wl from whole_archive_flag_spec
4246 if test -n "$convenience"; then
4247 if test -n "$whole_archive_flag_spec"; then
4248 eval reload_conv_objs
=\"\
$reload_objs $whole_archive_flag_spec\"
4250 gentop
="$output_objdir/${obj}x"
4251 generated
="$generated $gentop"
4253 func_extract_archives
$gentop $convenience
4254 reload_conv_objs
="$reload_objs $func_extract_archives_result"
4258 # Create the old-style object.
4259 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
4263 save_ifs
="$IFS"; IFS
='~'
4264 for cmd
in $cmds; do
4268 $run eval "$cmd" ||
exit $?
4272 # Exit if we aren't doing a library object file.
4273 if test -z "$libobj"; then
4274 if test -n "$gentop"; then
4275 $show "${rm}r $gentop"
4282 if test "$build_libtool_libs" != yes; then
4283 if test -n "$gentop"; then
4284 $show "${rm}r $gentop"
4288 # Create an invalid libtool object if no PIC, so that we don't
4289 # accidentally link it into a program.
4290 # $show "echo timestamp > $libobj"
4291 # $run eval "echo timestamp > $libobj" || exit $?
4295 if test -n "$pic_flag" ||
test "$pic_mode" != default
; then
4296 # Only do commands if we really have different PIC objects.
4297 reload_objs
="$libobjs $reload_conv_objs"
4300 save_ifs
="$IFS"; IFS
='~'
4301 for cmd
in $cmds; do
4305 $run eval "$cmd" ||
exit $?
4310 if test -n "$gentop"; then
4311 $show "${rm}r $gentop"
4320 *cygwin
*) output
=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4322 if test -n "$vinfo"; then
4323 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4326 if test -n "$release"; then
4327 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4330 if test "$preload" = yes; then
4331 if test "$dlopen_support" = unknown
&& test "$dlopen_self" = unknown
&&
4332 test "$dlopen_self_static" = unknown
; then
4333 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4338 *-*-rhapsody* |
*-*-darwin1.
[012])
4339 # On Rhapsody replace the C library is the System framework
4340 compile_deplibs
=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4341 finalize_deplibs
=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4347 # Don't allow lazy linking, it breaks C++ global constructors
4348 if test "$tagname" = CXX
; then
4349 compile_command
="$compile_command ${wl}-bind_at_load"
4350 finalize_command
="$finalize_command ${wl}-bind_at_load"
4356 # move library search paths that coincide with paths to not yet
4357 # installed libraries to the beginning of the library search list
4359 for path
in $notinst_path; do
4360 case " $new_libs " in
4361 *" -L$path/$objdir "*) ;;
4363 case " $compile_deplibs " in
4364 *" -L$path/$objdir "*)
4365 new_libs
="$new_libs -L$path/$objdir" ;;
4370 for deplib
in $compile_deplibs; do
4373 case " $new_libs " in
4375 *) new_libs
="$new_libs $deplib" ;;
4378 *) new_libs
="$new_libs $deplib" ;;
4381 compile_deplibs
="$new_libs"
4384 compile_command
="$compile_command $compile_deplibs"
4385 finalize_command
="$finalize_command $finalize_deplibs"
4387 if test -n "$rpath$xrpath"; then
4388 # If the user specified any rpath flags, then add them.
4389 for libdir
in $rpath $xrpath; do
4390 # This is the magic to use -rpath.
4391 case "$finalize_rpath " in
4393 *) finalize_rpath
="$finalize_rpath $libdir" ;;
4398 # Now hardcode the library paths
4401 for libdir
in $compile_rpath $finalize_rpath; do
4402 if test -n "$hardcode_libdir_flag_spec"; then
4403 if test -n "$hardcode_libdir_separator"; then
4404 if test -z "$hardcode_libdirs"; then
4405 hardcode_libdirs
="$libdir"
4407 # Just accumulate the unique libdirs.
4408 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4409 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4412 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4417 eval flag
=\"$hardcode_libdir_flag_spec\"
4418 rpath
="$rpath $flag"
4420 elif test -n "$runpath_var"; then
4421 case "$perm_rpath " in
4423 *) perm_rpath
="$perm_rpath $libdir" ;;
4427 *-*-cygwin* |
*-*-mingw* |
*-*-pw32* |
*-*-os2*)
4428 testbindir
=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4429 case :$dllsearchpath: in
4431 *) dllsearchpath
="$dllsearchpath:$libdir";;
4433 case :$dllsearchpath: in
4434 *":$testbindir:"*) ;;
4435 *) dllsearchpath
="$dllsearchpath:$testbindir";;
4440 # Substitute the hardcoded libdirs into the rpath.
4441 if test -n "$hardcode_libdir_separator" &&
4442 test -n "$hardcode_libdirs"; then
4443 libdir
="$hardcode_libdirs"
4444 eval rpath
=\" $hardcode_libdir_flag_spec\"
4446 compile_rpath
="$rpath"
4450 for libdir
in $finalize_rpath; do
4451 if test -n "$hardcode_libdir_flag_spec"; then
4452 if test -n "$hardcode_libdir_separator"; then
4453 if test -z "$hardcode_libdirs"; then
4454 hardcode_libdirs
="$libdir"
4456 # Just accumulate the unique libdirs.
4457 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4458 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4461 hardcode_libdirs
="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4466 eval flag
=\"$hardcode_libdir_flag_spec\"
4467 rpath
="$rpath $flag"
4469 elif test -n "$runpath_var"; then
4470 case "$finalize_perm_rpath " in
4472 *) finalize_perm_rpath
="$finalize_perm_rpath $libdir" ;;
4476 # Substitute the hardcoded libdirs into the rpath.
4477 if test -n "$hardcode_libdir_separator" &&
4478 test -n "$hardcode_libdirs"; then
4479 libdir
="$hardcode_libdirs"
4480 eval rpath
=\" $hardcode_libdir_flag_spec\"
4482 finalize_rpath
="$rpath"
4484 if test -n "$libobjs" && test "$build_old_libs" = yes; then
4485 # Transform all the library objects into standard objects.
4486 compile_command
=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4487 finalize_command
=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4491 if test -n "$dlfiles$dlprefiles" ||
test "$dlself" != no
; then
4492 if test -n "$NM" && test -n "$global_symbol_pipe"; then
4493 dlsyms
="${outputname}S.c"
4495 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4499 if test -n "$dlsyms"; then
4503 # Discover the nlist of each of the dlfiles.
4504 nlist
="$output_objdir/${outputname}.nm"
4506 $show "$rm $nlist ${nlist}S ${nlist}T"
4507 $run $rm "$nlist" "${nlist}S" "${nlist}T"
4509 # Parse the name list into a source file.
4510 $show "creating $output_objdir/$dlsyms"
4512 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4513 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4514 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4520 /* Prevent the only kind of declaration conflicts we can make. */
4521 #define lt_preloaded_symbols some_other_symbol
4523 /* External symbol declarations for the compiler. */\
4526 if test "$dlself" = yes; then
4527 $show "generating symbol list for \`$output'"
4529 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4531 # Add our own program objects to the symbol list.
4532 progfiles
=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4533 for arg
in $progfiles; do
4534 $show "extracting global C symbols from \`$arg'"
4535 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4538 if test -n "$exclude_expsyms"; then
4539 $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4540 $run eval '$mv "$nlist"T "$nlist"'
4543 if test -n "$export_symbols_regex"; then
4544 $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4545 $run eval '$mv "$nlist"T "$nlist"'
4548 # Prepare the list of exported symbols
4549 if test -z "$export_symbols"; then
4550 export_symbols
="$output_objdir/$outputname.exp"
4551 $run $rm $export_symbols
4552 $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4554 *cygwin
* |
*mingw
* )
4555 $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4556 $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4560 $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4561 $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4562 $run eval 'mv "$nlist"T "$nlist"'
4564 *cygwin
* |
*mingw
* )
4565 $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4566 $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4572 for arg
in $dlprefiles; do
4573 $show "extracting global C symbols from \`$arg'"
4574 name
=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4575 $run eval '$echo ": $name " >> "$nlist"'
4576 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4579 if test -z "$run"; then
4580 # Make sure we have at least an empty file.
4581 test -f "$nlist" ||
: > "$nlist"
4583 if test -n "$exclude_expsyms"; then
4584 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4585 $mv "$nlist"T
"$nlist"
4588 # Try sorting and uniquifying the output.
4589 if grep -v "^: " < "$nlist" |
4590 if sort -k 3 </dev
/null
>/dev
/null
2>&1; then
4595 uniq > "$nlist"S
; then
4598 grep -v "^: " < "$nlist" > "$nlist"S
4601 if test -f "$nlist"S
; then
4602 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4604 $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4607 $echo >> "$output_objdir/$dlsyms" "\
4609 #undef lt_preloaded_symbols
4611 #if defined (__STDC__) && __STDC__
4612 # define lt_ptr void *
4614 # define lt_ptr char *
4618 /* The mapping between symbol names and symbols. */
4622 *cygwin
* |
*mingw
* )
4623 $echo >> "$output_objdir/$dlsyms" "\
4624 /* DATA imports from DLLs on WIN32 can't be const, because
4625 runtime relocations are performed -- see ld's documentation
4631 $echo >> "$output_objdir/$dlsyms" "\
4638 $echo >> "$output_objdir/$dlsyms" "\
4642 lt_preloaded_symbols[] =
4646 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4648 $echo >> "$output_objdir/$dlsyms" "\
4652 /* This works around a problem in FreeBSD linker */
4653 #ifdef FREEBSD_WORKAROUND
4654 static const void *lt_preloaded_setup() {
4655 return lt_preloaded_symbols;
4665 pic_flag_for_symtable
=
4667 # compiling the symbol table file with pic_flag works around
4668 # a FreeBSD bug that causes programs to crash when -lm is
4669 # linked before any other PIC object. But we must not use
4670 # pic_flag when linking with -static. The problem exists in
4671 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4672 *-*-freebsd2*|
*-*-freebsd3.0
*|
*-*-freebsdelf3.0
*)
4673 case "$compile_command " in
4675 *) pic_flag_for_symtable
=" $pic_flag -DFREEBSD_WORKAROUND";;
4678 case "$compile_command " in
4680 *) pic_flag_for_symtable
=" $pic_flag";;
4684 # Now compile the dynamic symbol file.
4685 $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4686 $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' ||
exit $?
4688 # Clean up the generated files.
4689 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4690 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4692 # Transform the symbol file into the correct name.
4694 *cygwin
* |
*mingw
* )
4695 if test -f "$output_objdir/${outputname}.def" ; then
4696 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4697 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4699 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4700 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4704 compile_command
=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4705 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4710 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4715 # We keep going just in case the user didn't refer to
4716 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
4717 # really was required.
4719 # Nullify the symbol file.
4720 compile_command
=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4721 finalize_command
=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4724 if test "$need_relink" = no ||
test "$build_libtool_libs" != yes; then
4725 # Replace the output file specification.
4726 compile_command
=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4727 link_command
="$compile_command$compile_rpath"
4729 # We have no uninstalled library dependencies, so finalize right now.
4730 $show "$link_command"
4731 $run eval "$link_command"
4734 # Delete the generated files.
4735 if test -n "$dlsyms"; then
4736 $show "$rm $output_objdir/${outputname}S.${objext}"
4737 $run $rm "$output_objdir/${outputname}S.${objext}"
4743 if test -n "$shlibpath_var"; then
4744 # We should set the shlibpath_var
4746 for dir
in $temp_rpath; do
4748 [\\/]* |
[A-Za-z
]:[\\/]*)
4753 # Relative path: add a thisdir entry.
4754 rpath
="$rpath\$thisdir/$dir:"
4761 if test -n "$compile_shlibpath$finalize_shlibpath"; then
4762 compile_command
="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4764 if test -n "$finalize_shlibpath"; then
4765 finalize_command
="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4770 if test -n "$runpath_var"; then
4771 if test -n "$perm_rpath"; then
4772 # We should set the runpath_var.
4774 for dir
in $perm_rpath; do
4777 compile_var
="$runpath_var=\"$rpath\$$runpath_var\" "
4779 if test -n "$finalize_perm_rpath"; then
4780 # We should set the runpath_var.
4782 for dir
in $finalize_perm_rpath; do
4785 finalize_var
="$runpath_var=\"$rpath\$$runpath_var\" "
4789 if test "$no_install" = yes; then
4790 # We don't need to create a wrapper script.
4791 link_command
="$compile_var$compile_command$compile_rpath"
4792 # Replace the output file specification.
4793 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4794 # Delete the old output file.
4796 # Link the executable and exit
4797 $show "$link_command"
4798 $run eval "$link_command" ||
exit $?
4802 if test "$hardcode_action" = relink
; then
4803 # Fast installation is not supported
4804 link_command
="$compile_var$compile_command$compile_rpath"
4805 relink_command
="$finalize_var$finalize_command$finalize_rpath"
4807 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4808 $echo "$modename: \`$output' will be relinked during installation" 1>&2
4810 if test "$fast_install" != no
; then
4811 link_command
="$finalize_var$compile_command$finalize_rpath"
4812 if test "$fast_install" = yes; then
4813 relink_command
=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4815 # fast_install is set to needless
4819 link_command
="$compile_var$compile_command$compile_rpath"
4820 relink_command
="$finalize_var$finalize_command$finalize_rpath"
4824 # Replace the output file specification.
4825 link_command
=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4827 # Delete the old output files.
4828 $run $rm $output $output_objdir/$outputname $output_objdir/lt-
$outputname
4830 $show "$link_command"
4831 $run eval "$link_command" ||
exit $?
4833 # Now create the wrapper script.
4834 $show "creating $output"
4836 # Quote the relink command for shipping.
4837 if test -n "$relink_command"; then
4838 # Preserve any variables that may affect compiler behavior
4839 for var
in $variables_saved_for_relink; do
4840 if eval test -z \"\
${$var+set}\"; then
4841 relink_command
="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4842 elif eval var_value
=\$
$var; test -z "$var_value"; then
4843 relink_command
="$var=; export $var; $relink_command"
4845 var_value
=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4846 relink_command
="$var=\"$var_value\"; export $var; $relink_command"
4849 relink_command
="(cd `pwd`; $relink_command)"
4850 relink_command
=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4853 # Quote $echo for shipping.
4854 if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4856 [\\/]* |
[A-Za-z
]:[\\/]*) qecho
="$SHELL $progpath --fallback-echo";;
4857 *) qecho
="$SHELL `pwd`/$progpath --fallback-echo";;
4859 qecho
=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4861 qecho
=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4864 # Only actually do things if our run command is non-null.
4865 if test -z "$run"; then
4866 # win32 will think the script is a binary if it has
4867 # a .exe suffix, so we strip it off here.
4869 *.exe
) output
=`$echo $output|${SED} 's,.exe$,,'` ;;
4871 # test for cygwin because mv fails w/o .exe extensions
4875 outputname
=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4879 *cygwin
* |
*mingw
* )
4880 output_name
=`basename $output`
4881 output_path
=`dirname $output`
4882 cwrappersource
="$output_path/$objdir/lt-$output_name.c"
4883 cwrapper
="$output_path/$output_name.exe"
4884 $rm $cwrappersource $cwrapper
4885 trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4887 cat > $cwrappersource <<EOF
4889 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4890 Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4892 The $output program cannot be directly executed until all the libtool
4893 libraries that it depends on are installed.
4895 This wrapper executable should never be moved out of the build directory.
4896 If it is, it will not operate correctly.
4898 Currently, it simply execs the wrapper *script* "/bin/sh $output",
4899 but could eventually absorb all of the scripts functionality and
4900 exec $objdir/$outputname directly.
4903 cat >> $cwrappersource<<"EOF"
4912 #include <sys/stat.h>
4914 #if defined(PATH_MAX)
4915 # define LT_PATHMAX PATH_MAX
4916 #elif defined(MAXPATHLEN)
4917 # define LT_PATHMAX MAXPATHLEN
4919 # define LT_PATHMAX 1024
4922 #ifndef DIR_SEPARATOR
4923 # define DIR_SEPARATOR '/'
4924 # define PATH_SEPARATOR ':'
4927 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4929 # define HAVE_DOS_BASED_FILE_SYSTEM
4930 # ifndef DIR_SEPARATOR_2
4931 # define DIR_SEPARATOR_2 '\\'
4933 # ifndef PATH_SEPARATOR_2
4934 # define PATH_SEPARATOR_2 ';'
4938 #ifndef DIR_SEPARATOR_2
4939 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4940 #else /* DIR_SEPARATOR_2 */
4941 # define IS_DIR_SEPARATOR(ch) \
4942 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4943 #endif /* DIR_SEPARATOR_2 */
4945 #ifndef PATH_SEPARATOR_2
4946 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4947 #else /* PATH_SEPARATOR_2 */
4948 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4949 #endif /* PATH_SEPARATOR_2 */
4951 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4952 #define XFREE(stale) do { \
4953 if (stale) { free ((void *) stale); stale = 0; } \
4956 /* -DDEBUG is fairly common in CFLAGS. */
4958 #if defined DEBUGWRAPPER
4959 # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4961 # define DEBUG(format, ...)
4964 const char *program_name = NULL;
4966 void * xmalloc (size_t num);
4967 char * xstrdup (const char *string);
4968 const char * base_name (const char *name);
4969 char * find_executable(const char *wrapper);
4970 int check_executable(const char *path);
4971 char * strendzap(char *str, const char *pat);
4972 void lt_fatal (const char *message, ...);
4975 main (int argc, char *argv[])
4980 program_name = (char *) xstrdup (base_name (argv[0]));
4981 DEBUG("(main) argv[0] : %s\n",argv[0]);
4982 DEBUG("(main) program_name : %s\n",program_name);
4983 newargz = XMALLOC(char *, argc+2);
4986 cat >> $cwrappersource <<EOF
4987 newargz[0] = (char *) xstrdup("$SHELL");
4990 cat >> $cwrappersource <<"EOF"
4991 newargz
[1] = find_executable
(argv
[0]);
4992 if (newargz
[1] == NULL
)
4993 lt_fatal
("Couldn't find %s", argv
[0]);
4994 DEBUG
("(main) found exe at : %s\n",newargz
[1]);
4995 /* we know the
script has the same name
, without the .exe
*/
4996 /* so
make sure newargz
[1] doesn
't end in .exe */
4997 strendzap(newargz[1],".exe");
4998 for (i = 1; i < argc; i++)
4999 newargz[i+1] = xstrdup(argv[i]);
5000 newargz[argc+1] = NULL;
5002 for (i=0; i<argc+1; i++)
5004 DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
5011 *cygwin* | *mingw* )
5012 cat >> $cwrappersource <<EOF
5013 execv("$SHELL",(char const **)newargz);
5017 cat >> $cwrappersource <<EOF
5018 execv("$SHELL",newargz);
5023 cat >> $cwrappersource <<"EOF"
5028 xmalloc (size_t num)
5030 void * p = (void *) malloc (num);
5032 lt_fatal ("Memory exhausted");
5038 xstrdup (const char *string)
5040 return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5045 base_name (const char *name)
5049 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5050 /* Skip over the disk name in MSDOS pathnames. */
5051 if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5055 for (base = name; *name; name++)
5056 if (IS_DIR_SEPARATOR (*name))
5062 check_executable(const char * path)
5066 DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5067 if ((!path) || (!*path))
5070 if ((stat (path, &st) >= 0) &&
5072 /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5073 #if defined (S_IXOTH)
5074 ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5076 #if defined (S_IXGRP)
5077 ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5079 ((st.st_mode & S_IXUSR) == S_IXUSR))
5086 /* Searches for the full path of the wrapper. Returns
5087 newly allocated full path name if found, NULL otherwise */
5089 find_executable (const char* wrapper)
5094 /* static buffer for getcwd */
5095 char tmp[LT_PATHMAX + 1];
5099 DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5101 if ((wrapper == NULL) || (*wrapper == '\
0'))
5104 /* Absolute path? */
5105 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5106 if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5108 concat_name = xstrdup (wrapper);
5109 if (check_executable(concat_name))
5116 if (IS_DIR_SEPARATOR (wrapper[0]))
5118 concat_name = xstrdup (wrapper);
5119 if (check_executable(concat_name))
5123 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5127 for (p = wrapper; *p; p++)
5135 /* no slashes; search PATH */
5136 const char* path = getenv ("PATH");
5139 for (p = path; *p; p = p_next)
5143 for (q = p; *q; q++)
5144 if (IS_PATH_SEPARATOR(*q))
5147 p_next = (*q == '\
0' ? q : q + 1);
5150 /* empty path: current directory */
5151 if (getcwd (tmp, LT_PATHMAX) == NULL)
5152 lt_fatal ("getcwd failed");
5153 tmp_len = strlen(tmp);
5154 concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5155 memcpy (concat_name, tmp, tmp_len);
5156 concat_name[tmp_len] = '/';
5157 strcpy (concat_name + tmp_len + 1, wrapper);
5161 concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5162 memcpy (concat_name, p, p_len);
5163 concat_name[p_len] = '/';
5164 strcpy (concat_name + p_len + 1, wrapper);
5166 if (check_executable(concat_name))
5171 /* not found in PATH; assume curdir */
5173 /* Relative path | not found in path: prepend cwd */
5174 if (getcwd (tmp, LT_PATHMAX) == NULL)
5175 lt_fatal ("getcwd failed");
5176 tmp_len = strlen(tmp);
5177 concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5178 memcpy (concat_name, tmp, tmp_len);
5179 concat_name[tmp_len] = '/';
5180 strcpy (concat_name + tmp_len + 1, wrapper);
5182 if (check_executable(concat_name))
5189 strendzap(char *str, const char *pat)
5193 assert(str != NULL);
5194 assert(pat != NULL);
5197 patlen = strlen(pat);
5201 str += len - patlen;
5202 if (strcmp(str, pat) == 0)
5209 lt_error_core (int exit_status, const char * mode,
5210 const char * message, va_list ap)
5212 fprintf (stderr, "%s: %s: ", program_name, mode);
5213 vfprintf (stderr, message, ap);
5214 fprintf (stderr, ".\n");
5216 if (exit_status >= 0)
5221 lt_fatal (const char *message, ...)
5224 va_start (ap, message);
5225 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5229 # we should really use a build-platform specific compiler
5230 # here, but OTOH, the wrappers (shell script and this C one)
5231 # are only useful if you want to execute the "real" binary.
5232 # Since the "real" binary is built for $host, then this
5233 # wrapper might as well be built for $host, too.
5234 $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5238 trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5243 # $output - temporary wrapper script for $objdir/$outputname
5244 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5246 # The $output program cannot be directly executed until all the libtool
5247 # libraries that it depends on are installed.
5249 # This wrapper script should never be moved out of the build directory.
5250 # If it is, it will not operate correctly.
5252 # Sed substitution that helps us do robust quoting. It backslashifies
5253 # metacharacters that are still active within double-quoted strings.
5254 Xsed='${SED} -e 1s
/^X
//'
5255 sed_quote_subst='$sed_quote_subst'
5257 # The HP-UX ksh and POSIX shell print the target directory to stdout
5259 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5261 relink_command=\"$relink_command\"
5263 # This environment variable determines our operation mode.
5264 if test \"\$libtool_install_magic\" = \"$magic\"; then
5265 # install mode needs the following variable:
5266 notinst_deplibs='$notinst_deplibs'
5268 # When we are sourced in execute mode, \$file and \$echo are already set.
5269 if test \"\$libtool_execute_magic\" != \"$magic\"; then
5272 # Make sure echo works.
5273 if test \"X\$1\" = X--no-reexec; then
5274 # Discard the --no-reexec flag, and continue.
5276 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X
\t'; then
5277 # Yippee, \$echo works!
5280 # Restart under the correct shell, and then maybe \$echo will work.
5281 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5287 # Find the directory that this script lives in.
5288 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's
%/[^
/]*$
%%'\`
5289 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5291 # Follow symbolic links until we get to the real thisdir.
5292 file=\`ls -ld \"\$file\" | ${SED} -n 's
/.
*-> //p
'\`
5293 while test -n \"\$file\"; do
5294 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's
%/[^
/]*\$
%%'\`
5296 # If there was a directory component, then change thisdir.
5297 if test \"x\$destdir\" != \"x\$file\"; then
5298 case \"\$destdir\" in
5299 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5300 *) thisdir=\"\$thisdir/\$destdir\" ;;
5304 file=\`\$echo \"X\$file\" | \$Xsed -e 's
%^.
*/%%'\`
5305 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's
/.
*-> //p
'\`
5308 # Try to get the absolute directory name.
5309 absdir=\`cd \"\$thisdir\" && pwd\`
5310 test -n \"\$absdir\" && thisdir=\"\$absdir\"
5313 if test "$fast_install" = yes; then
5315 program=lt-'$outputname'$exeext
5316 progdir=\"\$thisdir/$objdir\"
5318 if test ! -f \"\$progdir/\$program\" || \\
5319 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5320 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5322 file=\"\$\$-\$program\"
5324 if test ! -d \"\$progdir\"; then
5325 $mkdir \"\$progdir\"
5327 $rm \"\$progdir/\$file\"
5332 # relink executable if necessary
5333 if test -n \"\$relink_command\"; then
5334 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5336 $echo \"\$relink_command_output\" >&2
5337 $rm \"\$progdir/\$file\"
5342 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5343 { $rm \"\$progdir/\$program\";
5344 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5345 $rm \"\$progdir/\$file\"
5349 program='$outputname'
5350 progdir=\"\$thisdir/$objdir\"
5356 if test -f \"\$progdir/\$program\"; then"
5358 # Export our shlibpath_var if we have one.
5359 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5361 # Add our own library path to $shlibpath_var
5362 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5364 # Some systems cannot cope with colon-terminated $shlibpath_var
5365 # The second colon is a workaround for a bug in BeOS R4 sed
5366 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's
/::*\$
//'\`
5368 export $shlibpath_var
5372 # fixup the dll searchpath if we need to.
5373 if test -n "$dllsearchpath"; then
5375 # Add the dll search path components to the executable PATH
5376 PATH=$dllsearchpath:\$PATH
5381 if test \"\$libtool_execute_magic\" != \"$magic\"; then
5382 # Run the actual program with our arguments.
5385 # Backslashes separate directories on plain windows
5386 *-*-mingw | *-*-os2*)
5388 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5394 exec \"\$progdir/\$program\" \${1+\"\$@\"}
5399 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5403 # The program doesn't exist.
5404 \
$echo \"\
$0: error
: \\\
`\$progdir/\$program' does not exist\" 1>&2
5405 \$echo \"This script is just a wrapper for \$program.\" 1>&2
5406 $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5417 # See if we need to build an old-fashioned archive.
5418 for oldlib in $oldlibs; do
5420 if test "$build_libtool_libs" = convenience; then
5421 oldobjs="$libobjs_save"
5422 addlibs="$convenience"
5423 build_libtool_libs=no
5425 if test "$build_libtool_libs" = module; then
5426 oldobjs="$libobjs_save"
5427 build_libtool_libs=no
5429 oldobjs="$old_deplibs $non_pic_objects"
5431 addlibs="$old_convenience"
5434 if test -n "$addlibs"; then
5435 gentop="$output_objdir/${outputname}x"
5436 generated="$generated $gentop"
5438 func_extract_archives $gentop $addlibs
5439 oldobjs="$oldobjs $func_extract_archives_result"
5442 # Do each command in the archive commands.
5443 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5444 cmds=$old_archive_from_new_cmds
5446 # POSIX demands no paths to be encoded in archives. We have
5447 # to avoid creating archives with duplicate basenames if we
5448 # might have to extract them afterwards, e.g., when creating a
5449 # static archive out of a convenience library, or when linking
5450 # the entirety of a libtool archive into another (currently
5451 # not supported by libtool).
5452 if (for obj in $oldobjs
5454 $echo "X$obj" | $Xsed -e 's%^.*/%%'
5455 done | sort | sort -uc >/dev/null 2>&1); then
5458 $echo "copying selected object files to avoid basename conflicts..."
5460 if test -z "$gentop"; then
5461 gentop="$output_objdir/${outputname}x"
5462 generated="$generated $gentop"
5464 $show "${rm}r $gentop"
5465 $run ${rm}r "$gentop"
5466 $show "$mkdir $gentop"
5467 $run $mkdir "$gentop"
5469 if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5474 save_oldobjs=$oldobjs
5477 for obj in $save_oldobjs
5479 objbase=`$echo "X$obj" |
$Xsed -e 's%^.*/%%'`
5480 case " $oldobjs " in
5481 " ") oldobjs=$obj ;;
5484 # Make sure we don't pick an alternate name that also
5486 newobj=lt$counter-$objbase
5487 counter=`expr $counter + 1`
5488 case " $oldobjs " in
5489 *[\ /]"$newobj "*) ;;
5490 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
5493 $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5494 $run ln "$obj" "$gentop/$newobj" ||
5495 $run cp "$obj" "$gentop/$newobj"
5496 oldobjs="$oldobjs $gentop/$newobj"
5498 *) oldobjs="$oldobjs $obj" ;;
5503 eval cmds=\"$old_archive_cmds\"
5505 if len=`expr "X$cmds" : ".*"` &&
5506 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5507 cmds=$old_archive_cmds
5509 # the command line is too long to link in one step, link in parts
5510 $echo "using piecewise archive linking..."
5515 save_oldobjs=$oldobjs
5517 # Is there a better way of finding the last object in the list?
5518 for obj in $save_oldobjs
5522 for obj in $save_oldobjs
5524 oldobjs="$objlist $obj"
5525 objlist="$objlist $obj"
5526 eval test_cmds=\"$old_archive_cmds\"
5527 if len=`expr "X$test_cmds" : ".*" 2>/dev
/null
` &&
5528 test "$len" -le "$max_cmd_len"; then
5531 # the above command should be used before it gets too long
5533 if test "$obj" = "$last_oldobj" ; then
5536 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5537 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5543 if test "X$oldobjs" = "X" ; then
5544 eval cmds=\"\$concat_cmds\"
5546 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5550 save_ifs="$IFS"; IFS='~'
5551 for cmd in $cmds; do
5555 $run eval "$cmd" || exit $?
5560 if test -n "$generated"; then
5561 $show "${rm}r$generated"
5562 $run ${rm}r$generated
5565 # Now create the libtool archive.
5569 test "$build_old_libs" = yes && old_library="$libname.$libext"
5570 $show "creating $output"
5572 # Preserve any variables that may affect compiler behavior
5573 for var in $variables_saved_for_relink; do
5574 if eval test -z \"\${$var+set}\"; then
5575 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5576 elif eval var_value=\$$var; test -z "$var_value"; then
5577 relink_command="$var=; export $var; $relink_command"
5579 var_value=`$echo "X$var_value" |
$Xsed -e "$sed_quote_subst"`
5580 relink_command="$var=\"$var_value\"; export $var; $relink_command"
5583 # Quote the link command for shipping.
5584 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5585 relink_command=`$echo "X$relink_command" |
$Xsed -e "$sed_quote_subst"`
5586 if test "$hardcode_automatic" = yes ; then
5591 # Only create the output if not a dry run.
5592 if test -z "$run"; then
5593 for installed in no yes; do
5594 if test "$installed" = yes; then
5595 if test -z "$install_libdir"; then
5598 output="$output_objdir/$outputname"i
5599 # Replace all uninstalled libtool libraries with the installed ones
5601 for deplib in $dependency_libs; do
5604 name=`$echo "X$deplib" |
$Xsed -e 's%^.*/%%'`
5605 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5606 if test -z "$libdir"; then
5607 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5610 newdependency_libs="$newdependency_libs $libdir/$name"
5612 *) newdependency_libs="$newdependency_libs $deplib" ;;
5615 dependency_libs="$newdependency_libs"
5617 for lib in $dlfiles; do
5618 name=`$echo "X$lib" | $Xsed -e 's
%^.
*/%%'`
5619 eval libdir=`${SED} -n -e 's
/^libdir
=\
(.
*\
)$
/\
1/p
' $lib`
5620 if test -z "$libdir"; then
5621 $echo "$modename: \`$lib' is not a valid libtool archive
" 1>&2
5624 newdlfiles="$newdlfiles $libdir/$name"
5626 dlfiles="$newdlfiles"
5628 for lib in $dlprefiles; do
5629 name=`$echo "X
$lib" | $Xsed -e 's%^.*/%%'`
5630 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5631 if test -z "$libdir"; then
5632 $echo "$modename: \
`$lib' is not a valid libtool archive" 1>&2
5635 newdlprefiles="$newdlprefiles $libdir/$name"
5637 dlprefiles="$newdlprefiles"
5640 for lib in $dlfiles; do
5642 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5643 *) abs=`pwd`"/$lib" ;;
5645 newdlfiles="$newdlfiles $abs"
5647 dlfiles="$newdlfiles"
5649 for lib in $dlprefiles; do
5651 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5652 *) abs=`pwd`"/$lib" ;;
5654 newdlprefiles="$newdlprefiles $abs"
5656 dlprefiles="$newdlprefiles"
5659 # place dlname in correct position for cygwin
5661 case $host,$output,$installed,$module,$dlname in
5662 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5665 # $outputname - a libtool library file
5666 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5668 # Please DO NOT delete this file!
5669 # It is necessary for linking the library.
5671 # The name that we can dlopen(3).
5674 # Names of this library.
5675 library_names='$library_names'
5677 # The name of the static archive.
5678 old_library='$old_library'
5680 # Libraries that this one depends upon.
5681 dependency_libs='$dependency_libs'
5683 # Version information for $libname.
5688 # Is this an already installed library?
5689 installed=$installed
5691 # Should we warn about portability when linking against -modules?
5692 shouldnotlink=$module
5694 # Files to dlopen/dlpreopen
5696 dlpreopen='$dlprefiles'
5698 # Directory that this library needs to be installed in:
5699 libdir='$install_libdir'"
5700 if test "$installed" = no && test "$need_relink" = yes; then
5702 relink_command=\"$relink_command\""
5707 # Do a symbolic link so that the libtool archive can be found in
5708 # LD_LIBRARY_PATH before the program is installed.
5709 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5710 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5716 # libtool install mode
5718 modename="$modename: install"
5720 # There may be an optional sh(1) argument at the beginning of
5721 # install_prog (especially on Windows NT).
5722 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5723 # Allow the use of GNU shtool's install command.
5724 $echo "X$nonopt" | grep shtool > /dev/null; then
5725 # Aesthetically quote it.
5726 arg=`$echo "X$nonopt" |
$Xsed -e "$sed_quote_subst"`
5728 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
5732 install_prog="$arg "
5740 # The real first argument should be the name of the installation program.
5741 # Aesthetically quote it.
5742 arg=`$echo "X$arg" |
$Xsed -e "$sed_quote_subst"`
5744 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
5748 install_prog="$install_prog$arg"
5750 # We need to accept at least all the BSD install flags.
5760 if test -n "$dest"; then
5761 files="$files $dest"
5769 case " $install_prog " in
5774 -g | -m | -o) prev=$arg ;;
5782 # If the previous option needed an argument, then skip it.
5783 if test -n "$prev"; then
5792 # Aesthetically quote the argument.
5793 arg=`$echo "X$arg" |
$Xsed -e "$sed_quote_subst"`
5795 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
5799 install_prog="$install_prog $arg"
5802 if test -z "$install_prog"; then
5803 $echo "$modename: you must specify an install program" 1>&2
5808 if test -n "$prev"; then
5809 $echo "$modename: the \`$prev' option requires an argument" 1>&2
5814 if test -z "$files"; then
5815 if test -z "$dest"; then
5816 $echo "$modename: no file or destination specified" 1>&2
5818 $echo "$modename: you must specify a destination" 1>&2
5824 # Strip any trailing slash from the destination.
5825 dest=`$echo "X$dest" | $Xsed -e 's
%/$
%%'`
5827 # Check to see that the destination is a directory.
5828 test -d "$dest" && isdir=yes
5829 if test "$isdir" = yes; then
5833 destdir=`$echo "X$dest" | $Xsed -e 's
%/[^
/]*$
%%'`
5834 test "X$destdir" = "X$dest" && destdir=.
5835 destname=`$echo "X$dest" | $Xsed -e 's
%^.
*/%%'`
5837 # Not a directory, so check to see that there is only one file specified.
5839 if test "$#" -gt 2; then
5840 $echo "$modename: \`$dest' is not a directory
" 1>&2
5846 [\\/]* | [A-Za-z]:[\\/]*) ;;
5848 for file in $files; do
5852 $echo "$modename: \
`$destdir' must be an absolute directory name" 1>&2
5861 # This variable tells wrapper scripts just to set variables rather
5862 # than running their programs.
5863 libtool_install_magic="$magic"
5868 for file in $files; do
5870 # Do each installation.
5873 # Do the static libraries later.
5874 staticlibs="$staticlibs $file"
5878 # Check to see that this really is a libtool archive.
5879 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5881 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5889 # If there is no directory component, then add one.
5891 */* | *\\*) . $file ;;
5895 # Add the libdir to current_libdirs if it is the destination.
5896 if test "X$destdir" = "X$libdir"; then
5897 case "$current_libdirs " in
5899 *) current_libdirs="$current_libdirs $libdir" ;;
5902 # Note the libdir as a future libdir.
5903 case "$future_libdirs " in
5905 *) future_libdirs="$future_libdirs $libdir" ;;
5909 dir=`$echo "X$file" | $Xsed -e 's
%/[^
/]*$
%%'`/
5910 test "X$dir" = "X$file/" && dir=
5913 if test -n "$relink_command"; then
5914 # Determine the prefix the user has applied to our future dir.
5915 inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5917 # Don't allow the user to place us outside of our expected
5918 # location b/c this prevents finding dependent libraries that
5919 # are installed to the same prefix.
5920 # At present, this check doesn't affect windows .dll's that
5921 # are installed into $libdir/../bin (currently, that works fine)
5922 # but it's something to keep an eye on.
5923 if test "$inst_prefix_dir" = "$destdir"; then
5924 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5928 if test -n "$inst_prefix_dir"; then
5929 # Stick the inst_prefix_dir data into the link command.
5930 relink_command
=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5932 relink_command
=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5935 $echo "$modename: warning: relinking \`$file'" 1>&2
5936 $show "$relink_command"
5937 if $run eval "$relink_command"; then :
5939 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5944 # See the names of the shared library.
5945 set dummy
$library_names
5946 if test -n "$2"; then
5952 test -n "$relink_command" && srcname
="$realname"T
5954 # Install the shared library and build the symlinks.
5955 $show "$install_prog $dir/$srcname $destdir/$realname"
5956 $run eval "$install_prog $dir/$srcname $destdir/$realname" ||
exit $?
5957 if test -n "$stripme" && test -n "$striplib"; then
5958 $show "$striplib $destdir/$realname"
5959 $run eval "$striplib $destdir/$realname" ||
exit $?
5962 if test "$#" -gt 0; then
5963 # Delete the old symlinks, and create new ones.
5964 # Try `ln -sf' first, because the `ln' binary might depend on
5965 # the symlink we replace! Solaris /bin/ln does not understand -f,
5966 # so we also need to try rm && ln -s.
5969 if test "$linkname" != "$realname"; then
5970 $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5971 $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5976 # Do each command in the postinstall commands.
5977 lib
="$destdir/$realname"
5978 cmds
=$postinstall_cmds
5979 save_ifs
="$IFS"; IFS
='~'
5980 for cmd
in $cmds; do
5984 $run eval "$cmd" ||
{
5987 # Restore the uninstalled library and exit
5988 if test "$mode" = relink
; then
5989 $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
5998 # Install the pseudo-library for information purposes.
5999 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6000 instname
="$dir/$name"i
6001 $show "$install_prog $instname $destdir/$name"
6002 $run eval "$install_prog $instname $destdir/$name" ||
exit $?
6004 # Maybe install the static library, too.
6005 test -n "$old_library" && staticlibs
="$staticlibs $dir/$old_library"
6009 # Install (i.e. copy) a libtool object.
6011 # Figure out destination file name, if it wasn't already specified.
6012 if test -n "$destname"; then
6013 destfile
="$destdir/$destname"
6015 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6016 destfile
="$destdir/$destfile"
6019 # Deduce the name of the destination old-style object file.
6022 staticdest
=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6025 staticdest
="$destfile"
6029 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6035 # Install the libtool object if requested.
6036 if test -n "$destfile"; then
6037 $show "$install_prog $file $destfile"
6038 $run eval "$install_prog $file $destfile" ||
exit $?
6041 # Install the old object if enabled.
6042 if test "$build_old_libs" = yes; then
6043 # Deduce the name of the old-style object file.
6044 staticobj
=`$echo "X$file" | $Xsed -e "$lo2o"`
6046 $show "$install_prog $staticobj $staticdest"
6047 $run eval "$install_prog \$staticobj \$staticdest" ||
exit $?
6053 # Figure out destination file name, if it wasn't already specified.
6054 if test -n "$destname"; then
6055 destfile
="$destdir/$destname"
6057 destfile
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6058 destfile
="$destdir/$destfile"
6061 # If the file is missing, and there is a .exe on the end, strip it
6062 # because it is most likely a libtool script we actually want to
6067 if test ! -f "$file"; then
6068 file=`$echo $file|${SED} 's,.exe$,,'`
6074 # Do a test to see if this is really a libtool program.
6077 wrapper
=`$echo $file | ${SED} -e 's,.exe$,,'`
6083 if (${SED} -e '4q' $wrapper |
grep "^# Generated by .*$PACKAGE")>/dev
/null
2>&1; then
6087 # Note that it is not necessary on cygwin/mingw to append a dot to
6088 # foo even if both foo and FILE.exe exist: automatic-append-.exe
6089 # behavior happens only for exec(3), not for open(2)! Also, sourcing
6090 # `FILE.' does not work on cygwin managed mounts.
6092 # If there is no directory component, then add one.
6094 */* |
*\\*) .
${wrapper} ;;
6095 *) . .
/${wrapper} ;;
6098 # Check the variables that should have been set.
6099 if test -z "$notinst_deplibs"; then
6100 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6105 for lib
in $notinst_deplibs; do
6106 # Check to see that each library is installed.
6108 if test -f "$lib"; then
6109 # If there is no directory component, then add one.
6111 */* |
*\\*) .
$lib ;;
6115 libfile
="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6116 if test -n "$libdir" && test ! -f "$libfile"; then
6117 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6123 # Note that it is not necessary on cygwin/mingw to append a dot to
6124 # foo even if both foo and FILE.exe exist: automatic-append-.exe
6125 # behavior happens only for exec(3), not for open(2)! Also, sourcing
6126 # `FILE.' does not work on cygwin managed mounts.
6128 # If there is no directory component, then add one.
6130 */* |
*\\*) .
${wrapper} ;;
6131 *) . .
/${wrapper} ;;
6135 if test "$fast_install" = no
&& test -n "$relink_command"; then
6136 if test "$finalize" = yes && test -z "$run"; then
6137 tmpdir
=`func_mktempdir`
6138 file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6139 outputname
="$tmpdir/$file"
6140 # Replace the output file specification.
6141 relink_command
=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6143 $show "$relink_command"
6144 if $run eval "$relink_command"; then :
6146 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6152 $echo "$modename: warning: cannot relink \`$file'" 1>&2
6155 # Install the binary that we compiled earlier.
6156 file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6160 # remove .exe since cygwin /usr/bin/install will append another
6162 case $install_prog,$host in
6163 */usr
/bin
/install*,*cygwin
*)
6164 case $file:$destfile in
6169 destfile
=$destfile.exe
6172 destfile
=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6177 $show "$install_prog$stripme $file $destfile"
6178 $run eval "$install_prog\$stripme \$file \$destfile" ||
exit $?
6179 test -n "$outputname" && ${rm}r
"$tmpdir"
6184 for file in $staticlibs; do
6185 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6187 # Set up the ranlib parameters.
6188 oldlib
="$destdir/$name"
6190 $show "$install_prog $file $oldlib"
6191 $run eval "$install_prog \$file \$oldlib" ||
exit $?
6193 if test -n "$stripme" && test -n "$old_striplib"; then
6194 $show "$old_striplib $oldlib"
6195 $run eval "$old_striplib $oldlib" ||
exit $?
6198 # Do each command in the postinstall commands.
6199 cmds
=$old_postinstall_cmds
6200 save_ifs
="$IFS"; IFS
='~'
6201 for cmd
in $cmds; do
6205 $run eval "$cmd" ||
exit $?
6210 if test -n "$future_libdirs"; then
6211 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6214 if test -n "$current_libdirs"; then
6215 # Maybe just do a dry run.
6216 test -n "$run" && current_libdirs
=" -n$current_libdirs"
6217 exec_cmd
='$SHELL $progpath $preserve_args --finish$current_libdirs'
6223 # libtool finish mode
6225 modename
="$modename: finish"
6229 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6232 libdirs
="$libdirs $dir"
6235 for libdir
in $libdirs; do
6236 if test -n "$finish_cmds"; then
6237 # Do each command in the finish commands.
6239 save_ifs
="$IFS"; IFS
='~'
6240 for cmd
in $cmds; do
6244 $run eval "$cmd" || admincmds
="$admincmds
6249 if test -n "$finish_eval"; then
6250 # Do the single finish_eval.
6251 eval cmds
=\"$finish_eval\"
6252 $run eval "$cmds" || admincmds
="$admincmds
6258 # Exit here if they wanted silent mode.
6259 test "$show" = : && exit $EXIT_SUCCESS
6261 $echo "X----------------------------------------------------------------------" |
$Xsed
6262 $echo "Libraries have been installed in:"
6263 for libdir
in $libdirs; do
6267 $echo "If you ever happen to want to link against installed libraries"
6268 $echo "in a given directory, LIBDIR, you must either use libtool, and"
6269 $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6270 $echo "flag during linking and do at least one of the following:"
6271 if test -n "$shlibpath_var"; then
6272 $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
6273 $echo " during execution"
6275 if test -n "$runpath_var"; then
6276 $echo " - add LIBDIR to the \`$runpath_var' environment variable"
6277 $echo " during linking"
6279 if test -n "$hardcode_libdir_flag_spec"; then
6281 eval flag
=\"$hardcode_libdir_flag_spec\"
6283 $echo " - use the \`$flag' linker flag"
6285 if test -n "$admincmds"; then
6286 $echo " - have your system administrator run these commands:$admincmds"
6288 if test -f /etc
/ld.so.conf
; then
6289 $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6292 $echo "See any operating system documentation about shared libraries for"
6293 $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6294 $echo "X----------------------------------------------------------------------" |
$Xsed
6298 # libtool execute mode
6300 modename
="$modename: execute"
6302 # The first argument is the command name.
6304 if test -z "$cmd"; then
6305 $echo "$modename: you must specify a COMMAND" 1>&2
6310 # Handle -dlopen flags immediately.
6311 for file in $execute_dlfiles; do
6312 if test ! -f "$file"; then
6313 $echo "$modename: \`$file' is not a file" 1>&2
6321 # Check to see that this really is a libtool archive.
6322 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then :
6324 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6329 # Read the libtool library.
6333 # If there is no directory component, then add one.
6335 */* |
*\\*) .
$file ;;
6339 # Skip this library if it cannot be dlopened.
6340 if test -z "$dlname"; then
6341 # Warn if it was a shared library.
6342 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6346 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6347 test "X$dir" = "X$file" && dir
=.
6349 if test -f "$dir/$objdir/$dlname"; then
6352 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6358 # Just add the directory containing the .lo file.
6359 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6360 test "X$dir" = "X$file" && dir
=.
6364 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6369 # Get the absolute pathname.
6370 absdir
=`cd "$dir" && pwd`
6371 test -n "$absdir" && dir
="$absdir"
6373 # Now add the directory to shlibpath_var.
6374 if eval "test -z \"\$$shlibpath_var\""; then
6375 eval "$shlibpath_var=\"\$dir\""
6377 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6381 # This variable tells wrapper scripts just to set shlibpath_var
6382 # rather than running their programs.
6383 libtool_execute_magic
="$magic"
6385 # Check if any of the arguments is a wrapper script.
6392 # Do a test to see if this is really a libtool program.
6393 if (${SED} -e '4q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
6394 # If there is no directory component, then add one.
6396 */* |
*\\*) .
$file ;;
6400 # Transform arg to wrapped name.
6401 file="$progdir/$program"
6405 # Quote arguments (to preserve shell metacharacters).
6406 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6407 args
="$args \"$file\""
6410 if test -z "$run"; then
6411 if test -n "$shlibpath_var"; then
6412 # Export the shlibpath_var.
6413 eval "export $shlibpath_var"
6416 # Restore saved environment variables
6417 if test "${save_LC_ALL+set}" = set; then
6418 LC_ALL
="$save_LC_ALL"; export LC_ALL
6420 if test "${save_LANG+set}" = set; then
6421 LANG
="$save_LANG"; export LANG
6424 # Now prepare to actually exec the command.
6425 exec_cmd
="\$cmd$args"
6427 # Display what would be done.
6428 if test -n "$shlibpath_var"; then
6429 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6430 $echo "export $shlibpath_var"
6437 # libtool clean and uninstall mode
6439 modename
="$modename: $mode"
6445 # This variable tells wrapper scripts just to set variables rather
6446 # than running their programs.
6447 libtool_install_magic
="$magic"
6452 -f) rm="$rm $arg"; rmforce
=yes ;;
6453 -*) rm="$rm $arg" ;;
6454 *) files
="$files $arg" ;;
6458 if test -z "$rm"; then
6459 $echo "$modename: you must specify an RM program" 1>&2
6466 origobjdir
="$objdir"
6467 for file in $files; do
6468 dir
=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6469 if test "X$dir" = "X$file"; then
6471 objdir
="$origobjdir"
6473 objdir
="$dir/$origobjdir"
6475 name
=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6476 test "$mode" = uninstall
&& objdir
="$dir"
6478 # Remember objdir for removal later, being careful to avoid duplicates
6479 if test "$mode" = clean
; then
6482 *) rmdirs
="$rmdirs $objdir" ;;
6486 # Don't error if the file doesn't exist and rm -f was used.
6487 if (test -L "$file") >/dev
/null
2>&1 \
6488 ||
(test -h "$file") >/dev
/null
2>&1 \
6489 ||
test -f "$file"; then
6491 elif test -d "$file"; then
6494 elif test "$rmforce" = yes; then
6502 # Possibly a libtool archive, so verify it.
6503 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
6506 # Delete the libtool libraries and symlinks.
6507 for n
in $library_names; do
6508 rmfiles
="$rmfiles $objdir/$n"
6510 test -n "$old_library" && rmfiles
="$rmfiles $objdir/$old_library"
6514 case " $library_names " in
6515 # " " in the beginning catches empty $dlname
6517 *) rmfiles
="$rmfiles $objdir/$dlname" ;;
6519 test -n "$libdir" && rmfiles
="$rmfiles $objdir/$name $objdir/${name}i"
6522 if test -n "$library_names"; then
6523 # Do each command in the postuninstall commands.
6524 cmds
=$postuninstall_cmds
6525 save_ifs
="$IFS"; IFS
='~'
6526 for cmd
in $cmds; do
6531 if test "$?" -ne 0 && test "$rmforce" != yes; then
6538 if test -n "$old_library"; then
6539 # Do each command in the old_postuninstall commands.
6540 cmds
=$old_postuninstall_cmds
6541 save_ifs
="$IFS"; IFS
='~'
6542 for cmd
in $cmds; do
6547 if test "$?" -ne 0 && test "$rmforce" != yes; then
6553 # FIXME: should reinstall the best remaining shared library.
6560 # Possibly a libtool object, so verify it.
6561 if (${SED} -e '2q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
6566 # Add PIC object to the list of files to remove.
6567 if test -n "$pic_object" \
6568 && test "$pic_object" != none
; then
6569 rmfiles
="$rmfiles $dir/$pic_object"
6572 # Add non-PIC object to the list of files to remove.
6573 if test -n "$non_pic_object" \
6574 && test "$non_pic_object" != none
; then
6575 rmfiles
="$rmfiles $dir/$non_pic_object"
6581 if test "$mode" = clean
; then
6585 file=`$echo $file|${SED} 's,.exe$,,'`
6586 noexename
=`$echo $name|${SED} 's,.exe$,,'`
6587 # $file with .exe has already been added to rmfiles,
6588 # add $file without .exe
6589 rmfiles
="$rmfiles $file"
6592 # Do a test to see if this is a libtool program.
6593 if (${SED} -e '4q' $file |
grep "^# Generated by .*$PACKAGE") >/dev
/null
2>&1; then
6597 # note $name still contains .exe if it was in $file originally
6598 # as does the version of $file that was added into $rmfiles
6599 rmfiles
="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6600 if test "$fast_install" = yes && test -n "$relink_command"; then
6601 rmfiles
="$rmfiles $objdir/lt-$name"
6603 if test "X$noexename" != "X$name" ; then
6604 rmfiles
="$rmfiles $objdir/lt-${noexename}.c"
6610 $show "$rm $rmfiles"
6611 $run $rm $rmfiles || exit_status
=1
6613 objdir
="$origobjdir"
6615 # Try to remove the ${objdir}s in the directories where we deleted files
6616 for dir
in $rmdirs; do
6617 if test -d "$dir"; then
6619 $run rmdir $dir >/dev
/null
2>&1
6627 $echo "$modename: you must specify a MODE" 1>&2
6628 $echo "$generic_help" 1>&2
6633 if test -z "$exec_cmd"; then
6634 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6635 $echo "$generic_help" 1>&2
6638 fi # test -z "$show_help"
6640 if test -n "$exec_cmd"; then
6645 # We need to display help for each of the modes.
6648 "Usage: $modename [OPTION]... [MODE-ARG]...
6650 Provide generalized library-building support services.
6652 --config show all configuration variables
6653 --debug enable verbose shell tracing
6654 -n, --dry-run display commands without modifying any files
6655 --features display basic configuration information and exit
6656 --finish same as \`--mode=finish'
6657 --help display this help message and exit
6658 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
6659 --quiet same as \`--silent'
6660 --silent don't print informational messages
6661 --tag=TAG use configuration variables from tag TAG
6662 --version print version information
6664 MODE must be one of the following:
6666 clean remove files from the build directory
6667 compile compile a source file into a libtool object
6668 execute automatically set library path, then run a program
6669 finish complete the installation of libtool libraries
6670 install install libraries or executables
6671 link create a library or an executable
6672 uninstall remove libraries from an installed directory
6674 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
6675 a more detailed description of MODE.
6677 Report bugs to <bug-libtool@gnu.org>."
6683 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6685 Remove files from the build directory.
6687 RM is the name of the program to use to delete files associated with each FILE
6688 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6691 If FILE is a libtool library, object or program, all the files associated
6692 with it are deleted. Otherwise, only FILE itself is deleted using RM."
6697 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6699 Compile a source file into a libtool library object.
6701 This mode accepts the following additional options:
6703 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
6704 -prefer-pic try to building PIC objects only
6705 -prefer-non-pic try to building non-PIC objects only
6706 -static always build a \`.o' file suitable for static linking
6708 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6709 from the given SOURCEFILE.
6711 The output file name is determined by removing the directory component from
6712 SOURCEFILE, then substituting the C source code suffix \`.c' with the
6713 library object suffix, \`.lo'."
6718 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6720 Automatically set library path, then run a program.
6722 This mode accepts the following additional options:
6724 -dlopen FILE add the directory containing FILE to the library path
6726 This mode sets the library path environment variable according to \`-dlopen'
6729 If any of the ARGS are libtool executable wrappers, then they are translated
6730 into their corresponding uninstalled binary, and any of their required library
6731 directories are added to the library path.
6733 Then, COMMAND is executed, with ARGS as arguments."
6738 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6740 Complete the installation of libtool libraries.
6742 Each LIBDIR is a directory that contains libtool libraries.
6744 The commands that this mode executes may require superuser privileges. Use
6745 the \`--dry-run' option if you just want to see what would be executed."
6750 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6752 Install executables or libraries.
6754 INSTALL-COMMAND is the installation command. The first component should be
6755 either the \`install' or \`cp' program.
6757 The rest of the components are interpreted as arguments to that command (only
6758 BSD-compatible install options are recognized)."
6763 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6765 Link object files or libraries together to form another library, or to
6766 create an executable program.
6768 LINK-COMMAND is a command using the C compiler that you would use to create
6769 a program from several object files.
6771 The following components of LINK-COMMAND are treated specially:
6773 -all-static do not do any dynamic linking at all
6774 -avoid-version do not add a version suffix if possible
6775 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
6776 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
6777 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6778 -export-symbols SYMFILE
6779 try to export only the symbols listed in SYMFILE
6780 -export-symbols-regex REGEX
6781 try to export only the symbols matching REGEX
6782 -LLIBDIR search LIBDIR for required installed libraries
6783 -lNAME OUTPUT-FILE requires the installed library libNAME
6784 -module build a library that can dlopened
6785 -no-fast-install disable the fast-install mode
6786 -no-install link a not-installable executable
6787 -no-undefined declare that a library does not refer to external symbols
6788 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
6789 -objectlist FILE Use a list of object files found in FILE to specify objects
6790 -precious-files-regex REGEX
6791 don't remove output files matching REGEX
6792 -release RELEASE specify package release information
6793 -rpath LIBDIR the created library will eventually be installed in LIBDIR
6794 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
6795 -static do not do any dynamic linking of libtool libraries
6796 -version-info CURRENT[:REVISION[:AGE]]
6797 specify library version info [each variable defaults to 0]
6799 All other options (arguments beginning with \`-') are ignored.
6801 Every other argument is treated as a filename. Files ending in \`.la' are
6802 treated as uninstalled libtool libraries, other files are standard or library
6805 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6806 only library objects (\`.lo' files) may be specified, and \`-rpath' is
6807 required, except when creating a convenience library.
6809 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6810 using \`ar' and \`ranlib', or on Windows using \`lib'.
6812 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6813 is created, otherwise an executable program is created."
6818 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6820 Remove libraries from an installation directory.
6822 RM is the name of the program to use to delete files associated with each FILE
6823 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6826 If FILE is a libtool library, all the files associated with it are deleted.
6827 Otherwise, only FILE itself is deleted using RM."
6831 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6838 $echo "Try \`$modename --help' for more information about other modes."
6842 # The TAGs below are defined such that we never get into a situation
6843 # in which we disable both kinds of libraries. Given conflicting
6844 # choices, we go for a static library, that is the most portable,
6845 # since we can't tell whether shared libraries were disabled because
6846 # the user asked for that or because the platform doesn't support
6847 # them. This is particularly important on AIX, because we don't
6848 # support having both static and shared libraries enabled at the same
6849 # time on that platform, so we default to a shared-only configuration.
6850 # If a disable-shared tag is given, we'll fallback to a static-only
6851 # configuration. But we'll never go from static-only to shared-only.
6853 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6855 # ### END LIBTOOL TAG CONFIG: disable-shared
6857 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
6859 # ### END LIBTOOL TAG CONFIG: disable-static