030cd5dc2979ccb2472b21a98e33b3f9a321d1b1
[nit.git] / contrib / nitcc / src / Makefile
1 NITC=../../../bin/nitc
2
3 all: nitcc calc minilang
4
5 nitcc_parser_gen: nitcc_parser_gen.nit
6 @echo "*** Compile the nitcc bootstrap parser generator -- level 0"
7 ${NITC} nitcc_parser_gen.nit -v
8
9 nitcc0: nitcc.nit nitcc_parser_gen
10 @echo "*** Compile the primitive nitcc --- bootstrap level 0"
11 ./nitcc_parser_gen
12 ${NITC} nitcc.nit -v -o nitcc0
13
14 nitcc1: nitcc0 nitcc.nit nitcc.sablecc
15 @echo "*** Compile the intermediate nitcc --- bootstrap level 1"
16 ./nitcc0 nitcc.sablecc
17 ${NITC} nitcc.nit -v -o nitcc1
18
19 nitcc: nitcc1 nitcc.nit nitcc.sablecc
20 @echo "*** Compile the final nitcc --- bootstrap level 2"
21 ./nitcc1 nitcc.sablecc
22 ${NITC} nitcc.nit -v
23
24 calc: nitcc ../examples/calc.sablecc ../examples/calc.nit
25 @echo "*** Example program, calc"
26 cd ../examples && ../src/nitcc calc.sablecc
27 ${NITC} ../examples/calc.nit -v
28 ./calc -e "1+2*3-40/5+9------1"
29
30 minilang: nitcc ../examples/minilang.sablecc ../examples/minilang.nit
31 @echo "*** Example program, minilang"
32 cd ../examples && ../src/nitcc minilang.sablecc
33 ${NITC} ../examples/minilang.nit -v
34 printf "10\n42\n" | ./minilang ../examples/minilang.minilang
35
36 check: tests
37 tests:
38 cd ../tests && ./run
39
40 clean:
41 rm -r .nit_compile \
42 *.dot *.out \
43 nitcc_lexer.nit nitcc_parser.nit nitcc_test_parser.nit nitcc_parser_gen \
44 nitcc0 nitcc1 \
45 calc minilang \
46 ../examples/*.dot ../examples/*.out ../examples/*_lexer.nit ../examples/*_parser.nit ../examples/*_test_parser.nit \
47 2>/dev/null || true
48
49 .PHONY: tests