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

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