Collection of DPF-based plugins for packaging
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.

278 lines
9.0KB

  1. #!/usr/bin/make -f
  2. # Makefile for DGL #
  3. # ---------------- #
  4. # Created by falkTX
  5. #
  6. include ../Makefile.base.mk
  7. # ---------------------------------------------------------------------------------------------------------------------
  8. BUILD_C_FLAGS += $(DGL_FLAGS) -I. -Isrc
  9. BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc -DDONT_SET_USING_DGL_NAMESPACE -Wno-unused-parameter
  10. BUILD_CXX_FLAGS += -Isrc/pugl-upstream/include
  11. LINK_FLAGS += $(DGL_LIBS)
  12. ifeq ($(MACOS),true)
  13. BUILD_CXX_FLAGS += -DDISTRHO_MACOS_NAMESPACE_TIME=$(shell date +%s)
  14. BUILD_CXX_FLAGS += -Wno-deprecated-declarations
  15. else
  16. PUGL_EXTRA_FLAGS = -Wno-extra -Wmissing-field-initializers
  17. endif
  18. # ifneq ($(MACOS_OLD),true)
  19. # needed by sofd right now, fix later
  20. # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive
  21. # endif
  22. # ---------------------------------------------------------------------------------------------------------------------
  23. ifeq ($(MODGUI_BUILD),true)
  24. BUILD_DIR_SUFFIX = -modgui
  25. endif
  26. BUILD_DIR = ../build$(BUILD_DIR_SUFFIX)
  27. # ---------------------------------------------------------------------------------------------------------------------
  28. OBJS_common = \
  29. $(BUILD_DIR)/dgl/Application.cpp.o \
  30. $(BUILD_DIR)/dgl/ApplicationPrivateData.cpp.o \
  31. $(BUILD_DIR)/dgl/Color.cpp.o \
  32. $(BUILD_DIR)/dgl/EventHandlers.cpp.o \
  33. $(BUILD_DIR)/dgl/Geometry.cpp.o \
  34. $(BUILD_DIR)/dgl/ImageBase.cpp.o \
  35. $(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \
  36. $(BUILD_DIR)/dgl/Resources.cpp.o \
  37. $(BUILD_DIR)/dgl/SubWidget.cpp.o \
  38. $(BUILD_DIR)/dgl/SubWidgetPrivateData.cpp.o \
  39. $(BUILD_DIR)/dgl/TopLevelWidget.cpp.o \
  40. $(BUILD_DIR)/dgl/TopLevelWidgetPrivateData.cpp.o \
  41. $(BUILD_DIR)/dgl/Widget.cpp.o \
  42. $(BUILD_DIR)/dgl/WidgetPrivateData.cpp.o \
  43. $(BUILD_DIR)/dgl/Window.cpp.o \
  44. $(BUILD_DIR)/dgl/WindowPrivateData.cpp.o
  45. ifeq ($(WINDOWS)$(USE_WEB_VIEW),truetrue)
  46. OBJS_common += $(BUILD_DIR)/dgl/WebViewWin32.cpp.o
  47. endif
  48. # ---------------------------------------------------------------------------------------------------------------------
  49. OBJS_cairo = $(OBJS_common) \
  50. $(BUILD_DIR)/dgl/Cairo.cpp.cairo.o
  51. ifeq ($(MACOS),true)
  52. OBJS_cairo += $(BUILD_DIR)/dgl/pugl.mm.cairo.o
  53. else
  54. OBJS_cairo += $(BUILD_DIR)/dgl/pugl.cpp.cairo.o
  55. endif
  56. # ---------------------------------------------------------------------------------------------------------------------
  57. OBJS_opengl = $(OBJS_common) \
  58. $(BUILD_DIR)/dgl/OpenGL.cpp.opengl.o \
  59. $(BUILD_DIR)/dgl/NanoVG.cpp.opengl.o
  60. ifeq ($(MACOS),true)
  61. OBJS_opengl += $(BUILD_DIR)/dgl/pugl.mm.opengl.o
  62. else
  63. OBJS_opengl += $(BUILD_DIR)/dgl/pugl.cpp.opengl.o
  64. endif
  65. # ---------------------------------------------------------------------------------------------------------------------
  66. OBJS_opengl3 = $(OBJS_common) \
  67. $(BUILD_DIR)/dgl/OpenGL.cpp.opengl3.o \
  68. $(BUILD_DIR)/dgl/NanoVG.cpp.opengl3.o
  69. ifeq ($(MACOS),true)
  70. OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.mm.opengl3.o
  71. else
  72. OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.cpp.opengl3.o
  73. endif
  74. # ---------------------------------------------------------------------------------------------------------------------
  75. OBJS_stub = $(OBJS_common) \
  76. $(BUILD_DIR)/dgl/Stub.cpp.o
  77. ifeq ($(MACOS),true)
  78. OBJS_stub += $(BUILD_DIR)/dgl/pugl.mm.o
  79. else
  80. OBJS_stub += $(BUILD_DIR)/dgl/pugl.cpp.o
  81. endif
  82. # ---------------------------------------------------------------------------------------------------------------------
  83. OBJS_vulkan = $(OBJS_common) \
  84. $(BUILD_DIR)/dgl/Vulkan.cpp.vulkan.o
  85. ifeq ($(MACOS),true)
  86. OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.mm.vulkan.o
  87. else
  88. OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.cpp.vulkan.o
  89. endif
  90. # ---------------------------------------------------------------------------------------------------------------------
  91. ifeq ($(HAVE_CAIRO),true)
  92. TARGETS += $(BUILD_DIR)/libdgl-cairo.a
  93. endif
  94. ifeq ($(HAVE_OPENGL),true)
  95. TARGETS += $(BUILD_DIR)/libdgl-opengl.a
  96. endif
  97. ifeq ($(HAVE_STUB),true)
  98. TARGETS += $(BUILD_DIR)/libdgl-stub.a
  99. endif
  100. ifeq ($(HAVE_VULKAN),true)
  101. TARGETS += $(BUILD_DIR)/libdgl-vulkan.a
  102. endif
  103. # ---------------------------------------------------------------------------------------------------------------------
  104. all: $(TARGETS)
  105. cairo: $(BUILD_DIR)/libdgl-cairo.a
  106. opengl: $(BUILD_DIR)/libdgl-opengl.a
  107. opengl3: $(BUILD_DIR)/libdgl-opengl3.a
  108. stub: $(BUILD_DIR)/libdgl-stub.a
  109. vulkan: $(BUILD_DIR)/libdgl-vulkan.a
  110. web: $(BUILD_DIR)/libdgl-web.a
  111. # ---------------------------------------------------------------------------------------------------------------------
  112. $(BUILD_DIR)/libdgl-cairo.a: $(OBJS_cairo)
  113. -@mkdir -p $(BUILD_DIR)
  114. @echo "Creating libdgl-cairo.a"
  115. $(SILENT)rm -f $@
  116. $(SILENT)$(AR) crs $@ $^
  117. $(BUILD_DIR)/libdgl-opengl.a: $(OBJS_opengl)
  118. -@mkdir -p $(BUILD_DIR)
  119. @echo "Creating libdgl-opengl.a"
  120. $(SILENT)rm -f $@
  121. $(SILENT)$(AR) crs $@ $^
  122. $(BUILD_DIR)/libdgl-opengl3.a: $(OBJS_opengl3)
  123. -@mkdir -p $(BUILD_DIR)
  124. @echo "Creating libdgl-opengl3.a"
  125. $(SILENT)rm -f $@
  126. $(SILENT)$(AR) crs $@ $^
  127. $(BUILD_DIR)/libdgl-stub.a: $(OBJS_stub)
  128. -@mkdir -p $(BUILD_DIR)
  129. @echo "Creating libdgl-stub.a"
  130. $(SILENT)rm -f $@
  131. $(SILENT)$(AR) crs $@ $^
  132. $(BUILD_DIR)/libdgl-vulkan.a: $(OBJS_vulkan)
  133. -@mkdir -p $(BUILD_DIR)
  134. @echo "Creating libdgl-vulkan.a"
  135. $(SILENT)rm -f $@
  136. $(SILENT)$(AR) crs $@ $^
  137. # ---------------------------------------------------------------------------------------------------------------------
  138. $(BUILD_DIR)/dgl/%.c.o: src/%.c
  139. -@mkdir -p $(BUILD_DIR)/dgl
  140. @echo "Compiling $<"
  141. $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
  142. $(BUILD_DIR)/dgl/%.cpp.o: src/%.cpp
  143. -@mkdir -p $(BUILD_DIR)/dgl
  144. @echo "Compiling $<"
  145. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  146. $(BUILD_DIR)/dgl/%.mm.o: src/%.mm
  147. -@mkdir -p $(BUILD_DIR)/dgl
  148. @echo "Compiling $<"
  149. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@
  150. # ---------------------------------------------------------------------------------------------------------------------
  151. $(BUILD_DIR)/dgl/pugl.cpp.o: src/pugl.cpp
  152. -@mkdir -p $(BUILD_DIR)/dgl
  153. @echo "Compiling $<"
  154. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -o $@
  155. $(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm
  156. -@mkdir -p $(BUILD_DIR)/dgl
  157. @echo "Compiling $<"
  158. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@
  159. $(BUILD_DIR)/dgl/WebViewWin32.cpp.o: src/WebViewWin32.cpp
  160. -@mkdir -p $(BUILD_DIR)/dgl
  161. @echo "Compiling $<"
  162. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@
  163. # ---------------------------------------------------------------------------------------------------------------------
  164. $(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp
  165. -@mkdir -p $(BUILD_DIR)/dgl
  166. @echo "Compiling $< (Cairo variant)"
  167. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
  168. $(BUILD_DIR)/dgl/%.mm.cairo.o: src/%.mm
  169. -@mkdir -p $(BUILD_DIR)/dgl
  170. @echo "Compiling $< (Cairo variant)"
  171. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@
  172. # ---------------------------------------------------------------------------------------------------------------------
  173. $(BUILD_DIR)/dgl/%.cpp.opengl.o: src/%.cpp
  174. -@mkdir -p $(BUILD_DIR)/dgl
  175. @echo "Compiling $< (OpenGL variant)"
  176. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
  177. $(BUILD_DIR)/dgl/%.mm.opengl.o: src/%.mm
  178. -@mkdir -p $(BUILD_DIR)/dgl
  179. @echo "Compiling $< (OpenGL variant)"
  180. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@
  181. # ---------------------------------------------------------------------------------------------------------------------
  182. $(BUILD_DIR)/dgl/%.cpp.opengl3.o: src/%.cpp
  183. -@mkdir -p $(BUILD_DIR)/dgl
  184. @echo "Compiling $< (OpenGL3 variant)"
  185. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@
  186. $(BUILD_DIR)/dgl/%.mm.opengl3.o: src/%.mm
  187. -@mkdir -p $(BUILD_DIR)/dgl
  188. @echo "Compiling $< (OpenGL3 variant)"
  189. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -ObjC++ -o $@
  190. # ---------------------------------------------------------------------------------------------------------------------
  191. $(BUILD_DIR)/dgl/%.cpp.vulkan.o: src/%.cpp
  192. -@mkdir -p $(BUILD_DIR)/dgl
  193. @echo "Compiling $< (Vulkan variant)"
  194. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@
  195. $(BUILD_DIR)/dgl/%.mm.vulkan.o: src/%.mm
  196. -@mkdir -p $(BUILD_DIR)/dgl
  197. @echo "Compiling $< (Vulkan variant)"
  198. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@
  199. # ---------------------------------------------------------------------------------------------------------------------
  200. clean:
  201. rm -rf $(BUILD_DIR)/dgl $(BUILD_DIR)/libdgl*.*
  202. debug:
  203. $(MAKE) DEBUG=true
  204. # ---------------------------------------------------------------------------------------------------------------------
  205. -include $(OBJS_common:%.o=%.d)
  206. -include $(OBJS_cairo:%.o=%.d)
  207. -include $(OBJS_opengl:%.o=%.d)
  208. -include $(OBJS_opengl3:%.o=%.d)
  209. -include $(OBJS_stub:%.o=%.d)
  210. -include $(OBJS_vulkan:%.o=%.d)
  211. # ---------------------------------------------------------------------------------------------------------------------