-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
37 lines (27 loc) · 1.34 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
OBJS = src/lex.yy.o src/C.tab.o src/symbol_table.o src/nodes.o src/main.o src/interpreter.o src/environment.o src/gentac.o src/regstack.o src/genmc.o src/hashtable.o src/mc_env.o
SRCS = src/lex.yy.c src/C.tab.c src/symbol_table.c src/nodes.c src/main.c src/interpreter.c src/environment.c src/gentac.c src/regstack.c src/genmc.c src/hashtable.c src/mc_env.c
TEST_UNIT_OBJS =src/lex.yy.o src/C.tab.o src/symbol_table.o src/nodes.o src/interpreter.o objs/test_utilities.o src/gentac.o src/environment.o src/regstack.o src/hashtable.o src/mc_env.o
TEST_UNITS = test_compiler test_interpreter
CC = gcc
all: mycc test
test: mycc
$(CC) -g -c test/test_utilities.c -I./headers/ -o objs/test_utilities.o
$(CC) -g test/test_interpreter.c -I./headers/ -o test_interpreter $(TEST_UNIT_OBJS)
$(CC) -g test/test_compiler.c -I./headers/ -o test_compiler $(TEST_UNIT_OBJS)
sh test/run_tests.sh
clean:
rm ${OBJS} ${TEST_UNITS}
mycc: ${OBJS}
${CC} -I./headers/ -g -o mycc ${OBJS}
lex.yy.c: C.flex
flex C.flex
C.tab.c: C.y
bison -d -t -v C.y
.c.o:
${CC} -g -c -I./headers/ $*.c -o $*.o
depend:
${CC} -M $(SRCS) > .deps
cat Makefile .deps > makefile
dist: symbol_table.c nodes.c main.c Makefile C.flex C.y nodes.h token.h interpreter.c interpreter.h
tar cvfz mycc.tgz symbol_table.c nodes.c main.c Makefile C.flex C.y \
nodes.h token.h interpreter.c interpreter.h