CC=gcc CFLAGS=-I. -lSDL2 SRC:=$(shell find ./ -maxdepth 1 -type f -regex ".*\.c" -not -name "main.c") OBJ:=$(patsubst ./%.c,build/%.o,$(SRC)) _TESTS:=$(shell find ./tests/ -maxdepth 1 -type f -regex ".*\.c") TESTS:=$(patsubst ./%.c,build/%,$(_TESTS)) LIMOX=build/limox all: build $(OBJ) $(TESTS) $(LIMOX) build: mkdir -p build/tests $(LIMOX): $(OBJ) build/main.o $(CC) -o $@ $^ $(CFLAGS) build/%.o: %.c $(CC) -c -o $@ $< $(CFLAGS) build/tests/%: tests/%.c $(OBJ) $(CC) -o $@ $< $(OBJ) $(CFLAGS) $@ .PHONY: clean clean: rm -rf build