CC ?= cc
CFLAGS ?= -O2 -std=c11 -Wall -Wextra -Wpedantic
SDL_CFLAGS := $(shell pkg-config --cflags sdl3 2>/dev/null)
SDL_LIBS := $(shell pkg-config --libs sdl3 2>/dev/null)
.PHONY: all clean test test-controller test-highscore
all: unspecified-hostility
unspecified-hostility: src/main.c src/controller.h src/portable_file.h src/highscore.h src/input_gate.h src/music.h src/game.c src/game.h src/sprites.h src/font.h
	@pkg-config --exists sdl3 || (echo "Install SDL3 and pkgconf first (see README.md)"; exit 1)
	$(CC) $(CFLAGS) $(SDL_CFLAGS) src/main.c src/game.c -o $@ $(SDL_LIBS) -lm
test: src/input_gate.h tools/check.c tools/check_music.c src/music.h src/game.c
	$(CC) $(CFLAGS) tools/check.c -o simulation-check -lm
	./simulation-check
	$(CC) $(CFLAGS) tools/check_music.c -o music-check -lm
	./music-check
test-controller: tools/check_controller.c src/controller.h
	$(CC) $(CFLAGS) $(SDL_CFLAGS) tools/check_controller.c -o controller-check $(SDL_LIBS)
	./controller-check
test-highscore: tools/check_highscore.c src/highscore.h src/portable_file.h
	$(CC) $(CFLAGS) $(SDL_CFLAGS) tools/check_highscore.c -o highscore-check $(SDL_LIBS)
	XDG_DATA_HOME=$$(mktemp -d) ./highscore-check
clean:
	rm -f unspecified-hostility simulation-check music-check controller-check highscore-check
