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.

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