2023-10-04 15:40:22 +02:00
|
|
|
FLAP?=../_build/default/src/flap.exe
|
|
|
|
JALONS=\
|
|
|
|
01-Parsing.results \
|
2023-11-15 19:08:33 +01:00
|
|
|
01-Parsing-no-positions.results \
|
|
|
|
02-Interpreter.results \
|
2023-12-11 11:49:02 +01:00
|
|
|
03-Typing.results \
|
|
|
|
04-Hobix_to_Fopix.results
|
|
|
|
EXTS=parsing.hopix parsing-no-positions.hopix eval.hopix typing.hopix \
|
|
|
|
hobix
|
2023-10-04 15:40:22 +02:00
|
|
|
|
|
|
|
.PHONY: all clean test FAKE
|
|
|
|
.PRECIOUS: %.output %.expected %.score
|
|
|
|
|
|
|
|
all: all.results
|
|
|
|
|
|
|
|
clean:
|
|
|
|
@rm -f all.results $(JALONS)
|
|
|
|
@find \( -name "*.output" -or -name "*.score" \) -exec rm {} \;
|
|
|
|
|
|
|
|
test: clean
|
|
|
|
@$(MAKE) -s all
|
|
|
|
|
|
|
|
FAKE:
|
|
|
|
|
|
|
|
$(FLAP): FAKE
|
|
|
|
@cd .. && dune build --display=quiet
|
|
|
|
|
|
|
|
all.results: $(JALONS)
|
|
|
|
@cat $^ > $@
|
|
|
|
@echo -ne "\033[1mTotal: "
|
|
|
|
@cat $@ | cut -d: -f2 | \
|
|
|
|
awk -F "/" \
|
|
|
|
'{ score += $$1; all += $$2 } END { print score "/" all }'
|
|
|
|
@echo -ne "\e[0m"
|
|
|
|
|
|
|
|
.SECONDEXPANSION:
|
|
|
|
%.results: $$(subst .expected,.score,$$(wildcard %/*.expected))
|
|
|
|
@echo -n "$*: " > $@
|
|
|
|
@awk '{ score += $$1; all += 1 } END { print score "/" all }' $^ >> $@
|
|
|
|
@echo -e "\033[1m`cat $@`\e[0m"
|
|
|
|
|
|
|
|
%.score: %.output %.expected
|
|
|
|
@diff -uwB $^ 1>/dev/null 2>&1 && echo 1 > $@ || echo 0 > $@
|
|
|
|
@if [ `cat $@` -ne 0 ]; then \
|
|
|
|
echo -e "\e[32m[OK] `basename $@ .score`\e[0m"; \
|
|
|
|
else \
|
|
|
|
echo -e "\e[31m[KO] `basename $@ .score`\e[0m"; \
|
|
|
|
diff -uwB $^; exit 0; \
|
|
|
|
fi
|
|
|
|
|
|
|
|
%.output: %.parsing.hopix $(FLAP)
|
|
|
|
@$(FLAP) -s hopix --verbose true --dry true --unsafe true --loc true \
|
|
|
|
$< >$@ 2>&1; exit 0
|
|
|
|
|
|
|
|
%.output: %.parsing-no-positions.hopix $(FLAP)
|
|
|
|
@$(FLAP) -s hopix --verbose true --dry true --unsafe true --loc false \
|
|
|
|
$< >$@ 2>&1; exit 0
|
|
|
|
|
|
|
|
%.output: %.eval.hopix $(FLAP)
|
|
|
|
@$(FLAP) -s hopix --run true --dry true --unsafe true --sexp-in true \
|
|
|
|
$< >$@ 2>&1; exit 0
|
|
|
|
|
|
|
|
%.output: %.typing.hopix $(FLAP)
|
|
|
|
@$(FLAP) -s hopix --run false --dry true --unsafe false --sexp-in true \
|
|
|
|
--types true --loc false $< >$@ 2>&1; exit 0
|
|
|
|
|
|
|
|
%.output: %.retrolix $(FLAP)
|
|
|
|
@$(FLAP) -s retrolix -t elf --run true -VV true $< >$@ 2>&1; exit 0
|
|
|
|
|
|
|
|
%.output: %.hobix $(FLAP)
|
|
|
|
@$(FLAP) -s hobix -t fopix -r true $< >$@ 2>&1; exit 0
|