1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
CC := gcc CFLAGS := -Wall -Wextra -Wpedantic BIND := bin CSRCS = $(shell find * -type f -name '*.c') .PHONY: all clean all: $(CSRCS:%.c=$(BIND)/%) clean: rm -rf $(BIND) $(BIND)/c-templates: c-templates.c mkdir -p $(dir $@) gcc -E -CC $^ | gcc -E -CC -DDEFINE=\#define -xc - | gcc $(CFLAGS) --std=gnu99 -o $@ -xc - $(BIND)/%: %.c @echo $@ mkdir -p $(dir $@) $(CC) $(CFLAGS) $^ -o $@