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

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