DISTRHO MVerb
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.

159 lines
4.3KB

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