Skip to content

Commit 3f152a7

Browse files
committed
Updated build
1 parent e004f71 commit 3f152a7

File tree

5 files changed

+91
-96
lines changed

5 files changed

+91
-96
lines changed

make/configure.mk

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ endif
2525
PREFIX := /usr/local
2626
LIBDIR := $(PREFIX)/lib
2727
BINDIR := $(PREFIX)/bin
28+
SHAREDDIR := $(PREFIX)/share
2829
INCDIR := $(PREFIX)/include
30+
ETCDIR := /etc
2931
BASEDIR := $(CURDIR)
3032
ROOTDIR := $(CURDIR)
3133
BUILDDIR := $(BASEDIR)/.build
@@ -44,11 +46,11 @@ else
4446
X_URL_SUFFIX = _RO
4547
endif
4648

47-
include $(BASEDIR)/project.mk
4849
include $(BASEDIR)/make/functions.mk
4950
include $(BASEDIR)/make/system.mk
5051
include $(BASEDIR)/make/tools.mk
5152
include $(BASEDIR)/modules.mk
53+
include $(BASEDIR)/project.mk
5254
include $(BASEDIR)/dependencies.mk
5355

5456
# Compute the full list of dependencies
@@ -57,6 +59,7 @@ MERGED_DEPENDENCIES := \
5759
$(TEST_DEPENDENCIES)
5860
UNIQ_MERGED_DEPENDENCIES := $(call uniq, $(MERGED_DEPENDENCIES))
5961
DEPENDENCIES = $(UNIQ_MERGED_DEPENDENCIES)
62+
FEATURES := $(call uniq, $(call subtraction,$(SUB_FEATURES),$(DEFAULT_FEATURES) $(ADD_FEATURES)))
6063

6164
# Determine versions
6265
ifeq ($(findstring -devel,$(ARTIFACT_VERSION)),-devel)
@@ -186,9 +189,16 @@ define vardef =
186189
endef
187190

188191
# Define predefined variables
192+
ifndef ARTIFACT_TYPE
193+
ARTIFACT_TYPE := src
194+
endif
195+
189196
ifndef $(ARTIFACT_ID)_NAME
190197
$(ARTIFACT_ID)_NAME := $(ARTIFACT_NAME)
191198
endif
199+
ifndef $(ARTIFACT_ID)_TYPE
200+
$(ARTIFACT_ID)_TYPE := $(ARTIFACT_TYPE)
201+
endif
192202
ifndef $(ARTIFACT_ID)_DESC
193203
$(ARTIFACT_ID)_DESC := $(ARTIFACT_DESC)
194204
endif
@@ -204,9 +214,8 @@ endif
204214

205215
ROOT_ARTIFACT_ID := $(ARTIFACT_ID)
206216
$(ARTIFACT_ID)_TESTING = $(TEST)
207-
$(ARTIFACT_ID)_TYPE := src
208217

209-
OVERALL_DEPS := $(DEPENDENCIES) $(ARTIFACT_ID)
218+
OVERALL_DEPS := $(call uniq,$(DEPENDENCIES) $(ARTIFACT_ID))
210219
__tmp := $(foreach dep,$(OVERALL_DEPS),$(call vardef, $(dep)))
211220

212221
CONFIG_VARS = \
@@ -257,6 +266,8 @@ $(CONFIG_VARS): prepare
257266
echo "$(@)=$($(@))" >> "$(CONFIG)"
258267

259268
config: $(CONFIG_VARS)
269+
echo "Architecture: $(ARCHITECTURE) ($(ARCHITECTURE_CFLAGS))"
270+
echo "Features: $(FEATURES)"
260271
echo "Configured OK"
261272

262273
help: | toolvars sysvars
@@ -286,4 +297,4 @@ help: | toolvars sysvars
286297
echo ""
287298
echo "Artifacts used for build:"
288299
echo " $(DEPENDENCIES)"
289-
300+
echo ""

make/functions.mk

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ dquery = $(foreach d,$(call uniq, $2),$(if $($(d)_$(strip $1)),
4343
# $(call cquery, OBJ_META, BIN, $(DEPENDENCIES))
4444
cquery = $(foreach d,$(call uniq, $3),$(if $($(d)_$(strip $1)),$($(d)_$(strip $2))))
4545

46+
# Find intersection between two sets
47+
# $(call intersection, list1, list2)
48+
intersection = $(foreach v,$1,$(if $(findstring $(v),$2),$(v)))
49+
50+
# Subtract the first set from second set
51+
# $(call subtraction, list1, list2)
52+
subtraction = $(foreach v,$2,$(if $(findstring $(v),$1),,$(v)))
53+
4654
# Fetch different versions from version string
4755
# $(call vmajor, <version-string>)
4856
vmajor = $(shell echo "$(strip $1)" | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+)(-(.*))?/\1/')

make/modules.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ include $(BASEDIR)/dependencies.mk
3838
MERGED_DEPENDENCIES := \
3939
$(DEPENDENCIES) \
4040
$(TEST_DEPENDENCIES)
41-
UNIQ_MERGED_DEPENDENCIES := $(call uniq, $(MERGED_DEPENDENCIES))
42-
UNIQ_ALL_DEPENDENCIES := $(call uniq, $(ALL_DEPENDENCIES))
41+
UNIQ_MERGED_DEPENDENCIES := $(filter-out $(ARTIFACT_ID),$(call uniq, $(MERGED_DEPENDENCIES)))
42+
UNIQ_ALL_DEPENDENCIES := $(filter-out $(ARTIFACT_ID),$(call uniq, $(ALL_DEPENDENCIES)))
4343

4444
# Find the proper branch of the GIT repository
4545
ifeq ($(TREE),1)

make/system.mk

Lines changed: 60 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -41,96 +41,60 @@ ifndef PLATFORM
4141
endif
4242
endif
4343

44-
# Detect/set processor architecture
44+
# Detect system processor architecture
4545
ifndef ARCHITECTURE
4646
ifeq ($(PLATFORM),Windows)
47-
ifeq ($(PROCESSOR_ARCHITECTURE),x86)
48-
ARCHITECTURE := i586
49-
ARCHITECTURE_CFLAGS := -march=i586 -m32
50-
else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
51-
ARCHITECTURE := x86_64
52-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
53-
else
54-
ARCHITECTURE := i586
55-
ARCHITECTURE_CFLAGS := -march=i586 -m32
56-
endif
57-
else # BUILD_PLATFORM != Windows
58-
BUILD_ARCH := $(shell uname -m)
59-
ifeq ($(patsubst armv6%,armv6,$(BUILD_ARCH)),armv6)
60-
ARCHITECTURE := arm32
61-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
62-
else ifeq ($(patsubst armv7ve%,armv7ve,$(BUILD_ARCH)),armv7ve)
63-
ARCHITECTURE := arm32
64-
ARCHITECTURE_CFLAGS := -march=armv7ve -marm
65-
else ifeq ($(patsubst armv7%,armv7,$(BUILD_ARCH)),armv7)
66-
ARCHITECTURE := arm32
67-
ARCHITECTURE_CFLAGS := -march=armv7-a -marm
68-
else ifeq ($(patsubst armv8%,armv8,$(BUILD_ARCH)),armv8)
69-
ARCHITECTURE := aarch64
70-
ARCHITECTURE_CFLAGS := -march=armv8-a
71-
else ifeq ($(patsubst aarch64%,aarch64,$(BUILD_ARCH)),aarch64)
72-
ARCHITECTURE := aarch64
73-
ARCHITECTURE_CFLAGS := -march=armv8-a
74-
else ifeq ($(BUILD_ARCH),arm)
75-
ARCHITECTURE := arm32
76-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
77-
else ifeq ($(BUILD_ARCH),x86_64)
78-
ARCHITECTURE := x86_64
79-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
80-
else ifeq ($(BUILD_ARCH),amd64)
81-
ARCHITECTURE := x86_64
82-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
83-
else ifeq ($(BUILD_ARCH),i86pc)
84-
ARCHITECTURE := x86_64
85-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
86-
else ifeq ($(patsubst i%86,i586,$(BUILD_ARCH)),i586)
87-
ARCHITECTURE := i586
88-
ARCHITECTURE_CFLAGS := -march=i586 -m32
89-
else ifeq ($(BUILD_ARCH),x86)
90-
ARCHITECTURE := i586
91-
ARCHITECTURE_CFLAGS := -march=i586 -m32
92-
else
93-
override ARCHITECTURE =
94-
ARCHITECTURE_CFLAGS :=
95-
endif
96-
endif # PLATFORM != Windows
97-
else
98-
ifeq ($(ARCHITECTURE),x86_64)
99-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
100-
else ifeq ($(ARCHITECTURE),amd64)
101-
override ARCHITECTURE = x86_64
102-
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
103-
else ifeq ($(ARCHITECTURE),i586)
104-
ARCHITECTURE_CFLAGS := -march=i586 -m32
105-
else ifeq ($(ARCHITECTURE),ia32)
106-
override ARCHITECTURE = i586
107-
ARCHITECTURE_CFLAGS := -march=i586 -m32
108-
else ifeq ($(ARCHITECTURE),x86)
109-
override ARCHITECTURE = i586
110-
ARCHITECTURE_CFLAGS := -march=i586 -m32
111-
else ifeq ($(ARCHITECTURE),arm32)
112-
override ARCHITECTURE = arm32
113-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
114-
else ifeq ($(ARCHITECTURE),arm32-v6)
115-
override ARCHITECTURE = arm32
116-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
117-
else ifeq ($(ARCHITECTURE),armv6)
118-
override ARCHITECTURE = arm32
119-
ARCHITECTURE_CFLAGS := -march=armv6 -marm
120-
else ifeq ($(ARCHITECTURE),arm32-v7)
121-
override ARCHITECTURE = arm32
122-
ARCHITECTURE_CFLAGS := -march=armv7-a -marm
123-
else ifeq ($(ARCHITECTURE),armv7)
124-
override ARCHITECTURE = arm32
125-
ARCHITECTURE_CFLAGS := -march=armv7-a -marm
126-
else ifeq ($(ARCHITECTURE),aarch64)
127-
ARCHITECTURE_CFLAGS := -march=armv8-a
128-
else ifeq ($(ARCHITECTURE),armv8)
129-
override ARCHITECTURE = aarch64
130-
ARCHITECTURE_CFLAGS := -march=armv8-a
47+
BUILD_ARCH := $(PROCESSOR_ARCHITECTURE)
13148
else
132-
ARCHITECTURE_CFLAGS :=
49+
BUILD_ARCH := $(shell uname -m)
13350
endif
51+
else
52+
BUILD_ARCH := $(ARCHITECTURE)
53+
endif
54+
55+
# Set actual architecture
56+
ifeq ($(patsubst armv6%,armv6,$(BUILD_ARCH)),armv6)
57+
override ARCHITECTURE = arm32
58+
ARCHITECTURE_CFLAGS := -march=armv6 -marm
59+
else ifeq ($(patsubst armv7ve%,armv7ve,$(BUILD_ARCH)),armv7ve)
60+
override ARCHITECTURE = arm32
61+
ARCHITECTURE_CFLAGS := -march=armv7ve -marm
62+
else ifeq ($(patsubst armv7%,armv7,$(BUILD_ARCH)),armv7)
63+
override ARCHITECTURE = arm32
64+
ARCHITECTURE_CFLAGS := -march=armv7-a -marm
65+
else ifeq ($(patsubst armv8%,armv8,$(BUILD_ARCH)),armv8)
66+
override ARCHITECTURE = aarch64
67+
ARCHITECTURE_CFLAGS := -march=armv8-a
68+
else ifeq ($(patsubst aarch64%,aarch64,$(BUILD_ARCH)),aarch64)
69+
override ARCHITECTURE = aarch64
70+
ARCHITECTURE_CFLAGS := -march=armv8-a
71+
else ifeq ($(BUILD_ARCH),arm32)
72+
override ARCHITECTURE = arm32
73+
ARCHITECTURE_CFLAGS := -march=armv6 -marm
74+
else ifeq ($(BUILD_ARCH),arm)
75+
override ARCHITECTURE = arm32
76+
ARCHITECTURE_CFLAGS := -march=armv6 -marm
77+
else ifeq ($(patsubst %x86_64%,x86_64,$(BUILD_ARCH)),x86_64)
78+
override ARCHITECTURE = x86_64
79+
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
80+
else ifeq ($(patsubst %amd64%,amd64,$(BUILD_ARCH)),amd64)
81+
override ARCHITECTURE = x86_64
82+
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
83+
else ifeq ($(patsubst %AMD64%,AMD64,$(BUILD_ARCH)),AMD64)
84+
override ARCHITECTURE = x86_64
85+
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
86+
else ifeq ($(BUILD_ARCH),i86pc)
87+
override ARCHITECTURE = x86_64
88+
ARCHITECTURE_CFLAGS := -march=x86-64 -m64
89+
else ifeq ($(patsubst i%86,i586,$(BUILD_ARCH)),i586)
90+
override ARCHITECTURE = i586
91+
ARCHITECTURE_CFLAGS := -march=i586 -m32
92+
else ifeq ($(BUILD_ARCH),x86)
93+
override ARCHITECTURE = i586
94+
ARCHITECTURE_CFLAGS := -march=i586 -m32
95+
else
96+
override ARCHITECTURE =
97+
ARCHITECTURE_CFLAGS :=
13498
endif
13599

136100
# Extension of libraries
@@ -207,20 +171,23 @@ TEST := 0
207171

208172
# Set-up list of common variables
209173
COMMON_VARS = \
210-
ROOTDIR \
211-
ROOT_ARTIFACT_ID \
174+
ROOTDIR \
175+
ROOT_ARTIFACT_ID \
212176
PLATFORM \
213177
ARCHITECTURE \
214178
ARCHITECTURE_CFLAGS \
179+
FEATURES \
215180
LIBRARY_EXT \
216181
LIBRARY_PREFIX \
217182
STATICLIB_EXT \
218183
EXECUTABLE_EXT \
219184
PKGCONFIG_EXT \
220185
PREFIX \
221186
LIBDIR \
187+
SHAREDDIR \
222188
BINDIR \
223189
INCDIR \
190+
ETCDIR \
224191
TEMPDIR \
225192
TEST \
226193
DEBUG \
@@ -231,12 +198,15 @@ COMMON_VARS = \
231198

232199
sysvars:
233200
echo "List of available system variables:"
201+
echo " ADD_FEATURES list of features enabled in the build as an addition to default"
234202
echo " ARCHITECTURE target architecture to perform build"
235203
echo " ARCHITECTURE_CFLAGS compiler flags to specify architecture"
236204
echo " BINDIR location of the binaries"
237205
echo " DEBUG build with debug options"
238206
echo " DEVEL build with modules checked out for read/write URL"
207+
echo " ETCDIR location of system configuration files"
239208
echo " EXECUTABLE_EXT file extension for executable files"
209+
echo " FEATURES list of features enabled in the build"
240210
echo " INCDIR location of the header files"
241211
echo " LIBDIR location of the library"
242212
echo " LIBRARY_EXT file extension for library files"
@@ -245,7 +215,9 @@ sysvars:
245215
echo " PLATFORM target software platform to perform build"
246216
echo " PREFIX installation prefix for binary files"
247217
echo " PROFILE build with profile options"
218+
echo " SHAREDDIR location of the shared files"
248219
echo " STATICLIB_EXT file extension for static library files"
220+
echo " SUB_FEATURES list of features disabled in the build as a subtraction of default"
249221
echo " TEMPDIR location of temporary directory"
250222
echo " TEST use test build"
251223
echo " TRACE compile with additional trace information output"

make/tools.mk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#
2020

2121
# Determine tools
22+
X_PHP_TOOL := php
2223
ifeq ($(PLATFORM),OpenBSD)
2324
X_CC_TOOL := egcc
2425
X_CXX_TOOL := eg++
@@ -44,6 +45,7 @@ CXX := $(X_CXX_TOOL)
4445
AS := $(X_AS_TOOL)
4546
AR := $(X_AR_TOOL)
4647
LD := $(X_LD_TOOL)
48+
PHP := $(X_PHP_TOOL)
4749
PKG_CONFIG := $(X_PKG_CONFIG)
4850

4951
# Define tool variables for host build
@@ -52,6 +54,7 @@ HOST_CXX := $(CXX)
5254
HOST_AS := $(AS)
5355
HOST_AR := $(AR)
5456
HOST_LD := $(LD)
57+
HOST_PHP := $(PHP)
5558
HOST_PKG_CONFIG := $(PKG_CONFIG)
5659

5760
# Miscellaneous tools
@@ -145,10 +148,10 @@ HOST_SO_FLAGS := $(SO_FLAGS)
145148
# The overall list of exported variables
146149
TOOL_VARS := \
147150
GIT INSTALL \
148-
PKG_CONFIG AS AR CC CXX LD \
151+
PKG_CONFIG AS AR CC CXX LD PHP \
149152
CFLAGS CDEFS CXXFLAGS CXXDEFS LDFLAGS EXE_FLAGS SO_FLAGS \
150153
INCLUDE \
151-
HOST_PKG_CONFIG HOST_AS HOST_AR HOST_CC HOST_CXX HOST_LD \
154+
HOST_PKG_CONFIG HOST_AS HOST_AR HOST_CC HOST_CXX HOST_LD HOST_PHP \
152155
HOST_CFLAGS HOST_CDEFS HOST_CXXFLAGS HOST_CXXDEFS HOST_LDFLAGS HOST_EXE_FLAGS HOST_SO_FLAGS \
153156

154157

@@ -182,6 +185,7 @@ toolvars:
182185
echo " INCLUDE Additional paths for include files"
183186
echo " LD Linker execution command line for target build"
184187
echo " LDFLAGS Linker flags for merging object files for target build"
188+
echo " PHP Installed PHP interpreter tool for building documentation"
185189
echo " PKG_CONFIG Installed package management tool for target build"
186190
echo " SO_FLAGS Flags to link shared object/library files for target build"
187191
echo ""

0 commit comments

Comments
 (0)