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.

206 lines
7.2KB

  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. WINECXX ?= wineg++
  11. BUILD_CXX_FLAGS += $(JACKBRIDGE_FLAGS)
  12. LINK_FLAGS += $(JACKBRIDGE_LIBS)
  13. ifeq ($(MACOS),true)
  14. WINE_32BIT_FLAGS = $(32BIT_FLAGS)
  15. WINE_64BIT_FLAGS = $(64BIT_FLAGS)
  16. WINE_LINK_FLAGS = $(LINK_FLAGS) -ldl -lpthread
  17. else
  18. WINE_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine -L/opt/wine-staging/lib -L/opt/wine-staging/lib/wine
  19. WINE_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64/wine -L/usr/lib/x86_64-linux-gnu/wine -L/opt/wine-staging/lib64 -L/opt/wine-staging/lib64/wine
  20. WINE_LINK_FLAGS = $(LINK_FLAGS) -ldl -lrt -lpthread
  21. endif
  22. # ----------------------------------------------------------------------------------------------------------------------------
  23. OBJS = $(OBJDIR)/JackBridge1.cpp.o $(OBJDIR)/JackBridge2.cpp.o
  24. OBJS_posix32 = $(OBJDIR)/JackBridge1.cpp.posix32.o $(OBJDIR)/JackBridge2.cpp.posix32.o
  25. OBJS_posix64 = $(OBJDIR)/JackBridge1.cpp.posix64.o $(OBJDIR)/JackBridge2.cpp.posix64.o
  26. OBJS_win32 = $(OBJDIR)/JackBridge1.cpp.win32.o $(OBJDIR)/JackBridge2.cpp.win32.o
  27. OBJS_win64 = $(OBJDIR)/JackBridge1.cpp.win64.o $(OBJDIR)/JackBridge2.cpp.win64.o
  28. OBJS_wine32 = $(OBJDIR)/JackBridge1.cpp.wine32.o $(OBJDIR)/JackBridge2.cpp.wine32.o $(OBJDIR)/JackBridge3.cpp.wine32.o
  29. OBJS_wine64 = $(OBJDIR)/JackBridge1.cpp.wine64.o $(OBJDIR)/JackBridge2.cpp.wine64.o $(OBJDIR)/JackBridge3.cpp.wine64.o
  30. OBJS_posix32e = $(OBJDIR)/JackBridgeExport.cpp.posix32e.o
  31. OBJS_posix64e = $(OBJDIR)/JackBridgeExport.cpp.posix64e.o
  32. OBJS_win64e = $(OBJDIR)/JackBridgeExport.cpp.win64e.o
  33. OBJS_win32e = $(OBJDIR)/JackBridgeExport.cpp.win32e.o
  34. # ----------------------------------------------------------------------------------------------------------------------------
  35. all: $(MODULEDIR)/$(MODULENAME).a
  36. posix32: $(MODULEDIR)/$(MODULENAME).posix32.a
  37. posix64: $(MODULEDIR)/$(MODULENAME).posix64.a
  38. posix32e: $(MODULEDIR)/$(MODULENAME).posix32e.a
  39. posix64e: $(MODULEDIR)/$(MODULENAME).posix64e.a
  40. win32: $(MODULEDIR)/$(MODULENAME).win32.a
  41. win64: $(MODULEDIR)/$(MODULENAME).win64.a
  42. win32e: $(MODULEDIR)/$(MODULENAME).win32e.a
  43. win64e: $(MODULEDIR)/$(MODULENAME).win64e.a
  44. wine32: $(MODULEDIR)/$(MODULENAME)-wine32.dll$(LIB_EXT)
  45. wine64: $(MODULEDIR)/$(MODULENAME)-wine64.dll$(LIB_EXT)
  46. # ----------------------------------------------------------------------------------------------------------------------------
  47. clean:
  48. rm -f $(OBJDIR)/*.o $(MODULEDIR)/$(MODULENAME)*.*
  49. debug:
  50. $(MAKE) DEBUG=true
  51. # ----------------------------------------------------------------------------------------------------------------------------
  52. $(MODULEDIR)/$(MODULENAME).a: $(OBJS)
  53. -@mkdir -p $(MODULEDIR)
  54. @echo "Creating $(MODULENAME).a"
  55. @rm -f $@
  56. @$(AR) crs $@ $^
  57. $(MODULEDIR)/$(MODULENAME).posix32.a: $(OBJS_posix32)
  58. -@mkdir -p $(MODULEDIR)
  59. @echo "Creating $(MODULENAME).posix32.a"
  60. @rm -f $@
  61. @$(AR) crs $@ $^
  62. $(MODULEDIR)/$(MODULENAME).posix64.a: $(OBJS_posix64)
  63. -@mkdir -p $(MODULEDIR)
  64. @echo "Creating $(MODULENAME).posix64.a"
  65. @rm -f $@
  66. @$(AR) crs $@ $^
  67. $(MODULEDIR)/$(MODULENAME).win32.a: $(OBJS_win32)
  68. -@mkdir -p $(MODULEDIR)
  69. @echo "Creating $(MODULENAME).win32.a"
  70. @rm -f $@
  71. @$(AR) crs $@ $^
  72. $(MODULEDIR)/$(MODULENAME).win64.a: $(OBJS_win64)
  73. -@mkdir -p $(MODULEDIR)
  74. @echo "Creating $(MODULENAME).win64.a"
  75. @rm -f $@
  76. @$(AR) crs $@ $^
  77. # ----------------------------------------------------------------------------------------------------------------------------
  78. $(MODULEDIR)/$(MODULENAME).posix32e.a: $(OBJS_posix32e)
  79. -@mkdir -p $(MODULEDIR)
  80. @echo "Creating $(MODULENAME).posix32e.a"
  81. @rm -f $@
  82. @$(AR) crs $@ $^
  83. $(MODULEDIR)/$(MODULENAME).posix64e.a: $(OBJS_posix64e)
  84. -@mkdir -p $(MODULEDIR)
  85. @echo "Creating $(MODULENAME).posix64e.a"
  86. @rm -f $@
  87. @$(AR) crs $@ $^
  88. $(MODULEDIR)/$(MODULENAME).win32e.a: $(OBJS_win32e)
  89. -@mkdir -p $(MODULEDIR)
  90. @echo "Creating $(MODULENAME).win32e.a"
  91. @rm -f $@
  92. @$(AR) crs $@ $^
  93. $(MODULEDIR)/$(MODULENAME).win64e.a: $(OBJS_win64e)
  94. -@mkdir -p $(MODULEDIR)
  95. @echo "Creating $(MODULENAME).win64e.a"
  96. @rm -f $@
  97. @$(AR) crs $@ $^
  98. # ----------------------------------------------------------------------------------------------------------------------------
  99. $(MODULEDIR)/$(MODULENAME)-wine32.dll$(LIB_EXT): $(OBJS_wine32) JackBridgeExport.def
  100. -@mkdir -p $(MODULEDIR)
  101. @echo "Linking $(MODULENAME)-wine32.dll$(LIB_EXT)"
  102. @$(WINECXX) $^ $(WINE_32BIT_FLAGS) $(WINE_LINK_FLAGS) $(SHARED) -o $@
  103. $(MODULEDIR)/$(MODULENAME)-wine64.dll$(LIB_EXT): $(OBJS_wine64) JackBridgeExport.def
  104. -@mkdir -p $(MODULEDIR)
  105. @echo "Linking $(MODULENAME)-wine64.dll$(LIB_EXT)"
  106. @$(WINECXX) $^ $(WINE_64BIT_FLAGS) $(WINE_LINK_FLAGS) $(SHARED) -o $@
  107. # ----------------------------------------------------------------------------------------------------------------------------
  108. $(OBJDIR)/JackBridge1.cpp.o: JackBridge1.cpp
  109. -@mkdir -p $(OBJDIR)
  110. @echo "Compiling JackBridge1.cpp"
  111. @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  112. $(OBJDIR)/JackBridge2.cpp.o: JackBridge2.cpp
  113. -@mkdir -p $(OBJDIR)
  114. @echo "Compiling JackBridge2.cpp"
  115. @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  116. # ----------------------------------------------------------------------------------------------------------------------------
  117. $(OBJDIR)/JackBridgeExport.cpp.%32e.o: JackBridgeExport.cpp
  118. -@mkdir -p $(OBJDIR)
  119. @echo "Compiling $<"
  120. @$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -fpermissive -c -o $@
  121. $(OBJDIR)/JackBridgeExport.cpp.%64e.o: JackBridgeExport.cpp
  122. -@mkdir -p $(OBJDIR)
  123. @echo "Compiling $<"
  124. @$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -fpermissive -c -o $@
  125. # ----------------------------------------------------------------------------------------------------------------------------
  126. $(OBJDIR)/%.cpp.posix32.o: %.cpp
  127. -@mkdir -p $(OBJDIR)
  128. @echo "Compiling $< (posix32)"
  129. @$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@
  130. $(OBJDIR)/%.cpp.posix64.o: %.cpp
  131. -@mkdir -p $(OBJDIR)
  132. @echo "Compiling $< (posix64)"
  133. @$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@
  134. $(OBJDIR)/%.cpp.win32.o: %.cpp
  135. -@mkdir -p $(OBJDIR)
  136. @echo "Compiling $< (win32)"
  137. @$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@
  138. $(OBJDIR)/%.cpp.win64.o: %.cpp
  139. -@mkdir -p $(OBJDIR)
  140. @echo "Compiling $< (win64)"
  141. @$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@
  142. $(OBJDIR)/%.cpp.wine32.o: %.cpp
  143. -@mkdir -p $(OBJDIR)
  144. @echo "Compiling $< (wine32)"
  145. @$(WINECXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@
  146. $(OBJDIR)/%.cpp.wine64.o: %.cpp
  147. -@mkdir -p $(OBJDIR)
  148. @echo "Compiling $< (wine64)"
  149. @$(WINECXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@
  150. # ----------------------------------------------------------------------------------------------------------------------------
  151. -include $(OBJS:%.o=%.d)
  152. -include $(OBJS_posix32:%.o=%.d)
  153. -include $(OBJS_posix32e:%.o=%.d)
  154. -include $(OBJS_posix64:%.o=%.d)
  155. -include $(OBJS_posix64e:%.o=%.d)
  156. -include $(OBJS_win32:%.o=%.d)
  157. -include $(OBJS_win32e:%.o=%.d)
  158. -include $(OBJS_win64:%.o=%.d)
  159. -include $(OBJS_win64e:%.o=%.d)
  160. -include $(OBJS_wine32:%.o=%.d)
  161. -include $(OBJS_wine64:%.o=%.d)
  162. # ----------------------------------------------------------------------------------------------------------------------------