diff --git a/arch.mk b/arch.mk index 50049263..6aa03e10 100644 --- a/arch.mk +++ b/arch.mk @@ -1,34 +1,34 @@ MACHINE := $(shell $(CC) -dumpmachine) -MACHINE_LIST := $(subst -, ,$(MACHINE)) -MACHINE_ARCH := $(word 1, $(MACHINE_LIST)) -MACHINE_VENDOR := $(word 2, $(MACHINE_LIST)) -MACHINE_OS := $(word 3, $(MACHINE_LIST)) -ifeq ($(MACHINE_ARCH),x86_64) +ifneq (,$(findstring x86_64-,$(MACHINE))) ARCH_X64 := 1 ARCH_NAME := x64 -else ifeq ($(MACHINE_ARCH),arm64) +else ifneq (,$(findstring arm64-,$(MACHINE))) ARCH_ARM64 := 1 ARCH_NAME := arm64 else -$(error CPU architecture $(MACHINE_ARCH) not supported) +$(error Could not determine CPU architecture of $(MACHINE)) endif -ifneq (,$(findstring darwin,$(MACHINE_OS))) +ifneq (,$(findstring -darwin,$(MACHINE))) ARCH_MAC := 1 ARCH_OS_NAME := mac -else ifneq (,$(findstring mingw32,$(MACHINE_OS))) +else ifneq (,$(findstring -mingw32,$(MACHINE))) ARCH_WIN := 1 ARCH_OS_NAME := win -else ifneq (,$(findstring linux,$(MACHINE_OS))) +else ifneq (,$(findstring -linux,$(MACHINE))) ARCH_LIN := 1 ARCH_OS_NAME := lin else -$(error Operating system $(MACHINE_OS) not supported) +$(error Could not determine operating system of $(MACHINE)) endif -ARCH_FULL_NAME := $(ARCH_OS_NAME) -ifndef ARCH_X64 - ARCH_FULL_NAME := $(ARCH_FULL_NAME)_$(ARCH_NAME) +# The architecture "full name" is used in package filenames. +# Examples: win, lin, mac, mac_arm64 +ifdef ARCH_X64 + # Omit arch name for x64 + ARCH_FULL_NAME := $(ARCH_OS_NAME) +else + ARCH_FULL_NAME := $(ARCH_OS_NAME)_$(ARCH_NAME) endif