Makefile (9583B)
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. -Isrc 12 BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc -DDONT_SET_USING_DGL_NAMESPACE -Wno-unused-parameter 13 BUILD_CXX_FLAGS += -Isrc/pugl-upstream/include 14 LINK_FLAGS += $(DGL_LIBS) 15 16 ifeq ($(MACOS),true) 17 BUILD_CXX_FLAGS += -DDISTRHO_MACOS_NAMESPACE_TIME=$(shell date +%s) 18 BUILD_CXX_FLAGS += -Wno-deprecated-declarations 19 else 20 PUGL_EXTRA_FLAGS = -Wno-extra -Wmissing-field-initializers 21 endif 22 23 # ifneq ($(MACOS_OLD),true) 24 # needed by sofd right now, fix later 25 # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive 26 # endif 27 28 # --------------------------------------------------------------------------------------------------------------------- 29 30 ifeq ($(MODGUI_BUILD),true) 31 BUILD_DIR_SUFFIX = -modgui 32 endif 33 34 BUILD_DIR = ../build$(BUILD_DIR_SUFFIX) 35 36 # --------------------------------------------------------------------------------------------------------------------- 37 38 OBJS_common = \ 39 $(BUILD_DIR)/dgl/Application.cpp.o \ 40 $(BUILD_DIR)/dgl/ApplicationPrivateData.cpp.o \ 41 $(BUILD_DIR)/dgl/Color.cpp.o \ 42 $(BUILD_DIR)/dgl/EventHandlers.cpp.o \ 43 $(BUILD_DIR)/dgl/Geometry.cpp.o \ 44 $(BUILD_DIR)/dgl/ImageBase.cpp.o \ 45 $(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \ 46 $(BUILD_DIR)/dgl/Layout.cpp.o \ 47 $(BUILD_DIR)/dgl/Resources.cpp.o \ 48 $(BUILD_DIR)/dgl/SubWidget.cpp.o \ 49 $(BUILD_DIR)/dgl/SubWidgetPrivateData.cpp.o \ 50 $(BUILD_DIR)/dgl/TopLevelWidget.cpp.o \ 51 $(BUILD_DIR)/dgl/TopLevelWidgetPrivateData.cpp.o \ 52 $(BUILD_DIR)/dgl/Widget.cpp.o \ 53 $(BUILD_DIR)/dgl/WidgetPrivateData.cpp.o \ 54 $(BUILD_DIR)/dgl/Window.cpp.o \ 55 $(BUILD_DIR)/dgl/WindowPrivateData.cpp.o 56 57 # --------------------------------------------------------------------------------------------------------------------- 58 59 OBJS_cairo = $(OBJS_common) \ 60 $(BUILD_DIR)/dgl/Cairo.cpp.cairo.o 61 62 ifeq ($(MACOS),true) 63 OBJS_cairo += $(BUILD_DIR)/dgl/pugl.mm.cairo.o 64 else 65 OBJS_cairo += $(BUILD_DIR)/dgl/pugl.cpp.cairo.o 66 endif 67 68 # --------------------------------------------------------------------------------------------------------------------- 69 70 OBJS_opengl = $(OBJS_common) \ 71 $(BUILD_DIR)/dgl/OpenGL.cpp.opengl.o \ 72 $(BUILD_DIR)/dgl/NanoVG.cpp.opengl.o 73 74 ifeq ($(MACOS),true) 75 OBJS_opengl += $(BUILD_DIR)/dgl/pugl.mm.opengl.o 76 else 77 OBJS_opengl += $(BUILD_DIR)/dgl/pugl.cpp.opengl.o 78 endif 79 80 # --------------------------------------------------------------------------------------------------------------------- 81 82 OBJS_opengl3 = $(OBJS_common) \ 83 $(BUILD_DIR)/dgl/OpenGL.cpp.opengl3.o \ 84 $(BUILD_DIR)/dgl/NanoVG.cpp.opengl3.o 85 86 ifeq ($(MACOS),true) 87 OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.mm.opengl3.o 88 else 89 OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.cpp.opengl3.o 90 endif 91 92 # --------------------------------------------------------------------------------------------------------------------- 93 94 OBJS_stub = $(OBJS_common) 95 96 ifeq ($(MACOS),true) 97 OBJS_stub += $(BUILD_DIR)/dgl/pugl.mm.o 98 else 99 OBJS_stub += $(BUILD_DIR)/dgl/pugl.cpp.o 100 endif 101 102 # --------------------------------------------------------------------------------------------------------------------- 103 104 OBJS_vulkan = $(OBJS_common) \ 105 $(BUILD_DIR)/dgl/Vulkan.cpp.vulkan.o 106 107 ifeq ($(MACOS),true) 108 OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.mm.vulkan.o 109 else 110 OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.cpp.vulkan.o 111 endif 112 113 # --------------------------------------------------------------------------------------------------------------------- 114 115 OBJS_web = $(OBJS_common) \ 116 $(BUILD_DIR)/dgl/Web.cpp.o 117 118 ifeq ($(MACOS),true) 119 OBJS_web += $(BUILD_DIR)/dgl/pugl.mm.o 120 else 121 OBJS_web += $(BUILD_DIR)/dgl/pugl.cpp.o 122 endif 123 124 # --------------------------------------------------------------------------------------------------------------------- 125 126 ifeq ($(HAVE_CAIRO),true) 127 TARGETS += $(BUILD_DIR)/libdgl-cairo.a 128 endif 129 130 ifeq ($(HAVE_OPENGL),true) 131 TARGETS += $(BUILD_DIR)/libdgl-opengl.a 132 # Compat name, to be removed soon 133 TARGETS += $(BUILD_DIR)/libdgl.a 134 endif 135 136 ifeq ($(HAVE_STUB),true) 137 TARGETS += $(BUILD_DIR)/libdgl-stub.a 138 endif 139 140 ifeq ($(HAVE_VULKAN),true) 141 TARGETS += $(BUILD_DIR)/libdgl-vulkan.a 142 endif 143 144 # --------------------------------------------------------------------------------------------------------------------- 145 146 all: $(TARGETS) 147 148 cairo: $(BUILD_DIR)/libdgl-cairo.a 149 opengl: $(BUILD_DIR)/libdgl-opengl.a 150 opengl3: $(BUILD_DIR)/libdgl-opengl3.a 151 stub: $(BUILD_DIR)/libdgl-stub.a 152 vulkan: $(BUILD_DIR)/libdgl-vulkan.a 153 web: $(BUILD_DIR)/libdgl-web.a 154 155 # --------------------------------------------------------------------------------------------------------------------- 156 157 $(BUILD_DIR)/libdgl-cairo.a: $(OBJS_cairo) 158 -@mkdir -p $(BUILD_DIR) 159 @echo "Creating libdgl-cairo.a" 160 $(SILENT)rm -f $@ 161 $(SILENT)$(AR) crs $@ $^ 162 163 $(BUILD_DIR)/libdgl-opengl.a: $(OBJS_opengl) 164 -@mkdir -p $(BUILD_DIR) 165 @echo "Creating libdgl-opengl.a" 166 $(SILENT)rm -f $@ 167 $(SILENT)$(AR) crs $@ $^ 168 169 $(BUILD_DIR)/libdgl-opengl3.a: $(OBJS_opengl3) 170 -@mkdir -p $(BUILD_DIR) 171 @echo "Creating libdgl-opengl3.a" 172 $(SILENT)rm -f $@ 173 $(SILENT)$(AR) crs $@ $^ 174 175 $(BUILD_DIR)/libdgl-stub.a: $(OBJS_stub) 176 -@mkdir -p $(BUILD_DIR) 177 @echo "Creating libdgl-stub.a" 178 $(SILENT)rm -f $@ 179 $(SILENT)$(AR) crs $@ $^ 180 181 $(BUILD_DIR)/libdgl-vulkan.a: $(OBJS_vulkan) 182 -@mkdir -p $(BUILD_DIR) 183 @echo "Creating libdgl-vulkan.a" 184 $(SILENT)rm -f $@ 185 $(SILENT)$(AR) crs $@ $^ 186 187 $(BUILD_DIR)/libdgl-web.a: $(OBJS_web) 188 -@mkdir -p $(BUILD_DIR) 189 @echo "Creating libdgl-web.a" 190 $(SILENT)rm -f $@ 191 $(SILENT)$(AR) crs $@ $^ 192 193 # Compat name, to be removed soon 194 $(BUILD_DIR)/libdgl.a: $(BUILD_DIR)/libdgl-opengl.a 195 @echo "Symlinking libdgl.a" 196 $(SILENT)ln -sf $< $@ 197 198 # --------------------------------------------------------------------------------------------------------------------- 199 200 $(BUILD_DIR)/dgl/%.c.o: src/%.c 201 -@mkdir -p $(BUILD_DIR)/dgl 202 @echo "Compiling $<" 203 $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@ 204 205 $(BUILD_DIR)/dgl/%.cpp.o: src/%.cpp 206 -@mkdir -p $(BUILD_DIR)/dgl 207 @echo "Compiling $<" 208 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ 209 210 $(BUILD_DIR)/dgl/%.mm.o: src/%.mm 211 -@mkdir -p $(BUILD_DIR)/dgl 212 @echo "Compiling $<" 213 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@ 214 215 # --------------------------------------------------------------------------------------------------------------------- 216 217 $(BUILD_DIR)/dgl/pugl.cpp.o: src/pugl.cpp 218 -@mkdir -p $(BUILD_DIR)/dgl 219 @echo "Compiling $<" 220 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -o $@ 221 222 $(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm 223 -@mkdir -p $(BUILD_DIR)/dgl 224 @echo "Compiling $<" 225 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@ 226 227 # --------------------------------------------------------------------------------------------------------------------- 228 229 $(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp 230 -@mkdir -p $(BUILD_DIR)/dgl 231 @echo "Compiling $< (Cairo variant)" 232 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@ 233 234 $(BUILD_DIR)/dgl/%.mm.cairo.o: src/%.mm 235 -@mkdir -p $(BUILD_DIR)/dgl 236 @echo "Compiling $< (Cairo variant)" 237 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@ 238 239 # --------------------------------------------------------------------------------------------------------------------- 240 241 $(BUILD_DIR)/dgl/%.cpp.opengl.o: src/%.cpp 242 -@mkdir -p $(BUILD_DIR)/dgl 243 @echo "Compiling $< (OpenGL variant)" 244 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@ 245 246 $(BUILD_DIR)/dgl/%.mm.opengl.o: src/%.mm 247 -@mkdir -p $(BUILD_DIR)/dgl 248 @echo "Compiling $< (OpenGL variant)" 249 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@ 250 251 # --------------------------------------------------------------------------------------------------------------------- 252 253 $(BUILD_DIR)/dgl/%.cpp.opengl3.o: src/%.cpp 254 -@mkdir -p $(BUILD_DIR)/dgl 255 @echo "Compiling $< (OpenGL3 variant)" 256 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@ 257 258 $(BUILD_DIR)/dgl/%.mm.opengl3.o: src/%.mm 259 -@mkdir -p $(BUILD_DIR)/dgl 260 @echo "Compiling $< (OpenGL3 variant)" 261 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -ObjC++ -o $@ 262 263 # --------------------------------------------------------------------------------------------------------------------- 264 265 $(BUILD_DIR)/dgl/%.cpp.vulkan.o: src/%.cpp 266 -@mkdir -p $(BUILD_DIR)/dgl 267 @echo "Compiling $< (Vulkan variant)" 268 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@ 269 270 $(BUILD_DIR)/dgl/%.mm.vulkan.o: src/%.mm 271 -@mkdir -p $(BUILD_DIR)/dgl 272 @echo "Compiling $< (Vulkan variant)" 273 $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@ 274 275 # --------------------------------------------------------------------------------------------------------------------- 276 277 clean: 278 rm -rf $(BUILD_DIR)/dgl $(BUILD_DIR)/libdgl*.* 279 280 debug: 281 $(MAKE) DEBUG=true 282 283 # --------------------------------------------------------------------------------------------------------------------- 284 285 -include $(OBJS_common:%.o=%.d) 286 -include $(OBJS_cairo:%.o=%.d) 287 -include $(OBJS_opengl:%.o=%.d) 288 -include $(OBJS_opengl3:%.o=%.d) 289 -include $(OBJS_stub:%.o=%.d) 290 -include $(OBJS_vulkan:%.o=%.d) 291 -include $(OBJS_web:%.o=%.d) 292 293 # ---------------------------------------------------------------------------------------------------------------------