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

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
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951
  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/patchcanvas
  337. install -d $(DESTDIR)$(DATADIR)/carla/widgets
  338. endif
  339. # -------------------------------------------------------------------------------------------------------------
  340. # Install script files (non-gui)
  341. install -m 755 \
  342. data/carla-single \
  343. $(DESTDIR)$(BINDIR)
  344. # Adjust PREFIX value in script files (non-gui)
  345. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  346. $(DESTDIR)$(BINDIR)/carla-single
  347. # Install backend libs
  348. install -m 644 \
  349. bin/libcarla_*.* \
  350. $(DESTDIR)$(LIBDIR)/carla
  351. # Install other binaries
  352. install -m 755 \
  353. bin/*bridge-* \
  354. bin/carla-discovery-* \
  355. $(DESTDIR)$(LIBDIR)/carla
  356. ifeq ($(LINUX),true)
  357. ifeq ($(HAVE_JACK),true)
  358. ifeq ($(JACKBRIDGE_DIRECT),true)
  359. # Install internal jack client
  360. ln -sf \
  361. $(LIBDIR)/carla/libcarla_standalone2.so \
  362. $(DESTDIR)$(JACK_LIBDIR)/carla.so
  363. endif
  364. endif
  365. ifneq ($(JACKBRIDGE_DIRECT),true)
  366. # Install custom libjack
  367. install -m 755 \
  368. bin/jack/libjack.so.0 \
  369. $(DESTDIR)$(LIBDIR)/carla/jack
  370. endif
  371. endif
  372. # Install pkg-config files
  373. install -m 644 \
  374. data/*.pc \
  375. $(DESTDIR)$(LIBDIR)/pkgconfig
  376. # Adjust PREFIX, LIBDIR and INCLUDEDIR in pkg-config files
  377. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  378. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  379. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  380. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  381. sed $(SED_ARGS) 's?X-LIBDIR-X?$(LIBDIR)?' \
  382. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  383. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  384. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  385. sed $(SED_ARGS) 's?X-INCLUDEDIR-X?$(INCLUDEDIR)?' \
  386. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  387. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  388. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  389. # Install headers
  390. install -m 644 \
  391. source/backend/CarlaBackend.h \
  392. source/backend/CarlaHost.h \
  393. source/backend/CarlaUtils.h \
  394. source/backend/CarlaEngine.hpp \
  395. source/backend/CarlaPlugin.hpp \
  396. source/includes/CarlaNative.h \
  397. $(DESTDIR)$(INCLUDEDIR)/carla
  398. install -m 644 \
  399. source/includes/CarlaDefines.h \
  400. source/includes/CarlaMIDI.h \
  401. source/includes/CarlaNative.h \
  402. source/includes/CarlaNativePlugin.h \
  403. $(DESTDIR)$(INCLUDEDIR)/carla/includes
  404. # -------------------------------------------------------------------------------------------------------------
  405. ifeq ($(HAVE_PYQT),true)
  406. # Install script files (gui)
  407. install -m 755 \
  408. data/carla \
  409. data/carla-database \
  410. data/carla-jack-multi \
  411. data/carla-jack-single \
  412. data/carla-patchbay \
  413. data/carla-rack \
  414. data/carla-settings \
  415. $(DESTDIR)$(BINDIR)
  416. # Adjust PREFIX value in script files (gui)
  417. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  418. $(DESTDIR)$(BINDIR)/carla \
  419. $(DESTDIR)$(BINDIR)/carla-database \
  420. $(DESTDIR)$(BINDIR)/carla-jack-multi \
  421. $(DESTDIR)$(BINDIR)/carla-jack-single \
  422. $(DESTDIR)$(BINDIR)/carla-patchbay \
  423. $(DESTDIR)$(BINDIR)/carla-rack \
  424. $(DESTDIR)$(BINDIR)/carla-settings
  425. ifeq ($(HAVE_LIBLO),true)
  426. install -m 755 \
  427. data/carla-control \
  428. $(DESTDIR)$(BINDIR)
  429. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  430. $(DESTDIR)$(BINDIR)/carla-control
  431. endif
  432. # Install the real modgui bridge
  433. install -m 755 \
  434. data/carla-bridge-lv2-modgui \
  435. $(DESTDIR)$(LIBDIR)/carla
  436. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  437. $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
  438. # Install frontend
  439. install -m 644 \
  440. source/frontend/carla \
  441. source/frontend/carla-control \
  442. source/frontend/carla-jack-multi \
  443. source/frontend/carla-jack-single \
  444. source/frontend/carla-patchbay \
  445. source/frontend/carla-rack \
  446. source/frontend/*.py \
  447. $(DESTDIR)$(DATADIR)/carla/
  448. install -m 644 \
  449. source/frontend/patchcanvas/*.py \
  450. $(DESTDIR)$(DATADIR)/carla/patchcanvas/
  451. install -m 644 \
  452. source/frontend/widgets/*.py \
  453. $(DESTDIR)$(DATADIR)/carla/widgets/
  454. # Adjust LIBDIR and DATADIR value in python code
  455. sed $(SED_ARGS) 's?X_LIBDIR_X = None?X_LIBDIR_X = "$(LIBDIR)"?' \
  456. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  457. sed $(SED_ARGS) 's?X_DATADIR_X = None?X_DATADIR_X = "$(DATADIR)"?' \
  458. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  459. # Install resources (gui)
  460. install -m 755 \
  461. bin/resources/carla-plugin \
  462. bin/resources/carla-plugin-patchbay \
  463. bin/resources/*-ui \
  464. $(DESTDIR)$(DATADIR)/carla/resources
  465. ifeq ($(HAVE_THEME),true)
  466. # Install theme
  467. install -m 644 \
  468. bin/styles/* \
  469. $(DESTDIR)$(LIBDIR)/carla/styles
  470. endif
  471. # Install desktop files
  472. install -m 644 data/carla.desktop $(DESTDIR)$(DATADIR)/applications
  473. ifeq ($(HAVE_LIBLO),true)
  474. install -m 644 data/carla-control.desktop $(DESTDIR)$(DATADIR)/applications
  475. endif
  476. # Install mime package
  477. install -m 644 data/carla.xml $(DESTDIR)$(DATADIR)/mime/packages
  478. # Install icons, 16x16
  479. install -m 644 resources/16x16/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  480. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  481. # Install icons, 48x48
  482. install -m 644 resources/48x48/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  483. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  484. # Install icons, 128x128
  485. install -m 644 resources/128x128/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  486. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  487. # Install icons, 256x256
  488. install -m 644 resources/256x256/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  489. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  490. # Install icons, scalable
  491. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  492. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  493. # Install resources (re-use python files)
  494. $(LINK) ../modgui $(DESTDIR)$(DATADIR)/carla/resources
  495. $(LINK) ../patchcanvas $(DESTDIR)$(DATADIR)/carla/resources
  496. $(LINK) ../widgets $(DESTDIR)$(DATADIR)/carla/resources
  497. $(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources
  498. $(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources
  499. $(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources
  500. $(LINK) ../carla_control.py $(DESTDIR)$(DATADIR)/carla/resources
  501. $(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  502. $(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  503. $(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  504. $(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources
  505. $(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources
  506. $(LINK) ../carla_utils.py $(DESTDIR)$(DATADIR)/carla/resources
  507. $(LINK) ../carla_widgets.py $(DESTDIR)$(DATADIR)/carla/resources
  508. $(LINK) ../externalui.py $(DESTDIR)$(DATADIR)/carla/resources
  509. $(LINK) ../resources_rc.py $(DESTDIR)$(DATADIR)/carla/resources
  510. $(LINK) ../ui_carla_about.py $(DESTDIR)$(DATADIR)/carla/resources
  511. $(LINK) ../ui_carla_about_juce.py $(DESTDIR)$(DATADIR)/carla/resources
  512. $(LINK) ../ui_carla_add_jack.py $(DESTDIR)$(DATADIR)/carla/resources
  513. $(LINK) ../ui_carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  514. $(LINK) ../ui_carla_edit.py $(DESTDIR)$(DATADIR)/carla/resources
  515. $(LINK) ../ui_carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  516. $(LINK) ../ui_carla_parameter.py $(DESTDIR)$(DATADIR)/carla/resources
  517. $(LINK) ../ui_carla_plugin_calf.py $(DESTDIR)$(DATADIR)/carla/resources
  518. $(LINK) ../ui_carla_plugin_classic.py $(DESTDIR)$(DATADIR)/carla/resources
  519. $(LINK) ../ui_carla_plugin_compact.py $(DESTDIR)$(DATADIR)/carla/resources
  520. $(LINK) ../ui_carla_plugin_default.py $(DESTDIR)$(DATADIR)/carla/resources
  521. $(LINK) ../ui_carla_plugin_presets.py $(DESTDIR)$(DATADIR)/carla/resources
  522. $(LINK) ../ui_carla_refresh.py $(DESTDIR)$(DATADIR)/carla/resources
  523. $(LINK) ../ui_carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  524. $(LINK) ../ui_carla_settings_driver.py $(DESTDIR)$(DATADIR)/carla/resources
  525. $(LINK) ../ui_inputdialog_value.py $(DESTDIR)$(DATADIR)/carla/resources
  526. $(LINK) ../ui_midipattern.py $(DESTDIR)$(DATADIR)/carla/resources
  527. endif # HAVE_PYQT
  528. # -------------------------------------------------------------------------------------------------------------
  529. # Install lv2 plugin
  530. install -d $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  531. install -m 644 \
  532. bin/carla.lv2/carla.* \
  533. bin/carla.lv2/*.ttl \
  534. $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  535. # Link binaries for lv2 plugin
  536. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  537. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/$$i; \
  538. done
  539. rm -f $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/libcarla_standalone2.*
  540. ifeq ($(LINUX),true)
  541. # Link jack app bridge
  542. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  543. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  544. endif
  545. ifeq ($(HAVE_PYQT),true)
  546. # Link resources for lv2 plugin
  547. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  548. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  549. # Link styles for lv2 plugin
  550. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  551. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  552. endif
  553. # -------------------------------------------------------------------------------------------------------------
  554. ifneq ($(HAIKU),true)
  555. ifeq ($(HAVE_PYQT),true)
  556. # Install vst plugin
  557. install -d $(DESTDIR)$(LIBDIR)/vst/carla.vst
  558. install -m 644 \
  559. bin/CarlaRack*.* \
  560. bin/CarlaPatchbay*.* \
  561. $(DESTDIR)$(LIBDIR)/vst/carla.vst
  562. # Link binaries for vst plugin
  563. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  564. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/vst/carla.vst/$$i; \
  565. done
  566. rm -f $(DESTDIR)$(LIBDIR)/vst/carla.vst/libcarla_standalone2.*
  567. # Link jack app bridge
  568. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  569. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  570. # Link resources for vst plugin
  571. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  572. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  573. # Link styles for vst plugin
  574. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  575. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  576. endif
  577. endif
  578. # -------------------------------------------------------------------------------------------------------------
  579. ifneq ($(HAVE_PYQT),true)
  580. # Remove gui files for non-gui build
  581. rm $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
  582. rm $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/carla-bridge-lv2-modgui
  583. endif
  584. # ---------------------------------------------------------------------------------------------------------------------
  585. ifneq ($(EXTERNAL_PLUGINS),true)
  586. install_external_plugins:
  587. endif
  588. install: install_main install_external_plugins
  589. # ---------------------------------------------------------------------------------------------------------------------
  590. uninstall:
  591. rm -f $(DESTDIR)$(BINDIR)/carla*
  592. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc
  593. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc
  594. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  595. rm -f $(DESTDIR)$(DATADIR)/applications/carla.desktop
  596. rm -f $(DESTDIR)$(DATADIR)/applications/carla-control.desktop
  597. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla.png
  598. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla-control.png
  599. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla.svg
  600. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla-control.svg
  601. rm -f $(DESTDIR)$(DATADIR)/mime/packages/carla.xml
  602. rm -rf $(DESTDIR)$(LIBDIR)/carla
  603. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  604. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla-native.lv2
  605. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst
  606. rm -rf $(DESTDIR)$(DATADIR)/carla
  607. rm -rf $(DESTDIR)$(INCLUDEDIR)/carla
  608. # ----------------------------------------------------------------------------------------------------------------------------
  609. ifneq ($(MAKE_TERMOUT),)
  610. ANS_NO=\033[31mNO\033[0m
  611. ANS_YES=\033[32mYES\033[0m
  612. mS=\033[33m[
  613. mZ=\033[30;1m[
  614. mE=]\033[0m
  615. tS=\033[36m
  616. tE=\033[0m
  617. else
  618. ANS_NO=NO
  619. ANS_YES=YES
  620. mS=[
  621. mZ=[
  622. mE=]
  623. endif
  624. features_print_main:
  625. @printf -- "$(tS)---> Main features $(tE)\n"
  626. ifeq ($(HAVE_PYQT),true)
  627. @printf -- "Front-End: $(ANS_YES)\n"
  628. @printf -- "LV2 plugin: $(ANS_YES)\n"
  629. ifneq ($(HAIKU),true)
  630. @printf -- "VST plugin: $(ANS_YES)\n"
  631. else
  632. @printf -- "VST plugin: $(ANS_NO) $(mZ)Not available for Haiku$(mE)\n"
  633. endif
  634. else
  635. @printf -- "Front-End: $(ANS_NO) $(mS)Missing PyQt$(mE)\n"
  636. @printf -- "LV2 plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
  637. @printf -- "VST plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
  638. endif
  639. ifeq ($(HAVE_HYLIA),true)
  640. @printf -- "Link support: $(ANS_YES)\n"
  641. else
  642. ifeq ($(MACOS_OLD),true)
  643. @printf -- "Link support: $(ANS_NO) $(mZ)MacOS >= 10.10 only$(mE)\n"
  644. else
  645. @printf -- "Link support: $(ANS_NO) $(mZ)Linux, MacOS and Windows only$(mE)\n"
  646. endif
  647. endif
  648. ifeq ($(HAVE_LIBLO),true)
  649. @printf -- "OSC support: $(ANS_YES)\n"
  650. else
  651. @printf -- "OSC support: $(ANS_NO) $(mS)Missing liblo$(mE)\n"
  652. endif
  653. ifeq ($(WIN32),true)
  654. @printf -- "Binary detect: $(ANS_YES)\n"
  655. else
  656. ifeq ($(HAVE_LIBMAGIC),true)
  657. @printf -- "Binary detect: $(ANS_YES)\n"
  658. else
  659. @printf -- "Binary detect: $(ANS_NO) $(mS)Missing libmagic/file$(mE)\n"
  660. endif
  661. endif
  662. @printf -- "\n"
  663. @printf -- "$(tS)---> Engine drivers $(tE)\n"
  664. @printf -- "JACK: $(ANS_YES)\n"
  665. ifeq ($(LINUX),true)
  666. ifeq ($(HAVE_ALSA),true)
  667. @printf -- "ALSA: $(ANS_YES)\n"
  668. else
  669. @printf -- "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)\n"
  670. endif
  671. else
  672. @printf -- "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)\n"
  673. endif
  674. ifeq ($(UNIX),true)
  675. ifneq ($(MACOS),true)
  676. ifeq ($(HAVE_PULSEAUDIO),true)
  677. @printf -- "PulseAudio: $(ANS_YES)\n"
  678. else
  679. @printf -- "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)\n"
  680. endif
  681. else
  682. @printf -- "PulseAudio: $(ANS_NO) $(mZ)Not available for MacOS$(mE)\n"
  683. endif
  684. else
  685. @printf -- "PulseAudio: $(ANS_NO) $(mZ)Only available for Unix systems$(mE)\n"
  686. endif
  687. ifeq ($(MACOS),true)
  688. @printf -- "CoreAudio: $(ANS_YES)\n"
  689. else
  690. @printf -- "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  691. endif
  692. ifeq ($(WIN32),true)
  693. @printf -- "ASIO: $(ANS_YES)\n"
  694. @printf -- "DirectSound: $(ANS_YES)\n"
  695. @printf -- "WASAPI: $(ANS_YES)\n"
  696. else
  697. @printf -- "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  698. @printf -- "DirectSound: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  699. @printf -- "WASAPI: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  700. endif
  701. @printf -- "\n"
  702. @printf -- "$(tS)---> Plugin formats: $(tE)\n"
  703. @printf -- "Internal: $(ANS_YES)\n"
  704. @printf -- "LADSPA: $(ANS_YES)\n"
  705. @printf -- "DSSI: $(ANS_YES)\n"
  706. @printf -- "LV2: $(ANS_YES)\n"
  707. ifeq ($(MACOS_OR_WIN32),true)
  708. @printf -- "VST: $(ANS_YES) (with UI)\n"
  709. else
  710. ifeq ($(HAIKU),true)
  711. @printf -- "VST: $(ANS_YES) (without UI)\n"
  712. else
  713. ifeq ($(HAVE_X11),true)
  714. @printf -- "VST: $(ANS_YES) (with UI)\n"
  715. else
  716. @printf -- "VST: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)\n"
  717. endif
  718. endif
  719. endif
  720. @printf -- "\n"
  721. @printf -- "$(tS)---> LV2 UI toolkit support: $(tE)\n"
  722. @printf -- "External: $(ANS_YES) (direct)\n"
  723. ifneq ($(MACOS_OR_WIN32),true)
  724. ifeq ($(HAVE_GTK2),true)
  725. @printf -- "Gtk2: $(ANS_YES) (bridge)\n"
  726. else
  727. @printf -- "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)\n"
  728. endif
  729. ifeq ($(HAVE_GTK3),true)
  730. @printf -- "Gtk3: $(ANS_YES) (bridge)\n"
  731. else
  732. @printf -- "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)\n"
  733. endif
  734. ifeq ($(HAVE_QT4),true)
  735. @printf -- "Qt4: $(ANS_YES) (bridge)\n"
  736. else
  737. @printf -- "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)\n"
  738. endif
  739. ifeq ($(HAVE_QT5),true)
  740. @printf -- "Qt5: $(ANS_YES) (bridge)\n"
  741. else
  742. @printf -- "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)\n"
  743. endif
  744. ifeq ($(HAVE_X11),true)
  745. @printf -- "X11: $(ANS_YES) (direct+bridge)\n"
  746. else
  747. @printf -- "X11: $(ANS_NO) $(mS)X11 missing$(mE)\n"
  748. endif
  749. else # LINUX
  750. @printf -- "Gtk2: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  751. @printf -- "Gtk3: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  752. @printf -- "Qt4: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  753. @printf -- "Qt5: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  754. @printf -- "X11: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  755. endif # LINUX
  756. ifeq ($(MACOS),true)
  757. @printf -- "Cocoa: $(ANS_YES) (direct+bridge)\n"
  758. else
  759. @printf -- "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  760. endif
  761. ifeq ($(WIN32),true)
  762. @printf -- "Windows: $(ANS_YES) (direct+bridge)\n"
  763. else
  764. @printf -- "Windows: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  765. endif
  766. @printf -- "\n"
  767. @printf -- "$(tS)---> File formats: $(tE)\n"
  768. ifeq ($(HAVE_SNDFILE),true)
  769. @printf -- "Basic: $(ANS_YES)\n"
  770. else
  771. @printf -- "Basic: $(ANS_NO) $(mS)libsndfile missing$(mE)\n"
  772. endif
  773. ifeq ($(HAVE_FFMPEG),true)
  774. @printf -- "Extra: $(ANS_YES)\n"
  775. else
  776. @printf -- "Extra: $(ANS_NO) $(mS)FFmpeg missing or too new$(mE)\n"
  777. endif
  778. ifeq ($(HAVE_FLUIDSYNTH),true)
  779. @printf -- "SF2/3: $(ANS_YES)\n"
  780. else
  781. @printf -- "SF2/3: $(ANS_NO) $(mS)FluidSynth missing or too old$(mE)\n"
  782. endif
  783. @printf -- "SFZ: $(ANS_YES)\n"
  784. @printf -- "\n"
  785. @printf -- "$(tS)---> Internal plugins: $(tE)\n"
  786. @printf -- "Basic Plugins: $(ANS_YES)\n"
  787. @printf -- "Carla-Patchbay: $(ANS_YES)\n"
  788. @printf -- "Carla-Rack: $(ANS_YES)\n"
  789. ifeq ($(EXTERNAL_PLUGINS),true)
  790. @printf -- "External Plugins: $(ANS_YES)\n"
  791. else
  792. @printf -- "External Plugins: $(ANS_NO)\n"
  793. endif
  794. ifneq ($(EXTERNAL_PLUGINS),true)
  795. features_print_external_plugins:
  796. endif
  797. features: features_print_main features_print_external_plugins
  798. # ---------------------------------------------------------------------------------------------------------------------
  799. .FORCE:
  800. .PHONY: .FORCE
  801. # ---------------------------------------------------------------------------------------------------------------------