flush
[m6w6/ext-psi] / idl / Makefile
1 PHP_INCLUDES := -I/Users/Mike/Sources/php-src.git/{.,main,includes,Zend,TSRM,ext}
2 JIT_INCLUDES := -I/usr/local/include
3 UNAME := $(shell uname | tr a-z A-Z)
4 INCLUDES += $(PHP_INCLUDES) $(JIT_INCLUDES)
5 CFLAGS += -g -D$(UNAME) $(INCLUDES)
6 LDFLAGS += -ljit -ljitdynamic /usr/local/php7/lib/libphp7.dylib -Xlinker -rpath -Xlinker /usr/local/php7/lib
7 SOURCES := parser_proc.c parser.c validator.c compiler.c main.c
8
9 GENERATED_FILES := $(addsuffix .h, $(basename $(SOURCES)))
10
11 .PHONY: all
12 all: main
13
14 ##
15 # The lemon parser generator
16 ##
17 GENERATED_FILES += lempar.c
18 lempar.c:
19 curl -sSo $@ "http://www.sqlite.org/src/raw/tool/lempar.c?name=3617143ddb9b176c3605defe6a9c798793280120"
20
21 GENERATED_FILES += lemon.c
22 lemon.c:
23 curl -sSo $@ "http://www.sqlite.org/src/raw/tool/lemon.c?name=039f813b520b9395740c52f9cbf36c90b5d8df03"
24
25 GENERATED_FILES += lemon
26 lemon: lemon.c | lempar.c
27
28 ##
29 # Main test program
30 ##
31 $(SOURCES): Makefile
32
33 GENERATED_FILES += main
34 main: $(SOURCES)
35
36 ##
37 # Parser proc
38 ##
39 GENERATED_FILES += parser_proc.c
40 parser_proc.c: parser_proc.y lemon
41 ./lemon -c $<
42
43 ##
44 # Parser with lexer
45 ##
46 GENERATED_FILES += parser.c
47 parser.c: parser.re
48 re2c -o $@ $<
49
50 .PHONY: clean
51 clean:
52 -echo rm -f $(GENERATED_FILES)