gems-kernel/source/THIRDPARTY/xnu/bsd/sys/Makefile
2024-06-03 11:29:39 -05:00

349 lines
9.8 KiB
Makefile

export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
include $(MakeInc_cmd)
include $(MakeInc_def)
INSTINC_SUBDIRS = \
_types
EXPINC_SUBDIRS = \
_types
# Files that are public on macOS, but private on embedded
EMBEDDED_PRIVATE_DATAFILES = \
disk.h ioctl_compat.h kdebug.h kern_control.h kernel_types.h proc_info.h reboot.h ttychars.h ttydev.h vnode.h
ifeq ($(filter $(SUPPORTED_EMBEDDED_PLATFORMS) $(SUPPORTED_SIMULATOR_PLATFORMS),$(PLATFORM)),)
EXTRA_DATAFILES = $(EMBEDDED_PRIVATE_DATAFILES)
else
EXTRA_PRIVATE_DATAFILES = $(EMBEDDED_PRIVATE_DATAFILES)
endif
# Installs header file for user level -
# $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
# $(DSTROOT)/usr/include/
# Most of these are covered by CoreOSModuleMaps because some of them are mixed
# in with related headers in other directories from other projects, or mixed
# in with headers from other projects in sys/.
DATAFILES = $(sort \
appleapiopts.h acct.h aio.h attr.h \
buf.h cdefs.h clonefile.h conf.h constrained_ctypes.h \
dir.h dirent.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 \
ipc.h kernel.h kern_event.h lctx.h loadable_fs.h lock.h lockf.h \
kauth.h kdebug_signpost.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 ptrace.h queue.h quota.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 trace.h tty.h ttycom.h \
ttydefaults.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 \
vm.h vmmeter.h vmparam.h vnode_if.h vsock.h vstat.h wait.h xattr.h \
_select.h _structs.h _types.h _endian.h domain.h protosw.h \
spawn.h timex.h commpage.h log_data.h \
$(EXTRA_DATAFILES))
MODULEMAPFILES = \
darwin_cdefs.modulemap \
darwin_posix_sys_types.modulemap
# Installs header file for DriverKit drivers -
# $(DSTROOT)/System/DriverKit/System/usr/include/
DRIVERKIT_DATAFILES = \
cdefs.h _types.h _endian.h time.h
# Installs header file for Apple internal use in user level -
# $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
# These are covered by CoreOSModuleMaps because they're mixed in with headers
# from other projects in sys/.
PRIVATE_DATAFILES = $(sort \
attr.h \
cdefs.h \
clonefile.h \
coalition.h \
codesign.h \
constrained_ctypes.h \
content_protection.h \
crossarch.h \
csr.h \
decmpfs.h \
disk.h \
disklabel.h \
domain.h \
event.h \
event_log.h \
event_private.h \
fcntl.h \
fileport.h \
fsctl.h \
fsevents.h \
fsgetpath.h \
fslog.h \
guarded.h \
imgsrc.h \
ipcs.h \
kas_info.h \
kdebug.h \
kdebug_private.h \
kdebug_triage.h \
kern_debug.h \
kern_event.h \
kern_memorystatus.h \
kern_memorystatus_freeze.h \
kern_overrides.h \
kern_sysctl.h \
mbuf.h \
mman.h \
monotonic.h \
persona.h \
preoslog.h \
priv.h \
proc.h \
proc_info_private.h \
proc_uuid_policy.h \
process_policy.h \
reason.h \
resource.h \
resource_private.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 \
variant_internal.h \
vsock.h \
work_interval.h \
process_policy.h \
proc_uuid_policy.h \
priv.h \
pgo.h \
memory_maintenance.h \
commpage.h \
$(EXTRA_PRIVATE_DATAFILES))
# Installs header file for Apple internal use by DriverKit drivers -
# $(DSTROOT)/System/DriverKit/System/usr/local/include/
DRIVERKIT_PRIVATE_DATAFILES = \
appleapiopts.h kdebug.h kdebug_private.h queue.h
# 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 \
buf.h cdefs.h conf.h constrained_ctypes.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_private.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 resource_private.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 unicode.h vm.h vmparam.h vnode.h vnode_if.h vsock.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 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.
# Installs header file for Apple internal use for kernel extensions -
# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
PRIVATE_KERNELFILES = \
acct.h \
codesign.h \
cprotect.h \
content_protection.h \
csr.h \
decmpfs.h \
disktab.h \
eventhandler.h \
event_log.h \
event_private.h \
fbt.h \
fileport.h \
fsctl.h \
fslog.h \
kern_memorystatus.h \
kern_memorystatus_freeze.h \
kpi_private.h \
ktrace.h \
kdebug_triage.h \
linker_set.h \
mach_swapon.h \
monotonic.h \
msgbuf.h \
eventvar.h \
persona.h \
preoslog.h \
proc_info.h \
proc_info_private.h \
pthread_shims.h \
quota.h \
reboot.h \
resourcevar.h \
sem_internal.h \
shm_internal.h \
signalvar.h \
stackshot.h \
timeb.h times.h \
tprintf.h \
tty.h ttychars.h \
ttydefaults.h ttydev.h \
user.h \
variant_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 \
vsock_transport.h \
trust_caches.h \
code_signing.h \
lockdown_mode.h \
XNU_ONLY_EXPORTS = \
bsdtask_info.h \
file_internal.h \
filedesc.h \
guarded.h \
mount_internal.h \
munge.h \
pipe.h \
proc_internal.h \
proc_require.h \
proc_ro.h \
pthread_internal.h \
resourcevar.h \
semaphore.h \
tree.h \
uio_internal.h \
ulock.h \
ux_exception.h \
vnode_internal.h \
vsock_domain.h \
code_signing_internal.h \
trusted_execution_monitor.h
# /usr/include
INSTALL_MI_LIST = ${DATAFILES}
INSTALL_MODULEMAP_MI_LIST = ${MODULEMAPFILES}
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 = $(sort ${KERNELFILES} ${PRIVATE_KERNELFILES} ${XNU_ONLY_EXPORTS})
EXPORT_MI_GEN_LIST = syscall.h sysproto.h
EXPORT_MI_DIR = sys
# /usr/local/include
INSTALL_MI_LCL_LIST = $(sort \
codesign.h content_protection.h csr.h decmpfs.h event_private.h fsevents.h guarded.h \
kdebug_private.h kern_memorystatus.h preoslog.h proc_info_private.h \
reason.h resource_private.h stackshot.h work_interval.h event_log.h code_signing.h \
${EXTRA_PRIVATE_DATAFILES})
# /System/Library/Frameworks/System.framework/PrivateHeaders
INSTALL_SF_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES}
INSTALL_SF_MI_LCL_GEN_LIST = ${INSTALL_MI_GEN_LIST}
INSTALL_DRIVERKIT_MI_LCL_LIST = ${DRIVERKIT_PRIVATE_DATAFILES}
# /System/Library/Frameworks/Kernel.framework/PrivateHeaders
INSTALL_KF_MI_LCL_LIST = ${KERNELFILES} ${PRIVATE_KERNELFILES}
INSTALL_KF_MI_LCL_GEN_LIST = sysproto.h
# /System/Library/Frameworks/Kernel.framework/Headers
INSTALL_KF_MI_LIST = ${KERNELFILES}
INSTALL_KF_MI_GEN_LIST =
MAKESYSCALLS = $(SRCROOT)/bsd/kern/makesyscalls.sh
$(OBJROOT)/cscope.genhdrs:
$(_v)mkdir -p $(OBJROOT)/cscope.genhdrs
$(OBJROOT)/syscall.codes: $(TARGET)/bsd.syscalls.master
@$(LOG_GENERATE) "$(ColorLF)$@$(Color0) from $(ColorF)$(<F)$(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: $(TARGET)/bsd.syscalls.master $(OBJROOT)/cscope.genhdrs
@$(LOG_GENERATE) "$(ColorLF)bsd/sys/$@$(Color0) from $(ColorF)$(<F)$(Color0)"
@echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
$(_v)$(MAKESYSCALLS) $< header > /dev/null
sysproto.h: $(TARGET)/bsd.syscalls.master $(OBJROOT)/cscope.genhdrs
@$(LOG_GENERATE) "bsd/sys/$@$(Color0) from $(ColorF)$(<F)$(Color0)"
@echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
$(_v)$(MAKESYSCALLS) $< proto > /dev/null
MAKE_POSIX_AVAILABILITY = $(SRCROOT)/bsd/sys/make_posix_availability.sh
_posix_availability.h: $(MAKE_POSIX_AVAILABILITY)
@$(LOG_GENERATE) "bsd/sys/$@$(Color0)"
$(_v)$(MAKE_POSIX_AVAILABILITY) "$@"
MAKE_SYMBOL_ALIASING = $(SRCROOT)/bsd/sys/make_symbol_aliasing.sh
_symbol_aliasing.h: $(MAKE_SYMBOL_ALIASING)
@$(LOG_GENERATE) "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
ifneq ($(filter 1,$(EXCLAVEKIT) $(EXCLAVECORE)),)
SETUP_GEN_LIST =
endif
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)
@$(LOG_INSTALL) "$(@F)"
$(_v)$(INSTALL) $(INSTALL_FLAGS) $(OBJROOT)/trace.codes $@
do_textfiles_install_mi:: $(TRACE_CODES_DEST)
include $(MakeInc_rule)
include $(MakeInc_dir)