Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 25KB

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