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