#!/usr/bin/make -f # Makefile for DISTRHO Plugins # # ---------------------------- # # Created by falkTX # include dpf/Makefile.base.mk # also set in: # plugins/Common/IldaeilPlugin.cpp `getVersion` VERSION = 1.2 # --------------------------------------------------------------------------------------------------------------------- # Build targets all: carla dgl plugins gen # --------------------------------------------------------------------------------------------------------------------- # Build config PREFIX ?= /usr/local DESTDIR ?= # --------------------------------------------------------------------------------------------------------------------- # Carla config ifeq ($(WASM),true) USE_SYSTEM_CARLA_BINS = true endif CARLA_EXTRA_ARGS = CARLA_BACKEND_NAMESPACE=Ildaeil \ CAN_GENERATE_LV2_TTL=false \ CUSTOM_DPF_PATH=$(CURDIR)/dpf \ DGL_NAMESPACE=IldaeilDGL \ STATIC_PLUGIN_TARGET=true \ USING_CUSTOM_DPF=true \ HAVE_FFMPEG=false \ HAVE_FLUIDSYNTH=false \ HAVE_PROJECTM=false \ HAVE_ZYN_DEPS=false \ HAVE_ZYN_UI_DEPS=false ifneq ($(DEBUG),true) CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true endif CARLA_TARGETS = static-plugin ifneq ($(USE_SYSTEM_CARLA_BINS),true) CARLA_TARGETS += bridges-plugin bridges-ui discovery ifeq ($(CARLA_EXTRA_TARGETS),true) # 32bit bridge ifeq ($(WINDOWS)$(CPU_X86_64),truetrue) CARLA_TARGETS += win32 else ifneq ($(MACOS)$(WINDOWS),true) CARLA_TARGETS += posix32 endif # Windows bridges ifeq ($(CPU_I386_OR_X86_64)$(LINUX),truetrue) CARLA_TARGETS += wine32 endif ifeq ($(CPU_X86_64)$(LINUX),truetrue) CARLA_TARGETS += wine64 endif endif # CARLA_EXTRA_TARGETS endif # USE_SYSTEM_CARLA_BINS # --------------------------------------------------------------------------------------------------------------------- # DGL config DGL_EXTRA_ARGS = \ DISTRHO_NAMESPACE=IldaeilDISTRHO \ DGL_NAMESPACE=IldaeilDGL # --------------------------------------------------------------------------------------------------------------------- # DPF bundled plugins ifneq ($(MACOS),true) ILDAEIL_FX_ARGS = VST2_FILENAME=Ildaeil.vst/Ildaeil-FX$(LIB_EXT) CLAP_FILENAME=Ildaeil.clap/Ildaeil-FX.clap ILDAEIL_MIDI_ARGS = VST2_FILENAME=Ildaeil.vst/Ildaeil-MIDI$(LIB_EXT) CLAP_FILENAME=Ildaeil.clap/Ildaeil-MIDI.clap ILDAEIL_SYNTH_ARGS = VST2_FILENAME=Ildaeil.vst/Ildaeil-Synth$(LIB_EXT) CLAP_FILENAME=Ildaeil.clap/Ildaeil-Synth.clap endif # --------------------------------------------------------------------------------------------------------------------- # Check for OpenGL + X11 dependencies ifneq ($(HAIKU_OR_MACOS_OR_WASM_OR_WINDOWS),true) ifneq ($(HAVE_OPENGL),true) $(error OpenGL dependency not installed/available) endif ifneq ($(HAVE_X11),true) $(error X11 dependency not installed/available) endif ifneq ($(HAVE_XCURSOR),true) $(warning Xcursor 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) endif endif # --------------------------------------------------------------------------------------------------------------------- carla: dgl $(MAKE) $(CARLA_EXTRA_ARGS) -C carla $(CARLA_TARGETS) extra-bins: $(MAKE) $(CARLA_EXTRA_ARGS) $(DGL_EXTRA_ARGS) $(ILDAEIL_FX_ARGS) carlabins -C plugins/Standalone ifneq ($(WASM),true) $(MAKE) $(CARLA_EXTRA_ARGS) $(DGL_EXTRA_ARGS) $(ILDAEIL_FX_ARGS) carlabins -C plugins/FX $(MAKE) $(CARLA_EXTRA_ARGS) $(DGL_EXTRA_ARGS) $(ILDAEIL_MIDI_ARGS) carlabins -C plugins/MIDI $(MAKE) $(CARLA_EXTRA_ARGS) $(DGL_EXTRA_ARGS) $(ILDAEIL_SYNTH_ARGS) carlabins -C plugins/Synth endif extra-posix32: $(MAKE) $(CARLA_EXTRA_ARGS) -C carla posix32 extra-win32: $(MAKE) $(CARLA_EXTRA_ARGS) -C carla win32 AR=i686-w64-mingw32-ar CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ extra-win64: $(MAKE) $(CARLA_EXTRA_ARGS) -C carla win64 AR=x86_64-w64-mingw32-ar CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ extra-wine32: $(MAKE) $(CARLA_EXTRA_ARGS) -C carla wine32 extra-wine64: $(MAKE) $(CARLA_EXTRA_ARGS) -C carla wine64 dgl: $(MAKE) $(DGL_EXTRA_ARGS) -C dpf/dgl opengl plugins: carla dgl $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_FX_ARGS) -C plugins/Standalone ifneq ($(WASM),true) $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_FX_ARGS) -C plugins/FX $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_MIDI_ARGS) -C plugins/MIDI $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_SYNTH_ARGS) -C plugins/Synth endif ifneq ($(CROSS_COMPILING),true) gen: plugins dpf/utils/lv2_ttl_generator @$(CURDIR)/dpf/utils/generate-ttl.sh dpf/utils/lv2_ttl_generator: $(MAKE) -C dpf/utils/lv2-ttl-generator else gen: endif jack: carla dgl $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_FX_ARGS) -C plugins/Standalone # --------------------------------------------------------------------------------------------------------------------- install: install -d $(DESTDIR)$(PREFIX)/bin install -d $(DESTDIR)$(PREFIX)/lib/clap/Ildaeil.clap install -d $(DESTDIR)$(PREFIX)/lib/lv2/Ildaeil-FX.lv2 install -d $(DESTDIR)$(PREFIX)/lib/lv2/Ildaeil-MIDI.lv2 install -d $(DESTDIR)$(PREFIX)/lib/lv2/Ildaeil-Synth.lv2 install -d $(DESTDIR)$(PREFIX)/lib/vst/Ildaeil.vst install -d $(DESTDIR)$(PREFIX)/lib/vst3/Ildaeil-FX.vst3/$(VST3_BINARY_DIR) install -d $(DESTDIR)$(PREFIX)/lib/vst3/Ildaeil-Synth.vst3/$(VST3_BINARY_DIR) install -m 755 bin/Ildaeil$(APP_EXT) $(DESTDIR)$(PREFIX)/bin/ install -m 644 bin/Ildaeil.clap/* $(DESTDIR)$(PREFIX)/lib/clap/Ildaeil.clap/ install -m 644 bin/Ildaeil-FX.lv2/* $(DESTDIR)$(PREFIX)/lib/lv2/Ildaeil-FX.lv2/ install -m 644 bin/Ildaeil-MIDI.lv2/* $(DESTDIR)$(PREFIX)/lib/lv2/Ildaeil-MIDI.lv2/ install -m 644 bin/Ildaeil-Synth.lv2/* $(DESTDIR)$(PREFIX)/lib/lv2/Ildaeil-Synth.lv2/ install -m 644 bin/Ildaeil.vst/* $(DESTDIR)$(PREFIX)/lib/vst/Ildaeil.vst/ install -m 644 bin/Ildaeil-FX.vst3/$(VST3_BINARY_DIR)/* $(DESTDIR)$(PREFIX)/lib/vst3/Ildaeil-FX.vst3/$(VST3_BINARY_DIR)/ install -m 644 bin/Ildaeil-Synth.vst3/$(VST3_BINARY_DIR)/* $(DESTDIR)$(PREFIX)/lib/vst3/Ildaeil-Synth.vst3/$(VST3_BINARY_DIR)/ # --------------------------------------------------------------------------------------------------------------------- clean: $(MAKE) $(CARLA_EXTRA_ARGS) distclean -C carla $(MAKE) $(CARLA_EXTRA_ARGS) clean -C plugins/Standalone $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_FX_ARGS) clean -C plugins/FX $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_MIDI_ARGS) clean -C plugins/MIDI $(MAKE) $(CARLA_EXTRA_ARGS) $(ILDAEIL_SYNTH_ARGS) clean -C plugins/Synth $(MAKE) clean -C dpf/dgl $(MAKE) clean -C dpf/utils/lv2-ttl-generator rm -rf bin build rm -f dpf-widgets/opengl/*.d rm -f dpf-widgets/opengl/*.o # --------------------------------------------------------------------------------------------------------------------- # tarball target, generating release source-code tarballs ready for packaging TAR_ARGS = \ --exclude=".appveyor*" \ --exclude=".ci*" \ --exclude=".clang*" \ --exclude=".drone*" \ --exclude=".editor*" \ --exclude=".git*" \ --exclude="*.kdev*" \ --exclude=".travis*" \ --exclude=".vscode*" \ --exclude="*.d" \ --exclude="*.o" \ --exclude=bin \ --exclude=build \ --exclude=carla/data \ --exclude=carla/source/frontend \ --exclude=carla/source/interposer \ --exclude=carla/source/libjack \ --exclude=carla/source/native-plugins/resources \ --exclude=carla/source/rest \ --exclude=carla/source/tests.old \ --exclude=carla/source/theme \ --exclude=carla/resources \ --exclude=dpf/build \ --exclude=dpf/cmake \ --exclude=dpf/examples \ --exclude=dpf/lac \ --exclude=dpf/tests \ --exclude=dpf-widgets/generic \ --exclude=dpf-widgets/opengl/Blendish* \ --exclude=dpf-widgets/opengl/DearImGuiColorTextEditor* \ --exclude=dpf-widgets/opengl/Quantum* \ --exclude=dpf-widgets/tests \ --transform='s,^\.\.,-.-.,' \ --transform='s,^\.,Ildaeil-$(VERSION),' \ --transform='s,^-\.-\.,..,' \ tarball: rm -f ../Ildaeil-src-$(VERSION).tar.xz tar -c --lzma $(TAR_ARGS) -f ../Ildaeil-src-$(VERSION).tar.xz . # --------------------------------------------------------------------------------------------------------------------- .PHONY: carla plugins