xref: /xnu-11215.61.5/osfmk/device/Makefile (revision 4f1223e81cd707a65cc109d0b8ad6653699da3c4)
1*4f1223e8SApple OSS Distributionsexport MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
2*4f1223e8SApple OSS Distributionsexport MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
3*4f1223e8SApple OSS Distributionsexport MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
4*4f1223e8SApple OSS Distributionsexport MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
5*4f1223e8SApple OSS Distributions
6*4f1223e8SApple OSS Distributionsinclude $(MakeInc_cmd)
7*4f1223e8SApple OSS Distributionsinclude $(MakeInc_def)
8*4f1223e8SApple OSS Distributions
9*4f1223e8SApple OSS DistributionsMIG_DEFS =	\
10*4f1223e8SApple OSS Distributions	device.defs
11*4f1223e8SApple OSS Distributions
12*4f1223e8SApple OSS DistributionsMIG_HDRS = \
13*4f1223e8SApple OSS Distributions
14*4f1223e8SApple OSS Distributions# Files that are public on macOS, but private on embedded
15*4f1223e8SApple OSS DistributionsEMBEDDED_PRIVATE_DATAFILES = \
16*4f1223e8SApple OSS Distributions	device_types.defs \
17*4f1223e8SApple OSS Distributions	${MIG_DEFS}
18*4f1223e8SApple OSS Distributions
19*4f1223e8SApple OSS Distributionsifeq ($(filter $(SUPPORTED_EMBEDDED_PLATFORMS) $(SUPPORTED_SIMULATOR_PLATFORMS),$(PLATFORM)),)
20*4f1223e8SApple OSS DistributionsEXTRA_DATAFILES = $(EMBEDDED_PRIVATE_DATAFILES)
21*4f1223e8SApple OSS Distributionselse
22*4f1223e8SApple OSS Distributions# Temporarily install some private defs in both usr/include and usr/local/include.
23*4f1223e8SApple OSS Distributions# They belong in usr/local/include, but installing them in both locations will allow
24*4f1223e8SApple OSS Distributions# clients that compile them by full path to switch without lock-step submissions.
25*4f1223e8SApple OSS DistributionsEXTRA_DATAFILES = device.defs device_types.defs
26*4f1223e8SApple OSS DistributionsEXTRA_PRIVATE_DATAFILES = $(EMBEDDED_PRIVATE_DATAFILES)
27*4f1223e8SApple OSS Distributionsendif
28*4f1223e8SApple OSS Distributions
29*4f1223e8SApple OSS DistributionsDATAFILES = $(sort \
30*4f1223e8SApple OSS Distributions	device_types.h device_port.h \
31*4f1223e8SApple OSS Distributions	${EXTRA_DATAFILES})
32*4f1223e8SApple OSS Distributions
33*4f1223e8SApple OSS DistributionsMODULEMAPFILES = \
34*4f1223e8SApple OSS Distributions	device.modulemap
35*4f1223e8SApple OSS Distributions
36*4f1223e8SApple OSS DistributionsPRIVATE_DATAFILES = $(sort \
37*4f1223e8SApple OSS Distributions	device_types.h \
38*4f1223e8SApple OSS Distributions	${EXTRA_PRIVATE_DATAFILES})
39*4f1223e8SApple OSS Distributions
40*4f1223e8SApple OSS Distributions# device_types.h has some userspace IOKit types that are used by
41*4f1223e8SApple OSS Distributions# IOTypes.h clients. The types are guarded by `IOKIT` because they
42*4f1223e8SApple OSS Distributions# conflict with internal xnu types. However, once device_types.h
43*4f1223e8SApple OSS Distributions# is part of the Darwin module, it gets processed before IOTypes.h
44*4f1223e8SApple OSS Distributions# defines IOKIT. Later when IOTypes.h includes the header, it's
45*4f1223e8SApple OSS Distributions# too late and the types don't get defined. Remove the IOKIT guard
46*4f1223e8SApple OSS Distributions# in userspace to fix that problem and always define the IOKit types.
47*4f1223e8SApple OSS DistributionsKERNEL_ONLY_GUARDS_UNIFDEF = -DIOKIT
48*4f1223e8SApple OSS Distributions
49*4f1223e8SApple OSS DistributionsMIGINCLUDES = \
50*4f1223e8SApple OSS Distributions
51*4f1223e8SApple OSS DistributionsINSTALL_MI_LIST	= ${DATAFILES} ${_MIG_HDRS_} ${MIGINCLUDES}
52*4f1223e8SApple OSS Distributions
53*4f1223e8SApple OSS DistributionsINSTALL_MODULEMAP_MI_LIST = ${MODULEMAPFILES}
54*4f1223e8SApple OSS Distributions
55*4f1223e8SApple OSS DistributionsINSTALL_MI_LCL_LIST = ${EXTRA_PRIVATE_DATAFILES}
56*4f1223e8SApple OSS Distributions
57*4f1223e8SApple OSS DistributionsINSTALL_SF_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES} ${_MIG_HDRS_} ${MIGINCLUDES}
58*4f1223e8SApple OSS Distributions
59*4f1223e8SApple OSS DistributionsINSTALL_MI_DIR = device
60*4f1223e8SApple OSS Distributions
61*4f1223e8SApple OSS DistributionsEXPORT_MI_LIST	= ${DATAFILES} ${_MIG_HDRS_} ${MIGINCLUDES}
62*4f1223e8SApple OSS Distributions
63*4f1223e8SApple OSS DistributionsEXPORT_MI_DIR = device
64*4f1223e8SApple OSS Distributions
65*4f1223e8SApple OSS Distributions#
66*4f1223e8SApple OSS Distributions# Build path
67*4f1223e8SApple OSS Distributions#
68*4f1223e8SApple OSS DistributionsINCFLAGS_MAKEFILE= -I..
69*4f1223e8SApple OSS Distributions
70*4f1223e8SApple OSS DistributionsDEVICE_FILES    = device_server.h device_server.c
71*4f1223e8SApple OSS Distributions
72*4f1223e8SApple OSS DistributionsCOMP_FILES	= ${DEVICE_FILES}
73*4f1223e8SApple OSS Distributions
74*4f1223e8SApple OSS Distributionsdo_build_all:: $(COMP_FILES)
75*4f1223e8SApple OSS Distributions
76*4f1223e8SApple OSS Distributions${DEVICE_FILES}: device.defs
77*4f1223e8SApple OSS Distributions	@$(LOG_MIG) "$@"
78*4f1223e8SApple OSS Distributions	$(_v)${MIG} ${MIGFLAGS} ${MIGKSFLAGS}	\
79*4f1223e8SApple OSS Distributions	-header /dev/null			\
80*4f1223e8SApple OSS Distributions	-user /dev/null				\
81*4f1223e8SApple OSS Distributions	-sheader device_server.h		\
82*4f1223e8SApple OSS Distributions	-server device_server.c			\
83*4f1223e8SApple OSS Distributions	$<
84*4f1223e8SApple OSS Distributions
85*4f1223e8SApple OSS Distributionsinclude $(MakeInc_rule)
86*4f1223e8SApple OSS Distributionsinclude $(MakeInc_dir)
87