DISTRHO Plugin Framework
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.

274 lines
8.8KB

  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 += -Wno-deprecated-declarations
  14. else
  15. PUGL_EXTRA_FLAGS = -Wno-extra -Wmissing-field-initializers
  16. endif
  17. # ifneq ($(MACOS_OLD),true)
  18. # needed by sofd right now, fix later
  19. # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive
  20. # endif
  21. # ---------------------------------------------------------------------------------------------------------------------
  22. ifeq ($(MODGUI_BUILD),true)
  23. BUILD_DIR_SUFFIX = -modgui
  24. endif
  25. BUILD_DIR = ../build$(BUILD_DIR_SUFFIX)
  26. # ---------------------------------------------------------------------------------------------------------------------
  27. OBJS_common = \
  28. $(BUILD_DIR)/dgl/Application.cpp.o \
  29. $(BUILD_DIR)/dgl/ApplicationPrivateData.cpp.o \
  30. $(BUILD_DIR)/dgl/Color.cpp.o \
  31. $(BUILD_DIR)/dgl/EventHandlers.cpp.o \
  32. $(BUILD_DIR)/dgl/Geometry.cpp.o \
  33. $(BUILD_DIR)/dgl/ImageBase.cpp.o \
  34. $(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \
  35. $(BUILD_DIR)/dgl/Layout.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. # ---------------------------------------------------------------------------------------------------------------------
  46. OBJS_cairo = $(OBJS_common) \
  47. $(BUILD_DIR)/dgl/Cairo.cpp.cairo.o
  48. ifeq ($(MACOS),true)
  49. OBJS_cairo += $(BUILD_DIR)/dgl/pugl.mm.cairo.o
  50. else
  51. OBJS_cairo += $(BUILD_DIR)/dgl/pugl.cpp.cairo.o
  52. endif
  53. # ---------------------------------------------------------------------------------------------------------------------
  54. OBJS_opengl = $(OBJS_common) \
  55. $(BUILD_DIR)/dgl/OpenGL.cpp.opengl.o \
  56. $(BUILD_DIR)/dgl/NanoVG.cpp.opengl.o
  57. ifeq ($(MACOS),true)
  58. OBJS_opengl += $(BUILD_DIR)/dgl/pugl.mm.opengl.o
  59. else
  60. OBJS_opengl += $(BUILD_DIR)/dgl/pugl.cpp.opengl.o
  61. endif
  62. # ---------------------------------------------------------------------------------------------------------------------
  63. OBJS_opengl3 = $(OBJS_common) \
  64. $(BUILD_DIR)/dgl/OpenGL.cpp.opengl3.o \
  65. $(BUILD_DIR)/dgl/NanoVG.cpp.opengl3.o
  66. ifeq ($(MACOS),true)
  67. OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.mm.opengl3.o
  68. else
  69. OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.cpp.opengl3.o
  70. endif
  71. # ---------------------------------------------------------------------------------------------------------------------
  72. OBJS_stub = $(OBJS_common)
  73. ifeq ($(MACOS),true)
  74. OBJS_stub += $(BUILD_DIR)/dgl/pugl.mm.o
  75. else
  76. OBJS_stub += $(BUILD_DIR)/dgl/pugl.cpp.o
  77. endif
  78. # ---------------------------------------------------------------------------------------------------------------------
  79. OBJS_vulkan = $(OBJS_common) \
  80. $(BUILD_DIR)/dgl/Vulkan.cpp.vulkan.o
  81. ifeq ($(MACOS),true)
  82. OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.mm.vulkan.o
  83. else
  84. OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.cpp.vulkan.o
  85. endif
  86. # ---------------------------------------------------------------------------------------------------------------------
  87. ifeq ($(HAVE_CAIRO),true)
  88. TARGETS += $(BUILD_DIR)/libdgl-cairo.a
  89. endif
  90. ifeq ($(HAVE_OPENGL),true)
  91. TARGETS += $(BUILD_DIR)/libdgl-opengl.a
  92. # Compat name, to be removed soon
  93. TARGETS += $(BUILD_DIR)/libdgl.a
  94. endif
  95. ifeq ($(HAVE_STUB),true)
  96. TARGETS += $(BUILD_DIR)/libdgl-stub.a
  97. endif
  98. ifeq ($(HAVE_VULKAN),true)
  99. TARGETS += $(BUILD_DIR)/libdgl-vulkan.a
  100. endif
  101. # ---------------------------------------------------------------------------------------------------------------------
  102. all: $(TARGETS)
  103. cairo: $(BUILD_DIR)/libdgl-cairo.a
  104. opengl: $(BUILD_DIR)/libdgl-opengl.a
  105. opengl3: $(BUILD_DIR)/libdgl-opengl3.a
  106. stub: $(BUILD_DIR)/libdgl-stub.a
  107. vulkan: $(BUILD_DIR)/libdgl-vulkan.a
  108. # ---------------------------------------------------------------------------------------------------------------------
  109. $(BUILD_DIR)/libdgl-cairo.a: $(OBJS_cairo)
  110. -@mkdir -p $(BUILD_DIR)
  111. @echo "Creating libdgl-cairo.a"
  112. $(SILENT)rm -f $@
  113. $(SILENT)$(AR) crs $@ $^
  114. $(BUILD_DIR)/libdgl-opengl.a: $(OBJS_opengl)
  115. -@mkdir -p $(BUILD_DIR)
  116. @echo "Creating libdgl-opengl.a"
  117. $(SILENT)rm -f $@
  118. $(SILENT)$(AR) crs $@ $^
  119. $(BUILD_DIR)/libdgl-opengl3.a: $(OBJS_opengl3)
  120. -@mkdir -p $(BUILD_DIR)
  121. @echo "Creating libdgl-opengl3.a"
  122. $(SILENT)rm -f $@
  123. $(SILENT)$(AR) crs $@ $^
  124. $(BUILD_DIR)/libdgl-stub.a: $(OBJS_stub)
  125. -@mkdir -p $(BUILD_DIR)
  126. @echo "Creating libdgl-stub.a"
  127. $(SILENT)rm -f $@
  128. $(SILENT)$(AR) crs $@ $^
  129. $(BUILD_DIR)/libdgl-vulkan.a: $(OBJS_vulkan)
  130. -@mkdir -p $(BUILD_DIR)
  131. @echo "Creating libdgl-vulkan.a"
  132. $(SILENT)rm -f $@
  133. $(SILENT)$(AR) crs $@ $^
  134. # Compat name, to be removed soon
  135. $(BUILD_DIR)/libdgl.a: $(BUILD_DIR)/libdgl-opengl.a
  136. @echo "Symlinking libdgl.a"
  137. $(SILENT)ln -sf $< $@
  138. # ---------------------------------------------------------------------------------------------------------------------
  139. $(BUILD_DIR)/dgl/%.c.o: src/%.c
  140. -@mkdir -p $(BUILD_DIR)/dgl
  141. @echo "Compiling $<"
  142. $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
  143. $(BUILD_DIR)/dgl/%.cpp.o: src/%.cpp
  144. -@mkdir -p $(BUILD_DIR)/dgl
  145. @echo "Compiling $<"
  146. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  147. $(BUILD_DIR)/dgl/%.mm.o: src/%.mm
  148. -@mkdir -p $(BUILD_DIR)/dgl
  149. @echo "Compiling $<"
  150. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@
  151. # ---------------------------------------------------------------------------------------------------------------------
  152. $(BUILD_DIR)/dgl/pugl.cpp.o: src/pugl.cpp
  153. -@mkdir -p $(BUILD_DIR)/dgl
  154. @echo "Compiling $<"
  155. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -o $@
  156. $(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm
  157. -@mkdir -p $(BUILD_DIR)/dgl
  158. @echo "Compiling $<"
  159. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@
  160. # ---------------------------------------------------------------------------------------------------------------------
  161. $(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp
  162. -@mkdir -p $(BUILD_DIR)/dgl
  163. @echo "Compiling $< (Cairo variant)"
  164. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
  165. $(BUILD_DIR)/dgl/%.mm.cairo.o: src/%.mm
  166. -@mkdir -p $(BUILD_DIR)/dgl
  167. @echo "Compiling $< (Cairo variant)"
  168. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@
  169. # ---------------------------------------------------------------------------------------------------------------------
  170. $(BUILD_DIR)/dgl/%.cpp.opengl.o: src/%.cpp
  171. -@mkdir -p $(BUILD_DIR)/dgl
  172. @echo "Compiling $< (OpenGL variant)"
  173. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
  174. $(BUILD_DIR)/dgl/%.mm.opengl.o: src/%.mm
  175. -@mkdir -p $(BUILD_DIR)/dgl
  176. @echo "Compiling $< (OpenGL variant)"
  177. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@
  178. # ---------------------------------------------------------------------------------------------------------------------
  179. $(BUILD_DIR)/dgl/%.cpp.opengl3.o: src/%.cpp
  180. -@mkdir -p $(BUILD_DIR)/dgl
  181. @echo "Compiling $< (OpenGL3 variant)"
  182. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@
  183. $(BUILD_DIR)/dgl/%.mm.opengl3.o: src/%.mm
  184. -@mkdir -p $(BUILD_DIR)/dgl
  185. @echo "Compiling $< (OpenGL3 variant)"
  186. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -ObjC++ -o $@
  187. # ---------------------------------------------------------------------------------------------------------------------
  188. $(BUILD_DIR)/dgl/%.cpp.vulkan.o: src/%.cpp
  189. -@mkdir -p $(BUILD_DIR)/dgl
  190. @echo "Compiling $< (Vulkan variant)"
  191. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@
  192. $(BUILD_DIR)/dgl/%.mm.vulkan.o: src/%.mm
  193. -@mkdir -p $(BUILD_DIR)/dgl
  194. @echo "Compiling $< (Vulkan variant)"
  195. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@
  196. # ---------------------------------------------------------------------------------------------------------------------
  197. clean:
  198. rm -rf $(BUILD_DIR)/dgl $(BUILD_DIR)/libdgl*.*
  199. debug:
  200. $(MAKE) DEBUG=true
  201. # ---------------------------------------------------------------------------------------------------------------------
  202. -include $(OBJS_common:%.o=%.d)
  203. -include $(OBJS_cairo:%.o=%.d)
  204. -include $(OBJS_opengl:%.o=%.d)
  205. -include $(OBJS_opengl3:%.o=%.d)
  206. -include $(OBJS_stub:%.o=%.d)
  207. -include $(OBJS_vulkan:%.o=%.d)
  208. # ---------------------------------------------------------------------------------------------------------------------