forked from bleibig/rust-grammar
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
55 lines (39 loc) · 1.07 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CC=cc
LDFLAGS=-lfl -lm
ifeq ($(shell uname),Darwin)
LDFLAGS=-ll
endif
FLEX ?= flex
BISON ?= bison
all: lexer parser-lalr
lexer: lexer_main.o lexer.o tokens.o
$(CC) -o $@ $^ $(LDFLAGS)
lexer_main.o: lexer_main.c
$(CC) -c -o $@ $<
tokens.o: tokens.c
$(CC) -std=c99 -c -o $@ $<
lex.yy.c: lexer.l
$(FLEX) $<
lexer.o: lex.yy.c tokens.h
$(CC) -include tokens.h -c -o $@ $<
lexer-lalr.o: lex.yy.c parser-lalr.tab.h
$(CC) -include parser-lalr.tab.h -c -o $@ $<
parser-lalr.o: parser-lalr.tab.c
$(CC) -c -o $@ $<
parser-lalr-main.o: parser-lalr-main.c
$(CC) -std=c99 -c -o $@ $<
parser-lalr: parser-lalr.o parser-lalr-main.o lexer-lalr.o
$(CC) -o $@ $^ $(LDFLAGS)
parser-lalr.tab.c parser-lalr.tab.h: parser-lalr.y
$(BISON) $< -d -p rs -v --report=all --warnings=error=all
rlex: rlex.rs
rustc $<
rparse: rparse.rs
rustc $<
check: lexer parser parser-lalr
./testparser.sh
clean:
rm -rf *.o lexer parser rlex rparse lex.yy.c \
parser.c parser.h \
parser-lalr.tab.c parser-lalr.tab.h \
parser-lalr.output parser-lalr