# -*- shell-script -*- :mode=shellscript:
#
# determine general hardware and operating system type for Isabelle
#
# NOTE: The ML system or JVM may have their own idea about the platform!
ISABELLE_PLATFORM_FAMILY=""
ISABELLE_PLATFORM32=""
ISABELLE_PLATFORM64=""
ISABELLE_WINDOWS_PLATFORM32=""
ISABELLE_WINDOWS_PLATFORM64=""
case $(uname -s) in
Linux)
ISABELLE_PLATFORM_FAMILY="linux"
case $(uname -m) in
i?86)
ISABELLE_PLATFORM32=x86-linux
;;
x86_64)
ISABELLE_PLATFORM32=x86-linux
ISABELLE_PLATFORM64=x86_64-linux
;;
esac
;;
Darwin)
ISABELLE_PLATFORM_FAMILY="macos"
case $(uname -m) in
i?86)
ISABELLE_PLATFORM32=x86-darwin
if [ "$(sysctl -n hw.optional.x86_64 2>/dev/null)" = 1 ]; then
ISABELLE_PLATFORM64=x86_64-darwin
fi
;;
x86_64)
ISABELLE_PLATFORM32=x86-darwin
ISABELLE_PLATFORM64=x86_64-darwin
;;
esac
;;
CYGWIN_NT*)
ISABELLE_PLATFORM_FAMILY="windows"
case $(uname -m) in
i?86 | x86_64)
ISABELLE_PLATFORM32=x86-cygwin
if [ "$PROCESSOR_ARCHITECTURE" = "AMD64" -o "$PROCESSOR_ARCHITEW6432" = "AMD64" ]; then
ISABELLE_WINDOWS_PLATFORM32="x86-windows"
ISABELLE_WINDOWS_PLATFORM64="x86_64-windows"
else
ISABELLE_WINDOWS_PLATFORM32="x86-windows"
fi
;;
esac
;;
*BSD)
ISABELLE_PLATFORM_FAMILY="linux"
case $(uname -m) in
i?86 | x86_64)
ISABELLE_PLATFORM32=x86-linux #cf. BSD Linux Binary Compatibility
;;
esac
;;
esac
ISABELLE_PLATFORM="$ISABELLE_PLATFORM32"
ISABELLE_WINDOWS_PLATFORM="$ISABELLE_WINDOWS_PLATFORM32"