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