jumpforth/Makefile

28 lines
698 B
Makefile

SHELL = /bin/bash
TARGET = jumpforth
SOURCES = $(TARGET).S
all: $(TARGET)
$(TARGET): $(SOURCES) startup.4th
gcc -m32 -nostdlib -static -o $@ $<
clean: test-clean
$(RM) $(TARGET)
TEST_RESULTS := $(patsubst %.4th,%.act,$(wildcard test/*.4th))
.PHONY: test $(TEST_RESULTS)
test: $(TEST_RESULTS)
test-clean:
$(RM) $(TEST_RESULTS)
.PHONY: $(TEST_RESULTS)
$(TEST_RESULTS): %.act: %.4th $(TARGET)
@printf '%s … ' $(notdir $<) && \
{ ./$(TARGET) < $< >& $@; echo exit-code: $$? >> $@; } && \
if [[ ! -e $(@:%.act=%.exp) ]]; then echo '(new)'; cp $@ $(@:%.act=%.exp); \
elif diff -q $(@:%.act=%.exp) $@ >/dev/null; then echo '✓'; \
else echo '✗'; diff -u $(@:%.act=%.exp) $@; :; fi