diff options
Diffstat (limited to 'mk/cov.mk')
| -rw-r--r-- | mk/cov.mk | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/mk/cov.mk b/mk/cov.mk new file mode 100644 index 0000000..1281e4e --- /dev/null +++ b/mk/cov.mk @@ -0,0 +1,30 @@ +targets += cov + +cov_cores = $(call per_target,cov_cores) + +define target/cov/prepare + enable_cov := 1 +endef + +define target/cov/setup + $$(call target_var,cov_cores) := \ + $$(foreach dep,$$(dep_tree/$$(rule_top)), \ + $$(if $$(filter test,$$(core_info/$$(dep)/targets)), \ + $$(eval $$(call build_target_top,$$(dep),test)) \ + $$(dep))) +endef + +define target/cov/rules + .PHONY: $$(rule_top_path)/cov + $$(rule_top_path)/cov: $$(obj)/html + + $$(obj)/html: $$(obj)/coverage.info | $$(obj) + @rm -rf $$@ + $$(call run,GENHTML) $$(GENHTML) $$< --output-dir=$$@ + + $$(obj)/coverage.info: $$(foreach core,$$(cov_cores),$$(obj/test/$$(core))/results.xml) | $$(obj) + $$(call run,COVERAGE) $$(VERILATOR)_coverage -write-info $$@ \ + $$(wildcard $$(foreach core,$$(cov_cores),$$(obj/test/$$(core))/coverage.dat)) + + $(call target_entrypoint,$(obj)/html) +endef |
