flush
[m6w6/ext-psi] / idl / Makefile
1 CFLAGS += -g -D$(shell uname | tr a-z A-Z)
2 SOURCES := parser.c lexer.c validator.c compiler.c main.c
3 HEADERS := $(addsuffix .[ch], $(basename $(SOURCES)))
4
5 GENERATED_FILES := $(addsuffix .h, $(basename $(SOURCES)))
6
7 .PHONY: all
8 all: headers main
9
10 .PHONY: headers
11 headers: makeheaders $(SOURCES)
12 ./makeheaders $(HEADERS) types.h
13
14 GENERATED_FILES += lempar.c
15 lempar.c:
16 curl -sSo $@ "http://www.sqlite.org/src/raw/tool/lempar.c?name=3617143ddb9b176c3605defe6a9c798793280120"
17
18 GENERATED_FILES += lemon.c
19 lemon.c:
20 curl -sSo $@ "http://www.sqlite.org/src/raw/tool/lemon.c?name=039f813b520b9395740c52f9cbf36c90b5d8df03"
21
22 GENERATED_FILES += lemon
23 lemon: lemon.c | lempar.c
24
25 GENERATED_FILES += makeheaders.c
26 makeheaders.c:
27 curl -sSo makeheaders.c "https://www.fossil-scm.org/xfer/raw/src/makeheaders.c?name=c42268ec69aae42b8dd10471fd73377d789873ca"
28 #http://www.hwaci.com/sw/mkhdr/makeheaders.c
29
30 GENERATED_FILES += makeheaders
31 makeheaders: makeheaders.c
32
33 GENERATED_FILES += main
34 main: $(SOURCES)
35
36 GENERATED_FILES += parser.c
37 parser.c: parser.y lemon
38 ./lemon -c -m $<
39
40 GENERATED_FILES += lexer.c
41 lexer.c: lexer.re
42 re2c -o $@ $<
43
44 %.h: headers
45
46 %.c: %.h
47 touch $@
48
49 .PHONY: clean
50 clean:
51 -echo rm -f $(GENERATED_FILES)