srcdir=.
SRCS=$(sort $(wildcard $(srcdir)/*.c))
OBJS=$(SRCS:$(srcdir)/%.c=%.o)
BINS=$(filter-out util,$(OBJS:.o=))

-include ../../config.mak

CFLAGS+=-D_GNU_SOURCE -O0

all: $(BINS)
run: REPORT
report: REPORT
	cat $<
REPORT: all
	@N=0; for i in $(BINS);do ./$$i || N=$$((N+1)); done > REPORT; [ "$$N" = 0 ] && echo PASS || echo FAILS: $$N
clean:
	rm -f $(OBJS) $(BINS) REPORT

$(BINS): util.o
$(OBJS): $(srcdir)/util.h
%.o: $(srcdir)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<
%.s: $(srcdir)/%.c
	$(CC) $(CFLAGS) -S -o $@ $<
%: %.c
%: %.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)

.PRECIOUS: $(OBJS)
.PHONY: all run report clean
