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