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