-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
102 lines (72 loc) · 1.76 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
PROGRAM = yfasm
SOURCES = main.c parser.c scanner.c
OBJECTS = main.o parser.o scanner.o
# install location for libraries
# none
# some useful others that you may need to edit
LEX = flex
YACC = bison
CC = g++
CFLAGS = -g -D_REENTRANT
LDFLAGS =
LIBS =
# name of this file
MF = Makefile
.SUFFIXES: .o .h .cc .l .y
# ------------- Stuff you shouldn't have to change ------------------
main: $(PROGRAM)
@ls -l $(PROGRAM)
test: $(PROGRAM)
@ls -l $(PROGRAM)
@./$(PROGRAM) test.asm
version:
$(CC) --version
.cc.o:
@echo compiling $<
@$(CC) $(CFLAGS) -c -o $*.o $<
.c.o:
@echo compiling $<
@$(CC) $(CFLAGS) -c -o $*.o $<
.l.c:
@echo building scanner $<
@$(LEX) -o$*.c $<
.y.c:
@echo building parser $<
@$(YACC) --defines=$*.h --output-file=$*.c $<
$(PROGRAM): $(OBJECTS)
@echo linking...
@$(CC) -o $(PROGRAM) $(CFLAGS) $(LDFLAGS) $(OBJECTS) $(LIBS)
clean:
@echo "Deleting temporary files..."
@rm -f *~ "#*" $(OBJECTS) Makefile.last parser.c parser.h scanner.c yfasm
rebuild:
@echo "Deleting intermediate files..."
@rm -f *~ *.o
@make
dep depend:
@echo 'Updating the dependencies for:'
@echo ' ' $(SOURCES)
@{ \
< $(MF) sed -n '1,/^###.*SUDDEN DEATH/p'; \
echo '#' ; \
echo '# dependencies generated on: ' `date` ; \
echo '#' ; \
for i in $(SOURCES); do \
$(CC) -MM $(CFLAGS) $(DEFINES) $$i; \
echo; \
done; \
} > $(MF).new
@mv $(MF) $(MF).last
@mv $(MF).new $(MF)
parser.c : parser.y
scanner.c : scanner.l
parser.h : scanner.l
scanner.o : scanner.c
parser.o : parser.c
parser.c : scanner.c
sim:
iverilog -o test.vvp testbench.v yfcpu.v
vvp test.vvp
main.o: main.c yfasm.h
parser.o: parser.c yfasm.h yfsys.h
scanner.o: scanner.c parser.h yfasm.h