Makefile (542B)
1 SRC=$(filter-out src/%.test.c, $(wildcard src/*.c)) 2 TESTS=$(wildcard src/*.test.c) 3 4 CFLAGS?= 5 6 ifeq (1,$(DEBUG)) 7 CFLAGS+=-DDEBUG 8 endif 9 10 .PHONY: default 11 default: example 12 13 # Don't do this in a real project 14 example: $(SRC) 15 $(CC) $(CFLAGS) -o $@ $^ 16 17 # Compile, run and cleanup of unit tests 18 .PHONY: tests 19 tests: $(TESTS) ../include/test.h 20 for TEST in $(TESTS); do \ 21 NAME=$$(echo $$TEST | sed 's/.test.c$$//g') && \ 22 $(CC) $(CFLAGS) -I../include -o $$NAME $$TEST && \ 23 ./$$NAME && \ 24 rm $$NAME ; \ 25 done 26 27 .PHONY: clean 28 clean: 29 rm -f example