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.

198 lines
5.6KB

  1. #!/usr/bin/make -f
  2. # Makefile for DISTRHO Plugins #
  3. # ---------------------------- #
  4. # Created by falkTX
  5. #
  6. # --------------------------------------------------------------
  7. # Build config
  8. PREFIX ?= /usr/local
  9. DESTDIR ?=
  10. SYSDEPS ?= false
  11. # --------------------------------------------------------------
  12. # Import base definitions
  13. USE_NANOVG_FBO = true
  14. include ../dpf/Makefile.base.mk
  15. # --------------------------------------------------------------
  16. # Build setup
  17. BUILD_DIR = ../build/lv2export
  18. BASE_FLAGS += -DHEADLESS
  19. BASE_FLAGS += -DPRIVATE=
  20. ifeq ($(MACOS),true)
  21. BASE_FLAGS += -DARCH_MAC
  22. else ifeq ($(WINDOWS),true)
  23. BASE_FLAGS += -DARCH_WIN
  24. else
  25. BASE_FLAGS += -DARCH_LIN
  26. endif
  27. BASE_FLAGS += -fno-finite-math-only
  28. # BASE_FLAGS += -I../dpf/dgl
  29. BASE_FLAGS += -I../dpf/dgl/src/nanovg
  30. BASE_FLAGS += -I../dpf/distrho
  31. BASE_FLAGS += -I../include
  32. BASE_FLAGS += -I../include/neon-compat
  33. BASE_FLAGS += -I../src/Rack/include
  34. ifeq ($(SYSDEPS),true)
  35. BASE_FLAGS += -DCARDINAL_SYSDEPS
  36. BASE_FLAGS += $(shell pkg-config --cflags jansson libarchive samplerate speexdsp)
  37. else
  38. BASE_FLAGS += -DZSTDLIB_VISIBILITY=
  39. BASE_FLAGS += -I../src/Rack/dep/include
  40. endif
  41. BASE_FLAGS += -I../src/Rack/dep/filesystem/include
  42. BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src
  43. BASE_FLAGS += -I../src/Rack/dep/glfw/include
  44. BASE_FLAGS += -I../src/Rack/dep/nanosvg/src
  45. # BASE_FLAGS += -IRack/dep/osdialog
  46. BASE_FLAGS += -I../src/Rack/dep/oui-blendish
  47. BASE_FLAGS += -I../src/Rack/dep/pffft
  48. BASE_FLAGS += -pthread
  49. ifeq ($(WINDOWS),true)
  50. BASE_FLAGS += -D_USE_MATH_DEFINES
  51. BASE_FLAGS += -DWIN32_LEAN_AND_MEAN
  52. BASE_FLAGS += -I../include/mingw-compat
  53. BASE_FLAGS += -I../include/mingw-std-threads
  54. endif
  55. # --------------------------------------------------------------
  56. # lots of warnings from VCV side
  57. BASE_FLAGS += -Wno-unused-but-set-variable
  58. BASE_FLAGS += -Wno-unused-parameter
  59. BASE_FLAGS += -Wno-unused-result
  60. BASE_FLAGS += -Wno-unused-variable
  61. ifeq ($(MACOS),true)
  62. BASE_FLAGS += -Wno-unknown-warning-option
  63. endif
  64. # --------------------------------------------------------------
  65. # extra linker flags
  66. LINK_FLAGS += -pthread
  67. ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
  68. LINK_FLAGS += -ldl
  69. endif
  70. ifeq ($(MACOS),true)
  71. LINK_FLAGS += -framework IOKit
  72. else ifeq ($(WINDOWS),true)
  73. # needed by VCVRack
  74. EXTRA_LIBS += -ldbghelp -lshlwapi
  75. # needed by JW-Modules
  76. EXTRA_LIBS += -lws2_32 -lwinmm
  77. endif
  78. ifeq ($(SYSDEPS),true)
  79. EXTRA_LIBS += $(shell pkg-config --libs jansson libarchive samplerate speexdsp)
  80. endif
  81. # --------------------------------------------------------------
  82. # Build files
  83. # BUILD_FILES += test.cpp
  84. # BUILD_FILES = dep.cpp
  85. BUILD_FILES += dep2.cpp
  86. BUILD_FILES += ../src/override/context.cpp
  87. BUILD_FILES += ../src/override/RemoteNanoVG.cpp
  88. BUILD_FILES += ../src/Rack/src/logger.cpp
  89. BUILD_FILES += ../src/Rack/src/random.cpp
  90. BUILD_FILES += ../src/Rack/src/string.cpp
  91. BUILD_FILES += ../src/Rack/src/system.cpp
  92. BUILD_FILES += ../src/Rack/src/tinyexpr.c
  93. BUILD_FILES += ../src/Rack/src/Quantity.cpp
  94. BUILD_FILES += ../src/Rack/src/engine/Module.cpp
  95. BUILD_FILES += ../src/Rack/src/engine/ParamQuantity.cpp
  96. BUILD_FILES += ../src/Rack/src/engine/PortInfo.cpp
  97. BUILD_FILES += ../src/Rack/dep/pffft/pffft.c
  98. BUILD_FILES += ../src/Rack/dep/pffft/fftpack.c
  99. BUILD_OBJS = $(BUILD_FILES:%=$(BUILD_DIR)/%.o)
  100. # ChowDSP Chorus
  101. BUILD_OBJS += $(BUILD_DIR)/lv2plugin/chowdsp-chorus.o
  102. BUILD_OBJS += $(BUILD_DIR)/plugin/ChowDSP/ChowChorus/ChowChorus.cpp.o
  103. BUILD_OBJS += $(BUILD_DIR)/plugin/ChowDSP/ChowChorus/BBDDelayLine.cpp.o
  104. BUILD_OBJS += $(BUILD_DIR)/plugin/ChowDSP/shared/SineWave.cpp.o
  105. BUILD_OBJS += $(BUILD_DIR)/plugin/ChowDSP/plugin.cpp.o
  106. # EXTRA_LIBS = ../plugins/plugins.a
  107. ifneq ($(SYSDEPS),true)
  108. EXTRA_LIBS += ../src/Rack/dep/lib/libjansson.a
  109. EXTRA_LIBS += ../src/Rack/dep/lib/libsamplerate.a
  110. EXTRA_LIBS += ../src/Rack/dep/lib/libspeexdsp.a
  111. ifeq ($(WINDOWS),true)
  112. EXTRA_LIBS += ../src/Rack/dep/lib/libarchive_static.a
  113. else
  114. EXTRA_LIBS += ../src/Rack/dep/lib/libarchive.a
  115. endif
  116. EXTRA_LIBS += ../src/Rack/dep/lib/libzstd.a
  117. endif
  118. # --------------------------------------------------------------
  119. # Build targets
  120. TARGETS = ../bin/CardinalModules.lv2/manifest.ttl
  121. TARGETS += ../bin/CardinalModules.lv2/plugins$(LIB_EXT)
  122. all: $(TARGETS)
  123. clean:
  124. rm -f $(TARGETS) $(BUILD_OBJS)
  125. # --------------------------------------------------------------
  126. # Build commands
  127. ../bin/CardinalModules.lv2/manifest.ttl: manifest.ttl.in
  128. -@mkdir -p $(shell dirname $@)
  129. sed -e "s/@LIB_EXT@/$(LIB_EXT)/" $< > $@
  130. # FIXME wildcard install
  131. install -m 644 lv2ttl/* ../bin/CardinalModules.lv2/
  132. ../bin/CardinalModules.lv2/plugins$(LIB_EXT): $(BUILD_OBJS)
  133. -@mkdir -p $(shell dirname $@)
  134. $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(EXTRA_LIBS) $(SHARED) -o $@
  135. $(BUILD_DIR)/%.c.o: %.c
  136. -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
  137. @echo "Compiling $<"
  138. $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
  139. $(BUILD_DIR)/%.cpp.o: %.cpp
  140. -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
  141. @echo "Compiling $<"
  142. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  143. # --------------------------------------------------------------
  144. $(BUILD_DIR)/lv2plugin/chowdsp-chorus.o: lv2plugin.cpp
  145. -@mkdir -p "$(shell dirname $@)"
  146. @echo "Compiling $< (ChowDSP Chorus)"
  147. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -UPRIVATE -c -o $@ \
  148. -DPLUGIN_INSTANCE=pluginInstance__ChowDSP \
  149. -DPLUGIN_MODEL=modelChowChorus \
  150. -DPLUGIN_URI='"urn:cardinal:chow:chorus"'
  151. $(BUILD_DIR)/plugin/ChowDSP/%.o: ../plugins/ChowDSP/src/%
  152. -@mkdir -p "$(shell dirname $@)"
  153. @echo "Compiling $< (ChowDSP Chorus)"
  154. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -UPRIVATE -c -o $@ \
  155. -DpluginInstance=pluginInstance__ChowDSP
  156. # --------------------------------------------------------------
  157. -include $(BUILD_OBJS:%.o=%.d)
  158. # --------------------------------------------------------------