Statistics
| Branch: | Revision:

iof-bird-daemon / tools / config.guess @ 8910351c

History | View | Annotate | Download (24 KB)

1 2f9bcf97 Martin Mares
#! /bin/sh
2
# Attempt to guess a canonical system name.
3
#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
4
#
5
# This file is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 2 of the License, or
8
# (at your option) any later version.
9
#
10
# This program is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
# General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with this program; if not, write to the Free Software
17
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
#
19
# As a special exception to the GNU General Public License, if you
20
# distribute this file as part of a program that contains a
21
# configuration script generated by Autoconf, you may include it under
22
# the same distribution terms that you use for the rest of that program.
23
24
# Written by Per Bothner <bothner@cygnus.com>.
25
# The master version of this file is at the FSF in /home/gd/gnu/lib.
26
#
27
# This script attempts to guess a canonical system name similar to
28
# config.sub.  If it succeeds, it prints the system name on stdout, and
29
# exits with 0.  Otherwise, it exits with 1.
30
#
31
# The plan is that this can be called by configure scripts if you
32
# don't specify an explicit system type (host/target name).
33
#
34
# Only a few systems have been added to this list; please add others
35
# (but try to keep the structure clean).
36
#
37
38
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
39
# (ghazi@noc.rutgers.edu 8/24/94.)
40
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
41
	PATH=$PATH:/.attbin ; export PATH
42
fi
43
44
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
45
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
46
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
47
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
48
49
trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
50
51
# Note: order is significant - the case branches are not exclusive.
52
53
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
54
    alpha:OSF1:*:*)
55
	if test $UNAME_RELEASE = "V4.0"; then
56
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
57
	fi
58
	# A Vn.n version is a released version.
59
	# A Tn.n version is a released field test version.
60
	# A Xn.n version is an unreleased experimental baselevel.
61
	# 1.2 uses "1.2" for uname -r.
62
	cat <<EOF >dummy.s
63
	.globl main
64
	.ent main
65
main:
66
	.frame \$30,0,\$26,0
67
	.prologue 0
68
	.long 0x47e03d80 # implver $0
69
	lda \$2,259
70
	.long 0x47e20c21 # amask $2,$1
71
	srl \$1,8,\$2
72
	sll \$2,2,\$2
73
	sll \$0,3,\$0
74
	addl \$1,\$0,\$0
75
	addl \$2,\$0,\$0
76
	ret \$31,(\$26),1
77
	.end main
78
EOF
79
	${CC-cc} dummy.s -o dummy 2>/dev/null
80
	if test "$?" = 0 ; then
81
		./dummy
82
		case "$?" in
83
			7)
84
				UNAME_MACHINE="alpha"
85
				;;
86
			15)
87
				UNAME_MACHINE="alphaev5"
88
				;;
89
			14)
90
				UNAME_MACHINE="alphaev56"
91
				;;
92
			10)
93
				UNAME_MACHINE="alphapca56"
94
				;;
95
			16)
96
				UNAME_MACHINE="alphaev6"
97
				;;
98
		esac
99
	fi
100
	rm -f dummy.s dummy
101
	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
102
	exit 0 ;;
103
    21064:Windows_NT:50:3)
104
	echo alpha-dec-winnt3.5
105
	exit 0 ;;
106
    Amiga*:UNIX_System_V:4.0:*)
107
	echo m68k-cbm-sysv4
108
	exit 0;;
109
    amiga:NetBSD:*:*)
110
      echo m68k-cbm-netbsd${UNAME_RELEASE}
111
      exit 0 ;;
112
    amiga:OpenBSD:*:*)
113
	echo m68k-unknown-openbsd${UNAME_RELEASE}
114
	exit 0 ;;
115
    arc64:OpenBSD:*:*)
116
	echo mips64el-unknown-openbsd${UNAME_RELEASE}
117
	exit 0 ;;
118
    arc:OpenBSD:*:*)
119
	echo mipsel-unknown-openbsd${UNAME_RELEASE}
120
	exit 0 ;;
121
    hkmips:OpenBSD:*:*)
122
	echo mips-unknown-openbsd${UNAME_RELEASE}
123
	exit 0 ;;
124
    pmax:OpenBSD:*:*)
125
	echo mipsel-unknown-openbsd${UNAME_RELEASE}
126
	exit 0 ;;
127
    sgi:OpenBSD:*:*)
128
	echo mips-unknown-openbsd${UNAME_RELEASE}
129
	exit 0 ;;
130
    wgrisc:OpenBSD:*:*)
131
	echo mipsel-unknown-openbsd${UNAME_RELEASE}
132
	exit 0 ;;
133
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
134
	echo arm-acorn-riscix${UNAME_RELEASE}
135
	exit 0;;
136
    arm32:NetBSD:*:*)
137
	echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
138
	exit 0 ;;
139
    SR2?01:HI-UX/MPP:*:*)
140
	echo hppa1.1-hitachi-hiuxmpp
141
	exit 0;;
142
    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
143
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
144
	if test "`(/bin/universe) 2>/dev/null`" = att ; then
145
		echo pyramid-pyramid-sysv3
146
	else
147
		echo pyramid-pyramid-bsd
148
	fi
149
	exit 0 ;;
150
    NILE:*:*:dcosx)
151
	echo pyramid-pyramid-svr4
152
	exit 0 ;;
153
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
154
	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
155
	exit 0 ;;
156
    i86pc:SunOS:5.*:*)
157
	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
158
	exit 0 ;;
159
    sun4*:SunOS:6*:*)
160
	# According to config.sub, this is the proper way to canonicalize
161
	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
162
	# it's likely to be more like Solaris than SunOS4.
163
	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
164
	exit 0 ;;
165
    sun4*:SunOS:*:*)
166
	case "`/usr/bin/arch -k`" in
167
	    Series*|S4*)
168
		UNAME_RELEASE=`uname -v`
169
		;;
170
	esac
171
	# Japanese Language versions have a version number like `4.1.3-JL'.
172
	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
173
	exit 0 ;;
174
    sun3*:SunOS:*:*)
175
	echo m68k-sun-sunos${UNAME_RELEASE}
176
	exit 0 ;;
177
    sun*:*:4.2BSD:*)
178
	UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
179
	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
180
	case "`/bin/arch`" in
181
	    sun3)
182
		echo m68k-sun-sunos${UNAME_RELEASE}
183
		;;
184
	    sun4)
185
		echo sparc-sun-sunos${UNAME_RELEASE}
186
		;;
187
	esac
188
	exit 0 ;;
189
    aushp:SunOS:*:*)
190
	echo sparc-auspex-sunos${UNAME_RELEASE}
191
	exit 0 ;;
192
    atari*:NetBSD:*:*)
193
	echo m68k-atari-netbsd${UNAME_RELEASE}
194
	exit 0 ;;
195
    atari*:OpenBSD:*:*)
196
	echo m68k-unknown-openbsd${UNAME_RELEASE}
197
	exit 0 ;;
198
    sun3*:NetBSD:*:*)
199
	echo m68k-sun-netbsd${UNAME_RELEASE}
200
	exit 0 ;;
201
    sun3*:OpenBSD:*:*)
202
	echo m68k-unknown-openbsd${UNAME_RELEASE}
203
	exit 0 ;;
204
    mac68k:NetBSD:*:*)
205
	echo m68k-apple-netbsd${UNAME_RELEASE}
206
	exit 0 ;;
207
    mac68k:OpenBSD:*:*)
208
	echo m68k-unknown-openbsd${UNAME_RELEASE}
209
	exit 0 ;;
210
    mvme68k:OpenBSD:*:*)
211
	echo m68k-unknown-openbsd${UNAME_RELEASE}
212
	exit 0 ;;
213
    mvme88k:OpenBSD:*:*)
214
	echo m88k-unknown-openbsd${UNAME_RELEASE}
215
	exit 0 ;;
216
    powerpc:machten:*:*)
217
	echo powerpc-apple-machten${UNAME_RELEASE}
218
	exit 0 ;;
219
    RISC*:Mach:*:*)
220
	echo mips-dec-mach_bsd4.3
221
	exit 0 ;;
222
    RISC*:ULTRIX:*:*)
223
	echo mips-dec-ultrix${UNAME_RELEASE}
224
	exit 0 ;;
225
    VAX*:ULTRIX*:*:*)
226
	echo vax-dec-ultrix${UNAME_RELEASE}
227
	exit 0 ;;
228
    2020:CLIX:*:*)
229
	echo clipper-intergraph-clix${UNAME_RELEASE}
230
	exit 0 ;;
231
    mips:*:*:UMIPS | mips:*:*:RISCos)
232
	sed 's/^	//' << EOF >dummy.c
233
	int main (argc, argv) int argc; char **argv; {
234
	#if defined (host_mips) && defined (MIPSEB)
235
	#if defined (SYSTYPE_SYSV)
236
	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
237
	#endif
238
	#if defined (SYSTYPE_SVR4)
239
	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
240
	#endif
241
	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
242
	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
243
	#endif
244
	#endif
245
	  exit (-1);
246
	}
247
EOF
248
	${CC-cc} dummy.c -o dummy \
249
	  && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
250
	  && rm dummy.c dummy && exit 0
251
	rm -f dummy.c dummy
252
	echo mips-mips-riscos${UNAME_RELEASE}
253
	exit 0 ;;
254
    Night_Hawk:Power_UNIX:*:*)
255
	echo powerpc-harris-powerunix
256
	exit 0 ;;
257
    m88k:CX/UX:7*:*)
258
	echo m88k-harris-cxux7
259
	exit 0 ;;
260
    m88k:*:4*:R4*)
261
	echo m88k-motorola-sysv4
262
	exit 0 ;;
263
    m88k:*:3*:R3*)
264
	echo m88k-motorola-sysv3
265
	exit 0 ;;
266
    AViiON:dgux:*:*)
267
        # DG/UX returns AViiON for all architectures
268
        UNAME_PROCESSOR=`/usr/bin/uname -p`
269
        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
270
	if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
271
	     -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
272
		echo m88k-dg-dgux${UNAME_RELEASE}
273
	else
274
		echo m88k-dg-dguxbcs${UNAME_RELEASE}
275
	fi
276
        else echo i586-dg-dgux${UNAME_RELEASE}
277
        fi
278
 	exit 0 ;;
279
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
280
	echo m88k-dolphin-sysv3
281
	exit 0 ;;
282
    M88*:*:R3*:*)
283
	# Delta 88k system running SVR3
284
	echo m88k-motorola-sysv3
285
	exit 0 ;;
286
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
287
	echo m88k-tektronix-sysv3
288
	exit 0 ;;
289
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
290
	echo m68k-tektronix-bsd
291
	exit 0 ;;
292
    *:IRIX*:*:*)
293
	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
294
	exit 0 ;;
295
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
296
	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
297
	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
298
    i?86:AIX:*:*)
299
	echo i386-ibm-aix
300
	exit 0 ;;
301
    *:AIX:2:3)
302
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
303
		sed 's/^		//' << EOF >dummy.c
304
		#include <sys/systemcfg.h>
305
306
		main()
307
			{
308
			if (!__power_pc())
309
				exit(1);
310
			puts("powerpc-ibm-aix3.2.5");
311
			exit(0);
312
			}
313
EOF
314
		${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
315
		rm -f dummy.c dummy
316
		echo rs6000-ibm-aix3.2.5
317
	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
318
		echo rs6000-ibm-aix3.2.4
319
	else
320
		echo rs6000-ibm-aix3.2
321
	fi
322
	exit 0 ;;
323
    *:AIX:*:4)
324
	if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
325
		IBM_ARCH=rs6000
326
	else
327
		IBM_ARCH=powerpc
328
	fi
329
	if [ -x /usr/bin/oslevel ] ; then
330
		IBM_REV=`/usr/bin/oslevel`
331
	else
332
		IBM_REV=4.${UNAME_RELEASE}
333
	fi
334
	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
335
	exit 0 ;;
336
    *:AIX:*:*)
337
	echo rs6000-ibm-aix
338
	exit 0 ;;
339
    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
340
	echo romp-ibm-bsd4.4
341
	exit 0 ;;
342
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
343
	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
344
	exit 0 ;;                           # report: romp-ibm BSD 4.3
345
    *:BOSX:*:*)
346
	echo rs6000-bull-bosx
347
	exit 0 ;;
348
    DPX/2?00:B.O.S.:*:*)
349
	echo m68k-bull-sysv3
350
	exit 0 ;;
351
    9000/[34]??:4.3bsd:1.*:*)
352
	echo m68k-hp-bsd
353
	exit 0 ;;
354
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
355
	echo m68k-hp-bsd4.4
356
	exit 0 ;;
357
    9000/[3478]??:HP-UX:*:*)
358
	case "${UNAME_MACHINE}" in
359
	    9000/31? )            HP_ARCH=m68000 ;;
360
	    9000/[34]?? )         HP_ARCH=m68k ;;
361
	    9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
362
	    9000/8?? )            HP_ARCH=hppa1.0 ;;
363
	esac
364
	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
365
	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
366
	exit 0 ;;
367
    3050*:HI-UX:*:*)
368
	sed 's/^	//' << EOF >dummy.c
369
	#include <unistd.h>
370
	int
371
	main ()
372
	{
373
	  long cpu = sysconf (_SC_CPU_VERSION);
374
	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
375
	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
376
	     results, however.  */
377
	  if (CPU_IS_PA_RISC (cpu))
378
	    {
379
	      switch (cpu)
380
		{
381
		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
382
		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
383
		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
384
		  default: puts ("hppa-hitachi-hiuxwe2"); break;
385
		}
386
	    }
387
	  else if (CPU_IS_HP_MC68K (cpu))
388
	    puts ("m68k-hitachi-hiuxwe2");
389
	  else puts ("unknown-hitachi-hiuxwe2");
390
	  exit (0);
391
	}
392
EOF
393
	${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
394
	rm -f dummy.c dummy
395
	echo unknown-hitachi-hiuxwe2
396
	exit 0 ;;
397
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
398
	echo hppa1.1-hp-bsd
399
	exit 0 ;;
400
    9000/8??:4.3bsd:*:*)
401
	echo hppa1.0-hp-bsd
402
	exit 0 ;;
403
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
404
	echo hppa1.1-hp-osf
405
	exit 0 ;;
406
    hp8??:OSF1:*:*)
407
	echo hppa1.0-hp-osf
408
	exit 0 ;;
409
    i?86:OSF1:*:*)
410
	if [ -x /usr/sbin/sysversion ] ; then
411
	    echo ${UNAME_MACHINE}-unknown-osf1mk
412
	else
413
	    echo ${UNAME_MACHINE}-unknown-osf1
414
	fi
415
	exit 0 ;;
416
    parisc*:Lites*:*:*)
417
	echo hppa1.1-hp-lites
418
	exit 0 ;;
419
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
420
	echo c1-convex-bsd
421
        exit 0 ;;
422
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
423
	if getsysinfo -f scalar_acc
424
	then echo c32-convex-bsd
425
	else echo c2-convex-bsd
426
	fi
427
        exit 0 ;;
428
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
429
	echo c34-convex-bsd
430
        exit 0 ;;
431
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
432
	echo c38-convex-bsd
433
        exit 0 ;;
434
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
435
	echo c4-convex-bsd
436
        exit 0 ;;
437
    CRAY*X-MP:*:*:*)
438
	echo xmp-cray-unicos
439
        exit 0 ;;
440
    CRAY*Y-MP:*:*:*)
441
	echo ymp-cray-unicos${UNAME_RELEASE}
442
	exit 0 ;;
443
    CRAY*[A-Z]90:*:*:*)
444
	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
445
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
446
	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
447
	exit 0 ;;
448
    CRAY*TS:*:*:*)
449
	echo t90-cray-unicos${UNAME_RELEASE}
450
	exit 0 ;;
451
    CRAY-2:*:*:*)
452
	echo cray2-cray-unicos
453
        exit 0 ;;
454
    F300:UNIX_System_V:*:*)
455
        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
456
        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
457
        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
458
        exit 0 ;;
459
    F301:UNIX_System_V:*:*)
460
       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
461
       exit 0 ;;
462
    hp3[0-9][05]:NetBSD:*:*)
463
	echo m68k-hp-netbsd${UNAME_RELEASE}
464
	exit 0 ;;
465
    hp300:OpenBSD:*:*)
466
	echo m68k-unknown-openbsd${UNAME_RELEASE}
467
	exit 0 ;;
468
    i?86:BSD/386:*:* | *:BSD/OS:*:*)
469
	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
470
	exit 0 ;;
471
    *:FreeBSD:*:*)
472
	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
473
	exit 0 ;;
474
    *:NetBSD:*:*)
475
	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
476
	exit 0 ;;
477
    *:OpenBSD:*:*)
478
	echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
479
	exit 0 ;;
480
    i*:CYGWIN*:*)
481
	echo ${UNAME_MACHINE}-pc-cygwin32
482
	exit 0 ;;
483
    i*:MINGW*:*)
484
	echo ${UNAME_MACHINE}-pc-mingw32
485
	exit 0 ;;
486
    p*:CYGWIN*:*)
487
	echo powerpcle-unknown-cygwin32
488
	exit 0 ;;
489
    prep*:SunOS:5.*:*)
490
	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
491
	exit 0 ;;
492
    *:GNU:*:*)
493
	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
494
	exit 0 ;;
495
    *:Linux:*:*)
496
	# uname on the ARM produces all sorts of strangeness, and we need to
497
	# filter it out.
498
	case "$UNAME_MACHINE" in
499
	  arm* | sa110*)	      UNAME_MACHINE="arm" ;;
500
	esac
501
502
	# The BFD linker knows what the default object file format is, so
503
	# first see if it will tell us.
504
	ld_help_string=`ld --help 2>&1`
505
	ld_supported_emulations=`echo $ld_help_string \
506
			 | sed -ne '/supported emulations:/!d
507
				    s/[ 	][ 	]*/ /g
508
				    s/.*supported emulations: *//
509
				    s/ .*//
510
				    p'`
511
        case "$ld_supported_emulations" in
512
	  i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
513
	  i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
514
	  sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
515
	  armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
516
	  m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
517
	  elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
518
	esac
519
520
	if test "${UNAME_MACHINE}" = "alpha" ; then
521
		sed 's/^	//'  <<EOF >dummy.s
522
		.globl main
523
		.ent main
524
	main:
525
		.frame \$30,0,\$26,0
526
		.prologue 0
527
		.long 0x47e03d80 # implver $0
528
		lda \$2,259
529
		.long 0x47e20c21 # amask $2,$1
530
		srl \$1,8,\$2
531
		sll \$2,2,\$2
532
		sll \$0,3,\$0
533
		addl \$1,\$0,\$0
534
		addl \$2,\$0,\$0
535
		ret \$31,(\$26),1
536
		.end main
537
EOF
538
		LIBC=""
539
		${CC-cc} dummy.s -o dummy 2>/dev/null
540
		if test "$?" = 0 ; then
541
			./dummy
542
			case "$?" in
543
			7)
544
				UNAME_MACHINE="alpha"
545
				;;
546
			15)
547
				UNAME_MACHINE="alphaev5"
548
				;;
549
			14)
550
				UNAME_MACHINE="alphaev56"
551
				;;
552
			10)
553
				UNAME_MACHINE="alphapca56"
554
				;;
555
			16)
556
				UNAME_MACHINE="alphaev6"
557
				;;
558
			esac	
559
560
			objdump --private-headers dummy | \
561
			  grep ld.so.1 > /dev/null
562
			if test "$?" = 0 ; then
563
				LIBC="libc1"
564
			fi
565
		fi	
566
		rm -f dummy.s dummy
567
		echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
568
	elif test "${UNAME_MACHINE}" = "mips" ; then
569
	  cat >dummy.c <<EOF
570
main(argc, argv)
571
     int argc;
572
     char *argv[];
573
{
574
#ifdef __MIPSEB__
575
  printf ("%s-unknown-linux-gnu\n", argv[1]);
576
#endif
577
#ifdef __MIPSEL__
578
  printf ("%sel-unknown-linux-gnu\n", argv[1]);
579
#endif
580
  return 0;
581
}
582
EOF
583
	  ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
584
	  rm -f dummy.c dummy
585
	else
586
	  # Either a pre-BFD a.out linker (linux-gnuoldld)
587
	  # or one that does not give us useful --help.
588
	  # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
589
	  # If ld does not provide *any* "supported emulations:"
590
	  # that means it is gnuoldld.
591
	  echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
592
	  test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
593
594
	  case "${UNAME_MACHINE}" in
595
	  i?86)
596
	    VENDOR=pc;
597
	    ;;
598
	  *)
599
	    VENDOR=unknown;
600
	    ;;
601
	  esac
602
	  # Determine whether the default compiler is a.out or elf
603
	  cat >dummy.c <<EOF
604
#include <features.h>
605
main(argc, argv)
606
     int argc;
607
     char *argv[];
608
{
609
#ifdef __ELF__
610
# ifdef __GLIBC__
611
#  if __GLIBC__ >= 2
612
    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
613
#  else
614
    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
615
#  endif
616
# else
617
   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
618
# endif
619
#else
620
  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
621
#endif
622
  return 0;
623
}
624
EOF
625
	  ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
626
	  rm -f dummy.c dummy
627
	fi ;;
628
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
629
# are messed up and put the nodename in both sysname and nodename.
630
    i?86:DYNIX/ptx:4*:*)
631
	echo i386-sequent-sysv4
632
	exit 0 ;;
633
    i?86:UNIX_SV:4.2MP:2.*)
634
        # Unixware is an offshoot of SVR4, but it has its own version
635
        # number series starting with 2...
636
        # I am not positive that other SVR4 systems won't match this,
637
	# I just have to hope.  -- rms.
638
        # Use sysv4.2uw... so that sysv4* matches it.
639
	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
640
	exit 0 ;;
641
    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
642
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
643
		echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
644
	else
645
		echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
646
	fi
647
	exit 0 ;;
648
    i?86:*:3.2:*)
649
	if test -f /usr/options/cb.name; then
650
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
651
		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
652
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
653
		UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
654
		(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
655
		(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
656
			&& UNAME_MACHINE=i586
657
		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
658
	else
659
		echo ${UNAME_MACHINE}-pc-sysv32
660
	fi
661
	exit 0 ;;
662
    pc:*:*:*)
663
        # uname -m prints for DJGPP always 'pc', but it prints nothing about
664
        # the processor, so we play safe by assuming i386.
665
	echo i386-pc-msdosdjgpp
666
        exit 0 ;;
667
    Intel:Mach:3*:*)
668
	echo i386-pc-mach3
669
	exit 0 ;;
670
    paragon:*:*:*)
671
	echo i860-intel-osf1
672
	exit 0 ;;
673
    i860:*:4.*:*) # i860-SVR4
674
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
675
	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
676
	else # Add other i860-SVR4 vendors below as they are discovered.
677
	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
678
	fi
679
	exit 0 ;;
680
    mini*:CTIX:SYS*5:*)
681
	# "miniframe"
682
	echo m68010-convergent-sysv
683
	exit 0 ;;
684
    M68*:*:R3V[567]*:*)
685
	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
686
    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
687
	OS_REL=''
688
	test -r /etc/.relid \
689
	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
690
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
691
	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
692
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
693
	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
694
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
695
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
696
          && echo i486-ncr-sysv4 && exit 0 ;;
697
    m68*:LynxOS:2.*:*)
698
	echo m68k-unknown-lynxos${UNAME_RELEASE}
699
	exit 0 ;;
700
    mc68030:UNIX_System_V:4.*:*)
701
	echo m68k-atari-sysv4
702
	exit 0 ;;
703
    i?86:LynxOS:2.*:*)
704
	echo i386-unknown-lynxos${UNAME_RELEASE}
705
	exit 0 ;;
706
    TSUNAMI:LynxOS:2.*:*)
707
	echo sparc-unknown-lynxos${UNAME_RELEASE}
708
	exit 0 ;;
709
    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
710
	echo rs6000-unknown-lynxos${UNAME_RELEASE}
711
	exit 0 ;;
712
    SM[BE]S:UNIX_SV:*:*)
713
	echo mips-dde-sysv${UNAME_RELEASE}
714
	exit 0 ;;
715
    RM*:SINIX-*:*:*)
716
	echo mips-sni-sysv4
717
	exit 0 ;;
718
    *:SINIX-*:*:*)
719
	if uname -p 2>/dev/null >/dev/null ; then
720
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
721
		echo ${UNAME_MACHINE}-sni-sysv4
722
	else
723
		echo ns32k-sni-sysv
724
	fi
725
	exit 0 ;;
726
    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
727
                           # says <Richard.M.Bartel@ccMail.Census.GOV>
728
        echo i586-unisys-sysv4
729
        exit 0 ;;
730
    *:UNIX_System_V:4*:FTX*)
731
	# From Gerald Hewes <hewes@openmarket.com>.
732
	# How about differentiating between stratus architectures? -djm
733
	echo hppa1.1-stratus-sysv4
734
	exit 0 ;;
735
    *:*:*:FTX*)
736
	# From seanf@swdc.stratus.com.
737
	echo i860-stratus-sysv4
738
	exit 0 ;;
739
    mc68*:A/UX:*:*)
740
	echo m68k-apple-aux${UNAME_RELEASE}
741
	exit 0 ;;
742
    news*:NEWS-OS:*:6*)
743
	echo mips-sony-newsos6
744
	exit 0 ;;
745
    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
746
	if [ -d /usr/nec ]; then
747
	        echo mips-nec-sysv${UNAME_RELEASE}
748
	else
749
	        echo mips-unknown-sysv${UNAME_RELEASE}
750
	fi
751
        exit 0 ;;
752
esac
753
754
#echo '(No uname command or uname output not recognized.)' 1>&2
755
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
756
757
cat >dummy.c <<EOF
758
#ifdef _SEQUENT_
759
# include <sys/types.h>
760
# include <sys/utsname.h>
761
#endif
762
main ()
763
{
764
#if defined (sony)
765
#if defined (MIPSEB)
766
  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
767
     I don't know....  */
768
  printf ("mips-sony-bsd\n"); exit (0);
769
#else
770
#include <sys/param.h>
771
  printf ("m68k-sony-newsos%s\n",
772
#ifdef NEWSOS4
773
          "4"
774
#else
775
	  ""
776
#endif
777
         ); exit (0);
778
#endif
779
#endif
780
781
#if defined (__arm) && defined (__acorn) && defined (__unix)
782
  printf ("arm-acorn-riscix"); exit (0);
783
#endif
784
785
#if defined (hp300) && !defined (hpux)
786
  printf ("m68k-hp-bsd\n"); exit (0);
787
#endif
788
789
#if defined (NeXT)
790
#if !defined (__ARCHITECTURE__)
791
#define __ARCHITECTURE__ "m68k"
792
#endif
793
  int version;
794
  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
795
  printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
796
  exit (0);
797
#endif
798
799
#if defined (MULTIMAX) || defined (n16)
800
#if defined (UMAXV)
801
  printf ("ns32k-encore-sysv\n"); exit (0);
802
#else
803
#if defined (CMU)
804
  printf ("ns32k-encore-mach\n"); exit (0);
805
#else
806
  printf ("ns32k-encore-bsd\n"); exit (0);
807
#endif
808
#endif
809
#endif
810
811
#if defined (__386BSD__)
812
  printf ("i386-pc-bsd\n"); exit (0);
813
#endif
814
815
#if defined (sequent)
816
#if defined (i386)
817
  printf ("i386-sequent-dynix\n"); exit (0);
818
#endif
819
#if defined (ns32000)
820
  printf ("ns32k-sequent-dynix\n"); exit (0);
821
#endif
822
#endif
823
824
#if defined (_SEQUENT_)
825
    struct utsname un;
826
827
    uname(&un);
828
829
    if (strncmp(un.version, "V2", 2) == 0) {
830
	printf ("i386-sequent-ptx2\n"); exit (0);
831
    }
832
    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
833
	printf ("i386-sequent-ptx1\n"); exit (0);
834
    }
835
    printf ("i386-sequent-ptx\n"); exit (0);
836
837
#endif
838
839
#if defined (vax)
840
#if !defined (ultrix)
841
  printf ("vax-dec-bsd\n"); exit (0);
842
#else
843
  printf ("vax-dec-ultrix\n"); exit (0);
844
#endif
845
#endif
846
847
#if defined (alliant) && defined (i860)
848
  printf ("i860-alliant-bsd\n"); exit (0);
849
#endif
850
851
  exit (1);
852
}
853
EOF
854
855
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
856
rm -f dummy.c dummy
857
858
# Apollos put the system type in the environment.
859
860
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
861
862
# Convex versions that predate uname can use getsysinfo(1)
863
864
if [ -x /usr/convex/getsysinfo ]
865
then
866
    case `getsysinfo -f cpu_type` in
867
    c1*)
868
	echo c1-convex-bsd
869
	exit 0 ;;
870
    c2*)
871
	if getsysinfo -f scalar_acc
872
	then echo c32-convex-bsd
873
	else echo c2-convex-bsd
874
	fi
875
	exit 0 ;;
876
    c34*)
877
	echo c34-convex-bsd
878
	exit 0 ;;
879
    c38*)
880
	echo c38-convex-bsd
881
	exit 0 ;;
882
    c4*)
883
	echo c4-convex-bsd
884
	exit 0 ;;
885
    esac
886
fi
887
888
#echo '(Unable to guess system type)' 1>&2
889
890
exit 1