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