config revision 101613
155714Skris#!/bin/sh 255714Skris# 355714Skris# OpenSSL config: determine the operating system and run ./Configure 455714Skris# 555714Skris# "config -h" for usage information. 655714Skris# 755714Skris# this is a merge of minarch and GuessOS from the Apache Group. 855714Skris# Originally written by Tim Hudson <tjh@cryptsoft.com>. 955714Skris 1055714Skris# Original Apache Group comments on GuessOS 1155714Skris 1255714Skris# Simple OS/Platform guesser. Similar to config.guess but 1355714Skris# much, much smaller. Since it was developed for use with 1455714Skris# Apache, it follows under Apache's regular licensing 1555714Skris# with one specific addition: Any changes or additions 1655714Skris# to this script should be Emailed to the Apache 1755714Skris# group (apache@apache.org) in general and to 1855714Skris# Jim Jagielski (jim@jaguNET.com) in specific. 1955714Skris# 2055714Skris# Be as similar to the output of config.guess/config.sub 2155714Skris# as possible. 2255714Skris 2355714Skris# First get uname entries that we use below 2455714Skris 2555714SkrisMACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown" 2655714SkrisRELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown" 2755714SkrisSYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown" 2855714SkrisVERSION=`(uname -v) 2>/dev/null` || VERSION="unknown" 2955714Skris 3059191Skris 3155714Skris# Now test for ISC and SCO, since it is has a braindamaged uname. 3255714Skris# 3355714Skris# We need to work around FreeBSD 1.1.5.1 3455714Skris( 3555714SkrisXREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'` 3655714Skrisif [ "x$XREL" != "x" ]; then 3755714Skris if [ -f /etc/kconfig ]; then 3855714Skris case "$XREL" in 3955714Skris 4.0|4.1) 4055714Skris echo "${MACHINE}-whatever-isc4"; exit 0 4155714Skris ;; 4255714Skris esac 4355714Skris else 4455714Skris case "$XREL" in 4555714Skris 3.2v4.2) 4655714Skris echo "whatever-whatever-sco3"; exit 0 4755714Skris ;; 4855714Skris 3.2v5.0*) 4955714Skris echo "whatever-whatever-sco5"; exit 0 5055714Skris ;; 5155714Skris 4.2MP) 5276866Skris if [ "x$VERSION" = "x2.01" ]; then 5376866Skris echo "${MACHINE}-whatever-unixware201"; exit 0 5476866Skris elif [ "x$VERSION" = "x2.02" ]; then 5576866Skris echo "${MACHINE}-whatever-unixware202"; exit 0 5676866Skris elif [ "x$VERSION" = "x2.03" ]; then 5776866Skris echo "${MACHINE}-whatever-unixware203"; exit 0 5876866Skris elif [ "x$VERSION" = "x2.1.1" ]; then 5955714Skris echo "${MACHINE}-whatever-unixware211"; exit 0 6059191Skris elif [ "x$VERSION" = "x2.1.2" ]; then 6159191Skris echo "${MACHINE}-whatever-unixware212"; exit 0 6276866Skris elif [ "x$VERSION" = "x2.1.3" ]; then 6376866Skris echo "${MACHINE}-whatever-unixware213"; exit 0 6455714Skris else 6555714Skris echo "${MACHINE}-whatever-unixware2"; exit 0 6655714Skris fi 6755714Skris ;; 6855714Skris 4.2) 6955714Skris echo "whatever-whatever-unixware1"; exit 0 7055714Skris ;; 7189837Skris OpenUNIX) 7289837Skris if [ "`echo x$VERSION | sed -e 's/\..*//'`" = "x8" ]; then 7389837Skris echo "${MACHINE}-unknown-OpenUNIX${VERSION}"; exit 0 7489837Skris fi 7589837Skris ;; 7659191Skris 5) 7759191Skris if [ "`echo x$VERSION | sed -e 's/\..*//'`" = "x7" ]; then 7859191Skris echo "${MACHINE}-sco-unixware7"; exit 0 7959191Skris fi 8059191Skris ;; 8155714Skris esac 8255714Skris fi 8355714Skrisfi 8455714Skris# Now we simply scan though... In most cases, the SYSTEM info is enough 8555714Skris# 8655714Skriscase "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in 8768651Skris MPE/iX:*) 8868651Skris MACHINE=`echo "$MACHINE" | sed -e 's/-/_/g'` 8968651Skris echo "parisc-hp-MPE/iX"; exit 0 9068651Skris ;; 9155714Skris A/UX:*) 9255714Skris echo "m68k-apple-aux3"; exit 0 9355714Skris ;; 9455714Skris 9576866Skris AIX:[3456789]:4:*) 9676866Skris echo "${MACHINE}-ibm-aix43"; exit 0 9776866Skris ;; 9876866Skris 9976866Skris AIX:*:[56789]:*) 10076866Skris echo "${MACHINE}-ibm-aix43"; exit 0 10176866Skris ;; 10276866Skris 10355714Skris AIX:*) 10455714Skris echo "${MACHINE}-ibm-aix"; exit 0 10555714Skris ;; 10655714Skris 10755714Skris dgux:*) 10855714Skris echo "${MACHINE}-dg-dgux"; exit 0 10955714Skris ;; 11055714Skris 11155714Skris HI-UX:*) 11255714Skris echo "${MACHINE}-hi-hiux"; exit 0 11355714Skris ;; 11455714Skris 11555714Skris HP-UX:*) 11655714Skris HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'` 11755714Skris case "$HPUXVER" in 11855714Skris 11.*) 11955714Skris echo "${MACHINE}-hp-hpux11"; exit 0 12055714Skris ;; 12155714Skris 10.*) 12255714Skris echo "${MACHINE}-hp-hpux10"; exit 0 12355714Skris ;; 12455714Skris *) 12555714Skris echo "${MACHINE}-hp-hpux"; exit 0 12655714Skris ;; 12755714Skris esac 12855714Skris ;; 12955714Skris 13055714Skris IRIX:5.*) 13155714Skris echo "mips2-sgi-irix"; exit 0 13255714Skris ;; 13355714Skris 13455714Skris IRIX:6.*) 13555714Skris echo "mips3-sgi-irix"; exit 0 13655714Skris ;; 13755714Skris 13855714Skris IRIX64:*) 13955714Skris echo "mips4-sgi-irix64"; exit 0 14055714Skris ;; 14155714Skris 14255714Skris Linux:[2-9].*) 14355714Skris echo "${MACHINE}-whatever-linux2"; exit 0 14455714Skris ;; 14555714Skris 14655714Skris Linux:1.*) 14755714Skris echo "${MACHINE}-whatever-linux1"; exit 0 14855714Skris ;; 14955714Skris 15055714Skris LynxOS:*) 15155714Skris echo "${MACHINE}-lynx-lynxos"; exit 0 15255714Skris ;; 15355714Skris 15455714Skris BSD/OS:4.*) # BSD/OS always says 386 15555714Skris echo "i486-whatever-bsdi4"; exit 0 15655714Skris ;; 15755714Skris 15855714Skris BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*) 15955714Skris case `/sbin/sysctl -n hw.model` in 16055714Skris Pentium*) 16155714Skris echo "i586-whatever-bsdi"; exit 0 16255714Skris ;; 16355714Skris *) 16455714Skris echo "i386-whatever-bsdi"; exit 0 16555714Skris ;; 16655714Skris esac; 16755714Skris ;; 16855714Skris 16955714Skris BSD/386:*|BSD/OS:*) 17055714Skris echo "${MACHINE}-whatever-bsdi"; exit 0 17155714Skris ;; 17255714Skris 17355714Skris FreeBSD:*) 17455714Skris VERS=`echo ${RELEASE} | sed -e 's/[-(].*//'` 17555714Skris MACH=`sysctl -n hw.model` 17655714Skris ARCH='whatever' 17755714Skris case ${MACH} in 17855714Skris *386* ) MACH="i386" ;; 17955714Skris *486* ) MACH="i486" ;; 18055714Skris Pentium\ II*) MACH="i686" ;; 18155714Skris Pentium* ) MACH="i586" ;; 18255714Skris Alpha* ) MACH="alpha" ;; 18355714Skris * ) MACH="$MACHINE" ;; 18455714Skris esac 18555714Skris case ${MACH} in 18655714Skris i[0-9]86 ) ARCH="pc" ;; 18755714Skris esac 18855714Skris echo "${MACH}-${ARCH}-freebsd${VERS}"; exit 0 18955714Skris ;; 19055714Skris 19155714Skris NetBSD:*:*:*386*) 19272613Skris echo "`(/usr/sbin/sysctl -n hw.model || /sbin/sysctl -n hw.model) | sed 's,.*\(.\)86-class.*,i\186,'`-whatever-netbsd"; exit 0 19355714Skris ;; 19455714Skris 19555714Skris NetBSD:*) 19655714Skris echo "${MACHINE}-whatever-netbsd"; exit 0 19755714Skris ;; 19855714Skris 19955714Skris OpenBSD:*) 20055714Skris echo "${MACHINE}-whatever-openbsd"; exit 0 20155714Skris ;; 20255714Skris 20389837Skris OpenUNIX:*) 20489837Skris echo "${MACHINE}-unknown-OpenUNIX${VERSION}"; exit 0 20589837Skris ;; 20689837Skris 20755714Skris OSF1:*:*:*alpha*) 20889837Skris OSFMAJOR=`echo ${RELEASE}| sed -e 's/^V\([0-9]*\)\..*$/\1/'` 20989837Skris case "$OSFMAJOR" in 21089837Skris 4|5) 21189837Skris echo "${MACHINE}-dec-tru64"; exit 0 21289837Skris ;; 21389837Skris 1|2|3) 21489837Skris echo "${MACHINE}-dec-osf"; exit 0 21589837Skris ;; 21689837Skris *) 21789837Skris echo "${MACHINE}-dec-osf"; exit 0 21889837Skris ;; 21989837Skris esac 22055714Skris ;; 22155714Skris 22255714Skris QNX:*) 22389837Skris case "$RELEASE" in 22468651Skris 4*) 22568651Skris echo "${MACHINE}-whatever-qnx4" 22655714Skris ;; 22789837Skris 6*) 22889837Skris echo "${MACHINE}-whatever-qnx6" 22989837Skris ;; 23055714Skris *) 23168651Skris echo "${MACHINE}-whatever-qnx" 23255714Skris ;; 23355714Skris esac 23455714Skris exit 0 23555714Skris ;; 23655714Skris 23755714Skris Paragon*:*:*:*) 23855714Skris echo "i860-intel-osf1"; exit 0 23955714Skris ;; 24055714Skris 24159191Skris Rhapsody:*) 24259191Skris echo "ppc-apple-rhapsody"; exit 0 24359191Skris ;; 24459191Skris 24589837Skris Darwin:*) 24689837Skris echo "ppc-apple-darwin"; exit 0 24789837Skris ;; 24889837Skris 24955714Skris SunOS:5.*) 25068651Skris echo "${MACHINE}-whatever-solaris2"; exit 0 25155714Skris ;; 25255714Skris 25355714Skris SunOS:*) 25455714Skris echo "${MACHINE}-sun-sunos4"; exit 0 25555714Skris ;; 25655714Skris 25755714Skris UNIX_System_V:4.*:*) 25855714Skris echo "${MACHINE}-whatever-sysv4"; exit 0 25955714Skris ;; 26055714Skris 26155714Skris *:4*:R4*:m88k) 26255714Skris echo "${MACHINE}-whatever-sysv4"; exit 0 26355714Skris ;; 26455714Skris 26555714Skris DYNIX/ptx:4*:*) 26655714Skris echo "${MACHINE}-whatever-sysv4"; exit 0 26755714Skris ;; 26855714Skris 26955714Skris *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*) 27055714Skris echo "i486-ncr-sysv4"; exit 0 27155714Skris ;; 27255714Skris 27355714Skris ULTRIX:*) 27455714Skris echo "${MACHINE}-unknown-ultrix"; exit 0 27555714Skris ;; 27655714Skris 27755714Skris SINIX*|ReliantUNIX*) 27855714Skris echo "${MACHINE}-siemens-sysv4"; exit 0 27955714Skris ;; 28055714Skris 28155714Skris POSIX-BC*) 28255714Skris echo "${MACHINE}-siemens-sysv4"; exit 0 # Here, $MACHINE == "BS2000" 28355714Skris ;; 28455714Skris 28555714Skris machten:*) 28655714Skris echo "${MACHINE}-tenon-${SYSTEM}"; exit 0; 28755714Skris ;; 28855714Skris 28955714Skris library:*) 29055714Skris echo "${MACHINE}-ncr-sysv4"; exit 0 29155714Skris ;; 29255714Skris 29355714Skris ConvexOS:*:11.0:*) 29455714Skris echo "${MACHINE}-v11-${SYSTEM}"; exit 0; 29555714Skris ;; 29655714Skris 29768651Skris NEWS-OS:4.*) 29868651Skris echo "mips-sony-newsos4"; exit 0; 29968651Skris ;; 30068651Skris 30189837Skris CYGWIN*) 302100928Snectar case "$RELEASE" in 303100928Snectar [bB]*|1.0|1.[12].*) 304100928Snectar echo "${MACHINE}-whatever-cygwin_pre1.3" 305100928Snectar ;; 306100928Snectar *) 307100928Snectar echo "${MACHINE}-whatever-cygwin" 308100928Snectar ;; 309100928Snectar esac 310100928Snectar exit 0 31189837Skris ;; 31289837Skris 313100928Snectar *"CRAY T3E") 314100928Snectar echo "t3e-cray-unicosmk"; exit 0; 315100928Snectar ;; 316100928Snectar 317100928Snectar *CRAY*) 318100928Snectar echo "j90-cray-unicos"; exit 0; 319100928Snectar ;; 32055714Skrisesac 32155714Skris 32255714Skris# 32355714Skris# Ugg. These are all we can determine by what we know about 32455714Skris# the output of uname. Be more creative: 32555714Skris# 32655714Skris 32755714Skris# Do the Apollo stuff first. Here, we just simply assume 32855714Skris# that the existance of the /usr/apollo directory is proof 32955714Skris# enough 33055714Skrisif [ -d /usr/apollo ]; then 33155714Skris echo "whatever-apollo-whatever" 33255714Skris exit 0 33355714Skrisfi 33455714Skris 33555714Skris# Now NeXT 33655714SkrisISNEXT=`hostinfo 2>/dev/null` 33755714Skriscase "$ISNEXT" in 33855714Skris *'NeXT Mach 3.3'*) 33955714Skris echo "whatever-next-nextstep3.3"; exit 0 34055714Skris ;; 34155714Skris *NeXT*) 34255714Skris echo "whatever-next-nextstep"; exit 0 34355714Skris ;; 34455714Skrisesac 34555714Skris 34655714Skris# At this point we gone through all the one's 34755714Skris# we know of: Punt 34855714Skris 34955714Skrisecho "${MACHINE}-whatever-${SYSTEM}" 35055714Skrisexit 0 35155714Skris) 2>/dev/null | ( 35255714Skris 35355714Skris# --------------------------------------------------------------------------- 35455714Skris# this is where the translation occurs into SSLeay terms 35555714Skris# --------------------------------------------------------------------------- 35655714Skris 35755714SkrisPREFIX="" 35855714SkrisSUFFIX="" 35955714SkrisTEST="false" 36055714Skris 36155714Skris# pick up any command line args to config 36255714Skrisfor i 36355714Skrisdo 36455714Skriscase "$i" in 36555714Skris-d*) PREFIX="debug-";; 36655714Skris-t*) TEST="true";; 36755714Skris-h*) TEST="true"; cat <<EOF 36855714SkrisUsage: config [options] 36955714Skris -d Add a debug- prefix to machine choice. 37055714Skris -t Test mode, do not run the Configure perl script. 37155714Skris -h This help. 37255714Skris 37355714SkrisAny other text will be passed to the Configure perl script. 37455714SkrisSee INSTALL for instructions. 37555714Skris 37655714SkrisEOF 37755714Skris;; 37855714Skris*) options=$options" $i" ;; 37955714Skrisesac 38055714Skrisdone 38155714Skris 38255714Skris# figure out if gcc is available and if so we use it otherwise 38355714Skris# we fallback to whatever cc does on the system 384100936SnectarGCCVER=`(gcc -dumpversion) 2>/dev/null` 38555714Skrisif [ "$GCCVER" != "" ]; then 38655714Skris CC=gcc 387100936Snectar # Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion 388100936Snectar # does give us what we want though, so we use that. We just just the 389100936Snectar # major and minor version numbers. 39055714Skris # peak single digit before and after first dot, e.g. 2.95.1 gives 29 39155714Skris GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` 39255714Skriselse 39355714Skris CC=cc 39455714Skrisfi 395101613SnectarGCCVER=${GCCVER:-0} 396100936Snectarif [ "$SYSTEM" = "HP-UX" ];then 397100936Snectar # By default gcc is a ILP32 compiler (with long long == 64). 398100936Snectar GCC_BITS="32" 399100936Snectar if [ $GCCVER -ge 30 ]; then 400100936Snectar # PA64 support only came in with gcc 3.0.x. 401100936Snectar # We look for the preprocessor symbol __LP64__ indicating 402100936Snectar # 64bit bit long and pointer. sizeof(int) == 32 on HPUX64. 403100936Snectar if gcc -v -E -x c /dev/null 2>&1 | grep __LP64__ > /dev/null; then 404100936Snectar GCC_BITS="64" 405100936Snectar fi 406100936Snectar fi 407100936Snectarfi 40855714Skrisif [ "$SYSTEM" = "SunOS" ]; then 40959191Skris # check for WorkShop C, expected output is "cc: blah-blah C x.x" 41055714Skris CCVER=`(cc -V 2>&1) 2>/dev/null | \ 41155714Skris egrep -e '^cc: .* C [0-9]\.[0-9]' | \ 41255714Skris sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'` 41355714Skris CCVER=${CCVER:-0} 41455714Skris if [ $CCVER -gt 40 ]; then 41555714Skris CC=cc # overrides gcc!!! 41655714Skris if [ $CCVER -eq 50 ]; then 41755714Skris echo "WARNING! Detected WorkShop C 5.0. Do make sure you have" 41855714Skris echo " patch #107357-01 or later applied." 41955714Skris sleep 5 42055714Skris fi 42155714Skris elif [ "$CC" = "cc" -a $CCVER -gt 0 ]; then 42255714Skris CC=sc3 42355714Skris fi 42455714Skrisfi 42555714Skris 42659191Skrisif [ "${SYSTEM}-${MACHINE}" = "Linux-alpha" ]; then 42759191Skris # check for Compaq C, expected output is "blah-blah C Vx.x" 42859191Skris CCCVER=`(ccc -V 2>&1) 2>/dev/null | \ 42959191Skris egrep -e '.* C V[0-9]\.[0-9]' | \ 43059191Skris sed 's/.* C V\([0-9]\)\.\([0-9]\).*/\1\2/'` 43159191Skris CCCVER=${CCCVER:-0} 43259191Skris if [ $CCCVER -gt 60 ]; then 43359191Skris CC=ccc # overrides gcc!!! well, ccc outperforms inoticeably 43459191Skris # only on hash routines and des, otherwise gcc (2.95) 43559191Skris # keeps along rather tight... 43659191Skris fi 43759191Skrisfi 43859191Skris 43955714SkrisGCCVER=${GCCVER:-0} 44055714SkrisCCVER=${CCVER:-0} 44155714Skris 44255714Skris# read the output of the embedded GuessOS 44355714Skrisread GUESSOS 44455714Skris 44555714Skrisecho Operating system: $GUESSOS 44655714Skris 44755714Skris# now map the output into SSLeay terms ... really should hack into the 44855714Skris# script above so we end up with values in vars but that would take 44955714Skris# more time that I want to waste at the moment 45055714Skriscase "$GUESSOS" in 45155714Skris mips2-sgi-irix) 45255714Skris CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 45355714Skris CPU=${CPU:-0} 45455714Skris if [ $CPU -ge 4000 ]; then 45555714Skris options="$options -mips2" 45655714Skris fi 45755714Skris OUT="irix-$CC" 45855714Skris ;; 45955714Skris mips3-sgi-irix) 46055714Skris CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 46155714Skris CPU=${CPU:-0} 46255714Skris if [ $CPU -ge 5000 ]; then 46355714Skris options="$options -mips4" 46455714Skris else 46555714Skris options="$options -mips3" 46655714Skris fi 46755714Skris OUT="irix-mips3-$CC" 46855714Skris ;; 46955714Skris mips4-sgi-irix64) 47055714Skris echo "WARNING! If you wish to build 64-bit library, then you have to" 47176866Skris echo " invoke './Configure irix64-mips4-$CC' *manually*." 47272613Skris echo " Type return if you want to continue, Ctrl-C to abort." 47355714Skris read waste < /dev/tty 47476866Skris CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 47576866Skris CPU=${CPU:-0} 47676866Skris if [ $CPU -ge 5000 ]; then 47776866Skris options="$options -mips4" 47876866Skris else 47976866Skris options="$options -mips3" 48076866Skris fi 48155714Skris OUT="irix-mips3-$CC" 48255714Skris ;; 48359191Skris alpha-*-linux2) 48459191Skris ISA=`awk '/cpu model/{print$4}' /proc/cpuinfo` 48559191Skris case ${ISA:-generic} in 48659191Skris *[67]) OUT="linux-alpha+bwx-$CC" ;; 48759191Skris *) OUT="linux-alpha-$CC" ;; 48859191Skris esac 48959191Skris if [ "$CC" = "gcc" ]; then 49059191Skris case ${ISA:-generic} in 49159191Skris EV5|EV45) options="$options -mcpu=ev5";; 49259191Skris EV56|PCA56) options="$options -mcpu=ev56";; 49359191Skris EV6|EV67|PCA57) options="$options -mcpu=ev6";; 49459191Skris esac 49559191Skris fi 49659191Skris ;; 49789837Skris mips-*-linux?) 49889837Skris cat >dummy.c <<EOF 49989837Skris#include <stdio.h> /* for printf() prototype */ 50089837Skris int main (argc, argv) int argc; char *argv[]; { 50189837Skris#ifdef __MIPSEB__ 50289837Skris printf ("linux-%s\n", argv[1]); 50389837Skris#endif 50489837Skris#ifdef __MIPSEL__ 50589837Skris printf ("linux-%sel\n", argv[1]); 50689837Skris#endif 50789837Skris return 0; 50889837Skris} 50989837SkrisEOF 51089837Skris ${CC} -o dummy dummy.c && OUT=`./dummy ${MACHINE}` 51189837Skris rm dummy dummy.c 51289837Skris ;; 513100936Snectar ppc64-*-linux2) 514100936Snectar #Use the standard target for PPC architecture until we create a 515100936Snectar #special one for the 64bit architecture. 516100936Snectar OUT="linux-ppc" ;; 51759191Skris ppc-*-linux2) OUT="linux-ppc" ;; 51868651Skris m68k-*-linux*) OUT="linux-m68k" ;; 51959191Skris ia64-*-linux?) OUT="linux-ia64" ;; 52059191Skris ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;; 52189837Skris ppc-apple-darwin) OUT="darwin-ppc-cc" ;; 52255714Skris sparc64-*-linux2) 52355714Skris #Before we can uncomment following lines we have to wait at least 52455714Skris #till 64-bit glibc for SPARC is operational:-( 52555714Skris #echo "WARNING! If you wish to build 64-bit library, then you have to" 52655714Skris #echo " invoke './Configure linux64-sparcv9' *manually*." 52772613Skris #echo " Type return if you want to continue, Ctrl-C to abort." 52855714Skris #read waste < /dev/tty 52955714Skris OUT="linux-sparcv9" ;; 53055714Skris sparc-*-linux2) 53172613Skris KARCH=`awk '/^type/{print$3}' /proc/cpuinfo` 53255714Skris case ${KARCH:-sun4} in 53355714Skris sun4u*) OUT="linux-sparcv9" ;; 53455714Skris sun4m) OUT="linux-sparcv8" ;; 53555714Skris sun4d) OUT="linux-sparcv8" ;; 53655714Skris *) OUT="linux-sparcv7" ;; 53755714Skris esac ;; 538100928Snectar parisc-*-linux2) 539100928Snectar CPUARCH=`awk '/cpu family/{print substr($5,1,3)}' /proc/cpuinfo` 540100928Snectar CPUSCHEDULE=`awk '/^cpu.[ ]: PA/{print substr($3,3)}' /proc/cpuinfo` 541100928Snectar 542100928Snectar # ??TODO ?? Model transformations 543100928Snectar # 0. CPU Architecture for the 1.1 processor has letter suffixes. We strip that off 544100928Snectar # assuming no further arch. identification will ever be used by GCC. 545100928Snectar # 1. I'm most concerned about whether is a 7300LC is closer to a 7100 versus a 7100LC. 546100928Snectar # 2. The variant 64-bit processors cause concern should GCC support explicit schedulers 547100928Snectar # for these chips in the future. 548100928Snectar # PA7300LC -> 7100LC (1.1) 549100928Snectar # PA8200 -> 8000 (2.0) 550100928Snectar # PA8500 -> 8000 (2.0) 551100928Snectar # PA8600 -> 8000 (2.0) 552100928Snectar 553100928Snectar CPUSCHEDULE=`echo $CPUSCHEDULE|sed -e 's/7300LC/7100LC/' -e 's/8?00/8000/'` 554100928Snectar # Finish Model transformations 555100928Snectar 556100928Snectar options="$options -mschedule=$CPUSCHEDULE -march=$CPUARCH" 557100928Snectar OUT="linux-parisc" ;; 55868651Skris arm*-*-linux2) OUT="linux-elf-arm" ;; 55972613Skris s390-*-linux2) OUT="linux-s390" ;; 560100928Snectar s390x-*-linux?) OUT="linux-s390x" ;; 56155714Skris *-*-linux2) OUT="linux-elf" ;; 56255714Skris *-*-linux1) OUT="linux-aout" ;; 56368651Skris sun4u*-*-solaris2) 56455714Skris ISA64=`(isalist) 2>/dev/null | grep sparcv9` 56555714Skris if [ "$ISA64" != "" -a "$CC" = "cc" -a $CCVER -ge 50 ]; then 56655714Skris echo "WARNING! If you wish to build 64-bit library, then you have to" 56755714Skris echo " invoke './Configure solaris64-sparcv9-cc' *manually*." 56872613Skris echo " Type return if you want to continue, Ctrl-C to abort." 56955714Skris read waste < /dev/tty 57055714Skris fi 57155714Skris OUT="solaris-sparcv9-$CC" ;; 57268651Skris sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;; 57368651Skris sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;; 57468651Skris sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;; 57568651Skris *86*-*-solaris2) OUT="solaris-x86-$CC" ;; 57655714Skris *-*-sunos4) OUT="sunos-$CC" ;; 57755714Skris alpha*-*-freebsd*) OUT="FreeBSD-alpha" ;; 57855714Skris *-freebsd[3-9]*) OUT="FreeBSD-elf" ;; 57955714Skris *-freebsd[1-2]*) OUT="FreeBSD" ;; 58055714Skris *86*-*-netbsd) OUT="NetBSD-x86" ;; 58155714Skris sun3*-*-netbsd) OUT="NetBSD-m68" ;; 58255714Skris *-*-netbsd) OUT="NetBSD-sparc" ;; 58355714Skris *86*-*-openbsd) OUT="OpenBSD-x86" ;; 58455714Skris alpha*-*-openbsd) OUT="OpenBSD-alpha" ;; 58555714Skris pmax*-*-openbsd) OUT="OpenBSD-mips" ;; 58655714Skris *-*-openbsd) OUT="OpenBSD" ;; 58755714Skris *86*-*-bsdi4) OUT="bsdi-elf-gcc" ;; 58889837Skris *-*-osf) OUT="alphaold-cc" ;; 58989837Skris *-*-tru64) OUT="alpha-cc" ;; 59089837Skris *-*-OpenUNIX*) 59189837Skris if [ "$CC" = "gcc" ]; then 59289837Skris OUT="OpenUNIX-8-gcc" 59389837Skris else 59489837Skris OUT="OpenUNIX-8" 59589837Skris fi 59689837Skris ;; 59759191Skris *-*-unixware7) OUT="unixware-7" ;; 59859191Skris *-*-UnixWare7) OUT="unixware-7" ;; 59959191Skris *-*-Unixware7) OUT="unixware-7" ;; 60076866Skris *-*-unixware20*) OUT="unixware-2.0" ;; 60176866Skris *-*-unixware21*) OUT="unixware-2.1" ;; 60276866Skris *-*-UnixWare20*) OUT="unixware-2.0" ;; 60376866Skris *-*-UnixWare21*) OUT="unixware-2.1" ;; 60476866Skris *-*-Unixware20*) OUT="unixware-2.0" ;; 60576866Skris *-*-Unixware21*) OUT="unixware-2.1" ;; 60655714Skris BS2000-siemens-sysv4) OUT="BS2000-OSD" ;; 60755714Skris RM*-siemens-sysv4) OUT="ReliantUNIX" ;; 60855714Skris *-siemens-sysv4) OUT="SINIX" ;; 609100936Snectar *-hpux1*) 610100936Snectar if [ $CC = "gcc" ]; 611100936Snectar then 612100936Snectar if [ $GCC_BITS = "64" ]; then 613100936Snectar OUT="hpux64-parisc-gcc" 614100936Snectar else 615100936Snectar OUT="hpux-parisc-gcc" 616100936Snectar fi 617100936Snectar else 618100936Snectar OUT="hpux-parisc-$CC" 619100936Snectar fi 620100936Snectar options="$options -D_REENTRANT" ;; 62159191Skris *-hpux) OUT="hpux-parisc-$CC" ;; 62255714Skris # these are all covered by the catchall below 62355714Skris # *-aix) OUT="aix-$CC" ;; 62455714Skris # *-dgux) OUT="dgux" ;; 62568651Skris mips-sony-newsos4) OUT="newsos4-gcc" ;; 626100928Snectar *-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;; 627100928Snectar *-*-cygwin) OUT="Cygwin" ;; 628100928Snectar t3e-cray-unicosmk) OUT="cray-t3e" ;; 629100928Snectar j90-cray-unicos) OUT="cray-j90" ;; 63055714Skris *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;; 63155714Skrisesac 63255714Skris 63359191Skris# See whether we can compile Atalla support 63459191Skrisif [ -f /usr/include/atasi.h ] 63559191Skristhen 63659191Skris options="$options -DATALLA" 63759191Skrisfi 63859191Skris 63955714Skris# gcc < 2.8 does not support -mcpu=ultrasparc 64055714Skrisif [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ] 64155714Skristhen 64255714Skris echo "WARNING! Do consider upgrading to gcc-2.8 or later." 64355714Skris sleep 5 64455714Skris OUT=solaris-sparcv9-gcc27 64555714Skrisfi 64655714Skrisif [ "$OUT" = "linux-sparcv9" -a $GCCVER -lt 28 ] 64755714Skristhen 64855714Skris echo "WARNING! Falling down to 'linux-sparcv8'." 64955714Skris echo " Upgrade to gcc-2.8 or later." 65055714Skris sleep 5 65155714Skris OUT=linux-sparcv8 65255714Skrisfi 65355714Skris 65455714Skriscase "$GUESSOS" in 65555714Skris i386-*) options="$options 386" ;; 65655714Skrisesac 65755714Skris 65889837Skrisfor i in bf cast des dh dsa hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa sha 65955714Skrisdo 66055714Skris if [ ! -d crypto/$i ] 66155714Skris then 66255714Skris options="$options no-$i" 66355714Skris fi 66455714Skrisdone 66555714Skris 66655714Skrisif [ -z "$OUT" ]; then 66755714Skris OUT="$CC" 66855714Skrisfi 66955714Skris 67055714Skrisif [ ".$PERL" = . ] ; then 67155714Skris for i in . `echo $PATH | sed 's/:/ /g'`; do 67255714Skris if [ -f "$i/perl5" ] ; then 67355714Skris PERL="$i/perl5" 67455714Skris break; 67555714Skris fi; 67655714Skris done 67755714Skrisfi 67855714Skris 67955714Skrisif [ ".$PERL" = . ] ; then 68055714Skris for i in . `echo $PATH | sed 's/:/ /g'`; do 68155714Skris if [ -f "$i/perl" ] ; then 68255714Skris if "$i/perl" -e 'exit($]<5.0)'; then 68355714Skris PERL="$i/perl" 68455714Skris break; 68555714Skris fi; 68655714Skris fi; 68755714Skris done 68855714Skrisfi 68955714Skris 69055714Skrisif [ ".$PERL" = . ] ; then 69155714Skris echo "You need Perl 5." 69255714Skris exit 1 69355714Skrisfi 69455714Skris 69555714Skris# run Configure to check to see if we need to specify the 69655714Skris# compiler for the platform ... in which case we add it on 69755714Skris# the end ... otherwise we leave it off 69855714Skris 69959191Skris$PERL ./Configure LIST | grep "$OUT-$CC" > /dev/null 70055714Skrisif [ $? = "0" ]; then 70155714Skris OUT="$OUT-$CC" 70255714Skrisfi 70355714Skris 70455714SkrisOUT="$PREFIX$OUT" 70555714Skris 70659191Skris$PERL ./Configure LIST | grep "$OUT" > /dev/null 70755714Skrisif [ $? = "0" ]; then 70872613Skris echo Configuring for $OUT 70955714Skris 71055714Skris if [ "$TEST" = "true" ]; then 71155714Skris echo $PERL ./Configure $OUT $options 71255714Skris else 71355714Skris $PERL ./Configure $OUT $options 71455714Skris fi 71555714Skriselse 71655714Skris echo "This system ($OUT) is not supported. See file INSTALL for details." 71755714Skrisfi 71855714Skris) 719