Skip to content

Commit f14321f

Browse files
committed
Updated build
1 parent 0aa9f4d commit f14321f

File tree

8 files changed

+356
-335
lines changed

8 files changed

+356
-335
lines changed

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,18 @@ clean:
5757
fetch:
5858
@$(CHK_CONFIG)
5959
@echo "Fetching desired source code dependencies"
60-
@$(MAKE) -s -f "make/modules.mk" $(@) BASEDIR="$(BASEDIR)" CONFIG="$(CONFIG)"
60+
@$(MAKE) -s -f "$(BASEDIR)/make/modules.mk" $(@) BASEDIR="$(BASEDIR)" CONFIG="$(CONFIG)"
6161
@echo "Fetch OK"
6262

6363
tree:
6464
@echo "Fetching all possible source code dependencies"
65-
@$(MAKE) -s -f "make/modules.mk" $(@) BASEDIR="$(BASEDIR)" TREE="1"
65+
@$(MAKE) -s -f "$(BASEDIR)/make/modules.mk" $(@) BASEDIR="$(BASEDIR)" TREE="1"
6666
@echo "Fetch OK"
6767

6868
prune: clean
6969
@echo "Pruning the whole project tree"
70-
@$(MAKE) -s -f "make/modules.mk" prune BASEDIR="$(BASEDIR)" CONFIG="$(CONFIG)"
71-
@$(MAKE) -s -f "make/modules.mk" prune BASEDIR="$(BASEDIR)" TREE="1"
70+
@$(MAKE) -s -f "$(BASEDIR)/make/modules.mk" prune BASEDIR="$(BASEDIR)" CONFIG="$(CONFIG)"
71+
@$(MAKE) -s -f "$(BASEDIR)/make/modules.mk" prune BASEDIR="$(BASEDIR)" TREE="1"
7272
@-rm -rf "$(CONFIG)"
7373
@echo "Prune OK"
7474

@@ -86,7 +86,7 @@ config:
8686
distsrc:
8787
@echo "Building source code archive"
8888
@mkdir -p "$(DISTSRC)/modules"
89-
@$(MAKE) -s -f "make/modules.mk" tree BASEDIR="$(BASEDIR)" MODULES="$(DISTSRC)/modules" TREE="1"
89+
@$(MAKE) -s -f "$(BASEDIR)/make/modules.mk" tree BASEDIR="$(BASEDIR)" MODULES="$(DISTSRC)/modules" TREE="1"
9090
@cp -R $(BASEDIR)/include $(BASEDIR)/make $(BASEDIR)/src "$(DISTSRC)/"
9191
@cp $(BASEDIR)/CHANGELOG $(BASEDIR)/COPYING* $(BASEDIR)/Makefile $(BASEDIR)/*.mk "$(DISTSRC)/"
9292
@find "$(DISTSRC)" -iname '.git' | xargs -exec rm -rf {}

dependencies.mk

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,12 @@ LSP_TEST_FW_NAME := lsp-test-fw
2929
LSP_TEST_FW_TYPE := src
3030
LSP_TEST_FW_URL := https://github.com/sadko4u/$(LSP_TEST_FW_NAME).git
3131

32-
STDLIB_VERSION := system
33-
STDLIB_TYPE := opt
34-
STDLIB_LDFLAGS := -lpthread
32+
LIBPTHREAD_VERSION := system
33+
LIBPTHREAD_NAME := libpthread
34+
LIBPTHREAD_TYPE := opt
35+
LIBPTHREAD_LDFLAGS := -lpthread
3536

36-
ifeq ($(PLATFORM),Windows)
37-
TEST_STDLIB_VERSION := system
38-
TEST_STDLIB_TYPE := opt
39-
TEST_STDLIB_LDFLAGS := -lshlwapi
40-
else
41-
TEST_STDLIB_VERSION := system
42-
TEST_STDLIB_TYPE := opt
43-
TEST_STDLIB_LDFLAGS :=
44-
endif
37+
LIBSHLWAPI_VERSION := system
38+
LIBSHLWAPI_NAME := libshlwapi
39+
LIBSHLWAPI_TYPE := opt
40+
LIBSHLWAPI_LDFLAGS := -lshlwapi

make/configure.mk

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,24 @@ BINDIR := $(PREFIX)/bin
2525
INCDIR := $(PREFIX)/include
2626
BASEDIR := $(CURDIR)
2727
BUILDDIR := $(BASEDIR)/.build
28-
CONFIG := $(BASEDIR)/.config.mk
2928
MODULES := $(BASEDIR)/modules
29+
CONFIG := $(BASEDIR)/.config.mk
3030
TEST := 0
3131
DEBUG := 0
3232
PROFILE := 0
3333
TRACE := 0
3434

35+
include $(BASEDIR)/make/functions.mk
3536
include $(BASEDIR)/make/system.mk
36-
include $(BASEDIR)/project.mk
3737
include $(BASEDIR)/make/tools.mk
3838
include $(BASEDIR)/dependencies.mk
39+
include $(BASEDIR)/project.mk
3940

40-
DEPENDENCIES += $(TEST_DEPENDENCIES)
41+
# Compute the full list of dependencies
42+
UNIQ_DEPENDENCIES := $(call uniq, $(DEPENDENCIES) $(TEST_DEPENDENCIES))
43+
DEPENDENCIES = $(UNIQ_DEPENDENCIES)
4144

45+
# Determine versions
4246
ifeq ($(findstring -devel,$(ARTIFACT_VERSION)),-devel)
4347
$(foreach dep, $(DEPENDENCIES), \
4448
$(eval $(dep)_BRANCH=devel) \
@@ -116,23 +120,23 @@ define vardef =
116120
endef
117121

118122
# Define predefined variables
119-
ifndef $(ARTIFACT_VARS)_NAME
120-
$(ARTIFACT_VARS)_NAME := $(ARTIFACT_NAME)
123+
ifndef $(ARTIFACT_ID)_NAME
124+
$(ARTIFACT_ID)_NAME := $(ARTIFACT_NAME)
121125
endif
122-
ifndef $(ARTIFACT_VARS)_DESC
123-
$(ARTIFACT_VARS)_DESC := $(ARTIFACT_DESC)
126+
ifndef $(ARTIFACT_ID)_DESC
127+
$(ARTIFACT_ID)_DESC := $(ARTIFACT_DESC)
124128
endif
125-
ifndef $(ARTIFACT_VARS)_VERSION
126-
$(ARTIFACT_VARS)_VERSION := $(ARTIFACT_VERSION)
129+
ifndef $(ARTIFACT_ID)_VERSION
130+
$(ARTIFACT_ID)_VERSION := $(ARTIFACT_VERSION)
127131
endif
128-
ifndef $(ARTIFACT_VARS)_PATH
129-
$(ARTIFACT_VARS)_PATH := $(BASEDIR)
132+
ifndef $(ARTIFACT_ID)_PATH
133+
$(ARTIFACT_ID)_PATH := $(BASEDIR)
130134
endif
131135

132-
$(ARTIFACT_VARS)_TESTING = $(TEST)
133-
$(ARTIFACT_VARS)_TYPE := src
136+
$(ARTIFACT_ID)_TESTING = $(TEST)
137+
$(ARTIFACT_ID)_TYPE := src
134138

135-
OVERALL_DEPS := $(DEPENDENCIES) $(ARTIFACT_VARS)
139+
OVERALL_DEPS := $(DEPENDENCIES) $(ARTIFACT_ID)
136140
__tmp := $(foreach dep,$(OVERALL_DEPS),$(call vardef, $(dep)))
137141

138142
CONFIG_VARS = \

make/functions.mk

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,26 @@
1919
#
2020

2121
# Deduplicates all strings in the list
22+
# $(call uniq, <list>)
23+
# $(call uniq, $(DEPENDENCIES))
2224
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
2325

2426
# Recursively lookup directory for specific file pattern
25-
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
27+
# $(call rwildcard, <path>, <file-name-pattern>)
28+
# $(call rwildcard, main, *.cpp)
29+
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
30+
31+
# Fetch different flags from symbolic dependencies
32+
# $(call query, <field>, <list>)
33+
# $(call query, CFLAGS, $(DEPENDENCIES))
34+
query = $(foreach d,$(call uniq, $2),$($(d)_$(strip $1)))
35+
36+
# Fetch conditionally if dependency field is present
37+
# $(call dquery, <field>, <list>)
38+
# $(call dquery, OBJ, $(DEPENDENCIES))
39+
dquery = $(foreach d,$(call uniq, $2),$(if $($(d)_$(strip $1)),$(d)))
40+
41+
# Fetch different flags from symbolic dependencies
42+
# $(call cquery, <test-field>, <return-field>, <list>)
43+
# $(call cquery, OBJ_META, BIN, $(DEPENDENCIES))
44+
cquery = $(foreach d,$(call uniq, $3),$(if $($(d)_$(strip $1)),$($(d)_$(strip $2))))

make/tools.mk

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,21 @@ INSTALL := install
4343
# Patch flags and tools
4444
FLAG_RELRO = -Wl,-z,relro,-z,now
4545
FLAG_STDLIB = -lc
46+
CFLAGS_EXT =
47+
CXXFLAGS_EXT =
48+
LDFLAGS_EXT =
49+
4650
ifeq ($(PLATFORM),Solaris)
47-
FLAG_RELRO =
48-
LD = gld
51+
FLAG_RELRO =
52+
LD = gld
4953
else ifeq ($(PLATFORM),Windows)
50-
FLAG_RELRO =
51-
FLAG_STDLIB =
54+
FLAG_RELRO =
55+
FLAG_STDLIB =
56+
else ifeq ($(PLATFORM),BSD)
57+
EXE_FLAGS_EXT += -L/usr/local/lib
58+
SO_FLAGS_EXT += -L/usr/local/lib
5259
endif
5360

54-
CFLAGS_EXT =
55-
CXXFLAGS_EXT =
56-
5761
ifeq ($(DEBUG),1)
5862
CFLAGS_EXT += -O0 -g3 -DLSP_DEBUG
5963
CXXFLAGS_EXT += -O0 -g3 -DLSP_DEBUG

project.mk

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,28 @@
1919
#
2020

2121
# Package version
22+
ARTIFACT_ID = LSP_DSP_LIB
2223
ARTIFACT_NAME = lsp-dsp-lib
2324
ARTIFACT_DESC = DSP library for digital signal processing
24-
ARTIFACT_VARS = LSP_DSP_LIB
2525
ARTIFACT_HEADERS = lsp-plug.in
2626
ARTIFACT_VERSION = 0.5.12-devel
2727

2828
# List of dependencies
2929
DEPENDENCIES = \
30-
STDLIB \
30+
LIBPTHREAD \
3131
LSP_COMMON_LIB
3232

3333
TEST_DEPENDENCIES = \
34-
TEST_STDLIB \
3534
LSP_TEST_FW
3635

37-
# All possible dependencies
36+
# Platform-dependent
37+
ifeq ($(PLATFORM),Windows)
38+
TEST_DEPENDENCIES += \
39+
LIBSHLWAPI
40+
endif
41+
42+
# Overall system dependencies
3843
ALL_DEPENDENCIES = \
3944
$(DEPENDENCIES) \
40-
$(TEST_DEPENDENCIES)
45+
$(TEST_DEPENDENCIES) \
46+
LIBSHLWAPI

0 commit comments

Comments
 (0)