flush
[m6w6/ext-psi] / idl / Makefile
1 CFLAGS += -g -D$(shell uname | tr a-z A-Z)
2 SOURCES := parser_proc.c parser.c validator.c compiler.c main.c
3
4 GENERATED_FILES := $(addsuffix .h, $(basename $(SOURCES)))
5
6 .PHONY: all
7 all: main
8
9 ##
10 # The lemon parser generator
11 ##
12 GENERATED_FILES += lempar.c
13 lempar.c:
14 curl -sSo $@ "http://www.sqlite.org/src/raw/tool/lempar.c?name=3617143ddb9b176c3605defe6a9c798793280120"
15
16 GENERATED_FILES += lemon.c
17 lemon.c:
18 curl -sSo $@ "http://www.sqlite.org/src/raw/tool/lemon.c?name=039f813b520b9395740c52f9cbf36c90b5d8df03"
19
20 GENERATED_FILES += lemon
21 lemon: lemon.c | lempar.c
22
23 ##
24 # Main test program
25 ##
26 GENERATED_FILES += main
27 main: $(SOURCES)
28
29 ##
30 # Parser proc
31 ##
32 GENERATED_FILES += parser_proc.c
33 parser_proc.c: parser_proc.y lemon
34 ./lemon -c $<
35
36 ##
37 # Parser with lexer
38 ##
39 GENERATED_FILES += parser.c
40 parser.c: parser.re
41 re2c -o $@ $<
42
43 .PHONY: clean
44 clean:
45 -echo rm -f $(GENERATED_FILES)