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