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

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
6 years ago
11 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801
  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)/audio_decoder.a
  30. ALL_LIBS += $(MODULEDIR)/lilv.a
  31. ALL_LIBS += $(MODULEDIR)/rtmempool.a
  32. ALL_LIBS += $(MODULEDIR)/sfzero.a
  33. ALL_LIBS += $(MODULEDIR)/water.a
  34. ifeq ($(HAVE_DGL),true)
  35. ALL_LIBS += $(MODULEDIR)/dgl.a
  36. endif
  37. ifeq ($(HAVE_HYLIA),true)
  38. ALL_LIBS += $(MODULEDIR)/hylia.a
  39. endif
  40. ALL_LIBS += $(MODULEDIR)/rtaudio.a
  41. ALL_LIBS += $(MODULEDIR)/rtmidi.a
  42. ifeq ($(HAVE_QT4),true)
  43. ALL_LIBS += $(MODULEDIR)/theme.qt4.a
  44. endif
  45. ifeq ($(HAVE_QT5),true)
  46. ALL_LIBS += $(MODULEDIR)/theme.qt5.a
  47. endif
  48. libs: $(ALL_LIBS)
  49. $(MODULEDIR)/carla_engine.a: .FORCE
  50. @$(MAKE) -C source/backend/engine
  51. $(MODULEDIR)/carla_engine_plugin.a: $(MODULEDIR)/carla_engine.a
  52. @$(MAKE) -C source/backend/engine
  53. $(MODULEDIR)/carla_plugin.a: .FORCE
  54. @$(MAKE) -C source/backend/plugin
  55. $(MODULEDIR)/jackbridge.a: .FORCE
  56. @$(MAKE) -C source/jackbridge
  57. $(MODULEDIR)/jackbridge.%.a: .FORCE
  58. @$(MAKE) -C source/jackbridge $*
  59. $(MODULEDIR)/native-plugins.a: .FORCE
  60. @$(MAKE) -C source/native-plugins
  61. $(MODULEDIR)/theme.qt4.a: .FORCE
  62. @$(MAKE) -C source/theme qt4
  63. $(MODULEDIR)/theme.qt5.a: .FORCE
  64. @$(MAKE) -C source/theme qt5
  65. $(MODULEDIR)/%.posix32.a: .FORCE
  66. ifneq ($(WIN32),true)
  67. @$(MAKE) -C source/modules/$* posix32
  68. else
  69. $(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
  70. endif
  71. $(MODULEDIR)/%.posix64.a: .FORCE
  72. ifneq ($(WIN32),true)
  73. @$(MAKE) -C source/modules/$* posix64
  74. else
  75. $(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
  76. endif
  77. $(MODULEDIR)/%.win32.a: .FORCE
  78. ifeq ($(WIN32),true)
  79. @$(MAKE) -C source/modules/$* win32
  80. else
  81. $(error Trying to build Windows binaries with a regular toolchain, this cannot work)
  82. endif
  83. $(MODULEDIR)/%.win64.a: .FORCE
  84. ifeq ($(WIN32),true)
  85. @$(MAKE) -C source/modules/$* win64
  86. else
  87. $(error Trying to build Windows binaries with a regular toolchain, this cannot work)
  88. endif
  89. $(MODULEDIR)/%.a: .FORCE
  90. @$(MAKE) -C source/modules/$*
  91. # ---------------------------------------------------------------------------------------------------------------------
  92. backend: libs
  93. @$(MAKE) -C source/backend
  94. bridges-plugin: libs
  95. @$(MAKE) -C source/bridges-plugin
  96. bridges-ui: libs
  97. @$(MAKE) -C source/bridges-ui
  98. discovery: libs
  99. @$(MAKE) -C source/discovery
  100. frontend:
  101. ifeq ($(HAVE_PYQT),true)
  102. @$(MAKE) -C source/frontend
  103. endif
  104. interposer:
  105. ifeq ($(LINUX),true)
  106. @$(MAKE) -C source/interposer
  107. endif
  108. libjack: libs
  109. @$(MAKE) -C source/libjack
  110. plugin: backend bridges-plugin bridges-ui discovery
  111. @$(MAKE) -C source/plugin
  112. rest: libs
  113. @$(MAKE) -C source/rest
  114. theme: libs
  115. @$(MAKE) -C source/theme
  116. # ---------------------------------------------------------------------------------------------------------------------
  117. # Binaries (posix32)
  118. LIBS_POSIX32 = $(MODULEDIR)/jackbridge.posix32.a
  119. LIBS_POSIX32 += $(MODULEDIR)/lilv.posix32.a
  120. LIBS_POSIX32 += $(MODULEDIR)/rtmempool.posix32.a
  121. LIBS_POSIX32 += $(MODULEDIR)/water.posix32.a
  122. posix32: $(LIBS_POSIX32)
  123. $(MAKE) -C source/bridges-plugin posix32
  124. $(MAKE) -C source/discovery posix32
  125. # ---------------------------------------------------------------------------------------------------------------------
  126. # Binaries (posix64)
  127. LIBS_POSIX64 = $(MODULEDIR)/jackbridge.posix64.a
  128. LIBS_POSIX64 += $(MODULEDIR)/lilv.posix64.a
  129. LIBS_POSIX64 += $(MODULEDIR)/rtmempool.posix64.a
  130. LIBS_POSIX64 += $(MODULEDIR)/water.posix64.a
  131. posix64: $(LIBS_POSIX64)
  132. $(MAKE) -C source/bridges-plugin posix64
  133. $(MAKE) -C source/discovery posix64
  134. # ---------------------------------------------------------------------------------------------------------------------
  135. # Binaries (win32)
  136. ifeq ($(BUILDING_FOR_WINDOWS),true)
  137. LIBS_WIN32 = $(MODULEDIR)/jackbridge.win32.a
  138. else
  139. LIBS_WIN32 = $(MODULEDIR)/jackbridge.win32e.a
  140. endif
  141. LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a
  142. LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a
  143. LIBS_WIN32 += $(MODULEDIR)/water.win32.a
  144. win32: $(LIBS_WIN32)
  145. $(MAKE) -C source/bridges-plugin win32
  146. $(MAKE) -C source/discovery win32
  147. # ---------------------------------------------------------------------------------------------------------------------
  148. # Binaries (win64)
  149. ifeq ($(BUILDING_FOR_WINDOWS),true)
  150. LIBS_WIN64 = $(MODULEDIR)/jackbridge.win64.a
  151. else
  152. LIBS_WIN64 = $(MODULEDIR)/jackbridge.win64e.a
  153. endif
  154. LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a
  155. LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a
  156. LIBS_WIN64 += $(MODULEDIR)/water.win64.a
  157. win64: $(LIBS_WIN64)
  158. $(MAKE) -C source/bridges-plugin win64
  159. $(MAKE) -C source/discovery win64
  160. # ---------------------------------------------------------------------------------------------------------------------
  161. # Binaries (wine)
  162. wine32:
  163. $(MAKE) -C source/jackbridge wine32
  164. cp -f $(MODULEDIR)/jackbridge-wine32.dll.so $(CURDIR)/bin/jackbridge-wine32.dll
  165. wine64:
  166. $(MAKE) -C source/jackbridge wine64
  167. cp -f $(MODULEDIR)/jackbridge-wine64.dll.so $(CURDIR)/bin/jackbridge-wine64.dll
  168. # ---------------------------------------------------------------------------------------------------------------------
  169. clean:
  170. $(MAKE) clean -C source/backend
  171. $(MAKE) clean -C source/bridges-plugin
  172. $(MAKE) clean -C source/bridges-ui
  173. $(MAKE) clean -C source/discovery
  174. $(MAKE) clean -C source/frontend
  175. $(MAKE) clean -C source/interposer
  176. $(MAKE) clean -C source/libjack
  177. $(MAKE) clean -C source/modules
  178. $(MAKE) clean -C source/native-plugins
  179. $(MAKE) clean -C source/plugin
  180. $(MAKE) clean -C source/theme
  181. rm -f *~ source/*~
  182. distclean: clean
  183. rm -f bin/*.exe bin/*.dll bin/*.dylib bin/*.so
  184. rm -rf build build-lv2
  185. debug:
  186. $(MAKE) DEBUG=true
  187. doxygen:
  188. $(MAKE) doxygen -C source/backend
  189. stoat:
  190. stoat --recursive ./build/ --suppression ./data/stoat-supression.txt --whitelist ./data/stoat-whitelist.txt --graph-view ./data/stoat-callgraph.png
  191. # stoat --recursive ./build/ \
  192. # --suppression ./data/stoat-supression.txt \
  193. # --whitelist ./data/stoat-whitelist.txt \
  194. # --graph-view ./data/stoat-callgraph.png
  195. # ---------------------------------------------------------------------------------------------------------------------
  196. install_main:
  197. # Create directories
  198. install -d $(DESTDIR)$(BINDIR)
  199. ifeq ($(LINUX),true)
  200. install -d $(DESTDIR)$(LIBDIR)/carla/jack
  201. else
  202. install -d $(DESTDIR)$(LIBDIR)/carla
  203. endif
  204. install -d $(DESTDIR)$(LIBDIR)/pkgconfig
  205. install -d $(DESTDIR)$(INCLUDEDIR)/carla/includes
  206. ifeq ($(HAVE_PYQT),true)
  207. # Create directories (gui)
  208. install -d $(DESTDIR)$(LIBDIR)/carla/styles
  209. install -d $(DESTDIR)$(DATADIR)/applications
  210. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  211. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  212. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  213. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  214. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  215. install -d $(DESTDIR)$(DATADIR)/mime/packages
  216. install -d $(DESTDIR)$(DATADIR)/carla/resources
  217. install -d $(DESTDIR)$(DATADIR)/carla/widgets
  218. endif
  219. # -------------------------------------------------------------------------------------------------------------
  220. # Install script files (non-gui)
  221. install -m 755 \
  222. data/carla-single \
  223. $(DESTDIR)$(BINDIR)
  224. # Adjust PREFIX value in script files (non-gui)
  225. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  226. $(DESTDIR)$(BINDIR)/carla-single
  227. # Install backend libs
  228. install -m 644 \
  229. bin/libcarla_*.* \
  230. $(DESTDIR)$(LIBDIR)/carla
  231. # Install other binaries
  232. install -m 755 \
  233. bin/*bridge-* \
  234. bin/carla-discovery-* \
  235. $(DESTDIR)$(LIBDIR)/carla
  236. ifeq ($(LINUX),true)
  237. # Install libjack
  238. install -m 755 \
  239. bin/jack/libjack.so.0 \
  240. $(DESTDIR)$(LIBDIR)/carla/jack
  241. endif
  242. # Install pkg-config files
  243. install -m 644 \
  244. data/*.pc \
  245. $(DESTDIR)$(LIBDIR)/pkgconfig
  246. # Adjust PREFIX, LIBDIR and INCLUDEDIR in pkg-config files
  247. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  248. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  249. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  250. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  251. sed $(SED_ARGS) 's?X-LIBDIR-X?$(LIBDIR)?' \
  252. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  253. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  254. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  255. sed $(SED_ARGS) 's?X-INCLUDEDIR-X?$(INCLUDEDIR)?' \
  256. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  257. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  258. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  259. # Install headers
  260. install -m 644 \
  261. source/backend/CarlaBackend.h \
  262. source/backend/CarlaHost.h \
  263. source/backend/CarlaUtils.h \
  264. source/backend/CarlaEngine.hpp \
  265. source/backend/CarlaPlugin.hpp \
  266. source/includes/CarlaNative.h \
  267. $(DESTDIR)$(INCLUDEDIR)/carla
  268. install -m 644 \
  269. source/includes/CarlaDefines.h \
  270. source/includes/CarlaMIDI.h \
  271. source/includes/CarlaNative.h \
  272. source/includes/CarlaNativePlugin.h \
  273. $(DESTDIR)$(INCLUDEDIR)/carla/includes
  274. # -------------------------------------------------------------------------------------------------------------
  275. ifeq ($(HAVE_PYQT),true)
  276. # Install script files (gui)
  277. install -m 755 \
  278. data/carla \
  279. data/carla-database \
  280. data/carla-jack-multi \
  281. data/carla-jack-single \
  282. data/carla-patchbay \
  283. data/carla-rack \
  284. data/carla-settings \
  285. $(DESTDIR)$(BINDIR)
  286. # Adjust PREFIX value in script files (gui)
  287. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  288. $(DESTDIR)$(BINDIR)/carla \
  289. $(DESTDIR)$(BINDIR)/carla-database \
  290. $(DESTDIR)$(BINDIR)/carla-jack-multi \
  291. $(DESTDIR)$(BINDIR)/carla-jack-single \
  292. $(DESTDIR)$(BINDIR)/carla-patchbay \
  293. $(DESTDIR)$(BINDIR)/carla-rack \
  294. $(DESTDIR)$(BINDIR)/carla-settings
  295. ifeq ($(HAVE_LIBLO),true)
  296. install -m 755 \
  297. data/carla-control \
  298. $(DESTDIR)$(BINDIR)
  299. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  300. $(DESTDIR)$(BINDIR)/carla-control
  301. endif
  302. # Install frontend
  303. install -m 644 \
  304. source/frontend/carla \
  305. source/frontend/carla-control \
  306. source/frontend/carla-jack-multi \
  307. source/frontend/carla-jack-single \
  308. source/frontend/carla-patchbay \
  309. source/frontend/carla-rack \
  310. source/frontend/*.py \
  311. $(DESTDIR)$(DATADIR)/carla/
  312. install -m 644 \
  313. source/frontend/widgets/*.py \
  314. $(DESTDIR)$(DATADIR)/carla/widgets/
  315. # Adjust LIBDIR and DATADIR value in python code
  316. sed $(SED_ARGS) 's?X_LIBDIR_X = None?X_LIBDIR_X = "$(LIBDIR)"?' \
  317. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  318. sed $(SED_ARGS) 's?X_DATADIR_X = None?X_DATADIR_X = "$(DATADIR)"?' \
  319. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  320. # Install resources (gui)
  321. install -m 755 \
  322. bin/resources/carla-plugin \
  323. bin/resources/carla-plugin-patchbay \
  324. bin/resources/*-ui \
  325. $(DESTDIR)$(DATADIR)/carla/resources
  326. ifeq ($(HAVE_THEME),true)
  327. # Install theme
  328. install -m 644 \
  329. bin/styles/* \
  330. $(DESTDIR)$(LIBDIR)/carla/styles
  331. endif
  332. # Install desktop files
  333. install -m 644 data/carla.desktop $(DESTDIR)$(DATADIR)/applications
  334. ifeq ($(HAVE_LIBLO),true)
  335. install -m 644 data/carla-control.desktop $(DESTDIR)$(DATADIR)/applications
  336. endif
  337. # Install mime package
  338. install -m 644 data/carla.xml $(DESTDIR)$(DATADIR)/mime/packages
  339. # Install icons, 16x16
  340. install -m 644 resources/16x16/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  341. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  342. # Install icons, 48x48
  343. install -m 644 resources/48x48/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  344. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  345. # Install icons, 128x128
  346. install -m 644 resources/128x128/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  347. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  348. # Install icons, 256x256
  349. install -m 644 resources/256x256/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  350. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  351. # Install icons, scalable
  352. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  353. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  354. # Install resources (re-use python files)
  355. $(LINK) ../widgets $(DESTDIR)$(DATADIR)/carla/resources
  356. $(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources
  357. $(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources
  358. $(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources
  359. $(LINK) ../carla_config.py $(DESTDIR)$(DATADIR)/carla/resources
  360. $(LINK) ../carla_control.py $(DESTDIR)$(DATADIR)/carla/resources
  361. $(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  362. $(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  363. $(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  364. $(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources
  365. $(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources
  366. $(LINK) ../carla_utils.py $(DESTDIR)$(DATADIR)/carla/resources
  367. $(LINK) ../carla_widgets.py $(DESTDIR)$(DATADIR)/carla/resources
  368. $(LINK) ../externalui.py $(DESTDIR)$(DATADIR)/carla/resources
  369. $(LINK) ../patchcanvas.py $(DESTDIR)$(DATADIR)/carla/resources
  370. $(LINK) ../patchcanvas_theme.py $(DESTDIR)$(DATADIR)/carla/resources
  371. $(LINK) ../resources_rc.py $(DESTDIR)$(DATADIR)/carla/resources
  372. $(LINK) ../ui_carla_about.py $(DESTDIR)$(DATADIR)/carla/resources
  373. $(LINK) ../ui_carla_add_jack.py $(DESTDIR)$(DATADIR)/carla/resources
  374. $(LINK) ../ui_carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  375. $(LINK) ../ui_carla_edit.py $(DESTDIR)$(DATADIR)/carla/resources
  376. $(LINK) ../ui_carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  377. $(LINK) ../ui_carla_parameter.py $(DESTDIR)$(DATADIR)/carla/resources
  378. $(LINK) ../ui_carla_plugin_calf.py $(DESTDIR)$(DATADIR)/carla/resources
  379. $(LINK) ../ui_carla_plugin_classic.py $(DESTDIR)$(DATADIR)/carla/resources
  380. $(LINK) ../ui_carla_plugin_compact.py $(DESTDIR)$(DATADIR)/carla/resources
  381. $(LINK) ../ui_carla_plugin_default.py $(DESTDIR)$(DATADIR)/carla/resources
  382. $(LINK) ../ui_carla_plugin_presets.py $(DESTDIR)$(DATADIR)/carla/resources
  383. $(LINK) ../ui_carla_refresh.py $(DESTDIR)$(DATADIR)/carla/resources
  384. $(LINK) ../ui_carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  385. $(LINK) ../ui_carla_settings_driver.py $(DESTDIR)$(DATADIR)/carla/resources
  386. $(LINK) ../ui_inputdialog_value.py $(DESTDIR)$(DATADIR)/carla/resources
  387. $(LINK) ../ui_midipattern.py $(DESTDIR)$(DATADIR)/carla/resources
  388. endif # HAVE_PYQT
  389. # -------------------------------------------------------------------------------------------------------------
  390. # Install lv2 plugin
  391. install -d $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  392. install -m 644 \
  393. bin/carla.lv2/carla.* \
  394. bin/carla.lv2/*.ttl \
  395. $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  396. # Link binaries for lv2 plugin
  397. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  398. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/$$i; \
  399. done
  400. rm -f $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/libcarla_standalone2.*
  401. ifeq ($(LINUX),true)
  402. # Link jack app bridge
  403. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  404. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  405. endif
  406. # Link resources for lv2 plugin
  407. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  408. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  409. ifeq ($(HAVE_PYQT),true)
  410. # Link styles for lv2 plugin
  411. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  412. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  413. endif
  414. # -------------------------------------------------------------------------------------------------------------
  415. ifeq ($(LINUX),true)
  416. ifeq ($(HAVE_X11),true)
  417. ifeq ($(HAVE_PYQT),true)
  418. # Install vst plugin
  419. install -d $(DESTDIR)$(LIBDIR)/vst/carla.vst
  420. install -m 644 \
  421. bin/CarlaRack*.* \
  422. bin/CarlaPatchbay*.* \
  423. $(DESTDIR)$(LIBDIR)/vst/carla.vst
  424. # Link binaries for vst plugin
  425. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  426. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/vst/carla.vst/$$i; \
  427. done
  428. rm -f $(DESTDIR)$(LIBDIR)/vst/carla.vst/libcarla_standalone2.*
  429. # Link jack app bridge
  430. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  431. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  432. # Link resources for vst plugin
  433. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  434. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  435. # Link styles for vst plugin
  436. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  437. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  438. endif
  439. endif
  440. endif
  441. ifneq ($(EXTERNAL_PLUGINS),true)
  442. install_external_plugins:
  443. endif
  444. install: install_main install_external_plugins
  445. # ---------------------------------------------------------------------------------------------------------------------
  446. uninstall:
  447. rm -f $(DESTDIR)$(BINDIR)/carla*
  448. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc
  449. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc
  450. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  451. rm -f $(DESTDIR)$(DATADIR)/applications/carla.desktop
  452. rm -f $(DESTDIR)$(DATADIR)/applications/carla-control.desktop
  453. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla.png
  454. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla-control.png
  455. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla.svg
  456. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla-control.svg
  457. rm -f $(DESTDIR)$(DATADIR)/mime/packages/carla.xml
  458. rm -rf $(DESTDIR)$(LIBDIR)/carla
  459. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  460. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla-native.lv2
  461. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst
  462. rm -rf $(DESTDIR)$(DATADIR)/carla
  463. rm -rf $(DESTDIR)$(INCLUDEDIR)/carla
  464. # ----------------------------------------------------------------------------------------------------------------------------
  465. ifneq ($(MAKE_TERMOUT),)
  466. ANS_NO=\033[31mNO\033[0m
  467. ANS_YES=\033[32mYES\033[0m
  468. mS=\033[33m[
  469. mZ=\033[30;1m[
  470. mE=]\033[0m
  471. tS=\033[36m
  472. tE=\033[0m
  473. else
  474. ANS_NO=NO
  475. ANS_YES=YES
  476. mS=[
  477. mZ=[
  478. mE=]
  479. endif
  480. ifeq ($(DEFAULT_QT),4)
  481. FEV="Qt4"
  482. else
  483. FEV="Qt5"
  484. endif
  485. features_print_main:
  486. @printf -- "$(tS)---> Main features $(tE)\n"
  487. ifeq ($(HAVE_PYQT),true)
  488. @printf -- "Front-End: $(ANS_YES) (Using $(FEV))\n"
  489. ifneq ($(WIN32),true)
  490. @printf -- "LV2 plugin: $(ANS_YES)\n"
  491. else
  492. @printf -- "LV2 plugin: $(ANS_NO) $(mZ)Not available for Windows$(mE)\n"
  493. endif
  494. ifeq ($(LINUX),true)
  495. ifeq ($(HAVE_X11),true)
  496. @printf -- "VST plugin: $(ANS_YES)\n"
  497. else # HAVE_X11
  498. @printf -- "VST plugin: $(ANS_NO) $(mS)X11 missing$(mE)\n"
  499. endif
  500. else # LINUX
  501. @printf -- "VST plugin: $(ANS_NO) $(mZ)Linux only$(mE)\n"
  502. endif
  503. else
  504. @printf -- "Front-End: $(ANS_NO) $(mS)Missing PyQt$(mE)\n"
  505. @printf -- "LV2 plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
  506. @printf -- "VST plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
  507. endif
  508. ifeq ($(HAVE_HYLIA),true)
  509. @printf -- "Link support: $(ANS_YES)\n"
  510. else
  511. ifeq ($(MACOS_OLD),true)
  512. @printf -- "Link support: $(ANS_NO) $(mZ)MacOS >= 10.10 only$(mE)\n"
  513. else
  514. @printf -- "Link support: $(ANS_NO) $(mZ)Linux, MacOS and Windows only$(mE)\n"
  515. endif
  516. endif
  517. ifeq ($(HAVE_LIBLO),true)
  518. @printf -- "OSC support: $(ANS_YES)\n"
  519. else
  520. @printf -- "OSC support: $(ANS_NO) $(mS)Missing liblo$(mE)\n"
  521. endif
  522. ifeq ($(WIN32),true)
  523. @printf -- "Binary detect: $(ANS_YES)\n"
  524. else
  525. ifeq ($(HAVE_LIBMAGIC),true)
  526. @printf -- "Binary detect: $(ANS_YES)\n"
  527. else
  528. @printf -- "Binary detect: $(ANS_NO) $(mS)Missing libmagic/file$(mE)\n"
  529. endif
  530. endif
  531. @printf -- "\n"
  532. @printf -- "$(tS)---> Engine drivers $(tE)\n"
  533. @printf -- "JACK: $(ANS_YES)\n"
  534. ifeq ($(LINUX),true)
  535. ifeq ($(HAVE_ALSA),true)
  536. @printf -- "ALSA: $(ANS_YES)\n"
  537. else
  538. @printf -- "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)\n"
  539. endif
  540. else
  541. @printf -- "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)\n"
  542. endif
  543. ifeq ($(UNIX),true)
  544. ifneq ($(MACOS),true)
  545. ifeq ($(HAVE_PULSEAUDIO),true)
  546. @printf -- "PulseAudio: $(ANS_YES)\n"
  547. else
  548. @printf -- "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)\n"
  549. endif
  550. else
  551. @printf -- "PulseAudio: $(ANS_NO) $(mZ)Not available for MacOS$(mE)\n"
  552. endif
  553. else
  554. @printf -- "PulseAudio: $(ANS_NO) $(mZ)Only available for Unix systems$(mE)\n"
  555. endif
  556. ifeq ($(MACOS),true)
  557. @printf -- "CoreAudio: $(ANS_YES)\n"
  558. else
  559. @printf -- "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  560. endif
  561. ifeq ($(WIN32),true)
  562. @printf -- "ASIO: $(ANS_YES)\n"
  563. @printf -- "DirectSound: $(ANS_YES)\n"
  564. @printf -- "WASAPI: $(ANS_YES)\n"
  565. else
  566. @printf -- "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  567. @printf -- "DirectSound: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  568. @printf -- "WASAPI: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  569. endif
  570. @printf -- "\n"
  571. @printf -- "$(tS)---> Plugin formats: $(tE)\n"
  572. @printf -- "Internal: $(ANS_YES)\n"
  573. @printf -- "LADSPA: $(ANS_YES)\n"
  574. @printf -- "DSSI: $(ANS_YES)\n"
  575. @printf -- "LV2: $(ANS_YES)\n"
  576. ifeq ($(MACOS_OR_WIN32),true)
  577. @printf -- "VST: $(ANS_YES) (with UI)\n"
  578. else
  579. ifeq ($(HAIKU),true)
  580. @printf -- "VST: $(ANS_YES) (without UI)\n"
  581. else
  582. ifeq ($(HAVE_X11),true)
  583. @printf -- "VST: $(ANS_YES) (with UI)\n"
  584. else
  585. @printf -- "VST: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)\n"
  586. endif
  587. endif
  588. endif
  589. @printf -- "\n"
  590. @printf -- "$(tS)---> LV2 UI toolkit support: $(tE)\n"
  591. @printf -- "External: $(ANS_YES) (direct)\n"
  592. ifneq ($(MACOS_OR_WIN32),true)
  593. ifeq ($(HAVE_GTK2),true)
  594. @printf -- "Gtk2: $(ANS_YES) (bridge)\n"
  595. else
  596. @printf -- "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)\n"
  597. endif
  598. ifeq ($(HAVE_GTK3),true)
  599. @printf -- "Gtk3: $(ANS_YES) (bridge)\n"
  600. else
  601. @printf -- "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)\n"
  602. endif
  603. ifeq ($(HAVE_QT4),true)
  604. @printf -- "Qt4: $(ANS_YES) (bridge)\n"
  605. else
  606. @printf -- "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)\n"
  607. endif
  608. ifeq ($(HAVE_QT5),true)
  609. @printf -- "Qt5: $(ANS_YES) (bridge)\n"
  610. else
  611. @printf -- "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)\n"
  612. endif
  613. ifeq ($(HAVE_X11),true)
  614. @printf -- "X11: $(ANS_YES) (direct+bridge)\n"
  615. else
  616. @printf -- "X11: $(ANS_NO) $(mS)X11 missing$(mE)\n"
  617. endif
  618. else # LINUX
  619. @printf -- "Gtk2: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  620. @printf -- "Gtk3: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  621. @printf -- "Qt4: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  622. @printf -- "Qt5: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  623. @printf -- "X11: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
  624. endif # LINUX
  625. ifeq ($(MACOS),true)
  626. @printf -- "Cocoa: $(ANS_YES) (direct+bridge)\n"
  627. else
  628. @printf -- "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
  629. endif
  630. ifeq ($(WIN32),true)
  631. @printf -- "Windows: $(ANS_YES) (direct+bridge)\n"
  632. else
  633. @printf -- "Windows: $(ANS_NO) $(mZ)Windows only$(mE)\n"
  634. endif
  635. @printf -- "\n"
  636. @printf -- "$(tS)---> File formats: $(tE)\n"
  637. ifeq ($(HAVE_SNDFILE),true)
  638. @printf -- "Basic: $(ANS_YES)\n"
  639. else
  640. @printf -- "Basic: $(ANS_NO) $(mS)libsndfile missing$(mE)\n"
  641. endif
  642. ifeq ($(HAVE_FFMPEG),true)
  643. @printf -- "Extra: $(ANS_YES)\n"
  644. else
  645. @printf -- "Extra: $(ANS_NO) $(mS)FFmpeg missing or too new$(mE)\n"
  646. endif
  647. ifeq ($(HAVE_FLUIDSYNTH),true)
  648. @printf -- "SF2/3: $(ANS_YES)\n"
  649. else
  650. @printf -- "SF2/3: $(ANS_NO) $(mS)FluidSynth missing or too old$(mE)\n"
  651. endif
  652. @printf -- "SFZ: $(ANS_YES)\n"
  653. @printf -- "\n"
  654. @printf -- "$(tS)---> Internal plugins: $(tE)\n"
  655. @printf -- "Basic Plugins: $(ANS_YES)\n"
  656. ifneq ($(WIN32),true)
  657. @printf -- "Carla-Patchbay: $(ANS_YES)\n"
  658. @printf -- "Carla-Rack: $(ANS_YES)\n"
  659. else
  660. @printf -- "Carla-Patchbay: $(ANS_NO) $(mS)Not available for Windows$(mE)\n"
  661. @printf -- "Carla-Rack: $(ANS_NO) $(mS)Not available for Windows$(mE)\n"
  662. endif
  663. ifeq ($(EXTERNAL_PLUGINS),true)
  664. @printf -- "External Plugins: $(ANS_YES)\n"
  665. else
  666. @printf -- "External Plugins: $(ANS_NO)\n"
  667. endif
  668. ifneq ($(EXTERNAL_PLUGINS),true)
  669. features_print_external_plugins:
  670. endif
  671. features: features_print_main features_print_external_plugins
  672. # ---------------------------------------------------------------------------------------------------------------------
  673. .FORCE:
  674. .PHONY: .FORCE
  675. # ---------------------------------------------------------------------------------------------------------------------