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

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