DISTRHO Mini-Series
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.

165 lines
4.4KB

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