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.

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