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