12c61c1d4c9c82bd1ad521fa0a192d3465bf28a9
[fw/sdcc] / support / valdiag / Makefile
1 .SILENT:
2
3 TESTS_DIR = tests
4 RESULTS_DIR = results
5 PORTS_DIR = ports
6 BUILD_DIR = gen
7 ALL_PORTS = host mcs51 mcs51-large mcs51-stack-auto ds390 z80 hc08
8
9 ALL_TESTS = $(shell find $(TESTS_DIR) -name "*.c")
10
11 PORT_RESULTS_DIR = $(RESULTS_DIR)/$(PORT)
12 PORT_RESULTS = $(ALL_TESTS:$(TESTS_DIR)/%.c=$(PORT_RESULTS_DIR)/%.out)
13 PORT_BUILD_DIR = $(BUILD_DIR)/$(PORT)
14
15 all: test-ports
16
17 test-ports:
18         for i in $(ALL_PORTS); do $(MAKE) test-port PORT=$$i; done
19
20 test-mcs51:
21         $(MAKE) test-port PORT=mcs51
22         
23 test-port: port-results
24
25 clean: clean-gen
26         rm -rf $(RESULTS_DIR) *.pyc
27         rm -rf $(BUILD_DIR)
28
29 clean-gen:      
30         for i in $(ALL_PORTS); do $(MAKE) clean-port PORT=$$i; done
31
32 clean-port:
33         rm -rf $(PORT_BUILD_DIR)
34
35 $(PORT_RESULTS_DIR)/%.out: $(TESTS_DIR)/%.c
36         echo Processing $<
37         python valdiag.py $(PORT) $< $(PORT_BUILD_DIR)/$* > $@
38
39 port-results: port-dirs $(PORT_RESULTS)
40         echo Summary for \'$(PORT)\': `cat $(PORT_RESULTS) | \
41         python ../regression/collate-results.py`
42
43 port-dirs:
44         mkdir -p $(PORT_RESULTS_DIR)
45         mkdir -p $(PORT_BUILD_DIR)