CC ?= gcc CFLAGS ?= -Wall -Wextra -fsyntax-only OUTDIR ?= out SRC := $(wildcard $(OUTDIR)/*.c) SDL3_CFLAGS := $(shell pkg-config --cflags sdl3 2>/dev/null || echo) GL_CFLAGS := $(shell pkg-config --cflags gl 2>/dev/null || echo) SDL3_SRC := $(filter %_sdl3.c, $(SRC)) PLAIN_SRC := $(filter-out %_sdl3.c, $(SRC)) .PHONY: all sdl3 clean all: $(PLAIN_SRC) @for f in $(PLAIN_SRC); do \ printf " CC %s\n" "$$(basename $$f)"; \ $(CC) $(CFLAGS) "$$f" 2>&1 || exit 1; \ done sdl3: $(SDL3_SRC) @if [ -z "$(SDL3_SRC)" ]; then \ echo " (no SDL3 tests)"; \ exit 0; \ fi @echo " (with SDL3 flags)" ; \ for f in $(SDL3_SRC); do \ printf " CC %s\n" "$$(basename $$f)"; \ $(CC) $(CFLAGS) $(SDL3_CFLAGS) $(GL_CFLAGS) "$$f" 2>&1 || exit 1; \ done clean: rm -f $(OUTDIR)/*.c