/[pcre]/code/trunk/ltmain.sh
ViewVC logotype

Contents of /code/trunk/ltmain.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 53 - (show annotations) (download) (as text)
Sat Feb 24 21:39:42 2007 UTC (7 years, 6 months ago) by nigel
File MIME type: application/x-sh
File size: 138312 byte(s)
Load pcre-3.5 into code/trunk.

1 # ltmain.sh - Provide generalized library-building support services.
2 # NOTE: Changing this file will not affect anything until you rerun configure.
3 #
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
7 #
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.
12 #
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.
17 #
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.
21 #
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.
26
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
33 :
34 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
35 # Yippee, $echo works!
36 :
37 else
38 # Restart under the correct shell, and then maybe $echo will work.
39 exec $SHELL "$0" --no-reexec ${1+"$@"}
40 fi
41
42 if test "X$1" = X--fallback-echo; then
43 # used as fallback echo
44 shift
45 cat <<EOF
46 $*
47 EOF
48 exit 0
49 fi
50
51 # The name of this program.
52 progname=`$echo "$0" | sed 's%^.*/%%'`
53 modename="$progname"
54
55 # Constants.
56 PROGRAM=ltmain.sh
57 PACKAGE=libtool
58 VERSION=1.4
59 TIMESTAMP=" (1.920 2001/04/24 23:26:18)"
60
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"
67
68 # Sed substitution that helps us do robust quoting. It backslashifies
69 # metacharacters that are still active within double-quoted strings.
70 Xsed='sed -e 1s/^X//'
71 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 SP2NL='tr \040 \012'
73 NL2SP='tr \015\012 \040\040'
74
75 # NLS nuisances.
76 # Only set LANG and LC_ALL to C if already set.
77 # These must not be set unconditionally because not all systems understand
78 # e.g. LANG=C (notably SCO).
79 # We save the old values to restore during execute mode.
80 if test "${LC_ALL+set}" = set; then
81 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
82 fi
83 if test "${LANG+set}" = set; then
84 save_LANG="$LANG"; LANG=C; export LANG
85 fi
86
87 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
88 echo "$modename: not configured to build any kind of library" 1>&2
89 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
90 exit 1
91 fi
92
93 # Global variables.
94 mode=$default_mode
95 nonopt=
96 prev=
97 prevopt=
98 run=
99 show="$echo"
100 show_help=
101 execute_dlfiles=
102 lo2o="s/\\.lo\$/.${objext}/"
103 o2lo="s/\\.${objext}\$/.lo/"
104
105 # Parse our command line options once, thoroughly.
106 while test $# -gt 0
107 do
108 arg="$1"
109 shift
110
111 case $arg in
112 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
113 *) optarg= ;;
114 esac
115
116 # If the previous option needs an argument, assign it.
117 if test -n "$prev"; then
118 case $prev in
119 execute_dlfiles)
120 execute_dlfiles="$execute_dlfiles $arg"
121 ;;
122 *)
123 eval "$prev=\$arg"
124 ;;
125 esac
126
127 prev=
128 prevopt=
129 continue
130 fi
131
132 # Have we seen a non-optional argument yet?
133 case $arg in
134 --help)
135 show_help=yes
136 ;;
137
138 --version)
139 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
140 exit 0
141 ;;
142
143 --config)
144 sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
145 exit 0
146 ;;
147
148 --debug)
149 echo "$progname: enabling shell trace mode"
150 set -x
151 ;;
152
153 --dry-run | -n)
154 run=:
155 ;;
156
157 --features)
158 echo "host: $host"
159 if test "$build_libtool_libs" = yes; then
160 echo "enable shared libraries"
161 else
162 echo "disable shared libraries"
163 fi
164 if test "$build_old_libs" = yes; then
165 echo "enable static libraries"
166 else
167 echo "disable static libraries"
168 fi
169 exit 0
170 ;;
171
172 --finish) mode="finish" ;;
173
174 --mode) prevopt="--mode" prev=mode ;;
175 --mode=*) mode="$optarg" ;;
176
177 --quiet | --silent)
178 show=:
179 ;;
180
181 -dlopen)
182 prevopt="-dlopen"
183 prev=execute_dlfiles
184 ;;
185
186 -*)
187 $echo "$modename: unrecognized option \`$arg'" 1>&2
188 $echo "$help" 1>&2
189 exit 1
190 ;;
191
192 *)
193 nonopt="$arg"
194 break
195 ;;
196 esac
197 done
198
199 if test -n "$prevopt"; then
200 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
201 $echo "$help" 1>&2
202 exit 1
203 fi
204
205 if test -z "$show_help"; then
206
207 # Infer the operation mode.
208 if test -z "$mode"; then
209 case $nonopt in
210 *cc | *++ | gcc* | *-gcc*)
211 mode=link
212 for arg
213 do
214 case $arg in
215 -c)
216 mode=compile
217 break
218 ;;
219 esac
220 done
221 ;;
222 *db | *dbx | *strace | *truss)
223 mode=execute
224 ;;
225 *install*|cp|mv)
226 mode=install
227 ;;
228 *rm)
229 mode=uninstall
230 ;;
231 *)
232 # If we have no mode, but dlfiles were specified, then do execute mode.
233 test -n "$execute_dlfiles" && mode=execute
234
235 # Just use the default operation mode.
236 if test -z "$mode"; then
237 if test -n "$nonopt"; then
238 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
239 else
240 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
241 fi
242 fi
243 ;;
244 esac
245 fi
246
247 # Only execute mode is allowed to have -dlopen flags.
248 if test -n "$execute_dlfiles" && test "$mode" != execute; then
249 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
250 $echo "$help" 1>&2
251 exit 1
252 fi
253
254 # Change the help message to a mode-specific one.
255 generic_help="$help"
256 help="Try \`$modename --help --mode=$mode' for more information."
257
258 # These modes are in order of execution frequency so that they run quickly.
259 case $mode in
260 # libtool compile mode
261 compile)
262 modename="$modename: compile"
263 # Get the compilation command and the source file.
264 base_compile=
265 prev=
266 lastarg=
267 srcfile="$nonopt"
268 suppress_output=
269
270 user_target=no
271 for arg
272 do
273 case $prev in
274 "") ;;
275 xcompiler)
276 # Aesthetically quote the previous argument.
277 prev=
278 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
279
280 case $arg in
281 # Double-quote args containing other shell metacharacters.
282 # Many Bourne shells cannot handle close brackets correctly
283 # in scan sets, so we specify it separately.
284 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
285 arg="\"$arg\""
286 ;;
287 esac
288
289 # Add the previous argument to base_compile.
290 if test -z "$base_compile"; then
291 base_compile="$lastarg"
292 else
293 base_compile="$base_compile $lastarg"
294 fi
295 continue
296 ;;
297 esac
298
299 # Accept any command-line options.
300 case $arg in
301 -o)
302 if test "$user_target" != "no"; then
303 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
304 exit 1
305 fi
306 user_target=next
307 ;;
308
309 -static)
310 build_old_libs=yes
311 continue
312 ;;
313
314 -prefer-pic)
315 pic_mode=yes
316 continue
317 ;;
318
319 -prefer-non-pic)
320 pic_mode=no
321 continue
322 ;;
323
324 -Xcompiler)
325 prev=xcompiler
326 continue
327 ;;
328
329 -Wc,*)
330 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
331 lastarg=
332 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
333 for arg in $args; do
334 IFS="$save_ifs"
335
336 # Double-quote args containing other shell metacharacters.
337 # Many Bourne shells cannot handle close brackets correctly
338 # in scan sets, so we specify it separately.
339 case $arg in
340 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
341 arg="\"$arg\""
342 ;;
343 esac
344 lastarg="$lastarg $arg"
345 done
346 IFS="$save_ifs"
347 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
348
349 # Add the arguments to base_compile.
350 if test -z "$base_compile"; then
351 base_compile="$lastarg"
352 else
353 base_compile="$base_compile $lastarg"
354 fi
355 continue
356 ;;
357 esac
358
359 case $user_target in
360 next)
361 # The next one is the -o target name
362 user_target=yes
363 continue
364 ;;
365 yes)
366 # We got the output file
367 user_target=set
368 libobj="$arg"
369 continue
370 ;;
371 esac
372
373 # Accept the current argument as the source file.
374 lastarg="$srcfile"
375 srcfile="$arg"
376
377 # Aesthetically quote the previous argument.
378
379 # Backslashify any backslashes, double quotes, and dollar signs.
380 # These are the only characters that are still specially
381 # interpreted inside of double-quoted scrings.
382 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
383
384 # Double-quote args containing other shell metacharacters.
385 # Many Bourne shells cannot handle close brackets correctly
386 # in scan sets, so we specify it separately.
387 case $lastarg in
388 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
389 lastarg="\"$lastarg\""
390 ;;
391 esac
392
393 # Add the previous argument to base_compile.
394 if test -z "$base_compile"; then
395 base_compile="$lastarg"
396 else
397 base_compile="$base_compile $lastarg"
398 fi
399 done
400
401 case $user_target in
402 set)
403 ;;
404 no)
405 # Get the name of the library object.
406 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
407 ;;
408 *)
409 $echo "$modename: you must specify a target with \`-o'" 1>&2
410 exit 1
411 ;;
412 esac
413
414 # Recognize several different file suffixes.
415 # If the user specifies -o file.o, it is replaced with file.lo
416 xform='[cCFSfmso]'
417 case $libobj in
418 *.ada) xform=ada ;;
419 *.adb) xform=adb ;;
420 *.ads) xform=ads ;;
421 *.asm) xform=asm ;;
422 *.c++) xform=c++ ;;
423 *.cc) xform=cc ;;
424 *.cpp) xform=cpp ;;
425 *.cxx) xform=cxx ;;
426 *.f90) xform=f90 ;;
427 *.for) xform=for ;;
428 esac
429
430 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
431
432 case $libobj in
433 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
434 *)
435 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
436 exit 1
437 ;;
438 esac
439
440 if test -z "$base_compile"; then
441 $echo "$modename: you must specify a compilation command" 1>&2
442 $echo "$help" 1>&2
443 exit 1
444 fi
445
446 # Delete any leftover library objects.
447 if test "$build_old_libs" = yes; then
448 removelist="$obj $libobj"
449 else
450 removelist="$libobj"
451 fi
452
453 $run $rm $removelist
454 trap "$run $rm $removelist; exit 1" 1 2 15
455
456 # On Cygwin there's no "real" PIC flag so we must build both object types
457 case $host_os in
458 cygwin* | mingw* | pw32* | os2*)
459 pic_mode=default
460 ;;
461 esac
462 if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
463 # non-PIC code in shared libraries is not supported
464 pic_mode=default
465 fi
466
467 # Calculate the filename of the output object if compiler does
468 # not support -o with -c
469 if test "$compiler_c_o" = no; then
470 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
471 lockfile="$output_obj.lock"
472 removelist="$removelist $output_obj $lockfile"
473 trap "$run $rm $removelist; exit 1" 1 2 15
474 else
475 need_locks=no
476 lockfile=
477 fi
478
479 # Lock this critical section if it is needed
480 # We use this script file to make the link, it avoids creating a new file
481 if test "$need_locks" = yes; then
482 until $run ln "$0" "$lockfile" 2>/dev/null; do
483 $show "Waiting for $lockfile to be removed"
484 sleep 2
485 done
486 elif test "$need_locks" = warn; then
487 if test -f "$lockfile"; then
488 echo "\
489 *** ERROR, $lockfile exists and contains:
490 `cat $lockfile 2>/dev/null`
491
492 This indicates that another process is trying to use the same
493 temporary object file, and libtool could not work around it because
494 your compiler does not support \`-c' and \`-o' together. If you
495 repeat this compilation, it may succeed, by chance, but you had better
496 avoid parallel builds (make -j) in this platform, or get a better
497 compiler."
498
499 $run $rm $removelist
500 exit 1
501 fi
502 echo $srcfile > "$lockfile"
503 fi
504
505 if test -n "$fix_srcfile_path"; then
506 eval srcfile=\"$fix_srcfile_path\"
507 fi
508
509 # Only build a PIC object if we are building libtool libraries.
510 if test "$build_libtool_libs" = yes; then
511 # Without this assignment, base_compile gets emptied.
512 fbsd_hideous_sh_bug=$base_compile
513
514 if test "$pic_mode" != no; then
515 # All platforms use -DPIC, to notify preprocessed assembler code.
516 command="$base_compile $srcfile $pic_flag -DPIC"
517 else
518 # Don't build PIC code
519 command="$base_compile $srcfile"
520 fi
521 if test "$build_old_libs" = yes; then
522 lo_libobj="$libobj"
523 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
524 if test "X$dir" = "X$libobj"; then
525 dir="$objdir"
526 else
527 dir="$dir/$objdir"
528 fi
529 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
530
531 if test -d "$dir"; then
532 $show "$rm $libobj"
533 $run $rm $libobj
534 else
535 $show "$mkdir $dir"
536 $run $mkdir $dir
537 status=$?
538 if test $status -ne 0 && test ! -d $dir; then
539 exit $status
540 fi
541 fi
542 fi
543 if test "$compiler_o_lo" = yes; then
544 output_obj="$libobj"
545 command="$command -o $output_obj"
546 elif test "$compiler_c_o" = yes; then
547 output_obj="$obj"
548 command="$command -o $output_obj"
549 fi
550
551 $run $rm "$output_obj"
552 $show "$command"
553 if $run eval "$command"; then :
554 else
555 test -n "$output_obj" && $run $rm $removelist
556 exit 1
557 fi
558
559 if test "$need_locks" = warn &&
560 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
561 echo "\
562 *** ERROR, $lockfile contains:
563 `cat $lockfile 2>/dev/null`
564
565 but it should contain:
566 $srcfile
567
568 This indicates that another process is trying to use the same
569 temporary object file, and libtool could not work around it because
570 your compiler does not support \`-c' and \`-o' together. If you
571 repeat this compilation, it may succeed, by chance, but you had better
572 avoid parallel builds (make -j) in this platform, or get a better
573 compiler."
574
575 $run $rm $removelist
576 exit 1
577 fi
578
579 # Just move the object if needed, then go on to compile the next one
580 if test x"$output_obj" != x"$libobj"; then
581 $show "$mv $output_obj $libobj"
582 if $run $mv $output_obj $libobj; then :
583 else
584 error=$?
585 $run $rm $removelist
586 exit $error
587 fi
588 fi
589
590 # If we have no pic_flag, then copy the object into place and finish.
591 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
592 test "$build_old_libs" = yes; then
593 # Rename the .lo from within objdir to obj
594 if test -f $obj; then
595 $show $rm $obj
596 $run $rm $obj
597 fi
598
599 $show "$mv $libobj $obj"
600 if $run $mv $libobj $obj; then :
601 else
602 error=$?
603 $run $rm $removelist
604 exit $error
605 fi
606
607 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
608 if test "X$xdir" = "X$obj"; then
609 xdir="."
610 else
611 xdir="$xdir"
612 fi
613 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
614 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
615 # Now arrange that obj and lo_libobj become the same file
616 $show "(cd $xdir && $LN_S $baseobj $libobj)"
617 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
618 exit 0
619 else
620 error=$?
621 $run $rm $removelist
622 exit $error
623 fi
624 fi
625
626 # Allow error messages only from the first compilation.
627 suppress_output=' >/dev/null 2>&1'
628 fi
629
630 # Only build a position-dependent object if we build old libraries.
631 if test "$build_old_libs" = yes; then
632 if test "$pic_mode" != yes; then
633 # Don't build PIC code
634 command="$base_compile $srcfile"
635 else
636 # All platforms use -DPIC, to notify preprocessed assembler code.
637 command="$base_compile $srcfile $pic_flag -DPIC"
638 fi
639 if test "$compiler_c_o" = yes; then
640 command="$command -o $obj"
641 output_obj="$obj"
642 fi
643
644 # Suppress compiler output if we already did a PIC compilation.
645 command="$command$suppress_output"
646 $run $rm "$output_obj"
647 $show "$command"
648 if $run eval "$command"; then :
649 else
650 $run $rm $removelist
651 exit 1
652 fi
653
654 if test "$need_locks" = warn &&
655 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
656 echo "\
657 *** ERROR, $lockfile contains:
658 `cat $lockfile 2>/dev/null`
659
660 but it should contain:
661 $srcfile
662
663 This indicates that another process is trying to use the same
664 temporary object file, and libtool could not work around it because
665 your compiler does not support \`-c' and \`-o' together. If you
666 repeat this compilation, it may succeed, by chance, but you had better
667 avoid parallel builds (make -j) in this platform, or get a better
668 compiler."
669
670 $run $rm $removelist
671 exit 1
672 fi
673
674 # Just move the object if needed
675 if test x"$output_obj" != x"$obj"; then
676 $show "$mv $output_obj $obj"
677 if $run $mv $output_obj $obj; then :
678 else
679 error=$?
680 $run $rm $removelist
681 exit $error
682 fi
683 fi
684
685 # Create an invalid libtool object if no PIC, so that we do not
686 # accidentally link it into a program.
687 if test "$build_libtool_libs" != yes; then
688 $show "echo timestamp > $libobj"
689 $run eval "echo timestamp > \$libobj" || exit $?
690 else
691 # Move the .lo from within objdir
692 $show "$mv $libobj $lo_libobj"
693 if $run $mv $libobj $lo_libobj; then :
694 else
695 error=$?
696 $run $rm $removelist
697 exit $error
698 fi
699 fi
700 fi
701
702 # Unlock the critical section if it was locked
703 if test "$need_locks" != no; then
704 $run $rm "$lockfile"
705 fi
706
707 exit 0
708 ;;
709
710 # libtool link mode
711 link | relink)
712 modename="$modename: link"
713 case $host in
714 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
715 # It is impossible to link a dll without this setting, and
716 # we shouldn't force the makefile maintainer to figure out
717 # which system we are compiling for in order to pass an extra
718 # flag for every libtool invokation.
719 # allow_undefined=no
720
721 # FIXME: Unfortunately, there are problems with the above when trying
722 # to make a dll which has undefined symbols, in which case not
723 # even a static library is built. For now, we need to specify
724 # -no-undefined on the libtool link line when we can be certain
725 # that all symbols are satisfied, otherwise we get a static library.
726 allow_undefined=yes
727 ;;
728 *)
729 allow_undefined=yes
730 ;;
731 esac
732 libtool_args="$nonopt"
733 compile_command="$nonopt"
734 finalize_command="$nonopt"
735
736 compile_rpath=
737 finalize_rpath=
738 compile_shlibpath=
739 finalize_shlibpath=
740 convenience=
741 old_convenience=
742 deplibs=
743 old_deplibs=
744 compiler_flags=
745 linker_flags=
746 dllsearchpath=
747 lib_search_path=`pwd`
748
749 avoid_version=no
750 dlfiles=
751 dlprefiles=
752 dlself=no
753 export_dynamic=no
754 export_symbols=
755 export_symbols_regex=
756 generated=
757 libobjs=
758 ltlibs=
759 module=no
760 no_install=no
761 objs=
762 prefer_static_libs=no
763 preload=no
764 prev=
765 prevarg=
766 release=
767 rpath=
768 xrpath=
769 perm_rpath=
770 temp_rpath=
771 thread_safe=no
772 vinfo=
773
774 # We need to know -static, to get the right output filenames.
775 for arg
776 do
777 case $arg in
778 -all-static | -static)
779 if test "X$arg" = "X-all-static"; then
780 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
781 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
782 fi
783 if test -n "$link_static_flag"; then
784 dlopen_self=$dlopen_self_static
785 fi
786 else
787 if test -z "$pic_flag" && test -n "$link_static_flag"; then
788 dlopen_self=$dlopen_self_static
789 fi
790 fi
791 build_libtool_libs=no
792 build_old_libs=yes
793 prefer_static_libs=yes
794 break
795 ;;
796 esac
797 done
798
799 # See if our shared archives depend on static archives.
800 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
801
802 # Go through the arguments, transforming them on the way.
803 while test $# -gt 0; do
804 arg="$1"
805 shift
806 case $arg in
807 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
808 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
809 ;;
810 *) qarg=$arg ;;
811 esac
812 libtool_args="$libtool_args $qarg"
813
814 # If the previous option needs an argument, assign it.
815 if test -n "$prev"; then
816 case $prev in
817 output)
818 compile_command="$compile_command @OUTPUT@"
819 finalize_command="$finalize_command @OUTPUT@"
820 ;;
821 esac
822
823 case $prev in
824 dlfiles|dlprefiles)
825 if test "$preload" = no; then
826 # Add the symbol object into the linking commands.
827 compile_command="$compile_command @SYMFILE@"
828 finalize_command="$finalize_command @SYMFILE@"
829 preload=yes
830 fi
831 case $arg in
832 *.la | *.lo) ;; # We handle these cases below.
833 force)
834 if test "$dlself" = no; then
835 dlself=needless
836 export_dynamic=yes
837 fi
838 prev=
839 continue
840 ;;
841 self)
842 if test "$prev" = dlprefiles; then
843 dlself=yes
844 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
845 dlself=yes
846 else
847 dlself=needless
848 export_dynamic=yes
849 fi
850 prev=
851 continue
852 ;;
853 *)
854 if test "$prev" = dlfiles; then
855 dlfiles="$dlfiles $arg"
856 else
857 dlprefiles="$dlprefiles $arg"
858 fi
859 prev=
860 continue
861 ;;
862 esac
863 ;;
864 expsyms)
865 export_symbols="$arg"
866 if test ! -f "$arg"; then
867 $echo "$modename: symbol file \`$arg' does not exist"
868 exit 1
869 fi
870 prev=
871 continue
872 ;;
873 expsyms_regex)
874 export_symbols_regex="$arg"
875 prev=
876 continue
877 ;;
878 release)
879 release="-$arg"
880 prev=
881 continue
882 ;;
883 rpath | xrpath)
884 # We need an absolute path.
885 case $arg in
886 [\\/]* | [A-Za-z]:[\\/]*) ;;
887 *)
888 $echo "$modename: only absolute run-paths are allowed" 1>&2
889 exit 1
890 ;;
891 esac
892 if test "$prev" = rpath; then
893 case "$rpath " in
894 *" $arg "*) ;;
895 *) rpath="$rpath $arg" ;;
896 esac
897 else
898 case "$xrpath " in
899 *" $arg "*) ;;
900 *) xrpath="$xrpath $arg" ;;
901 esac
902 fi
903 prev=
904 continue
905 ;;
906 xcompiler)
907 compiler_flags="$compiler_flags $qarg"
908 prev=
909 compile_command="$compile_command $qarg"
910 finalize_command="$finalize_command $qarg"
911 continue
912 ;;
913 xlinker)
914 linker_flags="$linker_flags $qarg"
915 compiler_flags="$compiler_flags $wl$qarg"
916 prev=
917 compile_command="$compile_command $wl$qarg"
918 finalize_command="$finalize_command $wl$qarg"
919 continue
920 ;;
921 *)
922 eval "$prev=\"\$arg\""
923 prev=
924 continue
925 ;;
926 esac
927 fi # test -n $prev
928
929 prevarg="$arg"
930
931 case $arg in
932 -all-static)
933 if test -n "$link_static_flag"; then
934 compile_command="$compile_command $link_static_flag"
935 finalize_command="$finalize_command $link_static_flag"
936 fi
937 continue
938 ;;
939
940 -allow-undefined)
941 # FIXME: remove this flag sometime in the future.
942 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
943 continue
944 ;;
945
946 -avoid-version)
947 avoid_version=yes
948 continue
949 ;;
950
951 -dlopen)
952 prev=dlfiles
953 continue
954 ;;
955
956 -dlpreopen)
957 prev=dlprefiles
958 continue
959 ;;
960
961 -export-dynamic)
962 export_dynamic=yes
963 continue
964 ;;
965
966 -export-symbols | -export-symbols-regex)
967 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
968 $echo "$modename: more than one -exported-symbols argument is not allowed"
969 exit 1
970 fi
971 if test "X$arg" = "X-export-symbols"; then
972 prev=expsyms
973 else
974 prev=expsyms_regex
975 fi
976 continue
977 ;;
978
979 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
980 # so, if we see these flags be careful not to treat them like -L
981 -L[A-Z][A-Z]*:*)
982 case $with_gcc/$host in
983 no/*-*-irix*)
984 compile_command="$compile_command $arg"
985 finalize_command="$finalize_command $arg"
986 ;;
987 esac
988 continue
989 ;;
990
991 -L*)
992 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
993 # We need an absolute path.
994 case $dir in
995 [\\/]* | [A-Za-z]:[\\/]*) ;;
996 *)
997 absdir=`cd "$dir" && pwd`
998 if test -z "$absdir"; then
999 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1000 exit 1
1001 fi
1002 dir="$absdir"
1003 ;;
1004 esac
1005 case "$deplibs " in
1006 *" -L$dir "*) ;;
1007 *)
1008 deplibs="$deplibs -L$dir"
1009 lib_search_path="$lib_search_path $dir"
1010 ;;
1011 esac
1012 case $host in
1013 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1014 case :$dllsearchpath: in
1015 *":$dir:"*) ;;
1016 *) dllsearchpath="$dllsearchpath:$dir";;
1017 esac
1018 ;;
1019 esac
1020 continue
1021 ;;
1022
1023 -l*)
1024 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1025 case $host in
1026 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1027 # These systems don't actually have a C or math library (as such)
1028 continue
1029 ;;
1030 *-*-mingw* | *-*-os2*)
1031 # These systems don't actually have a C library (as such)
1032 test "X$arg" = "X-lc" && continue
1033 ;;
1034 esac
1035 fi
1036 deplibs="$deplibs $arg"
1037 continue
1038 ;;
1039
1040 -module)
1041 module=yes
1042 continue
1043 ;;
1044
1045 -no-fast-install)
1046 fast_install=no
1047 continue
1048 ;;
1049
1050 -no-install)
1051 case $host in
1052 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1053 # The PATH hackery in wrapper scripts is required on Windows
1054 # in order for the loader to find any dlls it needs.
1055 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1056 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1057 fast_install=no
1058 ;;
1059 *) no_install=yes ;;
1060 esac
1061 continue
1062 ;;
1063
1064 -no-undefined)
1065 allow_undefined=no
1066 continue
1067 ;;
1068
1069 -o) prev=output ;;
1070
1071 -release)
1072 prev=release
1073 continue
1074 ;;
1075
1076 -rpath)
1077 prev=rpath
1078 continue
1079 ;;
1080
1081 -R)
1082 prev=xrpath
1083 continue
1084 ;;
1085
1086 -R*)
1087 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1088 # We need an absolute path.
1089 case $dir in
1090 [\\/]* | [A-Za-z]:[\\/]*) ;;
1091 *)
1092 $echo "$modename: only absolute run-paths are allowed" 1>&2
1093 exit 1
1094 ;;
1095 esac
1096 case "$xrpath " in
1097 *" $dir "*) ;;
1098 *) xrpath="$xrpath $dir" ;;
1099 esac
1100 continue
1101 ;;
1102
1103 -static)
1104 # The effects of -static are defined in a previous loop.
1105 # We used to do the same as -all-static on platforms that
1106 # didn't have a PIC flag, but the assumption that the effects
1107 # would be equivalent was wrong. It would break on at least
1108 # Digital Unix and AIX.
1109 continue
1110 ;;
1111
1112 -thread-safe)
1113 thread_safe=yes
1114 continue
1115 ;;
1116
1117 -version-info)
1118 prev=vinfo
1119 continue
1120 ;;
1121
1122 -Wc,*)
1123 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1124 arg=
1125 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1126 for flag in $args; do
1127 IFS="$save_ifs"
1128 case $flag in
1129 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1130 flag="\"$flag\""
1131 ;;
1132 esac
1133 arg="$arg $wl$flag"
1134 compiler_flags="$compiler_flags $flag"
1135 done
1136 IFS="$save_ifs"
1137 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1138 ;;
1139
1140 -Wl,*)
1141 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1142 arg=
1143 IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
1144 for flag in $args; do
1145 IFS="$save_ifs"
1146 case $flag in
1147 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1148 flag="\"$flag\""
1149 ;;
1150 esac
1151 arg="$arg $wl$flag"
1152 compiler_flags="$compiler_flags $wl$flag"
1153 linker_flags="$linker_flags $flag"
1154 done
1155 IFS="$save_ifs"
1156 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1157 ;;
1158
1159 -Xcompiler)
1160 prev=xcompiler
1161 continue
1162 ;;
1163
1164 -Xlinker)
1165 prev=xlinker
1166 continue
1167 ;;
1168
1169 # Some other compiler flag.
1170 -* | +*)
1171 # Unknown arguments in both finalize_command and compile_command need
1172 # to be aesthetically quoted because they are evaled later.
1173 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1174 case $arg in
1175 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1176 arg="\"$arg\""
1177 ;;
1178 esac
1179 ;;
1180
1181 *.lo | *.$objext)
1182 # A library or standard object.
1183 if test "$prev" = dlfiles; then
1184 # This file was specified with -dlopen.
1185 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1186 dlfiles="$dlfiles $arg"
1187 prev=
1188 continue
1189 else
1190 # If libtool objects are unsupported, then we need to preload.
1191 prev=dlprefiles
1192 fi
1193 fi
1194
1195 if test "$prev" = dlprefiles; then
1196 # Preload the old-style object.
1197 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1198 prev=
1199 else
1200 case $arg in
1201 *.lo) libobjs="$libobjs $arg" ;;
1202 *) objs="$objs $arg" ;;
1203 esac
1204 fi
1205 ;;
1206
1207 *.$libext)
1208 # An archive.
1209 deplibs="$deplibs $arg"
1210 old_deplibs="$old_deplibs $arg"
1211 continue
1212 ;;
1213
1214 *.la)
1215 # A libtool-controlled library.
1216
1217 if test "$prev" = dlfiles; then
1218 # This library was specified with -dlopen.
1219 dlfiles="$dlfiles $arg"
1220 prev=
1221 elif test "$prev" = dlprefiles; then
1222 # The library was specified with -dlpreopen.
1223 dlprefiles="$dlprefiles $arg"
1224 prev=
1225 else
1226 deplibs="$deplibs $arg"
1227 fi
1228 continue
1229 ;;
1230
1231 # Some other compiler argument.
1232 *)
1233 # Unknown arguments in both finalize_command and compile_command need
1234 # to be aesthetically quoted because they are evaled later.
1235 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1236 case $arg in
1237 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1238 arg="\"$arg\""
1239 ;;
1240 esac
1241 ;;
1242 esac # arg
1243
1244 # Now actually substitute the argument into the commands.
1245 if test -n "$arg"; then
1246 compile_command="$compile_command $arg"
1247 finalize_command="$finalize_command $arg"
1248 fi
1249 done # argument parsing loop
1250
1251 if test -n "$prev"; then
1252 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1253 $echo "$help" 1>&2
1254 exit 1
1255 fi
1256
1257 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1258 eval arg=\"$export_dynamic_flag_spec\"
1259 compile_command="$compile_command $arg"
1260 finalize_command="$finalize_command $arg"
1261 fi
1262
1263 # calculate the name of the file, without its directory
1264 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1265 libobjs_save="$libobjs"
1266
1267 if test -n "$shlibpath_var"; then
1268 # get the directories listed in $shlibpath_var
1269 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1270 else
1271 shlib_search_path=
1272 fi
1273 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1274 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1275
1276 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1277 if test "X$output_objdir" = "X$output"; then
1278 output_objdir="$objdir"
1279 else
1280 output_objdir="$output_objdir/$objdir"
1281 fi
1282 # Create the object directory.
1283 if test ! -d $output_objdir; then
1284 $show "$mkdir $output_objdir"
1285 $run $mkdir $output_objdir
1286 status=$?
1287 if test $status -ne 0 && test ! -d $output_objdir; then
1288 exit $status
1289 fi
1290 fi
1291
1292 # Determine the type of output
1293 case $output in
1294 "")
1295 $echo "$modename: you must specify an output file" 1>&2
1296 $echo "$help" 1>&2
1297 exit 1
1298 ;;
1299 *.$libext) linkmode=oldlib ;;
1300 *.lo | *.$objext) linkmode=obj ;;
1301 *.la) linkmode=lib ;;
1302 *) linkmode=prog ;; # Anything else should be a program.
1303 esac
1304
1305 specialdeplibs=
1306 libs=
1307 # Find all interdependent deplibs by searching for libraries
1308 # that are linked more than once (e.g. -la -lb -la)
1309 for deplib in $deplibs; do
1310 case "$libs " in
1311 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1312 esac
1313 libs="$libs $deplib"
1314 done
1315 deplibs=
1316 newdependency_libs=
1317 newlib_search_path=
1318 need_relink=no # whether we're linking any uninstalled libtool libraries
1319 notinst_deplibs= # not-installed libtool libraries
1320 notinst_path= # paths that contain not-installed libtool libraries
1321 case $linkmode in
1322 lib)
1323 passes="conv link"
1324 for file in $dlfiles $dlprefiles; do
1325 case $file in
1326 *.la) ;;
1327 *)
1328 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1329 exit 1
1330 ;;
1331 esac
1332 done
1333 ;;
1334 prog)
1335 compile_deplibs=
1336 finalize_deplibs=
1337 alldeplibs=no
1338 newdlfiles=
1339 newdlprefiles=
1340 passes="conv scan dlopen dlpreopen link"
1341 ;;
1342 *) passes="conv"
1343 ;;
1344 esac
1345 for pass in $passes; do
1346 if test $linkmode = prog; then
1347 # Determine which files to process
1348 case $pass in
1349 dlopen)
1350 libs="$dlfiles"
1351 save_deplibs="$deplibs" # Collect dlpreopened libraries
1352 deplibs=
1353 ;;
1354 dlpreopen) libs="$dlprefiles" ;;
1355 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1356 esac
1357 fi
1358 for deplib in $libs; do
1359 lib=
1360 found=no
1361 case $deplib in
1362 -l*)
1363 if test $linkmode = oldlib && test $linkmode = obj; then
1364 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1365 continue
1366 fi
1367 if test $pass = conv; then
1368 deplibs="$deplib $deplibs"
1369 continue
1370 fi
1371 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1372 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1373 # Search the libtool library
1374 lib="$searchdir/lib${name}.la"
1375 if test -f "$lib"; then
1376 found=yes
1377 break
1378 fi
1379 done
1380 if test "$found" != yes; then
1381 # deplib doesn't seem to be a libtool library
1382 if test "$linkmode,$pass" = "prog,link"; then
1383 compile_deplibs="$deplib $compile_deplibs"
1384 finalize_deplibs="$deplib $finalize_deplibs"
1385 else
1386 deplibs="$deplib $deplibs"
1387 test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1388 fi
1389 continue
1390 fi
1391 ;; # -l
1392 -L*)
1393 case $linkmode in
1394 lib)
1395 deplibs="$deplib $deplibs"
1396 test $pass = conv && continue
1397 newdependency_libs="$deplib $newdependency_libs"
1398 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1399 ;;
1400 prog)
1401 if test $pass = conv; then
1402 deplibs="$deplib $deplibs"
1403 continue
1404 fi
1405 if test $pass = scan; then
1406 deplibs="$deplib $deplibs"
1407 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1408 else
1409 compile_deplibs="$deplib $compile_deplibs"
1410 finalize_deplibs="$deplib $finalize_deplibs"
1411 fi
1412 ;;
1413 *)
1414 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1415 ;;
1416 esac # linkmode
1417 continue
1418 ;; # -L
1419 -R*)
1420 if test $pass = link; then
1421 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1422 # Make sure the xrpath contains only unique directories.
1423 case "$xrpath " in
1424 *" $dir "*) ;;
1425 *) xrpath="$xrpath $dir" ;;
1426 esac
1427 fi
1428 deplibs="$deplib $deplibs"
1429 continue
1430 ;;
1431 *.la) lib="$deplib" ;;
1432 *.$libext)
1433 if test $pass = conv; then
1434 deplibs="$deplib $deplibs"
1435 continue
1436 fi
1437 case $linkmode in
1438 lib)
1439 if test "$deplibs_check_method" != pass_all; then
1440 echo
1441 echo "*** Warning: This library needs some functionality provided by $deplib."
1442 echo "*** I have the capability to make that library automatically link in when"
1443 echo "*** you link to this library. But I can only do this if you have a"
1444 echo "*** shared version of the library, which you do not appear to have."
1445 else
1446 echo
1447 echo "*** Warning: Linking the shared library $output against the"
1448 echo "*** static library $deplib is not portable!"
1449 deplibs="$deplib $deplibs"
1450 fi
1451 continue
1452 ;;
1453 prog)
1454 if test $pass != link; then
1455 deplibs="$deplib $deplibs"
1456 else
1457 compile_deplibs="$deplib $compile_deplibs"
1458 finalize_deplibs="$deplib $finalize_deplibs"
1459 fi
1460 continue
1461 ;;
1462 esac # linkmode
1463 ;; # *.$libext
1464 *.lo | *.$objext)
1465 if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1466 # If there is no dlopen support or we're linking statically,
1467 # we need to preload.
1468 newdlprefiles="$newdlprefiles $deplib"
1469 compile_deplibs="$deplib $compile_deplibs"
1470 finalize_deplibs="$deplib $finalize_deplibs"
1471 else
1472 newdlfiles="$newdlfiles $deplib"
1473 fi
1474 continue
1475 ;;
1476 %DEPLIBS%)
1477 alldeplibs=yes
1478 continue
1479 ;;
1480 esac # case $deplib
1481 if test $found = yes || test -f "$lib"; then :
1482 else
1483 $echo "$modename: cannot find the library \`$lib'" 1>&2
1484 exit 1
1485 fi
1486
1487 # Check to see that this really is a libtool archive.
1488 if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1489 else
1490 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1491 exit 1
1492 fi
1493
1494 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1495 test "X$ladir" = "X$lib" && ladir="."
1496
1497 dlname=
1498 dlopen=
1499 dlpreopen=
1500 libdir=
1501 library_names=
1502 old_library=
1503 # If the library was installed with an old release of libtool,
1504 # it will not redefine variable installed.
1505 installed=yes
1506
1507 # Read the .la file
1508 case $lib in
1509 */* | *\\*) . $lib ;;
1510 *) . ./$lib ;;
1511 esac
1512
1513 if test "$linkmode,$pass" = "lib,link" ||
1514 test "$linkmode,$pass" = "prog,scan" ||
1515 { test $linkmode = oldlib && test $linkmode = obj; }; then
1516 # Add dl[pre]opened files of deplib
1517 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1518 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1519 fi
1520
1521 if test $pass = conv; then
1522 # Only check for convenience libraries
1523 deplibs="$lib $deplibs"
1524 if test -z "$libdir"; then
1525 if test -z "$old_library"; then
1526 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1527 exit 1
1528 fi
1529 # It is a libtool convenience library, so add in its objects.
1530 convenience="$convenience $ladir/$objdir/$old_library"
1531 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1532 tmp_libs=
1533 for deplib in $dependency_libs; do
1534 deplibs="$deplib $deplibs"
1535 case "$tmp_libs " in
1536 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1537 esac
1538 tmp_libs="$tmp_libs $deplib"
1539 done
1540 elif test $linkmode != prog && test $linkmode != lib; then
1541 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1542 exit 1
1543 fi
1544 continue
1545 fi # $pass = conv
1546
1547 # Get the name of the library we link against.
1548 linklib=
1549 for l in $old_library $library_names; do
1550 linklib="$l"
1551 done
1552 if test -z "$linklib"; then
1553 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1554 exit 1
1555 fi
1556
1557 # This library was specified with -dlopen.
1558 if test $pass = dlopen; then
1559 if test -z "$libdir"; then
1560 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1561 exit 1
1562 fi
1563 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1564 # If there is no dlname, no dlopen support or we're linking
1565 # statically, we need to preload.
1566 dlprefiles="$dlprefiles $lib"
1567 else
1568 newdlfiles="$newdlfiles $lib"
1569 fi
1570 continue
1571 fi # $pass = dlopen
1572
1573 # We need an absolute path.
1574 case $ladir in
1575 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1576 *)
1577 abs_ladir=`cd "$ladir" && pwd`
1578 if test -z "$abs_ladir"; then
1579 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1580 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1581 abs_ladir="$ladir"
1582 fi
1583 ;;
1584 esac
1585 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1586
1587 # Find the relevant object directory and library name.
1588 if test "X$installed" = Xyes; then
1589 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1590 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1591 dir="$ladir"
1592 absdir="$abs_ladir"
1593 libdir="$abs_ladir"
1594 else
1595 dir="$libdir"
1596 absdir="$libdir"
1597 fi
1598 else
1599 dir="$ladir/$objdir"
1600 absdir="$abs_ladir/$objdir"
1601 # Remove this search path later
1602 notinst_path="$notinst_path $abs_ladir"
1603 fi # $installed = yes
1604 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1605
1606 # This library was specified with -dlpreopen.
1607 if test $pass = dlpreopen; then
1608 if test -z "$libdir"; then
1609 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1610 exit 1
1611 fi
1612 # Prefer using a static library (so that no silly _DYNAMIC symbols
1613 # are required to link).
1614 if test -n "$old_library"; then
1615 newdlprefiles="$newdlprefiles $dir/$old_library"
1616 # Otherwise, use the dlname, so that lt_dlopen finds it.
1617 elif test -n "$dlname"; then
1618 newdlprefiles="$newdlprefiles $dir/$dlname"
1619 else
1620 newdlprefiles="$newdlprefiles $dir/$linklib"
1621 fi
1622 fi # $pass = dlpreopen
1623
1624 if test -z "$libdir"; then
1625 # Link the convenience library
1626 if test $linkmode = lib; then
1627 deplibs="$dir/$old_library $deplibs"
1628 elif test "$linkmode,$pass" = "prog,link"; then
1629 compile_deplibs="$dir/$old_library $compile_deplibs"
1630 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1631 else
1632 deplibs="$lib $deplibs"
1633 fi
1634 continue
1635 fi
1636
1637 if test $linkmode = prog && test $pass != link; then
1638 newlib_search_path="$newlib_search_path $ladir"
1639 deplibs="$lib $deplibs"
1640
1641 linkalldeplibs=no
1642 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1643 test "$build_libtool_libs" = no; then
1644 linkalldeplibs=yes
1645 fi
1646
1647 tmp_libs=
1648 for deplib in $dependency_libs; do
1649 case $deplib in
1650 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1651 esac
1652 # Need to link against all dependency_libs?
1653 if test $linkalldeplibs = yes; then
1654 deplibs="$deplib $deplibs"
1655 else
1656 # Need to hardcode shared library paths
1657 # or/and link against static libraries
1658 newdependency_libs="$deplib $newdependency_libs"
1659 fi
1660 case "$tmp_libs " in
1661 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1662 esac
1663 tmp_libs="$tmp_libs $deplib"
1664 done # for deplib
1665 continue
1666 fi # $linkmode = prog...
1667
1668 link_static=no # Whether the deplib will be linked statically
1669 if test -n "$library_names" &&
1670 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1671 # Link against this shared library
1672
1673 if test "$linkmode,$pass" = "prog,link" ||
1674 { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
1675 # Hardcode the library path.
1676 # Skip directories that are in the system default run-time
1677 # search path.
1678 case " $sys_lib_dlsearch_path " in
1679 *" $absdir "*) ;;
1680 *)
1681 case "$compile_rpath " in
1682 *" $absdir "*) ;;
1683 *) compile_rpath="$compile_rpath $absdir"
1684 esac
1685 ;;
1686 esac
1687 case " $sys_lib_dlsearch_path " in
1688 *" $libdir "*) ;;
1689 *)
1690 case "$finalize_rpath " in
1691 *" $libdir "*) ;;
1692 *) finalize_rpath="$finalize_rpath $libdir"
1693 esac
1694 ;;
1695 esac
1696 if test $linkmode = prog; then
1697 # We need to hardcode the library path
1698 if test -n "$shlibpath_var"; then
1699 # Make sure the rpath contains only unique directories.
1700 case "$temp_rpath " in
1701 *" $dir "*) ;;
1702 *" $absdir "*) ;;
1703 *) temp_rpath="$temp_rpath $dir" ;;
1704 esac
1705 fi
1706 fi
1707 fi # $linkmode,$pass = prog,link...
1708
1709 if test "$alldeplibs" = yes &&
1710 { test "$deplibs_check_method" = pass_all ||
1711 { test "$build_libtool_libs" = yes &&
1712 test -n "$library_names"; }; }; then
1713 # We only need to search for static libraries
1714 continue
1715 fi
1716
1717 if test "$installed" = no; then
1718 notinst_deplibs="$notinst_deplibs $lib"
1719 need_relink=yes
1720 fi
1721
1722 if test -n "$old_archive_from_expsyms_cmds"; then
1723 # figure out the soname
1724 set dummy $library_names
1725 realname="$2"
1726 shift; shift
1727 libname=`eval \\$echo \"$libname_spec\"`
1728 # use dlname if we got it. it's perfectly good, no?
1729 if test -n "$dlname"; then
1730 soname="$dlname"
1731 elif test -n "$soname_spec"; then
1732 # bleh windows
1733 case $host in
1734 *cygwin*)
1735 major=`expr $current - $age`
1736 versuffix="-$major"
1737 ;;
1738 esac
1739 eval soname=\"$soname_spec\"
1740 else
1741 soname="$realname"
1742 fi
1743
1744 # Make a new name for the extract_expsyms_cmds to use
1745 soroot="$soname"
1746 soname=`echo $soroot | sed -e 's/^.*\///'`
1747 newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
1748
1749 # If the library has no export list, then create one now
1750 if test -f "$output_objdir/$soname-def"; then :
1751 else
1752 $show "extracting exported symbol list from \`$soname'"
1753 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
1754 eval cmds=\"$extract_expsyms_cmds\"
1755 for cmd in $cmds; do
1756 IFS="$save_ifs"
1757 $show "$cmd"
1758 $run eval "$cmd" || exit $?
1759 done
1760 IFS="$save_ifs"
1761 fi
1762
1763 # Create $newlib
1764 if test -f "$output_objdir/$newlib"; then :; else
1765 $show "generating import library for \`$soname'"
1766 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
1767 eval cmds=\"$old_archive_from_expsyms_cmds\"
1768 for cmd in $cmds; do
1769 IFS="$save_ifs"
1770 $show "$cmd"
1771 $run eval "$cmd" || exit $?
1772 done
1773 IFS="$save_ifs"
1774 fi
1775 # make sure the library variables are pointing to the new library
1776 dir=$output_objdir
1777 linklib=$newlib
1778 fi # test -n $old_archive_from_expsyms_cmds
1779
1780 if test $linkmode = prog || test "$mode" != relink; then
1781 add_shlibpath=
1782 add_dir=
1783 add=
1784 lib_linked=yes
1785 case $hardcode_action in
1786 immediate | unsupported)
1787 if test "$hardcode_direct" = no; then
1788 add="$dir/$linklib"
1789 elif test "$hardcode_minus_L" = no; then
1790 case $host in
1791 *-*-sunos*) add_shlibpath="$dir" ;;
1792 esac
1793 add_dir="-L$dir"
1794 add="-l$name"
1795 elif test "$hardcode_shlibpath_var" = no; then
1796 add_shlibpath="$dir"
1797 add="-l$name"
1798 else
1799 lib_linked=no
1800 fi
1801 ;;
1802 relink)
1803 if test "$hardcode_direct" = yes; then
1804 add="$dir/$linklib"
1805 elif test "$hardcode_minus_L" = yes; then
1806 add_dir="-L$dir"
1807 add="-l$name"
1808 elif test "$hardcode_shlibpath_var" = yes; then
1809 add_shlibpath="$dir"
1810 add="-l$name"
1811 else
1812 lib_linked=no
1813 fi
1814 ;;
1815 *) lib_linked=no ;;
1816 esac
1817
1818 if test "$lib_linked" != yes; then
1819 $echo "$modename: configuration error: unsupported hardcode properties"
1820 exit 1
1821 fi
1822
1823 if test -n "$add_shlibpath"; then
1824 case :$compile_shlibpath: in
1825 *":$add_shlibpath:"*) ;;
1826 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
1827 esac
1828 fi
1829 if test $linkmode = prog; then
1830 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
1831 test -n "$add" && compile_deplibs="$add $compile_deplibs"
1832 else
1833 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1834 test -n "$add" && deplibs="$add $deplibs"
1835 if test "$hardcode_direct" != yes && \
1836 test "$hardcode_minus_L" != yes && \
1837 test "$hardcode_shlibpath_var" = yes; then
1838 case :$finalize_shlibpath: in
1839 *":$libdir:"*) ;;
1840 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1841 esac
1842 fi
1843 fi
1844 fi
1845
1846 if test $linkmode = prog || test "$mode" = relink; then
1847 add_shlibpath=
1848 add_dir=
1849 add=
1850 # Finalize command for both is simple: just hardcode it.
1851 if test "$hardcode_direct" = yes; then
1852 add="$libdir/$linklib"
1853 elif test "$hardcode_minus_L" = yes; then
1854 add_dir="-L$libdir"
1855 add="-l$name"
1856 elif test "$hardcode_shlibpath_var" = yes; then
1857 case :$finalize_shlibpath: in
1858 *":$libdir:"*) ;;
1859 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
1860 esac
1861 add="-l$name"
1862 else
1863 # We cannot seem to hardcode it, guess we'll fake it.
1864 add_dir="-L$libdir"
1865 add="-l$name"
1866 fi
1867
1868 if test $linkmode = prog; then
1869 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
1870 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
1871 else
1872 test -n "$add_dir" && deplibs="$add_dir $deplibs"
1873 test -n "$add" && deplibs="$add $deplibs"
1874 fi
1875 fi
1876 elif test $linkmode = prog; then
1877 if test "$alldeplibs" = yes &&
1878 { test "$deplibs_check_method" = pass_all ||
1879 { test "$build_libtool_libs" = yes &&
1880 test -n "$library_names"; }; }; then
1881 # We only need to search for static libraries
1882 continue
1883 fi
1884
1885 # Try to link the static library
1886 # Here we assume that one of hardcode_direct or hardcode_minus_L
1887 # is not unsupported. This is valid on all known static and
1888 # shared platforms.
1889 if test "$hardcode_direct" != unsupported; then
1890 test -n "$old_library" && linklib="$old_library"
1891 compile_deplibs="$dir/$linklib $compile_deplibs"
1892 finalize_deplibs="$dir/$linklib $finalize_deplibs"
1893 else
1894 compile_deplibs="-l$name -L$dir $compile_deplibs"
1895 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
1896 fi
1897 elif test "$build_libtool_libs" = yes; then
1898 # Not a shared library
1899 if test "$deplibs_check_method" != pass_all; then
1900 # We're trying link a shared library against a static one
1901 # but the system doesn't support it.
1902
1903 # Just print a warning and add the library to dependency_libs so
1904 # that the program can be linked against the static library.
1905 echo
1906 echo "*** Warning: This library needs some functionality provided by $lib."
1907 echo "*** I have the capability to make that library automatically link in when"
1908 echo "*** you link to this library. But I can only do this if you have a"
1909 echo "*** shared version of the library, which you do not appear to have."
1910 if test "$module" = yes; then
1911 echo "*** Therefore, libtool will create a static module, that should work "
1912 echo "*** as long as the dlopening application is linked with the -dlopen flag."
1913 if test -z "$global_symbol_pipe"; then
1914 echo
1915 echo "*** However, this would only work if libtool was able to extract symbol"
1916 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1917 echo "*** not find such a program. So, this module is probably useless."
1918 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1919 fi
1920 if test "$build_old_libs" = no; then
1921 build_libtool_libs=module
1922 build_old_libs=yes
1923 else
1924 build_libtool_libs=no
1925 fi
1926 fi
1927 else
1928 convenience="$convenience $dir/$old_library"
1929 old_convenience="$old_convenience $dir/$old_library"
1930 deplibs="$dir/$old_library $deplibs"
1931 link_static=yes
1932 fi
1933 fi # link shared/static library?
1934
1935 if test $linkmode = lib; then
1936 if test -n "$dependency_libs" &&
1937 { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
1938 test $link_static = yes; }; then
1939 # Extract -R from dependency_libs
1940 temp_deplibs=
1941 for libdir in $dependency_libs; do
1942 case $libdir in
1943 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
1944 case " $xrpath " in
1945 *" $temp_xrpath "*) ;;
1946 *) xrpath="$xrpath $temp_xrpath";;
1947 esac;;
1948 *) temp_deplibs="$temp_deplibs $libdir";;
1949 esac
1950 done
1951 dependency_libs="$temp_deplibs"
1952 fi
1953
1954 newlib_search_path="$newlib_search_path $absdir"
1955 # Link against this library
1956 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
1957 # ... and its dependency_libs
1958 tmp_libs=
1959 for deplib in $dependency_libs; do
1960 newdependency_libs="$deplib $newdependency_libs"
1961 case "$tmp_libs " in
1962 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1963 esac
1964 tmp_libs="$tmp_libs $deplib"
1965 done
1966
1967 if test $link_all_deplibs != no; then
1968 # Add the search paths of all dependency libraries
1969 for deplib in $dependency_libs; do
1970 case $deplib in
1971 -L*) path="$deplib" ;;
1972 *.la)
1973 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
1974 test "X$dir" = "X$deplib" && dir="."
1975 # We need an absolute path.
1976 case $dir in
1977 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1978 *)
1979 absdir=`cd "$dir" && pwd`
1980 if test -z "$absdir"; then
1981 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1982 absdir="$dir"
1983 fi
1984 ;;
1985 esac
1986 if grep "^installed=no" $deplib > /dev/null; then
1987 path="-L$absdir/$objdir"
1988 else
1989 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
1990 if test -z "$libdir"; then
1991 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
1992 exit 1
1993 fi
1994 if test "$absdir" != "$libdir"; then
1995 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
1996 fi
1997 path="-L$absdir"
1998 fi
1999 ;;
2000 *) continue ;;
2001 esac
2002 case " $deplibs " in
2003 *" $path "*) ;;
2004 *) deplibs="$deplibs $path" ;;
2005 esac
2006 done
2007 fi # link_all_deplibs != no
2008 fi # linkmode = lib
2009 done # for deplib in $libs
2010 if test $pass = dlpreopen; then
2011 # Link the dlpreopened libraries before other libraries
2012 for deplib in $save_deplibs; do
2013 deplibs="$deplib $deplibs"
2014 done
2015 fi
2016 if test $pass != dlopen; then
2017 test $pass != scan && dependency_libs="$newdependency_libs"
2018 if test $pass != conv; then
2019 # Make sure lib_search_path contains only unique directories.
2020 lib_search_path=
2021 for dir in $newlib_search_path; do
2022 case "$lib_search_path " in
2023 *" $dir "*) ;;
2024 *) lib_search_path="$lib_search_path $dir" ;;
2025 esac
2026 done
2027 newlib_search_path=
2028 fi
2029
2030 if test "$linkmode,$pass" != "prog,link"; then
2031 vars="deplibs"
2032 else
2033 vars="compile_deplibs finalize_deplibs"
2034 fi
2035 for var in $vars dependency_libs; do
2036 # Add libraries to $var in reverse order
2037 eval tmp_libs=\"\$$var\"
2038 new_libs=
2039 for deplib in $tmp_libs; do
2040 case $deplib in
2041 -L*) new_libs="$deplib $new_libs" ;;
2042 *)
2043 case " $specialdeplibs " in
2044 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2045 *)
2046 case " $new_libs " in
2047 *" $deplib "*) ;;
2048 *) new_libs="$deplib $new_libs" ;;
2049 esac
2050 ;;
2051 esac
2052 ;;
2053 esac
2054 done
2055 tmp_libs=
2056 for deplib in $new_libs; do
2057 case $deplib in
2058 -L*)
2059 case " $tmp_libs " in
2060 *" $deplib "*) ;;
2061 *) tmp_libs="$tmp_libs $deplib" ;;
2062 esac
2063 ;;
2064 *) tmp_libs="$tmp_libs $deplib" ;;
2065 esac
2066 done
2067 eval $var=\"$tmp_libs\"
2068 done # for var
2069 fi
2070 if test "$pass" = "conv" &&
2071 { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2072 libs="$deplibs" # reset libs
2073 deplibs=
2074 fi
2075 done # for pass
2076 if test $linkmode = prog; then
2077 dlfiles="$newdlfiles"
2078 dlprefiles="$newdlprefiles"
2079 fi
2080
2081 case $linkmode in
2082 oldlib)
2083 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2084 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2085 fi
2086
2087 if test -n "$rpath"; then
2088 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2089 fi
2090
2091 if test -n "$xrpath"; then
2092 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2093 fi
2094
2095 if test -n "$vinfo"; then
2096 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2097 fi
2098
2099 if test -n "$release"; then
2100 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2101 fi
2102
2103 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2104 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2105 fi
2106
2107 # Now set the variables for building old libraries.
2108 build_libtool_libs=no
2109 oldlibs="$output"
2110 objs="$objs$old_deplibs"
2111 ;;
2112
2113 lib)
2114 # Make sure we only generate libraries of the form `libNAME.la'.
2115 case $outputname in
2116 lib*)
2117 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2118 eval libname=\"$libname_spec\"
2119 ;;
2120 *)
2121 if test "$module" = no; then
2122 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2123 $echo "$help" 1>&2
2124 exit 1
2125 fi
2126 if test "$need_lib_prefix" != no; then
2127 # Add the "lib" prefix for modules if required
2128 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2129 eval libname=\"$libname_spec\"
2130 else
2131 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2132 fi
2133 ;;
2134 esac
2135
2136 if test -n "$objs"; then
2137 if test "$deplibs_check_method" != pass_all; then
2138 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2139 exit 1
2140 else
2141 echo
2142 echo "*** Warning: Linking the shared library $output against the non-libtool"
2143 echo "*** objects $objs is not portable!"
2144 libobjs="$libobjs $objs"
2145 fi
2146 fi
2147
2148 if test "$dlself" != no; then
2149 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2150 fi
2151
2152 set dummy $rpath
2153 if test $# -gt 2; then
2154 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2155 fi
2156 install_libdir="$2"
2157
2158 oldlibs=
2159 if test -z "$rpath"; then
2160 if test "$build_libtool_libs" = yes; then
2161 # Building a libtool convenience library.
2162 libext=al
2163 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2164 build_libtool_libs=convenience
2165 build_old_libs=yes
2166 fi
2167
2168 if test -n "$vinfo"; then
2169 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2170 fi
2171
2172 if test -n "$release"; then
2173 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2174 fi
2175 else
2176
2177 # Parse the version information argument.
2178 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
2179 set dummy $vinfo 0 0 0
2180 IFS="$save_ifs"
2181
2182 if test -n "$8"; then
2183 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2184 $echo "$help" 1>&2
2185 exit 1
2186 fi
2187
2188 current="$2"
2189 revision="$3"
2190 age="$4"
2191
2192 # Check that each of the things are valid numbers.
2193 case $current in
2194 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2195 *)
2196 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2197 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2198 exit 1
2199 ;;
2200 esac
2201
2202 case $revision in
2203 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2204 *)
2205 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2206 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2207 exit 1
2208 ;;
2209 esac
2210
2211 case $age in
2212 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2213 *)
2214 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2215 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2216 exit 1
2217 ;;
2218 esac
2219
2220 if test $age -gt $current; then
2221 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2222 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2223 exit 1
2224 fi
2225
2226 # Calculate the version variables.
2227 major=
2228 versuffix=
2229 verstring=
2230 case $version_type in
2231 none) ;;
2232
2233 darwin)
2234 # Like Linux, but with the current version available in
2235 # verstring for coding it into the library header
2236 major=.`expr $current - $age`
2237 versuffix="$major.$age.$revision"
2238 # Darwin ld doesn't like 0 for these options...
2239 minor_current=`expr $current + 1`
2240 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2241 ;;
2242
2243 freebsd-aout)
2244 major=".$current"
2245 versuffix=".$current.$revision";
2246 ;;
2247
2248 freebsd-elf)
2249 major=".$current"
2250 versuffix=".$current";
2251 ;;
2252
2253 irix)
2254 major=`expr $current - $age + 1`
2255 verstring="sgi$major.$revision"
2256
2257 # Add in all the interfaces that we are compatible with.
2258 loop=$revision
2259 while test $loop != 0; do
2260 iface=`expr $revision - $loop`
2261 loop=`expr $loop - 1`
2262 verstring="sgi$major.$iface:$verstring"
2263 done
2264
2265 # Before this point, $major must not contain `.'.
2266 major=.$major
2267 versuffix="$major.$revision"
2268 ;;
2269
2270 linux)
2271 major=.`expr $current - $age`
2272 versuffix="$major.$age.$revision"
2273 ;;
2274
2275 osf)
2276 major=`expr $current - $age`
2277 versuffix=".$current.$age.$revision"
2278 verstring="$current.$age.$revision"
2279
2280 # Add in all the interfaces that we are compatible with.
2281 loop=$age
2282 while test $loop != 0; do
2283 iface=`expr $current - $loop`
2284 loop=`expr $loop - 1`
2285 verstring="$verstring:${iface}.0"
2286 done
2287
2288 # Make executables depend on our current version.
2289 verstring="$verstring:${current}.0"
2290 ;;
2291
2292 sunos)
2293 major=".$current"
2294 versuffix=".$current.$revision"
2295 ;;
2296
2297 windows)
2298 # Use '-' rather than '.', since we only want one
2299 # extension on DOS 8.3 filesystems.
2300 major=`expr $current - $age`
2301 versuffix="-$major"
2302 ;;
2303
2304 *)
2305 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2306 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2307 exit 1
2308 ;;
2309 esac
2310
2311 # Clear the version info if we defaulted, and they specified a release.
2312 if test -z "$vinfo" && test -n "$release"; then
2313 major=
2314 verstring="0.0"
2315 if test "$need_version" = no; then
2316 versuffix=
2317 else
2318 versuffix=".0.0"
2319 fi
2320 fi
2321
2322 # Remove version info from name if versioning should be avoided
2323 if test "$avoid_version" = yes && test "$need_version" = no; then
2324 major=
2325 versuffix=
2326 verstring=""
2327 fi
2328
2329 # Check to see if the archive will have undefined symbols.
2330 if test "$allow_undefined" = yes; then
2331 if test "$allow_undefined_flag" = unsupported; then
2332 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2333 build_libtool_libs=no
2334 build_old_libs=yes
2335 fi
2336 else
2337 # Don't allow undefined symbols.
2338 allow_undefined_flag="$no_undefined_flag"
2339 fi
2340 fi
2341
2342 if test "$mode" != relink; then
2343 # Remove our outputs.
2344 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2345 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2346 fi
2347
2348 # Now set the variables for building old libraries.
2349 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2350 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2351
2352 # Transform .lo files to .o files.
2353 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2354 fi
2355
2356 # Eliminate all temporary directories.
2357 for path in $notinst_path; do
2358 lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2359 deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2360 dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2361 done
2362
2363 if test -n "$xrpath"; then
2364 # If the user specified any rpath flags, then add them.
2365 temp_xrpath=
2366 for libdir in $xrpath; do
2367 temp_xrpath="$temp_xrpath -R$libdir"
2368 case "$finalize_rpath " in
2369 *" $libdir "*) ;;
2370 *) finalize_rpath="$finalize_rpath $libdir" ;;
2371 esac
2372 done
2373 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2374 dependency_libs="$temp_xrpath $dependency_libs"
2375 fi
2376 fi
2377
2378 # Make sure dlfiles contains only unique files that won't be dlpreopened
2379 old_dlfiles="$dlfiles"
2380 dlfiles=
2381 for lib in $old_dlfiles; do
2382 case " $dlprefiles $dlfiles " in
2383 *" $lib "*) ;;
2384 *) dlfiles="$dlfiles $lib" ;;
2385 esac
2386 done
2387
2388 # Make sure dlprefiles contains only unique files
2389 old_dlprefiles="$dlprefiles"
2390 dlprefiles=
2391 for lib in $old_dlprefiles; do
2392 case "$dlprefiles " in
2393 *" $lib "*) ;;
2394 *) dlprefiles="$dlprefiles $lib" ;;
2395 esac
2396 done
2397
2398 if test "$build_libtool_libs" = yes; then
2399 if test -n "$rpath"; then
2400 case $host in
2401 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2402 # these systems don't actually have a c library (as such)!
2403 ;;
2404 *-*-rhapsody* | *-*-darwin1.[012])
2405 # Rhapsody C library is in the System framework
2406 deplibs="$deplibs -framework System"
2407 ;;
2408 *-*-netbsd*)
2409 # Don't link with libc until the a.out ld.so is fixed.
2410 ;;
2411 *)
2412 # Add libc to deplibs on all other systems if necessary.
2413 if test $build_libtool_need_lc = "yes"; then
2414 deplibs="$deplibs -lc"
2415 fi
2416 ;;
2417 esac
2418 fi
2419
2420 # Transform deplibs into only deplibs that can be linked in shared.
2421 name_save=$name
2422 libname_save=$libname
2423 release_save=$release
2424 versuffix_save=$versuffix
2425 major_save=$major
2426 # I'm not sure if I'm treating the release correctly. I think
2427 # release should show up in the -l (ie -lgmp5) so we don't want to
2428 # add it in twice. Is that correct?
2429 release=""
2430 versuffix=""
2431 major=""
2432 newdeplibs=
2433 droppeddeps=no
2434 case $deplibs_check_method in
2435 pass_all)
2436 # Don't check for shared/static. Everything works.
2437 # This might be a little naive. We might want to check
2438 # whether the library exists or not. But this is on
2439 # osf3 & osf4 and I'm not really sure... Just
2440 # implementing what was already the behaviour.
2441 newdeplibs=$deplibs
2442 ;;
2443 test_compile)
2444 # This code stresses the "libraries are programs" paradigm to its
2445 # limits. Maybe even breaks it. We compile a program, linking it
2446 # against the deplibs as a proxy for the library. Then we can check
2447 # whether they linked in statically or dynamically with ldd.
2448 $rm conftest.c
2449 cat > conftest.c <<EOF
2450 int main() { return 0; }
2451 EOF
2452 $rm conftest
2453 $CC -o conftest conftest.c $deplibs
2454 if test $? -eq 0 ; then
2455 ldd_output=`ldd conftest`
2456 for i in $deplibs; do
2457 name="`expr $i : '-l\(.*\)'`"
2458 # If $name is empty we are operating on a -L argument.
2459 if test -n "$name" && test "$name" != "0"; then
2460 libname=`eval \\$echo \"$libname_spec\"`
2461 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2462 set dummy $deplib_matches
2463 deplib_match=$2
2464 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2465 newdeplibs="$newdeplibs $i"
2466 else
2467 droppeddeps=yes
2468 echo
2469 echo "*** Warning: This library needs some functionality provided by $i."
2470 echo "*** I have the capability to make that library automatically link in when"
2471 echo "*** you link to this library. But I can only do this if you have a"
2472 echo "*** shared version of the library, which you do not appear to have."
2473 fi
2474 else
2475 newdeplibs="$newdeplibs $i"
2476 fi
2477 done
2478 else
2479 # Error occured in the first compile. Let's try to salvage the situation:
2480 # Compile a seperate program for each library.
2481 for i in $deplibs; do
2482 name="`expr $i : '-l\(.*\)'`"
2483 # If $name is empty we are operating on a -L argument.
2484 if test -n "$name" && test "$name" != "0"; then
2485 $rm conftest
2486 $CC -o conftest conftest.c $i
2487 # Did it work?
2488 if test $? -eq 0 ; then
2489 ldd_output=`ldd conftest`
2490 libname=`eval \\$echo \"$libname_spec\"`
2491 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2492 set dummy $deplib_matches
2493 deplib_match=$2
2494 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2495 newdeplibs="$newdeplibs $i"
2496 else
2497 droppeddeps=yes
2498 echo
2499 echo "*** Warning: This library needs some functionality provided by $i."
2500 echo "*** I have the capability to make that library automatically link in when"
2501 echo "*** you link to this library. But I can only do this if you have a"
2502 echo "*** shared version of the library, which you do not appear to have."
2503 fi
2504 else
2505 droppeddeps=yes
2506 echo
2507 echo "*** Warning! Library $i is needed by this library but I was not able to"
2508 echo "*** make it link in! You will probably need to install it or some"
2509 echo "*** library that it depends on before this library will be fully"
2510 echo "*** functional. Installing it before continuing would be even better."
2511 fi
2512 else
2513 newdeplibs="$newdeplibs $i"
2514 fi
2515 done
2516 fi
2517 ;;
2518 file_magic*)
2519 set dummy $deplibs_check_method
2520 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2521 for a_deplib in $deplibs; do
2522 name="`expr $a_deplib : '-l\(.*\)'`"
2523 # If $name is empty we are operating on a -L argument.
2524 if test -n "$name" && test "$name" != "0"; then
2525 libname=`eval \\$echo \"$libname_spec\"`
2526 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2527 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2528 for potent_lib in $potential_libs; do
2529 # Follow soft links.
2530 if ls -lLd "$potent_lib" 2>/dev/null \
2531 | grep " -> " >/dev/null; then
2532 continue
2533 fi
2534 # The statement above tries to avoid entering an
2535 # endless loop below, in case of cyclic links.
2536 # We might still enter an endless loop, since a link
2537 # loop can be closed while we follow links,
2538 # but so what?
2539 potlib="$potent_lib"
2540 while test -h "$potlib" 2>/dev/null; do
2541 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2542 case $potliblink in
2543 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2544 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2545 esac
2546 done
2547 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2548 | sed 10q \
2549 | egrep "$file_magic_regex" > /dev/null; then
2550 newdeplibs="$newdeplibs $a_deplib"
2551 a_deplib=""
2552 break 2
2553 fi
2554 done
2555 done
2556 if test -n "$a_deplib" ; then
2557 droppeddeps=yes
2558 echo
2559 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2560 echo "*** I have the capability to make that library automatically link in when"
2561 echo "*** you link to this library. But I can only do this if you have a"
2562 echo "*** shared version of the library, which you do not appear to have."
2563 fi
2564 else
2565 # Add a -L argument.
2566 newdeplibs="$newdeplibs $a_deplib"
2567 fi
2568 done # Gone through all deplibs.
2569 ;;
2570 match_pattern*)
2571 set dummy $deplibs_check_method
2572 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2573 for a_deplib in $deplibs; do
2574 name="`expr $a_deplib : '-l\(.*\)'`"
2575 # If $name is empty we are operating on a -L argument.
2576 if test -n "$name" && test "$name" != "0"; then
2577 libname=`eval \\$echo \"$libname_spec\"`
2578 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2579 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2580 for potent_lib in $potential_libs; do
2581 if eval echo \"$potent_lib\" 2>/dev/null \
2582 | sed 10q \
2583 | egrep "$match_pattern_regex" > /dev/null; then
2584 newdeplibs="$newdeplibs $a_deplib"
2585 a_deplib=""
2586 break 2
2587 fi
2588 done
2589 done
2590 if test -n "$a_deplib" ; then
2591 droppeddeps=yes
2592 echo
2593 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2594 echo "*** I have the capability to make that library automatically link in when"
2595 echo "*** you link to this library. But I can only do this if you have a"
2596 echo "*** shared version of the library, which you do not appear to have."
2597 fi
2598 else
2599 # Add a -L argument.
2600 newdeplibs="$newdeplibs $a_deplib"
2601 fi
2602 done # Gone through all deplibs.
2603 ;;
2604 none | unknown | *)
2605 newdeplibs=""
2606 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2607 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2608 grep . >/dev/null; then
2609 echo
2610 if test "X$deplibs_check_method" = "Xnone"; then
2611 echo "*** Warning: inter-library dependencies are not supported in this platform."
2612 else
2613 echo "*** Warning: inter-library dependencies are not known to be supported."
2614 fi
2615 echo "*** All declared inter-library dependencies are being dropped."
2616 droppeddeps=yes
2617 fi
2618 ;;
2619 esac
2620 versuffix=$versuffix_save
2621 major=$major_save
2622 release=$release_save
2623 libname=$libname_save
2624 name=$name_save
2625
2626 case $host in
2627 *-*-rhapsody* | *-*-darwin1.[012])
2628 # On Rhapsody replace the C library is the System framework
2629 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2630 ;;
2631 esac
2632
2633 if test "$droppeddeps" = yes; then
2634 if test "$module" = yes; then
2635 echo
2636 echo "*** Warning: libtool could not satisfy all declared inter-library"
2637 echo "*** dependencies of module $libname. Therefore, libtool will create"
2638 echo "*** a static module, that should work as long as the dlopening"
2639 echo "*** application is linked with the -dlopen flag."
2640 if test -z "$global_symbol_pipe"; then
2641 echo
2642 echo "*** However, this would only work if libtool was able to extract symbol"
2643 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2644 echo "*** not find such a program. So, this module is probably useless."
2645 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2646 fi
2647 if test "$build_old_libs" = no; then
2648 oldlibs="$output_objdir/$libname.$libext"
2649 build_libtool_libs=module
2650 build_old_libs=yes
2651 else
2652 build_libtool_libs=no
2653 fi
2654 else
2655 echo "*** The inter-library dependencies that have been dropped here will be"
2656 echo "*** automatically added whenever a program is linked with this library"
2657 echo "*** or is declared to -dlopen it."
2658
2659 if test $allow_undefined = no; then
2660 echo
2661 echo "*** Since this library must not contain undefined symbols,"
2662 echo "*** because either the platform does not support them or"
2663 echo "*** it was explicitly requested with -no-undefined,"
2664 echo "*** libtool will only create a static version of it."
2665 if test "$build_old_libs" = no; then
2666 oldlibs="$output_objdir/$libname.$libext"
2667 build_libtool_libs=module
2668 build_old_libs=yes
2669 else
2670 build_libtool_libs=no
2671 fi
2672 fi
2673 fi
2674 fi
2675 # Done checking deplibs!
2676 deplibs=$newdeplibs
2677 fi
2678
2679 # All the library-specific variables (install_libdir is set above).
2680 library_names=
2681 old_library=
2682 dlname=
2683
2684 # Test again, we may have decided not to build it any more
2685 if test "$build_libtool_libs" = yes; then
2686 if test $hardcode_into_libs = yes; then
2687 # Hardcode the library paths
2688 hardcode_libdirs=
2689 dep_rpath=
2690 rpath="$finalize_rpath"
2691 test "$mode" != relink && rpath="$compile_rpath$rpath"
2692 for libdir in $rpath; do
2693 if test -n "$hardcode_libdir_flag_spec"; then
2694 if test -n "$hardcode_libdir_separator"; then
2695 if test -z "$hardcode_libdirs"; then
2696 hardcode_libdirs="$libdir"
2697 else
2698 # Just accumulate the unique libdirs.
2699 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
2700 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2701 ;;
2702 *)
2703 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2704 ;;
2705 esac
2706 fi
2707 else
2708 eval flag=\"$hardcode_libdir_flag_spec\"
2709 dep_rpath="$dep_rpath $flag"
2710 fi
2711 elif test -n "$runpath_var"; then
2712 case "$perm_rpath " in
2713 *" $libdir "*) ;;
2714 *) perm_rpath="$perm_rpath $libdir" ;;
2715 esac
2716 fi
2717 done
2718 # Substitute the hardcoded libdirs into the rpath.
2719 if test -n "$hardcode_libdir_separator" &&
2720 test -n "$hardcode_libdirs"; then
2721 libdir="$hardcode_libdirs"
2722 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
2723 fi
2724 if test -n "$runpath_var" && test -n "$perm_rpath"; then
2725 # We should set the runpath_var.
2726 rpath=
2727 for dir in $perm_rpath; do
2728 rpath="$rpath$dir:"
2729 done
2730 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
2731 fi
2732 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
2733 fi
2734
2735 shlibpath="$finalize_shlibpath"
2736 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
2737 if test -n "$shlibpath"; then
2738 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
2739 fi
2740
2741 # Get the real and link names of the library.
2742 eval library_names=\"$library_names_spec\"
2743 set dummy $library_names
2744 realname="$2"
2745 shift; shift
2746
2747 if test -n "$soname_spec"; then
2748 eval soname=\"$soname_spec\"
2749 else
2750 soname="$realname"
2751 fi
2752 test -z "$dlname" && dlname=$soname
2753
2754 lib="$output_objdir/$realname"
2755 for link
2756 do
2757 linknames="$linknames $link"
2758 done
2759
2760 # Ensure that we have .o objects for linkers which dislike .lo
2761 # (e.g. aix) in case we are running --disable-static
2762 for obj in $libobjs; do
2763 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2764 if test "X$xdir" = "X$obj"; then
2765 xdir="."
2766 else
2767 xdir="$xdir"
2768 fi
2769 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2770 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2771 if test ! -f $xdir/$oldobj; then
2772 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2773 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2774 fi
2775 done
2776
2777 # Use standard objects if they are pic
2778 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2779
2780 # Prepare the list of exported symbols
2781 if test -z "$export_symbols"; then
2782 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2783 $show "generating symbol list for \`$libname.la'"
2784 export_symbols="$output_objdir/$libname.exp"
2785 $run $rm $export_symbols
2786 eval cmds=\"$export_symbols_cmds\"
2787 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2788 for cmd in $cmds; do
2789 IFS="$save_ifs"
2790 $show "$cmd"
2791 $run eval "$cmd" || exit $?
2792 done
2793 IFS="$save_ifs"
2794 if test -n "$export_symbols_regex"; then
2795 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2796 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2797 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2798 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2799 fi
2800 fi
2801 fi
2802
2803 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2804 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2805 fi
2806
2807 if test -n "$convenience"; then
2808 if test -n "$whole_archive_flag_spec"; then
2809 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2810 else
2811 gentop="$output_objdir/${outputname}x"
2812 $show "${rm}r $gentop"
2813 $run ${rm}r "$gentop"
2814 $show "mkdir $gentop"
2815 $run mkdir "$gentop"
2816 status=$?
2817 if test $status -ne 0 && test ! -d "$gentop"; then
2818 exit $status
2819 fi
2820 generated="$generated $gentop"
2821
2822 for xlib in $convenience; do
2823 # Extract the objects.
2824 case $xlib in
2825 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2826 *) xabs=`pwd`"/$xlib" ;;
2827 esac
2828 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2829 xdir="$gentop/$xlib"
2830
2831 $show "${rm}r $xdir"
2832 $run ${rm}r "$xdir"
2833 $show "mkdir $xdir"
2834 $run mkdir "$xdir"
2835 status=$?
2836 if test $status -ne 0 && test ! -d "$xdir"; then
2837 exit $status
2838 fi
2839 $show "(cd $xdir && $AR x $xabs)"
2840 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2841
2842 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2843 done
2844 fi
2845 fi
2846
2847 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2848 eval flag=\"$thread_safe_flag_spec\"
2849 linker_flags="$linker_flags $flag"
2850 fi
2851
2852 # Make a backup of the uninstalled library when relinking
2853 if test "$mode" = relink; then
2854 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
2855 fi
2856
2857 # Do each of the archive commands.
2858 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2859 eval cmds=\"$archive_expsym_cmds\"
2860 else
2861 eval cmds=\"$archive_cmds\"
2862 fi
2863 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2864 for cmd in $cmds; do
2865 IFS="$save_ifs"
2866 $show "$cmd"
2867 $run eval "$cmd" || exit $?
2868 done
2869 IFS="$save_ifs"
2870
2871 # Restore the uninstalled library and exit
2872 if test "$mode" = relink; then
2873 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
2874 exit 0
2875 fi
2876
2877 # Create links to the real library.
2878 for linkname in $linknames; do
2879 if test "$realname" != "$linkname"; then
2880 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2881 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2882 fi
2883 done
2884
2885 # If -module or -export-dynamic was specified, set the dlname.
2886 if test "$module" = yes || test "$export_dynamic" = yes; then
2887 # On all known operating systems, these are identical.
2888 dlname="$soname"
2889 fi
2890 fi
2891 ;;
2892
2893 obj)
2894 if test -n "$deplibs"; then
2895 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2896 fi
2897
2898 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2899 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2900 fi
2901
2902 if test -n "$rpath"; then
2903 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2904 fi
2905
2906 if test -n "$xrpath"; then
2907 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2908 fi
2909
2910 if test -n "$vinfo"; then
2911 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2912 fi
2913
2914 if test -n "$release"; then
2915 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2916 fi
2917
2918 case $output in
2919 *.lo)
2920 if test -n "$objs$old_deplibs"; then
2921 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2922 exit 1
2923 fi
2924 libobj="$output"
2925 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2926 ;;
2927 *)
2928 libobj=
2929 obj="$output"
2930 ;;
2931 esac
2932
2933 # Delete the old objects.
2934 $run $rm $obj $libobj
2935
2936 # Objects from convenience libraries. This assumes
2937 # single-version convenience libraries. Whenever we create
2938 # different ones for PIC/non-PIC, this we'll have to duplicate
2939 # the extraction.
2940 reload_conv_objs=
2941 gentop=
2942 # reload_cmds runs $LD directly, so let us get rid of
2943 # -Wl from whole_archive_flag_spec
2944 wl=
2945
2946 if test -n "$convenience"; then
2947 if test -n "$whole_archive_flag_spec"; then
2948 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2949 else
2950 gentop="$output_objdir/${obj}x"
2951 $show "${rm}r $gentop"
2952 $run ${rm}r "$gentop"
2953 $show "mkdir $gentop"
2954 $run mkdir "$gentop"
2955 status=$?
2956 if test $status -ne 0 && test ! -d "$gentop"; then
2957 exit $status
2958 fi
2959 generated="$generated $gentop"
2960
2961 for xlib in $convenience; do
2962 # Extract the objects.
2963 case $xlib in
2964 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2965 *) xabs=`pwd`"/$xlib" ;;
2966 esac
2967 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2968 xdir="$gentop/$xlib"
2969
2970 $show "${rm}r $xdir"
2971 $run ${rm}r "$xdir"
2972 $show "mkdir $xdir"
2973 $run mkdir "$xdir"
2974 status=$?
2975 if test $status -ne 0 && test ! -d "$xdir"; then
2976 exit $status
2977 fi
2978 $show "(cd $xdir && $AR x $xabs)"
2979 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2980
2981 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2982 done
2983 fi
2984 fi
2985
2986 # Create the old-style object.
2987 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
2988
2989 output="$obj"
2990 eval cmds=\"$reload_cmds\"
2991 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2992 for cmd in $cmds; do
2993 IFS="$save_ifs"
2994 $show "$cmd"
2995 $run eval "$cmd" || exit $?
2996 done
2997 IFS="$save_ifs"
2998
2999 # Exit if we aren't doing a library object file.
3000 if test -z "$libobj"; then
3001 if test -n "$gentop"; then
3002 $show "${rm}r $gentop"
3003 $run ${rm}r $gentop
3004 fi
3005
3006 exit 0
3007 fi
3008
3009 if test "$build_libtool_libs" != yes; then
3010 if test -n "$gentop"; then
3011 $show "${rm}r $gentop"
3012 $run ${rm}r $gentop
3013 fi
3014
3015 # Create an invalid libtool object if no PIC, so that we don't
3016 # accidentally link it into a program.
3017 $show "echo timestamp > $libobj"
3018 $run eval "echo timestamp > $libobj" || exit $?
3019 exit 0
3020 fi
3021
3022 if test -n "$pic_flag" || test "$pic_mode" != default; then
3023 # Only do commands if we really have different PIC objects.
3024 reload_objs="$libobjs $reload_conv_objs"
3025 output="$libobj"
3026 eval cmds=\"$reload_cmds\"
3027 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3028 for cmd in $cmds; do
3029 IFS="$save_ifs"
3030 $show "$cmd"
3031 $run eval "$cmd" || exit $?
3032 done
3033 IFS="$save_ifs"
3034 else
3035 # Just create a symlink.
3036 $show $rm $libobj
3037 $run $rm $libobj
3038 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3039 if test "X$xdir" = "X$libobj"; then
3040 xdir="."
3041 else
3042 xdir="$xdir"
3043 fi
3044 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3045 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3046 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3047 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3048 fi
3049
3050 if test -n "$gentop"; then
3051 $show "${rm}r $gentop"
3052 $run ${rm}r $gentop
3053 fi
3054
3055 exit 0
3056 ;;
3057
3058 prog)
3059 case $host in
3060 *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3061 esac
3062 if test -n "$vinfo"; then
3063 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3064 fi
3065
3066 if test -n "$release"; then
3067 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3068 fi
3069
3070 if test "$preload" = yes; then
3071 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3072 test "$dlopen_self_static" = unknown; then
3073 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3074 fi
3075 fi
3076
3077 case $host in
3078 *-*-rhapsody* | *-*-darwin1.[012])
3079 # On Rhapsody replace the C library is the System framework
3080 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3081 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3082 ;;
3083 esac
3084
3085 compile_command="$compile_command $compile_deplibs"
3086 finalize_command="$finalize_command $finalize_deplibs"
3087
3088 if test -n "$rpath$xrpath"; then
3089 # If the user specified any rpath flags, then add them.
3090 for libdir in $rpath $xrpath; do
3091 # This is the magic to use -rpath.
3092 case "$finalize_rpath " in
3093 *" $libdir "*) ;;
3094 *) finalize_rpath="$finalize_rpath $libdir" ;;
3095 esac
3096 done
3097 fi
3098
3099 # Now hardcode the library paths
3100 rpath=
3101 hardcode_libdirs=
3102 for libdir in $compile_rpath $finalize_rpath; do
3103 if test -n "$hardcode_libdir_flag_spec"; then
3104 if test -n "$hardcode_libdir_separator"; then
3105 if test -z "$hardcode_libdirs"; then
3106 hardcode_libdirs="$libdir"
3107 else
3108 # Just accumulate the unique libdirs.
3109 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3110 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3111 ;;
3112 *)
3113 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3114 ;;
3115 esac
3116 fi
3117 else
3118 eval flag=\"$hardcode_libdir_flag_spec\"
3119 rpath="$rpath $flag"
3120 fi
3121 elif test -n "$runpath_var"; then
3122 case "$perm_rpath " in
3123 *" $libdir "*) ;;
3124 *) perm_rpath="$perm_rpath $libdir" ;;
3125 esac
3126 fi
3127 case $host in
3128 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3129 case :$dllsearchpath: in
3130 *":$libdir:"*) ;;
3131 *) dllsearchpath="$dllsearchpath:$libdir";;
3132 esac
3133 ;;
3134 esac
3135 done
3136 # Substitute the hardcoded libdirs into the rpath.
3137 if test -n "$hardcode_libdir_separator" &&
3138 test -n "$hardcode_libdirs"; then
3139 libdir="$hardcode_libdirs"
3140 eval rpath=\" $hardcode_libdir_flag_spec\"
3141 fi
3142 compile_rpath="$rpath"
3143
3144 rpath=
3145 hardcode_libdirs=
3146 for libdir in $finalize_rpath; do
3147 if test -n "$hardcode_libdir_flag_spec"; then
3148 if test -n "$hardcode_libdir_separator"; then
3149 if test -z "$hardcode_libdirs"; then
3150 hardcode_libdirs="$libdir"
3151 else
3152 # Just accumulate the unique libdirs.
3153 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3154 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3155 ;;
3156 *)
3157 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3158 ;;
3159 esac
3160 fi
3161 else
3162 eval flag=\"$hardcode_libdir_flag_spec\"
3163 rpath="$rpath $flag"
3164 fi
3165 elif test -n "$runpath_var"; then
3166 case "$finalize_perm_rpath " in
3167 *" $libdir "*) ;;
3168 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3169 esac
3170 fi
3171 done
3172 # Substitute the hardcoded libdirs into the rpath.
3173 if test -n "$hardcode_libdir_separator" &&
3174 test -n "$hardcode_libdirs"; then
3175 libdir="$hardcode_libdirs"
3176 eval rpath=\" $hardcode_libdir_flag_spec\"
3177 fi
3178 finalize_rpath="$rpath"
3179
3180 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3181 # Transform all the library objects into standard objects.
3182 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3183 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3184 fi
3185
3186 dlsyms=
3187 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3188 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3189 dlsyms="${outputname}S.c"
3190 else
3191 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3192 fi
3193 fi
3194
3195 if test -n "$dlsyms"; then
3196 case $dlsyms in
3197 "") ;;
3198 *.c)
3199 # Discover the nlist of each of the dlfiles.
3200 nlist="$output_objdir/${outputname}.nm"
3201
3202 $show "$rm $nlist ${nlist}S ${nlist}T"
3203 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3204
3205 # Parse the name list into a source file.
3206 $show "creating $output_objdir/$dlsyms"
3207
3208 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3209 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3210 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3211
3212 #ifdef __cplusplus
3213 extern \"C\" {
3214 #endif
3215
3216 /* Prevent the only kind of declaration conflicts we can make. */
3217 #define lt_preloaded_symbols some_other_symbol
3218
3219 /* External symbol declarations for the compiler. */\
3220 "
3221
3222 if test "$dlself" = yes; then
3223 $show "generating symbol list for \`$output'"
3224
3225 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3226
3227 # Add our own program objects to the symbol list.
3228 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3229 for arg in $progfiles; do
3230 $show "extracting global C symbols from \`$arg'"
3231 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3232 done
3233
3234 if test -n "$exclude_expsyms"; then
3235 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3236 $run eval '$mv "$nlist"T "$nlist"'
3237 fi
3238
3239 if test -n "$export_symbols_regex"; then
3240 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3241 $run eval '$mv "$nlist"T "$nlist"'
3242 fi
3243
3244 # Prepare the list of exported symbols
3245 if test -z "$export_symbols"; then
3246 export_symbols="$output_objdir/$output.exp"
3247 $run $rm $export_symbols
3248 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3249 else
3250 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3251 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3252 $run eval 'mv "$nlist"T "$nlist"'
3253 fi
3254 fi
3255
3256 for arg in $dlprefiles; do
3257 $show "extracting global C symbols from \`$arg'"
3258 name=`echo "$arg" | sed -e 's%^.*/%%'`
3259 $run eval 'echo ": $name " >> "$nlist"'
3260 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3261 done
3262
3263 if test -z "$run"; then
3264 # Make sure we have at least an empty file.
3265 test -f "$nlist" || : > "$nlist"
3266
3267 if test -n "$exclude_expsyms"; then
3268 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3269 $mv "$nlist"T "$nlist"
3270 fi
3271
3272 # Try sorting and uniquifying the output.
3273 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3274 :
3275 else
3276 grep -v "^: " < "$nlist" > "$nlist"S
3277 fi
3278
3279 if test -f "$nlist"S; then
3280 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3281 else
3282 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3283 fi
3284
3285 $echo >> "$output_objdir/$dlsyms" "\
3286
3287 #undef lt_preloaded_symbols
3288
3289 #if defined (__STDC__) && __STDC__
3290 # define lt_ptr_t void *
3291 #else
3292 # define lt_ptr_t char *
3293 # define const
3294 #endif
3295
3296 /* The mapping between symbol names and symbols. */
3297 const struct {
3298 const char *name;
3299 lt_ptr_t address;
3300 }
3301 lt_preloaded_symbols[] =
3302 {\
3303 "
3304
3305 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
3306 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
3307 < "$nlist" >> "$output_objdir/$dlsyms"
3308
3309 $echo >> "$output_objdir/$dlsyms" "\
3310 {0, (lt_ptr_t) 0}
3311 };
3312
3313 /* This works around a problem in FreeBSD linker */
3314 #ifdef FREEBSD_WORKAROUND
3315 static const void *lt_preloaded_setup() {
3316 return lt_preloaded_symbols;
3317 }
3318 #endif
3319
3320 #ifdef __cplusplus
3321 }
3322 #endif\
3323 "
3324 fi
3325
3326 pic_flag_for_symtable=
3327 case $host in
3328 # compiling the symbol table file with pic_flag works around
3329 # a FreeBSD bug that causes programs to crash when -lm is
3330 # linked before any other PIC object. But we must not use
3331 # pic_flag when linking with -static. The problem exists in
3332 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3333 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3334 case "$compile_command " in
3335 *" -static "*) ;;
3336 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3337 esac;;
3338 *-*-hpux*)
3339 case "$compile_command " in
3340 *" -static "*) ;;
3341 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3342 esac
3343 esac
3344
3345 # Now compile the dynamic symbol file.
3346 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3347 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3348
3349 # Clean up the generated files.
3350 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3351 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3352
3353 # Transform the symbol file into the correct name.
3354 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3355 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3356 ;;
3357 *)
3358 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3359 exit 1
3360 ;;
3361 esac
3362 else
3363 # We keep going just in case the user didn't refer to
3364 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3365 # really was required.
3366
3367 # Nullify the symbol file.
3368 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3369 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3370 fi
3371
3372 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3373 # Replace the output file specification.
3374 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3375 link_command="$compile_command$compile_rpath"
3376
3377 # We have no uninstalled library dependencies, so finalize right now.
3378 $show "$link_command"
3379 $run eval "$link_command"
3380 status=$?
3381
3382 # Delete the generated files.
3383 if test -n "$dlsyms"; then
3384 $show "$rm $output_objdir/${outputname}S.${objext}"
3385 $run $rm "$output_objdir/${outputname}S.${objext}"
3386 fi
3387
3388 exit $status
3389 fi
3390
3391 if test -n "$shlibpath_var"; then
3392 # We should set the shlibpath_var
3393 rpath=
3394 for dir in $temp_rpath; do
3395 case $dir in
3396 [\\/]* | [A-Za-z]:[\\/]*)
3397 # Absolute path.
3398 rpath="$rpath$dir:"
3399 ;;
3400 *)
3401 # Relative path: add a thisdir entry.
3402 rpath="$rpath\$thisdir/$dir:"
3403 ;;
3404 esac
3405 done
3406 temp_rpath="$rpath"
3407 fi
3408
3409 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3410 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3411 fi
3412 if test -n "$finalize_shlibpath"; then
3413 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3414 fi
3415
3416 compile_var=
3417 finalize_var=
3418 if test -n "$runpath_var"; then
3419 if test -n "$perm_rpath"; then
3420 # We should set the runpath_var.
3421 rpath=
3422 for dir in $perm_rpath; do
3423 rpath="$rpath$dir:"
3424 done
3425 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3426 fi
3427 if test -n "$finalize_perm_rpath"; then
3428 # We should set the runpath_var.
3429 rpath=
3430 for dir in $finalize_perm_rpath; do
3431 rpath="$rpath$dir:"
3432 done
3433 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3434 fi
3435 fi
3436
3437 if test "$no_install" = yes; then
3438 # We don't need to create a wrapper script.
3439 link_command="$compile_var$compile_command$compile_rpath"
3440 # Replace the output file specification.
3441 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3442 # Delete the old output file.
3443 $run $rm $output
3444 # Link the executable and exit
3445 $show "$link_command"
3446 $run eval "$link_command" || exit $?
3447 exit 0
3448 fi
3449
3450 if test "$hardcode_action" = relink; then
3451 # Fast installation is not supported
3452 link_command="$compile_var$compile_command$compile_rpath"
3453 relink_command="$finalize_var$finalize_command$finalize_rpath"
3454
3455 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3456 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3457 else
3458 if test "$fast_install" != no; then
3459 link_command="$finalize_var$compile_command$finalize_rpath"
3460 if test "$fast_install" = yes; then
3461 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3462 else
3463 # fast_install is set to needless
3464 relink_command=
3465 fi
3466 else
3467 link_command="$compile_var$compile_command$compile_rpath"
3468 relink_command="$finalize_var$finalize_command$finalize_rpath"
3469 fi
3470 fi
3471
3472 # Replace the output file specification.
3473 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3474
3475 # Delete the old output files.
3476 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3477
3478 $show "$link_command"
3479 $run eval "$link_command" || exit $?
3480
3481 # Now create the wrapper script.
3482 $show "creating $output"
3483
3484 # Quote the relink command for shipping.
3485 if test -n "$relink_command"; then
3486 # Preserve any variables that may affect compiler behavior
3487 for var in $variables_saved_for_relink; do
3488 if eval test -z \"\${$var+set}\"; then
3489 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3490 elif eval var_value=\$$var; test -z "$var_value"; then
3491 relink_command="$var=; export $var; $relink_command"
3492 else
3493 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3494 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3495 fi
3496 done
3497 relink_command="cd `pwd`; $relink_command"
3498 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3499 fi
3500
3501 # Quote $echo for shipping.
3502 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3503 case $0 in
3504 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3505 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3506 esac
3507 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3508 else
3509 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3510 fi
3511
3512 # Only actually do things if our run command is non-null.
3513 if test -z "$run"; then
3514 # win32 will think the script is a binary if it has
3515 # a .exe suffix, so we strip it off here.
3516 case $output in
3517 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3518 esac
3519 # test for cygwin because mv fails w/o .exe extensions
3520 case $host in
3521 *cygwin*) exeext=.exe ;;
3522 *) exeext= ;;
3523 esac
3524 $rm $output
3525 trap "$rm $output; exit 1" 1 2 15
3526
3527 $echo > $output "\
3528 #! $SHELL
3529
3530 # $output - temporary wrapper script for $objdir/$outputname
3531 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3532 #
3533 # The $output program cannot be directly executed until all the libtool
3534 # libraries that it depends on are installed.
3535 #
3536 # This wrapper script should never be moved out of the build directory.
3537 # If it is, it will not operate correctly.
3538
3539 # Sed substitution that helps us do robust quoting. It backslashifies
3540 # metacharacters that are still active within double-quoted strings.
3541 Xsed='sed -e 1s/^X//'
3542 sed_quote_subst='$sed_quote_subst'
3543
3544 # The HP-UX ksh and POSIX shell print the target directory to stdout
3545 # if CDPATH is set.
3546 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3547
3548 relink_command=\"$relink_command\"
3549
3550 # This environment variable determines our operation mode.
3551 if test \"\$libtool_install_magic\" = \"$magic\"; then
3552 # install mode needs the following variable:
3553 notinst_deplibs='$notinst_deplibs'
3554 else
3555 # When we are sourced in execute mode, \$file and \$echo are already set.
3556 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3557 echo=\"$qecho\"
3558 file=\"\$0\"
3559 # Make sure echo works.
3560 if test \"X\$1\" = X--no-reexec; then
3561 # Discard the --no-reexec flag, and continue.
3562 shift
3563 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3564 # Yippee, \$echo works!
3565 :
3566 else
3567 # Restart under the correct shell, and then maybe \$echo will work.
3568 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3569 fi
3570 fi\
3571 "
3572 $echo >> $output "\
3573
3574 # Find the directory that this script lives in.
3575 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3576 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3577
3578 # Follow symbolic links until we get to the real thisdir.
3579 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3580 while test -n \"\$file\"; do
3581 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3582
3583 # If there was a directory component, then change thisdir.
3584 if test \"x\$destdir\" != \"x\$file\"; then
3585 case \"\$destdir\" in
3586 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3587 *) thisdir=\"\$thisdir/\$destdir\" ;;
3588 esac
3589 fi
3590
3591 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3592 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
3593 done
3594
3595 # Try to get the absolute directory name.
3596 absdir=\`cd \"\$thisdir\" && pwd\`
3597 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3598 "
3599
3600 if test "$fast_install" = yes; then
3601 echo >> $output "\
3602 program=lt-'$outputname'$exeext
3603 progdir=\"\$thisdir/$objdir\"
3604
3605 if test ! -f \"\$progdir/\$program\" || \\
3606 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
3607 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3608
3609 file=\"\$\$-\$program\"
3610
3611 if test ! -d \"\$progdir\"; then
3612 $mkdir \"\$progdir\"
3613 else
3614 $rm \"\$progdir/\$file\"
3615 fi"
3616
3617 echo >> $output "\
3618
3619 # relink executable if necessary
3620 if test -n \"\$relink_command\"; then
3621 if (eval \$relink_command); then :
3622 else
3623 $rm \"\$progdir/\$file\"
3624 exit 1
3625 fi
3626 fi
3627
3628 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3629 { $rm \"\$progdir/\$program\";
3630 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3631 $rm \"\$progdir/\$file\"
3632 fi"
3633 else
3634 echo >> $output "\
3635 program='$outputname'
3636 progdir=\"\$thisdir/$objdir\"
3637 "
3638 fi
3639
3640 echo >> $output "\
3641
3642 if test -f \"\$progdir/\$program\"; then"
3643
3644 # Export our shlibpath_var if we have one.
3645 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3646 $echo >> $output "\
3647 # Add our own library path to $shlibpath_var
3648 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3649
3650 # Some systems cannot cope with colon-terminated $shlibpath_var
3651 # The second colon is a workaround for a bug in BeOS R4 sed
3652 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3653
3654 export $shlibpath_var
3655 "
3656 fi
3657
3658 # fixup the dll searchpath if we need to.
3659 if test -n "$dllsearchpath"; then
3660 $echo >> $output "\
3661 # Add the dll search path components to the executable PATH
3662 PATH=$dllsearchpath:\$PATH
3663 "
3664 fi
3665
3666 $echo >> $output "\
3667 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3668 # Run the actual program with our arguments.
3669 "
3670 case $host in
3671 # win32 systems need to use the prog path for dll
3672 # lookup to work
3673 *-*-cygwin* | *-*-pw32*)
3674 $echo >> $output "\
3675 exec \$progdir/\$program \${1+\"\$@\"}
3676 "
3677 ;;
3678
3679 # Backslashes separate directories on plain windows
3680 *-*-mingw | *-*-os2*)
3681 $echo >> $output "\
3682 exec \$progdir\\\\\$program \${1+\"\$@\"}
3683 "
3684 ;;
3685
3686 *)
3687 $echo >> $output "\
3688 # Export the path to the program.
3689 PATH=\"\$progdir:\$PATH\"
3690 export PATH
3691
3692 exec \$program \${1+\"\$@\"}
3693 "
3694 ;;
3695 esac
3696 $echo >> $output "\
3697 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
3698 exit 1
3699 fi
3700 else
3701 # The program doesn't exist.
3702 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3703 \$echo \"This script is just a wrapper for \$program.\" 1>&2
3704 echo \"See the $PACKAGE documentation for more information.\" 1>&2
3705 exit 1
3706 fi
3707 fi\
3708 "
3709 chmod +x $output
3710 fi
3711 exit 0
3712 ;;
3713 esac
3714
3715 # See if we need to build an old-fashioned archive.
3716 for oldlib in $oldlibs; do
3717
3718 if test "$build_libtool_libs" = convenience; then
3719 oldobjs="$libobjs_save"
3720 addlibs="$convenience"
3721 build_libtool_libs=no
3722 else
3723 if test "$build_libtool_libs" = module; then
3724 oldobjs="$libobjs_save"
3725 build_libtool_libs=no
3726 else
3727 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3728 fi
3729 addlibs="$old_convenience"
3730 fi
3731
3732 if test -n "$addlibs"; then
3733 gentop="$output_objdir/${outputname}x"
3734 $show "${rm}r $gentop"
3735 $run ${rm}r "$gentop"
3736 $show "mkdir $gentop"
3737 $run mkdir "$gentop"
3738 status=$?
3739 if test $status -ne 0 && test ! -d "$gentop"; then
3740 exit $status
3741 fi
3742 generated="$generated $gentop"
3743
3744 # Add in members from convenience archives.
3745 for xlib in $addlibs; do
3746 # Extract the objects.
3747 case $xlib in
3748 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3749 *) xabs=`pwd`"/$xlib" ;;
3750 esac
3751 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3752 xdir="$gentop/$xlib"
3753
3754 $show "${rm}r $xdir"
3755 $run ${rm}r "$xdir"
3756 $show "mkdir $xdir"
3757 $run mkdir "$xdir"
3758 status=$?
3759 if test $status -ne 0 && test ! -d "$xdir"; then
3760 exit $status
3761 fi
3762 $show "(cd $xdir && $AR x $xabs)"
3763 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3764
3765 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3766 done
3767 fi
3768
3769 # Do each command in the archive commands.
3770 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3771 eval cmds=\"$old_archive_from_new_cmds\"
3772 else
3773 # Ensure that we have .o objects in place in case we decided
3774 # not to build a shared library, and have fallen back to building
3775 # static libs even though --disable-static was passed!
3776 for oldobj in $oldobjs; do
3777 if test ! -f $oldobj; then
3778 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3779 if test "X$xdir" = "X$oldobj"; then
3780 xdir="."
3781 else
3782 xdir="$xdir"
3783 fi
3784 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3785 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3786 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3787 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3788 fi
3789 done
3790
3791 eval cmds=\"$old_archive_cmds\"
3792 fi
3793 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3794 for cmd in $cmds; do
3795 IFS="$save_ifs"
3796 $show "$cmd"
3797 $run eval "$cmd" || exit $?
3798 done
3799 IFS="$save_ifs"
3800 done
3801
3802 if test -n "$generated"; then
3803 $show "${rm}r$generated"
3804 $run ${rm}r$generated
3805 fi
3806
3807 # Now create the libtool archive.
3808 case $output in
3809 *.la)
3810 old_library=
3811 test "$build_old_libs" = yes && old_library="$libname.$libext"
3812 $show "creating $output"
3813
3814 # Preserve any variables that may affect compiler behavior
3815 for var in $variables_saved_for_relink; do
3816 if eval test -z \"\${$var+set}\"; then
3817 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3818 elif eval var_value=\$$var; test -z "$var_value"; then
3819 relink_command="$var=; export $var; $relink_command"
3820 else
3821 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3822 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3823 fi
3824 done
3825 # Quote the link command for shipping.
3826 relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
3827 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3828
3829 # Only create the output if not a dry run.
3830 if test -z "$run"; then
3831 for installed in no yes; do
3832 if test "$installed" = yes; then
3833 if test -z "$install_libdir"; then
3834 break
3835 fi
3836 output="$output_objdir/$outputname"i
3837 # Replace all uninstalled libtool libraries with the installed ones
3838 newdependency_libs=
3839 for deplib in $dependency_libs; do
3840 case $deplib in
3841 *.la)
3842 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
3843 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3844 if test -z "$libdir"; then
3845 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3846 exit 1
3847 fi
3848 newdependency_libs="$newdependency_libs $libdir/$name"
3849 ;;
3850 *) newdependency_libs="$newdependency_libs $deplib" ;;
3851 esac
3852 done
3853 dependency_libs="$newdependency_libs"
3854 newdlfiles=
3855 for lib in $dlfiles; do
3856 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3857 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3858 if test -z "$libdir"; then
3859 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3860 exit 1
3861 fi
3862 newdlfiles="$newdlfiles $libdir/$name"
3863 done
3864 dlfiles="$newdlfiles"
3865 newdlprefiles=
3866 for lib in $dlprefiles; do
3867 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
3868 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
3869 if test -z "$libdir"; then
3870 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3871 exit 1
3872 fi
3873 newdlprefiles="$newdlprefiles $libdir/$name"
3874 done
3875 dlprefiles="$newdlprefiles"
3876 fi
3877 $rm $output
3878 # place dlname in correct position for cygwin
3879 tdlname=$dlname
3880 case $host,$output,$installed,$module,$dlname in
3881 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
3882 esac
3883 $echo > $output "\
3884 # $outputname - a libtool library file
3885 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3886 #
3887 # Please DO NOT delete this file!
3888 # It is necessary for linking the library.
3889
3890 # The name that we can dlopen(3).
3891 dlname='$tdlname'
3892
3893 # Names of this library.
3894 library_names='$library_names'
3895
3896 # The name of the static archive.
3897 old_library='$old_library'
3898
3899 # Libraries that this one depends upon.
3900 dependency_libs='$dependency_libs'
3901
3902 # Version information for $libname.
3903 current=$current
3904 age=$age
3905 revision=$revision
3906
3907 # Is this an already installed library?
3908 installed=$installed
3909
3910 # Files to dlopen/dlpreopen
3911 dlopen='$dlfiles'
3912 dlpreopen='$dlprefiles'
3913
3914 # Directory that this library needs to be installed in:
3915 libdir='$install_libdir'"
3916 if test "$installed" = no && test $need_relink = yes; then
3917 $echo >> $output "\
3918 relink_command=\"$relink_command\""
3919 fi
3920 done
3921 fi
3922
3923 # Do a symbolic link so that the libtool archive can be found in
3924 # LD_LIBRARY_PATH before the program is installed.
3925 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3926 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
3927 ;;
3928 esac
3929 exit 0
3930 ;;
3931
3932 # libtool install mode
3933 install)
3934 modename="$modename: install"
3935
3936 # There may be an optional sh(1) argument at the beginning of
3937 # install_prog (especially on Windows NT).
3938 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
3939 # Allow the use of GNU shtool's install command.
3940 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
3941 # Aesthetically quote it.
3942 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3943 case $arg in
3944 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3945 arg="\"$arg\""
3946 ;;
3947 esac
3948 install_prog="$arg "
3949 arg="$1"
3950 shift
3951 else
3952 install_prog=
3953 arg="$nonopt"
3954 fi
3955
3956 # The real first argument should be the name of the installation program.
3957 # Aesthetically quote it.
3958 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3959 case $arg in
3960 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3961 arg="\"$arg\""
3962 ;;
3963 esac
3964 install_prog="$install_prog$arg"
3965
3966 # We need to accept at least all the BSD install flags.
3967 dest=
3968 files=
3969 opts=
3970 prev=
3971 install_type=
3972 isdir=no
3973 stripme=
3974 for arg
3975 do
3976 if test -n "$dest"; then
3977 files="$files $dest"
3978 dest="$arg"
3979 continue
3980 fi
3981
3982 case $arg in
3983 -d) isdir=yes ;;
3984 -f) prev="-f" ;;
3985 -g) prev="-g" ;;
3986 -m) prev="-m" ;;
3987 -o) prev="-o" ;;
3988 -s)
3989 stripme=" -s"
3990 continue
3991 ;;
3992 -*) ;;
3993
3994 *)
3995 # If the previous option needed an argument, then skip it.
3996 if test -n "$prev"; then
3997 prev=
3998 else
3999 dest="$arg"
4000 continue
4001 fi
4002 ;;
4003 esac
4004
4005 # Aesthetically quote the argument.
4006 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4007 case $arg in
4008 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4009 arg="\"$arg\""
4010 ;;
4011 esac
4012 install_prog="$install_prog $arg"
4013 done
4014
4015 if test -z "$install_prog"; then
4016 $echo "$modename: you must specify an install program" 1>&2
4017 $echo "$help" 1>&2
4018 exit 1
4019 fi
4020
4021 if test -n "$prev"; then
4022 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4023 $echo "$help" 1>&2
4024 exit 1
4025 fi
4026
4027 if test -z "$files"; then
4028 if test -z "$dest"; then
4029 $echo "$modename: no file or destination specified" 1>&2
4030 else
4031 $echo "$modename: you must specify a destination" 1>&2
4032 fi
4033 $echo "$help" 1>&2
4034 exit 1
4035 fi
4036
4037 # Strip any trailing slash from the destination.
4038 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4039
4040 # Check to see that the destination is a directory.
4041 test -d "$dest" && isdir=yes
4042 if test "$isdir" = yes; then
4043 destdir="$dest"
4044 destname=
4045 else
4046 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4047 test "X$destdir" = "X$dest" && destdir=.
4048 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4049
4050 # Not a directory, so check to see that there is only one file specified.
4051 set dummy $files
4052 if test $# -gt 2; then
4053 $echo "$modename: \`$dest' is not a directory" 1>&2
4054 $echo "$help" 1>&2
4055 exit 1
4056 fi
4057 fi
4058 case $destdir in
4059 [\\/]* | [A-Za-z]:[\\/]*) ;;
4060 *)
4061 for file in $files; do
4062 case $file in
4063 *.lo) ;;
4064 *)
4065 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4066 $echo "$help" 1>&2
4067 exit 1
4068 ;;
4069 esac
4070 done
4071 ;;
4072 esac
4073
4074 # This variable tells wrapper scripts just to set variables rather
4075 # than running their programs.
4076 libtool_install_magic="$magic"
4077
4078 staticlibs=
4079 future_libdirs=
4080 current_libdirs=
4081 for file in $files; do
4082
4083 # Do each installation.
4084 case $file in
4085 *.$libext)
4086 # Do the static libraries later.
4087 staticlibs="$staticlibs $file"
4088 ;;
4089
4090 *.la)
4091 # Check to see that this really is a libtool archive.
4092 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4093 else
4094 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4095 $echo "$help" 1>&2
4096 exit 1
4097 fi
4098
4099 library_names=
4100 old_library=
4101 relink_command=
4102 # If there is no directory component, then add one.
4103 case $file in
4104 */* | *\\*) . $file ;;
4105 *) . ./$file ;;
4106 esac
4107
4108 # Add the libdir to current_libdirs if it is the destination.
4109 if test "X$destdir" = "X$libdir"; then
4110 case "$current_libdirs " in
4111 *" $libdir "*) ;;
4112 *) current_libdirs="$current_libdirs $libdir" ;;
4113 esac
4114 else
4115 # Note the libdir as a future libdir.
4116 case "$future_libdirs " in
4117 *" $libdir "*) ;;
4118 *) future_libdirs="$future_libdirs $libdir" ;;
4119 esac
4120 fi
4121
4122 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4123 test "X$dir" = "X$file/" && dir=
4124 dir="$dir$objdir"
4125
4126 if test -n "$relink_command"; then
4127 $echo "$modename: warning: relinking \`$file'" 1>&2
4128 $show "$relink_command"
4129 if $run eval "$relink_command"; then :
4130 else
4131 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4132 continue
4133 fi
4134 fi
4135
4136 # See the names of the shared library.
4137 set dummy $library_names
4138 if test -n "$2"; then
4139 realname="$2"
4140 shift
4141 shift
4142
4143 srcname="$realname"
4144 test -n "$relink_command" && srcname="$realname"T
4145
4146 # Install the shared library and build the symlinks.
4147 $show "$install_prog $dir/$srcname $destdir/$realname"
4148 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4149 if test -n "$stripme" && test -n "$striplib"; then
4150 $show "$striplib $destdir/$realname"
4151 $run eval "$striplib $destdir/$realname" || exit $?
4152 fi
4153
4154 if test $# -gt 0; then
4155 # Delete the old symlinks, and create new ones.
4156 for linkname
4157 do
4158 if test "$linkname" != "$realname"; then
4159 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4160 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4161 fi
4162 done
4163 fi
4164
4165 # Do each command in the postinstall commands.
4166 lib="$destdir/$realname"
4167 eval cmds=\"$postinstall_cmds\"
4168 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4169 for cmd in $cmds; do
4170 IFS="$save_ifs"
4171 $show "$cmd"
4172 $run eval "$cmd" || exit $?
4173 done
4174 IFS="$save_ifs"
4175 fi
4176
4177 # Install the pseudo-library for information purposes.
4178 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4179 instname="$dir/$name"i
4180 $show "$install_prog $instname $destdir/$name"
4181 $run eval "$install_prog $instname $destdir/$name" || exit $?
4182
4183 # Maybe install the static library, too.
4184 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4185 ;;
4186
4187 *.lo)
4188 # Install (i.e. copy) a libtool object.
4189
4190 # Figure out destination file name, if it wasn't already specified.
4191 if test -n "$destname"; then
4192 destfile="$destdir/$destname"
4193 else
4194 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4195 destfile="$destdir/$destfile"
4196 fi
4197
4198 # Deduce the name of the destination old-style object file.
4199 case $destfile in
4200 *.lo)
4201 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4202 ;;
4203 *.$objext)
4204 staticdest="$destfile"
4205 destfile=
4206 ;;
4207 *)
4208 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4209 $echo "$help" 1>&2
4210 exit 1
4211 ;;
4212 esac
4213
4214 # Install the libtool object if requested.
4215 if test -n "$destfile"; then
4216 $show "$install_prog $file $destfile"
4217 $run eval "$install_prog $file $destfile" || exit $?
4218 fi
4219
4220 # Install the old object if enabled.
4221 if test "$build_old_libs" = yes; then
4222 # Deduce the name of the old-style object file.
4223 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4224
4225 $show "$install_prog $staticobj $staticdest"
4226 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4227 fi
4228 exit 0
4229 ;;
4230
4231 *)
4232 # Figure out destination file name, if it wasn't already specified.
4233 if test -n "$destname"; then
4234 destfile="$destdir/$destname"
4235 else
4236 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4237 destfile="$destdir/$destfile"
4238 fi
4239
4240 # Do a test to see if this is really a libtool program.
4241 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4242 notinst_deplibs=
4243 relink_command=
4244
4245 # If there is no directory component, then add one.
4246 case $file in
4247 */* | *\\*) . $file ;;
4248 *) . ./$file ;;
4249 esac
4250
4251 # Check the variables that should have been set.
4252 if test -z "$notinst_deplibs"; then
4253 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4254 exit 1
4255 fi
4256
4257 finalize=yes
4258 for lib in $notinst_deplibs; do
4259 # Check to see that each library is installed.
4260 libdir=
4261 if test -f "$lib"; then
4262 # If there is no directory component, then add one.
4263 case $lib in
4264 */* | *\\*) . $lib ;;
4265 *) . ./$lib ;;
4266 esac
4267 fi
4268 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4269 if test -n "$libdir" && test ! -f "$libfile"; then
4270 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4271 finalize=no
4272 fi
4273 done
4274
4275 relink_command=
4276 # If there is no directory component, then add one.
4277 case $file in
4278 */* | *\\*) . $file ;;
4279 *) . ./$file ;;
4280 esac
4281
4282 outputname=
4283 if test "$fast_install" = no && test -n "$relink_command"; then
4284 if test "$finalize" = yes && test -z "$run"; then
4285 tmpdir="/tmp"
4286 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4287 tmpdir="$tmpdir/libtool-$$"
4288 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4289 else
4290 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4291 continue
4292 fi
4293 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4294 outputname="$tmpdir/$file"
4295 # Replace the output file specification.
4296 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4297
4298 $show "$relink_command"
4299 if $run eval "$relink_command"; then :
4300 else
4301 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4302 ${rm}r "$tmpdir"
4303 continue
4304 fi
4305 file="$outputname"
4306 else
4307 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4308 fi
4309 else
4310 # Install the binary that we compiled earlier.
4311 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4312 fi
4313 fi
4314
4315 # remove .exe since cygwin /usr/bin/install will append another
4316 # one anyways
4317 case $install_prog,$host in
4318 /usr/bin/install*,*cygwin*)
4319 case $file:$destfile in
4320 *.exe:*.exe)
4321 # this is ok
4322 ;;
4323 *.exe:*)
4324 destfile=$destfile.exe
4325 ;;
4326 *:*.exe)
4327 destfile=`echo $destfile | sed -e 's,.exe$,,'`
4328 ;;
4329 esac
4330 ;;
4331 esac
4332 $show "$install_prog$stripme $file $destfile"
4333 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4334 test -n "$outputname" && ${rm}r "$tmpdir"
4335 ;;
4336 esac
4337 done
4338
4339 for file in $staticlibs; do
4340 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4341
4342 # Set up the ranlib parameters.
4343 oldlib="$destdir/$name"
4344
4345 $show "$install_prog $file $oldlib"
4346 $run eval "$install_prog \$file \$oldlib" || exit $?
4347
4348 if test -n "$stripme" && test -n "$striplib"; then
4349 $show "$old_striplib $oldlib"
4350 $run eval "$old_striplib $oldlib" || exit $?
4351 fi
4352
4353 # Do each command in the postinstall commands.
4354 eval cmds=\"$old_postinstall_cmds\"
4355 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4356 for cmd in $cmds; do
4357 IFS="$save_ifs"
4358 $show "$cmd"
4359 $run eval "$cmd" || exit $?
4360 done
4361 IFS="$save_ifs"
4362 done
4363
4364 if test -n "$future_libdirs"; then
4365 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4366 fi
4367
4368 if test -n "$current_libdirs"; then
4369 # Maybe just do a dry run.
4370 test -n "$run" && current_libdirs=" -n$current_libdirs"
4371 exec $SHELL $0 --finish$current_libdirs
4372 exit 1
4373 fi
4374
4375 exit 0
4376 ;;
4377
4378 # libtool finish mode
4379 finish)
4380 modename="$modename: finish"
4381 libdirs="$nonopt"
4382 admincmds=
4383
4384 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4385 for dir
4386 do
4387 libdirs="$libdirs $dir"
4388 done
4389
4390 for libdir in $libdirs; do
4391 if test -n "$finish_cmds"; then
4392 # Do each command in the finish commands.
4393 eval cmds=\"$finish_cmds\"
4394 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4395 for cmd in $cmds; do
4396 IFS="$save_ifs"
4397 $show "$cmd"
4398 $run eval "$cmd" || admincmds="$admincmds
4399 $cmd"
4400 done
4401 IFS="$save_ifs"
4402 fi
4403 if test -n "$finish_eval"; then
4404 # Do the single finish_eval.
4405 eval cmds=\"$finish_eval\"
4406 $run eval "$cmds" || admincmds="$admincmds
4407 $cmds"
4408 fi
4409 done
4410 fi
4411
4412 # Exit here if they wanted silent mode.
4413 test "$show" = ":" && exit 0
4414
4415 echo "----------------------------------------------------------------------"
4416 echo "Libraries have been installed in:"
4417 for libdir in $libdirs; do
4418 echo " $libdir"
4419 done
4420 echo
4421 echo "If you ever happen to want to link against installed libraries"
4422 echo "in a given directory, LIBDIR, you must either use libtool, and"
4423 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4424 echo "flag during linking and do at least one of the following:"
4425 if test -n "$shlibpath_var"; then
4426 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4427 echo " during execution"
4428 fi
4429 if test -n "$runpath_var"; then
4430 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4431 echo " during linking"
4432 fi
4433 if test -n "$hardcode_libdir_flag_spec"; then
4434 libdir=LIBDIR
4435 eval flag=\"$hardcode_libdir_flag_spec\"
4436
4437 echo " - use the \`$flag' linker flag"
4438 fi
4439 if test -n "$admincmds"; then
4440 echo " - have your system administrator run these commands:$admincmds"
4441 fi
4442 if test -f /etc/ld.so.conf; then
4443 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4444 fi
4445 echo
4446 echo "See any operating system documentation about shared libraries for"
4447 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4448 echo "----------------------------------------------------------------------"
4449 exit 0
4450 ;;
4451
4452 # libtool execute mode
4453 execute)
4454 modename="$modename: execute"
4455
4456 # The first argument is the command name.
4457 cmd="$nonopt"
4458 if test -z "$cmd"; then
4459 $echo "$modename: you must specify a COMMAND" 1>&2
4460 $echo "$help"
4461 exit 1
4462 fi
4463
4464 # Handle -dlopen flags immediately.
4465 for file in $execute_dlfiles; do
4466 if test ! -f "$file"; then
4467 $echo "$modename: \`$file' is not a file" 1>&2
4468 $echo "$help" 1>&2
4469 exit 1
4470 fi
4471
4472 dir=
4473 case $file in
4474 *.la)
4475 # Check to see that this really is a libtool archive.
4476 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4477 else
4478 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4479 $echo "$help" 1>&2
4480 exit 1
4481 fi
4482
4483 # Read the libtool library.
4484 dlname=
4485 library_names=
4486
4487 # If there is no directory component, then add one.
4488 case $file in
4489 */* | *\\*) . $file ;;
4490 *) . ./$file ;;
4491 esac
4492
4493 # Skip this library if it cannot be dlopened.
4494 if test -z "$dlname"; then
4495 # Warn if it was a shared library.
4496 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4497 continue
4498 fi
4499
4500 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4501 test "X$dir" = "X$file" && dir=.
4502
4503 if test -f "$dir/$objdir/$dlname"; then
4504 dir="$dir/$objdir"
4505 else
4506 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4507 exit 1
4508 fi
4509 ;;
4510
4511 *.lo)
4512 # Just add the directory containing the .lo file.
4513 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4514 test "X$dir" = "X$file" && dir=.
4515 ;;
4516
4517 *)
4518 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4519 continue
4520 ;;
4521 esac
4522
4523 # Get the absolute pathname.
4524 absdir=`cd "$dir" && pwd`
4525 test -n "$absdir" && dir="$absdir"
4526
4527 # Now add the directory to shlibpath_var.
4528 if eval "test -z \"\$$shlibpath_var\""; then
4529 eval "$shlibpath_var=\"\$dir\""
4530 else
4531 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4532 fi
4533 done
4534
4535 # This variable tells wrapper scripts just to set shlibpath_var
4536 # rather than running their programs.
4537 libtool_execute_magic="$magic"
4538
4539 # Check if any of the arguments is a wrapper script.
4540 args=
4541 for file
4542 do
4543 case $file in
4544 -*) ;;
4545 *)
4546 # Do a test to see if this is really a libtool program.
4547 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4548 # If there is no directory component, then add one.
4549 case $file in
4550 */* | *\\*) . $file ;;
4551 *) . ./$file ;;
4552 esac
4553
4554 # Transform arg to wrapped name.
4555 file="$progdir/$program"
4556 fi
4557 ;;
4558 esac
4559 # Quote arguments (to preserve shell metacharacters).
4560 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4561 args="$args \"$file\""
4562 done
4563
4564 if test -z "$run"; then
4565 if test -n "$shlibpath_var"; then
4566 # Export the shlibpath_var.
4567 eval "export $shlibpath_var"
4568 fi
4569
4570 # Restore saved enviroment variables
4571 if test "${save_LC_ALL+set}" = set; then
4572 LC_ALL="$save_LC_ALL"; export LC_ALL
4573 fi
4574 if test "${save_LANG+set}" = set; then
4575 LANG="$save_LANG"; export LANG
4576 fi
4577
4578 # Now actually exec the command.
4579 eval "exec \$cmd$args"
4580
4581 $echo "$modename: cannot exec \$cmd$args"
4582 exit 1
4583 else
4584 # Display what would be done.
4585 if test -n "$shlibpath_var"; then
4586 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4587 $echo "export $shlibpath_var"
4588 fi
4589 $echo "$cmd$args"
4590 exit 0
4591 fi
4592 ;;
4593
4594 # libtool clean and uninstall mode
4595 clean | uninstall)
4596 modename="$modename: $mode"
4597 rm="$nonopt"
4598 files=
4599 rmforce=
4600 exit_status=0
4601
4602 # This variable tells wrapper scripts just to set variables rather
4603 # than running their programs.
4604 libtool_install_magic="$magic"
4605
4606 for arg
4607 do
4608 case $arg in
4609 -f) rm="$rm $arg"; rmforce=yes ;;
4610 -*) rm="$rm $arg" ;;
4611 *) files="$files $arg" ;;
4612 esac
4613 done
4614
4615 if test -z "$rm"; then
4616 $echo "$modename: you must specify an RM program" 1>&2
4617 $echo "$help" 1>&2
4618 exit 1
4619 fi
4620
4621 rmdirs=
4622
4623 for file in $files; do
4624 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4625 if test "X$dir" = "X$file"; then
4626 dir=.
4627 objdir="$objdir"
4628 else
4629 objdir="$dir/$objdir"
4630 fi
4631 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4632 test $mode = uninstall && objdir="$dir"
4633
4634 # Remember objdir for removal later, being careful to avoid duplicates
4635 if test $mode = clean; then
4636 case " $rmdirs " in
4637 *" $objdir "*) ;;
4638 *) rmdirs="$rmdirs $objdir" ;;
4639 esac
4640 fi
4641
4642 # Don't error if the file doesn't exist and rm -f was used.
4643 if (test -L "$file") >/dev/null 2>&1 \
4644 || (test -h "$file") >/dev/null 2>&1 \
4645 || test -f "$file"; then
4646 :
4647 elif test -d "$file"; then
4648 exit_status=1
4649 continue
4650 elif test "$rmforce" = yes; then
4651 continue
4652 fi
4653
4654 rmfiles="$file"
4655
4656 case $name in
4657 *.la)
4658 # Possibly a libtool archive, so verify it.
4659 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4660 . $dir/$name
4661
4662 # Delete the libtool libraries and symlinks.
4663 for n in $library_names; do
4664 rmfiles="$rmfiles $objdir/$n"
4665 done
4666 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4667 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4668
4669 if test $mode = uninstall; then
4670 if test -n "$library_names"; then
4671 # Do each command in the postuninstall commands.
4672 eval cmds=\"$postuninstall_cmds\"
4673 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4674 for cmd in $cmds; do
4675 IFS="$save_ifs"
4676 $show "$cmd"
4677 $run eval "$cmd"
4678 if test $? != 0 && test "$rmforce" != yes; then
4679 exit_status=1
4680 fi
4681 done
4682 IFS="$save_ifs"
4683 fi
4684
4685 if test -n "$old_library"; then
4686 # Do each command in the old_postuninstall commands.
4687 eval cmds=\"$old_postuninstall_cmds\"
4688 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
4689 for cmd in $cmds; do
4690 IFS="$save_ifs"
4691 $show "$cmd"
4692 $run eval "$cmd"
4693 if test $? != 0 && test "$rmforce" != yes; then
4694 exit_status=1
4695 fi
4696 done
4697 IFS="$save_ifs"
4698 fi
4699 # FIXME: should reinstall the best remaining shared library.
4700 fi
4701 fi
4702 ;;
4703
4704 *.lo)
4705 if test "$build_old_libs" = yes; then
4706 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
4707 rmfiles="$rmfiles $dir/$oldobj"
4708 fi
4709 ;;
4710
4711 *)
4712 # Do a test to see if this is a libtool program.
4713 if test $mode = clean &&
4714 (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4715 relink_command=
4716 . $dir/$file
4717
4718 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
4719 if test "$fast_install" = yes && test -n "$relink_command"; then
4720 rmfiles="$rmfiles $objdir/lt-$name"
4721 fi
4722 fi
4723 ;;
4724 esac
4725 $show "$rm $rmfiles"
4726 $run $rm $rmfiles || exit_status=1
4727 done
4728
4729 # Try to remove the ${objdir}s in the directories where we deleted files
4730 for dir in $rmdirs; do
4731 if test -d "$dir"; then
4732 $show "rmdir $dir"
4733 $run rmdir $dir >/dev/null 2>&1
4734 fi
4735 done
4736
4737 exit $exit_status
4738 ;;
4739
4740 "")
4741 $echo "$modename: you must specify a MODE" 1>&2
4742 $echo "$generic_help" 1>&2
4743 exit 1
4744 ;;
4745 esac
4746
4747 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4748 $echo "$generic_help" 1>&2
4749 exit 1
4750 fi # test -z "$show_help"
4751
4752 # We need to display help for each of the modes.
4753 case $mode in
4754 "") $echo \
4755 "Usage: $modename [OPTION]... [MODE-ARG]...
4756
4757 Provide generalized library-building support services.
4758
4759 --config show all configuration variables
4760 --debug enable verbose shell tracing
4761 -n, --dry-run display commands without modifying any files
4762 --features display basic configuration information and exit
4763 --finish same as \`--mode=finish'
4764 --help display this help message and exit
4765 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
4766 --quiet same as \`--silent'
4767 --silent don't print informational messages
4768 --version print version information
4769
4770 MODE must be one of the following:
4771
4772 clean remove files from the build directory
4773 compile compile a source file into a libtool object
4774 execute automatically set library path, then run a program
4775 finish complete the installation of libtool libraries
4776 install install libraries or executables
4777 link create a library or an executable
4778 uninstall remove libraries from an installed directory
4779
4780 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
4781 a more detailed description of MODE."
4782 exit 0
4783 ;;
4784
4785 clean)
4786 $echo \
4787 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
4788
4789 Remove files from the build directory.
4790
4791 RM is the name of the program to use to delete files associated with each FILE
4792 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4793 to RM.
4794
4795 If FILE is a libtool library, object or program, all the files associated
4796 with it are deleted. Otherwise, only FILE itself is deleted using RM."
4797 ;;
4798
4799 compile)
4800 $echo \
4801 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
4802
4803 Compile a source file into a libtool library object.
4804
4805 This mode accepts the following additional options:
4806
4807 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
4808 -prefer-pic try to building PIC objects only
4809 -prefer-non-pic try to building non-PIC objects only
4810 -static always build a \`.o' file suitable for static linking
4811
4812 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
4813 from the given SOURCEFILE.
4814
4815 The output file name is determined by removing the directory component from
4816 SOURCEFILE, then substituting the C source code suffix \`.c' with the
4817 library object suffix, \`.lo'."
4818 ;;
4819
4820 execute)
4821 $echo \
4822 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
4823
4824 Automatically set library path, then run a program.
4825
4826 This mode accepts the following additional options:
4827
4828 -dlopen FILE add the directory containing FILE to the library path
4829
4830 This mode sets the library path environment variable according to \`-dlopen'
4831 flags.
4832
4833 If any of the ARGS are libtool executable wrappers, then they are translated
4834 into their corresponding uninstalled binary, and any of their required library
4835 directories are added to the library path.
4836
4837 Then, COMMAND is executed, with ARGS as arguments."
4838 ;;
4839
4840 finish)
4841 $echo \
4842 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
4843
4844 Complete the installation of libtool libraries.
4845
4846 Each LIBDIR is a directory that contains libtool libraries.
4847
4848 The commands that this mode executes may require superuser privileges. Use
4849 the \`--dry-run' option if you just want to see what would be executed."
4850 ;;
4851
4852 install)
4853 $echo \
4854 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
4855
4856 Install executables or libraries.
4857
4858 INSTALL-COMMAND is the installation command. The first component should be
4859 either the \`install' or \`cp' program.
4860
4861 The rest of the components are interpreted as arguments to that command (only
4862 BSD-compatible install options are recognized)."
4863 ;;
4864
4865 link)
4866 $echo \
4867 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
4868
4869 Link object files or libraries together to form another library, or to
4870 create an executable program.
4871
4872 LINK-COMMAND is a command using the C compiler that you would use to create
4873 a program from several object files.
4874
4875 The following components of LINK-COMMAND are treated specially:
4876
4877 -all-static do not do any dynamic linking at all
4878 -avoid-version do not add a version suffix if possible
4879 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
4880 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
4881 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
4882 -export-symbols SYMFILE
4883 try to export only the symbols listed in SYMFILE
4884 -export-symbols-regex REGEX
4885 try to export only the symbols matching REGEX
4886 -LLIBDIR search LIBDIR for required installed libraries
4887 -lNAME OUTPUT-FILE requires the installed library libNAME
4888 -module build a library that can dlopened
4889 -no-fast-install disable the fast-install mode
4890 -no-install link a not-installable executable
4891 -no-undefined declare that a library does not refer to external symbols
4892 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4893 -release RELEASE specify package release information
4894 -rpath LIBDIR the created library will eventually be installed in LIBDIR
4895 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4896 -static do not do any dynamic linking of libtool libraries
4897 -version-info CURRENT[:REVISION[:AGE]]
4898 specify library version info [each variable defaults to 0]
4899
4900 All other options (arguments beginning with \`-') are ignored.
4901
4902 Every other argument is treated as a filename. Files ending in \`.la' are
4903 treated as uninstalled libtool libraries, other files are standard or library
4904 object files.
4905
4906 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4907 only library objects (\`.lo' files) may be specified, and \`-rpath' is
4908 required, except when creating a convenience library.
4909
4910 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4911 using \`ar' and \`ranlib', or on Windows using \`lib'.
4912
4913 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4914 is created, otherwise an executable program is created."
4915 ;;
4916
4917 uninstall)
4918 $echo \
4919 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4920
4921 Remove libraries from an installation directory.
4922
4923 RM is the name of the program to use to delete files associated with each FILE
4924 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4925 to RM.
4926
4927 If FILE is a libtool library, all the files associated with it are deleted.
4928 Otherwise, only FILE itself is deleted using RM."
4929 ;;
4930
4931 *)
4932 $echo "$modename: invalid operation mode \`$mode'" 1>&2
4933 $echo "$help" 1>&2
4934 exit 1
4935 ;;
4936 esac
4937
4938 echo
4939 $echo "Try \`$modename --help' for more information about other modes."
4940
4941 exit 0
4942
4943 # Local Variables:
4944 # mode:shell-script
4945 # sh-indentation:2
4946 # End:

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12