aboutsummaryrefslogtreecommitdiff
path: root/makefile
blob: 724d53f7eff45370d19a8967605f7dd40297ccd8 (plain)
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
56
57
58
59
60
CC = gcc
FLAGS = -g -O0 -Wall -ggdb3 -Wno-parentheses
YACC = yacc
LEX = lex

mypc: y.tab.o lex.yy.o tree.o scope.o node.o pc.o sem_check.o gen_code.o
	$(CC) $(FLAGS) -o mypc main.o tree.o scope.o sem_check.o gen_code.o node.o y.tab.o lex.yy.o -lfl -ly

pc.o: main.c headers
	$(CC) $(FLAGS) -c main.c

tree.o: tree.c headers
	$(CC) $(FLAGS) -c tree.c

gen_code.o: gen_code.c headers
	$(CC) $(FLAGS) -c gen_code.c

sem_check.o: sem_check.c headers
	$(CC) $(FLAGS) -c sem_check.c

scope.o: scope.c headers
	$(CC) $(FLAGS) -c scope.c

node.o: node.c headers
	$(CC) $(FLAGS) -c node.c

y.tab.o: y.tab.c headers
	$(CC) $(FLAGS) -c y.tab.c

lex.yy.o: lex.yy.c headers
	$(CC) $(FLAGS) -c lex.yy.c

y.tab.c: pc.y
	$(YACC) -y -dv pc.y

lex.yy.c: pc.l
	$(LEX) -l pc.l

headers: pc.h tree.h sem_check.h scope.h node.h y.tab.c gen_code.h

clean:
	rm -f mypc *.o y.tab.* lex.yy.*

tar:  headers pc.y pc.l tree.c scope.c node.c pc.c sem_check.c gen_code.c
	tar -czf evans_pc.tar.gz -C ../ \
	pascal_compiler/gen_code.c  \
	pascal_compiler/gen_code.h  \
	pascal_compiler/main.c      \
	pascal_compiler/node.c      \
	pascal_compiler/node.h      \
	pascal_compiler/pc.h        \
	pascal_compiler/pc.l        \
	pascal_compiler/pc.y        \
	pascal_compiler/scope.c     \
	pascal_compiler/scope.h     \
	pascal_compiler/tree.c      \
	pascal_compiler/tree.h      \
	pascal_compiler/sem_check.c \
	pascal_compiler/sem_check.h \
	pascal_compiler/makefile