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.

225 lines
6.7KB

  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 ($(USE_OPENGL3),true)
  13. BUILD_CXX_FLAGS += -DDGL_USE_OPENGL3
  14. endif
  15. # TODO fix these after pugl-upstream is done
  16. BUILD_CXX_FLAGS += -Wno-attributes -Wno-extra -Wno-missing-field-initializers
  17. ifneq ($(MACOS),true)
  18. BUILD_CXX_FLAGS += -Wno-narrowing
  19. endif
  20. # ifneq ($(MACOS_OLD),true)
  21. # needed by sofd right now, fix later
  22. # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive
  23. # endif
  24. # ---------------------------------------------------------------------------------------------------------------------
  25. OBJS_common = \
  26. ../build/dgl/Application.cpp.o \
  27. ../build/dgl/ApplicationPrivateData.cpp.o \
  28. ../build/dgl/Color.cpp.o \
  29. ../build/dgl/EventHandlers.cpp.o \
  30. ../build/dgl/Geometry.cpp.o \
  31. ../build/dgl/ImageBase.cpp.o \
  32. ../build/dgl/ImageBaseWidgets.cpp.o \
  33. ../build/dgl/Resources.cpp.o \
  34. ../build/dgl/SubWidget.cpp.o \
  35. ../build/dgl/SubWidgetPrivateData.cpp.o \
  36. ../build/dgl/TopLevelWidget.cpp.o \
  37. ../build/dgl/TopLevelWidgetPrivateData.cpp.o \
  38. ../build/dgl/Widget.cpp.o \
  39. ../build/dgl/WidgetPrivateData.cpp.o \
  40. ../build/dgl/Window.cpp.o \
  41. ../build/dgl/WindowPrivateData.cpp.o
  42. # ---------------------------------------------------------------------------------------------------------------------
  43. OBJS_cairo = $(OBJS_common) \
  44. ../build/dgl/Cairo.cpp.cairo.o
  45. ifeq ($(MACOS),true)
  46. OBJS_cairo += ../build/dgl/pugl.mm.cairo.o
  47. else
  48. OBJS_cairo += ../build/dgl/pugl.cpp.cairo.o
  49. endif
  50. # ---------------------------------------------------------------------------------------------------------------------
  51. OBJS_opengl = $(OBJS_common) \
  52. ../build/dgl/OpenGL.cpp.opengl.o \
  53. ../build/dgl/NanoVG.cpp.opengl.o
  54. ifeq ($(MACOS),true)
  55. OBJS_opengl += ../build/dgl/pugl.mm.opengl.o
  56. else
  57. OBJS_opengl += ../build/dgl/pugl.cpp.opengl.o
  58. endif
  59. # ---------------------------------------------------------------------------------------------------------------------
  60. OBJS_stub = $(OBJS_common)
  61. ifeq ($(MACOS),true)
  62. OBJS_stub += ../build/dgl/pugl.mm.o
  63. else
  64. OBJS_stub += ../build/dgl/pugl.cpp.o
  65. endif
  66. # ---------------------------------------------------------------------------------------------------------------------
  67. OBJS_vulkan = $(OBJS_common) \
  68. ../build/dgl/Vulkan.cpp.vulkan.o
  69. ifeq ($(MACOS),true)
  70. OBJS_vulkan += ../build/dgl/pugl.mm.vulkan.o
  71. else
  72. OBJS_vulkan += ../build/dgl/pugl.cpp.vulkan.o
  73. endif
  74. # ---------------------------------------------------------------------------------------------------------------------
  75. ifeq ($(HAVE_CAIRO),true)
  76. TARGETS += ../build/libdgl-cairo.a
  77. endif
  78. ifeq ($(HAVE_OPENGL),true)
  79. TARGETS += ../build/libdgl-opengl.a
  80. # Compat name, to be removed soon
  81. TARGETS += ../build/libdgl.a
  82. endif
  83. ifeq ($(HAVE_STUB),true)
  84. TARGETS += ../build/libdgl-stub.a
  85. endif
  86. ifeq ($(HAVE_VULKAN),true)
  87. TARGETS += ../build/libdgl-vulkan.a
  88. endif
  89. # ---------------------------------------------------------------------------------------------------------------------
  90. all: $(TARGETS)
  91. cairo: ../build/libdgl-cairo.a
  92. opengl: ../build/libdgl-opengl.a
  93. stub: ../build/libdgl-stub.a
  94. vulkan: ../build/libdgl-vulkan.a
  95. # ---------------------------------------------------------------------------------------------------------------------
  96. ../build/libdgl-cairo.a: $(OBJS_cairo)
  97. -@mkdir -p ../build
  98. @echo "Creating libdgl-cairo.a"
  99. $(SILENT)rm -f $@
  100. $(SILENT)$(AR) crs $@ $^
  101. ../build/libdgl-opengl.a: $(OBJS_opengl)
  102. -@mkdir -p ../build
  103. @echo "Creating libdgl-opengl.a"
  104. $(SILENT)rm -f $@
  105. $(SILENT)$(AR) crs $@ $^
  106. ../build/libdgl-stub.a: $(OBJS_stub)
  107. -@mkdir -p ../build
  108. @echo "Creating libdgl-stub.a"
  109. $(SILENT)rm -f $@
  110. $(SILENT)$(AR) crs $@ $^
  111. ../build/libdgl-vulkan.a: $(OBJS_vulkan)
  112. -@mkdir -p ../build
  113. @echo "Creating libdgl-vulkan.a"
  114. $(SILENT)rm -f $@
  115. $(SILENT)$(AR) crs $@ $^
  116. # Compat name, to be removed soon
  117. ../build/libdgl.a: ../build/libdgl-opengl.a
  118. @echo "Symlinking libdgl.a"
  119. $(SILENT)ln -sf $< $@
  120. # ---------------------------------------------------------------------------------------------------------------------
  121. ../build/dgl/%.c.o: src/%.c
  122. -@mkdir -p ../build/dgl
  123. @echo "Compiling $<"
  124. $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
  125. ../build/dgl/%.cpp.o: src/%.cpp
  126. -@mkdir -p ../build/dgl
  127. @echo "Compiling $<"
  128. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  129. ../build/dgl/%.mm.o: src/%.mm
  130. -@mkdir -p ../build/dgl
  131. @echo "Compiling $<"
  132. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@
  133. # ---------------------------------------------------------------------------------------------------------------------
  134. ../build/dgl/%.cpp.cairo.o: src/%.cpp
  135. -@mkdir -p ../build/dgl
  136. @echo "Compiling $< (Cairo variant)"
  137. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
  138. ../build/dgl/%.mm.cairo.o: src/%.mm
  139. -@mkdir -p ../build/dgl
  140. @echo "Compiling $< (Cairo variant)"
  141. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@
  142. # ---------------------------------------------------------------------------------------------------------------------
  143. ../build/dgl/%.cpp.opengl.o: src/%.cpp
  144. -@mkdir -p ../build/dgl
  145. @echo "Compiling $< (OpenGL variant)"
  146. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
  147. ../build/dgl/%.mm.opengl.o: src/%.mm
  148. -@mkdir -p ../build/dgl
  149. @echo "Compiling $< (OpenGL variant)"
  150. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@
  151. # ---------------------------------------------------------------------------------------------------------------------
  152. ../build/dgl/%.cpp.vulkan.o: src/%.cpp
  153. -@mkdir -p ../build/dgl
  154. @echo "Compiling $< (Vulkan variant)"
  155. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@
  156. ../build/dgl/%.mm.vulkan.o: src/%.mm
  157. -@mkdir -p ../build/dgl
  158. @echo "Compiling $< (Vulkan variant)"
  159. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@
  160. # ---------------------------------------------------------------------------------------------------------------------
  161. clean:
  162. rm -rf ../build/dgl ../build/libdgl*.*
  163. debug:
  164. $(MAKE) DEBUG=true
  165. # ---------------------------------------------------------------------------------------------------------------------
  166. -include $(OBJS_common:%.o=%.d)
  167. -include $(OBJS_cairo:%.o=%.d)
  168. -include $(OBJS_opengl:%.o=%.d)
  169. -include $(OBJS_stub:%.o=%.d)
  170. -include $(OBJS_vulkan:%.o=%.d)
  171. # ---------------------------------------------------------------------------------------------------------------------