xref: /xnu-11215.61.5/makedefs/MakeInc.rule (revision 4f1223e81cd707a65cc109d0b8ad6653699da3c4)
1*4f1223e8SApple OSS Distributions# -*- mode: makefile;-*-
2*4f1223e8SApple OSS Distributions#
3*4f1223e8SApple OSS Distributions# Copyright (C) 1999-2020 Apple Inc. All rights reserved.
4*4f1223e8SApple OSS Distributions#
5*4f1223e8SApple OSS Distributions# MakeInc.rule defines the targets and rules for
6*4f1223e8SApple OSS Distributions# leaf directories once MakeInc.dir has recursed
7*4f1223e8SApple OSS Distributions# into them. "do_XXX" may be double-colon rules
8*4f1223e8SApple OSS Distributions# to allow the Makefile in the source directory
9*4f1223e8SApple OSS Distributions# to augment the actions that will be performed.
10*4f1223e8SApple OSS Distributions#
11*4f1223e8SApple OSS Distributionsinclude $(SRCROOT)/makedefs/MakeInc.color
12*4f1223e8SApple OSS Distributions
13*4f1223e8SApple OSS Distributions#
14*4f1223e8SApple OSS Distributions# Empty the export lists of headers when building for exclaves
15*4f1223e8SApple OSS Distributions#
16*4f1223e8SApple OSS Distributions
17*4f1223e8SApple OSS Distributionsifeq ($(EXPORTHDRS_SKIP_EXCLAVES),YES)
18*4f1223e8SApple OSS DistributionsEXPORT_MI_LIST =
19*4f1223e8SApple OSS DistributionsEXPORT_MI_GEN_LIST =
20*4f1223e8SApple OSS DistributionsEXPORT_MD_LIST =
21*4f1223e8SApple OSS DistributionsEXPORT_MD_GEN_LIST =
22*4f1223e8SApple OSS Distributionsendif
23*4f1223e8SApple OSS Distributions
24*4f1223e8SApple OSS Distributions#
25*4f1223e8SApple OSS Distributions# Generic Install rules
26*4f1223e8SApple OSS Distributions#
27*4f1223e8SApple OSS Distributions
28*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MI_LCL_LIST
29*4f1223e8SApple OSS Distributions    INSTALL_KF_MI_LCL_LIST = $(EXPORT_MI_LIST)
30*4f1223e8SApple OSS Distributionsendif
31*4f1223e8SApple OSS Distributions
32*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MI_LCL_GEN_LIST
33*4f1223e8SApple OSS Distributions    INSTALL_KF_MI_LCL_GEN_LIST = $(EXPORT_MI_GEN_LIST)
34*4f1223e8SApple OSS Distributionsendif
35*4f1223e8SApple OSS Distributions
36*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MD_LCL_LIST
37*4f1223e8SApple OSS Distributions    INSTALL_KF_MD_LCL_LIST = $(EXPORT_MD_LIST)
38*4f1223e8SApple OSS Distributionsendif
39*4f1223e8SApple OSS Distributions
40*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MD_LCL_GEN_LIST
41*4f1223e8SApple OSS Distributions    INSTALL_KF_MD_LCL_GEN_LIST = $(EXPORT_MD_GEN_LIST)
42*4f1223e8SApple OSS Distributionsendif
43*4f1223e8SApple OSS Distributions
44*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MI_LIST
45*4f1223e8SApple OSS Distributions    INSTALL_KF_MI_LIST = $(EXPORT_MI_LIST)
46*4f1223e8SApple OSS Distributionsendif
47*4f1223e8SApple OSS Distributions
48*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MI_GEN_LIST
49*4f1223e8SApple OSS Distributions    INSTALL_KF_MI_GEN_LIST = $(EXPORT_MI_GEN_LIST)
50*4f1223e8SApple OSS Distributionsendif
51*4f1223e8SApple OSS Distributions
52*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MD_LIST
53*4f1223e8SApple OSS Distributions    INSTALL_KF_MD_LIST = $(EXPORT_MD_LIST)
54*4f1223e8SApple OSS Distributionsendif
55*4f1223e8SApple OSS Distributions
56*4f1223e8SApple OSS Distributionsifndef INSTALL_KF_MD_GEN_LIST
57*4f1223e8SApple OSS Distributions    INSTALL_KF_MD_GEN_LIST = $(EXPORT_MD_GEN_LIST)
58*4f1223e8SApple OSS Distributionsendif
59*4f1223e8SApple OSS Distributions
60*4f1223e8SApple OSS Distributions$(eval $(call _setup_build_log_colors))
61*4f1223e8SApple OSS Distributions
62*4f1223e8SApple OSS Distributions.PHONY: ALWAYS
63*4f1223e8SApple OSS Distributions
64*4f1223e8SApple OSS DistributionsALWAYS:
65*4f1223e8SApple OSS Distributions
66*4f1223e8SApple OSS Distributions# $(1) is the list of install paths
67*4f1223e8SApple OSS Distributions# $(2) is "1" if it's a "GEN"-style rule that looks locally, or else $(SOURCE)
68*4f1223e8SApple OSS Distributions# $(3) is the local temp directory for processing
69*4f1223e8SApple OSS Distributions# $(4) is the unifdef flags
70*4f1223e8SApple OSS Distributions#
71*4f1223e8SApple OSS Distributions# $$$$$$$$ is a double-escaped "$$" to represent the current pid
72*4f1223e8SApple OSS Distributions# of the shell process for creating uniquely named temporary files
73*4f1223e8SApple OSS Distributions
74*4f1223e8SApple OSS Distributionsdefine INSTALLHDRS_RULE_template
75*4f1223e8SApple OSS Distributions
76*4f1223e8SApple OSS Distributions.PHONY: $(3)_MKDIR
77*4f1223e8SApple OSS Distributions
78*4f1223e8SApple OSS Distributions$(3)_MKDIR:
79*4f1223e8SApple OSS Distributions	$$(_v)$$(MKDIR) ./$(3)
80*4f1223e8SApple OSS Distributions	$$(_v)$$(MKDIR) $(dir $(firstword $(1)))
81*4f1223e8SApple OSS Distributions
82*4f1223e8SApple OSS Distributions# Rebuild if unifdef flags change
83*4f1223e8SApple OSS Distributions$(1): $(3)/.UNIFDEF_FLAGS
84*4f1223e8SApple OSS Distributions$(3)/.UNIFDEF_FLAGS: ALWAYS | $(3)_MKDIR
85*4f1223e8SApple OSS Distributions	$$(_v)$$(REPLACECONTENTS) $$@ $$(UNIFDEF) $(4)
86*4f1223e8SApple OSS Distributions
87*4f1223e8SApple OSS Distributions$(1): $(dir $(firstword $(1)))% : $(if $(2),%,$$(SOURCE)/%) | $(3)_MKDIR
88*4f1223e8SApple OSS Distributions	@$$(LOG_INSTALLHDR) "$$*"
89*4f1223e8SApple OSS Distributions	$$(_v)$$(UNIFDEF) $(4) $$< > ./$(3)/$$*.unifdef.$$$$$$$$;		\
90*4f1223e8SApple OSS Distributions	if [ $$$$? -eq 2 ]; then						\
91*4f1223e8SApple OSS Distributions		$(ERR) Parse failure for $$<;					\
92*4f1223e8SApple OSS Distributions		exit 1;								\
93*4f1223e8SApple OSS Distributions	fi;									\
94*4f1223e8SApple OSS Distributions	$$(DECOMMENT) ./$(3)/$$*.unifdef.$$$$$$$$ r >				\
95*4f1223e8SApple OSS Distributions		./$(3)/$$*.strip.$$$$$$$$ || exit 1;				\
96*4f1223e8SApple OSS Distributions	if [ -s ./$(3)/$$*.strip.$$$$$$$$ ]; then				\
97*4f1223e8SApple OSS Distributions		$$(INSTALL) $$(INSTALL_FLAGS) ./$(3)/$$*.unifdef.$$$$$$$$ $$@ || exit 1;	\
98*4f1223e8SApple OSS Distributions	fi;									\
99*4f1223e8SApple OSS Distributions	$$(RM) ./$(3)/$$*.unifdef.$$$$$$$$ ./$(3)/$$*.strip.$$$$$$$$
100*4f1223e8SApple OSS Distributionsendef
101*4f1223e8SApple OSS Distributions
102*4f1223e8SApple OSS Distributions# $(1) is the list of install paths
103*4f1223e8SApple OSS Distributions# $(2) is the source path pattern (using % to match with $(5)) or source file
104*4f1223e8SApple OSS Distributions# $(3) is the local temp directory for processing
105*4f1223e8SApple OSS Distributions# $(4) is the unifdef flags
106*4f1223e8SApple OSS Distributions# $(5) is the destination directory (when pattern matching) or empty
107*4f1223e8SApple OSS Distributions#
108*4f1223e8SApple OSS Distributions# $$$$$$$$ is a double-escaped "$$" to represent the current pid
109*4f1223e8SApple OSS Distributions# of the shell process for creating uniquely named temporary files
110*4f1223e8SApple OSS Distributions
111*4f1223e8SApple OSS Distributionsdefine INSTALLPYTHON_RULE_template
112*4f1223e8SApple OSS Distributions
113*4f1223e8SApple OSS Distributions.PHONY: $(3)_MKDIR
114*4f1223e8SApple OSS Distributions
115*4f1223e8SApple OSS Distributions$(3)_MKDIR:
116*4f1223e8SApple OSS Distributions	$$(_v)$$(MKDIR) ./$(3)
117*4f1223e8SApple OSS Distributions
118*4f1223e8SApple OSS Distributions# Rebuild if unifdef flags change
119*4f1223e8SApple OSS Distributions$(1): $(3)/.UNIFDEF_FLAGS
120*4f1223e8SApple OSS Distributions$(3)/.UNIFDEF_FLAGS: ALWAYS | $(3)_MKDIR
121*4f1223e8SApple OSS Distributions	$$(_v)$$(REPLACECONTENTS) $$@ $$(UNIFDEF) -t $(4)
122*4f1223e8SApple OSS Distributions
123*4f1223e8SApple OSS Distributions$(1): $(5)% : $(2) | $(3)_MKDIR
124*4f1223e8SApple OSS Distributions	@$$(LOG_INSTALLPY) "$$*"
125*4f1223e8SApple OSS Distributions	$$(_v)$$(MKDIR) $$(dir $$@) $$(dir ./$(3)/$$*)
126*4f1223e8SApple OSS Distributions	$$(_v)$$(UNIFDEF) -t $(4) $$< > ./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*); \
127*4f1223e8SApple OSS Distributions	if [ $$$$? -eq 2 ]; then						\
128*4f1223e8SApple OSS Distributions		$(ERR) Parse failure for $$<;				\
129*4f1223e8SApple OSS Distributions		exit 1;							\
130*4f1223e8SApple OSS Distributions	fi;								\
131*4f1223e8SApple OSS Distributions	$$(INSTALL) $$(DATA_INSTALL_FLAGS) \
132*4f1223e8SApple OSS Distributions		./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*) $$@ || exit 1; \
133*4f1223e8SApple OSS Distributions	$$(PYTHON) $$(LLDBMACROS_SOURCE)/lint/syntax_checker.py \
134*4f1223e8SApple OSS Distributions		./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*) $$(_vstdout) || exit 1; \
135*4f1223e8SApple OSS Distributions	$$(RM) ./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*)
136*4f1223e8SApple OSS Distributions	$$(_v)if [ -n "$(5)" ]; then $$(TOUCH) "$(5)"; fi
137*4f1223e8SApple OSS Distributionsendef
138*4f1223e8SApple OSS Distributions
139*4f1223e8SApple OSS Distributions# Template for Libsyscall header unifdef postprocessing in DSTROOT
140*4f1223e8SApple OSS Distributions# $(1) is the install path
141*4f1223e8SApple OSS Distributions# $(2) is the unifdef flags
142*4f1223e8SApple OSS Distributions
143*4f1223e8SApple OSS Distributionsdefine LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template
144*4f1223e8SApple OSS Distributionsdo_unifdef_headers::
145*4f1223e8SApple OSS Distributions	$$(_v)[ \! -d "$(1)" ] || $$(FIND) -x "$(1)"  -type f \( -name \*.h -o \
146*4f1223e8SApple OSS Distributions		-name \*.defs -o -name \*.iig -o -name \*.modulemap \) \
147*4f1223e8SApple OSS Distributions		-execdir $$(UNIFDEF) $(2) -o {} {} \;
148*4f1223e8SApple OSS Distributions.PHONY: do_unifdef_headers
149*4f1223e8SApple OSS Distributionsendef
150*4f1223e8SApple OSS Distributions
151*4f1223e8SApple OSS Distributions# Helper function to call a verifier
152*4f1223e8SApple OSS Distributions# Generally, a verifier is a function that post-processes a .o file to validate
153*4f1223e8SApple OSS Distributions# some characteristics.
154*4f1223e8SApple OSS Distributions#
155*4f1223e8SApple OSS Distributions# This ensures that the output .o file is renamed if the verifier rejects the
156*4f1223e8SApple OSS Distributions# input or fails. This forces the .o file to be re-generated & re-verified if
157*4f1223e8SApple OSS Distributions# another build is run.
158*4f1223e8SApple OSS Distributions#
159*4f1223e8SApple OSS Distributions# Note: currently, it is possible to end up in an inconsistent state by
160*4f1223e8SApple OSS Distributions# Ctrl+C-ing in the middle of a verifier run, causing a .o file that would
161*4f1223e8SApple OSS Distributions# have failed verification to still exist as a .o instead o a .o.unverified.
162*4f1223e8SApple OSS Distributions# The next build should be a "clean" build to prevent the .o file avoiding
163*4f1223e8SApple OSS Distributions# verification.
164*4f1223e8SApple OSS Distributions#
165*4f1223e8SApple OSS Distributions# Any stderr output from the verifier is printed with an "error:" prefix.
166*4f1223e8SApple OSS Distributions#
167*4f1223e8SApple OSS Distributions# $(1) is the name of the verifier to call
168*4f1223e8SApple OSS Distributions# $(2) is the name of the .o file to pass to the verifier
169*4f1223e8SApple OSS Distributionsdefine VERIFY
170*4f1223e8SApple OSS Distributions{ ERROR_OUTPUT="$$({ $(call $(1),$(2)) } 2>&1 1>&3)"; } 3>&1; \
171*4f1223e8SApple OSS DistributionsRETURN=$$?; \
172*4f1223e8SApple OSS Distributions$(ERR) "$$($(SED) -e 's/^/error: /' <<< "$$ERROR_OUTPUT")"; \
173*4f1223e8SApple OSS Distributionsif [ $$RETURN -ne 0 ]; then \
174*4f1223e8SApple OSS Distributions	UNVERIFIED_FILE=$(@:o=o.unverified) ; \
175*4f1223e8SApple OSS Distributions	$(MV) '$(2)' "$$UNVERIFIED_FILE"; \
176*4f1223e8SApple OSS Distributions	$(ERR) "error: Moved object file $(2) with verifier failures to $$PWD/$$UNVERIFIED_FILE"; \
177*4f1223e8SApple OSS Distributions	exit $$RETURN; \
178*4f1223e8SApple OSS Distributionsfi;
179*4f1223e8SApple OSS Distributionsendef
180*4f1223e8SApple OSS Distributions
181*4f1223e8SApple OSS Distributions# Verifier to ensure no UBSan runtime calls generated in a file
182*4f1223e8SApple OSS Distributions# Compile with -fsanitize=... and WITHOUT -fsanitize-trap
183*4f1223e8SApple OSS Distributions#
184*4f1223e8SApple OSS Distributions# On failure, the build will fail and any offending symbols will be printed
185*4f1223e8SApple OSS Distributions# along with a partial disassembly. A full disassembly of the object file may
186*4f1223e8SApple OSS Distributions# also be useful, e.g.:
187*4f1223e8SApple OSS Distributions# $ objdump -dSrl BUILD/obj/DEVELOPMENT_.../osfmk/DEVELOPMENT/vm_sanitize.o
188*4f1223e8SApple OSS Distributions#
189*4f1223e8SApple OSS Distributions# Note that objdump will not work on builds with LTO enabled, since the
190*4f1223e8SApple OSS Distributions# intermediate files are LLVM bitcode instead of traditional object files.
191*4f1223e8SApple OSS Distributions#
192*4f1223e8SApple OSS Distributions# $(1) is the name of the .o file to be verified
193*4f1223e8SApple OSS Distributionsdefine VERIFIER_NO_UBSAN_CHECKS
194*4f1223e8SApple OSS DistributionsMATCHES="$$($(NM) -j '$(1)' | $(GREP) '^___ubsan')"; \
195*4f1223e8SApple OSS Distributionsif [[ ! -z "$$MATCHES" ]]; then \
196*4f1223e8SApple OSS Distributions	$(ECHO) 1>&2 'UBSan verifier failure for $<:'; \
197*4f1223e8SApple OSS Distributions	DISASM="$$($(OBJDUMP) -dSrl '$(1)' | $(GREP) -E '___ubsan|^;' | $(GREP) -B2 '___ubsan')"; \
198*4f1223e8SApple OSS Distributions	if [[ -z "$$DISASM" ]]; then \
199*4f1223e8SApple OSS Distributions		$(ECHO) 1>&2 "Failed to disassemble intermediate object file. It may be a bitcode file if LTO is enabled."; \
200*4f1223e8SApple OSS Distributions	else \
201*4f1223e8SApple OSS Distributions		$(ECHO) 1>&2 "$$($(SED) -e '/^--$$/d' -e 's/^/    /' <<< "$$DISASM")"; \
202*4f1223e8SApple OSS Distributions	fi; \
203*4f1223e8SApple OSS Distributions	exit 1; \
204*4f1223e8SApple OSS Distributionsfi;
205*4f1223e8SApple OSS Distributionsendef
206*4f1223e8SApple OSS Distributions
207*4f1223e8SApple OSS Distributions#
208*4f1223e8SApple OSS Distributions# Empty the install lists of non-host and non-exclave headers if building the
209*4f1223e8SApple OSS Distributions# host headers alias and exclave headers aliases. Separately, export headers
210*4f1223e8SApple OSS Distributions# are also emptied for exclaves (but not for host headers) with
211*4f1223e8SApple OSS Distributions# EXPORTHDRS_SKIP_EXCLAVES.
212*4f1223e8SApple OSS Distributions#
213*4f1223e8SApple OSS Distributions
214*4f1223e8SApple OSS Distributionsifeq ($(INSTALLHDRS_SKIP_HOST),YES)
215*4f1223e8SApple OSS Distributions
216*4f1223e8SApple OSS DistributionsINSTALL_MI_LIST =
217*4f1223e8SApple OSS DistributionsINSTALL_MI_GEN_LIST =
218*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_LIST =
219*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_GEN_LIST =
220*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LIST =
221*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_GEN_LIST =
222*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_LIST =
223*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_GEN_LIST =
224*4f1223e8SApple OSS DistributionsINSTALL_MI_LCL_LIST =
225*4f1223e8SApple OSS DistributionsINSTALL_MI_LCL_GEN_LIST =
226*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_LCL_LIST =
227*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_LCL_GEN_LIST =
228*4f1223e8SApple OSS DistributionsINSTALL_SF_MI_LCL_LIST =
229*4f1223e8SApple OSS DistributionsINSTALL_SF_MI_LCL_GEN_LIST =
230*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_LIST =
231*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_GEN_LIST =
232*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_LCL_LIST =
233*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_LCL_GEN_LIST =
234*4f1223e8SApple OSS DistributionsINSTALL_MD_LIST =
235*4f1223e8SApple OSS DistributionsINSTALL_MD_GEN_LIST =
236*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LIST =
237*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_GEN_LIST =
238*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_LIST =
239*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_GEN_LIST =
240*4f1223e8SApple OSS DistributionsINSTALL_MD_LCL_LIST =
241*4f1223e8SApple OSS DistributionsINSTALL_MD_LCL_GEN_LIST =
242*4f1223e8SApple OSS DistributionsINSTALL_SF_MD_LCL_LIST =
243*4f1223e8SApple OSS DistributionsINSTALL_SF_MD_LCL_GEN_LIST =
244*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_LIST =
245*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_GEN_LIST =
246*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_LCL_LIST =
247*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_LCL_GEN_LIST =
248*4f1223e8SApple OSS DistributionsINSTALL_KF_LIBCXX_MI_LIST =
249*4f1223e8SApple OSS Distributions
250*4f1223e8SApple OSS Distributions# If there are no headers then there can be no module maps.
251*4f1223e8SApple OSS DistributionsINSTALLHDRS_MODULEMAPS_SKIP_HOST = YES
252*4f1223e8SApple OSS Distributions
253*4f1223e8SApple OSS Distributionsendif
254*4f1223e8SApple OSS Distributions
255*4f1223e8SApple OSS Distributionsifeq ($(INSTALLHDRS_MODULEMAPS_SKIP_HOST),YES)
256*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MI_LIST =
257*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MI_LCL_LIST =
258*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MD_LIST =
259*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MD_LCL_LIST =
260*4f1223e8SApple OSS Distributionsendif
261*4f1223e8SApple OSS Distributions
262*4f1223e8SApple OSS Distributions#
263*4f1223e8SApple OSS Distributions# Machine-independent (public) files
264*4f1223e8SApple OSS Distributions#
265*4f1223e8SApple OSS Distributions
266*4f1223e8SApple OSS DistributionsINSTALL_MI_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LIST))
267*4f1223e8SApple OSS DistributionsINSTALL_MI_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_GEN_LIST))
268*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MI_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MODULEMAP_MI_DIR)/,$(INSTALL_MODULEMAP_MI_LIST))
269*4f1223e8SApple OSS Distributions
270*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_INC_FILES),,incmidir,$(SINCFRAME_UNIFDEF)))
271*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_INC_GEN_FILES),1,incmigendir,$(SINCFRAME_UNIFDEF)))
272*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MI_INC_FILES),,mmincmidir,-t $(DATA_UNIFDEF)))
273*4f1223e8SApple OSS Distributions
274*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_FILES = $(addprefix $(DSTROOT)/$(IINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_IF_MI_LIST))
275*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(IINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_IF_MI_GEN_LIST))
276*4f1223e8SApple OSS Distributions
277*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_IF_MI_FILES),,iincmidir,$(SINCFRAME_UNIFDEF)))
278*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_IF_MI_GEN_FILES),1,iincmigendir,$(SINCFRAME_UNIFDEF)))
279*4f1223e8SApple OSS Distributions
280*4f1223e8SApple OSS Distributionsifeq ($(DRIVERKIT),1)
281*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_INC_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_LIST))
282*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_GEN_LIST))
283*4f1223e8SApple OSS Distributions
284*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_INC_FILES),,dkincmidir,$(DKINCFRAME_UNIFDEF)))
285*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_INC_GEN_FILES),1,dkincmigendir,$(DKINCFRAME_UNIFDEF)))
286*4f1223e8SApple OSS Distributionsendif
287*4f1223e8SApple OSS Distributions
288*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVEKIT),1)
289*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MI_INC_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVEKIT_MI_LIST))
290*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MI_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVEKIT_MI_GEN_LIST))
291*4f1223e8SApple OSS Distributions
292*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MI_INC_FILES),,ekincmidir,$(EKINCFRAME_UNIFDEF)))
293*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MI_INC_GEN_FILES),1,ekincmigendir,$(EKINCFRAME_UNIFDEF)))
294*4f1223e8SApple OSS Distributionsendif
295*4f1223e8SApple OSS Distributions
296*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVECORE),1)
297*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MI_INC_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECOREINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVECORE_MI_LIST))
298*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MI_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECOREINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVECORE_MI_GEN_LIST))
299*4f1223e8SApple OSS Distributions
300*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MI_INC_FILES),,ecincmidir,$(ECINCFRAME_UNIFDEF)))
301*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MI_INC_GEN_FILES),1,ecincmigendir,$(ECINCFRAME_UNIFDEF)))
302*4f1223e8SApple OSS Distributionsendif
303*4f1223e8SApple OSS Distributions
304*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LIST))
305*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_GEN_LIST))
306*4f1223e8SApple OSS Distributions
307*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_FILES),,kincmidir,$(KINCFRAME_UNIFDEF)))
308*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_GEN_FILES),1,kincmigendir,$(KINCFRAME_UNIFDEF)))
309*4f1223e8SApple OSS Distributions
310*4f1223e8SApple OSS DistributionsINSTALL_LIBCXX_MI_FILES = $(addprefix $(DSTROOT)/$(KLIBCXXINCDIR)/, $(INSTALL_KF_LIBCXX_MI_LIST))
311*4f1223e8SApple OSS Distributions
312*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_LIBCXX_MI_FILES),,cxxmidir,$(LIBCXXINCFRAME_UNIFDEF)))
313*4f1223e8SApple OSS Distributions
314*4f1223e8SApple OSS Distributions#
315*4f1223e8SApple OSS Distributions# Machine-independent local (private) files
316*4f1223e8SApple OSS Distributions#
317*4f1223e8SApple OSS Distributions
318*4f1223e8SApple OSS DistributionsINSTALL_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_LIST))
319*4f1223e8SApple OSS DistributionsINSTALL_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_GEN_LIST))
320*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MODULEMAP_MI_DIR)/,$(INSTALL_MODULEMAP_MI_LCL_LIST))
321*4f1223e8SApple OSS Distributions
322*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_LCL_FILES),,pincmidir,$(SPINCFRAME_UNIFDEF)))
323*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_LCL_GEN_FILES),1,pincmigendir,$(SPINCFRAME_UNIFDEF)))
324*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MI_LCL_FILES),,mmpincmidir,-t $(PDATA_UNIFDEF)))
325*4f1223e8SApple OSS Distributions
326*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(IPINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_IF_MI_LCL_LIST))
327*4f1223e8SApple OSS DistributionsINSTALL_IF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(IPINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_IF_MI_LCL_GEN_LIST))
328*4f1223e8SApple OSS Distributions
329*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_IF_MI_LCL_FILES),,ipincmidir,$(SPINCFRAME_UNIFDEF)))
330*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_IF_MI_LCL_GEN_FILES),1,ipincmigendir,$(SPINCFRAME_UNIFDEF)))
331*4f1223e8SApple OSS Distributions
332*4f1223e8SApple OSS DistributionsINSTALL_SF_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MI_DIR)/, $(sort $(INSTALL_SF_MI_LCL_LIST)))
333*4f1223e8SApple OSS DistributionsINSTALL_SF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MI_DIR)/, $(sort $(INSTALL_SF_MI_LCL_GEN_LIST)))
334*4f1223e8SApple OSS Distributions
335*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MI_LCL_FILES),,spincmidir,$(SPINCFRAME_UNIFDEF)))
336*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MI_LCL_GEN_FILES),1,spincmigendir,$(SPINCFRAME_UNIFDEF)))
337*4f1223e8SApple OSS Distributions
338*4f1223e8SApple OSS Distributionsifeq ($(DRIVERKIT),1)
339*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_LCL_LIST))
340*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_LCL_GEN_LIST))
341*4f1223e8SApple OSS Distributions
342*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_LCL_FILES),,dkpincmidir,$(DKPINCFRAME_UNIFDEF)))
343*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_LCL_GEN_FILES),1,dkpincmigendir,$(DKPINCFRAME_UNIFDEF)))
344*4f1223e8SApple OSS Distributionsendif
345*4f1223e8SApple OSS Distributions
346*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVEKIT),1)
347*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITLCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVEKIT_MI_LCL_LIST))
348*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITLCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVEKIT_MI_LCL_GEN_LIST))
349*4f1223e8SApple OSS Distributions
350*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MI_LCL_FILES),,ekpincmidir,$(EKPINCFRAME_UNIFDEF)))
351*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MI_LCL_GEN_FILES),1,ekpincmigendir,$(EKPINCFRAME_UNIFDEF)))
352*4f1223e8SApple OSS Distributionsendif
353*4f1223e8SApple OSS Distributions
354*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVECORE),1)
355*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECORELCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVECORE_MI_LCL_LIST))
356*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECORELCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_EXCLAVECORE_MI_LCL_GEN_LIST))
357*4f1223e8SApple OSS Distributions
358*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MI_LCL_FILES),,ecpincmidir,$(ECPINCFRAME_UNIFDEF)))
359*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MI_LCL_GEN_FILES),1,ecpincmigendir,$(ECPINCFRAME_UNIFDEF)))
360*4f1223e8SApple OSS Distributionsendif
361*4f1223e8SApple OSS Distributions
362*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LCL_LIST))
363*4f1223e8SApple OSS DistributionsINSTALL_KF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LCL_GEN_LIST))
364*4f1223e8SApple OSS Distributions
365*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_LCL_FILES),,kpincmidir,$(KPINCFRAME_UNIFDEF)))
366*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_LCL_GEN_FILES),1,kpincmigendir,$(KPINCFRAME_UNIFDEF)))
367*4f1223e8SApple OSS Distributions
368*4f1223e8SApple OSS Distributions#
369*4f1223e8SApple OSS Distributions# Machine-dependent (public) files
370*4f1223e8SApple OSS Distributions#
371*4f1223e8SApple OSS Distributions
372*4f1223e8SApple OSS DistributionsINSTALL_MD_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LIST))
373*4f1223e8SApple OSS DistributionsINSTALL_MD_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_GEN_LIST))
374*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MD_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MODULEMAP_MD_DIR)/,$(INSTALL_MODULEMAP_MD_LIST))
375*4f1223e8SApple OSS Distributions
376*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_INC_FILES),,incdir,$(SINCFRAME_UNIFDEF)))
377*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_INC_GEN_FILES),1,incgendir,$(SINCFRAME_UNIFDEF)))
378*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MD_INC_FILES),,mmincdir,-t $(DATA_UNIFDEF)))
379*4f1223e8SApple OSS Distributions
380*4f1223e8SApple OSS Distributionsifeq ($(DRIVERKIT),1)
381*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_INC_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_LIST))
382*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_GEN_LIST))
383*4f1223e8SApple OSS Distributions
384*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_INC_FILES),,dkincdir,$(DKINCFRAME_UNIFDEF)))
385*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_INC_GEN_FILES),1,dkincgendir,$(DKINCFRAME_UNIFDEF)))
386*4f1223e8SApple OSS Distributionsendif
387*4f1223e8SApple OSS Distributions
388*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVEKIT),1)
389*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MD_INC_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVEKIT_MD_LIST))
390*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MD_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVEKIT_MD_GEN_LIST))
391*4f1223e8SApple OSS Distributions
392*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MD_INC_FILES),,ekincdir,$(EKINCFRAME_UNIFDEF)))
393*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MD_INC_GEN_FILES),1,ekincgendir,$(EKINCFRAME_UNIFDEF)))
394*4f1223e8SApple OSS Distributionsendif
395*4f1223e8SApple OSS Distributions
396*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVECORE),1)
397*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MD_INC_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECOREINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVECORE_MD_LIST))
398*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MD_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECOREINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVECORE_MD_GEN_LIST))
399*4f1223e8SApple OSS Distributions
400*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MD_INC_FILES),,ecincdir,$(ECINCFRAME_UNIFDEF)))
401*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MD_INC_GEN_FILES),1,ecincgendir,$(ECINCFRAME_UNIFDEF)))
402*4f1223e8SApple OSS Distributionsendif
403*4f1223e8SApple OSS Distributions
404*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LIST))
405*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_GEN_LIST))
406*4f1223e8SApple OSS Distributions
407*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_FILES),,kincdir,$(KINCFRAME_UNIFDEF)))
408*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_GEN_FILES),1,kincgendir,$(KINCFRAME_UNIFDEF)))
409*4f1223e8SApple OSS Distributions
410*4f1223e8SApple OSS Distributions#
411*4f1223e8SApple OSS Distributions# Machine-dependent local (private) files
412*4f1223e8SApple OSS Distributions#
413*4f1223e8SApple OSS Distributions
414*4f1223e8SApple OSS DistributionsINSTALL_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_MD_LCL_LIST)))
415*4f1223e8SApple OSS DistributionsINSTALL_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_MD_LCL_GEN_LIST)))
416*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MODULEMAP_MD_DIR)/,$(INSTALL_MODULEMAP_MD_LCL_LIST))
417*4f1223e8SApple OSS Distributions
418*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_LCL_FILES),,pincdir,$(SPINCFRAME_UNIFDEF)))
419*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_LCL_GEN_FILES),1,pincgendir,$(SPINCFRAME_UNIFDEF)))
420*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MD_LCL_FILES),,mmpincdir,-t $(PDATA_UNIFDEF)))
421*4f1223e8SApple OSS Distributions
422*4f1223e8SApple OSS DistributionsINSTALL_SF_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_SF_MD_LCL_LIST)))
423*4f1223e8SApple OSS DistributionsINSTALL_SF_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_SF_MD_LCL_GEN_LIST)))
424*4f1223e8SApple OSS Distributions
425*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MD_LCL_FILES),,spincdir,$(SPINCFRAME_UNIFDEF)))
426*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MD_LCL_GEN_FILES),1,spincgendir,$(SPINCFRAME_UNIFDEF)))
427*4f1223e8SApple OSS Distributions
428*4f1223e8SApple OSS Distributionsifeq ($(DRIVERKIT),1)
429*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_LCL_LIST))
430*4f1223e8SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_LCL_GEN_LIST))
431*4f1223e8SApple OSS Distributions
432*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_LCL_FILES),,dkpincdir,$(DKPINCFRAME_UNIFDEF)))
433*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_LCL_GEN_FILES),1,dkpincgendir,$(DKPINCFRAME_UNIFDEF)))
434*4f1223e8SApple OSS Distributionsendif
435*4f1223e8SApple OSS Distributions
436*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVEKIT),1)
437*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITLCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVEKIT_MD_LCL_LIST))
438*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVEKIT_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVEKITLCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVEKIT_MD_LCL_GEN_LIST))
439*4f1223e8SApple OSS Distributions
440*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MD_LCL_FILES),,ekpincdir,$(EKPINCFRAME_UNIFDEF)))
441*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVEKIT_MD_LCL_GEN_FILES),1,ekpincgendir,$(EKPINCFRAME_UNIFDEF)))
442*4f1223e8SApple OSS Distributionsendif
443*4f1223e8SApple OSS Distributions
444*4f1223e8SApple OSS Distributionsifeq ($(EXCLAVECORE),1)
445*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECORELCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVECORE_MD_LCL_LIST))
446*4f1223e8SApple OSS DistributionsINSTALL_EXCLAVECORE_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(EXCLAVECORELCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_EXCLAVECORE_MD_LCL_GEN_LIST))
447*4f1223e8SApple OSS Distributions
448*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MD_LCL_FILES),,ecpincdir,$(ECPINCFRAME_UNIFDEF)))
449*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_EXCLAVECORE_MD_LCL_GEN_FILES),1,ecpincgendir,$(ECPINCFRAME_UNIFDEF)))
450*4f1223e8SApple OSS Distributionsendif
451*4f1223e8SApple OSS Distributions
452*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LCL_LIST))
453*4f1223e8SApple OSS DistributionsINSTALL_KF_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LCL_GEN_LIST))
454*4f1223e8SApple OSS Distributions
455*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_LCL_FILES),,kpincdir,$(KPINCFRAME_UNIFDEF)))
456*4f1223e8SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_LCL_GEN_FILES),1,kpincgendir,$(KPINCFRAME_UNIFDEF)))
457*4f1223e8SApple OSS Distributions
458*4f1223e8SApple OSS Distributions.PHONY: do_installhdrs_mi
459*4f1223e8SApple OSS Distributions
460*4f1223e8SApple OSS Distributions# Double-colon rule so that MakeInc.kernel can add custom behaviors
461*4f1223e8SApple OSS Distributionsdo_installhdrs_mi:: $(INSTALL_MI_INC_FILES) $(INSTALL_MI_INC_GEN_FILES) $(INSTALL_MODULEMAP_MI_INC_FILES) \
462*4f1223e8SApple OSS Distributions            $(INSTALL_IF_MI_FILES) $(INSTALL_IF_MI_GEN_FILES) \
463*4f1223e8SApple OSS Distributions		    $(INSTALL_DRIVERKIT_MI_INC_FILES) $(INSTALL_DRIVERKIT_MI_INC_GEN_FILES) \
464*4f1223e8SApple OSS Distributions		    $(INSTALL_EXCLAVEKIT_MI_INC_FILES) $(INSTALL_EXCLAVEKIT_MI_INC_GEN_FILES) \
465*4f1223e8SApple OSS Distributions			$(INSTALL_EXCLAVECORE_MI_INC_FILES) $(INSTALL_EXCLAVECORE_MI_INC_GEN_FILES) \
466*4f1223e8SApple OSS Distributions		    $(INSTALL_KF_MI_FILES) $(INSTALL_KF_MI_GEN_FILES) \
467*4f1223e8SApple OSS Distributions		    $(INSTALL_MI_LCL_FILES) $(INSTALL_MI_LCL_GEN_FILES) $(INSTALL_MODULEMAP_MI_LCL_FILES) \
468*4f1223e8SApple OSS Distributions            $(INSTALL_IF_MI_LCL_FILES) $(INSTALL_IF_MI_LCL_GEN_FILES) \
469*4f1223e8SApple OSS Distributions		    $(INSTALL_SF_MI_LCL_FILES) $(INSTALL_SF_MI_LCL_GEN_FILES) \
470*4f1223e8SApple OSS Distributions		    $(INSTALL_DRIVERKIT_MI_LCL_FILES) $(INSTALL_DRIVERKIT_MI_LCL_GEN_FILES) \
471*4f1223e8SApple OSS Distributions		    $(INSTALL_KF_MI_LCL_FILES) $(INSTALL_KF_MI_LCL_GEN_FILES) \
472*4f1223e8SApple OSS Distributions			$(INSTALL_LIBCXX_MI_FILES) \
473*4f1223e8SApple OSS Distributions			$(INSTALL_EXCLAVEKIT_MI_LCL_FILES) $(INSTALL_EXCLAVEKIT_MI_LCL_GEN_FILES) \
474*4f1223e8SApple OSS Distributions			$(INSTALL_EXCLAVECORE_MI_LCL_FILES) $(INSTALL_EXCLAVECORE_MI_LCL_GEN_FILES)
475*4f1223e8SApple OSS Distributions	@:
476*4f1223e8SApple OSS Distributions
477*4f1223e8SApple OSS Distributions.PHONY: do_installhdrs_md
478*4f1223e8SApple OSS Distributions
479*4f1223e8SApple OSS Distributionsdo_installhdrs_md: $(INSTALL_MD_INC_FILES) $(INSTALL_MD_INC_GEN_FILES) $(INSTALL_MODULEMAP_MD_INC_FILES) \
480*4f1223e8SApple OSS Distributions		   $(INSTALL_DRIVERKIT_MD_INC_FILES) $(INSTALL_DRIVERKIT_MD_INC_GEN_FILES) \
481*4f1223e8SApple OSS Distributions		   $(INSTALL_EXCLAVEKIT_MD_INC_FILES) $(INSTALL_EXCLAVEKIT_MD_INC_GEN_FILES) \
482*4f1223e8SApple OSS Distributions		   $(INSTALL_EXCLAVECORE_MD_INC_FILES) $(INSTALL_EXCLAVECORE_MD_INC_GEN_FILES) \
483*4f1223e8SApple OSS Distributions		   $(INSTALL_KF_MD_FILES) $(INSTALL_KF_MD_GEN_FILES) \
484*4f1223e8SApple OSS Distributions		   $(INSTALL_MD_LCL_FILES) $(INSTALL_MD_LCL_GEN_FILES) $(INSTALL_MODULEMAP_MD_LCL_FILES) \
485*4f1223e8SApple OSS Distributions		   $(INSTALL_SF_MD_LCL_FILES) $(INSTALL_SF_MD_LCL_GEN_FILES) \
486*4f1223e8SApple OSS Distributions		   $(INSTALL_DRIVERKIT_MD_LCL_FILES) $(INSTALL_DRIVERKIT_MD_LCL_GEN_FILES) \
487*4f1223e8SApple OSS Distributions		   $(INSTALL_EXCLAVEKIT_MD_LCL_FILES) $(INSTALL_EXCLAVEKIT_MD_LCL_GEN_FILES) \
488*4f1223e8SApple OSS Distributions		   $(INSTALL_EXCLAVECORE_MD_LCL_FILES) $(INSTALL_EXCLAVECORE_MD_LCL_GEN_FILES) \
489*4f1223e8SApple OSS Distributions		   $(INSTALL_KF_MD_LCL_FILES) $(INSTALL_KF_MD_LCL_GEN_FILES)
490*4f1223e8SApple OSS Distributions	@:
491*4f1223e8SApple OSS Distributions
492*4f1223e8SApple OSS Distributions#
493*4f1223e8SApple OSS Distributions# Generic Export rules
494*4f1223e8SApple OSS Distributions#
495*4f1223e8SApple OSS DistributionsEXPORT_MI_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_LIST))
496*4f1223e8SApple OSS DistributionsEXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST))
497*4f1223e8SApple OSS Distributions
498*4f1223e8SApple OSS Distributions.PHONY: EXP_MI_INC_DIR
499*4f1223e8SApple OSS Distributions
500*4f1223e8SApple OSS DistributionsEXP_MI_INC_DIR:
501*4f1223e8SApple OSS Distributions	$(_v)$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)
502*4f1223e8SApple OSS Distributions
503*4f1223e8SApple OSS Distributions$(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : % | EXP_MI_INC_DIR
504*4f1223e8SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
505*4f1223e8SApple OSS Distributions
506*4f1223e8SApple OSS Distributions$(EXPORT_MI_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : $(SOURCE)/% | EXP_MI_INC_DIR
507*4f1223e8SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
508*4f1223e8SApple OSS Distributions
509*4f1223e8SApple OSS DistributionsEXPORT_MD_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_LIST))
510*4f1223e8SApple OSS DistributionsEXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST))
511*4f1223e8SApple OSS Distributions
512*4f1223e8SApple OSS Distributions.PHONY: EXP_MD_INC_DIR
513*4f1223e8SApple OSS Distributions
514*4f1223e8SApple OSS DistributionsEXP_MD_INC_DIR:
515*4f1223e8SApple OSS Distributions	$(_v)$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)
516*4f1223e8SApple OSS Distributions
517*4f1223e8SApple OSS Distributions$(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : % | EXP_MD_INC_DIR
518*4f1223e8SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
519*4f1223e8SApple OSS Distributions
520*4f1223e8SApple OSS Distributions$(EXPORT_MD_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : $(SOURCE)/% | EXP_MD_INC_DIR
521*4f1223e8SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
522*4f1223e8SApple OSS Distributions
523*4f1223e8SApple OSS Distributions.PHONY: do_exporthdrs_mi
524*4f1223e8SApple OSS Distributions
525*4f1223e8SApple OSS Distributionsdo_exporthdrs_mi: $(EXPORT_MI_GEN_INC_FILES) $(EXPORT_MI_INC_FILES)
526*4f1223e8SApple OSS Distributions	@:
527*4f1223e8SApple OSS Distributions
528*4f1223e8SApple OSS Distributions.PHONY: do_exporthdrs_md
529*4f1223e8SApple OSS Distributions
530*4f1223e8SApple OSS Distributionsdo_exporthdrs_md: $(EXPORT_MD_GEN_INC_FILES)  $(EXPORT_MD_INC_FILES)
531*4f1223e8SApple OSS Distributions	@:
532*4f1223e8SApple OSS Distributions
533*4f1223e8SApple OSS Distributions#
534*4f1223e8SApple OSS Distributions# Generic Compilation rules
535*4f1223e8SApple OSS Distributions#
536*4f1223e8SApple OSS Distributions
537*4f1223e8SApple OSS Distributions#
538*4f1223e8SApple OSS Distributions# Compilation rules to generate .o from .s
539*4f1223e8SApple OSS Distributions#
540*4f1223e8SApple OSS Distributions
541*4f1223e8SApple OSS DistributionsS_RULE_0=@$(LOG_AS) "$@"
542*4f1223e8SApple OSS DistributionsS_RULE_1A=$(_v)$(S_KCC) -c $(SFLAGS) -MD -MF $(@:o=d) -MJ $(@:o=o.json) -MP $($@_SFLAGS_ADD) $(INCFLAGS) $($@_INCFLAGS)
543*4f1223e8SApple OSS DistributionsS_RULE_1B=$(<F)
544*4f1223e8SApple OSS DistributionsS_RULE_2=
545*4f1223e8SApple OSS Distributions
546*4f1223e8SApple OSS Distributions#
547*4f1223e8SApple OSS Distributions# Compilation rules to generate .o from .c for normal files
548*4f1223e8SApple OSS Distributions#
549*4f1223e8SApple OSS DistributionsC_RULE_0=@$(LOG_CC) "$@"
550*4f1223e8SApple OSS DistributionsC_RULE_1A=$(_v)$(KCC) -c $(filter-out $($@_CFLAGS_RM), $(CFLAGS) $(CWARNFLAGS)) -MD -MF $(@:o=d) -MJ $(@:o=o.json) -MP $($@_CFLAGS_ADD) $($@_CWARNFLAGS_ADD) $(INCFLAGS) $($@_INCFLAGS)
551*4f1223e8SApple OSS DistributionsC_RULE_1B=$(<F)
552*4f1223e8SApple OSS DistributionsC_RULE_2=
553*4f1223e8SApple OSS Distributions
554*4f1223e8SApple OSS DistributionsC_RULE_3=@$(if $($@_VERIFIER), $(LOG_VERIFIER) "$@")
555*4f1223e8SApple OSS DistributionsC_RULE_4=@$(if $($@_VERIFIER), $(call VERIFY,$($@_VERIFIER),$@))
556*4f1223e8SApple OSS Distributions
557*4f1223e8SApple OSS Distributions#
558*4f1223e8SApple OSS Distributions# Compilation rules to generate .o from .c for driver files
559*4f1223e8SApple OSS Distributions#
560*4f1223e8SApple OSS DistributionsC_RULE_0_D=$(C_RULE_0)
561*4f1223e8SApple OSS DistributionsC_RULE_1A_D=$(C_RULE_1A)
562*4f1223e8SApple OSS DistributionsC_RULE_1B_D=$(C_RULE_1B)
563*4f1223e8SApple OSS DistributionsC_RULE_2_D=$(C_RULE_2)
564*4f1223e8SApple OSS DistributionsC_RULE_3_D=$(C_RULE_3)
565*4f1223e8SApple OSS DistributionsC_RULE_4_D=$(C_RULE_4)
566*4f1223e8SApple OSS Distributions
567*4f1223e8SApple OSS Distributions#
568*4f1223e8SApple OSS Distributions# Compilation rules to generate .co from .cp or .cpo from .cpp
569*4f1223e8SApple OSS Distributions#   The config tool slickly changes the last source filename char to 'o'
570*4f1223e8SApple OSS Distributions#   for the object filename.
571*4f1223e8SApple OSS DistributionsP_RULE_0=@$(LOG_CXX) "$@"
572*4f1223e8SApple OSS DistributionsP_RULE_1A=$(_v)$(KC++) -o $@ -c $(CXXFLAGS) $(filter-out $($@_CFLAGS_RM), $(CFLAGS) $(CXXWARNFLAGS)) -MD -MF $(@:o=d) -MJ $(@:o=o.json) -MP $($@_CFLAGS_ADD) $($@_CXXWARNFLAGS_ADD) $(INCFLAGS) $($@_INCFLAGS)
573*4f1223e8SApple OSS DistributionsP_RULE_1B=$(<F)
574*4f1223e8SApple OSS DistributionsP_RULE_2=
575*4f1223e8SApple OSS Distributions
576*4f1223e8SApple OSS DistributionsP_RULE_3=@$(if $($@_VERIFIER), $(LOG_VERIFIER) "$@")
577*4f1223e8SApple OSS DistributionsP_RULE_4=@$(if $($@_VERIFIER), $(call VERIFY,$($@_VERIFIER),$@))
578*4f1223e8SApple OSS Distributions
579*4f1223e8SApple OSS Distributions#
580*4f1223e8SApple OSS Distributions# Explain how to make the bsd syscall list
581*4f1223e8SApple OSS Distributions#
582*4f1223e8SApple OSS Distributions$(TARGET)/bsd.syscalls.master: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS)
583*4f1223e8SApple OSS Distributions	@$(LOG_GENERATE) "$(@F)$(Color0) from $(ColorF)$<$(Color0)"
584*4f1223e8SApple OSS Distributions	$(_v)$(UNIFDEF) $(SEED_DEFINES) $< > $@;	\
585*4f1223e8SApple OSS Distributions	if [ $$? -eq 2 ]; then				\
586*4f1223e8SApple OSS Distributions		$(ERR) Parse failure for $<;		\
587*4f1223e8SApple OSS Distributions		exit 1;					\
588*4f1223e8SApple OSS Distributions	fi
589*4f1223e8SApple OSS Distributions
590*4f1223e8SApple OSS Distributions.PHONY: do_build_all
591*4f1223e8SApple OSS Distributions
592*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
593*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
594*4f1223e8SApple OSS Distributionsdo_build_all::
595*4f1223e8SApple OSS Distributions	@:
596*4f1223e8SApple OSS Distributions
597*4f1223e8SApple OSS Distributions.PHONY: do_build_install_primary
598*4f1223e8SApple OSS Distributions
599*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
600*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
601*4f1223e8SApple OSS Distributionsdo_build_install_primary::
602*4f1223e8SApple OSS Distributions	@:
603*4f1223e8SApple OSS Distributions
604*4f1223e8SApple OSS Distributions.PHONY: do_build_install_non_primary
605*4f1223e8SApple OSS Distributions
606*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
607*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
608*4f1223e8SApple OSS Distributionsdo_build_install_non_primary::
609*4f1223e8SApple OSS Distributions	@:
610*4f1223e8SApple OSS Distributions
611*4f1223e8SApple OSS DistributionsINSTALL_MAN_FILES = $(addprefix $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/, $(INSTALL_MAN_LIST))
612*4f1223e8SApple OSS Distributions
613*4f1223e8SApple OSS Distributions.PHONY: INSTALL_MAN_DIR
614*4f1223e8SApple OSS Distributions
615*4f1223e8SApple OSS DistributionsINSTALL_MAN_DIR:
616*4f1223e8SApple OSS Distributions	$(_v)$(MKDIR) $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)
617*4f1223e8SApple OSS Distributions
618*4f1223e8SApple OSS Distributions$(INSTALL_MAN_FILES): $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/% : % | INSTALL_MAN_DIR
619*4f1223e8SApple OSS Distributions	@$(LOG_MAN) "$*"
620*4f1223e8SApple OSS Distributions	$(_v)$(INSTALL) $(INSTALL_FLAGS) $< $@
621*4f1223e8SApple OSS Distributions
622*4f1223e8SApple OSS Distributionsdefine MAN_LINKS_RULE_template
623*4f1223e8SApple OSS Distributions$$(DSTROOT)/$$(MANDIR)/$$(INSTALL_MAN_DIR)/$(2): $$(DSTROOT)/$$(MANDIR)/$$(INSTALL_MAN_DIR)/$(1)
624*4f1223e8SApple OSS Distributions	@$$(LOG_MANLINK) "$(2)"
625*4f1223e8SApple OSS Distributions	$(_v)ln -f $$< $$@
626*4f1223e8SApple OSS Distributionsendef
627*4f1223e8SApple OSS Distributions
628*4f1223e8SApple OSS Distributionsfunction_generate_man_links_rules = $(if $(word 1,$(1)),$(eval $(call MAN_LINKS_RULE_template,$(word 1,$(1)),$(word 2,$(1)))) $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/$(word 2,$(1)) $(call function_generate_man_links_rules,$(wordlist 3,$(words $(1)),$(1))))
629*4f1223e8SApple OSS Distributions
630*4f1223e8SApple OSS DistributionsINSTALL_MAN_FILES_LINKS = $(call function_generate_man_links_rules,$(INSTALL_MAN_LINKS))
631*4f1223e8SApple OSS Distributions
632*4f1223e8SApple OSS Distributions.PHONY: do_installman
633*4f1223e8SApple OSS Distributions
634*4f1223e8SApple OSS Distributionsdo_installman: $(INSTALL_MAN_FILES) $(INSTALL_MAN_FILES_LINKS)
635*4f1223e8SApple OSS Distributions	@:
636*4f1223e8SApple OSS Distributions
637*4f1223e8SApple OSS Distributions.PHONY: do_textfiles_install do_textfiles_install_mi do_textfiles_install_md
638*4f1223e8SApple OSS Distributions
639*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
640*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
641*4f1223e8SApple OSS Distributionsdo_textfiles_install_mi:: do_installman
642*4f1223e8SApple OSS Distributions	@:
643*4f1223e8SApple OSS Distributions
644*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
645*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
646*4f1223e8SApple OSS Distributionsdo_textfiles_install_md::
647*4f1223e8SApple OSS Distributions	@:
648*4f1223e8SApple OSS Distributions
649*4f1223e8SApple OSS Distributions.PHONY: do_build_setup
650*4f1223e8SApple OSS Distributions
651*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
652*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
653*4f1223e8SApple OSS Distributionsdo_build_setup::
654*4f1223e8SApple OSS Distributions	@:
655*4f1223e8SApple OSS Distributions
656*4f1223e8SApple OSS Distributions.PHONY: do_config_all
657*4f1223e8SApple OSS Distributions
658*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
659*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
660*4f1223e8SApple OSS Distributionsdo_config_all::
661*4f1223e8SApple OSS Distributions	@:
662*4f1223e8SApple OSS Distributions
663*4f1223e8SApple OSS Distributions.PHONY: do_config_install_primary
664*4f1223e8SApple OSS Distributions
665*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
666*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
667*4f1223e8SApple OSS Distributionsdo_config_install_primary::
668*4f1223e8SApple OSS Distributions	@:
669*4f1223e8SApple OSS Distributions
670*4f1223e8SApple OSS Distributions.PHONY: do_config_install_variant
671*4f1223e8SApple OSS Distributions
672*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
673*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
674*4f1223e8SApple OSS Distributionsdo_config_install_variant::
675*4f1223e8SApple OSS Distributions	@:
676*4f1223e8SApple OSS Distributions
677*4f1223e8SApple OSS Distributions.PHONY: do_config_install
678*4f1223e8SApple OSS Distributions
679*4f1223e8SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
680*4f1223e8SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
681*4f1223e8SApple OSS Distributionsdo_config_install::
682*4f1223e8SApple OSS Distributions	@:
683*4f1223e8SApple OSS Distributions
684*4f1223e8SApple OSS Distributions# vim: set ft=make:
685