CC      ?= gcc
CFLAGS  ?= -Wall -Wextra -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -fsyntax-only
OUTDIR  ?= /tmp/wisecode-compile

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
