164 lines
4.5 KiB
Makefile
164 lines
4.5 KiB
Makefile
#!/usr/bin/make -f
|
|
# Makefile for DISTRHO Plugins #
|
|
# ---------------------------- #
|
|
# Created by falkTX
|
|
#
|
|
|
|
# NAME, OBJS_DSP and OBJS_UI have been defined before
|
|
|
|
include ../../Makefile.mk
|
|
|
|
ifeq ($(OBJS_UI),)
|
|
HAVE_DGL = false
|
|
endif
|
|
|
|
# --------------------------------------------------------------
|
|
# Set which plugin formats to build
|
|
|
|
BUILD_JACK = true
|
|
ifeq ($(LINUX),true)
|
|
BUILD_DSSI = true
|
|
endif
|
|
BUILD_LV2 = true
|
|
BUILD_VST2 = true
|
|
|
|
# --------------------------------------------------------------
|
|
# Basic setup
|
|
|
|
TARGET_DIR = ../../bin
|
|
|
|
BUILD_C_FLAGS += -I.
|
|
BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/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 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)
|
|
|
|
# --------------------------------------------------------------
|
|
# Set distrho code files
|
|
|
|
DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp
|
|
|
|
ifeq ($(HAVE_DGL),true)
|
|
DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a
|
|
endif
|
|
|
|
# --------------------------------------------------------------
|
|
# Handle plugins without UI
|
|
|
|
ifneq ($(HAVE_DGL),true)
|
|
dssi_ui =
|
|
lv2_ui =
|
|
DISTRHO_UI_FILES =
|
|
DGL_LIBS =
|
|
OBJS_UI =
|
|
endif
|
|
|
|
# --------------------------------------------------------------
|
|
# all needs to be first
|
|
|
|
all:
|
|
|
|
# --------------------------------------------------------------
|
|
# Common
|
|
|
|
%.c.o: %.c
|
|
$(CC) $< $(BUILD_C_FLAGS) -MD -MP -c -o $@
|
|
|
|
%.cpp.o: %.cpp
|
|
$(CXX) $< $(BUILD_CXX_FLAGS) -MD -MP -c -o $@
|
|
|
|
clean:
|
|
rm -f *.d *.o
|
|
rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/
|
|
|
|
# --------------------------------------------------------------
|
|
# JACK
|
|
|
|
jack: $(jack)
|
|
|
|
$(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -DDISTRHO_PLUGIN_TARGET_JACK -o $@
|
|
|
|
# --------------------------------------------------------------
|
|
# LADSPA
|
|
|
|
ladspa: $(ladspa_dsp)
|
|
|
|
$(ladspa_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@
|
|
|
|
# --------------------------------------------------------------
|
|
# DSSI
|
|
|
|
dssi: $(dssi_dsp) $(dssi_ui)
|
|
dssi_dsp: $(dssi_dsp)
|
|
dssi_ui: $(dssi_ui)
|
|
|
|
$(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
|
|
|
|
$(dssi_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
|
|
|
|
# --------------------------------------------------------------
|
|
# LV2
|
|
|
|
lv2_one: $(lv2)
|
|
lv2_dsp: $(lv2_dsp)
|
|
lv2_sep: $(lv2_dsp) $(lv2_ui)
|
|
|
|
$(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
|
|
|
|
$(lv2_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
|
|
|
|
$(lv2_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
|
|
|
|
# --------------------------------------------------------------
|
|
# VST
|
|
|
|
vst: $(vst)
|
|
|
|
$(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
|
|
mkdir -p $(shell dirname $@)
|
|
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@
|
|
|
|
# --------------------------------------------------------------
|
|
|
|
-include $(OBJS_DSP:%.o=%.d)
|
|
ifeq ($(HAVE_DGL),true)
|
|
-include $(OBJS_UI:%.o=%.d)
|
|
endif
|
|
|
|
# --------------------------------------------------------------
|