Skip to content
config.guess 37.6 KiB
Newer Older
Daniel Stenberg's avatar
Daniel Stenberg committed
#! /bin/sh
# Attempt to guess a canonical system name.
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Daniel Stenberg's avatar
Daniel Stenberg committed
#   Free Software Foundation, Inc.
Daniel Stenberg's avatar
Daniel Stenberg committed
timestamp='2001-09-04'
Daniel Stenberg's avatar
Daniel Stenberg committed
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

# Written by Per Bothner <bothner@cygnus.com>.
Daniel Stenberg's avatar
Daniel Stenberg committed
# Please send patches to <config-patches@gnu.org>.
Daniel Stenberg's avatar
Daniel Stenberg committed
#
# This script attempts to guess a canonical system name similar to
# config.sub.  If it succeeds, it prints the system name on stdout, and
# exits with 0.  Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
# don't specify an explicit build system type.
Daniel Stenberg's avatar
Daniel Stenberg committed

me=`echo "$0" | sed -e 's,.*/,,'`

usage="\
Usage: $0 [OPTION]

Output the configuration name of the system \`$me' is run on.

Operation modes:
  -h, --help         print this help, then exit
  -t, --time-stamp   print date of last modification, then exit
  -v, --version      print version number, then exit

Report bugs and patches to <config-patches@gnu.org>."

version="\
GNU config.guess ($timestamp)

Originally written by Per Bothner.
Daniel Stenberg's avatar
Daniel Stenberg committed
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."

help="
Try \`$me --help' for more information."

# Parse command line
while test $# -gt 0 ; do
  case $1 in
    --time-stamp | --time* | -t )
       echo "$timestamp" ; exit 0 ;;
    --version | -v )
       echo "$version" ; exit 0 ;;
    --help | --h* | -h )
       echo "$usage"; exit 0 ;;
    -- )     # Stop option processing
       shift; break ;;
    - )	# Use stdin as input.
       break ;;
    -* )
       echo "$me: invalid option $1$help" >&2
       exit 1 ;;
    * )
       break ;;
  esac
done

if test $# != 0; then
  echo "$me: too many arguments$help" >&2
  exit 1
dummy=dummy-$$
trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15

# CC_FOR_BUILD -- compiler used by this script.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.

Daniel Stenberg's avatar
Daniel Stenberg committed
set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
 ,,)    echo "int dummy(){}" > $dummy.c ;
Daniel Stenberg's avatar
Daniel Stenberg committed
	  ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
Daniel Stenberg's avatar
Daniel Stenberg committed
	     CC_FOR_BUILD="$c"; break ;
	  fi ;
	done ;
	rm -f $dummy.c $dummy.o $dummy.rel ;
	if test x"$CC_FOR_BUILD" = x ; then
Daniel Stenberg's avatar
Daniel Stenberg committed
	  CC_FOR_BUILD=no_compiler_found ;
	fi
	;;
 ,,*)   CC_FOR_BUILD=$CC ;;
 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
Daniel Stenberg's avatar
Daniel Stenberg committed
esac'
Daniel Stenberg's avatar
Daniel Stenberg committed
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
Daniel Stenberg's avatar
Daniel Stenberg committed
# (ghazi@noc.rutgers.edu 1994-08-24)
Daniel Stenberg's avatar
Daniel Stenberg committed
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
	PATH=$PATH:/.attbin ; export PATH
fi

UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
Daniel Stenberg's avatar
Daniel Stenberg committed
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown

# Note: order is significant - the case branches are not exclusive.

case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
Daniel Stenberg's avatar
Daniel Stenberg committed
    *:NetBSD:*:*)
	# Netbsd (nbsd) targets should (where applicable) match one or
	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
	# switched to ELF, *-*-netbsd* would select the old
	# object file format.  This provides both forward
	# compatibility and a consistent mechanism for selecting the
	# object file format.
	# Determine the machine/vendor (is the vendor relevant).
	case "${UNAME_MACHINE}" in
	    amiga) machine=m68k-unknown ;;
Daniel Stenberg's avatar
Daniel Stenberg committed
	    arm32) machine=arm-unknown ;;
	    atari*) machine=m68k-atari ;;
	    sun3*) machine=m68k-sun ;;
	    mac68k) machine=m68k-apple ;;
	    macppc) machine=powerpc-apple ;;
	    hp3[0-9][05]) machine=m68k-hp ;;
	    ibmrt|romp-ibm) machine=romp-ibm ;;
	    *) machine=${UNAME_MACHINE}-unknown ;;
	esac
	# The Operating System including object format, if it has switched
	# to ELF recently, or will in the future.
	case "${UNAME_MACHINE}" in
	    i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
Daniel Stenberg's avatar
Daniel Stenberg committed
		eval $set_cc_for_build
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
			| grep __ELF__ >/dev/null
		then
		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
		    # Return netbsd for either.  FIX?
		    os=netbsd
		else
		    os=netbsdelf
		fi
		;;
	    *)
	        os=netbsd
		;;
	esac
Daniel Stenberg's avatar
Daniel Stenberg committed
	# The OS release
	release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
	# contains redundant information, the shorter form:
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
	echo "${machine}-${os}${release}"
	exit 0 ;;
Daniel Stenberg's avatar
Daniel Stenberg committed
    alpha:OSF1:*:*)
	if test $UNAME_RELEASE = "V4.0"; then
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
	fi
	# A Vn.n version is a released version.
	# A Tn.n version is a released field test version.
	# A Xn.n version is an unreleased experimental baselevel.
	# 1.2 uses "1.2" for uname -r.
	cat <<EOF >$dummy.s
Daniel Stenberg's avatar
Daniel Stenberg committed
	.data
\$Lformat:
	.byte 37,100,45,37,120,10,0	# "%d-%x\n"

	.text
Daniel Stenberg's avatar
Daniel Stenberg committed
	.globl main
Daniel Stenberg's avatar
Daniel Stenberg committed
	.align 4
Daniel Stenberg's avatar
Daniel Stenberg committed
	.ent main
main:
Daniel Stenberg's avatar
Daniel Stenberg committed
	.frame \$30,16,\$26,0
	ldgp \$29,0(\$27)
	.prologue 1
	.long 0x47e03d80 # implver \$0
	lda \$2,-1
	.long 0x47e20c21 # amask \$2,\$1
	lda \$16,\$Lformat
	mov \$0,\$17
Loading
Loading full blame…