Collection of tools useful for audio production
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.

252 lines
11KB

  1. #!/usr/bin/make -f
  2. # Makefile for Cadence #
  3. # ---------------------- #
  4. # Created by falkTX
  5. #
  6. PREFIX = /usr/local
  7. DESTDIR =
  8. LINK = ln -s
  9. PYUIC ?= pyuic5
  10. PYRCC ?= pyrcc5
  11. PYLUPDATE ?= pylupdate5
  12. LRELEASE ?= lrelease
  13. # Detect X11 rules dir
  14. ifeq "$(wildcard /etc/X11/Xsession.d/ )" ""
  15. X11_RC_DIR = $(DESTDIR)/etc/X11/xinit/xinitrc.d/
  16. else
  17. X11_RC_DIR = $(DESTDIR)/etc/X11/Xsession.d/
  18. endif
  19. # -----------------------------------------------------------------------------------------------------------------------------------------
  20. # Internationalization
  21. I18N_LANGUAGES :=
  22. # -----------------------------------------------------------------------------------------------------------------------------------------
  23. all: CPP RES QM UI
  24. # -----------------------------------------------------------------------------------------------------------------------------------------
  25. # C++ code
  26. CPP: jackmeter xycontroller
  27. jackmeter:
  28. $(MAKE) -C c++/jackmeter
  29. xycontroller:
  30. $(MAKE) -C c++/xycontroller
  31. # -----------------------------------------------------------------------------------------------------------------------------------------
  32. # Resources
  33. RES: src/resources_rc.py
  34. src/resources_rc.py: resources/resources.qrc
  35. $(PYRCC) $< -o $@
  36. # -----------------------------------------------------------------------------------------------------------------------------------------
  37. # Translations
  38. TS: $(patsubst %,resources/translations/cadence_%.ts,$(I18N_LANGUAGES))
  39. QM: $(patsubst %,resources/translations/cadence_%.qm,$(I18N_LANGUAGES))
  40. resources/translations/%.ts:
  41. @install -d resources/translations
  42. $(PYLUPDATE) src/*.py resources/ui/*.ui -ts $@
  43. resources/translations/%.qm: resources/translations/%.ts
  44. $(LRELEASE) $< -qm $@
  45. # -----------------------------------------------------------------------------------------------------------------------------------------
  46. # UI code
  47. UI: cadence catarina catia claudia tools
  48. cadence: src/ui_cadence.py \
  49. src/ui_cadence_tb_jack.py src/ui_cadence_tb_alsa.py src/ui_cadence_tb_a2j.py src/ui_cadence_tb_pa.py \
  50. src/ui_cadence_rwait.py
  51. catarina: src/ui_catarina.py \
  52. src/ui_catarina_addgroup.py src/ui_catarina_removegroup.py src/ui_catarina_renamegroup.py \
  53. src/ui_catarina_addport.py src/ui_catarina_removeport.py src/ui_catarina_renameport.py \
  54. src/ui_catarina_connectports.py src/ui_catarina_disconnectports.py
  55. catia: src/ui_catia.py
  56. claudia: src/ui_claudia.py \
  57. src/ui_claudia_studioname.py src/ui_claudia_studiolist.py \
  58. src/ui_claudia_createroom.py src/ui_claudia_projectname.py src/ui_claudia_projectproperties.py \
  59. src/ui_claudia_runcustom.py src/ui_claudia_launcher.py src/ui_claudia_launcher_app.py
  60. tools: \
  61. src/ui_logs.py src/ui_render.py \
  62. src/ui_settings_app.py src/ui_settings_jack.py
  63. src/ui_%.py: resources/ui/%.ui
  64. $(PYUIC) $< -o $@
  65. # -----------------------------------------------------------------------------------------------------------------------------------------
  66. clean:
  67. $(MAKE) clean -C c++/jackmeter
  68. $(MAKE) clean -C c++/xycontroller
  69. rm -f *~ src/*~ src/*.pyc src/ui_*.py src/resources_rc.py resources/translations/*.qm
  70. # -----------------------------------------------------------------------------------------------------------------------------------------
  71. debug:
  72. $(MAKE) DEBUG=true
  73. # -----------------------------------------------------------------------------------------------------------------------------------------
  74. install:
  75. # Create directories
  76. install -d $(DESTDIR)/etc/xdg/autostart/
  77. install -d $(DESTDIR)$(PREFIX)/bin/
  78. install -d $(DESTDIR)$(PREFIX)/share/applications/
  79. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  80. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  81. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  82. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  83. install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  84. install -d $(DESTDIR)$(PREFIX)/share/cadence/
  85. install -d $(DESTDIR)$(PREFIX)/share/cadence/src/
  86. install -d $(DESTDIR)$(PREFIX)/share/cadence/pulse2jack/
  87. install -d $(DESTDIR)$(PREFIX)/share/cadence/pulse2loopback/
  88. install -d $(DESTDIR)$(PREFIX)/share/cadence/icons/
  89. install -d $(DESTDIR)$(PREFIX)/share/cadence/templates/
  90. install -d $(DESTDIR)$(PREFIX)/share/cadence/translations/
  91. install -d $(X11_RC_DIR)
  92. # Install script files and binaries
  93. install -m 755 \
  94. data/cadence \
  95. data/cadence-aloop-daemon \
  96. data/cadence-jacksettings \
  97. data/cadence-logs \
  98. data/cadence-pulse2jack \
  99. data/cadence-pulse2loopback \
  100. data/cadence-render \
  101. data/cadence-session-start \
  102. data/catarina \
  103. data/catia \
  104. data/claudia \
  105. data/claudia-launcher \
  106. c++/jackmeter/cadence-jackmeter \
  107. c++/xycontroller/cadence-xycontroller \
  108. $(DESTDIR)$(PREFIX)/bin/
  109. # Install desktop files
  110. install -m 644 data/autostart/*.desktop $(DESTDIR)/etc/xdg/autostart/
  111. install -m 644 data/*.desktop $(DESTDIR)$(PREFIX)/share/applications/
  112. # Install icons, 16x16
  113. install -m 644 resources/16x16/cadence.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  114. install -m 644 resources/16x16/catarina.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  115. install -m 644 resources/16x16/catia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  116. install -m 644 resources/16x16/claudia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  117. install -m 644 resources/16x16/claudia-launcher.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
  118. # Install icons, 48x48
  119. install -m 644 resources/48x48/cadence.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  120. install -m 644 resources/48x48/catarina.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  121. install -m 644 resources/48x48/catia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  122. install -m 644 resources/48x48/claudia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  123. install -m 644 resources/48x48/claudia-launcher.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
  124. # Install icons, 128x128
  125. install -m 644 resources/128x128/cadence.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  126. install -m 644 resources/128x128/catarina.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  127. install -m 644 resources/128x128/catia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  128. install -m 644 resources/128x128/claudia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  129. install -m 644 resources/128x128/claudia-launcher.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
  130. # Install icons, 256x256
  131. install -m 644 resources/256x256/cadence.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  132. install -m 644 resources/256x256/catarina.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  133. install -m 644 resources/256x256/catia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  134. install -m 644 resources/256x256/claudia.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  135. install -m 644 resources/256x256/claudia-launcher.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
  136. # Install icons, scalable
  137. install -m 644 resources/scalable/cadence.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  138. install -m 644 resources/scalable/catarina.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  139. install -m 644 resources/scalable/catia.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  140. install -m 644 resources/scalable/claudia.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  141. install -m 644 resources/scalable/claudia-launcher.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
  142. # Install main code
  143. install -m 644 src/*.py $(DESTDIR)$(PREFIX)/share/cadence/src/
  144. # Install translations
  145. $(foreach l,$(I18N_LANGUAGES),install -m 644 \
  146. resources/translations/cadence_$(l).qm \
  147. $(DESTDIR)$(PREFIX)/share/cadence/translations/)
  148. # Install addtional stuff for Cadence
  149. install -m 644 data/pulse2jack/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2jack/
  150. install -m 644 data/pulse2loopback/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2loopback/
  151. install -m 755 data/61-cadence-session-inject.sh $(X11_RC_DIR)
  152. # Install addtional stuff for Claudia
  153. cp -r data/icons/* $(DESTDIR)$(PREFIX)/share/cadence/icons/
  154. cp -r data/templates/* $(DESTDIR)$(PREFIX)/share/cadence/templates/
  155. # Adjust PREFIX value in script files
  156. sed -i "s?X-PREFIX-X?$(PREFIX)?" \
  157. $(DESTDIR)$(PREFIX)/bin/cadence \
  158. $(DESTDIR)$(PREFIX)/bin/cadence-aloop-daemon \
  159. $(DESTDIR)$(PREFIX)/bin/cadence-jacksettings \
  160. $(DESTDIR)$(PREFIX)/bin/cadence-logs \
  161. $(DESTDIR)$(PREFIX)/bin/cadence-pulse2jack \
  162. $(DESTDIR)$(PREFIX)/bin/cadence-pulse2loopback \
  163. $(DESTDIR)$(PREFIX)/bin/cadence-render \
  164. $(DESTDIR)$(PREFIX)/bin/cadence-session-start \
  165. $(DESTDIR)$(PREFIX)/bin/catarina \
  166. $(DESTDIR)$(PREFIX)/bin/catia \
  167. $(DESTDIR)$(PREFIX)/bin/claudia \
  168. $(DESTDIR)$(PREFIX)/bin/claudia-launcher \
  169. $(X11_RC_DIR)/61-cadence-session-inject.sh
  170. # Delete old scripts
  171. rm -f $(X11_RC_DIR)/21cadence-session-inject
  172. rm -f $(X11_RC_DIR)/61cadence-session-inject
  173. rm -f $(X11_RC_DIR)/70cadence-plugin-paths
  174. rm -f $(X11_RC_DIR)/99cadence-session-start
  175. # -----------------------------------------------------------------------------------------------------------------------------------------
  176. uninstall:
  177. rm -f $(DESTDIR)$(PREFIX)/bin/cadence*
  178. rm -f $(DESTDIR)$(PREFIX)/bin/catarina
  179. rm -f $(DESTDIR)$(PREFIX)/bin/catia
  180. rm -f $(DESTDIR)$(PREFIX)/bin/claudia*
  181. rm -f $(DESTDIR)$(PREFIX)/share/applications/cadence.desktop
  182. rm -f $(DESTDIR)$(PREFIX)/share/applications/catarina.desktop
  183. rm -f $(DESTDIR)$(PREFIX)/share/applications/catia.desktop
  184. rm -f $(DESTDIR)$(PREFIX)/share/applications/claudia.desktop
  185. rm -f $(DESTDIR)$(PREFIX)/share/applications/claudia-launcher.desktop
  186. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/cadence.png
  187. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/catarina.png
  188. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/catia.png
  189. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/claudia.png
  190. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/claudia-launcher.png
  191. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/cadence.svg
  192. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/catarina.svg
  193. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/catia.svg
  194. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/claudia.svg
  195. rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/claudia-launcher.svg
  196. rm -f $(DESTDIR)/etc/xdg/autostart/cadence-session-start.desktop
  197. rm -f $(X11_RC_DIR)/61-cadence-session-inject.sh
  198. rm -rf $(DESTDIR)$(PREFIX)/share/cadence/
  199. # Delete old scripts
  200. rm -f $(X11_RC_DIR)/21cadence-session-inject
  201. rm -f $(X11_RC_DIR)/61cadence-session-inject
  202. rm -f $(X11_RC_DIR)/70cadence-plugin-paths
  203. rm -f $(X11_RC_DIR)/99cadence-session-start