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

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
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
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
10 years ago
11 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724
  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: bin/carla-native.lv2/manifest.ttl
  98. bin/carla-native.lv2/carla-native$(LIB_EXT): backend .FORCE
  99. $(MAKE) -C source/plugin ../../$@
  100. bin/carla-native.lv2/manifest.ttl: bin/carla-native-lv2-export$(APP_EXT) bridges-plugin discovery .FORCE
  101. cd bin && ./carla-native-lv2-export$(APP_EXT); cd ..
  102. cd bin/carla-native.lv2 && $(LINK) ../*bridge-* ../carla-discovery-* .; cd ..
  103. bin/carla-native-lv2-export$(APP_EXT): bin/carla-native.lv2/carla-native$(LIB_EXT) .FORCE
  104. $(MAKE) -C source/plugin ../../$@
  105. # --------------------------------------------------------------
  106. theme: bin/styles/carlastyle$(LIB_EXT)
  107. bin/styles/carlastyle$(LIB_EXT): .FORCE
  108. $(MAKE) -C source/modules/theme
  109. # --------------------------------------------------------------
  110. # Binaries (posix32)
  111. LIBS_POSIX32 += source/modules/jackbridge.posix32.a
  112. LIBS_POSIX32 += source/modules/juce_audio_basics.posix32.a
  113. LIBS_POSIX32 += source/modules/juce_core.posix32.a
  114. LIBS_POSIX32 += source/modules/lilv.posix32.a
  115. LIBS_POSIX32 += source/modules/rtmempool.posix32.a
  116. ifeq ($(MACOS),true)
  117. LIBS_POSIX32 += source/modules/juce_audio_processors.posix32.a
  118. LIBS_POSIX32 += source/modules/juce_data_structures.posix32.a
  119. LIBS_POSIX32 += source/modules/juce_events.posix32.a
  120. LIBS_POSIX32 += source/modules/juce_graphics.posix32.a
  121. LIBS_POSIX32 += source/modules/juce_gui_basics.posix32.a
  122. LIBS_POSIX32 += source/modules/juce_gui_extra.posix32.a
  123. endif
  124. posix32: $(LIBS_POSIX32)
  125. $(MAKE) -C source/bridges-plugin posix32
  126. $(MAKE) -C source/discovery posix32
  127. # --------------------------------------------------------------
  128. # Binaries (posix64)
  129. LIBS_POSIX64 += source/modules/jackbridge.posix64.a
  130. LIBS_POSIX64 += source/modules/juce_audio_basics.posix64.a
  131. LIBS_POSIX64 += source/modules/juce_core.posix64.a
  132. LIBS_POSIX64 += source/modules/lilv.posix64.a
  133. LIBS_POSIX64 += source/modules/rtmempool.posix64.a
  134. ifeq ($(MACOS),true)
  135. LIBS_POSIX64 += source/modules/juce_audio_processors.posix64.a
  136. LIBS_POSIX64 += source/modules/juce_data_structures.posix64.a
  137. LIBS_POSIX64 += source/modules/juce_events.posix64.a
  138. LIBS_POSIX64 += source/modules/juce_graphics.posix64.a
  139. LIBS_POSIX64 += source/modules/juce_gui_basics.posix64.a
  140. LIBS_POSIX64 += source/modules/juce_gui_extra.posix64.a
  141. endif
  142. posix64: $(LIBS_POSIX64)
  143. $(MAKE) -C source/bridges-plugin posix64
  144. $(MAKE) -C source/discovery posix64
  145. # --------------------------------------------------------------
  146. # Binaries (win32)
  147. LIBS_WIN32 += source/modules/jackbridge.win32e.a
  148. LIBS_WIN32 += source/modules/juce_audio_basics.win32.a
  149. LIBS_WIN32 += source/modules/juce_audio_processors.win32.a
  150. LIBS_WIN32 += source/modules/juce_core.win32.a
  151. LIBS_WIN32 += source/modules/juce_data_structures.win32.a
  152. LIBS_WIN32 += source/modules/juce_events.win32.a
  153. LIBS_WIN32 += source/modules/juce_graphics.win32.a
  154. LIBS_WIN32 += source/modules/juce_gui_basics.win32.a
  155. LIBS_WIN32 += source/modules/lilv.win32.a
  156. LIBS_WIN32 += source/modules/rtmempool.win32.a
  157. win32: $(LIBS_WIN32)
  158. $(MAKE) -C source/bridges-plugin win32
  159. $(MAKE) -C source/discovery win32
  160. # --------------------------------------------------------------
  161. # Binaries (win64)
  162. LIBS_WIN64 += source/modules/jackbridge.win64e.a
  163. LIBS_WIN64 += source/modules/juce_audio_basics.win64.a
  164. LIBS_WIN64 += source/modules/juce_audio_processors.win64.a
  165. LIBS_WIN64 += source/modules/juce_core.win64.a
  166. LIBS_WIN64 += source/modules/juce_data_structures.win64.a
  167. LIBS_WIN64 += source/modules/juce_events.win64.a
  168. LIBS_WIN64 += source/modules/juce_graphics.win64.a
  169. LIBS_WIN64 += source/modules/juce_gui_basics.win64.a
  170. LIBS_WIN64 += source/modules/lilv.win64.a
  171. LIBS_WIN64 += source/modules/rtmempool.win64.a
  172. win64: $(LIBS_WIN64)
  173. $(MAKE) -C source/bridges-plugin win64
  174. $(MAKE) -C source/discovery win64
  175. # --------------------------------------------------------------
  176. # Binaries (wine)
  177. wine32:
  178. $(MAKE) -C source/modules/jackbridge wine32
  179. cp -f source/modules/jackbridge-wine32.dll.so bin/jackbridge-wine32.dll
  180. wine64:
  181. $(MAKE) -C source/modules/jackbridge wine64
  182. cp -f source/modules/jackbridge-wine64.dll.so bin/jackbridge-wine64.dll
  183. # --------------------------------------------------------------
  184. # Resources
  185. RES = \
  186. bin/resources/carla_backend.py \
  187. bin/resources/carla_config.py \
  188. bin/resources/carla_database.py \
  189. bin/resources/carla_host.py \
  190. bin/resources/carla_rack.py \
  191. bin/resources/carla_settings.py \
  192. bin/resources/carla_skin.py \
  193. bin/resources/carla_shared.py \
  194. bin/resources/carla_style.py \
  195. bin/resources/carla_widgets.py \
  196. bin/resources/canvaspreviewframe.py \
  197. bin/resources/digitalpeakmeter.py \
  198. bin/resources/externalui.py \
  199. bin/resources/ledbutton.py \
  200. bin/resources/paramspinbox.py \
  201. bin/resources/patchcanvas.py \
  202. bin/resources/patchcanvas_theme.py \
  203. bin/resources/pixmapbutton.py \
  204. bin/resources/pixmapdial.py \
  205. bin/resources/pixmapkeyboard.py \
  206. bin/resources/resources_rc.py \
  207. bin/resources/ui_carla_about.py \
  208. bin/resources/ui_carla_about_juce.py \
  209. bin/resources/ui_carla_database.py \
  210. bin/resources/ui_carla_edit.py \
  211. bin/resources/ui_carla_host.py \
  212. bin/resources/ui_carla_parameter.py \
  213. bin/resources/ui_carla_plugin_basic_fx.py \
  214. bin/resources/ui_carla_plugin_calf.py \
  215. bin/resources/ui_carla_plugin_default.py \
  216. bin/resources/ui_carla_plugin_zita.py \
  217. bin/resources/ui_carla_plugin_zynfx.py \
  218. bin/resources/ui_carla_refresh.py \
  219. bin/resources/ui_carla_settings.py \
  220. bin/resources/ui_carla_settings_driver.py \
  221. bin/resources/ui_inputdialog_value.py \
  222. source/carla_config.py \
  223. source/resources_rc.py
  224. RES: $(RES)
  225. source/carla_config.py:
  226. @echo "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n" > $@
  227. ifeq ($(DEFAULT_QT),4)
  228. @echo "config_UseQt5 = False" >> $@
  229. else
  230. @echo "config_UseQt5 = True" >> $@
  231. endif
  232. source/resources_rc.py: resources/resources.qrc resources/*/*.png resources/*/*.svg
  233. $(PYRCC) $< -o $@
  234. bin/resources/%.py: source/%.py
  235. $(LINK) $(CURDIR)/source/$*.py bin/resources/
  236. # --------------------------------------------------------------
  237. # UI code
  238. UIs = \
  239. source/ui_carla_control.py \
  240. source/ui_carla_about.py \
  241. source/ui_carla_about_juce.py \
  242. source/ui_carla_database.py \
  243. source/ui_carla_edit.py \
  244. source/ui_carla_host.py \
  245. source/ui_carla_parameter.py \
  246. source/ui_carla_plugin_basic_fx.py \
  247. source/ui_carla_plugin_default.py \
  248. source/ui_carla_plugin_calf.py \
  249. source/ui_carla_plugin_zita.py \
  250. source/ui_carla_plugin_zynfx.py \
  251. source/ui_carla_refresh.py \
  252. source/ui_carla_settings.py \
  253. source/ui_carla_settings_driver.py \
  254. source/ui_inputdialog_value.py
  255. UI: $(UIs)
  256. source/ui_%.py: resources/ui/%.ui
  257. $(PYUIC) $< -o $@
  258. # --------------------------------------------------------------
  259. # Widgets
  260. WIDGETS = \
  261. source/canvaspreviewframe.py \
  262. source/digitalpeakmeter.py \
  263. source/ledbutton.py \
  264. source/paramspinbox.py \
  265. source/pixmapbutton.py \
  266. source/pixmapdial.py \
  267. source/pixmapkeyboard.py
  268. WIDGETS: $(WIDGETS)
  269. source/%.py: source/widgets/%.py
  270. $(LINK) widgets/$*.py $@
  271. # --------------------------------------------------------------
  272. clean:
  273. $(MAKE) clean -C source/backend
  274. $(MAKE) clean -C source/bridges-plugin
  275. $(MAKE) clean -C source/bridges-ui
  276. $(MAKE) clean -C source/discovery
  277. $(MAKE) clean -C source/modules
  278. $(MAKE) clean -C source/plugin
  279. rm -f $(RES)
  280. rm -f $(UIs)
  281. rm -f $(WIDGETS)
  282. rm -f *~ source/*~ source/*.pyc source/*_rc.py source/ui_*.py
  283. debug:
  284. $(MAKE) DEBUG=true
  285. doxygen:
  286. $(MAKE) doxygen -C source/backend
  287. # --------------------------------------------------------------
  288. install:
  289. # Create directories
  290. install -d $(DESTDIR)$(PREFIX)/bin/
  291. install -d $(DESTDIR)$(PREFIX)/lib/carla/
  292. install -d $(DESTDIR)$(PREFIX)/lib/carla/styles/
  293. install -d $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/
  294. install -d $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/styles/
  295. install -d $(DESTDIR)$(PREFIX)/lib/pkgconfig/
  296. install -d $(DESTDIR)$(PREFIX)/include/carla/
  297. install -d $(DESTDIR)$(PREFIX)/include/carla/includes/
  298. install -d $(DESTDIR)$(PREFIX)/share/applications/
  299. install -d $(DESTDIR)$(PREFIX)/share/carla/
  300. install -d $(DESTDIR)$(PREFIX)/share/carla/resources/
  301. install -d $(DESTDIR)$(PREFIX)/share/carla/resources/nekofilter/
  302. install -d $(DESTDIR)$(PREFIX)/share/carla/resources/zynaddsubfx/
  303. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  304. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  305. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  306. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  307. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  308. install -d $(DESTDIR)$(PREFIX)/share/mime/packages/
  309. # Install script files
  310. install -m 755 \
  311. data/carla \
  312. data/carla-database \
  313. data/carla-patchbay \
  314. data/carla-rack \
  315. data/carla-settings \
  316. $(DESTDIR)$(PREFIX)/bin/
  317. # data/carla-control \
  318. # data/carla-single \
  319. # Install desktop files
  320. install -m 644 data/*.desktop $(DESTDIR)$(PREFIX)/share/applications/
  321. # Install icons, 16x16
  322. install -m 644 resources/16x16/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  323. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  324. # Install icons, 48x48
  325. install -m 644 resources/48x48/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  326. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  327. # Install icons, 128x128
  328. install -m 644 resources/128x128/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  329. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  330. # Install icons, 256x256
  331. install -m 644 resources/256x256/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  332. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  333. # Install icons, scalable
  334. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  335. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  336. # Install mime package
  337. install -m 644 data/carla.xml $(DESTDIR)$(PREFIX)/share/mime/packages/
  338. # Install pkg-config file
  339. install -m 644 data/carla-standalone.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/
  340. # Install backend
  341. install -m 644 \
  342. bin/libcarla_standalone2.* \
  343. $(DESTDIR)$(PREFIX)/lib/carla/
  344. # Install lv2 plugin
  345. install -m 644 \
  346. bin/carla-native.lv2/carla-native.* \
  347. bin/carla-native.lv2/*.ttl \
  348. $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/
  349. # Install binaries (backend)
  350. install -m 755 \
  351. bin/*bridge-* \
  352. bin/carla-discovery-* \
  353. $(DESTDIR)$(PREFIX)/lib/carla/
  354. # Install binaries (lv2 plugin)
  355. install -m 755 \
  356. bin/*bridge-* \
  357. bin/carla-discovery-* \
  358. $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/
  359. # Install theme
  360. install -m 644 \
  361. bin/styles/* \
  362. $(DESTDIR)$(PREFIX)/lib/carla/styles/
  363. # Install theme (lv2 plugin)
  364. install -m 644 \
  365. bin/styles/* \
  366. $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/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/*-ui \
  389. $(DESTDIR)$(PREFIX)/share/carla/resources/
  390. install -m 644 \
  391. bin/resources/nekofilter/*.png \
  392. $(DESTDIR)$(PREFIX)/share/carla/resources/nekofilter/
  393. install -m 644 \
  394. bin/resources/zynaddsubfx/*.png \
  395. $(DESTDIR)$(PREFIX)/share/carla/resources/zynaddsubfx/
  396. # Install resources (re-use python files)
  397. $(LINK) $(PREFIX)/share/carla/carla_backend.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  398. $(LINK) $(PREFIX)/share/carla/carla_config.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  399. $(LINK) $(PREFIX)/share/carla/carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  400. $(LINK) $(PREFIX)/share/carla/carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  401. $(LINK) $(PREFIX)/share/carla/carla_rack.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  402. $(LINK) $(PREFIX)/share/carla/carla_settings.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  403. $(LINK) $(PREFIX)/share/carla/carla_skin.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  404. $(LINK) $(PREFIX)/share/carla/carla_shared.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  405. $(LINK) $(PREFIX)/share/carla/carla_style.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  406. $(LINK) $(PREFIX)/share/carla/carla_widgets.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  407. $(LINK) $(PREFIX)/share/carla/canvaspreviewframe.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  408. $(LINK) $(PREFIX)/share/carla/digitalpeakmeter.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  409. $(LINK) $(PREFIX)/share/carla/externalui.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  410. $(LINK) $(PREFIX)/share/carla/ledbutton.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  411. $(LINK) $(PREFIX)/share/carla/paramspinbox.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  412. $(LINK) $(PREFIX)/share/carla/patchcanvas.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  413. $(LINK) $(PREFIX)/share/carla/patchcanvas_theme.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  414. $(LINK) $(PREFIX)/share/carla/pixmapbutton.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  415. $(LINK) $(PREFIX)/share/carla/pixmapdial.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  416. $(LINK) $(PREFIX)/share/carla/pixmapkeyboard.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  417. $(LINK) $(PREFIX)/share/carla/resources_rc.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  418. $(LINK) $(PREFIX)/share/carla/ui_carla_about.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  419. $(LINK) $(PREFIX)/share/carla/ui_carla_about_juce.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  420. $(LINK) $(PREFIX)/share/carla/ui_carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  421. $(LINK) $(PREFIX)/share/carla/ui_carla_edit.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  422. $(LINK) $(PREFIX)/share/carla/ui_carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  423. $(LINK) $(PREFIX)/share/carla/ui_carla_parameter.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  424. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_basic_fx.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  425. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_calf.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  426. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_default.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  427. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_zita.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  428. $(LINK) $(PREFIX)/share/carla/ui_carla_plugin_zynfx.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  429. $(LINK) $(PREFIX)/share/carla/ui_carla_refresh.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  430. $(LINK) $(PREFIX)/share/carla/ui_carla_settings.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  431. $(LINK) $(PREFIX)/share/carla/ui_carla_settings_driver.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  432. $(LINK) $(PREFIX)/share/carla/ui_inputdialog_value.py $(DESTDIR)$(PREFIX)/share/carla/resources/
  433. # Link resources for lv2 plugin
  434. rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/resources
  435. $(LINK) $(PREFIX)/share/carla/resources/ $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/
  436. # Adjust PREFIX value in script files
  437. sed -i "s?X-PREFIX-X?$(PREFIX)?" \
  438. $(DESTDIR)$(PREFIX)/bin/carla \
  439. $(DESTDIR)$(PREFIX)/bin/carla-database \
  440. $(DESTDIR)$(PREFIX)/bin/carla-patchbay \
  441. $(DESTDIR)$(PREFIX)/bin/carla-rack \
  442. $(DESTDIR)$(PREFIX)/bin/carla-settings \
  443. $(DESTDIR)$(PREFIX)/lib/pkgconfig/carla-standalone.pc
  444. # $(DESTDIR)$(PREFIX)/bin/carla-single \
  445. # $(DESTDIR)$(PREFIX)/bin/carla-control \
  446. # --------------------------------------------------------------
  447. uninstall:
  448. rm -f $(DESTDIR)$(PREFIX)/bin/carla*
  449. rm -f $(DESTDIR)$(PREFIX)/lib/pkgconfig/carla-standalone.pc
  450. rm -f $(DESTDIR)$(PREFIX)/share/applications/carla.desktop
  451. rm -f $(DESTDIR)$(PREFIX)/share/applications/carla-control.desktop
  452. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla.png
  453. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla-control.png
  454. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla.svg
  455. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla-control.svg
  456. rm -f $(DESTDIR)$(PREFIX)/share/mime/packages/carla.xml
  457. rm -rf $(DESTDIR)$(PREFIX)/include/carla/
  458. rm -rf $(DESTDIR)$(PREFIX)/lib/carla/
  459. rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla-native.lv2/
  460. rm -rf $(DESTDIR)$(PREFIX)/share/carla/
  461. # --------------------------------------------------------------
  462. USE_COLORS=true
  463. USE_VST3=false
  464. ifeq ($(HAIKU),true)
  465. USE_COLORS=false
  466. endif
  467. ifeq ($(USE_COLORS),true)
  468. ANS_NO=\033[31m NO \033[0m
  469. ANS_YES=\033[32m YES \033[0m
  470. mS=\033[33m[
  471. mZ=\033[30;1m[
  472. mE=]\033[0m
  473. tS=\033[36m
  474. tE=\033[0m
  475. else
  476. ANS_NO=" NO "
  477. ANS_YES=" YES "
  478. endif
  479. features:
  480. @echo "$(tS)---> Engine drivers $(tE)"
  481. @echo "JACK: $(ANS_YES)"
  482. ifeq ($(LINUX),true)
  483. ifeq ($(HAVE_ALSA),true)
  484. @echo "ALSA: $(ANS_YES)"
  485. else
  486. @echo "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)"
  487. endif
  488. ifeq ($(HAVE_PULSEAUDIO),true)
  489. @echo "PulseAudio: $(ANS_YES)"
  490. else
  491. @echo "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)"
  492. endif
  493. else
  494. @echo "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)"
  495. @echo "PulseAudio: $(ANS_NO) $(mZ)Linux only$(mE)"
  496. endif
  497. ifeq ($(MACOS),true)
  498. @echo "CoreAudio: $(ANS_YES)"
  499. else
  500. @echo "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)"
  501. endif
  502. ifeq ($(WIN32),true)
  503. @echo "ASIO: $(ANS_YES)"
  504. @echo "DirectSound:$(ANS_YES)"
  505. else
  506. @echo "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)"
  507. @echo "DirectSound:$(ANS_NO) $(mZ)Windows only$(mE)"
  508. endif
  509. @echo ""
  510. @echo "$(tS)---> Plugin formats: $(tE)"
  511. @echo "Internal:$(ANS_YES)"
  512. @echo "LADSPA: $(ANS_YES)"
  513. @echo "DSSI: $(ANS_YES)"
  514. @echo "LV2: $(ANS_YES)"
  515. @echo "VST: $(ANS_YES)"
  516. ifeq ($(MACOS_OR_WIN32),true)
  517. @echo "VST3: $(ANS_YES)"
  518. else
  519. @echo "VST3: $(ANS_NO) $(mZ)Windows and MacOS only$(mE)"
  520. endif
  521. ifeq ($(MACOS),true)
  522. @echo "AU: $(ANS_YES)"
  523. else
  524. @echo "AU: $(ANS_NO) $(mZ)MacOS only$(mE)"
  525. endif
  526. @echo ""
  527. @echo "$(tS)---> LV2 UI toolkit support: $(tE)"
  528. # @echo "External:$(ANS_YES) (direct+bridge)"
  529. ifeq ($(HAVE_GTK2),true)
  530. @echo "Gtk2: $(ANS_YES) (bridge)"
  531. else
  532. @echo "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)"
  533. endif
  534. ifeq ($(HAVE_GTK3),true)
  535. @echo "Gtk3: $(ANS_YES) (bridge)"
  536. else
  537. @echo "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)"
  538. endif
  539. ifeq ($(HAVE_QT4),true)
  540. @echo "Qt4: $(ANS_YES) (bridge)"
  541. else
  542. @echo "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)"
  543. endif
  544. ifeq ($(HAVE_QT5),true)
  545. @echo "Qt5: $(ANS_YES) (bridge)"
  546. else
  547. @echo "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)"
  548. endif
  549. ifeq ($(HAVE_X11),true)
  550. @echo "X11: $(ANS_YES) (direct+bridge)"
  551. else
  552. @echo "X11: $(ANS_NO) $(mS)X11 missing$(mE)"
  553. endif
  554. # ifeq ($(MACOS),true)
  555. # @echo "Cocoa: $(ANS_YES) (direct+bridge)"
  556. # else
  557. # @echo "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)"
  558. # endif
  559. # ifeq ($(WIN32),true)
  560. # @echo "Windows: $(ANS_YES) (direct+bridge)"
  561. # else
  562. # @echo "Windows: $(ANS_NO) $(mZ)Windows only$(mE)"
  563. # endif
  564. @echo ""
  565. @echo "$(tS)---> File formats: $(tE)"
  566. ifeq ($(HAVE_LINUXSAMPLER),true)
  567. @echo "GIG:$(ANS_YES)"
  568. else
  569. @echo "GIG:$(ANS_NO) $(mS)LinuxSampler missing$(mE)"
  570. endif
  571. ifeq ($(HAVE_FLUIDSYNTH),true)
  572. @echo "SF2:$(ANS_YES)"
  573. else
  574. @echo "SF2:$(ANS_NO) $(mS)FluidSynth missing$(mE)"
  575. endif
  576. ifeq ($(HAVE_LINUXSAMPLER),true)
  577. @echo "SFZ:$(ANS_YES)"
  578. else
  579. @echo "SFZ:$(ANS_NO) $(mS)LinuxSampler missing$(mE)"
  580. endif
  581. @echo ""
  582. @echo "$(tS)---> Internal plugins: $(tE)"
  583. ifneq ($(WIN32),true)
  584. @echo "Carla-Rack: $(ANS_YES)"
  585. else
  586. @echo "Carla-Rack: $(ANS_NO) $(mS)Not available for Windows$(mE)"
  587. endif
  588. ifeq ($(HAVE_ZYN_DEPS),true)
  589. ifeq ($(HAVE_ZYN_UI_DEPS),true)
  590. @echo "ZynAddSubFX:$(ANS_YES) (with UI)"
  591. else
  592. @echo "ZynAddSubFX:$(ANS_YES) (without UI) $(mS)NTK missing$(mE)"
  593. endif
  594. else
  595. @echo "ZynAddSubFX:$(ANS_NO) $(mS)fftw3, mxml or zlib missing$(mE)"
  596. endif
  597. # --------------------------------------------------------------
  598. .FORCE:
  599. .PHONY: .FORCE
  600. # --------------------------------------------------------------