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