Feat: install script auto detech amd64 micro

pull/103/head
zijiren233 11 months ago
parent 1c20c028da
commit 6cd1357641

@ -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'

Loading…
Cancel
Save