1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
TABELLION_MAIN ?= ${CURDIR}/../../
AST_CREATOR = ghdl --file-to-xml
#TEST_DIRS ?= $(addprefix ${CURDIR}/,$(wildcard */))
TEST_DIRS ?= $(patsubst %/,%,$(wildcard */))
PROPERTY_DIR ?= ${CURDIR}/../property
SOLUTION_DIR ?= /tmp/tabellion/sol/
ORACLE_CREATOR_SCRIPT = ${CURDIR}/oracle_creator.py
################################################################################
TEST_FILES = $(addsuffix /valid,$(TEST_DIRS)) $(addsuffix /invalid,$(TEST_DIRS))
SOLUTION_FILES = $(addsuffix .sol,$(addprefix $(SOLUTION_DIR)/,$(TEST_DIRS)))
#VHD_FILES = $(addsuffix .vhd, $(TEST_FILES))
AST_FILES = $(addsuffix .xml, $(TEST_FILES))
OCL_FILES = $(addsuffix .ocl, $(TEST_FILES))
VLD_FILES = $(addsuffix /valid.result, $(TEST_DIRS))
IVLD_FILES = $(addsuffix /invalid.result, $(TEST_DIRS))
export
all: $(AST_FILES) $(OCL_FILES) $(VLD_FILES) $(IVLD_FILES)
clean:
rm -f $(AST_FILES)
rm -f $(OCL_FILES)
$(AST_FILES): %.xml : %.vhd
$(AST_CREATOR) $< > $@
$(OCL_FILES): %.ocl : %.vhd
grep -no "\$$SOL:[0-9]\+:[0-9]\+\\$$" $< | $(ORACLE_CREATOR_SCRIPT) | sort > $@
$(VLD_FILES): %/valid.result: %/valid.ocl %/valid.xml
$(MAKE) -C $(TABELLION_MAIN) \
TMP_DIR=/tmp/tabellion_valid \
clean_solutions
$(MAKE) -C $(TABELLION_MAIN) \
TMP_DIR=/tmp/tabellion_valid \
clean_model
$(MAKE) -C $(TABELLION_MAIN) \
TMP_DIR=/tmp/tabellion_valid \
AST_FILE=${PWD}/$(dir $@)/valid.xml \
PROPERTY_FILES=$(PROPERTY_DIR)/$(patsubst %/,%,$(dir $@)).pro \
TEMPLATE_DIR=${PWD}/$(dir $@)/ \
NICE_MESSAGE=/tmp/tabellion/valid_test_result
cat /tmp/tabellion/valid_test_result | sed '/^\s*$$/d' | sort > $@
diff $@ $(dir $@)/valid.ocl || true > $@
$(IVLD_FILES): %/invalid.result: %/invalid.ocl %/invalid.xml
$(MAKE) -C $(TABELLION_MAIN) \
TMP_DIR=/tmp/tabellion_invalid \
clean_solutions
$(MAKE) -C $(TABELLION_MAIN) \
TMP_DIR=/tmp/tabellion_invalid \
clean_model
$(MAKE) -C $(TABELLION_MAIN) \
TMP_DIR=/tmp/tabellion_invalid \
AST_FILE=${PWD}/$(dir $@)/invalid.xml \
PROPERTY_FILES=$(PROPERTY_DIR)/$(patsubst %/,%,$(dir $@)).pro \
TEMPLATE_DIR=${PWD}/$(dir $@)/ \
NICE_MESSAGE=${PWD}/$@
cat $@ | sed '/^\s*$$/d' | sort > $@
|