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.

178 lines
6.0KB

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