11#
2- # Copyright (C) 2024 Linux Studio Plugins Project <https://lsp-plug.in/>
3- # (C) 2024 Vladimir Sadovnikov <sadko4u@gmail.com>
2+ # Copyright (C) 2026 Linux Studio Plugins Project <https://lsp-plug.in/>
3+ # (C) 2026 Vladimir Sadovnikov <sadko4u@gmail.com>
44#
55# This file is part of lsp-plugins
66#
1919#
2020
2121# Detect operating system
22+ PLATFORM_PROCESSOR_ARCH :=
2223ifndef PLATFORM
24+ TMP_VAR = $(findstring Windows,$(OS ) )
2325 ifeq ($(findstring Windows,$(OS)),Windows)
24- BUILD_SYSTEM := Windows
26+ BUILD_SYSTEM := Windows
27+ else ifeq ($(findstring Windows_NT,$(OS)),Windows_NT)
28+ BUILD_SYSTEM := Windows
2529 else
26- BUILD_SYSTEM := $(shell uname -s 2>/dev/null || echo "Unknown")
30+ BUILD_SYSTEM := $(shell uname -s 2>/dev/null || echo "Unknown")
2731 endif
2832
29- PLATFORM := Unknown
33+ PLATFORM := Unknown
3034
31- ifeq ($(BUILD_SYSTEM),Windows)
32- PLATFORM := Windows
35+ ifeq ($(findstring MINGW64_NT,$(BUILD_SYSTEM)),MINGW64_NT)
36+ PLATFORM := Windows
37+ PLATFORM_PROCESSOR_ARCH := $(shell gcc -dumpmachine)
38+ else ifeq ($(findstring MINGW32_NT,$(BUILD_SYSTEM)),MINGW32_NT)
39+ PLATFORM := Windows
40+ PLATFORM_PROCESSOR_ARCH := $(shell gcc -dumpmachine)
41+ else ifeq ($(findstring MINGW_NT,$(BUILD_SYSTEM)),MINGW_NT)
42+ PLATFORM := Windows
43+ PLATFORM_PROCESSOR_ARCH := $(shell gcc -dumpmachine)
44+ else ifeq ($(BUILD_SYSTEM),Windows)
45+ PLATFORM := Windows
3346 else ifeq ($(findstring OpenBSD,$(BUILD_SYSTEM)),OpenBSD)
34- PLATFORM := OpenBSD
47+ PLATFORM := OpenBSD
3548 else ifeq ($(findstring BSD,$(BUILD_SYSTEM)),BSD)
36- PLATFORM := BSD
49+ PLATFORM := BSD
3750 else ifeq ($(findstring Linux,$(BUILD_SYSTEM)),Linux)
38- PLATFORM := Linux
51+ PLATFORM := Linux
3952 else ifeq ($(findstring SunOS,$(BUILD_SYSTEM)),SunOS)
40- PLATFORM := Solaris
53+ PLATFORM := Solaris
4154 else ifeq ($(findstring Darwin,$(BUILD_SYSTEM)),Darwin)
42- PLATFORM := MacOS
55+ PLATFORM := MacOS
4356 else ifeq ($(findstring Haiku,$(BUILD_SYSTEM)),Haiku)
44- PLATFORM := Haiku
57+ PLATFORM := Haiku
4558 endif
4659endif
4760
4861# Detect system processor architecture
4962ifeq ($(PLATFORM ) ,Windows)
50- HOST_BUILD_ARCH := $(PROCESSOR_ARCHITECTURE )
63+ HOST_BUILD_ARCH := $(if $( PLATFORM_PROCESSOR_ARCH ) , $( PLATFORM_PROCESSOR_ARCH ) , $( PROCESSOR_ARCHITECTURE ) )
5164else
52- HOST_BUILD_ARCH := $(shell uname -m)
65+ HOST_BUILD_ARCH := $(shell uname -m)
5366endif
54- BUILD_ARCH := $(if $(ARCHITECTURE ) ,$(ARCHITECTURE ) ,$(HOST_BUILD_ARCH ) )
67+ BUILD_ARCH := $(if $(ARCHITECTURE ) ,$(ARCHITECTURE ) ,$(HOST_BUILD_ARCH ) )
5568
5669ifeq ($(PLATFORM ) ,Linux)
5770 OBJ_LDFLAGS_X86 = -m elf_i386
@@ -75,23 +88,23 @@ define detect_architecture =
7588 $(2 ) _NAME = arm32
7689 $(2 ) _FAMILY = arm32
7790 $(2 ) _CFLAGS := -march=armv7-a+fp -marm
78- else ifeq ($(patsubst armv6 % , armv6,$(1 ) ) ,armv6)
91+ else ifeq ($(findstring armv6,$(1 ) ) ,armv6)
7992 $(2 ) _NAME = arm32
8093 $(2 ) _FAMILY = arm32
8194 $(2 ) _CFLAGS := -march=armv6 -marm
82- else ifeq ($(patsubst armv7ve % , armv7ve,$(1 ) ) ,armv7ve)
95+ else ifeq ($(findstring armv7ve,$(1 ) ) ,armv7ve)
8396 $(2 ) _NAME = arm32
8497 $(2 ) _FAMILY = arm32
8598 $(2 ) _CFLAGS := -march=armv7ve -marm
86- else ifeq ($(patsubst armv7 % , armv7,$(1 ) ) ,armv7)
99+ else ifeq ($(findstring armv7,$(1 ) ) ,armv7)
87100 $(2 ) _NAME = arm32
88101 $(2 ) _FAMILY = arm32
89102 $(2 ) _CFLAGS := -march=armv7-a -marm
90- else ifeq ($(patsubst armv8 % , armv8,$(1 ) ) ,armv8)
103+ else ifeq ($(findstring armv8,$(1 ) ) ,armv8)
91104 $(2 ) _NAME = arm32
92105 $(2 ) _FAMILY = arm32
93106 $(2 ) _CFLAGS := -march=armv7-a -marm
94- else ifeq ($(patsubst aarch64 % , aarch64,$(1 ) ) ,aarch64)
107+ else ifeq ($(findstring aarch64,$(1 ) ) ,aarch64)
95108 $(2 ) _NAME = aarch64
96109 $(2 ) _FAMILY = aarch64
97110 $(2 ) _CFLAGS := -march=armv8-a
@@ -107,17 +120,17 @@ define detect_architecture =
107120 $(2 ) _NAME = arm32
108121 $(2 ) _FAMILY = arm32
109122 $(2 ) _CFLAGS := -march=armv6 -marm
110- else ifeq ($(patsubst % x86_64 % , x86_64,$(1 ) ) ,x86_64)
123+ else ifeq ($(findstring x86_64,$(1 ) ) ,x86_64)
111124 $(2 ) _NAME = x86_64
112125 $(2 ) _FAMILY = x86_64
113126 $(2 ) _CFLAGS := -march=x86-64 -m64
114127 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86_64 )
115- else ifeq ($(patsubst % amd64 % , amd64,$(1 ) ) ,amd64)
128+ else ifeq ($(findstring amd64,$(1 ) ) ,amd64)
116129 $(2 ) _NAME = x86_64
117130 $(2 ) _FAMILY = x86_64
118131 $(2 ) _CFLAGS := -march=x86-64 -m64
119132 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86_64 )
120- else ifeq ($(patsubst % AMD64 % , AMD64,$(1 ) ) ,AMD64)
133+ else ifeq ($(findstring AMD64,$(1 ) ) ,AMD64)
121134 $(2 ) _NAME = x86_64
122135 $(2 ) _FAMILY = x86_64
123136 $(2 ) _CFLAGS := -march=x86-64 -m64
@@ -127,12 +140,22 @@ define detect_architecture =
127140 $(2 ) _FAMILY = x86_64
128141 $(2 ) _CFLAGS := -march=x86-64 -m64
129142 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86_64 )
130- else ifeq ($(patsubst % i686 % , i686,$(1 ) ) ,i686)
143+ else ifeq ($(findstring i686,$(1 ) ) ,i686)
131144 $(2 ) _NAME = i686
132145 $(2 ) _FAMILY = ia32
133146 $(2 ) _CFLAGS := -march=i686 -m32
134147 $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86 )
135- else ifeq ($(patsubst i% 86,i586,$(1 ) ) ,i586)
148+ else ifeq ($(findstring i586,$(1 ) ) ,i586)
149+ $(2 ) _NAME = i586
150+ $(2 ) _FAMILY = ia32
151+ $(2 ) _CFLAGS := -march=i586 -m32
152+ $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86 )
153+ else ifeq ($(findstring i486,$(1 ) ) ,i486)
154+ $(2 ) _NAME = i586
155+ $(2 ) _FAMILY = ia32
156+ $(2 ) _CFLAGS := -march=i586 -m32
157+ $(2 ) _LDFLAGS := $(OBJ_LDFLAGS_X86 )
158+ else ifeq ($(findstring i386,$(1 ) ) ,i386)
136159 $(2 ) _NAME = i586
137160 $(2 ) _FAMILY = ia32
138161 $(2 ) _CFLAGS := -march=i586 -m32
0 commit comments