xref: /xnu-11215/bsd/sys/Makefile (revision bb611c8f)
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# Installs header file for user level -
16#	  $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
17#	  $(DSTROOT)/usr/include/
18DATAFILES = \
19	appleapiopts.h	acct.h aio.h attr.h \
20	buf.h cdefs.h clonefile.h conf.h \
21	dir.h dirent.h disk.h dkstat.h dtrace.h dtrace_glue.h dtrace_impl.h \
22	errno.h ev.h event.h fasttrap.h fasttrap_isa.h fcntl.h file.h filedesc.h filio.h fsgetpath.h gmon.h \
23	ioccom.h ioctl.h \
24	ioctl_compat.h ipc.h kernel.h kernel_types.h kern_event.h lctx.h loadable_fs.h lock.h lockf.h \
25	kauth.h kdebug.h kdebug_signpost.h kern_control.h lockstat.h malloc.h \
26	mbuf.h mman.h mount.h msg.h msgbuf.h netport.h param.h paths.h pipe.h poll.h \
27	proc.h  proc_info.h ptrace.h queue.h quota.h reboot.h resource.h resourcevar.h \
28	sbuf.h posix_sem.h posix_shm.h random.h sdt.h\
29	select.h sem.h semaphore.h shm.h signal.h signalvar.h snapshot.h socket.h socketvar.h sockio.h stat.h stdio.h \
30	sysctl.h syslimits.h syslog.h sys_domain.h termios.h  time.h \
31	timeb.h times.h tprintf.h trace.h tty.h  ttychars.h ttycom.h \
32	ttydefaults.h ttydev.h  types.h ubc.h ucontext.h ucred.h uio.h un.h unistd.h unpcb.h \
33	user.h utfconv.h utsname.h vadvise.h vcmd.h \
34	vm.h vmmeter.h vmparam.h vnioctl.h vnode.h vnode_if.h vsock.h vstat.h wait.h xattr.h \
35	_select.h _structs.h _types.h _endian.h domain.h protosw.h \
36	spawn.h timex.h commpage.h log_data.h
37
38# Installs header file for DriverKit drivers -
39#	  $(DSTROOT)/System/DriverKit/System/usr/include/
40DRIVERKIT_DATAFILES = \
41	cdefs.h _types.h _endian.h
42
43# Installs header file for Apple internal use in user level -
44#	  $(DSTROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
45PRIVATE_DATAFILES = \
46	attr.h \
47	cdefs.h \
48	clonefile.h \
49	coalition.h \
50	codesign.h \
51	content_protection.h \
52	csr.h \
53	decmpfs.h \
54	disk.h \
55	disklabel.h \
56	domain.h \
57	event.h \
58	fcntl.h \
59	fileport.h \
60	fsctl.h \
61	fsevents.h \
62	fsgetpath.h \
63	fslog.h \
64	guarded.h \
65	imgsrc.h \
66	ipcs.h \
67	kas_info.h \
68	kdebug.h \
69	kern_control.h \
70	kern_event.h \
71	kern_memorystatus.h \
72	kern_memorystatus_freeze.h \
73	kern_memorystatus_notify.h \
74	kern_overrides.h \
75	kern_sysctl.h \
76	mbuf.h \
77	mman.h \
78	monotonic.h \
79	persona.h \
80	priv.h \
81	proc.h \
82	proc_info.h \
83	proc_uuid_policy.h \
84	process_policy.h \
85	reason.h \
86	resource.h \
87	sfi.h \
88	shm_internal.h \
89	snapshot.h \
90	socket.h \
91	socketvar.h \
92	sockio.h \
93	spawn.h \
94	spawn_internal.h \
95	stackshot.h \
96	sys_domain.h \
97	tree.h \
98	ulock.h \
99	unpcb.h \
100	ux_exception.h \
101	vsock.h \
102	work_interval.h \
103	process_policy.h \
104	proc_uuid_policy.h \
105	priv.h \
106	pgo.h \
107	memory_maintenance.h \
108	commpage.h
109
110# Installs header file for Apple internal use by DriverKit drivers -
111#	  $(DSTROOT)/System/DriverKit/System/usr/local/include/
112DRIVERKIT_PRIVATE_DATAFILES = \
113	appleapiopts.h kdebug.h
114
115# Installs header file for kernel extensions -
116#	  $(DSTROOT)/System/Library/Frameworks/Kernel.framework/Headers
117#	  $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
118KERNELFILES = \
119	appleapiopts.h	 attr.h \
120	buf.h cdefs.h conf.h \
121	dir.h dirent.h disk.h disklabel.h dkstat.h  \
122	errno.h ev.h event.h fcntl.h file.h filio.h \
123	ioccom.h ioctl.h ipc.h \
124	ioctl_compat.h  kernel.h kernel_types.h kern_event.h lock.h lockf.h \
125	kauth.h kdebug.h kdebug_kernel.h md5.h kern_control.h imgact.h malloc.h \
126	namei.h mman.h mbuf.h mount.h netport.h param.h paths.h \
127	proc.h  queue.h random.h resource.h \
128	sbuf.h posix_sem.h posix_shm.h sem.h shm.h \
129	select.h signal.h socket.h socketvar.h sockio.h stat.h stdio.h \
130	sysctl.h syslimits.h syslog.h systm.h sys_domain.h  time.h \
131	types.h ubc.h ucontext.h ucred.h uio.h un.h unistd.h unpcb.h \
132	utfconv.h unicode.h vm.h vmparam.h vnode.h vnode_if.h vsock.h xattr.h \
133	_select.h _structs.h _types.h _endian.h protosw.h domain.h \
134	kpi_mbuf.h kpi_socket.h kpi_socketfilter.h \
135	ttycom.h termios.h msg.h \
136	wait.h \
137	spawn.h timex.h commpage.h
138# The last line was added to export needed headers for the MAC calls
139# whose source is outside of the xnu/bsd tree.
140
141# Installs header file for Apple internal use for kernel extensions -
142#	  $(DSTROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders
143PRIVATE_KERNELFILES = \
144	codesign.h \
145	cprotect.h \
146	content_protection.h \
147	csr.h \
148	decmpfs.h \
149	disktab.h \
150	eventhandler.h \
151	fbt.h \
152	fileport.h \
153	fsctl.h \
154	fslog.h \
155	kasl.h \
156	kern_memorystatus.h \
157	kern_memorystatus_freeze.h \
158	kern_memorystatus_notify.h \
159	kpi_private.h \
160	ktrace.h \
161	linker_set.h \
162	mach_swapon.h \
163	monotonic.h \
164	msgbuf.h \
165	eventvar.h \
166	persona.h \
167	proc_info.h \
168	pthread_shims.h \
169	quota.h \
170	reboot.h \
171	sem_internal.h \
172	shm_internal.h \
173	signalvar.h \
174	stackshot.h \
175	tty.h  ttychars.h \
176	ttydefaults.h ttydev.h \
177	user.h \
178	vfs_context.h \
179	vmmeter.h \
180	reason.h \
181	spawn_internal.h \
182	priv.h \
183	pgo.h \
184	memory_maintenance.h \
185	doc_tombstone.h \
186	fsevents.h \
187	work_interval.h \
188	kern_sysctl.h \
189	vsock_transport.h \
190
191XNU_ONLY_EXPORTS = \
192	bsdtask_info.h \
193	file_internal.h \
194	filedesc.h \
195	guarded.h \
196	mount_internal.h \
197	munge.h \
198	pipe.h \
199	proc_internal.h \
200	proc_require.h \
201	pthread_internal.h \
202	resourcevar.h \
203	semaphore.h \
204	tree.h \
205	uio_internal.h \
206	ulock.h \
207	ux_exception.h \
208	vnode_internal.h \
209	vsock_domain.h
210
211MODULEMAP_INCDIR_FILES = \
212	sys__types.modulemap \
213	sys_types.modulemap \
214	sys_cdefs.modulemap
215
216# /usr/include
217INSTALL_MI_LIST	= ${DATAFILES}
218
219INSTALL_DRIVERKIT_MI_LIST = ${DRIVERKIT_DATAFILES}
220
221INSTALL_MODULEMAP_INCDIR_MI_LIST = ${MODULEMAP_INCDIR_FILES}
222
223INSTALL_MI_GEN_LIST = syscall.h _posix_availability.h _symbol_aliasing.h
224
225INSTALL_DRIVERKIT_MI_GEN_LIST = _posix_availability.h _symbol_aliasing.h
226
227INSTALL_MI_DIR = sys
228
229EXPORT_MI_LIST	= ${KERNELFILES} ${PRIVATE_KERNELFILES} ${XNU_ONLY_EXPORTS}
230
231EXPORT_MI_GEN_LIST = syscall.h sysproto.h
232
233EXPORT_MI_DIR = sys
234
235# /System/Library/Frameworks/System.framework/PrivateHeaders
236INSTALL_MI_LCL_LIST = ${PRIVATE_DATAFILES}
237
238INSTALL_DRIVERKIT_MI_LCL_LIST = ${DRIVERKIT_PRIVATE_DATAFILES}
239
240# /System/Library/Frameworks/Kernel.framework/PrivateHeaders
241INSTALL_KF_MI_LCL_LIST =  ${KERNELFILES} ${PRIVATE_KERNELFILES}
242
243INSTALL_KF_MI_LCL_GEN_LIST = sysproto.h
244
245# /System/Library/Frameworks/Kernel.framework/Headers
246INSTALL_KF_MI_LIST = ${KERNELFILES}
247
248INSTALL_KF_MI_GEN_LIST =
249
250MAKESYSCALLS = $(SRCROOT)/bsd/kern/makesyscalls.sh
251
252$(OBJROOT)/cscope.genhdrs:
253	$(_v)mkdir -p $(OBJROOT)/cscope.genhdrs
254
255$(OBJROOT)/syscall.codes: $(TARGET)/bsd.syscalls.master
256	@$(LOG_GENERATE) "$(ColorLF)$@$(Color0) from $(ColorF)$(<F)$(Color0)"
257	$(_v)$(MAKESYSCALLS) $< trace > $@
258
259$(OBJROOT)/trace.codes: $(SRCROOT)/bsd/kern/trace_codes $(OBJROOT)/syscall.codes
260	$(_v)sort -g $(SRCROOT)/bsd/kern/trace_codes $(OBJROOT)/syscall.codes >$@
261
262syscall.h: $(TARGET)/bsd.syscalls.master $(OBJROOT)/cscope.genhdrs
263	@$(LOG_GENERATE) "$(ColorLF)bsd/sys/$@$(Color0) from $(ColorF)$(<F)$(Color0)"
264	@echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
265	$(_v)$(MAKESYSCALLS) $< header > /dev/null
266
267sysproto.h: $(TARGET)/bsd.syscalls.master $(OBJROOT)/cscope.genhdrs
268	@$(LOG_GENERATE) "bsd/sys/$@$(Color0) from $(ColorF)$(<F)$(Color0)"
269	@echo "$(OBJPATH)/bsd/sys/$@" > $(OBJROOT)/cscope.genhdrs/$@.path
270	$(_v)$(MAKESYSCALLS) $< proto > /dev/null
271
272MAKE_POSIX_AVAILABILITY = $(SRCROOT)/bsd/sys/make_posix_availability.sh
273_posix_availability.h: $(MAKE_POSIX_AVAILABILITY)
274	@$(LOG_GENERATE) "bsd/sys/$@$(Color0)"
275	$(_v)$(MAKE_POSIX_AVAILABILITY) "$@"
276
277MAKE_SYMBOL_ALIASING = $(SRCROOT)/bsd/sys/make_symbol_aliasing.sh
278_symbol_aliasing.h: $(MAKE_SYMBOL_ALIASING)
279	@$(LOG_GENERATE) "bsd/sys/$@$(Color0)"
280	$(_v)$(MAKE_SYMBOL_ALIASING) "$(SDKROOT)" "$@"
281
282# generated headers needed early (used by iig during installhdrs of iokit/DriverKit)
283SETUP_GEN_LIST = _posix_availability.h _symbol_aliasing.h
284
285do_build_setup:: $(SETUP_GEN_LIST)
286
287TRACE_CODES_DEST = \
288	$(DSTROOT)/$(INSTALL_SHARE_MISC_DIR)/trace.codes
289
290$(TRACE_CODES_DEST): $(OBJROOT)/trace.codes
291	$(_v)$(MKDIR) $(DSTROOT)/$(INSTALL_SHARE_MISC_DIR)
292	@$(LOG) INSTALL "$(@F)"
293	$(_v)$(INSTALL) $(INSTALL_FLAGS) $(OBJROOT)/trace.codes $@
294
295do_textfiles_install_mi:: $(TRACE_CODES_DEST)
296
297include $(MakeInc_rule)
298include $(MakeInc_dir)
299