Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | ################################################################################ |
2 | ## File: Makefile | |
3 | ## Notes: runs with "gmake" only, not with "make" | |
4 | ## Description: | |
5 | ## ----------- | |
6 | ## Top level Makefile for compiling Vera DES environment. | |
7 | ## | |
8 | ## $Id: Makefile,v 1.3 2007/07/25 19:40:55 drp Exp $ | |
9 | ################################################################################ | |
10 | ||
11 | ################################################################################ | |
12 | # variable declarations | |
13 | ################################################################################ | |
14 | ||
15 | SYS := siu | |
16 | ## Coverage top level directory | |
17 | CTOP := ${DV_ROOT}/verif/env/common/coverage | |
18 | ||
19 | ECHO := echo | |
20 | PID := $(shell echo $$$$) ## :-). Just get a random number | |
21 | ||
22 | ## parallel make at sub-dir level | |
23 | ifndef p | |
24 | p := 1 | |
25 | endif | |
26 | ||
27 | .SUFFIXES: | |
28 | ||
29 | VERA_LIBDIR ?= ./lib | |
30 | ||
31 | ## Coverage users | |
32 | ## -------- ----- | |
33 | ## 1. add <unit> to EXCLUDED_UNITS and COV_UNITS | |
34 | ## 2. Add entry for <unit> below "all" | |
35 | ## | |
36 | ## Look for "Coverage edit", below. | |
37 | ## Remember to use "gmake" instead of "make" when testing. | |
38 | ||
39 | ## Selectively turn on coverage units needed | |
40 | ## Coverage edit (1) | |
41 | EXCLUDED_UNITS := siu | |
42 | EXCLUDED_UNITS += | |
43 | ||
44 | COV_UNITS := | |
45 | VERA_DEFS ?= | |
46 | ||
47 | # added this macro to exclude stuff for NIU | |
48 | ifdef FC_NO_NIU_T2 | |
49 | VERA_DEFS += -DFC_NO_NIU_T2 | |
50 | endif | |
51 | ||
52 | ## When top level coverage objects are built, they update <unit>_built | |
53 | ## target file. | |
54 | ## These are used to decide if $(SYS)_top.vro needs to be recompiled | |
55 | COV_BUILT := $(COV_UNITS:%=$(VERA_LIBDIR)/%_built) | |
56 | ||
57 | ifdef SIU_COVERAGE | |
58 | COV_UNITS += siu | |
59 | VERA_DEFS += -DSIU_COVERAGE | |
60 | endif | |
61 | ||
62 | ifdef NO_0INMGR | |
63 | VERA_DEFS += -DNO_0INMGR | |
64 | endif | |
65 | ||
66 | VERA_VRH ?= vera -cmp -I . -max_error 5 -q $(VERA_DEFS) -H | |
67 | VERA_VRO ?= vera -cmp -I . -max_error 5 -q $(VERA_DEFS) | |
68 | ||
69 | COMMON_DIR := ${DV_ROOT}/verif/env/common/vera/ | |
70 | ||
71 | # siu stub ports | |
72 | PORT_SRC := include/siu_ports_binds.vrhpal | |
73 | IF_SRC := include/siu.if.vrhpal | |
74 | PORT_DEST := $(VERA_LIBDIR)/siu_ports_binds.vrh | |
75 | IF_DEST := $(VERA_LIBDIR)/siu.if.vrh | |
76 | ||
77 | # share between siu sat, stubs and monitors | |
78 | VERA_INCLUDE := include/siu_delay.vrh | |
79 | VERA_INCLUDE += include/siu_monitor.vrh | |
80 | VERA_INCLUDE += include/top_defines.vrh | |
81 | VERA_INCLUDE := $(subst include,$(VERA_LIBDIR),$(VERA_INCLUDE)) | |
82 | ||
83 | # siu sat and stub use only | |
84 | SIU_INCLUDE := include/siu_top.vcon | |
85 | SIU_INCLUDE += include/siu_l2_defines.vrh | |
86 | SIU_INCLUDE += include/diag.vri | |
87 | SIU_INCLUDE := $(subst include,$(VERA_LIBDIR),$(SIU_INCLUDE)) | |
88 | ||
89 | MONPORT_SRC := include/siumon_ports_binds.vrhpal | |
90 | MONIF_SRC := include/siumon.if.vrhpal | |
91 | MONPORT_DEST := $(VERA_LIBDIR)/siumon_ports_binds.vrh | |
92 | MONIF_DEST := $(VERA_LIBDIR)/siumon.if.vrh | |
93 | ||
94 | PACKETS := packets/siu_err_mask.vr | |
95 | PACKETS += packets/siu_basic_packet.vr | |
96 | PACKETS += packets/siu_common.vr | |
97 | PACKETS += packets/siu_dmu_packet.vr | |
98 | PACKETS += packets/siu_jtag_packet.vr | |
99 | PACKETS += packets/siu_l2_packet.vr | |
100 | PACKETS += packets/siu_ncu_packet.vr | |
101 | # added this | |
102 | ifndef FC_NO_NIU_T2 | |
103 | PACKETS += packets/siu_niu_packet.vr | |
104 | endif | |
105 | PACKETS := $(subst packets,$(VERA_LIBDIR),$(PACKETS)) | |
106 | PACKETS_VRH := $(patsubst %.vr,%.vrh,$(PACKETS)) | |
107 | PACKETS_VRO := $(patsubst %.vr,%.vro,$(PACKETS)) | |
108 | ||
109 | STUBS := stubs/dmu_phy.vr | |
110 | STUBS += stubs/l2_stub.vr | |
111 | STUBS += stubs/ncu_stub.vr | |
112 | STUBS += stubs/niu_phy.vr | |
113 | STUBS += stubs/tcu_phy.vr | |
114 | STUBS := $(subst stubs,$(VERA_LIBDIR),$(STUBS)) | |
115 | STUBS_VRH := $(patsubst %.vr,%.vrh,$(STUBS)) | |
116 | STUBS_VRO := $(patsubst %.vr,%.vro,$(STUBS)) | |
117 | ||
118 | MONITORS := monitors/siu_dmu_mon.vr | |
119 | MONITORS += monitors/siu_l2_mon.vr | |
120 | # added this | |
121 | ifndef FC_NO_NIU_T2 | |
122 | MONITORS += monitors/siu_niu_mon.vr | |
123 | endif | |
124 | MONITORS += monitors/siu_order_checker.vr | |
125 | MONITORS := $(subst monitors,$(VERA_LIBDIR),$(MONITORS)) | |
126 | MONITORS_VRH := $(patsubst %.vr,%.vrh,$(MONITORS)) | |
127 | MONITORS_VRO := $(patsubst %.vr,%.vro,$(MONITORS)) | |
128 | ||
129 | MISC := monitors/siu_ncu_err_mon.vr | |
130 | MISC += monitors/siu_ncu_synd_mon.vr | |
131 | MISC := $(subst monitors,$(VERA_LIBDIR),$(MISC)) | |
132 | MISC_VRH := $(patsubst %.vr,%.vrh,$(MISC)) | |
133 | MISC_VRO := $(patsubst %.vr,%.vro,$(MISC)) | |
134 | ||
135 | COMMON := std_display_class.vr | |
136 | ||
137 | ifndef NO_0INMGR | |
138 | ZERO_MGR := ZeroInManager.vr | |
139 | ZERO_INCLUDE := $(COMMON_DIR)include/ZeroInDefines.vri | |
140 | ZERO_INCLUDE += $(COMMON_DIR)classes/ZeroInManager.vrh | |
141 | ZERO_INCLUDE += $(COMMON_DIR)classes/ZeroInManager.vr | |
142 | ZERO_INCLUDE := $(subst $(COMMON_DIR)include,$(VERA_LIBDIR),$(ZERO_INCLUDE)) | |
143 | ZERO_INCLUDE := $(subst $(COMMON_DIR)classes,$(VERA_LIBDIR),$(ZERO_INCLUDE)) | |
144 | ZERO_MGR_VRH := $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(ZERO_MGR)) | |
145 | ZERO_MGR_VRO := $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(ZERO_MGR)) | |
146 | endif | |
147 | ||
148 | COMMON_INCLUDE := $(COMMON_DIR)include/seeding.vri | |
149 | COMMON_INCLUDE += $(COMMON_DIR)include/std_display_defines.vri | |
150 | COMMON_INCLUDE += $(COMMON_DIR)include/plusArgMacros.vri | |
151 | COMMON_INCLUDE += $(COMMON_DIR)classes/std_display_class.vrh | |
152 | COMMON_INCLUDE += $(COMMON_DIR)classes/std_display_class.vr | |
153 | COMMON_INCLUDE := $(subst $(COMMON_DIR)include,$(VERA_LIBDIR),$(COMMON_INCLUDE)) | |
154 | COMMON_INCLUDE := $(subst $(COMMON_DIR)classes,$(VERA_LIBDIR),$(COMMON_INCLUDE)) | |
155 | COMMON_VRH := $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(COMMON)) | |
156 | COMMON_VRO := $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(COMMON)) | |
157 | ||
158 | ||
159 | ################################################################################ | |
160 | # generic rule to make a .vro file | |
161 | ################################################################################ | |
162 | ||
163 | $(VERA_LIBDIR)/%.vrh: $(VERA_LIBDIR)/%.vr | |
164 | @$(ECHO) $(INDENT) "Vera: generating headers for $(notdir $<)" | |
165 | cd $(VERA_LIBDIR); $(VERA_VRH) $(notdir $<) $(notdir $(@:%.vrh=%)) | |
166 | ||
167 | $(VERA_LIBDIR)/%.vro: $(VERA_LIBDIR)/%.vr | |
168 | @$(ECHO) $(INDENT) "Vera: compiling $(notdir $<)" | |
169 | cd $(VERA_LIBDIR); $(VERA_VRO) $(notdir $<) $(notdir $@) | |
170 | ||
171 | $(VERA_LIBDIR)/%: $(COMMON_DIR)/% | |
172 | @$(ECHO) $(INDENT) "Copying $<" | |
173 | cp -f $< $@ | |
174 | ||
175 | $(VERA_LIBDIR)/%: $(COMMON_DIR)classes/% | |
176 | @$(ECHO) $(INDENT) "Copying $<" | |
177 | cp -f $< $@ | |
178 | ||
179 | $(VERA_LIBDIR)/%: $(COMMON_DIR)include/% | |
180 | @$(ECHO) $(INDENT) "Copying $<" | |
181 | cp -f $< $@ | |
182 | ||
183 | $(VERA_LIBDIR)/%: packets/% | |
184 | @$(ECHO) $(INDENT) "Copying $<" | |
185 | cp -f $< $@ | |
186 | ||
187 | $(VERA_LIBDIR)/%: stubs/% | |
188 | @$(ECHO) $(INDENT) "Copying $<" | |
189 | cp -f $< $@ | |
190 | ||
191 | $(VERA_LIBDIR)/%: monitors/% | |
192 | @$(ECHO) $(INDENT) "Copying $<" | |
193 | cp -f $< $@ | |
194 | ||
195 | $(VERA_LIBDIR)/%: include/% | |
196 | @$(ECHO) $(INDENT) "Copying $<" | |
197 | cp -f $< $@ | |
198 | ||
199 | $(VERA_LIBDIR)/%: % | |
200 | @$(ECHO) $(INDENT) "Copying $<" | |
201 | cp -f $< $@ | |
202 | ||
203 | ||
204 | ################################################################################ | |
205 | # all | |
206 | ################################################################################ | |
207 | ||
208 | ifdef NO_0INMGR | |
209 | all: siu_mon $(SIU_INCLUDE) \ | |
210 | $(PORT_DEST) $(IF_DEST) $(COV_UNITS) \ | |
211 | $(STUBS_VRH) $(STUBS_VRO)\ | |
212 | $(VERA_LIBDIR)/diag.vri \ | |
213 | $(MISC_VRH) $(MISC_VRO) \ | |
214 | $(VERA_LIBDIR)/siu_top.vro | |
215 | else | |
216 | all: siu_mon $(SIU_INCLUDE) \ | |
217 | $(ZERO_INCLUDE) $(ZERO_MGR_VRH) $(ZERO_MGR_VRO) \ | |
218 | $(PORT_DEST) $(IF_DEST) $(COV_UNITS) \ | |
219 | $(STUBS_VRH) $(STUBS_VRO)\ | |
220 | $(VERA_LIBDIR)/diag.vri \ | |
221 | $(MISC_VRH) $(MISC_VRO) \ | |
222 | $(VERA_LIBDIR)/siu_top.vro | |
223 | endif | |
224 | ||
225 | dir: | |
226 | if (test ! -d $(VERA_LIBDIR)) then mkdir $(VERA_LIBDIR) ; fi | |
227 | ||
228 | $(PORT_DEST): $(PORT_SRC) | |
229 | pal -r $< > $@ | |
230 | ||
231 | $(IF_DEST): $(IF_SRC) | |
232 | pal -r $< > $@ | |
233 | ||
234 | $(MONPORT_DEST): $(MONPORT_SRC) | |
235 | pal -r $< > $@ | |
236 | ||
237 | $(MONIF_DEST): $(MONIF_SRC) | |
238 | pal -r $< > $@ | |
239 | ||
240 | siu_mon: dir $(COMMON_INCLUDE) $(COMMON_VRH) $(COMMON_VRO) \ | |
241 | $(MONPORT_DEST) $(MONIF_DEST) $(VERA_INCLUDE)\ | |
242 | $(PACKETS_VRH) $(PACKETS_VRO) \ | |
243 | $(MONITORS_VRH) $(MONITORS_VRO) | |
244 | ||
245 | ################################################################################ | |
246 | ### Begin checker and stub targets | |
247 | ################################################################################ | |
248 | MAKE_CMD := $(MAKE) --no-print-directory -j $(p) | |
249 | ||
250 | siu: | |
251 | @$(ECHO) "" | |
252 | @$(ECHO) "[Building siu coverage" | |
253 | if (test -d $(CTOP)/siu) then \ | |
254 | ( cd $(CTOP)/siu; \ | |
255 | if (test -f Makefile) then $(MAKE_CMD) ; fi ) \ | |
256 | fi | |
257 | @$(ECHO) "Done with siu coverage]" | |
258 | @$(ECHO) "" | |
259 | ||
260 | ||
261 | ## Coverage edit (2) | |
262 | ## Copy next three lines, paste above, edit <unit> and uncomment | |
263 | #<unit>: $(HDL_INCLUDE) | |
264 | # @$(ECHO) "" | |
265 | # @$(ECHO) "[Building <unit> coverage" | |
266 | # if (test -d $(CTOP)/<unit>) then \ | |
267 | # ( cd $(CTOP)/<unit>; \ | |
268 | # if (test -f Makefile) then $(COV_MAKE_CMD) ; fi ) \ | |
269 | # fi | |
270 | # @$(ECHO) "Done with <unit> coverage]" | |
271 | # @$(ECHO) "" | |
272 | ||
273 | ### End coverage related targets | |
274 | ||
275 | ################################################################################ | |
276 | # Extra dependences for special rebuilds | |
277 | ################################################################################ | |
278 | $(VERA_LIBDIR)/$(SYS)_top.vro: $(COV_BUILT) $(VERA_LIBDIR)/units_used | |
279 | $(VERA_LIBDIR)/$(SYS)_top.vrh: $(VERA_LIBDIR)/units_used | |
280 | $(VERA_LIBDIR)/units_used: FORCE | |
281 | test -f $@ || touch $@ | |
282 | $(ECHO) $(COV_UNITS) > /tmp/units_used.$(PID) | |
283 | diff /tmp/units_used.$(PID) $@ > /dev/null || \ | |
284 | mv /tmp/units_used.$(PID) $@ | |
285 | rm -f /tmp/units_used.$(PID) | |
286 | $(ECHO) $(EXCLUDED_UNITS) > $(VERA_LIBDIR)/excluded_cov_units | |
287 | ||
288 | ## Dummy target to get above to always fire | |
289 | FORCE: | |
290 | ||
291 | .PHONY: FORCE | |
292 | ||
293 | ifndef DEBUG | |
294 | .SILENT: | |
295 | endif | |
296 | ||
297 | ################################################################################ | |
298 | # clean | |
299 | ################################################################################ | |
300 | ||
301 | clean: | |
302 | rm -rf $(VERA_LIBDIR)/* |