usbmodeswitch: Updated to v.1.2.6 from shibby's branch.
[tomato.git] / release / src / router / snmp / ltmain.sh
blob79977bba31f7bbeb3b600f57ac3e3a4d0efdfe1f
1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
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.4.3
59 TIMESTAMP=" (1.922.2.110 2002/10/23 01:39:54)"
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 # test EBCDIC or ASCII
73 case `echo A|od -x` in
74 *[Cc]1*) # EBCDIC based system
75 SP2NL="tr '\100' '\n'"
76 NL2SP="tr '\r\n' '\100\100'"
77 ;;
78 *) # Assume ASCII based system
79 SP2NL="tr '\040' '\012'"
80 NL2SP="tr '\015\012' '\040\040'"
81 ;;
82 esac
84 # NLS nuisances.
85 # Only set LANG and LC_ALL to C if already set.
86 # These must not be set unconditionally because not all systems understand
87 # e.g. LANG=C (notably SCO).
88 # We save the old values to restore during execute mode.
89 if test "${LC_ALL+set}" = set; then
90 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
92 if test "${LANG+set}" = set; then
93 save_LANG="$LANG"; LANG=C; export LANG
96 # Make sure IFS has a sensible default
97 : ${IFS=" "}
99 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
100 echo "$modename: not configured to build any kind of library" 1>&2
101 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
102 exit 1
105 # Global variables.
106 mode=$default_mode
107 nonopt=
108 prev=
109 prevopt=
110 run=
111 show="$echo"
112 show_help=
113 execute_dlfiles=
114 lo2o="s/\\.lo\$/.${objext}/"
115 o2lo="s/\\.${objext}\$/.lo/"
117 # Parse our command line options once, thoroughly.
118 while test $# -gt 0
120 arg="$1"
121 shift
123 case $arg in
124 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
125 *) optarg= ;;
126 esac
128 # If the previous option needs an argument, assign it.
129 if test -n "$prev"; then
130 case $prev in
131 execute_dlfiles)
132 execute_dlfiles="$execute_dlfiles $arg"
135 eval "$prev=\$arg"
137 esac
139 prev=
140 prevopt=
141 continue
144 # Have we seen a non-optional argument yet?
145 case $arg in
146 --help)
147 show_help=yes
150 --version)
151 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
152 exit 0
155 --config)
156 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
157 exit 0
160 --debug)
161 echo "$progname: enabling shell trace mode"
162 set -x
165 --dry-run | -n)
166 run=:
169 --features)
170 echo "host: $host"
171 if test "$build_libtool_libs" = yes; then
172 echo "enable shared libraries"
173 else
174 echo "disable shared libraries"
176 if test "$build_old_libs" = yes; then
177 echo "enable static libraries"
178 else
179 echo "disable static libraries"
181 exit 0
184 --finish) mode="finish" ;;
186 --mode) prevopt="--mode" prev=mode ;;
187 --mode=*) mode="$optarg" ;;
189 --preserve-dup-deps) duplicate_deps="yes" ;;
191 --quiet | --silent)
192 show=:
195 -dlopen)
196 prevopt="-dlopen"
197 prev=execute_dlfiles
201 $echo "$modename: unrecognized option \`$arg'" 1>&2
202 $echo "$help" 1>&2
203 exit 1
207 nonopt="$arg"
208 break
210 esac
211 done
213 if test -n "$prevopt"; then
214 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
215 $echo "$help" 1>&2
216 exit 1
219 # If this variable is set in any of the actions, the command in it
220 # will be execed at the end. This prevents here-documents from being
221 # left over by shells.
222 exec_cmd=
224 if test -z "$show_help"; then
226 # Infer the operation mode.
227 if test -z "$mode"; then
228 case $nonopt in
229 *cc | *++ | gcc* | *-gcc* | xlc*)
230 mode=link
231 for arg
233 case $arg in
235 mode=compile
236 break
238 esac
239 done
241 *db | *dbx | *strace | *truss)
242 mode=execute
244 *install*|cp|mv)
245 mode=install
247 *rm)
248 mode=uninstall
251 # If we have no mode, but dlfiles were specified, then do execute mode.
252 test -n "$execute_dlfiles" && mode=execute
254 # Just use the default operation mode.
255 if test -z "$mode"; then
256 if test -n "$nonopt"; then
257 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
258 else
259 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
263 esac
266 # Only execute mode is allowed to have -dlopen flags.
267 if test -n "$execute_dlfiles" && test "$mode" != execute; then
268 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
269 $echo "$help" 1>&2
270 exit 1
273 # Change the help message to a mode-specific one.
274 generic_help="$help"
275 help="Try \`$modename --help --mode=$mode' for more information."
277 # These modes are in order of execution frequency so that they run quickly.
278 case $mode in
279 # libtool compile mode
280 compile)
281 modename="$modename: compile"
282 # Get the compilation command and the source file.
283 base_compile=
284 prev=
285 lastarg=
286 srcfile="$nonopt"
287 suppress_output=
289 user_target=no
290 for arg
292 case $prev in
293 "") ;;
294 xcompiler)
295 # Aesthetically quote the previous argument.
296 prev=
297 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
299 case $arg in
300 # Double-quote args containing other shell metacharacters.
301 # Many Bourne shells cannot handle close brackets correctly
302 # in scan sets, so we specify it separately.
303 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
304 arg="\"$arg\""
306 esac
308 # Add the previous argument to base_compile.
309 if test -z "$base_compile"; then
310 base_compile="$lastarg"
311 else
312 base_compile="$base_compile $lastarg"
314 continue
316 esac
318 # Accept any command-line options.
319 case $arg in
321 if test "$user_target" != "no"; then
322 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
323 exit 1
325 user_target=next
328 -static)
329 build_old_libs=yes
330 continue
333 -prefer-pic)
334 pic_mode=yes
335 continue
338 -prefer-non-pic)
339 pic_mode=no
340 continue
343 -Xcompiler)
344 prev=xcompiler
345 continue
348 -Wc,*)
349 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
350 lastarg=
351 save_ifs="$IFS"; IFS=','
352 for arg in $args; do
353 IFS="$save_ifs"
355 # Double-quote args containing other shell metacharacters.
356 # Many Bourne shells cannot handle close brackets correctly
357 # in scan sets, so we specify it separately.
358 case $arg in
359 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
360 arg="\"$arg\""
362 esac
363 lastarg="$lastarg $arg"
364 done
365 IFS="$save_ifs"
366 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
368 # Add the arguments to base_compile.
369 if test -z "$base_compile"; then
370 base_compile="$lastarg"
371 else
372 base_compile="$base_compile $lastarg"
374 continue
376 esac
378 case $user_target in
379 next)
380 # The next one is the -o target name
381 user_target=yes
382 continue
384 yes)
385 # We got the output file
386 user_target=set
387 libobj="$arg"
388 continue
390 esac
392 # Accept the current argument as the source file.
393 lastarg="$srcfile"
394 srcfile="$arg"
396 # Aesthetically quote the previous argument.
398 # Backslashify any backslashes, double quotes, and dollar signs.
399 # These are the only characters that are still specially
400 # interpreted inside of double-quoted scrings.
401 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
403 # Double-quote args containing other shell metacharacters.
404 # Many Bourne shells cannot handle close brackets correctly
405 # in scan sets, so we specify it separately.
406 case $lastarg in
407 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
408 lastarg="\"$lastarg\""
410 esac
412 # Add the previous argument to base_compile.
413 if test -z "$base_compile"; then
414 base_compile="$lastarg"
415 else
416 base_compile="$base_compile $lastarg"
418 done
420 case $user_target in
421 set)
424 # Get the name of the library object.
425 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
428 $echo "$modename: you must specify a target with \`-o'" 1>&2
429 exit 1
431 esac
433 # Recognize several different file suffixes.
434 # If the user specifies -o file.o, it is replaced with file.lo
435 xform='[cCFSfmso]'
436 case $libobj in
437 *.ada) xform=ada ;;
438 *.adb) xform=adb ;;
439 *.ads) xform=ads ;;
440 *.asm) xform=asm ;;
441 *.c++) xform=c++ ;;
442 *.cc) xform=cc ;;
443 *.cpp) xform=cpp ;;
444 *.cxx) xform=cxx ;;
445 *.f90) xform=f90 ;;
446 *.for) xform=for ;;
447 esac
449 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
451 case $libobj in
452 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
454 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
455 exit 1
457 esac
459 if test -z "$base_compile"; then
460 $echo "$modename: you must specify a compilation command" 1>&2
461 $echo "$help" 1>&2
462 exit 1
465 # Delete any leftover library objects.
466 if test "$build_old_libs" = yes; then
467 removelist="$obj $libobj"
468 else
469 removelist="$libobj"
472 $run $rm $removelist
473 trap "$run $rm $removelist; exit 1" 1 2 15
475 # On Cygwin there's no "real" PIC flag so we must build both object types
476 case $host_os in
477 cygwin* | mingw* | pw32* | os2*)
478 pic_mode=default
480 esac
481 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
482 # non-PIC code in shared libraries is not supported
483 pic_mode=default
486 # Calculate the filename of the output object if compiler does
487 # not support -o with -c
488 if test "$compiler_c_o" = no; then
489 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
490 lockfile="$output_obj.lock"
491 removelist="$removelist $output_obj $lockfile"
492 trap "$run $rm $removelist; exit 1" 1 2 15
493 else
494 need_locks=no
495 lockfile=
498 # Lock this critical section if it is needed
499 # We use this script file to make the link, it avoids creating a new file
500 if test "$need_locks" = yes; then
501 until $run ln "$0" "$lockfile" 2>/dev/null; do
502 $show "Waiting for $lockfile to be removed"
503 sleep 2
504 done
505 elif test "$need_locks" = warn; then
506 if test -f "$lockfile"; then
507 echo "\
508 *** ERROR, $lockfile exists and contains:
509 `cat $lockfile 2>/dev/null`
511 This indicates that another process is trying to use the same
512 temporary object file, and libtool could not work around it because
513 your compiler does not support \`-c' and \`-o' together. If you
514 repeat this compilation, it may succeed, by chance, but you had better
515 avoid parallel builds (make -j) in this platform, or get a better
516 compiler."
518 $run $rm $removelist
519 exit 1
521 echo $srcfile > "$lockfile"
524 if test -n "$fix_srcfile_path"; then
525 eval srcfile=\"$fix_srcfile_path\"
528 # Only build a PIC object if we are building libtool libraries.
529 if test "$build_libtool_libs" = yes; then
530 # Without this assignment, base_compile gets emptied.
531 fbsd_hideous_sh_bug=$base_compile
533 if test "$pic_mode" != no; then
534 # All platforms use -DPIC, to notify preprocessed assembler code.
535 command="$base_compile $srcfile $pic_flag -DPIC"
536 else
537 # Don't build PIC code
538 command="$base_compile $srcfile"
540 if test "$build_old_libs" = yes; then
541 lo_libobj="$libobj"
542 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
543 if test "X$dir" = "X$libobj"; then
544 dir="$objdir"
545 else
546 dir="$dir/$objdir"
548 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
550 if test -d "$dir"; then
551 $show "$rm $libobj"
552 $run $rm $libobj
553 else
554 $show "$mkdir $dir"
555 $run $mkdir $dir
556 status=$?
557 if test $status -ne 0 && test ! -d $dir; then
558 exit $status
562 if test "$compiler_o_lo" = yes; then
563 output_obj="$libobj"
564 command="$command -o $output_obj"
565 elif test "$compiler_c_o" = yes; then
566 output_obj="$obj"
567 command="$command -o $output_obj"
570 $run $rm "$output_obj"
571 $show "$command"
572 if $run eval "$command"; then :
573 else
574 test -n "$output_obj" && $run $rm $removelist
575 exit 1
578 if test "$need_locks" = warn &&
579 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
580 echo "\
581 *** ERROR, $lockfile contains:
582 `cat $lockfile 2>/dev/null`
584 but it should contain:
585 $srcfile
587 This indicates that another process is trying to use the same
588 temporary object file, and libtool could not work around it because
589 your compiler does not support \`-c' and \`-o' together. If you
590 repeat this compilation, it may succeed, by chance, but you had better
591 avoid parallel builds (make -j) in this platform, or get a better
592 compiler."
594 $run $rm $removelist
595 exit 1
598 # Just move the object if needed, then go on to compile the next one
599 if test x"$output_obj" != x"$libobj"; then
600 $show "$mv $output_obj $libobj"
601 if $run $mv $output_obj $libobj; then :
602 else
603 error=$?
604 $run $rm $removelist
605 exit $error
609 # If we have no pic_flag, then copy the object into place and finish.
610 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
611 test "$build_old_libs" = yes; then
612 # Rename the .lo from within objdir to obj
613 if test -f $obj; then
614 $show $rm $obj
615 $run $rm $obj
618 $show "$mv $libobj $obj"
619 if $run $mv $libobj $obj; then :
620 else
621 error=$?
622 $run $rm $removelist
623 exit $error
626 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
627 if test "X$xdir" = "X$obj"; then
628 xdir="."
629 else
630 xdir="$xdir"
632 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
633 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
634 # Now arrange that obj and lo_libobj become the same file
635 $show "(cd $xdir && $LN_S $baseobj $libobj)"
636 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
637 # Unlock the critical section if it was locked
638 if test "$need_locks" != no; then
639 $run $rm "$lockfile"
641 exit 0
642 else
643 error=$?
644 $run $rm $removelist
645 exit $error
649 # Allow error messages only from the first compilation.
650 suppress_output=' >/dev/null 2>&1'
653 # Only build a position-dependent object if we build old libraries.
654 if test "$build_old_libs" = yes; then
655 if test "$pic_mode" != yes; then
656 # Don't build PIC code
657 command="$base_compile $srcfile"
658 else
659 # All platforms use -DPIC, to notify preprocessed assembler code.
660 command="$base_compile $srcfile $pic_flag -DPIC"
662 if test "$compiler_c_o" = yes; then
663 command="$command -o $obj"
664 output_obj="$obj"
667 # Suppress compiler output if we already did a PIC compilation.
668 command="$command$suppress_output"
669 $run $rm "$output_obj"
670 $show "$command"
671 if $run eval "$command"; then :
672 else
673 $run $rm $removelist
674 exit 1
677 if test "$need_locks" = warn &&
678 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
679 echo "\
680 *** ERROR, $lockfile contains:
681 `cat $lockfile 2>/dev/null`
683 but it should contain:
684 $srcfile
686 This indicates that another process is trying to use the same
687 temporary object file, and libtool could not work around it because
688 your compiler does not support \`-c' and \`-o' together. If you
689 repeat this compilation, it may succeed, by chance, but you had better
690 avoid parallel builds (make -j) in this platform, or get a better
691 compiler."
693 $run $rm $removelist
694 exit 1
697 # Just move the object if needed
698 if test x"$output_obj" != x"$obj"; then
699 $show "$mv $output_obj $obj"
700 if $run $mv $output_obj $obj; then :
701 else
702 error=$?
703 $run $rm $removelist
704 exit $error
708 # Create an invalid libtool object if no PIC, so that we do not
709 # accidentally link it into a program.
710 if test "$build_libtool_libs" != yes; then
711 $show "echo timestamp > $libobj"
712 $run eval "echo timestamp > \$libobj" || exit $?
713 else
714 # Move the .lo from within objdir
715 $show "$mv $libobj $lo_libobj"
716 if $run $mv $libobj $lo_libobj; then :
717 else
718 error=$?
719 $run $rm $removelist
720 exit $error
725 # Unlock the critical section if it was locked
726 if test "$need_locks" != no; then
727 $run $rm "$lockfile"
730 exit 0
733 # libtool link mode
734 link | relink)
735 modename="$modename: link"
736 case $host in
737 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
738 # It is impossible to link a dll without this setting, and
739 # we shouldn't force the makefile maintainer to figure out
740 # which system we are compiling for in order to pass an extra
741 # flag for every libtool invokation.
742 # allow_undefined=no
744 # FIXME: Unfortunately, there are problems with the above when trying
745 # to make a dll which has undefined symbols, in which case not
746 # even a static library is built. For now, we need to specify
747 # -no-undefined on the libtool link line when we can be certain
748 # that all symbols are satisfied, otherwise we get a static library.
749 allow_undefined=yes
752 allow_undefined=yes
754 esac
755 libtool_args="$nonopt"
756 compile_command="$nonopt"
757 finalize_command="$nonopt"
759 compile_rpath=
760 finalize_rpath=
761 compile_shlibpath=
762 finalize_shlibpath=
763 convenience=
764 old_convenience=
765 deplibs=
766 old_deplibs=
767 compiler_flags=
768 linker_flags=
769 dllsearchpath=
770 lib_search_path=`pwd`
772 avoid_version=no
773 dlfiles=
774 dlprefiles=
775 dlself=no
776 export_dynamic=no
777 export_symbols=
778 export_symbols_regex=
779 generated=
780 libobjs=
781 ltlibs=
782 module=no
783 no_install=no
784 objs=
785 prefer_static_libs=no
786 preload=no
787 prev=
788 prevarg=
789 release=
790 rpath=
791 xrpath=
792 perm_rpath=
793 temp_rpath=
794 thread_safe=no
795 vinfo=
797 # We need to know -static, to get the right output filenames.
798 for arg
800 case $arg in
801 -all-static | -static)
802 if test "X$arg" = "X-all-static"; then
803 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
804 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
806 if test -n "$link_static_flag"; then
807 dlopen_self=$dlopen_self_static
809 else
810 if test -z "$pic_flag" && test -n "$link_static_flag"; then
811 dlopen_self=$dlopen_self_static
814 build_libtool_libs=no
815 build_old_libs=yes
816 prefer_static_libs=yes
817 break
819 esac
820 done
822 # See if our shared archives depend on static archives.
823 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
825 # Go through the arguments, transforming them on the way.
826 while test $# -gt 0; do
827 arg="$1"
828 shift
829 case $arg in
830 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
831 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
833 *) qarg=$arg ;;
834 esac
835 libtool_args="$libtool_args $qarg"
837 # If the previous option needs an argument, assign it.
838 if test -n "$prev"; then
839 case $prev in
840 output)
841 compile_command="$compile_command @OUTPUT@"
842 finalize_command="$finalize_command @OUTPUT@"
844 esac
846 case $prev in
847 dlfiles|dlprefiles)
848 if test "$preload" = no; then
849 # Add the symbol object into the linking commands.
850 compile_command="$compile_command @SYMFILE@"
851 finalize_command="$finalize_command @SYMFILE@"
852 preload=yes
854 case $arg in
855 *.la | *.lo) ;; # We handle these cases below.
856 force)
857 if test "$dlself" = no; then
858 dlself=needless
859 export_dynamic=yes
861 prev=
862 continue
864 self)
865 if test "$prev" = dlprefiles; then
866 dlself=yes
867 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
868 dlself=yes
869 else
870 dlself=needless
871 export_dynamic=yes
873 prev=
874 continue
877 if test "$prev" = dlfiles; then
878 dlfiles="$dlfiles $arg"
879 else
880 dlprefiles="$dlprefiles $arg"
882 prev=
883 continue
885 esac
887 expsyms)
888 export_symbols="$arg"
889 if test ! -f "$arg"; then
890 $echo "$modename: symbol file \`$arg' does not exist"
891 exit 1
893 prev=
894 continue
896 expsyms_regex)
897 export_symbols_regex="$arg"
898 prev=
899 continue
901 release)
902 release="-$arg"
903 prev=
904 continue
906 rpath | xrpath)
907 # We need an absolute path.
908 case $arg in
909 [\\/]* | [A-Za-z]:[\\/]*) ;;
911 $echo "$modename: only absolute run-paths are allowed" 1>&2
912 exit 1
914 esac
915 if test "$prev" = rpath; then
916 case "$rpath " in
917 *" $arg "*) ;;
918 *) rpath="$rpath $arg" ;;
919 esac
920 else
921 case "$xrpath " in
922 *" $arg "*) ;;
923 *) xrpath="$xrpath $arg" ;;
924 esac
926 prev=
927 continue
929 xcompiler)
930 compiler_flags="$compiler_flags $qarg"
931 prev=
932 compile_command="$compile_command $qarg"
933 finalize_command="$finalize_command $qarg"
934 continue
936 xlinker)
937 linker_flags="$linker_flags $qarg"
938 compiler_flags="$compiler_flags $wl$qarg"
939 prev=
940 compile_command="$compile_command $wl$qarg"
941 finalize_command="$finalize_command $wl$qarg"
942 continue
945 eval "$prev=\"\$arg\""
946 prev=
947 continue
949 esac
950 fi # test -n $prev
952 prevarg="$arg"
954 case $arg in
955 -all-static)
956 if test -n "$link_static_flag"; then
957 compile_command="$compile_command $link_static_flag"
958 finalize_command="$finalize_command $link_static_flag"
960 continue
963 -allow-undefined)
964 # FIXME: remove this flag sometime in the future.
965 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
966 continue
969 -avoid-version)
970 avoid_version=yes
971 continue
974 -dlopen)
975 prev=dlfiles
976 continue
979 -dlpreopen)
980 prev=dlprefiles
981 continue
984 -export-dynamic)
985 export_dynamic=yes
986 continue
989 -export-symbols | -export-symbols-regex)
990 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
991 $echo "$modename: more than one -exported-symbols argument is not allowed"
992 exit 1
994 if test "X$arg" = "X-export-symbols"; then
995 prev=expsyms
996 else
997 prev=expsyms_regex
999 continue
1002 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1003 # so, if we see these flags be careful not to treat them like -L
1004 -L[A-Z][A-Z]*:*)
1005 case $with_gcc/$host in
1006 no/*-*-irix* | no/*-*-nonstopux*)
1007 compile_command="$compile_command $arg"
1008 finalize_command="$finalize_command $arg"
1010 esac
1011 continue
1014 -L*)
1015 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1016 # We need an absolute path.
1017 case $dir in
1018 [\\/]* | [A-Za-z]:[\\/]*) ;;
1020 absdir=`cd "$dir" && pwd`
1021 if test -z "$absdir"; then
1022 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1023 exit 1
1025 dir="$absdir"
1027 esac
1028 case "$deplibs " in
1029 *" -L$dir "*) ;;
1031 deplibs="$deplibs -L$dir"
1032 lib_search_path="$lib_search_path $dir"
1034 esac
1035 case $host in
1036 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1037 case :$dllsearchpath: in
1038 *":$dir:"*) ;;
1039 *) dllsearchpath="$dllsearchpath:$dir";;
1040 esac
1042 esac
1043 continue
1046 -l*)
1047 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1048 case $host in
1049 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1050 # These systems don't actually have a C or math library (as such)
1051 continue
1053 *-*-mingw* | *-*-os2*)
1054 # These systems don't actually have a C library (as such)
1055 test "X$arg" = "X-lc" && continue
1057 *-*-openbsd* | *-*-freebsd*)
1058 # Do not include libc due to us having libc/libc_r.
1059 test "X$arg" = "X-lc" && continue
1061 esac
1062 elif test "X$arg" = "X-lc_r"; then
1063 case $host in
1064 *-*-openbsd* | *-*-freebsd*)
1065 # Do not include libc_r directly, use -pthread flag.
1066 continue
1068 esac
1070 deplibs="$deplibs $arg"
1071 continue
1074 -module)
1075 module=yes
1076 continue
1079 -no-fast-install)
1080 fast_install=no
1081 continue
1084 -no-install)
1085 case $host in
1086 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1087 # The PATH hackery in wrapper scripts is required on Windows
1088 # in order for the loader to find any dlls it needs.
1089 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1090 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1091 fast_install=no
1093 *) no_install=yes ;;
1094 esac
1095 continue
1098 -no-undefined)
1099 allow_undefined=no
1100 continue
1103 -o) prev=output ;;
1105 -release)
1106 prev=release
1107 continue
1110 -rpath)
1111 prev=rpath
1112 continue
1116 prev=xrpath
1117 continue
1120 -R*)
1121 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1122 # We need an absolute path.
1123 case $dir in
1124 [\\/]* | [A-Za-z]:[\\/]*) ;;
1126 $echo "$modename: only absolute run-paths are allowed" 1>&2
1127 exit 1
1129 esac
1130 case "$xrpath " in
1131 *" $dir "*) ;;
1132 *) xrpath="$xrpath $dir" ;;
1133 esac
1134 continue
1137 -static)
1138 # The effects of -static are defined in a previous loop.
1139 # We used to do the same as -all-static on platforms that
1140 # didn't have a PIC flag, but the assumption that the effects
1141 # would be equivalent was wrong. It would break on at least
1142 # Digital Unix and AIX.
1143 continue
1146 -thread-safe)
1147 thread_safe=yes
1148 continue
1151 -version-info)
1152 prev=vinfo
1153 continue
1156 -Wc,*)
1157 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1158 arg=
1159 save_ifs="$IFS"; IFS=','
1160 for flag in $args; do
1161 IFS="$save_ifs"
1162 case $flag in
1163 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1164 flag="\"$flag\""
1166 esac
1167 arg="$arg $wl$flag"
1168 compiler_flags="$compiler_flags $flag"
1169 done
1170 IFS="$save_ifs"
1171 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1174 -Wl,*)
1175 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1176 arg=
1177 save_ifs="$IFS"; IFS=','
1178 for flag in $args; do
1179 IFS="$save_ifs"
1180 case $flag in
1181 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1182 flag="\"$flag\""
1184 esac
1185 arg="$arg $wl$flag"
1186 compiler_flags="$compiler_flags $wl$flag"
1187 linker_flags="$linker_flags $flag"
1188 done
1189 IFS="$save_ifs"
1190 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1193 -Xcompiler)
1194 prev=xcompiler
1195 continue
1198 -Xlinker)
1199 prev=xlinker
1200 continue
1203 # Some other compiler flag.
1204 -* | +*)
1205 # Unknown arguments in both finalize_command and compile_command need
1206 # to be aesthetically quoted because they are evaled later.
1207 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1208 case $arg in
1209 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1210 arg="\"$arg\""
1212 esac
1215 *.lo | *.$objext)
1216 # A library or standard object.
1217 if test "$prev" = dlfiles; then
1218 # This file was specified with -dlopen.
1219 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1220 dlfiles="$dlfiles $arg"
1221 prev=
1222 continue
1223 else
1224 # If libtool objects are unsupported, then we need to preload.
1225 prev=dlprefiles
1229 if test "$prev" = dlprefiles; then
1230 # Preload the old-style object.
1231 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1232 prev=
1233 else
1234 case $arg in
1235 *.lo) libobjs="$libobjs $arg" ;;
1236 *) objs="$objs $arg" ;;
1237 esac
1241 *.$libext)
1242 # An archive.
1243 deplibs="$deplibs $arg"
1244 old_deplibs="$old_deplibs $arg"
1245 continue
1248 *.la)
1249 # A libtool-controlled library.
1251 if test "$prev" = dlfiles; then
1252 # This library was specified with -dlopen.
1253 dlfiles="$dlfiles $arg"
1254 prev=
1255 elif test "$prev" = dlprefiles; then
1256 # The library was specified with -dlpreopen.
1257 dlprefiles="$dlprefiles $arg"
1258 prev=
1259 else
1260 deplibs="$deplibs $arg"
1262 continue
1265 # Some other compiler argument.
1267 # Unknown arguments in both finalize_command and compile_command need
1268 # to be aesthetically quoted because they are evaled later.
1269 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1270 case $arg in
1271 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1272 arg="\"$arg\""
1274 esac
1276 esac # arg
1278 # Now actually substitute the argument into the commands.
1279 if test -n "$arg"; then
1280 compile_command="$compile_command $arg"
1281 finalize_command="$finalize_command $arg"
1283 done # argument parsing loop
1285 if test -n "$prev"; then
1286 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1287 $echo "$help" 1>&2
1288 exit 1
1291 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1292 eval arg=\"$export_dynamic_flag_spec\"
1293 compile_command="$compile_command $arg"
1294 finalize_command="$finalize_command $arg"
1297 # calculate the name of the file, without its directory
1298 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1299 libobjs_save="$libobjs"
1301 if test -n "$shlibpath_var"; then
1302 # get the directories listed in $shlibpath_var
1303 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1304 else
1305 shlib_search_path=
1307 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1308 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1310 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1311 if test "X$output_objdir" = "X$output"; then
1312 output_objdir="$objdir"
1313 else
1314 output_objdir="$output_objdir/$objdir"
1316 # Create the object directory.
1317 if test ! -d $output_objdir; then
1318 $show "$mkdir $output_objdir"
1319 $run $mkdir $output_objdir
1320 status=$?
1321 if test $status -ne 0 && test ! -d $output_objdir; then
1322 exit $status
1326 # Determine the type of output
1327 case $output in
1329 $echo "$modename: you must specify an output file" 1>&2
1330 $echo "$help" 1>&2
1331 exit 1
1333 *.$libext) linkmode=oldlib ;;
1334 *.lo | *.$objext) linkmode=obj ;;
1335 *.la) linkmode=lib ;;
1336 *) linkmode=prog ;; # Anything else should be a program.
1337 esac
1339 specialdeplibs=
1340 libs=
1341 # Find all interdependent deplibs by searching for libraries
1342 # that are linked more than once (e.g. -la -lb -la)
1343 for deplib in $deplibs; do
1344 if test "X$duplicate_deps" = "Xyes" ; then
1345 case "$libs " in
1346 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1347 esac
1349 libs="$libs $deplib"
1350 done
1351 deplibs=
1352 newdependency_libs=
1353 newlib_search_path=
1354 need_relink=no # whether we're linking any uninstalled libtool libraries
1355 notinst_deplibs= # not-installed libtool libraries
1356 notinst_path= # paths that contain not-installed libtool libraries
1357 case $linkmode in
1358 lib)
1359 passes="conv link"
1360 for file in $dlfiles $dlprefiles; do
1361 case $file in
1362 *.la) ;;
1364 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1365 exit 1
1367 esac
1368 done
1370 prog)
1371 compile_deplibs=
1372 finalize_deplibs=
1373 alldeplibs=no
1374 newdlfiles=
1375 newdlprefiles=
1376 passes="conv scan dlopen dlpreopen link"
1378 *) passes="conv"
1380 esac
1381 for pass in $passes; do
1382 if test $linkmode = prog; then
1383 # Determine which files to process
1384 case $pass in
1385 dlopen)
1386 libs="$dlfiles"
1387 save_deplibs="$deplibs" # Collect dlpreopened libraries
1388 deplibs=
1390 dlpreopen) libs="$dlprefiles" ;;
1391 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1392 esac
1394 for deplib in $libs; do
1395 lib=
1396 found=no
1397 case $deplib in
1398 -l*)
1399 if test $linkmode = oldlib && test $linkmode = obj; then
1400 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1401 continue
1403 if test $pass = conv; then
1404 deplibs="$deplib $deplibs"
1405 continue
1407 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1408 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1409 # Search the libtool library
1410 lib="$searchdir/lib${name}.la"
1411 if test -f "$lib"; then
1412 found=yes
1413 break
1415 done
1416 if test "$found" != yes; then
1417 # deplib doesn't seem to be a libtool library
1418 if test "$linkmode,$pass" = "prog,link"; then
1419 compile_deplibs="$deplib $compile_deplibs"
1420 finalize_deplibs="$deplib $finalize_deplibs"
1421 else
1422 deplibs="$deplib $deplibs"
1423 test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1425 continue
1427 ;; # -l
1428 -L*)
1429 case $linkmode in
1430 lib)
1431 deplibs="$deplib $deplibs"
1432 test $pass = conv && continue
1433 newdependency_libs="$deplib $newdependency_libs"
1434 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1436 prog)
1437 if test $pass = conv; then
1438 deplibs="$deplib $deplibs"
1439 continue
1441 if test $pass = scan; then
1442 deplibs="$deplib $deplibs"
1443 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1444 else
1445 compile_deplibs="$deplib $compile_deplibs"
1446 finalize_deplibs="$deplib $finalize_deplibs"
1450 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1452 esac # linkmode
1453 continue
1454 ;; # -L
1455 -R*)
1456 if test $pass = link; then
1457 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1458 # Make sure the xrpath contains only unique directories.
1459 case "$xrpath " in
1460 *" $dir "*) ;;
1461 *) xrpath="$xrpath $dir" ;;
1462 esac
1464 deplibs="$deplib $deplibs"
1465 continue
1467 *.la) lib="$deplib" ;;
1468 *.$libext)
1469 if test $pass = conv; then
1470 deplibs="$deplib $deplibs"
1471 continue
1473 case $linkmode in
1474 lib)
1475 if test "$deplibs_check_method" != pass_all; then
1476 echo
1477 echo "*** Warning: Trying to link with static lib archive $deplib."
1478 echo "*** I have the capability to make that library automatically link in when"
1479 echo "*** you link to this library. But I can only do this if you have a"
1480 echo "*** shared version of the library, which you do not appear to have"
1481 echo "*** because the file extensions .$libext of this argument makes me believe"
1482 echo "*** that it is just a static archive that I should not used here."
1483 else
1484 echo
1485 echo "*** Warning: Linking the shared library $output against the"
1486 echo "*** static library $deplib is not portable!"
1487 deplibs="$deplib $deplibs"
1489 continue
1491 prog)
1492 if test $pass != link; then
1493 deplibs="$deplib $deplibs"
1494 else
1495 compile_deplibs="$deplib $compile_deplibs"
1496 finalize_deplibs="$deplib $finalize_deplibs"
1498 continue
1500 esac # linkmode
1501 ;; # *.$libext
1502 *.lo | *.$objext)
1503 if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1504 # If there is no dlopen support or we're linking statically,
1505 # we need to preload.
1506 newdlprefiles="$newdlprefiles $deplib"
1507 compile_deplibs="$deplib $compile_deplibs"
1508 finalize_deplibs="$deplib $finalize_deplibs"
1509 else
1510 newdlfiles="$newdlfiles $deplib"
1512 continue
1514 %DEPLIBS%)
1515 alldeplibs=yes
1516 continue
1518 esac # case $deplib
1519 if test $found = yes || test -f "$lib"; then :
1520 else
1521 $echo "$modename: cannot find the library \`$lib'" 1>&2
1522 exit 1
1525 # Check to see that this really is a libtool archive.
1526 if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1527 else
1528 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1529 exit 1
1532 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1533 test "X$ladir" = "X$lib" && ladir="."
1535 dlname=
1536 dlopen=
1537 dlpreopen=
1538 libdir=
1539 library_names=
1540 old_library=
1541 # If the library was installed with an old release of libtool,
1542 # it will not redefine variable installed.
1543 installed=yes
1545 # Read the .la file
1546 case $lib in
1547 */* | *\\*) . $lib ;;
1548 *) . ./$lib ;;
1549 esac
1551 if test "$linkmode,$pass" = "lib,link" ||
1552 test "$linkmode,$pass" = "prog,scan" ||
1553 { test $linkmode = oldlib && test $linkmode = obj; }; then
1554 # Add dl[pre]opened files of deplib
1555 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1556 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1559 if test $pass = conv; then
1560 # Only check for convenience libraries
1561 deplibs="$lib $deplibs"
1562 if test -z "$libdir"; then
1563 if test -z "$old_library"; then
1564 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1565 exit 1
1567 # It is a libtool convenience library, so add in its objects.
1568 convenience="$convenience $ladir/$objdir/$old_library"
1569 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1570 tmp_libs=
1571 for deplib in $dependency_libs; do
1572 deplibs="$deplib $deplibs"
1573 if test "X$duplicate_deps" = "Xyes" ; then
1574 case "$tmp_libs " in
1575 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1576 esac
1578 tmp_libs="$tmp_libs $deplib"
1579 done
1580 elif test $linkmode != prog && test $linkmode != lib; then
1581 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1582 exit 1
1584 continue
1585 fi # $pass = conv
1587 # Get the name of the library we link against.
1588 linklib=
1589 for l in $old_library $library_names; do
1590 linklib="$l"
1591 done
1592 if test -z "$linklib"; then
1593 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1594 exit 1
1597 # This library was specified with -dlopen.
1598 if test $pass = dlopen; then
1599 if test -z "$libdir"; then
1600 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1601 exit 1
1603 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1604 # If there is no dlname, no dlopen support or we're linking
1605 # statically, we need to preload.
1606 dlprefiles="$dlprefiles $lib"
1607 else
1608 newdlfiles="$newdlfiles $lib"
1610 continue
1611 fi # $pass = dlopen
1613 # We need an absolute path.
1614 case $ladir in
1615 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1617 abs_ladir=`cd "$ladir" && pwd`
1618 if test -z "$abs_ladir"; then
1619 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1620 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1621 abs_ladir="$ladir"
1624 esac
1625 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1627 # Find the relevant object directory and library name.
1628 if test "X$installed" = Xyes; then
1629 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1630 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1631 dir="$ladir"
1632 absdir="$abs_ladir"
1633 libdir="$abs_ladir"
1634 else
1635 dir="$libdir"
1636 absdir="$libdir"
1638 else
1639 dir="$ladir/$objdir"
1640 absdir="$abs_ladir/$objdir"
1641 # Remove this search path later
1642 notinst_path="$notinst_path $abs_ladir"
1643 fi # $installed = yes
1644 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1646 # This library was specified with -dlpreopen.
1647 if test $pass = dlpreopen; then
1648 if test -z "$libdir"; then
1649 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1650 exit 1
1652 # Prefer using a static library (so that no silly _DYNAMIC symbols
1653 # are required to link).
1654 if test -n "$old_library"; then
1655 newdlprefiles="$newdlprefiles $dir/$old_library"
1656 # Otherwise, use the dlname, so that lt_dlopen finds it.
1657 elif test -n "$dlname"; then
1658 newdlprefiles="$newdlprefiles $dir/$dlname"
1659 else
1660 newdlprefiles="$newdlprefiles $dir/$linklib"
1662 fi # $pass = dlpreopen
1664 if test -z "$libdir"; then
1665 # Link the convenience library
1666 if test $linkmode = lib; then
1667 deplibs="$dir/$old_library $deplibs"
1668 elif test "$linkmode,$pass" = "prog,link"; then
1669 compile_deplibs="$dir/$old_library $compile_deplibs"
1670 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1671 else
1672 deplibs="$lib $deplibs"
1674 continue
1677 if test $linkmode = prog && test $pass != link; then
1678 newlib_search_path="$newlib_search_path $ladir"
1679 deplibs="$lib $deplibs"
1681 linkalldeplibs=no
1682 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1683 test "$build_libtool_libs" = no; then
1684 linkalldeplibs=yes
1687 tmp_libs=
1688 for deplib in $dependency_libs; do
1689 case $deplib in
1690 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1691 esac
1692 # Need to link against all dependency_libs?
1693 if test $linkalldeplibs = yes; then
1694 deplibs="$deplib $deplibs"
1695 else
1696 # Need to hardcode shared library paths
1697 # or/and link against static libraries
1698 newdependency_libs="$deplib $newdependency_libs"
1700 if test "X$duplicate_deps" = "Xyes" ; then
1701 case "$tmp_libs " in
1702 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1703 esac
1705 tmp_libs="$tmp_libs $deplib"
1706 done # for deplib
1707 continue
1708 fi # $linkmode = prog...
1710 link_static=no # Whether the deplib will be linked statically
1711 if test -n "$library_names" &&
1712 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1713 # Link against this shared library
1715 if test "$linkmode,$pass" = "prog,link" ||
1716 { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
1717 # Hardcode the library path.
1718 # Skip directories that are in the system default run-time
1719 # search path.
1720 case " $sys_lib_dlsearch_path " in
1721 *" $absdir "*) ;;
1723 case "$compile_rpath " in
1724 *" $absdir "*) ;;
1725 *) compile_rpath="$compile_rpath $absdir"
1726 esac
1728 esac
1729 case " $sys_lib_dlsearch_path " in
1730 *" $libdir "*) ;;
1732 case "$finalize_rpath " in
1733 *" $libdir "*) ;;
1734 *) finalize_rpath="$finalize_rpath $libdir"
1735 esac
1737 esac
1738 if test $linkmode = prog; then
1739 # We need to hardcode the library path
1740 if test -n "$shlibpath_var"; then
1741 # Make sure the rpath contains only unique directories.
1742 case "$temp_rpath " in
1743 *" $dir "*) ;;
1744 *" $absdir "*) ;;
1745 *) temp_rpath="$temp_rpath $dir" ;;
1746 esac
1749 fi # $linkmode,$pass = prog,link...
1751 if test "$alldeplibs" = yes &&
1752 { test "$deplibs_check_method" = pass_all ||
1753 { test "$build_libtool_libs" = yes &&
1754 test -n "$library_names"; }; }; then
1755 # We only need to search for static libraries
1756 continue
1759 if test "$installed" = no; then
1760 notinst_deplibs="$notinst_deplibs $lib"
1761 need_relink=yes
1764 if test -n "$old_archive_from_expsyms_cmds"; then
1765 # figure out the soname
1766 set dummy $library_names
1767 realname="$2"
1768 shift; shift
1769 libname=`eval \\$echo \"$libname_spec\"`
1770 # use dlname if we got it. it's perfectly good, no?
1771 if test -n "$dlname"; then
1772 soname="$dlname"
1773 elif test -n "$soname_spec"; then
1774 # bleh windows
1775 case $host in
1776 *cygwin*)
1777 major=`expr $current - $age`
1778 versuffix="-$major"
1780 esac
1781 eval soname=\"$soname_spec\"
1782 else
1783 soname="$realname"
1786 # Make a new name for the extract_expsyms_cmds to use
1787 soroot="$soname"
1788 soname=`echo $soroot | ${SED} -e 's/^.*\///'`
1789 newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
1791 # If the library has no export list, then create one now
1792 if test -f "$output_objdir/$soname-def"; then :
1793 else
1794 $show "extracting exported symbol list from \`$soname'"
1795 save_ifs="$IFS"; IFS='~'
1796 eval cmds=\"$extract_expsyms_cmds\"
1797 for cmd in $cmds; do
1798 IFS="$save_ifs"
1799 $show "$cmd"
1800 $run eval "$cmd" || exit $?
1801 done
1802 IFS="$save_ifs"
1805 # Create $newlib
1806 if test -f "$output_objdir/$newlib"; then :; else
1807 $show "generating import library for \`$soname'"
1808 save_ifs="$IFS"; IFS='~'
1809 eval cmds=\"$old_archive_from_expsyms_cmds\"
1810 for cmd in $cmds; do
1811 IFS="$save_ifs"
1812 $show "$cmd"
1813 $run eval "$cmd" || exit $?
1814 done
1815 IFS="$save_ifs"
1817 # make sure the library variables are pointing to the new library
1818 dir=$output_objdir
1819 linklib=$newlib
1820 fi # test -n $old_archive_from_expsyms_cmds
1822 if test $linkmode = prog || test "$mode" != relink; then
1823 add_shlibpath=
1824 add_dir=
1825 add=
1826 lib_linked=yes
1827 case $hardcode_action in
1828 immediate | unsupported)
1829 if test "$hardcode_direct" = no; then
1830 add="$dir/$linklib"
1831 elif test "$hardcode_minus_L" = no; then
1832 case $host in
1833 *-*-sunos*) add_shlibpath="$dir" ;;
1834 esac
1835 add_dir="-L$dir"
1836 add="-l$name"
1837 elif test "$hardcode_shlibpath_var" = no; then
1838 add_shlibpath="$dir"
1839 add="-l$name"
1840 else
1841 lib_linked=no
1844 relink)
1845 if test "$hardcode_direct" = yes; then
1846 add="$dir/$linklib"
1847 elif test "$hardcode_minus_L" = yes; then
1848 add_dir="-L$dir"
1849 add="-l$name"
1850 elif test "$hardcode_shlibpath_var" = yes; then
1851 add_shlibpath="$dir"
1852 add="-l$name"
1853 else
1854 lib_linked=no
1857 *) lib_linked=no ;;
1858 esac
1860 if test "$lib_linked" != yes; then
1861 $echo "$modename: configuration error: unsupported hardcode properties"
1862 exit 1
1865 if test -n "$add_shlibpath"; then
1866 case :$compile_shlibpath: in
1867 *":$add_shlibpath:"*) ;;
1868 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1869 esac
1871 if test $linkmode = prog; then
1872 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1873 test -n "$add" && compile_deplibs="$add $compile_deplibs"
1874 else
1875 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1876 test -n "$add" && deplibs="$add $deplibs"
1877 if test "$hardcode_direct" != yes && \
1878 test "$hardcode_minus_L" != yes && \
1879 test "$hardcode_shlibpath_var" = yes; then
1880 case :$finalize_shlibpath: in
1881 *":$libdir:"*) ;;
1882 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1883 esac
1888 if test $linkmode = prog || test "$mode" = relink; then
1889 add_shlibpath=
1890 add_dir=
1891 add=
1892 # Finalize command for both is simple: just hardcode it.
1893 if test "$hardcode_direct" = yes; then
1894 add="$libdir/$linklib"
1895 elif test "$hardcode_minus_L" = yes; then
1896 add_dir="-L$libdir"
1897 add="-l$name"
1898 elif test "$hardcode_shlibpath_var" = yes; then
1899 case :$finalize_shlibpath: in
1900 *":$libdir:"*) ;;
1901 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1902 esac
1903 add="-l$name"
1904 else
1905 # We cannot seem to hardcode it, guess we'll fake it.
1906 add_dir="-L$libdir"
1907 add="-l$name"
1910 if test $linkmode = prog; then
1911 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
1912 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
1913 else
1914 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1915 test -n "$add" && deplibs="$add $deplibs"
1918 elif test $linkmode = prog; then
1919 if test "$alldeplibs" = yes &&
1920 { test "$deplibs_check_method" = pass_all ||
1921 { test "$build_libtool_libs" = yes &&
1922 test -n "$library_names"; }; }; then
1923 # We only need to search for static libraries
1924 continue
1927 # Try to link the static library
1928 # Here we assume that one of hardcode_direct or hardcode_minus_L
1929 # is not unsupported. This is valid on all known static and
1930 # shared platforms.
1931 if test "$hardcode_direct" != unsupported; then
1932 test -n "$old_library" && linklib="$old_library"
1933 compile_deplibs="$dir/$linklib $compile_deplibs"
1934 finalize_deplibs="$dir/$linklib $finalize_deplibs"
1935 else
1936 compile_deplibs="-l$name -L$dir $compile_deplibs"
1937 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
1939 elif test "$build_libtool_libs" = yes; then
1940 # Not a shared library
1941 if test "$deplibs_check_method" != pass_all; then
1942 # We're trying link a shared library against a static one
1943 # but the system doesn't support it.
1945 # Just print a warning and add the library to dependency_libs so
1946 # that the program can be linked against the static library.
1947 echo
1948 echo "*** Warning: This system can not link to static lib archive $lib."
1949 echo "*** I have the capability to make that library automatically link in when"
1950 echo "*** you link to this library. But I can only do this if you have a"
1951 echo "*** shared version of the library, which you do not appear to have."
1952 if test "$module" = yes; then
1953 echo "*** But as you try to build a module library, libtool will still create "
1954 echo "*** a static module, that should work as long as the dlopening application"
1955 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
1956 if test -z "$global_symbol_pipe"; then
1957 echo
1958 echo "*** However, this would only work if libtool was able to extract symbol"
1959 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1960 echo "*** not find such a program. So, this module is probably useless."
1961 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1963 if test "$build_old_libs" = no; then
1964 build_libtool_libs=module
1965 build_old_libs=yes
1966 else
1967 build_libtool_libs=no
1970 else
1971 convenience="$convenience $dir/$old_library"
1972 old_convenience="$old_convenience $dir/$old_library"
1973 deplibs="$dir/$old_library $deplibs"
1974 link_static=yes
1976 fi # link shared/static library?
1978 if test $linkmode = lib; then
1979 if test -n "$dependency_libs" &&
1980 { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
1981 test $link_static = yes; }; then
1982 # Extract -R from dependency_libs
1983 temp_deplibs=
1984 for libdir in $dependency_libs; do
1985 case $libdir in
1986 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
1987 case " $xrpath " in
1988 *" $temp_xrpath "*) ;;
1989 *) xrpath="$xrpath $temp_xrpath";;
1990 esac;;
1991 *) temp_deplibs="$temp_deplibs $libdir";;
1992 esac
1993 done
1994 dependency_libs="$temp_deplibs"
1997 newlib_search_path="$newlib_search_path $absdir"
1998 # Link against this library
1999 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2000 # ... and its dependency_libs
2001 tmp_libs=
2002 for deplib in $dependency_libs; do
2003 newdependency_libs="$deplib $newdependency_libs"
2004 if test "X$duplicate_deps" = "Xyes" ; then
2005 case "$tmp_libs " in
2006 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2007 esac
2009 tmp_libs="$tmp_libs $deplib"
2010 done
2012 if test $link_all_deplibs != no; then
2013 # Add the search paths of all dependency libraries
2014 for deplib in $dependency_libs; do
2015 case $deplib in
2016 -L*) path="$deplib" ;;
2017 *.la)
2018 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2019 test "X$dir" = "X$deplib" && dir="."
2020 # We need an absolute path.
2021 case $dir in
2022 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2024 absdir=`cd "$dir" && pwd`
2025 if test -z "$absdir"; then
2026 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2027 absdir="$dir"
2030 esac
2031 if grep "^installed=no" $deplib > /dev/null; then
2032 path="-L$absdir/$objdir"
2033 else
2034 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2035 if test -z "$libdir"; then
2036 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2037 exit 1
2039 if test "$absdir" != "$libdir"; then
2040 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2042 path="-L$absdir"
2045 *) continue ;;
2046 esac
2047 case " $deplibs " in
2048 *" $path "*) ;;
2049 *) deplibs="$deplibs $path" ;;
2050 esac
2051 done
2052 fi # link_all_deplibs != no
2053 fi # linkmode = lib
2054 done # for deplib in $libs
2055 if test $pass = dlpreopen; then
2056 # Link the dlpreopened libraries before other libraries
2057 for deplib in $save_deplibs; do
2058 deplibs="$deplib $deplibs"
2059 done
2061 if test $pass != dlopen; then
2062 test $pass != scan && dependency_libs="$newdependency_libs"
2063 if test $pass != conv; then
2064 # Make sure lib_search_path contains only unique directories.
2065 lib_search_path=
2066 for dir in $newlib_search_path; do
2067 case "$lib_search_path " in
2068 *" $dir "*) ;;
2069 *) lib_search_path="$lib_search_path $dir" ;;
2070 esac
2071 done
2072 newlib_search_path=
2075 if test "$linkmode,$pass" != "prog,link"; then
2076 vars="deplibs"
2077 else
2078 vars="compile_deplibs finalize_deplibs"
2080 for var in $vars dependency_libs; do
2081 # Add libraries to $var in reverse order
2082 eval tmp_libs=\"\$$var\"
2083 new_libs=
2084 for deplib in $tmp_libs; do
2085 case $deplib in
2086 -L*) new_libs="$deplib $new_libs" ;;
2088 case " $specialdeplibs " in
2089 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2091 case " $new_libs " in
2092 *" $deplib "*) ;;
2093 *) new_libs="$deplib $new_libs" ;;
2094 esac
2096 esac
2098 esac
2099 done
2100 tmp_libs=
2101 for deplib in $new_libs; do
2102 case $deplib in
2103 -L*)
2104 case " $tmp_libs " in
2105 *" $deplib "*) ;;
2106 *) tmp_libs="$tmp_libs $deplib" ;;
2107 esac
2109 *) tmp_libs="$tmp_libs $deplib" ;;
2110 esac
2111 done
2112 eval $var=\"$tmp_libs\"
2113 done # for var
2115 if test "$pass" = "conv" &&
2116 { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2117 libs="$deplibs" # reset libs
2118 deplibs=
2120 done # for pass
2121 if test $linkmode = prog; then
2122 dlfiles="$newdlfiles"
2123 dlprefiles="$newdlprefiles"
2126 case $linkmode in
2127 oldlib)
2128 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2129 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2132 if test -n "$rpath"; then
2133 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2136 if test -n "$xrpath"; then
2137 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2140 if test -n "$vinfo"; then
2141 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2144 if test -n "$release"; then
2145 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2148 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2149 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2152 # Now set the variables for building old libraries.
2153 build_libtool_libs=no
2154 oldlibs="$output"
2155 objs="$objs$old_deplibs"
2158 lib)
2159 # Make sure we only generate libraries of the form `libNAME.la'.
2160 case $outputname in
2161 lib*)
2162 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2163 eval libname=\"$libname_spec\"
2166 if test "$module" = no; then
2167 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2168 $echo "$help" 1>&2
2169 exit 1
2171 if test "$need_lib_prefix" != no; then
2172 # Add the "lib" prefix for modules if required
2173 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2174 eval libname=\"$libname_spec\"
2175 else
2176 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2179 esac
2181 if test -n "$objs"; then
2182 if test "$deplibs_check_method" != pass_all; then
2183 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2184 exit 1
2185 else
2186 echo
2187 echo "*** Warning: Linking the shared library $output against the non-libtool"
2188 echo "*** objects $objs is not portable!"
2189 libobjs="$libobjs $objs"
2193 if test "$dlself" != no; then
2194 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2197 set dummy $rpath
2198 if test $# -gt 2; then
2199 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2201 install_libdir="$2"
2203 oldlibs=
2204 if test -z "$rpath"; then
2205 if test "$build_libtool_libs" = yes; then
2206 # Building a libtool convenience library.
2207 libext=al
2208 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2209 build_libtool_libs=convenience
2210 build_old_libs=yes
2213 if test -n "$vinfo"; then
2214 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2217 if test -n "$release"; then
2218 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2220 else
2222 # Parse the version information argument.
2223 save_ifs="$IFS"; IFS=':'
2224 set dummy $vinfo 0 0 0
2225 IFS="$save_ifs"
2227 if test -n "$8"; then
2228 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2229 $echo "$help" 1>&2
2230 exit 1
2233 current="$2"
2234 revision="$3"
2235 age="$4"
2237 # Check that each of the things are valid numbers.
2238 case $current in
2239 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2241 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2242 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2243 exit 1
2245 esac
2247 case $revision in
2248 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2250 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2251 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2252 exit 1
2254 esac
2256 case $age in
2257 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2259 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2260 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2261 exit 1
2263 esac
2265 if test $age -gt $current; then
2266 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2267 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2268 exit 1
2271 # Calculate the version variables.
2272 major=
2273 versuffix=
2274 verstring=
2275 case $version_type in
2276 none) ;;
2278 darwin)
2279 # Like Linux, but with the current version available in
2280 # verstring for coding it into the library header
2281 major=.`expr $current - $age`
2282 versuffix="$major.$age.$revision"
2283 # Darwin ld doesn't like 0 for these options...
2284 minor_current=`expr $current + 1`
2285 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2288 freebsd-aout)
2289 major=".$current"
2290 versuffix=".$current.$revision";
2293 freebsd-elf)
2294 major=".$current"
2295 versuffix=".$current";
2298 irix | nonstopux)
2299 major=`expr $current - $age + 1`
2301 case $version_type in
2302 nonstopux) verstring_prefix=nonstopux ;;
2303 *) verstring_prefix=sgi ;;
2304 esac
2305 verstring="$verstring_prefix$major.$revision"
2307 # Add in all the interfaces that we are compatible with.
2308 loop=$revision
2309 while test $loop != 0; do
2310 iface=`expr $revision - $loop`
2311 loop=`expr $loop - 1`
2312 verstring="$verstring_prefix$major.$iface:$verstring"
2313 done
2315 # Before this point, $major must not contain `.'.
2316 major=.$major
2317 versuffix="$major.$revision"
2320 linux)
2321 major=.`expr $current - $age`
2322 versuffix="$major.$age.$revision"
2325 osf)
2326 major=.`expr $current - $age`
2327 versuffix=".$current.$age.$revision"
2328 verstring="$current.$age.$revision"
2330 # Add in all the interfaces that we are compatible with.
2331 loop=$age
2332 while test $loop != 0; do
2333 iface=`expr $current - $loop`
2334 loop=`expr $loop - 1`
2335 verstring="$verstring:${iface}.0"
2336 done
2338 # Make executables depend on our current version.
2339 verstring="$verstring:${current}.0"
2342 sunos)
2343 major=".$current"
2344 versuffix=".$current.$revision"
2347 windows)
2348 # Use '-' rather than '.', since we only want one
2349 # extension on DOS 8.3 filesystems.
2350 major=`expr $current - $age`
2351 versuffix="-$major"
2355 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2356 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2357 exit 1
2359 esac
2361 # Clear the version info if we defaulted, and they specified a release.
2362 if test -z "$vinfo" && test -n "$release"; then
2363 major=
2364 verstring="0.0"
2365 case $version_type in
2366 darwin)
2367 # we can't check for "0.0" in archive_cmds due to quoting
2368 # problems, so we reset it completely
2369 verstring=""
2372 verstring="0.0"
2374 esac
2375 if test "$need_version" = no; then
2376 versuffix=
2377 else
2378 versuffix=".0.0"
2382 # Remove version info from name if versioning should be avoided
2383 if test "$avoid_version" = yes && test "$need_version" = no; then
2384 major=
2385 versuffix=
2386 verstring=""
2389 # Check to see if the archive will have undefined symbols.
2390 if test "$allow_undefined" = yes; then
2391 if test "$allow_undefined_flag" = unsupported; then
2392 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2393 build_libtool_libs=no
2394 build_old_libs=yes
2396 else
2397 # Don't allow undefined symbols.
2398 allow_undefined_flag="$no_undefined_flag"
2402 if test "$mode" != relink; then
2403 # Remove our outputs.
2404 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2405 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2408 # Now set the variables for building old libraries.
2409 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2410 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2412 # Transform .lo files to .o files.
2413 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2416 # Eliminate all temporary directories.
2417 for path in $notinst_path; do
2418 lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
2419 deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
2420 dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
2421 done
2423 if test -n "$xrpath"; then
2424 # If the user specified any rpath flags, then add them.
2425 temp_xrpath=
2426 for libdir in $xrpath; do
2427 temp_xrpath="$temp_xrpath -R$libdir"
2428 case "$finalize_rpath " in
2429 *" $libdir "*) ;;
2430 *) finalize_rpath="$finalize_rpath $libdir" ;;
2431 esac
2432 done
2433 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2434 dependency_libs="$temp_xrpath $dependency_libs"
2438 # Make sure dlfiles contains only unique files that won't be dlpreopened
2439 old_dlfiles="$dlfiles"
2440 dlfiles=
2441 for lib in $old_dlfiles; do
2442 case " $dlprefiles $dlfiles " in
2443 *" $lib "*) ;;
2444 *) dlfiles="$dlfiles $lib" ;;
2445 esac
2446 done
2448 # Make sure dlprefiles contains only unique files
2449 old_dlprefiles="$dlprefiles"
2450 dlprefiles=
2451 for lib in $old_dlprefiles; do
2452 case "$dlprefiles " in
2453 *" $lib "*) ;;
2454 *) dlprefiles="$dlprefiles $lib" ;;
2455 esac
2456 done
2458 if test "$build_libtool_libs" = yes; then
2459 if test -n "$rpath"; then
2460 case $host in
2461 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2462 # these systems don't actually have a c library (as such)!
2464 *-*-rhapsody* | *-*-darwin1.[012])
2465 # Rhapsody C library is in the System framework
2466 deplibs="$deplibs -framework System"
2468 *-*-netbsd*)
2469 # Don't link with libc until the a.out ld.so is fixed.
2471 *-*-openbsd* | *-*-freebsd*)
2472 # Do not include libc due to us having libc/libc_r.
2475 # Add libc to deplibs on all other systems if necessary.
2476 if test $build_libtool_need_lc = "yes"; then
2477 deplibs="$deplibs -lc"
2480 esac
2483 # Transform deplibs into only deplibs that can be linked in shared.
2484 name_save=$name
2485 libname_save=$libname
2486 release_save=$release
2487 versuffix_save=$versuffix
2488 major_save=$major
2489 # I'm not sure if I'm treating the release correctly. I think
2490 # release should show up in the -l (ie -lgmp5) so we don't want to
2491 # add it in twice. Is that correct?
2492 release=""
2493 versuffix=""
2494 major=""
2495 newdeplibs=
2496 droppeddeps=no
2497 case $deplibs_check_method in
2498 pass_all)
2499 # Don't check for shared/static. Everything works.
2500 # This might be a little naive. We might want to check
2501 # whether the library exists or not. But this is on
2502 # osf3 & osf4 and I'm not really sure... Just
2503 # implementing what was already the behaviour.
2504 newdeplibs=$deplibs
2506 test_compile)
2507 # This code stresses the "libraries are programs" paradigm to its
2508 # limits. Maybe even breaks it. We compile a program, linking it
2509 # against the deplibs as a proxy for the library. Then we can check
2510 # whether they linked in statically or dynamically with ldd.
2511 $rm conftest.c
2512 cat > conftest.c <<EOF
2513 int main() { return 0; }
2515 $rm conftest
2516 $CC -o conftest conftest.c $deplibs
2517 if test $? -eq 0 ; then
2518 ldd_output=`ldd conftest`
2519 for i in $deplibs; do
2520 name="`expr $i : '-l\(.*\)'`"
2521 # If $name is empty we are operating on a -L argument.
2522 if test -n "$name" && test "$name" != "0"; then
2523 libname=`eval \\$echo \"$libname_spec\"`
2524 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2525 set dummy $deplib_matches
2526 deplib_match=$2
2527 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2528 newdeplibs="$newdeplibs $i"
2529 else
2530 droppeddeps=yes
2531 echo
2532 echo "*** Warning: dynamic linker does not accept needed library $i."
2533 echo "*** I have the capability to make that library automatically link in when"
2534 echo "*** you link to this library. But I can only do this if you have a"
2535 echo "*** shared version of the library, which I believe you do not have"
2536 echo "*** because a test_compile did reveal that the linker did not use it for"
2537 echo "*** its dynamic dependency list that programs get resolved with at runtime."
2539 else
2540 newdeplibs="$newdeplibs $i"
2542 done
2543 else
2544 # Error occured in the first compile. Let's try to salvage
2545 # the situation: Compile a separate program for each library.
2546 for i in $deplibs; do
2547 name="`expr $i : '-l\(.*\)'`"
2548 # If $name is empty we are operating on a -L argument.
2549 if test -n "$name" && test "$name" != "0"; then
2550 $rm conftest
2551 $CC -o conftest conftest.c $i
2552 # Did it work?
2553 if test $? -eq 0 ; then
2554 ldd_output=`ldd conftest`
2555 libname=`eval \\$echo \"$libname_spec\"`
2556 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2557 set dummy $deplib_matches
2558 deplib_match=$2
2559 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2560 newdeplibs="$newdeplibs $i"
2561 else
2562 droppeddeps=yes
2563 echo
2564 echo "*** Warning: dynamic linker does not accept needed library $i."
2565 echo "*** I have the capability to make that library automatically link in when"
2566 echo "*** you link to this library. But I can only do this if you have a"
2567 echo "*** shared version of the library, which you do not appear to have"
2568 echo "*** because a test_compile did reveal that the linker did not use this one"
2569 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
2571 else
2572 droppeddeps=yes
2573 echo
2574 echo "*** Warning! Library $i is needed by this library but I was not able to"
2575 echo "*** make it link in! You will probably need to install it or some"
2576 echo "*** library that it depends on before this library will be fully"
2577 echo "*** functional. Installing it before continuing would be even better."
2579 else
2580 newdeplibs="$newdeplibs $i"
2582 done
2585 file_magic*)
2586 set dummy $deplibs_check_method
2587 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2588 for a_deplib in $deplibs; do
2589 name="`expr $a_deplib : '-l\(.*\)'`"
2590 # If $name is empty we are operating on a -L argument.
2591 if test -n "$name" && test "$name" != "0"; then
2592 libname=`eval \\$echo \"$libname_spec\"`
2593 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2594 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2595 for potent_lib in $potential_libs; do
2596 # Follow soft links.
2597 if ls -lLd "$potent_lib" 2>/dev/null \
2598 | grep " -> " >/dev/null; then
2599 continue
2601 # The statement above tries to avoid entering an
2602 # endless loop below, in case of cyclic links.
2603 # We might still enter an endless loop, since a link
2604 # loop can be closed while we follow links,
2605 # but so what?
2606 potlib="$potent_lib"
2607 while test -h "$potlib" 2>/dev/null; do
2608 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
2609 case $potliblink in
2610 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2611 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2612 esac
2613 done
2614 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2615 | ${SED} 10q \
2616 | egrep "$file_magic_regex" > /dev/null; then
2617 newdeplibs="$newdeplibs $a_deplib"
2618 a_deplib=""
2619 break 2
2621 done
2622 done
2623 if test -n "$a_deplib" ; then
2624 droppeddeps=yes
2625 echo
2626 echo "*** Warning: linker path does not have real file for library $a_deplib."
2627 echo "*** I have the capability to make that library automatically link in when"
2628 echo "*** you link to this library. But I can only do this if you have a"
2629 echo "*** shared version of the library, which you do not appear to have"
2630 echo "*** because I did check the linker path looking for a file starting"
2631 if test -z "$potlib" ; then
2632 echo "*** with $libname but no candidates were found. (...for file magic test)"
2633 else
2634 echo "*** with $libname and none of the candidates passed a file format test"
2635 echo "*** using a file magic. Last file checked: $potlib"
2638 else
2639 # Add a -L argument.
2640 newdeplibs="$newdeplibs $a_deplib"
2642 done # Gone through all deplibs.
2644 match_pattern*)
2645 set dummy $deplibs_check_method
2646 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2647 for a_deplib in $deplibs; do
2648 name="`expr $a_deplib : '-l\(.*\)'`"
2649 # If $name is empty we are operating on a -L argument.
2650 if test -n "$name" && test "$name" != "0"; then
2651 libname=`eval \\$echo \"$libname_spec\"`
2652 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2653 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2654 for potent_lib in $potential_libs; do
2655 potlib="$potent_lib" # see symlink-check below in file_magic test
2656 if eval echo \"$potent_lib\" 2>/dev/null \
2657 | ${SED} 10q \
2658 | egrep "$match_pattern_regex" > /dev/null; then
2659 newdeplibs="$newdeplibs $a_deplib"
2660 a_deplib=""
2661 break 2
2663 done
2664 done
2665 if test -n "$a_deplib" ; then
2666 droppeddeps=yes
2667 echo
2668 echo "*** Warning: linker path does not have real file for library $a_deplib."
2669 echo "*** I have the capability to make that library automatically link in when"
2670 echo "*** you link to this library. But I can only do this if you have a"
2671 echo "*** shared version of the library, which you do not appear to have"
2672 echo "*** because I did check the linker path looking for a file starting"
2673 if test -z "$potlib" ; then
2674 echo "*** with $libname but no candidates were found. (...for regex pattern test)"
2675 else
2676 echo "*** with $libname and none of the candidates passed a file format test"
2677 echo "*** using a regex pattern. Last file checked: $potlib"
2680 else
2681 # Add a -L argument.
2682 newdeplibs="$newdeplibs $a_deplib"
2684 done # Gone through all deplibs.
2686 none | unknown | *)
2687 newdeplibs=""
2688 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2689 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2690 grep . >/dev/null; then
2691 echo
2692 if test "X$deplibs_check_method" = "Xnone"; then
2693 echo "*** Warning: inter-library dependencies are not supported in this platform."
2694 else
2695 echo "*** Warning: inter-library dependencies are not known to be supported."
2697 echo "*** All declared inter-library dependencies are being dropped."
2698 droppeddeps=yes
2701 esac
2702 versuffix=$versuffix_save
2703 major=$major_save
2704 release=$release_save
2705 libname=$libname_save
2706 name=$name_save
2708 case $host in
2709 *-*-rhapsody* | *-*-darwin1.[012])
2710 # On Rhapsody replace the C library is the System framework
2711 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2713 esac
2715 if test "$droppeddeps" = yes; then
2716 if test "$module" = yes; then
2717 echo
2718 echo "*** Warning: libtool could not satisfy all declared inter-library"
2719 echo "*** dependencies of module $libname. Therefore, libtool will create"
2720 echo "*** a static module, that should work as long as the dlopening"
2721 echo "*** application is linked with the -dlopen flag."
2722 if test -z "$global_symbol_pipe"; then
2723 echo
2724 echo "*** However, this would only work if libtool was able to extract symbol"
2725 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2726 echo "*** not find such a program. So, this module is probably useless."
2727 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2729 if test "$build_old_libs" = no; then
2730 oldlibs="$output_objdir/$libname.$libext"
2731 build_libtool_libs=module
2732 build_old_libs=yes
2733 else
2734 build_libtool_libs=no
2736 else
2737 echo "*** The inter-library dependencies that have been dropped here will be"
2738 echo "*** automatically added whenever a program is linked with this library"
2739 echo "*** or is declared to -dlopen it."
2741 if test $allow_undefined = no; then
2742 echo
2743 echo "*** Since this library must not contain undefined symbols,"
2744 echo "*** because either the platform does not support them or"
2745 echo "*** it was explicitly requested with -no-undefined,"
2746 echo "*** libtool will only create a static version of it."
2747 if test "$build_old_libs" = no; then
2748 oldlibs="$output_objdir/$libname.$libext"
2749 build_libtool_libs=module
2750 build_old_libs=yes
2751 else
2752 build_libtool_libs=no
2757 # Done checking deplibs!
2758 deplibs=$newdeplibs
2761 # All the library-specific variables (install_libdir is set above).
2762 library_names=
2763 old_library=
2764 dlname=
2766 # Test again, we may have decided not to build it any more
2767 if test "$build_libtool_libs" = yes; then
2768 if test $hardcode_into_libs = yes; then
2769 # Hardcode the library paths
2770 hardcode_libdirs=
2771 dep_rpath=
2772 rpath="$finalize_rpath"
2773 test "$mode" != relink && rpath="$compile_rpath$rpath"
2774 for libdir in $rpath; do
2775 if test -n "$hardcode_libdir_flag_spec"; then
2776 if test -n "$hardcode_libdir_separator"; then
2777 if test -z "$hardcode_libdirs"; then
2778 hardcode_libdirs="$libdir"
2779 else
2780 # Just accumulate the unique libdirs.
2781 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2782 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2785 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2787 esac
2789 else
2790 eval flag=\"$hardcode_libdir_flag_spec\"
2791 dep_rpath="$dep_rpath $flag"
2793 elif test -n "$runpath_var"; then
2794 case "$perm_rpath " in
2795 *" $libdir "*) ;;
2796 *) perm_rpath="$perm_rpath $libdir" ;;
2797 esac
2799 done
2800 # Substitute the hardcoded libdirs into the rpath.
2801 if test -n "$hardcode_libdir_separator" &&
2802 test -n "$hardcode_libdirs"; then
2803 libdir="$hardcode_libdirs"
2804 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
2806 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2807 # We should set the runpath_var.
2808 rpath=
2809 for dir in $perm_rpath; do
2810 rpath="$rpath$dir:"
2811 done
2812 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2814 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
2817 shlibpath="$finalize_shlibpath"
2818 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
2819 if test -n "$shlibpath"; then
2820 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2823 # Get the real and link names of the library.
2824 eval library_names=\"$library_names_spec\"
2825 set dummy $library_names
2826 realname="$2"
2827 shift; shift
2829 if test -n "$soname_spec"; then
2830 eval soname=\"$soname_spec\"
2831 else
2832 soname="$realname"
2834 test -z "$dlname" && dlname=$soname
2836 lib="$output_objdir/$realname"
2837 for link
2839 linknames="$linknames $link"
2840 done
2842 # Ensure that we have .o objects for linkers which dislike .lo
2843 # (e.g. aix) in case we are running --disable-static
2844 for obj in $libobjs; do
2845 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2846 if test "X$xdir" = "X$obj"; then
2847 xdir="."
2848 else
2849 xdir="$xdir"
2851 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2852 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2853 if test ! -f $xdir/$oldobj; then
2854 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2855 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2857 done
2859 # Use standard objects if they are pic
2860 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2862 # Prepare the list of exported symbols
2863 if test -z "$export_symbols"; then
2864 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2865 $show "generating symbol list for \`$libname.la'"
2866 export_symbols="$output_objdir/$libname.exp"
2867 $run $rm $export_symbols
2868 eval cmds=\"$export_symbols_cmds\"
2869 save_ifs="$IFS"; IFS='~'
2870 for cmd in $cmds; do
2871 IFS="$save_ifs"
2872 $show "$cmd"
2873 $run eval "$cmd" || exit $?
2874 done
2875 IFS="$save_ifs"
2876 if test -n "$export_symbols_regex"; then
2877 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2878 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2879 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2880 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2885 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2886 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2889 if test -n "$convenience"; then
2890 if test -n "$whole_archive_flag_spec"; then
2891 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2892 else
2893 gentop="$output_objdir/${outputname}x"
2894 $show "${rm}r $gentop"
2895 $run ${rm}r "$gentop"
2896 $show "mkdir $gentop"
2897 $run mkdir "$gentop"
2898 status=$?
2899 if test $status -ne 0 && test ! -d "$gentop"; then
2900 exit $status
2902 generated="$generated $gentop"
2904 for xlib in $convenience; do
2905 # Extract the objects.
2906 case $xlib in
2907 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2908 *) xabs=`pwd`"/$xlib" ;;
2909 esac
2910 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2911 xdir="$gentop/$xlib"
2913 $show "${rm}r $xdir"
2914 $run ${rm}r "$xdir"
2915 $show "mkdir $xdir"
2916 $run mkdir "$xdir"
2917 status=$?
2918 if test $status -ne 0 && test ! -d "$xdir"; then
2919 exit $status
2921 $show "(cd $xdir && $AR x $xabs)"
2922 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2924 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2925 done
2929 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2930 eval flag=\"$thread_safe_flag_spec\"
2931 linker_flags="$linker_flags $flag"
2934 # Make a backup of the uninstalled library when relinking
2935 if test "$mode" = relink; then
2936 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
2939 # Do each of the archive commands.
2940 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2941 eval cmds=\"$archive_expsym_cmds\"
2942 else
2943 save_deplibs="$deplibs"
2944 for conv in $convenience; do
2945 tmp_deplibs=
2946 for test_deplib in $deplibs; do
2947 if test "$test_deplib" != "$conv"; then
2948 tmp_deplibs="$tmp_deplibs $test_deplib"
2950 done
2951 deplibs="$tmp_deplibs"
2952 done
2953 eval cmds=\"$archive_cmds\"
2954 deplibs="$save_deplibs"
2956 save_ifs="$IFS"; IFS='~'
2957 for cmd in $cmds; do
2958 IFS="$save_ifs"
2959 $show "$cmd"
2960 $run eval "$cmd" || exit $?
2961 done
2962 IFS="$save_ifs"
2964 # Restore the uninstalled library and exit
2965 if test "$mode" = relink; then
2966 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
2967 exit 0
2970 # Create links to the real library.
2971 for linkname in $linknames; do
2972 if test "$realname" != "$linkname"; then
2973 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2974 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2976 done
2978 # If -module or -export-dynamic was specified, set the dlname.
2979 if test "$module" = yes || test "$export_dynamic" = yes; then
2980 # On all known operating systems, these are identical.
2981 dlname="$soname"
2986 obj)
2987 if test -n "$deplibs"; then
2988 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2991 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2992 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2995 if test -n "$rpath"; then
2996 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2999 if test -n "$xrpath"; then
3000 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3003 if test -n "$vinfo"; then
3004 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3007 if test -n "$release"; then
3008 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3011 case $output in
3012 *.lo)
3013 if test -n "$objs$old_deplibs"; then
3014 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3015 exit 1
3017 libobj="$output"
3018 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
3021 libobj=
3022 obj="$output"
3024 esac
3026 # Delete the old objects.
3027 $run $rm $obj $libobj
3029 # Objects from convenience libraries. This assumes
3030 # single-version convenience libraries. Whenever we create
3031 # different ones for PIC/non-PIC, this we'll have to duplicate
3032 # the extraction.
3033 reload_conv_objs=
3034 gentop=
3035 # reload_cmds runs $LD directly, so let us get rid of
3036 # -Wl from whole_archive_flag_spec
3039 if test -n "$convenience"; then
3040 if test -n "$whole_archive_flag_spec"; then
3041 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3042 else
3043 gentop="$output_objdir/${obj}x"
3044 $show "${rm}r $gentop"
3045 $run ${rm}r "$gentop"
3046 $show "mkdir $gentop"
3047 $run mkdir "$gentop"
3048 status=$?
3049 if test $status -ne 0 && test ! -d "$gentop"; then
3050 exit $status
3052 generated="$generated $gentop"
3054 for xlib in $convenience; do
3055 # Extract the objects.
3056 case $xlib in
3057 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3058 *) xabs=`pwd`"/$xlib" ;;
3059 esac
3060 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3061 xdir="$gentop/$xlib"
3063 $show "${rm}r $xdir"
3064 $run ${rm}r "$xdir"
3065 $show "mkdir $xdir"
3066 $run mkdir "$xdir"
3067 status=$?
3068 if test $status -ne 0 && test ! -d "$xdir"; then
3069 exit $status
3071 $show "(cd $xdir && $AR x $xabs)"
3072 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3074 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3075 done
3079 # Create the old-style object.
3080 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
3082 output="$obj"
3083 eval cmds=\"$reload_cmds\"
3084 save_ifs="$IFS"; IFS='~'
3085 for cmd in $cmds; do
3086 IFS="$save_ifs"
3087 $show "$cmd"
3088 $run eval "$cmd" || exit $?
3089 done
3090 IFS="$save_ifs"
3092 # Exit if we aren't doing a library object file.
3093 if test -z "$libobj"; then
3094 if test -n "$gentop"; then
3095 $show "${rm}r $gentop"
3096 $run ${rm}r $gentop
3099 exit 0
3102 if test "$build_libtool_libs" != yes; then
3103 if test -n "$gentop"; then
3104 $show "${rm}r $gentop"
3105 $run ${rm}r $gentop
3108 # Create an invalid libtool object if no PIC, so that we don't
3109 # accidentally link it into a program.
3110 $show "echo timestamp > $libobj"
3111 $run eval "echo timestamp > $libobj" || exit $?
3112 exit 0
3115 if test -n "$pic_flag" || test "$pic_mode" != default; then
3116 # Only do commands if we really have different PIC objects.
3117 reload_objs="$libobjs $reload_conv_objs"
3118 output="$libobj"
3119 eval cmds=\"$reload_cmds\"
3120 save_ifs="$IFS"; IFS='~'
3121 for cmd in $cmds; do
3122 IFS="$save_ifs"
3123 $show "$cmd"
3124 $run eval "$cmd" || exit $?
3125 done
3126 IFS="$save_ifs"
3127 else
3128 # Just create a symlink.
3129 $show $rm $libobj
3130 $run $rm $libobj
3131 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3132 if test "X$xdir" = "X$libobj"; then
3133 xdir="."
3134 else
3135 xdir="$xdir"
3137 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3138 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3139 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3140 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3143 if test -n "$gentop"; then
3144 $show "${rm}r $gentop"
3145 $run ${rm}r $gentop
3148 exit 0
3151 prog)
3152 case $host in
3153 *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
3154 esac
3155 if test -n "$vinfo"; then
3156 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3159 if test -n "$release"; then
3160 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3163 if test "$preload" = yes; then
3164 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3165 test "$dlopen_self_static" = unknown; then
3166 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3170 case $host in
3171 *-*-rhapsody* | *-*-darwin1.[012])
3172 # On Rhapsody replace the C library is the System framework
3173 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3174 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3175 case $host in
3176 *darwin*)
3177 # Don't allow lazy linking, it breaks C++ global constructors
3178 compile_command="$compile_command ${wl}-bind_at_load"
3179 finalize_command="$finalize_command ${wl}-bind_at_load"
3181 esac
3183 esac
3185 compile_command="$compile_command $compile_deplibs"
3186 finalize_command="$finalize_command $finalize_deplibs"
3188 if test -n "$rpath$xrpath"; then
3189 # If the user specified any rpath flags, then add them.
3190 for libdir in $rpath $xrpath; do
3191 # This is the magic to use -rpath.
3192 case "$finalize_rpath " in
3193 *" $libdir "*) ;;
3194 *) finalize_rpath="$finalize_rpath $libdir" ;;
3195 esac
3196 done
3199 # Now hardcode the library paths
3200 rpath=
3201 hardcode_libdirs=
3202 for libdir in $compile_rpath $finalize_rpath; do
3203 if test -n "$hardcode_libdir_flag_spec"; then
3204 if test -n "$hardcode_libdir_separator"; then
3205 if test -z "$hardcode_libdirs"; then
3206 hardcode_libdirs="$libdir"
3207 else
3208 # Just accumulate the unique libdirs.
3209 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3210 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3213 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3215 esac
3217 else
3218 eval flag=\"$hardcode_libdir_flag_spec\"
3219 rpath="$rpath $flag"
3221 elif test -n "$runpath_var"; then
3222 case "$perm_rpath " in
3223 *" $libdir "*) ;;
3224 *) perm_rpath="$perm_rpath $libdir" ;;
3225 esac
3227 case $host in
3228 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3229 case :$dllsearchpath: in
3230 *":$libdir:"*) ;;
3231 *) dllsearchpath="$dllsearchpath:$libdir";;
3232 esac
3234 esac
3235 done
3236 # Substitute the hardcoded libdirs into the rpath.
3237 if test -n "$hardcode_libdir_separator" &&
3238 test -n "$hardcode_libdirs"; then
3239 libdir="$hardcode_libdirs"
3240 eval rpath=\" $hardcode_libdir_flag_spec\"
3242 compile_rpath="$rpath"
3244 rpath=
3245 hardcode_libdirs=
3246 for libdir in $finalize_rpath; do
3247 if test -n "$hardcode_libdir_flag_spec"; then
3248 if test -n "$hardcode_libdir_separator"; then
3249 if test -z "$hardcode_libdirs"; then
3250 hardcode_libdirs="$libdir"
3251 else
3252 # Just accumulate the unique libdirs.
3253 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3254 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3257 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3259 esac
3261 else
3262 eval flag=\"$hardcode_libdir_flag_spec\"
3263 rpath="$rpath $flag"
3265 elif test -n "$runpath_var"; then
3266 case "$finalize_perm_rpath " in
3267 *" $libdir "*) ;;
3268 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3269 esac
3271 done
3272 # Substitute the hardcoded libdirs into the rpath.
3273 if test -n "$hardcode_libdir_separator" &&
3274 test -n "$hardcode_libdirs"; then
3275 libdir="$hardcode_libdirs"
3276 eval rpath=\" $hardcode_libdir_flag_spec\"
3278 finalize_rpath="$rpath"
3280 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3281 # Transform all the library objects into standard objects.
3282 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3283 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3286 dlsyms=
3287 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3288 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3289 dlsyms="${outputname}S.c"
3290 else
3291 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3295 if test -n "$dlsyms"; then
3296 case $dlsyms in
3297 "") ;;
3298 *.c)
3299 # Discover the nlist of each of the dlfiles.
3300 nlist="$output_objdir/${outputname}.nm"
3302 $show "$rm $nlist ${nlist}S ${nlist}T"
3303 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3305 # Parse the name list into a source file.
3306 $show "creating $output_objdir/$dlsyms"
3308 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3309 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3310 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3312 #ifdef __cplusplus
3313 extern \"C\" {
3314 #endif
3316 /* Prevent the only kind of declaration conflicts we can make. */
3317 #define lt_preloaded_symbols some_other_symbol
3319 /* External symbol declarations for the compiler. */\
3322 if test "$dlself" = yes; then
3323 $show "generating symbol list for \`$output'"
3325 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3327 # Add our own program objects to the symbol list.
3328 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3329 for arg in $progfiles; do
3330 $show "extracting global C symbols from \`$arg'"
3331 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3332 done
3334 if test -n "$exclude_expsyms"; then
3335 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3336 $run eval '$mv "$nlist"T "$nlist"'
3339 if test -n "$export_symbols_regex"; then
3340 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3341 $run eval '$mv "$nlist"T "$nlist"'
3344 # Prepare the list of exported symbols
3345 if test -z "$export_symbols"; then
3346 export_symbols="$output_objdir/$output.exp"
3347 $run $rm $export_symbols
3348 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3349 else
3350 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3351 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3352 $run eval 'mv "$nlist"T "$nlist"'
3356 for arg in $dlprefiles; do
3357 $show "extracting global C symbols from \`$arg'"
3358 name=`echo "$arg" | ${SED} -e 's%^.*/%%'`
3359 $run eval 'echo ": $name " >> "$nlist"'
3360 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3361 done
3363 if test -z "$run"; then
3364 # Make sure we have at least an empty file.
3365 test -f "$nlist" || : > "$nlist"
3367 if test -n "$exclude_expsyms"; then
3368 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3369 $mv "$nlist"T "$nlist"
3372 # Try sorting and uniquifying the output.
3373 if grep -v "^: " < "$nlist" |
3374 if sort -k 3 </dev/null >/dev/null 2>&1; then
3375 sort -k 3
3376 else
3377 sort +2
3378 fi |
3379 uniq > "$nlist"S; then
3381 else
3382 grep -v "^: " < "$nlist" > "$nlist"S
3385 if test -f "$nlist"S; then
3386 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3387 else
3388 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3391 $echo >> "$output_objdir/$dlsyms" "\
3393 #undef lt_preloaded_symbols
3395 #if defined (__STDC__) && __STDC__
3396 # define lt_ptr void *
3397 #else
3398 # define lt_ptr char *
3399 # define const
3400 #endif
3402 /* The mapping between symbol names and symbols. */
3403 const struct {
3404 const char *name;
3405 lt_ptr address;
3407 lt_preloaded_symbols[] =
3411 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
3413 $echo >> "$output_objdir/$dlsyms" "\
3414 {0, (lt_ptr) 0}
3417 /* This works around a problem in FreeBSD linker */
3418 #ifdef FREEBSD_WORKAROUND
3419 static const void *lt_preloaded_setup() {
3420 return lt_preloaded_symbols;
3422 #endif
3424 #ifdef __cplusplus
3426 #endif\
3430 pic_flag_for_symtable=
3431 case $host in
3432 # compiling the symbol table file with pic_flag works around
3433 # a FreeBSD bug that causes programs to crash when -lm is
3434 # linked before any other PIC object. But we must not use
3435 # pic_flag when linking with -static. The problem exists in
3436 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3437 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3438 case "$compile_command " in
3439 *" -static "*) ;;
3440 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3441 esac;;
3442 *-*-hpux*)
3443 case "$compile_command " in
3444 *" -static "*) ;;
3445 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3446 esac
3447 esac
3449 # Now compile the dynamic symbol file.
3450 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3451 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3453 # Clean up the generated files.
3454 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3455 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3457 # Transform the symbol file into the correct name.
3458 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3459 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3462 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3463 exit 1
3465 esac
3466 else
3467 # We keep going just in case the user didn't refer to
3468 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3469 # really was required.
3471 # Nullify the symbol file.
3472 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3473 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3476 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3477 # Replace the output file specification.
3478 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3479 link_command="$compile_command$compile_rpath"
3481 # We have no uninstalled library dependencies, so finalize right now.
3482 $show "$link_command"
3483 $run eval "$link_command"
3484 status=$?
3486 # Delete the generated files.
3487 if test -n "$dlsyms"; then
3488 $show "$rm $output_objdir/${outputname}S.${objext}"
3489 $run $rm "$output_objdir/${outputname}S.${objext}"
3492 exit $status
3495 if test -n "$shlibpath_var"; then
3496 # We should set the shlibpath_var
3497 rpath=
3498 for dir in $temp_rpath; do
3499 case $dir in
3500 [\\/]* | [A-Za-z]:[\\/]*)
3501 # Absolute path.
3502 rpath="$rpath$dir:"
3505 # Relative path: add a thisdir entry.
3506 rpath="$rpath\$thisdir/$dir:"
3508 esac
3509 done
3510 temp_rpath="$rpath"
3513 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3514 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3516 if test -n "$finalize_shlibpath"; then
3517 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3520 compile_var=
3521 finalize_var=
3522 if test -n "$runpath_var"; then
3523 if test -n "$perm_rpath"; then
3524 # We should set the runpath_var.
3525 rpath=
3526 for dir in $perm_rpath; do
3527 rpath="$rpath$dir:"
3528 done
3529 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3531 if test -n "$finalize_perm_rpath"; then
3532 # We should set the runpath_var.
3533 rpath=
3534 for dir in $finalize_perm_rpath; do
3535 rpath="$rpath$dir:"
3536 done
3537 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3541 if test "$no_install" = yes; then
3542 # We don't need to create a wrapper script.
3543 link_command="$compile_var$compile_command$compile_rpath"
3544 # Replace the output file specification.
3545 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3546 # Delete the old output file.
3547 $run $rm $output
3548 # Link the executable and exit
3549 $show "$link_command"
3550 $run eval "$link_command" || exit $?
3551 exit 0
3554 if test "$hardcode_action" = relink; then
3555 # Fast installation is not supported
3556 link_command="$compile_var$compile_command$compile_rpath"
3557 relink_command="$finalize_var$finalize_command$finalize_rpath"
3559 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3560 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3561 else
3562 if test "$fast_install" != no; then
3563 link_command="$finalize_var$compile_command$finalize_rpath"
3564 if test "$fast_install" = yes; then
3565 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3566 else
3567 # fast_install is set to needless
3568 relink_command=
3570 else
3571 link_command="$compile_var$compile_command$compile_rpath"
3572 relink_command="$finalize_var$finalize_command$finalize_rpath"
3576 # Replace the output file specification.
3577 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3579 # Delete the old output files.
3580 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3582 $show "$link_command"
3583 $run eval "$link_command" || exit $?
3585 # Now create the wrapper script.
3586 $show "creating $output"
3588 # Quote the relink command for shipping.
3589 if test -n "$relink_command"; then
3590 # Preserve any variables that may affect compiler behavior
3591 for var in $variables_saved_for_relink; do
3592 if eval test -z \"\${$var+set}\"; then
3593 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3594 elif eval var_value=\$$var; test -z "$var_value"; then
3595 relink_command="$var=; export $var; $relink_command"
3596 else
3597 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3598 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3600 done
3601 relink_command="(cd `pwd`; $relink_command)"
3602 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3605 # Quote $echo for shipping.
3606 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3607 case $0 in
3608 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3609 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3610 esac
3611 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3612 else
3613 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3616 # Only actually do things if our run command is non-null.
3617 if test -z "$run"; then
3618 # win32 will think the script is a binary if it has
3619 # a .exe suffix, so we strip it off here.
3620 case $output in
3621 *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;;
3622 esac
3623 # test for cygwin because mv fails w/o .exe extensions
3624 case $host in
3625 *cygwin*) exeext=.exe ;;
3626 *) exeext= ;;
3627 esac
3628 $rm $output
3629 trap "$rm $output; exit 1" 1 2 15
3631 $echo > $output "\
3632 #! $SHELL
3634 # $output - temporary wrapper script for $objdir/$outputname
3635 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3637 # The $output program cannot be directly executed until all the libtool
3638 # libraries that it depends on are installed.
3640 # This wrapper script should never be moved out of the build directory.
3641 # If it is, it will not operate correctly.
3643 # Sed substitution that helps us do robust quoting. It backslashifies
3644 # metacharacters that are still active within double-quoted strings.
3645 Xsed="${SED}"' -e 1s/^X//'
3646 sed_quote_subst='$sed_quote_subst'
3648 # The HP-UX ksh and POSIX shell print the target directory to stdout
3649 # if CDPATH is set.
3650 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3652 relink_command=\"$relink_command\"
3654 # This environment variable determines our operation mode.
3655 if test \"\$libtool_install_magic\" = \"$magic\"; then
3656 # install mode needs the following variable:
3657 notinst_deplibs='$notinst_deplibs'
3658 else
3659 # When we are sourced in execute mode, \$file and \$echo are already set.
3660 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3661 echo=\"$qecho\"
3662 file=\"\$0\"
3663 # Make sure echo works.
3664 if test \"X\$1\" = X--no-reexec; then
3665 # Discard the --no-reexec flag, and continue.
3666 shift
3667 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3668 # Yippee, \$echo works!
3670 else
3671 # Restart under the correct shell, and then maybe \$echo will work.
3672 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3676 $echo >> $output "\
3678 # Find the directory that this script lives in.
3679 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3680 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3682 # Follow symbolic links until we get to the real thisdir.
3683 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
3684 while test -n \"\$file\"; do
3685 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3687 # If there was a directory component, then change thisdir.
3688 if test \"x\$destdir\" != \"x\$file\"; then
3689 case \"\$destdir\" in
3690 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3691 *) thisdir=\"\$thisdir/\$destdir\" ;;
3692 esac
3695 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3696 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
3697 done
3699 # Try to get the absolute directory name.
3700 absdir=\`cd \"\$thisdir\" && pwd\`
3701 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3704 if test "$fast_install" = yes; then
3705 echo >> $output "\
3706 program=lt-'$outputname'$exeext
3707 progdir=\"\$thisdir/$objdir\"
3709 if test ! -f \"\$progdir/\$program\" || \\
3710 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
3711 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3713 file=\"\$\$-\$program\"
3715 if test ! -d \"\$progdir\"; then
3716 $mkdir \"\$progdir\"
3717 else
3718 $rm \"\$progdir/\$file\"
3721 echo >> $output "\
3723 # relink executable if necessary
3724 if test -n \"\$relink_command\"; then
3725 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3726 else
3727 $echo \"\$relink_command_output\" >&2
3728 $rm \"\$progdir/\$file\"
3729 exit 1
3733 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3734 { $rm \"\$progdir/\$program\";
3735 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3736 $rm \"\$progdir/\$file\"
3738 else
3739 echo >> $output "\
3740 program='$outputname'
3741 progdir=\"\$thisdir/$objdir\"
3745 echo >> $output "\
3747 if test -f \"\$progdir/\$program\"; then"
3749 # Export our shlibpath_var if we have one.
3750 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3751 $echo >> $output "\
3752 # Add our own library path to $shlibpath_var
3753 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3755 # Some systems cannot cope with colon-terminated $shlibpath_var
3756 # The second colon is a workaround for a bug in BeOS R4 ${SED}
3757 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3759 export $shlibpath_var
3763 # fixup the dll searchpath if we need to.
3764 if test -n "$dllsearchpath"; then
3765 $echo >> $output "\
3766 # Add the dll search path components to the executable PATH
3767 PATH=$dllsearchpath:\$PATH
3771 $echo >> $output "\
3772 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3773 # Run the actual program with our arguments.
3775 case $host in
3776 # win32 systems need to use the prog path for dll
3777 # lookup to work
3778 *-*-cygwin* | *-*-pw32*)
3779 $echo >> $output "\
3780 exec \$progdir/\$program \${1+\"\$@\"}
3784 # Backslashes separate directories on plain windows
3785 *-*-mingw | *-*-os2*)
3786 $echo >> $output "\
3787 exec \$progdir\\\\\$program \${1+\"\$@\"}
3792 $echo >> $output "\
3793 # Export the path to the program.
3794 PATH=\"\$progdir:\$PATH\"
3795 export PATH
3797 exec \$program \${1+\"\$@\"}
3800 esac
3801 $echo >> $output "\
3802 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3803 exit 1
3805 else
3806 # The program doesn't exist.
3807 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3808 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3809 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3810 exit 1
3814 chmod +x $output
3816 exit 0
3818 esac
3820 # See if we need to build an old-fashioned archive.
3821 for oldlib in $oldlibs; do
3823 if test "$build_libtool_libs" = convenience; then
3824 oldobjs="$libobjs_save"
3825 addlibs="$convenience"
3826 build_libtool_libs=no
3827 else
3828 if test "$build_libtool_libs" = module; then
3829 oldobjs="$libobjs_save"
3830 build_libtool_libs=no
3831 else
3832 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3834 addlibs="$old_convenience"
3837 if test -n "$addlibs"; then
3838 gentop="$output_objdir/${outputname}x"
3839 $show "${rm}r $gentop"
3840 $run ${rm}r "$gentop"
3841 $show "mkdir $gentop"
3842 $run mkdir "$gentop"
3843 status=$?
3844 if test $status -ne 0 && test ! -d "$gentop"; then
3845 exit $status
3847 generated="$generated $gentop"
3849 # Add in members from convenience archives.
3850 for xlib in $addlibs; do
3851 # Extract the objects.
3852 case $xlib in
3853 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3854 *) xabs=`pwd`"/$xlib" ;;
3855 esac
3856 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3857 xdir="$gentop/$xlib"
3859 $show "${rm}r $xdir"
3860 $run ${rm}r "$xdir"
3861 $show "mkdir $xdir"
3862 $run mkdir "$xdir"
3863 status=$?
3864 if test $status -ne 0 && test ! -d "$xdir"; then
3865 exit $status
3867 $show "(cd $xdir && $AR x $xabs)"
3868 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3870 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3871 done
3874 # Do each command in the archive commands.
3875 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3876 eval cmds=\"$old_archive_from_new_cmds\"
3877 else
3878 # Ensure that we have .o objects in place in case we decided
3879 # not to build a shared library, and have fallen back to building
3880 # static libs even though --disable-static was passed!
3881 for oldobj in $oldobjs; do
3882 if test ! -f $oldobj; then
3883 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3884 if test "X$xdir" = "X$oldobj"; then
3885 xdir="."
3886 else
3887 xdir="$xdir"
3889 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3890 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3891 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3892 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3894 done
3896 eval cmds=\"$old_archive_cmds\"
3898 save_ifs="$IFS"; IFS='~'
3899 for cmd in $cmds; do
3900 IFS="$save_ifs"
3901 $show "$cmd"
3902 $run eval "$cmd" || exit $?
3903 done
3904 IFS="$save_ifs"
3905 done
3907 if test -n "$generated"; then
3908 $show "${rm}r$generated"
3909 $run ${rm}r$generated
3912 # Now create the libtool archive.
3913 case $output in
3914 *.la)
3915 old_library=
3916 test "$build_old_libs" = yes && old_library="$libname.$libext"
3917 $show "creating $output"
3919 # Preserve any variables that may affect compiler behavior
3920 for var in $variables_saved_for_relink; do
3921 if eval test -z \"\${$var+set}\"; then
3922 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3923 elif eval var_value=\$$var; test -z "$var_value"; then
3924 relink_command="$var=; export $var; $relink_command"
3925 else
3926 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3927 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3929 done
3930 # Quote the link command for shipping.
3931 relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
3932 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3934 # Only create the output if not a dry run.
3935 if test -z "$run"; then
3936 for installed in no yes; do
3937 if test "$installed" = yes; then
3938 if test -z "$install_libdir"; then
3939 break
3941 output="$output_objdir/$outputname"i
3942 # Replace all uninstalled libtool libraries with the installed ones
3943 newdependency_libs=
3944 for deplib in $dependency_libs; do
3945 case $deplib in
3946 *.la)
3947 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3948 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3949 if test -z "$libdir"; then
3950 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3951 exit 1
3953 newdependency_libs="$newdependency_libs $libdir/$name"
3955 *) newdependency_libs="$newdependency_libs $deplib" ;;
3956 esac
3957 done
3958 dependency_libs="$newdependency_libs"
3959 newdlfiles=
3960 for lib in $dlfiles; do
3961 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3962 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3963 if test -z "$libdir"; then
3964 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3965 exit 1
3967 newdlfiles="$newdlfiles $libdir/$name"
3968 done
3969 dlfiles="$newdlfiles"
3970 newdlprefiles=
3971 for lib in $dlprefiles; do
3972 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3973 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3974 if test -z "$libdir"; then
3975 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3976 exit 1
3978 newdlprefiles="$newdlprefiles $libdir/$name"
3979 done
3980 dlprefiles="$newdlprefiles"
3982 $rm $output
3983 # place dlname in correct position for cygwin
3984 tdlname=$dlname
3985 case $host,$output,$installed,$module,$dlname in
3986 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
3987 esac
3988 $echo > $output "\
3989 # $outputname - a libtool library file
3990 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3992 # Please DO NOT delete this file!
3993 # It is necessary for linking the library.
3995 # The name that we can dlopen(3).
3996 dlname='$tdlname'
3998 # Names of this library.
3999 library_names='$library_names'
4001 # The name of the static archive.
4002 old_library='$old_library'
4004 # Libraries that this one depends upon.
4005 dependency_libs='$dependency_libs'
4007 # Version information for $libname.
4008 current=$current
4009 age=$age
4010 revision=$revision
4012 # Is this an already installed library?
4013 installed=$installed
4015 # Files to dlopen/dlpreopen
4016 dlopen='$dlfiles'
4017 dlpreopen='$dlprefiles'
4019 # Directory that this library needs to be installed in:
4020 libdir='/usr/lib'"
4021 if test "$installed" = no && test $need_relink = yes; then
4022 $echo >> $output "\
4023 relink_command=\"$relink_command\""
4025 done
4028 # Do a symbolic link so that the libtool archive can be found in
4029 # LD_LIBRARY_PATH before the program is installed.
4030 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4031 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
4033 esac
4034 exit 0
4037 # libtool install mode
4038 install)
4039 modename="$modename: install"
4041 # There may be an optional sh(1) argument at the beginning of
4042 # install_prog (especially on Windows NT).
4043 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
4044 # Allow the use of GNU shtool's install command.
4045 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
4046 # Aesthetically quote it.
4047 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4048 case $arg in
4049 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4050 arg="\"$arg\""
4052 esac
4053 install_prog="$arg "
4054 arg="$1"
4055 shift
4056 else
4057 install_prog=
4058 arg="$nonopt"
4061 # The real first argument should be the name of the installation program.
4062 # Aesthetically quote it.
4063 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4064 case $arg in
4065 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4066 arg="\"$arg\""
4068 esac
4069 install_prog="$install_prog$arg"
4071 # We need to accept at least all the BSD install flags.
4072 dest=
4073 files=
4074 opts=
4075 prev=
4076 install_type=
4077 isdir=no
4078 stripme=
4079 for arg
4081 if test -n "$dest"; then
4082 files="$files $dest"
4083 dest="$arg"
4084 continue
4087 case $arg in
4088 -d) isdir=yes ;;
4089 -f) prev="-f" ;;
4090 -g) prev="-g" ;;
4091 -m) prev="-m" ;;
4092 -o) prev="-o" ;;
4094 stripme=" -s"
4095 continue
4097 -*) ;;
4100 # If the previous option needed an argument, then skip it.
4101 if test -n "$prev"; then
4102 prev=
4103 else
4104 dest="$arg"
4105 continue
4108 esac
4110 # Aesthetically quote the argument.
4111 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4112 case $arg in
4113 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4114 arg="\"$arg\""
4116 esac
4117 install_prog="$install_prog $arg"
4118 done
4120 if test -z "$install_prog"; then
4121 $echo "$modename: you must specify an install program" 1>&2
4122 $echo "$help" 1>&2
4123 exit 1
4126 if test -n "$prev"; then
4127 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4128 $echo "$help" 1>&2
4129 exit 1
4132 if test -z "$files"; then
4133 if test -z "$dest"; then
4134 $echo "$modename: no file or destination specified" 1>&2
4135 else
4136 $echo "$modename: you must specify a destination" 1>&2
4138 $echo "$help" 1>&2
4139 exit 1
4142 # Strip any trailing slash from the destination.
4143 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4145 # Check to see that the destination is a directory.
4146 test -d "$dest" && isdir=yes
4147 if test "$isdir" = yes; then
4148 destdir="$dest"
4149 destname=
4150 else
4151 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4152 test "X$destdir" = "X$dest" && destdir=.
4153 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4155 # Not a directory, so check to see that there is only one file specified.
4156 set dummy $files
4157 if test $# -gt 2; then
4158 $echo "$modename: \`$dest' is not a directory" 1>&2
4159 $echo "$help" 1>&2
4160 exit 1
4163 case $destdir in
4164 [\\/]* | [A-Za-z]:[\\/]*) ;;
4166 for file in $files; do
4167 case $file in
4168 *.lo) ;;
4170 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4171 $echo "$help" 1>&2
4172 exit 1
4174 esac
4175 done
4177 esac
4179 # This variable tells wrapper scripts just to set variables rather
4180 # than running their programs.
4181 libtool_install_magic="$magic"
4183 staticlibs=
4184 future_libdirs=
4185 current_libdirs=
4186 for file in $files; do
4188 # Do each installation.
4189 case $file in
4190 *.$libext)
4191 # Do the static libraries later.
4192 staticlibs="$staticlibs $file"
4195 *.la)
4196 # Check to see that this really is a libtool archive.
4197 if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4198 else
4199 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4200 $echo "$help" 1>&2
4201 exit 1
4204 library_names=
4205 old_library=
4206 relink_command=
4207 # If there is no directory component, then add one.
4208 case $file in
4209 */* | *\\*) . $file ;;
4210 *) . ./$file ;;
4211 esac
4213 # Add the libdir to current_libdirs if it is the destination.
4214 if test "X$destdir" = "X$libdir"; then
4215 case "$current_libdirs " in
4216 *" $libdir "*) ;;
4217 *) current_libdirs="$current_libdirs $libdir" ;;
4218 esac
4219 else
4220 # Note the libdir as a future libdir.
4221 case "$future_libdirs " in
4222 *" $libdir "*) ;;
4223 *) future_libdirs="$future_libdirs $libdir" ;;
4224 esac
4227 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4228 test "X$dir" = "X$file/" && dir=
4229 dir="$dir$objdir"
4231 if test -n "$relink_command"; then
4232 $echo "$modename: warning: relinking \`$file'" 1>&2
4233 $show "$relink_command"
4234 if $run eval "$relink_command"; then :
4235 else
4236 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4237 continue
4241 # See the names of the shared library.
4242 set dummy $library_names
4243 if test -n "$2"; then
4244 realname="$2"
4245 shift
4246 shift
4248 srcname="$realname"
4249 test -n "$relink_command" && srcname="$realname"T
4251 # Install the shared library and build the symlinks.
4252 $show "$install_prog $dir/$srcname $destdir/$realname"
4253 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4254 if test -n "$stripme" && test -n "$striplib"; then
4255 $show "$striplib $destdir/$realname"
4256 $run eval "$striplib $destdir/$realname" || exit $?
4259 if test $# -gt 0; then
4260 # Delete the old symlinks, and create new ones.
4261 for linkname
4263 if test "$linkname" != "$realname"; then
4264 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4265 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4267 done
4270 # Do each command in the postinstall commands.
4271 lib="$destdir/$realname"
4272 eval cmds=\"$postinstall_cmds\"
4273 save_ifs="$IFS"; IFS='~'
4274 for cmd in $cmds; do
4275 IFS="$save_ifs"
4276 $show "$cmd"
4277 $run eval "$cmd" || exit $?
4278 done
4279 IFS="$save_ifs"
4282 # Install the pseudo-library for information purposes.
4283 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4284 instname="$dir/$name"i
4285 $show "$install_prog $instname $destdir/$name"
4286 $run eval "$install_prog $instname $destdir/$name" || exit $?
4288 # Maybe install the static library, too.
4289 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4292 *.lo)
4293 # Install (i.e. copy) a libtool object.
4295 # Figure out destination file name, if it wasn't already specified.
4296 if test -n "$destname"; then
4297 destfile="$destdir/$destname"
4298 else
4299 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4300 destfile="$destdir/$destfile"
4303 # Deduce the name of the destination old-style object file.
4304 case $destfile in
4305 *.lo)
4306 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4308 *.$objext)
4309 staticdest="$destfile"
4310 destfile=
4313 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4314 $echo "$help" 1>&2
4315 exit 1
4317 esac
4319 # Install the libtool object if requested.
4320 if test -n "$destfile"; then
4321 $show "$install_prog $file $destfile"
4322 $run eval "$install_prog $file $destfile" || exit $?
4325 # Install the old object if enabled.
4326 if test "$build_old_libs" = yes; then
4327 # Deduce the name of the old-style object file.
4328 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4330 $show "$install_prog $staticobj $staticdest"
4331 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4333 exit 0
4337 # Figure out destination file name, if it wasn't already specified.
4338 if test -n "$destname"; then
4339 destfile="$destdir/$destname"
4340 else
4341 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4342 destfile="$destdir/$destfile"
4345 # Do a test to see if this is really a libtool program.
4346 case $host in
4347 *cygwin*|*mingw*)
4348 wrapper=`echo $file | ${SED} -e 's,.exe$,,'`
4351 wrapper=$file
4353 esac
4354 if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
4355 notinst_deplibs=
4356 relink_command=
4358 # If there is no directory component, then add one.
4359 case $file in
4360 */* | *\\*) . $wrapper ;;
4361 *) . ./$wrapper ;;
4362 esac
4364 # Check the variables that should have been set.
4365 if test -z "$notinst_deplibs"; then
4366 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
4367 exit 1
4370 finalize=yes
4371 for lib in $notinst_deplibs; do
4372 # Check to see that each library is installed.
4373 libdir=
4374 if test -f "$lib"; then
4375 # If there is no directory component, then add one.
4376 case $lib in
4377 */* | *\\*) . $lib ;;
4378 *) . ./$lib ;;
4379 esac
4381 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4382 if test -n "$libdir" && test ! -f "$libfile"; then
4383 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4384 finalize=no
4386 done
4388 relink_command=
4389 # If there is no directory component, then add one.
4390 case $file in
4391 */* | *\\*) . $wrapper ;;
4392 *) . ./$wrapper ;;
4393 esac
4395 outputname=
4396 if test "$fast_install" = no && test -n "$relink_command"; then
4397 if test "$finalize" = yes && test -z "$run"; then
4398 tmpdir="/tmp"
4399 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4400 tmpdir="$tmpdir/libtool-$$"
4401 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4402 else
4403 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4404 continue
4406 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4407 outputname="$tmpdir/$file"
4408 # Replace the output file specification.
4409 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4411 $show "$relink_command"
4412 if $run eval "$relink_command"; then :
4413 else
4414 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4415 ${rm}r "$tmpdir"
4416 continue
4418 file="$outputname"
4419 else
4420 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4422 else
4423 # Install the binary that we compiled earlier.
4424 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4428 # remove .exe since cygwin /usr/bin/install will append another
4429 # one anyways
4430 case $install_prog,$host in
4431 /usr/bin/install*,*cygwin*)
4432 case $file:$destfile in
4433 *.exe:*.exe)
4434 # this is ok
4436 *.exe:*)
4437 destfile=$destfile.exe
4439 *:*.exe)
4440 destfile=`echo $destfile | ${SED} -e 's,.exe$,,'`
4442 esac
4444 esac
4445 $show "$install_prog$stripme $file $destfile"
4446 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4447 test -n "$outputname" && ${rm}r "$tmpdir"
4449 esac
4450 done
4452 for file in $staticlibs; do
4453 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4455 # Set up the ranlib parameters.
4456 oldlib="$destdir/$name"
4458 $show "$install_prog $file $oldlib"
4459 $run eval "$install_prog \$file \$oldlib" || exit $?
4461 if test -n "$stripme" && test -n "$striplib"; then
4462 $show "$old_striplib $oldlib"
4463 $run eval "$old_striplib $oldlib" || exit $?
4466 # Do each command in the postinstall commands.
4467 eval cmds=\"$old_postinstall_cmds\"
4468 save_ifs="$IFS"; IFS='~'
4469 for cmd in $cmds; do
4470 IFS="$save_ifs"
4471 $show "$cmd"
4472 $run eval "$cmd" || exit $?
4473 done
4474 IFS="$save_ifs"
4475 done
4477 if test -n "$future_libdirs"; then
4478 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4481 if test -n "$current_libdirs"; then
4482 # Maybe just do a dry run.
4483 test -n "$run" && current_libdirs=" -n$current_libdirs"
4484 exec_cmd='$SHELL $0 --finish$current_libdirs'
4485 else
4486 exit 0
4490 # libtool finish mode
4491 finish)
4492 modename="$modename: finish"
4493 libdirs="$nonopt"
4494 admincmds=
4496 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4497 for dir
4499 libdirs="$libdirs $dir"
4500 done
4502 for libdir in $libdirs; do
4503 if test -n "$finish_cmds"; then
4504 # Do each command in the finish commands.
4505 eval cmds=\"$finish_cmds\"
4506 save_ifs="$IFS"; IFS='~'
4507 for cmd in $cmds; do
4508 IFS="$save_ifs"
4509 $show "$cmd"
4510 $run eval "$cmd" || admincmds="$admincmds
4511 $cmd"
4512 done
4513 IFS="$save_ifs"
4515 if test -n "$finish_eval"; then
4516 # Do the single finish_eval.
4517 eval cmds=\"$finish_eval\"
4518 $run eval "$cmds" || admincmds="$admincmds
4519 $cmds"
4521 done
4524 # Exit here if they wanted silent mode.
4525 test "$show" = ":" && exit 0
4527 echo "----------------------------------------------------------------------"
4528 echo "Libraries have been installed in:"
4529 for libdir in $libdirs; do
4530 echo " $libdir"
4531 done
4532 echo
4533 echo "If you ever happen to want to link against installed libraries"
4534 echo "in a given directory, LIBDIR, you must either use libtool, and"
4535 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4536 echo "flag during linking and do at least one of the following:"
4537 if test -n "$shlibpath_var"; then
4538 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4539 echo " during execution"
4541 if test -n "$runpath_var"; then
4542 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4543 echo " during linking"
4545 if test -n "$hardcode_libdir_flag_spec"; then
4546 libdir=LIBDIR
4547 eval flag=\"$hardcode_libdir_flag_spec\"
4549 echo " - use the \`$flag' linker flag"
4551 if test -n "$admincmds"; then
4552 echo " - have your system administrator run these commands:$admincmds"
4554 if test -f /etc/ld.so.conf; then
4555 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4557 echo
4558 echo "See any operating system documentation about shared libraries for"
4559 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4560 echo "----------------------------------------------------------------------"
4561 exit 0
4564 # libtool execute mode
4565 execute)
4566 modename="$modename: execute"
4568 # The first argument is the command name.
4569 cmd="$nonopt"
4570 if test -z "$cmd"; then
4571 $echo "$modename: you must specify a COMMAND" 1>&2
4572 $echo "$help"
4573 exit 1
4576 # Handle -dlopen flags immediately.
4577 for file in $execute_dlfiles; do
4578 if test ! -f "$file"; then
4579 $echo "$modename: \`$file' is not a file" 1>&2
4580 $echo "$help" 1>&2
4581 exit 1
4584 dir=
4585 case $file in
4586 *.la)
4587 # Check to see that this really is a libtool archive.
4588 if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4589 else
4590 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4591 $echo "$help" 1>&2
4592 exit 1
4595 # Read the libtool library.
4596 dlname=
4597 library_names=
4599 # If there is no directory component, then add one.
4600 case $file in
4601 */* | *\\*) . $file ;;
4602 *) . ./$file ;;
4603 esac
4605 # Skip this library if it cannot be dlopened.
4606 if test -z "$dlname"; then
4607 # Warn if it was a shared library.
4608 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4609 continue
4612 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4613 test "X$dir" = "X$file" && dir=.
4615 if test -f "$dir/$objdir/$dlname"; then
4616 dir="$dir/$objdir"
4617 else
4618 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4619 exit 1
4623 *.lo)
4624 # Just add the directory containing the .lo file.
4625 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4626 test "X$dir" = "X$file" && dir=.
4630 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4631 continue
4633 esac
4635 # Get the absolute pathname.
4636 absdir=`cd "$dir" && pwd`
4637 test -n "$absdir" && dir="$absdir"
4639 # Now add the directory to shlibpath_var.
4640 if eval "test -z \"\$$shlibpath_var\""; then
4641 eval "$shlibpath_var=\"\$dir\""
4642 else
4643 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4645 done
4647 # This variable tells wrapper scripts just to set shlibpath_var
4648 # rather than running their programs.
4649 libtool_execute_magic="$magic"
4651 # Check if any of the arguments is a wrapper script.
4652 args=
4653 for file
4655 case $file in
4656 -*) ;;
4658 # Do a test to see if this is really a libtool program.
4659 if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4660 # If there is no directory component, then add one.
4661 case $file in
4662 */* | *\\*) . $file ;;
4663 *) . ./$file ;;
4664 esac
4666 # Transform arg to wrapped name.
4667 file="$progdir/$program"
4670 esac
4671 # Quote arguments (to preserve shell metacharacters).
4672 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4673 args="$args \"$file\""
4674 done
4676 if test -z "$run"; then
4677 if test -n "$shlibpath_var"; then
4678 # Export the shlibpath_var.
4679 eval "export $shlibpath_var"
4682 # Restore saved enviroment variables
4683 if test "${save_LC_ALL+set}" = set; then
4684 LC_ALL="$save_LC_ALL"; export LC_ALL
4686 if test "${save_LANG+set}" = set; then
4687 LANG="$save_LANG"; export LANG
4690 # Now prepare to actually exec the command.
4691 exec_cmd="\$cmd$args"
4692 else
4693 # Display what would be done.
4694 if test -n "$shlibpath_var"; then
4695 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4696 $echo "export $shlibpath_var"
4698 $echo "$cmd$args"
4699 exit 0
4703 # libtool clean and uninstall mode
4704 clean | uninstall)
4705 modename="$modename: $mode"
4706 rm="$nonopt"
4707 files=
4708 rmforce=
4709 exit_status=0
4711 # This variable tells wrapper scripts just to set variables rather
4712 # than running their programs.
4713 libtool_install_magic="$magic"
4715 for arg
4717 case $arg in
4718 -f) rm="$rm $arg"; rmforce=yes ;;
4719 -*) rm="$rm $arg" ;;
4720 *) files="$files $arg" ;;
4721 esac
4722 done
4724 if test -z "$rm"; then
4725 $echo "$modename: you must specify an RM program" 1>&2
4726 $echo "$help" 1>&2
4727 exit 1
4730 rmdirs=
4732 for file in $files; do
4733 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4734 if test "X$dir" = "X$file"; then
4735 dir=.
4736 objdir="$objdir"
4737 else
4738 objdir="$dir/$objdir"
4740 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4741 test $mode = uninstall && objdir="$dir"
4743 # Remember objdir for removal later, being careful to avoid duplicates
4744 if test $mode = clean; then
4745 case " $rmdirs " in
4746 *" $objdir "*) ;;
4747 *) rmdirs="$rmdirs $objdir" ;;
4748 esac
4751 # Don't error if the file doesn't exist and rm -f was used.
4752 if (test -L "$file") >/dev/null 2>&1 \
4753 || (test -h "$file") >/dev/null 2>&1 \
4754 || test -f "$file"; then
4756 elif test -d "$file"; then
4757 exit_status=1
4758 continue
4759 elif test "$rmforce" = yes; then
4760 continue
4763 rmfiles="$file"
4765 case $name in
4766 *.la)
4767 # Possibly a libtool archive, so verify it.
4768 if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4769 . $dir/$name
4771 # Delete the libtool libraries and symlinks.
4772 for n in $library_names; do
4773 rmfiles="$rmfiles $objdir/$n"
4774 done
4775 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4776 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4778 if test $mode = uninstall; then
4779 if test -n "$library_names"; then
4780 # Do each command in the postuninstall commands.
4781 eval cmds=\"$postuninstall_cmds\"
4782 save_ifs="$IFS"; IFS='~'
4783 for cmd in $cmds; do
4784 IFS="$save_ifs"
4785 $show "$cmd"
4786 $run eval "$cmd"
4787 if test $? != 0 && test "$rmforce" != yes; then
4788 exit_status=1
4790 done
4791 IFS="$save_ifs"
4794 if test -n "$old_library"; then
4795 # Do each command in the old_postuninstall commands.
4796 eval cmds=\"$old_postuninstall_cmds\"
4797 save_ifs="$IFS"; IFS='~'
4798 for cmd in $cmds; do
4799 IFS="$save_ifs"
4800 $show "$cmd"
4801 $run eval "$cmd"
4802 if test $? != 0 && test "$rmforce" != yes; then
4803 exit_status=1
4805 done
4806 IFS="$save_ifs"
4808 # FIXME: should reinstall the best remaining shared library.
4813 *.lo)
4814 if test "$build_old_libs" = yes; then
4815 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
4816 rmfiles="$rmfiles $dir/$oldobj"
4821 # Do a test to see if this is a libtool program.
4822 if test $mode = clean &&
4823 (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4824 relink_command=
4825 . $dir/$file
4827 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4828 if test "$fast_install" = yes && test -n "$relink_command"; then
4829 rmfiles="$rmfiles $objdir/lt-$name"
4833 esac
4834 $show "$rm $rmfiles"
4835 $run $rm $rmfiles || exit_status=1
4836 done
4838 # Try to remove the ${objdir}s in the directories where we deleted files
4839 for dir in $rmdirs; do
4840 if test -d "$dir"; then
4841 $show "rmdir $dir"
4842 $run rmdir $dir >/dev/null 2>&1
4844 done
4846 exit $exit_status
4850 $echo "$modename: you must specify a MODE" 1>&2
4851 $echo "$generic_help" 1>&2
4852 exit 1
4854 esac
4856 if test -z "$exec_cmd"; then
4857 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4858 $echo "$generic_help" 1>&2
4859 exit 1
4861 fi # test -z "$show_help"
4863 if test -n "$exec_cmd"; then
4864 eval exec $exec_cmd
4865 exit 1
4868 # We need to display help for each of the modes.
4869 case $mode in
4870 "") $echo \
4871 "Usage: $modename [OPTION]... [MODE-ARG]...
4873 Provide generalized library-building support services.
4875 --config show all configuration variables
4876 --debug enable verbose shell tracing
4877 -n, --dry-run display commands without modifying any files
4878 --features display basic configuration information and exit
4879 --finish same as \`--mode=finish'
4880 --help display this help message and exit
4881 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4882 --quiet same as \`--silent'
4883 --silent don't print informational messages
4884 --version print version information
4886 MODE must be one of the following:
4888 clean remove files from the build directory
4889 compile compile a source file into a libtool object
4890 execute automatically set library path, then run a program
4891 finish complete the installation of libtool libraries
4892 install install libraries or executables
4893 link create a library or an executable
4894 uninstall remove libraries from an installed directory
4896 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
4897 a more detailed description of MODE."
4898 exit 0
4901 clean)
4902 $echo \
4903 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
4905 Remove files from the build directory.
4907 RM is the name of the program to use to delete files associated with each FILE
4908 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4909 to RM.
4911 If FILE is a libtool library, object or program, all the files associated
4912 with it are deleted. Otherwise, only FILE itself is deleted using RM."
4915 compile)
4916 $echo \
4917 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
4919 Compile a source file into a libtool library object.
4921 This mode accepts the following additional options:
4923 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
4924 -prefer-pic try to building PIC objects only
4925 -prefer-non-pic try to building non-PIC objects only
4926 -static always build a \`.o' file suitable for static linking
4928 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
4929 from the given SOURCEFILE.
4931 The output file name is determined by removing the directory component from
4932 SOURCEFILE, then substituting the C source code suffix \`.c' with the
4933 library object suffix, \`.lo'."
4936 execute)
4937 $echo \
4938 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
4940 Automatically set library path, then run a program.
4942 This mode accepts the following additional options:
4944 -dlopen FILE add the directory containing FILE to the library path
4946 This mode sets the library path environment variable according to \`-dlopen'
4947 flags.
4949 If any of the ARGS are libtool executable wrappers, then they are translated
4950 into their corresponding uninstalled binary, and any of their required library
4951 directories are added to the library path.
4953 Then, COMMAND is executed, with ARGS as arguments."
4956 finish)
4957 $echo \
4958 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
4960 Complete the installation of libtool libraries.
4962 Each LIBDIR is a directory that contains libtool libraries.
4964 The commands that this mode executes may require superuser privileges. Use
4965 the \`--dry-run' option if you just want to see what would be executed."
4968 install)
4969 $echo \
4970 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4972 Install executables or libraries.
4974 INSTALL-COMMAND is the installation command. The first component should be
4975 either the \`install' or \`cp' program.
4977 The rest of the components are interpreted as arguments to that command (only
4978 BSD-compatible install options are recognized)."
4981 link)
4982 $echo \
4983 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4985 Link object files or libraries together to form another library, or to
4986 create an executable program.
4988 LINK-COMMAND is a command using the C compiler that you would use to create
4989 a program from several object files.
4991 The following components of LINK-COMMAND are treated specially:
4993 -all-static do not do any dynamic linking at all
4994 -avoid-version do not add a version suffix if possible
4995 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4996 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4997 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4998 -export-symbols SYMFILE
4999 try to export only the symbols listed in SYMFILE
5000 -export-symbols-regex REGEX
5001 try to export only the symbols matching REGEX
5002 -LLIBDIR search LIBDIR for required installed libraries
5003 -lNAME OUTPUT-FILE requires the installed library libNAME
5004 -module build a library that can dlopened
5005 -no-fast-install disable the fast-install mode
5006 -no-install link a not-installable executable
5007 -no-undefined declare that a library does not refer to external symbols
5008 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
5009 -release RELEASE specify package release information
5010 -rpath LIBDIR the created library will eventually be installed in LIBDIR
5011 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
5012 -static do not do any dynamic linking of libtool libraries
5013 -version-info CURRENT[:REVISION[:AGE]]
5014 specify library version info [each variable defaults to 0]
5016 All other options (arguments beginning with \`-') are ignored.
5018 Every other argument is treated as a filename. Files ending in \`.la' are
5019 treated as uninstalled libtool libraries, other files are standard or library
5020 object files.
5022 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
5023 only library objects (\`.lo' files) may be specified, and \`-rpath' is
5024 required, except when creating a convenience library.
5026 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
5027 using \`ar' and \`ranlib', or on Windows using \`lib'.
5029 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
5030 is created, otherwise an executable program is created."
5033 uninstall)
5034 $echo \
5035 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
5037 Remove libraries from an installation directory.
5039 RM is the name of the program to use to delete files associated with each FILE
5040 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5041 to RM.
5043 If FILE is a libtool library, all the files associated with it are deleted.
5044 Otherwise, only FILE itself is deleted using RM."
5048 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5049 $echo "$help" 1>&2
5050 exit 1
5052 esac
5054 echo
5055 $echo "Try \`$modename --help' for more information about other modes."
5057 exit 0
5059 # Local Variables:
5060 # mode:shell-script
5061 # sh-indentation:2
5062 # End: