cpsa-4.4.1: tst/mksas
# When the binary changes, run the test suite, and look for changes in
# the output. The changes are not fatal errors, but for a *.scm input
# file, an error produced by the binary is fatal.
TSTS := $(patsubst %.scm,%_sas.text,$(wildcard *.scm))
CPSA = ../dist/build/cpsa4/cpsa4$(EXE)
DIFF = ../dist/build/cpsa4diff/cpsa4diff$(EXE)
SHAPES = ../dist/build/cpsa4shapes/cpsa4shapes$(EXE)
SAS = ../dist/build/cpsa4sas/cpsa4sas$(EXE)
GRAPH = ../dist/build/cpsa4graph/cpsa4graph$(EXE)
CPSAFLAGS = +RTS -M512m -RTS
# The expected answers are in files with the .tst extension.
# Analyze protocols for shapes expecting success
%.txt: %.scm $(CPSA)
$(CPSA) $(CPSAFLAGS) -o $@ $*.scm
-$(DIFF) $(DIFFFLAGS) $*.tst $*.txt
# Analyze protocols for shapes expecting failure
%.txt: %.lsp $(CPSA)
-$(CPSA) $(CPSAFLAGS) -o $@ $*.lsp
-$(DIFF) $(DIFFFLAGS) $*.tst $*.txt
# Extract shapes
%_shapes.txt: %.txt
$(SHAPES) $(SHAPESFLAGS) -o $@ $<
# Extract shape analysis sentences
%_sas.text: %.txt
$(SAS) $(SASFLAGS) -o $@ $<
# Visualize output
%.svg: %.txt
$(GRAPH) -c -o $@ $<
# Visualize output using the expanded format
%.xhtml: %.txt
$(GRAPH) $(GRAPHFLAGS) -o $@ $<
.PRECIOUS: %.txt %_shapes.txt
all: $(TSTS)
clean:
-rm *.text *.txt