CFLAGS=-W -Wall -O3

SRCS=$(wildcard *.c)
EXES=$(SRCS:%.c=%)

all: $(EXES) $(EXES:%=outs/%.out)

outs/%.out: %.c
	[ -d outs ] || mkdir outs
	[ $(FORCE) -f $@.bak ] || ./$* | dd of=$@.bak 2> /dev/null
	./$* | dd of=$@ 2> /dev/null
	diff -u $@.bak $@

clean:
	rm -f $(EXES)

fullclean: clean
	rm -f $(EXES:%=outs/%.out) $(EXES:%=outs/%.out.bak)
