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