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