debian/rules: Use `git' potty wrapper.
[qmail] / find-systype.sh
CommitLineData
2117e02e
MW
1# oper-:arch-:syst-:chip-:kern-
2# oper = operating system type; e.g., sunos-4.1.4
3# arch = machine language; e.g., sparc
4# syst = which binaries can run; e.g., sun4
5# chip = chip model; e.g., micro-2-80
6# kern = kernel version; e.g., sun4m
7# dependence: arch --- chip
8# \ \
9# oper --- syst --- kern
10# so, for example, syst is interpreted in light of oper, but chip is not.
11# anyway, no slashes, no extra colons, no uppercase letters.
12# the point of the extra -'s is to ease parsing: can add hierarchies later.
13# e.g., *:i386-*:*:pentium-*:* would handle pentium-100 as well as pentium,
14# and i386-486 (486s do have more instructions, you know) as well as i386.
15# the idea here is to include ALL useful available information.
16
17exec 2>/dev/null
18sys="`uname -s | tr '/:[A-Z]' '..[a-z]'`"
19if [ x"$sys" != x ]
20then
21 unamer="`uname -r | tr /: ..`"
22 unamem="`uname -m | tr /: ..`"
23 unamev="`uname -v | tr /: ..`"
24
25 case "$sys" in
26 bsd.os)
27 # in bsd 4.4, uname -v does not have useful info.
28 # in bsd 4.4, uname -m is arch, not chip.
29 oper="$sys-$unamer"
30 arch="$unamem"
31 syst=""
32 chip="`sysctl -n hw.model`"
33 kern=""
34 ;;
35 freebsd)
36 # see above about bsd 4.4
37 oper="$sys-$unamer"
38 arch="$unamem"
39 syst=""
40 chip="`sysctl -n hw.model`" # hopefully
41 kern=""
42 ;;
43 netbsd)
44 # see above about bsd 4.4
45 oper="$sys-$unamer"
46 arch="$unamem"
47 syst=""
48 chip="`sysctl -n hw.model`" # hopefully
49 kern=""
50 ;;
51 linux)
52 # as in bsd 4.4, uname -v does not have useful info.
53 oper="$sys-$unamer"
54 syst=""
55 chip="$unamem"
56 kern=""
57 case "$chip" in
58 i386|i486|i586|i686)
59 arch="i386"
60 ;;
61 alpha)
62 arch="alpha"
63 ;;
64 esac
65 ;;
66 aix)
67 # naturally IBM has to get uname -r and uname -v backwards. dorks.
68 oper="$sys-$unamev-$unamer"
69 arch="`arch | tr /: ..`"
70 syst=""
71 chip="$unamem"
72 kern=""
73 ;;
74 sunos)
75 oper="$sys-$unamer-$unamev"
76 arch="`(uname -p || mach) | tr /: ..`"
77 syst="`arch | tr /: ..`"
78 chip="$unamem" # this is wrong; is there any way to get the real info?
79 kern="`arch -k | tr /: ..`"
80 ;;
81 unix_sv)
82 oper="$sys-$unamer-$unamev"
83 arch="`uname -m`"
84 syst=""
85 chip="$unamem"
86 kern=""
87 ;;
88 *)
89 oper="$sys-$unamer-$unamev"
90 arch="`arch | tr /: ..`"
91 syst=""
92 chip="$unamem"
93 kern=""
94 ;;
95 esac
96else
97 $CC -c trycpp.c
98 $LD -o trycpp trycpp.o
99 case `./trycpp` in
100 nextstep)
101 oper="nextstep-`hostinfo | sed -n 's/^[ ]*NeXT Mach \([^:]*\):.*$/\1/p'`"
102 arch="`hostinfo | sed -n 's/^Processor type: \(.*\) (.*)$/\1/p' | tr /: ..`"
103 syst=""
104 chip="`hostinfo | sed -n 's/^Processor type: .* (\(.*\))$/\1/p' | tr ' /:' '...'`"
105 kern=""
106 ;;
107 *)
108 oper="unknown"
109 arch=""
110 syst=""
111 chip=""
112 kern=""
113 ;;
114 esac
115 rm -f trycpp.o trycpp
116fi
117
118case "$chip" in
11980486)
120 # let's try to be consistent here. (BSD/OS)
121 chip=i486
122 ;;
123i486DX)
124 # respect the hyphen hierarchy. (FreeBSD)
125 chip=i486-dx
126 ;;
127i486.DX2)
128 # respect the hyphen hierarchy. (FreeBSD)
129 chip=i486-dx2
130 ;;
131Intel.586)
132 # no, you nitwits, there is no such chip. (NeXTStep)
133 chip=pentium
134 ;;
135i586)
136 # no, you nitwits, there is no such chip. (Linux)
137 chip=pentium
138 ;;
139i686)
140 # STOP SAYING THAT! (Linux)
141 chip=ppro
142esac
143
144echo "$oper-:$arch-:$syst-:$chip-:$kern-" | tr ' [A-Z]' '.[a-z]'