Commit | Line | Data |
---|---|---|
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 | ||
20 | ECHO := echo | |
21 | INDENT := " " | |
22 | ||
23 | .SUFFIXES: | |
24 | ||
25 | ifndef UNIT | |
26 | UNIT := $(CURDIR) | |
27 | UNIT := $(notdir $(UNIT)) | |
28 | UNIT := $(UNIT:%_coverage=%) | |
29 | endif | |
30 | ||
31 | VERA_LIBDIR ?= ../lib | |
32 | MAKEFILES := Makefile ../CovMakefile.inc | |
33 | ||
34 | ifdef FC_COVERAGE | |
35 | FC_VERA_DEFS := -DL2_INTF_COV -DMCU_INTF_COV -DSIU_INTF_COV -DDMU_INTF_COV -DNCU_INTF_COV -DSIU_WB_COV -DFC_COVERAGE | |
36 | endif | |
37 | ifdef IOS_COVERAGE | |
38 | FC_VERA_DEFS := -DSIU_INTF_COV -DIOS_COVERAGE -DNCU_INTF_COV -DDMU_INTF_COV -DSIU_WB_COV | |
39 | endif | |
40 | ||
41 | ## RTL header files could be checked in or be generated | |
42 | RTL_VRH := $(wildcard $(UNIT)_rtl.vrh*) | |
43 | VERA_DEFINES := $(wildcard *defines.vrh*) | |
44 | HEADERS := $(RTL_VRH) $(VERA_DEFINES) | |
45 | ||
46 | ## Top level src object | |
47 | TOP_PAL := $(UNIT)_coverage.vrpal | |
48 | DEST_TOP_VR := $(TOP_PAL:%vrpal=$(VERA_LIBDIR)/%vr) | |
49 | DEST_TOP_VRO := $(DEST_TOP_VR:%vr=%vro) | |
50 | ||
51 | ## Dummy file that is updated if top level object is rebuilt | |
52 | DEST_TOP_BLT := $(VERA_LIBDIR)/$(UNIT)_built | |
53 | ||
54 | SRC_FILES := $(UNIT)_coverage.vri | |
55 | SRC_FILES += $(RTL_VRH) | |
56 | SRC_FILES += $(wildcard *_cov.vr) | |
57 | SRC_FILES += $(wildcard *_group.vr) | |
58 | SRC_FILES += $(wildcard *_monitors.vr) | |
59 | ||
60 | ## put PAL files in order they need to be built | |
61 | SRC_PAL_FIRST := $(wildcard *ports_binds*) $(wildcard *vcon*) | |
62 | SRC_PAL_FIRST += $(wildcard *if.vrh*) $(VERA_DEFINES) | |
63 | SAMPLE_PAL := $(wildcard *_sample.vrhpal) | |
64 | SRC_PAL_SEC := $(wildcard *pal) | |
65 | SRC_PAL_SEC := $(filter-out $(SRC_PAL_FIRST) %.pal,$(SRC_PAL_SEC)) | |
66 | SRC_PAL_FILES := $(SRC_PAL_FIRST) $(SRC_PAL_SEC) | |
67 | ||
68 | SAMPLE_FILES := $(wildcard *_sample.vrh) | |
69 | ||
70 | ## now go through gyrations to get build order right | |
71 | DEST_FILES := $(SRC_PAL_FILES:%pal=$(VERA_LIBDIR)/%) | |
72 | DEST_FILES += $(SRC_FILES:%=$(VERA_LIBDIR)/%) | |
73 | DEST_FILES += $(SAMPLE_FILES:%=$(VERA_LIBDIR)/%) | |
74 | DEST_STAGE1 := $(DEST_FILES) | |
75 | DEST_VR := $(filter %.vr,$(DEST_FILES)) | |
76 | DEST_FILES := $(filter-out $(DEST_VR),$(DEST_FILES)) | |
77 | DEST_VRO := $(DEST_VR:.vr=.vro) | |
78 | DEST_VRO_LAST := $(filter %_coverage.vro,$(DEST_VRO)) | |
79 | DEST_VRO := $(filter-out $(DEST_VRO_LAST),$(DEST_VRO)) | |
80 | DEST_STAGE2 := $(DEST_VRO) | |
81 | DEST_VRO += $(DEST_VRO_LAST) | |
82 | DEST_STAGE3 := $(DEST_VRO_LAST) $(DEST_VRO_LAST:.vro=.vrh) | |
83 | DEST_VRH := $(DEST_VRO:.vro=.vrh) | |
84 | DEST_FILES += $(DEST_VRH) $(DEST_VRO) $(DEST_VR) | |
85 | DEST_FILES += $(DEST_TOP_BLT) | |
86 | ||
87 | VERA_VRH ?= vera -cmp $(FC_VERA_DEFS) -I . -max_error 5 -q -H $(VFLAGS) | |
88 | VERA_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 | ## | |
96 | PAL_OPTS= | |
97 | PAL_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 | |
135 | ifndef DEBUG | |
136 | .SILENT: | |
137 | endif | |
138 | ||
139 | all: $(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 | ||
159 | clean: | |
160 | rm -f $(DEST_FILES) | |
161 | ||
162 | srcs: | |
163 | @ echo $(SRC_FILES) | |
164 | dests: | |
165 | @ echo $(DEST_FILES) | |
166 | ||
167 | unit: | |
168 | @ echo $(UNIT) | |
169 |