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

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