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

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