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.

166 lines
4.9KB

  1. #!/usr/bin/make -f
  2. # Makefile for DISTRHO Plugins #
  3. # ---------------------------- #
  4. # Created by falkTX
  5. #
  6. # NOTE This file MUST be imported after setting `NAME`
  7. # --------------------------------------------------------------
  8. # Files to build
  9. FILES_DSP = \
  10. IldaeilPlugin.cpp
  11. FILES_UI = \
  12. IldaeilUI.cpp \
  13. ../Common/PluginHostWindow.cpp \
  14. ../../dpf-widgets/opengl/DearImGui.cpp
  15. # --------------------------------------------------------------
  16. # Carla stuff
  17. ifneq ($(DEBUG),true)
  18. EXTERNAL_PLUGINS = true
  19. endif
  20. CWD = ../../carla/source
  21. include $(CWD)/Makefile.deps.mk
  22. CARLA_BUILD_DIR = ../../carla/build
  23. ifeq ($(DEBUG),true)
  24. CARLA_BUILD_TYPE = Debug
  25. else
  26. CARLA_BUILD_TYPE = Release
  27. endif
  28. CARLA_EXTRA_LIBS = $(CARLA_BUILD_DIR)/plugin/$(CARLA_BUILD_TYPE)/carla-host-plugin.cpp.o
  29. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/carla_engine_plugin.a
  30. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/carla_plugin.a
  31. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/native-plugins.a
  32. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/audio_decoder.a
  33. ifneq ($(WASM),true)
  34. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/dgl.a
  35. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/jackbridge.min.a
  36. endif
  37. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/lilv.a
  38. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/rtmempool.a
  39. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/sfzero.a
  40. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/water.a
  41. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/ysfx.a
  42. CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a
  43. # FIXME
  44. ifeq ($(WASM),true)
  45. STATIC_CARLA_PLUGIN_LIBS = -lsndfile -lopus -lFLAC -lvorbisenc -lvorbis -logg -lm
  46. endif
  47. EXTRA_DEPENDENCIES = $(CARLA_EXTRA_LIBS)
  48. EXTRA_LIBS = $(CARLA_EXTRA_LIBS) $(STATIC_CARLA_PLUGIN_LIBS)
  49. # --------------------------------------------------------------
  50. # Do some more magic
  51. USE_CLAP_BUNDLE = true
  52. USE_VST2_BUNDLE = true
  53. include ../../dpf/Makefile.plugins.mk
  54. ifeq ($(WASM),true)
  55. # used for testing
  56. LINK_FLAGS += -sALLOW_MEMORY_GROWTH
  57. LINK_FLAGS += --use-preload-plugins
  58. # LINK_FLAGS += --preload-file=foolme.mp3
  59. # LINK_FLAGS += --preload-file=furelise.mid
  60. # LINK_FLAGS += --preload-file=./jsfx
  61. LINK_FLAGS += --preload-file=./lv2
  62. # LINK_FLAGS += --shell-file=../Cardinal/src/emscripten/shell.html
  63. else ifneq ($(HAIKU),true)
  64. BUILD_CXX_FLAGS += -pthread
  65. endif
  66. BUILD_CXX_FLAGS += -I../Common
  67. BUILD_CXX_FLAGS += -I../../dpf-widgets/generic
  68. BUILD_CXX_FLAGS += -I../../dpf-widgets/opengl
  69. BUILD_CXX_FLAGS += -DCARLA_BACKEND_NAMESPACE=Ildaeil
  70. BUILD_CXX_FLAGS += -DREAL_BUILD
  71. BUILD_CXX_FLAGS += -DSTATIC_PLUGIN_TARGET
  72. BUILD_CXX_FLAGS += -I../../carla/source/backend
  73. BUILD_CXX_FLAGS += -I../../carla/source/includes
  74. BUILD_CXX_FLAGS += -I../../carla/source/modules
  75. BUILD_CXX_FLAGS += -I../../carla/source/utils
  76. ifeq ($(MACOS),true)
  77. $(BUILD_DIR)/../Common/PluginHostWindow.cpp.o: BUILD_CXX_FLAGS += -ObjC++
  78. $(BUILD_DIR)/../Common/SizeUtils.cpp.o: BUILD_CXX_FLAGS += -ObjC++
  79. endif
  80. # --------------------------------------------------------------
  81. # Enable all possible plugin types
  82. ifeq ($(WASM),true)
  83. TARGETS_EXTRA = jack
  84. else
  85. TARGETS_BASE = lv2 vst2 clap
  86. TARGETS_EXTRA = jack carlabins
  87. # VST3 does not do MIDI filter plugins, by design
  88. ifneq ($(NAME),Ildaeil-MIDI)
  89. TARGETS_BASE += vst3
  90. endif
  91. endif
  92. all: $(TARGETS_BASE) $(TARGETS_EXTRA)
  93. # --------------------------------------------------------------
  94. # special step for carla binaries
  95. ifneq ($(USE_SYSTEM_CARLA_BINS),true)
  96. CARLA_BINARIES = $(CURDIR)/../../carla/bin/carla-bridge-native$(APP_EXT)
  97. CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-lv2-gtk2$(APP_EXT)
  98. CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-lv2-gtk3$(APP_EXT)
  99. ifeq ($(CARLA_EXTRA_TARGETS),true)
  100. # 32bit bridge
  101. ifeq ($(CPU_X86_64),true)
  102. ifeq ($(WINDOWS),true)
  103. CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-win32$(APP_EXT)
  104. else ifneq ($(MACOS),true)
  105. CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-posix32$(APP_EXT)
  106. endif
  107. endif
  108. # Windows bridges
  109. ifeq ($(CPU_I386_OR_X86_64)$(LINUX),truetrue)
  110. CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-win32.exe
  111. CARLA_BINARIES += $(CURDIR)/../../carla/bin/jackbridge-wine32.dll
  112. ifeq ($(CPU_X86_64),true)
  113. CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-win64.exe
  114. CARLA_BINARIES += $(CURDIR)/../../carla/bin/jackbridge-wine64.dll
  115. endif
  116. endif
  117. endif # CARLA_EXTRA_TARGETS
  118. carlabins: $(TARGETS_BASE)
  119. install -m 755 $(CARLA_BINARIES) $(shell dirname $(lv2))
  120. install -m 755 $(CARLA_BINARIES) $(shell dirname $(vst2))
  121. install -m 755 $(CARLA_BINARIES) $(shell dirname $(clap))
  122. ifneq ($(NAME),Ildaeil-MIDI)
  123. install -m 755 $(CARLA_BINARIES) $(shell dirname $(vst3))
  124. endif
  125. else # USE_SYSTEM_CARLA_BINS
  126. carlabins:
  127. endif # USE_SYSTEM_CARLA_BINS
  128. # --------------------------------------------------------------