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