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.

161 lines
4.0KB

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