blob: 8d1b8ff62a04a1e2cc0df254e837615cc904f6ad (
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
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
#
# qflow project source compile makefile
#
# Main compiler arguments
CFLAGS = @CFLAGS@
LIBS = @LIBS@
LDFLAGS = @LDFLAGS@
INSTALL = @INSTALL@
DEFS = @DEFS@ -DQFLOW_VERSION=\"@VERSION@\" -DQFLOW_REVISION=\"@REVISION@\"
QFLOW_LIB_DIR = /usr/lib/qflow
QFLOW_GRAYWOLF_PATH = @QFLOW_GRAYWOLF_PATH@
QFLOW_REPLACE_PATH = @QFLOW_REPLACE_PATH@
QFLOW_NTUPLACE3_PATH = @QFLOW_NTUPLACE3_PATH@
QFLOW_NTUPLACE4_PATH = @QFLOW_NTUPLACE4_PATH@
QFLOW_QROUTER_PATH = @QFLOW_QROUTER_PATH@
QFLOW_MAGIC_PATH = @QFLOW_MAGIC_PATH@
QFLOW_NETGEN_PATH = @QFLOW_NETGEN_PATH@
QFLOW_YOSYS_PATH = @QFLOW_YOSYS_PATH@
QFLOW_OPENTIMER_PATH = @QFLOW_OPENTIMER_PATH@
QFLOW_OPENSTA_PATH = @QFLOW_OPENSTA_PATH@
HAVE_YOSYS = @HAVE_YOSYS@
HAVE_MAGIC = @HAVE_MAGIC@
HAVE_NETGEN = @HAVE_NETGEN@
HAVE_OPENTIMER = @HAVE_OPENTIMER@
HAVE_OPENSTA = @HAVE_OPENSTA@
HAVE_GRAYWOLF = @HAVE_GRAYWOLF@
HAVE_REPLACE = @HAVE_REPLACE@
HAVE_QROUTER = @HAVE_QROUTER@
OBJECTS = vlog2Spice.o vlog2Verilog.o vlog2Def.o vlog2Cel.o vlogFanout.o
OBJECTS += DEF2Verilog.o addspacers.o
OBJECTS += vesta.o spice2delay.o rc2dly.o
OBJECTS += blif2BSpice.o blif2Verilog.o blifFanout.o
HASHLIB = hash.o
LIBERTYLIB = readliberty.o
VERILOGLIB = readverilog.o
LEFLIB = readlef.o
DEFLIB = readdef.o
SOURCES := $(patsubst %.o,%.c,$(OBJECTS))
TARGETS := $(patsubst %.o,%$(EXEEXT),$(OBJECTS))
BININSTALL = ${QFLOW_LIB_DIR}/bin
all: $(TARGETS)
vlog2Spice$(EXEEXT): vlog2Spice.o $(HASHLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) vlog2Spice.o $(HASHLIB) $(VERILOGLIB) -o $@ $(LIBS)
vlog2Verilog$(EXEEXT): vlog2Verilog.o $(HASHLIB) $(LEFLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) vlog2Verilog.o $(HASHLIB) $(VERILOGLIB) $(LEFLIB) \
-o $@ $(LIBS)
vlog2Cel$(EXEEXT): vlog2Cel.o $(HASHLIB) $(LEFLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) vlog2Cel.o $(HASHLIB) $(VERILOGLIB) $(LEFLIB) \
-o $@ $(LIBS)
vlog2Def$(EXEEXT): vlog2Def.o $(HASHLIB) $(LEFLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) vlog2Def.o $(HASHLIB) $(LEFLIB) $(VERILOGLIB) -o $@ $(LIBS) -lm
vlogFanout$(EXEEXT): vlogFanout.o $(HASHLIB) $(LIBERTYLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) vlogFanout.o $(HASHLIB) $(VERILOGLIB) $(LIBERTYLIB) \
-DQFLOW_VERSION=\"VERSION\" -DQFLOW_REVISION=\"REVISION\" \
$(DEPENDS) -o $@ $(LIBS) -lm
DEF2Verilog$(EXEEXT): DEF2Verilog.o $(HASHLIB) $(VERILOGLIB) $(DEFLIB) $(LEFLIB)
$(CC) $(LDFLAGS) DEF2Verilog.o $(HASHLIB) $(VERILOGLIB) $(DEFLIB) $(LEFLIB) \
-DQFLOW_VERSION=\"VERSION\" -DQFLOW_REVISION=\"REVISION\" \
$(DEPENDS) -o $@ $(LIBS) -lm
addspacers$(EXEEXT): addspacers.o $(HASHLIB) $(LEFLIB) $(DEFLIB)
$(CC) $(LDFLAGS) addspacers.o $(HASHLIB) $(LEFLIB) $(DEFLIB) -o $@ $(LIBS) -lm
blif2BSpice$(EXEEXT): blif2BSpice.o
$(CC) $(LDFLAGS) blif2BSpice.o -o $@ $(LIBS)
blif2Verilog$(EXEEXT): blif2Verilog.o
$(CC) $(LDFLAGS) blif2Verilog.o -o $@ $(LIBS)
blifFanout$(EXEEXT): blifFanout.o $(HASHLIB) $(LIBERTYLIB)
$(CC) $(LDFLAGS) blifFanout.o $(HASHLIB) $(LIBERTYLIB) \
-DQFLOW_VERSION=\"VERSION\" -DQFLOW_REVISION=\"REVISION\" \
$(DEPENDS) -o $@ $(LIBS) -lm
vesta$(EXEEXT): vesta.o $(HASHLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) vesta.o $(HASHLIB) $(VERILOGLIB) -o $@ $(LIBS)
spice2delay$(EXEEXT): spice2delay.o $(HASHLIB) $(LIBERTYLIB)
$(CC) $(LDFLAGS) spice2delay.o $(HASHLIB) $(LIBERTYLIB) -o $@ $(LIBS)
rc2dly$(EXEEXT): rc2dly.o $(LIBERTYLIB) $(HASHLIB) $(VERILOGLIB)
$(CC) $(LDFLAGS) rc2dly.o $(LIBERTYLIB) $(HASHLIB) $(VERILOGLIB) -o $@ $(LIBS)
install: $(TARGETS)
@echo "Installing verilog, SPICE, etc. file format handlers"
$(INSTALL) -d $(DESTDIR)${BININSTALL}
@for target in $(TARGETS); do \
$(INSTALL) $$target $(DESTDIR)${BININSTALL} ;\
done
@echo "Installing links to third-party synthesis flow tool executables"
@if test "${HAVE_GRAYWOLF}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f graywolf; ln -s $(QFLOW_GRAYWOLF_PATH) graywolf) ;\
fi
@if test "${HAVE_REPLACE}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f RePlAce; ln -s $(QFLOW_REPLACE_PATH) RePlAce) ;\
(cd $(DESTDIR)${BININSTALL}; $(RM) -f ntuplace3; ln -s $(QFLOW_NTUPLACE3_PATH) ntuplace3) ;\
(cd $(DESTDIR)${BININSTALL}; $(RM) -f ntuplace4h; ln -s $(QFLOW_NTUPLACE4_PATH) ntuplace4h) ;\
fi
@if test "${HAVE_QROUTER}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f qrouter; ln -s $(QFLOW_QROUTER_PATH) qrouter) ;\
fi
@if test "${HAVE_MAGIC}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f magic; ln -s $(QFLOW_MAGIC_PATH) magic) ;\
fi
@if test "${HAVE_NETGEN}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f netgen; ln -s $(QFLOW_NETGEN_PATH) netgen); \
fi
@if test "${HAVE_YOSYS}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f yosys; ln -s $(QFLOW_YOSYS_PATH) yosys); \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f yosys-abc; ln -s $(QFLOW_YOSYS_PATH)-abc yosys-abc); \
fi
@if test "${HAVE_OPENTIMER}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f ot-shell; ln -s $(QFLOW_OPENTIMER_PATH) ot-shell); \
fi
@if test "${HAVE_OPENSTA}" = "1"; then \
(cd $(DESTDIR)${BININSTALL}; $(RM) -f sta; ln -s $(QFLOW_OPENSTA_PATH) sta); \
fi
uninstall:
$(RM) -rf ${BININSTALL}
clean:
$(RM) -f $(OBJECTS) $(HASHLIB) $(LIBERTYLIB) $(LEFLIB) $(DEFLIB) $(VERILOGLIB)
$(RM) -f $(TARGETS)
veryclean:
$(RM) -f $(OBJECTS) $(HASHLIB) $(LIBERTYLIB) $(LEFLIB) $(DEFLIB) $(VERILOGLIB)
$(RM) -f $(TARGETS)
distclean:
$(RM) -f $(OBJECTS) $(HASHLIB) $(LIBERTYLIB) $(LEFLIB) $(DEFLIB) $(VERILOGLIB)
$(RM) -f $(TARGETS)
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) -c $< -o $@
|