| a/Makefile | b/Makefile | ||
|---|---|---|---|
| 1 | C2IEC=c99 |
1 | C2IEC=c99 |
| 2 | TESTS=$(patsubst %.c, %.test, $(wildcard test/*.c)) |
2 | TESTS=$(patsubst %.c, %.test, $(wildcard test/*.c)) |
| 3 | TEST_LOGS=$(patsubst %.c, %.test.log, $(wildcard test/*.c)) |
3 | TEST_LOGS=$(patsubst %.c, %.test.log, $(wildcard test/*.c)) |
| 4 | 4 | ||
| 5 | check: |
||
| 6 | echo ${TEST_LOGS} |
||
| 7 | |||
| 8 | all: c99 |
5 | all: c99 |
| 9 | 6 | ||
| 10 | c99: lex.yy.c y.tab.c |
7 | c99: lex.yy.c y.tab.c |
| 11 | gcc -o $@ $^ |
8 | gcc -o $@ $^ |
| 12 | 9 | ||
... |
... |
||
| 20 | yacc -g $^ |
17 | yacc -g $^ |
| 21 | 18 | ||
| 22 | commit: ${TEST_LOGS} |
19 | commit: ${TEST_LOGS} |
| 23 | for i in ${TEST_LOGS}; do \ |
20 | for i in ${TEST_LOGS}; do \ |
| 24 | cp $$i $$(dirname $$i)/$$(basename $$i .log).expected; \ |
21 | cp $$i $$(dirname $$i)/$$(basename $$i .log).expected; \ |
| 25 | done |
22 | done |
| 23 | clean: |
||
| 24 | rm -f ${C2IEC} |
||
| 25 | rm -f ${TEST_LOGS} |
||
| 26 | 26 | ||
| 27 | .PHONY: test |
27 | .PHONY: test |
| 28 | test: ${TESTS} |
28 | test: ${TESTS} |
| 29 | 29 | ||
| 30 | %.test: %.test.log |
30 | %.test: %.test.log |
| 31 | diff $< $*.test.expected |
31 | @echo "========================================" |
| 32 | 32 | @echo "checking output of test $*" |
|
| 33 | %.test.log: %.test.txt |
33 | @diff $< $*.test.expected |
| 34 | cat $< | tee $@ |
34 | |
| 35 | %.test.log: %.test.txt |
||
| 36 | @echo "========================================" |
||
| 37 | @echo "output of test $*" |
||
| 38 | @echo "========================================" |
||
| 39 | @cat $< | tee $@ |
||
| 35 | 40 | ||
| 36 | %.test.txt: %.c ${C2IEC} |
41 | %.test.txt: %.c ${C2IEC} |
| 37 | ./${C2IEC} < $< > $@ |
42 | ./${C2IEC} < $< > $@ |
| 38 | 43 | ||
| 39 | test2: c99 |
44 | test2: c99 |
... |
... |
||
| 44 | 49 |