X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=config;h=f7d4ca7e2729e93ba3211510e6043bd1dd370ae4;hp=690f6630bc94154e5054ef8d4aafa70b421c5e2b;hb=1bdb8633c105e11708ec79034eb1f0531799d3fa;hpb=dabba1104b74f5f0926af71d2466b0b00fc99c20 diff --git a/config b/config index 690f6630bc..f7d4ca7e27 100755 --- a/config +++ b/config @@ -1,17 +1,11 @@ #!/bin/sh # -# config - this is a merge of minarch and GuessOS from the Apache Group -# which then automatically runs Configure from SSLeay after -# mapping the Apache names for OSs into SSLeay names +# OpenSSL config: determine the operating system and run ./Configure # -# 29-May-97 eay Added no-asm option -# 27-May-97 eay Alpha linux mods -# ??-May-97 eay IRIX mods -# 16-Sep-97 tjh first cut of merged version -# -# Tim Hudson -# tjh@cryptsoft.com +# "config -h" for usage information. # +# this is a merge of minarch and GuessOS from the Apache Group. +# Originally written by Tim Hudson . # Original Apache Group comments on GuessOS @@ -88,8 +82,11 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in HP-UX:*) HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "$HPUXVER" in + 11.*) + echo "${MACHINE}-hp-hpux11"; exit 0 + ;; 10.*) - echo "${MACHINE}-hp-hpux10."; exit 0 + echo "${MACHINE}-hp-hpux10"; exit 0 ;; *) echo "${MACHINE}-hp-hpux"; exit 0 @@ -97,12 +94,16 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in esac ;; - IRIX:*) - echo "${MACHINE}-sgi-irix"; exit 0 + IRIX:5.*) + echo "mips2-sgi-irix"; exit 0 + ;; + + IRIX:6.*) + echo "mips3-sgi-irix"; exit 0 ;; IRIX64:*) - echo "${MACHINE}-sgi-irix64"; exit 0 + echo "mips4-sgi-irix64"; exit 0 ;; Linux:[2-9].*) @@ -117,28 +118,42 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in echo "${MACHINE}-lynx-lynxos"; exit 0 ;; + BSD/OS:4.*) # BSD/OS always says 386 + echo "i486-whatever-bsdi4"; exit 0 + ;; + BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*) - echo "i486-whatever-bsdi"; exit 0 + case `/sbin/sysctl -n hw.model` in + Pentium*) + echo "i586-whatever-bsdi"; exit 0 + ;; + *) + echo "i386-whatever-bsdi"; exit 0 + ;; + esac; ;; BSD/386:*|BSD/OS:*) echo "${MACHINE}-whatever-bsdi"; exit 0 ;; - FreeBSD:3*:*:*) - echo "${MACHINE}-whatever-freebsd3"; exit 0 - ;; - - FreeBSD:*:*:*486*) - echo "i486-whatever-freebsd"; exit 0 + FreeBSD:*:*:*386*) + case `sysctl -n hw.model` in + Pentium*) + echo "i586-whatever-freebsd"; exit 0 + ;; + *) + echo "i386-whatever-freebsd"; exit 0 + ;; + esac; ;; FreeBSD:*) echo "${MACHINE}-whatever-freebsd"; exit 0 ;; - NetBSD:*:*:*486*) - echo "i486-whatever-netbsd"; exit 0 + NetBSD:*:*:*386*) + echo "`sysctl -n hw.model | sed 's,.*\(.\)86-class.*,i\186,'`-whateve\r-netbsd"; exit 0 ;; NetBSD:*) @@ -197,8 +212,12 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in echo "${MACHINE}-unknown-ultrix"; exit 0 ;; - SINIX*) - echo "${MACHINE}-sni-sysv4"; exit 0 + SINIX*|ReliantUNIX*) + echo "${MACHINE}-siemens-sysv4"; exit 0 + ;; + + POSIX-BC*) + echo "${MACHINE}-siemens-sysv4"; exit 0 # Here, $MACHINE == "BS2000" ;; machten:*) @@ -231,6 +250,9 @@ fi # Now NeXT ISNEXT=`hostinfo 2>/dev/null` case "$ISNEXT" in + *'NeXT Mach 3.3'*) + echo "whatever-next-nextstep3.3"; exit 0 + ;; *NeXT*) echo "whatever-next-nextstep"; exit 0 ;; @@ -239,7 +261,7 @@ esac # At this point we gone through all the one's # we know of: Punt -echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" +echo "${MACHINE}-whatever-${SYSTEM}" exit 0 ) 2>/dev/null | ( @@ -249,7 +271,6 @@ exit 0 PREFIX="" SUFFIX="" -VERBOSE="false" TEST="false" # pick up any command line args to config @@ -257,25 +278,16 @@ for i do case "$i" in -d*) PREFIX="debug-";; --v*) VERBOSE="true";; -t*) TEST="true";; --h*) cat <&1` -if [ $? = "0" ]; then +GCCVER=`(gcc --version) 2>/dev/null` +if [ "$GCCVER" != "" ]; then CC=gcc + # then strip off whatever prefix Cygnus prepends the number with... + GCCVER=`echo $GCCVER | sed 's/^[a-z]*\-//'` + # peak single digit before and after first dot, e.g. 2.95.1 gives 29 + GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` else CC=cc fi +if [ "$SYSTEM" = "SunOS" ]; then + # assume output is "blah-blah C x.x" + CCVER=`(cc -V 2>&1) 2>/dev/null | \ + egrep -e '^cc: .* C [0-9]\.[0-9]' | \ + sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'` + CCVER=${CCVER:-0} + if [ $CCVER -gt 40 ]; then + CC=cc # overrides gcc!!! + if [ $CCVER -eq 50 ]; then + echo "WARNING! Detected WorkShop C 5.0. Do make sure you have" + echo " patch #107357-01 or later applied." + sleep 5 + fi + elif [ "$CC" = "cc" -a $CCVER -gt 0 ]; then + CC=sc3 + fi +fi + +GCCVER=${GCCVER:-0} +CCVER=${CCVER:-0} + # read the output of the embedded GuessOS read GUESSOS -if [ "$VERBOSE" = "true" ]; then - echo GUESSOS $GUESSOS -fi +echo Operating system: $GUESSOS # now map the output into SSLeay terms ... really should hack into the # script above so we end up with values in vars but that would take # more time that I want to waste at the moment case "$GUESSOS" in alpha-*-linux2) OUT="alpha-gcc" ;; + ppc-*-linux2) OUT="linux-ppc" ;; + mips-*-linux?) OUT="linux-mips" ;; + mips2-sgi-irix) + CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` + CPU=${CPU:-0} + if [ $CPU -ge 4000 ]; then + options="$options -mips2" + fi + OUT="irix-$CC" + ;; + mips3-sgi-irix) + CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` + CPU=${CPU:-0} + if [ $CPU -ge 5000 ]; then + options="$options -mips4" + else + options="$options -mips3" + fi + OUT="irix-mips3-$CC" + ;; + mips4-sgi-irix64) + echo "WARNING! If you wish to build 64-bit library, then you have to" + echo " invoke './Configre irix64-mips4-$CC' *manually*." + echo " Type Ctrl-C if you don't want to continue." + read waste < /dev/tty + options="$options -mips4" + OUT="irix-mips3-$CC" + ;; + sparc64-*-linux2) + #Before we can uncomment following lines we have to wait at least + #till 64-bit glibc for SPARC is operational:-( + #echo "WARNING! If you wish to build 64-bit library, then you have to" + #echo " invoke './Configure linux64-sparcv9' *manually*." + #echo " Type Ctrl-C if you don't want to continue." + #read waste < /dev/tty + OUT="linux-sparcv9" ;; + sparc-*-linux2) + KARCH=`awk '/type/{print$3}' /proc/cpuinfo` + case ${KARCH:-sun4} in + sun4u*) OUT="linux-sparcv9" ;; + sun4m) OUT="linux-sparcv8" ;; + sun4d) OUT="linux-sparcv8" ;; + *) OUT="linux-sparcv7" ;; + esac ;; *-*-linux2) OUT="linux-elf" ;; *-*-linux1) OUT="linux-aout" ;; - sun4*-sun-solaris2) OUT="solaris-sparc-$CC" ;; + sun4u*-sun-solaris2) + ISA64=`(isalist) 2>/dev/null | grep sparcv9` + if [ "$ISA64" != "" -a "$CC" = "cc" -a $CCVER -ge 50 ]; then + echo "WARNING! If you wish to build 64-bit library, then you have to" + echo " invoke './Configure solaris64-sparcv9-cc' *manually*." + echo " Type Ctrl-C if you don't want to continue." + read waste < /dev/tty + fi + OUT="solaris-sparcv9-$CC" ;; + sun4m-sun-solaris2) OUT="solaris-sparcv8-$CC" ;; + sun4d-sun-solaris2) OUT="solaris-sparcv8-$CC" ;; + sun4*-sun-solaris2) OUT="solaris-sparcv7-$CC" ;; *86*-sun-solaris2) OUT="solaris-x86-$CC" ;; *-*-sunos4) OUT="sunos-$CC" ;; - *-freebsd3) OUT="FreeBSD-elf" ;; + alpha*-*-freebsd) OUT="FreeBSD-alpha" ;; *-freebsd) OUT="FreeBSD" ;; *86*-*-netbsd) OUT="NetBSD-x86" ;; sun3*-*-netbsd) OUT="NetBSD-m68" ;; @@ -317,40 +407,96 @@ case "$GUESSOS" in alpha*-*-openbsd) OUT="OpenBSD-alpha" ;; pmax*-*-openbsd) OUT="OpenBSD-mips" ;; *-*-openbsd) OUT="OpenBSD" ;; + *86*-*-bsdi4) OUT="bsdi-elf-gcc" ;; *-*-osf) OUT="alpha-cc" ;; *-*-unixware*) OUT="unixware-2.0" ;; - *-sni-sysv4) OUT="SINIX" ;; - *-hpux*) OUT="hpux-$CC" ;; + BS2000-siemens-sysv4) OUT="BS2000-OSD" ;; + RM*-siemens-sysv4) OUT="ReliantUNIX" ;; + *-siemens-sysv4) OUT="SINIX" ;; # these are all covered by the catchall below + # *-hpux*) OUT="hpux-$CC" ;; # *-aix) OUT="aix-$CC" ;; # *-dgux) OUT="dgux" ;; *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;; esac +# gcc < 2.8 does not support -mcpu=ultrasparc +if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ] +then + echo "WARNING! Do consider upgrading to gcc-2.8 or later." + sleep 5 + OUT=solaris-sparcv9-gcc27 +fi +if [ "$OUT" = "linux-sparcv9" -a $GCCVER -lt 28 ] +then + echo "WARNING! Falling down to 'linux-sparcv8'." + echo " Upgrade to gcc-2.8 or later." + sleep 5 + OUT=linux-sparcv8 +fi + +case "$GUESSOS" in + i386-*) options="$options 386" ;; +esac + +for i in bf cast des dh dsa hmac md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa sha +do + if [ ! -d crypto/$i ] + then + options="$options no-$i" + fi +done + if [ -z "$OUT" ]; then OUT="$CC" fi +if [ ".$PERL" = . ] ; then + for i in . `echo $PATH | sed 's/:/ /g'`; do + if [ -f "$i/perl5" ] ; then + PERL="$i/perl5" + break; + fi; + done +fi + +if [ ".$PERL" = . ] ; then + for i in . `echo $PATH | sed 's/:/ /g'`; do + if [ -f "$i/perl" ] ; then + if "$i/perl" -e 'exit($]<5.0)'; then + PERL="$i/perl" + break; + fi; + fi; + done +fi + +if [ ".$PERL" = . ] ; then + echo "You need Perl 5." + exit 1 +fi + # run Configure to check to see if we need to specify the # compiler for the platform ... in which case we add it on # the end ... otherwise we leave it off -perl ./Configure 2>&1 | grep "$OUT-$CC" > /dev/null + +$PERL ./Configure 2>&1 | grep "$OUT-$CC" > /dev/null if [ $? = "0" ]; then OUT="$OUT-$CC" fi OUT="$PREFIX$OUT" -# at this point we have the answer ... which we could check again -# and then fallback to a vanilla SSLeay build but then this script -# wouldn't get updated -echo Configuring for $OUT +$PERL ./Configure 2>&1 | grep "$OUT" > /dev/null +if [ $? = "0" ]; then + echo Configuring for $OUT -if [ "$TEST" = "true" ]; then - echo ./Configure $OUT $options + if [ "$TEST" = "true" ]; then + echo $PERL ./Configure $OUT $options + else + $PERL ./Configure $OUT $options + fi else - perl ./Configure $OUT $options + echo "This system ($OUT) is not supported. See file INSTALL for details." fi - ) -