DPF Plugin examples
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
4.1KB

  1. #!/usr/bin/make -f
  2. # Makefile for DISTRHO Plugins #
  3. # ---------------------------- #
  4. # Created by falkTX
  5. #
  6. # NAME, OBJS_DSP and OBJS_UI have been defined before
  7. include ../../Makefile.mk
  8. # --------------------------------------------------------------
  9. # Basic setup
  10. TARGET_DIR = ../../bin
  11. BUILD_C_FLAGS += -I.
  12. BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/dgl
  13. ifeq ($(HAVE_DGL),true)
  14. BASE_FLAGS += -DHAVE_DGL
  15. endif
  16. ifeq ($(HAVE_JACK),true)
  17. BASE_FLAGS += -DHAVE_JACK
  18. endif
  19. ifeq ($(HAVE_LIBLO),true)
  20. BASE_FLAGS += -DHAVE_LIBLO
  21. endif
  22. # --------------------------------------------------------------
  23. # Set plugin binary file targets
  24. jack = $(TARGET_DIR)/$(NAME)$(APP_EXT)
  25. ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT)
  26. dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT)
  27. dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT)
  28. lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT)
  29. lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT)
  30. lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT)
  31. vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT)
  32. # --------------------------------------------------------------
  33. # Set distrho code files
  34. DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp
  35. ifeq ($(HAVE_DGL),true)
  36. DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a
  37. endif
  38. # --------------------------------------------------------------
  39. # Handle plugins without UI
  40. ifneq ($(HAVE_DGL),true)
  41. dssi_ui =
  42. lv2_ui =
  43. DISTRHO_UI_FILES =
  44. DGL_LIBS =
  45. OBJS_UI =
  46. endif
  47. # --------------------------------------------------------------
  48. # all needs to be first
  49. all:
  50. # --------------------------------------------------------------
  51. # Common
  52. %.c.o: %.c
  53. $(CC) $< $(BUILD_C_FLAGS) -MD -MP -c -o $@
  54. %.cpp.o: %.cpp
  55. $(CXX) $< $(BUILD_CXX_FLAGS) -MD -MP -c -o $@
  56. clean:
  57. rm -f *.d *.o
  58. rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/
  59. # --------------------------------------------------------------
  60. # JACK
  61. jack: $(jack)
  62. $(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
  63. mkdir -p $(shell dirname $@)
  64. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -DDISTRHO_PLUGIN_TARGET_JACK -o $@
  65. # --------------------------------------------------------------
  66. # LADSPA
  67. ladspa: $(ladspa_dsp)
  68. $(ladspa_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
  69. mkdir -p $(shell dirname $@)
  70. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@
  71. # --------------------------------------------------------------
  72. # DSSI
  73. dssi: $(dssi_dsp) $(dssi_ui)
  74. dssi_dsp: $(dssi_dsp)
  75. dssi_ui: $(dssi_ui)
  76. $(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
  77. mkdir -p $(shell dirname $@)
  78. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
  79. $(dssi_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
  80. mkdir -p $(shell dirname $@)
  81. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
  82. # --------------------------------------------------------------
  83. # LV2
  84. lv2_one: $(lv2)
  85. lv2_dsp: $(lv2_dsp)
  86. lv2_sep: $(lv2_dsp) $(lv2_ui)
  87. $(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
  88. mkdir -p $(shell dirname $@)
  89. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
  90. $(lv2_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
  91. mkdir -p $(shell dirname $@)
  92. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
  93. $(lv2_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
  94. mkdir -p $(shell dirname $@)
  95. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
  96. # --------------------------------------------------------------
  97. # VST
  98. vst: $(vst)
  99. $(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
  100. mkdir -p $(shell dirname $@)
  101. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@
  102. # --------------------------------------------------------------
  103. -include $(OBJS_DSP:%.o=%.d)
  104. ifeq ($(HAVE_DGL),true)
  105. -include $(OBJS_UI:%.o=%.d)
  106. endif
  107. # --------------------------------------------------------------