Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / common / coverage / CovMakefile.inc
CommitLineData
86530b38
AT
1################################### -*- Makefile -*- ###########################
2##
3## File: CovMakefile.inc
4## Description:
5## -----------
6## Common part of Makefile for coverage directories.
7## This is included in <unit>/Makefile
8## Caution:
9## -------
10## Only works with "gmake".
11##
12## $Id: CovMakefile.inc,v 1.12 2005/11/17 20:40:35 cb150247 Exp $
13##
14################################################################################
15
16################################################################################
17# variable declarations
18################################################################################
19
20ECHO := echo
21INDENT := " "
22
23.SUFFIXES:
24
25ifndef UNIT
26 UNIT := $(CURDIR)
27 UNIT := $(notdir $(UNIT))
28 UNIT := $(UNIT:%_coverage=%)
29endif
30
31VERA_LIBDIR ?= ../lib
32MAKEFILES := Makefile ../CovMakefile.inc
33
34ifdef FC_COVERAGE
35FC_VERA_DEFS := -DL2_INTF_COV -DMCU_INTF_COV -DSIU_INTF_COV -DDMU_INTF_COV -DNCU_INTF_COV -DSIU_WB_COV -DFC_COVERAGE
36endif
37ifdef IOS_COVERAGE
38FC_VERA_DEFS := -DSIU_INTF_COV -DIOS_COVERAGE -DNCU_INTF_COV -DDMU_INTF_COV -DSIU_WB_COV
39endif
40
41## RTL header files could be checked in or be generated
42RTL_VRH := $(wildcard $(UNIT)_rtl.vrh*)
43VERA_DEFINES := $(wildcard *defines.vrh*)
44HEADERS := $(RTL_VRH) $(VERA_DEFINES)
45
46## Top level src object
47TOP_PAL := $(UNIT)_coverage.vrpal
48DEST_TOP_VR := $(TOP_PAL:%vrpal=$(VERA_LIBDIR)/%vr)
49DEST_TOP_VRO := $(DEST_TOP_VR:%vr=%vro)
50
51## Dummy file that is updated if top level object is rebuilt
52DEST_TOP_BLT := $(VERA_LIBDIR)/$(UNIT)_built
53
54SRC_FILES := $(UNIT)_coverage.vri
55SRC_FILES += $(RTL_VRH)
56SRC_FILES += $(wildcard *_cov.vr)
57SRC_FILES += $(wildcard *_group.vr)
58SRC_FILES += $(wildcard *_monitors.vr)
59
60## put PAL files in order they need to be built
61SRC_PAL_FIRST := $(wildcard *ports_binds*) $(wildcard *vcon*)
62SRC_PAL_FIRST += $(wildcard *if.vrh*) $(VERA_DEFINES)
63SAMPLE_PAL := $(wildcard *_sample.vrhpal)
64SRC_PAL_SEC := $(wildcard *pal)
65SRC_PAL_SEC := $(filter-out $(SRC_PAL_FIRST) %.pal,$(SRC_PAL_SEC))
66SRC_PAL_FILES := $(SRC_PAL_FIRST) $(SRC_PAL_SEC)
67
68SAMPLE_FILES := $(wildcard *_sample.vrh)
69
70## now go through gyrations to get build order right
71DEST_FILES := $(SRC_PAL_FILES:%pal=$(VERA_LIBDIR)/%)
72DEST_FILES += $(SRC_FILES:%=$(VERA_LIBDIR)/%)
73DEST_FILES += $(SAMPLE_FILES:%=$(VERA_LIBDIR)/%)
74DEST_STAGE1 := $(DEST_FILES)
75DEST_VR := $(filter %.vr,$(DEST_FILES))
76DEST_FILES := $(filter-out $(DEST_VR),$(DEST_FILES))
77DEST_VRO := $(DEST_VR:.vr=.vro)
78DEST_VRO_LAST := $(filter %_coverage.vro,$(DEST_VRO))
79DEST_VRO := $(filter-out $(DEST_VRO_LAST),$(DEST_VRO))
80DEST_STAGE2 := $(DEST_VRO)
81DEST_VRO += $(DEST_VRO_LAST)
82DEST_STAGE3 := $(DEST_VRO_LAST) $(DEST_VRO_LAST:.vro=.vrh)
83DEST_VRH := $(DEST_VRO:.vro=.vrh)
84DEST_FILES += $(DEST_VRH) $(DEST_VRO) $(DEST_VR)
85DEST_FILES += $(DEST_TOP_BLT)
86
87VERA_VRH ?= vera -cmp $(FC_VERA_DEFS) -I . -max_error 5 -q -H $(VFLAGS)
88VERA_VRO ?= vera -cmp $(FC_VERA_DEFS) -I . -max_error 5 -q $(VFLAGS)
89
90## PAL_OPTS gets overridden by command line argument for multi-core sims.
91## For example, for sys=cmp1, cmd line is:
92## gmake PAL_OPTS="sys=CMP1"
93## or
94## gmake PAL_OPTS="cores=2"
95##
96PAL_OPTS=
97PAL_INCLUDES := $(UNIT)_cov_inc.pal
98
99################################################################################
100# rules
101################################################################################
102
103###################
104# preprocessing
105###################
106
107$(VERA_LIBDIR)/%.vcon: %.vconpal $(PAL_INCLUDES)
108 @$(ECHO) $(INDENT) "Expanding $<"
109 pal -r $(PAL_OPTS) -o $@ $<
110
111$(VERA_LIBDIR)/%.vrh: %.vrhpal $(PAL_INCLUDES)
112 @$(ECHO) $(INDENT) "Expanding $<"
113 pal -r $(PAL_OPTS) -o $@ $<
114
115$(VERA_LIBDIR)/%.vr: %.vrpal $(PAL_INCLUDES)
116 @$(ECHO) $(INDENT) "Expanding $<"
117 pal -r $(PAL_OPTS) -o $@ $<
118
119$(VERA_LIBDIR)/%.vrh: $(VERA_LIBDIR)/%.vr $(HEADERS)
120 @$(ECHO) $(INDENT) "Vera: generating headers for $(notdir $<)"
121 cd $(VERA_LIBDIR); $(VERA_VRH) $(notdir $<) $(notdir $(@:%.vrh=%))
122
123$(VERA_LIBDIR)/%.vro: $(VERA_LIBDIR)/%.vr $(VERA_LIBDIR)/%.vrh $(HEADERS)
124 @$(ECHO) $(INDENT) "Vera: compiling $(notdir $<)"
125 cd $(VERA_LIBDIR); $(VERA_VRO) $(notdir $<) $(notdir $@)
126
127$(VERA_LIBDIR)/%: %
128 @$(ECHO) $(INDENT) "Copying $<"
129 cp -f $< $@
130
131################################################################################
132# all
133################################################################################
134.PHONY: all clean srcs dests unit
135ifndef DEBUG
136.SILENT:
137endif
138
139all: $(DEST_FILES)
140
141################################################################################
142# additional dependences and flag target
143################################################################################
144$(DEST_TOP_VR): $(SAMPLE_PAL)
145
146$(DEST_TOP_BLT): $(DEST_TOP_VRO)
147 echo $(PAL_OPTS) > $@
148
149$(DEST_STAGE2): $(DEST_STAGE1)
150
151$(DEST_STAGE3): $(DEST_STAGE2)
152
153$(DEST_STAGE1): $(MAKEFILES)
154
155################################################################################
156# clean
157################################################################################
158
159clean:
160 rm -f $(DEST_FILES)
161
162srcs:
163 @ echo $(SRC_FILES)
164dests:
165 @ echo $(DEST_FILES)
166
167unit:
168 @ echo $(UNIT)
169