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.

762 lines
24KB

  1. #!/usr/bin/make -f
  2. # Makefile for carla-bridges #
  3. # -------------------------- #
  4. # Created by falkTX
  5. #
  6. include ../Makefile.mk
  7. # --------------------------------------------------------------
  8. # Common
  9. BUILD_CXX_FLAGS += -DBUILD_BRIDGE
  10. BUILD_CXX_FLAGS += -I. -I../backend -I../includes -I../utils -isystem ../modules
  11. BUILD_CXX_FLAGS += $(LIBLO_FLAGS)
  12. LINK_FLAGS += $(LIBLO_LIBS)
  13. # --------------------------------------------------------------
  14. # Plugin bridges
  15. BUILD_PLUGIN_FLAGS = $(BUILD_CXX_FLAGS) -DBUILD_BRIDGE_PLUGIN
  16. BUILD_PLUGIN_FLAGS += -I../backend/engine -I../backend/plugin
  17. LINK_PLUGIN_FLAGS = $(LINK_FLAGS)
  18. LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_BASICS_LIBS)
  19. LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS)
  20. LINK_PLUGIN_FLAGS += $(JUCE_CORE_LIBS)
  21. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  22. BUILD_PLUGIN_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST -DWANT_VST3
  23. ifeq ($(MACOS),true)
  24. BUILD_CXX_FLAGS += -DWANT_AU
  25. endif
  26. ifeq ($(CARLA_VESTIGE_HEADER),true)
  27. BUILD_PLUGIN_FLAGS += -DVESTIGE_HEADER
  28. endif
  29. endif
  30. ifeq ($(HAVE_JUCE_UI),true)
  31. LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS)
  32. LINK_PLUGIN_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS)
  33. LINK_PLUGIN_FLAGS += $(JUCE_EVENTS_LIBS)
  34. LINK_PLUGIN_FLAGS += $(JUCE_GRAPHICS_LIBS)
  35. LINK_PLUGIN_FLAGS += $(JUCE_GUI_BASICS_LIBS)
  36. endif
  37. # --------------------------------------------------------------
  38. # Plugin bridges (POSIX)
  39. POSIX_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS)
  40. POSIX_32BIT_FLAGS = $(32BIT_FLAGS)
  41. POSIX_64BIT_FLAGS = $(64BIT_FLAGS)
  42. POSIX_LINK_FLAGS = $(LINK_PLUGIN_FLAGS)
  43. ifneq ($(HAIKU),true)
  44. POSIX_LINK_FLAGS += -ldl -lpthread
  45. endif
  46. ifeq ($(LINUX),true)
  47. POSIX_32BIT_FLAGS += -L/usr/lib32 -L/usr/lib/i386-linux-gnu
  48. POSIX_64BIT_FLAGS += -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu
  49. endif
  50. # --------------------------------------------------------------
  51. # Plugin bridges (Windows)
  52. WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) -DJACKBRIDGE_EXPORT
  53. WIN_32BIT_FLAGS = $(32BIT_FLAGS)
  54. WIN_64BIT_FLAGS = $(64BIT_FLAGS)
  55. WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -L../modules
  56. # --------------------------------------------------------------
  57. # Plugin bridges (Native)
  58. NATIVE_BUILD_FLAGS = $(POSIX_BUILD_FLAGS) -DWANT_NATIVE
  59. NATIVE_LINK_FLAGS = $(POSIX_LINK_FLAGS)
  60. ifeq ($(HAVE_FLUIDSYNTH),true)
  61. NATIVE_BUILD_FLAGS += -DWANT_FLUIDSYNTH
  62. NATIVE_BUILD_FLAGS += $(FLUIDSYNTH_FLAGS)
  63. NATIVE_LINK_FLAGS += $(FLUIDSYNTH_LIBS)
  64. endif
  65. ifeq ($(HAVE_LINUXSAMPLER),true)
  66. NATIVE_BUILD_FLAGS += -DWANT_LINUXSAMPLER
  67. NATIVE_BUILD_FLAGS += $(LINUXSAMPLER_FLAGS)
  68. NATIVE_LINK_FLAGS += $(LINUXSAMPLER_LIBS)
  69. endif
  70. ifeq ($(HAVE_ZYN_DEPS),true)
  71. NATIVE_BUILD_FLAGS += -DWANT_ZYNADDSUBFX
  72. ifeq ($(HAVE_ZYN_UI_DEPS),true)
  73. NATIVE_LINK_FLAGS += -DWANT_ZYNADDSUBFX_UI
  74. endif
  75. endif
  76. NATIVE_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS)
  77. # --------------------------------------------------------------
  78. TARGETS = native
  79. # --------------------------------------------------------------
  80. # UI bridges
  81. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  82. BUILD_UI_FLAGS = $(BUILD_CXX_FLAGS) -DBUILD_BRIDGE_UI
  83. LINK_UI_FLAGS = $(LINK_FLAGS)
  84. LINK_UI_FLAGS += ../modules/juce_core.a
  85. LINK_UI_FLAGS += $(JUCE_CORE_LIBS)
  86. BUILD_UI_LV2_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_LV2
  87. BUILD_UI_VST_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_VST
  88. ifeq ($(CARLA_VESTIGE_HEADER),true)
  89. BUILD_UI_VST_FLAGS += -DVESTIGE_HEADER
  90. endif
  91. # --------------------------------------------------------------
  92. BUILD_UI_LV2_GTK2_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_GTK2 -DBRIDGE_LV2_GTK2 $(shell pkg-config --cflags gtk+-2.0)
  93. LINK_UI_LV2_GTK2_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs gtk+-2.0) -ldl
  94. BUILD_UI_LV2_GTK3_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_GTK3 -DBRIDGE_LV2_GTK3 $(shell pkg-config --cflags gtk+-3.0)
  95. LINK_UI_LV2_GTK3_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs gtk+-3.0) -ldl
  96. BUILD_UI_LV2_QT4_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_QT4 -DBRIDGE_LV2_QT4 $(shell pkg-config --cflags QtCore QtGui)
  97. LINK_UI_LV2_QT4_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs QtCore QtGui) -ldl
  98. BUILD_UI_LV2_QT5_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_QT5 -DBRIDGE_LV2_QT5 $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets)
  99. LINK_UI_LV2_QT5_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) -ldl
  100. BUILD_UI_LV2_COCOA_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_COCOA -DBRIDGE_LV2_COCOA
  101. LINK_UI_LV2_COCOA_FLAGS = $(LINK_UI_FLAGS) -ldl
  102. BUILD_UI_LV2_HWND_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_HWND -DBRIDGE_LV2_HWND
  103. LINK_UI_LV2_HWND_FLAGS = $(LINK_FLAGS) $(EXTRA_LIBS) -static -mwindows
  104. BUILD_UI_LV2_X11_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_X11 -DBRIDGE_LV2_X11
  105. LINK_UI_LV2_X11_FLAGS = $(LINK_UI_FLAGS) -ldl
  106. # --------------------------------------------------------------
  107. BUILD_UI_VST_CARBON_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_CARBON -DBRIDGE_VST_CARBON
  108. LINK_UI_VST_CARBON_FLAGS = $(LINK_UI_FLAGS) -ldl
  109. BUILD_UI_VST_COCOA_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_COCOA -DBRIDGE_VST_COCOA
  110. LINK_UI_VST_COCOA_FLAGS = $(LINK_UI_FLAGS) -ldl
  111. BUILD_UI_VST_HWND_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_HWND -DBRIDGE_VST_HWND
  112. LINK_UI_VST_HWND_FLAGS = $(LINK_FLAGS) $(EXTRA_LIBS) -static -mwindows
  113. BUILD_UI_VST_X11_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_X11 -DBRIDGE_VST_X11
  114. LINK_UI_VST_X11_FLAGS = $(LINK_UI_FLAGS) -ldl
  115. # --------------------------------------------------------------
  116. ifeq ($(HAVE_GTK2),true)
  117. TARGETS += ui_lv2-gtk2
  118. endif
  119. ifeq ($(HAVE_GTK3),true)
  120. TARGETS += ui_lv2-gtk3
  121. endif
  122. ifeq ($(HAVE_QT4),true)
  123. TARGETS += ui_lv2-qt4
  124. endif
  125. ifeq ($(HAVE_QT5),true)
  126. TARGETS += ui_lv2-qt5
  127. endif
  128. ifeq ($(HAVE_X11),true)
  129. # TARGETS += ui_lv2-x11
  130. # TARGETS += ui_vst-x11
  131. endif
  132. ifeq ($(MACOS),true)
  133. # TARGETS += ui_lv2-cocoa
  134. # TARGETS += ui_vst-carbon
  135. # TARGETS += ui_vst-cocoa
  136. endif
  137. ifeq ($(WIN32),true)
  138. # TARGETS += ui_lv2-windows
  139. # TARGETS += ui_vst-hwnd
  140. endif
  141. endif # CARLA_PLUGIN_SUPPORT
  142. # --------------------------------------------------------------
  143. all: $(TARGETS)
  144. ui_lv2-gtk2: ../../bin/carla-bridge-lv2-gtk2
  145. ui_lv2-gtk3: ../../bin/carla-bridge-lv2-gtk3
  146. ui_lv2-qt4: ../../bin/carla-bridge-lv2-qt4
  147. ui_lv2-qt5: ../../bin/carla-bridge-lv2-qt5
  148. ui_lv2-cocoa: ../../bin/carla-bridge-lv2-cocoa
  149. ui_lv2-windows: ../../bin/carla-bridge-lv2-windows.exe
  150. ui_lv2-x11: ../../bin/carla-bridge-lv2-x11
  151. ui_vst-carbon: ../../bin/carla-bridge-vst-carbon
  152. ui_vst-cocoa: ../../bin/carla-bridge-vst-cocoa
  153. ui_vst-hwnd: ../../bin/carla-bridge-vst-hwnd.exe
  154. ui_vst-x11: ../../bin/carla-bridge-vst-x11
  155. # --------------------------------------------------------------
  156. jackplugin: jackplugin/libjack.so.0
  157. # --------------------------------------------------------------
  158. native: ../../bin/carla-bridge-native$(APP_EXT)
  159. posix32: ../../bin/carla-bridge-posix32
  160. posix64: ../../bin/carla-bridge-posix64
  161. win32: ../../bin/carla-bridge-win32.exe
  162. win64: ../../bin/carla-bridge-win64.exe
  163. # --------------------------------------------------------------
  164. # UI common
  165. OBJS_UI_LV2_LIBS = \
  166. ../modules/lilv.a
  167. OBJS_UI_VST_LIBS =
  168. %__lv2.o: %.cpp
  169. $(CXX) $< $(BUILD_UI_LV2_FLAGS) -c -o $@
  170. %__vst.o: %.cpp
  171. $(CXX) $< $(BUILD_UI_VST_FLAGS) -c -o $@
  172. resources.qt4.cpp: ../../resources/resources-theme.qrc
  173. $(RCC_QT4) $< -o $@
  174. resources.qt5.cpp: ../../resources/resources-theme.qrc
  175. $(RCC_QT5) $< -o $@
  176. CarlaBridgeToolkitQt4.moc: CarlaBridgeToolkitQt.cpp
  177. $(MOC_QT4) $< -DMOC_PARSING -o $@
  178. CarlaBridgeToolkitQt5.moc: CarlaBridgeToolkitQt.cpp
  179. $(MOC_QT5) $< -DMOC_PARSING -o $@
  180. # --------------------------------------------------------------
  181. # ui_lv2-gtk2
  182. OBJS_UI_LV2_GTK2 = CarlaBridgeUI-LV2__lv2-gtk2.o \
  183. CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  184. CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitGtk__lv2-gtk2.o
  185. ../../bin/carla-bridge-lv2-gtk2: $(OBJS_UI_LV2_GTK2) $(OBJS_UI_LV2_LIBS)
  186. $(CXX) $^ $(LINK_UI_LV2_GTK2_FLAGS) -o $@
  187. %__lv2-gtk2.o: %.cpp
  188. $(CXX) $< $(BUILD_UI_LV2_GTK2_FLAGS) -c -o $@
  189. # --------------------------------------------------------------
  190. # ui_lv2-gtk3
  191. OBJS_UI_LV2_GTK3 = CarlaBridgeUI-LV2__lv2-gtk3.o \
  192. CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  193. CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitGtk__lv2-gtk3.o
  194. ../../bin/carla-bridge-lv2-gtk3: $(OBJS_UI_LV2_GTK3) $(OBJS_UI_LV2_LIBS)
  195. $(CXX) $^ $(LINK_UI_LV2_GTK3_FLAGS) -o $@
  196. %__lv2-gtk3.o: %.cpp
  197. $(CXX) $< $(BUILD_UI_LV2_GTK3_FLAGS) -c -o $@
  198. # --------------------------------------------------------------
  199. # ui_lv2-qt4
  200. OBJS_UI_LV2_QT4 = CarlaBridgeUI-LV2__lv2-qt4.o \
  201. CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  202. CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-qt4.o
  203. ../../bin/carla-bridge-lv2-qt4: $(OBJS_UI_LV2_QT4) $(OBJS_UI_LV2_LIBS) ../modules/theme.qt4.a
  204. $(CXX) $^ $(LINK_UI_LV2_QT4_FLAGS) -o $@
  205. %__lv2-qt4.o: %.cpp CarlaBridgeToolkitQt4.moc resources.qt4.cpp
  206. $(CXX) $< $(BUILD_UI_LV2_QT4_FLAGS) -I../modules/theme -c -o $@
  207. # --------------------------------------------------------------
  208. # ui_lv2-qt5
  209. OBJS_UI_LV2_QT5 = CarlaBridgeUI-LV2__lv2-qt5.o \
  210. CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  211. CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-qt5.o
  212. ../../bin/carla-bridge-lv2-qt5: $(OBJS_UI_LV2_QT5) $(OBJS_UI_LV2_LIBS) ../modules/theme.qt5.a
  213. $(CXX) $^ $(LINK_UI_LV2_QT5_FLAGS) -o $@
  214. %__lv2-qt5.o: %.cpp CarlaBridgeToolkitQt5.moc resources.qt5.cpp
  215. $(CXX) $< $(BUILD_UI_LV2_QT5_FLAGS) -I../modules/theme -c -o $@
  216. # --------------------------------------------------------------
  217. # ui_lv2-cocoa
  218. # OBJS_UI_LV2_COCOA = CarlaBridgeUI-LV2__lv2-cocoa.o \
  219. # CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  220. # CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-cocoa.o
  221. #
  222. # ../../bin/carla-bridge-lv2-cocoa: $(OBJS_UI_LV2_COCOA) $(OBJS_UI_LV2_LIBS)
  223. # $(CXX) $^ $(LINK_UI_LV2_COCOA_FLAGS) -o $@
  224. #
  225. # %__lv2-cocoa.o: %.cpp
  226. # $(CXX) $< $(BUILD_UI_LV2_COCOA_FLAGS) -c -o $@
  227. # --------------------------------------------------------------
  228. # ui_lv2-windows
  229. # OBJS_UI_LV2_WIN32 = CarlaBridgeUI-LV2__lv2-windows.o \
  230. # CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  231. # CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-windows.o
  232. #
  233. # ../../bin/carla-bridge-lv2-windows.exe: $(OBJS_UI_LV2_WIN32) $(OBJS_UI_LV2_LIBS)
  234. # $(CXX) $^ $(LINK_UI_LV2_WIN32_FLAGS) -o $@
  235. #
  236. # %__lv2-windows.o: %.cpp
  237. # $(CXX) $< $(BUILD_UI_LV2_WIN32_FLAGS) -c -o $@
  238. # --------------------------------------------------------------
  239. # ui_lv2-x11
  240. # OBJS_UI_LV2_X11 = CarlaBridgeUI-LV2__lv2-x11.o \
  241. # CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
  242. # CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-x11.o
  243. #
  244. # ../../bin/carla-bridge-lv2-x11: $(OBJS_UI_LV2_X11) $(OBJS_UI_LV2_LIBS)
  245. # $(CXX) $^ $(LINK_UI_LV2_X11_FLAGS) -o $@
  246. #
  247. # %__lv2-x11.o: %.cpp
  248. # $(CXX) $< $(BUILD_UI_LV2_X11_FLAGS) -c -o $@
  249. # --------------------------------------------------------------
  250. # ui_vst-mac
  251. # OBJS_UI_VST_MAC = CarlaBridgeUI-VST__vst-mac.o \
  252. # CarlaBridgeClient__vst.o CarlaBridgeOsc__vst.o \
  253. # CarlaBridgeToolkit__vst.o CarlaBridgeToolkitQt__vst-mac.o
  254. #
  255. # ../../bin/carla-bridge-vst-mac: $(OBJS_UI_VST_MAC) $(OBJS_UI_VST_LIBS) ../modules/theme.a
  256. # $(CXX) $^ $(LINK_UI_VST_MAC_FLAGS) -o $@
  257. #
  258. # %__vst-mac.o: %.cpp
  259. # $(CXX) $< $(BUILD_UI_VST_MAC_FLAGS) -c -o $@
  260. # --------------------------------------------------------------
  261. # ui_vst-hwnd
  262. # OBJS_UI_VST_HWND = CarlaBridgeUI-VST__vst-hwnd.o \
  263. # CarlaBridgeClient__vst.o CarlaBridgeOsc__vst.o \
  264. # CarlaBridgeToolkit__vst.o CarlaBridgeToolkitQt__vst-hwnd.o
  265. #
  266. # ../../bin/carla-bridge-vst-hwnd.exe: $(OBJS_UI_VST_HWND) $(OBJS_UI_VST_LIBS) ../modules/theme.a
  267. # $(CXX) $^ $(LINK_UI_VST_HWND_FLAGS) -o $@
  268. #
  269. # %__vst-hwnd.o: %.cpp
  270. # $(CXX) $< $(BUILD_UI_VST_HWND_FLAGS) -c -o $@
  271. # --------------------------------------------------------------
  272. # ui_vst-x11
  273. # OBJS_UI_VST_X11 = CarlaBridgeUI-VST__vst-x11.o \
  274. # CarlaBridgeClient__vst.o CarlaBridgeOsc__vst.o \
  275. # CarlaBridgeToolkit__vst.o CarlaBridgeToolkitQt__vst-x11.o
  276. #
  277. # ../../bin/carla-bridge-vst-x11: $(OBJS_UI_VST_X11) $(OBJS_UI_VST_LIBS) ../modules/theme.a
  278. # $(CXX) $^ $(LINK_UI_VST_X11_FLAGS) -o $@
  279. #
  280. # %__vst-x11.o: %.cpp
  281. # $(CXX) $< $(BUILD_UI_VST_X11_FLAGS) -c -o $@
  282. # --------------------------------------------------------------
  283. # native
  284. OBJS_PLUGIN = \
  285. jackplugin/CarlaJackPlugin__plugin.o \
  286. CarlaBridgeClient__plugin.o \
  287. CarlaBridgeOsc__plugin.o \
  288. ../backend/engine/CarlaEngine__native.o \
  289. ../backend/engine/CarlaEngineData__native.o \
  290. ../backend/engine/CarlaEngineInternal__native.o \
  291. ../backend/engine/CarlaEngineOsc__native.o \
  292. ../backend/engine/CarlaEngineThread__native.o \
  293. ../backend/engine/CarlaEngineJack__native.o \
  294. ../backend/engine/CarlaEngineBridge__native.o \
  295. ../backend/plugin/CarlaPlugin__native.o \
  296. ../backend/plugin/CarlaPluginInternal__native.o \
  297. ../backend/plugin/CarlaPluginThread__native.o \
  298. ../backend/plugin/CarlaPluginUi__native.o \
  299. ../backend/plugin/NativePlugin__native.o \
  300. ../backend/plugin/LadspaPlugin__native.o \
  301. ../backend/plugin/DssiPlugin__native.o \
  302. ../backend/plugin/Lv2Plugin__native.o \
  303. ../backend/plugin/VstPlugin__native.o \
  304. ../backend/plugin/Vst3Plugin__native.o \
  305. ../backend/plugin/AuPlugin__native.o \
  306. ../backend/plugin/JucePlugin__native.o \
  307. ../backend/plugin/FluidSynthPlugin__native.o \
  308. ../backend/plugin/LinuxSamplerPlugin__native.o \
  309. ../backend/CarlaStandalone__native.o
  310. LIBS_PLUGIN = \
  311. ../modules/jackbridge.a \
  312. ../modules/juce_audio_basics.a \
  313. ../modules/juce_audio_formats.a \
  314. ../modules/juce_events.a \
  315. ../modules/juce_core.a \
  316. ../modules/rtmempool.a
  317. ifeq ($(HAVE_JUCE_UI),true)
  318. LIBS_PLUGIN += \
  319. ../modules/juce_audio_processors.a \
  320. ../modules/juce_data_structures.a \
  321. ../modules/juce_data_structures.a \
  322. ../modules/juce_graphics.a \
  323. ../modules/juce_gui_basics.a \
  324. ../modules/juce_gui_extra.a
  325. endif
  326. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  327. LIBS_PLUGIN += \
  328. ../modules/lilv.a
  329. endif
  330. jackplugin/libjack.so.0: $(OBJS_PLUGIN) $(LIBS_PLUGIN)
  331. $(CXX) $(OBJS_PLUGIN) -Wl,--start-group $(LIBS_PLUGIN) -Wl,--end-group $(NATIVE_LINK_FLAGS) -shared -o $@
  332. %__plugin.o: %.cpp
  333. $(CXX) $< $(NATIVE_BUILD_FLAGS) -DBRIDGE_JACK -DJACKBRIDGE_EXPORT -c -o $@
  334. # $(NATIVE_LINK_FLAGS)
  335. # --------------------------------------------------------------
  336. # native
  337. OBJS_NATIVE = CarlaBridgePlugin__native.o \
  338. CarlaBridgeClient__native.o CarlaBridgeOsc__native.o
  339. # carla-engine
  340. OBJS_NATIVE += \
  341. ../backend/engine/CarlaEngine__native.o \
  342. ../backend/engine/CarlaEngineClient__native.o \
  343. ../backend/engine/CarlaEngineData__native.o \
  344. ../backend/engine/CarlaEngineInternal__native.o \
  345. ../backend/engine/CarlaEngineOsc__native.o \
  346. ../backend/engine/CarlaEngineOscSend__native.o \
  347. ../backend/engine/CarlaEnginePorts__native.o \
  348. ../backend/engine/CarlaEngineThread__native.o \
  349. ../backend/engine/CarlaEngineJack__native.o \
  350. ../backend/engine/CarlaEngineBridge__native.o
  351. # carla-plugin
  352. OBJS_NATIVE += \
  353. ../backend/plugin/CarlaPlugin__native.o \
  354. ../backend/plugin/CarlaPluginInternal__native.o \
  355. ../backend/plugin/CarlaPluginThread__native.o \
  356. ../backend/plugin/CarlaPluginUi__native.o \
  357. ../backend/plugin/NativePlugin__native.o \
  358. ../backend/plugin/LadspaPlugin__native.o \
  359. ../backend/plugin/DssiPlugin__native.o \
  360. ../backend/plugin/Lv2Plugin__native.o \
  361. ../backend/plugin/VstPlugin__native.o \
  362. ../backend/plugin/Vst3Plugin__native.o \
  363. ../backend/plugin/AuPlugin__native.o \
  364. ../backend/plugin/JucePlugin__native.o \
  365. ../backend/plugin/FluidSynthPlugin__native.o \
  366. ../backend/plugin/LinuxSamplerPlugin__native.o
  367. # carla-standalone
  368. OBJS_NATIVE += \
  369. ../backend/CarlaStandalone__native.o
  370. # libs
  371. LIBS_NATIVE = \
  372. ../modules/native-plugins.a \
  373. ../modules/jackbridge.a \
  374. ../modules/juce_audio_basics.a \
  375. ../modules/juce_audio_formats.a \
  376. ../modules/juce_core.a \
  377. ../modules/rtmempool.a
  378. ifeq ($(HAVE_JUCE_UI),true)
  379. LIBS_NATIVE += \
  380. ../modules/juce_audio_processors.a \
  381. ../modules/juce_data_structures.a \
  382. ../modules/juce_data_structures.a \
  383. ../modules/juce_events.a \
  384. ../modules/juce_graphics.a \
  385. ../modules/juce_gui_basics.a \
  386. ../modules/juce_gui_extra.a
  387. endif
  388. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  389. LIBS_NATIVE += \
  390. ../modules/lilv.a
  391. endif
  392. ../../bin/carla-bridge-native: $(OBJS_NATIVE) $(LIBS_NATIVE)
  393. $(CXX) $(OBJS_NATIVE) -Wl,--start-group $(LIBS_NATIVE) -Wl,--end-group $(NATIVE_LINK_FLAGS) -o $@
  394. %__native.o: %.cpp
  395. $(CXX) $< $(NATIVE_BUILD_FLAGS) -c -o $@
  396. # --------------------------------------------------------------
  397. # posix32
  398. OBJS_POSIX32 = CarlaBridgePlugin__posix32.o \
  399. CarlaBridgeClient__posix32.o CarlaBridgeOsc__posix32.o
  400. # carla-engine
  401. OBJS_POSIX32 += \
  402. ../backend/engine/CarlaEngine__posix32.o \
  403. ../backend/engine/CarlaEngineInternal__posix32.o \
  404. ../backend/engine/CarlaEngineOsc__posix32.o \
  405. ../backend/engine/CarlaEngineThread__posix32.o \
  406. ../backend/engine/CarlaEngineJack__posix32.o \
  407. ../backend/engine/CarlaEngineBridge__posix32.o
  408. # carla-plugin
  409. OBJS_POSIX32 += \
  410. ../backend/plugin/CarlaPlugin__posix32.o \
  411. ../backend/plugin/CarlaPluginInternal__posix32.o \
  412. ../backend/plugin/CarlaPluginThread__posix32.o \
  413. ../backend/plugin/CarlaPluginUi__posix32.o \
  414. ../backend/plugin/NativePlugin__posix32.o \
  415. ../backend/plugin/LadspaPlugin__posix32.o \
  416. ../backend/plugin/DssiPlugin__posix32.o \
  417. ../backend/plugin/Lv2Plugin__posix32.o \
  418. ../backend/plugin/VstPlugin__posix32.o \
  419. ../backend/plugin/Vst3Plugin__posix32.o \
  420. ../backend/plugin/AuPlugin__posix32.o \
  421. ../backend/plugin/JucePlugin__posix32.o \
  422. ../backend/plugin/FluidSynthPlugin__posix32.o \
  423. ../backend/plugin/LinuxSamplerPlugin__posix32.o
  424. # carla-standalone
  425. OBJS_POSIX32 += \
  426. ../backend/CarlaStandalone__posix32.o
  427. # libs
  428. LIBS_POSIX32 = \
  429. ../modules/lilv.posix32.a \
  430. ../modules/rtmempool.posix32.a
  431. ifeq ($(HAVE_JUCE),true)
  432. LIBS_POSIX32 += \
  433. ../modules/juce_audio_basics.posix32.a \
  434. ../modules/juce_audio_processors.posix32.a \
  435. ../modules/juce_core.posix32.a \
  436. ../modules/juce_data_structures.posix32.a \
  437. ../modules/juce_events.posix32.a \
  438. ../modules/juce_graphics.posix32.a \
  439. ../modules/juce_gui_basics.posix32.a
  440. endif
  441. ../../bin/carla-bridge-posix32: $(OBJS_POSIX32) $(LIBS_POSIX32)
  442. $(CXX) $(OBJS_POSIX32) -Wl,--start-group $(LIBS_POSIX32) -Wl,--end-group $(POSIX_LINK_FLAGS) $(POSIX_32BIT_FLAGS) -o $@
  443. %__posix32.o: %.cpp
  444. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  445. # --------------------------------------------------------------
  446. # posix64
  447. OBJS_POSIX64 = CarlaBridgePlugin__posix64.o \
  448. CarlaBridgeClient__posix64.o CarlaBridgeOsc__posix64.o
  449. # carla-engine
  450. OBJS_POSIX64 += \
  451. ../backend/engine/CarlaEngine__posix64.o \
  452. ../backend/engine/CarlaEngineInternal__posix64.o \
  453. ../backend/engine/CarlaEngineOsc__posix64.o \
  454. ../backend/engine/CarlaEngineThread__posix64.o \
  455. ../backend/engine/CarlaEngineJack__posix64.o \
  456. ../backend/engine/CarlaEngineBridge__posix64.o
  457. # carla-plugin
  458. OBJS_POSIX64 += \
  459. ../backend/plugin/CarlaPlugin__posix64.o \
  460. ../backend/plugin/CarlaPluginInternal__posix64.o \
  461. ../backend/plugin/CarlaPluginThread__posix64.o \
  462. ../backend/plugin/CarlaPluginUi__posix64.o \
  463. ../backend/plugin/NativePlugin__posix64.o \
  464. ../backend/plugin/LadspaPlugin__posix64.o \
  465. ../backend/plugin/DssiPlugin__posix64.o \
  466. ../backend/plugin/Lv2Plugin__posix64.o \
  467. ../backend/plugin/VstPlugin__posix64.o \
  468. ../backend/plugin/Vst3Plugin__posix64.o \
  469. ../backend/plugin/AuPlugin__posix32.o \
  470. ../backend/plugin/JucePlugin__posix64.o \
  471. ../backend/plugin/FluidSynthPlugin__posix64.o \
  472. ../backend/plugin/LinuxSamplerPlugin__posix64.o
  473. # carla-standalone
  474. OBJS_POSIX64 += \
  475. ../backend/CarlaStandalone__posix64.o
  476. # libs
  477. LIBS_POSIX64 = \
  478. ../modules/lilv.posix64.a \
  479. ../modules/rtmempool.posix64.a
  480. ifeq ($(HAVE_JUCE),true)
  481. LIBS_POSIX64 += \
  482. ../modules/juce_audio_basics.posix64.a \
  483. ../modules/juce_audio_processors.posix64.a \
  484. ../modules/juce_core.posix64.a \
  485. ../modules/juce_data_structures.posix64.a \
  486. ../modules/juce_events.posix64.a \
  487. ../modules/juce_graphics.posix64.a \
  488. ../modules/juce_gui_basics.posix64.a
  489. endif
  490. ../../bin/carla-bridge-posix64: $(OBJS_POSIX64) $(LIBS_POSIX64)
  491. $(CXX) $(OBJS_POSIX64) -Wl,--start-group $(LIBS_POSIX64) -Wl,--end-group $(POSIX_LINK_FLAGS) $(POSIX_64BIT_FLAGS) -o $@
  492. %__posix64.o: %.cpp
  493. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  494. # --------------------------------------------------------------
  495. # win32
  496. OBJS_WIN32 = CarlaBridgePlugin__win32.o \
  497. CarlaBridgeClient__win32.o CarlaBridgeOsc__win32.o
  498. # carla-engine
  499. OBJS_WIN32 += \
  500. ../backend/engine/CarlaEngine__win32.o \
  501. ../backend/engine/CarlaEngineInternal__win32.o \
  502. ../backend/engine/CarlaEngineOsc__win32.o \
  503. ../backend/engine/CarlaEngineThread__win32.o \
  504. ../backend/engine/CarlaEngineBridge__win32.o \
  505. ../backend/engine/CarlaEngineJack__win32.o
  506. # carla-plugin
  507. OBJS_WIN32 += \
  508. ../backend/plugin/CarlaPlugin__win32.o \
  509. ../backend/plugin/CarlaPluginInternal__win32.o \
  510. ../backend/plugin/CarlaPluginThread__win32.o \
  511. ../backend/plugin/CarlaPluginUi__win32.o \
  512. ../backend/plugin/NativePlugin__win32.o \
  513. ../backend/plugin/LadspaPlugin__win32.o \
  514. ../backend/plugin/DssiPlugin__win32.o \
  515. ../backend/plugin/Lv2Plugin__win32.o \
  516. ../backend/plugin/VstPlugin__win32.o \
  517. ../backend/plugin/Vst3Plugin__win32.o \
  518. ../backend/plugin/AuPlugin__win32.o \
  519. ../backend/plugin/JucePlugin__win32.o \
  520. ../backend/plugin/FluidSynthPlugin__win32.o \
  521. ../backend/plugin/LinuxSamplerPlugin__win32.o
  522. # carla-standalone
  523. OBJS_WIN32 += \
  524. ../backend/CarlaStandalone__win32.o
  525. # libs
  526. LIBS_WIN32 = \
  527. ../modules/lilv.win32.a \
  528. ../modules/rtmempool.win32.a
  529. ifeq ($(HAVE_JUCE),true)
  530. LIBS_WIN32 += \
  531. ../modules/juce_audio_basics.win32.a \
  532. ../modules/juce_audio_processors.win32.a \
  533. ../modules/juce_core.win32.a \
  534. ../modules/juce_data_structures.win32.a \
  535. ../modules/juce_events.win32.a \
  536. ../modules/juce_graphics.win32.a \
  537. ../modules/juce_gui_basics.win32.a
  538. endif
  539. ../../bin/carla-bridge-win32.exe: $(OBJS_WIN32) $(LIBS_WIN32) ../modules/jackbridge-win32.dll
  540. $(CXX) $(OBJS_WIN32) -Wl,--start-group $(LIBS_WIN32) -Wl,--end-group $(WIN_LINK_FLAGS) $(WIN_32BIT_FLAGS) -ljackbridge-win32 -o $@
  541. %__win32.o: %.cpp
  542. $(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_32BIT_FLAGS) -c -o $@
  543. # --------------------------------------------------------------
  544. # win64
  545. OBJS_WIN64 = CarlaBridgePlugin__win64.o \
  546. CarlaBridgeClient__win64.o CarlaBridgeOsc__win64.o
  547. # carla-engine
  548. OBJS_WIN64 += \
  549. ../backend/engine/CarlaEngine__win64.o \
  550. ../backend/engine/CarlaEngineInternal__win64.o \
  551. ../backend/engine/CarlaEngineOsc__win64.o \
  552. ../backend/engine/CarlaEngineThread__win64.o \
  553. ../backend/engine/CarlaEngineBridge__win64.o \
  554. ../backend/engine/CarlaEngineJack__win64.o
  555. # carla-plugin
  556. OBJS_WIN64 += \
  557. ../backend/plugin/CarlaPlugin__win64.o \
  558. ../backend/plugin/CarlaPluginInternal__win64.o \
  559. ../backend/plugin/CarlaPluginThread__win64.o \
  560. ../backend/plugin/CarlaPluginUi__win64.o \
  561. ../backend/plugin/NativePlugin__win64.o \
  562. ../backend/plugin/LadspaPlugin__win64.o \
  563. ../backend/plugin/DssiPlugin__win64.o \
  564. ../backend/plugin/Lv2Plugin__win64.o \
  565. ../backend/plugin/VstPlugin__win64.o \
  566. ../backend/plugin/Vst3Plugin__win64.o \
  567. ../backend/plugin/AuPlugin__win64.o \
  568. ../backend/plugin/JucePlugin__win64.o \
  569. ../backend/plugin/FluidSynthPlugin__win64.o \
  570. ../backend/plugin/LinuxSamplerPlugin__win64.o
  571. # carla-standalone
  572. OBJS_WIN64 += \
  573. ../backend/CarlaStandalone__win64.o
  574. # libs
  575. LIBS_WIN64 = \
  576. ../modules/lilv.win64.a \
  577. ../modules/rtmempool.win64.a
  578. ifeq ($(HAVE_JUCE),true)
  579. LIBS_WIN64 += \
  580. ../modules/juce_audio_basics.win64.a \
  581. ../modules/juce_audio_processors.win64.a \
  582. ../modules/juce_core.win64.a \
  583. ../modules/juce_data_structures.win64.a \
  584. ../modules/juce_events.win64.a \
  585. ../modules/juce_graphics.win64.a \
  586. ../modules/juce_gui_basics.win64.a
  587. endif
  588. ../../bin/carla-bridge-win64.exe: $(OBJS_WIN64) $(LIBS_WIN64) ../modules/jackbridge-win64.dll
  589. $(CXX) $(OBJS_WIN64) -Wl,--start-group $(LIBS_WIN64) -Wl,--end-group $(WIN_LINK_FLAGS) $(WIN_64BIT_FLAGS) -ljackbridge-win64 -o $@
  590. %__win64.o: %.cpp
  591. $(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_64BIT_FLAGS) -c -o $@
  592. # --------------------------------------------------------------
  593. clean:
  594. $(RM) *.moc *.o *.dll *.dylib *.so *.exe
  595. $(RM) resources.*.cpp
  596. $(RM) ../../bin/carla-bridge-*
  597. $(RM) $(OBJS_NATIVE)
  598. $(RM) $(OBJS_POSIX32)
  599. $(RM) $(OBJS_POSIX64)
  600. $(RM) $(OBJS_WIN32)
  601. $(RM) $(OBJS_WIN64)
  602. debug:
  603. $(MAKE) DEBUG=true
  604. doxygen: carla_bridge.doxygen
  605. doxygen $<
  606. # --------------------------------------------------------------