Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / bin / platform
1 #!/usr/bin/env bash
2
3 set -e
4
5 name=`basename "$0"`
6 dir=`dirname "$0"`
7 bin=`cd "$dir" && pwd`
8
9 die () {
10 echo >&2 "$1"
11 exit 1
12 }
13
14 usage () {
15 die "usage: $name"
16 }
17
18 case "$#" in
19 0)
20 ;;
21 *)
22 usage
23 ;;
24 esac
25
26 uname=`uname`
27 arch=
28
29 case "$uname" in
30 AIX)
31 HOST_OS='aix'
32 arch=`/usr/sbin/lsattr -a type -F deflt -l proc0`
33 case $arch in
34 POWER) arch=powerpc64 ;;
35 esac
36 ;;
37 CYGWIN*)
38 HOST_OS='cygwin'
39 ;;
40 Darwin)
41 HOST_OS='darwin'
42 ;;
43 *FreeBSD*)
44 HOST_OS='freebsd'
45 ;;
46 GNU)
47 HOST_OS='hurd'
48 ;;
49 HP-UX)
50 HOST_OS='hpux'
51 ;;
52 Linux)
53 HOST_OS='linux'
54 ;;
55 MINGW*)
56 HOST_OS='mingw'
57 ;;
58 NetBSD*)
59 HOST_OS='netbsd'
60 ;;
61 OpenBSD*)
62 HOST_OS='openbsd'
63 ;;
64 SunOS)
65 HOST_OS='solaris'
66 for arch in sparc amd64 i386 `uname -m`; do
67 optisa $arch > /dev/null && break
68 done
69 ;;
70 *)
71 die "Unknown OS $uname."
72 ;;
73 esac
74
75 if [ -z "$arch" ]; then
76 arch=`uname -m`
77 fi
78
79 case "$arch" in
80 alpha*)
81 # not certain about this one; no alpha access
82 HOST_ARCH=alpha
83 ;;
84 x86_64*)
85 HOST_ARCH=amd64
86 ;;
87 i?86_64)
88 HOST_ARCH=amd64
89 ;;
90 amd64)
91 HOST_ARCH=amd64
92 ;;
93 arm*)
94 HOST_ARCH=arm
95 ;;
96 aarch64)
97 HOST_ARCH=arm64
98 ;;
99 parisc*)
100 HOST_ARCH=hppa
101 ;;
102 9000/*)
103 HOST_ARCH=hppa
104 ;;
105 ia64*)
106 HOST_ARCH=ia64
107 ;;
108 m68k*)
109 HOST_ARCH=m68k
110 ;;
111 mips*)
112 # big-endian and little-endian detect via headers
113 HOST_ARCH=mips
114 ;;
115 powerpc64)
116 HOST_ARCH=powerpc64
117 ;;
118 ppc64)
119 HOST_ARCH=powerpc64
120 ;;
121 powerpc)
122 HOST_ARCH=powerpc
123 ;;
124 ppc*)
125 HOST_ARCH=powerpc
126 ;;
127 Power*)
128 HOST_ARCH=powerpc
129 ;;
130 s390*)
131 HOST_ARCH=s390
132 ;;
133 sparc*)
134 HOST_ARCH=sparc
135 ;;
136 sun*)
137 HOST_ARCH=sparc
138 ;;
139 i?86*)
140 HOST_ARCH=x86
141 ;;
142 *)
143 die "Unknown arch $arch."
144 ;;
145 esac
146
147 echo "HOST_OS=$HOST_OS HOST_ARCH=$HOST_ARCH"