tUpdate libtool support scripts to most recent version. - vaccinewars - be a do… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 9c6396a30753acd7b3af07108f173bfc0378d681 | |
parent 7923b1f20f82c8133b0940d350ccc8979d5305ca | |
Author: Ben Webb <[email protected]> | |
Date: Fri, 30 Dec 2005 02:27:26 +0000 | |
Update libtool support scripts to most recent version. | |
Diffstat: | |
M config.guess | 140 ++++++++++++++++-------------… | |
M config.sub | 67 ++++++++++++++++++++++-------… | |
M ltmain.sh | 3312 ++++++++++++++++++++++-------… | |
3 files changed, 2465 insertions(+), 1054 deletions(-) | |
--- | |
diff --git a/config.guess b/config.guess | |
t@@ -3,7 +3,7 @@ | |
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | |
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. | |
-timestamp='2003-01-10' | |
+timestamp='2003-06-17' | |
# This file is free software; you can redistribute it and/or modify it | |
# under the terms of the GNU General Public License as published by | |
t@@ -106,6 +106,7 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/nul… | |
: ${TMPDIR=/tmp} ; | |
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n… | |
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) … | |
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating i… | |
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }… | |
dummy=$tmp/dummy ; | |
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; | |
t@@ -135,6 +136,13 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=u… | |
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown | |
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown | |
+## for Red Hat Linux | |
+if test -f /etc/redhat-release ; then | |
+ VENDOR=redhat ; | |
+else | |
+ VENDOR= ; | |
+fi | |
+ | |
# Note: order is significant - the case branches are not exclusive. | |
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | |
t@@ -235,74 +243,56 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:… | |
*:OpenBSD:*:*) | |
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} | |
exit 0 ;; | |
- *:MicroBSD:*:*) | |
- echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE} | |
- exit 0 ;; | |
alpha:OSF1:*:*) | |
if test $UNAME_RELEASE = "V4.0"; then | |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` | |
fi | |
+ # According to Compaq, /usr/sbin/psrinfo has been available on | |
+ # OSF/1 and Tru64 systems produced since 1995. I hope that | |
+ # covers most systems running today. This code pipes the CPU | |
+ # types through head -n 1, so we only detect the type of CPU 0. | |
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\… | |
+ case "$ALPHA_CPU_TYPE" in | |
+ "EV4 (21064)") | |
+ UNAME_MACHINE="alpha" ;; | |
+ "EV4.5 (21064)") | |
+ UNAME_MACHINE="alpha" ;; | |
+ "LCA4 (21066/21068)") | |
+ UNAME_MACHINE="alpha" ;; | |
+ "EV5 (21164)") | |
+ UNAME_MACHINE="alphaev5" ;; | |
+ "EV5.6 (21164A)") | |
+ UNAME_MACHINE="alphaev56" ;; | |
+ "EV5.6 (21164PC)") | |
+ UNAME_MACHINE="alphapca56" ;; | |
+ "EV5.7 (21164PC)") | |
+ UNAME_MACHINE="alphapca57" ;; | |
+ "EV6 (21264)") | |
+ UNAME_MACHINE="alphaev6" ;; | |
+ "EV6.7 (21264A)") | |
+ UNAME_MACHINE="alphaev67" ;; | |
+ "EV6.8CB (21264C)") | |
+ UNAME_MACHINE="alphaev68" ;; | |
+ "EV6.8AL (21264B)") | |
+ UNAME_MACHINE="alphaev68" ;; | |
+ "EV6.8CX (21264D)") | |
+ UNAME_MACHINE="alphaev68" ;; | |
+ "EV6.9A (21264/EV69A)") | |
+ UNAME_MACHINE="alphaev69" ;; | |
+ "EV7 (21364)") | |
+ UNAME_MACHINE="alphaev7" ;; | |
+ "EV7.9 (21364A)") | |
+ UNAME_MACHINE="alphaev79" ;; | |
+ esac | |
# A Vn.n version is a released version. | |
# A Tn.n version is a released field test version. | |
# A Xn.n version is an unreleased experimental baselevel. | |
# 1.2 uses "1.2" for uname -r. | |
- eval $set_cc_for_build | |
- cat <<EOF >$dummy.s | |
- .data | |
-\$Lformat: | |
- .byte 37,100,45,37,120,10,0 # "%d-%x\n" | |
- | |
- .text | |
- .globl main | |
- .align 4 | |
- .ent main | |
-main: | |
- .frame \$30,16,\$26,0 | |
- ldgp \$29,0(\$27) | |
- .prologue 1 | |
- .long 0x47e03d80 # implver \$0 | |
- lda \$2,-1 | |
- .long 0x47e20c21 # amask \$2,\$1 | |
- lda \$16,\$Lformat | |
- mov \$0,\$17 | |
- not \$1,\$18 | |
- jsr \$26,printf | |
- ldgp \$29,0(\$26) | |
- mov 0,\$16 | |
- jsr \$26,exit | |
- .end main | |
-EOF | |
- $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null | |
- if test "$?" = 0 ; then | |
- case `$dummy` in | |
- 0-0) | |
- UNAME_MACHINE="alpha" | |
- ;; | |
- 1-0) | |
- UNAME_MACHINE="alphaev5" | |
- ;; | |
- 1-1) | |
- UNAME_MACHINE="alphaev56" | |
- ;; | |
- 1-101) | |
- UNAME_MACHINE="alphapca56" | |
- ;; | |
- 2-303) | |
- UNAME_MACHINE="alphaev6" | |
- ;; | |
- 2-307) | |
- UNAME_MACHINE="alphaev67" | |
- ;; | |
- 2-1307) | |
- UNAME_MACHINE="alphaev68" | |
- ;; | |
- 3-1307) | |
- UNAME_MACHINE="alphaev7" | |
- ;; | |
- esac | |
- fi | |
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]… | |
exit 0 ;; | |
+ Alpha*:OpenVMS:*:*) | |
+ echo alpha-hp-vms | |
+ exit 0 ;; | |
Alpha\ *:Windows_NT*:*) | |
# How do we know it's Interix rather than the generic POSIX subsystem? | |
# Should we change UNAME_MACHINE based on the output of uname instead | |
t@@ -341,6 +331,9 @@ EOF | |
NILE*:*:*:dcosx) | |
echo pyramid-pyramid-svr4 | |
exit 0 ;; | |
+ DRS?6000:unix:4.0:6*) | |
+ echo sparc-icl-nx6 | |
+ exit 0 ;; | |
DRS?6000:UNIX_SV:4.2*:7*) | |
case `/usr/bin/uname -p` in | |
sparc) echo sparc-icl-nx7 && exit 0 ;; | |
t@@ -765,7 +758,7 @@ EOF | |
*:BSD/OS:*:*) | |
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} | |
exit 0 ;; | |
- *:FreeBSD:*:*) | |
+ *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) | |
# Determine whether the default compiler uses glibc. | |
eval $set_cc_for_build | |
sed 's/^ //' << EOF >$dummy.c | |
t@@ -788,8 +781,8 @@ EOF | |
i*:PW*:*) | |
echo ${UNAME_MACHINE}-pc-pw32 | |
exit 0 ;; | |
- x86:Interix*:3*) | |
- echo i586-pc-interix3 | |
+ x86:Interix*:[34]*) | |
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' | |
exit 0 ;; | |
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) | |
echo i${UNAME_MACHINE}-pc-mks | |
t@@ -818,8 +811,11 @@ EOF | |
arm*:Linux:*:*) | |
echo ${UNAME_MACHINE}-unknown-linux-gnu | |
exit 0 ;; | |
+ cris:Linux:*:*) | |
+ echo cris-axis-linux-gnu | |
+ exit 0 ;; | |
ia64:Linux:*:*) | |
- echo ${UNAME_MACHINE}-unknown-linux-gnu | |
+ echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu | |
exit 0 ;; | |
m68*:Linux:*:*) | |
echo ${UNAME_MACHINE}-unknown-linux-gnu | |
t@@ -863,10 +859,10 @@ EOF | |
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 | |
;; | |
ppc:Linux:*:*) | |
- echo powerpc-unknown-linux-gnu | |
+ echo powerpc-${VENDOR:-unknown}-linux-gnu | |
exit 0 ;; | |
ppc64:Linux:*:*) | |
- echo powerpc64-unknown-linux-gnu | |
+ echo powerpc64-${VENDOR:-unknown}-linux-gnu | |
exit 0 ;; | |
alpha:Linux:*:*) | |
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in | |
t@@ -894,7 +890,10 @@ EOF | |
echo hppa64-unknown-linux-gnu | |
exit 0 ;; | |
s390:Linux:*:* | s390x:Linux:*:*) | |
- echo ${UNAME_MACHINE}-ibm-linux | |
+ echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu | |
+ exit 0 ;; | |
+ sh64*:Linux:*:*) | |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu | |
exit 0 ;; | |
sh*:Linux:*:*) | |
echo ${UNAME_MACHINE}-unknown-linux-gnu | |
t@@ -903,7 +902,7 @@ EOF | |
echo ${UNAME_MACHINE}-unknown-linux-gnu | |
exit 0 ;; | |
x86_64:Linux:*:*) | |
- echo x86_64-unknown-linux-gnu | |
+ echo x86_64-${VENDOR:-unknown}-linux-gnu | |
exit 0 ;; | |
i*86:Linux:*:*) | |
# The BFD linker knows what the default object file format is, so | |
t@@ -955,7 +954,7 @@ EOF | |
#endif | |
EOF | |
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` | |
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && ex… | |
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${L… | |
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 | |
;; | |
i*86:DYNIX/ptx:4*:*) | |
t@@ -1054,7 +1053,7 @@ EOF | |
exit 0 ;; | |
M68*:*:R3V[567]*:*) | |
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; | |
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*… | |
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*… | |
OS_REL='' | |
test -r /etc/.relid \ | |
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` | |
t@@ -1210,6 +1209,9 @@ EOF | |
*:ITS:*:*) | |
echo pdp10-unknown-its | |
exit 0 ;; | |
+ SEI:*:*:SEIUX) | |
+ echo mips-sei-seiux${UNAME_RELEASE} | |
+ exit 0 ;; | |
esac | |
#echo '(No uname command or uname output not recognized.)' 1>&2 | |
diff --git a/config.sub b/config.sub | |
t@@ -3,7 +3,7 @@ | |
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | |
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. | |
-timestamp='2003-01-03' | |
+timestamp='2003-06-18' | |
# This file is (in principle) common to ALL GNU software. | |
# The presence of a machine in this file suggests that SOME GNU software | |
t@@ -229,7 +229,7 @@ case $basic_machine in | |
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | |
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca… | |
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | |
- | clipper \ | |
+ | c4x | clipper \ | |
| d10v | d30v | dlx | dsp16xx \ | |
| fr30 | frv \ | |
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | |
t@@ -258,11 +258,11 @@ case $basic_machine in | |
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | |
| pyramid \ | |
| s390 | s390x \ | |
- | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | |
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3e… | |
| sh64 | sh64le \ | |
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv… | |
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv… | |
| strongarm \ | |
- | tahoe | thumb | tic80 | tron \ | |
+ | tahoe | thumb | tic4x | tic80 | tron \ | |
| v850 | v850e \ | |
| we32k \ | |
| x86 | xscale | xstormy16 | xtensa \ | |
t@@ -297,7 +297,7 @@ case $basic_machine in | |
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | |
| avr-* \ | |
| bs2000-* \ | |
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ | |
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | |
| clipper-* | cydra-* \ | |
| d10v-* | d30v-* | dlx-* \ | |
| elxsi-* \ | |
t@@ -331,11 +331,13 @@ case $basic_machine in | |
| pyramid-* \ | |
| romp-* | rs6000-* \ | |
| s390-* | s390x-* \ | |
- | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ | |
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | |
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | |
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | |
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | |
- | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ | |
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | |
+ | tahoe-* | thumb-* \ | |
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | |
+ | tron-* \ | |
| v850-* | v850e-* | vax-* \ | |
| we32k-* \ | |
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | |
t@@ -373,6 +375,9 @@ case $basic_machine in | |
basic_machine=a29k-none | |
os=-bsd | |
;; | |
+ amd64) | |
+ basic_machine=x86_64-pc | |
+ ;; | |
amdahl) | |
basic_machine=580-amdahl | |
os=-sysv | |
t@@ -768,18 +773,24 @@ case $basic_machine in | |
pentiumpro | p6 | 6x86 | athlon | athlon_*) | |
basic_machine=i686-pc | |
;; | |
- pentiumii | pentium2) | |
+ pentiumii | pentium2 | pentiumiii | pentium3) | |
basic_machine=i686-pc | |
;; | |
+ pentium4) | |
+ basic_machine=i786-pc | |
+ ;; | |
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) | |
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` | |
;; | |
pentiumpro-* | p6-* | 6x86-* | athlon-*) | |
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | |
;; | |
- pentiumii-* | pentium2-*) | |
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) | |
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | |
;; | |
+ pentium4-*) | |
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` | |
+ ;; | |
pn) | |
basic_machine=pn-gould | |
;; | |
t@@ -832,6 +843,10 @@ case $basic_machine in | |
sb1el) | |
basic_machine=mipsisa64sb1el-unknown | |
;; | |
+ sei) | |
+ basic_machine=mips-sei | |
+ os=-seiux | |
+ ;; | |
sequent) | |
basic_machine=i386-sequent | |
;; | |
t@@ -839,6 +854,9 @@ case $basic_machine in | |
basic_machine=sh-hitachi | |
os=-hms | |
;; | |
+ sh64) | |
+ basic_machine=sh64-unknown | |
+ ;; | |
sparclite-wrs | simso-wrs) | |
basic_machine=sparclite-wrs | |
os=-vxworks | |
t@@ -913,14 +931,18 @@ case $basic_machine in | |
basic_machine=t90-cray | |
os=-unicos | |
;; | |
- tic4x | c4x*) | |
- basic_machine=tic4x-unknown | |
- os=-coff | |
- ;; | |
tic54x | c54x*) | |
basic_machine=tic54x-unknown | |
os=-coff | |
;; | |
+ tic55x | c55x*) | |
+ basic_machine=tic55x-unknown | |
+ os=-coff | |
+ ;; | |
+ tic6x | c6x*) | |
+ basic_machine=tic6x-unknown | |
+ os=-coff | |
+ ;; | |
tx39) | |
basic_machine=mipstx39-unknown | |
;; | |
t@@ -1023,13 +1045,13 @@ case $basic_machine in | |
we32k) | |
basic_machine=we32k-att | |
;; | |
- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) | |
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) | |
basic_machine=sh-unknown | |
;; | |
sh64) | |
basic_machine=sh64-unknown | |
;; | |
- sparc | sparcv9 | sparcv9b) | |
+ sparc | sparcv8 | sparcv9 | sparcv9b) | |
basic_machine=sparc-sun | |
;; | |
cydra) | |
t@@ -1114,7 +1136,7 @@ case $os in | |
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | |
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | |
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | |
- | -powermax* | -dnix* | -microbsd*) | |
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) | |
# Remember, each alternative MUST END IN *, to match a version number. | |
;; | |
-qnx*) | |
t@@ -1223,6 +1245,12 @@ case $os in | |
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) | |
os=-mint | |
;; | |
+ -aros*) | |
+ os=-aros | |
+ ;; | |
+ -kaos*) | |
+ os=-kaos | |
+ ;; | |
-none) | |
;; | |
*) | |
t@@ -1254,6 +1282,9 @@ case $basic_machine in | |
arm*-semi) | |
os=-aout | |
;; | |
+ c4x-* | tic4x-*) | |
+ os=-coff | |
+ ;; | |
# This must come before the *-dec entry. | |
pdp10-*) | |
os=-tops20 | |
diff --git a/ltmain.sh b/ltmain.sh | |
t@@ -1,7 +1,7 @@ | |
# ltmain.sh - Provide generalized library-building support services. | |
# NOTE: Changing this file will not affect anything until you rerun configure. | |
# | |
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 | |
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 | |
# Free Software Foundation, Inc. | |
# Originally by Gordon Matzigkeit <[email protected]>, 1996 | |
# | |
t@@ -17,13 +17,41 @@ | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with this program; if not, write to the Free Software | |
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US… | |
# | |
# As a special exception to the GNU General Public License, if you | |
# distribute this file as part of a program that contains a | |
# configuration script generated by Autoconf, you may include it under | |
# the same distribution terms that you use for the rest of that program. | |
+basename="s,^.*/,,g" | |
+ | |
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh | |
+# is ksh but when the shell is invoked as "sh" and the current value of | |
+# the _XPG environment variable is not equal to 1 (one), the special | |
+# positional parameter $0, within a function call, is the name of the | |
+# function. | |
+progpath="$0" | |
+ | |
+# The name of this program: | |
+progname=`echo "$progpath" | $SED $basename` | |
+modename="$progname" | |
+ | |
+# Global variables: | |
+EXIT_SUCCESS=0 | |
+EXIT_FAILURE=1 | |
+ | |
+PROGRAM=ltmain.sh | |
+PACKAGE=libtool | |
+VERSION=1.5.16 | |
+TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)" | |
+ | |
+# See if we are running on zsh, and set the options which allow our | |
+# commands through without removal of \ escapes. | |
+if test -n "${ZSH_VERSION+set}" ; then | |
+ setopt NO_GLOB_SUBST | |
+fi | |
+ | |
# Check that we have a working $echo. | |
if test "X$1" = X--no-reexec; then | |
# Discard the --no-reexec flag, and continue. | |
t@@ -36,7 +64,7 @@ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then | |
: | |
else | |
# Restart under the correct shell, and then maybe $echo will work. | |
- exec $SHELL "$0" --no-reexec ${1+"$@"} | |
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"} | |
fi | |
if test "X$1" = X--fallback-echo; then | |
t@@ -45,22 +73,9 @@ if test "X$1" = X--fallback-echo; then | |
cat <<EOF | |
$* | |
EOF | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
fi | |
-# define SED for historic ltconfig's generated by Libtool 1.3 | |
-test -z "$SED" && SED=sed | |
- | |
-# The name of this program. | |
-progname=`$echo "$0" | ${SED} 's%^.*/%%'` | |
-modename="$progname" | |
- | |
-# Constants. | |
-PROGRAM=ltmain.sh | |
-PACKAGE=libtool | |
-VERSION=1.4.3 | |
-TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)" | |
- | |
default_mode= | |
help="Try \`$progname --help' for more information." | |
magic="%%%MAGIC variable%%%" | |
t@@ -72,17 +87,17 @@ rm="rm -f" | |
# metacharacters that are still active within double-quoted strings. | |
Xsed="${SED}"' -e 1s/^X//' | |
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' | |
-# test EBCDIC or ASCII | |
-case `echo A|od -x` in | |
- *[Cc]1*) # EBCDIC based system | |
- SP2NL="tr '\100' '\n'" | |
- NL2SP="tr '\r\n' '\100\100'" | |
- ;; | |
- *) # Assume ASCII based system | |
- SP2NL="tr '\040' '\012'" | |
- NL2SP="tr '\015\012' '\040\040'" | |
- ;; | |
-esac | |
+# test EBCDIC or ASCII | |
+case `echo A|tr A '\301'` in | |
+ A) # EBCDIC based system | |
+ SP2NL="tr '\100' '\n'" | |
+ NL2SP="tr '\r\n' '\100\100'" | |
+ ;; | |
+ *) # Assume ASCII based system | |
+ SP2NL="tr '\040' '\012'" | |
+ NL2SP="tr '\015\012' '\040\040'" | |
+ ;; | |
+esac | |
# NLS nuisances. | |
# Only set LANG and LC_ALL to C if already set. | |
t@@ -97,12 +112,14 @@ if test "${LANG+set}" = set; then | |
fi | |
# Make sure IFS has a sensible default | |
-: ${IFS=" "} | |
+lt_nl=' | |
+' | |
+IFS=" $lt_nl" | |
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | |
- echo "$modename: not configured to build any kind of library" 1>&2 | |
- echo "Fatal configuration error. See the $PACKAGE docs for more information… | |
- exit 1 | |
+ $echo "$modename: not configured to build any kind of library" 1>&2 | |
+ $echo "Fatal configuration error. See the $PACKAGE docs for more informatio… | |
+ exit $EXIT_FAILURE | |
fi | |
# Global variables. | |
t@@ -116,9 +133,227 @@ show_help= | |
execute_dlfiles= | |
lo2o="s/\\.lo\$/.${objext}/" | |
o2lo="s/\\.${objext}\$/.lo/" | |
+quote_scanset='[[~#^*{};<>?'"'"' ]' | |
+ | |
+##################################### | |
+# Shell function definitions: | |
+# This seems to be the best place for them | |
+ | |
+# func_win32_libid arg | |
+# return the library type of file 'arg' | |
+# | |
+# Need a lot of goo to handle *both* DLLs and import libs | |
+# Has to be a shell function in order to 'eat' the argument | |
+# that is supplied when $file_magic_command is called. | |
+func_win32_libid () | |
+{ | |
+ win32_libid_type="unknown" | |
+ win32_fileres=`file -L $1 2>/dev/null` | |
+ case $win32_fileres in | |
+ *ar\ archive\ import\ library*) # definitely import | |
+ win32_libid_type="x86 archive import" | |
+ ;; | |
+ *ar\ archive*) # could be an import, or static | |
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ | |
+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then | |
+ win32_nmres=`eval $NM -f posix -A $1 | \ | |
+ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` | |
+ if test "X$win32_nmres" = "Ximport" ; then | |
+ win32_libid_type="x86 archive import" | |
+ else | |
+ win32_libid_type="x86 archive static" | |
+ fi | |
+ fi | |
+ ;; | |
+ *DLL*) | |
+ win32_libid_type="x86 DLL" | |
+ ;; | |
+ *executable*) # but shell scripts are "executable" too... | |
+ case $win32_fileres in | |
+ *MS\ Windows\ PE\ Intel*) | |
+ win32_libid_type="x86 DLL" | |
+ ;; | |
+ esac | |
+ ;; | |
+ esac | |
+ $echo $win32_libid_type | |
+} | |
+ | |
+ | |
+# func_infer_tag arg | |
+# Infer tagged configuration to use if any are available and | |
+# if one wasn't chosen via the "--tag" command line option. | |
+# Only attempt this if the compiler in the base compile | |
+# command doesn't match the default compiler. | |
+# arg is usually of the form 'gcc ...' | |
+func_infer_tag () | |
+{ | |
+ if test -n "$available_tags" && test -z "$tagname"; then | |
+ CC_quoted= | |
+ for arg in $CC; do | |
+ case $arg in | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
+ arg="\"$arg\"" | |
+ ;; | |
+ esac | |
+ CC_quoted="$CC_quoted $arg" | |
+ done | |
+ case $@ in | |
+ # Blanks in the command may have been stripped by the calling shell, | |
+ # but not from the CC environment variable when configure was run. | |
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"*… | |
+ # Blanks at the start of $base_compile will cause this to fail | |
+ # if we don't check for them as well. | |
+ *) | |
+ for z in $available_tags; do | |
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/… | |
+ # Evaluate the configuration. | |
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# … | |
+ CC_quoted= | |
+ for arg in $CC; do | |
+ # Double-quote args containing other shell metacharacters. | |
+ case $arg in | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
+ arg="\"$arg\"" | |
+ ;; | |
+ esac | |
+ CC_quoted="$CC_quoted $arg" | |
+ done | |
+ case "$@ " in | |
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_… | |
+ # The compiler in the base compile command matches | |
+ # the one in the tagged configuration. | |
+ # Assume this is the tagged configuration we want. | |
+ tagname=$z | |
+ break | |
+ ;; | |
+ esac | |
+ fi | |
+ done | |
+ # If $tagname still isn't set, then no tagged configuration | |
+ # was found and let the user know that the "--tag" command | |
+ # line option must be used. | |
+ if test -z "$tagname"; then | |
+ $echo "$modename: unable to infer tagged configuration" | |
+ $echo "$modename: specify a tag with \`--tag'" 1>&2 | |
+ exit $EXIT_FAILURE | |
+# else | |
+# $echo "$modename: using $tagname tagged configuration" | |
+ fi | |
+ ;; | |
+ esac | |
+ fi | |
+} | |
+ | |
+ | |
+# func_extract_an_archive dir oldlib | |
+func_extract_an_archive () | |
+{ | |
+ f_ex_an_ar_dir="$1"; shift | |
+ f_ex_an_ar_oldlib="$1" | |
+ | |
+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" | |
+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? | |
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then | |
+ : | |
+ else | |
+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an… | |
+ exit $EXIT_FAILURE | |
+ fi | |
+} | |
+ | |
+# func_extract_archives gentop oldlib ... | |
+func_extract_archives () | |
+{ | |
+ my_gentop="$1"; shift | |
+ my_oldlibs=${1+"$@"} | |
+ my_oldobjs="" | |
+ my_xlib="" | |
+ my_xabs="" | |
+ my_xdir="" | |
+ my_status="" | |
+ | |
+ $show "${rm}r $my_gentop" | |
+ $run ${rm}r "$my_gentop" | |
+ $show "$mkdir $my_gentop" | |
+ $run $mkdir "$my_gentop" | |
+ my_status=$? | |
+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then | |
+ exit $my_status | |
+ fi | |
+ | |
+ for my_xlib in $my_oldlibs; do | |
+ # Extract the objects. | |
+ case $my_xlib in | |
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; | |
+ *) my_xabs=`pwd`"/$my_xlib" ;; | |
+ esac | |
+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` | |
+ my_xdir="$my_gentop/$my_xlib" | |
+ | |
+ $show "${rm}r $my_xdir" | |
+ $run ${rm}r "$my_xdir" | |
+ $show "$mkdir $my_xdir" | |
+ $run $mkdir "$my_xdir" | |
+ status=$? | |
+ if test "$status" -ne 0 && test ! -d "$my_xdir"; then | |
+ exit $status | |
+ fi | |
+ case $host in | |
+ *-darwin*) | |
+ $show "Extracting $my_xabs" | |
+ # Do not bother doing anything if just a dry run | |
+ if test -z "$run"; then | |
+ darwin_orig_dir=`pwd` | |
+ cd $my_xdir || exit $? | |
+ darwin_archive=$my_xabs | |
+ darwin_curdir=`pwd` | |
+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` | |
+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Arc… | |
+ if test -n "$darwin_arches"; then | |
+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` | |
+ darwin_arch= | |
+ $show "$darwin_base_archive has multiple architectures $darwin_arc… | |
+ for darwin_arch in $darwin_arches ; do | |
+ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" | |
+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}… | |
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" | |
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}" | |
+ cd "$darwin_curdir" | |
+ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_bas… | |
+ done # $darwin_arches | |
+ ## Okay now we have a bunch of thin objects, gotta fatten them up :) | |
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name … | |
+ darwin_file= | |
+ darwin_files= | |
+ for darwin_file in $darwin_filelist; do | |
+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` | |
+ lipo -create -output "$darwin_file" $darwin_files | |
+ done # $darwin_filelist | |
+ ${rm}r unfat-$$ | |
+ cd "$darwin_orig_dir" | |
+ else | |
+ cd "$darwin_orig_dir" | |
+ func_extract_an_archive "$my_xdir" "$my_xabs" | |
+ fi # $darwin_arches | |
+ fi # $run | |
+ ;; | |
+ *) | |
+ func_extract_an_archive "$my_xdir" "$my_xabs" | |
+ ;; | |
+ esac | |
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name… | |
+ done | |
+ func_extract_archives_result="$my_oldobjs" | |
+} | |
+# End of Shell function definitions | |
+##################################### | |
+ | |
+# Darwin sucks | |
+eval std_shrext=\"$shrext_cmds\" | |
# Parse our command line options once, thoroughly. | |
-while test $# -gt 0 | |
+while test "$#" -gt 0 | |
do | |
arg="$1" | |
shift | |
t@@ -134,6 +369,34 @@ do | |
execute_dlfiles) | |
execute_dlfiles="$execute_dlfiles $arg" | |
;; | |
+ tag) | |
+ tagname="$arg" | |
+ preserve_args="${preserve_args}=$arg" | |
+ | |
+ # Check whether tagname contains only valid characters | |
+ case $tagname in | |
+ *[!-_A-Za-z0-9,/]*) | |
+ $echo "$progname: invalid tag name: $tagname" 1>&2 | |
+ exit $EXIT_FAILURE | |
+ ;; | |
+ esac | |
+ | |
+ case $tagname in | |
+ CC) | |
+ # Don't test for the "default" C tag, as we know, it's there, but | |
+ # not specially marked. | |
+ ;; | |
+ *) | |
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /… | |
+ taglist="$taglist $tagname" | |
+ # Evaluate the configuration. | |
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,… | |
+ else | |
+ $echo "$progname: ignoring unknown tag $tagname" 1>&2 | |
+ fi | |
+ ;; | |
+ esac | |
+ ;; | |
*) | |
eval "$prev=\$arg" | |
;; | |
t@@ -151,18 +414,27 @@ do | |
;; | |
--version) | |
- echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" | |
- exit 0 | |
+ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" | |
+ $echo | |
+ $echo "Copyright (C) 2005 Free Software Foundation, Inc." | |
+ $echo "This is free software; see the source for copying conditions. Ther… | |
+ $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR … | |
+ exit $? | |
;; | |
--config) | |
- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFI… | |
- exit 0 | |
+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFI… | |
+ # Now print the configurations for the tags. | |
+ for tagname in $taglist; do | |
+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END L… | |
+ done | |
+ exit $? | |
;; | |
--debug) | |
- echo "$progname: enabling shell trace mode" | |
+ $echo "$progname: enabling shell trace mode" | |
set -x | |
+ preserve_args="$preserve_args $arg" | |
;; | |
--dry-run | -n) | |
t@@ -170,18 +442,18 @@ do | |
;; | |
--features) | |
- echo "host: $host" | |
+ $echo "host: $host" | |
if test "$build_libtool_libs" = yes; then | |
- echo "enable shared libraries" | |
+ $echo "enable shared libraries" | |
else | |
- echo "disable shared libraries" | |
+ $echo "disable shared libraries" | |
fi | |
if test "$build_old_libs" = yes; then | |
- echo "enable static libraries" | |
+ $echo "enable static libraries" | |
else | |
- echo "disable static libraries" | |
+ $echo "disable static libraries" | |
fi | |
- exit 0 | |
+ exit $? | |
;; | |
--finish) mode="finish" ;; | |
t@@ -193,6 +465,15 @@ do | |
--quiet | --silent) | |
show=: | |
+ preserve_args="$preserve_args $arg" | |
+ ;; | |
+ | |
+ --tag) prevopt="--tag" prev=tag ;; | |
+ --tag=*) | |
+ set tag "$optarg" ${1+"$@"} | |
+ shift | |
+ prev=tag | |
+ preserve_args="$preserve_args --tag" | |
;; | |
-dlopen) | |
t@@ -203,7 +484,7 @@ do | |
-*) | |
$echo "$modename: unrecognized option \`$arg'" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
*) | |
t@@ -216,7 +497,7 @@ done | |
if test -n "$prevopt"; then | |
$echo "$modename: option \`$prevopt' requires an argument" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# If this variable is set in any of the actions, the command in it | |
t@@ -228,8 +509,10 @@ if test -z "$show_help"; then | |
# Infer the operation mode. | |
if test -z "$mode"; then | |
+ $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 | |
+ $echo "*** Future versions of Libtool will require --mode=MODE be specifie… | |
case $nonopt in | |
- *cc | *++ | gcc* | *-gcc* | xlc*) | |
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) | |
mode=link | |
for arg | |
do | |
t@@ -270,7 +553,7 @@ if test -z "$show_help"; then | |
if test -n "$execute_dlfiles" && test "$mode" != execute; then | |
$echo "$modename: unrecognized option \`-dlopen'" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Change the help message to a mode-specific one. | |
t@@ -284,158 +567,127 @@ if test -z "$show_help"; then | |
modename="$modename: compile" | |
# Get the compilation command and the source file. | |
base_compile= | |
- prev= | |
- lastarg= | |
- srcfile="$nonopt" | |
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile" | |
+ suppress_opt=yes | |
suppress_output= | |
+ arg_mode=normal | |
+ libobj= | |
+ later= | |
- user_target=no | |
for arg | |
do | |
- case $prev in | |
- "") ;; | |
- xcompiler) | |
- # Aesthetically quote the previous argument. | |
- prev= | |
- lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |
- | |
- case $arg in | |
- # Double-quote args containing other shell metacharacters. | |
- # Many Bourne shells cannot handle close brackets correctly | |
- # in scan sets, so we specify it separately. | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
- arg="\"$arg\"" | |
- ;; | |
- esac | |
+ case "$arg_mode" in | |
+ arg ) | |
+ # do not "continue". Instead, add this to base_compile | |
+ lastarg="$arg" | |
+ arg_mode=normal | |
+ ;; | |
- # Add the previous argument to base_compile. | |
- if test -z "$base_compile"; then | |
- base_compile="$lastarg" | |
- else | |
- base_compile="$base_compile $lastarg" | |
- fi | |
+ target ) | |
+ libobj="$arg" | |
+ arg_mode=normal | |
continue | |
;; | |
- esac | |
- # Accept any command-line options. | |
- case $arg in | |
- -o) | |
- if test "$user_target" != "no"; then | |
- $echo "$modename: you cannot specify \`-o' more than once" 1>&2 | |
- exit 1 | |
- fi | |
- user_target=next | |
- ;; | |
+ normal ) | |
+ # Accept any command-line options. | |
+ case $arg in | |
+ -o) | |
+ if test -n "$libobj" ; then | |
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2 | |
+ exit $EXIT_FAILURE | |
+ fi | |
+ arg_mode=target | |
+ continue | |
+ ;; | |
- -static) | |
- build_old_libs=yes | |
- continue | |
- ;; | |
+ -static | -prefer-pic | -prefer-non-pic) | |
+ later="$later $arg" | |
+ continue | |
+ ;; | |
- -prefer-pic) | |
- pic_mode=yes | |
- continue | |
- ;; | |
+ -no-suppress) | |
+ suppress_opt=no | |
+ continue | |
+ ;; | |
- -prefer-non-pic) | |
- pic_mode=no | |
- continue | |
- ;; | |
+ -Xcompiler) | |
+ arg_mode=arg # the next one goes into the "base_compile" arg list | |
+ continue # The current "srcfile" will either be retained or | |
+ ;; # replaced later. I would guess that would be a bug. | |
- -Xcompiler) | |
- prev=xcompiler | |
- continue | |
- ;; | |
+ -Wc,*) | |
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` | |
+ lastarg= | |
+ save_ifs="$IFS"; IFS=',' | |
+ for arg in $args; do | |
+ IFS="$save_ifs" | |
- -Wc,*) | |
- args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` | |
- lastarg= | |
- save_ifs="$IFS"; IFS=',' | |
- for arg in $args; do | |
+ # Double-quote args containing other shell metacharacters. | |
+ # Many Bourne shells cannot handle close brackets correctly | |
+ # in scan sets, so we specify it separately. | |
+ case $arg in | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
+ arg="\"$arg\"" | |
+ ;; | |
+ esac | |
+ lastarg="$lastarg $arg" | |
+ done | |
IFS="$save_ifs" | |
+ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` | |
- # Double-quote args containing other shell metacharacters. | |
- # Many Bourne shells cannot handle close brackets correctly | |
- # in scan sets, so we specify it separately. | |
- case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
- arg="\"$arg\"" | |
- ;; | |
- esac | |
- lastarg="$lastarg $arg" | |
- done | |
- IFS="$save_ifs" | |
- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` | |
- | |
- # Add the arguments to base_compile. | |
- if test -z "$base_compile"; then | |
- base_compile="$lastarg" | |
- else | |
+ # Add the arguments to base_compile. | |
base_compile="$base_compile $lastarg" | |
- fi | |
- continue | |
- ;; | |
- esac | |
+ continue | |
+ ;; | |
- case $user_target in | |
- next) | |
- # The next one is the -o target name | |
- user_target=yes | |
- continue | |
- ;; | |
- yes) | |
- # We got the output file | |
- user_target=set | |
- libobj="$arg" | |
- continue | |
+ * ) | |
+ # Accept the current argument as the source file. | |
+ # The previous "srcfile" becomes the current argument. | |
+ # | |
+ lastarg="$srcfile" | |
+ srcfile="$arg" | |
+ ;; | |
+ esac # case $arg | |
;; | |
- esac | |
- | |
- # Accept the current argument as the source file. | |
- lastarg="$srcfile" | |
- srcfile="$arg" | |
+ esac # case $arg_mode | |
# Aesthetically quote the previous argument. | |
- | |
- # Backslashify any backslashes, double quotes, and dollar signs. | |
- # These are the only characters that are still specially | |
- # interpreted inside of double-quoted scrings. | |
lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` | |
+ case $lastarg in | |
# Double-quote args containing other shell metacharacters. | |
# Many Bourne shells cannot handle close brackets correctly | |
- # in scan sets, so we specify it separately. | |
- case $lastarg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
+ # in scan sets, and some SunOS ksh mistreat backslash-escaping | |
+ # in scan sets (worked around with variable expansion), | |
+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets | |
+ # at all, so we specify them separately. | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
lastarg="\"$lastarg\"" | |
;; | |
esac | |
- # Add the previous argument to base_compile. | |
- if test -z "$base_compile"; then | |
- base_compile="$lastarg" | |
- else | |
- base_compile="$base_compile $lastarg" | |
- fi | |
- done | |
+ base_compile="$base_compile $lastarg" | |
+ done # for arg | |
- case $user_target in | |
- set) | |
+ case $arg_mode in | |
+ arg) | |
+ $echo "$modename: you must specify an argument for -Xcompile" | |
+ exit $EXIT_FAILURE | |
;; | |
- no) | |
- # Get the name of the library object. | |
- libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` | |
+ target) | |
+ $echo "$modename: you must specify a target with \`-o'" 1>&2 | |
+ exit $EXIT_FAILURE | |
;; | |
*) | |
- $echo "$modename: you must specify a target with \`-o'" 1>&2 | |
- exit 1 | |
+ # Get the name of the library object. | |
+ [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` | |
;; | |
esac | |
# Recognize several different file suffixes. | |
# If the user specifies -o file.o, it is replaced with file.lo | |
- xform='[cCFSfmso]' | |
+ xform='[cCFSifmso]' | |
case $libobj in | |
*.ada) xform=ada ;; | |
*.adb) xform=adb ;; | |
t@@ -443,10 +695,13 @@ if test -z "$show_help"; then | |
*.asm) xform=asm ;; | |
*.c++) xform=c++ ;; | |
*.cc) xform=cc ;; | |
+ *.ii) xform=ii ;; | |
+ *.class) xform=class ;; | |
*.cpp) xform=cpp ;; | |
*.cxx) xform=cxx ;; | |
*.f90) xform=f90 ;; | |
*.for) xform=for ;; | |
+ *.java) xform=java ;; | |
esac | |
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` | |
t@@ -455,25 +710,64 @@ if test -z "$show_help"; then | |
*.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; | |
*) | |
$echo "$modename: cannot determine name of library object from \`$libobj… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
+ func_infer_tag $base_compile | |
+ | |
+ for arg in $later; do | |
+ case $arg in | |
+ -static) | |
+ build_old_libs=yes | |
+ continue | |
+ ;; | |
+ | |
+ -prefer-pic) | |
+ pic_mode=yes | |
+ continue | |
+ ;; | |
+ | |
+ -prefer-non-pic) | |
+ pic_mode=no | |
+ continue | |
+ ;; | |
+ esac | |
+ done | |
+ | |
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` | |
+ case $qlibobj in | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
+ qlibobj="\"$qlibobj\"" ;; | |
+ esac | |
+ if test "X$libobj" != "X$qlibobj"; then | |
+ $echo "$modename: libobj name \`$libobj' may not contain shell special… | |
+ exit $EXIT_FAILURE | |
+ fi | |
+ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` | |
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` | |
+ if test "X$xdir" = "X$obj"; then | |
+ xdir= | |
+ else | |
+ xdir=$xdir/ | |
+ fi | |
+ lobj=${xdir}$objdir/$objname | |
+ | |
if test -z "$base_compile"; then | |
$echo "$modename: you must specify a compilation command" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Delete any leftover library objects. | |
if test "$build_old_libs" = yes; then | |
- removelist="$obj $libobj" | |
+ removelist="$obj $lobj $libobj ${libobj}T" | |
else | |
- removelist="$libobj" | |
+ removelist="$lobj $libobj ${libobj}T" | |
fi | |
$run $rm $removelist | |
- trap "$run $rm $removelist; exit 1" 1 2 15 | |
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 | |
# On Cygwin there's no "real" PIC flag so we must build both object types | |
case $host_os in | |
t@@ -492,8 +786,9 @@ if test -z "$show_help"; then | |
output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.$… | |
lockfile="$output_obj.lock" | |
removelist="$removelist $output_obj $lockfile" | |
- trap "$run $rm $removelist; exit 1" 1 2 15 | |
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 | |
else | |
+ output_obj= | |
need_locks=no | |
lockfile= | |
fi | |
t@@ -501,13 +796,13 @@ if test -z "$show_help"; then | |
# Lock this critical section if it is needed | |
# We use this script file to make the link, it avoids creating a new file | |
if test "$need_locks" = yes; then | |
- until $run ln "$0" "$lockfile" 2>/dev/null; do | |
+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do | |
$show "Waiting for $lockfile to be removed" | |
sleep 2 | |
done | |
elif test "$need_locks" = warn; then | |
if test -f "$lockfile"; then | |
- echo "\ | |
+ $echo "\ | |
*** ERROR, $lockfile exists and contains: | |
`cat $lockfile 2>/dev/null` | |
t@@ -519,14 +814,33 @@ avoid parallel builds (make -j) in this platform, or get… | |
compiler." | |
$run $rm $removelist | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
- echo $srcfile > "$lockfile" | |
+ $echo "$srcfile" > "$lockfile" | |
fi | |
if test -n "$fix_srcfile_path"; then | |
eval srcfile=\"$fix_srcfile_path\" | |
fi | |
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` | |
+ case $qsrcfile in | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
+ qsrcfile="\"$qsrcfile\"" ;; | |
+ esac | |
+ | |
+ $run $rm "$libobj" "${libobj}T" | |
+ | |
+ # Create a libtool object file (analogous to a ".la" file), | |
+ # but don't create it if we're doing a dry run. | |
+ test -z "$run" && cat > ${libobj}T <<EOF | |
+# $libobj - a libtool object file | |
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | |
+# | |
+# Please DO NOT delete this file! | |
+# It is necessary for linking the library. | |
+ | |
+# Name of the PIC object. | |
+EOF | |
# Only build a PIC object if we are building libtool libraries. | |
if test "$build_libtool_libs" = yes; then | |
t@@ -534,53 +848,38 @@ compiler." | |
fbsd_hideous_sh_bug=$base_compile | |
if test "$pic_mode" != no; then | |
- # All platforms use -DPIC, to notify preprocessed assembler code. | |
- command="$base_compile $srcfile $pic_flag -DPIC" | |
+ command="$base_compile $qsrcfile $pic_flag" | |
else | |
# Don't build PIC code | |
- command="$base_compile $srcfile" | |
+ command="$base_compile $qsrcfile" | |
fi | |
- if test "$build_old_libs" = yes; then | |
- lo_libobj="$libobj" | |
- dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` | |
- if test "X$dir" = "X$libobj"; then | |
- dir="$objdir" | |
- else | |
- dir="$dir/$objdir" | |
- fi | |
- libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` | |
- if test -d "$dir"; then | |
- $show "$rm $libobj" | |
- $run $rm $libobj | |
- else | |
- $show "$mkdir $dir" | |
- $run $mkdir $dir | |
- status=$? | |
- if test $status -ne 0 && test ! -d $dir; then | |
- exit $status | |
- fi | |
+ if test ! -d "${xdir}$objdir"; then | |
+ $show "$mkdir ${xdir}$objdir" | |
+ $run $mkdir ${xdir}$objdir | |
+ status=$? | |
+ if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then | |
+ exit $status | |
fi | |
fi | |
- if test "$compiler_o_lo" = yes; then | |
- output_obj="$libobj" | |
- command="$command -o $output_obj" | |
- elif test "$compiler_c_o" = yes; then | |
- output_obj="$obj" | |
- command="$command -o $output_obj" | |
+ | |
+ if test -z "$output_obj"; then | |
+ # Place PIC objects in $objdir | |
+ command="$command -o $lobj" | |
fi | |
- $run $rm "$output_obj" | |
+ $run $rm "$lobj" "$output_obj" | |
+ | |
$show "$command" | |
if $run eval "$command"; then : | |
else | |
test -n "$output_obj" && $run $rm $removelist | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test "$need_locks" = warn && | |
- test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then | |
- echo "\ | |
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | |
+ $echo "\ | |
*** ERROR, $lockfile contains: | |
`cat $lockfile 2>/dev/null` | |
t@@ -595,13 +894,13 @@ avoid parallel builds (make -j) in this platform, or get… | |
compiler." | |
$run $rm $removelist | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Just move the object if needed, then go on to compile the next one | |
- if test x"$output_obj" != x"$libobj"; then | |
- $show "$mv $output_obj $libobj" | |
- if $run $mv $output_obj $libobj; then : | |
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then | |
+ $show "$mv $output_obj $lobj" | |
+ if $run $mv $output_obj $lobj; then : | |
else | |
error=$? | |
$run $rm $removelist | |
t@@ -609,77 +908,50 @@ compiler." | |
fi | |
fi | |
- # If we have no pic_flag, then copy the object into place and finish. | |
- if (test -z "$pic_flag" || test "$pic_mode" != default) && | |
- test "$build_old_libs" = yes; then | |
- # Rename the .lo from within objdir to obj | |
- if test -f $obj; then | |
- $show $rm $obj | |
- $run $rm $obj | |
- fi | |
+ # Append the name of the PIC object to the libtool object file. | |
+ test -z "$run" && cat >> ${libobj}T <<EOF | |
+pic_object='$objdir/$objname' | |
- $show "$mv $libobj $obj" | |
- if $run $mv $libobj $obj; then : | |
- else | |
- error=$? | |
- $run $rm $removelist | |
- exit $error | |
- fi | |
+EOF | |
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` | |
- if test "X$xdir" = "X$obj"; then | |
- xdir="." | |
- else | |
- xdir="$xdir" | |
- fi | |
- baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` | |
- libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` | |
- # Now arrange that obj and lo_libobj become the same file | |
- $show "(cd $xdir && $LN_S $baseobj $libobj)" | |
- if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then | |
- # Unlock the critical section if it was locked | |
- if test "$need_locks" != no; then | |
- $run $rm "$lockfile" | |
- fi | |
- exit 0 | |
- else | |
- error=$? | |
- $run $rm $removelist | |
- exit $error | |
- fi | |
+ # Allow error messages only from the first compilation. | |
+ if test "$suppress_opt" = yes; then | |
+ suppress_output=' >/dev/null 2>&1' | |
fi | |
+ else | |
+ # No PIC object so indicate it doesn't exist in the libtool | |
+ # object file. | |
+ test -z "$run" && cat >> ${libobj}T <<EOF | |
+pic_object=none | |
- # Allow error messages only from the first compilation. | |
- suppress_output=' >/dev/null 2>&1' | |
+EOF | |
fi | |
# Only build a position-dependent object if we build old libraries. | |
if test "$build_old_libs" = yes; then | |
if test "$pic_mode" != yes; then | |
# Don't build PIC code | |
- command="$base_compile $srcfile" | |
+ command="$base_compile $qsrcfile" | |
else | |
- # All platforms use -DPIC, to notify preprocessed assembler code. | |
- command="$base_compile $srcfile $pic_flag -DPIC" | |
+ command="$base_compile $qsrcfile $pic_flag" | |
fi | |
if test "$compiler_c_o" = yes; then | |
command="$command -o $obj" | |
- output_obj="$obj" | |
fi | |
# Suppress compiler output if we already did a PIC compilation. | |
command="$command$suppress_output" | |
- $run $rm "$output_obj" | |
+ $run $rm "$obj" "$output_obj" | |
$show "$command" | |
if $run eval "$command"; then : | |
else | |
$run $rm $removelist | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test "$need_locks" = warn && | |
- test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then | |
- echo "\ | |
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | |
+ $echo "\ | |
*** ERROR, $lockfile contains: | |
`cat $lockfile 2>/dev/null` | |
t@@ -694,11 +966,11 @@ avoid parallel builds (make -j) in this platform, or get… | |
compiler." | |
$run $rm $removelist | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Just move the object if needed | |
- if test x"$output_obj" != x"$obj"; then | |
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then | |
$show "$mv $output_obj $obj" | |
if $run $mv $output_obj $obj; then : | |
else | |
t@@ -708,29 +980,31 @@ compiler." | |
fi | |
fi | |
- # Create an invalid libtool object if no PIC, so that we do not | |
- # accidentally link it into a program. | |
- if test "$build_libtool_libs" != yes; then | |
- $show "echo timestamp > $libobj" | |
- $run eval "echo timestamp > \$libobj" || exit $? | |
- else | |
- # Move the .lo from within objdir | |
- $show "$mv $libobj $lo_libobj" | |
- if $run $mv $libobj $lo_libobj; then : | |
- else | |
- error=$? | |
- $run $rm $removelist | |
- exit $error | |
- fi | |
- fi | |
+ # Append the name of the non-PIC object the libtool object file. | |
+ # Only append if the libtool object file exists. | |
+ test -z "$run" && cat >> ${libobj}T <<EOF | |
+# Name of the non-PIC object. | |
+non_pic_object='$objname' | |
+ | |
+EOF | |
+ else | |
+ # Append the name of the non-PIC object the libtool object file. | |
+ # Only append if the libtool object file exists. | |
+ test -z "$run" && cat >> ${libobj}T <<EOF | |
+# Name of the non-PIC object. | |
+non_pic_object=none | |
+ | |
+EOF | |
fi | |
+ $run $mv "${libobj}T" "${libobj}" | |
+ | |
# Unlock the critical section if it was locked | |
if test "$need_locks" != no; then | |
$run $rm "$lockfile" | |
fi | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
;; | |
# libtool link mode | |
t@@ -741,7 +1015,7 @@ compiler." | |
# It is impossible to link a dll without this setting, and | |
# we shouldn't force the makefile maintainer to figure out | |
# which system we are compiling for in order to pass an extra | |
- # flag for every libtool invokation. | |
+ # flag for every libtool invocation. | |
# allow_undefined=no | |
# FIXME: Unfortunately, there are problems with the above when trying | |
t@@ -756,6 +1030,7 @@ compiler." | |
;; | |
esac | |
libtool_args="$nonopt" | |
+ base_compile="$nonopt $@" | |
compile_command="$nonopt" | |
finalize_command="$nonopt" | |
t@@ -786,6 +1061,8 @@ compiler." | |
module=no | |
no_install=no | |
objs= | |
+ non_pic_objects= | |
+ precious_files_regex= | |
prefer_static_libs=no | |
preload=no | |
prev= | |
t@@ -797,6 +1074,9 @@ compiler." | |
temp_rpath= | |
thread_safe=no | |
vinfo= | |
+ vinfo_number=no | |
+ | |
+ func_infer_tag $base_compile | |
# We need to know -static, to get the right output filenames. | |
for arg | |
t@@ -827,11 +1107,11 @@ compiler." | |
test -n "$old_archive_from_new_cmds" && build_old_libs=yes | |
# Go through the arguments, transforming them on the way. | |
- while test $# -gt 0; do | |
+ while test "$#" -gt 0; do | |
arg="$1" | |
shift | |
case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: … | |
;; | |
*) qarg=$arg ;; | |
t@@ -892,7 +1172,7 @@ compiler." | |
export_symbols="$arg" | |
if test ! -f "$arg"; then | |
$echo "$modename: symbol file \`$arg' does not exist" | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
prev= | |
continue | |
t@@ -902,23 +1182,135 @@ compiler." | |
prev= | |
continue | |
;; | |
- inst_prefix) | |
+ inst_prefix) | |
inst_prefix_dir="$arg" | |
prev= | |
continue | |
;; | |
+ precious_regex) | |
+ precious_files_regex="$arg" | |
+ prev= | |
+ continue | |
+ ;; | |
release) | |
release="-$arg" | |
prev= | |
continue | |
;; | |
+ objectlist) | |
+ if test -f "$arg"; then | |
+ save_arg=$arg | |
+ moreargs= | |
+ for fil in `cat $save_arg` | |
+ do | |
+# moreargs="$moreargs $fil" | |
+ arg=$fil | |
+ # A libtool-controlled object. | |
+ | |
+ # Check to see that this really is a libtool object. | |
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/d… | |
+ pic_object= | |
+ non_pic_object= | |
+ | |
+ # Read the .lo file | |
+ # If there is no directory component, then add one. | |
+ case $arg in | |
+ */* | *\\*) . $arg ;; | |
+ *) . ./$arg ;; | |
+ esac | |
+ | |
+ if test -z "$pic_object" || \ | |
+ test -z "$non_pic_object" || | |
+ test "$pic_object" = none && \ | |
+ test "$non_pic_object" = none; then | |
+ $echo "$modename: cannot find name of object for \`$arg'" 1>… | |
+ exit $EXIT_FAILURE | |
+ fi | |
+ | |
+ # Extract subdirectory from the argument. | |
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | |
+ if test "X$xdir" = "X$arg"; then | |
+ xdir= | |
+ else | |
+ xdir="$xdir/" | |
+ fi | |
+ | |
+ if test "$pic_object" != none; then | |
+ # Prepend the subdirectory the object is found in. | |
+ pic_object="$xdir$pic_object" | |
+ | |
+ if test "$prev" = dlfiles; then | |
+ if test "$build_libtool_libs" = yes && test "$dlopen_suppo… | |
+ dlfiles="$dlfiles $pic_object" | |
+ prev= | |
+ continue | |
+ else | |
+ # If libtool objects are unsupported, then we need to pr… | |
+ prev=dlprefiles | |
+ fi | |
+ fi | |
+ | |
+ # CHECK ME: I think I busted this. -Ossama | |
+ if test "$prev" = dlprefiles; then | |
+ # Preload the old-style object. | |
+ dlprefiles="$dlprefiles $pic_object" | |
+ prev= | |
+ fi | |
+ | |
+ # A PIC object. | |
+ libobjs="$libobjs $pic_object" | |
+ arg="$pic_object" | |
+ fi | |
+ | |
+ # Non-PIC object. | |
+ if test "$non_pic_object" != none; then | |
+ # Prepend the subdirectory the object is found in. | |
+ non_pic_object="$xdir$non_pic_object" | |
+ | |
+ # A standard non-PIC object | |
+ non_pic_objects="$non_pic_objects $non_pic_object" | |
+ if test -z "$pic_object" || test "$pic_object" = none ; then | |
+ arg="$non_pic_object" | |
+ fi | |
+ fi | |
+ else | |
+ # Only an error if not doing a dry-run. | |
+ if test -z "$run"; then | |
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 | |
+ exit $EXIT_FAILURE | |
+ else | |
+ # Dry-run case. | |
+ | |
+ # Extract subdirectory from the argument. | |
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | |
+ if test "X$xdir" = "X$arg"; then | |
+ xdir= | |
+ else | |
+ xdir="$xdir/" | |
+ fi | |
+ | |
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo… | |
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` | |
+ libobjs="$libobjs $pic_object" | |
+ non_pic_objects="$non_pic_objects $non_pic_object" | |
+ fi | |
+ fi | |
+ done | |
+ else | |
+ $echo "$modename: link input file \`$save_arg' does not exist" | |
+ exit $EXIT_FAILURE | |
+ fi | |
+ arg=$save_arg | |
+ prev= | |
+ continue | |
+ ;; | |
rpath | xrpath) | |
# We need an absolute path. | |
case $arg in | |
[\\/]* | [A-Za-z]:[\\/]*) ;; | |
*) | |
$echo "$modename: only absolute run-paths are allowed" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
if test "$prev" = rpath; then | |
t@@ -950,13 +1342,31 @@ compiler." | |
finalize_command="$finalize_command $wl$qarg" | |
continue | |
;; | |
+ xcclinker) | |
+ linker_flags="$linker_flags $qarg" | |
+ compiler_flags="$compiler_flags $qarg" | |
+ prev= | |
+ compile_command="$compile_command $qarg" | |
+ finalize_command="$finalize_command $qarg" | |
+ continue | |
+ ;; | |
+ shrext) | |
+ shrext_cmds="$arg" | |
+ prev= | |
+ continue | |
+ ;; | |
+ darwin_framework) | |
+ compiler_flags="$compiler_flags $arg" | |
+ prev= | |
+ continue | |
+ ;; | |
*) | |
eval "$prev=\"\$arg\"" | |
prev= | |
continue | |
;; | |
esac | |
- fi # test -n $prev | |
+ fi # test -n "$prev" | |
prevarg="$arg" | |
t@@ -998,7 +1408,7 @@ compiler." | |
-export-symbols | -export-symbols-regex) | |
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then | |
$echo "$modename: more than one -exported-symbols argument is not al… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test "X$arg" = "X-export-symbols"; then | |
prev=expsyms | |
t@@ -1008,6 +1418,12 @@ compiler." | |
continue | |
;; | |
+ -framework) | |
+ prev=darwin_framework | |
+ compiler_flags="$compiler_flags $arg" | |
+ continue | |
+ ;; | |
+ | |
-inst-prefix-dir) | |
prev=inst_prefix | |
continue | |
t@@ -1017,7 +1433,7 @@ compiler." | |
# so, if we see these flags be careful not to treat them like -L | |
-L[A-Z][A-Z]*:*) | |
case $with_gcc/$host in | |
- no/*-*-irix* | no/*-*-nonstopux*) | |
+ no/*-*-irix* | /*-*-irix*) | |
compile_command="$compile_command $arg" | |
finalize_command="$finalize_command $arg" | |
;; | |
t@@ -1034,7 +1450,7 @@ compiler." | |
absdir=`cd "$dir" && pwd` | |
if test -z "$absdir"; then | |
$echo "$modename: cannot determine absolute directory name of \`$d… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
dir="$absdir" | |
;; | |
t@@ -1068,28 +1484,78 @@ compiler." | |
# These systems don't actually have a C library (as such) | |
test "X$arg" = "X-lc" && continue | |
;; | |
- *-*-openbsd* | *-*-freebsd*) | |
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | |
# Do not include libc due to us having libc/libc_r. | |
test "X$arg" = "X-lc" && continue | |
;; | |
- esac | |
- elif test "X$arg" = "X-lc_r"; then | |
- case $host in | |
- *-*-openbsd* | *-*-freebsd*) | |
- # Do not include libc_r directly, use -pthread flag. | |
+ *-*-rhapsody* | *-*-darwin1.[012]) | |
+ # Rhapsody C and math libraries are in the System framework | |
+ deplibs="$deplibs -framework System" | |
continue | |
- ;; | |
esac | |
+ elif test "X$arg" = "X-lc_r"; then | |
+ case $host in | |
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | |
+ # Do not include libc_r directly, use -pthread flag. | |
+ continue | |
+ ;; | |
+ esac | |
fi | |
deplibs="$deplibs $arg" | |
continue | |
;; | |
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++ | |
+ # classes, name mangling, and exception handling. | |
+ -model) | |
+ compile_command="$compile_command $arg" | |
+ compiler_flags="$compiler_flags $arg" | |
+ finalize_command="$finalize_command $arg" | |
+ prev=xcompiler | |
+ continue | |
+ ;; | |
+ | |
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) | |
+ compiler_flags="$compiler_flags $arg" | |
+ compile_command="$compile_command $arg" | |
+ finalize_command="$finalize_command $arg" | |
+ continue | |
+ ;; | |
+ | |
-module) | |
module=yes | |
continue | |
;; | |
+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler | |
+ # -r[0-9][0-9]* specifies the processor on the SGI compiler | |
+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler | |
+ # +DA*, +DD* enable 64-bit mode on the HP compiler | |
+ # -q* pass through compiler args for the IBM compiler | |
+ # -m* pass through architecture-specific compiler args for GCC | |
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*) | |
+ | |
+ # Unknown arguments in both finalize_command and compile_command need | |
+ # to be aesthetically quoted because they are evaled later. | |
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |
+ case $arg in | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
+ arg="\"$arg\"" | |
+ ;; | |
+ esac | |
+ compile_command="$compile_command $arg" | |
+ finalize_command="$finalize_command $arg" | |
+ if test "$with_gcc" = "yes" ; then | |
+ compiler_flags="$compiler_flags $arg" | |
+ fi | |
+ continue | |
+ ;; | |
+ | |
+ -shrext) | |
+ prev=shrext | |
+ continue | |
+ ;; | |
+ | |
-no-fast-install) | |
fast_install=no | |
continue | |
t@@ -1114,8 +1580,18 @@ compiler." | |
continue | |
;; | |
+ -objectlist) | |
+ prev=objectlist | |
+ continue | |
+ ;; | |
+ | |
-o) prev=output ;; | |
+ -precious-files-regex) | |
+ prev=precious_regex | |
+ continue | |
+ ;; | |
+ | |
-release) | |
prev=release | |
continue | |
t@@ -1138,7 +1614,7 @@ compiler." | |
[\\/]* | [A-Za-z]:[\\/]*) ;; | |
*) | |
$echo "$modename: only absolute run-paths are allowed" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
case "$xrpath " in | |
t@@ -1166,6 +1642,11 @@ compiler." | |
prev=vinfo | |
continue | |
;; | |
+ -version-number) | |
+ prev=vinfo | |
+ vinfo_number=yes | |
+ continue | |
+ ;; | |
-Wc,*) | |
args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` | |
t@@ -1174,7 +1655,7 @@ compiler." | |
for flag in $args; do | |
IFS="$save_ifs" | |
case $flag in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
flag="\"$flag\"" | |
;; | |
esac | |
t@@ -1192,7 +1673,7 @@ compiler." | |
for flag in $args; do | |
IFS="$save_ifs" | |
case $flag in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
flag="\"$flag\"" | |
;; | |
esac | |
t@@ -1214,41 +1695,118 @@ compiler." | |
continue | |
;; | |
+ -XCClinker) | |
+ prev=xcclinker | |
+ continue | |
+ ;; | |
+ | |
# Some other compiler flag. | |
-* | +*) | |
# Unknown arguments in both finalize_command and compile_command need | |
# to be aesthetically quoted because they are evaled later. | |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |
case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
arg="\"$arg\"" | |
;; | |
esac | |
;; | |
- *.lo | *.$objext) | |
- # A library or standard object. | |
- if test "$prev" = dlfiles; then | |
- # This file was specified with -dlopen. | |
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes;… | |
- dlfiles="$dlfiles $arg" | |
- prev= | |
- continue | |
- else | |
- # If libtool objects are unsupported, then we need to preload. | |
- prev=dlprefiles | |
- fi | |
- fi | |
+ *.$objext) | |
+ # A standard object. | |
+ objs="$objs $arg" | |
+ ;; | |
- if test "$prev" = dlprefiles; then | |
- # Preload the old-style object. | |
- dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` | |
- prev= | |
- else | |
+ *.lo) | |
+ # A libtool-controlled object. | |
+ | |
+ # Check to see that this really is a libtool object. | |
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/nul… | |
+ pic_object= | |
+ non_pic_object= | |
+ | |
+ # Read the .lo file | |
+ # If there is no directory component, then add one. | |
case $arg in | |
- *.lo) libobjs="$libobjs $arg" ;; | |
- *) objs="$objs $arg" ;; | |
+ */* | *\\*) . $arg ;; | |
+ *) . ./$arg ;; | |
esac | |
+ | |
+ if test -z "$pic_object" || \ | |
+ test -z "$non_pic_object" || | |
+ test "$pic_object" = none && \ | |
+ test "$non_pic_object" = none; then | |
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2 | |
+ exit $EXIT_FAILURE | |
+ fi | |
+ | |
+ # Extract subdirectory from the argument. | |
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | |
+ if test "X$xdir" = "X$arg"; then | |
+ xdir= | |
+ else | |
+ xdir="$xdir/" | |
+ fi | |
+ | |
+ if test "$pic_object" != none; then | |
+ # Prepend the subdirectory the object is found in. | |
+ pic_object="$xdir$pic_object" | |
+ | |
+ if test "$prev" = dlfiles; then | |
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = … | |
+ dlfiles="$dlfiles $pic_object" | |
+ prev= | |
+ continue | |
+ else | |
+ # If libtool objects are unsupported, then we need to preload. | |
+ prev=dlprefiles | |
+ fi | |
+ fi | |
+ | |
+ # CHECK ME: I think I busted this. -Ossama | |
+ if test "$prev" = dlprefiles; then | |
+ # Preload the old-style object. | |
+ dlprefiles="$dlprefiles $pic_object" | |
+ prev= | |
+ fi | |
+ | |
+ # A PIC object. | |
+ libobjs="$libobjs $pic_object" | |
+ arg="$pic_object" | |
+ fi | |
+ | |
+ # Non-PIC object. | |
+ if test "$non_pic_object" != none; then | |
+ # Prepend the subdirectory the object is found in. | |
+ non_pic_object="$xdir$non_pic_object" | |
+ | |
+ # A standard non-PIC object | |
+ non_pic_objects="$non_pic_objects $non_pic_object" | |
+ if test -z "$pic_object" || test "$pic_object" = none ; then | |
+ arg="$non_pic_object" | |
+ fi | |
+ fi | |
+ else | |
+ # Only an error if not doing a dry-run. | |
+ if test -z "$run"; then | |
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 | |
+ exit $EXIT_FAILURE | |
+ else | |
+ # Dry-run case. | |
+ | |
+ # Extract subdirectory from the argument. | |
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | |
+ if test "X$xdir" = "X$arg"; then | |
+ xdir= | |
+ else | |
+ xdir="$xdir/" | |
+ fi | |
+ | |
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` | |
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` | |
+ libobjs="$libobjs $pic_object" | |
+ non_pic_objects="$non_pic_objects $non_pic_object" | |
+ fi | |
fi | |
;; | |
t@@ -1282,7 +1840,7 @@ compiler." | |
# to be aesthetically quoted because they are evaled later. | |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |
case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
arg="\"$arg\"" | |
;; | |
esac | |
t@@ -1299,7 +1857,7 @@ compiler." | |
if test -n "$prev"; then | |
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; th… | |
t@@ -1308,6 +1866,7 @@ compiler." | |
finalize_command="$finalize_command $arg" | |
fi | |
+ oldlibs= | |
# calculate the name of the file, without its directory | |
outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` | |
libobjs_save="$libobjs" | |
t@@ -1328,11 +1887,11 @@ compiler." | |
output_objdir="$output_objdir/$objdir" | |
fi | |
# Create the object directory. | |
- if test ! -d $output_objdir; then | |
+ if test ! -d "$output_objdir"; then | |
$show "$mkdir $output_objdir" | |
$run $mkdir $output_objdir | |
status=$? | |
- if test $status -ne 0 && test ! -d $output_objdir; then | |
+ if test "$status" -ne 0 && test ! -d "$output_objdir"; then | |
exit $status | |
fi | |
fi | |
t@@ -1342,7 +1901,7 @@ compiler." | |
"") | |
$echo "$modename: you must specify an output file" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
*.$libext) linkmode=oldlib ;; | |
*.lo | *.$objext) linkmode=obj ;; | |
t@@ -1350,7 +1909,17 @@ compiler." | |
*) linkmode=prog ;; # Anything else should be a program. | |
esac | |
+ case $host in | |
+ *cygwin* | *mingw* | *pw32*) | |
+ # don't eliminate duplications in $postdeps and $predeps | |
+ duplicate_compiler_generated_deps=yes | |
+ ;; | |
+ *) | |
+ duplicate_compiler_generated_deps=$duplicate_deps | |
+ ;; | |
+ esac | |
specialdeplibs= | |
+ | |
libs= | |
# Find all interdependent deplibs by searching for libraries | |
# that are linked more than once (e.g. -la -lb -la) | |
t@@ -1362,6 +1931,25 @@ compiler." | |
fi | |
libs="$libs $deplib" | |
done | |
+ | |
+ if test "$linkmode" = lib; then | |
+ libs="$predeps $libs $compiler_lib_search_path $postdeps" | |
+ | |
+ # Compute libraries that are listed more than once in $predeps | |
+ # $postdeps and mark them as special (i.e., whose duplicates are | |
+ # not to be eliminated). | |
+ pre_post_deps= | |
+ if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then | |
+ for pre_post_dep in $predeps $postdeps; do | |
+ case "$pre_post_deps " in | |
+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps"… | |
+ esac | |
+ pre_post_deps="$pre_post_deps $pre_post_dep" | |
+ done | |
+ fi | |
+ pre_post_deps= | |
+ fi | |
+ | |
deplibs= | |
newdependency_libs= | |
newlib_search_path= | |
t@@ -1376,7 +1964,7 @@ compiler." | |
*.la) ;; | |
*) | |
$echo "$modename: libraries can \`-dlopen' only libtool libraries:… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
done | |
t@@ -1393,39 +1981,55 @@ compiler." | |
;; | |
esac | |
for pass in $passes; do | |
- if test $linkmode = prog; then | |
- # Determine which files to process | |
+ if test "$linkmode,$pass" = "lib,link" || | |
+ test "$linkmode,$pass" = "prog,scan"; then | |
+ libs="$deplibs" | |
+ deplibs= | |
+ fi | |
+ if test "$linkmode" = prog; then | |
case $pass in | |
- dlopen) | |
- libs="$dlfiles" | |
- save_deplibs="$deplibs" # Collect dlpreopened libraries | |
- deplibs= | |
- ;; | |
+ dlopen) libs="$dlfiles" ;; | |
dlpreopen) libs="$dlprefiles" ;; | |
link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; | |
esac | |
fi | |
+ if test "$pass" = dlopen; then | |
+ # Collect dlpreopened libraries | |
+ save_deplibs="$deplibs" | |
+ deplibs= | |
+ fi | |
for deplib in $libs; do | |
lib= | |
found=no | |
case $deplib in | |
- -l*) | |
- if test $linkmode = oldlib && test $linkmode = obj; then | |
- $echo "$modename: warning: \`-l' is ignored for archives/objects: … | |
- continue | |
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) | |
+ if test "$linkmode,$pass" = "prog,link"; then | |
+ compile_deplibs="$deplib $compile_deplibs" | |
+ finalize_deplibs="$deplib $finalize_deplibs" | |
+ else | |
+ compiler_flags="$compiler_flags $deplib" | |
fi | |
- if test $pass = conv; then | |
- deplibs="$deplib $deplibs" | |
+ continue | |
+ ;; | |
+ -l*) | |
+ if test "$linkmode" != lib && test "$linkmode" != prog; then | |
+ $echo "$modename: warning: \`-l' is ignored for archives/objects" … | |
continue | |
fi | |
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` | |
for searchdir in $newlib_search_path $lib_search_path $sys_lib_searc… | |
- # Search the libtool library | |
- lib="$searchdir/lib${name}.la" | |
- if test -f "$lib"; then | |
- found=yes | |
- break | |
- fi | |
+ for search_ext in .la $std_shrext .so .a; do | |
+ # Search the libtool library | |
+ lib="$searchdir/lib${name}${search_ext}" | |
+ if test -f "$lib"; then | |
+ if test "$search_ext" = ".la"; then | |
+ found=yes | |
+ else | |
+ found=no | |
+ fi | |
+ break 2 | |
+ fi | |
+ done | |
done | |
if test "$found" != yes; then | |
# deplib doesn't seem to be a libtool library | |
t@@ -1434,40 +2038,76 @@ compiler." | |
finalize_deplibs="$deplib $finalize_deplibs" | |
else | |
deplibs="$deplib $deplibs" | |
- test $linkmode = lib && newdependency_libs="$deplib $newdependen… | |
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdepend… | |
fi | |
continue | |
+ else # deplib is a libtool library | |
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdl… | |
+ # We need to do some special things here, and not later. | |
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | |
+ case " $predeps $postdeps " in | |
+ *" $deplib "*) | |
+ if (${SED} -e '2q' $lib | | |
+ grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then | |
+ library_names= | |
+ old_library= | |
+ case $lib in | |
+ */* | *\\*) . $lib ;; | |
+ *) . ./$lib ;; | |
+ esac | |
+ for l in $old_library $library_names; do | |
+ ll="$l" | |
+ done | |
+ if test "X$ll" = "X$old_library" ; then # only static versio… | |
+ found=no | |
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` | |
+ test "X$ladir" = "X$lib" && ladir="." | |
+ lib=$ladir/$old_library | |
+ if test "$linkmode,$pass" = "prog,link"; then | |
+ compile_deplibs="$deplib $compile_deplibs" | |
+ finalize_deplibs="$deplib $finalize_deplibs" | |
+ else | |
+ deplibs="$deplib $deplibs" | |
+ test "$linkmode" = lib && newdependency_libs="$deplib $n… | |
+ fi | |
+ continue | |
+ fi | |
+ fi | |
+ ;; | |
+ *) ;; | |
+ esac | |
+ fi | |
fi | |
;; # -l | |
-L*) | |
case $linkmode in | |
lib) | |
deplibs="$deplib $deplibs" | |
- test $pass = conv && continue | |
+ test "$pass" = conv && continue | |
newdependency_libs="$deplib $newdependency_libs" | |
newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed… | |
;; | |
prog) | |
- if test $pass = conv; then | |
+ if test "$pass" = conv; then | |
deplibs="$deplib $deplibs" | |
continue | |
fi | |
- if test $pass = scan; then | |
+ if test "$pass" = scan; then | |
deplibs="$deplib $deplibs" | |
- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xs… | |
else | |
compile_deplibs="$deplib $compile_deplibs" | |
finalize_deplibs="$deplib $finalize_deplibs" | |
fi | |
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed… | |
;; | |
*) | |
- $echo "$modename: warning: \`-L' is ignored for archives/objects: … | |
+ $echo "$modename: warning: \`-L' is ignored for archives/objects" … | |
;; | |
esac # linkmode | |
continue | |
;; # -L | |
-R*) | |
- if test $pass = link; then | |
+ if test "$pass" = link; then | |
dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` | |
# Make sure the xrpath contains only unique directories. | |
case "$xrpath " in | |
t@@ -1480,30 +2120,45 @@ compiler." | |
;; | |
*.la) lib="$deplib" ;; | |
*.$libext) | |
- if test $pass = conv; then | |
+ if test "$pass" = conv; then | |
deplibs="$deplib $deplibs" | |
continue | |
fi | |
case $linkmode in | |
lib) | |
- if test "$deplibs_check_method" != pass_all; then | |
- echo | |
- echo "*** Warning: Trying to link with static lib archive $depli… | |
- echo "*** I have the capability to make that library automatical… | |
- echo "*** you link to this library. But I can only do this if y… | |
- echo "*** shared version of the library, which you do not appear… | |
- echo "*** because the file extensions .$libext of this argument … | |
- echo "*** that it is just a static archive that I should not use… | |
+ valid_a_lib=no | |
+ case $deplibs_check_method in | |
+ match_pattern*) | |
+ set dummy $deplibs_check_method | |
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)… | |
+ if eval $echo \"$deplib\" 2>/dev/null \ | |
+ | $SED 10q \ | |
+ | $EGREP "$match_pattern_regex" > /dev/null; then | |
+ valid_a_lib=yes | |
+ fi | |
+ ;; | |
+ pass_all) | |
+ valid_a_lib=yes | |
+ ;; | |
+ esac | |
+ if test "$valid_a_lib" != yes; then | |
+ $echo | |
+ $echo "*** Warning: Trying to link with static lib archive $depl… | |
+ $echo "*** I have the capability to make that library automatica… | |
+ $echo "*** you link to this library. But I can only do this if … | |
+ $echo "*** shared version of the library, which you do not appea… | |
+ $echo "*** because the file extensions .$libext of this argument… | |
+ $echo "*** that it is just a static archive that I should not us… | |
else | |
- echo | |
- echo "*** Warning: Linking the shared library $output against th… | |
- echo "*** static library $deplib is not portable!" | |
+ $echo | |
+ $echo "*** Warning: Linking the shared library $output against t… | |
+ $echo "*** static library $deplib is not portable!" | |
deplibs="$deplib $deplibs" | |
fi | |
continue | |
;; | |
prog) | |
- if test $pass != link; then | |
+ if test "$pass" != link; then | |
deplibs="$deplib $deplibs" | |
else | |
compile_deplibs="$deplib $compile_deplibs" | |
t@@ -1514,14 +2169,18 @@ compiler." | |
esac # linkmode | |
;; # *.$libext | |
*.lo | *.$objext) | |
- if test $pass = dlpreopen || test "$dlopen_support" != yes || test "… | |
- # If there is no dlopen support or we're linking statically, | |
- # we need to preload. | |
- newdlprefiles="$newdlprefiles $deplib" | |
- compile_deplibs="$deplib $compile_deplibs" | |
- finalize_deplibs="$deplib $finalize_deplibs" | |
- else | |
- newdlfiles="$newdlfiles $deplib" | |
+ if test "$pass" = conv; then | |
+ deplibs="$deplib $deplibs" | |
+ elif test "$linkmode" = prog; then | |
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || te… | |
+ # If there is no dlopen support or we're linking statically, | |
+ # we need to preload. | |
+ newdlprefiles="$newdlprefiles $deplib" | |
+ compile_deplibs="$deplib $compile_deplibs" | |
+ finalize_deplibs="$deplib $finalize_deplibs" | |
+ else | |
+ newdlfiles="$newdlfiles $deplib" | |
+ fi | |
fi | |
continue | |
;; | |
t@@ -1530,17 +2189,17 @@ compiler." | |
continue | |
;; | |
esac # case $deplib | |
- if test $found = yes || test -f "$lib"; then : | |
+ if test "$found" = yes || test -f "$lib"; then : | |
else | |
$echo "$modename: cannot find the library \`$lib'" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Check to see that this really is a libtool archive. | |
- if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/nu… | |
+ if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/nul… | |
else | |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` | |
t@@ -1553,8 +2212,11 @@ compiler." | |
library_names= | |
old_library= | |
# If the library was installed with an old release of libtool, | |
- # it will not redefine variable installed. | |
+ # it will not redefine variables installed, or shouldnotlink | |
installed=yes | |
+ shouldnotlink=no | |
+ avoidtemprpath= | |
+ | |
# Read the .la file | |
case $lib in | |
t@@ -1564,19 +2226,18 @@ compiler." | |
if test "$linkmode,$pass" = "lib,link" || | |
test "$linkmode,$pass" = "prog,scan" || | |
- { test $linkmode = oldlib && test $linkmode = obj; }; then | |
- # Add dl[pre]opened files of deplib | |
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then | |
test -n "$dlopen" && dlfiles="$dlfiles $dlopen" | |
test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" | |
fi | |
- if test $pass = conv; then | |
+ if test "$pass" = conv; then | |
# Only check for convenience libraries | |
deplibs="$lib $deplibs" | |
if test -z "$libdir"; then | |
if test -z "$old_library"; then | |
$echo "$modename: cannot find name of link library for \`$lib'" … | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# It is a libtool convenience library, so add in its objects. | |
convenience="$convenience $ladir/$objdir/$old_library" | |
t@@ -1591,13 +2252,14 @@ compiler." | |
fi | |
tmp_libs="$tmp_libs $deplib" | |
done | |
- elif test $linkmode != prog && test $linkmode != lib; then | |
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then | |
$echo "$modename: \`$lib' is not a convenience library" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
continue | |
fi # $pass = conv | |
+ | |
# Get the name of the library we link against. | |
linklib= | |
for l in $old_library $library_names; do | |
t@@ -1605,19 +2267,23 @@ compiler." | |
done | |
if test -z "$linklib"; then | |
$echo "$modename: cannot find name of link library for \`$lib'" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# This library was specified with -dlopen. | |
- if test $pass = dlopen; then | |
+ if test "$pass" = dlopen; then | |
if test -z "$libdir"; then | |
$echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
- if test -z "$dlname" || test "$dlopen_support" != yes || test "$buil… | |
+ if test -z "$dlname" || | |
+ test "$dlopen_support" != yes || | |
+ test "$build_libtool_libs" = no; then | |
# If there is no dlname, no dlopen support or we're linking | |
- # statically, we need to preload. | |
- dlprefiles="$dlprefiles $lib" | |
+ # statically, we need to preload. We also need to preload any | |
+ # dependent libraries so libltdl's deplib preloader doesn't | |
+ # bomb out in the load deplibs phase. | |
+ dlprefiles="$dlprefiles $lib $dependency_libs" | |
else | |
newdlfiles="$newdlfiles $lib" | |
fi | |
t@@ -1649,19 +2315,27 @@ compiler." | |
dir="$libdir" | |
absdir="$libdir" | |
fi | |
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes | |
else | |
- dir="$ladir/$objdir" | |
- absdir="$abs_ladir/$objdir" | |
- # Remove this search path later | |
- notinst_path="$notinst_path $abs_ladir" | |
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linkl… | |
+ dir="$ladir" | |
+ absdir="$abs_ladir" | |
+ # Remove this search path later | |
+ notinst_path="$notinst_path $abs_ladir" | |
+ else | |
+ dir="$ladir/$objdir" | |
+ absdir="$abs_ladir/$objdir" | |
+ # Remove this search path later | |
+ notinst_path="$notinst_path $abs_ladir" | |
+ fi | |
fi # $installed = yes | |
name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | |
# This library was specified with -dlpreopen. | |
- if test $pass = dlpreopen; then | |
+ if test "$pass" = dlpreopen; then | |
if test -z "$libdir"; then | |
$echo "$modename: cannot -dlpreopen a convenience library: \`$lib'… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Prefer using a static library (so that no silly _DYNAMIC symbols | |
# are required to link). | |
t@@ -1677,18 +2351,19 @@ compiler." | |
if test -z "$libdir"; then | |
# Link the convenience library | |
- if test $linkmode = lib; then | |
+ if test "$linkmode" = lib; then | |
deplibs="$dir/$old_library $deplibs" | |
elif test "$linkmode,$pass" = "prog,link"; then | |
compile_deplibs="$dir/$old_library $compile_deplibs" | |
finalize_deplibs="$dir/$old_library $finalize_deplibs" | |
else | |
- deplibs="$lib $deplibs" | |
+ deplibs="$lib $deplibs" # used for prog,scan pass | |
fi | |
continue | |
fi | |
- if test $linkmode = prog && test $pass != link; then | |
+ | |
+ if test "$linkmode" = prog && test "$pass" != link; then | |
newlib_search_path="$newlib_search_path $ladir" | |
deplibs="$lib $deplibs" | |
t@@ -1704,7 +2379,7 @@ compiler." | |
-L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | … | |
esac | |
# Need to link against all dependency_libs? | |
- if test $linkalldeplibs = yes; then | |
+ if test "$linkalldeplibs" = yes; then | |
deplibs="$deplib $deplibs" | |
else | |
# Need to hardcode shared library paths | |
t@@ -1721,13 +2396,19 @@ compiler." | |
continue | |
fi # $linkmode = prog... | |
- link_static=no # Whether the deplib will be linked statically | |
- if test -n "$library_names" && | |
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then | |
- # Link against this shared library | |
+ if test "$linkmode,$pass" = "prog,link"; then | |
+ if test -n "$library_names" && | |
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; t… | |
+ # We need to hardcode the library path | |
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then | |
+ # Make sure the rpath contains only unique directories. | |
+ case "$temp_rpath " in | |
+ *" $dir "*) ;; | |
+ *" $absdir "*) ;; | |
+ *) temp_rpath="$temp_rpath $dir" ;; | |
+ esac | |
+ fi | |
- if test "$linkmode,$pass" = "prog,link" || | |
- { test $linkmode = lib && test $hardcode_into_libs = yes; }; then | |
# Hardcode the library path. | |
# Skip directories that are in the system default run-time | |
# search path. | |
t@@ -1749,17 +2430,6 @@ compiler." | |
esac | |
;; | |
esac | |
- if test $linkmode = prog; then | |
- # We need to hardcode the library path | |
- if test -n "$shlibpath_var"; then | |
- # Make sure the rpath contains only unique directories. | |
- case "$temp_rpath " in | |
- *" $dir "*) ;; | |
- *" $absdir "*) ;; | |
- *) temp_rpath="$temp_rpath $dir" ;; | |
- esac | |
- fi | |
- fi | |
fi # $linkmode,$pass = prog,link... | |
if test "$alldeplibs" = yes && | |
t@@ -1769,11 +2439,52 @@ compiler." | |
# We only need to search for static libraries | |
continue | |
fi | |
+ fi | |
+ link_static=no # Whether the deplib will be linked statically | |
+ if test -n "$library_names" && | |
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then | |
if test "$installed" = no; then | |
notinst_deplibs="$notinst_deplibs $lib" | |
need_relink=yes | |
fi | |
+ # This is a shared library | |
+ | |
+ # Warn about portability, can't link against -module's on | |
+ # some systems (darwin) | |
+ if test "$shouldnotlink" = yes && test "$pass" = link ; then | |
+ $echo | |
+ if test "$linkmode" = prog; then | |
+ $echo "*** Warning: Linking the executable $output against the l… | |
+ else | |
+ $echo "*** Warning: Linking the shared library $output against t… | |
+ fi | |
+ $echo "*** $linklib is not portable!" | |
+ fi | |
+ if test "$linkmode" = lib && | |
+ test "$hardcode_into_libs" = yes; then | |
+ # Hardcode the library path. | |
+ # Skip directories that are in the system default run-time | |
+ # search path. | |
+ case " $sys_lib_dlsearch_path " in | |
+ *" $absdir "*) ;; | |
+ *) | |
+ case "$compile_rpath " in | |
+ *" $absdir "*) ;; | |
+ *) compile_rpath="$compile_rpath $absdir" | |
+ esac | |
+ ;; | |
+ esac | |
+ case " $sys_lib_dlsearch_path " in | |
+ *" $libdir "*) ;; | |
+ *) | |
+ case "$finalize_rpath " in | |
+ *" $libdir "*) ;; | |
+ *) finalize_rpath="$finalize_rpath $libdir" | |
+ esac | |
+ ;; | |
+ esac | |
+ fi | |
if test -n "$old_archive_from_expsyms_cmds"; then | |
# figure out the soname | |
t@@ -1787,7 +2498,7 @@ compiler." | |
elif test -n "$soname_spec"; then | |
# bleh windows | |
case $host in | |
- *cygwin*) | |
+ *cygwin* | mingw*) | |
major=`expr $current - $age` | |
versuffix="-$major" | |
;; | |
t@@ -1799,17 +2510,18 @@ compiler." | |
# Make a new name for the extract_expsyms_cmds to use | |
soroot="$soname" | |
- soname=`echo $soroot | ${SED} -e 's/^.*\///'` | |
- newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" | |
+ soname=`$echo $soroot | ${SED} -e 's/^.*\///'` | |
+ newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" | |
# If the library has no export list, then create one now | |
if test -f "$output_objdir/$soname-def"; then : | |
else | |
$show "extracting exported symbol list from \`$soname'" | |
save_ifs="$IFS"; IFS='~' | |
- eval cmds=\"$extract_expsyms_cmds\" | |
+ cmds=$extract_expsyms_cmds | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
t@@ -1820,9 +2532,10 @@ compiler." | |
if test -f "$output_objdir/$newlib"; then :; else | |
$show "generating import library for \`$soname'" | |
save_ifs="$IFS"; IFS='~' | |
- eval cmds=\"$old_archive_from_expsyms_cmds\" | |
+ cmds=$old_archive_from_expsyms_cmds | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
t@@ -1831,9 +2544,9 @@ compiler." | |
# make sure the library variables are pointing to the new library | |
dir=$output_objdir | |
linklib=$newlib | |
- fi # test -n $old_archive_from_expsyms_cmds | |
+ fi # test -n "$old_archive_from_expsyms_cmds" | |
- if test $linkmode = prog || test "$mode" != relink; then | |
+ if test "$linkmode" = prog || test "$mode" != relink; then | |
add_shlibpath= | |
add_dir= | |
add= | |
t@@ -1842,6 +2555,22 @@ compiler." | |
immediate | unsupported) | |
if test "$hardcode_direct" = no; then | |
add="$dir/$linklib" | |
+ case $host in | |
+ *-*-sco3.2v5* ) add_dir="-L$dir" ;; | |
+ *-*-darwin* ) | |
+ # if the lib is a module then we can not link against | |
+ # it, someone is ignoring the new warnings I added | |
+ if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/… | |
+ $echo "** Warning, lib $linklib is a module, not a share… | |
+ if test -z "$old_library" ; then | |
+ $echo | |
+ $echo "** And there doesn't seem to be a static archiv… | |
+ $echo "** The link will probably fail, sorry" | |
+ else | |
+ add="$dir/$old_library" | |
+ fi | |
+ fi | |
+ esac | |
elif test "$hardcode_minus_L" = no; then | |
case $host in | |
*-*-sunos*) add_shlibpath="$dir" ;; | |
t@@ -1860,6 +2589,14 @@ compiler." | |
add="$dir/$linklib" | |
elif test "$hardcode_minus_L" = yes; then | |
add_dir="-L$dir" | |
+ # Try looking first in the location we're being installed to. | |
+ if test -n "$inst_prefix_dir"; then | |
+ case "$libdir" in | |
+ [\\/]*) | |
+ add_dir="$add_dir -L$inst_prefix_dir$libdir" | |
+ ;; | |
+ esac | |
+ fi | |
add="-l$name" | |
elif test "$hardcode_shlibpath_var" = yes; then | |
add_shlibpath="$dir" | |
t@@ -1873,7 +2610,7 @@ compiler." | |
if test "$lib_linked" != yes; then | |
$echo "$modename: configuration error: unsupported hardcode prop… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test -n "$add_shlibpath"; then | |
t@@ -1882,7 +2619,7 @@ compiler." | |
*) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; | |
esac | |
fi | |
- if test $linkmode = prog; then | |
+ if test "$linkmode" = prog; then | |
test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" | |
test -n "$add" && compile_deplibs="$add $compile_deplibs" | |
else | |
t@@ -1899,7 +2636,7 @@ compiler." | |
fi | |
fi | |
- if test $linkmode = prog || test "$mode" = relink; then | |
+ if test "$linkmode" = prog || test "$mode" = relink; then | |
add_shlibpath= | |
add_dir= | |
add= | |
t@@ -1907,16 +2644,7 @@ compiler." | |
if test "$hardcode_direct" = yes; then | |
add="$libdir/$linklib" | |
elif test "$hardcode_minus_L" = yes; then | |
- # Try looking first in the location we're being installed to. | |
- add_dir= | |
- if test -n "$inst_prefix_dir"; then | |
- case "$libdir" in | |
- [\\/]*) | |
- add_dir="-L$inst_prefix_dir$libdir" | |
- ;; | |
- esac | |
- fi | |
- add_dir="$add_dir -L$libdir" | |
+ add_dir="-L$libdir" | |
add="-l$name" | |
elif test "$hardcode_shlibpath_var" = yes; then | |
case :$finalize_shlibpath: in | |
t@@ -1924,22 +2652,28 @@ compiler." | |
*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | |
esac | |
add="-l$name" | |
+ elif test "$hardcode_automatic" = yes; then | |
+ if test -n "$inst_prefix_dir" && | |
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then | |
+ add="$inst_prefix_dir$libdir/$linklib" | |
+ else | |
+ add="$libdir/$linklib" | |
+ fi | |
else | |
# We cannot seem to hardcode it, guess we'll fake it. | |
+ add_dir="-L$libdir" | |
# Try looking first in the location we're being installed to. | |
- add_dir= | |
if test -n "$inst_prefix_dir"; then | |
case "$libdir" in | |
- [\\/]*) | |
- add_dir="-L$inst_prefix_dir$libdir" | |
- ;; | |
+ [\\/]*) | |
+ add_dir="$add_dir -L$inst_prefix_dir$libdir" | |
+ ;; | |
esac | |
fi | |
- add_dir="$add_dir -L$libdir" | |
add="-l$name" | |
fi | |
- if test $linkmode = prog; then | |
+ if test "$linkmode" = prog; then | |
test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_depli… | |
test -n "$add" && finalize_deplibs="$add $finalize_deplibs" | |
else | |
t@@ -1947,16 +2681,7 @@ compiler." | |
test -n "$add" && deplibs="$add $deplibs" | |
fi | |
fi | |
- elif test $linkmode = prog; then | |
- if test "$alldeplibs" = yes && | |
- { test "$deplibs_check_method" = pass_all || | |
- { test "$build_libtool_libs" = yes && | |
- test -n "$library_names"; }; }; then | |
- # We only need to search for static libraries | |
- continue | |
- fi | |
- | |
- # Try to link the static library | |
+ elif test "$linkmode" = prog; then | |
# Here we assume that one of hardcode_direct or hardcode_minus_L | |
# is not unsupported. This is valid on all known static and | |
# shared platforms. | |
t@@ -1976,21 +2701,21 @@ compiler." | |
# Just print a warning and add the library to dependency_libs so | |
# that the program can be linked against the static library. | |
- echo | |
- echo "*** Warning: This system can not link to static lib archive … | |
- echo "*** I have the capability to make that library automatically… | |
- echo "*** you link to this library. But I can only do this if you… | |
- echo "*** shared version of the library, which you do not appear t… | |
+ $echo | |
+ $echo "*** Warning: This system can not link to static lib archive… | |
+ $echo "*** I have the capability to make that library automaticall… | |
+ $echo "*** you link to this library. But I can only do this if yo… | |
+ $echo "*** shared version of the library, which you do not appear … | |
if test "$module" = yes; then | |
- echo "*** But as you try to build a module library, libtool will… | |
- echo "*** a static module, that should work as long as the dlope… | |
- echo "*** is linked with the -dlopen flag to resolve symbols at … | |
+ $echo "*** But as you try to build a module library, libtool wil… | |
+ $echo "*** a static module, that should work as long as the dlop… | |
+ $echo "*** is linked with the -dlopen flag to resolve symbols at… | |
if test -z "$global_symbol_pipe"; then | |
- echo | |
- echo "*** However, this would only work if libtool was able to… | |
- echo "*** lists from a program, using \`nm' or equivalent, but… | |
- echo "*** not find such a program. So, this module is probabl… | |
- echo "*** \`nm' from GNU binutils and a full rebuild may help." | |
+ $echo | |
+ $echo "*** However, this would only work if libtool was able t… | |
+ $echo "*** lists from a program, using \`nm' or equivalent, bu… | |
+ $echo "*** not find such a program. So, this module is probab… | |
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help… | |
fi | |
if test "$build_old_libs" = no; then | |
build_libtool_libs=module | |
t@@ -2007,10 +2732,11 @@ compiler." | |
fi | |
fi # link shared/static library? | |
- if test $linkmode = lib; then | |
+ if test "$linkmode" = lib; then | |
if test -n "$dependency_libs" && | |
- { test $hardcode_into_libs != yes || test $build_old_libs = yes || | |
- test $link_static = yes; }; then | |
+ { test "$hardcode_into_libs" != yes || | |
+ test "$build_old_libs" = yes || | |
+ test "$link_static" = yes; }; then | |
# Extract -R from dependency_libs | |
temp_deplibs= | |
for libdir in $dependency_libs; do | |
t@@ -2041,7 +2767,7 @@ compiler." | |
tmp_libs="$tmp_libs $deplib" | |
done | |
- if test $link_all_deplibs != no; then | |
+ if test "$link_all_deplibs" != no; then | |
# Add the search paths of all dependency libraries | |
for deplib in $dependency_libs; do | |
case $deplib in | |
t@@ -2061,38 +2787,83 @@ compiler." | |
;; | |
esac | |
if grep "^installed=no" $deplib > /dev/null; then | |
- path="-L$absdir/$objdir" | |
+ path="$absdir/$objdir" | |
else | |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | |
if test -z "$libdir"; then | |
$echo "$modename: \`$deplib' is not a valid libtool archiv… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test "$absdir" != "$libdir"; then | |
$echo "$modename: warning: \`$deplib' seems to be moved" 1… | |
fi | |
- path="-L$absdir" | |
+ path="$absdir" | |
fi | |
+ depdepl= | |
+ case $host in | |
+ *-*-darwin*) | |
+ # we do not want to link against static libs, | |
+ # but need to link against shared | |
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)… | |
+ if test -n "$deplibrary_names" ; then | |
+ for tmp in $deplibrary_names ; do | |
+ depdepl=$tmp | |
+ done | |
+ if test -f "$path/$depdepl" ; then | |
+ depdepl="$path/$depdepl" | |
+ fi | |
+ # do not add paths which are already there | |
+ case " $newlib_search_path " in | |
+ *" $path "*) ;; | |
+ *) newlib_search_path="$newlib_search_path $path";; | |
+ esac | |
+ fi | |
+ path="" | |
+ ;; | |
+ *) | |
+ path="-L$path" | |
+ ;; | |
+ esac | |
+ ;; | |
+ -l*) | |
+ case $host in | |
+ *-*-darwin*) | |
+ # Again, we only want to link against shared libraries | |
+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` | |
+ for tmp in $newlib_search_path ; do | |
+ if test -f "$tmp/lib$tmp_libs.dylib" ; then | |
+ eval depdepl="$tmp/lib$tmp_libs.dylib" | |
+ break | |
+ fi | |
+ done | |
+ path="" | |
+ ;; | |
+ *) continue ;; | |
+ esac | |
;; | |
*) continue ;; | |
esac | |
case " $deplibs " in | |
*" $path "*) ;; | |
- *) deplibs="$deplibs $path" ;; | |
+ *) deplibs="$path $deplibs" ;; | |
+ esac | |
+ case " $deplibs " in | |
+ *" $depdepl "*) ;; | |
+ *) deplibs="$depdepl $deplibs" ;; | |
esac | |
done | |
fi # link_all_deplibs != no | |
fi # linkmode = lib | |
done # for deplib in $libs | |
- if test $pass = dlpreopen; then | |
+ dependency_libs="$newdependency_libs" | |
+ if test "$pass" = dlpreopen; then | |
# Link the dlpreopened libraries before other libraries | |
for deplib in $save_deplibs; do | |
deplibs="$deplib $deplibs" | |
done | |
fi | |
- if test $pass != dlopen; then | |
- test $pass != scan && dependency_libs="$newdependency_libs" | |
- if test $pass != conv; then | |
+ if test "$pass" != dlopen; then | |
+ if test "$pass" != conv; then | |
# Make sure lib_search_path contains only unique directories. | |
lib_search_path= | |
for dir in $newlib_search_path; do | |
t@@ -2114,9 +2885,30 @@ compiler." | |
eval tmp_libs=\"\$$var\" | |
new_libs= | |
for deplib in $tmp_libs; do | |
+ # FIXME: Pedantically, this is the right thing to do, so | |
+ # that some nasty dependency loop isn't accidentally | |
+ # broken: | |
+ #new_libs="$deplib $new_libs" | |
+ # Pragmatically, this seems to cause very few problems in | |
+ # practice: | |
case $deplib in | |
-L*) new_libs="$deplib $new_libs" ;; | |
+ -R*) ;; | |
*) | |
+ # And here is the reason: when a library appears more | |
+ # than once as an explicit dependence of a library, or | |
+ # is implicitly linked in more than once by the | |
+ # compiler, it is considered special, and multiple | |
+ # occurrences thereof are not removed. Compare this | |
+ # with having the same library being listed as a | |
+ # dependency of multiple other libraries: in this case, | |
+ # we know (pedantically, we assume) the library does not | |
+ # need to be listed more than once, so we keep only the | |
+ # last copy. This is not always right, but it is rare | |
+ # enough that we require users that really mean to play | |
+ # such unportable linking tricks to link the library | |
+ # using -Wl,-lname, so that libtool does not consider it | |
+ # for duplicate removal. | |
case " $specialdeplibs " in | |
*" $deplib "*) new_libs="$deplib $new_libs" ;; | |
*) | |
t@@ -2144,19 +2936,32 @@ compiler." | |
eval $var=\"$tmp_libs\" | |
done # for var | |
fi | |
- if test "$pass" = "conv" && | |
- { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then | |
- libs="$deplibs" # reset libs | |
- deplibs= | |
- fi | |
+ # Last step: remove runtime libs from dependency_libs | |
+ # (they stay in deplibs) | |
+ tmp_libs= | |
+ for i in $dependency_libs ; do | |
+ case " $predeps $postdeps $compiler_lib_search_path " in | |
+ *" $i "*) | |
+ i="" | |
+ ;; | |
+ esac | |
+ if test -n "$i" ; then | |
+ tmp_libs="$tmp_libs $i" | |
+ fi | |
+ done | |
+ dependency_libs=$tmp_libs | |
done # for pass | |
- if test $linkmode = prog; then | |
+ if test "$linkmode" = prog; then | |
dlfiles="$newdlfiles" | |
dlprefiles="$newdlprefiles" | |
fi | |
case $linkmode in | |
oldlib) | |
+ if test -n "$deplibs"; then | |
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1… | |
+ fi | |
+ | |
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | |
$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 | |
fi | |
t@@ -2170,7 +2975,7 @@ compiler." | |
fi | |
if test -n "$vinfo"; then | |
- $echo "$modename: warning: \`-version-info' is ignored for archives" 1… | |
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored… | |
fi | |
if test -n "$release"; then | |
t@@ -2192,17 +2997,19 @@ compiler." | |
case $outputname in | |
lib*) | |
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | |
+ eval shared_ext=\"$shrext_cmds\" | |
eval libname=\"$libname_spec\" | |
;; | |
*) | |
if test "$module" = no; then | |
$echo "$modename: libtool library \`$output' must begin with \`lib'"… | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test "$need_lib_prefix" != no; then | |
# Add the "lib" prefix for modules if required | |
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | |
+ eval shared_ext=\"$shrext_cmds\" | |
eval libname=\"$libname_spec\" | |
else | |
libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | |
t@@ -2213,11 +3020,11 @@ compiler." | |
if test -n "$objs"; then | |
if test "$deplibs_check_method" != pass_all; then | |
$echo "$modename: cannot build libtool library \`$output' from non-l… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
else | |
- echo | |
- echo "*** Warning: Linking the shared library $output against the no… | |
- echo "*** objects $objs is not portable!" | |
+ $echo | |
+ $echo "*** Warning: Linking the shared library $output against the n… | |
+ $echo "*** objects $objs is not portable!" | |
libobjs="$libobjs $objs" | |
fi | |
fi | |
t@@ -2227,7 +3034,7 @@ compiler." | |
fi | |
set dummy $rpath | |
- if test $# -gt 2; then | |
+ if test "$#" -gt 2; then | |
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool … | |
fi | |
install_libdir="$2" | |
t@@ -2236,14 +3043,16 @@ compiler." | |
if test -z "$rpath"; then | |
if test "$build_libtool_libs" = yes; then | |
# Building a libtool convenience library. | |
- libext=al | |
+ # Some compilers have problems with a `.al' extension so | |
+ # convenience libraries should have the same extension an | |
+ # archive normally would. | |
oldlibs="$output_objdir/$libname.$libext $oldlibs" | |
build_libtool_libs=convenience | |
build_old_libs=yes | |
fi | |
if test -n "$vinfo"; then | |
- $echo "$modename: warning: \`-version-info' is ignored for convenien… | |
+ $echo "$modename: warning: \`-version-info/-version-number' is ignor… | |
fi | |
if test -n "$release"; then | |
t@@ -2259,45 +3068,82 @@ compiler." | |
if test -n "$8"; then | |
$echo "$modename: too many parameters to \`-version-info'" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
- current="$2" | |
- revision="$3" | |
- age="$4" | |
+ # convert absolute version numbers to libtool ages | |
+ # this retains compatibility with .la files and attempts | |
+ # to make the code below a bit more comprehensible | |
+ | |
+ case $vinfo_number in | |
+ yes) | |
+ number_major="$2" | |
+ number_minor="$3" | |
+ number_revision="$4" | |
+ # | |
+ # There are really only two kinds -- those that | |
+ # use the current revision as the major version | |
+ # and those that subtract age and use age as | |
+ # a minor version. But, then there is irix | |
+ # which has an extra 1 added just for fun | |
+ # | |
+ case $version_type in | |
+ darwin|linux|osf|windows) | |
+ current=`expr $number_major + $number_minor` | |
+ age="$number_minor" | |
+ revision="$number_revision" | |
+ ;; | |
+ freebsd-aout|freebsd-elf|sunos) | |
+ current="$number_major" | |
+ revision="$number_minor" | |
+ age="0" | |
+ ;; | |
+ irix|nonstopux) | |
+ current=`expr $number_major + $number_minor - 1` | |
+ age="$number_minor" | |
+ revision="$number_minor" | |
+ ;; | |
+ esac | |
+ ;; | |
+ no) | |
+ current="$2" | |
+ revision="$3" | |
+ age="$4" | |
+ ;; | |
+ esac | |
# Check that each of the things are valid numbers. | |
case $current in | |
- [0-9]*) ;; | |
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9… | |
*) | |
- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" … | |
+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer"… | |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
case $revision in | |
- [0-9]*) ;; | |
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9… | |
*) | |
- $echo "$modename: REVISION \`$revision' is not a nonnegative integer… | |
+ $echo "$modename: REVISION \`$revision' must be a nonnegative intege… | |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
case $age in | |
- [0-9]*) ;; | |
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9… | |
*) | |
- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 | |
+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 | |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
- if test $age -gt $current; then | |
+ if test "$age" -gt "$current"; then | |
$echo "$modename: AGE \`$age' is greater than the current interface … | |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Calculate the version variables. | |
t@@ -2314,7 +3160,7 @@ compiler." | |
versuffix="$major.$age.$revision" | |
# Darwin ld doesn't like 0 for these options... | |
minor_current=`expr $current + 1` | |
- verstring="-compatibility_version $minor_current -current_version $m… | |
+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-cur… | |
;; | |
freebsd-aout) | |
t@@ -2338,7 +3184,7 @@ compiler." | |
# Add in all the interfaces that we are compatible with. | |
loop=$revision | |
- while test $loop != 0; do | |
+ while test "$loop" -ne 0; do | |
iface=`expr $revision - $loop` | |
loop=`expr $loop - 1` | |
verstring="$verstring_prefix$major.$iface:$verstring" | |
t@@ -2361,7 +3207,7 @@ compiler." | |
# Add in all the interfaces that we are compatible with. | |
loop=$age | |
- while test $loop != 0; do | |
+ while test "$loop" -ne 0; do | |
iface=`expr $current - $loop` | |
loop=`expr $loop - 1` | |
verstring="$verstring:${iface}.0" | |
t@@ -2385,20 +3231,19 @@ compiler." | |
*) | |
$echo "$modename: unknown library version type \`$version_type'" 1>&2 | |
- echo "Fatal configuration error. See the $PACKAGE docs for more inf… | |
- exit 1 | |
+ $echo "Fatal configuration error. See the $PACKAGE docs for more in… | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
# Clear the version info if we defaulted, and they specified a release. | |
if test -z "$vinfo" && test -n "$release"; then | |
major= | |
- verstring="0.0" | |
case $version_type in | |
darwin) | |
# we can't check for "0.0" in archive_cmds due to quoting | |
# problems, so we reset it completely | |
- verstring="" | |
+ verstring= | |
;; | |
*) | |
verstring="0.0" | |
t@@ -2432,9 +3277,30 @@ compiler." | |
fi | |
if test "$mode" != relink; then | |
- # Remove our outputs. | |
- $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $ou… | |
- $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $outp… | |
+ # Remove our outputs, but don't remove object files since they | |
+ # may have been created when compiling PIC objects. | |
+ removelist= | |
+ tempremovelist=`$echo "$output_objdir/*"` | |
+ for p in $tempremovelist; do | |
+ case $p in | |
+ *.$objext) | |
+ ;; | |
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_o… | |
+ if test "X$precious_files_regex" != "X"; then | |
+ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 | |
+ then | |
+ continue | |
+ fi | |
+ fi | |
+ removelist="$removelist $p" | |
+ ;; | |
+ *) ;; | |
+ esac | |
+ done | |
+ if test -n "$removelist"; then | |
+ $show "${rm}r $removelist" | |
+ $run ${rm}r $removelist | |
+ fi | |
fi | |
# Now set the variables for building old libraries. | |
t@@ -2447,9 +3313,9 @@ compiler." | |
# Eliminate all temporary directories. | |
for path in $notinst_path; do | |
- lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` | |
- deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` | |
- dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g… | |
+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` | |
+ deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` | |
+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %… | |
done | |
if test -n "$xrpath"; then | |
t@@ -2462,7 +3328,7 @@ compiler." | |
*) finalize_rpath="$finalize_rpath $libdir" ;; | |
esac | |
done | |
- if test $hardcode_into_libs != yes || test $build_old_libs = yes; then | |
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; … | |
dependency_libs="$temp_xrpath $dependency_libs" | |
fi | |
fi | |
t@@ -2500,12 +3366,13 @@ compiler." | |
*-*-netbsd*) | |
# Don't link with libc until the a.out ld.so is fixed. | |
;; | |
- *-*-openbsd* | *-*-freebsd*) | |
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | |
# Do not include libc due to us having libc/libc_r. | |
+ test "X$arg" = "X-lc" && continue | |
;; | |
- *) | |
+ *) | |
# Add libc to deplibs on all other systems if necessary. | |
- if test $build_libtool_need_lc = "yes"; then | |
+ if test "$build_libtool_need_lc" = "yes"; then | |
deplibs="$deplibs -lc" | |
fi | |
;; | |
t@@ -2532,7 +3399,7 @@ compiler." | |
# This might be a little naive. We might want to check | |
# whether the library exists or not. But this is on | |
# osf3 & osf4 and I'm not really sure... Just | |
- # implementing what was already the behaviour. | |
+ # implementing what was already the behavior. | |
newdeplibs=$deplibs | |
;; | |
test_compile) | |
t@@ -2545,68 +3412,88 @@ compiler." | |
int main() { return 0; } | |
EOF | |
$rm conftest | |
- $CC -o conftest conftest.c $deplibs | |
- if test $? -eq 0 ; then | |
+ $LTCC -o conftest conftest.c $deplibs | |
+ if test "$?" -eq 0 ; then | |
ldd_output=`ldd conftest` | |
for i in $deplibs; do | |
name="`expr $i : '-l\(.*\)'`" | |
# If $name is empty we are operating on a -L argument. | |
- if test -n "$name" && test "$name" != "0"; then | |
- libname=`eval \\$echo \"$libname_spec\"` | |
- deplib_matches=`eval \\$echo \"$library_names_spec\"` | |
- set dummy $deplib_matches | |
- deplib_match=$2 | |
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | |
- newdeplibs="$newdeplibs $i" | |
- else | |
- droppeddeps=yes | |
- echo | |
- echo "*** Warning: dynamic linker does not accept needed lib… | |
- echo "*** I have the capability to make that library automat… | |
- echo "*** you link to this library. But I can only do this … | |
- echo "*** shared version of the library, which I believe you… | |
- echo "*** because a test_compile did reveal that the linker … | |
- echo "*** its dynamic dependency list that programs get reso… | |
+ if test "$name" != "" && test "$name" -ne "0"; then | |
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ;… | |
+ case " $predeps $postdeps " in | |
+ *" $i "*) | |
+ newdeplibs="$newdeplibs $i" | |
+ i="" | |
+ ;; | |
+ esac | |
+ fi | |
+ if test -n "$i" ; then | |
+ libname=`eval \\$echo \"$libname_spec\"` | |
+ deplib_matches=`eval \\$echo \"$library_names_spec\"` | |
+ set dummy $deplib_matches | |
+ deplib_match=$2 | |
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | |
+ newdeplibs="$newdeplibs $i" | |
+ else | |
+ droppeddeps=yes | |
+ $echo | |
+ $echo "*** Warning: dynamic linker does not accept needed … | |
+ $echo "*** I have the capability to make that library auto… | |
+ $echo "*** you link to this library. But I can only do th… | |
+ $echo "*** shared version of the library, which I believe … | |
+ $echo "*** because a test_compile did reveal that the link… | |
+ $echo "*** its dynamic dependency list that programs get r… | |
+ fi | |
fi | |
else | |
newdeplibs="$newdeplibs $i" | |
fi | |
done | |
else | |
- # Error occured in the first compile. Let's try to salvage | |
+ # Error occurred in the first compile. Let's try to salvage | |
# the situation: Compile a separate program for each library. | |
for i in $deplibs; do | |
name="`expr $i : '-l\(.*\)'`" | |
- # If $name is empty we are operating on a -L argument. | |
- if test -n "$name" && test "$name" != "0"; then | |
- $rm conftest | |
- $CC -o conftest conftest.c $i | |
- # Did it work? | |
- if test $? -eq 0 ; then | |
- ldd_output=`ldd conftest` | |
- libname=`eval \\$echo \"$libname_spec\"` | |
- deplib_matches=`eval \\$echo \"$library_names_spec\"` | |
- set dummy $deplib_matches | |
- deplib_match=$2 | |
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | |
- newdeplibs="$newdeplibs $i" | |
- else | |
- droppeddeps=yes | |
- echo | |
- echo "*** Warning: dynamic linker does not accept needed l… | |
- echo "*** I have the capability to make that library autom… | |
- echo "*** you link to this library. But I can only do thi… | |
- echo "*** shared version of the library, which you do not … | |
- echo "*** because a test_compile did reveal that the linke… | |
- echo "*** as a dynamic dependency that programs can get re… | |
+ # If $name is empty we are operating on a -L argument. | |
+ if test "$name" != "" && test "$name" != "0"; then | |
+ $rm conftest | |
+ $LTCC -o conftest conftest.c $i | |
+ # Did it work? | |
+ if test "$?" -eq 0 ; then | |
+ ldd_output=`ldd conftest` | |
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes"… | |
+ case " $predeps $postdeps " in | |
+ *" $i "*) | |
+ newdeplibs="$newdeplibs $i" | |
+ i="" | |
+ ;; | |
+ esac | |
+ fi | |
+ if test -n "$i" ; then | |
+ libname=`eval \\$echo \"$libname_spec\"` | |
+ deplib_matches=`eval \\$echo \"$library_names_spec\"` | |
+ set dummy $deplib_matches | |
+ deplib_match=$2 | |
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; t… | |
+ newdeplibs="$newdeplibs $i" | |
+ else | |
+ droppeddeps=yes | |
+ $echo | |
+ $echo "*** Warning: dynamic linker does not accept neede… | |
+ $echo "*** I have the capability to make that library au… | |
+ $echo "*** you link to this library. But I can only do … | |
+ $echo "*** shared version of the library, which you do n… | |
+ $echo "*** because a test_compile did reveal that the li… | |
+ $echo "*** as a dynamic dependency that programs can get… | |
+ fi | |
fi | |
else | |
droppeddeps=yes | |
- echo | |
- echo "*** Warning! Library $i is needed by this library but… | |
- echo "*** make it link in! You will probably need to insta… | |
- echo "*** library that it depends on before this library wil… | |
- echo "*** functional. Installing it before continuing would… | |
+ $echo | |
+ $echo "*** Warning! Library $i is needed by this library bu… | |
+ $echo "*** make it link in! You will probably need to inst… | |
+ $echo "*** library that it depends on before this library wi… | |
+ $echo "*** functional. Installing it before continuing woul… | |
fi | |
else | |
newdeplibs="$newdeplibs $i" | |
t@@ -2620,11 +3507,20 @@ EOF | |
for a_deplib in $deplibs; do | |
name="`expr $a_deplib : '-l\(.*\)'`" | |
# If $name is empty we are operating on a -L argument. | |
- if test -n "$name" && test "$name" != "0"; then | |
- libname=`eval \\$echo \"$libname_spec\"` | |
- for i in $lib_search_path $sys_lib_search_path $shlib_search_pat… | |
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | |
- for potent_lib in $potential_libs; do | |
+ if test "$name" != "" && test "$name" != "0"; then | |
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; t… | |
+ case " $predeps $postdeps " in | |
+ *" $a_deplib "*) | |
+ newdeplibs="$newdeplibs $a_deplib" | |
+ a_deplib="" | |
+ ;; | |
+ esac | |
+ fi | |
+ if test -n "$a_deplib" ; then | |
+ libname=`eval \\$echo \"$libname_spec\"` | |
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_p… | |
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | |
+ for potent_lib in $potential_libs; do | |
# Follow soft links. | |
if ls -lLd "$potent_lib" 2>/dev/null \ | |
| grep " -> " >/dev/null; then | |
t@@ -2645,26 +3541,27 @@ EOF | |
done | |
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | |
| ${SED} 10q \ | |
- | egrep "$file_magic_regex" > /dev/null; then | |
+ | $EGREP "$file_magic_regex" > /dev/null; then | |
newdeplibs="$newdeplibs $a_deplib" | |
a_deplib="" | |
break 2 | |
fi | |
- done | |
- done | |
+ done | |
+ done | |
+ fi | |
if test -n "$a_deplib" ; then | |
droppeddeps=yes | |
- echo | |
- echo "*** Warning: linker path does not have real file for lib… | |
- echo "*** I have the capability to make that library automatic… | |
- echo "*** you link to this library. But I can only do this if… | |
- echo "*** shared version of the library, which you do not appe… | |
- echo "*** because I did check the linker path looking for a fi… | |
+ $echo | |
+ $echo "*** Warning: linker path does not have real file for li… | |
+ $echo "*** I have the capability to make that library automati… | |
+ $echo "*** you link to this library. But I can only do this i… | |
+ $echo "*** shared version of the library, which you do not app… | |
+ $echo "*** because I did check the linker path looking for a f… | |
if test -z "$potlib" ; then | |
- echo "*** with $libname but no candidates were found. (...fo… | |
+ $echo "*** with $libname but no candidates were found. (...f… | |
else | |
- echo "*** with $libname and none of the candidates passed a … | |
- echo "*** using a file magic. Last file checked: $potlib" | |
+ $echo "*** with $libname and none of the candidates passed a… | |
+ $echo "*** using a file magic. Last file checked: $potlib" | |
fi | |
fi | |
else | |
t@@ -2680,33 +3577,43 @@ EOF | |
name="`expr $a_deplib : '-l\(.*\)'`" | |
# If $name is empty we are operating on a -L argument. | |
if test -n "$name" && test "$name" != "0"; then | |
- libname=`eval \\$echo \"$libname_spec\"` | |
- for i in $lib_search_path $sys_lib_search_path $shlib_search_pat… | |
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | |
- for potent_lib in $potential_libs; do | |
- potlib="$potent_lib" # see symlink-check below in file_magic… | |
- if eval echo \"$potent_lib\" 2>/dev/null \ | |
- | ${SED} 10q \ | |
- | egrep "$match_pattern_regex" > /dev/null; then | |
- newdeplibs="$newdeplibs $a_deplib" | |
- a_deplib="" | |
- break 2 | |
- fi | |
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; t… | |
+ case " $predeps $postdeps " in | |
+ *" $a_deplib "*) | |
+ newdeplibs="$newdeplibs $a_deplib" | |
+ a_deplib="" | |
+ ;; | |
+ esac | |
+ fi | |
+ if test -n "$a_deplib" ; then | |
+ libname=`eval \\$echo \"$libname_spec\"` | |
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_p… | |
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | |
+ for potent_lib in $potential_libs; do | |
+ potlib="$potent_lib" # see symlink-check above in file_mag… | |
+ if eval $echo \"$potent_lib\" 2>/dev/null \ | |
+ | ${SED} 10q \ | |
+ | $EGREP "$match_pattern_regex" > /dev/null; then | |
+ newdeplibs="$newdeplibs $a_deplib" | |
+ a_deplib="" | |
+ break 2 | |
+ fi | |
+ done | |
done | |
- done | |
+ fi | |
if test -n "$a_deplib" ; then | |
droppeddeps=yes | |
- echo | |
- echo "*** Warning: linker path does not have real file for lib… | |
- echo "*** I have the capability to make that library automatic… | |
- echo "*** you link to this library. But I can only do this if… | |
- echo "*** shared version of the library, which you do not appe… | |
- echo "*** because I did check the linker path looking for a fi… | |
+ $echo | |
+ $echo "*** Warning: linker path does not have real file for li… | |
+ $echo "*** I have the capability to make that library automati… | |
+ $echo "*** you link to this library. But I can only do this i… | |
+ $echo "*** shared version of the library, which you do not app… | |
+ $echo "*** because I did check the linker path looking for a f… | |
if test -z "$potlib" ; then | |
- echo "*** with $libname but no candidates were found. (...fo… | |
+ $echo "*** with $libname but no candidates were found. (...f… | |
else | |
- echo "*** with $libname and none of the candidates passed a … | |
- echo "*** using a regex pattern. Last file checked: $potlib" | |
+ $echo "*** with $libname and none of the candidates passed a… | |
+ $echo "*** using a regex pattern. Last file checked: $potlib" | |
fi | |
fi | |
else | |
t@@ -2717,16 +3624,23 @@ EOF | |
;; | |
none | unknown | *) | |
newdeplibs="" | |
- if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ | |
- -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | | |
- grep . >/dev/null; then | |
- echo | |
+ tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ | |
+ -e 's/ -[LR][^ ]*//g'` | |
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | |
+ for i in $predeps $postdeps ; do | |
+ # can't use Xsed below, because $i might contain '/' | |
+ tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,… | |
+ done | |
+ fi | |
+ if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | |
+ | grep . >/dev/null; then | |
+ $echo | |
if test "X$deplibs_check_method" = "Xnone"; then | |
- echo "*** Warning: inter-library dependencies are not supported … | |
+ $echo "*** Warning: inter-library dependencies are not supported… | |
else | |
- echo "*** Warning: inter-library dependencies are not known to b… | |
+ $echo "*** Warning: inter-library dependencies are not known to … | |
fi | |
- echo "*** All declared inter-library dependencies are being droppe… | |
+ $echo "*** All declared inter-library dependencies are being dropp… | |
droppeddeps=yes | |
fi | |
;; | |
t@@ -2746,17 +3660,17 @@ EOF | |
if test "$droppeddeps" = yes; then | |
if test "$module" = yes; then | |
- echo | |
- echo "*** Warning: libtool could not satisfy all declared inter-li… | |
- echo "*** dependencies of module $libname. Therefore, libtool wil… | |
- echo "*** a static module, that should work as long as the dlopeni… | |
- echo "*** application is linked with the -dlopen flag." | |
+ $echo | |
+ $echo "*** Warning: libtool could not satisfy all declared inter-l… | |
+ $echo "*** dependencies of module $libname. Therefore, libtool wi… | |
+ $echo "*** a static module, that should work as long as the dlopen… | |
+ $echo "*** application is linked with the -dlopen flag." | |
if test -z "$global_symbol_pipe"; then | |
- echo | |
- echo "*** However, this would only work if libtool was able to e… | |
- echo "*** lists from a program, using \`nm' or equivalent, but l… | |
- echo "*** not find such a program. So, this module is probably … | |
- echo "*** \`nm' from GNU binutils and a full rebuild may help." | |
+ $echo | |
+ $echo "*** However, this would only work if libtool was able to … | |
+ $echo "*** lists from a program, using \`nm' or equivalent, but … | |
+ $echo "*** not find such a program. So, this module is probably… | |
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help." | |
fi | |
if test "$build_old_libs" = no; then | |
oldlibs="$output_objdir/$libname.$libext" | |
t@@ -2766,16 +3680,16 @@ EOF | |
build_libtool_libs=no | |
fi | |
else | |
- echo "*** The inter-library dependencies that have been dropped he… | |
- echo "*** automatically added whenever a program is linked with th… | |
- echo "*** or is declared to -dlopen it." | |
- | |
- if test $allow_undefined = no; then | |
- echo | |
- echo "*** Since this library must not contain undefined symbols," | |
- echo "*** because either the platform does not support them or" | |
- echo "*** it was explicitly requested with -no-undefined," | |
- echo "*** libtool will only create a static version of it." | |
+ $echo "*** The inter-library dependencies that have been dropped h… | |
+ $echo "*** automatically added whenever a program is linked with t… | |
+ $echo "*** or is declared to -dlopen it." | |
+ | |
+ if test "$allow_undefined" = no; then | |
+ $echo | |
+ $echo "*** Since this library must not contain undefined symbols… | |
+ $echo "*** because either the platform does not support them or" | |
+ $echo "*** it was explicitly requested with -no-undefined," | |
+ $echo "*** libtool will only create a static version of it." | |
if test "$build_old_libs" = no; then | |
oldlibs="$output_objdir/$libname.$libext" | |
build_libtool_libs=module | |
t@@ -2797,7 +3711,7 @@ EOF | |
# Test again, we may have decided not to build it any more | |
if test "$build_libtool_libs" = yes; then | |
- if test $hardcode_into_libs = yes; then | |
+ if test "$hardcode_into_libs" = yes; then | |
# Hardcode the library paths | |
hardcode_libdirs= | |
dep_rpath= | |
t@@ -2833,7 +3747,11 @@ EOF | |
if test -n "$hardcode_libdir_separator" && | |
test -n "$hardcode_libdirs"; then | |
libdir="$hardcode_libdirs" | |
- eval dep_rpath=\"$hardcode_libdir_flag_spec\" | |
+ if test -n "$hardcode_libdir_flag_spec_ld"; then | |
+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" | |
+ else | |
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\" | |
+ fi | |
fi | |
if test -n "$runpath_var" && test -n "$perm_rpath"; then | |
# We should set the runpath_var. | |
t@@ -2853,6 +3771,7 @@ EOF | |
fi | |
# Get the real and link names of the library. | |
+ eval shared_ext=\"$shrext_cmds\" | |
eval library_names=\"$library_names_spec\" | |
set dummy $library_names | |
realname="$2" | |
t@@ -2863,7 +3782,9 @@ EOF | |
else | |
soname="$realname" | |
fi | |
- test -z "$dlname" && dlname=$soname | |
+ if test -z "$dlname"; then | |
+ dlname=$soname | |
+ fi | |
lib="$output_objdir/$realname" | |
for link | |
t@@ -2871,23 +3792,6 @@ EOF | |
linknames="$linknames $link" | |
done | |
- # Ensure that we have .o objects for linkers which dislike .lo | |
- # (e.g. aix) in case we are running --disable-static | |
- for obj in $libobjs; do | |
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` | |
- if test "X$xdir" = "X$obj"; then | |
- xdir="." | |
- else | |
- xdir="$xdir" | |
- fi | |
- baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` | |
- oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` | |
- if test ! -f $xdir/$oldobj; then | |
- $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" | |
- $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? | |
- fi | |
- done | |
- | |
# Use standard objects if they are pic | |
test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e … | |
t@@ -2897,17 +3801,26 @@ EOF | |
$show "generating symbol list for \`$libname.la'" | |
export_symbols="$output_objdir/$libname.exp" | |
$run $rm $export_symbols | |
- eval cmds=\"$export_symbols_cmds\" | |
+ cmds=$export_symbols_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
- $show "$cmd" | |
- $run eval "$cmd" || exit $? | |
+ eval cmd=\"$cmd\" | |
+ if len=`expr "X$cmd" : ".*"` && | |
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; t… | |
+ $show "$cmd" | |
+ $run eval "$cmd" || exit $? | |
+ skipped_export=false | |
+ else | |
+ # The command line is too long to execute in one step. | |
+ $show "using reloadable object file for export list..." | |
+ skipped_export=: | |
+ fi | |
done | |
IFS="$save_ifs" | |
if test -n "$export_symbols_regex"; then | |
- $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > … | |
- $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > … | |
+ $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" >… | |
+ $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" >… | |
$show "$mv \"${export_symbols}T\" \"$export_symbols\"" | |
$run eval '$mv "${export_symbols}T" "$export_symbols"' | |
fi | |
t@@ -2918,46 +3831,30 @@ EOF | |
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' | |
fi | |
+ tmp_deplibs= | |
+ for test_deplib in $deplibs; do | |
+ case " $convenience " in | |
+ *" $test_deplib "*) ;; | |
+ *) | |
+ tmp_deplibs="$tmp_deplibs $test_deplib" | |
+ ;; | |
+ esac | |
+ done | |
+ deplibs="$tmp_deplibs" | |
+ | |
if test -n "$convenience"; then | |
if test -n "$whole_archive_flag_spec"; then | |
+ save_libobjs=$libobjs | |
eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | |
else | |
gentop="$output_objdir/${outputname}x" | |
- $show "${rm}r $gentop" | |
- $run ${rm}r "$gentop" | |
- $show "mkdir $gentop" | |
- $run mkdir "$gentop" | |
- status=$? | |
- if test $status -ne 0 && test ! -d "$gentop"; then | |
- exit $status | |
- fi | |
generated="$generated $gentop" | |
- for xlib in $convenience; do | |
- # Extract the objects. | |
- case $xlib in | |
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | |
- *) xabs=`pwd`"/$xlib" ;; | |
- esac | |
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | |
- xdir="$gentop/$xlib" | |
- | |
- $show "${rm}r $xdir" | |
- $run ${rm}r "$xdir" | |
- $show "mkdir $xdir" | |
- $run mkdir "$xdir" | |
- status=$? | |
- if test $status -ne 0 && test ! -d "$xdir"; then | |
- exit $status | |
- fi | |
- $show "(cd $xdir && $AR x $xabs)" | |
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | |
- | |
- libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo … | |
- done | |
+ func_extract_archives $gentop $convenience | |
+ libobjs="$libobjs $func_extract_archives_result" | |
fi | |
fi | |
- | |
+ | |
if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then | |
eval flag=\"$thread_safe_flag_spec\" | |
linker_flags="$linker_flags $flag" | |
t@@ -2969,25 +3866,148 @@ EOF | |
fi | |
# Do each of the archive commands. | |
+ if test "$module" = yes && test -n "$module_cmds" ; then | |
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then | |
+ eval test_cmds=\"$module_expsym_cmds\" | |
+ cmds=$module_expsym_cmds | |
+ else | |
+ eval test_cmds=\"$module_cmds\" | |
+ cmds=$module_cmds | |
+ fi | |
+ else | |
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | |
- eval cmds=\"$archive_expsym_cmds\" | |
+ eval test_cmds=\"$archive_expsym_cmds\" | |
+ cmds=$archive_expsym_cmds | |
+ else | |
+ eval test_cmds=\"$archive_cmds\" | |
+ cmds=$archive_cmds | |
+ fi | |
+ fi | |
+ | |
+ if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` … | |
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then | |
+ : | |
else | |
- save_deplibs="$deplibs" | |
- for conv in $convenience; do | |
- tmp_deplibs= | |
- for test_deplib in $deplibs; do | |
- if test "$test_deplib" != "$conv"; then | |
- tmp_deplibs="$tmp_deplibs $test_deplib" | |
+ # The command line is too long to link in one step, link piecewise. | |
+ $echo "creating reloadable object files..." | |
+ | |
+ # Save the value of $output and $libobjs because we want to | |
+ # use them later. If we have whole_archive_flag_spec, we | |
+ # want to use save_libobjs as it was before | |
+ # whole_archive_flag_spec was expanded, because we can't | |
+ # assume the linker understands whole_archive_flag_spec. | |
+ # This may have to be revisited, in case too many | |
+ # convenience libraries get linked in and end up exceeding | |
+ # the spec. | |
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then | |
+ save_libobjs=$libobjs | |
+ fi | |
+ save_output=$output | |
+ output_la=`$echo "X$output" | $Xsed -e "$basename"` | |
+ | |
+ # Clear the reloadable object creation command queue and | |
+ # initialize k to one. | |
+ test_cmds= | |
+ concat_cmds= | |
+ objlist= | |
+ delfiles= | |
+ last_robj= | |
+ k=1 | |
+ output=$output_objdir/$output_la-${k}.$objext | |
+ # Loop over the list of objects to be linked. | |
+ for obj in $save_libobjs | |
+ do | |
+ eval test_cmds=\"$reload_cmds $objlist $last_robj\" | |
+ if test "X$objlist" = X || | |
+ { len=`expr "X$test_cmds" : ".*"` && | |
+ test "$len" -le "$max_cmd_len"; }; then | |
+ objlist="$objlist $obj" | |
+ else | |
+ # The command $test_cmds is almost too long, add a | |
+ # command to the queue. | |
+ if test "$k" -eq 1 ; then | |
+ # The first file doesn't have a previous command to add. | |
+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" | |
+ else | |
+ # All subsequent reloadable object files will link in | |
+ # the last one created. | |
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_r… | |
fi | |
- done | |
- deplibs="$tmp_deplibs" | |
+ last_robj=$output_objdir/$output_la-${k}.$objext | |
+ k=`expr $k + 1` | |
+ output=$output_objdir/$output_la-${k}.$objext | |
+ objlist=$obj | |
+ len=1 | |
+ fi | |
+ done | |
+ # Handle the remaining objects by creating one last | |
+ # reloadable object file. All subsequent reloadable object | |
+ # files will link in the last one created. | |
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | |
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" | |
+ | |
+ if ${skipped_export-false}; then | |
+ $show "generating symbol list for \`$libname.la'" | |
+ export_symbols="$output_objdir/$libname.exp" | |
+ $run $rm $export_symbols | |
+ libobjs=$output | |
+ # Append the command to create the export file. | |
+ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" | |
+ fi | |
+ | |
+ # Set up a command to remove the reloadable object files | |
+ # after they are used. | |
+ i=0 | |
+ while test "$i" -lt "$k" | |
+ do | |
+ i=`expr $i + 1` | |
+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" | |
+ done | |
+ | |
+ $echo "creating a temporary reloadable object file: $output" | |
+ | |
+ # Loop through the commands generated above and execute them. | |
+ save_ifs="$IFS"; IFS='~' | |
+ for cmd in $concat_cmds; do | |
+ IFS="$save_ifs" | |
+ $show "$cmd" | |
+ $run eval "$cmd" || exit $? | |
done | |
- eval cmds=\"$archive_cmds\" | |
- deplibs="$save_deplibs" | |
+ IFS="$save_ifs" | |
+ | |
+ libobjs=$output | |
+ # Restore the value of output. | |
+ output=$save_output | |
+ | |
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then | |
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | |
+ fi | |
+ # Expand the library linking commands again to reset the | |
+ # value of $libobjs for piecewise linking. | |
+ | |
+ # Do each of the archive commands. | |
+ if test "$module" = yes && test -n "$module_cmds" ; then | |
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then | |
+ cmds=$module_expsym_cmds | |
+ else | |
+ cmds=$module_cmds | |
+ fi | |
+ else | |
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | |
+ cmds=$archive_expsym_cmds | |
+ else | |
+ cmds=$archive_cmds | |
+ fi | |
+ fi | |
+ | |
+ # Append the command to remove the reloadable object files | |
+ # to the just-reset $cmds. | |
+ eval cmds=\"\$cmds~\$rm $delfiles\" | |
fi | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
t@@ -2996,7 +4016,7 @@ EOF | |
# Restore the uninstalled library and exit | |
if test "$mode" = relink; then | |
$run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname $… | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
fi | |
# Create links to the real library. | |
t@@ -3044,7 +4064,7 @@ EOF | |
*.lo) | |
if test -n "$objs$old_deplibs"; then | |
$echo "$modename: cannot build library object \`$output' from non-li… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
libobj="$output" | |
obj=`$echo "X$output" | $Xsed -e "$lo2o"` | |
t@@ -3073,38 +4093,10 @@ EOF | |
eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" | |
else | |
gentop="$output_objdir/${obj}x" | |
- $show "${rm}r $gentop" | |
- $run ${rm}r "$gentop" | |
- $show "mkdir $gentop" | |
- $run mkdir "$gentop" | |
- status=$? | |
- if test $status -ne 0 && test ! -d "$gentop"; then | |
- exit $status | |
- fi | |
generated="$generated $gentop" | |
- for xlib in $convenience; do | |
- # Extract the objects. | |
- case $xlib in | |
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | |
- *) xabs=`pwd`"/$xlib" ;; | |
- esac | |
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | |
- xdir="$gentop/$xlib" | |
- | |
- $show "${rm}r $xdir" | |
- $run ${rm}r "$xdir" | |
- $show "mkdir $xdir" | |
- $run mkdir "$xdir" | |
- status=$? | |
- if test $status -ne 0 && test ! -d "$xdir"; then | |
- exit $status | |
- fi | |
- $show "(cd $xdir && $AR x $xabs)" | |
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | |
- | |
- reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -… | |
- done | |
+ func_extract_archives $gentop $convenience | |
+ reload_conv_objs="$reload_objs $func_extract_archives_result" | |
fi | |
fi | |
t@@ -3112,10 +4104,11 @@ EOF | |
reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '… | |
output="$obj" | |
- eval cmds=\"$reload_cmds\" | |
+ cmds=$reload_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
t@@ -3128,7 +4121,7 @@ EOF | |
$run ${rm}r $gentop | |
fi | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
fi | |
if test "$build_libtool_libs" != yes; then | |
t@@ -3139,37 +4132,24 @@ EOF | |
# Create an invalid libtool object if no PIC, so that we don't | |
# accidentally link it into a program. | |
- $show "echo timestamp > $libobj" | |
- $run eval "echo timestamp > $libobj" || exit $? | |
- exit 0 | |
+ # $show "echo timestamp > $libobj" | |
+ # $run eval "echo timestamp > $libobj" || exit $? | |
+ exit $EXIT_SUCCESS | |
fi | |
if test -n "$pic_flag" || test "$pic_mode" != default; then | |
# Only do commands if we really have different PIC objects. | |
reload_objs="$libobjs $reload_conv_objs" | |
output="$libobj" | |
- eval cmds=\"$reload_cmds\" | |
+ cmds=$reload_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
IFS="$save_ifs" | |
- else | |
- # Just create a symlink. | |
- $show $rm $libobj | |
- $run $rm $libobj | |
- xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` | |
- if test "X$xdir" = "X$libobj"; then | |
- xdir="." | |
- else | |
- xdir="$xdir" | |
- fi | |
- baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` | |
- oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` | |
- $show "(cd $xdir && $LN_S $oldobj $baseobj)" | |
- $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? | |
fi | |
if test -n "$gentop"; then | |
t@@ -3177,12 +4157,12 @@ EOF | |
$run ${rm}r $gentop | |
fi | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
;; | |
prog) | |
case $host in | |
- *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; | |
+ *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; | |
esac | |
if test -n "$vinfo"; then | |
$echo "$modename: warning: \`-version-info' is ignored for programs" 1… | |
t@@ -3204,16 +4184,19 @@ EOF | |
# On Rhapsody replace the C library is the System framework | |
compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -fram… | |
finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -fr… | |
- case $host in | |
- *darwin*) | |
- # Don't allow lazy linking, it breaks C++ global constructors | |
- compile_command="$compile_command ${wl}-bind_at_load" | |
- finalize_command="$finalize_command ${wl}-bind_at_load" | |
- ;; | |
- esac | |
;; | |
esac | |
+ case $host in | |
+ *darwin*) | |
+ # Don't allow lazy linking, it breaks C++ global constructors | |
+ if test "$tagname" = CXX ; then | |
+ compile_command="$compile_command ${wl}-bind_at_load" | |
+ finalize_command="$finalize_command ${wl}-bind_at_load" | |
+ fi | |
+ ;; | |
+ esac | |
+ | |
compile_command="$compile_command $compile_deplibs" | |
finalize_command="$finalize_command $finalize_deplibs" | |
t@@ -3364,31 +4347,31 @@ extern \"C\" { | |
done | |
if test -n "$exclude_expsyms"; then | |
- $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' | |
+ $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' | |
$run eval '$mv "$nlist"T "$nlist"' | |
fi | |
if test -n "$export_symbols_regex"; then | |
- $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' | |
+ $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"… | |
$run eval '$mv "$nlist"T "$nlist"' | |
fi | |
# Prepare the list of exported symbols | |
if test -z "$export_symbols"; then | |
- export_symbols="$output_objdir/$output.exp" | |
+ export_symbols="$output_objdir/$outputname.exp" | |
$run $rm $export_symbols | |
$run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/… | |
else | |
- $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$… | |
- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$n… | |
+ $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/… | |
+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" >… | |
$run eval 'mv "$nlist"T "$nlist"' | |
fi | |
fi | |
for arg in $dlprefiles; do | |
$show "extracting global C symbols from \`$arg'" | |
- name=`echo "$arg" | ${SED} -e 's%^.*/%%'` | |
- $run eval 'echo ": $name " >> "$nlist"' | |
+ name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` | |
+ $run eval '$echo ": $name " >> "$nlist"' | |
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | |
done | |
t@@ -3397,7 +4380,7 @@ extern \"C\" { | |
test -f "$nlist" || : > "$nlist" | |
if test -n "$exclude_expsyms"; then | |
- egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T | |
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T | |
$mv "$nlist"T "$nlist" | |
fi | |
t@@ -3417,7 +4400,7 @@ extern \"C\" { | |
if test -f "$nlist"S; then | |
eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$… | |
else | |
- echo '/* NONE */' >> "$output_objdir/$dlsyms" | |
+ $echo '/* NONE */' >> "$output_objdir/$dlsyms" | |
fi | |
$echo >> "$output_objdir/$dlsyms" "\ | |
t@@ -3432,7 +4415,26 @@ extern \"C\" { | |
#endif | |
/* The mapping between symbol names and symbols. */ | |
+" | |
+ | |
+ case $host in | |
+ *cygwin* | *mingw* ) | |
+ $echo >> "$output_objdir/$dlsyms" "\ | |
+/* DATA imports from DLLs on WIN32 can't be const, because | |
+ runtime relocations are performed -- see ld's documentation | |
+ on pseudo-relocs */ | |
+struct { | |
+" | |
+ ;; | |
+ * ) | |
+ $echo >> "$output_objdir/$dlsyms" "\ | |
const struct { | |
+" | |
+ ;; | |
+ esac | |
+ | |
+ | |
+ $echo >> "$output_objdir/$dlsyms" "\ | |
const char *name; | |
lt_ptr address; | |
} | |
t@@ -3469,18 +4471,18 @@ static const void *lt_preloaded_setup() { | |
*-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) | |
case "$compile_command " in | |
*" -static "*) ;; | |
- *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; | |
+ *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; | |
esac;; | |
*-*-hpux*) | |
case "$compile_command " in | |
*" -static "*) ;; | |
- *) pic_flag_for_symtable=" $pic_flag -DPIC";; | |
+ *) pic_flag_for_symtable=" $pic_flag";; | |
esac | |
esac | |
# Now compile the dynamic symbol file. | |
- $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_sym… | |
- $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for… | |
+ $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_s… | |
+ $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_f… | |
# Clean up the generated files. | |
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" | |
t@@ -3492,7 +4494,7 @@ static const void *lt_preloaded_setup() { | |
;; | |
*) | |
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
else | |
t@@ -3505,7 +4507,7 @@ static const void *lt_preloaded_setup() { | |
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%… | |
fi | |
- if test $need_relink = no || test "$build_libtool_libs" != yes; then | |
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then | |
# Replace the output file specification. | |
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$o… | |
link_command="$compile_command$compile_rpath" | |
t@@ -3580,7 +4582,7 @@ static const void *lt_preloaded_setup() { | |
# Link the executable and exit | |
$show "$link_command" | |
$run eval "$link_command" || exit $? | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
fi | |
if test "$hardcode_action" = relink; then | |
t@@ -3635,10 +4637,10 @@ static const void *lt_preloaded_setup() { | |
fi | |
# Quote $echo for shipping. | |
- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then | |
- case $0 in | |
- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; | |
- *) qecho="$SHELL `pwd`/$0 --fallback-echo";; | |
+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then | |
+ case $progpath in | |
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; | |
+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; | |
esac | |
qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` | |
else | |
t@@ -3650,15 +4652,230 @@ static const void *lt_preloaded_setup() { | |
# win32 will think the script is a binary if it has | |
# a .exe suffix, so we strip it off here. | |
case $output in | |
- *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; | |
+ *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; | |
esac | |
# test for cygwin because mv fails w/o .exe extensions | |
case $host in | |
- *cygwin*) exeext=.exe ;; | |
+ *cygwin*) | |
+ exeext=.exe | |
+ outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; | |
*) exeext= ;; | |
esac | |
+ case $host in | |
+ *cygwin* | *mingw* ) | |
+ cwrappersource=`$echo ${objdir}/lt-${outputname}.c` | |
+ cwrapper=`$echo ${output}.exe` | |
+ $rm $cwrappersource $cwrapper | |
+ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 | |
+ | |
+ cat > $cwrappersource <<EOF | |
+ | |
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname | |
+ Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | |
+ | |
+ The $output program cannot be directly executed until all the libtool | |
+ libraries that it depends on are installed. | |
+ | |
+ This wrapper executable should never be moved out of the build directory. | |
+ If it is, it will not operate correctly. | |
+ | |
+ Currently, it simply execs the wrapper *script* "/bin/sh $output", | |
+ but could eventually absorb all of the scripts functionality and | |
+ exec $objdir/$outputname directly. | |
+*/ | |
+EOF | |
+ cat >> $cwrappersource<<"EOF" | |
+#include <stdio.h> | |
+#include <stdlib.h> | |
+#include <unistd.h> | |
+#include <malloc.h> | |
+#include <stdarg.h> | |
+#include <assert.h> | |
+ | |
+#if defined(PATH_MAX) | |
+# define LT_PATHMAX PATH_MAX | |
+#elif defined(MAXPATHLEN) | |
+# define LT_PATHMAX MAXPATHLEN | |
+#else | |
+# define LT_PATHMAX 1024 | |
+#endif | |
+ | |
+#ifndef DIR_SEPARATOR | |
+#define DIR_SEPARATOR '/' | |
+#endif | |
+ | |
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ | |
+ defined (__OS2__) | |
+#define HAVE_DOS_BASED_FILE_SYSTEM | |
+#ifndef DIR_SEPARATOR_2 | |
+#define DIR_SEPARATOR_2 '\\' | |
+#endif | |
+#endif | |
+ | |
+#ifndef DIR_SEPARATOR_2 | |
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) | |
+#else /* DIR_SEPARATOR_2 */ | |
+# define IS_DIR_SEPARATOR(ch) \ | |
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) | |
+#endif /* DIR_SEPARATOR_2 */ | |
+ | |
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) | |
+#define XFREE(stale) do { \ | |
+ if (stale) { free ((void *) stale); stale = 0; } \ | |
+} while (0) | |
+ | |
+const char *program_name = NULL; | |
+ | |
+void * xmalloc (size_t num); | |
+char * xstrdup (const char *string); | |
+char * basename (const char *name); | |
+char * fnqualify(const char *path); | |
+char * strendzap(char *str, const char *pat); | |
+void lt_fatal (const char *message, ...); | |
+ | |
+int | |
+main (int argc, char *argv[]) | |
+{ | |
+ char **newargz; | |
+ int i; | |
+ | |
+ program_name = (char *) xstrdup ((char *) basename (argv[0])); | |
+ newargz = XMALLOC(char *, argc+2); | |
+EOF | |
+ | |
+ cat >> $cwrappersource <<EOF | |
+ newargz[0] = "$SHELL"; | |
+EOF | |
+ | |
+ cat >> $cwrappersource <<"EOF" | |
+ newargz[1] = fnqualify(argv[0]); | |
+ /* we know the script has the same name, without the .exe */ | |
+ /* so make sure newargz[1] doesn't end in .exe */ | |
+ strendzap(newargz[1],".exe"); | |
+ for (i = 1; i < argc; i++) | |
+ newargz[i+1] = xstrdup(argv[i]); | |
+ newargz[argc+1] = NULL; | |
+EOF | |
+ | |
+ cat >> $cwrappersource <<EOF | |
+ execv("$SHELL",newargz); | |
+EOF | |
+ | |
+ cat >> $cwrappersource <<"EOF" | |
+} | |
+ | |
+void * | |
+xmalloc (size_t num) | |
+{ | |
+ void * p = (void *) malloc (num); | |
+ if (!p) | |
+ lt_fatal ("Memory exhausted"); | |
+ | |
+ return p; | |
+} | |
+ | |
+char * | |
+xstrdup (const char *string) | |
+{ | |
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NU… | |
+; | |
+} | |
+ | |
+char * | |
+basename (const char *name) | |
+{ | |
+ const char *base; | |
+ | |
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) | |
+ /* Skip over the disk name in MSDOS pathnames. */ | |
+ if (isalpha (name[0]) && name[1] == ':') | |
+ name += 2; | |
+#endif | |
+ | |
+ for (base = name; *name; name++) | |
+ if (IS_DIR_SEPARATOR (*name)) | |
+ base = name + 1; | |
+ return (char *) base; | |
+} | |
+ | |
+char * | |
+fnqualify(const char *path) | |
+{ | |
+ size_t size; | |
+ char *p; | |
+ char tmp[LT_PATHMAX + 1]; | |
+ | |
+ assert(path != NULL); | |
+ | |
+ /* Is it qualified already? */ | |
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) | |
+ if (isalpha (path[0]) && path[1] == ':') | |
+ return xstrdup (path); | |
+#endif | |
+ if (IS_DIR_SEPARATOR (path[0])) | |
+ return xstrdup (path); | |
+ | |
+ /* prepend the current directory */ | |
+ /* doesn't handle '~' */ | |
+ if (getcwd (tmp, LT_PATHMAX) == NULL) | |
+ lt_fatal ("getcwd failed"); | |
+ size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ | |
+ p = XMALLOC(char, size); | |
+ sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); | |
+ return p; | |
+} | |
+ | |
+char * | |
+strendzap(char *str, const char *pat) | |
+{ | |
+ size_t len, patlen; | |
+ | |
+ assert(str != NULL); | |
+ assert(pat != NULL); | |
+ | |
+ len = strlen(str); | |
+ patlen = strlen(pat); | |
+ | |
+ if (patlen <= len) | |
+ { | |
+ str += len - patlen; | |
+ if (strcmp(str, pat) == 0) | |
+ *str = '\0'; | |
+ } | |
+ return str; | |
+} | |
+ | |
+static void | |
+lt_error_core (int exit_status, const char * mode, | |
+ const char * message, va_list ap) | |
+{ | |
+ fprintf (stderr, "%s: %s: ", program_name, mode); | |
+ vfprintf (stderr, message, ap); | |
+ fprintf (stderr, ".\n"); | |
+ | |
+ if (exit_status >= 0) | |
+ exit (exit_status); | |
+} | |
+ | |
+void | |
+lt_fatal (const char *message, ...) | |
+{ | |
+ va_list ap; | |
+ va_start (ap, message); | |
+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); | |
+ va_end (ap); | |
+} | |
+EOF | |
+ # we should really use a build-platform specific compiler | |
+ # here, but OTOH, the wrappers (shell script and this C one) | |
+ # are only useful if you want to execute the "real" binary. | |
+ # Since the "real" binary is built for $host, then this | |
+ # wrapper might as well be built for $host, too. | |
+ $run $LTCC -s -o $cwrapper $cwrappersource | |
+ ;; | |
+ esac | |
$rm $output | |
- trap "$rm $output; exit 1" 1 2 15 | |
+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 | |
$echo > $output "\ | |
#! $SHELL | |
t@@ -3674,12 +4891,12 @@ static const void *lt_preloaded_setup() { | |
# Sed substitution that helps us do robust quoting. It backslashifies | |
# metacharacters that are still active within double-quoted strings. | |
-Xsed="${SED}"' -e 1s/^X//' | |
+Xsed='${SED} -e 1s/^X//' | |
sed_quote_subst='$sed_quote_subst' | |
# The HP-UX ksh and POSIX shell print the target directory to stdout | |
# if CDPATH is set. | |
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi | |
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH | |
relink_command=\"$relink_command\" | |
t@@ -3734,7 +4951,7 @@ else | |
" | |
if test "$fast_install" = yes; then | |
- echo >> $output "\ | |
+ $echo >> $output "\ | |
program=lt-'$outputname'$exeext | |
progdir=\"\$thisdir/$objdir\" | |
t@@ -3750,7 +4967,7 @@ else | |
$rm \"\$progdir/\$file\" | |
fi" | |
- echo >> $output "\ | |
+ $echo >> $output "\ | |
# relink executable if necessary | |
if test -n \"\$relink_command\"; then | |
t@@ -3758,7 +4975,7 @@ else | |
else | |
$echo \"\$relink_command_output\" >&2 | |
$rm \"\$progdir/\$file\" | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
fi | |
t@@ -3768,13 +4985,13 @@ else | |
$rm \"\$progdir/\$file\" | |
fi" | |
else | |
- echo >> $output "\ | |
+ $echo >> $output "\ | |
program='$outputname' | |
progdir=\"\$thisdir/$objdir\" | |
" | |
fi | |
- echo >> $output "\ | |
+ $echo >> $output "\ | |
if test -f \"\$progdir/\$program\"; then" | |
t@@ -3785,7 +5002,7 @@ else | |
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | |
# Some systems cannot cope with colon-terminated $shlibpath_var | |
- # The second colon is a workaround for a bug in BeOS R4 ${SED} | |
+ # The second colon is a workaround for a bug in BeOS R4 sed | |
$shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` | |
export $shlibpath_var | |
t@@ -3805,14 +5022,6 @@ else | |
# Run the actual program with our arguments. | |
" | |
case $host in | |
- # win32 systems need to use the prog path for dll | |
- # lookup to work | |
- *-*-cygwin* | *-*-pw32*) | |
- $echo >> $output "\ | |
- exec \$progdir/\$program \${1+\"\$@\"} | |
-" | |
- ;; | |
- | |
# Backslashes separate directories on plain windows | |
*-*-mingw | *-*-os2*) | |
$echo >> $output "\ | |
t@@ -3822,30 +5031,26 @@ else | |
*) | |
$echo >> $output "\ | |
- # Export the path to the program. | |
- PATH=\"\$progdir:\$PATH\" | |
- export PATH | |
- | |
- exec \$program \${1+\"\$@\"} | |
+ exec \$progdir/\$program \${1+\"\$@\"} | |
" | |
;; | |
esac | |
$echo >> $output "\ | |
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
else | |
# The program doesn't exist. | |
\$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 | |
\$echo \"This script is just a wrapper for \$program.\" 1>&2 | |
- echo \"See the $PACKAGE documentation for more information.\" 1>&2 | |
- exit 1 | |
+ $echo \"See the $PACKAGE documentation for more information.\" 1>&2 | |
+ exit $EXIT_FAILURE | |
fi | |
fi\ | |
" | |
chmod +x $output | |
fi | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
;; | |
esac | |
t@@ -3861,74 +5066,130 @@ fi\ | |
oldobjs="$libobjs_save" | |
build_libtool_libs=no | |
else | |
- oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed… | |
+ oldobjs="$old_deplibs $non_pic_objects" | |
fi | |
addlibs="$old_convenience" | |
fi | |
if test -n "$addlibs"; then | |
gentop="$output_objdir/${outputname}x" | |
- $show "${rm}r $gentop" | |
- $run ${rm}r "$gentop" | |
- $show "mkdir $gentop" | |
- $run mkdir "$gentop" | |
- status=$? | |
- if test $status -ne 0 && test ! -d "$gentop"; then | |
- exit $status | |
- fi | |
generated="$generated $gentop" | |
- # Add in members from convenience archives. | |
- for xlib in $addlibs; do | |
- # Extract the objects. | |
- case $xlib in | |
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | |
- *) xabs=`pwd`"/$xlib" ;; | |
- esac | |
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | |
- xdir="$gentop/$xlib" | |
- | |
- $show "${rm}r $xdir" | |
- $run ${rm}r "$xdir" | |
- $show "mkdir $xdir" | |
- $run mkdir "$xdir" | |
- status=$? | |
- if test $status -ne 0 && test ! -d "$xdir"; then | |
- exit $status | |
- fi | |
- $show "(cd $xdir && $AR x $xabs)" | |
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | |
- | |
- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*… | |
- done | |
+ func_extract_archives $gentop $addlibs | |
+ oldobjs="$oldobjs $func_extract_archives_result" | |
fi | |
# Do each command in the archive commands. | |
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = … | |
- eval cmds=\"$old_archive_from_new_cmds\" | |
+ cmds=$old_archive_from_new_cmds | |
else | |
- # Ensure that we have .o objects in place in case we decided | |
- # not to build a shared library, and have fallen back to building | |
- # static libs even though --disable-static was passed! | |
- for oldobj in $oldobjs; do | |
- if test ! -f $oldobj; then | |
- xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` | |
- if test "X$xdir" = "X$oldobj"; then | |
- xdir="." | |
- else | |
- xdir="$xdir" | |
+ # POSIX demands no paths to be encoded in archives. We have | |
+ # to avoid creating archives with duplicate basenames if we | |
+ # might have to extract them afterwards, e.g., when creating a | |
+ # static archive out of a convenience library, or when linking | |
+ # the entirety of a libtool archive into another (currently | |
+ # not supported by libtool). | |
+ if (for obj in $oldobjs | |
+ do | |
+ $echo "X$obj" | $Xsed -e 's%^.*/%%' | |
+ done | sort | sort -uc >/dev/null 2>&1); then | |
+ : | |
+ else | |
+ $echo "copying selected object files to avoid basename conflicts..." | |
+ | |
+ if test -z "$gentop"; then | |
+ gentop="$output_objdir/${outputname}x" | |
+ generated="$generated $gentop" | |
+ | |
+ $show "${rm}r $gentop" | |
+ $run ${rm}r "$gentop" | |
+ $show "$mkdir $gentop" | |
+ $run $mkdir "$gentop" | |
+ status=$? | |
+ if test "$status" -ne 0 && test ! -d "$gentop"; then | |
+ exit $status | |
fi | |
- baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` | |
- obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` | |
- $show "(cd $xdir && ${LN_S} $obj $baseobj)" | |
- $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? | |
fi | |
- done | |
+ | |
+ save_oldobjs=$oldobjs | |
+ oldobjs= | |
+ counter=1 | |
+ for obj in $save_oldobjs | |
+ do | |
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` | |
+ case " $oldobjs " in | |
+ " ") oldobjs=$obj ;; | |
+ *[\ /]"$objbase "*) | |
+ while :; do | |
+ # Make sure we don't pick an alternate name that also | |
+ # overlaps. | |
+ newobj=lt$counter-$objbase | |
+ counter=`expr $counter + 1` | |
+ case " $oldobjs " in | |
+ *[\ /]"$newobj "*) ;; | |
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;; | |
+ esac | |
+ done | |
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" | |
+ $run ln "$obj" "$gentop/$newobj" || | |
+ $run cp "$obj" "$gentop/$newobj" | |
+ oldobjs="$oldobjs $gentop/$newobj" | |
+ ;; | |
+ *) oldobjs="$oldobjs $obj" ;; | |
+ esac | |
+ done | |
+ fi | |
eval cmds=\"$old_archive_cmds\" | |
+ | |
+ if len=`expr "X$cmds" : ".*"` && | |
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then | |
+ cmds=$old_archive_cmds | |
+ else | |
+ # the command line is too long to link in one step, link in parts | |
+ $echo "using piecewise archive linking..." | |
+ save_RANLIB=$RANLIB | |
+ RANLIB=: | |
+ objlist= | |
+ concat_cmds= | |
+ save_oldobjs=$oldobjs | |
+ | |
+ # Is there a better way of finding the last object in the list? | |
+ for obj in $save_oldobjs | |
+ do | |
+ last_oldobj=$obj | |
+ done | |
+ for obj in $save_oldobjs | |
+ do | |
+ oldobjs="$objlist $obj" | |
+ objlist="$objlist $obj" | |
+ eval test_cmds=\"$old_archive_cmds\" | |
+ if len=`expr "X$test_cmds" : ".*"` && | |
+ test "$len" -le "$max_cmd_len"; then | |
+ : | |
+ else | |
+ # the above command should be used before it gets too long | |
+ oldobjs=$objlist | |
+ if test "$obj" = "$last_oldobj" ; then | |
+ RANLIB=$save_RANLIB | |
+ fi | |
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | |
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" | |
+ objlist= | |
+ fi | |
+ done | |
+ RANLIB=$save_RANLIB | |
+ oldobjs=$objlist | |
+ if test "X$oldobjs" = "X" ; then | |
+ eval cmds=\"\$concat_cmds\" | |
+ else | |
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" | |
+ fi | |
+ fi | |
fi | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
+ eval cmd=\"$cmd\" | |
IFS="$save_ifs" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
t@@ -3960,8 +5221,12 @@ fi\ | |
fi | |
done | |
# Quote the link command for shipping. | |
- relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_p… | |
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink… | |
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` | |
+ if test "$hardcode_automatic" = yes ; then | |
+ relink_command= | |
+ fi | |
+ | |
# Only create the output if not a dry run. | |
if test -z "$run"; then | |
t@@ -3980,7 +5245,7 @@ fi\ | |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | |
if test -z "$libdir"; then | |
$echo "$modename: \`$deplib' is not a valid libtool archive"… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
newdependency_libs="$newdependency_libs $libdir/$name" | |
;; | |
t@@ -3994,7 +5259,7 @@ fi\ | |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | |
if test -z "$libdir"; then | |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
newdlfiles="$newdlfiles $libdir/$name" | |
done | |
t@@ -4005,17 +5270,36 @@ fi\ | |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | |
if test -z "$libdir"; then | |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
newdlprefiles="$newdlprefiles $libdir/$name" | |
done | |
dlprefiles="$newdlprefiles" | |
+ else | |
+ newdlfiles= | |
+ for lib in $dlfiles; do | |
+ case $lib in | |
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | |
+ *) abs=`pwd`"/$lib" ;; | |
+ esac | |
+ newdlfiles="$newdlfiles $abs" | |
+ done | |
+ dlfiles="$newdlfiles" | |
+ newdlprefiles= | |
+ for lib in $dlprefiles; do | |
+ case $lib in | |
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | |
+ *) abs=`pwd`"/$lib" ;; | |
+ esac | |
+ newdlprefiles="$newdlprefiles $abs" | |
+ done | |
+ dlprefiles="$newdlprefiles" | |
fi | |
$rm $output | |
# place dlname in correct position for cygwin | |
tdlname=$dlname | |
case $host,$output,$installed,$module,$dlname in | |
- *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; | |
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=..… | |
esac | |
$echo > $output "\ | |
# $outputname - a libtool library file | |
t@@ -4044,13 +5328,16 @@ revision=$revision | |
# Is this an already installed library? | |
installed=$installed | |
+# Should we warn about portability when linking against -modules? | |
+shouldnotlink=$module | |
+ | |
# Files to dlopen/dlpreopen | |
dlopen='$dlfiles' | |
dlpreopen='$dlprefiles' | |
# Directory that this library needs to be installed in: | |
libdir='$install_libdir'" | |
- if test "$installed" = no && test $need_relink = yes; then | |
+ if test "$installed" = no && test "$need_relink" = yes; then | |
$echo >> $output "\ | |
relink_command=\"$relink_command\"" | |
fi | |
t@@ -4063,7 +5350,7 @@ relink_command=\"$relink_command\"" | |
$run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname… | |
;; | |
esac | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
;; | |
# libtool install mode | |
t@@ -4078,7 +5365,7 @@ relink_command=\"$relink_command\"" | |
# Aesthetically quote it. | |
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` | |
case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
arg="\"$arg\"" | |
;; | |
esac | |
t@@ -4094,7 +5381,7 @@ relink_command=\"$relink_command\"" | |
# Aesthetically quote it. | |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |
case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
arg="\"$arg\"" | |
;; | |
esac | |
t@@ -4142,7 +5429,7 @@ relink_command=\"$relink_command\"" | |
# Aesthetically quote the argument. | |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |
case $arg in | |
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | |
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") | |
arg="\"$arg\"" | |
;; | |
esac | |
t@@ -4152,13 +5439,13 @@ relink_command=\"$relink_command\"" | |
if test -z "$install_prog"; then | |
$echo "$modename: you must specify an install program" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test -n "$prev"; then | |
$echo "$modename: the \`$prev' option requires an argument" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test -z "$files"; then | |
t@@ -4168,7 +5455,7 @@ relink_command=\"$relink_command\"" | |
$echo "$modename: you must specify a destination" 1>&2 | |
fi | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Strip any trailing slash from the destination. | |
t@@ -4186,10 +5473,10 @@ relink_command=\"$relink_command\"" | |
# Not a directory, so check to see that there is only one file specified. | |
set dummy $files | |
- if test $# -gt 2; then | |
+ if test "$#" -gt 2; then | |
$echo "$modename: \`$dest' is not a directory" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
fi | |
case $destdir in | |
t@@ -4201,7 +5488,7 @@ relink_command=\"$relink_command\"" | |
*) | |
$echo "$modename: \`$destdir' must be an absolute directory name" 1>… | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
done | |
t@@ -4226,11 +5513,11 @@ relink_command=\"$relink_command\"" | |
*.la) | |
# Check to see that this really is a libtool archive. | |
- if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/n… | |
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/nu… | |
else | |
$echo "$modename: \`$file' is not a valid libtool archive" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
library_names= | |
t@@ -4262,21 +5549,24 @@ relink_command=\"$relink_command\"" | |
if test -n "$relink_command"; then | |
# Determine the prefix the user has applied to our future dir. | |
- inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` | |
+ inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` | |
# Don't allow the user to place us outside of our expected | |
# location b/c this prevents finding dependent libraries that | |
# are installed to the same prefix. | |
+ # At present, this check doesn't affect windows .dll's that | |
+ # are installed into $libdir/../bin (currently, that works fine) | |
+ # but it's something to keep an eye on. | |
if test "$inst_prefix_dir" = "$destdir"; then | |
$echo "$modename: error: cannot install \`$file' to a directory no… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
if test -n "$inst_prefix_dir"; then | |
# Stick the inst_prefix_dir data into the link command. | |
- relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@… | |
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir… | |
else | |
- relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@… | |
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir… | |
fi | |
$echo "$modename: warning: relinking \`$file'" 1>&2 | |
t@@ -4284,7 +5574,7 @@ relink_command=\"$relink_command\"" | |
if $run eval "$relink_command"; then : | |
else | |
$echo "$modename: error: relink \`$file' with the above command be… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
fi | |
t@@ -4306,7 +5596,7 @@ relink_command=\"$relink_command\"" | |
$run eval "$striplib $destdir/$realname" || exit $? | |
fi | |
- if test $# -gt 0; then | |
+ if test "$#" -gt 0; then | |
# Delete the old symlinks, and create new ones. | |
for linkname | |
do | |
t@@ -4319,10 +5609,11 @@ relink_command=\"$relink_command\"" | |
# Do each command in the postinstall commands. | |
lib="$destdir/$realname" | |
- eval cmds=\"$postinstall_cmds\" | |
+ cmds=$postinstall_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
t@@ -4362,7 +5653,7 @@ relink_command=\"$relink_command\"" | |
*) | |
$echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
t@@ -4380,7 +5671,7 @@ relink_command=\"$relink_command\"" | |
$show "$install_prog $staticobj $staticdest" | |
$run eval "$install_prog \$staticobj \$staticdest" || exit $? | |
fi | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
;; | |
*) | |
t@@ -4392,29 +5683,49 @@ relink_command=\"$relink_command\"" | |
destfile="$destdir/$destfile" | |
fi | |
+ # If the file is missing, and there is a .exe on the end, strip it | |
+ # because it is most likely a libtool script we actually want to | |
+ # install | |
+ stripped_ext="" | |
+ case $file in | |
+ *.exe) | |
+ if test ! -f "$file"; then | |
+ file=`$echo $file|${SED} 's,.exe$,,'` | |
+ stripped_ext=".exe" | |
+ fi | |
+ ;; | |
+ esac | |
+ | |
# Do a test to see if this is really a libtool program. | |
case $host in | |
*cygwin*|*mingw*) | |
- wrapper=`echo $file | ${SED} -e 's,.exe$,,'` | |
+ wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` | |
;; | |
*) | |
wrapper=$file | |
;; | |
esac | |
- if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev… | |
+ if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/… | |
notinst_deplibs= | |
relink_command= | |
+ # To insure that "foo" is sourced, and not "foo.exe", | |
+ # finese the cygwin/MSYS system by explicitly sourcing "foo." | |
+ # which disallows the automatic-append-.exe behavior. | |
+ case $build in | |
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; | |
+ *) wrapperdot=${wrapper} ;; | |
+ esac | |
# If there is no directory component, then add one. | |
case $file in | |
- */* | *\\*) . $wrapper ;; | |
- *) . ./$wrapper ;; | |
+ */* | *\\*) . ${wrapperdot} ;; | |
+ *) . ./${wrapperdot} ;; | |
esac | |
# Check the variables that should have been set. | |
if test -z "$notinst_deplibs"; then | |
$echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
finalize=yes | |
t@@ -4436,10 +5747,17 @@ relink_command=\"$relink_command\"" | |
done | |
relink_command= | |
+ # To insure that "foo" is sourced, and not "foo.exe", | |
+ # finese the cygwin/MSYS system by explicitly sourcing "foo." | |
+ # which disallows the automatic-append-.exe behavior. | |
+ case $build in | |
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; | |
+ *) wrapperdot=${wrapper} ;; | |
+ esac | |
# If there is no directory component, then add one. | |
case $file in | |
- */* | *\\*) . $wrapper ;; | |
- *) . ./$wrapper ;; | |
+ */* | *\\*) . ${wrapperdot} ;; | |
+ *) . ./${wrapperdot} ;; | |
esac | |
outputname= | |
t@@ -4447,19 +5765,17 @@ relink_command=\"$relink_command\"" | |
if test "$finalize" = yes && test -z "$run"; then | |
tmpdir="/tmp" | |
test -n "$TMPDIR" && tmpdir="$TMPDIR" | |
- tmpdir_mktemp=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null` | |
- if test $? = 0 ; then | |
- tmpdir="$tmpdir_mktemp" | |
- unset tmpdir_mktemp | |
- else | |
- tmpdir="$tmpdir/libtool-$$" | |
- fi | |
- if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : | |
+ tmpdir="$tmpdir/libtool-$$" | |
+ save_umask=`umask` | |
+ umask 0077 | |
+ if $mkdir "$tmpdir"; then | |
+ umask $save_umask | |
else | |
+ umask $save_umask | |
$echo "$modename: error: cannot create temporary directory \`$… | |
continue | |
fi | |
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | |
+ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` | |
outputname="$tmpdir/$file" | |
# Replace the output file specification. | |
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%… | |
t@@ -4477,14 +5793,14 @@ relink_command=\"$relink_command\"" | |
fi | |
else | |
# Install the binary that we compiled earlier. | |
- file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` | |
+ file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir… | |
fi | |
fi | |
# remove .exe since cygwin /usr/bin/install will append another | |
# one anyways | |
case $install_prog,$host in | |
- /usr/bin/install*,*cygwin*) | |
+ */usr/bin/install*,*cygwin*) | |
case $file:$destfile in | |
*.exe:*.exe) | |
# this is ok | |
t@@ -4493,7 +5809,7 @@ relink_command=\"$relink_command\"" | |
destfile=$destfile.exe | |
;; | |
*:*.exe) | |
- destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` | |
+ destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` | |
;; | |
esac | |
;; | |
t@@ -4514,16 +5830,17 @@ relink_command=\"$relink_command\"" | |
$show "$install_prog $file $oldlib" | |
$run eval "$install_prog \$file \$oldlib" || exit $? | |
- if test -n "$stripme" && test -n "$striplib"; then | |
+ if test -n "$stripme" && test -n "$old_striplib"; then | |
$show "$old_striplib $oldlib" | |
$run eval "$old_striplib $oldlib" || exit $? | |
fi | |
# Do each command in the postinstall commands. | |
- eval cmds=\"$old_postinstall_cmds\" | |
+ cmds=$old_postinstall_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || exit $? | |
done | |
t@@ -4537,9 +5854,9 @@ relink_command=\"$relink_command\"" | |
if test -n "$current_libdirs"; then | |
# Maybe just do a dry run. | |
test -n "$run" && current_libdirs=" -n$current_libdirs" | |
- exec_cmd='$SHELL $0 --finish$current_libdirs' | |
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' | |
else | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
fi | |
;; | |
t@@ -4558,10 +5875,11 @@ relink_command=\"$relink_command\"" | |
for libdir in $libdirs; do | |
if test -n "$finish_cmds"; then | |
# Do each command in the finish commands. | |
- eval cmds=\"$finish_cmds\" | |
+ cmds=$finish_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" || admincmds="$admincmds | |
$cmd" | |
t@@ -4578,43 +5896,43 @@ relink_command=\"$relink_command\"" | |
fi | |
# Exit here if they wanted silent mode. | |
- test "$show" = ":" && exit 0 | |
+ test "$show" = : && exit $EXIT_SUCCESS | |
- echo "--------------------------------------------------------------------… | |
- echo "Libraries have been installed in:" | |
+ $echo "-------------------------------------------------------------------… | |
+ $echo "Libraries have been installed in:" | |
for libdir in $libdirs; do | |
- echo " $libdir" | |
+ $echo " $libdir" | |
done | |
- echo | |
- echo "If you ever happen to want to link against installed libraries" | |
- echo "in a given directory, LIBDIR, you must either use libtool, and" | |
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'" | |
- echo "flag during linking and do at least one of the following:" | |
+ $echo | |
+ $echo "If you ever happen to want to link against installed libraries" | |
+ $echo "in a given directory, LIBDIR, you must either use libtool, and" | |
+ $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" | |
+ $echo "flag during linking and do at least one of the following:" | |
if test -n "$shlibpath_var"; then | |
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable" | |
- echo " during execution" | |
+ $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" | |
+ $echo " during execution" | |
fi | |
if test -n "$runpath_var"; then | |
- echo " - add LIBDIR to the \`$runpath_var' environment variable" | |
- echo " during linking" | |
+ $echo " - add LIBDIR to the \`$runpath_var' environment variable" | |
+ $echo " during linking" | |
fi | |
if test -n "$hardcode_libdir_flag_spec"; then | |
libdir=LIBDIR | |
eval flag=\"$hardcode_libdir_flag_spec\" | |
- echo " - use the \`$flag' linker flag" | |
+ $echo " - use the \`$flag' linker flag" | |
fi | |
if test -n "$admincmds"; then | |
- echo " - have your system administrator run these commands:$admincmds" | |
+ $echo " - have your system administrator run these commands:$admincmds" | |
fi | |
if test -f /etc/ld.so.conf; then | |
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.con… | |
+ $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.co… | |
fi | |
- echo | |
- echo "See any operating system documentation about shared libraries for" | |
- echo "more information, such as the ld(1) and ld.so(8) manual pages." | |
- echo "--------------------------------------------------------------------… | |
- exit 0 | |
+ $echo | |
+ $echo "See any operating system documentation about shared libraries for" | |
+ $echo "more information, such as the ld(1) and ld.so(8) manual pages." | |
+ $echo "-------------------------------------------------------------------… | |
+ exit $EXIT_SUCCESS | |
;; | |
# libtool execute mode | |
t@@ -4626,7 +5944,7 @@ relink_command=\"$relink_command\"" | |
if test -z "$cmd"; then | |
$echo "$modename: you must specify a COMMAND" 1>&2 | |
$echo "$help" | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Handle -dlopen flags immediately. | |
t@@ -4634,18 +5952,18 @@ relink_command=\"$relink_command\"" | |
if test ! -f "$file"; then | |
$echo "$modename: \`$file' is not a file" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
dir= | |
case $file in | |
*.la) | |
# Check to see that this really is a libtool archive. | |
- if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/n… | |
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/nu… | |
else | |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# Read the libtool library. | |
t@@ -4672,7 +5990,7 @@ relink_command=\"$relink_command\"" | |
dir="$dir/$objdir" | |
else | |
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdi… | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
;; | |
t@@ -4712,7 +6030,7 @@ relink_command=\"$relink_command\"" | |
-*) ;; | |
*) | |
# Do a test to see if this is really a libtool program. | |
- if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/n… | |
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/nu… | |
# If there is no directory component, then add one. | |
case $file in | |
*/* | *\\*) . $file ;; | |
t@@ -4735,7 +6053,7 @@ relink_command=\"$relink_command\"" | |
eval "export $shlibpath_var" | |
fi | |
- # Restore saved enviroment variables | |
+ # Restore saved environment variables | |
if test "${save_LC_ALL+set}" = set; then | |
LC_ALL="$save_LC_ALL"; export LC_ALL | |
fi | |
t@@ -4752,7 +6070,7 @@ relink_command=\"$relink_command\"" | |
$echo "export $shlibpath_var" | |
fi | |
$echo "$cmd$args" | |
- exit 0 | |
+ exit $EXIT_SUCCESS | |
fi | |
;; | |
t@@ -4780,24 +6098,25 @@ relink_command=\"$relink_command\"" | |
if test -z "$rm"; then | |
$echo "$modename: you must specify an RM program" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
rmdirs= | |
+ origobjdir="$objdir" | |
for file in $files; do | |
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | |
if test "X$dir" = "X$file"; then | |
dir=. | |
- objdir="$objdir" | |
+ objdir="$origobjdir" | |
else | |
- objdir="$dir/$objdir" | |
+ objdir="$dir/$origobjdir" | |
fi | |
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | |
- test $mode = uninstall && objdir="$dir" | |
+ test "$mode" = uninstall && objdir="$dir" | |
# Remember objdir for removal later, being careful to avoid duplicates | |
- if test $mode = clean; then | |
+ if test "$mode" = clean; then | |
case " $rmdirs " in | |
*" $objdir "*) ;; | |
*) rmdirs="$rmdirs $objdir" ;; | |
t@@ -4821,7 +6140,7 @@ relink_command=\"$relink_command\"" | |
case $name in | |
*.la) | |
# Possibly a libtool archive, so verify it. | |
- if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/n… | |
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/nu… | |
. $dir/$name | |
# Delete the libtool libraries and symlinks. | |
t@@ -4829,18 +6148,19 @@ relink_command=\"$relink_command\"" | |
rmfiles="$rmfiles $objdir/$n" | |
done | |
test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" | |
- test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name… | |
+ test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${na… | |
- if test $mode = uninstall; then | |
+ if test "$mode" = uninstall; then | |
if test -n "$library_names"; then | |
# Do each command in the postuninstall commands. | |
- eval cmds=\"$postuninstall_cmds\" | |
+ cmds=$postuninstall_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" | |
- if test $? != 0 && test "$rmforce" != yes; then | |
+ if test "$?" -ne 0 && test "$rmforce" != yes; then | |
exit_status=1 | |
fi | |
done | |
t@@ -4849,13 +6169,14 @@ relink_command=\"$relink_command\"" | |
if test -n "$old_library"; then | |
# Do each command in the old_postuninstall commands. | |
- eval cmds=\"$old_postuninstall_cmds\" | |
+ cmds=$old_postuninstall_cmds | |
save_ifs="$IFS"; IFS='~' | |
for cmd in $cmds; do | |
IFS="$save_ifs" | |
+ eval cmd=\"$cmd\" | |
$show "$cmd" | |
$run eval "$cmd" | |
- if test $? != 0 && test "$rmforce" != yes; then | |
+ if test "$?" -ne 0 && test "$rmforce" != yes; then | |
exit_status=1 | |
fi | |
done | |
t@@ -4867,22 +6188,52 @@ relink_command=\"$relink_command\"" | |
;; | |
*.lo) | |
- if test "$build_old_libs" = yes; then | |
- oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` | |
- rmfiles="$rmfiles $dir/$oldobj" | |
+ # Possibly a libtool object, so verify it. | |
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/nu… | |
+ | |
+ # Read the .lo file | |
+ . $dir/$name | |
+ | |
+ # Add PIC object to the list of files to remove. | |
+ if test -n "$pic_object" \ | |
+ && test "$pic_object" != none; then | |
+ rmfiles="$rmfiles $dir/$pic_object" | |
+ fi | |
+ | |
+ # Add non-PIC object to the list of files to remove. | |
+ if test -n "$non_pic_object" \ | |
+ && test "$non_pic_object" != none; then | |
+ rmfiles="$rmfiles $dir/$non_pic_object" | |
+ fi | |
fi | |
;; | |
*) | |
- # Do a test to see if this is a libtool program. | |
- if test $mode = clean && | |
- (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/n… | |
- relink_command= | |
- . $dir/$file | |
+ if test "$mode" = clean ; then | |
+ noexename=$name | |
+ case $file in | |
+ *.exe) | |
+ file=`$echo $file|${SED} 's,.exe$,,'` | |
+ noexename=`$echo $name|${SED} 's,.exe$,,'` | |
+ # $file with .exe has already been added to rmfiles, | |
+ # add $file without .exe | |
+ rmfiles="$rmfiles $file" | |
+ ;; | |
+ esac | |
+ # Do a test to see if this is a libtool program. | |
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/… | |
+ relink_command= | |
+ . $dir/$noexename | |
- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" | |
- if test "$fast_install" = yes && test -n "$relink_command"; then | |
- rmfiles="$rmfiles $objdir/lt-$name" | |
+ # note $name still contains .exe if it was in $file originally | |
+ # as does the version of $file that was added into $rmfiles | |
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" | |
+ if test "$fast_install" = yes && test -n "$relink_command"; then | |
+ rmfiles="$rmfiles $objdir/lt-$name" | |
+ fi | |
+ if test "X$noexename" != "X$name" ; then | |
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c" | |
+ fi | |
fi | |
fi | |
;; | |
t@@ -4890,6 +6241,7 @@ relink_command=\"$relink_command\"" | |
$show "$rm $rmfiles" | |
$run $rm $rmfiles || exit_status=1 | |
done | |
+ objdir="$origobjdir" | |
# Try to remove the ${objdir}s in the directories where we deleted files | |
for dir in $rmdirs; do | |
t@@ -4905,20 +6257,20 @@ relink_command=\"$relink_command\"" | |
"") | |
$echo "$modename: you must specify a MODE" 1>&2 | |
$echo "$generic_help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
if test -z "$exec_cmd"; then | |
$echo "$modename: invalid operation mode \`$mode'" 1>&2 | |
$echo "$generic_help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
fi # test -z "$show_help" | |
if test -n "$exec_cmd"; then | |
eval exec $exec_cmd | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
fi | |
# We need to display help for each of the modes. | |
t@@ -4937,6 +6289,7 @@ Provide generalized library-building support services. | |
--mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] | |
--quiet same as \`--silent' | |
--silent don't print informational messages | |
+ --tag=TAG use configuration variables from tag TAG | |
--version print version information | |
MODE must be one of the following: | |
t@@ -4950,8 +6303,10 @@ MODE must be one of the following: | |
uninstall remove libraries from an installed directory | |
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for | |
-a more detailed description of MODE." | |
- exit 0 | |
+a more detailed description of MODE. | |
+ | |
+Report bugs to <[email protected]>." | |
+ exit $EXIT_SUCCESS | |
;; | |
clean) | |
t@@ -5062,6 +6417,9 @@ The following components of LINK-COMMAND are treated spe… | |
-no-install link a not-installable executable | |
-no-undefined declare that a library does not refer to external symbols | |
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects | |
+ -objectlist FILE Use a list of object files found in FILE to specify objects | |
+ -precious-files-regex REGEX | |
+ don't remove output files matching REGEX | |
-release RELEASE specify package release information | |
-rpath LIBDIR the created library will eventually be installed in LIBDIR | |
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries | |
t@@ -5103,14 +6461,34 @@ Otherwise, only FILE itself is deleted using RM." | |
*) | |
$echo "$modename: invalid operation mode \`$mode'" 1>&2 | |
$echo "$help" 1>&2 | |
- exit 1 | |
+ exit $EXIT_FAILURE | |
;; | |
esac | |
-echo | |
+$echo | |
$echo "Try \`$modename --help' for more information about other modes." | |
-exit 0 | |
+exit $? | |
+ | |
+# The TAGs below are defined such that we never get into a situation | |
+# in which we disable both kinds of libraries. Given conflicting | |
+# choices, we go for a static library, that is the most portable, | |
+# since we can't tell whether shared libraries were disabled because | |
+# the user asked for that or because the platform doesn't support | |
+# them. This is particularly important on AIX, because we don't | |
+# support having both static and shared libraries enabled at the same | |
+# time on that platform, so we default to a shared-only configuration. | |
+# If a disable-shared tag is given, we'll fallback to a static-only | |
+# configuration. But we'll never go from static-only to shared-only. | |
+ | |
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared | |
+build_libtool_libs=no | |
+build_old_libs=yes | |
+# ### END LIBTOOL TAG CONFIG: disable-shared | |
+ | |
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static | |
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esa… | |
+# ### END LIBTOOL TAG CONFIG: disable-static | |
# Local Variables: | |
# mode:shell-script |