123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- #!/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
- #
- # 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
- #
- # Original Apache Group comments on GuessOS
- # Simple OS/Platform guesser. Similar to config.guess but
- # much, much smaller. Since it was developed for use with
- # Apache, it follows under Apache's regular licensing
- # with one specific addition: Any changes or additions
- # to this script should be Emailed to the Apache
- # group (apache@apache.org) in general and to
- # Jim Jagielski (jim@jaguNET.com) in specific.
- #
- # Be as similar to the output of config.guess/config.sub
- # as possible.
- # First get uname entries that we use below
- MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
- RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
- SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown"
- VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
- # Now test for ISC and SCO, since it is has a braindamaged uname.
- #
- # We need to work around FreeBSD 1.1.5.1
- (
- XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
- if [ "x$XREL" != "x" ]; then
- if [ -f /etc/kconfig ]; then
- case "$XREL" in
- 4.0|4.1)
- echo "${MACHINE}-whatever-isc4"; exit 0
- ;;
- esac
- else
- case "$XREL" in
- 3.2v4.2)
- echo "whatever-whatever-sco3"; exit 0
- ;;
- 3.2v5.0*)
- echo "whatever-whatever-sco5"; exit 0
- ;;
- 4.2MP)
- if [ "x$VERSION" = "x2.1.1" ]; then
- echo "${MACHINE}-whatever-unixware211"; exit 0
- else
- echo "${MACHINE}-whatever-unixware2"; exit 0
- fi
- ;;
- 4.2)
- echo "whatever-whatever-unixware1"; exit 0
- ;;
- esac
- fi
- fi
- # Now we simply scan though... In most cases, the SYSTEM info is enough
- #
- case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
- A/UX:*)
- echo "m68k-apple-aux3"; exit 0
- ;;
- AIX:*)
- echo "${MACHINE}-ibm-aix"; exit 0
- ;;
- dgux:*)
- echo "${MACHINE}-dg-dgux"; exit 0
- ;;
- HI-UX:*)
- echo "${MACHINE}-hi-hiux"; exit 0
- ;;
- HP-UX:*)
- HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "$HPUXVER" in
- 10.*)
- echo "${MACHINE}-hp-hpux10."; exit 0
- ;;
- *)
- echo "${MACHINE}-hp-hpux"; exit 0
- ;;
- esac
- ;;
- IRIX:*)
- echo "${MACHINE}-sgi-irix"; exit 0
- ;;
- IRIX64:*)
- echo "${MACHINE}-sgi-irix64"; exit 0
- ;;
- Linux:[2-9].*)
- echo "${MACHINE}-whatever-linux2"; exit 0
- ;;
- Linux:1.*)
- echo "${MACHINE}-whatever-linux1"; exit 0
- ;;
- LynxOS:*)
- echo "${MACHINE}-lynx-lynxos"; exit 0
- ;;
- BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
- echo "i486-whatever-bsdi"; exit 0
- ;;
- BSD/386:*|BSD/OS:*)
- echo "${MACHINE}-whatever-bsdi"; exit 0
- ;;
- FreeBSD:*:*:*486*)
- echo "i486-whatever-freebsd"; exit 0
- ;;
- FreeBSD:*)
- echo "${MACHINE}-whatever-freebsd"; exit 0
- ;;
- NetBSD:*:*:*486*)
- echo "i486-whatever-netbsd"; exit 0
- ;;
- NetBSD:*)
- echo "${MACHINE}-whatever-netbsd"; exit 0
- ;;
- OpenBSD:*)
- echo "${MACHINE}-whatever-openbsd"; exit 0
- ;;
- OSF1:*:*:*alpha*)
- echo "${MACHINE}-dec-osf"; exit 0
- ;;
- QNX:*)
- case "$VERSION" in
- 423)
- echo "${MACHINE}-qssl-qnx32"
- ;;
- *)
- echo "${MACHINE}-qssl-qnx"
- ;;
- esac
- exit 0
- ;;
- Paragon*:*:*:*)
- echo "i860-intel-osf1"; exit 0
- ;;
- SunOS:5.*)
- echo "${MACHINE}-sun-solaris2"; exit 0
- ;;
- SunOS:*)
- echo "${MACHINE}-sun-sunos4"; exit 0
- ;;
- UNIX_System_V:4.*:*)
- echo "${MACHINE}-whatever-sysv4"; exit 0
- ;;
- *:4*:R4*:m88k)
- echo "${MACHINE}-whatever-sysv4"; exit 0
- ;;
- DYNIX/ptx:4*:*)
- echo "${MACHINE}-whatever-sysv4"; exit 0
- ;;
- *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*)
- echo "i486-ncr-sysv4"; exit 0
- ;;
- ULTRIX:*)
- echo "${MACHINE}-unknown-ultrix"; exit 0
- ;;
- SINIX*)
- echo "${MACHINE}-sni-sysv4"; exit 0
- ;;
- machten:*)
- echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
- ;;
- library:*)
- echo "${MACHINE}-ncr-sysv4"; exit 0
- ;;
- ConvexOS:*:11.0:*)
- echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
- ;;
- esac
- #
- # Ugg. These are all we can determine by what we know about
- # the output of uname. Be more creative:
- #
- # Do the Apollo stuff first. Here, we just simply assume
- # that the existance of the /usr/apollo directory is proof
- # enough
- if [ -d /usr/apollo ]; then
- echo "whatever-apollo-whatever"
- exit 0
- fi
- # Now NeXT
- ISNEXT=`hostinfo 2>/dev/null`
- case "$ISNEXT" in
- *NeXT*)
- echo "whatever-next-nextstep"; exit 0
- ;;
- esac
- # At this point we gone through all the one's
- # we know of: Punt
- echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}"
- exit 0
- ) 2>/dev/null | (
- # ---------------------------------------------------------------------------
- # this is where the translation occurs into SSLeay terms
- # ---------------------------------------------------------------------------
- PREFIX=""
- SUFFIX=""
- VERBOSE="false"
- TEST="false"
- # pick up any command line args to config
- for i
- do
- case "$i" in
- -d*) PREFIX="debug-";;
- -v*) VERBOSE="true";;
- -t*) TEST="true";;
- -h*) cat <<EOF
- usage: config [options]
- -d Add a debug- prefix to machine choice.
- -v Verbose mode.
- -t Test mode, do not run the Configure perl script.
- -h This help.
- Any other text will be passed to ther Configure perl script.
- Usefull options include
- no-asm Build with no assember code.
- -Dxxx Add xxx define to compilation.
- -Lxxx Add xxx library include path to build.
- -lxxx Add xxx library to build.
- eg, to build using RSAref, without assember, building to allow anon-DH
- ciphers and null encryption ciphers,
- config no-asm -DRSAref -DSSL_ALLOW_ADH -DSSL_ALLOW_ENULL -lrsaref
- EOF
- ;;
- *) options=$options" $i" ;;
- esac
- done
- # figure out if gcc is available and if so we use it otherwise
- # we fallback to whatever cc does on the system
- GCCVER=`gcc -v 2>&1`
- if [ $? = "0" ]; then
- CC=gcc
- else
- CC=cc
- fi
- # read the output of the embedded GuessOS
- read GUESSOS
- if [ "$VERBOSE" = "true" ]; then
- echo GUESSOS $GUESSOS
- fi
- # 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" ;;
- *-*-linux2) OUT="linux-elf" ;;
- *-*-linux) OUT="linux-aout" ;;
- sun4*-sun-solaris2) OUT="solaris-sparc-$CC" ;;
- *86*-sun-solaris2) OUT="solaris-x86-$CC" ;;
- *-*-sunos4) OUT="sunos-$CC" ;;
- *-freebsd) OUT="FreeBSD" ;;
- *86*-*-netbsd) OUT="NetBSD-x86" ;;
- sun3*-*-netbsd) OUT="NetBSD-m68" ;;
- *-*-netbsd) OUT="NetBSD-sparc" ;;
- *86*-*-openbsd) OUT="OpenBSD-x86" ;;
- alpha*-*-openbsd) OUT="OpenBSD-alpha" ;;
- pmax*-*-openbsd) OUT="OpenBSD-mips" ;;
- *-*-openbsd) OUT="OpenBSD" ;;
- *-*-osf) OUT="alpha-cc" ;;
- *-*-unixware*) OUT="unixware-2.0" ;;
- *-sni-sysv4) OUT="SINIX" ;;
- *-hpux*) OUT="hpux-$CC" ;;
- # these are all covered by the catchall below
- # *-aix) OUT="aix-$CC" ;;
- # *-dgux) OUT="dgux" ;;
- *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
- esac
- if [ -z "$OUT" ]; then
- OUT="$CC"
- 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
- 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
- if [ "$TEST" = "true" ]; then
- echo ./Configure $OUT $options
- else
- perl ./Configure $OUT $options
- fi
- )
|