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

SWIFTCFLAGS=-O

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

%: %.swift
	swiftc $(SWIFTCFLAGS) -o $@ $^

outs/%.out: %.swift
	[ -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:%=%.out) $(EXES:%=%.out.bak)
