1 2export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd 3export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def 4export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule 5export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir 6 7include $(MakeInc_cmd) 8include $(MakeInc_def) 9 10DATAFILES = \ 11 exc_guard.h \ 12 exc_resource.h \ 13 kern_cdata.h \ 14 kcdata.h 15 16MODULEMAPFILES = \ 17 kcdata.modulemap 18 19PRIVATE_DATAFILES = \ 20 arithmetic_128.h \ 21 block_hint.h \ 22 cambria_layout.h \ 23 cs_blobs.h \ 24 debug.h \ 25 ecc.h \ 26 lock_stat.h \ 27 monotonic.h \ 28 remote_time.h \ 29 restartable.h \ 30 trustcache.h \ 31 turnstile.h \ 32 socd_client.h 33 34PRIVATE_MODULEMAPFILES = \ 35 kern_debug.modulemap \ 36 kern_private.modulemap 37 38EXPORT_FILES = \ 39 affinity.h \ 40 assert.h \ 41 audit_sessionport.h \ 42 backtrace.h \ 43 bits.h \ 44 circle_queue.h \ 45 clock.h \ 46 coalition.h \ 47 counter.h \ 48 cpu_number.h \ 49 cpu_data.h \ 50 energy_perf.h \ 51 ext_paniclog.h \ 52 extmod_statistics.h \ 53 hv_io_notifier.h \ 54 hv_support.h \ 55 hv_support_kext.h \ 56 ipc_mig.h \ 57 ipc_misc.h \ 58 kalloc.h \ 59 kext_alloc.h \ 60 kern_types.h \ 61 kpc.h \ 62 ledger.h \ 63 lock.h \ 64 lock_attr.h \ 65 lock_group.h \ 66 lock_mtx.h \ 67 lock_rw.h \ 68 lock_sleep.h \ 69 lock_types.h \ 70 locks.h \ 71 host.h \ 72 hvg_hypercall.h \ 73 mach_param.h \ 74 macro_help.h \ 75 mpqueue.h \ 76 page_decrypt.h \ 77 pms.h \ 78 policy_internal.h \ 79 processor.h \ 80 queue.h \ 81 mpsc_queue.h \ 82 percpu.h \ 83 priority_queue.h \ 84 sched_prim.h \ 85 sfi.h \ 86 simple_lock.h \ 87 smr_types.h \ 88 startup.h \ 89 task.h \ 90 task_ref.h \ 91 telemetry.h \ 92 thread.h \ 93 thread_call.h \ 94 thread_group.h \ 95 timer_call.h \ 96 waitq.h \ 97 work_interval.h \ 98 zalloc.h 99 100 101# Installs header file for Apple internal use for kernel extensions - 102# $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders 103PRIVATE_EXPORT_FILES = \ 104 build_config.h \ 105 copyout_shim.h \ 106 kern_apfs_reflock.h \ 107 mach_filter.h \ 108 mach_node_link.h \ 109 sched_clutch.h \ 110 socd_client_kern.h \ 111 task_ident.h \ 112 ticket_lock.h \ 113 zalloc_ro_shim.h 114 115 116XNU_ONLY_EXPORTS = \ 117 arcade.h \ 118 btlog.h \ 119 cpc.h \ 120 iotrace.h \ 121 ipc_kobject.h \ 122 lock_ptr.h \ 123 recount.h \ 124 sched_hygiene.h \ 125 smr.h \ 126 smr_hash.h \ 127 sync_sema.h \ 128 ux_handler.h \ 129 workload_config.h 130 131INSTALL_MI_LIST = ${DATAFILES} 132 133INSTALL_MODULEMAP_MI_LIST = ${MODULEMAPFILES} 134 135INSTALL_MI_LCL_LIST = cs_blobs.h debug.h ext_paniclog.h 136 137INSTALL_MODULEMAP_MI_LCL_LIST = ${PRIVATE_MODULEMAPFILES} 138 139INSTALL_SF_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES} 140 141INSTALL_KF_MI_LIST = ${DATAFILES} ${PRIVATE_DATAFILES} ${EXPORT_FILES} 142 143INSTALL_KF_MI_LCL_LIST = $(sort ${DATAFILES} ${PRIVATE_DATAFILES} ${EXPORT_FILES} ${PRIVATE_EXPORT_FILES}) 144 145INSTALL_MI_DIR = kern 146 147EXPORT_MI_LIST = $(sort ${INSTALL_KF_MI_LIST} ${INSTALL_KF_MI_LCL_LIST} ${XNU_ONLY_EXPORTS}) 148 149EXPORT_MI_DIR = kern 150 151# build support for tightbeamc-generated files 152 153ifeq ($(XNU_CONFIG_TIGHTBEAM),1) 154TIGHTBEAM_FILES := \ 155 exclaves_conclave_launcher.tightbeam \ 156 exclaves_eic.tightbeam \ 157 exclaves_log.tightbeam \ 158 exclaves_upcalls.tightbeam \ 159 stackshot.tightbeam \ 160 exclaves_frame_mint.tightbeam 161 162TIGHTBEAM_MODULES := \ 163 SharedMemoryBase.tbmodule 164endif 165 166# This makes sure to not include any tbmodules which don't exist in the SDK and 167# expand the modules listed above to their full path in the SDK. The modules 168# should only be needed when actually building with CONFIG_EXCLAVES 169# (which can't easily be checked here). 170TIGHTBEAM_MODULES := $(patsubst %.tbmodule,$(TIGHTBEAM_MODULE_DIR)/%.tbmodule,$(TIGHTBEAM_MODULES)) 171TIGHTBEAM_MODULES := $(wildcard $(TIGHTBEAM_MODULES)) 172 173TIGHTBEAM_COMBINED_HDR := exclaves.tightbeam.h 174# Clear TIGHTBEAM_COMBINED_HDR if there are no tightbeam files/modules to be 175# compiled at all. 176ifeq ($(strip $(TIGHTBEAM_FILES)),) 177ifeq ($(strip $(TIGHTBEAM_MODULES)),) 178TIGHTBEAM_COMBINED_HDR := 179endif 180endif 181 182TIGHTBEAM_COMBINED_IMPL := $(patsubst %.h,%.c,$(TIGHTBEAM_COMBINED_HDR)) 183 184COMP_FILES := $(TIGHTBEAM_COMBINED_HDR) $(TIGHTBEAM_COMBINED_IMPL) 185 186$(TIGHTBEAM_COMBINED_IMPL) : $(TIGHTBEAM_FILES) $(TIGHTBEAM_MODULES) 187 @$(LOG_TIGHTBEAMC) "$@" 188 $(_v)$(TIGHTBEAMC) build generate-c --output-base $@ --codegen-version 2 $^ 189 190$(TIGHTBEAM_COMBINED_HDR) : $(TIGHTBEAM_COMBINED_IMPL) 191 192do_build_all:: $(COMP_FILES) 193 194include $(MakeInc_rule) 195include $(MakeInc_dir) 196