2021-10-07 13:00:47 +03:00
|
|
|
#!/usr/bin/make -f
|
|
|
|
# Makefile for DISTRHO Plugins #
|
|
|
|
# ---------------------------- #
|
|
|
|
# Created by falkTX
|
|
|
|
#
|
|
|
|
|
2022-02-07 23:07:40 +02:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Import base definitions
|
|
|
|
|
|
|
|
USE_NANOVG_FBO = true
|
2021-10-07 13:00:47 +03:00
|
|
|
include dpf/Makefile.base.mk
|
|
|
|
|
2022-02-07 23:07:40 +02:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Build targets
|
|
|
|
|
2021-11-06 01:07:18 +02:00
|
|
|
all: cardinal carla deps dgl plugins gen resources
|
2021-10-21 14:03:01 +03:00
|
|
|
|
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Build config
|
|
|
|
|
|
|
|
PREFIX ?= /usr/local
|
|
|
|
DESTDIR ?=
|
2022-02-07 23:07:40 +02:00
|
|
|
|
|
|
|
ifeq ($(BSD),true)
|
|
|
|
SYSDEPS ?= true
|
|
|
|
else
|
2021-10-21 14:03:01 +03:00
|
|
|
SYSDEPS ?= false
|
2022-02-07 23:07:40 +02:00
|
|
|
endif
|
2021-10-21 14:03:01 +03:00
|
|
|
|
2021-11-06 18:11:29 +02:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Carla config
|
|
|
|
|
|
|
|
CARLA_EXTRA_ARGS = \
|
|
|
|
HAVE_FFMPEG=false \
|
2022-01-12 09:35:32 +02:00
|
|
|
HAVE_FLUIDSYNTH=false \
|
2021-12-11 02:04:12 +02:00
|
|
|
HAVE_PROJECTM=false \
|
2021-12-12 13:18:17 +02:00
|
|
|
HAVE_ZYN_DEPS=false \
|
2021-12-11 02:04:12 +02:00
|
|
|
HAVE_ZYN_UI_DEPS=false
|
2021-11-17 16:25:31 +02:00
|
|
|
|
2021-12-10 14:47:23 +02:00
|
|
|
ifneq ($(DEBUG),true)
|
|
|
|
CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true
|
|
|
|
endif
|
|
|
|
|
2021-11-17 16:25:31 +02:00
|
|
|
CARLA_EXTRA_ARGS += USING_JUCE=false
|
|
|
|
CARLA_EXTRA_ARGS += USING_JUCE_GUI_EXTRA=false
|
2021-11-06 18:11:29 +02:00
|
|
|
|
2021-10-21 14:03:01 +03:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Check for system-wide dependencies
|
|
|
|
|
2021-10-21 19:35:41 +03:00
|
|
|
ifeq ($(SYSDEPS),true)
|
|
|
|
|
|
|
|
ifneq ($(shell pkg-config --exists jansson && echo true),true)
|
2021-10-23 03:13:15 +03:00
|
|
|
$(error jansson dependency not installed/available)
|
2021-10-21 19:35:41 +03:00
|
|
|
endif
|
|
|
|
ifneq ($(shell pkg-config --exists libarchive && echo true),true)
|
2021-10-23 03:13:15 +03:00
|
|
|
$(error libarchive dependency not installed/available)
|
2021-10-21 19:35:41 +03:00
|
|
|
endif
|
|
|
|
ifneq ($(shell pkg-config --exists samplerate && echo true),true)
|
2021-10-23 03:13:15 +03:00
|
|
|
$(error samplerate dependency not installed/available)
|
2021-10-21 19:35:41 +03:00
|
|
|
endif
|
|
|
|
ifneq ($(shell pkg-config --exists speexdsp && echo true),true)
|
2021-10-23 03:13:15 +03:00
|
|
|
$(error speexdsp dependency not installed/available)
|
|
|
|
endif
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
2022-01-13 22:03:51 +02:00
|
|
|
ifeq ($(HEADLESS),true)
|
|
|
|
|
|
|
|
ifneq ($(shell pkg-config --exists liblo && echo true),true)
|
|
|
|
$(error liblo dependency not installed/available)
|
|
|
|
endif
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
2021-10-23 04:30:42 +03:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Check for X11+OpenGL dependencies (unless headless build)
|
|
|
|
|
2021-10-23 03:13:15 +03:00
|
|
|
ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
|
2021-11-09 14:59:54 +02:00
|
|
|
ifneq ($(WASM),true)
|
2021-11-09 17:03:24 +02:00
|
|
|
ifneq ($(HEADLESS),true)
|
2021-10-23 03:13:15 +03:00
|
|
|
|
|
|
|
ifneq ($(HAVE_OPENGL),true)
|
2021-12-15 00:16:37 +02:00
|
|
|
$(error OpenGL dependency not installed/available)
|
2021-10-23 03:13:15 +03:00
|
|
|
endif
|
|
|
|
ifneq ($(HAVE_X11),true)
|
|
|
|
$(error X11 dependency not installed/available)
|
|
|
|
endif
|
|
|
|
ifneq ($(HAVE_XEXT),true)
|
|
|
|
$(warning Xext dependency not installed/available)
|
|
|
|
endif
|
|
|
|
ifneq ($(HAVE_XRANDR),true)
|
|
|
|
$(warning Xrandr dependency not installed/available)
|
2021-10-21 19:35:41 +03:00
|
|
|
endif
|
|
|
|
|
2021-11-08 19:12:17 +02:00
|
|
|
else
|
|
|
|
|
|
|
|
CARLA_EXTRA_ARGS += HAVE_OPENGL=false
|
|
|
|
CARLA_EXTRA_ARGS += HAVE_X11=false
|
|
|
|
CARLA_EXTRA_ARGS += HAVE_XEXT=false
|
|
|
|
CARLA_EXTRA_ARGS += HAVE_XRANDR=false
|
|
|
|
|
2021-11-09 14:59:54 +02:00
|
|
|
endif
|
2021-10-23 04:30:42 +03:00
|
|
|
endif
|
2021-10-21 19:35:41 +03:00
|
|
|
endif
|
2021-10-07 13:00:47 +03:00
|
|
|
|
|
|
|
# --------------------------------------------------------------
|
2022-01-14 01:44:47 +02:00
|
|
|
# MOD builds
|
|
|
|
|
2022-02-10 04:54:26 +02:00
|
|
|
EXTRA_MOD_FLAGS = -I../include/single-precision -fsingle-precision-constant
|
|
|
|
|
2022-02-08 20:52:23 +02:00
|
|
|
ifeq ($(WITH_LTO),true)
|
|
|
|
EXTRA_MOD_FLAGS += -ffat-lto-objects
|
|
|
|
endif
|
|
|
|
|
2022-01-14 01:44:47 +02:00
|
|
|
MOD_WORKDIR ?= $(HOME)/mod-workdir
|
2022-01-26 23:57:02 +02:00
|
|
|
MOD_ENVIRONMENT = \
|
|
|
|
AR=${1}/host/usr/bin/${2}-gcc-ar \
|
|
|
|
CC=${1}/host/usr/bin/${2}-gcc \
|
|
|
|
CPP=${1}/host/usr/bin/${2}-cpp \
|
|
|
|
CXX=${1}/host/usr/bin/${2}-g++ \
|
|
|
|
LD=${1}/host/usr/bin/${2}-ld \
|
|
|
|
PKG_CONFIG=${1}/host/usr/bin/pkg-config \
|
|
|
|
STRIP=${1}/host/usr/bin/${2}-strip \
|
2022-02-10 04:54:26 +02:00
|
|
|
CFLAGS="-I${1}/staging/usr/include $(EXTRA_MOD_FLAGS)" \
|
2022-01-26 23:57:02 +02:00
|
|
|
CPPFLAGS= \
|
2022-02-10 04:54:26 +02:00
|
|
|
CXXFLAGS="-I${1}/staging/usr/include $(EXTRA_MOD_FLAGS) -Wno-attributes" \
|
2022-02-08 20:52:23 +02:00
|
|
|
LDFLAGS="-L${1}/staging/usr/lib $(EXTRA_MOD_FLAGS)" \
|
2022-01-26 23:57:02 +02:00
|
|
|
EXE_WRAPPER="qemu-${3}-static -L ${1}/target" \
|
|
|
|
HEADLESS=true \
|
|
|
|
MOD_BUILD=true \
|
|
|
|
NOOPT=true \
|
|
|
|
STATIC_BUILD=true
|
2022-01-14 01:44:47 +02:00
|
|
|
|
|
|
|
modduo:
|
|
|
|
$(MAKE) $(call MOD_ENVIRONMENT,$(MOD_WORKDIR)/modduo-static,arm-mod-linux-gnueabihf.static,arm)
|
|
|
|
|
|
|
|
modduox:
|
|
|
|
$(MAKE) $(call MOD_ENVIRONMENT,$(MOD_WORKDIR)/modduox-static,aarch64-mod-linux-gnueabi.static,aarch64)
|
|
|
|
|
|
|
|
moddwarf:
|
|
|
|
$(MAKE) $(call MOD_ENVIRONMENT,$(MOD_WORKDIR)/moddwarf,aarch64-mod-linux-gnu,aarch64)
|
|
|
|
|
|
|
|
publish:
|
|
|
|
tar -C bin -cz $(subst bin/,,$(wildcard bin/*.lv2)) | base64 | curl -F 'package=@-' http://192.168.51.1/sdk/install && echo
|
|
|
|
|
|
|
|
ifneq (,$(findstring modduo-,$(MAKECMDGOALS)))
|
|
|
|
$(MAKECMDGOALS):
|
|
|
|
$(MAKE) $(call MOD_ENVIRONMENT,$(MOD_WORKDIR)/modduo-static,arm-mod-linux-gnueabihf.static,arm) $(subst modduo-,,$(MAKECMDGOALS))
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq (,$(findstring modduox-,$(MAKECMDGOALS)))
|
|
|
|
$(MAKECMDGOALS):
|
|
|
|
$(MAKE) $(call MOD_ENVIRONMENT,$(MOD_WORKDIR)/modduox-static,aarch64-mod-linux-gnueabi.static,aarch64) $(subst modduox-,,$(MAKECMDGOALS))
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq (,$(findstring moddwarf-,$(MAKECMDGOALS)))
|
|
|
|
$(MAKECMDGOALS):
|
|
|
|
$(MAKE) $(call MOD_ENVIRONMENT,$(MOD_WORKDIR)/moddwarf,aarch64-mod-linux-gnu,aarch64) $(subst moddwarf-,,$(MAKECMDGOALS))
|
|
|
|
endif
|
|
|
|
|
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Individual targets
|
2021-10-07 13:00:47 +03:00
|
|
|
|
2021-11-06 17:40:34 +02:00
|
|
|
cardinal: carla deps dgl plugins
|
2021-11-06 18:11:29 +02:00
|
|
|
$(MAKE) all -C src $(CARLA_EXTRA_ARGS)
|
2021-10-17 01:48:44 +03:00
|
|
|
|
2021-11-06 01:07:18 +02:00
|
|
|
carla:
|
2022-01-12 17:39:09 +02:00
|
|
|
ifneq ($(STATIC_BUILD),true)
|
2021-11-13 20:45:49 +02:00
|
|
|
$(MAKE) static-plugin -C carla $(CARLA_EXTRA_ARGS) \
|
2021-11-06 01:07:18 +02:00
|
|
|
CAN_GENERATE_LV2_TTL=false \
|
|
|
|
STATIC_PLUGIN_TARGET=true
|
2022-01-12 17:39:09 +02:00
|
|
|
endif
|
2021-11-06 01:07:18 +02:00
|
|
|
|
2021-10-17 01:48:44 +03:00
|
|
|
deps:
|
2021-12-04 00:51:12 +02:00
|
|
|
ifeq ($(SYSDEPS),true)
|
|
|
|
$(MAKE) quickjs -C deps
|
|
|
|
else
|
2021-10-17 01:48:44 +03:00
|
|
|
$(MAKE) all -C deps
|
2021-10-21 19:35:41 +03:00
|
|
|
endif
|
2021-10-17 01:48:44 +03:00
|
|
|
|
2021-10-07 13:00:47 +03:00
|
|
|
dgl:
|
2021-10-23 04:30:42 +03:00
|
|
|
ifneq ($(HEADLESS),true)
|
2021-12-23 03:56:37 +02:00
|
|
|
$(MAKE) -C dpf/dgl opengl NVG_DISABLE_SKIPPING_WHITESPACE=true NVG_FONT_TEXTURE_FLAGS=NVG_IMAGE_NEAREST USE_NANOVG_FBO=true
|
2021-10-23 04:30:42 +03:00
|
|
|
endif
|
2021-10-07 13:00:47 +03:00
|
|
|
|
2021-10-17 01:48:44 +03:00
|
|
|
plugins: deps
|
|
|
|
$(MAKE) all -C plugins
|
2021-10-07 13:00:47 +03:00
|
|
|
|
2021-10-21 20:16:22 +03:00
|
|
|
resources: cardinal
|
2021-10-21 14:03:01 +03:00
|
|
|
$(MAKE) resources -C plugins
|
|
|
|
|
2021-10-07 13:00:47 +03:00
|
|
|
ifneq ($(CROSS_COMPILING),true)
|
2021-10-21 20:16:22 +03:00
|
|
|
gen: cardinal resources dpf/utils/lv2_ttl_generator
|
2021-10-07 13:00:47 +03:00
|
|
|
@$(CURDIR)/dpf/utils/generate-ttl.sh
|
|
|
|
|
|
|
|
dpf/utils/lv2_ttl_generator:
|
|
|
|
$(MAKE) -C dpf/utils/lv2-ttl-generator
|
|
|
|
else
|
|
|
|
gen:
|
|
|
|
endif
|
|
|
|
|
|
|
|
# --------------------------------------------------------------
|
2022-01-14 01:44:47 +02:00
|
|
|
# Packaging standalone for CI
|
2021-10-07 13:00:47 +03:00
|
|
|
|
2021-12-29 19:58:50 +02:00
|
|
|
unzipfx: deps/unzipfx/unzipfx2cat$(APP_EXT) Cardinal.zip
|
|
|
|
cat deps/unzipfx/unzipfx2cat$(APP_EXT) Cardinal.zip > Cardinal
|
|
|
|
chmod +x Cardinal
|
|
|
|
|
|
|
|
Cardinal.zip: bin/Cardinal bin/CardinalFX.lv2/resources
|
|
|
|
mkdir -p build/unzipfx
|
|
|
|
ln -sf ../../bin/Cardinal build/unzipfx/Cardinal
|
|
|
|
ln -s ../../bin/CardinalFX.lv2/resources build/unzipfx/resources
|
|
|
|
cd build/unzipfx && \
|
|
|
|
zip -r -9 ../../Cardinal.zip Cardinal resources
|
|
|
|
|
|
|
|
deps/unzipfx/unzipfx2cat:
|
|
|
|
make -C deps/unzipfx -f Makefile.linux
|
|
|
|
|
|
|
|
deps/unzipfx/unzipfx2cat.exe:
|
|
|
|
make -C deps/unzipfx -f Makefile.win32
|
|
|
|
|
|
|
|
# --------------------------------------------------------------
|
2022-01-14 01:44:47 +02:00
|
|
|
# Clean step
|
2021-12-29 19:58:50 +02:00
|
|
|
|
2021-10-07 13:00:47 +03:00
|
|
|
clean:
|
2021-11-06 17:40:34 +02:00
|
|
|
$(MAKE) distclean -C carla
|
2021-10-17 01:48:44 +03:00
|
|
|
$(MAKE) clean -C deps
|
2021-10-07 13:00:47 +03:00
|
|
|
$(MAKE) clean -C dpf/dgl
|
|
|
|
$(MAKE) clean -C dpf/utils/lv2-ttl-generator
|
2021-10-17 01:48:44 +03:00
|
|
|
$(MAKE) clean -C plugins
|
|
|
|
$(MAKE) clean -C src
|
2021-10-07 13:00:47 +03:00
|
|
|
rm -rf bin build
|
|
|
|
|
|
|
|
# --------------------------------------------------------------
|
2022-01-14 01:44:47 +02:00
|
|
|
# Install step
|
2021-10-07 13:00:47 +03:00
|
|
|
|
2021-10-21 19:10:54 +03:00
|
|
|
install:
|
|
|
|
install -d $(DESTDIR)$(PREFIX)/bin
|
|
|
|
install -d $(DESTDIR)$(PREFIX)/lib/lv2
|
|
|
|
install -d $(DESTDIR)$(PREFIX)/lib/vst
|
|
|
|
install -d $(DESTDIR)$(PREFIX)/lib/vst3
|
|
|
|
install -d $(DESTDIR)$(PREFIX)/share/Cardinal
|
|
|
|
|
|
|
|
cp -rL bin/Cardinal.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/
|
|
|
|
cp -rL bin/Cardinal.vst3 $(DESTDIR)$(PREFIX)/lib/vst3/
|
|
|
|
|
2021-11-15 17:26:04 +02:00
|
|
|
cp -rL bin/CardinalFX.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/
|
|
|
|
cp -rL bin/CardinalFX.vst $(DESTDIR)$(PREFIX)/lib/vst/
|
|
|
|
cp -rL bin/CardinalFX.vst3 $(DESTDIR)$(PREFIX)/lib/vst3/
|
|
|
|
|
|
|
|
cp -rL bin/CardinalSynth.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/
|
|
|
|
cp -rL bin/CardinalSynth.vst $(DESTDIR)$(PREFIX)/lib/vst/
|
|
|
|
cp -rL bin/CardinalSynth.vst3 $(DESTDIR)$(PREFIX)/lib/vst3/
|
|
|
|
|
2021-10-21 19:10:54 +03:00
|
|
|
install -m 755 bin/Cardinal$(APP_EXT) $(DESTDIR)$(PREFIX)/bin/
|
|
|
|
cp -rL bin/Cardinal.lv2/resources/* $(DESTDIR)$(PREFIX)/share/Cardinal/
|
|
|
|
|
2022-02-11 16:46:21 +02:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
# Install step
|
|
|
|
|
2021-10-21 19:10:54 +03:00
|
|
|
# --------------------------------------------------------------
|
|
|
|
|
2021-11-06 01:07:18 +02:00
|
|
|
.PHONY: carla deps plugins
|