Description: use cc -dumpmachine Instead of uname
Author: Helmut Grohne <helmut@subdivi.de>
Bug-Debian: https://bugs.debian.org/999880
Forwarded: not-needed
Reviewed-By: Clay Stan <claystan97@gmail.com>
Last-Update: 2024-10-09


--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@
 
 ifneq ($(OS),Windows_NT)
 	GIT_VERSION := "$(shell git describe --abbrev=4 --dirty --always --tags)"
-	arch := $(shell uname -m)
+	arch := $(shell $(CC) -dumpmachine)
 	os := $(shell uname -s)
 
 	ifeq ($(os), Linux)
@@ -20,7 +20,7 @@
 		COMMON_HDR += $(SRC_COMMON)freq.h
 	endif
 
-	ifeq ($(arch), $(filter $(arch), x86_64 amd64 i386 i486 i586 i686))
+	ifeq ($(arch), $(filter x86_64-% i686-%,$(arch)))
 		SRC_DIR=src/x86/
 		SOURCE += $(COMMON_SRC) $(SRC_DIR)cpuid.c $(SRC_DIR)apic.c $(SRC_DIR)cpuid_asm.c $(SRC_DIR)uarch.c
 		HEADERS += $(COMMON_HDR) $(SRC_DIR)cpuid.h $(SRC_DIR)apic.h $(SRC_DIR)cpuid_asm.h $(SRC_DIR)uarch.h $(SRC_DIR)freq/freq.h
@@ -31,12 +31,12 @@
 			CFLAGS += -pthread
 		endif
 		CFLAGS += -DARCH_X86 -std=c99 -fstack-protector-all
-	else ifeq ($(arch), $(filter $(arch), ppc64le ppc64 ppcle ppc))
+	else ifeq ($(arch), $(filter powerpc64le-% powerpc64-% powerpc-%,$(arch)))
 		SRC_DIR=src/ppc/
 		SOURCE += $(COMMON_SRC) $(SRC_DIR)ppc.c $(SRC_DIR)uarch.c $(SRC_DIR)udev.c
 		HEADERS += $(COMMON_HDR) $(SRC_DIR)ppc.h $(SRC_DIR)uarch.h  $(SRC_DIR)udev.c
 		CFLAGS += -DARCH_PPC -std=gnu99 -fstack-protector-all -Wno-language-extension-token
-	else ifeq ($(arch), $(filter $(arch), arm aarch64_be aarch64 arm64 armv8b armv8l armv7l armv6l))
+	else ifeq ($(arch), $(filter arm-% aarch64-%,$(arch)))
 		SRC_DIR=src/arm/
 		SOURCE += $(COMMON_SRC) $(SRC_DIR)midr.c $(SRC_DIR)uarch.c $(SRC_COMMON)soc.c $(SRC_DIR)soc.c $(SRC_COMMON)pci.c $(SRC_DIR)udev.c sve.o
 		HEADERS += $(COMMON_HDR) $(SRC_DIR)midr.h $(SRC_DIR)uarch.h  $(SRC_COMMON)soc.h $(SRC_DIR)soc.h $(SRC_COMMON)pci.h $(SRC_DIR)udev.c $(SRC_DIR)socs.h
@@ -52,7 +52,7 @@
 			SOURCE += $(SRC_COMMON)sysctl.c
 			HEADERS += $(SRC_COMMON)sysctl.h
 		endif
-	else ifeq ($(arch), $(filter $(arch), riscv64 riscv32))
+	else ifeq ($(arch), $(filter riscv64-% riscv32-%,$(arch)))
 		SRC_DIR=src/riscv/
 		SOURCE += $(COMMON_SRC) $(SRC_DIR)riscv.c $(SRC_DIR)uarch.c $(SRC_COMMON)soc.c $(SRC_DIR)soc.c $(SRC_DIR)udev.c
 		HEADERS += $(COMMON_HDR) $(SRC_DIR)riscv.h $(SRC_DIR)uarch.h $(SRC_COMMON)soc.h $(SRC_DIR)soc.h $(SRC_DIR)udev.h $(SRC_DIR)socs.h
