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

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