Skip to content

Commit e7995b7

Browse files
committed
Updated build scripts and dependencies
1 parent aa0d456 commit e7995b7

11 files changed

Lines changed: 113 additions & 84 deletions

File tree

.github/workflows/build.yml

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr lv2lint php valgrind gstreamer gst-plugins-base
3131
- uses: actions/checkout@v3
3232
- name: Configure project
33-
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
33+
run: make config FEATURES='strict clap doc gst jack ladspa lv2 standalone ui vst2 vst3 xdg' PREFIX=/usr
3434
- name: Fetch project dependencies
3535
run: make fetch
3636
- name: Build project
@@ -75,7 +75,7 @@ jobs:
7575
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr php valgrind gstreamer gst-plugins-base
7676
- uses: actions/checkout@v3
7777
- name: Configure project
78-
run: make config STRICT=1 DEBUG=1 VERBOSE=1 ASAN=1 FEATURES='clap jack gst ladspa ui lv2 vst2 vst3' PREFIX=/usr
78+
run: make config FEATURES='strict debug clap gst jack ladspa lv2 standalone ui vst2 vst3 xdg' PREFIX=/usr
7979
- name: Fetch project dependencies
8080
run: make fetch
8181
- name: Build project
@@ -103,7 +103,7 @@ jobs:
103103
/usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
104104
done
105105
106-
arch_linux_valgrind:
106+
arch_linux_debug:
107107
runs-on: ubuntu-latest
108108
container:
109109
image: archlinux:latest
@@ -116,7 +116,7 @@ jobs:
116116
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr php valgrind gstreamer gst-plugins-base
117117
- uses: actions/checkout@v3
118118
- name: Configure project
119-
run: make config STRICT=1 DEBUG=1 VERBOSE=1 FEATURES='clap jack gst ladspa lv2 ui vst2 vst3' PREFIX=/usr
119+
run: make config VERBOSE=1 FEATURES='strict debug clap jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
120120
- name: Fetch project dependencies
121121
run: make fetch
122122
- name: Build project
@@ -150,7 +150,7 @@ jobs:
150150
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ glibc-locale git make php valgrind libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel gstreamer-devel gstreamer-plugins-base-devel
151151
- uses: actions/checkout@v3
152152
- name: Configure project
153-
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
153+
run: make config FEATURES='strict clap doc gst jack ladspa lv2 standalone ui vst2 vst3 xdg' PREFIX=/usr
154154
- name: Fetch project dependencies
155155
run: make fetch
156156
- name: Build project
@@ -167,7 +167,7 @@ jobs:
167167
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ glibc-locale glibc-gconv-modules-extra clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel gstreamer-devel gstreamer-plugins-base-devel
168168
- uses: actions/checkout@v3
169169
- name: Configure project
170-
run: make config CC=clang CXX=clang++ STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
170+
run: make config CC=clang CXX=clang++ FEATURES='strict clap doc gst jack ladspa lv2 standalone ui vst2 vst3 xdg' PREFIX=/usr
171171
- name: Fetch project dependencies
172172
run: make fetch
173173
- name: Build project
@@ -186,7 +186,26 @@ jobs:
186186
run: apt-get -y install gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
187187
- uses: actions/checkout@v3
188188
- name: Configure project
189-
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
189+
run: make config FEATURES='strict clap doc gst jack ladspa lv2 standalone ui vst2 vst3 xdg' PREFIX=/usr
190+
- name: Fetch project dependencies
191+
run: make fetch
192+
- name: Build project
193+
run: make VERBOSE=1
194+
- name: Install binaries
195+
run: make install
196+
197+
debian_stable_no_ui:
198+
runs-on: ubuntu-latest
199+
container:
200+
image: debian:stable
201+
steps:
202+
- name: Update repositories
203+
run: apt-get update
204+
- name: Install dependencies
205+
run: apt-get -y install gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
206+
- uses: actions/checkout@v3
207+
- name: Configure project
208+
run: make config FEATURES='strict clap doc gst jack ladspa lv2 standalone vst2 vst3' PREFIX=/usr
190209
- name: Fetch project dependencies
191210
run: make fetch
192211
- name: Build project
@@ -213,7 +232,7 @@ jobs:
213232
- uses: actions/checkout@v3
214233
- name: Configure project
215234
shell: msys2 {0}
216-
run: make config STRICT=1 VERBOSE=1 FEATURES='clap ladspa lv2 ui vst2 vst3'
235+
run: make config FEATURES='strict clap ladspa lv2 ui vst2 vst3'
217236
- name: Fetch project dependencies
218237
shell: msys2 {0}
219238
run: make fetch
@@ -230,7 +249,7 @@ jobs:
230249
run: brew install make pkgconf cairo freetype
231250
- uses: actions/checkout@v3
232251
- name: Configure project
233-
run: gmake config STRICT=1 VERBOSE=1 FEATURES='lv2 ui'
252+
run: gmake config FEATURES='strict lv2 ui'
234253
- name: Fetch project dependencies
235254
run: gmake fetch
236255
- name: Build project

Makefile

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,18 +100,18 @@ testconfig: CONFIG_FLAGS=TEST=1
100100
devel: CONFIG_FLAGS=TEST=1 DEVEL=1
101101

102102
config testconfig devel:
103-
$(MAKE) -f "make/configure.mk" config VERBOSE="$(VERBOSE)" CONFIG="$(CONFIG)" -$(MAKEFLAGS)
103+
$(MAKE) -f "$(BASEDIR)/make/configure.mk" config VERBOSE="$(VERBOSE)" CONFIG="$(CONFIG)" -$(MAKEFLAGS)
104104

105105
# Release-related targets
106106
.PHONY: distsrc
107107
distsrc:
108108
echo "Building source code archive"
109109
mkdir -p "$(DISTSRC)/modules"
110-
$(MAKE) -f "make/modules.mk" tree VERBOSE="$(VERBOSE)" BASEDIR="$(BASEDIR)" MODULES="$(DISTSRC)/modules" TREE="1"
110+
$(MAKE) -f "make/modules.mk" tree TREE="1" BUILD_FEATURES="$(FEATURES)" VERBOSE="$(VERBOSE)" BASEDIR="$(BASEDIR)" MODULES="$(DISTSRC)/modules"
111111
$(if $(DISTSRC_DIRS), cp -R $(DISTSRC_DIRS) "$(DISTSRC)/")
112112
$(if $(DISTSRC_FILES), cp $(DISTSRC_FILES) "$(DISTSRC)/")
113-
find "$(DISTSRC)" -iname '.git' | xargs rm -rf {}
114-
find "$(DISTSRC)" -iname '.gitignore' | xargs rm -rf {}
113+
find "$(DISTSRC)" -iname '.git' | xargs -exec rm -rf {}
114+
find "$(DISTSRC)" -iname '.gitignore' | xargs -exec rm -rf {}
115115
tar -C $(DISTSRC_PATH) -czf "$(BUILDDIR)/$(ARTIFACT_NAME)-src-$(ARTIFACT_VERSION).tar.gz" "$(ARTIFACT_NAME)"
116116
echo "Created archive: $(BUILDDIR)/$(ARTIFACT_NAME)-src-$(ARTIFACT_VERSION).tar.gz"
117117
rm -rf $(DISTSRC_PATH)
@@ -139,13 +139,14 @@ help:
139139
$(MAKE) -f "$(BASEDIR)/make/configure.mk" $(@) VERBOSE="$(VERBOSE)"
140140
echo ""
141141
echo "Available FEATURES:"
142-
echo " clap CLAP plugin format binaries"
142+
echo " clap CLAP plugins"
143143
echo " doc Generate standalone HTML documentation"
144144
echo " gst GStreamer plugins"
145-
echo " jack Standalone JACK plugins"
145+
echo " jack JACK audio backend for standalone plugins"
146146
echo " ladspa LADSPA plugins"
147+
echo " launcher Build launcher application for standalone plugin applications"
147148
echo " lv2 LV2 plugins"
148-
echo " ui Build plugins with UI"
149+
echo " standalone Standalone plugin applications"
149150
echo " vst2 VST 2.x plugin binaries"
150151
echo " vst3 VST 3.x plugin binaries"
151152
echo " xdg Desktop integration icons"

dependencies.mk

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,19 @@
2121
#------------------------------------------------------------------------------
2222
# List of all dependencies
2323
DEPENDENCIES = \
24+
LSP_3RD_PARTY \
2425
LSP_COMMON_LIB \
26+
LSP_AUDIO_IFACE \
2527
LSP_DSP_LIB \
2628
LSP_DSP_UNITS \
2729
LSP_LLTL_LIB \
28-
LSP_RUNTIME_LIB \
29-
LSP_PLUGINS_SHARED \
30-
LSP_3RD_PARTY \
3130
LSP_PLUGIN_FW \
31+
LSP_PLUGINS_SHARED \
32+
LSP_R3D_BASE_LIB \
3233
LSP_R3D_IFACE \
33-
LSP_WS_LIB \
34+
LSP_RUNTIME_LIB \
3435
LSP_TK_LIB \
35-
LSP_R3D_BASE_LIB
36+
LSP_WS_LIB
3637

3738
TEST_DEPENDENCIES = \
3839
LSP_TEST_FW
@@ -54,14 +55,15 @@ LINUX_DEPENDENCIES = \
5455
LIBSNDFILE \
5556
LIBX11 \
5657
LIBXRANDR \
58+
LSP_AUDIO_JACK_LIB \
5759
LSP_R3D_GLX_LIB
5860

5961
LINUX_TEST_DEPENDENCIES =
6062

6163
ifeq ($(PLATFORM),Linux)
6264
DEPENDENCIES += $(LINUX_DEPENDENCIES)
6365
TEST_DEPENDENCIES += $(LINUX_TEST_DEPENDENCIES)
64-
DEFAULT_FEATURES += jack gst xdg
66+
DEFAULT_FEATURES += standalone gst xdg jack
6567
endif
6668

6769
#------------------------------------------------------------------------------
@@ -80,37 +82,39 @@ BSD_DEPENDENCIES = \
8082
LIBSNDFILE \
8183
LIBX11 \
8284
LIBXRANDR \
85+
LSP_AUDIO_JACK_LIB \
8386
LSP_R3D_GLX_LIB
8487

8588
BSD_TEST_DEPENDENCIES =
8689

8790
ifeq ($(PLATFORM),BSD)
8891
DEPENDENCIES += $(BSD_DEPENDENCIES)
8992
TEST_DEPENDENCIES += $(BSD_TEST_DEPENDENCIES)
90-
DEFAULT_FEATURES += jack gst xdg
93+
DEFAULT_FEATURES += standalone gst xdg jack
9194
endif
9295

9396
#------------------------------------------------------------------------------
9497
# Windows dependencies
9598
WINDOWS_DEPENDENCIES = \
96-
LIBSHLWAPI \
97-
LIBWINMM \
98-
LIBMSACM \
99-
LIBMPR \
100-
LIBGDI32 \
10199
LIBD2D1 \
102-
LIBOLE \
103-
LIBWINCODEC \
104100
LIBDWRITE \
105-
LIBUUID \
101+
LIBGDI32 \
102+
LIBMPR \
103+
LIBMSACM \
104+
LIBOLE \
106105
LIBOPENGL32 \
106+
LIBSHLWAPI \
107+
LIBUUID \
108+
LIBWINCODEC \
109+
LIBWINMM \
107110
LSP_R3D_WGL_LIB
108111

109112
WINDOWS_TEST_DEPENDENCIES =
110113

111114
ifeq ($(PLATFORM),Windows)
112115
DEPENDENCIES += $(WINDOWS_DEPENDENCIES)
113116
TEST_DEPENDENCIES += $(WINDOWS_TEST_DEPENDENCIES)
117+
DEFAULT_FEATURES +=
114118
endif
115119

116120
#------------------------------------------------------------------------------
@@ -123,13 +127,14 @@ MACOS_DEPENDENCIES = \
123127
LIBFONTCONFIG \
124128
LIBFREETYPE \
125129
LIBICONV \
126-
LIBJACK
130+
LIBJACK
127131

128132
MACOS_TEST_DEPENDENCIES =
129133

130134
ifeq ($(PLATFORM),MacOS)
131135
DEPENDENCIES += $(MACOS_DEPENDENCIES)
132136
TEST_DEPENDENCIES += $(MACOS_TEST_DEPENDENCIES)
137+
DEFAULT_FEATURES +=
133138
endif
134139

135140
#------------------------------------------------------------------------------
@@ -145,4 +150,4 @@ ALL_DEPENDENCIES = \
145150
$(BSD_TEST_DEPENDENCIES) \
146151
$(WINDOWS_TEST_DEPENDENCIES) \
147152
$(MACOS_TEST_DEPENDENCIES)
148-
153+

make/configure.mk

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ endif
2424
BASEDIR := $(CURDIR)
2525
ROOTDIR := $(CURDIR)
2626
PLUGINS := $(BASEDIR)/plugins.mk
27-
TEST := 0
28-
DEBUG := 0
29-
PROFILE := 0
30-
TRACE := 0
27+
BUILD_FEATURES = $(sort $(call subtraction,$(SUB_FEATURES),$(if $(FEATURES),$(FEATURES),$(DEFAULT_FEATURES)) $(ADD_FEATURES)))
3128

3229
# Configure system settings
3330
include $(BASEDIR)/project.mk
@@ -39,7 +36,7 @@ include $(BASEDIR)/modules.mk
3936
include $(BASEDIR)/dependencies.mk
4037
include $(PLUGINS)
4138

42-
ifeq ($(DEVEL),1)
39+
ifeq ($(call fcheck,devel,$(BUILD_FEATURES),ON),ON)
4340
X_URL_SUFFIX = _RW
4441
else
4542
X_URL_SUFFIX = _RO
@@ -53,7 +50,6 @@ MERGED_DEPENDENCIES := \
5350
$(PLUGIN_SHARED)
5451
UNIQ_MERGED_DEPENDENCIES := $(call uniq, $(MERGED_DEPENDENCIES))
5552
DEPENDENCIES = $(UNIQ_MERGED_DEPENDENCIES)
56-
BUILD_FEATURES := $(sort $(call subtraction,$(SUB_FEATURES),$(if $(FEATURES),$(FEATURES),$(DEFAULT_FEATURES)) $(ADD_FEATURES)))
5753

5854
# Determine versions
5955
ifeq ($(findstring -devel,$(ARTIFACT_VERSION)),-devel)
@@ -256,10 +252,10 @@ ifndef HOST_$(ARTIFACT_ID)_PATH
256252
endif
257253

258254
ROOT_ARTIFACT_ID := $(ARTIFACT_ID)
259-
$(ARTIFACT_ID)_TESTING = $(TEST)
255+
$(ARTIFACT_ID)_TESTING = $(call fcheck,test,$(BUILD_FEATURES),1,0)
260256

261257
OVERALL_DEPS := $(call uniq,$(DEPENDENCIES) $(ARTIFACT_ID))
262-
__tmp := $(foreach dep,$(OVERALL_DEPS),$(call vardef, $(dep)))
258+
override __tmp := $(foreach dep,$(OVERALL_DEPS),$(call vardef, $(dep)))
263259

264260
CONFIG_VARS = \
265261
$(PATH_VARS) \
@@ -318,6 +314,7 @@ $(CONFIG_VARS): prepare
318314
echo "$(@)=$($(@))" >> "$(CONFIG)"
319315

320316
config: $(CONFIG_VARS)
317+
echo "Platform: $(PLATFORM)"
321318
echo "Host architecture: $(HOST_ARCHITECTURE_FAMILY)/$(HOST_ARCHITECTURE) ($(HOST_ARCHITECTURE_CFLAGS))"
322319
echo "Architecture: $(ARCHITECTURE_FAMILY)/$(ARCHITECTURE) ($(ARCHITECTURE_CFLAGS))"
323320
echo "Features: $(BUILD_FEATURES)"
@@ -354,4 +351,4 @@ help: | pathvars toolvars sysvars
354351
echo ""
355352
echo "Plugins used for build:"
356353
echo " $(PLUGINS_DEPENDENCIES)"
357-
354+
echo ""

make/functions.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ cquery = $(foreach d,$(call uniq, $3),$(if $($(d)_$(strip $1)),
4545

4646
# Find intersection between two sets
4747
# $(call intersection, list1, list2)
48-
intersection = $(sort $(foreach v,$1,$(if $(findstring $(v),$2),$(v))))
48+
intersection = $(sort $(foreach v,$1,$(if $(filter $(v),$2),$(v))))
4949

5050
# Subtract the first set from second set
5151
# $(call subtraction, list1, list2)
52-
subtraction = $(sort $(foreach v,$2,$(if $(findstring $(v),$1),,$(v))))
52+
subtraction = $(sort $(foreach v,$2,$(if $(filter $(v),$1),,$(v))))
5353

5454
# Check feature presence in list
5555
# $(call fcheck, features-to-check, all-feature-list, action-if-enabled, action-if-disabled)

make/modules.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ UNIQ_ALL_DEPENDENCIES := $(filter-out $(ARTIFACT_ID),$(call uniq, $(ALL_DEP
4848
MODULES ?= $(BASEDIR)/modules
4949
GIT ?= git
5050

51-
ifeq ($(DEVEL),1)
51+
ifeq ($(call fcheck,devel,$(BUILD_FEATURES),ON),ON)
5252
X_URL_SUFFIX = _RW
5353
else
5454
X_URL_SUFFIX = _RO

make/paths.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
ifndef PREFIX
2323
ifeq ($(PLATFORM),Windows)
2424
PREFIX := $(BASEDIR)/INSTALL
25-
else ifeq ($(CROSS_COMPILE),1)
25+
else ifeq ($(call fcheck,crosscompile,$(BUILD_FEATURES),ON),ON)
2626
PREFIX := $(BASEDIR)/INSTALL
2727
else
2828
PREFIX := /usr/local
@@ -43,7 +43,7 @@ BINDIR := $(PREFIX)/bin
4343
INCDIR := $(PREFIX)/include
4444
BUILDDIR := $(BASEDIR)/.build
4545
TARGET_BUILDDIR := $(BUILDDIR)/target
46-
ifeq ($(CROSS_COMPILE),1)
46+
ifeq ($(call fcheck,crosscompile,$(BUILD_FEATURES),ON),ON)
4747
HOST_BUILDDIR := $(BUILDDIR)/host
4848
else
4949
HOST_BUILDDIR := $(TARGET_BUILDDIR)

0 commit comments

Comments
 (0)