diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 36 |
1 files changed, 9 insertions, 27 deletions
@@ -1,32 +1,14 @@ | |||
1 | CC = gcc | 1 | bcsh: syntax.tab.o bcsh.c |
2 | FLEX = flex | 2 | gcc -g -o bcsh bcsh.c syntax.tab.o -lfl |
3 | BISON = bison | ||
4 | 3 | ||
5 | CFILES = $(shell find . -name "*.c") | 4 | syntax.tab.o: lex.yy.c syntax.tab.c |
6 | OBJS = $(CFILES:.c=.o) | 5 | gcc -g -c syntax.tab.c -o syntax.tab.o |
7 | LFILE = $(wildcard *.l) | ||
8 | YFILE = $(wildcard *.y) | ||
9 | LFC = ./lex.yy.c | ||
10 | YFC = ./syntax.tab.c | ||
11 | LFO = $(LFC:.c=.o) | ||
12 | YFO = $(YFC:.c=.o) | ||
13 | 6 | ||
14 | bcsh: syntax $(filter-out $(LFO),$(OBJS)) | 7 | lex.yy.c: lex.l |
15 | $(CC) -g -o bcsh $(filter-out $(LFO),$(OBJS)) -lfl | 8 | flex -o lex.yy.c lex.l |
16 | 9 | ||
17 | syntax: lexical syntax-c | 10 | syntax.tab.c: syntax.y |
18 | $(CC) -c $(YFC) -o $(YFO) | 11 | bison -o syntax.tab.c -d -v syntax.y -Wcounterexamples |
19 | |||
20 | lexical: $(LFILE) | ||
21 | $(FLEX) -o $(LFC) $(LFILE) | ||
22 | |||
23 | syntax-c: $(YFILE) | ||
24 | $(BISON) -o $(YFC) -d -v $(YFILE) -Wcounterexamples | ||
25 | |||
26 | -include $(patsubst %.o, %.d, $(OBJS)) | ||
27 | 12 | ||
28 | clean: | 13 | clean: |
29 | rm -f bcsh lex.yy.c syntax.tab.c syntax.tab.h syntax.output | 14 | rm -f bcsh lex.yy.c syntax.tab.c syntax.tab.h syntax.output syntax.tab.o |
30 | rm -f $(OBJS) $(OBJS:.o=.d) | ||
31 | rm -f $(LFC) $(YFC) $(YFC:.c=.h) | ||
32 | rm -f *~ \ No newline at end of file | ||