xref: /xnu-10002.81.5/osfmk/kern/Makefile (revision 5e3eaea39dcf651e66cb99ba7d70e32cc4a99587)
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	perfmon.h \
124	recount.h \
125	sched_hygiene.h \
126	smr.h \
127	smr_hash.h \
128	sync_sema.h \
129	ux_handler.h \
130	workload_config.h
131
132INSTALL_MI_LIST = ${DATAFILES}
133
134INSTALL_MODULEMAP_MI_LIST = ${MODULEMAPFILES}
135
136INSTALL_MI_LCL_LIST = cs_blobs.h debug.h ext_paniclog.h
137
138INSTALL_MODULEMAP_MI_LCL_LIST = ${PRIVATE_MODULEMAPFILES}
139
140INSTALL_SF_MI_LCL_LIST = ${DATAFILES} ${PRIVATE_DATAFILES}
141
142INSTALL_KF_MI_LIST = ${DATAFILES} ${PRIVATE_DATAFILES} ${EXPORT_FILES}
143
144INSTALL_KF_MI_LCL_LIST = $(sort ${DATAFILES} ${PRIVATE_DATAFILES} ${EXPORT_FILES} ${PRIVATE_EXPORT_FILES})
145
146INSTALL_MI_DIR = kern
147
148EXPORT_MI_LIST = $(sort ${INSTALL_KF_MI_LIST} ${INSTALL_KF_MI_LCL_LIST} ${XNU_ONLY_EXPORTS})
149
150EXPORT_MI_DIR = kern
151
152# build support for tightbeamc-generated files
153
154ifeq ($(XNU_CONFIG_TIGHTBEAM),1)
155TIGHTBEAM_FILES := exclaves_upcalls.tightbeam conclave_launcher.tightbeam
156endif
157
158GENERATED_HEADERS := $(patsubst %.tightbeam,%.tightbeam.h,$(TIGHTBEAM_FILES))
159GENERATED_IMPL := $(patsubst %.tightbeam,%.tightbeam.c,$(TIGHTBEAM_FILES))
160COMP_FILES := $(GENERATED_HEADERS) $(GENERATED_IMPL)
161
162$(GENERATED_HEADERS) : \
163	%.tightbeam.h : %.tightbeam
164	@$(LOG_TIGHTBEAMC) "$@"
165	$(_v)$(TIGHTBEAMC) --pass c --output-base $*.tightbeam.c $<
166
167$(GENERATED_IMPL) : $(GENERATED_HEADERS)
168
169do_build_all:: $(COMP_FILES)
170
171include $(MakeInc_rule)
172include $(MakeInc_dir)
173