1export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd 2export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def 3export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule 4export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir 5 6include $(MakeInc_cmd) 7include $(MakeInc_def) 8 9INSTINC_SUBDIRS = \ 10 _types 11 12EXPINC_SUBDIRS = \ 13 _types 14 15# Files that are public on macOS, but private on embedded 16EMBEDDED_PRIVATE_DATAFILES = \ 17 disk.h dtrace.h dtrace_glue.h dtrace_impl.h fasttrap.h fasttrap_isa.h ioctl_compat.h kdebug.h \ 18 kern_control.h kern_event.h kernel_types.h proc_info.h protosw.h reboot.h sys_domain.h ttychars.h \ 19 ttydev.h ubc.h vnode.h 20 21ifeq ($(filter $(SUPPORTED_EMBEDDED_PLATFORMS) $(SUPPORTED_SIMULATOR_PLATFORMS),$(PLATFORM)),) 22EXTRA_DATAFILES = $(EMBEDDED_PRIVATE_DATAFILES) 23else 24EXTRA_PRIVATE_DATAFILES = $(EMBEDDED_PRIVATE_DATAFILES) 25endif 26 27# Installs header file for user level - 28# $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders 29# $(DSTROOT)/usr/include/ 30# Most of these are covered by CoreOSModuleMaps because some of them are mixed 31# in with related headers in other directories from other projects, or mixed 32# in with headers from other projects in sys/. 33DATAFILES = $(sort \ 34 appleapiopts.h acct.h aio.h attr.h \ 35 buf.h cdefs.h clonefile.h conf.h constrained_ctypes.h \ 36 dir.h dirent.h dkstat.h \ 37 errno.h ev.h event.h fcntl.h file.h filedesc.h \ 38 fileport.h filio.h fsgetpath.h gmon.h \ 39 ioccom.h ioctl.h \ 40 ipc.h kernel.h lctx.h loadable_fs.h lock.h lockf.h \ 41 kauth.h kdebug_signpost.h lockstat.h malloc.h \ 42 mbuf.h mman.h mount.h msg.h msgbuf.h netport.h param.h paths.h pipe.h poll.h \ 43 proc.h ptrace.h queue.h quota.h resource.h resourcevar.h \ 44 sbuf.h posix_sem.h posix_shm.h random.h sdt.h\ 45 select.h sem.h semaphore.h shm.h signal.h signalvar.h snapshot.h socket.h socketvar.h sockio.h stat.h stdio.h \ 46 sysctl.h syslimits.h syslog.h termios.h time.h \ 47 timeb.h times.h trace.h tty.h ttycom.h \ 48 ttydefaults.h types.h ucontext.h ucred.h uio.h un.h unistd.h unpcb.h \ 49 user.h utfconv.h utsname.h vadvise.h vcmd.h \ 50 vm.h vmmeter.h vmparam.h vnode_if.h vsock.h vstat.h wait.h xattr.h \ 51 _select.h _structs.h _types.h _endian.h __endian.h domain.h \ 52 spawn.h timex.h commpage.h log_data.h endian.h \ 53 $(EXTRA_DATAFILES)) 54 55# Installs header file for DriverKit drivers - 56# $(DSTROOT)/System/DriverKit/System/usr/include/ 57DRIVERKIT_DATAFILES = \ 58 cdefs.h _types.h _endian.h __endian.h time.h 59 60# Installs header file for Apple internal use in user level - 61# $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders 62# These are covered by CoreOSModuleMaps because they're mixed in with headers 63# from other projects in sys/. 64PRIVATE_DATAFILES = $(sort \ 65 attr.h \ 66 attr_private.h \ 67 cdefs.h \ 68 clonefile.h \ 69 coalition.h \ 70 coalition_private.h \ 71 codesign.h \ 72 constrained_ctypes.h \ 73 content_protection.h \ 74 crossarch.h \ 75 csr.h \ 76 decmpfs.h \ 77 dirent_private.h \ 78 disk_private.h \ 79 disklabel.h \ 80 domain.h \ 81 event.h \ 82 event_log.h \ 83 event_private.h \ 84 fcntl_private.h \ 85 fileport.h \ 86 fsctl.h \ 87 fsevents.h \ 88 fsgetpath.h \ 89 fsgetpath_private.h \ 90 fslog.h \ 91 guarded.h \ 92 imgsrc.h \ 93 ipcs.h \ 94 kas_info.h \ 95 kdebug.h \ 96 kdebug_private.h \ 97 kdebug_triage.h \ 98 kern_control_private.h \ 99 kern_debug.h \ 100 kern_event_private.h \ 101 kern_memorystatus.h \ 102 kern_memorystatus_freeze.h \ 103 kern_overrides.h \ 104 kern_sysctl.h \ 105 mbuf.h \ 106 mem_acct_private.h \ 107 mman.h \ 108 monotonic.h \ 109 persona.h \ 110 preoslog.h \ 111 priv.h \ 112 proc.h \ 113 proc_info_private.h \ 114 proc_uuid_policy.h \ 115 process_policy.h \ 116 reason.h \ 117 resource.h \ 118 resource_private.h \ 119 sfi.h \ 120 shm_internal.h \ 121 snapshot.h \ 122 socket.h \ 123 socket_private.h \ 124 socketvar.h \ 125 sockio.h \ 126 sockio_private.h \ 127 spawn.h \ 128 spawn_internal.h \ 129 stackshot.h \ 130 sys_domain_private.h \ 131 tree.h \ 132 ulock.h \ 133 unpcb.h \ 134 ux_exception.h \ 135 variant_internal.h \ 136 vsock.h \ 137 vsock_private.h \ 138 work_interval.h \ 139 process_policy.h \ 140 proc_uuid_policy.h \ 141 priv.h \ 142 pgo.h \ 143 memory_maintenance.h \ 144 commpage.h \ 145 os_log_coprocessor.h \ 146 $(EXTRA_PRIVATE_DATAFILES)) 147 148# Installs header file for Apple internal use by DriverKit drivers - 149# $(DSTROOT)/System/DriverKit/System/usr/local/include/ 150DRIVERKIT_PRIVATE_DATAFILES = \ 151 appleapiopts.h kdebug.h kdebug_private.h queue.h 152 153# Installs header file for kernel extensions - 154# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/Headers 155# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders 156KERNELFILES = \ 157 appleapiopts.h attr.h \ 158 buf.h cdefs.h conf.h constrained_ctypes.h \ 159 dir.h dirent.h disk.h disklabel.h dkstat.h \ 160 errno.h ev.h event.h fcntl.h file.h filio.h \ 161 ioccom.h ioctl.h ipc.h \ 162 ioctl_compat.h kernel.h kernel_types.h kern_event.h lock.h lockf.h \ 163 kauth.h kdebug.h kdebug_private.h kdebug_kernel.h md5.h kern_control.h \ 164 imgact.h malloc.h namei.h mman.h mbuf.h mount.h netport.h param.h paths.h \ 165 proc.h queue.h random.h resource.h \ 166 sbuf.h posix_sem.h posix_shm.h resource_private.h sem.h shm.h \ 167 select.h signal.h socket.h socketvar.h sockio.h stat.h stdio.h \ 168 sysctl.h syslimits.h syslog.h systm.h sys_domain.h time.h \ 169 types.h ubc.h ucontext.h ucred.h uio.h un.h unistd.h unpcb.h \ 170 utfconv.h unicode.h vm.h vmparam.h vnode.h vnode_if.h vsock.h xattr.h \ 171 _select.h _structs.h _types.h _endian.h __endian.h protosw.h domain.h \ 172 kpi_mbuf.h kpi_socket.h kpi_socketfilter.h \ 173 ttycom.h termios.h msg.h \ 174 wait.h \ 175 spawn.h timex.h commpage.h 176# The last line was added to export needed headers for the MAC calls 177# whose source is outside of the xnu/bsd tree. 178 179# Installs header file for Apple internal use for kernel extensions - 180# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders 181PRIVATE_KERNELFILES = \ 182 acct.h \ 183 attr_private.h \ 184 codesign.h \ 185 cprotect.h \ 186 content_protection.h \ 187 csr.h \ 188 decmpfs.h \ 189 dirent_private.h \ 190 disktab.h \ 191 disk_private.h \ 192 eventhandler.h \ 193 event_log.h \ 194 event_private.h \ 195 fbt.h \ 196 fcntl_private.h \ 197 fileport.h \ 198 fsctl.h \ 199 fslog.h \ 200 kern_memorystatus.h \ 201 kern_memorystatus_freeze.h \ 202 kpi_private.h \ 203 ktrace.h \ 204 kdebug_triage.h \ 205 kern_control_private.h \ 206 kern_event_private.h \ 207 linker_set.h \ 208 mach_swapon.h \ 209 monotonic.h \ 210 msgbuf.h \ 211 eventvar.h \ 212 persona.h \ 213 preoslog.h \ 214 proc_info.h \ 215 proc_info_private.h \ 216 pthread_shims.h \ 217 quota.h \ 218 reboot.h \ 219 resourcevar.h \ 220 sem_internal.h \ 221 shm_internal.h \ 222 signalvar.h \ 223 socket_private.h \ 224 sockio_private.h \ 225 stackshot.h \ 226 sys_domain_private.h \ 227 timeb.h times.h \ 228 tprintf.h \ 229 tty.h ttychars.h \ 230 ttydefaults.h ttydev.h \ 231 user.h \ 232 variant_internal.h \ 233 vfs_context.h \ 234 vmmeter.h \ 235 vsock_private.h \ 236 reason.h \ 237 spawn_internal.h \ 238 priv.h \ 239 pgo.h \ 240 memory_maintenance.h \ 241 doc_tombstone.h \ 242 fsevents.h \ 243 work_interval.h \ 244 kern_sysctl.h \ 245 vsock_transport.h \ 246 trust_caches.h \ 247 code_signing.h \ 248 lockdown_mode.h \ 249 250XNU_ONLY_EXPORTS = \ 251 bsdtask_info.h \ 252 file_internal.h \ 253 filedesc.h \ 254 guarded.h \ 255 kern_memorystatus_xnu.h \ 256 mount_internal.h \ 257 munge.h \ 258 pipe.h \ 259 proc_internal.h \ 260 proc_require.h \ 261 proc_ro.h \ 262 pthread_internal.h \ 263 resourcevar.h \ 264 semaphore.h \ 265 tree.h \ 266 uio_internal.h \ 267 ulock.h \ 268 ux_exception.h \ 269 vnode_internal.h \ 270 vsock_domain.h \ 271 code_signing_internal.h \ 272 trusted_execution_monitor.h \ 273 coalition.h \ 274 coalition_private.h 275 276# /usr/include 277INSTALL_MI_LIST = ${DATAFILES} 278 279INSTALL_DRIVERKIT_MI_LIST = ${DRIVERKIT_DATAFILES} 280 281INSTALL_MI_GEN_LIST = syscall.h _posix_availability.h _symbol_aliasing.h 282 283INSTALL_DRIVERKIT_MI_GEN_LIST = _posix_availability.h _symbol_aliasing.h 284 285INSTALL_MI_DIR = sys 286 287EXPORT_MI_LIST = $(sort ${KERNELFILES} ${PRIVATE_KERNELFILES} ${XNU_ONLY_EXPORTS}) 288 289EXPORT_MI_GEN_LIST = syscall.h sysproto.h 290 291EXPORT_MI_DIR = sys 292 293# /usr/local/include 294INSTALL_MI_LCL_LIST = $(sort \ 295 attr_private.h coalition_private.h code_signing.h codesign.h content_protection.h csr.h decmpfs.h dirent_private.h \ 296 disk_private.h event_log.h event_private.h fcntl_private.h fsevents.h fsgetpath_private.h guarded.h kas_info.h \ 297 kdebug_private.h kern_control_private.h kern_event_private.h kern_memorystatus.h mem_acct_private.h preoslog.h \ 298 proc_info_private.h reason.h resource_private.h socket_private.h sockio_private.h stackshot.h sys_domain_private.h \ 299 vsock_private.h work_interval.h ${EXTRA_PRIVATE_DATAFILES}) 300 301# /System/Library/Frameworks/System.framework/PrivateHeaders 302INSTALL_SF_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES} 303 304INSTALL_SF_MI_LCL_GEN_LIST = ${INSTALL_MI_GEN_LIST} 305 306INSTALL_DRIVERKIT_MI_LCL_LIST = ${DRIVERKIT_PRIVATE_DATAFILES} 307 308# /System/Library/Frameworks/Kernel.framework/PrivateHeaders 309INSTALL_KF_MI_LCL_LIST = ${KERNELFILES} ${PRIVATE_KERNELFILES} 310 311INSTALL_KF_MI_LCL_GEN_LIST = sysproto.h 312 313# /System/Library/Frameworks/Kernel.framework/Headers 314INSTALL_KF_MI_LIST = ${KERNELFILES} 315 316INSTALL_KF_MI_GEN_LIST = 317 318MAKESYSCALLS = $(SRCROOT)/bsd/kern/makesyscalls.sh 319 320$(OBJROOT)/cscope.genhdrs: 321 $(_v)mkdir -p $(OBJROOT)/cscope.genhdrs 322 323$(OBJROOT)/syscall.codes: $(TARGET)/bsd.syscalls.master 324 @$(LOG_GENERATE) "$(ColorLF)$@$(Color0) from $(ColorF)$(<F)$(Color0)" 325 $(_v)$(MAKESYSCALLS) $< trace > $@ 326 327 328$(OBJROOT)/trace.codes: $(SRCROOT)/bsd/kern/trace_codes $(OBJROOT)/syscall.codes 329 $(_v)sort -g $(SRCROOT)/bsd/kern/trace_codes $(OBJROOT)/syscall.codes >$@ 330 331syscall.h: $(TARGET)/bsd.syscalls.master $(OBJROOT)/cscope.genhdrs 332 @$(LOG_GENERATE) "$(ColorLF)bsd/sys/$@$(Color0) from $(ColorF)$(<F)$(Color0)" 333 @echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path 334 $(_v)$(MAKESYSCALLS) $< header > /dev/null 335 336sysproto.h: $(TARGET)/bsd.syscalls.master $(OBJROOT)/cscope.genhdrs 337 @$(LOG_GENERATE) "bsd/sys/$@$(Color0) from $(ColorF)$(<F)$(Color0)" 338 @echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path 339 $(_v)$(MAKESYSCALLS) $< proto > /dev/null 340 341MAKE_POSIX_AVAILABILITY = $(SRCROOT)/bsd/sys/make_posix_availability.sh 342_posix_availability.h: $(MAKE_POSIX_AVAILABILITY) 343 @$(LOG_GENERATE) "bsd/sys/$@$(Color0)" 344 $(_v)$(MAKE_POSIX_AVAILABILITY) "$@" 345 346MAKE_SYMBOL_ALIASING = $(SRCROOT)/bsd/sys/make_symbol_aliasing.sh 347_symbol_aliasing.h: $(MAKE_SYMBOL_ALIASING) 348 @$(LOG_GENERATE) "bsd/sys/$@$(Color0)" 349 $(_v)$(MAKE_SYMBOL_ALIASING) "$(SDKROOT)" "$@" 350 351# generated headers needed early (used by iig during installhdrs of iokit/DriverKit) 352SETUP_GEN_LIST = _posix_availability.h _symbol_aliasing.h 353ifneq ($(filter 1,$(EXCLAVEKIT) $(EXCLAVECORE)),) 354SETUP_GEN_LIST = 355endif 356 357do_build_setup:: $(SETUP_GEN_LIST) 358 359TRACE_CODES_DEST = \ 360 $(DSTROOT)/$(INSTALL_SHARE_MISC_DIR)/trace.codes 361 362$(TRACE_CODES_DEST): $(OBJROOT)/trace.codes 363 $(_v)$(MKDIR) $(DSTROOT)/$(INSTALL_SHARE_MISC_DIR) 364 @$(LOG_INSTALL) "$(@F)" 365 $(_v)$(INSTALL) $(INSTALL_FLAGS) $(OBJROOT)/trace.codes $@ 366 367do_textfiles_install_mi:: $(TRACE_CODES_DEST) 368 369ARIADNE_PLISTS = \ 370 xnu_exclaves.plist \ 371 xnu_epoch_sync.plist \ 372 xnu_suspension.plist 373 374ARIADNE_PLISTS_SRC = $(patsubst %,$(SRCROOT)/bsd/kern/ariadne_plists/%,$(ARIADNE_PLISTS)) 375ARIADNE_PLISTS_DEST = $(patsubst %,$(DSTROOT)/$(INSTALL_ARIADNE_PLISTS_DIR)/%,$(ARIADNE_PLISTS)) 376 377$(ARIADNE_PLISTS_DEST): $(ARIADNE_PLISTS_SRC) 378 $(_v)$(MKDIR) $(DSTROOT)/$(INSTALL_ARIADNE_PLISTS_DIR) 379 @$(LOG_INSTALL) "$(@F)" 380 $(_v)$(INSTALL) $(INSTALL_FLAGS) $< $@ 381 382do_textfiles_install_mi:: $(ARIADNE_PLISTS_DEST) 383 384include $(MakeInc_rule) 385include $(MakeInc_dir) 386