Skip to content

Commit 83e4d8a

Browse files
committed
Updated build scripts
1 parent 6f3e4a6 commit 83e4d8a

File tree

6 files changed

+202
-161
lines changed

6 files changed

+202
-161
lines changed

make/configure.mk

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
2-
# Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
# (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
# Copyright (C) 2024 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
# (C) 2024 Vladimir Sadovnikov <sadko4u@gmail.com>
44
#
55
# This file is part of lsp-r3d-base-lib
66
#
@@ -268,8 +268,9 @@ $(CONFIG_VARS): prepare
268268
echo "$(@)=$($(@))" >> "$(CONFIG)"
269269

270270
config: $(CONFIG_VARS)
271-
echo "Architecture: $(ARCHITECTURE_FAMILY)/$(ARCHITECTURE) ($(ARCHITECTURE_CFLAGS))"
272-
echo "Features: $(FEATURES)"
271+
echo "Host architecture: $(HOST_ARCHITECTURE_FAMILY)/$(HOST_ARCHITECTURE) ($(HOST_ARCHITECTURE_CFLAGS))"
272+
echo "Architecture: $(ARCHITECTURE_FAMILY)/$(ARCHITECTURE) ($(ARCHITECTURE_CFLAGS))"
273+
echo "Features: $(FEATURES)"
273274
echo "Configured OK"
274275

275276
help: | pathvars toolvars sysvars

make/functions.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
2-
# Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
# (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
# Copyright (C) 2024 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
# (C) 2024 Vladimir Sadovnikov <sadko4u@gmail.com>
44
#
55
# This file is part of lsp-r3d-base-lib
66
#

make/modules.mk

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
2-
# Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
# (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
# Copyright (C) 2024 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
# (C) 2024 Vladimir Sadovnikov <sadko4u@gmail.com>
44
#
55
# This file is part of lsp-r3d-base-lib
66
#
@@ -45,9 +45,15 @@ UNIQ_ALL_DEPENDENCIES := $(filter-out $(ARTIFACT_ID),$(call uniq, $(ALL_DEP
4545
MODULES ?= $(BASEDIR)/modules
4646
GIT ?= git
4747

48+
ifeq ($(DEVEL),1)
49+
X_URL_SUFFIX = _RW
50+
else
51+
X_URL_SUFFIX = _RO
52+
endif
53+
4854
ifeq ($(TREE),1)
4955
$(foreach dep,$(UNIQ_ALL_DEPENDENCIES), \
50-
$(eval $(dep)_URL=$($(dep)_URL_RO)) \
56+
$(eval $(dep)_URL=$($(dep)_URL$(X_URL_SUFFIX))) \
5157
)
5258

5359
ifeq ($(findstring -devel,$(ARTIFACT_VERSION)),-devel)

make/paths.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
ifndef PREFIX
2323
ifeq ($(PLATFORM),Windows)
2424
PREFIX := $(BASEDIR)/INSTALL
25+
else ifeq ($(CROSS_COMPILE),1)
26+
PREFIX := $(BASEDIR)/INSTALL
2527
else
2628
PREFIX := /usr/local
2729
endif

make/system.mk

Lines changed: 101 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -38,110 +38,119 @@ ifndef PLATFORM
3838
PLATFORM := Linux
3939
else ifeq ($(findstring SunOS,$(BUILD_SYSTEM)),SunOS)
4040
PLATFORM := Solaris
41+
else ifeq ($(findstring Darwin,$(BUILD_SYSTEM)),Darwin)
42+
PLATFORM := MacOS
4143
else ifeq ($(findstring Haiku,$(BUILD_SYSTEM)),Haiku)
4244
PLATFORM := Haiku
4345
endif
4446
endif
4547

4648
# Detect system processor architecture
47-
ifndef ARCHITECTURE
48-
ifeq ($(PLATFORM),Windows)
49-
BUILD_ARCH := $(PROCESSOR_ARCHITECTURE)
50-
else
51-
BUILD_ARCH := $(shell uname -m)
52-
endif
49+
ifeq ($(PLATFORM),Windows)
50+
HOST_BUILD_ARCH := $(PROCESSOR_ARCHITECTURE)
5351
else
54-
BUILD_ARCH := $(ARCHITECTURE)
52+
HOST_BUILD_ARCH := $(shell uname -m)
5553
endif
54+
BUILD_ARCH := $(if $(ARCHITECTURE),$(ARCHITECTURE),$(HOST_BUILD_ARCH))
5655

57-
# Set actual architecture
56+
# Set actual architecture for HOST and TARGET builds
5857
# The current architecture can be obtained by: gcc -Q --help=target
59-
ifeq ($(BUILD_ARCH),armel)
60-
override ARCHITECTURE = $(BUILD_ARCH)
61-
ARCHITECTURE_FAMILY = generic
62-
ARCHITECTURE_CFLAGS :=
63-
else ifeq ($(BUILD_ARCH),armhf)
64-
override ARCHITECTURE = arm32
65-
ARCHITECTURE_FAMILY = arm32
66-
ARCHITECTURE_CFLAGS := -march=armv7-a+fp -marm
67-
else ifeq ($(patsubst armv6%,armv6,$(BUILD_ARCH)),armv6)
68-
override ARCHITECTURE = arm32
69-
ARCHITECTURE_FAMILY = arm32
70-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
71-
else ifeq ($(patsubst armv7ve%,armv7ve,$(BUILD_ARCH)),armv7ve)
72-
override ARCHITECTURE = arm32
73-
ARCHITECTURE_FAMILY = arm32
74-
ARCHITECTURE_CFLAGS := -march=armv7ve -marm
75-
else ifeq ($(patsubst armv7%,armv7,$(BUILD_ARCH)),armv7)
76-
override ARCHITECTURE = arm32
77-
ARCHITECTURE_FAMILY = arm32
78-
ARCHITECTURE_CFLAGS := -march=armv7-a -marm
79-
else ifeq ($(patsubst armv8%,armv8,$(BUILD_ARCH)),armv8)
80-
override ARCHITECTURE = arm32
81-
ARCHITECTURE_FAMILY = arm32
82-
ARCHITECTURE_CFLAGS := -march=armv7-a -marm
83-
else ifeq ($(patsubst aarch64%,aarch64,$(BUILD_ARCH)),aarch64)
84-
override ARCHITECTURE = aarch64
85-
ARCHITECTURE_FAMILY = aarch64
86-
ARCHITECTURE_CFLAGS := -march=armv8-a
87-
else ifeq ($(BUILD_ARCH),arm64)
88-
override ARCHITECTURE = aarch64
89-
ARCHITECTURE_FAMILY = aarch64
90-
ARCHITECTURE_CFLAGS := -march=armv8-a
91-
else ifeq ($(BUILD_ARCH),arm32)
92-
override ARCHITECTURE = arm32
93-
ARCHITECTURE_FAMILY = arm32
94-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
95-
else ifeq ($(BUILD_ARCH),arm)
96-
override ARCHITECTURE = arm32
97-
ARCHITECTURE_FAMILY = arm32
98-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
99-
else ifeq ($(patsubst %x86_64%,x86_64,$(BUILD_ARCH)),x86_64)
100-
override ARCHITECTURE = x86_64
101-
ARCHITECTURE_FAMILY = x86_64
102-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
103-
else ifeq ($(patsubst %amd64%,amd64,$(BUILD_ARCH)),amd64)
104-
override ARCHITECTURE = x86_64
105-
ARCHITECTURE_FAMILY = x86_64
106-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
107-
else ifeq ($(patsubst %AMD64%,AMD64,$(BUILD_ARCH)),AMD64)
108-
override ARCHITECTURE = x86_64
109-
ARCHITECTURE_FAMILY = x86_64
110-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
111-
else ifeq ($(BUILD_ARCH),i86pc)
112-
override ARCHITECTURE = x86_64
113-
ARCHITECTURE_FAMILY = x86_64
114-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
115-
else ifeq ($(patsubst %i686%,i686,$(BUILD_ARCH)),i686)
116-
override ARCHITECTURE = i686
117-
ARCHITECTURE_FAMILY = ia32
118-
ARCHITECTURE_CFLAGS := -march=i686 -m32
119-
else ifeq ($(patsubst i%86,i586,$(BUILD_ARCH)),i586)
120-
override ARCHITECTURE = i586
121-
ARCHITECTURE_FAMILY = ia32
122-
ARCHITECTURE_CFLAGS := -march=i586 -m32
123-
else ifeq ($(BUILD_ARCH),x86)
124-
override ARCHITECTURE = i686
125-
ARCHITECTURE_FAMILY = ia32
126-
ARCHITECTURE_CFLAGS := -march=i686 -m32
127-
else ifeq ($(BUILD_ARCH),riscv32)
128-
override ARCHITECTURE = riscv32
129-
ARCHITECTURE_FAMILY = riscv32
130-
ARCHITECTURE_CFLAGS := -march=rv32imafdc -mabi=lp32d
131-
else ifeq ($(BUILD_ARCH),riscv64)
132-
override ARCHITECTURE = riscv64
133-
ARCHITECTURE_FAMILY = riscv64
134-
ARCHITECTURE_CFLAGS := -march=rv64imafdc -mabi=lp64d
135-
else
136-
override ARCHITECTURE = $(BUILD_ARCH)
137-
ARCHITECTURE_FAMILY = generic
138-
ARCHITECTURE_CFLAGS :=
139-
endif
58+
define detect_architecture =
59+
ifeq ($(1),armel)
60+
$(2)_NAME = $(1)
61+
$(2)_FAMILY = generic
62+
$(2)_CFLAGS :=
63+
else ifeq ($(1),armhf)
64+
$(2)_NAME = arm32
65+
$(2)_FAMILY = arm32
66+
$(2)_CFLAGS := -march=armv7-a+fp -marm
67+
else ifeq ($(patsubst armv6%,armv6,$(1)),armv6)
68+
$(2)_NAME = arm32
69+
$(2)_FAMILY = arm32
70+
$(2)_CFLAGS := -march=armv6 -marm
71+
else ifeq ($(patsubst armv7ve%,armv7ve,$(1)),armv7ve)
72+
$(2)_NAME = arm32
73+
$(2)_FAMILY = arm32
74+
$(2)_CFLAGS := -march=armv7ve -marm
75+
else ifeq ($(patsubst armv7%,armv7,$(1)),armv7)
76+
$(2)_NAME = arm32
77+
$(2)_FAMILY = arm32
78+
$(2)_CFLAGS := -march=armv7-a -marm
79+
else ifeq ($(patsubst armv8%,armv8,$(1)),armv8)
80+
$(2)_NAME = arm32
81+
$(2)_FAMILY = arm32
82+
$(2)_CFLAGS := -march=armv7-a -marm
83+
else ifeq ($(patsubst aarch64%,aarch64,$(1)),aarch64)
84+
$(2)_NAME = aarch64
85+
$(2)_FAMILY = aarch64
86+
$(2)_CFLAGS := -march=armv8-a
87+
else ifeq ($(1),arm64)
88+
$(2)_NAME = aarch64
89+
$(2)_FAMILY = aarch64
90+
$(2)_CFLAGS := -march=armv8-a
91+
else ifeq ($(1),arm32)
92+
$(2)_NAME = arm32
93+
$(2)_FAMILY = arm32
94+
$(2)_CFLAGS := -march=armv6 -marm
95+
else ifeq ($(1),arm)
96+
$(2)_NAME = arm32
97+
$(2)_FAMILY = arm32
98+
$(2)_CFLAGS := -march=armv6 -marm
99+
else ifeq ($(patsubst %x86_64%,x86_64,$(1)),x86_64)
100+
$(2)_NAME = x86_64
101+
$(2)_FAMILY = x86_64
102+
$(2)_CFLAGS := -march=x86-64 -m64
103+
else ifeq ($(patsubst %amd64%,amd64,$(1)),amd64)
104+
$(2)_NAME = x86_64
105+
$(2)_FAMILY = x86_64
106+
$(2)_CFLAGS := -march=x86-64 -m64
107+
else ifeq ($(patsubst %AMD64%,AMD64,$(1)),AMD64)
108+
$(2)_NAME = x86_64
109+
$(2)_FAMILY = x86_64
110+
$(2)_CFLAGS := -march=x86-64 -m64
111+
else ifeq ($(1),i86pc)
112+
$(2)_NAME = x86_64
113+
$(2)_FAMILY = x86_64
114+
$(2)_CFLAGS := -march=x86-64 -m64
115+
else ifeq ($(patsubst %i686%,i686,$(1)),i686)
116+
$(2)_NAME = i686
117+
$(2)_FAMILY = ia32
118+
$(2)_CFLAGS := -march=i686 -m32
119+
else ifeq ($(patsubst i%86,i586,$(1)),i586)
120+
$(2)_NAME = i586
121+
$(2)_FAMILY = ia32
122+
$(2)_CFLAGS := -march=i586 -m32
123+
else ifeq ($(1),x86)
124+
$(2)_NAME = i686
125+
$(2)_FAMILY = ia32
126+
$(2)_CFLAGS := -march=i686 -m32
127+
else ifeq ($(1),riscv32)
128+
$(2)_NAME = riscv32
129+
$(2)_FAMILY = riscv32
130+
$(2)_CFLAGS := -march=rv32imafdc -mabi=lp32d
131+
else ifeq ($(1),riscv64)
132+
$(2)_NAME = riscv64
133+
$(2)_FAMILY = riscv64
134+
$(2)_CFLAGS := -march=rv64imafdc -mabi=lp64d
135+
else
136+
$(2)_NAME = $(1)
137+
$(2)_FAMILY = generic
138+
$(2)_CFLAGS :=
139+
endif
140+
endef
141+
142+
$(eval $(call detect_architecture,$(BUILD_ARCH),ARCHITECTURE))
143+
$(eval $(call detect_architecture,$(HOST_BUILD_ARCH),HOST_ARCHITECTURE))
144+
145+
override ARCHITECTURE = $(ARCHITECTURE_NAME)
146+
override HOST_ARCHITECTURE = $(HOST_ARCHITECTURE_NAME)
140147

141148
# Extension of libraries
142149
ifndef LIBRARY_EXT
143150
ifeq ($(PLATFORM),Windows)
144151
LIBRARY_EXT := .dll
152+
else ifeq ($(PLATFORM),MacOS)
153+
LIBRARY_EXT := .dylib
145154
else
146155
LIBRARY_EXT := .so
147156
endif
@@ -187,6 +196,9 @@ COMMON_VARS = \
187196
EXECUTABLE_EXT \
188197
EXPORT_SYMBOLS \
189198
FEATURES \
199+
HOST_ARCHITECTURE \
200+
HOST_ARCHITECTURE_FAMILY \
201+
HOST_ARCHITECTURE_CFLAGS \
190202
INSTALL_HEADERS \
191203
LIBRARY_EXT \
192204
LIBRARY_PREFIX \

0 commit comments

Comments
 (0)