|
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 |
|