6a92c82a018d2e6e75f36d9081b0da47c0f7a964
[external/ragel.git] / examples / cppscan / Makefile
1 RAGEL = ../../ragel/ragel
2 RLCODEGEN = ../../rlcodegen/rlcodegen
3 FLEX = flex
4 RE2C = re2c
5
6 CFLAGS = -Wall -g -O3
7
8 all: cppscan lex-cppscan re2c-cppscan
9
10 ps: cppscan.ps
11
12 cppscan: cppscan.o
13         g++ -g -o $@ $<
14
15 lex-cppscan: lex-cppscan.o
16         g++ -g -o $@ $<
17         
18 re2c-cppscan: re2c-cppscan.o
19         g++ -g -o $@ $<
20         
21 cppscan.cpp: cppscan.rl $(RAGEL) $(RLCODEGEN)
22         $(RAGEL) cppscan.rl | $(RLCODEGEN) -G2 -o $@
23
24 lex-cppscan.cpp: cppscan.lex
25         $(FLEX) -f -o $@ $<
26
27 re2c-cppscan.cpp: cppscan.rec
28         $(RE2C) -s $< > $@
29
30 example.cpp: example.rec
31         $(RE2C) -s $< > $@
32
33 %.o: %.cpp
34         g++ $(CFLAGS) -c -o $@ $<
35
36 cppscan.ps: cppscan.rl $(RAGEL) $(RLCODEGEN)
37         $(RAGEL) cppscan.rl | $(RLCODEGEN) -V | dot -Tps > cppscan.ps
38
39 distclean clean:
40         rm -Rf *.o cppscan.cpp cppscan cppscan.ps \
41                 lex-cppscan lex-cppscan.cpp re2c-cppscan re2c-cppscan.cpp