summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure9
-rwxr-xr-xconfig103
2 files changed, 87 insertions, 25 deletions
diff --git a/Configure b/Configure
index 368b8991cc..f0a88f8468 100755
--- a/Configure
+++ b/Configure
@@ -584,6 +584,15 @@ my %target_attr_translate =(
rm => 'RM',
);
+# Initialisers coming from 'config' scripts
+$config{defines} = [ split(/$list_separator_re/, env('__CNF_CPPDEFINES')) ],
+$config{includes} = [ split(/$list_separator_re/, env('__CNF_CPPINCLUDES')) ],
+$config{cppflags} = [ env('__CNF_CPPFLAGS') || () ],
+$config{cflags} = [ env('__CNF_CFLAGS') || () ],
+$config{cxxflags} = [ env('__CNF_CXXFLAGS') || () ],
+$config{lflags} = [ env('__CNF_LDFLAGS') || () ],
+$config{ex_libs} = [ env('__CNF_LDLIBS') || () ],
+
$config{openssl_api_defines}=[];
$config{openssl_algorithm_defines}=[];
$config{openssl_thread_defines}=[];
diff --git a/config b/config
index 00f9087611..92dfa4af7f 100755
--- a/config
+++ b/config
@@ -40,6 +40,15 @@ EOF
esac
done
+# Environment that's being passed to Configure
+__CNF_CPPDEFINES=
+__CNF_CPPINCLUDES=
+__CNF_CPPFLAGS=
+__CNF_CFLAGS=
+__CNF_CXXFLAGS=
+__CNF_LDFLAGS=
+__CNF_LDLIBS=
+
# First get uname entries that we use below
[ "$MACHINE" ] || MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
@@ -504,10 +513,12 @@ case "$GUESSOS" in
OUT="darwin64-x86_64-cc"
fi ;;
armv6+7-*-iphoneos)
- options="$options -arch%20armv6 -arch%20armv7"
+ __CNF_CFLAGS="$__CNF_CFLAGS -arch%20armv6 -arch%20armv7"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -arch%20armv6 -arch%20armv7"
OUT="iphoneos-cross" ;;
*-*-iphoneos)
- options="$options -arch%20${MACHINE}"
+ __CNF_CFLAGS="$__CNF_CFLAGS -arch%20${MACHINE}"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -arch%20${MACHINE}"
OUT="iphoneos-cross" ;;
arm64-*-iphoneos|*-*-ios64)
OUT="ios64-cross" ;;
@@ -519,9 +530,12 @@ case "$GUESSOS" in
esac
if [ "$CC" = "gcc" ]; then
case ${ISA:-generic} in
- EV5|EV45) options="$options -mcpu=ev5";;
- EV56|PCA56) options="$options -mcpu=ev56";;
- *) options="$options -mcpu=ev6";;
+ EV5|EV45) __CNF_CFLAGS="$__CNF_CFLAGS -mcpu=ev5"
+ __CNF_CXXFLAGS="$__CNF_CFLAGS -mcpu=ev5";;
+ EV56|PCA56) __CNF_CFLAGS="$__CNF_CFLAGS -mcpu=ev56"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -mcpu=ev56";;
+ *) __CNF_CFLAGS="$__CNF_CFLAGS -mcpu=ev6"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -mcpu=ev6";;
esac
fi
;;
@@ -538,7 +552,12 @@ case "$GUESSOS" in
OUT="linux-ppc64"
else
OUT="linux-ppc"
- (echo "__LP64__" | gcc -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null) || options="$options -m32"
+ if (echo "__LP64__" | gcc -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null); then
+ :;
+ else
+ __CNF_CFLAGS="$__CNF_CFLAGS -m32"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -m32"
+ fi
fi
;;
ppc64le-*-linux2) OUT="linux-ppc64le" ;;
@@ -574,7 +593,8 @@ case "$GUESSOS" in
sun4u*) OUT="linux-sparcv9" ;;
sun4m) OUT="linux-sparcv8" ;;
sun4d) OUT="linux-sparcv8" ;;
- *) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
+ *) OUT="linux-generic32";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DB_ENDIAN" ;;
esac ;;
parisc*-*-linux2)
# 64-bit builds under parisc64 linux are not supported and
@@ -596,16 +616,25 @@ case "$GUESSOS" in
CPUSCHEDULE=`echo $CPUSCHEDULE|sed -e 's/7300LC/7100LC/' -e 's/8.00/8000/'`
# Finish Model transformations
- options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH"
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DB_ENDIAN"
+ __CNF_CFLAGS="$__CNF_CFLAGS -mschedule=$CPUSCHEDULE -march=$CPUARCH"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -mschedule=$CPUSCHEDULE -march=$CPUARCH"
OUT="linux-generic32" ;;
armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
- armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;;
+ armv[7-9]*-*-linux2) OUT="linux-armv4"
+ __CNF_CFLAGS="$__CNF_CFLAGS -march=armv7-a"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -march=armv7-a"
+ ;;
arm*-*-linux2) OUT="linux-armv4" ;;
aarch64-*-linux2) OUT="linux-aarch64" ;;
- sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
- sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
- m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
- s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
+ sh*b-*-linux2) OUT="linux-generic32";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DB_ENDIAN" ;;
+ sh*-*-linux2) OUT="linux-generic32";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DL_ENDIAN" ;;
+ m68k*-*-linux2) OUT="linux-generic32";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DB_ENDIAN" ;;
+ s390-*-linux2) OUT="linux-generic32";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DB_ENDIAN" ;;
s390x-*-linux2)
# To be uncommented when glibc bug is fixed, see Configure...
#if egrep -e '^features.* highgprs' /proc/cpuinfo >/dev/null ; then
@@ -687,9 +716,12 @@ case "$GUESSOS" in
;;
*-*-sunos4) OUT="sunos-$CC" ;;
- *86*-*-bsdi4) OUT="BSD-x86-elf"; options="$options no-sse2 -ldl" ;;
- alpha*-*-*bsd*) OUT="BSD-generic64"; options="$options -DL_ENDIAN" ;;
- powerpc64-*-*bsd*) OUT="BSD-generic64"; options="$options -DB_ENDIAN" ;;
+ *86*-*-bsdi4) OUT="BSD-x86-elf"; options="$options no-sse2";
+ __CNF_LDFLAGS="$__CNF_LDFLAGS -ldl" ;;
+ alpha*-*-*bsd*) OUT="BSD-generic64";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DL_ENDIAN" ;;
+ powerpc64-*-*bsd*) OUT="BSD-generic64";
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DB_ENDIAN" ;;
sparc64-*-*bsd*) OUT="BSD-sparc64" ;;
ia64-*-*bsd*) OUT="BSD-ia64" ;;
x86_64-*-dragonfly*) OUT="BSD-x86_64" ;;
@@ -716,7 +748,8 @@ case "$GUESSOS" in
if [ "$CC" = "gcc" ]; then
OUT="unixware-7-gcc" ; options="$options no-sse2"
else
- OUT="unixware-7" ; options="$options no-sse2 -D__i386__"
+ OUT="unixware-7" ; options="$options no-sse2"
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -D__i386__"
fi
;;
*-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0"; options="$options no-sse2 no-sha512" ;;
@@ -763,7 +796,7 @@ case "$GUESSOS" in
else # Motorola(?) CPU
OUT="hpux-$CC"
fi
- options="$options -D_REENTRANT" ;;
+ __CNF_CPPFLAGS="$__CNF_CPPFLAGS -D_REENTRANT" ;;
*-hpux) OUT="hpux-parisc-$CC" ;;
*-aix)
[ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null`
@@ -802,7 +835,9 @@ case "$GUESSOS" in
*-*-qnx6) OUT="QNX6" ;;
x86-*-android|i?86-*-android) OUT="android-x86" ;;
armv[7-9]*-*-android)
- OUT="android-armeabi"; options="$options -march=armv7-a" ;;
+ OUT="android-armeabi"
+ __CNF_CFLAGS="$__CNF_CFLAGS -march=armv7-a"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -march=armv7-a";;
arm*-*-android) OUT="android-armeabi" ;;
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
esac
@@ -816,7 +851,7 @@ esac
# See whether we can compile Atalla support
#if [ -f /usr/include/atasi.h ]
#then
-# options="$options -DATALLA"
+# __CNF_CPPFLAGS="$__CNF_CPPFLAGS -DATALLA"
#fi
if [ -n "$CONFIG_OPTIONS" ]; then
@@ -824,9 +859,11 @@ if [ -n "$CONFIG_OPTIONS" ]; then
fi
if expr "$options" : '.*no\-asm' > /dev/null; then :; else
- sh -c "$CROSS_COMPILE${CC:-gcc} -Wa,--help -c -o /tmp/null.$$.o -x assembler /dev/null && rm /tmp/null.$$.o" 2>&1 | \
- grep \\--noexecstack >/dev/null && \
- options="$options -Wa,--noexecstack"
+ if sh -c "$CROSS_COMPILE${CC:-gcc} -Wa,--help -c -o /tmp/null.$$.o -x assembler /dev/null && rm /tmp/null.$$.o" 2>&1 | \
+ grep \\--noexecstack >/dev/null; then
+ __CNF_CFLAGS="$__CNF_CFLAGS -Wa,--noexecstack"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -Wa,--noexecstack"
+ fi
fi
# gcc < 2.8 does not support -march=ultrasparc
@@ -900,12 +937,28 @@ OUT="$OUT"
$PERL $THERE/Configure LIST | grep "$OUT" > /dev/null
if [ $? = "0" ]; then
if [ "$VERBOSE" = "true" ]; then
- echo $PERL $THERE/Configure $OUT $options
+ echo /usr/bin/env \
+ __CNF_CPPDEFINES="'$__CNF_CPPDEFINES'" \
+ __CNF_CPPINCLUDES="'$__CNF_CPPINCLUDES'" \
+ __CNF_CPPFLAGS="'$__CNF_CPPFLAGS'" \
+ __CNF_CFLAGS="'$__CNF_CFLAGS'" \
+ __CNF_CXXFLAGS="'$__CNF_CXXFLAGS'" \
+ __CNF_LDFLAGS="'$__CNF_LDFLAGS'" \
+ __CNF_LDLIBS="'$__CNF_LDLIBS'" \
+ $PERL $THERE/Configure $OUT $options
fi
if [ "$DRYRUN" = "false" ]; then
# eval to make sure quoted options, possibly with spaces inside,
# are treated right
- eval $PERL $THERE/Configure $OUT $options
+ eval /usr/bin/env \
+ __CNF_CPPDEFINES="'$__CNF_CPPDEFINES'" \
+ __CNF_CPPINCLUDES="'$__CNF_CPPINCLUDES'" \
+ __CNF_CPPFLAGS="'$__CNF_CPPFLAGS'" \
+ __CNF_CFLAGS="'$__CNF_CFLAGS'" \
+ __CNF_CXXFLAGS="'$__CNF_CXXFLAGS'" \
+ __CNF_LDFLAGS="'$__CNF_LDFLAGS'" \
+ __CNF_LDLIBS="'$__CNF_LDLIBS'" \
+ $PERL $THERE/Configure $OUT $options
fi
else
echo "This system ($OUT) is not supported. See file INSTALL for details."