1919#
2020
2121# Detect operating system
22+ PLATFORM_PROCESSOR_ARCH :=
2223ifndef PLATFORM
2324 ifeq ($(findstring Windows,$(OS)),Windows)
24- BUILD_SYSTEM := Windows
25+ BUILD_SYSTEM := Windows
26+ else ifeq ($(findstring Windows_NT,$(OS)),Windows_NT)
27+ BUILD_SYSTEM := Windows
2528 else
26- BUILD_SYSTEM := $(shell uname -s 2>/dev/null || echo "Unknown")
29+ BUILD_SYSTEM := $(shell uname -s 2>/dev/null || echo "Unknown")
2730 endif
2831
29- PLATFORM := Unknown
32+ PLATFORM := Unknown
3033
31- ifeq ($(BUILD_SYSTEM),Windows)
32- PLATFORM := Windows
34+ ifeq ($(findstring MINGW64_NT,$(BUILD_SYSTEM)),MINGW64_NT)
35+ PLATFORM := Windows
36+ PLATFORM_PROCESSOR_ARCH := $(shell gcc -dumpmachine)
37+ else ifeq ($(findstring MINGW32_NT,$(BUILD_SYSTEM)),MINGW32_NT)
38+ PLATFORM := Windows
39+ PLATFORM_PROCESSOR_ARCH := $(shell gcc -dumpmachine)
40+ else ifeq ($(findstring MINGW_NT,$(BUILD_SYSTEM)),MINGW_NT)
41+ PLATFORM := Windows
42+ PLATFORM_PROCESSOR_ARCH := $(shell gcc -dumpmachine)
43+ else ifeq ($(BUILD_SYSTEM),Windows)
44+ PLATFORM := Windows
3345 else ifeq ($(findstring OpenBSD,$(BUILD_SYSTEM)),OpenBSD)
34- PLATFORM := OpenBSD
46+ PLATFORM := OpenBSD
3547 else ifeq ($(findstring BSD,$(BUILD_SYSTEM)),BSD)
36- PLATFORM := BSD
48+ PLATFORM := BSD
3749 else ifeq ($(findstring Linux,$(BUILD_SYSTEM)),Linux)
38- PLATFORM := Linux
50+ PLATFORM := Linux
3951 else ifeq ($(findstring SunOS,$(BUILD_SYSTEM)),SunOS)
40- PLATFORM := Solaris
52+ PLATFORM := Solaris
4153 else ifeq ($(findstring Darwin,$(BUILD_SYSTEM)),Darwin)
42- PLATFORM := MacOS
54+ PLATFORM := MacOS
4355 else ifeq ($(findstring Haiku,$(BUILD_SYSTEM)),Haiku)
44- PLATFORM := Haiku
56+ PLATFORM := Haiku
4557 endif
4658endif
4759
4860# Detect system processor architecture
4961ifeq ($(PLATFORM ) ,Windows)
50- HOST_BUILD_ARCH := $(PROCESSOR_ARCHITECTURE )
62+ HOST_BUILD_ARCH := $(if $( PLATFORM_PROCESSOR_ARCH ) , $( PLATFORM_PROCESSOR_ARCH ) , $( PROCESSOR_ARCHITECTURE ) )
5163else
52- HOST_BUILD_ARCH := $(shell uname -m)
64+ HOST_BUILD_ARCH := $(shell uname -m)
5365endif
54- BUILD_ARCH := $(if $(ARCHITECTURE ) ,$(ARCHITECTURE ) ,$(HOST_BUILD_ARCH ) )
66+ BUILD_ARCH := $(if $(ARCHITECTURE ) ,$(ARCHITECTURE ) ,$(HOST_BUILD_ARCH ) )
5567
5668ifeq ($(PLATFORM ) ,Linux)
5769 OBJ_LDFLAGS_X86 = -m elf_i386
@@ -75,23 +87,23 @@ define detect_architecture =
7587 $(2 ) _NAME = arm32
7688 $(2 ) _FAMILY = arm32
7789 $(2 ) _CFLAGS := -march=armv7-a+fp -marm
78- else ifeq ($(patsubst armv6 % , armv6,$(1 ) ) ,armv6)
90+ else ifeq ($(findstring armv6,$(1 ) ) ,armv6)
7991 $(2 ) _NAME = arm32
8092 $(2 ) _FAMILY = arm32
8193 $(2 ) _CFLAGS := -march=armv6 -marm
82- else ifeq ($(patsubst armv7ve % , armv7ve,$(1 ) ) ,armv7ve)
94+ else ifeq ($(findstring armv7ve,$(1 ) ) ,armv7ve)
8395 $(2 ) _NAME = arm32
8496 $(2 ) _FAMILY = arm32
8597 $(2 ) _CFLAGS := -march=armv7ve -marm
86- else ifeq ($(patsubst armv7 % , armv7,$(1 ) ) ,armv7)
98+ else ifeq ($(findstring armv7,$(1 ) ) ,armv7)
8799 $(2 ) _NAME = arm32
88100 $(2 ) _FAMILY = arm32
89101 $(2 ) _CFLAGS := -march=armv7-a -marm
90- else ifeq ($(patsubst armv8 % , armv8,$(1 ) ) ,armv8)
102+ else ifeq ($(findstring armv8,$(1 ) ) ,armv8)
91103 $(2 ) _NAME = arm32
92104 $(2 ) _FAMILY = arm32
93105 $(2 ) _CFLAGS := -march=armv7-a -marm
94- else ifeq ($(patsubst aarch64 % , aarch64,$(1 ) ) ,aarch64)
106+ else ifeq ($(findstring aarch64,$(1 ) ) ,aarch64)
95107 $(2 ) _NAME = aarch64
96108 $(2 ) _FAMILY = aarch64
97109 $(2 ) _CFLAGS := -march=armv8-a
@@ -107,17 +119,17 @@ define detect_architecture =
107119 $(2 ) _NAME = arm32
108120 $(2 ) _FAMILY = arm32
109121 $(2 ) _CFLAGS := -march=armv6 -marm
110- else ifeq ($(patsubst % x86_64 % , x86_64,$(1 ) ) ,x86_64)
122+ else ifeq ($(findstring x86_64,$(1 ) ) ,x86_64)
111123 $(2 ) _NAME = x86_64
112124 $(2 ) _FAMILY = x86_64
113125 $(2 ) _CFLAGS := -march=x86-64 -m64
114126 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86_64 )
115- else ifeq ($(patsubst % amd64 % , amd64,$(1 ) ) ,amd64)
127+ else ifeq ($(findstring amd64,$(1 ) ) ,amd64)
116128 $(2 ) _NAME = x86_64
117129 $(2 ) _FAMILY = x86_64
118130 $(2 ) _CFLAGS := -march=x86-64 -m64
119131 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86_64 )
120- else ifeq ($(patsubst % AMD64 % , AMD64,$(1 ) ) ,AMD64)
132+ else ifeq ($(findstring AMD64,$(1 ) ) ,AMD64)
121133 $(2 ) _NAME = x86_64
122134 $(2 ) _FAMILY = x86_64
123135 $(2 ) _CFLAGS := -march=x86-64 -m64
@@ -127,12 +139,22 @@ define detect_architecture =
127139 $(2 ) _FAMILY = x86_64
128140 $(2 ) _CFLAGS := -march=x86-64 -m64
129141 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86_64 )
130- else ifeq ($(patsubst % i686 % , i686,$(1 ) ) ,i686)
142+ else ifeq ($(findstring i686,$(1 ) ) ,i686)
131143 $(2 ) _NAME = i686
132144 $(2 ) _FAMILY = ia32
133145 $(2 ) _CFLAGS := -march=i686 -m32
134146 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86 )
135- else ifeq ($(patsubst i% 86,i586,$(1 ) ) ,i586)
147+ else ifeq ($(findstring i586,$(1 ) ) ,i586)
148+ $(2 ) _NAME = i586
149+ $(2 ) _FAMILY = ia32
150+ $(2 ) _CFLAGS := -march=i586 -m32
151+ $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86 )
152+ else ifeq ($(findstring i486,$(1 ) ) ,i486)
153+ $(2 ) _NAME = i586
154+ $(2 ) _FAMILY = ia32
155+ $(2 ) _CFLAGS := -march=i586 -m32
156+ $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86 )
157+ else ifeq ($(findstring i386,$(1 ) ) ,i386)
136158 $(2 ) _NAME = i586
137159 $(2 ) _FAMILY = ia32
138160 $(2 ) _CFLAGS := -march=i586 -m32
0 commit comments