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.

141 lines
3.7KB

  1. #!/usr/bin/make -f
  2. # Makefile for Cardinal #
  3. # --------------------- #
  4. # Created by falkTX
  5. #
  6. DEP_PATH = $(abspath ../src/Rack/dep)
  7. OBJCOPY ?= objcopy
  8. # --------------------------------------------------------------
  9. # Import base definitions
  10. USE_NANOVG_FBO = true
  11. USE_RGBA = true
  12. include ../dpf/Makefile.base.mk
  13. # --------------------------------------------------------------
  14. # Files to build
  15. PLUGIN_FILES = plugins.cpp
  16. # Befaco
  17. PLUGIN_FILES += $(filter-out Befaco/src/plugin.cpp,$(wildcard Befaco/src/*.cpp))
  18. PLUGIN_BINARIES += Befaco/src/SpringReverbIR.pcm
  19. # Fundamental
  20. PLUGIN_FILES += $(filter-out Fundamental/src/plugin.cpp,$(wildcard Fundamental/src/*.cpp))
  21. # --------------------------------------------------------------
  22. # Resources to symlink
  23. # TODO
  24. # PLUGIN_RESOURCES = res/Befaco/res
  25. # PLUGIN_RESOURCES = res/Befaco/res
  26. # --------------------------------------------------------------
  27. # Build setup
  28. BUILD_DIR = ../build/plugins
  29. PLUGIN_OBJS = $(PLUGIN_FILES:%=$(BUILD_DIR)/%.o)
  30. PLUGIN_OBJS += $(PLUGIN_BINARIES:%=$(BUILD_DIR)/%.bin.o)
  31. ifeq ($(MACOS),true)
  32. BASE_FLAGS += -DARCH_MAC
  33. else ifeq ($(WINDOWS),true)
  34. BASE_FLAGS += -DARCH_WIN
  35. else
  36. BASE_FLAGS += -DARCH_LIN
  37. endif
  38. BUILD_C_FLAGS += -std=gnu11
  39. BASE_FLAGS += -I../dpf/dgl/src/nanovg
  40. BASE_FLAGS += -I../dpf/distrho
  41. BASE_FLAGS += -I../src
  42. BASE_FLAGS += -I../src/neon-compat
  43. BASE_FLAGS += -I../src/Rack/include
  44. BASE_FLAGS += -I../src/Rack/dep/include
  45. # BASE_FLAGS += -I../src/Rack/dep/filesystem/include
  46. # BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src
  47. BASE_FLAGS += -I../src/Rack/dep/glfw/include
  48. BASE_FLAGS += -I../src/Rack/dep/nanosvg/src
  49. # BASE_FLAGS += -I../src/Rack/dep/osdialog
  50. BASE_FLAGS += -I../src/Rack/dep/oui-blendish
  51. BASE_FLAGS += -I../src/Rack/dep/pffft
  52. BASE_FLAGS += -pthread
  53. ifeq ($(WINDOWS),true)
  54. BASE_FLAGS += -D_USE_MATH_DEFINES
  55. BASE_FLAGS += -Imingw-compat
  56. BASE_FLAGS += -Imingw-std-threads
  57. BASE_FLAGS += -municode
  58. endif
  59. # --------------------------------------------------------------
  60. # FIXME lots of warnings from VCV side
  61. BASE_FLAGS += -Wno-unused-parameter
  62. BASE_FLAGS += -Wno-unused-variable
  63. # also lots of plugins not updated to v2 yet
  64. BASE_FLAGS += -Wno-deprecated-declarations
  65. # --------------------------------------------------------------
  66. # temporary macro just to get the ball rolling
  67. ifeq ($(EXE_WRAPPER),wine)
  68. PLUGINS_DIR = Z:$(subst /,\\,$(CURDIR))
  69. else
  70. PLUGINS_DIR = $(CURDIR)
  71. endif
  72. BUILD_CXX_FLAGS += -DCARDINAL_PLUGINS_DIR='"$(PLUGINS_DIR)"'
  73. # --------------------------------------------------------------
  74. # Build targets
  75. TARGET = plugins.a
  76. all: $(TARGET)
  77. clean:
  78. rm -f $(TARGET)
  79. rm -rf $(BUILD_DIR)
  80. # --------------------------------------------------------------
  81. # Build commands
  82. $(TARGET): $(PLUGIN_OBJS)
  83. @echo "Creating $@"
  84. $(SILENT)rm -f $@
  85. $(SILENT)$(AR) crs $@ $^
  86. $(BUILD_DIR)/plugins.cpp.o: plugins.cpp
  87. -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
  88. @echo "Compiling $<"
  89. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  90. $(BUILD_DIR)/Befaco/%.cpp.o: Befaco/%.cpp
  91. -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
  92. @echo "Compiling $<"
  93. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__Befaco -c -o $@
  94. $(BUILD_DIR)/Fundamental/%.cpp.o: Fundamental/%.cpp
  95. -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
  96. @echo "Compiling $<"
  97. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__Fundamental -c -o $@
  98. # copied and adjusted from VCVRack's compile.mk
  99. $(BUILD_DIR)/%.bin.o: % res2c.py
  100. -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
  101. @echo "Generating and Compiling $<"
  102. $(shell ./res2c.py $< | $(CC) -x c - $(BUILD_C_FLAGS) -c -o $@)
  103. # --------------------------------------------------------------
  104. -include $(PLUGIN_OBJS:%.o=%.d)
  105. # --------------------------------------------------------------