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

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