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
4.4KB

  1. #!/usr/bin/make -f
  2. # Makefile for DISTRHO Plugins #
  3. # ---------------------------- #
  4. # Created by falkTX
  5. #
  6. include dpf/Makefile.base.mk
  7. all: cardinal carla deps dgl plugins gen resources
  8. # --------------------------------------------------------------
  9. # Build config
  10. PREFIX ?= /usr/local
  11. DESTDIR ?=
  12. SYSDEPS ?= false
  13. # --------------------------------------------------------------
  14. # Carla config
  15. ifeq ($(SYSDEPS),true)
  16. CAN_USE_CARLA_DEPS = true
  17. else ifeq ($(WITH_PAWPAW),true)
  18. CAN_USE_CARLA_DEPS = true
  19. endif
  20. CARLA_EXTRA_ARGS = \
  21. HAVE_FFMPEG=false \
  22. HAVE_PROJECTM=false \
  23. HAVE_ZYN_DEPS=false \
  24. HAVE_ZYN_UI_DEPS=false
  25. ifneq ($(CAN_USE_CARLA_DEPS),true)
  26. CARLA_EXTRA_ARGS += HAVE_FLUIDSYNTH=false
  27. CARLA_EXTRA_ARGS += HAVE_LIBMAGIC=false
  28. CARLA_EXTRA_ARGS += HAVE_SNDFILE=false
  29. endif
  30. ifneq ($(DEBUG),true)
  31. CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true
  32. endif
  33. # ifneq ($(MACOS),true)
  34. CARLA_EXTRA_ARGS += USING_JUCE=false
  35. CARLA_EXTRA_ARGS += USING_JUCE_GUI_EXTRA=false
  36. # endif
  37. # --------------------------------------------------------------
  38. # Check for system-wide dependencies
  39. ifeq ($(SYSDEPS),true)
  40. ifneq ($(shell pkg-config --exists jansson && echo true),true)
  41. $(error jansson dependency not installed/available)
  42. endif
  43. ifneq ($(shell pkg-config --exists libarchive && echo true),true)
  44. $(error libarchive dependency not installed/available)
  45. endif
  46. ifneq ($(shell pkg-config --exists samplerate && echo true),true)
  47. $(error samplerate dependency not installed/available)
  48. endif
  49. ifneq ($(shell pkg-config --exists speexdsp && echo true),true)
  50. $(error speexdsp dependency not installed/available)
  51. endif
  52. endif
  53. # --------------------------------------------------------------
  54. # Check for X11+OpenGL dependencies (unless headless build)
  55. ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
  56. ifneq ($(WASM),true)
  57. ifneq ($(HEADLESS),true)
  58. ifneq ($(HAVE_OPENGL),true)
  59. $(error OpenGL dependency not installed/available)
  60. endif
  61. ifneq ($(HAVE_X11),true)
  62. $(error X11 dependency not installed/available)
  63. endif
  64. ifneq ($(HAVE_XEXT),true)
  65. $(warning Xext dependency not installed/available)
  66. endif
  67. ifneq ($(HAVE_XRANDR),true)
  68. $(warning Xrandr dependency not installed/available)
  69. endif
  70. else
  71. CARLA_EXTRA_ARGS += HAVE_OPENGL=false
  72. CARLA_EXTRA_ARGS += HAVE_X11=false
  73. CARLA_EXTRA_ARGS += HAVE_XEXT=false
  74. CARLA_EXTRA_ARGS += HAVE_XRANDR=false
  75. endif
  76. endif
  77. endif
  78. # --------------------------------------------------------------
  79. cardinal: carla deps dgl plugins
  80. $(MAKE) all -C src $(CARLA_EXTRA_ARGS)
  81. carla:
  82. $(MAKE) static-plugin -C carla $(CARLA_EXTRA_ARGS) \
  83. CAN_GENERATE_LV2_TTL=false \
  84. STATIC_PLUGIN_TARGET=true
  85. deps:
  86. ifeq ($(SYSDEPS),true)
  87. $(MAKE) quickjs -C deps
  88. else
  89. $(MAKE) all -C deps
  90. endif
  91. dgl:
  92. ifneq ($(HEADLESS),true)
  93. $(MAKE) -C dpf/dgl opengl NVG_DISABLE_SKIPPING_WHITESPACE=true USE_NANOVG_FBO=true
  94. endif
  95. plugins: deps
  96. $(MAKE) all -C plugins
  97. resources: cardinal
  98. $(MAKE) resources -C plugins
  99. ifneq ($(CROSS_COMPILING),true)
  100. gen: cardinal resources dpf/utils/lv2_ttl_generator
  101. @$(CURDIR)/dpf/utils/generate-ttl.sh
  102. dpf/utils/lv2_ttl_generator:
  103. $(MAKE) -C dpf/utils/lv2-ttl-generator
  104. else
  105. gen:
  106. endif
  107. # --------------------------------------------------------------
  108. clean:
  109. $(MAKE) distclean -C carla
  110. $(MAKE) clean -C deps
  111. $(MAKE) clean -C dpf/dgl
  112. $(MAKE) clean -C dpf/utils/lv2-ttl-generator
  113. $(MAKE) clean -C plugins
  114. $(MAKE) clean -C src
  115. rm -rf bin build
  116. # --------------------------------------------------------------
  117. install:
  118. install -d $(DESTDIR)$(PREFIX)/bin
  119. install -d $(DESTDIR)$(PREFIX)/lib/lv2
  120. install -d $(DESTDIR)$(PREFIX)/lib/vst
  121. install -d $(DESTDIR)$(PREFIX)/lib/vst3
  122. install -d $(DESTDIR)$(PREFIX)/share/Cardinal
  123. cp -rL bin/Cardinal.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/
  124. cp -rL bin/Cardinal.vst3 $(DESTDIR)$(PREFIX)/lib/vst3/
  125. cp -rL bin/CardinalFX.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/
  126. cp -rL bin/CardinalFX.vst $(DESTDIR)$(PREFIX)/lib/vst/
  127. cp -rL bin/CardinalFX.vst3 $(DESTDIR)$(PREFIX)/lib/vst3/
  128. cp -rL bin/CardinalSynth.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/
  129. cp -rL bin/CardinalSynth.vst $(DESTDIR)$(PREFIX)/lib/vst/
  130. cp -rL bin/CardinalSynth.vst3 $(DESTDIR)$(PREFIX)/lib/vst3/
  131. install -m 755 bin/Cardinal$(APP_EXT) $(DESTDIR)$(PREFIX)/bin/
  132. install -m 755 bin/CardinalFX$(APP_EXT) $(DESTDIR)$(PREFIX)/bin/
  133. install -m 755 bin/CardinalSynth$(APP_EXT) $(DESTDIR)$(PREFIX)/bin/
  134. cp -rL bin/Cardinal.lv2/resources/* $(DESTDIR)$(PREFIX)/share/Cardinal/
  135. # --------------------------------------------------------------
  136. .PHONY: carla deps plugins