1# -*- shell-script -*- :mode=shellscript:
2#
3# determine general hardware and operating system type for Isabelle system tools
4#
5
6ISABELLE_PLATFORM_FAMILY=""
7ISABELLE_PLATFORM32=""
8ISABELLE_PLATFORM64=""
9ISABELLE_WINDOWS_PLATFORM32=""
10ISABELLE_WINDOWS_PLATFORM64=""
11
12case $(uname -s) in
13  Linux)
14    ISABELLE_PLATFORM_FAMILY="linux"
15    case $(uname -m) in
16      i?86)
17        ISABELLE_PLATFORM32=x86-linux
18        ;;
19      x86_64)
20        ISABELLE_PLATFORM32=x86-linux
21        ISABELLE_PLATFORM64=x86_64-linux
22        ;;
23    esac
24    ;;
25  Darwin)
26    ISABELLE_PLATFORM_FAMILY="macos"
27    case $(uname -m) in
28      i?86)
29        ISABELLE_PLATFORM32=x86-darwin
30        if [ "$(sysctl -n hw.optional.x86_64 2>/dev/null)" = 1 ]; then
31          ISABELLE_PLATFORM64=x86_64-darwin
32        fi
33        ;;
34      x86_64)
35        ISABELLE_PLATFORM32=x86-darwin
36        ISABELLE_PLATFORM64=x86_64-darwin
37        ;;
38    esac
39    ;;
40  CYGWIN_NT*)
41    ISABELLE_PLATFORM_FAMILY="windows"
42    if [ "$PROCESSOR_ARCHITECTURE" = "AMD64" -o "$PROCESSOR_ARCHITEW6432" = "AMD64" ]; then
43      ISABELLE_WINDOWS_PLATFORM32="x86-windows"
44      ISABELLE_WINDOWS_PLATFORM64="x86_64-windows"
45    else
46      ISABELLE_WINDOWS_PLATFORM32="x86-windows"
47    fi
48    case $(uname -m) in
49      x86_64)
50        ISABELLE_PLATFORM64=x86_64-cygwin
51        ;;
52      i?86)
53        ISABELLE_PLATFORM32=x86-cygwin
54        ;;
55    esac
56    ;;
57esac
58
59ISABELLE_PLATFORM="${ISABELLE_PLATFORM32:-$ISABELLE_PLATFORM64}"
60ISABELLE_WINDOWS_PLATFORM="${ISABELLE_WINDOWS_PLATFORM32:-$ISABELLE_WINDOWS_PLATFORM64}"
61