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.

244 lines
8.0KB

  1. #!/usr/bin/make -f
  2. # Makefile for jackbridge #
  3. # ----------------------- #
  4. # Created by falkTX
  5. #
  6. CWD=..
  7. MODULENAME=jackbridge
  8. include ../modules/Makefile.mk
  9. # ---------------------------------------------------------------------------------------------------------------------
  10. BUILD_CXX_FLAGS += $(JACKBRIDGE_FLAGS)
  11. LINK_FLAGS += $(JACKBRIDGE_LIBS)
  12. WINE_32BIT_FLAGS = $(32BIT_FLAGS)
  13. WINE_64BIT_FLAGS = $(64BIT_FLAGS)
  14. WINE_LINK_FLAGS = $(LINK_FLAGS) $(LIBDL_LIBS) -lpthread -lstdc++
  15. ifneq ($(MACOS),true)
  16. WINE_32BIT_FLAGS += -I/usr/include/wine/wine/windows
  17. WINE_32BIT_FLAGS += -L/usr/lib32/wine
  18. WINE_32BIT_FLAGS += -L/usr/lib/i386-linux-gnu/wine
  19. WINE_32BIT_FLAGS += -L/usr/lib/i386-linux-gnu/wine-development
  20. WINE_32BIT_FLAGS += -L/opt/wine-staging/lib
  21. WINE_32BIT_FLAGS += -L/opt/wine-staging/lib/wine
  22. WINE_64BIT_FLAGS += -I/usr/include/wine/wine/windows
  23. WINE_64BIT_FLAGS += -L/usr/lib64/wine
  24. WINE_64BIT_FLAGS += -L/usr/lib/x86_64-linux-gnu/wine
  25. WINE_64BIT_FLAGS += -L/usr/lib/x86_64-linux-gnu/wine-development
  26. WINE_64BIT_FLAGS += -L/opt/wine-staging/lib64
  27. WINE_64BIT_FLAGS += -L/opt/wine-staging/lib64/wine
  28. WINE_LINK_FLAGS += -lrt
  29. endif
  30. # ---------------------------------------------------------------------------------------------------------------------
  31. OBJS = $(OBJDIR)/JackBridge1.cpp.o $(OBJDIR)/JackBridge2.cpp.o
  32. OBJS_arm32 = $(OBJDIR)/JackBridge1.cpp.arm32.o $(OBJDIR)/JackBridge2.cpp.arm32.o
  33. OBJS_posix32 = $(OBJDIR)/JackBridge1.cpp.posix32.o $(OBJDIR)/JackBridge2.cpp.posix32.o
  34. OBJS_posix64 = $(OBJDIR)/JackBridge1.cpp.posix64.o $(OBJDIR)/JackBridge2.cpp.posix64.o
  35. OBJS_win32 = $(OBJDIR)/JackBridge1.cpp.win32.o $(OBJDIR)/JackBridge2.cpp.win32.o
  36. OBJS_win64 = $(OBJDIR)/JackBridge1.cpp.win64.o $(OBJDIR)/JackBridge2.cpp.win64.o
  37. OBJS_wine32 = $(OBJDIR)/JackBridge1.cpp.wine32.o $(OBJDIR)/JackBridge2.cpp.wine32.o $(OBJDIR)/JackBridge3.cpp.wine32.o
  38. OBJS_wine64 = $(OBJDIR)/JackBridge1.cpp.wine64.o $(OBJDIR)/JackBridge2.cpp.wine64.o $(OBJDIR)/JackBridge3.cpp.wine64.o
  39. OBJS_posix32e = $(OBJDIR)/JackBridgeExport.cpp.posix32e.o
  40. OBJS_posix64e = $(OBJDIR)/JackBridgeExport.cpp.posix64e.o
  41. OBJS_win64e = $(OBJDIR)/JackBridgeExport.cpp.win64e.o
  42. OBJS_win32e = $(OBJDIR)/JackBridgeExport.cpp.win32e.o
  43. # ---------------------------------------------------------------------------------------------------------------------
  44. all: $(MODULEDIR)/$(MODULENAME).a
  45. ifeq ($(WIN32),true)
  46. posix32:
  47. posix64:
  48. posix32e:
  49. posix64e:
  50. win32: $(MODULEDIR)/$(MODULENAME).win32.a
  51. win64: $(MODULEDIR)/$(MODULENAME).win64.a
  52. win32e: $(MODULEDIR)/$(MODULENAME).win32e.a
  53. win64e: $(MODULEDIR)/$(MODULENAME).win64e.a
  54. wine32:
  55. wine64:
  56. else
  57. arm32: $(MODULEDIR)/$(MODULENAME).arm32.a
  58. posix32: $(MODULEDIR)/$(MODULENAME).posix32.a
  59. posix64: $(MODULEDIR)/$(MODULENAME).posix64.a
  60. posix32e: $(MODULEDIR)/$(MODULENAME).posix32e.a
  61. posix64e: $(MODULEDIR)/$(MODULENAME).posix64e.a
  62. win32:
  63. win64:
  64. win32e:
  65. win64e:
  66. wine32: $(MODULEDIR)/$(MODULENAME)-wine32.dll$(LIB_EXT)
  67. wine64: $(MODULEDIR)/$(MODULENAME)-wine64.dll$(LIB_EXT)
  68. endif
  69. # ---------------------------------------------------------------------------------------------------------------------
  70. clean:
  71. rm -f $(OBJDIR)/*.o $(MODULEDIR)/$(MODULENAME)*.*
  72. debug:
  73. $(MAKE) DEBUG=true
  74. # ---------------------------------------------------------------------------------------------------------------------
  75. $(MODULEDIR)/$(MODULENAME).a: $(OBJS)
  76. -@mkdir -p $(MODULEDIR)
  77. @echo "Creating $(MODULENAME).a"
  78. @rm -f $@
  79. @$(AR) crs $@ $^
  80. $(MODULEDIR)/$(MODULENAME).arm32.a: $(OBJS_arm32)
  81. -@mkdir -p $(MODULEDIR)
  82. @echo "Creating $(MODULENAME).arm32.a"
  83. @rm -f $@
  84. @$(AR) crs $@ $^
  85. $(MODULEDIR)/$(MODULENAME).posix32.a: $(OBJS_posix32)
  86. -@mkdir -p $(MODULEDIR)
  87. @echo "Creating $(MODULENAME).posix32.a"
  88. @rm -f $@
  89. @$(AR) crs $@ $^
  90. $(MODULEDIR)/$(MODULENAME).posix64.a: $(OBJS_posix64)
  91. -@mkdir -p $(MODULEDIR)
  92. @echo "Creating $(MODULENAME).posix64.a"
  93. @rm -f $@
  94. @$(AR) crs $@ $^
  95. $(MODULEDIR)/$(MODULENAME).win32.a: $(OBJS_win32)
  96. -@mkdir -p $(MODULEDIR)
  97. @echo "Creating $(MODULENAME).win32.a"
  98. @rm -f $@
  99. @$(AR) crs $@ $^
  100. $(MODULEDIR)/$(MODULENAME).win64.a: $(OBJS_win64)
  101. -@mkdir -p $(MODULEDIR)
  102. @echo "Creating $(MODULENAME).win64.a"
  103. @rm -f $@
  104. @$(AR) crs $@ $^
  105. # ---------------------------------------------------------------------------------------------------------------------
  106. $(MODULEDIR)/$(MODULENAME).posix32e.a: $(OBJS_posix32e)
  107. -@mkdir -p $(MODULEDIR)
  108. @echo "Creating $(MODULENAME).posix32e.a"
  109. @rm -f $@
  110. @$(AR) crs $@ $^
  111. $(MODULEDIR)/$(MODULENAME).posix64e.a: $(OBJS_posix64e)
  112. -@mkdir -p $(MODULEDIR)
  113. @echo "Creating $(MODULENAME).posix64e.a"
  114. @rm -f $@
  115. @$(AR) crs $@ $^
  116. $(MODULEDIR)/$(MODULENAME).win32e.a: $(OBJS_win32e)
  117. -@mkdir -p $(MODULEDIR)
  118. @echo "Creating $(MODULENAME).win32e.a"
  119. @rm -f $@
  120. @$(AR) crs $@ $^
  121. $(MODULEDIR)/$(MODULENAME).win64e.a: $(OBJS_win64e)
  122. -@mkdir -p $(MODULEDIR)
  123. @echo "Creating $(MODULENAME).win64e.a"
  124. @rm -f $@
  125. @$(AR) crs $@ $^
  126. # ---------------------------------------------------------------------------------------------------------------------
  127. $(MODULEDIR)/$(MODULENAME)-wine32.dll$(LIB_EXT): $(OBJS_wine32) JackBridgeExport.def
  128. -@mkdir -p $(MODULEDIR)
  129. @echo "Linking $(MODULENAME)-wine32.dll$(LIB_EXT)"
  130. @$(WINECC) $^ $(WINE_32BIT_FLAGS) $(WINE_LINK_FLAGS) $(SHARED) -o $@
  131. $(MODULEDIR)/$(MODULENAME)-wine64.dll$(LIB_EXT): $(OBJS_wine64) JackBridgeExport.def
  132. -@mkdir -p $(MODULEDIR)
  133. @echo "Linking $(MODULENAME)-wine64.dll$(LIB_EXT)"
  134. @$(WINECC) $^ $(WINE_64BIT_FLAGS) $(WINE_LINK_FLAGS) $(SHARED) -o $@
  135. # ---------------------------------------------------------------------------------------------------------------------
  136. $(OBJDIR)/JackBridge1.cpp.o: JackBridge1.cpp
  137. -@mkdir -p $(OBJDIR)
  138. @echo "Compiling JackBridge1.cpp"
  139. @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  140. $(OBJDIR)/JackBridge2.cpp.o: JackBridge2.cpp
  141. -@mkdir -p $(OBJDIR)
  142. @echo "Compiling JackBridge2.cpp"
  143. @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  144. # ---------------------------------------------------------------------------------------------------------------------
  145. $(OBJDIR)/JackBridgeExport.cpp.%32e.o: JackBridgeExport.cpp
  146. -@mkdir -p $(OBJDIR)
  147. @echo "Compiling $<"
  148. @$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -fpermissive -c -o $@
  149. $(OBJDIR)/JackBridgeExport.cpp.%64e.o: JackBridgeExport.cpp
  150. -@mkdir -p $(OBJDIR)
  151. @echo "Compiling $<"
  152. @$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -fpermissive -c -o $@
  153. # ---------------------------------------------------------------------------------------------------------------------
  154. $(OBJDIR)/%.cpp.arm32.o: %.cpp
  155. -@mkdir -p $(OBJDIR)
  156. @echo "Compiling $< (arm32)"
  157. @$(CXX) $< $(BUILD_CXX_FLAGS) $(ARM32_FLAGS) -c -o $@
  158. $(OBJDIR)/%.cpp.posix32.o: %.cpp
  159. -@mkdir -p $(OBJDIR)
  160. @echo "Compiling $< (posix32)"
  161. @$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@
  162. $(OBJDIR)/%.cpp.posix64.o: %.cpp
  163. -@mkdir -p $(OBJDIR)
  164. @echo "Compiling $< (posix64)"
  165. @$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@
  166. $(OBJDIR)/%.cpp.win32.o: %.cpp
  167. -@mkdir -p $(OBJDIR)
  168. @echo "Compiling $< (win32)"
  169. @$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@
  170. $(OBJDIR)/%.cpp.win64.o: %.cpp
  171. -@mkdir -p $(OBJDIR)
  172. @echo "Compiling $< (win64)"
  173. @$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@
  174. $(OBJDIR)/%.cpp.wine32.o: %.cpp
  175. -@mkdir -p $(OBJDIR)
  176. @echo "Compiling $< (wine32)"
  177. @$(WINECC) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@
  178. $(OBJDIR)/%.cpp.wine64.o: %.cpp
  179. -@mkdir -p $(OBJDIR)
  180. @echo "Compiling $< (wine64)"
  181. @$(WINECC) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@
  182. # ---------------------------------------------------------------------------------------------------------------------
  183. -include $(OBJS:%.o=%.d)
  184. -include $(OBJS_arm32:%.o=%.d)
  185. -include $(OBJS_posix32:%.o=%.d)
  186. -include $(OBJS_posix32e:%.o=%.d)
  187. -include $(OBJS_posix64:%.o=%.d)
  188. -include $(OBJS_posix64e:%.o=%.d)
  189. -include $(OBJS_win32:%.o=%.d)
  190. -include $(OBJS_win32e:%.o=%.d)
  191. -include $(OBJS_win64:%.o=%.d)
  192. -include $(OBJS_win64e:%.o=%.d)
  193. -include $(OBJS_wine32:%.o=%.d)
  194. -include $(OBJS_wine64:%.o=%.d)
  195. # ---------------------------------------------------------------------------------------------------------------------