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

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
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
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
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808
  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 interposer 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. interposer: bin/libcarla_interposer.so
  98. bin/libcarla_interposer.so: .FORCE
  99. $(MAKE) -C source/interposer
  100. # --------------------------------------------------------------
  101. plugin: plugin_build bin/carla.lv2/manifest.ttl
  102. plugin_build: libs .FORCE
  103. $(MAKE) -C source/plugin
  104. bin/carla.lv2/manifest.ttl: plugin_build bridges-plugin bridges-ui discovery
  105. cd bin && ./carla-lv2-export$(APP_EXT); cd ..
  106. cd bin/carla.lv2 && $(LINK) ../*bridge-* ../carla-discovery-* .; cd ..
  107. # --------------------------------------------------------------
  108. ifeq ($(HAVE_QT),true)
  109. theme: bin/styles/carlastyle$(LIB_EXT)
  110. bin/styles/carlastyle$(LIB_EXT): .FORCE
  111. $(MAKE) -C source/modules/theme
  112. else
  113. theme:
  114. endif
  115. # --------------------------------------------------------------
  116. # Binaries (posix32)
  117. LIBS_POSIX32 += source/modules/jackbridge.posix32.a
  118. LIBS_POSIX32 += source/modules/juce_audio_basics.posix32.a
  119. LIBS_POSIX32 += source/modules/juce_core.posix32.a
  120. LIBS_POSIX32 += source/modules/lilv.posix32.a
  121. LIBS_POSIX32 += source/modules/rtmempool.posix32.a
  122. ifeq ($(MACOS),true)
  123. LIBS_POSIX32 += source/modules/juce_audio_processors.posix32.a
  124. LIBS_POSIX32 += source/modules/juce_data_structures.posix32.a
  125. LIBS_POSIX32 += source/modules/juce_events.posix32.a
  126. LIBS_POSIX32 += source/modules/juce_graphics.posix32.a
  127. LIBS_POSIX32 += source/modules/juce_gui_basics.posix32.a
  128. LIBS_POSIX32 += source/modules/juce_gui_extra.posix32.a
  129. endif
  130. posix32: $(LIBS_POSIX32)
  131. $(MAKE) -C source/bridges-plugin posix32
  132. $(MAKE) -C source/discovery posix32
  133. # --------------------------------------------------------------
  134. # Binaries (posix64)
  135. LIBS_POSIX64 += source/modules/jackbridge.posix64.a
  136. LIBS_POSIX64 += source/modules/juce_audio_basics.posix64.a
  137. LIBS_POSIX64 += source/modules/juce_core.posix64.a
  138. LIBS_POSIX64 += source/modules/lilv.posix64.a
  139. LIBS_POSIX64 += source/modules/rtmempool.posix64.a
  140. ifeq ($(MACOS),true)
  141. LIBS_POSIX64 += source/modules/juce_audio_processors.posix64.a
  142. LIBS_POSIX64 += source/modules/juce_data_structures.posix64.a
  143. LIBS_POSIX64 += source/modules/juce_events.posix64.a
  144. LIBS_POSIX64 += source/modules/juce_graphics.posix64.a
  145. LIBS_POSIX64 += source/modules/juce_gui_basics.posix64.a
  146. LIBS_POSIX64 += source/modules/juce_gui_extra.posix64.a
  147. endif
  148. posix64: $(LIBS_POSIX64)
  149. $(MAKE) -C source/bridges-plugin posix64
  150. $(MAKE) -C source/discovery posix64
  151. # --------------------------------------------------------------
  152. # Binaries (win32)
  153. LIBS_WIN32 += source/modules/jackbridge.win32e.a
  154. LIBS_WIN32 += source/modules/juce_audio_basics.win32.a
  155. LIBS_WIN32 += source/modules/juce_audio_processors.win32.a
  156. LIBS_WIN32 += source/modules/juce_core.win32.a
  157. LIBS_WIN32 += source/modules/juce_data_structures.win32.a
  158. LIBS_WIN32 += source/modules/juce_events.win32.a
  159. LIBS_WIN32 += source/modules/juce_graphics.win32.a
  160. LIBS_WIN32 += source/modules/juce_gui_basics.win32.a
  161. LIBS_WIN32 += source/modules/lilv.win32.a
  162. LIBS_WIN32 += source/modules/rtmempool.win32.a
  163. win32: $(LIBS_WIN32)
  164. $(MAKE) -C source/bridges-plugin win32
  165. $(MAKE) -C source/discovery win32
  166. # --------------------------------------------------------------
  167. # Binaries (win64)
  168. LIBS_WIN64 += source/modules/jackbridge.win64e.a
  169. LIBS_WIN64 += source/modules/juce_audio_basics.win64.a
  170. LIBS_WIN64 += source/modules/juce_audio_processors.win64.a
  171. LIBS_WIN64 += source/modules/juce_core.win64.a
  172. LIBS_WIN64 += source/modules/juce_data_structures.win64.a
  173. LIBS_WIN64 += source/modules/juce_events.win64.a
  174. LIBS_WIN64 += source/modules/juce_graphics.win64.a
  175. LIBS_WIN64 += source/modules/juce_gui_basics.win64.a
  176. LIBS_WIN64 += source/modules/lilv.win64.a
  177. LIBS_WIN64 += source/modules/rtmempool.win64.a
  178. win64: $(LIBS_WIN64)
  179. $(MAKE) -C source/bridges-plugin win64
  180. $(MAKE) -C source/discovery win64
  181. # --------------------------------------------------------------
  182. # Binaries (wine)
  183. wine32:
  184. $(MAKE) -C source/modules/jackbridge wine32
  185. cp -f source/modules/jackbridge-wine32.dll.so bin/jackbridge-wine32.dll
  186. wine64:
  187. $(MAKE) -C source/modules/jackbridge wine64
  188. cp -f source/modules/jackbridge-wine64.dll.so bin/jackbridge-wine64.dll
  189. # --------------------------------------------------------------
  190. # Resources
  191. RES = \
  192. bin/resources/carla_app.py \
  193. bin/resources/carla_backend.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. debug:
  297. $(MAKE) DEBUG=true
  298. doxygen:
  299. $(MAKE) doxygen -C source/backend
  300. # --------------------------------------------------------------
  301. install:
  302. # Create directories
  303. install -d $(DESTDIR)$(PREFIX)/bin/
  304. install -d $(DESTDIR)$(PREFIX)/lib/carla/
  305. install -d $(DESTDIR)$(PREFIX)/lib/carla/styles/
  306. install -d $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  307. install -d $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/
  308. install -d $(DESTDIR)$(PREFIX)/lib/pkgconfig/
  309. install -d $(DESTDIR)$(PREFIX)/include/carla/
  310. install -d $(DESTDIR)$(PREFIX)/include/carla/includes/
  311. install -d $(DESTDIR)$(PREFIX)/share/applications/
  312. install -d $(DESTDIR)$(PREFIX)/share/carla/
  313. install -d $(DESTDIR)$(PREFIX)/share/carla/resources/
  314. install -d $(DESTDIR)$(PREFIX)/share/carla/resources/nekofilter/
  315. install -d $(DESTDIR)$(PREFIX)/share/carla/resources/zynaddsubfx/
  316. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  317. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  318. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  319. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  320. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  321. install -d $(DESTDIR)$(PREFIX)/share/mime/packages/
  322. # Install script files
  323. install -m 755 \
  324. data/carla \
  325. data/carla-database \
  326. data/carla-patchbay \
  327. data/carla-rack \
  328. data/carla-settings \
  329. $(DESTDIR)$(PREFIX)/bin/
  330. # data/carla-control \
  331. # data/carla-single \
  332. # Install desktop files
  333. install -m 644 data/*.desktop $(DESTDIR)$(PREFIX)/share/applications/
  334. # Install icons, 16x16
  335. install -m 644 resources/16x16/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  336. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  337. # Install icons, 48x48
  338. install -m 644 resources/48x48/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  339. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  340. # Install icons, 128x128
  341. install -m 644 resources/128x128/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  342. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  343. # Install icons, 256x256
  344. install -m 644 resources/256x256/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  345. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  346. # Install icons, scalable
  347. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  348. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  349. # Install mime package
  350. install -m 644 data/carla.xml $(DESTDIR)$(PREFIX)/share/mime/packages/
  351. # Install pkg-config file
  352. install -m 644 data/carla-standalone.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/
  353. # Install backend
  354. install -m 644 \
  355. bin/libcarla_standalone2.* \
  356. $(DESTDIR)$(PREFIX)/lib/carla/
  357. ifeq ($(LINUX),true)
  358. # Install interposer
  359. install -m 644 \
  360. bin/libcarla_interposer.so \
  361. $(DESTDIR)$(PREFIX)/lib/carla/
  362. endif
  363. # Install lv2 plugin
  364. install -m 644 \
  365. bin/carla.lv2/carla.* \
  366. bin/carla.lv2/*.ttl \
  367. $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  368. # Install vst plugin
  369. install -m 644 \
  370. bin/CarlaRack*.* \
  371. bin/CarlaPatchbay*.* \
  372. $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/
  373. # Install other binaries
  374. install -m 755 \
  375. bin/*bridge-* \
  376. bin/carla-discovery-* \
  377. $(DESTDIR)$(PREFIX)/lib/carla/
  378. # Install theme
  379. install -m 644 \
  380. bin/styles/* \
  381. $(DESTDIR)$(PREFIX)/lib/carla/styles/
  382. # Install python code
  383. install -m 644 \
  384. source/carla \
  385. source/carla-patchbay \
  386. source/carla-rack \
  387. source/*.py \
  388. $(DESTDIR)$(PREFIX)/share/carla/
  389. # Install headers
  390. install -m 644 \
  391. source/backend/CarlaBackend.h \
  392. source/backend/CarlaHost.h \
  393. source/backend/CarlaEngine.hpp \
  394. source/backend/CarlaPlugin.hpp \
  395. source/modules/CarlaNative.h \
  396. $(DESTDIR)$(PREFIX)/include/carla/
  397. install -m 644 \
  398. source/includes/CarlaDefines.h \
  399. $(DESTDIR)$(PREFIX)/include/carla/includes/
  400. # Install resources
  401. install -m 755 \
  402. bin/resources/carla-plugin \
  403. bin/resources/carla-plugin-patchbay \
  404. bin/resources/*-ui \
  405. $(DESTDIR)$(PREFIX)/share/carla/resources/
  406. install -m 644 \
  407. bin/resources/nekofilter/*.png \
  408. $(DESTDIR)$(PREFIX)/share/carla/resources/nekofilter/
  409. install -m 644 \
  410. bin/resources/zynaddsubfx/*.png \
  411. $(DESTDIR)$(PREFIX)/share/carla/resources/zynaddsubfx/
  412. # Install resources (re-use python files)
  413. $(LINK) $(PREFIX)/share/carla/carla_app.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  414. $(LINK) $(PREFIX)/share/carla/carla_backend.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  415. $(LINK) $(PREFIX)/share/carla/carla_config.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  416. $(LINK) $(PREFIX)/share/carla/carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  417. $(LINK) $(PREFIX)/share/carla/carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  418. $(LINK) $(PREFIX)/share/carla/carla_panels.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  419. $(LINK) $(PREFIX)/share/carla/carla_settings.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  420. $(LINK) $(PREFIX)/share/carla/carla_skin.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  421. $(LINK) $(PREFIX)/share/carla/carla_shared.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  422. $(LINK) $(PREFIX)/share/carla/carla_utils.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  423. $(LINK) $(PREFIX)/share/carla/carla_widgets.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  424. $(LINK) $(PREFIX)/share/carla/canvaspreviewframe.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  425. $(LINK) $(PREFIX)/share/carla/digitalpeakmeter.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  426. $(LINK) $(PREFIX)/share/carla/externalui.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  427. $(LINK) $(PREFIX)/share/carla/ledbutton.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  428. $(LINK) $(PREFIX)/share/carla/paramspinbox.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  429. $(LINK) $(PREFIX)/share/carla/patchcanvas.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  430. $(LINK) $(PREFIX)/share/carla/patchcanvas_theme.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  431. $(LINK) $(PREFIX)/share/carla/pixmapbutton.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  432. $(LINK) $(PREFIX)/share/carla/pixmapdial.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  433. $(LINK) $(PREFIX)/share/carla/pixmapkeyboard.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  434. $(LINK) $(PREFIX)/share/carla/racklistwidget.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  435. $(LINK) $(PREFIX)/share/carla/resources_rc.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  436. $(LINK) $(PREFIX)/share/carla/ui_carla_about.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  437. $(LINK) $(PREFIX)/share/carla/ui_carla_about_juce.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  438. $(LINK) $(PREFIX)/share/carla/ui_carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  439. $(LINK) $(PREFIX)/share/carla/ui_carla_edit.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  440. $(LINK) $(PREFIX)/share/carla/ui_carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  441. $(LINK) $(PREFIX)/share/carla/ui_carla_panel_time.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  442. $(LINK) $(PREFIX)/share/carla/ui_carla_parameter.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  443. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_basic_fx.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  444. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_calf.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  445. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_default.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  446. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_sf2.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  447. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_zita.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  448. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_zynfx.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  449. $(LINK) $(PREFIX)/share/carla/ui_carla_refresh.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  450. $(LINK) $(PREFIX)/share/carla/ui_carla_settings.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  451. $(LINK) $(PREFIX)/share/carla/ui_carla_settings_driver.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  452. $(LINK) $(PREFIX)/share/carla/ui_inputdialog_value.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  453. # Link binaries for lv2 & vst plugin
  454. @for i in $(shell find $(DESTDIR)$(PREFIX)/lib/carla/ -maxdepth 1 -type f -exec basename {} ';'); do \
  455. $(LINK) $(PREFIX)/lib/carla/$$i $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/; \
  456. $(LINK) $(PREFIX)/lib/carla/$$i $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/; \
  457. done
  458. rm -f $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/libcarla_*.*
  459. rm -f $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/libcarla_*.*
  460. # Link styles for lv2 & vst plugin
  461. $(LINK) $(PREFIX)/lib/carla/styles $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  462. $(LINK) $(PREFIX)/lib/carla/styles $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/
  463. # Link resources for lv2 & vst plugin
  464. rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/resources
  465. rm -rf $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/resources
  466. $(LINK) $(PREFIX)/share/carla/resources/ $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  467. $(LINK) $(PREFIX)/share/carla/resources/ $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/
  468. # Adjust PREFIX value in script files
  469. sed -i "s?X-PREFIX-X?$(PREFIX)?" \
  470. $(DESTDIR)$(PREFIX)/bin/carla \
  471. $(DESTDIR)$(PREFIX)/bin/carla-database \
  472. $(DESTDIR)$(PREFIX)/bin/carla-patchbay \
  473. $(DESTDIR)$(PREFIX)/bin/carla-rack \
  474. $(DESTDIR)$(PREFIX)/bin/carla-settings \
  475. $(DESTDIR)$(PREFIX)/lib/pkgconfig/carla-standalone.pc
  476. # $(DESTDIR)$(PREFIX)/bin/carla-single \
  477. # $(DESTDIR)$(PREFIX)/bin/carla-control \
  478. # --------------------------------------------------------------
  479. uninstall:
  480. rm -f $(DESTDIR)$(PREFIX)/bin/carla*
  481. rm -f $(DESTDIR)$(PREFIX)/lib/pkgconfig/carla-standalone.pc
  482. rm -f $(DESTDIR)$(PREFIX)/share/applications/carla.desktop
  483. rm -f $(DESTDIR)$(PREFIX)/share/applications/carla-control.desktop
  484. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla.png
  485. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla-control.png
  486. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla.svg
  487. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla-control.svg
  488. rm -f $(DESTDIR)$(PREFIX)/share/mime/packages/carla.xml
  489. rm -rf $(DESTDIR)$(PREFIX)/include/carla/
  490. rm -rf $(DESTDIR)$(PREFIX)/lib/carla/
  491. rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  492. rm -rf $(DESTDIR)$(PREFIX)/lib/vst/carla.vst/
  493. rm -rf $(DESTDIR)$(PREFIX)/share/carla/
  494. # --------------------------------------------------------------
  495. USE_COLORS=true
  496. ifeq ($(HAIKU),true)
  497. USE_COLORS=false
  498. endif
  499. ifeq ($(USE_COLORS),true)
  500. ANS_NO=\033[31m NO \033[0m
  501. ANS_YES=\033[32m YES \033[0m
  502. mS=\033[33m[
  503. mZ=\033[30;1m[
  504. mE=]\033[0m
  505. tS=\033[36m
  506. tE=\033[0m
  507. else
  508. ANS_NO=" NO "
  509. ANS_YES=" YES "
  510. endif
  511. ifeq ($(DEFAULT_QT),4)
  512. FEV="Qt4"
  513. else
  514. FEV="Qt5"
  515. endif
  516. features:
  517. @echo "$(tS)---> Main features $(tE)"
  518. ifeq ($(HAVE_PYQT),true)
  519. @echo "Front-End: $(ANS_YES) (Using $(FEV))"
  520. ifneq ($(WIN32),true)
  521. @echo "LV2 plugin: $(ANS_YES)"
  522. else
  523. @echo "LV2 plugin: $(ANS_NO) $(mZ)Not available for Windows$(mE)"
  524. endif
  525. ifeq ($(LINUX),true)
  526. ifeq ($(DEFAULT_QT),4)
  527. ifeq ($(HAVE_X11),true)
  528. @echo "VST plugin: $(ANS_YES)"
  529. else # HAVE_X11
  530. @echo "VST plugin: $(ANS_NO) $(mS)X11 missing$(mE)"
  531. endif
  532. else # DEFAULT_QT
  533. @echo "VST plugin: $(ANS_NO) $(mZ)Qt4 only$(mE)"
  534. endif
  535. else # LINUX
  536. @echo "VST plugin: $(ANS_NO) $(mZ)Linux only$(mE)"
  537. endif
  538. else
  539. @echo "Front-End: $(ANS_NO) $(mS)Missing PyQt$(mE)"
  540. @echo "LV2 plugin: $(ANS_NO) $(mS)No front-end$(mE)"
  541. @echo "VST plugin: $(ANS_NO) $(mS)No front-end$(mE)"
  542. endif
  543. @echo ""
  544. @echo "$(tS)---> Engine drivers $(tE)"
  545. @echo "JACK: $(ANS_YES)"
  546. ifeq ($(LINUX),true)
  547. ifeq ($(HAVE_ALSA),true)
  548. @echo "ALSA: $(ANS_YES)"
  549. else
  550. @echo "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)"
  551. endif
  552. ifeq ($(HAVE_PULSEAUDIO),true)
  553. @echo "PulseAudio: $(ANS_YES)"
  554. else
  555. @echo "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)"
  556. endif
  557. else
  558. @echo "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)"
  559. @echo "PulseAudio: $(ANS_NO) $(mZ)Linux only$(mE)"
  560. endif
  561. ifeq ($(MACOS),true)
  562. @echo "CoreAudio: $(ANS_YES)"
  563. else
  564. @echo "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)"
  565. endif
  566. ifeq ($(WIN32),true)
  567. @echo "ASIO: $(ANS_YES)"
  568. @echo "DirectSound:$(ANS_YES)"
  569. else
  570. @echo "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)"
  571. @echo "DirectSound:$(ANS_NO) $(mZ)Windows only$(mE)"
  572. endif
  573. @echo ""
  574. @echo "$(tS)---> Plugin formats: $(tE)"
  575. @echo "Internal:$(ANS_YES)"
  576. @echo "LADSPA: $(ANS_YES)"
  577. @echo "DSSI: $(ANS_YES)"
  578. @echo "LV2: $(ANS_YES)"
  579. ifeq ($(MACOS_OR_WIN32),true)
  580. @echo "VST: $(ANS_YES) (with UI)"
  581. else
  582. ifeq ($(LINUX),true)
  583. ifeq ($(HAVE_X11),true)
  584. @echo "VST: $(ANS_YES) (with UI)"
  585. else
  586. @echo "VST: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)"
  587. endif
  588. else # LINUX
  589. @echo "VST: $(ANS_YES) (without UI) $(mZ)Linux, Mac and Windows only$(mE)"
  590. endif
  591. endif
  592. ifeq ($(MACOS_OR_WIN32),true)
  593. @echo "VST3: $(ANS_YES)"
  594. else
  595. @echo "VST3: $(ANS_NO) $(mZ)Windows and MacOS only$(mE)"
  596. endif
  597. ifeq ($(MACOS),true)
  598. @echo "AU: $(ANS_YES)"
  599. else
  600. @echo "AU: $(ANS_NO) $(mZ)MacOS only$(mE)"
  601. endif
  602. @echo ""
  603. @echo "$(tS)---> LV2 UI toolkit support: $(tE)"
  604. @echo "External:$(ANS_YES) (direct)"
  605. ifeq ($(HAVE_GTK2),true)
  606. @echo "Gtk2: $(ANS_YES) (bridge)"
  607. else
  608. @echo "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)"
  609. endif
  610. ifeq ($(HAVE_GTK3),true)
  611. @echo "Gtk3: $(ANS_YES) (bridge)"
  612. else
  613. @echo "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)"
  614. endif
  615. ifeq ($(HAVE_QT4),true)
  616. @echo "Qt4: $(ANS_YES) (bridge)"
  617. else
  618. @echo "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)"
  619. endif
  620. ifeq ($(HAVE_QT5),true)
  621. @echo "Qt5: $(ANS_YES) (bridge)"
  622. else
  623. @echo "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)"
  624. endif
  625. ifeq ($(HAVE_X11),true)
  626. @echo "X11: $(ANS_YES) (direct+bridge)"
  627. else
  628. @echo "X11: $(ANS_NO) $(mS)X11 missing$(mE)"
  629. endif
  630. # ifeq ($(MACOS),true)
  631. # @echo "Cocoa: $(ANS_YES) (direct+bridge)"
  632. # else
  633. # @echo "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)"
  634. # endif
  635. # ifeq ($(WIN32),true)
  636. # @echo "Windows: $(ANS_YES) (direct+bridge)"
  637. # else
  638. # @echo "Windows: $(ANS_NO) $(mZ)Windows only$(mE)"
  639. # endif
  640. @echo ""
  641. @echo "$(tS)---> File formats: $(tE)"
  642. ifeq ($(HAVE_LINUXSAMPLER),true)
  643. @echo "GIG:$(ANS_YES)"
  644. else
  645. @echo "GIG:$(ANS_NO) $(mS)LinuxSampler missing or too old$(mE)"
  646. endif
  647. ifeq ($(HAVE_FLUIDSYNTH),true)
  648. @echo "SF2:$(ANS_YES)"
  649. else
  650. @echo "SF2:$(ANS_NO) $(mS)FluidSynth missing$(mE)"
  651. endif
  652. ifeq ($(HAVE_LINUXSAMPLER),true)
  653. @echo "SFZ:$(ANS_YES)"
  654. else
  655. @echo "SFZ:$(ANS_NO) $(mS)LinuxSampler missing or too old$(mE)"
  656. endif
  657. @echo ""
  658. @echo "$(tS)---> Internal plugins: $(tE)"
  659. ifneq ($(WIN32),true)
  660. @echo "Carla-Patchbay:$(ANS_YES)"
  661. @echo "Carla-Rack: $(ANS_YES)"
  662. else
  663. @echo "Carla-Patchbay:$(ANS_NO) $(mS)Not available for Windows$(mE)"
  664. @echo "Carla-Rack: $(ANS_NO) $(mS)Not available for Windows$(mE)"
  665. endif
  666. ifeq ($(HAVE_ZYN_DEPS),true)
  667. ifeq ($(HAVE_ZYN_UI_DEPS),true)
  668. @echo "ZynAddSubFX: $(ANS_YES) (with UI)"
  669. else
  670. @echo "ZynAddSubFX: $(ANS_YES) (without UI) $(mS)NTK missing$(mE)"
  671. endif
  672. else
  673. @echo "ZynAddSubFX: $(ANS_NO) $(mS)fftw3, mxml or zlib missing$(mE)"
  674. endif
  675. # --------------------------------------------------------------
  676. .FORCE:
  677. .PHONY: .FORCE
  678. # --------------------------------------------------------------