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.

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