1#!/usr/bin/make -f 2# Makefile for DPF Example Plugins # 3# -------------------------------- # 4# Created by falkTX 5# 6 7# NOTE: NAME, FILES_DSP and FILES_UI must have been defined before including this file! 8 9 10ifeq (,$(wildcard ../../Makefile.base.mk)) 11DPF_PATH=../../dpf 12else 13DPF_PATH=../.. 14endif 15 16include $(DPF_PATH)/Makefile.base.mk 17 18ifeq ($(FILES_UI),) 19HAVE_DGL = false 20endif 21 22# --------------------------------------------------------------------------------------------------------------------- 23# Basic setup 24 25TARGET_DIR = ../../bin 26BUILD_DIR = ../../build/$(NAME) 27 28BUILD_C_FLAGS += -I. 29BUILD_CXX_FLAGS += -I. -I$(DPF_PATH)/distrho -I$(DPF_PATH)/dgl 30 31ifeq ($(HAVE_DGL),true) 32BASE_FLAGS += -DHAVE_DGL 33endif 34 35ifeq ($(HAVE_JACK),true) 36BASE_FLAGS += -DHAVE_JACK 37endif 38 39ifeq ($(HAVE_LIBLO),true) 40BASE_FLAGS += -DHAVE_LIBLO 41endif 42 43# --------------------------------------------------------------------------------------------------------------------- 44# Set files to build 45 46OBJS_DSP = $(FILES_DSP:%=$(BUILD_DIR)/%.o) 47OBJS_UI = $(FILES_UI:%=$(BUILD_DIR)/%.o) 48 49# --------------------------------------------------------------------------------------------------------------------- 50# Set plugin binary file targets 51 52jack = $(TARGET_DIR)/$(NAME)$(APP_EXT) 53ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT) 54dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT) 55dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT) 56lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) 57lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT) 58lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) 59vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) 60 61# --------------------------------------------------------------------------------------------------------------------- 62# Handle plugins without UI 63 64ifneq ($(HAVE_DGL),true) 65dssi_ui = 66lv2_ui = 67DGL_LIBS = 68OBJS_UI = 69endif 70 71# --------------------------------------------------------------------------------------------------------------------- 72# all needs to be first 73 74all: 75 76# --------------------------------------------------------------------------------------------------------------------- 77# Common 78 79$(BUILD_DIR)/%.c.o: %.c 80 -@mkdir -p $(BUILD_DIR) 81 @echo "Compiling $<" 82 @$(CC) $< $(BUILD_C_FLAGS) -c -o $@ 83 84$(BUILD_DIR)/%.cpp.o: %.cpp 85 -@mkdir -p $(BUILD_DIR) 86 @echo "Compiling $<" 87 @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ 88 89clean: 90 rm -rf $(BUILD_DIR) 91 rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2 92 93# --------------------------------------------------------------------------------------------------------------------- 94 95$(BUILD_DIR)/DistrhoPluginMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp 96 -@mkdir -p $(BUILD_DIR) 97 @echo "Compiling DistrhoPluginMain.cpp ($*)" 98 @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ 99 100$(BUILD_DIR)/DistrhoUIMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp 101 -@mkdir -p $(BUILD_DIR) 102 @echo "Compiling DistrhoUIMain.cpp ($*)" 103 @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ 104 105$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp 106 -@mkdir -p $(BUILD_DIR) 107 @echo "Compiling DistrhoPluginMain.cpp (JACK)" 108 @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags jack) -DDISTRHO_PLUGIN_TARGET_JACK -c -o $@ 109 110$(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp 111 -@mkdir -p $(BUILD_DIR) 112 @echo "Compiling DistrhoUIMain.cpp (DSSI)" 113 @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -c -o $@ 114 115# --------------------------------------------------------------------------------------------------------------------- 116# JACK 117 118jack: $(jack) 119 120ifeq ($(HAVE_DGL),true) 121$(jack): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.o $(DPF_PATH)/build/libdgl.a 122else 123$(jack): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o 124endif 125 -@mkdir -p $(shell dirname $@) 126 @echo "Creating JACK standalone for $(NAME)" 127 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs jack) -o $@ 128 129# --------------------------------------------------------------------------------------------------------------------- 130# LADSPA 131 132ladspa: $(ladspa_dsp) 133 134$(ladspa_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.o 135 -@mkdir -p $(shell dirname $@) 136 @echo "Creating LADSPA plugin for $(NAME)" 137 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ 138 139# --------------------------------------------------------------------------------------------------------------------- 140# DSSI 141 142dssi: $(dssi_dsp) $(dssi_ui) 143dssi_dsp: $(dssi_dsp) 144dssi_ui: $(dssi_ui) 145 146$(dssi_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.o 147 -@mkdir -p $(shell dirname $@) 148 @echo "Creating DSSI plugin library for $(NAME)" 149 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ 150 151$(dssi_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o $(DPF_PATH)/build/libdgl.a 152 -@mkdir -p $(shell dirname $@) 153 @echo "Creating DSSI UI for $(NAME)" 154 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs liblo) -o $@ 155 156# --------------------------------------------------------------------------------------------------------------------- 157# LV2 158 159lv2: $(lv2) 160lv2_dsp: $(lv2_dsp) 161lv2_sep: $(lv2_dsp) $(lv2_ui) 162 163$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DPF_PATH)/build/libdgl.a 164 -@mkdir -p $(shell dirname $@) 165 @echo "Creating LV2 plugin for $(NAME)" 166 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ 167 168$(lv2_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o 169 -@mkdir -p $(shell dirname $@) 170 @echo "Creating LV2 plugin library for $(NAME)" 171 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@ 172 173$(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DPF_PATH)/build/libdgl.a 174 -@mkdir -p $(shell dirname $@) 175 @echo "Creating LV2 plugin UI for $(NAME)" 176 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ 177 178# --------------------------------------------------------------------------------------------------------------------- 179# VST 180 181vst: $(vst) 182 183ifeq ($(HAVE_DGL),true) 184$(vst): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o $(BUILD_DIR)/DistrhoUIMain_VST.cpp.o $(DPF_PATH)/build/libdgl.a 185else 186$(vst): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o 187endif 188 -@mkdir -p $(shell dirname $@) 189 @echo "Creating VST plugin for $(NAME)" 190 @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ 191 192# --------------------------------------------------------------------------------------------------------------------- 193 194-include $(OBJS_DSP:%.o=%.d) 195ifeq ($(HAVE_DGL),true) 196-include $(OBJS_UI:%.o=%.d) 197endif 198 199-include $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.d 200-include $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.d 201-include $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.d 202-include $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.d 203-include $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.d 204 205-include $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.d 206-include $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.d 207-include $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.d 208-include $(BUILD_DIR)/DistrhoUIMain_VST.cpp.d 209 210# --------------------------------------------------------------------------------------------------------------------- 211