export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
-
include $(MakeInc_cmd)
include $(MakeInc_def)
INSTINC_SUBDIRS = \
-
-INSTINC_SUBDIRS_PPC = \
-
-INSTINC_SUBDIRS_I386 = \
+ _types
EXPINC_SUBDIRS = \
+ _types
-EXPINC_SUBDIRS_PPC = \
-
-EXPINC_SUBDIRS_I386 = \
-
-# In both the framework PrivateHeader area and /usr/include/sys
+# Installs header file for user level -
+# $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
+# $(DSTROOT)/usr/include/
DATAFILES = \
- appleapiopts.h acct.h aio.h attr.h \
- buf.h cdefs.h conf.h \
- dir.h dirent.h disk.h dkstat.h \
- errno.h ev.h event.h fcntl.h file.h filedesc.h filio.h gmon.h \
+ appleapiopts.h acct.h aio.h attr.h \
+ buf.h cdefs.h clonefile.h conf.h \
+ dir.h dirent.h disk.h dkstat.h dtrace.h dtrace_glue.h dtrace_impl.h \
+ errno.h ev.h event.h fasttrap.h fasttrap_isa.h fcntl.h file.h filedesc.h filio.h fsgetpath.h gmon.h \
ioccom.h ioctl.h \
- ioctl_compat.h ipc.h kernel.h kernel_types.h kern_event.h loadable_fs.h lock.h lockf.h \
- kauth.h kdebug.h md5.h kern_control.h malloc.h \
- mbuf.h mman.h mount.h msg.h msgbuf.h mtio.h netport.h param.h paths.h pipe.h poll.h \
- proc.h ptrace.h queue.h quota.h random.h reboot.h resource.h resourcevar.h \
- select.h sem.h semaphore.h shm.h signal.h signalvar.h socket.h socketvar.h sockio.h stat.h \
- syscall.h sysctl.h syslimits.h syslog.h sys_domain.h termios.h time.h \
+ ioctl_compat.h ipc.h kernel.h kernel_types.h kern_event.h lctx.h loadable_fs.h lock.h lockf.h \
+ kauth.h kdebug.h kdebug_signpost.h kern_control.h lockstat.h malloc.h \
+ mbuf.h mman.h mount.h msg.h msgbuf.h netport.h param.h paths.h pipe.h poll.h \
+ proc.h proc_info.h ptrace.h queue.h quota.h reboot.h resource.h resourcevar.h \
+ sbuf.h posix_sem.h posix_shm.h random.h sdt.h\
+ select.h sem.h semaphore.h shm.h signal.h signalvar.h snapshot.h socket.h socketvar.h sockio.h stat.h stdio.h \
+ sysctl.h syslimits.h syslog.h sys_domain.h termios.h time.h \
timeb.h times.h tprintf.h trace.h tty.h ttychars.h ttycom.h \
ttydefaults.h ttydev.h types.h ubc.h ucontext.h ucred.h uio.h un.h unistd.h unpcb.h \
- user.h utfconv.h utsname.h vadvise.h vcmd.h version.h \
+ user.h utfconv.h utsname.h vadvise.h vcmd.h \
vm.h vmmeter.h vmparam.h vnioctl.h vnode.h vnode_if.h vstat.h wait.h xattr.h \
- _types.h _endian.h domain.h protosw.h
+ _select.h _structs.h _types.h _endian.h domain.h protosw.h \
+ spawn.h timex.h commpage.h log_data.h
+
+# Installs header file for DriverKit drivers -
+# $(DSTROOT)/System/DriverKit/System/usr/include/
+DRIVERKIT_DATAFILES = \
+ cdefs.h _types.h
-# Only in the framework PrivateHeader area
+# Installs header file for Apple internal use in user level -
+# $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
PRIVATE_DATAFILES = \
+ attr.h \
+ cdefs.h \
+ clonefile.h \
+ coalition.h \
+ codesign.h \
+ content_protection.h \
+ csr.h \
+ decmpfs.h \
+ disk.h \
disklabel.h \
+ domain.h \
+ event.h \
+ fcntl.h \
+ fileport.h \
+ fsctl.h \
+ fsevents.h \
+ fsgetpath.h \
+ fslog.h \
+ guarded.h \
+ imgsrc.h \
ipcs.h \
- sem_internal.h \
+ kas_info.h \
+ kdebug.h \
+ kern_control.h \
+ kern_event.h \
+ kern_memorystatus.h \
+ kern_memorystatus_freeze.h \
+ kern_memorystatus_notify.h \
+ kern_overrides.h \
+ kern_sysctl.h \
+ mbuf.h \
+ mman.h \
+ monotonic.h \
+ persona.h \
+ priv.h \
+ proc.h \
+ proc_info.h \
+ proc_uuid_policy.h \
+ process_policy.h \
+ reason.h \
+ resource.h \
+ sfi.h \
shm_internal.h \
+ snapshot.h \
+ socket.h \
+ socketvar.h \
+ sockio.h \
+ spawn.h \
+ spawn_internal.h \
+ stackshot.h \
+ sys_domain.h \
+ tree.h \
+ ulock.h \
+ unpcb.h \
ux_exception.h \
- ktrace.h \
- proc_info.h \
- vnioctl.h
+ work_interval.h \
+ process_policy.h \
+ proc_uuid_policy.h \
+ priv.h \
+ pgo.h \
+ memory_maintenance.h \
+ commpage.h
+
+# Installs header file for Apple internal use by DriverKit drivers -
+# $(DSTROOT)/System/DriverKit/System/usr/local/include/
+DRIVERKIT_PRIVATE_DATAFILES = \
+ appleapiopts.h kdebug.h
-# KERNELFILES will appear only in the kernel framework
+# Installs header file for kernel extensions -
+# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/Headers
+# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
KERNELFILES = \
- appleapiopts.h attr.h \
+ appleapiopts.h attr.h \
buf.h cdefs.h conf.h \
- dir.h dirent.h disk.h dkstat.h \
- errno.h ev.h event.h fcntl.h file.h filedesc.h filio.h \
- ioccom.h ioctl.h \
- ioctl_compat.h kernel.h kernel_types.h kern_event.h lock.h lockf.h \
- kauth.h kdebug.h md5.h kern_control.h malloc.h namei.h \
- mman.h mbuf.h mount.h mtio.h netport.h param.h paths.h \
- proc.h queue.h quota.h random.h resource.h resourcevar.h \
- select.h signal.h socket.h socketvar.h sockio.h stat.h \
+ dir.h dirent.h disk.h disklabel.h dkstat.h \
+ errno.h ev.h event.h fcntl.h file.h filio.h \
+ ioccom.h ioctl.h ipc.h \
+ ioctl_compat.h kernel.h kernel_types.h kern_event.h lock.h lockf.h \
+ kauth.h kdebug.h kdebug_kernel.h md5.h kern_control.h imgact.h malloc.h \
+ namei.h mman.h mbuf.h mount.h netport.h param.h paths.h \
+ proc.h queue.h random.h resource.h \
+ sbuf.h posix_sem.h posix_shm.h sem.h shm.h \
+ select.h signal.h socket.h socketvar.h sockio.h stat.h stdio.h \
sysctl.h syslimits.h syslog.h systm.h sys_domain.h time.h \
types.h ubc.h ucontext.h ucred.h uio.h un.h unistd.h unpcb.h \
- utfconv.h version.h \
- vm.h vmparam.h vnode.h vnode_if.h xattr.h \
- _types.h _endian.h protosw.h domain.h \
+ utfconv.h vm.h vmparam.h vnode.h vnode_if.h xattr.h \
+ _select.h _structs.h _types.h _endian.h protosw.h domain.h \
kpi_mbuf.h kpi_socket.h kpi_socketfilter.h \
- ttycom.h termios.h
+ ttycom.h termios.h msg.h \
+ wait.h \
+ spawn.h timex.h commpage.h
+# The last line was added to export needed headers for the MAC calls
+# whose source is outside of the xnu/bsd tree.
-
-# Only in the private kernel framework
+# Installs header file for Apple internal use for kernel extensions -
+# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
PRIVATE_KERNELFILES = \
+ codesign.h \
+ cprotect.h \
+ content_protection.h \
+ csr.h \
+ decmpfs.h \
disktab.h \
- file_internal.h \
+ eventhandler.h \
+ fbt.h \
+ fileport.h \
+ fsctl.h \
+ fslog.h \
+ kasl.h \
+ kern_memorystatus.h \
+ kern_memorystatus_freeze.h \
+ kern_memorystatus_notify.h \
+ kpi_private.h \
+ ktrace.h \
mach_swapon.h \
+ monotonic.h \
msgbuf.h \
eventvar.h \
- mount_internal.h \
- proc_internal.h \
- ptrace_internal.h \
- vnode_internal.h \
+ persona.h \
+ proc_info.h \
+ pthread_shims.h \
+ quota.h \
+ reboot.h \
+ sem_internal.h \
+ shm_internal.h \
signalvar.h \
+ stackshot.h \
tty.h ttychars.h \
ttydefaults.h ttydev.h \
user.h \
- ubc_internal.h \
+ vfs_context.h \
+ vmmeter.h \
+ reason.h \
+ spawn_internal.h \
+ priv.h \
+ pgo.h \
+ memory_maintenance.h \
+ doc_tombstone.h \
+ fsevents.h \
+ work_interval.h \
+ kern_sysctl.h \
+
+XNU_ONLY_EXPORTS = \
+ bsdtask_info.h \
+ file_internal.h \
+ filedesc.h \
+ guarded.h \
+ linker_set.h \
+ mount_internal.h \
+ munge.h \
+ pipe.h \
+ proc_internal.h \
+ pthread_internal.h \
+ resourcevar.h \
+ semaphore.h \
+ tree.h \
uio_internal.h \
- vfs_context.h
-
+ ulock.h \
+ ux_exception.h \
+ vnode_internal.h
+# /usr/include
INSTALL_MI_LIST = ${DATAFILES}
+INSTALL_DRIVERKIT_MI_LIST = ${DRIVERKIT_DATAFILES}
+
+INSTALL_MI_GEN_LIST = syscall.h _posix_availability.h _symbol_aliasing.h
+
+INSTALL_DRIVERKIT_MI_GEN_LIST = _posix_availability.h _symbol_aliasing.h
+
INSTALL_MI_DIR = sys
-EXPORT_MI_LIST = ${KERNELFILES} ${PRIVATE_KERNELFILES} syscall.h ktrace.h linker_set.h bsdtask_info.h
+EXPORT_MI_LIST = ${KERNELFILES} ${PRIVATE_KERNELFILES} ${XNU_ONLY_EXPORTS}
+
+EXPORT_MI_GEN_LIST = syscall.h sysproto.h kdebugevents.h
EXPORT_MI_DIR = sys
# /System/Library/Frameworks/System.framework/PrivateHeaders
-INSTALL_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES}
+INSTALL_MI_LCL_LIST = ${PRIVATE_DATAFILES}
-# /System/Library/Frameworks/Kernel.framework/PrivateHeaders
+INSTALL_DRIVERKIT_MI_LCL_LIST = ${DRIVERKIT_PRIVATE_DATAFILES}
+# /System/Library/Frameworks/Kernel.framework/PrivateHeaders
INSTALL_KF_MI_LCL_LIST = ${KERNELFILES} ${PRIVATE_KERNELFILES}
-# /System/Library/Frameworks/Kernel.framework/Headers
+INSTALL_KF_MI_LCL_GEN_LIST = sysproto.h
+# /System/Library/Frameworks/Kernel.framework/Headers
INSTALL_KF_MI_LIST = ${KERNELFILES}
-include $(MakeInc_rule)
-include $(MakeInc_dir)
+INSTALL_KF_MI_GEN_LIST =
+
+MAKESYSCALLS = $(SRCROOT)/bsd/kern/makesyscalls.sh
+MAKEKDEBUGEVENTS = $(SRCROOT)/bsd/kern/makekdebugevents.py
+
+$(OBJROOT)/cscope.genhdrs:
+ $(_v)mkdir -p $(OBJROOT)/cscope.genhdrs
+
+$(OBJROOT)/syscall.codes: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS)
+ $(call makelog,[$(CMD_MC)] $(ColorH)GENERATING$(Color0) $(ColorLF)$@$(Color0) from $(ColorF)$<$(Color0))
+ $(_v)$(MAKESYSCALLS) $< trace > $@
+$(OBJROOT)/trace.codes: $(SRCROOT)/bsd/kern/trace_codes $(OBJROOT)/syscall.codes
+ $(_v)sort -g $(SRCROOT)/bsd/kern/trace_codes $(OBJROOT)/syscall.codes >$@
+syscall.h: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS) $(OBJROOT)/cscope.genhdrs
+ $(call makelog,[$(CMD_MC)] $(ColorH)GENERATING$(Color0) $(ColorLF)bsd/sys/$@$(Color0) from $(ColorF)$<$(Color0))
+ @echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
+ $(_v)$(MAKESYSCALLS) $< header > /dev/null
+
+sysproto.h: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS) $(OBJROOT)/cscope.genhdrs
+ $(call makelog,[$(CMD_MC)] $(ColorH)GENERATING$(Color0) $(ColorLF)bsd/sys/$@$(Color0) from $(ColorF)$<$(Color0))
+ @echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
+ $(_v)$(MAKESYSCALLS) $< proto > /dev/null
+
+kdebugevents.h: $(OBJROOT)/trace.codes $(MAKEKDEBUGEVENTS) $(OBJROOT)/cscope.genhdrs
+ $(call makelog,[$(CMD_MC)] $(ColorH)GENERATING$(Color0) $(ColorLF)bsd/sys/$@$(Color0) from $(ColorF)$<$(Color0))
+ @echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
+ $(_v)$(MAKEKDEBUGEVENTS) $< > "$(OBJPATH)/bsd/sys/$@"
+
+MAKE_POSIX_AVAILABILITY = $(SRCROOT)/bsd/sys/make_posix_availability.sh
+_posix_availability.h: $(MAKE_POSIX_AVAILABILITY)
+ $(call makelog,[$(CMD_MC)] $(ColorH)GENERATING$(Color0) $(ColorLF)bsd/sys/$@$(Color0))
+ $(_v)$(MAKE_POSIX_AVAILABILITY) "$@"
+
+MAKE_SYMBOL_ALIASING = $(SRCROOT)/bsd/sys/make_symbol_aliasing.sh
+_symbol_aliasing.h: $(MAKE_SYMBOL_ALIASING)
+ $(call makelog,[$(CMD_MC)] $(ColorH)GENERATING$(Color0) $(ColorLF)bsd/sys/$@$(Color0))
+ $(_v)$(MAKE_SYMBOL_ALIASING) "$(SDKROOT)" "$@"
+
+# generated headers needed early (used by iig during installhdrs of iokit/DriverKit)
+SETUP_GEN_LIST = _posix_availability.h _symbol_aliasing.h
+
+do_build_setup:: $(SETUP_GEN_LIST)
+
+TRACE_CODES_DEST = \
+ $(DSTROOT)/$(INSTALL_SHARE_MISC_DIR)/trace.codes
+
+$(TRACE_CODES_DEST): $(OBJROOT)/trace.codes
+ $(_v)$(MKDIR) $(DSTROOT)/$(INSTALL_SHARE_MISC_DIR)
+ $(call makelog,INSTALL $(@F))
+ $(_v)$(INSTALL) $(INSTALL_FLAGS) $(OBJROOT)/trace.codes $@
+
+do_textfiles_install:: $(TRACE_CODES_DEST)
+
+include $(MakeInc_rule)
+include $(MakeInc_dir)