
1: #!/bin/sh 2: # 3: # OpenSSL config: determine the operating system and run ./Configure 4: # 5: # "config -h" for usage information. 6: # 7: # this is a merge of minarch and GuessOS from the Apache Group. 8: # Originally written by Tim Hudson <tjh@cryptsoft.com>. 9: 10: # Original Apache Group comments on GuessOS 11: 12: # Simple OS/Platform guesser. Similar to config.guess but 13: # much, much smaller. Since it was developed for use with 14: # Apache, it follows under Apache's regular licensing 15: # with one specific addition: Any changes or additions 16: # to this script should be Emailed to the Apache 17: # group (apache@apache.org) in general and to 18: # Jim Jagielski (jim@jaguNET.com) in specific. 19: # 20: # Be as similar to the output of config.guess/config.sub 21: # as possible. 22: 23: PREFIX="" 24: SUFFIX="" 25: TEST="false" 26: EXE="" 27: 28: # pick up any command line args to config 29: for i 30: do 31: case "$i" in 32: -d*) PREFIX="debug-";; 33: -t*) TEST="true";; 34: -h*) TEST="true"; cat <<EOF 35: Usage: config [options] 36: -d Add a debug- prefix to machine choice. 37: -t Test mode, do not run the Configure perl script. 38: -h This help. 39: 40: Any other text will be passed to the Configure perl script. 41: See INSTALL for instructions. 42: 43: EOF 44: ;; 45: *) options=$options" $i" ;; 46: esac 47: done 48: 49: # First get uname entries that we use below 50: 51: MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown" 52: RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown" 53: SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown" 54: VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown" 55: 56: 57: # Now test for ISC and SCO, since it is has a braindamaged uname. 58: # 59: # We need to work around FreeBSD 1.1.5.1 60: ( 61: XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'` 62: if [ "x$XREL" != "x" ]; then 63: if [ -f /etc/kconfig ]; then 64: case "$XREL" in 65: 4.0|4.1) 66: echo "${MACHINE}-whatever-isc4"; exit 0 67: ;; 68: esac 69: else 70: case "$XREL" in 71: 3.2v4.2) 72: echo "whatever-whatever-sco3"; exit 0 73: ;; 74: 3.2v5.0*) 75: echo "whatever-whatever-sco5"; exit 0 76: ;; 77: 4.2MP) 78: case "x${VERSION}" in 79: x2.0*) echo "whatever-whatever-unixware20"; exit 0 ;; 80: x2.1*) echo "whatever-whatever-unixware21"; exit 0 ;; 81: x2*) echo "whatever-whatever-unixware2"; exit 0 ;; 82: esac 83: ;; 84: 4.2) 85: echo "whatever-whatever-unixware1"; exit 0 86: ;; 87: 5*) 88: case "x${VERSION}" in 89: # We hardcode i586 in place of ${MACHINE} for the 90: # following reason. The catch is that even though Pentium 91: # is minimum requirement for platforms in question, 92: # ${MACHINE} gets always assigned to i386. Now, problem 93: # with i386 is that it makes ./config pass 386 to 94: # ./Configure, which in turn makes make generate 95: # inefficient SHA-1 (for this moment) code. 96: x[678]*) echo "i586-sco-unixware7"; exit 0 ;; 97: esac 98: ;; 99: esac 100: fi 101: fi 102: # Now we simply scan though... In most cases, the SYSTEM info is enough 103: # 104: case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in 105: MPE/iX:*) 106: MACHINE=`echo "$MACHINE" | sed -e 's/-/_/g'` 107: echo "parisc-hp-MPE/iX"; exit 0 108: ;; 109: A/UX:*) 110: echo "m68k-apple-aux3"; exit 0 111: ;; 112: 113: AIX:[3-9]:4:*) 114: echo "${MACHINE}-ibm-aix"; exit 0 115: ;; 116: 117: AIX:*:[5-9]:*) 118: echo "${MACHINE}-ibm-aix"; exit 0 119: ;; 120: 121: AIX:*) 122: echo "${MACHINE}-ibm-aix3"; exit 0 123: ;; 124: 125: dgux:*) 126: echo "${MACHINE}-dg-dgux"; exit 0 127: ;; 128: 129: HI-UX:*) 130: echo "${MACHINE}-hi-hiux"; exit 0 131: ;; 132: 133: HP-UX:*) 134: HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'` 135: case "$HPUXVER" in 136: 1[0-9].*) # HPUX 10 and 11 targets are unified 137: echo "${MACHINE}-hp-hpux1x"; exit 0 138: ;; 139: *) 140: echo "${MACHINE}-hp-hpux"; exit 0 141: ;; 142: esac 143: ;; 144: 145: IRIX:5.*) 146: echo "mips2-sgi-irix"; exit 0 147: ;; 148: 149: IRIX:6.*) 150: echo "mips3-sgi-irix"; exit 0 151: ;; 152: 153: IRIX64:*) 154: echo "mips4-sgi-irix64"; exit 0 155: ;; 156: 157: Linux:[2-9].*) 158: echo "${MACHINE}-whatever-linux2"; exit 0 159: ;; 160: 161: Linux:1.*) 162: echo "${MACHINE}-whatever-linux1"; exit 0 163: ;; 164: 165: GNU*) 166: echo "hurd-x86"; exit 0; 167: ;; 168: 169: LynxOS:*) 170: echo "${MACHINE}-lynx-lynxos"; exit 0 171: ;; 172: 173: BSD/OS:4.*) # BSD/OS always says 386 174: echo "i486-whatever-bsdi4"; exit 0 175: ;; 176: 177: BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*) 178: case `/sbin/sysctl -n hw.model` in 179: Pentium*) 180: echo "i586-whatever-bsdi"; exit 0 181: ;; 182: *) 183: echo "i386-whatever-bsdi"; exit 0 184: ;; 185: esac; 186: ;; 187: 188: BSD/386:*|BSD/OS:*) 189: echo "${MACHINE}-whatever-bsdi"; exit 0 190: ;; 191: 192: FreeBSD:*:*:*386*) 193: VERS=`echo ${RELEASE} | sed -e 's/[-(].*//'` 194: MACH=`sysctl -n hw.model` 195: ARCH='whatever' 196: case ${MACH} in 197: *386* ) MACH="i386" ;; 198: *486* ) MACH="i486" ;; 199: Pentium\ II*) MACH="i686" ;; 200: Pentium* ) MACH="i586" ;; 201: * ) MACH="$MACHINE" ;; 202: esac 203: case ${MACH} in 204: i[0-9]86 ) ARCH="pc" ;; 205: esac 206: echo "${MACH}-${ARCH}-freebsd${VERS}"; exit 0 207: ;; 208: 209: FreeBSD:*) 210: echo "${MACHINE}-whatever-freebsd"; exit 0 211: ;; 212: 213: NetBSD:*:*:*386*) 214: echo "`(/usr/sbin/sysctl -n hw.model || /sbin/sysctl -n hw.model) | sed 's,.*\(.\)86-class.*,i\186,'`-whatever-netbsd"; exit 0 215: ;; 216: 217: NetBSD:*) 218: echo "${MACHINE}-whatever-netbsd"; exit 0 219: ;; 220: 221: OpenBSD:*) 222: echo "${MACHINE}-whatever-openbsd"; exit 0 223: ;; 224: 225: OpenUNIX:*) 226: echo "${MACHINE}-unknown-OpenUNIX${VERSION}"; exit 0 227: ;; 228: 229: OSF1:*:*:*alpha*) 230: OSFMAJOR=`echo ${RELEASE}| sed -e 's/^V\([0-9]*\)\..*$/\1/'` 231: case "$OSFMAJOR" in 232: 4|5) 233: echo "${MACHINE}-dec-tru64"; exit 0 234: ;; 235: 1|2|3) 236: echo "${MACHINE}-dec-osf"; exit 0 237: ;; 238: *) 239: echo "${MACHINE}-dec-osf"; exit 0 240: ;; 241: esac 242: ;; 243: 244: QNX:*) 245: case "$RELEASE" in 246: 4*) 247: echo "${MACHINE}-whatever-qnx4" 248: ;; 249: 6*) 250: echo "${MACHINE}-whatever-qnx6" 251: ;; 252: *) 253: echo "${MACHINE}-whatever-qnx" 254: ;; 255: esac 256: exit 0 257: ;; 258: 259: Paragon*:*:*:*) 260: echo "i860-intel-osf1"; exit 0 261: ;; 262: 263: Rhapsody:*) 264: echo "ppc-apple-rhapsody"; exit 0 265: ;; 266: 267: Darwin:*) 268: case "$MACHINE" in 269: Power*) 270: echo "ppc-apple-darwin${VERSION}" 271: ;; 272: *) 273: echo "i386-apple-darwin${VERSION}" 274: ;; 275: esac 276: exit 0 277: ;; 278: 279: SunOS:5.*) 280: echo "${MACHINE}-whatever-solaris2"; exit 0 281: ;; 282: 283: SunOS:*) 284: echo "${MACHINE}-sun-sunos4"; exit 0 285: ;; 286: 287: UNIX_System_V:4.*:*) 288: echo "${MACHINE}-whatever-sysv4"; exit 0 289: ;; 290: 291: VOS:*:*:i786) 292: echo "i386-stratus-vos"; exit 0 293: ;; 294: 295: VOS:*:*:*) 296: echo "hppa1.1-stratus-vos"; exit 0 297: ;; 298: 299: *:4*:R4*:m88k) 300: echo "${MACHINE}-whatever-sysv4"; exit 0 301: ;; 302: 303: DYNIX/ptx:4*:*) 304: echo "${MACHINE}-whatever-sysv4"; exit 0 305: ;; 306: 307: *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*) 308: echo "i486-ncr-sysv4"; exit 0 309: ;; 310: 311: ULTRIX:*) 312: echo "${MACHINE}-unknown-ultrix"; exit 0 313: ;; 314: 315: SINIX*|ReliantUNIX*) 316: echo "${MACHINE}-siemens-sysv4"; exit 0 317: ;; 318: 319: POSIX-BC*) 320: echo "${MACHINE}-siemens-sysv4"; exit 0 # Here, $MACHINE == "BS2000" 321: ;; 322: 323: machten:*) 324: echo "${MACHINE}-tenon-${SYSTEM}"; exit 0; 325: ;; 326: 327: library:*) 328: echo "${MACHINE}-ncr-sysv4"; exit 0 329: ;; 330: 331: ConvexOS:*:11.0:*) 332: echo "${MACHINE}-v11-${SYSTEM}"; exit 0; 333: ;; 334: 335: NEWS-OS:4.*) 336: echo "mips-sony-newsos4"; exit 0; 337: ;; 338: 339: MINGW*) 340: echo "${MACHINE}-whatever-mingw"; exit 0; 341: ;; 342: CYGWIN*) 343: case "$RELEASE" in 344: [bB]*|1.0|1.[12].*) 345: echo "${MACHINE}-whatever-cygwin_pre1.3" 346: ;; 347: *) 348: echo "${MACHINE}-whatever-cygwin" 349: ;; 350: esac 351: exit 0 352: ;; 353: 354: *"CRAY T3E") 355: echo "t3e-cray-unicosmk"; exit 0; 356: ;; 357: 358: *CRAY*) 359: echo "j90-cray-unicos"; exit 0; 360: ;; 361: 362: NONSTOP_KERNEL*) 363: echo "nsr-tandem-nsk"; exit 0; 364: ;; 365: esac 366: 367: # 368: # Ugg. These are all we can determine by what we know about 369: # the output of uname. Be more creative: 370: # 371: 372: # Do the Apollo stuff first. Here, we just simply assume 373: # that the existance of the /usr/apollo directory is proof 374: # enough 375: if [ -d /usr/apollo ]; then 376: echo "whatever-apollo-whatever" 377: exit 0 378: fi 379: 380: # Now NeXT 381: ISNEXT=`hostinfo 2>/dev/null` 382: case "$ISNEXT" in 383: *'NeXT Mach 3.3'*) 384: echo "whatever-next-nextstep3.3"; exit 0 385: ;; 386: *NeXT*) 387: echo "whatever-next-nextstep"; exit 0 388: ;; 389: esac 390: 391: # At this point we gone through all the one's 392: # we know of: Punt 393: 394: echo "${MACHINE}-whatever-${SYSTEM}" 395: exit 0 396: ) 2>/dev/null | ( 397: 398: # --------------------------------------------------------------------------- 399: # this is where the translation occurs into SSLeay terms 400: # --------------------------------------------------------------------------- 401: 402: # figure out if gcc is available and if so we use it otherwise 403: # we fallback to whatever cc does on the system 404: GCCVER=`(gcc -dumpversion) 2>/dev/null` 405: if [ "$GCCVER" != "" ]; then 406: CC=gcc 407: # then strip off whatever prefix egcs prepends the number with... 408: # Hopefully, this will work for any future prefixes as well. 409: GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'` 410: # Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion 411: # does give us what we want though, so we use that. We just just the 412: # major and minor version numbers. 413: # peak single digit before and after first dot, e.g. 2.95.1 gives 29 414: GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` 415: else 416: CC=cc 417: fi 418: GCCVER=${GCCVER:-0} 419: if [ "$SYSTEM" = "HP-UX" ];then 420: # By default gcc is a ILP32 compiler (with long long == 64). 421: GCC_BITS="32" 422: if [ $GCCVER -ge 30 ]; then 423: # PA64 support only came in with gcc 3.0.x. 424: # We check if the preprocessor symbol __LP64__ is defined... 425: if echo "__LP64__" | gcc -v -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null; then 426: : # __LP64__ has slipped through, it therefore is not defined 427: else 428: GCC_BITS="64" 429: fi 430: fi 431: fi 432: if [ "$SYSTEM" = "SunOS" ]; then 433: if [ $GCCVER -ge 30 ]; then 434: # 64-bit ABI isn't officially supported in gcc 3.0, but it appears 435: # to be working, at the very least 'make test' passes... 436: if gcc -v -E -x c /dev/null 2>&1 | grep __arch64__ > /dev/null; then 437: GCC_ARCH="-m64" 438: else 439: GCC_ARCH="-m32" 440: fi 441: fi 442: # check for WorkShop C, expected output is "cc: blah-blah C x.x" 443: CCVER=`(cc -V 2>&1) 2>/dev/null | \ 444: egrep -e '^cc: .* C [0-9]\.[0-9]' | \ 445: sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'` 446: CCVER=${CCVER:-0} 447: if [ $MACHINE != i86pc -a $CCVER -gt 40 ]; then 448: CC=cc # overrides gcc!!! 449: if [ $CCVER -eq 50 ]; then 450: echo "WARNING! Detected WorkShop C 5.0. Do make sure you have" 451: echo " patch #107357-01 or later applied." 452: sleep 5 453: fi 454: fi 455: fi 456: 457: if [ "${SYSTEM}-${MACHINE}" = "Linux-alpha" ]; then 458: # check for Compaq C, expected output is "blah-blah C Vx.x" 459: CCCVER=`(ccc -V 2>&1) 2>/dev/null | \ 460: egrep -e '.* C V[0-9]\.[0-9]' | \ 461: sed 's/.* C V\([0-9]\)\.\([0-9]\).*/\1\2/'` 462: CCCVER=${CCCVER:-0} 463: if [ $CCCVER -gt 60 ]; then 464: CC=ccc # overrides gcc!!! well, ccc outperforms inoticeably 465: # only on hash routines and des, otherwise gcc (2.95) 466: # keeps along rather tight... 467: fi 468: fi 469: 470: if [ "${SYSTEM}" = "AIX" ]; then # favor vendor cc over gcc 471: (cc) 2>&1 | grep -iv "not found" > /dev/null && CC=cc 472: fi 473: 474: CCVER=${CCVER:-0} 475: 476: # read the output of the embedded GuessOS 477: read GUESSOS 478: 479: echo Operating system: $GUESSOS 480: 481: # now map the output into SSLeay terms ... really should hack into the 482: # script above so we end up with values in vars but that would take 483: # more time that I want to waste at the moment 484: case "$GUESSOS" in 485: mips2-sgi-irix) 486: CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 487: CPU=${CPU:-0} 488: if [ $CPU -ge 4000 ]; then 489: options="$options -mips2" 490: fi 491: OUT="irix-$CC" 492: ;; 493: mips3-sgi-irix) 494: #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 495: #CPU=${CPU:-0} 496: #if [ $CPU -ge 5000 ]; then 497: # options="$options -mips4" 498: #else 499: # options="$options -mips3" 500: #fi 501: OUT="irix-mips3-$CC" 502: ;; 503: mips4-sgi-irix64) 504: echo "WARNING! If you wish to build 64-bit library, then you have to" 505: echo " invoke './Configure irix64-mips4-$CC' *manually*." 506: if [ "$TEST" = "false" -a -t 1 ]; then 507: echo " You have about 5 seconds to press Ctrl-C to abort." 508: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 509: fi 510: #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 511: #CPU=${CPU:-0} 512: #if [ $CPU -ge 5000 ]; then 513: # options="$options -mips4" 514: #else 515: # options="$options -mips3" 516: #fi 517: OUT="irix-mips3-$CC" 518: ;; 519: ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;; 520: ppc-apple-darwin*) OUT="darwin-ppc-cc" ;; 521: i386-apple-darwin*) OUT="darwin-i386-cc" ;; 522: alpha-*-linux2) 523: ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo` 524: case ${ISA:-generic} in 525: *[678]) OUT="linux-alpha+bwx-$CC" ;; 526: *) OUT="linux-alpha-$CC" ;; 527: esac 528: if [ "$CC" = "gcc" ]; then 529: case ${ISA:-generic} in 530: EV5|EV45) options="$options -mcpu=ev5";; 531: EV56|PCA56) options="$options -mcpu=ev56";; 532: *) options="$options -mcpu=ev6";; 533: esac 534: fi 535: ;; 536: ppc64-*-linux2) 537: echo "WARNING! If you wish to build 64-bit library, then you have to" 538: echo " invoke './Configure linux-ppc64' *manually*." 539: if [ "$TEST" = "false" -a -t 1 ]; then 540: echo " You have about 5 seconds to press Ctrl-C to abort." 541: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 542: fi 543: OUT="linux-ppc" 544: ;; 545: ppc-*-linux2) OUT="linux-ppc" ;; 546: ia64-*-linux?) OUT="linux-ia64" ;; 547: sparc64-*-linux2) 548: echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI" 549: echo " and wish to build 64-bit library, then you have to" 550: echo " invoke './Configure linux64-sparcv9' *manually*." 551: if [ "$TEST" = "false" -a -t 1 ]; then 552: echo " You have about 5 seconds to press Ctrl-C to abort." 553: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 554: fi 555: OUT="linux-sparcv9" ;; 556: sparc-*-linux2) 557: KARCH=`awk '/^type/{print$3;exit(0);}' /proc/cpuinfo` 558: case ${KARCH:-sun4} in 559: sun4u*) OUT="linux-sparcv9" ;; 560: sun4m) OUT="linux-sparcv8" ;; 561: sun4d) OUT="linux-sparcv8" ;; 562: *) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;; 563: esac ;; 564: parisc*-*-linux2) 565: # 64-bit builds under parisc64 linux are not supported and 566: # compiler is expected to generate 32-bit objects... 567: CPUARCH=`awk '/cpu family/{print substr($5,1,3); exit(0);}' /proc/cpuinfo` 568: CPUSCHEDULE=`awk '/^cpu.[ ]*: PA/{print substr($3,3); exit(0);}' /proc/cpuinfo` 569: 570: # ??TODO ?? Model transformations 571: # 0. CPU Architecture for the 1.1 processor has letter suffixes. We strip that off 572: # assuming no further arch. identification will ever be used by GCC. 573: # 1. I'm most concerned about whether is a 7300LC is closer to a 7100 versus a 7100LC. 574: # 2. The variant 64-bit processors cause concern should GCC support explicit schedulers 575: # for these chips in the future. 576: # PA7300LC -> 7100LC (1.1) 577: # PA8200 -> 8000 (2.0) 578: # PA8500 -> 8000 (2.0) 579: # PA8600 -> 8000 (2.0) 580: 581: CPUSCHEDULE=`echo $CPUSCHEDULE|sed -e 's/7300LC/7100LC/' -e 's/8.00/8000/'` 582: # Finish Model transformations 583: 584: options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH" 585: OUT="linux-generic32" ;; 586: arm*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;; 587: arm*l-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;; 588: sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;; 589: sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;; 590: m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;; 591: s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN -DNO_ASM" ;; 592: s390x-*-linux2) OUT="linux-generic64"; options="$options -DB_ENDIAN" ;; 593: x86_64-*-linux?) OUT="linux-x86_64" ;; 594: *86-*-linux2) OUT="linux-elf" 595: if [ "$GCCVER" -gt 28 ]; then 596: if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then 597: options="$options -march=pentium" 598: fi 599: if grep '^model.*Pentium Pro' /proc/cpuinfo >/dev/null ; then 600: options="$options -march=pentiumpro" 601: fi 602: if grep '^model.*K6' /proc/cpuinfo >/dev/null ; then 603: options="$options -march=k6" 604: fi 605: fi ;; 606: *-*-linux1) OUT="linux-aout" ;; 607: *-*-linux2) OUT="linux-generic32" ;; 608: sun4[uv]*-*-solaris2) 609: OUT="solaris-sparcv9-$CC" 610: ISA64=`(isalist) 2>/dev/null | grep sparcv9` 611: if [ "$ISA64" != "" ]; then 612: if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then 613: echo "WARNING! If you wish to build 64-bit library, then you have to" 614: echo " invoke './Configure solaris64-sparcv9-cc' *manually*." 615: if [ "$TEST" = "false" -a -t 1 ]; then 616: echo " You have about 5 seconds to press Ctrl-C to abort." 617: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 618: fi 619: elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then 620: # $GCC_ARCH denotes default ABI chosen by compiler driver 621: # (first one found on the $PATH). I assume that user 622: # expects certain consistency with the rest of his builds 623: # and therefore switch over to 64-bit. <appro> 624: OUT="solaris64-sparcv9-gcc" 625: echo "WARNING! If you wish to build 32-bit library, then you have to" 626: echo " invoke './Configure solaris-sparcv9-gcc' *manually*." 627: if [ "$TEST" = "false" -a -t 1 ]; then 628: echo " You have about 5 seconds to press Ctrl-C to abort." 629: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 630: fi 631: elif [ "$GCC_ARCH" = "-m32" ]; then 632: echo "NOTICE! If you *know* that your GNU C supports 64-bit/V9 ABI" 633: echo " and wish to build 64-bit library, then you have to" 634: echo " invoke './Configure solaris64-sparcv9-gcc' *manually*." 635: if [ "$TEST" = "false" -a -t 1 ]; then 636: echo " You have about 5 seconds to press Ctrl-C to abort." 637: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 638: fi 639: fi 640: fi 641: ;; 642: sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;; 643: sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;; 644: sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;; 645: *86*-*-solaris2) 646: ISA64=`(isalist) 2>/dev/null | grep amd64` 647: if [ "$ISA64" != "" ]; then 648: OUT="solaris64-x86_64-$CC" 649: else 650: OUT="solaris-x86-$CC" 651: if [ `uname -r | sed -e 's/5\.//'` -lt 10 ]; then 652: options="$options no-sse2" 653: fi 654: fi 655: ;; 656: *-*-sunos4) OUT="sunos-$CC" ;; 657: 658: *86*-*-bsdi4) OUT="BSD-x86-elf"; options="$options no-sse2 -ldl" ;; 659: alpha*-*-*bsd*) OUT="BSD-generic64"; options="$options -DL_ENDIAN" ;; 660: powerpc64-*-*bsd*) OUT="BSD-generic64"; options="$options -DB_ENDIAN" ;; 661: sparc64-*-*bsd*) OUT="BSD-sparc64" ;; 662: ia64-*-*bsd*) OUT="BSD-ia64" ;; 663: amd64-*-*bsd*) OUT="BSD-x86_64" ;; 664: *86*-*-*bsd*) # mimic ld behaviour when it's looking for libc... 665: if [ -L /usr/lib/libc.so ]; then # [Free|Net]BSD 666: libc=/usr/lib/libc.so 667: else # OpenBSD 668: # ld searches for highest libc.so.* and so do we 669: libc=`(ls /usr/lib/libc.so.* | tail -1) 2>/dev/null` 670: fi 671: case "`(file -L $libc) 2>/dev/null`" in 672: *ELF*) OUT="BSD-x86-elf" ;; 673: *) OUT="BSD-x86"; options="$options no-sse2" ;; 674: esac ;; 675: *-*-*bsd*) OUT="BSD-generic32" ;; 676: 677: *-*-osf) OUT="osf1-alpha-cc" ;; 678: *-*-tru64) OUT="tru64-alpha-cc" ;; 679: *-*-[Uu]nix[Ww]are7) 680: if [ "$CC" = "gcc" ]; then 681: OUT="unixware-7-gcc" ; options="$options no-sse2" 682: else 683: OUT="unixware-7" ; options="$options no-sse2 -D__i386__" 684: fi 685: ;; 686: *-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0"; options="$options no-sse2 no-sha512" ;; 687: *-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1"; options="$options no-sse2 no-sha512" ;; 688: *-*-vos) 689: options="$options no-threads no-shared no-asm no-dso" 690: EXE=".pm" 691: OUT="vos-$CC" ;; 692: BS2000-siemens-sysv4) OUT="BS2000-OSD" ;; 693: RM*-siemens-sysv4) OUT="ReliantUNIX" ;; 694: *-siemens-sysv4) OUT="SINIX" ;; 695: *-hpux1*) 696: if [ $CC = "gcc" -a $GCC_BITS = "64" ]; then 697: OUT="hpux64-parisc2-gcc" 698: fi 699: KERNEL_BITS=`(getconf KERNEL_BITS) 2>/dev/null` 700: KERNEL_BITS=${KERNEL_BITS:-32} 701: CPU_VERSION=`(getconf CPU_VERSION) 2>/dev/null` 702: CPU_VERSION=${CPU_VERSION:-0} 703: # See <sys/unistd.h> for further info on CPU_VERSION. 704: if [ $CPU_VERSION -ge 768 ]; then # IA-64 CPU 705: echo "WARNING! 64-bit ABI is the default configured ABI on HP-UXi." 706: echo " If you wish to build 32-bit library, the you have to" 707: echo " invoke './Configure hpux-ia64-cc' *manually*." 708: if [ "$TEST" = "false" -a -t 1 ]; then 709: echo " You have about 5 seconds to press Ctrl-C to abort." 710: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 711: fi 712: OUT="hpux64-ia64-cc" 713: elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU 714: OUT=${OUT:-"hpux-parisc2-${CC}"} 715: if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then 716: echo "WARNING! If you wish to build 64-bit library then you have to" 717: echo " invoke './Configure hpux64-parisc2-cc' *manually*." 718: if [ "$TEST" = "false" -a -t 1 ]; then 719: echo " You have about 5 seconds to press Ctrl-C to abort." 720: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 721: fi 722: fi 723: elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU 724: OUT="hpux-parisc-${CC}" 725: elif [ $CPU_VERSION -ge 523 ]; then # PA-RISC 1.0 CPU 726: OUT="hpux-parisc-${CC}" 727: else # Motorola(?) CPU 728: OUT="hpux-$CC" 729: fi 730: options="$options -D_REENTRANT" ;; 731: *-hpux) OUT="hpux-parisc-$CC" ;; 732: *-aix) 733: KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null` 734: KERNEL_BITS=${KERNEL_BITS:-32} 735: OBJECT_MODE=${OBJECT_MODE:-32} 736: if [ "$CC" = "gcc" ]; then 737: OUT="aix-gcc" 738: elif [ $OBJECT_MODE -eq 64 ]; then 739: echo 'Your $OBJECT_MODE was found to be set to 64' 740: OUT="aix64-cc" 741: else 742: OUT="aix-cc" 743: if [ $KERNEL_BITS -eq 64 ]; then 744: echo "WARNING! If you wish to build 64-bit kit, then you have to" 745: echo " invoke './Configure aix64-cc' *manually*." 746: if [ "$TEST" = "false" -a -t 1 ]; then 747: echo " You have ~5 seconds to press Ctrl-C to abort." 748: (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 749: fi 750: fi 751: fi 752: if (lsattr -E -O -l `lsdev -c processor|awk '{print$1;exit}'` | grep -i powerpc) >/dev/null 2>&1; then 753: : # this applies even to Power3 and later, as they return PowerPC_POWER[345] 754: else 755: options="$options no-asm" 756: fi 757: ;; 758: # these are all covered by the catchall below 759: # *-dgux) OUT="dgux" ;; 760: mips-sony-newsos4) OUT="newsos4-gcc" ;; 761: *-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;; 762: *-*-cygwin) OUT="Cygwin" ;; 763: t3e-cray-unicosmk) OUT="cray-t3e" ;; 764: j90-cray-unicos) OUT="cray-j90" ;; 765: nsr-tandem-nsk) OUT="tandem-c89" ;; 766: *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;; 767: esac 768: 769: # NB: This atalla support has been superceded by the ENGINE support 770: # That contains its own header and definitions anyway. Support can 771: # be enabled or disabled on any supported platform without external 772: # headers, eg. by adding the "hw-atalla" switch to ./config or 773: # perl Configure 774: # 775: # See whether we can compile Atalla support 776: #if [ -f /usr/include/atasi.h ] 777: #then 778: # options="$options -DATALLA" 779: #fi 780: 781: # gcc < 2.8 does not support -march=ultrasparc 782: if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ] 783: then 784: echo "WARNING! Falling down to 'solaris-sparcv8-gcc'." 785: echo " Upgrade to gcc-2.8 or later." 786: sleep 5 787: OUT=solaris-sparcv8-gcc 788: fi 789: if [ "$OUT" = "linux-sparcv9" -a $GCCVER -lt 28 ] 790: then 791: echo "WARNING! Falling down to 'linux-sparcv8'." 792: echo " Upgrade to gcc-2.8 or later." 793: sleep 5 794: OUT=linux-sparcv8 795: fi 796: 797: case "$GUESSOS" in 798: i386-*) options="$options 386" ;; 799: esac 800: 801: for i in aes bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa seed sha 802: do 803: if [ ! -d crypto/$i ] 804: then 805: options="$options no-$i" 806: fi 807: done 808: 809: # Discover Kerberos 5 (since it's still a prototype, we don't 810: # do any guesses yet, that's why this section is commented away. 811: #if [ -d /usr/kerberos ]; then 812: # krb5_dir=/usr/kerberos 813: # if [ \( -f $krb5_dir/lib/libgssapi_krb5.a -o -f $krb5_dir/lib/libgssapi