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