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.

167 lines
4.1KB

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