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

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
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
9 years ago
9 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892
  1. #!/usr/bin/make -f
  2. # Makefile for Carla #
  3. # ------------------ #
  4. # Created by falkTX
  5. #
  6. CWD=source
  7. include source/Makefile.mk
  8. # ---------------------------------------------------------------------------------------------------------------------
  9. PREFIX := /usr/local
  10. BINDIR := $(PREFIX)/bin
  11. LIBDIR := $(PREFIX)/lib
  12. DATADIR := $(PREFIX)/share
  13. INCLUDEDIR := $(PREFIX)/include
  14. DESTDIR :=
  15. ifeq ($(DEBUG),true)
  16. MODULEDIR := $(CURDIR)/build/modules/Debug
  17. else
  18. MODULEDIR := $(CURDIR)/build/modules/Release
  19. endif
  20. # see also source/frontend/carla_shared.py and source/includes/CarlaDefines.h
  21. VERSION := 2.5.5
  22. -include Makefile.user.mk
  23. # ---------------------------------------------------------------------------------------------------------------------
  24. all: backend discovery bridges-plugin bridges-ui frontend interposer libjack plugin theme
  25. # ---------------------------------------------------------------------------------------------------------------------
  26. # Binaries (native)
  27. ifneq ($(STATIC_PLUGIN_TARGET),true)
  28. ALL_LIBS += $(MODULEDIR)/carla_engine.a
  29. endif
  30. ALL_LIBS += $(MODULEDIR)/carla_engine_plugin.a
  31. ALL_LIBS += $(MODULEDIR)/carla_plugin.a
  32. ALL_LIBS += $(MODULEDIR)/jackbridge.a
  33. ifeq ($(STATIC_PLUGIN_TARGET),true)
  34. ALL_LIBS += $(MODULEDIR)/jackbridge.min.a
  35. endif
  36. ALL_LIBS += $(MODULEDIR)/native-plugins.a
  37. ALL_LIBS += $(MODULEDIR)/rtmempool.a
  38. 3RD_LIBS += $(MODULEDIR)/audio_decoder.a
  39. 3RD_LIBS += $(MODULEDIR)/lilv.a
  40. 3RD_LIBS += $(MODULEDIR)/sfzero.a
  41. 3RD_LIBS += $(MODULEDIR)/water.a
  42. 3RD_LIBS += $(MODULEDIR)/zita-resampler.a
  43. ifeq ($(HAVE_DGL),true)
  44. ifneq ($(USING_CUSTOM_DPF),true)
  45. 3RD_LIBS += $(MODULEDIR)/dgl.a
  46. endif
  47. endif
  48. ifeq ($(HAVE_HYLIA),true)
  49. 3RD_LIBS += $(MODULEDIR)/hylia.a
  50. endif
  51. ifeq ($(HAVE_QT4),true)
  52. 3RD_LIBS += $(MODULEDIR)/theme.qt4.a
  53. endif
  54. ifeq ($(HAVE_QT5),true)
  55. 3RD_LIBS += $(MODULEDIR)/theme.qt5.a
  56. endif
  57. ifeq ($(USING_JUCE),true)
  58. 3RD_LIBS += $(MODULEDIR)/carla_juce.a
  59. 3RD_LIBS += $(MODULEDIR)/juce_audio_basics.a
  60. ifeq ($(USING_JUCE_AUDIO_DEVICES),true)
  61. 3RD_LIBS += $(MODULEDIR)/juce_audio_devices.a
  62. endif
  63. 3RD_LIBS += $(MODULEDIR)/juce_audio_processors.a
  64. 3RD_LIBS += $(MODULEDIR)/juce_core.a
  65. 3RD_LIBS += $(MODULEDIR)/juce_data_structures.a
  66. 3RD_LIBS += $(MODULEDIR)/juce_events.a
  67. 3RD_LIBS += $(MODULEDIR)/juce_graphics.a
  68. 3RD_LIBS += $(MODULEDIR)/juce_gui_basics.a
  69. 3RD_LIBS += $(MODULEDIR)/juce_gui_extra.a
  70. endif
  71. ifeq ($(USING_RTAUDIO),true)
  72. 3RD_LIBS += $(MODULEDIR)/rtaudio.a
  73. 3RD_LIBS += $(MODULEDIR)/rtmidi.a
  74. endif
  75. 3RD_LIBS += $(MODULEDIR)/ysfx.a
  76. ALL_LIBS += $(3RD_LIBS)
  77. 3rd: $(3RD_LIBS)
  78. @$(MAKE) -C source/theme
  79. ifeq ($(HAVE_QT4),true)
  80. @$(MAKE) -C source/bridges-ui ui_lv2-qt4
  81. endif
  82. libs: $(ALL_LIBS)
  83. $(MODULEDIR)/carla_engine.a: .FORCE
  84. @$(MAKE) -C source/backend/engine
  85. $(MODULEDIR)/carla_engine_plugin.a: $(MODULEDIR)/carla_engine.a
  86. @$(MAKE) -C source/backend/engine
  87. $(MODULEDIR)/carla_plugin.a: .FORCE
  88. @$(MAKE) -C source/backend/plugin
  89. $(MODULEDIR)/jackbridge.a: .FORCE
  90. @$(MAKE) -C source/jackbridge
  91. $(MODULEDIR)/jackbridge.%.a: $(MODULEDIR)/jackbridge.a
  92. @$(MAKE) -C source/jackbridge $*
  93. $(MODULEDIR)/native-plugins.a: .FORCE
  94. @$(MAKE) -C source/native-plugins
  95. $(MODULEDIR)/theme.qt4.a: .FORCE
  96. @$(MAKE) -C source/theme qt4
  97. $(MODULEDIR)/theme.qt5.a: .FORCE
  98. @$(MAKE) -C source/theme qt5
  99. $(MODULEDIR)/%.arm32.a: .FORCE
  100. ifneq ($(WINDOWS),true)
  101. @$(MAKE) -C source/modules/$* arm32
  102. else
  103. $(error Trying to build ARM binaries with a Windows toolchain, this cannot work)
  104. endif
  105. $(MODULEDIR)/%.posix32.a: .FORCE
  106. ifneq ($(WINDOWS),true)
  107. @$(MAKE) -C source/modules/$* posix32
  108. else
  109. $(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
  110. endif
  111. $(MODULEDIR)/%.posix64.a: .FORCE
  112. ifneq ($(WINDOWS),true)
  113. @$(MAKE) -C source/modules/$* posix64
  114. else
  115. $(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
  116. endif
  117. $(MODULEDIR)/%.win32.a: .FORCE
  118. ifeq ($(WINDOWS),true)
  119. @$(MAKE) -C source/modules/$* win32
  120. else
  121. $(error Trying to build Windows binaries with a regular toolchain, this cannot work)
  122. endif
  123. $(MODULEDIR)/%.win64.a: .FORCE
  124. ifeq ($(WINDOWS),true)
  125. @$(MAKE) -C source/modules/$* win64
  126. else
  127. $(error Trying to build Windows binaries with a regular toolchain, this cannot work)
  128. endif
  129. $(MODULEDIR)/dgl.wine.a: .FORCE
  130. @$(MAKE) -C source/modules/dgl wine
  131. $(MODULEDIR)/water.files.a: .FORCE
  132. @$(MAKE) -C source/modules/water files
  133. $(MODULEDIR)/%.a: .FORCE
  134. @$(MAKE) -C source/modules/$*
  135. # ---------------------------------------------------------------------------------------------------------------------
  136. backend: libs
  137. @$(MAKE) -C source/backend
  138. bridges-plugin: libs
  139. @$(MAKE) -C source/bridges-plugin
  140. bridges-ui: libs
  141. @$(MAKE) -C source/bridges-ui
  142. discovery: libs
  143. @$(MAKE) -C source/discovery
  144. frontend: libs
  145. ifeq ($(HAVE_PYQT),true)
  146. @$(MAKE) -C source/frontend
  147. endif
  148. interposer:
  149. ifeq ($(LINUX),true)
  150. @$(MAKE) -C source/interposer
  151. endif
  152. libjack: libs
  153. @$(MAKE) -C source/libjack
  154. lv2-bundles-dep: $(MODULEDIR)/audio_decoder.a $(MODULEDIR)/water.a $(MODULEDIR)/zita-resampler.a
  155. @$(MAKE) -C source/native-plugins bundles
  156. lv2-bundles: lv2-bundles-dep
  157. @$(MAKE) -C source/plugin bundles
  158. plugin: backend bridges-plugin bridges-ui discovery
  159. @$(MAKE) -C source/plugin
  160. ifeq ($(WINDOWS),true)
  161. plugin-wine:
  162. @$(MAKE) -C source/plugin wine
  163. else
  164. plugin-wine: $(MODULEDIR)/dgl.wine.a
  165. @$(MAKE) -C source/plugin wine
  166. endif
  167. rest: libs
  168. @$(MAKE) -C source/rest
  169. theme: libs
  170. @$(MAKE) -C source/theme
  171. # ---------------------------------------------------------------------------------------------------------------------
  172. # static targets
  173. static-backend: libs
  174. @$(MAKE) -C source/backend static
  175. static-plugin: static-backend
  176. @$(MAKE) -C source/plugin static
  177. # ---------------------------------------------------------------------------------------------------------------------
  178. # hacks
  179. msys2fix:
  180. rm -rf source/includes/serd
  181. rm -rf source/includes/sord
  182. rm -rf source/includes/sratom
  183. rm -rf source/includes/lilv
  184. cp -r source/modules/lilv/serd-0.24.0/serd source/includes/serd
  185. cp -r source/modules/lilv/sord-0.16.0/sord source/includes/sord
  186. cp -r source/modules/lilv/sratom-0.6.0/sratom source/includes/sratom
  187. cp -r source/modules/lilv/lilv-0.24.0/lilv source/includes/lilv
  188. # ---------------------------------------------------------------------------------------------------------------------
  189. # Binaries (arm32)
  190. LIBS_ARM32 = $(MODULEDIR)/jackbridge.arm32.a
  191. LIBS_ARM32 += $(MODULEDIR)/lilv.arm32.a
  192. LIBS_ARM32 += $(MODULEDIR)/rtmempool.arm32.a
  193. LIBS_ARM32 += $(MODULEDIR)/water.arm32.a
  194. arm32: $(LIBS_ARM32)
  195. $(MAKE) -C source/bridges-plugin arm32
  196. $(MAKE) -C source/discovery arm32
  197. # ---------------------------------------------------------------------------------------------------------------------
  198. # Binaries (posix32)
  199. LIBS_POSIX32 = $(MODULEDIR)/jackbridge.posix32.a
  200. LIBS_POSIX32 += $(MODULEDIR)/lilv.posix32.a
  201. LIBS_POSIX32 += $(MODULEDIR)/rtmempool.posix32.a
  202. LIBS_POSIX32 += $(MODULEDIR)/water.posix32.a
  203. ifeq ($(USING_JUCE),true)
  204. LIBS_POSIX32 += $(MODULEDIR)/carla_juce.posix32.a
  205. LIBS_POSIX32 += $(MODULEDIR)/juce_audio_basics.posix32.a
  206. LIBS_POSIX32 += $(MODULEDIR)/juce_audio_processors.posix32.a
  207. LIBS_POSIX32 += $(MODULEDIR)/juce_data_structures.posix32.a
  208. LIBS_POSIX32 += $(MODULEDIR)/juce_core.posix32.a
  209. LIBS_POSIX32 += $(MODULEDIR)/juce_events.posix32.a
  210. LIBS_POSIX32 += $(MODULEDIR)/juce_graphics.posix32.a
  211. LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a
  212. LIBS_POSIX32 += $(MODULEDIR)/juce_gui_extra.posix32.a
  213. endif
  214. posix32: $(LIBS_POSIX32)
  215. $(MAKE) -C source/bridges-plugin posix32
  216. $(MAKE) -C source/discovery posix32
  217. # ---------------------------------------------------------------------------------------------------------------------
  218. # Binaries (posix64)
  219. LIBS_POSIX64 = $(MODULEDIR)/jackbridge.posix64.a
  220. LIBS_POSIX64 += $(MODULEDIR)/lilv.posix64.a
  221. LIBS_POSIX64 += $(MODULEDIR)/rtmempool.posix64.a
  222. LIBS_POSIX64 += $(MODULEDIR)/water.posix64.a
  223. ifeq ($(USING_JUCE),true)
  224. LIBS_POSIX64 += $(MODULEDIR)/carla_juce.posix64.a
  225. LIBS_POSIX64 += $(MODULEDIR)/juce_audio_basics.posix64.a
  226. LIBS_POSIX64 += $(MODULEDIR)/juce_audio_processors.posix64.a
  227. LIBS_POSIX64 += $(MODULEDIR)/juce_data_structures.posix64.a
  228. LIBS_POSIX64 += $(MODULEDIR)/juce_core.posix64.a
  229. LIBS_POSIX64 += $(MODULEDIR)/juce_events.posix64.a
  230. LIBS_POSIX64 += $(MODULEDIR)/juce_graphics.posix64.a
  231. LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a
  232. LIBS_POSIX64 += $(MODULEDIR)/juce_gui_extra.posix64.a
  233. endif
  234. posix64: $(LIBS_POSIX64)
  235. $(MAKE) -C source/bridges-plugin posix64
  236. $(MAKE) -C source/discovery posix64
  237. # ---------------------------------------------------------------------------------------------------------------------
  238. # Binaries (win32)
  239. LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a
  240. LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a
  241. LIBS_WIN32 += $(MODULEDIR)/water.win32.a
  242. ifeq ($(USING_JUCE),true)
  243. LIBS_WIN32 += $(MODULEDIR)/carla_juce.win32.a
  244. LIBS_WIN32 += $(MODULEDIR)/juce_audio_basics.win32.a
  245. LIBS_WIN32 += $(MODULEDIR)/juce_audio_processors.win32.a
  246. LIBS_WIN32 += $(MODULEDIR)/juce_data_structures.win32.a
  247. LIBS_WIN32 += $(MODULEDIR)/juce_core.win32.a
  248. LIBS_WIN32 += $(MODULEDIR)/juce_events.win32.a
  249. LIBS_WIN32 += $(MODULEDIR)/juce_graphics.win32.a
  250. LIBS_WIN32 += $(MODULEDIR)/juce_gui_basics.win32.a
  251. LIBS_WIN32 += $(MODULEDIR)/juce_gui_extra.win32.a
  252. endif
  253. LIBS_WINE32 = $(LIBS_WIN32) $(MODULEDIR)/jackbridge.win32e.a
  254. LIBS_RWIN32 = $(LIBS_WIN32) $(MODULEDIR)/jackbridge.win32.a
  255. ifeq ($(CC),x86_64-w64-mingw32-gcc)
  256. win32:
  257. $(MAKE) AR=i686-w64-mingw32-ar CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ win32-i686
  258. win32r:
  259. $(MAKE) AR=i686-w64-mingw32-ar CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ win32r-i686
  260. else
  261. win32: win32-i686
  262. win32r: win32r-i686
  263. endif
  264. win32-i686: $(LIBS_WINE32)
  265. $(MAKE) BUILDING_FOR_WINE=true -C source/bridges-plugin win32
  266. $(MAKE) BUILDING_FOR_WINE=true -C source/discovery win32
  267. win32r-i686: $(LIBS_RWIN32)
  268. $(MAKE) -C source/bridges-plugin win32
  269. $(MAKE) -C source/discovery win32
  270. # ---------------------------------------------------------------------------------------------------------------------
  271. # Binaries (win64)
  272. LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a
  273. LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a
  274. LIBS_WIN64 += $(MODULEDIR)/water.win64.a
  275. ifeq ($(USING_JUCE),true)
  276. LIBS_WIN64 += $(MODULEDIR)/carla_juce.win64.a
  277. LIBS_WIN64 += $(MODULEDIR)/juce_audio_basics.win64.a
  278. LIBS_WIN64 += $(MODULEDIR)/juce_audio_processors.win64.a
  279. LIBS_WIN64 += $(MODULEDIR)/juce_data_structures.win64.a
  280. LIBS_WIN64 += $(MODULEDIR)/juce_core.win64.a
  281. LIBS_WIN64 += $(MODULEDIR)/juce_events.win64.a
  282. LIBS_WIN64 += $(MODULEDIR)/juce_graphics.win64.a
  283. LIBS_WIN64 += $(MODULEDIR)/juce_gui_basics.win64.a
  284. LIBS_WIN64 += $(MODULEDIR)/juce_gui_extra.win64.a
  285. endif
  286. LIBS_WINE64 = $(LIBS_WIN64) $(MODULEDIR)/jackbridge.win64e.a
  287. LIBS_RWIN64 = $(LIBS_WIN64) $(MODULEDIR)/jackbridge.win64.a
  288. win64: $(LIBS_WINE64)
  289. $(MAKE) BUILDING_FOR_WINE=true -C source/bridges-plugin win64
  290. $(MAKE) BUILDING_FOR_WINE=true -C source/discovery win64
  291. win64r: $(LIBS_RWIN64)
  292. ifeq ($(CC),i686-w64-mingw32-gcc)
  293. $(MAKE) CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -C source/bridges-plugin win64
  294. $(MAKE) CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -C source/discovery win64
  295. else
  296. $(MAKE) -C source/bridges-plugin win64
  297. $(MAKE) -C source/discovery win64
  298. endif
  299. # ---------------------------------------------------------------------------------------------------------------------
  300. # Binaries (wine)
  301. wine32:
  302. $(MAKE) -C source/jackbridge wine32
  303. cp -f $(MODULEDIR)/jackbridge-wine32.dll$(LIB_EXT) $(CURDIR)/bin/jackbridge-wine32.dll
  304. wine64:
  305. $(MAKE) -C source/jackbridge wine64
  306. cp -f $(MODULEDIR)/jackbridge-wine64.dll$(LIB_EXT) $(CURDIR)/bin/jackbridge-wine64.dll
  307. # ---------------------------------------------------------------------------------------------------------------------
  308. clean:
  309. $(MAKE) clean -C source/backend
  310. $(MAKE) clean -C source/bridges-plugin
  311. $(MAKE) clean -C source/bridges-ui
  312. $(MAKE) clean -C source/jackbridge
  313. $(MAKE) clean -C source/modules
  314. $(MAKE) clean -C source/native-plugins
  315. $(MAKE) clean -C source/plugin
  316. ifneq ($(STATIC_PLUGIN_TARGET),true)
  317. $(MAKE) clean -C source/discovery
  318. $(MAKE) clean -C source/frontend
  319. $(MAKE) clean -C source/interposer
  320. $(MAKE) clean -C source/libjack
  321. $(MAKE) clean -C source/tests
  322. $(MAKE) clean -C source/theme
  323. endif
  324. rm -f *~ source/*~
  325. distclean: clean
  326. rm -f bin/*.exe bin/*.dll bin/*.dylib bin/*.so
  327. rm -rf build build-lv2
  328. cpp:
  329. $(MAKE) CPPMODE=true
  330. debug:
  331. $(MAKE) DEBUG=true
  332. doxygen:
  333. $(MAKE) doxygen -C source/backend
  334. tests:
  335. $(MAKE) -C source/tests
  336. stoat:
  337. stoat --recursive ./build/ --suppression ./data/stoat-supression.txt --whitelist ./data/stoat-whitelist.txt --graph-view ./data/stoat-callgraph.png
  338. # stoat --recursive ./build/ \
  339. # --suppression ./data/stoat-supression.txt \
  340. # --whitelist ./data/stoat-whitelist.txt \
  341. # --graph-view ./data/stoat-callgraph.png
  342. # ---------------------------------------------------------------------------------------------------------------------
  343. install_main:
  344. # Create directories
  345. install -d $(DESTDIR)$(BINDIR)
  346. install -d $(DESTDIR)$(DATADIR)/carla/resources
  347. ifeq ($(LINUX),true)
  348. install -d $(DESTDIR)$(LIBDIR)/carla/jack
  349. else
  350. install -d $(DESTDIR)$(LIBDIR)/carla
  351. endif
  352. install -d $(DESTDIR)$(LIBDIR)/pkgconfig
  353. install -d $(DESTDIR)$(INCLUDEDIR)/carla/includes
  354. install -d $(DESTDIR)$(INCLUDEDIR)/carla/utils
  355. ifeq ($(LINUX),true)
  356. ifeq ($(HAVE_JACK),true)
  357. ifeq ($(JACKBRIDGE_DIRECT),true)
  358. install -d $(DESTDIR)$(JACK_LIBDIR)
  359. endif
  360. endif
  361. endif
  362. ifeq ($(HAVE_PYQT),true)
  363. # Create directories (gui)
  364. install -d $(DESTDIR)$(LIBDIR)/carla/styles
  365. install -d $(DESTDIR)$(PREFIX)/share/appdata
  366. install -d $(DESTDIR)$(DATADIR)/applications
  367. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  368. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/32x32/apps
  369. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  370. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  371. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  372. install -d $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  373. install -d $(DESTDIR)$(DATADIR)/mime/packages
  374. install -d $(DESTDIR)$(DATADIR)/carla/resources/translations
  375. install -d $(DESTDIR)$(DATADIR)/carla/modgui
  376. install -d $(DESTDIR)$(DATADIR)/carla/patchcanvas
  377. install -d $(DESTDIR)$(DATADIR)/carla/widgets
  378. endif
  379. # -------------------------------------------------------------------------------------------------------------
  380. # Install script files (non-gui)
  381. install -m 755 \
  382. data/carla-single \
  383. $(DESTDIR)$(BINDIR)
  384. # Adjust PREFIX value in script files (non-gui)
  385. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  386. $(DESTDIR)$(BINDIR)/carla-single
  387. # Install backend libs
  388. install -m 644 \
  389. bin/libcarla_*.* \
  390. $(DESTDIR)$(LIBDIR)/carla
  391. # Install other binaries
  392. install -m 755 \
  393. bin/*bridge-* \
  394. bin/carla-discovery-* \
  395. $(DESTDIR)$(LIBDIR)/carla
  396. ifeq ($(LINUX),true)
  397. ifeq ($(HAVE_JACK),true)
  398. ifeq ($(JACKBRIDGE_DIRECT),true)
  399. # Install internal jack client
  400. ln -sf \
  401. $(LIBDIR)/carla/libcarla_standalone2.so \
  402. $(DESTDIR)$(JACK_LIBDIR)/carla.so
  403. endif
  404. endif
  405. ifneq ($(JACKBRIDGE_DIRECT),true)
  406. # Install custom libjack
  407. install -m 755 \
  408. bin/jack/libjack.so.0 \
  409. $(DESTDIR)$(LIBDIR)/carla/jack
  410. endif
  411. endif
  412. # Install pkg-config files
  413. install -m 644 \
  414. data/pkgconfig/*.pc \
  415. $(DESTDIR)$(LIBDIR)/pkgconfig
  416. # Adjust PREFIX, LIBDIR, INCLUDEDIR and VERSION in pkg-config files
  417. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  418. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  419. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  420. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  421. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  422. sed $(SED_ARGS) 's?X-LIBDIR-X?$(LIBDIR)?' \
  423. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  424. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  425. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  426. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  427. sed $(SED_ARGS) 's?X-INCLUDEDIR-X?$(INCLUDEDIR)?' \
  428. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  429. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  430. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  431. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  432. sed $(SED_ARGS) 's?X-VERSION-X?$(VERSION)?' \
  433. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
  434. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
  435. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
  436. $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  437. # Install headers
  438. install -m 644 \
  439. source/backend/CarlaBackend.h \
  440. source/backend/CarlaHost.h \
  441. source/backend/CarlaUtils.h \
  442. source/backend/CarlaEngine.hpp \
  443. source/backend/CarlaPlugin.hpp \
  444. source/backend/CarlaPluginPtr.hpp \
  445. $(DESTDIR)$(INCLUDEDIR)/carla
  446. install -m 644 \
  447. source/includes/CarlaDefines.h \
  448. source/includes/CarlaMIDI.h \
  449. source/includes/CarlaNative.h \
  450. source/includes/CarlaNativePlugin.h \
  451. $(DESTDIR)$(INCLUDEDIR)/carla/includes
  452. install -m 644 \
  453. source/utils/CarlaBackendUtils.hpp \
  454. source/utils/CarlaBase64Utils.hpp \
  455. source/utils/CarlaBinaryUtils.hpp \
  456. source/utils/CarlaBridgeDefines.hpp \
  457. source/utils/CarlaBridgeUtils.hpp \
  458. source/utils/CarlaMacUtils.hpp \
  459. source/utils/CarlaMathUtils.hpp \
  460. source/utils/CarlaMutex.hpp \
  461. source/utils/CarlaRingBuffer.hpp \
  462. source/utils/CarlaProcessUtils.hpp \
  463. source/utils/CarlaRunner.hpp \
  464. source/utils/CarlaScopeUtils.hpp \
  465. source/utils/CarlaSemUtils.hpp \
  466. source/utils/CarlaShmUtils.hpp \
  467. source/utils/CarlaString.hpp \
  468. source/utils/CarlaThread.hpp \
  469. source/utils/CarlaUtils.hpp \
  470. $(DESTDIR)$(INCLUDEDIR)/carla/utils
  471. # -------------------------------------------------------------------------------------------------------------
  472. ifeq ($(HAVE_PYQT),true)
  473. ifneq ($(CPPMODE),true)
  474. # Install script files (gui)
  475. install -m 755 \
  476. data/carla \
  477. data/carla-database \
  478. data/carla-jack-multi \
  479. data/carla-jack-single \
  480. data/carla-jack-patchbayplugin \
  481. data/carla-osc-gui \
  482. data/carla-patchbay \
  483. data/carla-rack \
  484. data/carla-settings \
  485. $(DESTDIR)$(BINDIR)
  486. # Adjust PREFIX value in script files (gui)
  487. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  488. $(DESTDIR)$(BINDIR)/carla \
  489. $(DESTDIR)$(BINDIR)/carla-database \
  490. $(DESTDIR)$(BINDIR)/carla-jack-multi \
  491. $(DESTDIR)$(BINDIR)/carla-jack-single \
  492. $(DESTDIR)$(BINDIR)/carla-jack-patchbayplugin \
  493. $(DESTDIR)$(BINDIR)/carla-osc-gui \
  494. $(DESTDIR)$(BINDIR)/carla-patchbay \
  495. $(DESTDIR)$(BINDIR)/carla-rack \
  496. $(DESTDIR)$(BINDIR)/carla-settings
  497. ifeq ($(HAVE_LIBLO),true)
  498. install -m 755 \
  499. data/carla-control \
  500. $(DESTDIR)$(BINDIR)
  501. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  502. $(DESTDIR)$(BINDIR)/carla-control
  503. endif
  504. # Install the real modgui bridge
  505. install -m 755 \
  506. data/carla-bridge-lv2-modgui \
  507. $(DESTDIR)$(LIBDIR)/carla
  508. sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
  509. $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
  510. # Install frontend
  511. install -m 644 \
  512. source/frontend/carla \
  513. source/frontend/carla-control \
  514. source/frontend/carla-jack-multi \
  515. source/frontend/carla-jack-single \
  516. source/frontend/carla-patchbay \
  517. source/frontend/carla-rack \
  518. source/frontend/*.py \
  519. $(DESTDIR)$(DATADIR)/carla/
  520. install -m 644 \
  521. source/frontend/modgui/*.py \
  522. $(DESTDIR)$(DATADIR)/carla/modgui/
  523. install -m 644 \
  524. source/frontend/patchcanvas/*.py \
  525. $(DESTDIR)$(DATADIR)/carla/patchcanvas/
  526. install -m 644 \
  527. source/frontend/widgets/*.py \
  528. $(DESTDIR)$(DATADIR)/carla/widgets/
  529. # Adjust LIBDIR and DATADIR value in python code
  530. sed $(SED_ARGS) 's?X_LIBDIR_X = None?X_LIBDIR_X = "$(LIBDIR)"?' \
  531. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  532. sed $(SED_ARGS) 's?X_DATADIR_X = None?X_DATADIR_X = "$(DATADIR)"?' \
  533. $(DESTDIR)$(DATADIR)/carla/carla_shared.py
  534. # Install resources (gui)
  535. install -m 755 \
  536. bin/resources/carla-plugin \
  537. bin/resources/carla-plugin-patchbay \
  538. bin/resources/*-ui \
  539. $(DESTDIR)$(DATADIR)/carla/resources
  540. endif # CPPMODE
  541. ifeq ($(HAVE_THEME),true)
  542. # Install theme
  543. install -m 644 \
  544. bin/styles/* \
  545. $(DESTDIR)$(LIBDIR)/carla/styles
  546. endif
  547. # Install desktop files
  548. install -m 644 data/desktop/carla.desktop $(DESTDIR)$(DATADIR)/applications
  549. install -m 644 data/desktop/carla-rack.desktop $(DESTDIR)$(DATADIR)/applications
  550. install -m 644 data/desktop/carla-patchbay.desktop $(DESTDIR)$(DATADIR)/applications
  551. install -m 644 data/desktop/carla-jack-single.desktop $(DESTDIR)$(DATADIR)/applications
  552. install -m 644 data/desktop/carla-jack-multi.desktop $(DESTDIR)$(DATADIR)/applications
  553. ifeq ($(HAVE_LIBLO),true)
  554. install -m 644 data/desktop/carla-control.desktop $(DESTDIR)$(DATADIR)/applications
  555. endif
  556. # Install app data
  557. sed -e 's?X-VERSION-X?$(VERSION)?' \
  558. data/appdata.xml.in > $(DESTDIR)$(PREFIX)/share/appdata/studio.kx.carla.appdata.xml
  559. # Install mime package
  560. install -m 644 data/carla.xml $(DESTDIR)$(DATADIR)/mime/packages
  561. # Install icons, 16x16
  562. install -m 644 resources/16x16/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  563. install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
  564. # Install icons, 32x32
  565. install -m 644 resources/32x32/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/32x32/apps
  566. install -m 644 resources/32x32/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/32x32/apps
  567. # Install icons, 48x48
  568. install -m 644 resources/48x48/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  569. install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
  570. # Install icons, 128x128
  571. install -m 644 resources/128x128/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  572. install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
  573. # Install icons, 256x256
  574. install -m 644 resources/256x256/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  575. install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
  576. # Install icons, scalable
  577. install -m 644 resources/scalable/carla.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  578. install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
  579. # Install resources (re-use python files)
  580. $(LINK) ../modgui $(DESTDIR)$(DATADIR)/carla/resources
  581. $(LINK) ../patchcanvas $(DESTDIR)$(DATADIR)/carla/resources
  582. $(LINK) ../widgets $(DESTDIR)$(DATADIR)/carla/resources
  583. $(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources
  584. $(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources
  585. $(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources
  586. $(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  587. $(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  588. $(LINK) ../carla_host_control.py $(DESTDIR)$(DATADIR)/carla/resources
  589. $(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  590. $(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources
  591. $(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources
  592. $(LINK) ../carla_utils.py $(DESTDIR)$(DATADIR)/carla/resources
  593. $(LINK) ../carla_widgets.py $(DESTDIR)$(DATADIR)/carla/resources
  594. $(LINK) ../externalui.py $(DESTDIR)$(DATADIR)/carla/resources
  595. $(LINK) ../resources_rc.py $(DESTDIR)$(DATADIR)/carla/resources
  596. $(LINK) ../ui_carla_about.py $(DESTDIR)$(DATADIR)/carla/resources
  597. $(LINK) ../ui_carla_about_juce.py $(DESTDIR)$(DATADIR)/carla/resources
  598. $(LINK) ../ui_carla_add_jack.py $(DESTDIR)$(DATADIR)/carla/resources
  599. $(LINK) ../ui_carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
  600. $(LINK) ../ui_carla_edit.py $(DESTDIR)$(DATADIR)/carla/resources
  601. $(LINK) ../ui_carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
  602. $(LINK) ../ui_carla_parameter.py $(DESTDIR)$(DATADIR)/carla/resources
  603. $(LINK) ../ui_carla_plugin_calf.py $(DESTDIR)$(DATADIR)/carla/resources
  604. $(LINK) ../ui_carla_plugin_classic.py $(DESTDIR)$(DATADIR)/carla/resources
  605. $(LINK) ../ui_carla_plugin_compact.py $(DESTDIR)$(DATADIR)/carla/resources
  606. $(LINK) ../ui_carla_plugin_default.py $(DESTDIR)$(DATADIR)/carla/resources
  607. $(LINK) ../ui_carla_plugin_presets.py $(DESTDIR)$(DATADIR)/carla/resources
  608. $(LINK) ../ui_carla_refresh.py $(DESTDIR)$(DATADIR)/carla/resources
  609. $(LINK) ../ui_carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
  610. $(LINK) ../ui_carla_settings_driver.py $(DESTDIR)$(DATADIR)/carla/resources
  611. $(LINK) ../ui_inputdialog_value.py $(DESTDIR)$(DATADIR)/carla/resources
  612. $(LINK) ../ui_midipattern.py $(DESTDIR)$(DATADIR)/carla/resources
  613. $(LINK) ../ui_xycontroller.py $(DESTDIR)$(DATADIR)/carla/resources
  614. # Install translations
  615. $(foreach l,$(I18N_LANGUAGES),install -m 644 \
  616. source/frontend/translations/carla_$(l).qm \
  617. $(DESTDIR)$(DATADIR)/carla/resources/translations/;)
  618. # Link resources for internal plugin
  619. rm -rf $(DESTDIR)$(LIBDIR)/carla/resources
  620. $(LINK) ../../share/carla/resources $(DESTDIR)$(LIBDIR)/carla/resources
  621. endif # HAVE_PYQT
  622. # -------------------------------------------------------------------------------------------------------------
  623. ifeq ($(CAN_GENERATE_LV2_TTL),true)
  624. # Install lv2 plugin
  625. install -d $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  626. install -m 644 \
  627. bin/carla.lv2/carla.* \
  628. bin/carla.lv2/*.ttl \
  629. $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  630. # Link binaries for lv2 plugin
  631. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  632. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/$$i; \
  633. done
  634. rm -f $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/libcarla_standalone2.*
  635. ifeq ($(LINUX),true)
  636. # Link jack app bridge
  637. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  638. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
  639. endif
  640. endif # CAN_GENERATE_LV2_TTL
  641. ifeq ($(HAVE_PYQT),true)
  642. # Link resources for lv2 plugin
  643. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  644. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
  645. # Link styles for lv2 plugin
  646. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  647. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
  648. endif
  649. # -------------------------------------------------------------------------------------------------------------
  650. ifneq ($(HAIKU),true)
  651. ifeq ($(HAVE_PYQT),true)
  652. # Install vst plugin
  653. install -d $(DESTDIR)$(LIBDIR)/vst/carla.vst
  654. install -m 644 \
  655. bin/CarlaRack*.* \
  656. bin/CarlaPatchbay*.* \
  657. $(DESTDIR)$(LIBDIR)/vst/carla.vst
  658. # Link binaries for vst plugin
  659. @for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
  660. $(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/vst/carla.vst/$$i; \
  661. done
  662. rm -f $(DESTDIR)$(LIBDIR)/vst/carla.vst/libcarla_standalone2.*
  663. # Link jack app bridge
  664. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  665. $(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
  666. # Link resources for vst plugin
  667. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  668. $(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
  669. # Link styles for vst plugin
  670. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  671. $(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
  672. endif
  673. endif
  674. # -------------------------------------------------------------------------------------------------------------
  675. ifneq ($(HAVE_PYQT),true)
  676. # Remove gui files for non-gui build
  677. rm $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
  678. ifeq ($(CAN_GENERATE_LV2_TTL),true)
  679. rm $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/carla-bridge-lv2-modgui
  680. endif
  681. endif
  682. # ---------------------------------------------------------------------------------------------------------------------
  683. ifneq ($(EXTERNAL_PLUGINS),true)
  684. install_external_plugins:
  685. endif
  686. install: install_main install_external_plugins
  687. # ---------------------------------------------------------------------------------------------------------------------
  688. uninstall:
  689. rm -f $(DESTDIR)$(BINDIR)/carla*
  690. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc
  691. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc
  692. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc
  693. rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
  694. rm -f $(DESTDIR)$(DATADIR)/applications/carla.desktop
  695. rm -f $(DESTDIR)$(DATADIR)/applications/carla-control.desktop
  696. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla.png
  697. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla-control.png
  698. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla.svg
  699. rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla-control.svg
  700. rm -f $(DESTDIR)$(DATADIR)/mime/packages/carla.xml
  701. rm -rf $(DESTDIR)$(LIBDIR)/carla
  702. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
  703. rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla-native.lv2
  704. rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst
  705. rm -rf $(DESTDIR)$(DATADIR)/carla
  706. rm -rf $(DESTDIR)$(INCLUDEDIR)/carla
  707. # ----------------------------------------------------------------------------------------------------------------------------
  708. ifeq ($(MACOS),true)
  709. ifneq ($(MACOS_OLD),true)
  710. HAVE_DIST = true
  711. endif
  712. endif
  713. ifeq ($(WINDOWS),true)
  714. HAVE_DIST = true
  715. endif
  716. ifeq ($(HAVE_DIST),true)
  717. include Makefile.dist.mk
  718. else
  719. dist:
  720. endif
  721. include Makefile.print.mk
  722. # ---------------------------------------------------------------------------------------------------------------------
  723. .FORCE:
  724. .PHONY: .FORCE
  725. # ---------------------------------------------------------------------------------------------------------------------