Collection of tools useful for audio production
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.

339 lines
13KB

  1. #!/usr/bin/make -f
  2. # Makefile for carla-bridges #
  3. # ---------------------------------------- #
  4. # Created by falkTX
  5. #
  6. CXX ?= g++
  7. WINECXX ?= wineg++
  8. STRIP ?= strip
  9. BASE_FLAGS = -O2 -ffast-math -fomit-frame-pointer -fPIC -mtune=generic -msse -mfpmath=sse -Wall
  10. BUILD_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS)
  11. BUILD_FLAGS += -I. -I../carla-includes $(shell pkg-config --cflags liblo QtCore)
  12. BUILD_FLAGS += -DBUILD_BRIDGE -DNDEBUG -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT
  13. BUILD_FLAGS += -DVESTIGE_HEADER -I../carla-includes/vestige # Comment this line to not use vestige header
  14. 32BIT_FLAGS = -m32
  15. 64BIT_FLAGS = -m64
  16. LINK_FLAGS = $(shell pkg-config --libs liblo QtCore) $(LDFLAGS)
  17. # --------------------------------------------------------------
  18. BUILD_PLUGIN_FLAGS = $(BUILD_FLAGS) -DBUILD_BRIDGE_PLUGIN -DCARLA_ENGINE_JACK $(shell pkg-config --cflags jack)
  19. LINK_PLUGIN_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs jack)
  20. POSIX_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) $(shell pkg-config --cflags QtGui)
  21. POSIX_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32 -L/usr/lib/i386-linux-gnu
  22. POSIX_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu
  23. POSIX_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs QtGui) -ldl
  24. WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) $(shell pkg-config --cflags QtGui)
  25. WIN_32BIT_FLAGS = $(32BIT_FLAGS)
  26. WIN_64BIT_FLAGS = $(64BIT_FLAGS)
  27. WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs QtGui) -static
  28. WINE_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) # -fpermissive
  29. WINE_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine
  30. WINE_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64/wine -L/usr/lib/x86_64-linux-gnu/wine
  31. WINE_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -ldl
  32. # --------------------------------------------------------------
  33. BUILD_UI_FLAGS = $(BUILD_FLAGS) -DBUILD_BRIDGE_UI
  34. LINK_UI_FLAGS = $(LINK_FLAGS) -ldl
  35. BUILD_UI_LV2_GTK2_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_LV2 -DBRIDGE_LV2_GTK2 $(shell pkg-config --cflags gtk+-2.0)
  36. LINK_UI_LV2_GTK2_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs gtk+-2.0)
  37. BUILD_UI_LV2_GTK3_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_LV2 -DBRIDGE_LV2_GTK3 $(shell pkg-config --cflags gtk+-3.0)
  38. LINK_UI_LV2_GTK3_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs gtk+-3.0)
  39. BUILD_UI_LV2_QT4_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_LV2 -DBRIDGE_LV2_QT4 $(shell pkg-config --cflags QtGui)
  40. LINK_UI_LV2_QT4_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs QtGui)
  41. BUILD_UI_LV2_X11_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_LV2 -DBRIDGE_LV2_X11 $(shell pkg-config --cflags QtGui)
  42. LINK_UI_LV2_X11_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs QtGui)
  43. BUILD_UI_VST_HWND_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_VST -DBRIDGE_VST_HWND $(shell pkg-config --cflags QtGui)
  44. LINK_UI_VST_HWND_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs QtGui) -mwindows -static
  45. BUILD_UI_VST_X11_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_VST -DBRIDGE_VST_X11 $(shell pkg-config --cflags QtGui)
  46. LINK_UI_VST_X11_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs QtGui)
  47. # --------------------------------------------------------------
  48. all: ui
  49. ui: ui_lv2-gtk2 ui_lv2-qt4 ui_lv2-x11 ui_vst-x11
  50. ui_lv2-gtk2: carla-bridge-lv2-gtk2
  51. ui_lv2-gtk3: carla-bridge-lv2-gtk3
  52. ui_lv2-qt4: carla-bridge-lv2-qt4
  53. ui_lv2-x11: carla-bridge-lv2-x11
  54. ui_vst-hwnd: carla-bridge-vst-hwnd.exe
  55. ui_vst-x11: carla-bridge-vst-x11
  56. posix32: carla-bridge-posix32
  57. posix64: carla-bridge-posix64
  58. win32: carla-bridge-win32.exe
  59. win64: carla-bridge-win64.exe
  60. wine32: carla-bridge-win32.exe.so
  61. wine64: carla-bridge-win64.exe.so
  62. # --------------------------------------------------------------
  63. # ui_lv2-gtk2
  64. OBJS_UI_LV2_GTK2 = carla_bridge_ui-lv2__lv2-gtk2.o carla_bridge_toolkit-gtk2__lv2-gtk2.o carla_bridge_osc__lv2-gtk2.o ../carla-lilv/carla_lilv.a
  65. carla-bridge-lv2-gtk2: $(OBJS_UI_LV2_GTK2)
  66. $(CXX) $^ $(LINK_UI_LV2_GTK2_FLAGS) -o $@ && $(STRIP) $@
  67. carla_bridge_ui-lv2__lv2-gtk2.o: carla_bridge_ui-lv2.cpp
  68. $(CXX) $< $(BUILD_UI_LV2_GTK2_FLAGS) -c -o $@
  69. carla_bridge_toolkit-gtk2__lv2-gtk2.o: carla_bridge_toolkit-gtk2.cpp
  70. $(CXX) $< $(BUILD_UI_LV2_GTK2_FLAGS) -c -o $@
  71. carla_bridge_osc__lv2-gtk2.o: carla_bridge_osc.cpp
  72. $(CXX) $< $(BUILD_UI_LV2_GTK2_FLAGS) -c -o $@
  73. # --------------------------------------------------------------
  74. # ui_lv2-gtk3
  75. OBJS_UI_LV2_GTK3 = carla_bridge_ui-lv2__lv2-gtk3.o carla_bridge_toolkit-gtk3__lv2-gtk3.o carla_bridge_osc__lv2-gtk3.o ../carla-lilv/carla_lilv.a
  76. carla-bridge-lv2-gtk3: $(OBJS_UI_LV2_GTK3)
  77. $(CXX) $^ $(LINK_UI_LV2_GTK3_FLAGS) -o $@ && $(STRIP) $@
  78. carla_bridge_ui-lv2__lv2-gtk3.o: carla_bridge_ui-lv2.cpp
  79. $(CXX) $< $(BUILD_UI_LV2_GTK3_FLAGS) -c -o $@
  80. carla_bridge_toolkit-gtk3__lv2-gtk3.o: carla_bridge_toolkit-gtk3.cpp
  81. $(CXX) $< $(BUILD_UI_LV2_GTK3_FLAGS) -c -o $@
  82. carla_bridge_osc__lv2-gtk3.o: carla_bridge_osc.cpp
  83. $(CXX) $< $(BUILD_UI_LV2_GTK3_FLAGS) -c -o $@
  84. # --------------------------------------------------------------
  85. # ui_lv2-qt4
  86. OBJS_UI_LV2_QT4 = carla_bridge_ui-lv2__lv2-qt4.o carla_bridge_toolkit-qt4__lv2-qt4.o carla_bridge_osc__lv2-qt4.o ../carla-lilv/carla_lilv.a
  87. carla-bridge-lv2-qt4: $(OBJS_UI_LV2_QT4)
  88. $(CXX) $^ $(LINK_UI_LV2_QT4_FLAGS) -o $@ && $(STRIP) $@
  89. carla_bridge_ui-lv2__lv2-qt4.o: carla_bridge_ui-lv2.cpp
  90. $(CXX) $< $(BUILD_UI_LV2_QT4_FLAGS) -c -o $@
  91. carla_bridge_toolkit-qt4__lv2-qt4.o: carla_bridge_toolkit-qt4.cpp
  92. $(CXX) $< $(BUILD_UI_LV2_QT4_FLAGS) -c -o $@
  93. carla_bridge_osc__lv2-qt4.o: carla_bridge_osc.cpp
  94. $(CXX) $< $(BUILD_UI_LV2_QT4_FLAGS) -c -o $@
  95. # --------------------------------------------------------------
  96. # ui_lv2-x11
  97. OBJS_UI_LV2_X11 = carla_bridge_ui-lv2__lv2-x11.o carla_bridge_toolkit-qt4__lv2-x11.o carla_bridge_osc__lv2-x11.o ../carla-lilv/carla_lilv.a
  98. carla-bridge-lv2-x11: $(OBJS_UI_LV2_X11)
  99. $(CXX) $^ $(LINK_UI_LV2_X11_FLAGS) -o $@ && $(STRIP) $@
  100. carla_bridge_ui-lv2__lv2-x11.o: carla_bridge_ui-lv2.cpp
  101. $(CXX) $< $(BUILD_UI_LV2_X11_FLAGS) -c -o $@
  102. carla_bridge_toolkit-qt4__lv2-x11.o: carla_bridge_toolkit-qt4.cpp
  103. $(CXX) $< $(BUILD_UI_LV2_X11_FLAGS) -c -o $@
  104. carla_bridge_osc__lv2-x11.o: carla_bridge_osc.cpp
  105. $(CXX) $< $(BUILD_UI_LV2_X11_FLAGS) -c -o $@
  106. # --------------------------------------------------------------
  107. # ui_vst-hwnd
  108. OBJS_UI_VST_HWND = carla_bridge_ui-vst__vst-hwnd.o carla_bridge_toolkit-qt4__vst-hwnd.o carla_bridge_osc__vst-hwnd.o
  109. carla-bridge-vst-hwnd.exe: $(OBJS_UI_VST_HWND)
  110. $(CXX) $^ $(LINK_UI_VST_HWND_FLAGS) -o $@ && $(STRIP) $@
  111. carla_bridge_ui-vst__vst-hwnd.o: carla_bridge_ui-vst.cpp
  112. $(CXX) $< $(BUILD_UI_VST_HWND_FLAGS) -c -o $@
  113. carla_bridge_toolkit-qt4__vst-hwnd.o: carla_bridge_toolkit-qt4.cpp
  114. $(CXX) $< $(BUILD_UI_VST_HWND_FLAGS) -c -o $@
  115. carla_bridge_osc__vst-hwnd.o: carla_bridge_osc.cpp
  116. $(CXX) $< $(BUILD_UI_VST_HWND_FLAGS) -c -o $@
  117. # --------------------------------------------------------------
  118. # ui_vst-x11
  119. OBJS_UI_VST_X11 = carla_bridge_ui-vst__vst-x11.o carla_bridge_toolkit-qt4__vst-x11.o carla_bridge_osc__vst-x11.o
  120. carla-bridge-vst-x11: $(OBJS_UI_VST_X11)
  121. $(CXX) $^ $(LINK_UI_VST_X11_FLAGS) -o $@ && $(STRIP) $@
  122. carla_bridge_ui-vst__vst-x11.o: carla_bridge_ui-vst.cpp
  123. $(CXX) $< $(BUILD_UI_VST_X11_FLAGS) -c -o $@
  124. carla_bridge_toolkit-qt4__vst-x11.o: carla_bridge_toolkit-qt4.cpp
  125. $(CXX) $< $(BUILD_UI_VST_X11_FLAGS) -c -o $@
  126. carla_bridge_osc__vst-x11.o: carla_bridge_osc.cpp
  127. $(CXX) $< $(BUILD_UI_VST_X11_FLAGS) -c -o $@
  128. # --------------------------------------------------------------
  129. # posix32
  130. OBJS_POSIX32 = \
  131. carla_bridge_plugin__posix32.o carla_bridge_osc__posix32.o \
  132. carla_engine_jack__posix32.o carla_shared__posix32.o ladspa__posix32.o dssi__posix32.o lv2__posix32.o vst__posix32.o ../carla-lilv/carla_lilv_32bit.a
  133. carla-bridge-posix32: $(OBJS_POSIX32)
  134. $(CXX) $^ $(POSIX_LINK_FLAGS) $(POSIX_32BIT_FLAGS) -o $@ && $(STRIP) $@
  135. carla_bridge_plugin__posix32.o: carla_bridge_plugin.cpp
  136. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  137. carla_bridge_osc__posix32.o: carla_bridge_osc.cpp
  138. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  139. carla_engine_jack__posix32.o: ../carla-backend/carla_engine_jack.cpp
  140. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  141. carla_shared__posix32.o: ../carla-backend/carla_shared.cpp
  142. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  143. ladspa__posix32.o: ../carla-backend/ladspa.cpp
  144. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  145. dssi__posix32.o: ../carla-backend/dssi.cpp
  146. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  147. lv2__posix32.o: ../carla-backend/lv2.cpp
  148. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  149. vst__posix32.o: ../carla-backend/vst.cpp
  150. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@
  151. # --------------------------------------------------------------
  152. # posix64
  153. OBJS_POSIX64 = \
  154. carla_bridge_plugin__posix64.o carla_bridge_osc__posix64.o \
  155. carla_engine_jack__posix64.o carla_shared__posix64.o ladspa__posix64.o dssi__posix64.o lv2__posix64.o vst__posix64.o ../carla-lilv/carla_lilv_64bit.a
  156. carla-bridge-posix64: $(OBJS_POSIX64)
  157. $(CXX) $^ $(POSIX_LINK_FLAGS) $(POSIX_64BIT_FLAGS) -o $@ && $(STRIP) $@
  158. carla_bridge_plugin__posix64.o: carla_bridge_plugin.cpp
  159. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  160. carla_bridge_osc__posix64.o: carla_bridge_osc.cpp
  161. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  162. carla_engine_jack__posix64.o: ../carla-backend/carla_engine_jack.cpp
  163. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  164. carla_shared__posix64.o: ../carla-backend/carla_shared.cpp
  165. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  166. ladspa__posix64.o: ../carla-backend/ladspa.cpp
  167. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  168. dssi__posix64.o: ../carla-backend/dssi.cpp
  169. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  170. lv2__posix64.o: ../carla-backend/lv2.cpp
  171. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  172. vst__posix64.o: ../carla-backend/vst.cpp
  173. $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@
  174. # --------------------------------------------------------------
  175. # wine32
  176. OBJS_WINE32 = \
  177. carla_bridge_plugin__wine32.o carla_bridge_osc__wine32.o \
  178. carla_engine_jack__wine32.o carla_shared__wine32.o ladspa__wine32.o dssi__wine32.o lv2__wine32.o vst__wine32.o ../carla-lilv/carla_lilv_32bit.a
  179. carla-bridge-win32.exe.so: $(OBJS_WINE32)
  180. $(WINECXX) $^ $(WINE_LINK_FLAGS) $(WINE_32BIT_FLAGS) -o carla-bridge-win32 && $(STRIP) $@
  181. carla_bridge_plugin__wine32.o: carla_bridge_plugin.cpp
  182. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  183. carla_bridge_osc__wine32.o: carla_bridge_osc.cpp
  184. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  185. carla_engine_jack__wine32.o: ../carla-backend/carla_engine_jack.cpp
  186. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  187. carla_shared__wine32.o: ../carla-backend/carla_shared.cpp
  188. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  189. ladspa__wine32.o: ../carla-backend/ladspa.cpp
  190. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  191. dssi__wine32.o: ../carla-backend/dssi.cpp
  192. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  193. lv2__wine32.o: ../carla-backend/lv2.cpp
  194. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  195. vst__wine32.o: ../carla-backend/vst.cpp
  196. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_32BIT_FLAGS) -c -o $@
  197. # --------------------------------------------------------------
  198. # wine64
  199. OBJS_WINE64 = \
  200. carla_bridge_plugin__wine64.o carla_bridge_osc__wine64.o \
  201. carla_engine_jack__wine64.o carla_shared__wine64.o ladspa__wine64.o dssi__wine64.o lv2__wine64.o vst__wine64.o ../carla-lilv/carla_lilv_64bit.a
  202. carla-bridge-win64.exe.so: $(OBJS_WINE64)
  203. $(WINECXX) $^ $(WINE_LINK_FLAGS) $(WINE_64BIT_FLAGS) -o carla-bridge-win64 && $(STRIP) $@
  204. carla_bridge_plugin__wine64.o: carla_bridge_plugin.cpp
  205. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  206. carla_bridge_osc__wine64.o: carla_bridge_osc.cpp
  207. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  208. carla_engine_jack__wine64.o: ../carla-backend/carla_engine_jack.cpp
  209. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  210. carla_shared__wine64.o: ../carla-backend/carla_shared.cpp
  211. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  212. ladspa__wine64.o: ../carla-backend/ladspa.cpp
  213. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  214. dssi__wine64.o: ../carla-backend/dssi.cpp
  215. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  216. lv2__wine64.o: ../carla-backend/lv2.cpp
  217. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  218. vst__wine64.o: ../carla-backend/vst.cpp
  219. $(WINECXX) $< $(WINE_BUILD_FLAGS) $(WINE_64BIT_FLAGS) -c -o $@
  220. # --------------------------------------------------------------
  221. ../carla-lilv/carla_lilv_32bit.a:
  222. $(MAKE) -C ../carla-lilv 32bit
  223. ../carla-lilv/carla_lilv_64bit.a:
  224. $(MAKE) -C ../carla-lilv 64bit
  225. # --------------------------------------------------------------
  226. doc: carla_bridge.doxygen
  227. doxygen $<
  228. clean:
  229. rm -f *.o *.so *.exe
  230. rm -f carla-bridge-lv2-gtk2 carla-bridge-lv2-gtk3 carla-bridge-lv2-qt4 carla-bridge-lv2-x11 carla-bridge-vst-x11
  231. rm -f carla-bridge-posix32 carla-bridge-posix64