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.

213 lines
6.5KB

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