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

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
11 years ago
11 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  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. SED_PREFIX = $(shell echo $(PREFIX) | sed "s/\//\\\\\\\\\//g")
  11. LINK = ln -sf
  12. PYUIC ?= pyuic4
  13. PYRCC ?= pyrcc4 -py3
  14. # --------------------------------------------------------------
  15. all: CXX RES UI WIDGETS
  16. # --------------------------------------------------------------
  17. # C++ code
  18. CXX: backend bridges discovery
  19. backend:
  20. $(MAKE) -C source/backend
  21. bridges:
  22. $(MAKE) -C source/bridges
  23. discovery:
  24. $(MAKE) -C source/discovery
  25. plugin:
  26. $(MAKE) -C source/plugin
  27. theme:
  28. $(MAKE) -C source/theme
  29. widgets:
  30. $(MAKE) -C source/widgets
  31. posix32:
  32. $(MAKE) -C source/bridges posix32
  33. $(MAKE) -C source/discovery posix32
  34. posix64:
  35. $(MAKE) -C source/bridges posix64
  36. $(MAKE) -C source/discovery posix64
  37. win32:
  38. $(MAKE) -C source/bridges win32
  39. $(MAKE) -C source/discovery win32
  40. win64:
  41. $(MAKE) -C source/bridges win64
  42. $(MAKE) -C source/discovery win64
  43. wine32:
  44. $(MAKE) -C source/libs jackbridge-win32.dll.so
  45. $(LINK) ../libs/jackbridge-win32.dll.so source/bridges/jackbridge-win32.dll
  46. wine64:
  47. $(MAKE) -C source/libs jackbridge-win64.dll.so
  48. $(LINK) ../libs/jackbridge-win64.dll.so source/bridges/jackbridge-win64.dll
  49. # --------------------------------------------------------------
  50. # Resources
  51. RES = source/resources_rc.py
  52. RES: $(RES)
  53. source/%_rc.py: resources/%.qrc
  54. $(PYRCC) $< -o $@
  55. # --------------------------------------------------------------
  56. # UI code
  57. UIs = \
  58. source/ui_carla.py \
  59. source/ui_carla_control.py \
  60. source/ui_carla_about.py \
  61. source/ui_carla_database.py \
  62. source/ui_carla_edit.py \
  63. source/ui_carla_parameter.py \
  64. source/ui_carla_plugin.py \
  65. source/ui_carla_refresh.py \
  66. source/ui_carla_settings.py \
  67. source/ui_carla_settings_driver.py \
  68. source/ui_inputdialog_value.py
  69. UI: $(UIs)
  70. source/ui_%.py: resources/ui/%.ui
  71. $(PYUIC) $< -o $@
  72. # --------------------------------------------------------------
  73. # Widgets
  74. WIDGETS = \
  75. source/canvaspreviewframe.py \
  76. source/digitalpeakmeter.py \
  77. source/ledbutton.py \
  78. source/paramspinbox.py \
  79. source/pixmapbutton.py \
  80. source/pixmapdial.py \
  81. source/pixmapkeyboard.py
  82. WIDGETS: $(WIDGETS)
  83. source/%.py: source/widgets/%.py
  84. $(LINK) widgets/$*.py $@
  85. # --------------------------------------------------------------
  86. clean:
  87. $(MAKE) clean -C source/backend
  88. $(MAKE) clean -C source/bridges
  89. $(MAKE) clean -C source/discovery
  90. $(MAKE) clean -C source/libs
  91. $(MAKE) clean -C source/plugin
  92. $(MAKE) clean -C source/tests
  93. $(MAKE) clean -C source/theme
  94. $(MAKE) clean -C source/widgets
  95. rm -f $(RES)
  96. rm -f $(UIs)
  97. rm -f $(WIDGETS)
  98. rm -f *~ source/*~ source/*.pyc source/*_rc.py source/ui_*.py
  99. # --------------------------------------------------------------
  100. debug:
  101. $(MAKE) DEBUG=true
  102. # --------------------------------------------------------------
  103. install:
  104. # Create directories
  105. install -d $(DESTDIR)$(PREFIX)/bin/
  106. install -d $(DESTDIR)$(PREFIX)/lib/carla/
  107. install -d $(DESTDIR)$(PREFIX)/lib/carla/resources/
  108. install -d $(DESTDIR)$(PREFIX)/lib/carla/resources/nekofilter/
  109. install -d $(DESTDIR)$(PREFIX)/lib/carla/resources/zynaddsubfx/
  110. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  111. install -d $(DESTDIR)$(PREFIX)/lib/dssi/
  112. install -d $(DESTDIR)$(PREFIX)/lib/lv2/
  113. install -d $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  114. install -d $(DESTDIR)$(PREFIX)/lib/vst/
  115. endif
  116. install -d $(DESTDIR)$(PREFIX)/share/applications/
  117. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  118. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  119. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  120. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  121. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  122. install -d $(DESTDIR)$(PREFIX)/share/carla/
  123. # Install script files
  124. install -m 755 \
  125. data/carla \
  126. data/carla-control \
  127. data/carla-single \
  128. $(DESTDIR)$(PREFIX)/bin/
  129. # Install desktop files
  130. install -m 644 data/*.desktop $(DESTDIR)$(PREFIX)/share/applications/
  131. # Install icons, 16x16
  132. install -m 644 resources/16x16/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  133. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  134. # Install icons, 48x48
  135. install -m 644 resources/48x48/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  136. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  137. # Install icons, 128x128
  138. install -m 644 resources/128x128/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  139. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  140. # Install icons, 256x256
  141. install -m 644 resources/256x256/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  142. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  143. # Install icons, scalable
  144. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  145. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  146. # Install binaries
  147. install -m 755 \
  148. source/backend/*.so \
  149. source/bridges/carla-bridge-* \
  150. source/discovery/carla-discovery-* \
  151. $(DESTDIR)$(PREFIX)/lib/carla/
  152. # Install python code
  153. install -m 755 source/*.py $(DESTDIR)$(PREFIX)/share/carla/
  154. # Install resources
  155. install -m 644 source/backend/resources/nekofilter-ui $(DESTDIR)$(PREFIX)/lib/carla/resources/
  156. install -m 644 source/backend/resources/nekofilter/*.png $(DESTDIR)$(PREFIX)/lib/carla/resources/nekofilter/
  157. install -m 644 source/backend/resources/zynaddsubfx/*.png $(DESTDIR)$(PREFIX)/lib/carla/resources/zynaddsubfx/
  158. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  159. # Install plugin
  160. install -m 644 source/plugin/carla-dssi.so $(DESTDIR)$(PREFIX)/lib/dssi/
  161. install -m 644 source/plugin/carla-vst.so $(DESTDIR)$(PREFIX)/lib/vst/
  162. install -m 644 source/plugin/carla.lv2/* $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  163. endif
  164. # Adjust PREFIX value in script files
  165. sed -i "s/X-PREFIX-X/$(SED_PREFIX)/" \
  166. $(DESTDIR)$(PREFIX)/bin/carla \
  167. $(DESTDIR)$(PREFIX)/bin/carla-control \
  168. $(DESTDIR)$(PREFIX)/bin/carla-single
  169. # --------------------------------------------------------------
  170. uninstall:
  171. rm -f $(DESTDIR)$(PREFIX)/bin/carla*
  172. rm -f $(DESTDIR)$(PREFIX)/share/applications/carla.desktop
  173. rm -f $(DESTDIR)$(PREFIX)/share/applications/carla-control.desktop
  174. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla.png
  175. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla-control.png
  176. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla.svg
  177. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla-control.svg
  178. rm -f $(DESTDIR)$(PREFIX)/lib/dssi/carla-dssi.so
  179. rm -f $(DESTDIR)$(PREFIX)/lib/vst/carla-vst.so
  180. rm -rf $(DESTDIR)$(PREFIX)/lib/carla/
  181. rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
  182. rm -rf $(DESTDIR)$(PREFIX)/share/carla/
  183. # --------------------------------------------------------------
  184. ANS_NO=\033[31m NO \033[0m
  185. ANS_YES=\033[32m YES \033[0m
  186. mS=\033[33m[
  187. mE=]\033[0m
  188. features:
  189. ifeq ($(MACOS),true)
  190. # --- MacOS ---
  191. @echo "\033[36m---> Engine drivers: (MacOS)\033[0m"
  192. @echo "JACK: $(ANS_YES)"
  193. ifeq ($(CARLA_RTAUDIO_SUPPORT),true)
  194. @echo "CoreAudio:$(ANS_YES)"
  195. else
  196. @echo "CoreAudio:$(ANS_NO) $(mS)RtAudio disabled$(mE)"
  197. endif
  198. # --- MacOS ---
  199. else
  200. # --- Win32 ---
  201. ifeq ($(WIN32),true)
  202. @echo "\033[36m---> Engine drivers: (Windows)\033[0m"
  203. @echo "JACK: $(ANS_YES)"
  204. ifeq ($(CARLA_RTAUDIO_SUPPORT),true)
  205. @echo "ASIO: $(ANS_YES)"
  206. @echo "DirectSound:$(ANS_YES)"
  207. else
  208. @echo "ASIO: $(ANS_NO) $(mS)RtAudio disabled$(mE)"
  209. @echo "DirectSound:$(ANS_NO) $(mS)RtAudio disabled$(mE)"
  210. endif
  211. # --- Win32 ---
  212. else
  213. # --- Others ---
  214. @echo "\033[36m---> Engine drivers: \033[0m"
  215. @echo "JACK: $(ANS_YES)"
  216. ifeq ($(CARLA_RTAUDIO_SUPPORT),true)
  217. ifeq ($(HAVE_ALSA),true)
  218. @echo "ALSA: $(ANS_YES)"
  219. else
  220. @echo "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)"
  221. endif
  222. ifeq ($(HAVE_PULSEAUDIO),true)
  223. @echo "PulseAudio:$(ANS_YES)"
  224. else
  225. @echo "PulseAudio:$(ANS_NO) $(mS)Missing PulseAudio$(mE)"
  226. endif
  227. else
  228. @echo "ALSA: $(ANS_NO) $(mS)RtAudio disabled$(mE)"
  229. @echo "PulseAudio:$(ANS_NO) $(mS)RtAudio disabled$(mE)"
  230. endif
  231. # --- Others ---
  232. endif
  233. @echo ""
  234. endif
  235. @echo "\033[36m---> Plugin formats: \033[0m"
  236. @echo "Internal:$(ANS_YES)"
  237. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  238. @echo "LADSPA: $(ANS_YES)"
  239. @echo "DSSI: $(ANS_YES)"
  240. @echo "LV2: $(ANS_YES)"
  241. @echo "VST: $(ANS_YES)"
  242. else
  243. @echo "LADSPA: $(ANS_NO) $(mS)Plugins disabled$(mE)"
  244. @echo "DSSI: $(ANS_NO) $(mS)Plugins disabled$(mE)"
  245. @echo "LV2: $(ANS_NO) $(mS)Plugins disabled$(mE)"
  246. @echo "VST: $(ANS_NO) $(mS)Plugins disabled$(mE)"
  247. endif
  248. @echo ""
  249. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  250. @echo "\033[36m---> LV2 UI toolkit support: \033[0m"
  251. ifeq ($(MACOS),true)
  252. # --- MacOS ---
  253. @echo "Cocoa:$(ANS_YES)"
  254. # --- MacOS ---
  255. else
  256. # --- Win32 ---
  257. ifeq ($(WIN32),true)
  258. # --- Win32 ---
  259. @echo "Windows:$(ANS_YES)"
  260. else
  261. # --- Others ---
  262. ifeq ($(HAVE_GTK2),true)
  263. @echo "Gtk2:$(ANS_YES)"
  264. else
  265. @echo "Gtk2:$(ANS_NO) $(mS)Gtk2 missing$(mE)"
  266. endif
  267. ifeq ($(HAVE_GTK3),true)
  268. @echo "Gtk3:$(ANS_YES)"
  269. else
  270. @echo "Gtk3:$(ANS_NO) $(mS)Gtk3 missing$(mE)"
  271. endif
  272. ifeq ($(HAVE_QT4),true)
  273. @echo "Qt4: $(ANS_YES)"
  274. else
  275. @echo "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)"
  276. endif
  277. ifeq ($(HAVE_QT5),true)
  278. @echo "Qt5: $(ANS_YES)"
  279. else
  280. @echo "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)"
  281. endif
  282. @echo "X11: $(ANS_YES)"
  283. endif
  284. # --- Others ---
  285. endif
  286. @echo ""
  287. endif
  288. @echo "\033[36m---> Sample formats: \033[0m"
  289. ifeq ($(CARLA_SAMPLERS_SUPPORT),true)
  290. ifeq ($(HAVE_LINUXSAMPLER),true)
  291. @echo "GIG:$(ANS_YES)"
  292. else
  293. @echo "GIG:$(ANS_NO) $(mS)LinuxSampler missing$(mE)"
  294. endif
  295. ifeq ($(HAVE_FLUIDSYNTH),true)
  296. @echo "SF2:$(ANS_YES)"
  297. else
  298. @echo "SF2:$(ANS_NO) $(mS)FluidSynth missing$(mE)"
  299. endif
  300. ifeq ($(HAVE_LINUXSAMPLER),true)
  301. @echo "SFZ:$(ANS_YES)"
  302. else
  303. @echo "SFZ:$(ANS_NO) $(mS)LinuxSampler missing$(mE)"
  304. endif
  305. else
  306. @echo "GIG:$(ANS_NO) $(mS)Samplers disabled$(mE)"
  307. @echo "SF2:$(ANS_NO) $(mS)Samplers disabled$(mE)"
  308. @echo "SFZ:$(ANS_NO) $(mS)Samplers disabled$(mE)"
  309. endif
  310. @echo ""
  311. @echo "\033[36m---> Internal plugins: \033[0m"
  312. ifeq ($(HAVE_AF_DEPS),true)
  313. ifeq ($(HAVE_FFMPEG),true)
  314. @echo "AudioFile: $(ANS_YES) (with ffmpeg)"
  315. else
  316. @echo "AudioFIle: $(ANS_YES) (without ffmpeg) $(mS)ffmpeg/libav missing$(mE)"
  317. endif
  318. else
  319. @echo "AudioFIle: $(ANS_NO) $(mS)libsndfile missing$(mE)"
  320. endif
  321. ifeq ($(HAVE_MF_DEPS),true)
  322. @echo "MidiFile: $(ANS_YES)"
  323. else
  324. @echo "MidiFile: $(ANS_NO) $(mS)libsmf missing$(mE)"
  325. endif
  326. ifeq ($(HAVE_OPENGL),true)
  327. @echo "DISTRHO: $(ANS_YES)"
  328. else
  329. @echo "DISTRHO: $(ANS_NO) $(mS)OpenGL missing$(mE)"
  330. endif
  331. ifeq ($(HAVE_ZYN_DEPS),true)
  332. ifeq ($(HAVE_ZYN_UI_DEPS),true)
  333. @echo "ZynAddSubFX:$(ANS_YES) (with UI)"
  334. else
  335. @echo "ZynAddSubFX:$(ANS_YES) (without UI) $(mS)NTK missing$(mE)"
  336. endif
  337. else
  338. @echo "ZynAddSubFX:$(ANS_NO) $(mS)fftw-3, mxml or zlib missing$(mE)"
  339. endif