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.

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