diff options
Diffstat (limited to 'Makefile.plugins.mk')
-rw-r--r-- | Makefile.plugins.mk | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk new file mode 100644 index 00000000..f7a9341b --- /dev/null +++ b/Makefile.plugins.mk @@ -0,0 +1,206 @@ +#!/usr/bin/make -f +# Makefile for DPF Example Plugins # +# -------------------------------- # +# Created by falkTX +# + +# NOTE: NAME, FILES_DSP and FILES_UI must have been defined before including this file! + + +ifeq (,$(wildcard ../../Makefile.base.mk)) +DPF_PATH=../../dpf +else +DPF_PATH=../.. +endif + +include $(DPF_PATH)/Makefile.base.mk + +ifeq ($(FILES_UI),) +HAVE_DGL = false +endif + +# --------------------------------------------------------------------------------------------------------------------- +# Basic setup + +TARGET_DIR = ../../bin +BUILD_DIR = ../../build/$(NAME) + +BUILD_C_FLAGS += -I. +BUILD_CXX_FLAGS += -I. -I$(DPF_PATH)/distrho -I$(DPF_PATH)/dgl + +ifeq ($(HAVE_DGL),true) +BASE_FLAGS += -DHAVE_DGL +endif + +ifeq ($(HAVE_JACK),true) +BASE_FLAGS += -DHAVE_JACK +endif + +ifeq ($(HAVE_LIBLO),true) +BASE_FLAGS += -DHAVE_LIBLO +endif + +# --------------------------------------------------------------------------------------------------------------------- +# Set files to build + +OBJS_DSP = $(FILES_DSP:%=$(BUILD_DIR)/%.o) +OBJS_UI = $(FILES_UI:%=$(BUILD_DIR)/%.o) + +# --------------------------------------------------------------------------------------------------------------------- +# Set plugin binary file targets + +jack = $(TARGET_DIR)/$(NAME)$(APP_EXT) +ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT) +dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT) +dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT) +lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) +lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT) +lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) +vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) + +# --------------------------------------------------------------------------------------------------------------------- +# Handle plugins without UI + +ifneq ($(HAVE_DGL),true) +dssi_ui = +lv2_ui = +DGL_LIBS = +OBJS_UI = +endif + +# --------------------------------------------------------------------------------------------------------------------- +# all needs to be first + +all: + +# --------------------------------------------------------------------------------------------------------------------- +# Common + +$(BUILD_DIR)/%.c.o: %.c + -@mkdir -p $(BUILD_DIR) + @echo "Compiling $<" + @$(CC) $< $(BUILD_C_FLAGS) -c -o $@ + +$(BUILD_DIR)/%.cpp.o: %.cpp + -@mkdir -p $(BUILD_DIR) + @echo "Compiling $<" + @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ + +clean: + rm -rf $(BUILD_DIR) + rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2 + +# --------------------------------------------------------------------------------------------------------------------- + +$(BUILD_DIR)/DistrhoPluginMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoPluginMain.cpp ($*)" + @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ + +$(BUILD_DIR)/DistrhoUIMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoUIMain.cpp ($*)" + @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ + +$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoPluginMain.cpp (JACK)" + @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags jack) -DDISTRHO_PLUGIN_TARGET_JACK -c -o $@ + +$(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoUIMain.cpp (DSSI)" + @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -c -o $@ + +# --------------------------------------------------------------------------------------------------------------------- +# JACK + +jack: $(jack) + +$(jack): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.o $(DPF_PATH)/build/libdgl.a + -@mkdir -p $(shell dirname $@) + @echo "Creating JACK standalone for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs jack) -o $@ + +# --------------------------------------------------------------------------------------------------------------------- +# LADSPA + +ladspa: $(ladspa_dsp) + +$(ladspa_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.o + -@mkdir -p $(shell dirname $@) + @echo "Creating LADSPA plugin for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ + +# --------------------------------------------------------------------------------------------------------------------- +# DSSI + +dssi: $(dssi_dsp) $(dssi_ui) +dssi_dsp: $(dssi_dsp) +dssi_ui: $(dssi_ui) + +$(dssi_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.o + -@mkdir -p $(shell dirname $@) + @echo "Creating DSSI plugin library for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ + +$(dssi_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o $(DPF_PATH)/build/libdgl.a + -@mkdir -p $(shell dirname $@) + @echo "Creating DSSI UI for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs liblo) -o $@ + +# --------------------------------------------------------------------------------------------------------------------- +# LV2 + +lv2_one: $(lv2) +lv2_dsp: $(lv2_dsp) +lv2_sep: $(lv2_dsp) $(lv2_ui) + +$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DPF_PATH)/build/libdgl.a + -@mkdir -p $(shell dirname $@) + @echo "Creating LV2 plugin for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ + +$(lv2_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o + -@mkdir -p $(shell dirname $@) + @echo "Creating LV2 plugin library for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ + +$(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DPF_PATH)/build/libdgl.a + -@mkdir -p $(shell dirname $@) + @echo "Creating LV2 plugin UI for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ + +# --------------------------------------------------------------------------------------------------------------------- +# VST + +vst: $(vst) + +ifeq ($(HAVE_DGL),true) +$(vst): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o $(BUILD_DIR)/DistrhoUIMain_VST.cpp.o $(DPF_PATH)/build/libdgl.a +else +$(vst): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o +endif + -@mkdir -p $(shell dirname $@) + @echo "Creating VST plugin for $(NAME)" + @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ + +# --------------------------------------------------------------------------------------------------------------------- + +-include $(OBJS_DSP:%.o=%.d) +ifeq ($(HAVE_DGL),true) +-include $(OBJS_UI:%.o=%.d) +endif + +-include $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.d +-include $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.d +-include $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.d +-include $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.d +-include $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.d + +-include $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.d +-include $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.d +-include $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.d +-include $(BUILD_DIR)/DistrhoUIMain_VST.cpp.d + +# --------------------------------------------------------------------------------------------------------------------- |