blob: 8410a241f0a4c6bdb00150b4ab1ef7418e402c91 (
plain) (
blame)
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
|
CC = gcc
FLEX = flex
BISON = bison
CFILES = $(shell find . -name "*.c")
OBJS = $(CFILES:.c=.o)
LFILE = $(wildcard *.l)
YFILE = $(wildcard *.y)
LFC = ./lex.yy.c
YFC = ./syntax.tab.c
LFO = $(LFC:.c=.o)
YFO = $(YFC:.c=.o)
bcsh: syntax $(filter-out $(LFO),$(OBJS))
$(CC) -g -o bcsh $(filter-out $(LFO),$(OBJS)) -lfl
syntax: lexical syntax-c
$(CC) -c $(YFC) -o $(YFO)
lexical: $(LFILE)
$(FLEX) -o $(LFC) $(LFILE)
syntax-c: $(YFILE)
$(BISON) -o $(YFC) -d -v $(YFILE) -Wcounterexamples
-include $(patsubst %.o, %.d, $(OBJS))
clean:
rm -f bcsh lex.yy.c syntax.tab.c syntax.tab.h syntax.output
rm -f $(OBJS) $(OBJS:.o=.d)
rm -f $(LFC) $(YFC) $(YFC:.c=.h)
rm -f *~
|