Factored out code that sets/modifies/deletes breakpoints into member functions
[kdbg.git] / admin / old-ltmain.sh
blobc6a7375f69bf9b41fe05afc8a3ffeac5848bdf04
1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
5 # Free Software Foundation, Inc.
6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
27 # Check that we have a working $echo.
28 if test "X$1" = X--no-reexec; then
29 # Discard the --no-reexec flag, and continue.
30 shift
31 elif test "X$1" = X--fallback-echo; then
32 # Avoid inline document here, it may be left over
34 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
35 # Yippee, $echo works!
37 else
38 # Restart under the correct shell, and then maybe $echo will work.
39 exec $SHELL "$0" --no-reexec ${1+"$@"}
42 if test "X$1" = X--fallback-echo; then
43 # used as fallback echo
44 shift
45 cat <<EOF
47 EOF
48 exit 0
51 # The name of this program.
52 progname=`$echo "$0" | sed 's%^.*/%%'`
53 modename="$progname"
55 # Constants.
56 PROGRAM=ltmain.sh
57 PACKAGE=libtool
58 VERSION=1.4a
59 TIMESTAMP=" (1.641.2.206mm 2001/04/03 21:47:47)"
61 default_mode=
62 help="Try \`$progname --help' for more information."
63 magic="%%%MAGIC variable%%%"
64 mkdir="mkdir"
65 mv="mv -f"
66 rm="rm -f"
68 # Sed substitution that helps us do robust quoting. It backslashifies
69 # metacharacters that are still active within double-quoted strings.
70 Xsed='sed -e 1s/^X//'
71 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 SP2NL='tr \040 \012'
73 NL2SP='tr \015\012 \040\040'
75 # NLS nuisances.
76 # Only set LANG and LC_ALL to C if already set.
77 # These must not be set unconditionally because not all systems understand
78 # e.g. LANG=C (notably SCO).
79 # We save the old values to restore during execute mode.
80 if test "${LC_ALL+set}" = set; then
81 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
83 if test "${LANG+set}" = set; then
84 save_LANG="$LANG"; LANG=C; export LANG
87 if test "$LTCONFIG_VERSION" != "$VERSION"; then
88 echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
89 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
90 exit 1
93 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
94 echo "$modename: not configured to build any kind of library" 1>&2
95 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
96 exit 1
99 # Global variables.
100 mode=$default_mode
101 nonopt=
102 prev=
103 prevopt=
104 run=
105 show="$echo"
106 show_help=
107 execute_dlfiles=
108 lo2o="s/\\.lo\$/.${objext}/"
109 o2lo="s/\\.${objext}\$/.lo/"
111 # Parse our command line options once, thoroughly.
112 while test $# -gt 0
114 arg="$1"
115 shift
117 case $arg in
118 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
119 *) optarg= ;;
120 esac
122 # If the previous option needs an argument, assign it.
123 if test -n "$prev"; then
124 case $prev in
125 execute_dlfiles)
126 execute_dlfiles="$execute_dlfiles $arg"
128 tag)
129 tagname="$arg"
131 # Check whether tagname contains only valid characters
132 case $tagname in
133 *[!-_A-Za-z0-9,/]*)
134 echo "$progname: invalid tag name: $tagname" 1>&2
135 exit 1
137 esac
139 if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
140 taglist="$taglist $tagname"
141 # Evaluate the configuration.
142 eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
143 else
144 echo "$progname: ignoring unknown tag $tagname" 1>&2
148 eval "$prev=\$arg"
150 esac
152 prev=
153 prevopt=
154 continue
157 # Have we seen a non-optional argument yet?
158 case $arg in
159 --help)
160 show_help=yes
163 --version)
164 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
165 exit 0
168 --config)
169 sed -n -e '/^### BEGIN LIBTOOL CONFIG/,/^### END LIBTOOL CONFIG/p' < "$0"
170 # Now print the configurations for the tags.
171 for tagname in $taglist; do
172 sed -n -e "/^### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
173 done
174 exit 0
177 --debug)
178 echo "$progname: enabling shell trace mode"
179 set -x
182 --dry-run | -n)
183 run=:
186 --features)
187 echo "host: $host"
188 if test "$build_libtool_libs" = yes; then
189 echo "enable shared libraries"
190 else
191 echo "disable shared libraries"
193 if test "$build_old_libs" = yes; then
194 echo "enable static libraries"
195 else
196 echo "disable static libraries"
198 exit 0
201 --finish) mode="finish" ;;
203 --mode) prevopt="--mode" prev=mode ;;
204 --mode=*) mode="$optarg" ;;
206 --quiet | --silent)
207 show=:
210 --tag) prevopt="--tag" prev=tag ;;
211 --tag=*)
212 set tag "$optarg" ${1+"$@"}
213 shift
214 prev=tag
217 -dlopen)
218 prevopt="-dlopen"
219 prev=execute_dlfiles
223 $echo "$modename: unrecognized option \`$arg'" 1>&2
224 $echo "$help" 1>&2
225 exit 1
229 nonopt="$arg"
230 break
232 esac
233 done
235 if test -n "$prevopt"; then
236 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
237 $echo "$help" 1>&2
238 exit 1
241 if test -z "$show_help"; then
243 # Infer the operation mode.
244 if test -z "$mode"; then
245 case $nonopt in
246 *cc | *++ | gcc* | *-gcc*)
247 mode=link
248 for arg
250 case $arg in
252 mode=compile
253 break
255 esac
256 done
258 *db | *dbx | *strace | *truss)
259 mode=execute
261 *install*|cp|mv)
262 mode=install
264 *rm)
265 mode=uninstall
268 # If we have no mode, but dlfiles were specified, then do execute mode.
269 test -n "$execute_dlfiles" && mode=execute
271 # Just use the default operation mode.
272 if test -z "$mode"; then
273 if test -n "$nonopt"; then
274 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
275 else
276 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
280 esac
283 # Only execute mode is allowed to have -dlopen flags.
284 if test -n "$execute_dlfiles" && test "$mode" != execute; then
285 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
286 $echo "$help" 1>&2
287 exit 1
290 # Change the help message to a mode-specific one.
291 generic_help="$help"
292 help="Try \`$modename --help --mode=$mode' for more information."
294 # These modes are in order of execution frequency so that they run quickly.
295 case $mode in
296 # libtool compile mode
297 compile)
298 modename="$modename: compile"
299 # Get the compilation command and the source file.
300 base_compile=
301 prev=
302 lastarg=
303 srcfile="$nonopt"
304 suppress_output=
306 user_target=no
307 for arg
309 case $prev in
310 "") ;;
311 xcompiler)
312 # Aesthetically quote the previous argument.
313 prev=
314 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
316 case $arg in
317 # Double-quote args containing other shell metacharacters.
318 # Many Bourne shells cannot handle close brackets correctly
319 # in scan sets, so we specify it separately.
320 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
321 arg="\"$arg\""
323 esac
325 # Add the previous argument to base_compile.
326 if test -z "$base_compile"; then
327 base_compile="$lastarg"
328 else
329 base_compile="$base_compile $lastarg"
331 continue
333 esac
335 # Accept any command-line options.
336 case $arg in
338 if test "$user_target" != "no"; then
339 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
340 exit 1
342 user_target=next
345 -static)
346 build_old_libs=yes
347 continue
350 -prefer-pic)
351 pic_mode=yes
352 continue
355 -prefer-non-pic)
356 pic_mode=no
357 continue
360 -Xcompiler)
361 prev=xcompiler
362 continue
365 -Wc,*)
366 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
367 lastarg=
368 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
369 for arg in $args; do
370 IFS="$save_ifs"
372 # Double-quote args containing other shell metacharacters.
373 # Many Bourne shells cannot handle close brackets correctly
374 # in scan sets, so we specify it separately.
375 case $arg in
376 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
377 arg="\"$arg\""
379 esac
380 lastarg="$lastarg $arg"
381 done
382 IFS="$save_ifs"
383 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
385 # Add the arguments to base_compile.
386 if test -z "$base_compile"; then
387 base_compile="$lastarg"
388 else
389 base_compile="$base_compile $lastarg"
391 continue
393 esac
395 case $user_target in
396 next)
397 # The next one is the -o target name
398 user_target=yes
399 continue
401 yes)
402 # We got the output file
403 user_target=set
404 libobj="$arg"
405 continue
407 esac
409 # Accept the current argument as the source file.
410 lastarg="$srcfile"
411 srcfile="$arg"
413 # Aesthetically quote the previous argument.
415 # Backslashify any backslashes, double quotes, and dollar signs.
416 # These are the only characters that are still specially
417 # interpreted inside of double-quoted scrings.
418 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
420 # Double-quote args containing other shell metacharacters.
421 # Many Bourne shells cannot handle close brackets correctly
422 # in scan sets, so we specify it separately.
423 case $lastarg in
424 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
425 lastarg="\"$lastarg\""
427 esac
429 # Add the previous argument to base_compile.
430 if test -z "$base_compile"; then
431 base_compile="$lastarg"
432 else
433 base_compile="$base_compile $lastarg"
435 done
437 case $user_target in
438 set)
441 # Get the name of the library object.
442 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
445 $echo "$modename: you must specify a target with \`-o'" 1>&2
446 exit 1
448 esac
450 # Recognize several different file suffixes.
451 # If the user specifies -o file.o, it is replaced with file.lo
452 xform='[cCFSfmso]'
453 case $libobj in
454 *.ada) xform=ada ;;
455 *.adb) xform=adb ;;
456 *.ads) xform=ads ;;
457 *.asm) xform=asm ;;
458 *.c++) xform=c++ ;;
459 *.cc) xform=cc ;;
460 *.class) xform=class ;;
461 *.cpp) xform=cpp ;;
462 *.cxx) xform=cxx ;;
463 *.f90) xform=f90 ;;
464 *.for) xform=for ;;
465 *.java) xform=java ;;
466 esac
468 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
470 case $libobj in
471 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
473 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
474 exit 1
476 esac
478 # Infer tagged configuration to use if any are available and
479 # if one wasn't chosen via the "--tag" command line option.
480 # Only attempt this if the compiler in the base compile
481 # command doesn't match the default compiler.
482 if test -n "$available_tags" && test -z "$tagname"; then
483 case $base_compile in
484 "$CC "*) ;;
485 # Blanks in the command may have been stripped by the calling shell,
486 # but not from the CC environment variable when ltconfig was run.
487 "`$echo $CC` "*) ;;
489 for z in $available_tags; do
490 if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
491 # Evaluate the configuration.
492 eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
493 case $base_compile in
494 "$CC "*)
495 # The compiler in the base compile command matches
496 # the one in the tagged configuration.
497 # Assume this is the tagged configuration we want.
498 tagname=$z
499 break
501 "`$echo $CC` "*)
502 tagname=$z
503 break
505 esac
507 done
508 # If $tagname still isn't set, then no tagged configuration
509 # was found and let the user know that the "--tag" command
510 # line option must be used.
511 if test -z "$tagname"; then
512 echo "$modename: unable to infer tagged configuration"
513 echo "$modename: specify a tag with \`--tag'" 1>&2
514 exit 1
515 # else
516 # echo "$modename: using $tagname tagged configuration"
519 esac
522 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
523 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
524 if test "X$xdir" = "X$obj"; then
525 xdir=
526 else
527 xdir=$xdir/
529 lobj=${xdir}$objdir/$objname
531 if test -z "$base_compile"; then
532 $echo "$modename: you must specify a compilation command" 1>&2
533 $echo "$help" 1>&2
534 exit 1
537 # Delete any leftover library objects.
538 if test "$build_old_libs" = yes; then
539 removelist="$obj $lobj $libobj ${libobj}T"
540 else
541 removelist="$lobj $libobj ${libobj}T"
544 $run $rm $removelist
545 trap "$run $rm $removelist; exit 1" 1 2 15
547 # On Cygwin there's no "real" PIC flag so we must build both object types
548 case $host_os in
549 cygwin* | mingw* | pw32* | os2*)
550 pic_mode=default
552 esac
553 if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
554 # non-PIC code in shared libraries is not supported
555 pic_mode=default
558 # Calculate the filename of the output object if compiler does
559 # not support -o with -c
560 if test "$compiler_c_o" = no; then
561 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
562 lockfile="$output_obj.lock"
563 removelist="$removelist $output_obj $lockfile"
564 trap "$run $rm $removelist; exit 1" 1 2 15
565 else
566 output_obj=
567 need_locks=no
568 lockfile=
571 # Lock this critical section if it is needed
572 # We use this script file to make the link, it avoids creating a new file
573 if test "$need_locks" = yes; then
574 until $run ln "$0" "$lockfile" 2>/dev/null; do
575 $show "Waiting for $lockfile to be removed"
576 sleep 2
577 done
578 elif test "$need_locks" = warn; then
579 if test -f "$lockfile"; then
580 echo "\
581 *** ERROR, $lockfile exists and contains:
582 `cat $lockfile 2>/dev/null`
584 This indicates that another process is trying to use the same
585 temporary object file, and libtool could not work around it because
586 your compiler does not support \`-c' and \`-o' together. If you
587 repeat this compilation, it may succeed, by chance, but you had better
588 avoid parallel builds (make -j) in this platform, or get a better
589 compiler."
591 $run $rm $removelist
592 exit 1
594 echo $srcfile > "$lockfile"
597 if test -n "$fix_srcfile_path"; then
598 eval srcfile=\"$fix_srcfile_path\"
601 $run $rm "$libobj" "${libobj}T"
603 # Create a libtool object file (analogous to a ".la" file),
604 # but don't create it if we're doing a dry run.
605 test -z "$run" && cat > ${libobj}T <<EOF
606 # $libobj - a libtool object file
607 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
609 # Please DO NOT delete this file!
610 # It is necessary for linking the library.
612 # Name of the PIC object.
615 # Only build a PIC object if we are building libtool libraries.
616 if test "$build_libtool_libs" = yes; then
617 # Without this assignment, base_compile gets emptied.
618 fbsd_hideous_sh_bug=$base_compile
620 if test "$pic_mode" != no; then
621 command="$base_compile $srcfile $pic_flag"
622 else
623 # Don't build PIC code
624 command="$base_compile $srcfile"
627 if test ! -d ${xdir}$objdir; then
628 $show "$mkdir ${xdir}$objdir"
629 $run $mkdir ${xdir}$objdir
630 status=$?
631 if test $status -ne 0 && test ! -d ${xdir}$objdir; then
632 exit $status
636 if test -z "$output_obj"; then
637 # Place PIC objects in $objdir
638 command="$command -o $lobj"
641 $run $rm "$lobj" "$output_obj"
643 $show "$command"
644 if $run eval "$command"; then :
645 else
646 test -n "$output_obj" && $run $rm $removelist
647 exit 1
650 if test "$need_locks" = warn &&
651 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
652 echo "\
653 *** ERROR, $lockfile contains:
654 `cat $lockfile 2>/dev/null`
656 but it should contain:
657 $srcfile
659 This indicates that another process is trying to use the same
660 temporary object file, and libtool could not work around it because
661 your compiler does not support \`-c' and \`-o' together. If you
662 repeat this compilation, it may succeed, by chance, but you had better
663 avoid parallel builds (make -j) in this platform, or get a better
664 compiler."
666 $run $rm $removelist
667 exit 1
670 # Just move the object if needed, then go on to compile the next one
671 if test -n "$output_obj" && test "x$output_obj" != "x$lobj"; then
672 $show "$mv $output_obj $lobj"
673 if $run $mv $output_obj $lobj; then :
674 else
675 error=$?
676 $run $rm $removelist
677 exit $error
681 # Append the name of the PIC object to the libtool object file.
682 test -z "$run" && cat >> ${libobj}T <<EOF
683 pic_object='$objdir/$objname'
687 # Allow error messages only from the first compilation.
688 suppress_output=' >/dev/null 2>&1'
689 else
690 # No PIC object so indicate it doesn't exist in the libtool
691 # object file.
692 test -z "$run" && cat >> ${libobj}T <<EOF
693 pic_object=none
698 # Only build a position-dependent object if we build old libraries.
699 if test "$build_old_libs" = yes; then
700 if test "$pic_mode" != yes; then
701 # Don't build PIC code
702 command="$base_compile $srcfile"
703 else
704 command="$base_compile $srcfile $pic_flag"
706 if test "$compiler_c_o" = yes; then
707 command="$command -o $obj"
710 # Suppress compiler output if we already did a PIC compilation.
711 command="$command$suppress_output"
712 $run $rm "$obj" "$output_obj"
713 $show "$command"
714 if $run eval "$command"; then :
715 else
716 $run $rm $removelist
717 exit 1
720 if test "$need_locks" = warn &&
721 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
722 echo "\
723 *** ERROR, $lockfile contains:
724 `cat $lockfile 2>/dev/null`
726 but it should contain:
727 $srcfile
729 This indicates that another process is trying to use the same
730 temporary object file, and libtool could not work around it because
731 your compiler does not support \`-c' and \`-o' together. If you
732 repeat this compilation, it may succeed, by chance, but you had better
733 avoid parallel builds (make -j) in this platform, or get a better
734 compiler."
736 $run $rm $removelist
737 exit 1
740 # Just move the object if needed
741 if test -n "$output_obj" && test "x$output_obj" != "x$obj"; then
742 $show "$mv $output_obj $obj"
743 if $run $mv $output_obj $obj; then :
744 else
745 error=$?
746 $run $rm $removelist
747 exit $error
751 # Append the name of the non-PIC object the libtool object file.
752 # Only append if the libtool object file exists.
753 test -z "$run" && cat >> ${libobj}T <<EOF
754 # Name of the non-PIC object.
755 non_pic_object='$objname'
758 else
759 # Append the name of the non-PIC object the libtool object file.
760 # Only append if the libtool object file exists.
761 test -z "$run" && cat >> ${libobj}T <<EOF
762 # Name of the non-PIC object.
763 non_pic_object=none
768 $run $mv "${libobj}T" "${libobj}"
770 # Unlock the critical section if it was locked
771 if test "$need_locks" != no; then
772 $run $rm "$lockfile"
775 exit 0
778 # libtool link mode
779 link | relink)
780 modename="$modename: link"
781 case $host in
782 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
783 # It is impossible to link a dll without this setting, and
784 # we shouldn't force the makefile maintainer to figure out
785 # which system we are compiling for in order to pass an extra
786 # flag for every libtool invokation.
787 # allow_undefined=no
789 # FIXME: Unfortunately, there are problems with the above when trying
790 # to make a dll which has undefined symbols, in which case not
791 # even a static library is built. For now, we need to specify
792 # -no-undefined on the libtool link line when we can be certain
793 # that all symbols are satisfied, otherwise we get a static library.
794 allow_undefined=yes
797 allow_undefined=yes
799 esac
800 libtool_args="$nonopt"
801 base_compile="$nonopt"
802 compile_command="$nonopt"
803 finalize_command="$nonopt"
805 compile_rpath=
806 finalize_rpath=
807 compile_shlibpath=
808 finalize_shlibpath=
809 convenience=
810 old_convenience=
811 deplibs=
812 old_deplibs=
813 add_flags=
814 compiler_flags=
815 linker_flags=
816 dllsearchpath=
817 lib_search_path=`pwd`
819 avoid_version=no
820 dlfiles=
821 dlprefiles=
822 dlself=no
823 export_dynamic=no
824 export_symbols=
825 export_symbols_regex=
826 generated=
827 libobjs=
828 ltlibs=
829 module=no
830 no_install=no
831 objs=
832 non_pic_objects=
833 prefer_static_libs=no
834 preload=no
835 prev=
836 prevarg=
837 release=
838 rpath=
839 xrpath=
840 perm_rpath=
841 temp_rpath=
842 thread_safe=no
843 vinfo=
845 # We need to know -static, to get the right output filenames.
846 for arg
848 case $arg in
849 -all-static | -static)
850 if test "X$arg" = "X-all-static"; then
851 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
852 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
854 if test -n "$link_static_flag"; then
855 dlopen_self=$dlopen_self_static
857 else
858 if test -z "$pic_flag" && test -n "$link_static_flag"; then
859 dlopen_self=$dlopen_self_static
862 build_libtool_libs=no
863 build_old_libs=yes
864 prefer_static_libs=yes
865 break
867 esac
868 done
870 # See if our shared archives depend on static archives.
871 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
873 # Go through the arguments, transforming them on the way.
874 while test $# -gt 0; do
875 arg="$1"
876 base_compile="$base_compile $arg"
877 shift
878 case $arg in
879 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
880 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
882 *) qarg=$arg ;;
883 esac
884 libtool_args="$libtool_args $qarg"
886 # If the previous option needs an argument, assign it.
887 if test -n "$prev"; then
888 case $prev in
889 output)
890 compile_command="$compile_command @OUTPUT@"
891 finalize_command="$finalize_command @OUTPUT@"
893 esac
895 case $prev in
896 dlfiles|dlprefiles)
897 if test "$preload" = no; then
898 # Add the symbol object into the linking commands.
899 compile_command="$compile_command @SYMFILE@"
900 finalize_command="$finalize_command @SYMFILE@"
901 preload=yes
903 case $arg in
904 *.la | *.lo) ;; # We handle these cases below.
905 force)
906 if test "$dlself" = no; then
907 dlself=needless
908 export_dynamic=yes
910 prev=
911 continue
913 self)
914 if test "$prev" = dlprefiles; then
915 dlself=yes
916 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
917 dlself=yes
918 else
919 dlself=needless
920 export_dynamic=yes
922 prev=
923 continue
926 if test "$prev" = dlfiles; then
927 dlfiles="$dlfiles $arg"
928 else
929 dlprefiles="$dlprefiles $arg"
931 prev=
932 continue
934 esac
936 expsyms)
937 export_symbols="$arg"
938 if test ! -f "$arg"; then
939 $echo "$modename: symbol file \`$arg' does not exist"
940 exit 1
942 prev=
943 continue
945 expsyms_regex)
946 export_symbols_regex="$arg"
947 prev=
948 continue
950 release)
951 release="-$arg"
952 prev=
953 continue
955 objectlist)
956 if test -f "$arg"; then
957 save_arg=$arg
958 moreargs=
959 for fil in `cat $save_arg`
961 # moreargs="$moreargs $fil"
962 arg=$fil
963 # A libtool-controlled object.
965 # Check to see that this really is a libtool object.
966 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
967 pic_object=
968 non_pic_object=
970 # Read the .lo file
971 # If there is no directory component, then add one.
972 case $arg in
973 */* | *\\*) . $arg ;;
974 *) . ./$arg ;;
975 esac
977 if test -z "$pic_object" || \
978 test -z "$non_pic_object" ||
979 test "$pic_object" = none && \
980 test "$non_pic_object" = none; then
981 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
982 exit 1
985 # Extract subdirectory from the argument.
986 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
987 if test "X$xdir" = "X$arg"; then
988 xdir=
989 else
990 xdir="$xdir/"
993 if test "$pic_object" != none; then
994 # Prepend the subdirectory the object is found in.
995 pic_object="$xdir$pic_object"
997 if test "$prev" = dlfiles; then
998 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
999 dlfiles="$dlfiles $pic_object"
1000 prev=
1001 continue
1002 else
1003 # If libtool objects are unsupported, then we need to preload.
1004 prev=dlprefiles
1008 # CHECK ME: I think I busted this. -Ossama
1009 if test "$prev" = dlprefiles; then
1010 # Preload the old-style object.
1011 dlprefiles="$dlprefiles $pic_object"
1012 prev=
1015 # A PIC object.
1016 libobjs="$libobjs $pic_object"
1017 arg="$pic_object"
1020 # Non-PIC object.
1021 if test "$non_pic_object" != none; then
1022 # Prepend the subdirectory the object is found in.
1023 non_pic_object="$xdir$non_pic_object"
1025 # A standard non-PIC object
1026 non_pic_objects="$non_pic_objects $non_pic_object"
1027 if test -z "$pic_object" || test "$pic_object" = none ; then
1028 arg="$non_pic_object"
1031 else
1032 # Only an error if not doing a dry-run.
1033 if test -z "$run"; then
1034 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1035 exit 1
1036 else
1037 # Dry-run case.
1039 # Extract subdirectory from the argument.
1040 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1041 if test "X$xdir" = "X$arg"; then
1042 xdir=
1043 else
1044 xdir="$xdir/"
1047 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1048 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1049 libobjs="$libobjs $pic_object"
1050 non_pic_objects="$non_pic_objects $non_pic_object"
1053 done
1054 else
1055 $echo "$modename: link input file \`$save_arg' does not exist"
1056 exit 1
1058 arg=$save_arg
1059 prev=
1060 continue
1062 rpath | xrpath)
1063 # We need an absolute path.
1064 case $arg in
1065 [\\/]* | [A-Za-z]:[\\/]*) ;;
1067 $echo "$modename: only absolute run-paths are allowed" 1>&2
1068 exit 1
1070 esac
1071 if test "$prev" = rpath; then
1072 case "$rpath " in
1073 *" $arg "*) ;;
1074 *) rpath="$rpath $arg" ;;
1075 esac
1076 else
1077 case "$xrpath " in
1078 *" $arg "*) ;;
1079 *) xrpath="$xrpath $arg" ;;
1080 esac
1082 prev=
1083 continue
1085 xcompiler)
1086 compiler_flags="$compiler_flags $qarg"
1087 prev=
1088 compile_command="$compile_command $qarg"
1089 finalize_command="$finalize_command $qarg"
1090 continue
1092 xlinker)
1093 linker_flags="$linker_flags $qarg"
1094 compiler_flags="$compiler_flags $wl$qarg"
1095 prev=
1096 compile_command="$compile_command $wl$qarg"
1097 finalize_command="$finalize_command $wl$qarg"
1098 continue
1101 eval "$prev=\"\$arg\""
1102 prev=
1103 continue
1105 esac
1108 prevarg="$arg"
1110 case $arg in
1111 -all-static)
1112 if test -n "$link_static_flag"; then
1113 compile_command="$compile_command $link_static_flag"
1114 finalize_command="$finalize_command $link_static_flag"
1116 continue
1119 -allow-undefined)
1120 # FIXME: remove this flag sometime in the future.
1121 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1122 continue
1125 -avoid-version)
1126 avoid_version=yes
1127 continue
1130 -dlopen)
1131 prev=dlfiles
1132 continue
1135 -dlpreopen)
1136 prev=dlprefiles
1137 continue
1140 -export-dynamic)
1141 export_dynamic=yes
1142 continue
1145 -export-symbols | -export-symbols-regex)
1146 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1147 $echo "$modename: not more than one -exported-symbols argument allowed"
1148 exit 1
1150 if test "X$arg" = "X-export-symbols"; then
1151 prev=expsyms
1152 else
1153 prev=expsyms_regex
1155 continue
1158 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1159 # so, if we see these flags be careful not to treat them like -L
1160 -L[A-Z][A-Z]*:*)
1161 case $with_gcc/$host in
1162 no/*-*-irix*)
1163 compile_command="$compile_command $arg"
1164 finalize_command="$finalize_command $arg"
1166 esac
1167 continue
1170 -L*)
1171 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1172 # We need an absolute path.
1173 case $dir in
1174 [\\/]* | [A-Za-z]:[\\/]*) ;;
1176 absdir=`cd "$dir" && pwd`
1177 if test -z "$absdir"; then
1178 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1179 exit 1
1181 dir="$absdir"
1183 esac
1184 case "$deplibs " in
1185 *" -L$dir "*) ;;
1187 deplibs="$deplibs -L$dir"
1188 lib_search_path="$lib_search_path $dir"
1190 esac
1191 case $host in
1192 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1193 case :$dllsearchpath: in
1194 *":$dir:"*) ;;
1195 *) dllsearchpath="$dllsearchpath:$dir";;
1196 esac
1198 esac
1199 continue
1202 -l*)
1203 if test "$arg" = "-lc"; then
1204 case $host in
1205 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
1206 # These systems don't actually have c library (as such)
1207 continue
1209 *-*-rhapsody* | *-*-darwin1.[012])
1210 # Rhapsody C library is in the System framework
1211 deplibs="$deplibs -framework System"
1212 continue
1214 esac
1215 elif test "$arg" = "-lm"; then
1216 case $host in
1217 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1218 # These systems don't actually have math library (as such)
1219 continue
1221 *-*-rhapsody* | *-*-darwin1.[012])
1222 # Rhapsody math library is in the System framework
1223 deplibs="$deplibs -framework System"
1224 continue
1226 esac
1228 deplibs="$deplibs $arg"
1229 continue
1232 -module)
1233 module=yes
1234 continue
1237 -no-fast-install)
1238 fast_install=no
1239 continue
1242 -no-install)
1243 case $host in
1244 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1245 # The PATH hackery in wrapper scripts is required on Windows
1246 # in order for the loader to find any dlls it needs.
1247 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1248 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1249 fast_install=no
1252 no_install=yes
1254 esac
1255 continue
1258 -no-undefined)
1259 allow_undefined=no
1260 continue
1263 -objectlist)
1264 prev=objectlist
1265 continue
1268 -o) prev=output ;;
1270 -release)
1271 prev=release
1272 continue
1275 -rpath)
1276 prev=rpath
1277 continue
1281 prev=xrpath
1282 continue
1285 -R*)
1286 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1287 # We need an absolute path.
1288 case $dir in
1289 [\\/]* | [A-Za-z]:[\\/]*) ;;
1291 $echo "$modename: only absolute run-paths are allowed" 1>&2
1292 exit 1
1294 esac
1295 case "$xrpath " in
1296 *" $dir "*) ;;
1297 *) xrpath="$xrpath $dir" ;;
1298 esac
1299 continue
1302 -static)
1303 # The effects of -static are defined in a previous loop.
1304 # We used to do the same as -all-static on platforms that
1305 # didn't have a PIC flag, but the assumption that the effects
1306 # would be equivalent was wrong. It would break on at least
1307 # Digital Unix and AIX.
1308 continue
1311 -thread-safe)
1312 thread_safe=yes
1313 continue
1316 -version-info)
1317 prev=vinfo
1318 continue
1321 -Wc,*)
1322 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1323 arg=
1324 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1325 for flag in $args; do
1326 IFS="$save_ifs"
1327 case $flag in
1328 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1329 flag="\"$flag\""
1331 esac
1332 arg="$arg $wl$flag"
1333 compiler_flags="$compiler_flags $flag"
1334 done
1335 IFS="$save_ifs"
1336 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1339 -Wl,*)
1340 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1341 arg=
1342 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1343 for flag in $args; do
1344 IFS="$save_ifs"
1345 case $flag in
1346 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1347 flag="\"$flag\""
1349 esac
1350 arg="$arg $wl$flag"
1351 compiler_flags="$compiler_flags $wl$flag"
1352 linker_flags="$linker_flags $flag"
1353 done
1354 IFS="$save_ifs"
1355 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1358 -Xcompiler)
1359 prev=xcompiler
1360 continue
1363 -Xlinker)
1364 prev=xlinker
1365 continue
1368 # Some other compiler flag.
1369 -* | +*)
1370 # Unknown arguments in both finalize_command and compile_command need
1371 # to be aesthetically quoted because they are evaled later.
1372 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1373 case $arg in
1374 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1375 arg="\"$arg\""
1377 esac
1378 add_flags="$add_flags $arg"
1381 *.$objext)
1382 # A standard object.
1383 objs="$objs $arg"
1386 *.lo)
1387 # A libtool-controlled object.
1389 # Check to see that this really is a libtool object.
1390 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1391 pic_object=
1392 non_pic_object=
1394 # Read the .lo file
1395 # If there is no directory component, then add one.
1396 case $arg in
1397 */* | *\\*) . $arg ;;
1398 *) . ./$arg ;;
1399 esac
1401 if test -z "$pic_object" || \
1402 test -z "$non_pic_object" ||
1403 test "$pic_object" = none && \
1404 test "$non_pic_object" = none; then
1405 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1406 exit 1
1409 # Extract subdirectory from the argument.
1410 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1411 if test "X$xdir" = "X$arg"; then
1412 xdir=
1413 else
1414 xdir="$xdir/"
1417 if test "$pic_object" != none; then
1418 # Prepend the subdirectory the object is found in.
1419 pic_object="$xdir$pic_object"
1421 if test "$prev" = dlfiles; then
1422 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1423 dlfiles="$dlfiles $pic_object"
1424 prev=
1425 continue
1426 else
1427 # If libtool objects are unsupported, then we need to preload.
1428 prev=dlprefiles
1432 # CHECK ME: I think I busted this. -Ossama
1433 if test "$prev" = dlprefiles; then
1434 # Preload the old-style object.
1435 dlprefiles="$dlprefiles $pic_object"
1436 prev=
1439 # A PIC object.
1440 libobjs="$libobjs $pic_object"
1441 arg="$pic_object"
1444 # Non-PIC object.
1445 if test "$non_pic_object" != none; then
1446 # Prepend the subdirectory the object is found in.
1447 non_pic_object="$xdir$non_pic_object"
1449 # A standard non-PIC object
1450 non_pic_objects="$non_pic_objects $non_pic_object"
1451 if test -z "$pic_object" || test "$pic_object" = none ; then
1452 arg="$non_pic_object"
1455 else
1456 # Only an error if not doing a dry-run.
1457 if test -z "$run"; then
1458 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1459 exit 1
1460 else
1461 # Dry-run case.
1463 # Extract subdirectory from the argument.
1464 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1465 if test "X$xdir" = "X$arg"; then
1466 xdir=
1467 else
1468 xdir="$xdir/"
1471 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1472 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1473 libobjs="$libobjs $pic_object"
1474 non_pic_objects="$non_pic_objects $non_pic_object"
1479 *.$libext)
1480 # An archive.
1481 deplibs="$deplibs $arg"
1482 old_deplibs="$old_deplibs $arg"
1483 continue
1486 *.la)
1487 # A libtool-controlled library.
1489 if test "$prev" = dlfiles; then
1490 # This library was specified with -dlopen.
1491 dlfiles="$dlfiles $arg"
1492 prev=
1493 elif test "$prev" = dlprefiles; then
1494 # The library was specified with -dlpreopen.
1495 dlprefiles="$dlprefiles $arg"
1496 prev=
1497 else
1498 deplibs="$deplibs $arg"
1500 continue
1503 # Some other compiler argument.
1505 # Unknown arguments in both finalize_command and compile_command need
1506 # to be aesthetically quoted because they are evaled later.
1507 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1508 case $arg in
1509 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1510 arg="\"$arg\""
1512 esac
1513 add_flags="$add_flags $arg"
1515 esac
1517 # Now actually substitute the argument into the commands.
1518 if test -n "$arg"; then
1519 compile_command="$compile_command $arg"
1520 finalize_command="$finalize_command $arg"
1522 done
1524 if test -n "$prev"; then
1525 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1526 $echo "$help" 1>&2
1527 exit 1
1530 # Infer tagged configuration to use if any are available and
1531 # if one wasn't chosen via the "--tag" command line option.
1532 # Only attempt this if the compiler in the base link
1533 # command doesn't match the default compiler.
1534 if test -n "$available_tags" && test -z "$tagname"; then
1535 case $base_compile in
1536 "$CC "*) ;;
1537 # Blanks in the command may have been stripped by the calling shell,
1538 # but not from the CC environment variable when ltconfig was run.
1539 "`$echo $CC` "*) ;;
1541 for z in $available_tags; do
1542 if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
1543 # Evaluate the configuration.
1544 eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
1545 case $base_compile in
1546 "$CC "*)
1547 # The compiler in $compile_command matches
1548 # the one in the tagged configuration.
1549 # Assume this is the tagged configuration we want.
1550 tagname=$z
1551 break
1553 "`$echo $CC` "*)
1554 tagname=$z
1555 break
1557 esac
1559 done
1560 # If $tagname still isn't set, then no tagged configuration
1561 # was found and let the user know that the "--tag" command
1562 # line option must be used.
1563 if test -z "$tagname"; then
1564 echo "$modename: unable to infer tagged configuration"
1565 echo "$modename: specify a tag with \`--tag'" 1>&2
1566 exit 1
1567 # else
1568 # echo "$modename: using $tagname tagged configuration"
1571 esac
1574 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1575 eval arg=\"$export_dynamic_flag_spec\"
1576 compile_command="$compile_command $arg"
1577 finalize_command="$finalize_command $arg"
1580 oldlibs=
1581 # calculate the name of the file, without its directory
1582 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1583 libobjs_save="$libobjs"
1585 if test -n "$shlibpath_var"; then
1586 # get the directories listed in $shlibpath_var
1587 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1588 else
1589 shlib_search_path=
1591 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1592 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1594 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1595 if test "X$output_objdir" = "X$output"; then
1596 output_objdir="$objdir"
1597 else
1598 output_objdir="$output_objdir/$objdir"
1600 # Create the object directory.
1601 if test ! -d $output_objdir; then
1602 $show "$mkdir $output_objdir"
1603 $run $mkdir $output_objdir
1604 status=$?
1605 if test $status -ne 0 && test ! -d $output_objdir; then
1606 exit $status
1610 # Determine the type of output
1611 case $output in
1613 $echo "$modename: you must specify an output file" 1>&2
1614 $echo "$help" 1>&2
1615 exit 1
1617 *.$libext) linkmode=oldlib ;;
1618 *.lo | *.$objext) linkmode=obj ;;
1619 *.la) linkmode=lib ;;
1620 *) linkmode=prog ;; # Anything else should be a program.
1621 esac
1623 specialdeplibs=
1624 libs=
1625 # Find all interdependent deplibs by searching for libraries
1626 # that are linked more than once (e.g. -la -lb -la)
1627 for deplib in $deplibs; do
1628 case "$libs " in
1629 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1630 esac
1631 libs="$libs $deplib"
1632 done
1634 if test $linkmode = lib; then
1635 libs="$predeps $libs $compiler_lib_search_path $postdeps"
1638 deplibs=
1639 newdependency_libs=
1640 newlib_search_path=
1641 need_relink=no # whether we're linking any uninstalled libtool libraries
1642 uninst_deplibs= # uninstalled libtool libraries
1643 uninst_path= # paths that contain uninstalled libtool libraries
1644 case $linkmode in
1645 lib)
1646 passes="conv link"
1647 for file in $dlfiles $dlprefiles; do
1648 case $file in
1649 *.la) ;;
1651 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1652 exit 1
1654 esac
1655 done
1657 prog)
1658 compile_deplibs=
1659 finalize_deplibs=
1660 alldeplibs=no
1661 newdlfiles=
1662 newdlprefiles=
1663 passes="conv scan dlopen dlpreopen link"
1665 *) passes="conv"
1667 esac
1668 for pass in $passes; do
1669 if test "$linkmode,$pass" = "lib,link" ||
1670 test "$linkmode,$pass" = "prog,scan"; then
1671 libs="$deplibs"
1672 deplibs=
1674 if test $linkmode = prog; then
1675 case $pass in
1676 dlopen) libs="$dlfiles" ;;
1677 dlpreopen) libs="$dlprefiles" ;;
1678 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1679 esac
1681 if test $pass = dlopen; then
1682 # Collect dlpreopened libraries
1683 save_deplibs="$deplibs"
1684 deplibs=
1686 for deplib in $libs; do
1687 lib=
1688 found=no
1689 case $deplib in
1690 -l*)
1691 if test $linkmode != lib && test $linkmode != prog; then
1692 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1693 continue
1695 if test $pass = conv; then
1696 deplibs="$deplib $deplibs"
1697 continue
1699 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1700 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1701 # Search the libtool library
1702 lib="$searchdir/lib${name}.la"
1703 if test -f "$lib"; then
1704 found=yes
1705 break
1707 done
1708 if test "$found" != yes; then
1709 if test "$linkmode,$pass" = "prog,link"; then
1710 compile_deplibs="$deplib $compile_deplibs"
1711 finalize_deplibs="$deplib $finalize_deplibs"
1712 else
1713 deplibs="$deplib $deplibs"
1714 test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1716 continue
1719 -L*)
1720 case $linkmode in
1721 lib)
1722 deplibs="$deplib $deplibs"
1723 test $pass = conv && continue
1724 newdependency_libs="$deplib $newdependency_libs"
1725 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1727 prog)
1728 if test $pass = conv; then
1729 deplibs="$deplib $deplibs"
1730 continue
1732 if test $pass = scan; then
1733 deplibs="$deplib $deplibs"
1734 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1735 else
1736 compile_deplibs="$deplib $compile_deplibs"
1737 finalize_deplibs="$deplib $finalize_deplibs"
1741 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1743 esac
1744 continue
1746 -R*)
1747 if test $pass = link; then
1748 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1749 # Make sure the xrpath contains only unique directories.
1750 case "$xrpath " in
1751 *" $dir "*) ;;
1752 *) xrpath="$xrpath $dir" ;;
1753 esac
1755 deplibs="$deplib $deplibs"
1756 continue
1758 *.la) lib="$deplib" ;;
1759 *.$libext)
1760 if test $pass = conv; then
1761 deplibs="$deplib $deplibs"
1762 continue
1764 case $linkmode in
1765 lib)
1766 if test "$deplibs_check_method" != pass_all; then
1767 echo
1768 echo "*** Warning: This library needs some functionality provided by $deplib."
1769 echo "*** I have the capability to make that library automatically link in when"
1770 echo "*** you link to this library. But I can only do this if you have a"
1771 echo "*** shared version of the library, which you do not appear to have."
1772 else
1773 echo
1774 echo "*** Warning: Linking the shared library $output against the"
1775 echo "*** static library $deplib is not portable!"
1776 deplibs="$deplib $deplibs"
1778 continue
1780 prog)
1781 if test $pass != link; then
1782 deplibs="$deplib $deplibs"
1783 else
1784 compile_deplibs="$deplib $compile_deplibs"
1785 finalize_deplibs="$deplib $finalize_deplibs"
1787 continue
1789 esac
1791 *.lo | *.$objext)
1792 if test $pass = conv; then
1793 deplibs="$deplib $deplibs"
1794 elif test $linkmode = prog; then
1795 if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1796 # If there is no dlopen support or we're linking statically,
1797 # we need to preload.
1798 newdlprefiles="$newdlprefiles $deplib"
1799 compile_deplibs="$deplib $compile_deplibs"
1800 finalize_deplibs="$deplib $finalize_deplibs"
1801 else
1802 newdlfiles="$newdlfiles $deplib"
1805 continue
1807 %DEPLIBS%)
1808 alldeplibs=yes
1809 continue
1811 esac
1812 if test $found = yes || test -f "$lib"; then :
1813 else
1814 $echo "$modename: cannot find the library \`$lib'" 1>&2
1815 exit 1
1818 # Check to see that this really is a libtool archive.
1819 if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1820 else
1821 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1822 exit 1
1825 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1826 test "X$ladir" = "X$lib" && ladir="."
1828 dlname=
1829 dlopen=
1830 dlpreopen=
1831 libdir=
1832 library_names=
1833 old_library=
1834 # If the library was installed with an old release of libtool,
1835 # it will not redefine variable installed.
1836 installed=yes
1838 # Read the .la file
1839 case $lib in
1840 */* | *\\*) . $lib ;;
1841 *) . ./$lib ;;
1842 esac
1844 if test "$linkmode,$pass" = "lib,link" ||
1845 test "$linkmode,$pass" = "prog,scan" ||
1846 { test $linkmode != prog && test $linkmode != lib; }; then
1847 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1848 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1851 if test $pass = conv; then
1852 # only check for convenience libraries
1853 deplibs="$lib $deplibs"
1854 if test -z "$libdir"; then
1855 if test -z "$old_library"; then
1856 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1857 exit 1
1859 # It is a libtool convenience library, so add in its objects.
1860 convenience="$convenience $ladir/$objdir/$old_library"
1861 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1862 tmp_libs=
1863 for deplib in $dependency_libs; do
1864 deplibs="$deplib $deplibs"
1865 case "$tmp_libs " in
1866 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1867 esac
1868 tmp_libs="$tmp_libs $deplib"
1869 done
1870 elif test $linkmode != prog && test $linkmode != lib; then
1871 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1872 exit 1
1874 continue
1877 # Get the name of the library we link against.
1878 linklib=
1879 for l in $old_library $library_names; do
1880 linklib="$l"
1881 done
1882 if test -z "$linklib"; then
1883 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1884 exit 1
1887 # This library was specified with -dlopen.
1888 if test $pass = dlopen; then
1889 if test -z "$libdir"; then
1890 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1891 exit 1
1893 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1894 # If there is no dlname, no dlopen support or we're linking
1895 # statically, we need to preload. We also need to preload any
1896 # dependent libraries so libltdl's deplib preloader doesn't
1897 # bomb out in the load deplibs phase.
1898 dlprefiles="$dlprefiles $lib $dependency_libs"
1899 else
1900 newdlfiles="$newdlfiles $lib"
1902 continue
1905 # We need an absolute path.
1906 case $ladir in
1907 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1909 abs_ladir=`cd "$ladir" && pwd`
1910 if test -z "$abs_ladir"; then
1911 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1912 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1913 abs_ladir="$ladir"
1916 esac
1917 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1919 # Find the relevant object directory and library name.
1920 if test "X$installed" = Xyes; then
1921 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1922 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1923 dir="$ladir"
1924 absdir="$abs_ladir"
1925 libdir="$abs_ladir"
1926 else
1927 dir="$libdir"
1928 absdir="$libdir"
1930 else
1931 dir="$ladir/$objdir"
1932 absdir="$abs_ladir/$objdir"
1933 # Remove this search path later
1934 uninst_path="$uninst_path $abs_ladir"
1936 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1938 # This library was specified with -dlpreopen.
1939 if test $pass = dlpreopen; then
1940 if test -z "$libdir"; then
1941 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1942 exit 1
1944 # Prefer using a static library (so that no silly _DYNAMIC symbols
1945 # are required to link).
1946 if test -n "$old_library"; then
1947 newdlprefiles="$newdlprefiles $dir/$old_library"
1948 # Otherwise, use the dlname, so that lt_dlopen finds it.
1949 elif test -n "$dlname"; then
1950 newdlprefiles="$newdlprefiles $dir/$dlname"
1951 else
1952 newdlprefiles="$newdlprefiles $dir/$linklib"
1956 if test -z "$libdir"; then
1957 # link the convenience library
1958 if test $linkmode = lib; then
1959 deplibs="$dir/$old_library $deplibs"
1960 elif test "$linkmode,$pass" = "prog,link"; then
1961 compile_deplibs="$dir/$old_library $compile_deplibs"
1962 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1963 else
1964 deplibs="$lib $deplibs" # used for prog,scan pass
1966 continue
1969 if test $linkmode = prog && test $pass != link; then
1970 newlib_search_path="$newlib_search_path $ladir"
1971 deplibs="$lib $deplibs"
1973 linkalldeplibs=no
1974 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1975 test "$build_libtool_libs" = no; then
1976 linkalldeplibs=yes
1979 tmp_libs=
1980 for deplib in $dependency_libs; do
1981 case $deplib in
1982 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1983 esac
1984 # Need to link against all dependency_libs?
1985 if test $linkalldeplibs = yes; then
1986 deplibs="$deplib $deplibs"
1987 else
1988 # Need to hardcode shared library paths
1989 # or/and link against static libraries
1990 newdependency_libs="$deplib $newdependency_libs"
1992 case "$tmp_libs " in
1993 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1994 esac
1995 tmp_libs="$tmp_libs $deplib"
1996 done
1997 continue
2000 if test "$linkmode,$pass" = "prog,link"; then
2001 if test -n "$library_names" &&
2002 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2003 # We need to hardcode the library path
2004 if test -n "$shlibpath_var"; then
2005 # Make sure the rpath contains only unique directories.
2006 case "$temp_rpath " in
2007 *" $dir "*) ;;
2008 *" $absdir "*) ;;
2009 *) temp_rpath="$temp_rpath $dir" ;;
2010 esac
2013 # Hardcode the library path.
2014 # Skip directories that are in the system default run-time
2015 # search path.
2016 case " $sys_lib_dlsearch_path " in
2017 *" $absdir "*) ;;
2019 case "$compile_rpath " in
2020 *" $absdir "*) ;;
2021 *) compile_rpath="$compile_rpath $absdir"
2022 esac
2024 esac
2026 case " $sys_lib_dlsearch_path " in
2027 *" $libdir "*) ;;
2029 case "$finalize_rpath " in
2030 *" $libdir "*) ;;
2031 *) finalize_rpath="$finalize_rpath $libdir"
2032 esac
2034 esac
2037 if test "$alldeplibs" = yes &&
2038 { test "$deplibs_check_method" = pass_all ||
2039 { test "$build_libtool_libs" = yes &&
2040 test -n "$library_names"; }; }; then
2041 # We only need to search for static libraries
2042 continue
2046 link_static=no # Whether the deplib will be linked statically
2047 if test -n "$library_names" &&
2048 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2049 if test "$installed" = no; then
2050 uninst_deplibs="$uninst_deplibs $lib"
2051 need_relink=yes
2053 # This is a shared library
2054 if test $linkmode = lib && test "$hardcode_into_libs" = all; then
2055 # Hardcode the library path.
2056 # Skip directories that are in the system default run-time
2057 # search path.
2058 case " $sys_lib_dlsearch_path " in
2059 *" $absdir "*) ;;
2061 case "$compile_rpath " in
2062 *" $absdir "*) ;;
2063 *) compile_rpath="$compile_rpath $absdir"
2064 esac
2066 esac
2067 case " $sys_lib_dlsearch_path " in
2068 *" $libdir "*) ;;
2070 case "$finalize_rpath " in
2071 *" $libdir "*) ;;
2072 *) finalize_rpath="$finalize_rpath $libdir"
2073 esac
2075 esac
2078 if test -n "$old_archive_from_expsyms_cmds"; then
2079 # figure out the soname
2080 set dummy $library_names
2081 realname="$2"
2082 shift; shift
2083 libname=`eval \\$echo \"$libname_spec\"`
2084 # use dlname if we got it. it's perfectly good, no?
2085 if test -n "$dlname"; then
2086 soname="$dlname"
2087 elif test -n "$soname_spec"; then
2088 # bleh windows
2089 case $host in
2090 *cygwin*)
2091 major=`expr $current - $age`
2092 versuffix="-$major"
2094 esac
2095 eval soname=\"$soname_spec\"
2096 else
2097 soname="$realname"
2100 # Make a new name for the extract_expsyms_cmds to use
2101 soroot="$soname"
2102 soname=`echo $soroot | sed -e 's/^.*\///'`
2103 newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
2105 # If the library has no export list, then create one now
2106 if test -f "$output_objdir/$soname-def"; then :
2107 else
2108 $show "extracting exported symbol list from \`$soname'"
2109 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2110 eval cmds=\"$extract_expsyms_cmds\"
2111 for cmd in $cmds; do
2112 IFS="$save_ifs"
2113 $show "$cmd"
2114 $run eval "$cmd" || exit $?
2115 done
2116 IFS="$save_ifs"
2119 # Create $newlib
2120 if test -f "$output_objdir/$newlib"; then :; else
2121 $show "generating import library for \`$soname'"
2122 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2123 eval cmds=\"$old_archive_from_expsyms_cmds\"
2124 for cmd in $cmds; do
2125 IFS="$save_ifs"
2126 $show "$cmd"
2127 $run eval "$cmd" || exit $?
2128 done
2129 IFS="$save_ifs"
2131 # make sure the library variables are pointing to the new library
2132 dir=$output_objdir
2133 linklib=$newlib
2136 if test $linkmode = prog || test "$mode" != relink; then
2137 add_shlibpath=
2138 add_dir=
2139 add=
2140 lib_linked=yes
2141 case $hardcode_action in
2142 immediate | unsupported)
2143 if test "$hardcode_direct" = no; then
2144 add="$dir/$linklib"
2145 elif test "$hardcode_minus_L" = no; then
2146 case $host in
2147 *-*-sunos*) add_shlibpath="$dir" ;;
2148 esac
2149 add_dir="-L$dir"
2150 add="-l$name"
2151 elif test "$hardcode_shlibpath_var" = no; then
2152 add_shlibpath="$dir"
2153 add="-l$name"
2154 else
2155 lib_linked=no
2158 relink)
2159 if test "$hardcode_direct" = yes; then
2160 add="$dir/$linklib"
2161 elif test "$hardcode_minus_L" = yes; then
2162 add_dir="-L$dir"
2163 add="-l$name"
2164 elif test "$hardcode_shlibpath_var" = yes; then
2165 add_shlibpath="$dir"
2166 add="-l$name"
2167 else
2168 lib_linked=no
2171 *) lib_linked=no ;;
2172 esac
2174 if test "$lib_linked" != yes; then
2175 $echo "$modename: configuration error: unsupported hardcode properties"
2176 exit 1
2179 if test -n "$add_shlibpath"; then
2180 case :$compile_shlibpath: in
2181 *":$add_shlibpath:"*) ;;
2182 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2183 esac
2185 if test $linkmode = prog; then
2186 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2187 test -n "$add" && compile_deplibs="$add $compile_deplibs"
2188 else
2189 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2190 test -n "$add" && deplibs="$add $deplibs"
2191 if test "$hardcode_direct" != yes && \
2192 test "$hardcode_minus_L" != yes && \
2193 test "$hardcode_shlibpath_var" = yes; then
2194 case :$finalize_shlibpath: in
2195 *":$libdir:"*) ;;
2196 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2197 esac
2202 if test $linkmode = prog || test "$mode" = relink; then
2203 add_shlibpath=
2204 add_dir=
2205 add=
2206 # Finalize command for both is simple: just hardcode it.
2207 if test "$hardcode_direct" = yes; then
2208 add="$libdir/$linklib"
2209 elif test "$hardcode_minus_L" = yes; then
2210 add_dir="-L$libdir"
2211 add="-l$name"
2212 elif test "$hardcode_shlibpath_var" = yes; then
2213 case :$finalize_shlibpath: in
2214 *":$libdir:"*) ;;
2215 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2216 esac
2217 add="-l$name"
2218 else
2219 # We cannot seem to hardcode it, guess we'll fake it.
2220 add_dir="-L$libdir"
2221 add="-l$name"
2224 if test $linkmode = prog; then
2225 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2226 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2227 else
2228 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2229 test -n "$add" && deplibs="$add $deplibs"
2232 elif test $linkmode = prog; then
2233 # Here we assume that one of hardcode_direct or hardcode_minus_L
2234 # is not unsupported. This is valid on all known static and
2235 # shared platforms.
2236 if test "$hardcode_direct" != unsupported; then
2237 test -n "$old_library" && linklib="$old_library"
2238 compile_deplibs="$dir/$linklib $compile_deplibs"
2239 finalize_deplibs="$dir/$linklib $finalize_deplibs"
2240 else
2241 compile_deplibs="-l$name -L$dir $compile_deplibs"
2242 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2244 elif test "$build_libtool_libs" = yes; then
2245 # Not a shared library
2246 if test "$deplibs_check_method" != pass_all; then
2247 # We're trying link a shared library against a static one
2248 # but the system doesn't support it.
2249 # Just print a warning and add the library to dependency_libs so
2250 # that the program can be linked against the static library.
2251 echo
2252 echo "*** Warning: This library needs some functionality provided by $lib."
2253 echo "*** I have the capability to make that library automatically link in when"
2254 echo "*** you link to this library. But I can only do this if you have a"
2255 echo "*** shared version of the library, which you do not appear to have."
2256 else
2257 convenience="$convenience $dir/$old_library"
2258 old_convenience="$old_convenience $dir/$old_library"
2259 deplibs="$dir/$old_library $deplibs"
2260 link_static=yes
2264 if test $linkmode = lib; then
2265 if test -n "$dependency_libs" &&
2266 { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
2267 test $link_static = yes; }; then
2268 # Extract -R from dependency_libs
2269 temp_deplibs=
2270 for libdir in $dependency_libs; do
2271 case $libdir in
2272 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2273 case " $xrpath " in
2274 *" $temp_xrpath "*) ;;
2275 *) xrpath="$xrpath $temp_xrpath";;
2276 esac;;
2277 *) temp_deplibs="$temp_deplibs $libdir";;
2278 esac
2279 done
2280 dependency_libs="$temp_deplibs"
2283 newlib_search_path="$newlib_search_path $absdir"
2284 # Link against this library
2285 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2286 # ... and its dependency_libs
2287 tmp_libs=
2288 for deplib in $dependency_libs; do
2289 newdependency_libs="$deplib $newdependency_libs"
2290 case "$tmp_libs " in
2291 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2292 esac
2293 tmp_libs="$tmp_libs $deplib"
2294 done
2296 if test $link_all_deplibs != no; then
2297 # Add the search paths of all dependency libraries
2298 for deplib in $dependency_libs; do
2299 case $deplib in
2300 -L*) path="$deplib" ;;
2301 *.la)
2302 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2303 test "X$dir" = "X$deplib" && dir="."
2304 # We need an absolute path.
2305 case $dir in
2306 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2308 absdir=`cd "$dir" && pwd`
2309 if test -z "$absdir"; then
2310 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2311 absdir="$dir"
2314 esac
2315 if grep "^installed=no" $deplib > /dev/null; then
2316 path="-L$absdir/$objdir"
2317 else
2318 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2319 if test -z "$libdir"; then
2320 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2321 exit 1
2323 if test "$absdir" != "$libdir"; then
2324 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2326 path="-L$absdir"
2329 *) continue ;;
2330 esac
2331 case " $deplibs " in
2332 *" $path "*) ;;
2333 *) deplibs="$path $deplibs" ;;
2334 esac
2335 done
2338 done
2339 dependency_libs="$newdependency_libs"
2340 if test $pass = dlpreopen; then
2341 # Link the dlpreopened libraries before other libraries
2342 for deplib in $save_deplibs; do
2343 deplibs="$deplib $deplibs"
2344 done
2346 if test $pass != dlopen; then
2347 if test $pass != conv; then
2348 # Make sure lib_search_path contains only unique directories.
2349 lib_search_path=
2350 for dir in $newlib_search_path; do
2351 case "$lib_search_path " in
2352 *" $dir "*) ;;
2353 *) lib_search_path="$lib_search_path $dir" ;;
2354 esac
2355 done
2356 newlib_search_path=
2359 if test "$linkmode,$pass" != "prog,link"; then
2360 vars="deplibs"
2361 else
2362 vars="compile_deplibs finalize_deplibs"
2364 for var in $vars dependency_libs; do
2365 # Make sure that $var contains only unique libraries
2366 # and add them in reverse order
2367 eval tmp_libs=\"\$$var\"
2368 new_libs=
2369 for deplib in $tmp_libs; do
2370 case "$deplib" in
2371 -L*) new_libs="$deplib $new_libs" ;;
2373 case " $specialdeplibs " in
2374 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2376 case " $new_libs " in
2377 *" $deplib "*) ;;
2378 *) new_libs="$deplib $new_libs" ;;
2379 esac
2381 esac
2383 esac
2384 done
2385 tmp_libs=
2386 for deplib in $new_libs; do
2387 case $deplib in
2388 -L*)
2389 case " $tmp_libs " in
2390 *" $deplib "*) ;;
2391 *) tmp_libs="$tmp_libs $deplib" ;;
2392 esac
2394 *) tmp_libs="$tmp_libs $deplib" ;;
2395 esac
2396 done
2397 eval $var=\"$tmp_libs\"
2398 done
2400 done
2401 if test $linkmode = prog; then
2402 dlfiles="$newdlfiles"
2403 dlprefiles="$newdlprefiles"
2406 case $linkmode in
2407 oldlib)
2408 if test -n "$deplibs"; then
2409 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2412 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2413 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2416 if test -n "$rpath"; then
2417 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2420 if test -n "$xrpath"; then
2421 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2424 if test -n "$vinfo"; then
2425 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2428 if test -n "$release"; then
2429 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2432 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2433 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2436 # Now set the variables for building old libraries.
2437 build_libtool_libs=no
2438 oldlibs="$output"
2439 objs="$objs$old_deplibs"
2442 lib)
2443 # Make sure we only generate libraries of the form `libNAME.la'.
2444 case $outputname in
2445 lib*)
2446 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2447 eval libname=\"$libname_spec\"
2450 if test "$module" = no; then
2451 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2452 $echo "$help" 1>&2
2453 exit 1
2455 if test "$need_lib_prefix" != no; then
2456 # Add the "lib" prefix for modules if required
2457 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2458 eval libname=\"$libname_spec\"
2459 else
2460 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2463 esac
2465 if test -n "$objs"; then
2466 if test "$deplibs_check_method" != pass_all; then
2467 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2468 exit 1
2469 else
2470 echo
2471 echo "*** Warning: Linking the shared library $output against the non-libtool"
2472 echo "*** objects $objs is not portable!"
2473 libobjs="$libobjs $objs"
2477 if test "$dlself" != no; then
2478 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2481 set dummy $rpath
2482 if test $# -gt 2; then
2483 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2485 install_libdir="$2"
2487 oldlibs=
2488 if test -z "$rpath"; then
2489 if test "$build_libtool_libs" = yes; then
2490 # Building a libtool convenience library.
2491 # Some compilers have problems with a `.al' extension so
2492 # convenience libraries should have the same extension an
2493 # archive normally would.
2494 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2495 build_libtool_libs=convenience
2496 build_old_libs=yes
2499 if test -n "$vinfo"; then
2500 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2503 if test -n "$release"; then
2504 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2506 else
2508 # Parse the version information argument.
2509 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
2510 set dummy $vinfo 0 0 0
2511 IFS="$save_ifs"
2513 if test -n "$8"; then
2514 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2515 $echo "$help" 1>&2
2516 exit 1
2519 current="$2"
2520 revision="$3"
2521 age="$4"
2523 # Check that each of the things are valid numbers.
2524 case $current in
2525 0 | [1-9] | [1-9][0-9]*) ;;
2527 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2528 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2529 exit 1
2531 esac
2533 case $revision in
2534 0 | [1-9] | [1-9][0-9]*) ;;
2536 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2537 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2538 exit 1
2540 esac
2542 case $age in
2543 0 | [1-9] | [1-9][0-9]*) ;;
2545 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2546 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2547 exit 1
2549 esac
2551 if test $age -gt $current; then
2552 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2553 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2554 exit 1
2557 # Calculate the version variables.
2558 major=
2559 versuffix=
2560 verstring=
2561 case $version_type in
2562 none) ;;
2564 darwin)
2565 # Like Linux, but with the current version available in
2566 # verstring for coding it into the library header
2567 major=.`expr $current - $age`
2568 versuffix="$major.$age.$revision"
2569 # Darwin ld doesn't like 0 for these options...
2570 minor_current=`expr $current + 1`
2571 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2574 freebsd-aout)
2575 major=".$current"
2576 versuffix=".$current.$revision";
2579 freebsd-elf)
2580 major=".$current"
2581 versuffix=".$current";
2584 irix)
2585 major=`expr $current - $age + 1`
2586 verstring="sgi$major.$revision"
2588 # Add in all the interfaces that we are compatible with.
2589 loop=$revision
2590 while test $loop != 0; do
2591 iface=`expr $revision - $loop`
2592 loop=`expr $loop - 1`
2593 verstring="sgi$major.$iface:$verstring"
2594 done
2596 # Before this point, $major must not contain `.'.
2597 major=.$major
2598 versuffix="$major.$revision"
2601 linux)
2602 major=.`expr $current - $age`
2603 versuffix="$major.$age.$revision"
2606 osf)
2607 major=`expr $current - $age`
2608 versuffix=".$current.$age.$revision"
2609 verstring="$current.$age.$revision"
2611 # Add in all the interfaces that we are compatible with.
2612 loop=$age
2613 while test $loop != 0; do
2614 iface=`expr $current - $loop`
2615 loop=`expr $loop - 1`
2616 verstring="$verstring:${iface}.0"
2617 done
2619 # Make executables depend on our current version.
2620 verstring="$verstring:${current}.0"
2623 sunos)
2624 major=".$current"
2625 versuffix=".$current.$revision"
2628 windows)
2629 # Use '-' rather than '.', since we only want one
2630 # extension on DOS 8.3 filesystems.
2631 major=`expr $current - $age`
2632 versuffix="-$major"
2636 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2637 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2638 exit 1
2640 esac
2642 # Clear the version info if we defaulted, and they specified a release.
2643 if test -z "$vinfo" && test -n "$release"; then
2644 major=
2645 verstring="0.0"
2646 if test "$need_version" = no; then
2647 versuffix=
2648 else
2649 versuffix=".0.0"
2653 # Remove version info from name if versioning should be avoided
2654 if test "$avoid_version" = yes && test "$need_version" = no; then
2655 major=
2656 versuffix=
2657 verstring=""
2660 # Check to see if the archive will have undefined symbols.
2661 if test "$allow_undefined" = yes; then
2662 if test "$allow_undefined_flag" = unsupported; then
2663 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2664 build_libtool_libs=no
2665 build_old_libs=yes
2667 else
2668 # Don't allow undefined symbols.
2669 allow_undefined_flag="$no_undefined_flag"
2673 if test "$mode" != relink; then
2674 # Remove our outputs, but don't remove object files since they
2675 # may have been created when compiling PIC objects.
2676 removelist=
2677 tempremovelist=`echo "$output_objdir/*"`
2678 for p in $tempremovelist; do
2679 case $p in
2680 *.$objext)
2682 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
2683 removelist="$removelist $p"
2685 *) ;;
2686 esac
2687 done
2688 if test -n "$removelist"; then
2689 $show "${rm}r $removelist"
2690 $run ${rm}r $removelist
2694 # Now set the variables for building old libraries.
2695 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2696 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2698 # Transform .lo files to .o files.
2699 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2702 # Eliminate all temporary directories.
2703 for path in $uninst_path; do
2704 lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2705 deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2706 dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2707 done
2709 if test -n "$xrpath"; then
2710 # If the user specified any rpath flags, then add them.
2711 temp_xrpath=
2712 for libdir in $xrpath; do
2713 temp_xrpath="$temp_xrpath -R$libdir"
2714 case "$finalize_rpath " in
2715 *" $libdir "*) ;;
2716 *) finalize_rpath="$finalize_rpath $libdir" ;;
2717 esac
2718 done
2719 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2720 dependency_libs="$temp_xrpath $dependency_libs"
2724 # Make sure dlfiles contains only unique files that won't be dlpreopened
2725 old_dlfiles="$dlfiles"
2726 dlfiles=
2727 for lib in $old_dlfiles; do
2728 case " $dlprefiles $dlfiles " in
2729 *" $lib "*) ;;
2730 *) dlfiles="$dlfiles $lib" ;;
2731 esac
2732 done
2734 # Make sure dlprefiles contains only unique files
2735 old_dlprefiles="$dlprefiles"
2736 dlprefiles=
2737 for lib in $old_dlprefiles; do
2738 case "$dlprefiles " in
2739 *" $lib "*) ;;
2740 *) dlprefiles="$dlprefiles $lib" ;;
2741 esac
2742 done
2744 if test "$build_libtool_libs" = yes; then
2745 if test -n "$rpath"; then
2746 case $host in
2747 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2748 # these systems don't actually have a c library (as such)!
2750 *-*-rhapsody* | *-*-darwin1.[012])
2751 # Rhapsody C library is in the System framework
2752 deplibs="$deplibs -framework System"
2755 # Add libc to deplibs on all other systems if necessary.
2756 if test $build_libtool_need_lc = "yes"; then
2757 deplibs="$deplibs -lc"
2760 esac
2763 # Transform deplibs into only deplibs that can be linked in shared.
2764 name_save=$name
2765 libname_save=$libname
2766 release_save=$release
2767 versuffix_save=$versuffix
2768 major_save=$major
2769 # I'm not sure if I'm treating the release correctly. I think
2770 # release should show up in the -l (ie -lgmp5) so we don't want to
2771 # add it in twice. Is that correct?
2772 release=""
2773 versuffix=""
2774 major=""
2775 newdeplibs=
2776 droppeddeps=no
2777 case $deplibs_check_method in
2778 pass_all)
2779 # Don't check for shared/static. Everything works.
2780 # This might be a little naive. We might want to check
2781 # whether the library exists or not. But this is on
2782 # osf3 & osf4 and I'm not really sure... Just
2783 # implementing what was already the behaviour.
2784 newdeplibs=$deplibs
2786 test_compile)
2787 # This code stresses the "libraries are programs" paradigm to its
2788 # limits. Maybe even breaks it. We compile a program, linking it
2789 # against the deplibs as a proxy for the library. Then we can check
2790 # whether they linked in statically or dynamically with ldd.
2791 $rm conftest.c
2792 cat > conftest.c <<EOF
2793 int main() { return 0; }
2795 $rm conftest
2796 $LTCC -o conftest conftest.c $deplibs
2797 if test $? -eq 0 ; then
2798 ldd_output=`ldd conftest`
2799 for i in $deplibs; do
2800 name="`expr $i : '-l\(.*\)'`"
2801 # If $name is empty we are operating on a -L argument.
2802 if test "$name" != "" -a "$name" != "0"; then
2803 libname=`eval \\$echo \"$libname_spec\"`
2804 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2805 set dummy $deplib_matches
2806 deplib_match=$2
2807 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2808 newdeplibs="$newdeplibs $i"
2809 else
2810 droppeddeps=yes
2811 echo
2812 echo "*** Warning: This library needs some functionality provided by $i."
2813 echo "*** I have the capability to make that library automatically link in when"
2814 echo "*** you link to this library. But I can only do this if you have a"
2815 echo "*** shared version of the library, which you do not appear to have."
2817 else
2818 newdeplibs="$newdeplibs $i"
2820 done
2821 else
2822 # Error occured in the first compile. Let's try to salvage the situation:
2823 # Compile a seperate program for each library.
2824 for i in $deplibs; do
2825 name="`expr $i : '-l\(.*\)'`"
2826 # If $name is empty we are operating on a -L argument.
2827 if test "$name" != "" -a "$name" != "0"; then
2828 $rm conftest
2829 $LTCC -o conftest conftest.c $i
2830 # Did it work?
2831 if test $? -eq 0 ; then
2832 ldd_output=`ldd conftest`
2833 libname=`eval \\$echo \"$libname_spec\"`
2834 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2835 set dummy $deplib_matches
2836 deplib_match=$2
2837 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2838 newdeplibs="$newdeplibs $i"
2839 else
2840 droppeddeps=yes
2841 echo
2842 echo "*** Warning: This library needs some functionality provided by $i."
2843 echo "*** I have the capability to make that library automatically link in when"
2844 echo "*** you link to this library. But I can only do this if you have a"
2845 echo "*** shared version of the library, which you do not appear to have."
2847 else
2848 droppeddeps=yes
2849 echo
2850 echo "*** Warning! Library $i is needed by this library but I was not able to"
2851 echo "*** make it link in! You will probably need to install it or some"
2852 echo "*** library that it depends on before this library will be fully"
2853 echo "*** functional. Installing it before continuing would be even better."
2855 else
2856 newdeplibs="$newdeplibs $i"
2858 done
2861 file_magic*)
2862 set dummy $deplibs_check_method
2863 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2864 for a_deplib in $deplibs; do
2865 name="`expr $a_deplib : '-l\(.*\)'`"
2866 # If $name is empty we are operating on a -L argument.
2867 if test "$name" != "" -a "$name" != "0"; then
2868 libname=`eval \\$echo \"$libname_spec\"`
2869 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2870 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2871 for potent_lib in $potential_libs; do
2872 # Follow soft links.
2873 if ls -lLd "$potent_lib" 2>/dev/null \
2874 | grep " -> " >/dev/null; then
2875 continue
2877 # The statement above tries to avoid entering an
2878 # endless loop below, in case of cyclic links.
2879 # We might still enter an endless loop, since a link
2880 # loop can be closed while we follow links,
2881 # but so what?
2882 potlib="$potent_lib"
2883 while test -h "$potlib" 2>/dev/null; do
2884 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2885 case $potliblink in
2886 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2887 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2888 esac
2889 done
2890 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2891 | sed 10q \
2892 | egrep "$file_magic_regex" > /dev/null; then
2893 newdeplibs="$newdeplibs $a_deplib"
2894 a_deplib=""
2895 break 2
2897 done
2898 done
2899 if test -n "$a_deplib" ; then
2900 droppeddeps=yes
2901 echo
2902 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2903 echo "*** I have the capability to make that library automatically link in when"
2904 echo "*** you link to this library. But I can only do this if you have a"
2905 echo "*** shared version of the library, which you do not appear to have."
2907 else
2908 # Add a -L argument.
2909 newdeplibs="$newdeplibs $a_deplib"
2911 done # Gone through all deplibs.
2913 none | unknown | *)
2914 newdeplibs=""
2915 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2916 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2917 grep . >/dev/null; then
2918 echo
2919 if test "X$deplibs_check_method" = "Xnone"; then
2920 echo "*** Warning: inter-library dependencies are not supported in this platform."
2921 else
2922 echo "*** Warning: inter-library dependencies are not known to be supported."
2924 echo "*** All declared inter-library dependencies are being dropped."
2925 droppeddeps=yes
2928 esac
2929 versuffix=$versuffix_save
2930 major=$major_save
2931 release=$release_save
2932 libname=$libname_save
2933 name=$name_save
2935 if test "$droppeddeps" = yes; then
2936 if test "$module" = yes; then
2937 echo
2938 echo "*** Warning: libtool could not satisfy all declared inter-library"
2939 echo "*** dependencies of module $libname. Therefore, libtool will create"
2940 echo "*** a static module, that should work as long as the dlopening"
2941 echo "*** application is linked with the -dlopen flag."
2942 if test -z "$global_symbol_pipe"; then
2943 echo
2944 echo "*** However, this would only work if libtool was able to extract symbol"
2945 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2946 echo "*** not find such a program. So, this module is probably useless."
2947 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2949 if test "$build_old_libs" = no; then
2950 oldlibs="$output_objdir/$libname.$libext"
2951 build_libtool_libs=module
2952 build_old_libs=yes
2953 else
2954 build_libtool_libs=no
2956 else
2957 echo "*** The inter-library dependencies that have been dropped here will be"
2958 echo "*** automatically added whenever a program is linked with this library"
2959 echo "*** or is declared to -dlopen it."
2961 if test $allow_undefined = no; then
2962 echo
2963 echo "*** Since this library must not contain undefined symbols,"
2964 echo "*** because either the platform does not support them or"
2965 echo "*** it was explicitly requested with -no-undefined,"
2966 echo "*** libtool will only create a static version of it."
2967 if test "$build_old_libs" = no; then
2968 oldlibs="$output_objdir/$libname.$libext"
2969 build_libtool_libs=module
2970 build_old_libs=yes
2971 else
2972 build_libtool_libs=no
2977 # Done checking deplibs!
2978 deplibs=$newdeplibs
2981 # All the library-specific variables (install_libdir is set above).
2982 library_names=
2983 old_library=
2984 dlname=
2986 # Test again, we may have decided not to build it any more
2987 if test "$build_libtool_libs" = yes; then
2988 if test $hardcode_into_libs = yes; then
2989 # Hardcode the library paths
2990 hardcode_libdirs=
2991 dep_rpath=
2992 rpath="$finalize_rpath"
2993 test "$mode" != relink && rpath="$compile_rpath$rpath"
2994 for libdir in $rpath; do
2995 if test -n "$hardcode_libdir_flag_spec"; then
2996 if test -n "$hardcode_libdir_separator"; then
2997 if test -z "$hardcode_libdirs"; then
2998 hardcode_libdirs="$libdir"
2999 else
3000 # Just accumulate the unique libdirs.
3001 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3002 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3005 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3007 esac
3009 else
3010 eval flag=\"$hardcode_libdir_flag_spec\"
3011 dep_rpath="$dep_rpath $flag"
3013 elif test -n "$runpath_var"; then
3014 case "$perm_rpath " in
3015 *" $libdir "*) ;;
3016 *) perm_rpath="$perm_rpath $libdir" ;;
3017 esac
3019 done
3020 # Substitute the hardcoded libdirs into the rpath.
3021 if test -n "$hardcode_libdir_separator" &&
3022 test -n "$hardcode_libdirs"; then
3023 libdir="$hardcode_libdirs"
3024 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3026 if test -n "$runpath_var" && test -n "$perm_rpath"; then
3027 # We should set the runpath_var.
3028 rpath=
3029 for dir in $perm_rpath; do
3030 rpath="$rpath$dir:"
3031 done
3032 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3034 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3037 shlibpath="$finalize_shlibpath"
3038 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3039 if test -n "$shlibpath"; then
3040 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3043 # Get the real and link names of the library.
3044 eval library_names=\"$library_names_spec\"
3045 set dummy $library_names
3046 realname="$2"
3047 shift; shift
3049 if test -n "$soname_spec"; then
3050 eval soname=\"$soname_spec\"
3051 else
3052 soname="$realname"
3054 if test x$dlname = x; then
3055 dlname=$soname
3058 lib="$output_objdir/$realname"
3059 for link
3061 linknames="$linknames $link"
3062 done
3064 # # Ensure that we have .o objects for linkers which dislike .lo
3065 # # (e.g. aix) in case we are running --disable-static
3066 # for obj in $libobjs; do
3067 # xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
3068 # if test "X$xdir" = "X$obj"; then
3069 # xdir="."
3070 # else
3071 # xdir="$xdir"
3072 # fi
3073 # baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
3074 # oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3075 # if test ! -f $xdir/$oldobj && test "$baseobj" != "$oldobj"; then
3076 # $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
3077 # $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
3078 # fi
3079 # done
3081 # Use standard objects if they are pic
3082 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3084 # Prepare the list of exported symbols
3085 if test -z "$export_symbols"; then
3086 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3087 $show "generating symbol list for \`$libname.la'"
3088 export_symbols="$output_objdir/$libname.exp"
3089 $run $rm $export_symbols
3090 eval cmds=\"$export_symbols_cmds\"
3091 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3092 for cmd in $cmds; do
3093 IFS="$save_ifs"
3094 $show "$cmd"
3095 $run eval "$cmd" || exit $?
3096 done
3097 IFS="$save_ifs"
3098 if test -n "$export_symbols_regex"; then
3099 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3100 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3101 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3102 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3107 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3108 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3111 if test -n "$convenience"; then
3112 if test -n "$whole_archive_flag_spec"; then
3113 save_libobjs=$libobjs
3114 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3115 else
3116 gentop="$output_objdir/${outputname}x"
3117 $show "${rm}r $gentop"
3118 $run ${rm}r "$gentop"
3119 $show "$mkdir $gentop"
3120 $run $mkdir "$gentop"
3121 status=$?
3122 if test $status -ne 0 && test ! -d "$gentop"; then
3123 exit $status
3125 generated="$generated $gentop"
3127 for xlib in $convenience; do
3128 # Extract the objects.
3129 case $xlib in
3130 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3131 *) xabs=`pwd`"/$xlib" ;;
3132 esac
3133 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3134 xdir="$gentop/$xlib"
3136 $show "${rm}r $xdir"
3137 $run ${rm}r "$xdir"
3138 $show "$mkdir $xdir"
3139 $run $mkdir "$xdir"
3140 status=$?
3141 if test $status -ne 0 && test ! -d "$xdir"; then
3142 exit $status
3144 $show "(cd $xdir && $AR x $xabs)"
3145 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3147 libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3148 done
3152 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3153 eval flag=\"$thread_safe_flag_spec\"
3154 linker_flags="$linker_flags $flag"
3157 # Make a backup of the uninstalled library when relinking
3158 if test "$mode" = relink && test "$hardcode_into_libs" = all; then
3159 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
3162 # Add all flags from the command line. We here create a library,
3163 # but those flags were only added to compile_command and
3164 # finalize_command, which are only used when creating executables.
3165 # So do it by hand here.
3166 compiler_flags="$compiler_flags $add_flags"
3167 # Only add it to commands which use CC, instead of LD, i.e.
3168 # only to $compiler_flags
3169 #linker_flags="$linker_flags $add_flags"
3171 # Do each of the archive commands.
3172 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3173 eval cmds=\"$archive_expsym_cmds\"
3174 else
3175 eval cmds=\"$archive_cmds\"
3177 if len=`expr "X$cmds" : ".*"` &&
3178 test $len -le $max_cmd_len; then
3180 else
3181 # The command line is too long to link in one step, link piecewise.
3182 $echo "creating reloadable object files..."
3184 # Save the value of $output and $libobjs because we want to
3185 # use them later. If we have whole_archive_flag_spec, we
3186 # want to use save_libobjs as it was before
3187 # whole_archive_flag_spec was expanded, because we can't
3188 # assume the linker understands whole_archive_flag_spec.
3189 # This may have to be revisited, in case too many
3190 # convenience libraries get linked in and end up exceeding
3191 # the spec.
3192 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
3193 save_libobjs=$libobjs
3195 save_output=$output
3197 # Clear the reloadable object creation command queue and
3198 # initialize k to one.
3199 test_cmds=
3200 concat_cmds=
3201 objlist=
3202 delfiles=
3203 last_robj=
3205 output=$output_objdir/$save_output-${k}.$objext
3206 # Loop over the list of objects to be linked.
3207 for obj in $save_libobjs
3209 eval test_cmds=\"$reload_cmds $objlist $last_robj\"
3210 if test "X$objlist" = X ||
3211 { len=`expr "X$test_cmds" : ".*"` &&
3212 test $len -le $max_cmd_len; }; then
3213 objlist="$objlist $obj"
3214 else
3215 # The command $test_cmds is almost too long, add a
3216 # command to the queue.
3217 if test $k -eq 1 ; then
3218 # The first file doesn't have a previous command to add.
3219 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
3220 else
3221 # All subsequent reloadable object files will link in
3222 # the last one created.
3223 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
3225 last_robj=$output_objdir/$save_output-${k}.$objext
3226 k=`expr $k + 1`
3227 output=$output_objdir/$save_output-${k}.$objext
3228 objlist=$obj
3229 len=1
3231 done
3232 # Handle the remaining objects by creating one last
3233 # reloadable object file. All subsequent reloadable object
3234 # files will link in the last one created.
3235 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
3236 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
3238 # Set up a command to remove the reloadale object files
3239 # after they are used.
3241 while test $i -lt $k
3243 i=`expr $i + 1`
3244 delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
3245 done
3247 $echo "creating a temporary reloadable object file: $output"
3249 # Loop through the commands generated above and execute them.
3250 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3251 for cmd in $concat_cmds; do
3252 IFS="$save_ifs"
3253 $show "$cmd"
3254 $run eval "$cmd" || exit $?
3255 done
3256 IFS="$save_ifs"
3258 libobjs=$output
3259 # Restore the value of output.
3260 output=$save_output
3262 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3263 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3265 # Expand the library linking commands again to reset the
3266 # value of $libobjs for piecewise linking.
3268 # Do each of the archive commands.
3269 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3270 eval cmds=\"$archive_expsym_cmds\"
3271 else
3272 eval cmds=\"$archive_cmds\"
3275 # Append the command to remove the reloadable object files
3276 # to the just-reset $cmds.
3277 eval cmds=\"\$cmds~$rm $delfiles\"
3279 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3280 for cmd in $cmds; do
3281 IFS="$save_ifs"
3282 $show "$cmd"
3283 $run eval "$cmd" || exit $?
3284 done
3285 IFS="$save_ifs"
3287 # Restore the uninstalled library and exit
3288 if test "$mode" = relink && test "$hardcode_into_libs" = all; then
3289 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3290 exit 0
3293 # Create links to the real library.
3294 for linkname in $linknames; do
3295 if test "$realname" != "$linkname"; then
3296 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3297 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
3299 done
3301 # If -module or -export-dynamic was specified, set the dlname.
3302 if test "$module" = yes || test "$export_dynamic" = yes; then
3303 # On all known operating systems, these are identical.
3304 dlname="$soname"
3309 obj)
3310 if test -n "$deplibs"; then
3311 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3314 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3315 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3318 if test -n "$rpath"; then
3319 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3322 if test -n "$xrpath"; then
3323 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3326 if test -n "$vinfo"; then
3327 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3330 if test -n "$release"; then
3331 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3334 case $output in
3335 *.lo)
3336 if test -n "$objs$old_deplibs"; then
3337 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3338 exit 1
3340 libobj="$output"
3341 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
3344 libobj=
3345 obj="$output"
3347 esac
3349 # Delete the old objects.
3350 $run $rm $obj $libobj
3352 # Objects from convenience libraries. This assumes
3353 # single-version convenience libraries. Whenever we create
3354 # different ones for PIC/non-PIC, this we'll have to duplicate
3355 # the extraction.
3356 reload_conv_objs=
3357 gentop=
3358 # reload_cmds runs $LD directly, so let us get rid of
3359 # -Wl from whole_archive_flag_spec
3362 if test -n "$convenience"; then
3363 if test -n "$whole_archive_flag_spec"; then
3364 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3365 else
3366 gentop="$output_objdir/${obj}x"
3367 $show "${rm}r $gentop"
3368 $run ${rm}r "$gentop"
3369 $show "$mkdir $gentop"
3370 $run $mkdir "$gentop"
3371 status=$?
3372 if test $status -ne 0 && test ! -d "$gentop"; then
3373 exit $status
3375 generated="$generated $gentop"
3377 for xlib in $convenience; do
3378 # Extract the objects.
3379 case $xlib in
3380 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3381 *) xabs=`pwd`"/$xlib" ;;
3382 esac
3383 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3384 xdir="$gentop/$xlib"
3386 $show "${rm}r $xdir"
3387 $run ${rm}r "$xdir"
3388 $show "$mkdir $xdir"
3389 $run $mkdir "$xdir"
3390 status=$?
3391 if test $status -ne 0 && test ! -d "$xdir"; then
3392 exit $status
3394 $show "(cd $xdir && $AR x $xabs)"
3395 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3397 reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3398 done
3402 # Create the old-style object.
3403 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
3405 output="$obj"
3406 eval cmds=\"$reload_cmds\"
3407 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3408 for cmd in $cmds; do
3409 IFS="$save_ifs"
3410 $show "$cmd"
3411 $run eval "$cmd" || exit $?
3412 done
3413 IFS="$save_ifs"
3415 # Exit if we aren't doing a library object file.
3416 if test -z "$libobj"; then
3417 if test -n "$gentop"; then
3418 $show "${rm}r $gentop"
3419 $run ${rm}r $gentop
3422 exit 0
3425 if test "$build_libtool_libs" != yes; then
3426 if test -n "$gentop"; then
3427 $show "${rm}r $gentop"
3428 $run ${rm}r $gentop
3431 # Create an invalid libtool object if no PIC, so that we don't
3432 # accidentally link it into a program.
3433 # $show "echo timestamp > $libobj"
3434 # $run eval "echo timestamp > $libobj" || exit $?
3435 exit 0
3438 if test -n "$pic_flag" || test "$pic_mode" != default; then
3439 # Only do commands if we really have different PIC objects.
3440 reload_objs="$libobjs $reload_conv_objs"
3441 output="$libobj"
3442 eval cmds=\"$reload_cmds\"
3443 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3444 for cmd in $cmds; do
3445 IFS="$save_ifs"
3446 $show "$cmd"
3447 $run eval "$cmd" || exit $?
3448 done
3449 IFS="$save_ifs"
3450 # else
3451 # # Just create a symlink.
3452 # $show $rm $libobj
3453 # $run $rm $libobj
3454 # xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3455 # if test "X$xdir" = "X$libobj"; then
3456 # xdir="."
3457 # else
3458 # xdir="$xdir"
3459 # fi
3460 # baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3461 # oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3462 # $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3463 # $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3466 if test -n "$gentop"; then
3467 $show "${rm}r $gentop"
3468 $run ${rm}r $gentop
3471 exit 0
3474 prog)
3475 case $host in
3476 *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3477 esac
3478 if test -n "$vinfo"; then
3479 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3482 if test -n "$release"; then
3483 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3486 if test "$preload" = yes; then
3487 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3488 test "$dlopen_self_static" = unknown; then
3489 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3493 compile_command="$compile_command $compile_deplibs"
3494 finalize_command="$finalize_command $finalize_deplibs"
3496 if test -n "$rpath$xrpath"; then
3497 # If the user specified any rpath flags, then add them.
3498 for libdir in $rpath $xrpath; do
3499 # This is the magic to use -rpath.
3500 case "$finalize_rpath " in
3501 *" $libdir "*) ;;
3502 *) finalize_rpath="$finalize_rpath $libdir" ;;
3503 esac
3504 done
3507 # Now hardcode the library paths
3508 rpath=
3509 hardcode_libdirs=
3510 for libdir in $compile_rpath $finalize_rpath; do
3511 if test -n "$hardcode_libdir_flag_spec"; then
3512 if test -n "$hardcode_libdir_separator"; then
3513 if test -z "$hardcode_libdirs"; then
3514 hardcode_libdirs="$libdir"
3515 else
3516 # Just accumulate the unique libdirs.
3517 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3518 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3521 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3523 esac
3525 else
3526 eval flag=\"$hardcode_libdir_flag_spec\"
3527 rpath="$rpath $flag"
3529 elif test -n "$runpath_var"; then
3530 case "$perm_rpath " in
3531 *" $libdir "*) ;;
3532 *) perm_rpath="$perm_rpath $libdir" ;;
3533 esac
3535 case $host in
3536 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3537 case :$dllsearchpath: in
3538 *":$libdir:"*) ;;
3539 *) dllsearchpath="$dllsearchpath:$libdir";;
3540 esac
3542 esac
3543 done
3544 # Substitute the hardcoded libdirs into the rpath.
3545 if test -n "$hardcode_libdir_separator" &&
3546 test -n "$hardcode_libdirs"; then
3547 libdir="$hardcode_libdirs"
3548 eval rpath=\" $hardcode_libdir_flag_spec\"
3550 compile_rpath="$rpath"
3552 rpath=
3553 hardcode_libdirs=
3554 for libdir in $finalize_rpath; do
3555 if test -n "$hardcode_libdir_flag_spec"; then
3556 if test -n "$hardcode_libdir_separator"; then
3557 if test -z "$hardcode_libdirs"; then
3558 hardcode_libdirs="$libdir"
3559 else
3560 # Just accumulate the unique libdirs.
3561 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3562 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3565 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3567 esac
3569 else
3570 eval flag=\"$hardcode_libdir_flag_spec\"
3571 rpath="$rpath $flag"
3573 elif test -n "$runpath_var"; then
3574 case "$finalize_perm_rpath " in
3575 *" $libdir "*) ;;
3576 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3577 esac
3579 done
3580 # Substitute the hardcoded libdirs into the rpath.
3581 if test -n "$hardcode_libdir_separator" &&
3582 test -n "$hardcode_libdirs"; then
3583 libdir="$hardcode_libdirs"
3584 eval rpath=\" $hardcode_libdir_flag_spec\"
3586 finalize_rpath="$rpath"
3588 dlsyms=
3589 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3590 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3591 dlsyms="${outputname}S.c"
3592 else
3593 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3597 if test -n "$dlsyms"; then
3598 case $dlsyms in
3599 "") ;;
3600 *.c)
3601 # Discover the nlist of each of the dlfiles.
3602 nlist="$output_objdir/${outputname}.nm"
3604 $show "$rm $nlist ${nlist}S ${nlist}T"
3605 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3607 # Parse the name list into a source file.
3608 $show "creating $output_objdir/$dlsyms"
3610 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3611 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3612 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3614 #ifdef __cplusplus
3615 extern \"C\" {
3616 #endif
3618 /* Prevent the only kind of declaration conflicts we can make. */
3619 #define lt_preloaded_symbols some_other_symbol
3621 /* External symbol declarations for the compiler. */\
3624 if test "$dlself" = yes; then
3625 $show "generating symbol list for \`$output'"
3627 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3629 # Add our own program objects to the symbol list.
3630 progfiles="$objs$old_deplibs"
3631 for arg in $progfiles; do
3632 $show "extracting global C symbols from \`$arg'"
3633 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3634 done
3636 if test -n "$exclude_expsyms"; then
3637 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3638 $run eval '$mv "$nlist"T "$nlist"'
3641 if test -n "$export_symbols_regex"; then
3642 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3643 $run eval '$mv "$nlist"T "$nlist"'
3646 # Prepare the list of exported symbols
3647 if test -z "$export_symbols"; then
3648 export_symbols="$output_objdir/$output.exp"
3649 $run $rm $export_symbols
3650 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3651 else
3652 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3653 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3654 $run eval 'mv "$nlist"T "$nlist"'
3658 for arg in $dlprefiles; do
3659 $show "extracting global C symbols from \`$arg'"
3660 name=`echo "$arg" | sed -e 's%^.*/%%'`
3661 $run eval 'echo ": $name " >> "$nlist"'
3662 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3663 done
3665 if test -z "$run"; then
3666 # Make sure we have at least an empty file.
3667 test -f "$nlist" || : > "$nlist"
3669 if test -n "$exclude_expsyms"; then
3670 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3671 $mv "$nlist"T "$nlist"
3674 # Try sorting and uniquifying the output.
3675 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3677 else
3678 grep -v "^: " < "$nlist" > "$nlist"S
3681 if test -f "$nlist"S; then
3682 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3683 else
3684 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3687 $echo >> "$output_objdir/$dlsyms" "\
3689 #undef lt_preloaded_symbols
3691 #if defined (__STDC__) && __STDC__
3692 # define lt_ptr_t void *
3693 #else
3694 # define lt_ptr_t char *
3695 # define const
3696 #endif
3698 /* The mapping between symbol names and symbols. */
3699 const struct {
3700 const char *name;
3701 lt_ptr_t address;
3703 lt_preloaded_symbols[] =
3707 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
3708 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
3709 < "$nlist" >> "$output_objdir/$dlsyms"
3711 $echo >> "$output_objdir/$dlsyms" "\
3712 {0, (lt_ptr_t) 0}
3715 /* This works around a problem in FreeBSD linker */
3716 #ifdef FREEBSD_WORKAROUND
3717 static const void *lt_preloaded_setup() {
3718 return lt_preloaded_symbols;
3720 #endif
3722 #ifdef __cplusplus
3724 #endif\
3728 pic_flag_for_symtable=
3729 case $host in
3730 # compiling the symbol table file with pic_flag works around
3731 # a FreeBSD bug that causes programs to crash when -lm is
3732 # linked before any other PIC object. But we must not use
3733 # pic_flag when linking with -static. The problem exists in
3734 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3735 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3736 case "$compile_command " in
3737 *" -static "*) ;;
3738 *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
3739 esac;;
3740 *-*-hpux*)
3741 case "$compile_command " in
3742 *" -static "*) ;;
3743 *) pic_flag_for_symtable=" $pic_flag";;
3744 esac
3745 esac
3747 # Now compile the dynamic symbol file.
3748 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3749 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3751 # Clean up the generated files.
3752 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3753 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3755 # Transform the symbol file into the correct name.
3756 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3757 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3760 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3761 exit 1
3763 esac
3764 else
3765 # We keep going just in case the user didn't refer to
3766 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3767 # really was required.
3769 # Nullify the symbol file.
3770 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3771 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3774 # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
3775 # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
3776 # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
3777 # This does not apply on AIX for ia64, which uses a SysV linker.
3778 case "$host" in
3779 ia64-*-aix5*) ;;
3780 *-*-aix4* | *-*-aix5*)
3781 compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
3782 finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
3783 esac
3785 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3786 # Replace the output file specification.
3787 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3788 link_command="$compile_command$compile_rpath"
3790 # We have no uninstalled library dependencies, so finalize right now.
3791 $show "$link_command"
3792 $run eval "$link_command"
3793 status=$?
3795 # Delete the generated files.
3796 if test -n "$dlsyms"; then
3797 $show "$rm $output_objdir/${outputname}S.${objext}"
3798 $run $rm "$output_objdir/${outputname}S.${objext}"
3801 exit $status
3804 if test -n "$shlibpath_var"; then
3805 # We should set the shlibpath_var
3806 rpath=
3807 for dir in $temp_rpath; do
3808 case $dir in
3809 [\\/]* | [A-Za-z]:[\\/]*)
3810 # Absolute path.
3811 rpath="$rpath$dir:"
3814 # Relative path: add a thisdir entry.
3815 rpath="$rpath\$thisdir/$dir:"
3817 esac
3818 done
3819 temp_rpath="$rpath"
3822 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3823 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3825 if test -n "$finalize_shlibpath"; then
3826 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3829 compile_var=
3830 finalize_var=
3831 if test -n "$runpath_var"; then
3832 if test -n "$perm_rpath"; then
3833 # We should set the runpath_var.
3834 rpath=
3835 for dir in $perm_rpath; do
3836 rpath="$rpath$dir:"
3837 done
3838 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3840 if test -n "$finalize_perm_rpath"; then
3841 # We should set the runpath_var.
3842 rpath=
3843 for dir in $finalize_perm_rpath; do
3844 rpath="$rpath$dir:"
3845 done
3846 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3850 if test "$no_install" = yes; then
3851 # We don't need to create a wrapper script.
3852 link_command="$compile_var$compile_command$compile_rpath"
3853 # Replace the output file specification.
3854 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3855 # Delete the old output file.
3856 $run $rm $output
3857 # Link the executable and exit
3858 $show "$link_command"
3859 $run eval "$link_command" || exit $?
3860 exit 0
3863 if test "$hardcode_action" = relink; then
3864 # Fast installation is not supported
3865 link_command="$compile_var$compile_command$compile_rpath"
3866 relink_command="$finalize_var$finalize_command$finalize_rpath"
3868 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3869 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3870 else
3871 if test "$fast_install" != no; then
3872 link_command="$finalize_var$compile_command$finalize_rpath"
3873 if test "$fast_install" = yes; then
3874 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3875 else
3876 # fast_install is set to needless
3877 relink_command=
3879 else
3880 link_command="$compile_var$compile_command$compile_rpath"
3881 relink_command="$finalize_var$finalize_command$finalize_rpath"
3885 # Replace the output file specification.
3886 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3888 # Delete the old output files.
3889 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3891 $show "$link_command"
3892 $run eval "$link_command" || exit $?
3894 # Now create the wrapper script.
3895 $show "creating $output"
3897 # Quote the relink command for shipping.
3898 if test -n "$relink_command"; then
3899 # Preserve any variables that may affect compiler behavior
3900 for var in $variables_saved_for_relink; do
3901 if eval test -z \"\${$var+set}\"; then
3902 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3903 elif eval var_value=\$$var; test -z "$var_value"; then
3904 relink_command="$var=; export $var; $relink_command"
3905 else
3906 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3907 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3909 done
3910 relink_command="cd `pwd`; $relink_command"
3911 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3914 # Quote $echo for shipping.
3915 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3916 case $0 in
3917 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3918 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3919 esac
3920 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3921 else
3922 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3925 # Only actually do things if our run command is non-null.
3926 if test -z "$run"; then
3927 # win32 will think the script is a binary if it has
3928 # a .exe suffix, so we strip it off here.
3929 case $output in
3930 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3931 esac
3932 # test for cygwin because mv fails w/o .exe extensions
3933 case $host in
3934 *cygwin*) exeext=.exe ;;
3935 *) exeext= ;;
3936 esac
3937 $rm $output
3938 trap "$rm $output; exit 1" 1 2 15
3940 $echo > $output "\
3941 #! $SHELL
3943 # $output - temporary wrapper script for $objdir/$outputname
3944 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3946 # The $output program cannot be directly executed until all the libtool
3947 # libraries that it depends on are installed.
3949 # This wrapper script should never be moved out of the build directory.
3950 # If it is, it will not operate correctly.
3952 # Sed substitution that helps us do robust quoting. It backslashifies
3953 # metacharacters that are still active within double-quoted strings.
3954 Xsed='sed -e 1s/^X//'
3955 sed_quote_subst='$sed_quote_subst'
3957 # The HP-UX ksh and POSIX shell print the target directory to stdout
3958 # if CDPATH is set.
3959 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3961 relink_command=\"$relink_command\"
3963 # This environment variable determines our operation mode.
3964 if test \"\$libtool_install_magic\" = \"$magic\"; then
3965 # install mode needs the following variable:
3966 uninst_deplibs='$uninst_deplibs'
3967 else
3968 # When we are sourced in execute mode, \$file and \$echo are already set.
3969 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3970 echo=\"$qecho\"
3971 file=\"\$0\"
3972 # Make sure echo works.
3973 if test \"X\$1\" = X--no-reexec; then
3974 # Discard the --no-reexec flag, and continue.
3975 shift
3976 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3977 # Yippee, \$echo works!
3979 else
3980 # Restart under the correct shell, and then maybe \$echo will work.
3981 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3985 $echo >> $output "\
3987 # Find the directory that this script lives in.
3988 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3989 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3991 # Follow symbolic links until we get to the real thisdir.
3992 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3993 while test -n \"\$file\"; do
3994 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3996 # If there was a directory component, then change thisdir.
3997 if test \"x\$destdir\" != \"x\$file\"; then
3998 case \"\$destdir\" in
3999 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4000 *) thisdir=\"\$thisdir/\$destdir\" ;;
4001 esac
4004 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4005 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
4006 done
4008 # Try to get the absolute directory name.
4009 absdir=\`cd \"\$thisdir\" && pwd\`
4010 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4013 if test "$fast_install" = yes; then
4014 echo >> $output "\
4015 program=lt-'$outputname'$exeext
4016 progdir=\"\$thisdir/$objdir\"
4018 if test ! -f \"\$progdir/\$program\" || \\
4019 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
4020 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4022 file=\"\$\$-\$program\"
4024 if test ! -d \"\$progdir\"; then
4025 $mkdir \"\$progdir\"
4026 else
4027 $rm \"\$progdir/\$file\"
4030 echo >> $output "\
4032 # relink executable if necessary
4033 if test -n \"\$relink_command\"; then
4034 if (eval \$relink_command); then :
4035 else
4036 $rm \"\$progdir/\$file\"
4037 exit 1
4041 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4042 { $rm \"\$progdir/\$program\";
4043 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4044 $rm \"\$progdir/\$file\"
4046 else
4047 echo >> $output "\
4048 program='$outputname'
4049 progdir=\"\$thisdir/$objdir\"
4053 echo >> $output "\
4055 if test -f \"\$progdir/\$program\"; then"
4057 # Export our shlibpath_var if we have one.
4058 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4059 $echo >> $output "\
4060 # Add our own library path to $shlibpath_var
4061 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4063 # Some systems cannot cope with colon-terminated $shlibpath_var
4064 # The second colon is a workaround for a bug in BeOS R4 sed
4065 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4067 export $shlibpath_var
4071 # fixup the dll searchpath if we need to.
4072 if test -n "$dllsearchpath"; then
4073 $echo >> $output "\
4074 # Add the dll search path components to the executable PATH
4075 PATH=$dllsearchpath:\$PATH
4079 $echo >> $output "\
4080 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4081 # Run the actual program with our arguments.
4083 case $host in
4084 # win32 systems need to use the prog path for dll
4085 # lookup to work
4086 *-*-cygwin* | *-*-pw32*)
4087 $echo >> $output "\
4088 exec \$progdir/\$program \${1+\"\$@\"}
4092 # Backslashes separate directories on plain windows
4093 *-*-mingw | *-*-os2*)
4094 $echo >> $output "\
4095 exec \$progdir\\\\\$program \${1+\"\$@\"}
4100 $echo >> $output "\
4101 # Export the path to the program.
4102 PATH=\"\$progdir:\$PATH\"
4103 export PATH
4105 exec \$program \${1+\"\$@\"}
4108 esac
4109 $echo >> $output "\
4110 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4111 exit 1
4113 else
4114 # The program doesn't exist.
4115 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4116 \$echo \"This script is just a wrapper for \$program.\" 1>&2
4117 echo \"See the $PACKAGE documentation for more information.\" 1>&2
4118 exit 1
4122 chmod +x $output
4124 exit 0
4126 esac
4128 # See if we need to build an old-fashioned archive.
4129 for oldlib in $oldlibs; do
4131 if test "$build_libtool_libs" = convenience; then
4132 oldobjs="$libobjs_save"
4133 addlibs="$convenience"
4134 build_libtool_libs=no
4135 else
4136 if test "$build_libtool_libs" = module; then
4137 oldobjs="$libobjs_save"
4138 build_libtool_libs=no
4139 else
4140 oldobjs="$objs$old_deplibs $non_pic_objects"
4142 addlibs="$old_convenience"
4145 if test -n "$addlibs"; then
4146 gentop="$output_objdir/${outputname}x"
4147 $show "${rm}r $gentop"
4148 $run ${rm}r "$gentop"
4149 $show "$mkdir $gentop"
4150 $run $mkdir "$gentop"
4151 status=$?
4152 if test $status -ne 0 && test ! -d "$gentop"; then
4153 exit $status
4155 generated="$generated $gentop"
4157 # Add in members from convenience archives.
4158 for xlib in $addlibs; do
4159 # Extract the objects.
4160 case $xlib in
4161 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
4162 *) xabs=`pwd`"/$xlib" ;;
4163 esac
4164 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
4165 xdir="$gentop/$xlib"
4167 $show "${rm}r $xdir"
4168 $run ${rm}r "$xdir"
4169 $show "$mkdir $xdir"
4170 $run $mkdir "$xdir"
4171 status=$?
4172 if test $status -ne 0 && test ! -d "$xdir"; then
4173 exit $status
4175 $show "(cd $xdir && $AR x $xabs)"
4176 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
4178 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print | $NL2SP`
4179 done
4182 # Do each command in the archive commands.
4183 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
4184 eval cmds=\"$old_archive_from_new_cmds\"
4185 else
4186 # # Ensure that we have .o objects in place in case we decided
4187 # # not to build a shared library, and have fallen back to building
4188 # # static libs even though --disable-static was passed!
4189 # for oldobj in $oldobjs; do
4190 # if test ! -f $oldobj; then
4191 # xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
4192 # if test "X$xdir" = "X$oldobj"; then
4193 # xdir="."
4194 # else
4195 # xdir="$xdir"
4196 # fi
4197 # baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
4198 # obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
4199 # $show "(cd $xdir && ${LN_S} $obj $baseobj)"
4200 # $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
4201 # fi
4202 # done
4204 compiler_flags="$compiler_flags $add_flags"
4205 eval cmds=\"$old_archive_cmds\"
4207 if len=`expr "X$cmds" : ".*"` &&
4208 test $len -le $max_cmd_len; then
4210 else
4211 # the command line is too long to link in one step, link in parts
4212 $echo "using piecewise archive linking..."
4213 save_RANLIB=$RANLIB
4214 RANLIB=:
4215 objlist=
4216 concat_cmds=
4217 save_oldobjs=$oldobjs
4218 for obj in $save_oldobjs
4220 oldobjs="$objlist $obj"
4221 objlist="$objlist $obj"
4222 eval test_cmds=\"$old_archive_cmds\"
4223 if len=`expr "X$test_cmds" : ".*"` &&
4224 test $len -le $max_cmd_len; then
4226 else
4227 # the above command should be used before it gets too long
4228 oldobjs=$objlist
4229 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4230 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
4231 objlist=
4233 done
4234 RANLIB=$save_RANLIB
4235 oldobjs=$objlist
4236 eval cmds=\"\$concat_cmds~$old_archive_cmds\"
4239 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4240 for cmd in $cmds; do
4241 IFS="$save_ifs"
4242 $show "$cmd"
4243 $run eval "$cmd" || exit $?
4244 done
4245 IFS="$save_ifs"
4246 done
4248 if test -n "$generated"; then
4249 $show "${rm}r$generated"
4250 $run ${rm}r$generated
4253 # Now create the libtool archive.
4254 case $output in
4255 *.la)
4256 old_library=
4257 test "$build_old_libs" = yes && old_library="$libname.$libext"
4258 $show "creating $output"
4260 # Preserve any variables that may affect compiler behavior
4261 for var in $variables_saved_for_relink; do
4262 if eval test -z \"\${$var+set}\"; then
4263 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4264 elif eval var_value=\$$var; test -z "$var_value"; then
4265 relink_command="$var=; export $var; $relink_command"
4266 else
4267 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4268 relink_command="$var=\"$var_value\"; export $var; $relink_command"
4270 done
4271 # Quote the link command for shipping.
4272 relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
4273 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4275 # Only create the output if not a dry run.
4276 if test -z "$run"; then
4277 for installed in no yes; do
4278 if test "$installed" = yes; then
4279 if test -z "$install_libdir"; then
4280 break
4282 output="$output_objdir/$outputname"i
4283 # Replace all uninstalled libtool libraries with the installed ones
4284 newdependency_libs=
4285 for deplib in $dependency_libs; do
4286 case $deplib in
4287 *.la)
4288 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
4289 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
4290 if test -z "$libdir"; then
4291 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
4292 exit 1
4294 newdependency_libs="$newdependency_libs $libdir/$name"
4296 *) newdependency_libs="$newdependency_libs $deplib" ;;
4297 esac
4298 done
4299 dependency_libs="$newdependency_libs"
4300 newdlfiles=
4301 for lib in $dlfiles; do
4302 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4303 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4304 if test -z "$libdir"; then
4305 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4306 exit 1
4308 newdlfiles="$newdlfiles $libdir/$name"
4309 done
4310 dlfiles="$newdlfiles"
4311 newdlprefiles=
4312 for lib in $dlprefiles; do
4313 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4314 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4315 if test -z "$libdir"; then
4316 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4317 exit 1
4319 newdlprefiles="$newdlprefiles $libdir/$name"
4320 done
4321 dlprefiles="$newdlprefiles"
4323 $rm $output
4324 # place dlname in correct position for cygwin
4325 tdlname=$dlname
4326 case $host,$output,$installed,$module,$dlname in
4327 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
4328 esac
4329 $echo > $output "\
4330 # $outputname - a libtool library file
4331 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4333 # Please DO NOT delete this file!
4334 # It is necessary for linking the library.
4336 # The name that we can dlopen(3).
4337 dlname='$tdlname'
4339 # Names of this library.
4340 library_names='$library_names'
4342 # The name of the static archive.
4343 old_library='$old_library'
4345 # Libraries that this one depends upon.
4346 dependency_libs='$dependency_libs'
4348 # Version information for $libname.
4349 current=$current
4350 age=$age
4351 revision=$revision
4353 # Is this an already installed library?
4354 installed=$installed
4356 # Files to dlopen/dlpreopen
4357 dlopen='$dlfiles'
4358 dlpreopen='$dlprefiles'
4360 # Directory that this library needs to be installed in:
4361 libdir='$install_libdir'"
4362 if test $hardcode_into_libs = all &&
4363 test "$installed" = no && test $need_relink = yes; then
4364 $echo >> $output "\
4365 relink_command=\"$relink_command\""
4367 done
4370 # Do a symbolic link so that the libtool archive can be found in
4371 # LD_LIBRARY_PATH before the program is installed.
4372 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4373 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
4375 esac
4376 exit 0
4379 # libtool install mode
4380 install)
4381 modename="$modename: install"
4383 # There may be an optional sh(1) argument at the beginning of
4384 # install_prog (especially on Windows NT).
4385 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
4386 # Allow the use of GNU shtool's install command.
4387 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
4388 # Aesthetically quote it.
4389 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4390 case $arg in
4391 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4392 arg="\"$arg\""
4394 esac
4395 install_prog="$arg "
4396 arg="$1"
4397 shift
4398 else
4399 install_prog=
4400 arg="$nonopt"
4403 # The real first argument should be the name of the installation program.
4404 # Aesthetically quote it.
4405 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4406 case $arg in
4407 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4408 arg="\"$arg\""
4410 esac
4411 install_prog="$install_prog$arg"
4413 # We need to accept at least all the BSD install flags.
4414 dest=
4415 files=
4416 opts=
4417 prev=
4418 install_type=
4419 isdir=no
4420 stripme=
4421 for arg
4423 if test -n "$dest"; then
4424 files="$files $dest"
4425 dest="$arg"
4426 continue
4429 case $arg in
4430 -d) isdir=yes ;;
4431 -f) prev="-f" ;;
4432 -g) prev="-g" ;;
4433 -m) prev="-m" ;;
4434 -o) prev="-o" ;;
4436 stripme=" -s"
4437 continue
4439 -*) ;;
4442 # If the previous option needed an argument, then skip it.
4443 if test -n "$prev"; then
4444 prev=
4445 else
4446 dest="$arg"
4447 continue
4450 esac
4452 # Aesthetically quote the argument.
4453 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4454 case $arg in
4455 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4456 arg="\"$arg\""
4458 esac
4459 install_prog="$install_prog $arg"
4460 done
4462 if test -z "$install_prog"; then
4463 $echo "$modename: you must specify an install program" 1>&2
4464 $echo "$help" 1>&2
4465 exit 1
4468 if test -n "$prev"; then
4469 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4470 $echo "$help" 1>&2
4471 exit 1
4474 if test -z "$files"; then
4475 if test -z "$dest"; then
4476 $echo "$modename: no file or destination specified" 1>&2
4477 else
4478 $echo "$modename: you must specify a destination" 1>&2
4480 $echo "$help" 1>&2
4481 exit 1
4484 # Strip any trailing slash from the destination.
4485 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4487 # Check to see that the destination is a directory.
4488 test -d "$dest" && isdir=yes
4489 if test "$isdir" = yes; then
4490 destdir="$dest"
4491 destname=
4492 else
4493 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4494 test "X$destdir" = "X$dest" && destdir=.
4495 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4497 # Not a directory, so check to see that there is only one file specified.
4498 set dummy $files
4499 if test $# -gt 2; then
4500 $echo "$modename: \`$dest' is not a directory" 1>&2
4501 $echo "$help" 1>&2
4502 exit 1
4505 case $destdir in
4506 [\\/]* | [A-Za-z]:[\\/]*) ;;
4508 for file in $files; do
4509 case $file in
4510 *.lo) ;;
4512 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4513 $echo "$help" 1>&2
4514 exit 1
4516 esac
4517 done
4519 esac
4521 # This variable tells wrapper scripts just to set variables rather
4522 # than running their programs.
4523 libtool_install_magic="$magic"
4525 staticlibs=
4526 future_libdirs=
4527 current_libdirs=
4528 for file in $files; do
4530 # Do each installation.
4531 case $file in
4532 *.$libext)
4533 # Do the static libraries later.
4534 staticlibs="$staticlibs $file"
4537 *.la)
4538 # Check to see that this really is a libtool archive.
4539 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4540 else
4541 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4542 $echo "$help" 1>&2
4543 exit 1
4546 library_names=
4547 old_library=
4548 relink_command=
4549 # If there is no directory component, then add one.
4550 case $file in
4551 */* | *\\*) . $file ;;
4552 *) . ./$file ;;
4553 esac
4555 # Add the libdir to current_libdirs if it is the destination.
4556 if test "X$destdir" = "X$libdir"; then
4557 case "$current_libdirs " in
4558 *" $libdir "*) ;;
4559 *) current_libdirs="$current_libdirs $libdir" ;;
4560 esac
4561 else
4562 # Note the libdir as a future libdir.
4563 case "$future_libdirs " in
4564 *" $libdir "*) ;;
4565 *) future_libdirs="$future_libdirs $libdir" ;;
4566 esac
4569 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4570 test "X$dir" = "X$file/" && dir=
4571 dir="$dir$objdir"
4573 if test "$hardcode_into_libs" = all && test -n "$relink_command"; then
4574 $echo "$modename: warning: relinking \`$file'" 1>&2
4575 $show "$relink_command"
4576 if $run eval "$relink_command"; then :
4577 else
4578 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4579 continue
4583 # See the names of the shared library.
4584 set dummy $library_names
4585 if test -n "$2"; then
4586 realname="$2"
4587 shift
4588 shift
4590 srcname="$realname"
4591 test "$hardcode_into_libs" = all && test -n "$relink_command" && srcname="$realname"T
4593 # Install the shared library and build the symlinks.
4594 $show "$install_prog $dir/$srcname $destdir/$realname"
4595 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4596 if test -n "$stripme" && test -n "$striplib"; then
4597 $show "$striplib $destdir/$realname"
4598 $run eval "$striplib $destdir/$realname" || exit $?
4601 if test $# -gt 0; then
4602 # Delete the old symlinks, and create new ones.
4603 for linkname
4605 if test "$linkname" != "$realname"; then
4606 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4607 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4609 done
4612 # Do each command in the postinstall commands.
4613 lib="$destdir/$realname"
4614 eval cmds=\"$postinstall_cmds\"
4615 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4616 for cmd in $cmds; do
4617 IFS="$save_ifs"
4618 $show "$cmd"
4619 $run eval "$cmd" || exit $?
4620 done
4621 IFS="$save_ifs"
4624 # Install the pseudo-library for information purposes.
4625 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4626 instname="$dir/$name"i
4627 $show "$install_prog $instname $destdir/$name"
4628 $run eval "$install_prog $instname $destdir/$name" || exit $?
4630 # Maybe install the static library, too.
4631 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4634 *.lo)
4635 # Install (i.e. copy) a libtool object.
4637 # Figure out destination file name, if it wasn't already specified.
4638 if test -n "$destname"; then
4639 destfile="$destdir/$destname"
4640 else
4641 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4642 destfile="$destdir/$destfile"
4645 # Deduce the name of the destination old-style object file.
4646 case $destfile in
4647 *.lo)
4648 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4650 *.$objext)
4651 staticdest="$destfile"
4652 destfile=
4655 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4656 $echo "$help" 1>&2
4657 exit 1
4659 esac
4661 # Install the libtool object if requested.
4662 if test -n "$destfile"; then
4663 $show "$install_prog $file $destfile"
4664 $run eval "$install_prog $file $destfile" || exit $?
4667 # Install the old object if enabled.
4668 if test "$build_old_libs" = yes; then
4669 # Deduce the name of the old-style object file.
4670 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4672 $show "$install_prog $staticobj $staticdest"
4673 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4675 exit 0
4679 # Figure out destination file name, if it wasn't already specified.
4680 if test -n "$destname"; then
4681 destfile="$destdir/$destname"
4682 else
4683 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4684 destfile="$destdir/$destfile"
4687 # Do a test to see if this is really a libtool program.
4688 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4689 uninst_deplibs=
4690 relink_command=
4692 # If there is no directory component, then add one.
4693 case $file in
4694 */* | *\\*) . $file ;;
4695 *) . ./$file ;;
4696 esac
4698 # Check the variables that should have been set.
4699 if test -z "$uninst_deplibs"; then
4700 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4701 exit 1
4704 finalize=yes
4705 for lib in $uninst_deplibs; do
4706 # Check to see that each library is installed.
4707 libdir=
4708 if test -f "$lib"; then
4709 # If there is no directory component, then add one.
4710 case $lib in
4711 */* | *\\*) . $lib ;;
4712 *) . ./$lib ;;
4713 esac
4715 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4716 if test -n "$libdir" && test ! -f "$libfile"; then
4717 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4718 finalize=no
4720 done
4722 relink_command=
4723 # If there is no directory component, then add one.
4724 case $file in
4725 */* | *\\*) . $file ;;
4726 *) . ./$file ;;
4727 esac
4729 outputname=
4730 if test "$fast_install" = no && test -n "$relink_command"; then
4731 if test "$finalize" = yes && test -z "$run"; then
4732 tmpdir="/tmp"
4733 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4734 tmpdir="$tmpdir/libtool-$$"
4735 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4736 else
4737 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4738 continue
4740 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4741 outputname="$tmpdir/$file"
4742 # Replace the output file specification.
4743 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4745 $show "$relink_command"
4746 if $run eval "$relink_command"; then :
4747 else
4748 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4749 ${rm}r "$tmpdir"
4750 continue
4752 file="$outputname"
4753 else
4754 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4756 else
4757 # Install the binary that we compiled earlier.
4758 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4763 # remove .exe since cygwin /usr/bin/install will append another
4764 # one anyways
4765 case $install_prog,$host in
4766 */usr/bin/install*,*cygwin*)
4767 case $file:$destfile in
4768 *.exe:*.exe)
4769 # this is ok
4771 *.exe:*)
4772 destfile=$destfile.exe
4774 *:*.exe)
4775 destfile=`echo $destfile | sed -e 's,.exe$,,'`
4777 esac
4779 esac
4781 $show "$install_prog$stripme $file $destfile"
4782 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4783 test -n "$outputname" && ${rm}r "$tmpdir"
4785 esac
4786 done
4788 for file in $staticlibs; do
4789 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4791 # Set up the ranlib parameters.
4792 oldlib="$destdir/$name"
4794 $show "$install_prog $file $oldlib"
4795 $run eval "$install_prog \$file \$oldlib" || exit $?
4797 if test -n "$stripme" && test -n "$striplib"; then
4798 $show "$old_striplib $oldlib"
4799 $run eval "$old_striplib $oldlib" || exit $?
4802 # Do each command in the postinstall commands.
4803 eval cmds=\"$old_postinstall_cmds\"
4804 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4805 for cmd in $cmds; do
4806 IFS="$save_ifs"
4807 $show "$cmd"
4808 $run eval "$cmd" || exit $?
4809 done
4810 IFS="$save_ifs"
4811 done
4813 if test -n "$future_libdirs"; then
4814 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4817 if test -n "$current_libdirs"; then
4818 # Maybe just do a dry run.
4819 test -n "$run" && current_libdirs=" -n$current_libdirs"
4820 exec $SHELL $0 --finish$current_libdirs
4821 exit 1
4824 exit 0
4827 # libtool finish mode
4828 finish)
4829 modename="$modename: finish"
4830 libdirs="$nonopt"
4831 admincmds=
4833 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4834 for dir
4836 libdirs="$libdirs $dir"
4837 done
4839 for libdir in $libdirs; do
4840 if test -n "$finish_cmds"; then
4841 # Do each command in the finish commands.
4842 eval cmds=\"$finish_cmds\"
4843 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4844 for cmd in $cmds; do
4845 IFS="$save_ifs"
4846 $show "$cmd"
4847 $run eval "$cmd" || admincmds="$admincmds
4848 $cmd"
4849 done
4850 IFS="$save_ifs"
4852 if test -n "$finish_eval"; then
4853 # Do the single finish_eval.
4854 eval cmds=\"$finish_eval\"
4855 $run eval "$cmds" || admincmds="$admincmds
4856 $cmds"
4858 done
4861 # Exit here if they wanted silent mode.
4862 exit 0
4864 echo "----------------------------------------------------------------------"
4865 echo "Libraries have been installed in:"
4866 for libdir in $libdirs; do
4867 echo " $libdir"
4868 done
4869 echo
4870 echo "If you ever happen to want to link against installed libraries"
4871 echo "in a given directory, LIBDIR, you must either use libtool, and"
4872 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
4873 echo "flag during linking and do at least one of the following:"
4874 if test -n "$shlibpath_var"; then
4875 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4876 echo " during execution"
4878 if test -n "$runpath_var"; then
4879 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4880 echo " during linking"
4882 if test -n "$hardcode_libdir_flag_spec"; then
4883 libdir=LIBDIR
4884 eval flag=\"$hardcode_libdir_flag_spec\"
4886 echo " - use the \`$flag' linker flag"
4888 if test -n "$admincmds"; then
4889 echo " - have your system administrator run these commands:$admincmds"
4891 if test -f /etc/ld.so.conf; then
4892 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4894 echo
4895 echo "See any operating system documentation about shared libraries for"
4896 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4897 echo "----------------------------------------------------------------------"
4898 exit 0
4901 # libtool execute mode
4902 execute)
4903 modename="$modename: execute"
4905 # The first argument is the command name.
4906 cmd="$nonopt"
4907 if test -z "$cmd"; then
4908 $echo "$modename: you must specify a COMMAND" 1>&2
4909 $echo "$help"
4910 exit 1
4913 # Handle -dlopen flags immediately.
4914 for file in $execute_dlfiles; do
4915 if test ! -f "$file"; then
4916 $echo "$modename: \`$file' is not a file" 1>&2
4917 $echo "$help" 1>&2
4918 exit 1
4921 dir=
4922 case $file in
4923 *.la)
4924 # Check to see that this really is a libtool archive.
4925 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4926 else
4927 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4928 $echo "$help" 1>&2
4929 exit 1
4932 # Read the libtool library.
4933 dlname=
4934 library_names=
4936 # If there is no directory component, then add one.
4937 case $file in
4938 */* | *\\*) . $file ;;
4939 *) . ./$file ;;
4940 esac
4942 # Skip this library if it cannot be dlopened.
4943 if test -z "$dlname"; then
4944 # Warn if it was a shared library.
4945 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4946 continue
4949 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4950 test "X$dir" = "X$file" && dir=.
4952 if test -f "$dir/$objdir/$dlname"; then
4953 dir="$dir/$objdir"
4954 else
4955 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4956 exit 1
4960 *.lo)
4961 # Just add the directory containing the .lo file.
4962 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4963 test "X$dir" = "X$file" && dir=.
4967 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4968 continue
4970 esac
4972 # Get the absolute pathname.
4973 absdir=`cd "$dir" && pwd`
4974 test -n "$absdir" && dir="$absdir"
4976 # Now add the directory to shlibpath_var.
4977 if eval "test -z \"\$$shlibpath_var\""; then
4978 eval "$shlibpath_var=\"\$dir\""
4979 else
4980 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4982 done
4984 # This variable tells wrapper scripts just to set shlibpath_var
4985 # rather than running their programs.
4986 libtool_execute_magic="$magic"
4988 # Check if any of the arguments is a wrapper script.
4989 args=
4990 for file
4992 case $file in
4993 -*) ;;
4995 # Do a test to see if this is really a libtool program.
4996 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4997 # If there is no directory component, then add one.
4998 case $file in
4999 */* | *\\*) . $file ;;
5000 *) . ./$file ;;
5001 esac
5003 # Transform arg to wrapped name.
5004 file="$progdir/$program"
5007 esac
5008 # Quote arguments (to preserve shell metacharacters).
5009 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5010 args="$args \"$file\""
5011 done
5013 if test -z "$run"; then
5014 if test -n "$shlibpath_var"; then
5015 # Export the shlibpath_var.
5016 eval "export $shlibpath_var"
5019 # Restore saved enviroment variables
5020 if test "${save_LC_ALL+set}" = set; then
5021 LC_ALL="$save_LC_ALL"; export LC_ALL
5023 if test "${save_LANG+set}" = set; then
5024 LANG="$save_LANG"; export LANG
5027 # Now actually exec the command.
5028 eval "exec \$cmd$args"
5030 $echo "$modename: cannot exec \$cmd$args"
5031 exit 1
5032 else
5033 # Display what would be done.
5034 if test -n "$shlibpath_var"; then
5035 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5036 $echo "export $shlibpath_var"
5038 $echo "$cmd$args"
5039 exit 0
5043 # libtool clean and uninstall mode
5044 clean | uninstall)
5045 modename="$modename: $mode"
5046 rm="$nonopt"
5047 files=
5049 # This variable tells wrapper scripts just to set variables rather
5050 # than running their programs.
5051 libtool_install_magic="$magic"
5053 for arg
5055 case $arg in
5056 -*) rm="$rm $arg" ;;
5057 *) files="$files $arg" ;;
5058 esac
5059 done
5061 if test -z "$rm"; then
5062 $echo "$modename: you must specify an RM program" 1>&2
5063 $echo "$help" 1>&2
5064 exit 1
5067 rmdirs=
5069 for file in $files; do
5070 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5071 if test "X$dir" = "X$file"; then
5072 dir=.
5073 objdir="$objdir"
5074 else
5075 objdir="$dir/$objdir"
5077 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5078 test $mode = uninstall && objdir="$dir"
5080 # Remember objdir for removal later, being careful to avoid duplicates
5081 if test $mode = clean; then
5082 case " $rmdirs " in
5083 *" $objdir "*) ;;
5084 *) rmdirs="$rmdirs $objdir" ;;
5085 esac
5088 rmfiles="$file"
5090 case $name in
5091 *.la)
5092 # Possibly a libtool archive, so verify it.
5093 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5094 . $dir/$name
5096 # Delete the libtool libraries and symlinks.
5097 for n in $library_names; do
5098 rmfiles="$rmfiles $objdir/$n"
5099 done
5100 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
5101 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
5103 if test $mode = uninstall; then
5104 if test -n "$library_names"; then
5105 # Do each command in the postuninstall commands.
5106 eval cmds=\"$postuninstall_cmds\"
5107 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
5108 for cmd in $cmds; do
5109 IFS="$save_ifs"
5110 $show "$cmd"
5111 $run eval "$cmd"
5112 done
5113 IFS="$save_ifs"
5116 if test -n "$old_library"; then
5117 # Do each command in the old_postuninstall commands.
5118 eval cmds=\"$old_postuninstall_cmds\"
5119 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
5120 for cmd in $cmds; do
5121 IFS="$save_ifs"
5122 $show "$cmd"
5123 $run eval "$cmd"
5124 done
5125 IFS="$save_ifs"
5127 # FIXME: should reinstall the best remaining shared library.
5132 *.lo)
5133 # Possibly a libtool object, so verify it.
5134 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5136 # Read the .lo file
5137 . $dir/$name
5139 # Add PIC object to the list of files to remove.
5140 if test -n "$pic_object" \
5141 && test "$pic_object" != none; then
5142 rmfiles="$rmfiles $dir/$pic_object"
5145 # Add non-PIC object to the list of files to remove.
5146 if test -n "$non_pic_object" \
5147 && test "$non_pic_object" != none; then
5148 rmfiles="$rmfiles $dir/$non_pic_object"
5154 # Do a test to see if this is a libtool program.
5155 if test $mode = clean &&
5156 (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5157 relink_command=
5158 . $dir/$file
5160 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
5161 if test "$fast_install" = yes && test -n "$relink_command"; then
5162 rmfiles="$rmfiles $objdir/lt-$name"
5166 esac
5167 $show "$rm $rmfiles"
5168 $run $rm $rmfiles
5169 done
5171 # Try to remove the ${objdir}s in the directories where we deleted files
5172 for dir in $rmdirs; do
5173 if test -d "$dir"; then
5174 $show "rmdir $dir"
5175 $run rmdir $dir >/dev/null 2>&1
5177 done
5179 exit 0
5183 $echo "$modename: you must specify a MODE" 1>&2
5184 $echo "$generic_help" 1>&2
5185 exit 1
5187 esac
5189 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5190 $echo "$generic_help" 1>&2
5191 exit 1
5192 fi # test -z "$show_help"
5194 # We need to display help for each of the modes.
5195 case $mode in
5196 "") $echo \
5197 "Usage: $modename [OPTION]... [MODE-ARG]...
5199 Provide generalized library-building support services.
5201 --config show all configuration variables
5202 --debug enable verbose shell tracing
5203 -n, --dry-run display commands without modifying any files
5204 --features display basic configuration information and exit
5205 --finish same as \`--mode=finish'
5206 --help display this help message and exit
5207 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
5208 --quiet same as \`--silent'
5209 --silent don't print informational messages
5210 --tag=TAG use configuration variables from tag TAG
5211 --version print version information
5213 MODE must be one of the following:
5215 clean remove files from the build directory
5216 compile compile a source file into a libtool object
5217 execute automatically set library path, then run a program
5218 finish complete the installation of libtool libraries
5219 install install libraries or executables
5220 link create a library or an executable
5221 uninstall remove libraries from an installed directory
5223 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
5224 a more detailed description of MODE."
5225 exit 0
5228 clean)
5229 $echo \
5230 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
5232 Remove files from the build directory.
5234 RM is the name of the program to use to delete files associated with each FILE
5235 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5236 to RM.
5238 If FILE is a libtool library, object or program, all the files associated
5239 with it are deleted. Otherwise, only FILE itself is deleted using RM."
5242 compile)
5243 $echo \
5244 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
5246 Compile a source file into a libtool library object.
5248 This mode accepts the following additional options:
5250 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
5251 -static always build a \`.o' file suitable for static linking
5253 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
5254 from the given SOURCEFILE.
5256 The output file name is determined by removing the directory component from
5257 SOURCEFILE, then substituting the C source code suffix \`.c' with the
5258 library object suffix, \`.lo'."
5261 execute)
5262 $echo \
5263 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
5265 Automatically set library path, then run a program.
5267 This mode accepts the following additional options:
5269 -dlopen FILE add the directory containing FILE to the library path
5271 This mode sets the library path environment variable according to \`-dlopen'
5272 flags.
5274 If any of the ARGS are libtool executable wrappers, then they are translated
5275 into their corresponding uninstalled binary, and any of their required library
5276 directories are added to the library path.
5278 Then, COMMAND is executed, with ARGS as arguments."
5281 finish)
5282 $echo \
5283 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
5285 Complete the installation of libtool libraries.
5287 Each LIBDIR is a directory that contains libtool libraries.
5289 The commands that this mode executes may require superuser privileges. Use
5290 the \`--dry-run' option if you just want to see what would be executed."
5293 install)
5294 $echo \
5295 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
5297 Install executables or libraries.
5299 INSTALL-COMMAND is the installation command. The first component should be
5300 either the \`install' or \`cp' program.
5302 The rest of the components are interpreted as arguments to that command (only
5303 BSD-compatible install options are recognized)."
5306 link)
5307 $echo \
5308 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
5310 Link object files or libraries together to form another library, or to
5311 create an executable program.
5313 LINK-COMMAND is a command using the C compiler that you would use to create
5314 a program from several object files.
5316 The following components of LINK-COMMAND are treated specially:
5318 -all-static do not do any dynamic linking at all
5319 -avoid-version do not add a version suffix if possible
5320 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
5321 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
5322 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
5323 -export-symbols SYMFILE
5324 try to export only the symbols listed in SYMFILE
5325 -export-symbols-regex REGEX
5326 try to export only the symbols matching REGEX
5327 -LLIBDIR search LIBDIR for required installed libraries
5328 -lNAME OUTPUT-FILE requires the installed library libNAME
5329 -module build a library that can dlopened
5330 -no-fast-install disable the fast-install mode
5331 -no-install link a not-installable executable
5332 -no-undefined declare that a library does not refer to external symbols
5333 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
5334 -objectlist FILE Use a list of object files found in FILE to specify objects
5335 -release RELEASE specify package release information
5336 -rpath LIBDIR the created library will eventually be installed in LIBDIR
5337 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
5338 -static do not do any dynamic linking of libtool libraries
5339 -version-info CURRENT[:REVISION[:AGE]]
5340 specify library version info [each variable defaults to 0]
5342 All other options (arguments beginning with \`-') are ignored.
5344 Every other argument is treated as a filename. Files ending in \`.la' are
5345 treated as uninstalled libtool libraries, other files are standard or library
5346 object files.
5348 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
5349 only library objects (\`.lo' files) may be specified, and \`-rpath' is
5350 required, except when creating a convenience library.
5352 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
5353 using \`ar' and \`ranlib', or on Windows using \`lib'.
5355 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
5356 is created, otherwise an executable program is created."
5359 uninstall)
5360 $echo \
5361 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
5363 Remove libraries from an installation directory.
5365 RM is the name of the program to use to delete files associated with each FILE
5366 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5367 to RM.
5369 If FILE is a libtool library, all the files associated with it are deleted.
5370 Otherwise, only FILE itself is deleted using RM."
5374 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5375 $echo "$help" 1>&2
5376 exit 1
5378 esac
5380 echo
5381 $echo "Try \`$modename --help' for more information about other modes."
5383 exit 0
5385 # The TAGs below are defined such that we never get into a situation
5386 # in which we disable both kinds of libraries. Given conflicting
5387 # choices, we go for a static library, that is the most portable,
5388 # since we can't tell whether shared libraries were disabled because
5389 # the user asked for that or because the platform doesn't support
5390 # them. This is particularly important on AIX, because we don't
5391 # support having both static and shared libraries enabled at the same
5392 # time on that platform, so we default to a shared-only configuration.
5393 # If a disable-shared tag is given, we'll fallback to a static-only
5394 # configuration. But we'll never go from static-only to shared-only.
5396 ### BEGIN LIBTOOL TAG CONFIG: disable-shared
5397 build_libtool_libs=no
5398 build_old_libs=yes
5399 ### END LIBTOOL TAG CONFIG: disable-shared
5401 ### BEGIN LIBTOOL TAG CONFIG: disable-static
5402 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
5403 ### END LIBTOOL TAG CONFIG: disable-static
5405 # Local Variables:
5406 # mode:shell-script
5407 # sh-indentation:2
5408 # End: