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

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