@@ -187,35 +187,41 @@ EXAMPLE_OUTPUTS_CUSTOM = \
187187 examples/gears/gears \
188188 examples/srgb/srgb
189189
190+ TEST_OUTPUTS = \
191+ tests/loop \
192+
193+
190194all : xdg-shell.c $(EXAMPLE_OUTPUTS ) $(EXAMPLE_OUTPUTS_CUSTOM ) libRGFW$(LIB_EXT ) libRGFW.a
191195
192- examples : $(EXAMPLE_OUTPUTS ) $(EXAMPLE_OUTPUTS_CUSTOM )
196+ examples : xdg-shell.c $(EXAMPLE_OUTPUTS ) $(EXAMPLE_OUTPUTS_CUSTOM )
193197
194- examples/gears/gears : examples/gears/gears.c RGFW.h
198+ tests : xdg-shell.c $(TEST_OUTPUTS )
199+
200+ examples/gears/gears : examples/gears/gears.c RGFW.h xdg-shell.c
195201ifneq (,$(filter $(CC ) ,emcc em++) )
196202 @echo gears is not supported on this platform
197203else
198204 $(CC) $(CFLAGS) -I. $< $(LINK_GL1) $(LIBS) -lm $($) -o $@$(EXT)
199205endif
200206
201- examples/srgb/srgb : examples/srgb/srgb.c RGFW.h
207+ examples/srgb/srgb : examples/srgb/srgb.c RGFW.h xdg-shell.c
202208 $(CC ) $(CFLAGS ) -I. $< $(LINK_GL1 ) $(LIBS ) -lm $($ ) -o $@ $(EXT )
203209
204- examples/portableGL/pgl : examples/portableGL/pgl.c RGFW.h
210+ examples/portableGL/pgl : examples/portableGL/pgl.c RGFW.h xdg-shell.c
205211ifeq (,$(filter $(CC ) ,emcc em++) )
206212 $(CC) -w $(CFLAGS) -I. $< -lm $(LIBS) -o $@
207213else
208214 @echo "the portableGL example doesn't support html5"
209215endif
210216
211- examples/gles2/gles2 : examples/gles2/gles2.c RGFW.h
217+ examples/gles2/gles2 : examples/gles2/gles2.c RGFW.h xdg-shell.c
212218ifneq ($(NO_GLES ) , 1)
213219 $(CC) $(CFLAGS) -I. $< $(LIBS) $(LINK_GL2) -lGL -o $@$(EXT)
214220else
215221 @echo gles has been disabled
216222endif
217223
218- examples/egl/egl : examples/egl/egl.c RGFW.h
224+ examples/egl/egl : examples/egl/egl.c RGFW.h xdg-shell.c
219225ifneq ($(NO_EGL ) , 1)
220226 $(CC) $(CFLAGS) -I. $< $(LIBS) $(LINK_GL1) -lGL -lEGL -o $@$(EXT)
221227else
@@ -224,15 +230,15 @@ endif
224230
225231
226232
227- examples/osmesa_demo/osmesa_demo : examples/osmesa_demo/osmesa_demo.c RGFW.h
233+ examples/osmesa_demo/osmesa_demo : examples/osmesa_demo/osmesa_demo.c RGFW.h xdg-shell.c
228234ifneq ($(NO_OSMESA ) , 1)
229235 $(CC) $(CFLAGS) -I. $< $(LIBS) $(LINK_OSMESA) -lOSMesa -o $@$(EXT)
230236else
231237 @echo osmesa has been disabled
232238endif
233239
234240
235- examples/vk10/vk10 : examples/vk10/vk10.c examples/vk10/vkinit.h RGFW.h
241+ examples/vk10/vk10 : examples/vk10/vk10.c examples/vk10/vkinit.h RGFW.h xdg-shell.c
236242ifneq ($(NO_VULKAN ) , 1)
237243 glslangValidator -V examples/vk10/shaders/vert.vert -o examples/vk10/shaders/vert.h --vn vert_code
238244 glslangValidator -V examples/vk10/shaders/frag.frag -o examples/vk10/shaders/frag.h --vn frag_code
249255 $(CC) $(CFLAGS) -I. $< $(LIBS) $(LINK_GL1) $(DX11_LIBS) -D RGFW_NO_VULKAN -o $@
250256endif
251257
252- examples/dx11/dx11 : examples/dx11/dx11.c RGFW.h
258+ examples/dx11/dx11 : examples/dx11/dx11.c RGFW.h xdg-shell.c
253259ifeq ($(CC ) , zig cc)
254260 @echo directX is not supported with Zig
255261else ifneq (,$(filter $(CC),g++ clang++ "zig cc"))
@@ -261,14 +267,14 @@ else
261267endif
262268
263269
264- examples/metal/metal : examples/metal/metal.m RGFW.h
270+ examples/metal/metal : examples/metal/metal.m RGFW.h xdg-shell.c
265271ifeq ($(detected_OS ) ,Darwin) # Mac OS X
266272 $(CC) $(CFLAGS) examples/metal/metal.m -I. -framework CoreVideo -framework Metal -framework Cocoa -framework IOKit -framework QuartzCore -o $@
267273else
268274 @echo metal is not supported on $(detected_OS)
269275endif
270276
271- examples/minimal_links/minimal_links : examples/minimal_links/minimal_links.c RGFW.h
277+ examples/minimal_links/minimal_links : examples/minimal_links/minimal_links.c RGFW.h xdg-shell.c
272278ifeq ($(WAYLAND ) , 1)
273279 @echo nostl is not supported on this platform
274280else ifneq (,$(filter $(CC),emcc em++))
286292endif
287293
288294
289- examples/nostl/nostl : examples/nostl/nostl.c RGFW.h
295+ examples/nostl/nostl : examples/nostl/nostl.c RGFW.h xdg-shell.c
290296ifeq ($(WAYLAND ) , 1)
291297 @echo nostl is not supported on this platform
292298else ifneq (,$(filter $(CC),emcc em++))
302308endif
303309
304310
305- examples/microui_demo/microui_demo : examples/microui_demo/microui_demo.c RGFW.h
311+ examples/microui_demo/microui_demo : examples/microui_demo/microui_demo.c RGFW.h xdg-shell.c
306312ifeq (,$(filter $(CC ) ,emcc em++ g++ clang++) )
307313 $(CC) $(CFLAGS) -I. $< examples/microui_demo/microui.c $(LINK_GL1) $(LIBS) -o $@$(EXT)
308314else ifneq (,$(filter $(CC),em++ g++ clang++))
@@ -311,18 +317,18 @@ else
311317 $(CC) $(CFLAGS) -I. $< examples/microui_demo/microui.c -s USE_WEBGL2 $(LIBS) $(LINK_GL1) -o $@$(EXT)
312318endif
313319
314- examples/window_icons/icons : examples/window_icons/icons.c RGFW.h
320+ examples/window_icons/icons : examples/window_icons/icons.c RGFW.h xdg-shell.c
315321 $(CC ) $(CFLAGS ) -I. $< $(LIBS ) -lm $(LINK_GL1 ) -o $@ $(EXT )
316- examples/mouse_icons/icons : examples/mouse_icons/icons.c RGFW.h
322+ examples/mouse_icons/icons : examples/mouse_icons/icons.c RGFW.h xdg-shell.c
317323 $(CC ) $(CFLAGS ) -I. $< $(LIBS ) -lm $(LINK_GL1 ) -o $@ $(EXT )
318- examples/gamepad/gamepad : examples/gamepad/gamepad.c RGFW.h
324+ examples/gamepad/gamepad : examples/gamepad/gamepad.c RGFW.h xdg-shell.c
319325 $(CC ) $(CFLAGS ) -I. $< $(LIBS ) -lm $(LINK_GL1 ) -o $@ $(EXT )
320326
321- examples/first-person-camera/camera : examples/first-person-camera/camera.c RGFW.h
327+ examples/first-person-camera/camera : examples/first-person-camera/camera.c RGFW.h xdg-shell.c
322328 $(CC ) $(CFLAGS ) -I. $< $(LIBS ) -lm $(LINK_GL1 ) -o $@ $(EXT )
323329
324330
325- examples/gl33/gl33 : examples/gl33/gl33.c RGFW.h
331+ examples/gl33/gl33 : examples/gl33/gl33.c RGFW.h xdg-shell.c
326332ifeq ($(WAYLAND ) , 1)
327333 $(CC) $(CFLAGS) $(WARNINGS) -I. $< -lm $(LIBS) $(LINK_GL1) -lEGL -lwayland-egl -o $@$(EXT)
328334else ifeq ($(detected_OS),NetBSD)
@@ -337,8 +343,15 @@ else
337343 $(CC) $(CFLAGS) $(WARNINGS) -I. $< $(LIBS) $(LINK_GL3) -o $@$(EXT)
338344endif
339345
340- $(EXAMPLE_OUTPUTS ) : % : % .c RGFW.h
346+ $(EXAMPLE_OUTPUTS ) : % : % .c RGFW.h xdg-shell.c
347+ $(CC ) $(CFLAGS ) $(WARNINGS ) -I. $< $(LINK_GL1 ) $(LIBS ) $($ ) -o $@ $(EXT )
348+
349+ $(TEST_OUTPUTS ) : % : % .c RGFW.h xdg-shell.c
341350 $(CC ) $(CFLAGS ) $(WARNINGS ) -I. $< $(LINK_GL1 ) $(LIBS ) $($ ) -o $@ $(EXT )
351+ @for exe in $(TEST_OUTPUTS ) ; do \
352+ echo " Running $$ exe..." ; \
353+ ./$$ exe$(EXT ) ; \
354+ done
342355
343356debug : all
344357 @for exe in $(EXAMPLE_OUTPUTS ) ; do \
@@ -366,7 +379,7 @@ endif
366379 $(MAKE) clean
367380
368381
369- RGFW$(OBJ_FILE ) : RGFW.h
382+ RGFW$(OBJ_FILE ) : RGFW.h xdg-shell.c
370383 $(MAKE ) initwayland
371384 # $(CC) -x c $(CUSTOM_CFLAGS) -c RGFW.h -D RGFW_IMPLEMENTATION -fPIC -D RGFW_EXPORT
372385 cp RGFW.h RGFW.c
407420endif
408421
409422clean :
410- rm -f * .o * .obj * .dll .dylib * .a * .so $(EXAMPLE_OUTPUTS ) $(EXAMPLE_OUTPUTS_CUSTOM ) .$(OS_DIR ) examples$(OS_DIR ) * $(OS_DIR ) * .exe .$(OS_DIR ) examples$(OS_DIR ) * $(OS_DIR ) * .js .$(OS_DIR ) examples$(OS_DIR ) * $(OS_DIR ) * .wasm .$(OS_DIR ) examples$(OS_DIR ) vk10$(OS_DIR ) shaders$(OS_DIR ) * .h
423+ rm -f * .o * .obj * .dll .dylib * .a * .so $(EXAMPLE_OUTPUTS ) $(EXAMPLE_OUTPUTS_CUSTOM ) $( TEST_OUTPUTS ) .$(OS_DIR ) examples$(OS_DIR ) * $(OS_DIR ) * .exe .$(OS_DIR ) examples$(OS_DIR ) * $(OS_DIR ) * .js .$(OS_DIR ) examples$(OS_DIR ) * $(OS_DIR ) * .wasm .$(OS_DIR ) examples$(OS_DIR ) vk10$(OS_DIR ) shaders$(OS_DIR ) * .h
411424
412425
413426.PHONY : all examples clean
0 commit comments