xref: /xnu-8019.80.24/makedefs/MakeInc.rule (revision a325d9c4a84054e40bbe985afedcb50ab80993ea)
1*a325d9c4SApple OSS Distributions# -*- mode: makefile;-*-
2*a325d9c4SApple OSS Distributions#
3*a325d9c4SApple OSS Distributions# Copyright (C) 1999-2020 Apple Inc. All rights reserved.
4*a325d9c4SApple OSS Distributions#
5*a325d9c4SApple OSS Distributions# MakeInc.rule defines the targets and rules for
6*a325d9c4SApple OSS Distributions# leaf directories once MakeInc.dir has recursed
7*a325d9c4SApple OSS Distributions# into them. "do_XXX" may be double-colon rules
8*a325d9c4SApple OSS Distributions# to allow the Makefile in the source directory
9*a325d9c4SApple OSS Distributions# to augment the actions that will be performed.
10*a325d9c4SApple OSS Distributions#
11*a325d9c4SApple OSS Distributionsinclude $(SRCROOT)/makedefs/MakeInc.color
12*a325d9c4SApple OSS Distributions
13*a325d9c4SApple OSS Distributions#
14*a325d9c4SApple OSS Distributions# Generic Install rules
15*a325d9c4SApple OSS Distributions#
16*a325d9c4SApple OSS Distributions
17*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MI_LCL_LIST
18*a325d9c4SApple OSS Distributions    INSTALL_KF_MI_LCL_LIST = $(EXPORT_MI_LIST)
19*a325d9c4SApple OSS Distributionsendif
20*a325d9c4SApple OSS Distributions
21*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MI_LCL_GEN_LIST
22*a325d9c4SApple OSS Distributions    INSTALL_KF_MI_LCL_GEN_LIST = $(EXPORT_MI_GEN_LIST)
23*a325d9c4SApple OSS Distributionsendif
24*a325d9c4SApple OSS Distributions
25*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MD_LCL_LIST
26*a325d9c4SApple OSS Distributions    INSTALL_KF_MD_LCL_LIST = $(EXPORT_MD_LIST)
27*a325d9c4SApple OSS Distributionsendif
28*a325d9c4SApple OSS Distributions
29*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MD_LCL_GEN_LIST
30*a325d9c4SApple OSS Distributions    INSTALL_KF_MD_LCL_GEN_LIST = $(EXPORT_MD_GEN_LIST)
31*a325d9c4SApple OSS Distributionsendif
32*a325d9c4SApple OSS Distributions
33*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MI_LIST
34*a325d9c4SApple OSS Distributions    INSTALL_KF_MI_LIST = $(EXPORT_MI_LIST)
35*a325d9c4SApple OSS Distributionsendif
36*a325d9c4SApple OSS Distributions
37*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MI_GEN_LIST
38*a325d9c4SApple OSS Distributions    INSTALL_KF_MI_GEN_LIST = $(EXPORT_MI_GEN_LIST)
39*a325d9c4SApple OSS Distributionsendif
40*a325d9c4SApple OSS Distributions
41*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MD_LIST
42*a325d9c4SApple OSS Distributions    INSTALL_KF_MD_LIST = $(EXPORT_MD_LIST)
43*a325d9c4SApple OSS Distributionsendif
44*a325d9c4SApple OSS Distributions
45*a325d9c4SApple OSS Distributionsifndef INSTALL_KF_MD_GEN_LIST
46*a325d9c4SApple OSS Distributions    INSTALL_KF_MD_GEN_LIST = $(EXPORT_MD_GEN_LIST)
47*a325d9c4SApple OSS Distributionsendif
48*a325d9c4SApple OSS Distributions
49*a325d9c4SApple OSS Distributions$(eval $(call _setup_build_log_colors))
50*a325d9c4SApple OSS Distributions
51*a325d9c4SApple OSS Distributions.PHONY: ALWAYS
52*a325d9c4SApple OSS Distributions
53*a325d9c4SApple OSS DistributionsALWAYS:
54*a325d9c4SApple OSS Distributions
55*a325d9c4SApple OSS Distributions# $(1) is the list of install paths
56*a325d9c4SApple OSS Distributions# $(2) is "1" if it's a "GEN"-style rule that looks locally, or else $(SOURCE)
57*a325d9c4SApple OSS Distributions# $(3) is the local temp directory for processing
58*a325d9c4SApple OSS Distributions# $(4) is the unifdef flags
59*a325d9c4SApple OSS Distributions#
60*a325d9c4SApple OSS Distributions# $$$$$$$$ is a double-escaped "$$" to represent the current pid
61*a325d9c4SApple OSS Distributions# of the shell process for creating uniquely named temporary files
62*a325d9c4SApple OSS Distributions
63*a325d9c4SApple OSS Distributionsdefine INSTALLHDRS_RULE_template
64*a325d9c4SApple OSS Distributions
65*a325d9c4SApple OSS Distributions.PHONY: $(3)_MKDIR
66*a325d9c4SApple OSS Distributions
67*a325d9c4SApple OSS Distributions$(3)_MKDIR:
68*a325d9c4SApple OSS Distributions	$$(_v)$$(MKDIR) ./$(3)
69*a325d9c4SApple OSS Distributions	$$(_v)$$(MKDIR) $(dir $(firstword $(1)))
70*a325d9c4SApple OSS Distributions
71*a325d9c4SApple OSS Distributions# Rebuild if unifdef flags change
72*a325d9c4SApple OSS Distributions$(1): $(3)/.UNIFDEF_FLAGS
73*a325d9c4SApple OSS Distributions$(3)/.UNIFDEF_FLAGS: ALWAYS | $(3)_MKDIR
74*a325d9c4SApple OSS Distributions	$$(_v)$$(REPLACECONTENTS) $$@ $$(UNIFDEF) $(4)
75*a325d9c4SApple OSS Distributions
76*a325d9c4SApple OSS Distributions# rebuild if strippers change
77*a325d9c4SApple OSS Distributions$(1): $(STRIP_BOUND_ATTRIBUTES)
78*a325d9c4SApple OSS Distributions$(1): $(BOUND_ATTRIBUTES_CHECK)
79*a325d9c4SApple OSS Distributions
80*a325d9c4SApple OSS Distributions$(1): $(dir $(firstword $(1)))% : $(if $(2),%,$$(SOURCE)/%) | $(3)_MKDIR
81*a325d9c4SApple OSS Distributions	@$$(LOG_INSTALLHDR) "$$*"
82*a325d9c4SApple OSS Distributions	$$(_v)$$(UNIFDEF) $(4) $$< > ./$(3)/$$*.unifdef.$$$$$$$$;		\
83*a325d9c4SApple OSS Distributions	if [ $$$$? -eq 2 ]; then						\
84*a325d9c4SApple OSS Distributions		$(ERR) Parse failure for $$<;					\
85*a325d9c4SApple OSS Distributions		exit 1;								\
86*a325d9c4SApple OSS Distributions	fi;									\
87*a325d9c4SApple OSS Distributions	$$(STRIP_BOUND_ATTRIBUTES) -i '' ./$(3)/$$*.unifdef.$$$$$$$$ || exit 1;	\
88*a325d9c4SApple OSS Distributions	if ! $(BOUND_ATTRIBUTES_CHECK) ./$(3)/$$*.unifdef.$$$$$$$$; then	\
89*a325d9c4SApple OSS Distributions		$(ERR) bound attribute stripping failure for $$<;		\
90*a325d9c4SApple OSS Distributions		exit 1;								\
91*a325d9c4SApple OSS Distributions	fi;									\
92*a325d9c4SApple OSS Distributions	$$(DECOMMENT) ./$(3)/$$*.unifdef.$$$$$$$$ r >				\
93*a325d9c4SApple OSS Distributions		./$(3)/$$*.strip.$$$$$$$$ || exit 1;				\
94*a325d9c4SApple OSS Distributions	if [ -s ./$(3)/$$*.strip.$$$$$$$$ ]; then				\
95*a325d9c4SApple OSS Distributions		$$(INSTALL) $$(INSTALL_FLAGS) ./$(3)/$$*.unifdef.$$$$$$$$ $$@ || exit 1;	\
96*a325d9c4SApple OSS Distributions	fi;									\
97*a325d9c4SApple OSS Distributions	$$(RM) ./$(3)/$$*.unifdef.$$$$$$$$ ./$(3)/$$*.strip.$$$$$$$$
98*a325d9c4SApple OSS Distributionsendef
99*a325d9c4SApple OSS Distributions
100*a325d9c4SApple OSS Distributions# $(1) is the list of install paths
101*a325d9c4SApple OSS Distributions# $(2) is the source path pattern (using % to match with $(5)) or source file
102*a325d9c4SApple OSS Distributions# $(3) is the local temp directory for processing
103*a325d9c4SApple OSS Distributions# $(4) is the unifdef flags
104*a325d9c4SApple OSS Distributions# $(5) is the destination directory (when pattern matching) or empty
105*a325d9c4SApple OSS Distributions#
106*a325d9c4SApple OSS Distributions# $$$$$$$$ is a double-escaped "$$" to represent the current pid
107*a325d9c4SApple OSS Distributions# of the shell process for creating uniquely named temporary files
108*a325d9c4SApple OSS Distributions
109*a325d9c4SApple OSS Distributionsdefine INSTALLPYTHON_RULE_template
110*a325d9c4SApple OSS Distributions
111*a325d9c4SApple OSS Distributions.PHONY: $(3)_MKDIR
112*a325d9c4SApple OSS Distributions
113*a325d9c4SApple OSS Distributions$(3)_MKDIR:
114*a325d9c4SApple OSS Distributions	$$(_v)$$(MKDIR) ./$(3)
115*a325d9c4SApple OSS Distributions
116*a325d9c4SApple OSS Distributions# Rebuild if unifdef flags change
117*a325d9c4SApple OSS Distributions$(1): $(3)/.UNIFDEF_FLAGS
118*a325d9c4SApple OSS Distributions$(3)/.UNIFDEF_FLAGS: ALWAYS | $(3)_MKDIR
119*a325d9c4SApple OSS Distributions	$$(_v)$$(REPLACECONTENTS) $$@ $$(UNIFDEF) -t $(4)
120*a325d9c4SApple OSS Distributions
121*a325d9c4SApple OSS Distributions$(1): $(5)% : $(2) | $(3)_MKDIR
122*a325d9c4SApple OSS Distributions	@$$(LOG_INSTALLPY) "$$*"
123*a325d9c4SApple OSS Distributions	$$(_v)$$(MKDIR) $$(dir $$@) $$(dir ./$(3)/$$*)
124*a325d9c4SApple OSS Distributions	$$(_v)$$(UNIFDEF) -t $(4) $$< > ./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*); \
125*a325d9c4SApple OSS Distributions	if [ $$$$? -eq 2 ]; then						\
126*a325d9c4SApple OSS Distributions		$(ERR) Parse failure for $$<;				\
127*a325d9c4SApple OSS Distributions		exit 1;							\
128*a325d9c4SApple OSS Distributions	fi;								\
129*a325d9c4SApple OSS Distributions	$$(INSTALL) $$(DATA_INSTALL_FLAGS) \
130*a325d9c4SApple OSS Distributions		./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*) $$@ || exit 1; \
131*a325d9c4SApple OSS Distributions	$$(PYTHON) $$(LLDBMACROS_SOURCE)/core/syntax_checker.py \
132*a325d9c4SApple OSS Distributions		./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*) $$(_vstdout) || exit 1; \
133*a325d9c4SApple OSS Distributions	$$(RM) ./$(3)/$$*.unifdef.$$$$$$$$$$(suffix $$*)
134*a325d9c4SApple OSS Distributions	$$(_v)if [ -n "$(5)" ]; then $$(TOUCH) "$(5)"; fi
135*a325d9c4SApple OSS Distributionsendef
136*a325d9c4SApple OSS Distributions
137*a325d9c4SApple OSS Distributions# Template for Libsyscall header unifdef postprocessing in DSTROOT
138*a325d9c4SApple OSS Distributions# $(1) is the install path
139*a325d9c4SApple OSS Distributions# $(2) is the unifdef flags
140*a325d9c4SApple OSS Distributions
141*a325d9c4SApple OSS Distributionsdefine LIBSYSCALL_DO_UNIFDEF_HEADERS_RULE_template
142*a325d9c4SApple OSS Distributionsdo_unifdef_headers::
143*a325d9c4SApple OSS Distributions	$$(_v)[ \! -d "$(1)" ] || $$(FIND) -x "$(1)"  -type f \( -name \*.h -o \
144*a325d9c4SApple OSS Distributions		-name \*.defs -o -name \*.iig -o -name \*.modulemap \) \
145*a325d9c4SApple OSS Distributions		-execdir $$(UNIFDEF) $(2) -o {} {} \;
146*a325d9c4SApple OSS Distributions.PHONY: do_unifdef_headers
147*a325d9c4SApple OSS Distributionsendef
148*a325d9c4SApple OSS Distributions
149*a325d9c4SApple OSS Distributions
150*a325d9c4SApple OSS Distributions#
151*a325d9c4SApple OSS Distributions# Empty the install lists of non-host headers if building the host headers alias
152*a325d9c4SApple OSS Distributions#
153*a325d9c4SApple OSS Distributions
154*a325d9c4SApple OSS Distributionsifeq ($(INSTALLHDRS_SKIP_HOST),YES)
155*a325d9c4SApple OSS Distributions
156*a325d9c4SApple OSS DistributionsINSTALL_MI_LIST =
157*a325d9c4SApple OSS DistributionsINSTALL_MI_GEN_LIST =
158*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LIST =
159*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_GEN_LIST =
160*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_LIST =
161*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_GEN_LIST =
162*a325d9c4SApple OSS DistributionsINSTALL_MI_LCL_LIST =
163*a325d9c4SApple OSS DistributionsINSTALL_MI_LCL_GEN_LIST =
164*a325d9c4SApple OSS DistributionsINSTALL_SF_MI_LCL_LIST =
165*a325d9c4SApple OSS DistributionsINSTALL_SF_MI_LCL_GEN_LIST =
166*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_LIST =
167*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_GEN_LIST =
168*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_LCL_LIST =
169*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_LCL_GEN_LIST =
170*a325d9c4SApple OSS DistributionsINSTALL_MD_LIST =
171*a325d9c4SApple OSS DistributionsINSTALL_MD_GEN_LIST =
172*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LIST =
173*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_GEN_LIST =
174*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_LIST =
175*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_GEN_LIST =
176*a325d9c4SApple OSS DistributionsINSTALL_MD_LCL_LIST =
177*a325d9c4SApple OSS DistributionsINSTALL_MD_LCL_GEN_LIST =
178*a325d9c4SApple OSS DistributionsINSTALL_SF_MD_LCL_LIST =
179*a325d9c4SApple OSS DistributionsINSTALL_SF_MD_LCL_GEN_LIST =
180*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_LIST =
181*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_GEN_LIST =
182*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_LCL_LIST =
183*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_LCL_GEN_LIST =
184*a325d9c4SApple OSS Distributions
185*a325d9c4SApple OSS Distributions# If there are no headers then there can be no module maps.
186*a325d9c4SApple OSS DistributionsINSTALLHDRS_MODULEMAPS_SKIP_HOST = YES
187*a325d9c4SApple OSS Distributions
188*a325d9c4SApple OSS Distributionsendif
189*a325d9c4SApple OSS Distributions
190*a325d9c4SApple OSS Distributionsifeq ($(INSTALLHDRS_MODULEMAPS_SKIP_HOST),YES)
191*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MI_LIST =
192*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MI_LCL_LIST =
193*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MD_LIST =
194*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MD_LCL_LIST =
195*a325d9c4SApple OSS Distributionsendif
196*a325d9c4SApple OSS Distributions
197*a325d9c4SApple OSS Distributions#
198*a325d9c4SApple OSS Distributions# Machine-independent (public) files
199*a325d9c4SApple OSS Distributions#
200*a325d9c4SApple OSS Distributions
201*a325d9c4SApple OSS DistributionsINSTALL_MI_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LIST))
202*a325d9c4SApple OSS DistributionsINSTALL_MI_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_GEN_LIST))
203*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MI_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MODULEMAP_MI_DIR)/,$(INSTALL_MODULEMAP_MI_LIST))
204*a325d9c4SApple OSS Distributions
205*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_INC_FILES),,incmidir,$(SINCFRAME_UNIFDEF)))
206*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_INC_GEN_FILES),1,incmigendir,$(SINCFRAME_UNIFDEF)))
207*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MI_INC_FILES),,mmincmidir,-t $(DATA_UNIFDEF)))
208*a325d9c4SApple OSS Distributions
209*a325d9c4SApple OSS Distributionsifeq ($(DRIVERKIT),1)
210*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_INC_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_LIST))
211*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_GEN_LIST))
212*a325d9c4SApple OSS Distributions
213*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_INC_FILES),,dkincmidir,$(DKINCFRAME_UNIFDEF)))
214*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_INC_GEN_FILES),1,dkincmigendir,$(DKINCFRAME_UNIFDEF)))
215*a325d9c4SApple OSS Distributionsendif
216*a325d9c4SApple OSS Distributions
217*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LIST))
218*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_GEN_LIST))
219*a325d9c4SApple OSS Distributions
220*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_FILES),,kincmidir,$(KINCFRAME_UNIFDEF)))
221*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_GEN_FILES),1,kincmigendir,$(KINCFRAME_UNIFDEF)))
222*a325d9c4SApple OSS Distributions
223*a325d9c4SApple OSS Distributions#
224*a325d9c4SApple OSS Distributions# Machine-independent local (private) files
225*a325d9c4SApple OSS Distributions#
226*a325d9c4SApple OSS Distributions
227*a325d9c4SApple OSS DistributionsINSTALL_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_LIST))
228*a325d9c4SApple OSS DistributionsINSTALL_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_GEN_LIST))
229*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MODULEMAP_MI_DIR)/,$(INSTALL_MODULEMAP_MI_LCL_LIST))
230*a325d9c4SApple OSS Distributions
231*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_LCL_FILES),,pincmidir,$(SPINCFRAME_UNIFDEF)))
232*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MI_LCL_GEN_FILES),1,pincmigendir,$(SPINCFRAME_UNIFDEF)))
233*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MI_LCL_FILES),,mmpincmidir,-t $(PDATA_UNIFDEF)))
234*a325d9c4SApple OSS Distributions
235*a325d9c4SApple OSS DistributionsINSTALL_SF_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MI_DIR)/, $(sort $(INSTALL_SF_MI_LCL_LIST)))
236*a325d9c4SApple OSS DistributionsINSTALL_SF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MI_DIR)/, $(sort $(INSTALL_SF_MI_LCL_GEN_LIST)))
237*a325d9c4SApple OSS Distributions
238*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MI_LCL_FILES),,spincmidir,$(SPINCFRAME_UNIFDEF)))
239*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MI_LCL_GEN_FILES),1,spincmigendir,$(SPINCFRAME_UNIFDEF)))
240*a325d9c4SApple OSS Distributions
241*a325d9c4SApple OSS Distributionsifeq ($(DRIVERKIT),1)
242*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_LCL_LIST))
243*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_DRIVERKIT_MI_LCL_GEN_LIST))
244*a325d9c4SApple OSS Distributions
245*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_LCL_FILES),,dkpincmidir,$(DKPINCFRAME_UNIFDEF)))
246*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MI_LCL_GEN_FILES),1,dkpincmigendir,$(DKPINCFRAME_UNIFDEF)))
247*a325d9c4SApple OSS Distributionsendif
248*a325d9c4SApple OSS Distributions
249*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_LCL_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LCL_LIST))
250*a325d9c4SApple OSS DistributionsINSTALL_KF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LCL_GEN_LIST))
251*a325d9c4SApple OSS Distributions
252*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_LCL_FILES),,kpincmidir,$(KPINCFRAME_UNIFDEF)))
253*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MI_LCL_GEN_FILES),1,kpincmigendir,$(KPINCFRAME_UNIFDEF)))
254*a325d9c4SApple OSS Distributions
255*a325d9c4SApple OSS Distributions#
256*a325d9c4SApple OSS Distributions# Machine-dependent (public) files
257*a325d9c4SApple OSS Distributions#
258*a325d9c4SApple OSS Distributions
259*a325d9c4SApple OSS DistributionsINSTALL_MD_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LIST))
260*a325d9c4SApple OSS DistributionsINSTALL_MD_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_GEN_LIST))
261*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MD_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MODULEMAP_MD_DIR)/,$(INSTALL_MODULEMAP_MD_LIST))
262*a325d9c4SApple OSS Distributions
263*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_INC_FILES),,incdir,$(SINCFRAME_UNIFDEF)))
264*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_INC_GEN_FILES),1,incgendir,$(SINCFRAME_UNIFDEF)))
265*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MD_INC_FILES),,mmincdir,-t $(DATA_UNIFDEF)))
266*a325d9c4SApple OSS Distributions
267*a325d9c4SApple OSS Distributionsifeq ($(DRIVERKIT),1)
268*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_INC_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_LIST))
269*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_INC_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITINCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_GEN_LIST))
270*a325d9c4SApple OSS Distributions
271*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_INC_FILES),,dkincdir,$(DKINCFRAME_UNIFDEF)))
272*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_INC_GEN_FILES),1,dkincgendir,$(DKINCFRAME_UNIFDEF)))
273*a325d9c4SApple OSS Distributionsendif
274*a325d9c4SApple OSS Distributions
275*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LIST))
276*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_GEN_LIST))
277*a325d9c4SApple OSS Distributions
278*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_FILES),,kincdir,$(KINCFRAME_UNIFDEF)))
279*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_GEN_FILES),1,kincgendir,$(KINCFRAME_UNIFDEF)))
280*a325d9c4SApple OSS Distributions
281*a325d9c4SApple OSS Distributions#
282*a325d9c4SApple OSS Distributions# Machine-dependent local (private) files
283*a325d9c4SApple OSS Distributions#
284*a325d9c4SApple OSS Distributions
285*a325d9c4SApple OSS DistributionsINSTALL_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_MD_LCL_LIST)))
286*a325d9c4SApple OSS DistributionsINSTALL_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_MD_LCL_GEN_LIST)))
287*a325d9c4SApple OSS DistributionsINSTALL_MODULEMAP_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MODULEMAP_MD_DIR)/,$(INSTALL_MODULEMAP_MD_LCL_LIST))
288*a325d9c4SApple OSS Distributions
289*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_LCL_FILES),,pincdir,$(SPINCFRAME_UNIFDEF)))
290*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MD_LCL_GEN_FILES),1,pincgendir,$(SPINCFRAME_UNIFDEF)))
291*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_MODULEMAP_MD_LCL_FILES),,mmpincdir,-t $(PDATA_UNIFDEF)))
292*a325d9c4SApple OSS Distributions
293*a325d9c4SApple OSS DistributionsINSTALL_SF_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_SF_MD_LCL_LIST)))
294*a325d9c4SApple OSS DistributionsINSTALL_SF_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(SPINCDIR)/$(INSTALL_MD_DIR)/, $(sort $(INSTALL_SF_MD_LCL_GEN_LIST)))
295*a325d9c4SApple OSS Distributions
296*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MD_LCL_FILES),,spincdir,$(SPINCFRAME_UNIFDEF)))
297*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_SF_MD_LCL_GEN_FILES),1,spincgendir,$(SPINCFRAME_UNIFDEF)))
298*a325d9c4SApple OSS Distributions
299*a325d9c4SApple OSS Distributionsifeq ($(DRIVERKIT),1)
300*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_LCL_LIST))
301*a325d9c4SApple OSS DistributionsINSTALL_DRIVERKIT_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(DRIVERKITLCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_DRIVERKIT_MD_LCL_GEN_LIST))
302*a325d9c4SApple OSS Distributions
303*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_LCL_FILES),,dkpincdir,$(DKPINCFRAME_UNIFDEF)))
304*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_DRIVERKIT_MD_LCL_GEN_FILES),1,dkpincgendir,$(DKPINCFRAME_UNIFDEF)))
305*a325d9c4SApple OSS Distributionsendif
306*a325d9c4SApple OSS Distributions
307*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_LCL_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LCL_LIST))
308*a325d9c4SApple OSS DistributionsINSTALL_KF_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LCL_GEN_LIST))
309*a325d9c4SApple OSS Distributions
310*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_LCL_FILES),,kpincdir,$(KPINCFRAME_UNIFDEF)))
311*a325d9c4SApple OSS Distributions$(eval $(call INSTALLHDRS_RULE_template,$(INSTALL_KF_MD_LCL_GEN_FILES),1,kpincgendir,$(KPINCFRAME_UNIFDEF)))
312*a325d9c4SApple OSS Distributions
313*a325d9c4SApple OSS Distributions.PHONY: do_installhdrs_mi
314*a325d9c4SApple OSS Distributions
315*a325d9c4SApple OSS Distributions# Double-colon rule so that MakeInc.kernel can add custom behaviors
316*a325d9c4SApple OSS Distributionsdo_installhdrs_mi:: $(INSTALL_MI_INC_FILES) $(INSTALL_MI_INC_GEN_FILES) $(INSTALL_MODULEMAP_MI_INC_FILES) \
317*a325d9c4SApple OSS Distributions		    $(INSTALL_DRIVERKIT_MI_INC_FILES) $(INSTALL_DRIVERKIT_MI_INC_GEN_FILES) \
318*a325d9c4SApple OSS Distributions		    $(INSTALL_KF_MI_FILES) $(INSTALL_KF_MI_GEN_FILES) \
319*a325d9c4SApple OSS Distributions		    $(INSTALL_MI_LCL_FILES) $(INSTALL_MI_LCL_GEN_FILES) $(INSTALL_MODULEMAP_MI_LCL_FILES) \
320*a325d9c4SApple OSS Distributions		    $(INSTALL_SF_MI_LCL_FILES) $(INSTALL_SF_MI_LCL_GEN_FILES) \
321*a325d9c4SApple OSS Distributions		    $(INSTALL_DRIVERKIT_MI_LCL_FILES) $(INSTALL_DRIVERKIT_MI_LCL_GEN_FILES) \
322*a325d9c4SApple OSS Distributions		    $(INSTALL_KF_MI_LCL_FILES) $(INSTALL_KF_MI_LCL_GEN_FILES)
323*a325d9c4SApple OSS Distributions	@:
324*a325d9c4SApple OSS Distributions
325*a325d9c4SApple OSS Distributions.PHONY: do_installhdrs_md
326*a325d9c4SApple OSS Distributions
327*a325d9c4SApple OSS Distributionsdo_installhdrs_md: $(INSTALL_MD_INC_FILES) $(INSTALL_MD_INC_GEN_FILES) $(INSTALL_MODULEMAP_MD_INC_FILES) \
328*a325d9c4SApple OSS Distributions		   $(INSTALL_DRIVERKIT_MD_INC_FILES) $(INSTALL_DRIVERKIT_MD_INC_GEN_FILES) \
329*a325d9c4SApple OSS Distributions		   $(INSTALL_KF_MD_FILES) $(INSTALL_KF_MD_GEN_FILES) \
330*a325d9c4SApple OSS Distributions		   $(INSTALL_MD_LCL_FILES) $(INSTALL_MD_LCL_GEN_FILES) $(INSTALL_MODULEMAP_MD_LCL_FILES) \
331*a325d9c4SApple OSS Distributions		   $(INSTALL_SF_MD_LCL_FILES) $(INSTALL_SF_MD_LCL_GEN_FILES) \
332*a325d9c4SApple OSS Distributions		   $(INSTALL_DRIVERKIT_MD_LCL_FILES) $(INSTALL_DRIVERKIT_MD_LCL_GEN_FILES) \
333*a325d9c4SApple OSS Distributions		   $(INSTALL_KF_MD_LCL_FILES) $(INSTALL_KF_MD_LCL_GEN_FILES)
334*a325d9c4SApple OSS Distributions	@:
335*a325d9c4SApple OSS Distributions
336*a325d9c4SApple OSS Distributions#
337*a325d9c4SApple OSS Distributions# Generic Export rules
338*a325d9c4SApple OSS Distributions#
339*a325d9c4SApple OSS DistributionsEXPORT_MI_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_LIST))
340*a325d9c4SApple OSS DistributionsEXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST))
341*a325d9c4SApple OSS Distributions
342*a325d9c4SApple OSS Distributions.PHONY: EXP_MI_INC_DIR
343*a325d9c4SApple OSS Distributions
344*a325d9c4SApple OSS DistributionsEXP_MI_INC_DIR:
345*a325d9c4SApple OSS Distributions	$(_v)$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)
346*a325d9c4SApple OSS Distributions
347*a325d9c4SApple OSS Distributions$(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : % | EXP_MI_INC_DIR
348*a325d9c4SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
349*a325d9c4SApple OSS Distributions
350*a325d9c4SApple OSS Distributions$(EXPORT_MI_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : $(SOURCE)/% | EXP_MI_INC_DIR
351*a325d9c4SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
352*a325d9c4SApple OSS Distributions
353*a325d9c4SApple OSS DistributionsEXPORT_MD_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_LIST))
354*a325d9c4SApple OSS DistributionsEXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST))
355*a325d9c4SApple OSS Distributions
356*a325d9c4SApple OSS Distributions.PHONY: EXP_MD_INC_DIR
357*a325d9c4SApple OSS Distributions
358*a325d9c4SApple OSS DistributionsEXP_MD_INC_DIR:
359*a325d9c4SApple OSS Distributions	$(_v)$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)
360*a325d9c4SApple OSS Distributions
361*a325d9c4SApple OSS Distributions$(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : % | EXP_MD_INC_DIR
362*a325d9c4SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
363*a325d9c4SApple OSS Distributions
364*a325d9c4SApple OSS Distributions$(EXPORT_MD_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : $(SOURCE)/% | EXP_MD_INC_DIR
365*a325d9c4SApple OSS Distributions	$(_v)$(INSTALL) $(DATA_INSTALL_FLAGS_RO) $< $@
366*a325d9c4SApple OSS Distributions
367*a325d9c4SApple OSS Distributions.PHONY: do_exporthdrs_mi
368*a325d9c4SApple OSS Distributions
369*a325d9c4SApple OSS Distributionsdo_exporthdrs_mi: $(EXPORT_MI_GEN_INC_FILES) $(EXPORT_MI_INC_FILES)
370*a325d9c4SApple OSS Distributions	@:
371*a325d9c4SApple OSS Distributions
372*a325d9c4SApple OSS Distributions.PHONY: do_exporthdrs_md
373*a325d9c4SApple OSS Distributions
374*a325d9c4SApple OSS Distributionsdo_exporthdrs_md: $(EXPORT_MD_GEN_INC_FILES)  $(EXPORT_MD_INC_FILES)
375*a325d9c4SApple OSS Distributions	@:
376*a325d9c4SApple OSS Distributions
377*a325d9c4SApple OSS Distributions#
378*a325d9c4SApple OSS Distributions# Generic Compilation rules
379*a325d9c4SApple OSS Distributions#
380*a325d9c4SApple OSS Distributions
381*a325d9c4SApple OSS Distributions#
382*a325d9c4SApple OSS Distributions# Compilation rules to generate .o from .s
383*a325d9c4SApple OSS Distributions#
384*a325d9c4SApple OSS Distributions
385*a325d9c4SApple OSS DistributionsS_RULE_0=@$(LOG_AS) "$@"
386*a325d9c4SApple OSS DistributionsS_RULE_1A=$(_v)${S_KCC} -c ${SFLAGS} -MD -MF $(@:o=d) -MP ${$@_SFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS}
387*a325d9c4SApple OSS DistributionsS_RULE_1B=$(<F)
388*a325d9c4SApple OSS DistributionsS_RULE_2=
389*a325d9c4SApple OSS Distributions
390*a325d9c4SApple OSS Distributions#
391*a325d9c4SApple OSS Distributions# Compilation rules to generate .o from .c for normal files
392*a325d9c4SApple OSS Distributions#
393*a325d9c4SApple OSS DistributionsC_RULE_0=@$(LOG_CC) "$@"
394*a325d9c4SApple OSS DistributionsC_RULE_1A=$(_v)${KCC} -c ${filter-out ${$@_CFLAGS_RM}, ${CFLAGS} ${CWARNFLAGS}} -MD -MF $(@:o=d) -MP ${$@_CFLAGS_ADD} ${$@_CWARNFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS}
395*a325d9c4SApple OSS DistributionsC_RULE_1B=$(<F)
396*a325d9c4SApple OSS DistributionsC_RULE_2=
397*a325d9c4SApple OSS Distributions
398*a325d9c4SApple OSS DistributionsC_RULE_3=
399*a325d9c4SApple OSS DistributionsC_RULE_4A=
400*a325d9c4SApple OSS DistributionsC_RULE_4B=
401*a325d9c4SApple OSS Distributions
402*a325d9c4SApple OSS Distributions#
403*a325d9c4SApple OSS Distributions# Compilation rules to generate .o from .c for driver files
404*a325d9c4SApple OSS Distributions#
405*a325d9c4SApple OSS DistributionsC_RULE_0_D=${C_RULE_0}
406*a325d9c4SApple OSS DistributionsC_RULE_1A_D=${C_RULE_1A}
407*a325d9c4SApple OSS DistributionsC_RULE_1B_D=${C_RULE_1B}
408*a325d9c4SApple OSS DistributionsC_RULE_2_D=${C_RULE_2}
409*a325d9c4SApple OSS DistributionsC_RULE_3_D=${C_RULE_3}
410*a325d9c4SApple OSS DistributionsC_RULE_4A_D=${C_RULE_4A}
411*a325d9c4SApple OSS DistributionsC_RULE_4B_D=${C_RULE_4B}
412*a325d9c4SApple OSS Distributions
413*a325d9c4SApple OSS Distributions#
414*a325d9c4SApple OSS Distributions# Compilation rules to generate .co from .cp or .cpo from .cpp
415*a325d9c4SApple OSS Distributions#   The config tool slickly changes the last source filename char to 'o'
416*a325d9c4SApple OSS Distributions#   for the object filename.
417*a325d9c4SApple OSS DistributionsP_RULE_0=@$(LOG_CXX) "$@"
418*a325d9c4SApple OSS DistributionsP_RULE_1A=$(_v)${KC++} -o $@ -c ${CXXFLAGS} ${filter-out ${$@_CFLAGS_RM}, ${CFLAGS} ${CXXWARNFLAGS}} -MD -MF $(@:o=d) -MP ${$@_CFLAGS_ADD} ${$@_CXXWARNFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS}
419*a325d9c4SApple OSS DistributionsP_RULE_1B=$(<F)
420*a325d9c4SApple OSS DistributionsP_RULE_2=
421*a325d9c4SApple OSS Distributions
422*a325d9c4SApple OSS DistributionsP_RULE_3=
423*a325d9c4SApple OSS DistributionsP_RULE_4A=
424*a325d9c4SApple OSS DistributionsP_RULE_4B=
425*a325d9c4SApple OSS Distributions
426*a325d9c4SApple OSS Distributions#
427*a325d9c4SApple OSS Distributions# Explain how to make the bsd syscall list
428*a325d9c4SApple OSS Distributions#
429*a325d9c4SApple OSS Distributions$(TARGET)/bsd.syscalls.master: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS)
430*a325d9c4SApple OSS Distributions	@$(LOG_GENERATE) "$(@F)$(Color0) from $(ColorF)$<$(Color0)"
431*a325d9c4SApple OSS Distributions	$(_v)$(UNIFDEF) $(SEED_DEFINES) $< > $@;	\
432*a325d9c4SApple OSS Distributions	if [ $$? -eq 2 ]; then				\
433*a325d9c4SApple OSS Distributions		$(ERR) Parse failure for $<;		\
434*a325d9c4SApple OSS Distributions		exit 1;					\
435*a325d9c4SApple OSS Distributions	fi
436*a325d9c4SApple OSS Distributions
437*a325d9c4SApple OSS Distributions#
438*a325d9c4SApple OSS Distributions# This isn't the right place to put this, but we need to := override some settings
439*a325d9c4SApple OSS Distributions# in Makefiles that include the generic helper fragments (like this file)
440*a325d9c4SApple OSS Distributions#
441*a325d9c4SApple OSS Distributionsifeq ($(BUILD_JSON_COMPILATION_DATABASE),1)
442*a325d9c4SApple OSS DistributionsHIB_FILES :=
443*a325d9c4SApple OSS DistributionsLAST_FILES :=
444*a325d9c4SApple OSS DistributionsKLD_FILES :=
445*a325d9c4SApple OSS Distributionsendif
446*a325d9c4SApple OSS Distributions
447*a325d9c4SApple OSS Distributions.PHONY: do_build_all
448*a325d9c4SApple OSS Distributions
449*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
450*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
451*a325d9c4SApple OSS Distributionsdo_build_all::
452*a325d9c4SApple OSS Distributions	@:
453*a325d9c4SApple OSS Distributions
454*a325d9c4SApple OSS Distributions.PHONY: do_build_install_primary
455*a325d9c4SApple OSS Distributions
456*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
457*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
458*a325d9c4SApple OSS Distributionsdo_build_install_primary::
459*a325d9c4SApple OSS Distributions	@:
460*a325d9c4SApple OSS Distributions
461*a325d9c4SApple OSS Distributions.PHONY: do_build_install_non_primary
462*a325d9c4SApple OSS Distributions
463*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
464*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
465*a325d9c4SApple OSS Distributionsdo_build_install_non_primary::
466*a325d9c4SApple OSS Distributions	@:
467*a325d9c4SApple OSS Distributions
468*a325d9c4SApple OSS DistributionsINSTALL_MAN_FILES = $(addprefix $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/, $(INSTALL_MAN_LIST))
469*a325d9c4SApple OSS Distributions
470*a325d9c4SApple OSS Distributions.PHONY: INSTALL_MAN_DIR
471*a325d9c4SApple OSS Distributions
472*a325d9c4SApple OSS DistributionsINSTALL_MAN_DIR:
473*a325d9c4SApple OSS Distributions	$(_v)$(MKDIR) $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)
474*a325d9c4SApple OSS Distributions
475*a325d9c4SApple OSS Distributions$(INSTALL_MAN_FILES): $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/% : % | INSTALL_MAN_DIR
476*a325d9c4SApple OSS Distributions	@$(LOG_MAN) "$*"
477*a325d9c4SApple OSS Distributions	$(_v)$(INSTALL) $(INSTALL_FLAGS) $< $@
478*a325d9c4SApple OSS Distributions
479*a325d9c4SApple OSS Distributionsdefine MAN_LINKS_RULE_template
480*a325d9c4SApple OSS Distributions$$(DSTROOT)/$$(MANDIR)/$$(INSTALL_MAN_DIR)/$(2): $$(DSTROOT)/$$(MANDIR)/$$(INSTALL_MAN_DIR)/$(1)
481*a325d9c4SApple OSS Distributions	@$$(LOG_MANLINK) "$(2)"
482*a325d9c4SApple OSS Distributions	$(_v)ln -f $$< $$@
483*a325d9c4SApple OSS Distributionsendef
484*a325d9c4SApple OSS Distributions
485*a325d9c4SApple 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))))
486*a325d9c4SApple OSS Distributions
487*a325d9c4SApple OSS DistributionsINSTALL_MAN_FILES_LINKS = $(call function_generate_man_links_rules,$(INSTALL_MAN_LINKS))
488*a325d9c4SApple OSS Distributions
489*a325d9c4SApple OSS Distributions.PHONY: do_installman
490*a325d9c4SApple OSS Distributions
491*a325d9c4SApple OSS Distributionsdo_installman: $(INSTALL_MAN_FILES) $(INSTALL_MAN_FILES_LINKS)
492*a325d9c4SApple OSS Distributions	@:
493*a325d9c4SApple OSS Distributions
494*a325d9c4SApple OSS Distributions.PHONY: do_textfiles_install do_textfiles_install_mi do_textfiles_install_md
495*a325d9c4SApple OSS Distributions
496*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
497*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
498*a325d9c4SApple OSS Distributionsdo_textfiles_install_mi:: do_installman
499*a325d9c4SApple OSS Distributions	@:
500*a325d9c4SApple OSS Distributions
501*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
502*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
503*a325d9c4SApple OSS Distributionsdo_textfiles_install_md::
504*a325d9c4SApple OSS Distributions	@:
505*a325d9c4SApple OSS Distributions
506*a325d9c4SApple OSS Distributions.PHONY: do_build_setup
507*a325d9c4SApple OSS Distributions
508*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
509*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
510*a325d9c4SApple OSS Distributionsdo_build_setup::
511*a325d9c4SApple OSS Distributions	@:
512*a325d9c4SApple OSS Distributions
513*a325d9c4SApple OSS Distributions.PHONY: do_config_all
514*a325d9c4SApple OSS Distributions
515*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
516*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
517*a325d9c4SApple OSS Distributionsdo_config_all::
518*a325d9c4SApple OSS Distributions	@:
519*a325d9c4SApple OSS Distributions
520*a325d9c4SApple OSS Distributions.PHONY: do_config_install_primary
521*a325d9c4SApple OSS Distributions
522*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
523*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
524*a325d9c4SApple OSS Distributionsdo_config_install_primary::
525*a325d9c4SApple OSS Distributions	@:
526*a325d9c4SApple OSS Distributions
527*a325d9c4SApple OSS Distributions.PHONY: do_config_install_variant
528*a325d9c4SApple OSS Distributions
529*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
530*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
531*a325d9c4SApple OSS Distributionsdo_config_install_variant::
532*a325d9c4SApple OSS Distributions	@:
533*a325d9c4SApple OSS Distributions
534*a325d9c4SApple OSS Distributions.PHONY: do_config_install
535*a325d9c4SApple OSS Distributions
536*a325d9c4SApple OSS Distributions# Do-nothing rule, since not all levels of the recursive hierarchy might implement this
537*a325d9c4SApple OSS Distributions# in their local Makefiles. Those that do will use a "::" rule to augment this.
538*a325d9c4SApple OSS Distributionsdo_config_install::
539*a325d9c4SApple OSS Distributions	@:
540*a325d9c4SApple OSS Distributions
541*a325d9c4SApple OSS Distributions# vim: set ft=make:
542