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