xref: /xnu-12377.81.4/san/coverage/Makefile (revision 043036a2b3718f7f0be807e2870f8f47d3fa0796)
1*043036a2SApple OSS Distributionsexport MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
2*043036a2SApple OSS Distributionsexport MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
3*043036a2SApple OSS Distributionsexport MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
4*043036a2SApple OSS Distributionsexport MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
5*043036a2SApple OSS Distributionsexport MakeInc_san=${SRCROOT}/makedefs/MakeInc.san
6*043036a2SApple OSS Distributions
7*043036a2SApple OSS Distributionsinclude $(MakeInc_cmd)
8*043036a2SApple OSS Distributionsinclude $(MakeInc_def)
9*043036a2SApple OSS Distributionsinclude $(MakeInc_san)
10*043036a2SApple OSS Distributions
11*043036a2SApple OSS DistributionsDATAFILES = \
12*043036a2SApple OSS Distributions
13*043036a2SApple OSS DistributionsPRIVATE_DATAFILES = \
14*043036a2SApple OSS Distributions
15*043036a2SApple OSS DistributionsKERNELFILES = \
16*043036a2SApple OSS Distributions
17*043036a2SApple OSS DistributionsPRIVATE_KERNELFILES = \
18*043036a2SApple OSS Distributions
19*043036a2SApple OSS Distributions# Available only in xnu proper
20*043036a2SApple OSS DistributionsPRIVATE_XNUFILES = \
21*043036a2SApple OSS Distributions	kcov.h \
22*043036a2SApple OSS Distributions	kcov_data.h \
23*043036a2SApple OSS Distributions	kcov_ksancov.h \
24*043036a2SApple OSS Distributions	kcov_ksancov_data.h \
25*043036a2SApple OSS Distributions	kcov_stksz.h \
26*043036a2SApple OSS Distributions	kcov_stksz_data.h
27*043036a2SApple OSS Distributions
28*043036a2SApple OSS DistributionsINSTALL_MI_LIST = ${DATAFILES}
29*043036a2SApple OSS DistributionsINSTALL_SF_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES}
30*043036a2SApple OSS DistributionsINSTALL_KF_MI_LIST = ${KERNELFILES}
31*043036a2SApple OSS DistributionsINSTALL_KF_MI_LCL_LIST = ${KERNELFILES} ${PRIVATE_KERNELFILES}
32*043036a2SApple OSS Distributions
33*043036a2SApple OSS DistributionsEXPORT_MI_LIST = ${PRIVATE_XNUFILES} ${KERNELFILES} ${PRIVATE_KERNELFILES}
34*043036a2SApple OSS Distributions
35*043036a2SApple OSS DistributionsINSTALL_MI_DIR = san
36*043036a2SApple OSS DistributionsEXPORT_MI_DIR = san
37*043036a2SApple OSS Distributions
38*043036a2SApple OSS Distributions# Generate denylist
39*043036a2SApple OSS Distributions.DELETE_ON_ERROR:
40*043036a2SApple OSS Distributions$(OBJROOT)/san/kcov-denylist-%: $(SOURCE)/kcov-denylist $(SOURCE)/kcov-denylist-%
41*043036a2SApple OSS Distributions	@$(LOG_GENERATE) "$(notdir $@)"
42*043036a2SApple OSS Distributions	$(_v)sed -e 's,^src:\./,src:'"$(SRCROOT)/," $^ > $@
43*043036a2SApple OSS Distributions	$(_v)$(SRCROOT)/san/tools/validate_denylist.sh "$@"
44*043036a2SApple OSS Distributions
45*043036a2SApple OSS Distributionsdo_build_setup:: $(OBJROOT)/san/kcov-denylist-x86_64 $(OBJROOT)/san/kcov-denylist-arm64
46*043036a2SApple OSS Distributions
47*043036a2SApple OSS Distributions#
48*043036a2SApple OSS Distributions# Kcov System.kext plugin
49*043036a2SApple OSS Distributions#
50*043036a2SApple OSS Distributions
51*043036a2SApple OSS Distributionsifneq ($(RC_ProjectName),xnu_libraries)
52*043036a2SApple OSS Distributions
53*043036a2SApple OSS Distributions#
54*043036a2SApple OSS Distributions# Primary build will always install kext without exported runtime.
55*043036a2SApple OSS Distributions#
56*043036a2SApple OSS Distributions# Note: Skipped when kasan only install is requested.
57*043036a2SApple OSS Distributions#
58*043036a2SApple OSS Distributions
59*043036a2SApple OSS Distributionsifneq ($(INSTALL_KASAN_ONLY),1)
60*043036a2SApple OSS Distributions
61*043036a2SApple OSS DistributionsKEXT := Kcov
62*043036a2SApple OSS Distributions
63*043036a2SApple OSS Distributions$(eval $(call san_symbolset_template,$(KEXT),Kcov_disabled))
64*043036a2SApple OSS Distributions$(eval $(call san_kext_dstroot_rule_template,Kcov.kext,$(KEXT)))
65*043036a2SApple OSS Distributions$(eval $(call san_kext_symroot_rule_template,Kcov.kext,$(KEXT),$(BUILD_CONFIGS)))
66*043036a2SApple OSS Distributions
67*043036a2SApple OSS Distributionsdo_config_all:: $(SYMBOL_SET_BUILD_$(KEXT))
68*043036a2SApple OSS Distributionsdo_config_install:: $(SYMROOT_KEXT_$(KEXT)) $(DSTROOT_KEXT_$(KEXT))
69*043036a2SApple OSS Distributions
70*043036a2SApple OSS Distributionsendif
71*043036a2SApple OSS Distributions
72*043036a2SApple OSS Distributions#
73*043036a2SApple OSS Distributions# Non-primary build variant install target.
74*043036a2SApple OSS Distributions#
75*043036a2SApple OSS Distributions# Include variant only when sanitizer runtime is enabled.
76*043036a2SApple OSS Distributions#
77*043036a2SApple OSS Distributions
78*043036a2SApple OSS Distributionsifneq ($(filter $(CURRENT_KERNEL_CONFIG), $(KCOV_RUNTIME)),)
79*043036a2SApple OSS Distributions
80*043036a2SApple OSS Distributions# all build configs for the current variant
81*043036a2SApple OSS DistributionsCURRENT_VARIANT_BUILD_CONFIGS := $(strip $(call function_match_build_config_for_kernel_config, \
82*043036a2SApple OSS Distributions		$(BUILD_CONFIGS), $(CURRENT_KERNEL_CONFIG)))
83*043036a2SApple OSS Distributions
84*043036a2SApple OSS DistributionsKEXT_VARIANT := Kcov_$(CURRENT_KERNEL_CONFIG_LC)
85*043036a2SApple OSS Distributions
86*043036a2SApple OSS Distributions$(eval $(call san_symbolset_template,$(KEXT_VARIANT),Kcov_enabled))
87*043036a2SApple OSS Distributions$(eval $(call san_kext_dstroot_rule_template,Kcov.kext,$(KEXT_VARIANT)))
88*043036a2SApple OSS Distributions$(eval $(call san_kext_symroot_rule_template,Kcov.kext,$(KEXT_VARIANT),$(CURRENT_VARIANT_BUILD_CONFIGS)))
89*043036a2SApple OSS Distributions
90*043036a2SApple OSS Distributionsdo_config_all:: $(SYMBOL_SET_BUILD_$(KEXT_VARIANT))
91*043036a2SApple OSS Distributionsdo_config_install_variant:: $(SYMROOT_KEXT_$(KEXT_VARIANT)) $(DSTROOT_KEXT_$(KEXT_VARIANT))
92*043036a2SApple OSS Distributions
93*043036a2SApple OSS Distributionsendif
94*043036a2SApple OSS Distributions
95*043036a2SApple OSS Distributionselse
96*043036a2SApple OSS Distributions# We are building XNU as a static library - no need for the symbol kexts
97*043036a2SApple OSS Distributionsendif
98*043036a2SApple OSS Distributions
99*043036a2SApple OSS Distributionsinclude $(MakeInc_rule)
100*043036a2SApple OSS Distributionsinclude $(MakeInc_dir)
101