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.

180 lines
5.5KB

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