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.

195 lines
6.5KB

  1. #!/usr/bin/make -f
  2. # Makefile for DGL #
  3. # ---------------- #
  4. # Created by falkTX
  5. #
  6. export DEBUG = true
  7. include ../Makefile.base.mk
  8. # ---------------------------------------------------------------------------------------------------------------------
  9. BUILD_C_FLAGS += $(DGL_FLAGS) -I..
  10. BUILD_CXX_FLAGS += $(DGL_FLAGS) -I.. -I../dgl/src/pugl-upstream/include -DDONT_SET_USING_DGL_NAMESPACE
  11. LINK_FLAGS += -lpthread
  12. # TODO fix within pugl
  13. # BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers
  14. ifeq ($(MACOS),true)
  15. BUILD_CXX_FLAGS += -ObjC++ -DGL_SILENCE_DEPRECATION -Wno-deprecated-declarations
  16. endif
  17. # ---------------------------------------------------------------------------------------------------------------------
  18. MANUAL_TESTS =
  19. UNIT_TESTS = Base64 Color Point
  20. ifeq ($(HAVE_CAIRO),true)
  21. MANUAL_TESTS += Demo.cairo
  22. endif
  23. ifeq ($(HAVE_OPENGL),true)
  24. MANUAL_TESTS += Demo.opengl2
  25. MANUAL_TESTS += Demo.opengl3
  26. MANUAL_TESTS += FileBrowserDialog
  27. MANUAL_TESTS += NanoImage
  28. MANUAL_TESTS += NanoSubWidgets
  29. endif
  30. ifneq ($(WASM),true)
  31. UNIT_TESTS += Application
  32. UNIT_TESTS += Window.stub
  33. ifeq ($(HAVE_CAIRO),true)
  34. UNIT_TESTS += Window.cairo
  35. endif
  36. ifeq ($(HAVE_OPENGL),true)
  37. UNIT_TESTS += Window.opengl2
  38. UNIT_TESTS += Window.opengl3
  39. endif
  40. ifeq ($(HAVE_VULKAN),true)
  41. UNIT_TESTS += Window.vulkan
  42. endif
  43. endif
  44. MANUAL_TARGETS = $(MANUAL_TESTS:%=../build/tests/%$(APP_EXT))
  45. UNIT_TARGET = $(UNIT_TESTS:%=../build/tests/%$(APP_EXT))
  46. ALL_OBJS = $(MANUAL_TESTS:%=../build/tests/%.cpp.o)
  47. ALL_OBJS += $(UNIT_TESTS:%=../build/tests/%.cpp.o)
  48. # ---------------------------------------------------------------------------------------------------------------------
  49. all: $(MANUAL_TARGETS) $(UNIT_TARGET)
  50. # ---------------------------------------------------------------------------------------------------------------------
  51. Demo.opengl: ../build/tests/Demo.opengl$(APP_EXT)
  52. FileBrowserDialog: ../build/tests/FileBrowserDialog$(APP_EXT)
  53. NanoImage: ../build/tests/NanoImage$(APP_EXT)
  54. NanoSubWidgets: ../build/tests/NanoSubWidgets$(APP_EXT)
  55. # ---------------------------------------------------------------------------------------------------------------------
  56. define RUN_TEST
  57. ${1}
  58. endef
  59. # valgrind --leak-check=full $@
  60. run: $(UNIT_TARGET)
  61. $(foreach TEST,$^,$(call RUN_TEST,$(TEST)))
  62. # ---------------------------------------------------------------------------------------------------------------------
  63. clean:
  64. rm -rf ../build/tests
  65. # ---------------------------------------------------------------------------------------------------------------------
  66. # building steps
  67. ../build/tests/%.c.o: %.c
  68. -@mkdir -p ../build/tests
  69. @echo "Compiling $<"
  70. $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
  71. ../build/tests/%.cpp.o: %.cpp
  72. -@mkdir -p ../build/tests
  73. @echo "Compiling $<"
  74. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  75. ../build/tests/%.cpp.cairo.o: %.cpp
  76. -@mkdir -p ../build/tests
  77. @echo "Compiling $< (Cairo)"
  78. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
  79. ../build/tests/%.cpp.opengl2.o: %.cpp
  80. -@mkdir -p ../build/tests
  81. @echo "Compiling $< (OpenGL2)"
  82. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
  83. ../build/tests/%.cpp.opengl3.o: %.cpp
  84. -@mkdir -p ../build/tests
  85. @echo "Compiling $< (OpenGL3)"
  86. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@
  87. ../build/tests/%.cpp.stub.o: %.cpp
  88. -@mkdir -p ../build/tests
  89. @echo "Compiling $< (Stub)"
  90. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  91. ../build/tests/%.cpp.vulkan.o: %.cpp
  92. -@mkdir -p ../build/tests
  93. @echo "Compiling $< (Vulkan)"
  94. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_VULKAN -c -o $@
  95. # ---------------------------------------------------------------------------------------------------------------------
  96. # linking steps
  97. ../build/tests/%$(APP_EXT): ../build/tests/%.cpp.o
  98. @echo "Linking $*"
  99. $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@
  100. ../build/tests/%.cairo$(APP_EXT): ../build/tests/%.cpp.cairo.o
  101. @echo "Linking $*"
  102. $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@
  103. ../build/tests/%.opengl2$(APP_EXT): ../build/tests/%.cpp.opengl2.o
  104. @echo "Linking $*"
  105. $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  106. ../build/tests/%.opengl3$(APP_EXT): ../build/tests/%.cpp.opengl3.o
  107. @echo "Linking $*"
  108. $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  109. ../build/tests/%.stub$(APP_EXT): ../build/tests/%.cpp.stub.o
  110. @echo "Linking $*"
  111. $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@
  112. ../build/tests/%.vulkan$(APP_EXT): ../build/tests/%.cpp.vulkan.o
  113. @echo "Linking $*"
  114. $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@
  115. # ---------------------------------------------------------------------------------------------------------------------
  116. # linking steps (special, links against DGL static lib)
  117. ../build/tests/Demo.cairo$(APP_EXT): ../build/tests/Demo.cpp.cairo.o
  118. @echo "Linking Demo (Cairo)"
  119. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@
  120. ../build/tests/Demo.opengl2$(APP_EXT): ../build/tests/Demo.cpp.opengl2.o
  121. @echo "Linking Demo (OpenGL)"
  122. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  123. ../build/tests/Demo.opengl3$(APP_EXT): ../build/tests/Demo.cpp.opengl3.o
  124. @echo "Linking Demo (OpenGL)"
  125. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  126. ../build/tests/Demo.vulkan$(APP_EXT): ../build/tests/Demo.cpp.vulkan.o
  127. @echo "Linking Demo (Vulkan)"
  128. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@
  129. ../build/tests/FileBrowserDialog$(APP_EXT): ../build/tests/FileBrowserDialog.cpp.o
  130. @echo "Linking FileBrowserDialog (OpenGL2)"
  131. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  132. ../build/tests/NanoImage$(APP_EXT): ../build/tests/NanoImage.cpp.o
  133. @echo "Linking NanoImage (OpenGL2)"
  134. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  135. ../build/tests/NanoSubWidgets$(APP_EXT): ../build/tests/NanoSubWidgets.cpp.o
  136. @echo "Linking NanoSubWidgets (OpenGL2)"
  137. $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
  138. # ---------------------------------------------------------------------------------------------------------------------
  139. -include $(ALL_OBJS:%.o=%.d)
  140. -include ../build/tests/Demo.cpp.cairo.d
  141. -include ../build/tests/Demo.cpp.opengl2.d
  142. -include ../build/tests/Demo.cpp.opengl3.d
  143. -include ../build/tests/Demo.cpp.vulkan.d
  144. # ---------------------------------------------------------------------------------------------------------------------