Audio plugin host https://kx.studio/carla
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.

Makefile 34KB

11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
9 years ago
9 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081
  1. #!/usr/bin/make -f
  2. # Makefile for Carla #
  3. # ------------------ #
  4. # Created by falkTX
  5. #
  6. CWD=source
  7. include source/Makefile.mk
  8. # ---------------------------------------------------------------------------------------------------------------------
  9. PREFIX := /usr/local
  10. BINDIR := $(PREFIX)/bin
  11. LIBDIR := $(PREFIX)/lib
  12. DATADIR := $(PREFIX)/share
  13. INCLUDEDIR := $(PREFIX)/include
  14. DESTDIR :=
  15. ifeq ($(DEBUG),true)
  16. MODULEDIR := $(CURDIR)/build/modules/Debug
  17. else
  18. MODULEDIR := $(CURDIR)/build/modules/Release
  19. endif
  20. # ---------------------------------------------------------------------------------------------------------------------
  21. all: backend discovery bridges-plugin bridges-ui frontend interposer libjack plugin theme
  22. # ---------------------------------------------------------------------------------------------------------------------
  23. # Binaries (native)
  24. ALL_LIBS += $(MODULEDIR)/carla_engine.a
  25. ALL_LIBS += $(MODULEDIR)/carla_engine_plugin.a
  26. ALL_LIBS += $(MODULEDIR)/carla_plugin.a
  27. ALL_LIBS += $(MODULEDIR)/jackbridge.a
  28. ALL_LIBS += $(MODULEDIR)/native-plugins.a
  29. ALL_LIBS += $(MODULEDIR)/rtmempool.a
  30. 3RD_LIBS += $(MODULEDIR)/audio_decoder.a
  31. 3RD_LIBS += $(MODULEDIR)/lilv.a
  32. 3RD_LIBS += $(MODULEDIR)/sfzero.a
  33. 3RD_LIBS += $(MODULEDIR)/water.a
  34. 3RD_LIBS += $(MODULEDIR)/zita-resampler.a
  35. ifeq ($(HAVE_DGL),true)
  36. 3RD_LIBS += $(MODULEDIR)/dgl.a
  37. endif
  38. ifeq ($(HAVE_HYLIA),true)
  39. 3RD_LIBS += $(MODULEDIR)/hylia.a
  40. endif
  41. ifeq ($(HAVE_QT4),true)
  42. 3RD_LIBS += $(MODULEDIR)/theme.qt4.a
  43. endif
  44. ifeq ($(HAVE_QT5),true)
  45. 3RD_LIBS += $(MODULEDIR)/theme.qt5.a
  46. endif
  47. ifeq ($(USING_JUCE),true)
  48. 3RD_LIBS += $(MODULEDIR)/juce_audio_basics.a
  49. ifeq ($(USING_JUCE_AUDIO_DEVICES),true)
  50. 3RD_LIBS += $(MODULEDIR)/juce_audio_devices.a
  51. endif
  52. 3RD_LIBS += $(MODULEDIR)/juce_audio_processors.a
  53. 3RD_LIBS += $(MODULEDIR)/juce_core.a
  54. 3RD_LIBS += $(MODULEDIR)/juce_data_structures.a
  55. 3RD_LIBS += $(MODULEDIR)/juce_events.a
  56. 3RD_LIBS += $(MODULEDIR)/juce_graphics.a
  57. 3RD_LIBS += $(MODULEDIR)/juce_gui_basics.a
  58. ifeq ($(USING_JUCE_GUI_EXTRA),true)
  59. 3RD_LIBS += $(MODULEDIR)/juce_gui_extra.a
  60. endif
  61. endif
  62. ifneq ($(USING_JUCE_AUDIO_DEVICES),true)
  63. 3RD_LIBS += $(MODULEDIR)/rtaudio.a
  64. 3RD_LIBS += $(MODULEDIR)/rtmidi.a
  65. endif
  66. ALL_LIBS += $(3RD_LIBS)
  67. 3rd: $(3RD_LIBS)
  68. @$(MAKE) -C source/theme
  69. ifeq ($(HAVE_QT4),true)
  70. @$(MAKE) -C source/bridges-ui ui_lv2-qt4
  71. endif
  72. libs: $(ALL_LIBS)
  73. $(MODULEDIR)/carla_engine.a: .FORCE
  74. @$(MAKE) -C source/backend/engine
  75. $(MODULEDIR)/carla_engine_plugin.a: $(MODULEDIR)/carla_engine.a
  76. @$(MAKE) -C source/backend/engine
  77. $(MODULEDIR)/carla_plugin.a: .FORCE
  78. @$(MAKE) -C source/backend/plugin
  79. $(MODULEDIR)/jackbridge.a: .FORCE
  80. @$(MAKE) -C source/jackbridge
  81. $(MODULEDIR)/jackbridge.%.a: .FORCE
  82. @$(MAKE) -C source/jackbridge $*
  83. $(MODULEDIR)/native-plugins.a: .FORCE
  84. @$(MAKE) -C source/native-plugins
  85. $(MODULEDIR)/theme.qt4.a: .FORCE
  86. @$(MAKE) -C source/theme qt4
  87. $(MODULEDIR)/theme.qt5.a: .FORCE
  88. @$(MAKE) -C source/theme qt5
  89. $(MODULEDIR)/%.arm32.a: .FORCE
  90. ifneq ($(WIN32),true)
  91. @$(MAKE) -C source/modules/$* arm32
  92. else
  93. $(error Trying to build ARM binaries with a Windows toolchain, this cannot work)
  94. endif
  95. $(MODULEDIR)/%.posix32.a: .FORCE
  96. ifneq ($(WIN32),true)
  97. @$(MAKE) -C source/modules/$* posix32
  98. else
  99. $(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
  100. endif
  101. $(MODULEDIR)/%.posix64.a: .FORCE
  102. ifneq ($(WIN32),true)
  103. @$(MAKE) -C source/modules/$* posix64
  104. else
  105. $(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
  106. endif
  107. $(MODULEDIR)/%.win32.a: .FORCE
  108. ifeq ($(WIN32),true)
  109. @$(MAKE) -C source/modules/$* win32
  110. else
  111. $(error Trying to build Windows binaries with a regular toolchain, this cannot work)
  112. endif
  113. $(MODULEDIR)/%.win64.a: .FORCE
  114. ifeq ($(WIN32),true)
  115. @$(MAKE) -C source/modules/$* win64
  116. else
  117. $(error Trying to build Windows binaries with a regular toolchain, this cannot work)
  118. endif
  119. $(MODULEDIR)/dgl.wine.a: .FORCE
  120. @$(MAKE) -C source/modules/dgl wine
  121. $(MODULEDIR)/water.files.a: .FORCE
  122. @$(MAKE) -C source/modules/water files
  123. $(MODULEDIR)/%.a: .FORCE
  124. @$(MAKE) -C source/modules/$*
  125. # ---------------------------------------------------------------------------------------------------------------------
  126. backend: libs
  127. @$(MAKE) -C source/backend
  128. bridges-plugin: libs
  129. @$(MAKE) -C source/bridges-plugin
  130. bridges-ui: libs
  131. @$(MAKE) -C source/bridges-ui
  132. discovery: libs
  133. @$(MAKE) -C source/discovery
  134. frontend: libs
  135. ifeq ($(HAVE_PYQT),true)
  136. @$(MAKE) -C source/frontend
  137. endif
  138. interposer:
  139. ifeq ($(LINUX),true)
  140. @$(MAKE) -C source/interposer
  141. endif
  142. libjack: libs
  143. @$(MAKE) -C source/libjack
  144. lv2-bundles-dep: $(MODULEDIR)/audio_decoder.a $(MODULEDIR)/water.a $(MODULEDIR)/zita-resampler.a
  145. @$(MAKE) -C source/native-plugins bundles
  146. lv2-bundles: lv2-bundles-dep
  147. @$(MAKE) -C source/plugin bundles
  148. plugin: backend bridges-plugin bridges-ui discovery
  149. @$(MAKE) -C source/plugin
  150. ifeq ($(WIN32),true)
  151. plugin-wine:
  152. @$(MAKE) -C source/plugin wine
  153. else
  154. plugin-wine: $(MODULEDIR)/dgl.wine.a
  155. @$(MAKE) -C source/plugin wine
  156. endif
  157. rest: libs
  158. @$(MAKE) -C source/rest
  159. theme: libs
  160. @$(MAKE) -C source/theme
  161. # ---------------------------------------------------------------------------------------------------------------------
  162. # prepare for (re)distribution
  163. _CARLA_APP_FILES = \
  164. carla-bridge-lv2-cocoa \
  165. carla-bridge-lv2.dylib \
  166. carla-bridge-native \
  167. carla-discovery-native \
  168. libcarla_standalone2.dylib \
  169. libcarla_utils.dylib \
  170. styles/carlastyle.dylib \
  171. styles/carlastyle.json
  172. CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla.app/Contents/MacOS/%)
  173. ifeq ($(MACOS),true)
  174. dist: $(CARLA_APP_FILES)
  175. else
  176. dist:
  177. endif
  178. bdist_mac_%:
  179. env PYTHONPATH=$(CURDIR)/source/frontend SCRIPT_NAME=$* python3 ./data/macos/bundle.py bdist_mac --bundle-name=$*
  180. build/Carla.app/Contents/MacOS/%: bin/%
  181. -@mkdir -p $(shell dirname $@)
  182. @cp -v $< $@
  183. # ---------------------------------------------------------------------------------------------------------------------
  184. # hacks
  185. msys2fix:
  186. rm -rf source/includes/serd
  187. rm -rf source/includes/sord
  188. rm -rf source/includes/sratom
  189. rm -rf source/includes/lilv
  190. cp -r source/modules/lilv/serd-0.24.0/serd source/includes/serd
  191. cp -r source/modules/lilv/sord-0.16.0/sord source/includes/sord
  192. cp -r source/modules/lilv/sratom-0.6.0/sratom source/includes/sratom
  193. cp -r source/modules/lilv/lilv-0.24.0/lilv source/includes/lilv
  194. # ---------------------------------------------------------------------------------------------------------------------
  195. # nuitka
  196. nuitka: bin/carla bin/carla-rack bin/carla-plugin
  197. bin/carla:
  198. python3 -m nuitka \
  199. -j 4 \
  200. --python-flag -O --warn-unusual-code --warn-implicit-exceptions \
  201. --follow-imports \
  202. -o ./$@ \
  203. ./source/frontend/carla
  204. bin/carla-rack:
  205. python3 -m nuitka \
  206. -j 8 \
  207. --recurse-all \
  208. --python-flag -O --warn-unusual-code --warn-implicit-exceptions \
  209. --recurse-not-to=PyQt5 \
  210. --file-reference-choice=runtime \
  211. -o ./$@ \
  212. ./source/frontend/carla
  213. bin/carla-plugin:
  214. python3 -m nuitka \
  215. -j 8 \
  216. --recurse-all \
  217. --python-flag -O --warn-unusual-code --warn-implicit-exceptions \
  218. --recurse-not-to=PyQt5 \
  219. --file-reference-choice=runtime \
  220. -o ./$@ \
  221. ./source/native-plugins/resources/carla-plugin
  222. # ---------------------------------------------------------------------------------------------------------------------
  223. # Binaries (arm32)
  224. LIBS_ARM32 = $(MODULEDIR)/jackbridge.arm32.a
  225. LIBS_ARM32 += $(MODULEDIR)/lilv.arm32.a
  226. LIBS_ARM32 += $(MODULEDIR)/rtmempool.arm32.a
  227. LIBS_ARM32 += $(MODULEDIR)/water.arm32.a
  228. arm32: $(LIBS_ARM32)
  229. $(MAKE) -C source/bridges-plugin arm32
  230. $(MAKE) -C source/discovery arm32
  231. # ---------------------------------------------------------------------------------------------------------------------
  232. # Binaries (posix32)
  233. LIBS_POSIX32 = $(MODULEDIR)/jackbridge.posix32.a
  234. LIBS_POSIX32 += $(MODULEDIR)/lilv.posix32.a
  235. LIBS_POSIX32 += $(MODULEDIR)/rtmempool.posix32.a
  236. LIBS_POSIX32 += $(MODULEDIR)/water.posix32.a
  237. ifeq ($(USING_JUCE),true)
  238. LIBS_POSIX32 += $(MODULEDIR)/juce_audio_basics.posix32.a
  239. LIBS_POSIX32 += $(MODULEDIR)/juce_audio_processors.posix32.a
  240. LIBS_POSIX32 += $(MODULEDIR)/juce_data_structures.posix32.a
  241. LIBS_POSIX32 += $(MODULEDIR)/juce_core.posix32.a
  242. LIBS_POSIX32 += $(MODULEDIR)/juce_events.posix32.a
  243. LIBS_POSIX32 += $(MODULEDIR)/juce_graphics.posix32.a
  244. LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a
  245. ifeq ($(USING_JUCE_GUI_EXTRA),true)
  246. LIBS_POSIX32 += $(MODULEDIR)/juce_gui_extra.posix32.a
  247. endif
  248. endif
  249. posix32: $(LIBS_POSIX32)
  250. $(MAKE) -C source/bridges-plugin posix32
  251. $(MAKE) -C source/discovery posix32
  252. # ---------------------------------------------------------------------------------------------------------------------
  253. # Binaries (posix64)
  254. LIBS_POSIX64 = $(MODULEDIR)/jackbridge.posix64.a
  255. LIBS_POSIX64 += $(MODULEDIR)/lilv.posix64.a
  256. LIBS_POSIX64 += $(MODULEDIR)/rtmempool.posix64.a
  257. LIBS_POSIX64 += $(MODULEDIR)/water.posix64.a
  258. ifeq ($(USING_JUCE),true)
  259. LIBS_POSIX64 += $(MODULEDIR)/juce_audio_basics.posix64.a
  260. LIBS_POSIX64 += $(MODULEDIR)/juce_audio_processors.posix64.a
  261. LIBS_POSIX64 += $(MODULEDIR)/juce_data_structures.posix64.a
  262. LIBS_POSIX64 += $(MODULEDIR)/juce_core.posix64.a
  263. LIBS_POSIX64 += $(MODULEDIR)/juce_events.posix64.a
  264. LIBS_POSIX64 += $(MODULEDIR)/juce_graphics.posix64.a
  265. LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a
  266. ifeq ($(USING_JUCE_GUI_EXTRA),true)
  267. LIBS_POSIX64 += $(MODULEDIR)/juce_gui_extra.posix64.a
  268. endif
  269. endif
  270. posix64: $(LIBS_POSIX64)
  271. $(MAKE) -C source/bridges-plugin posix64
  272. $(MAKE) -C source/discovery posix64
  273. # ---------------------------------------------------------------------------------------------------------------------
  274. # Binaries (win32)
  275. ifeq ($(BUILDING_FOR_WINDOWS),true)
  276. LIBS_WIN32 = $(MODULEDIR)/jackbridge.win32.a
  277. else
  278. LIBS_WIN32 = $(MODULEDIR)/jackbridge.win32e.a
  279. endif
  280. LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a
  281. LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a
  282. LIBS_WIN32 += $(MODULEDIR)/water.win32.a
  283. ifeq ($(USING_JUCE),true)
  284. LIBS_WIN32 += $(MODULEDIR)/juce_audio_basics.win32.a
  285. LIBS_WIN32 += $(MODULEDIR)/juce_audio_processors.win32.a
  286. LIBS_WIN32 += $(MODULEDIR)/juce_data_structures.win32.a
  287. LIBS_WIN32 += $(MODULEDIR)/juce_core.win32.a
  288. LIBS_WIN32 += $(MODULEDIR)/juce_events.win32.a
  289. LIBS_WIN32 += $(MODULEDIR)/juce_graphics.win32.a
  290. LIBS_WIN32 += $(MODULEDIR)/juce_gui_basics.win32.a
  291. ifeq ($(USING_JUCE_GUI_EXTRA),true)
  292. LIBS_WIN32 += $(MODULEDIR)/juce_gui_extra.win32.a
  293. endif
  294. endif
  295. win32r: $(LIBS_WIN32)
  296. $(MAKE) -C source/bridges-plugin win32
  297. $(MAKE) -C source/discovery win32
  298. win32: $(LIBS_WIN32)
  299. $(MAKE) BUILDING_FOR_WINE=true -C source/bridges-plugin win32
  300. $(MAKE) BUILDING_FOR_WINE=true -C source/discovery win32
  301. # ---------------------------------------------------------------------------------------------------------------------
  302. # Binaries (win64)
  303. ifeq ($(BUILDING_FOR_WINDOWS),true)
  304. LIBS_WIN64 = $(MODULEDIR)/jackbridge.win64.a
  305. else
  306. LIBS_WIN64 = $(MODULEDIR)/jackbridge.win64e.a
  307. endif
  308. LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a
  309. LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a
  310. LIBS_WIN64 += $(MODULEDIR)/water.win64.a
  311. ifeq ($(USING_JUCE),true)
  312. LIBS_WIN64 += $(MODULEDIR)/juce_audio_basics.win64.a
  313. LIBS_WIN64 += $(MODULEDIR)/juce_audio_processors.win64.a
  314. LIBS_WIN64 += $(MODULEDIR)/juce_data_structures.win64.a
  315. LIBS_WIN64 += $(MODULEDIR)/juce_core.win64.a
  316. LIBS_WIN64 += $(MODULEDIR)/juce_events.win64.a
  317. LIBS_WIN64 += $(MODULEDIR)/juce_graphics.win64.a
  318. LIBS_WIN64 += $(MODULEDIR)/juce_gui_basics.win64.a
  319. ifeq ($(USING_JUCE_GUI_EXTRA),true)
  320. LIBS_WIN64 += $(MODULEDIR)/juce_gui_extra.win64.a
  321. endif
  322. endif
  323. win64r: $(LIBS_WIN64)
  324. $(MAKE) -C source/bridges-plugin win64
  325. $(MAKE) -C source/discovery win64
  326. win64: $(LIBS_WIN64)
  327. $(MAKE) BUILDING_FOR_WINE=true -C source/bridges-plugin win64
  328. $(MAKE) BUILDING_FOR_WINE=true -C source/discovery win64
  329. # ---------------------------------------------------------------------------------------------------------------------
  330. # Binaries (wine)
  331. wine32:
  332. $(MAKE) -C source/jackbridge wine32
  333. cp -f $(MODULEDIR)/jackbridge-wine32.dll.so $(CURDIR)/bin/jackbridge-wine32.dll
  334. wine64:
  335. $(MAKE) -C source/jackbridge wine64
  336. cp -f $(MODULEDIR)/jackbridge-wine64.dll.so $(CURDIR)/bin/jackbridge-wine64.dll
  337. # ---------------------------------------------------------------------------------------------------------------------
  338. clean:
  339. $(MAKE) clean -C source/backend
  340. $(MAKE) clean -C source/bridges-plugin
  341. $(MAKE) clean -C source/bridges-ui
  342. $(MAKE) clean -C source/discovery
  343. $(MAKE) clean -C source/frontend
  344. $(MAKE) clean -C source/interposer
  345. $(MAKE) clean -C source/libjack
  346. $(MAKE) clean -C source/modules
  347. $(MAKE) clean -C source/native-plugins
  348. $(MAKE) clean -C source/plugin
  349. $(MAKE) clean -C source/tests
  350. $(MAKE) clean -C source/theme
  351. rm -f *~ source/*~
  352. distclean: clean
  353. rm -f bin/*.exe bin/*.dll bin/*.dylib bin/*.so
  354. rm -rf build build-lv2
  355. cpp:
  356. $(MAKE) CPPMODE=true
  357. debug:
  358. $(MAKE) DEBUG=true
  359. doxygen:
  360. $(MAKE) doxygen -C source/backend
  361. tests:
  362. $(MAKE) -C source/tests
  363. stoat:
  364. stoat --recursive ./build/ --suppression ./data/stoat-supression.txt --whitelist ./data/stoat-whitelist.txt --graph-view ./data/stoat-callgraph.png
  365. # stoat --recursive ./build/ \
  366. # --suppression ./data/stoat-supression.txt \
  367. # --whitelist ./data/stoat-whitelist.txt \
  368. # --graph-view ./data/stoat-callgraph.png
  369. # ---------------------------------------------------------------------------------------------------------------------
  370. install_main:
  371. # Create directories
  372. install -d $(DESTDIR)$(BINDIR)
  373. ifeq ($(LINUX),true)
  374. install -d $(DESTDIR)$(LIBDIR)/carla/jack
  375. else
  376. install -d $(DESTDIR)$(LIBDIR)/carla
  377. endif
  378. install -d $(DESTDIR)$(LIBDIR)/pkgconfig
  379. install -d $(DESTDIR)$(INCLUDEDIR)/carla/includes
  380. ifeq ($(LINUX),true)
  381. ifeq ($(HAVE_JACK),true)
  382. ifeq ($(JACKBRIDGE_DIRECT),true)
  383. install -d $(DESTDIR)$(JACK_LIBDIR)
  384. endif
  385. endif
  386. endif
  387. ifeq ($(HAVE_PYQT),true)
  388. # Create directories (gui)
  389. install -d $(DESTDIR)$(LIBDIR)/carla/styles
  390. install -d $(DESTDIR)$(DATADIR)/applications
  391. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  392. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  393. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  394. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  395. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  396. install -d $(DESTDIR)$(DATADIR)/mime/packages
  397. install -d $(DESTDIR)$(DATADIR)/carla/resources
  398. install -d $(DESTDIR)$(DATADIR)/carla/resources/translations
  399. install -d $(DESTDIR)$(DATADIR)/carla/modgui
  400. install -d $(DESTDIR)$(DATADIR)/carla/patchcanvas
  401. install -d $(DESTDIR)$(DATADIR)/carla/widgets
  402. endif
  403. # -------------------------------------------------------------------------------------------------------------
  404. # Install script files (non-gui)
  405. install -m 755 \
  406. data/carla-single \
  407. $(DESTDIR)$(BINDIR)
  408. # Adjust PREFIX value in script files (non-gui)
  409. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  410. $(DESTDIR)$(BINDIR)/carla-single
  411. # Install backend libs
  412. install -m 644 \
  413. bin/libcarla_*.* \
  414. $(DESTDIR)$(LIBDIR)/carla
  415. # Install other binaries
  416. install -m 755 \
  417. bin/*bridge-* \
  418. bin/carla-discovery-* \
  419. $(DESTDIR)$(LIBDIR)/carla
  420. ifeq ($(LINUX),true)
  421. ifeq ($(HAVE_JACK),true)
  422. ifeq ($(JACKBRIDGE_DIRECT),true)
  423. # Install internal jack client
  424. ln -sf \
  425. $(LIBDIR)/carla/libcarla_standalone2.so \
  426. $(DESTDIR)$(JACK_LIBDIR)/carla.so
  427. endif
  428. endif
  429. ifneq ($(JACKBRIDGE_DIRECT),true)
  430. # Install custom libjack
  431. install -m 755 \
  432. bin/jack/libjack.so.0 \
  433. $(DESTDIR)$(LIBDIR)/carla/jack
  434. endif
  435. endif
  436. # Install pkg-config files
  437. install -m 644 \
  438. data/*.pc \
  439. $(DESTDIR)$(LIBDIR)/pkgconfig
  440. # Adjust PREFIX, LIBDIR and INCLUDEDIR in pkg-config files
  441. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  442. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  443. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  444. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  445. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  446. sed $(SED_ARGS) 's?X-LIBDIR-X?$(LIBDIR)?' \
  447. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  448. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  449. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  450. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  451. sed $(SED_ARGS) 's?X-INCLUDEDIR-X?$(INCLUDEDIR)?' \
  452. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  453. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  454. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  455. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  456. # Install headers
  457. install -m 644 \
  458. source/backend/CarlaBackend.h \
  459. source/backend/CarlaHost.h \
  460. source/backend/CarlaUtils.h \
  461. source/backend/CarlaEngine.hpp \
  462. source/backend/CarlaPlugin.hpp \
  463. source/includes/CarlaNative.h \
  464. $(DESTDIR)$(INCLUDEDIR)/carla
  465. install -m 644 \
  466. source/includes/CarlaDefines.h \
  467. source/includes/CarlaMIDI.h \
  468. source/includes/CarlaNative.h \
  469. source/includes/CarlaNativePlugin.h \
  470. $(DESTDIR)$(INCLUDEDIR)/carla/includes
  471. # -------------------------------------------------------------------------------------------------------------
  472. ifeq ($(HAVE_PYQT),true)
  473. ifneq ($(CPPMODE),true)
  474. # Install script files (gui)
  475. install -m 755 \
  476. data/carla \
  477. data/carla-database \
  478. data/carla-jack-multi \
  479. data/carla-jack-single \
  480. data/carla-jack-patchbayplugin \
  481. data/carla-osc-gui \
  482. data/carla-patchbay \
  483. data/carla-rack \
  484. data/carla-settings \
  485. $(DESTDIR)$(BINDIR)
  486. # Adjust PREFIX value in script files (gui)
  487. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  488. $(DESTDIR)$(BINDIR)/carla \
  489. $(DESTDIR)$(BINDIR)/carla-database \
  490. $(DESTDIR)$(BINDIR)/carla-jack-multi \
  491. $(DESTDIR)$(BINDIR)/carla-jack-single \
  492. $(DESTDIR)$(BINDIR)/carla-jack-patchbayplugin \
  493. $(DESTDIR)$(BINDIR)/carla-osc-gui \
  494. $(DESTDIR)$(BINDIR)/carla-patchbay \
  495. $(DESTDIR)$(BINDIR)/carla-rack \
  496. $(DESTDIR)$(BINDIR)/carla-settings
  497. ifeq ($(HAVE_LIBLO),true)
  498. install -m 755 \
  499. data/carla-control \
  500. $(DESTDIR)$(BINDIR)
  501. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  502. $(DESTDIR)$(BINDIR)/carla-control
  503. endif
  504. # Install the real modgui bridge
  505. install -m 755 \
  506. data/carla-bridge-lv2-modgui \
  507. $(DESTDIR)$(LIBDIR)/carla
  508. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  509. $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
  510. # Install frontend
  511. install -m 644 \
  512. source/frontend/carla \
  513. source/frontend/carla-control \
  514. source/frontend/carla-jack-multi \
  515. source/frontend/carla-jack-single \
  516. source/frontend/carla-patchbay \
  517. source/frontend/carla-rack \
  518. source/frontend/*.py \
  519. $(DESTDIR)$(DATADIR)/carla/
  520. install -m 644 \
  521. source/frontend/modgui/*.py \
  522. $(DESTDIR)$(DATADIR)/carla/modgui/
  523. install -m 644 \
  524. source/frontend/patchcanvas/*.py \
  525. $(DESTDIR)$(DATADIR)/carla/patchcanvas/
  526. install -m 644 \
  527. source/frontend/widgets/*.py \
  528. $(DESTDIR)$(DATADIR)/carla/widgets/
  529. # Adjust LIBDIR and DATADIR value in python code
  530. sed $(SED_ARGS) 's?X_LIBDIR_X = None?X_LIBDIR_X = "$(LIBDIR)"?' \
  531. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  532. sed $(SED_ARGS) 's?X_DATADIR_X = None?X_DATADIR_X = "$(DATADIR)"?' \
  533. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  534. # Install resources (gui)
  535. install -m 755 \
  536. bin/resources/carla-plugin \
  537. bin/resources/carla-plugin-patchbay \
  538. bin/resources/*-ui \
  539. $(DESTDIR)$(DATADIR)/carla/resources
  540. endif # CPPMODE
  541. ifeq ($(HAVE_THEME),true)
  542. # Install theme
  543. install -m 644 \
  544. bin/styles/* \
  545. $(DESTDIR)$(LIBDIR)/carla/styles
  546. endif
  547. # Install desktop files
  548. install -m 644 data/desktop/carla.desktop $(DESTDIR)$(DATADIR)/applications
  549. install -m 644 data/desktop/carla-rack.desktop $(DESTDIR)$(DATADIR)/applications
  550. install -m 644 data/desktop/carla-patchbay.desktop $(DESTDIR)$(DATADIR)/applications
  551. install -m 644 data/desktop/carla-jack-single.desktop $(DESTDIR)$(DATADIR)/applications
  552. install -m 644 data/desktop/carla-jack-multi.desktop $(DESTDIR)$(DATADIR)/applications
  553. ifeq ($(HAVE_LIBLO),true)
  554. install -m 644 data/desktop/carla-control.desktop $(DESTDIR)$(DATADIR)/applications
  555. endif
  556. # Install mime package
  557. install -m 644 data/carla.xml $(DESTDIR)$(DATADIR)/mime/packages
  558. # Install icons, 16x16
  559. install -m 644 resources/16x16/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  560. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  561. # Install icons, 48x48
  562. install -m 644 resources/48x48/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  563. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  564. # Install icons, 128x128
  565. install -m 644 resources/128x128/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  566. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  567. # Install icons, 256x256
  568. install -m 644 resources/256x256/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  569. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  570. # Install icons, scalable
  571. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  572. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  573. # Install resources (re-use python files)
  574. $(LINK) ../modgui $(DESTDIR)$(DATADIR)/carla/resources
  575. $(LINK) ../patchcanvas $(DESTDIR)$(DATADIR)/carla/resources
  576. $(LINK) ../widgets $(DESTDIR)$(DATADIR)/carla/resources
  577. $(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources
  578. $(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources
  579. $(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources
  580. $(LINK) ../carla_control.py $(DESTDIR)$(DATADIR)/carla/resources
  581. $(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  582. $(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  583. $(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  584. $(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources
  585. $(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources
  586. $(LINK) ../carla_utils.py $(DESTDIR)$(DATADIR)/carla/resources
  587. $(LINK) ../carla_widgets.py $(DESTDIR)$(DATADIR)/carla/resources
  588. $(LINK) ../externalui.py $(DESTDIR)$(DATADIR)/carla/resources
  589. $(LINK) ../resources_rc.py $(DESTDIR)$(DATADIR)/carla/resources
  590. $(LINK) ../ui_carla_about.py $(DESTDIR)$(DATADIR)/carla/resources
  591. $(LINK) ../ui_carla_about_juce.py $(DESTDIR)$(DATADIR)/carla/resources
  592. $(LINK) ../ui_carla_add_jack.py $(DESTDIR)$(DATADIR)/carla/resources
  593. $(LINK) ../ui_carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  594. $(LINK) ../ui_carla_edit.py $(DESTDIR)$(DATADIR)/carla/resources
  595. $(LINK) ../ui_carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  596. $(LINK) ../ui_carla_parameter.py $(DESTDIR)$(DATADIR)/carla/resources
  597. $(LINK) ../ui_carla_plugin_calf.py $(DESTDIR)$(DATADIR)/carla/resources
  598. $(LINK) ../ui_carla_plugin_classic.py $(DESTDIR)$(DATADIR)/carla/resources
  599. $(LINK) ../ui_carla_plugin_compact.py $(DESTDIR)$(DATADIR)/carla/resources
  600. $(LINK) ../ui_carla_plugin_default.py $(DESTDIR)$(DATADIR)/carla/resources
  601. $(LINK) ../ui_carla_plugin_presets.py $(DESTDIR)$(DATADIR)/carla/resources
  602. $(LINK) ../ui_carla_refresh.py $(DESTDIR)$(DATADIR)/carla/resources
  603. $(LINK) ../ui_carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  604. $(LINK) ../ui_carla_settings_driver.py $(DESTDIR)$(DATADIR)/carla/resources
  605. $(LINK) ../ui_inputdialog_value.py $(DESTDIR)$(DATADIR)/carla/resources
  606. $(LINK) ../ui_midipattern.py $(DESTDIR)$(DATADIR)/carla/resources
  607. # Install translations
  608. $(foreach l,$(I18N_LANGUAGES),install -m 644 \
  609. source/frontend/translations/carla_$(l).qm \
  610. $(DESTDIR)$(DATADIR)/carla/resources/translations/;)
  611. endif # HAVE_PYQT
  612. # -------------------------------------------------------------------------------------------------------------
  613. # Install lv2 plugin
  614. install -d $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  615. install -m 644 \
  616. bin/carla.lv2/carla.* \
  617. bin/carla.lv2/*.ttl \
  618. $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  619. # Link binaries for lv2 plugin
  620. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  621. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/$$i; \
  622. done
  623. rm -f $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/libcarla_standalone2.*
  624. ifeq ($(LINUX),true)
  625. # Link jack app bridge
  626. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  627. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  628. endif
  629. ifeq ($(HAVE_PYQT),true)
  630. # Link resources for lv2 plugin
  631. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  632. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  633. # Link styles for lv2 plugin
  634. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  635. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  636. endif
  637. # -------------------------------------------------------------------------------------------------------------
  638. ifneq ($(HAIKU),true)
  639. ifeq ($(HAVE_PYQT),true)
  640. # Install vst plugin
  641. install -d $(DESTDIR)$(LIBDIR)/vst/carla.vst
  642. install -m 644 \
  643. bin/CarlaRack*.* \
  644. bin/CarlaPatchbay*.* \
  645. $(DESTDIR)$(LIBDIR)/vst/carla.vst
  646. # Link binaries for vst plugin
  647. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  648. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/vst/carla.vst/$$i; \
  649. done
  650. rm -f $(DESTDIR)$(LIBDIR)/vst/carla.vst/libcarla_standalone2.*
  651. # Link jack app bridge
  652. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  653. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  654. # Link resources for vst plugin
  655. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  656. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  657. # Link styles for vst plugin
  658. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  659. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  660. endif
  661. endif
  662. # -------------------------------------------------------------------------------------------------------------
  663. ifneq ($(HAVE_PYQT),true)
  664. # Remove gui files for non-gui build
  665. rm $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
  666. rm $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/carla-bridge-lv2-modgui
  667. endif
  668. # ---------------------------------------------------------------------------------------------------------------------
  669. ifneq ($(EXTERNAL_PLUGINS),true)
  670. install_external_plugins:
  671. endif
  672. install: install_main install_external_plugins
  673. # ---------------------------------------------------------------------------------------------------------------------
  674. uninstall:
  675. rm -f $(DESTDIR)$(BINDIR)/carla*
  676. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc
  677. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc
  678. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc
  679. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  680. rm -f $(DESTDIR)$(DATADIR)/applications/carla.desktop
  681. rm -f $(DESTDIR)$(DATADIR)/applications/carla-control.desktop
  682. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla.png
  683. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla-control.png
  684. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla.svg
  685. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla-control.svg
  686. rm -f $(DESTDIR)$(DATADIR)/mime/packages/carla.xml
  687. rm -rf $(DESTDIR)$(LIBDIR)/carla
  688. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  689. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla-native.lv2
  690. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst
  691. rm -rf $(DESTDIR)$(DATADIR)/carla
  692. rm -rf $(DESTDIR)$(INCLUDEDIR)/carla
  693. # ----------------------------------------------------------------------------------------------------------------------------
  694. ifneq ($(MAKE_TERMOUT),)
  695. ANS_NO=\033[31mNO\033[0m
  696. ANS_YES=\033[32mYES\033[0m
  697. mS=\033[33m[
  698. mZ=\033[30;1m[
  699. mE=]\033[0m
  700. tS=\033[36m
  701. tE=\033[0m
  702. else
  703. ANS_NO=NO
  704. ANS_YES=YES
  705. mS=[
  706. mZ=[
  707. mE=]
  708. endif
  709. features_print_main:
  710. @printf -- "$(tS)---> Main features $(tE)\n"
  711. ifeq ($(HAVE_PYQT),true)
  712. @printf -- "Front-End: $(ANS_YES)\n"
  713. @printf -- "LV2 plugin: $(ANS_YES)\n"
  714. ifneq ($(HAIKU),true)
  715. @printf -- "VST2 plugin: $(ANS_YES)\n"
  716. else
  717. @printf -- "VST2 plugin: $(ANS_NO) $(mZ)Not available for Haiku$(mE)\n"
  718. endif
  719. else
  720. @printf -- "Front-End: $(ANS_NO) $(mS)Missing PyQt$(mE)\n"
  721. @printf -- "LV2 plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
  722. @printf -- "VST2 plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
  723. endif
  724. ifeq ($(HAVE_HYLIA),true)
  725. @printf -- "Link support: $(ANS_YES)\n"
  726. else
  727. ifeq ($(MACOS_OLD),true)
  728. @printf -- "Link support: $(ANS_NO) $(mZ)MacOS >= 10.8 only$(mE)\n"
  729. else
  730. @printf -- "Link support: $(ANS_NO) $(mZ)Linux, MacOS and Windows only$(mE)\n"
  731. endif
  732. endif
  733. ifeq ($(HAVE_LIBLO),true)
  734. @printf -- "OSC support: $(ANS_YES)\n"
  735. else
  736. @printf -- "OSC support: $(ANS_NO) $(mS)Missing liblo$(mE)\n"
  737. endif
  738. ifeq ($(WIN32),true)
  739. @printf -- "Binary detect: $(ANS_YES)\n"
  740. else
  741. ifeq ($(HAVE_LIBMAGIC),true)
  742. @printf -- "Binary detect: $(ANS_YES)\n"
  743. else
  744. @printf -- "Binary detect: $(ANS_NO) $(mS)Missing libmagic/file$(mE)\n"
  745. endif
  746. endif
  747. @printf -- "\n"
  748. @printf -- "$(tS)---> Engine drivers $(tE)\n"
  749. @printf -- "JACK: $(ANS_YES)\n"
  750. ifeq ($(LINUX),true)
  751. ifeq ($(HAVE_ALSA),true)
  752. @printf -- "ALSA: $(ANS_YES)\n"
  753. else
  754. @printf -- "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)\n"
  755. endif
  756. else
  757. @printf -- "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)\n"
  758. endif
  759. ifeq ($(UNIX),true)
  760. ifneq ($(MACOS),true)
  761. ifeq ($(HAVE_PULSEAUDIO),true)
  762. @printf -- "PulseAudio: $(ANS_YES)\n"
  763. else
  764. @printf -- "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)\n"
  765. endif
  766. else
  767. @printf -- "PulseAudio: $(ANS_NO) $(mZ)Not available for MacOS$(mE)\n"
  768. endif
  769. else
  770. @printf -- "PulseAudio: $(ANS_NO) $(mZ)Only available for Unix systems$(mE)\n"
  771. endif
  772. ifeq ($(MACOS),true)
  773. @printf -- "CoreAudio: $(ANS_YES)\n"
  774. else
  775. @printf -- "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  776. endif
  777. ifeq ($(WIN32),true)
  778. @printf -- "ASIO: $(ANS_YES)\n"
  779. @printf -- "DirectSound: $(ANS_YES)\n"
  780. @printf -- "WASAPI: $(ANS_YES)\n"
  781. else
  782. @printf -- "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  783. @printf -- "DirectSound: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  784. @printf -- "WASAPI: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  785. endif
  786. @printf -- "\n"
  787. @printf -- "$(tS)---> Plugin formats: $(tE)\n"
  788. @printf -- "Internal: $(ANS_YES)\n"
  789. @printf -- "LADSPA: $(ANS_YES)\n"
  790. @printf -- "DSSI: $(ANS_YES)\n"
  791. @printf -- "LV2: $(ANS_YES)\n"
  792. ifeq ($(MACOS_OR_WIN32),true)
  793. ifeq ($(USING_JUCE),true)
  794. @printf -- "VST2: $(ANS_YES) (with UI, using JUCE)\n"
  795. @printf -- "VST3: $(ANS_YES) (with UI, using JUCE)\n"
  796. else # USING_JUCE
  797. @printf -- "VST2: $(ANS_YES) (with UI)\n"
  798. @printf -- "VST3: $(ANS_NO)\n"
  799. endif # USING_JUCE
  800. else # MACOS_OR_WIN32
  801. ifeq ($(HAIKU),true)
  802. @printf -- "VST2: $(ANS_YES) (without UI)\n"
  803. @printf -- "VST3: $(ANS_NO)\n"
  804. else # HAIKU
  805. ifeq ($(HAVE_X11),true)
  806. @printf -- "VST2: $(ANS_YES) (with UI)\n"
  807. ifeq ($(USING_JUCE),true)
  808. @printf -- "VST3: $(ANS_YES) (with UI, using JUCE)\n"
  809. else # USING_JUCE
  810. @printf -- "VST3: $(ANS_NO)\n"
  811. endif # USING_JUCE
  812. else # HAVE_X11
  813. @printf -- "VST2: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)\n"
  814. @printf -- "VST3: $(ANS_NO)\n"
  815. endif # HAVE_X11
  816. endif # HAIKU
  817. endif # MACOS_OR_WIN32
  818. ifeq ($(MACOS),true)
  819. ifeq ($(USING_JUCE),true)
  820. @printf -- "AU: $(ANS_YES) (with UI, using JUCE)\n"
  821. else # USING_JUCE
  822. @printf -- "AU: $(ANS_NO)\n"
  823. endif # USING_JUCE
  824. else # MACOS
  825. @printf -- "AU: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  826. endif # MACOS
  827. @printf -- "\n"
  828. @printf -- "$(tS)---> LV2 UI toolkit support: $(tE)\n"
  829. @printf -- "External: $(ANS_YES) (direct)\n"
  830. ifneq ($(MACOS_OR_WIN32),true)
  831. ifeq ($(HAVE_GTK2),true)
  832. @printf -- "Gtk2: $(ANS_YES) (bridge)\n"
  833. else
  834. @printf -- "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)\n"
  835. endif
  836. ifeq ($(HAVE_GTK3),true)
  837. @printf -- "Gtk3: $(ANS_YES) (bridge)\n"
  838. else
  839. @printf -- "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)\n"
  840. endif
  841. ifeq ($(HAVE_QT4),true)
  842. @printf -- "Qt4: $(ANS_YES) (bridge)\n"
  843. else
  844. @printf -- "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)\n"
  845. endif
  846. ifeq ($(HAVE_QT5),true)
  847. @printf -- "Qt5: $(ANS_YES) (bridge)\n"
  848. else
  849. @printf -- "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)\n"
  850. endif
  851. ifeq ($(HAVE_X11),true)
  852. @printf -- "X11: $(ANS_YES) (direct+bridge)\n"
  853. else
  854. @printf -- "X11: $(ANS_NO) $(mS)X11 missing$(mE)\n"
  855. endif
  856. else # LINUX
  857. @printf -- "Gtk2: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  858. @printf -- "Gtk3: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  859. @printf -- "Qt4: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  860. @printf -- "Qt5: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  861. @printf -- "X11: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  862. endif # LINUX
  863. ifeq ($(MACOS),true)
  864. @printf -- "Cocoa: $(ANS_YES) (direct+bridge)\n"
  865. else
  866. @printf -- "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  867. endif
  868. ifeq ($(WIN32),true)
  869. @printf -- "Windows: $(ANS_YES) (direct+bridge)\n"
  870. else
  871. @printf -- "Windows: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  872. endif
  873. @printf -- "\n"
  874. @printf -- "$(tS)---> File formats: $(tE)\n"
  875. ifeq ($(HAVE_SNDFILE),true)
  876. @printf -- "Basic: $(ANS_YES)\n"
  877. else
  878. @printf -- "Basic: $(ANS_NO) $(mS)libsndfile missing$(mE)\n"
  879. endif
  880. ifeq ($(HAVE_FFMPEG),true)
  881. @printf -- "Extra: $(ANS_YES)\n"
  882. else
  883. @printf -- "Extra: $(ANS_NO) $(mS)FFmpeg missing or too new$(mE)\n"
  884. endif
  885. # ifeq ($(HAVE_FLUIDSYNTH_INSTPATCH),true)
  886. # @printf -- "DLS: $(ANS_YES)\n"
  887. # else
  888. # @printf -- "DLS: $(ANS_NO) $(mS)FluidSynth/instpatch missing or too old$(mE)\n"
  889. # endif
  890. ifeq ($(HAVE_FLUIDSYNTH),true)
  891. @printf -- "SF2/3: $(ANS_YES)\n"
  892. else
  893. @printf -- "SF2/3: $(ANS_NO) $(mS)FluidSynth missing or too old$(mE)\n"
  894. endif
  895. @printf -- "SFZ: $(ANS_YES)\n"
  896. @printf -- "\n"
  897. @printf -- "$(tS)---> Internal plugins: $(tE)\n"
  898. @printf -- "Basic Plugins: $(ANS_YES)\n"
  899. @printf -- "Carla-Patchbay: $(ANS_YES)\n"
  900. @printf -- "Carla-Rack: $(ANS_YES)\n"
  901. ifeq ($(EXTERNAL_PLUGINS),true)
  902. @printf -- "External Plugins: $(ANS_YES)\n"
  903. else
  904. @printf -- "External Plugins: $(ANS_NO)\n"
  905. endif
  906. ifneq ($(EXTERNAL_PLUGINS),true)
  907. features_print_external_plugins:
  908. endif
  909. features: features_print_main features_print_external_plugins
  910. # ---------------------------------------------------------------------------------------------------------------------
  911. .FORCE:
  912. .PHONY: .FORCE
  913. # ---------------------------------------------------------------------------------------------------------------------