DISTRHO Juice Plugins
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.

131 lines
3.7KB

  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. # --------------------------------------------------------------
  14. # Set plugin binary file targets
  15. jack = $(TARGET_DIR)/$(NAME)
  16. ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa.$(EXT)
  17. dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi.$(EXT)
  18. dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui
  19. lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME).$(EXT)
  20. lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp.$(EXT)
  21. lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui.$(EXT)
  22. vst = $(TARGET_DIR)/$(NAME)-vst.$(EXT)
  23. ifeq ($(WIN32),true)
  24. dssi_ui += .exe
  25. endif
  26. # TODO: MacOS VST bundle
  27. # --------------------------------------------------------------
  28. # Set distrho code files
  29. DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp
  30. DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a
  31. # --------------------------------------------------------------
  32. # Handle plugins without UI
  33. ifeq ($(TARGET_NOUI),true)
  34. dssi_ui =
  35. lv2_ui =
  36. DISTRHO_UI_FILES =
  37. DGL_LIBS =
  38. OBJS_UI =
  39. endif
  40. # --------------------------------------------------------------
  41. # all needs to be first
  42. all:
  43. # --------------------------------------------------------------
  44. # Common
  45. %.c.o: %.c
  46. $(CC) $< $(BUILD_C_FLAGS) -c -o $@
  47. %.cpp.o: %.cpp
  48. $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  49. clean:
  50. rm -f *.o
  51. rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/
  52. # --------------------------------------------------------------
  53. # JACK
  54. jack: $(jack)
  55. $(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
  56. mkdir -p $(shell dirname $@)
  57. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -DDISTRHO_PLUGIN_TARGET_JACK -o $@
  58. # --------------------------------------------------------------
  59. # LADSPA
  60. ladspa: $(ladspa_dsp)
  61. $(ladspa_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
  62. mkdir -p $(shell dirname $@)
  63. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@
  64. # --------------------------------------------------------------
  65. # DSSI
  66. dssi: $(dssi_dsp) $(dssi_ui)
  67. $(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
  68. mkdir -p $(shell dirname $@)
  69. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
  70. $(dssi_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
  71. mkdir -p $(shell dirname $@)
  72. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
  73. # --------------------------------------------------------------
  74. # LV2
  75. lv2_one: $(lv2)
  76. lv2_sep: $(lv2_dsp) $(lv2_ui)
  77. $(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
  78. mkdir -p $(shell dirname $@)
  79. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
  80. $(lv2_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
  81. mkdir -p $(shell dirname $@)
  82. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
  83. $(lv2_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
  84. mkdir -p $(shell dirname $@)
  85. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
  86. # --------------------------------------------------------------
  87. # VST
  88. vst: $(vst)
  89. $(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
  90. mkdir -p $(shell dirname $@)
  91. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@
  92. # --------------------------------------------------------------