|
|
@ -10,7 +10,6 @@ function Help() {
|
|
|
|
echo "-h: help"
|
|
|
|
echo "-h: help"
|
|
|
|
echo "-v: install version (default: latest)"
|
|
|
|
echo "-v: install version (default: latest)"
|
|
|
|
echo "-p: github proxy (default: https://mirror.ghproxy.com/)"
|
|
|
|
echo "-p: github proxy (default: https://mirror.ghproxy.com/)"
|
|
|
|
# Microarchitecture
|
|
|
|
|
|
|
|
echo "-a: microarchitecture (no default value)"
|
|
|
|
echo "-a: microarchitecture (no default value)"
|
|
|
|
echo " example: -a v2"
|
|
|
|
echo " example: -a v2"
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -26,7 +25,6 @@ function Init() {
|
|
|
|
InitOS
|
|
|
|
InitOS
|
|
|
|
InitArch
|
|
|
|
InitArch
|
|
|
|
InitDownloadTools
|
|
|
|
InitDownloadTools
|
|
|
|
Microarchitecture=""
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function ParseArgs() {
|
|
|
|
function ParseArgs() {
|
|
|
@ -70,9 +68,9 @@ function InitOS() {
|
|
|
|
Linux)
|
|
|
|
Linux)
|
|
|
|
OS='linux'
|
|
|
|
OS='linux'
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
Darwin)
|
|
|
|
# Darwin)
|
|
|
|
OS='darwin'
|
|
|
|
# OS='darwin'
|
|
|
|
;;
|
|
|
|
# ;;
|
|
|
|
*)
|
|
|
|
*)
|
|
|
|
echo "OS: ${OS} not supported"
|
|
|
|
echo "OS: ${OS} not supported"
|
|
|
|
exit 2
|
|
|
|
exit 2
|
|
|
@ -80,10 +78,27 @@ function InitOS() {
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AMD64_MICRO_DETECTION_SCRIPT=$(
|
|
|
|
|
|
|
|
cat <<EOF
|
|
|
|
|
|
|
|
BEGIN {
|
|
|
|
|
|
|
|
while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
|
|
|
|
|
|
|
|
if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
|
|
|
|
|
|
|
|
if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
|
|
|
|
|
|
|
|
if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
|
|
|
|
|
|
|
|
if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
|
|
|
|
|
|
|
|
if (level > 0) { print "v" level; exit 0 }
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
function InitArch() {
|
|
|
|
function InitArch() {
|
|
|
|
case "$(uname -m)" in
|
|
|
|
case "$(uname -m)" in
|
|
|
|
x86_64 | amd64)
|
|
|
|
x86_64 | amd64)
|
|
|
|
ARCH='amd64'
|
|
|
|
ARCH='amd64'
|
|
|
|
|
|
|
|
if [ ! "$Microarchitecture" ]; then
|
|
|
|
|
|
|
|
Microarchitecture="$(awk "$AMD64_MICRO_DETECTION_SCRIPT")"
|
|
|
|
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
i?86 | x86)
|
|
|
|
i?86 | x86)
|
|
|
|
ARCH='386'
|
|
|
|
ARCH='386'
|
|
|
|