]> git.saurik.com Git - apple/xnu.git/blob - osfmk/mach/Makefile
xnu-7195.101.1.tar.gz
[apple/xnu.git] / osfmk / mach / Makefile
1 export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
2 export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
3 export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
4 export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
5
6 include $(MakeInc_cmd)
7 include $(MakeInc_def)
8
9 INSTINC_SUBDIRS = machine
10 INSTINC_SUBDIRS_X86_64 = i386
11 INSTINC_SUBDIRS_X86_64H = i386
12 INSTINC_SUBDIRS_ARM = arm arm64
13 INSTINC_SUBDIRS_ARM64 = arm arm64
14
15 EXPINC_SUBDIRS = machine
16 EXPINC_SUBDIRS_X86_64 = i386
17 EXPINC_SUBDIRS_X86_64H = i386
18 EXPINC_SUBDIRS_ARM = arm arm64
19 EXPINC_SUBDIRS_ARM64 = arm arm64
20
21 MIG_TYPES = \
22 clock_types.defs \
23 mach_types.defs \
24 std_types.defs
25
26 MIG_DEFS = \
27 audit_triggers.defs \
28 clock.defs \
29 clock_priv.defs \
30 clock_reply.defs \
31 exc.defs \
32 host_notify_reply.defs \
33 host_priv.defs \
34 host_security.defs \
35 lock_set.defs \
36 mach_exc.defs \
37 mach_host.defs \
38 mach_port.defs \
39 mach_vm.defs \
40 mach_voucher.defs \
41 mach_voucher_attr_control.defs \
42 memory_entry.defs \
43 notify.defs \
44 processor.defs \
45 processor_set.defs \
46 task.defs \
47 task_access.defs \
48 telemetry_notification.defs \
49 thread_act.defs \
50 vm_map.defs
51
52 MIG_PRIVATE_DEFS = \
53 mach_eventlink.defs \
54 restartable.defs
55
56 MACH_PRIVATE_DEFS = \
57 coalition_notification.defs \
58 fairplayd_notification.defs \
59 arcade_upcall.defs \
60 ktrace_background.defs \
61 mach_notify.defs \
62 memory_object_control.defs \
63 memory_object_default.defs \
64 sysdiagnose_notification.defs \
65 upl.defs \
66 vfs_nspace.defs \
67 vm32_map.defs \
68 iocompressionstats_notification.defs
69
70 #
71 # MIG-generated headers that are traditionally used by user
72 # level code.
73 #
74 MIG_USHDRS = \
75 audit_triggers_server.h \
76 clock_reply_server.h \
77 coalition_notification_server.h \
78 exc_server.h \
79 fairplayd_notification_server.h \
80 arcade_upcall_server.h \
81 mach_exc_server.h \
82 memory_object_default_server.h \
83 notify_server.h \
84 task_access_server.h \
85 telemetry_notification_server.h \
86 sysdiagnose_notification_server.h \
87 iocompressionstats_notification_server.h \
88 vfs_nspace_server.h
89
90 MIG_UUHDRS = \
91 clock.h \
92 clock_priv.h \
93 host_priv.h \
94 host_security.h \
95 ktrace_background.h \
96 lock_set.h \
97 mach_host.h \
98 mach_port.h \
99 mach_vm.h \
100 mach_voucher.h \
101 mach_voucher_attr_control.h \
102 memory_entry.h \
103 memory_object_control.h \
104 processor.h \
105 processor_set.h \
106 task.h \
107 task_access.h \
108 thread_act.h \
109 upl.h \
110 vm_map.h \
111 vfs_nspace.h
112
113 MIGINCLUDES = ${MIG_UUHDRS} ${MIG_USHDRS}
114
115 DATAFILES = \
116 audit_triggers_types.h \
117 boolean.h \
118 clock_types.h \
119 dyld_kernel.h \
120 error.h \
121 exception.h \
122 exception_types.h \
123 host_notify.h \
124 host_info.h \
125 host_reboot.h \
126 host_special_ports.h \
127 kern_return.h \
128 kmod.h \
129 mach_param.h \
130 mach_time.h \
131 mach_traps.h \
132 mach_types.h \
133 mach_voucher_types.h \
134 machine.h \
135 mach_syscalls.h \
136 memory_object_types.h \
137 message.h \
138 mig.h \
139 mig_errors.h \
140 mig_voucher_support.h \
141 mig_strncpy_zerofill_support.h \
142 ndr.h \
143 notify.h \
144 policy.h \
145 port.h \
146 processor_info.h \
147 rpc.h \
148 sdt.h \
149 semaphore.h \
150 shared_memory_server.h \
151 shared_region.h \
152 std_types.h \
153 sync_policy.h \
154 syscall_sw.h \
155 task_info.h \
156 task_inspect.h \
157 task_policy.h \
158 task_special_ports.h \
159 thread_info.h \
160 thread_policy.h \
161 thread_special_ports.h \
162 thread_status.h \
163 thread_switch.h \
164 time_value.h \
165 vm_attributes.h \
166 vm_behavior.h \
167 vm_inherit.h \
168 vm_param.h \
169 vm_prot.h \
170 vm_purgable.h \
171 vm_region.h \
172 vm_statistics.h \
173 vm_sync.h \
174 vm_types.h \
175 ${MIG_TYPES} \
176 ${MIG_DEFS}
177
178 INSTALL_MI_LIST = \
179 bootstrap.h \
180 ${DATAFILES}
181
182 # installed into System.framework's PrivateHeaders/mach subdirectory
183 PRIVATE_DATAFILES = \
184 bootstrap.h \
185 coalition.h \
186 coalition_notification.defs \
187 fairplayd_notification.defs \
188 iocompressionstats_notification.defs \
189 arcade_upcall.defs \
190 host_info.h \
191 ktrace_background.defs \
192 mach_eventlink_types.h \
193 mach_host.defs \
194 mach_traps.h \
195 memory_object_types.h \
196 mig.h \
197 mk_timer.h \
198 processor_info.h \
199 resource_notify.defs \
200 resource_monitors.h \
201 semaphore.h \
202 sfi_class.h \
203 syscall_sw.h \
204 sysdiagnose_notification.defs \
205 task_info.h \
206 task_inspect.h \
207 task_policy.h \
208 thread_policy.h \
209 thread_switch.h \
210 vfs_nspace.defs \
211 vm_prot.h \
212 ${MIG_PRIVATE_DEFS}
213
214 INSTALL_MI_LCL_LIST = ${PRIVATE_DATAFILES}
215
216 INSTALL_KF_MI_LIST = \
217 mach_interface.h \
218 $(filter-out mach_traps.h mach_syscalls.h thread_switch.h, ${DATAFILES})
219
220 INSTALL_KF_MI_LCL_LIST = \
221 coalition.h \
222 mach_interface.h \
223 $(filter-out mach_traps.h mach_syscalls.h thread_switch.h, ${DATAFILES})
224
225 INSTALL_MI_GEN_LIST =
226
227 INSTALL_MI_DIR = mach
228
229 EXPORT_MI_LIST = \
230 coalition.h \
231 mach_interface.h \
232 resource_monitors.h \
233 mach_eventlink_types.h \
234 sfi_class.h \
235 ${DATAFILES}
236
237 EXPORT_MI_GEN_LIST = \
238 ${MIGINCLUDES}
239
240 EXPORT_MI_DIR = mach
241
242 ${MIGINCLUDES} : ${MIG_TYPES}
243
244 ${MIG_UUHDRS} : \
245 %.h : %.defs
246 @$(LOG_MIG) $@
247 $(_v)$(MIG) $(MIGFLAGS) \
248 -server /dev/null \
249 -user /dev/null \
250 -header $@ \
251 $<
252
253 ${MIG_USHDRS} : \
254 %_server.h : %.defs
255 @$(LOG_MIG) $@
256 $(_v)$(MIG) $(MIGFLAGS) \
257 -server /dev/null \
258 -user /dev/null \
259 -header /dev/null \
260 -sheader $@ \
261 $<
262
263 #
264 # Build path
265 #
266
267 INCFLAGS_MAKEFILE= -I..
268
269 MIGKSFLAGS = -DMACH_KERNEL_PRIVATE -DKERNEL_SERVER=1
270 MIGKUFLAGS = -DMACH_KERNEL_PRIVATE -DKERNEL_USER=1 -maxonstack 1024
271 #
272 # MIG-generated headers that are traditionally used by kernel
273 # level code.
274 #
275
276 # sender-side ("user") headers generated by MIG from corresponding .defs
277 MIG_KUHDRS = \
278 audit_triggers.h \
279 clock_reply.h \
280 exc.h \
281 host_notify_reply.h \
282 ktrace_background.h \
283 mach_exc.h \
284 mach_notify.h \
285 memory_object.h \
286 memory_object_control.h \
287 memory_object_default.h \
288 resource_notify.h \
289 task_access.h \
290 upl.h \
291 vm_map.h
292
293 # sender-side ("user") source files generated by MIG from corresponding .defs
294 MIG_KUSRC = \
295 audit_triggers_user.c \
296 clock_reply_user.c \
297 coalition_notification_user.c \
298 exc_user.c \
299 fairplayd_notification_user.c \
300 arcade_upcall_user.c \
301 host_notify_reply_user.c \
302 ktrace_background_user.c \
303 mach_exc_user.c \
304 mach_notify_user.c \
305 memory_object_user.c \
306 memory_object_control_user.c \
307 memory_object_default_user.c \
308 resource_notify_user.c \
309 task_access_user.c \
310 telemetry_notification_user.c \
311 iocompressionstats_notification_user.c \
312 upl_user.c \
313 vfs_nspace_user.c \
314 vm_map_user.c \
315 sysdiagnose_notification_user.c
316
317 MIG_KSHDRS = \
318 arcade_register_server.h \
319 clock_server.h \
320 clock_priv_server.h \
321 mach_eventlink_server.h \
322 exc_server.h \
323 host_priv_server.h \
324 host_security_server.h \
325 lock_set_server.h \
326 mach_exc_server.h \
327 mach_host_server.h \
328 mach_notify_server.h \
329 mach_port_server.h \
330 mach_vm_server.h \
331 mach_voucher_server.h \
332 mach_voucher_attr_control_server.h \
333 memory_entry_server.h \
334 memory_object_control_server.h \
335 memory_object_default_server.h \
336 processor_server.h \
337 processor_set_server.h \
338 restartable_server.h \
339 task_server.h \
340 thread_act_server.h \
341 upl_server.h \
342 vm_map_server.h \
343 vm32_map_server.h
344
345 MIG_KSSRC = \
346 arcade_register_server.c \
347 clock_server.c \
348 clock_priv_server.c \
349 mach_eventlink_server.c \
350 exc_server.c \
351 host_priv_server.c \
352 host_security_server.c \
353 lock_set_server.c \
354 mach_exc_server.c \
355 mach_host_server.c \
356 mach_notify_server.c \
357 mach_port_server.c \
358 mach_vm_server.c \
359 mach_voucher_server.c \
360 mach_voucher_attr_control_server.c \
361 memory_entry_server.c \
362 memory_object_control_server.c \
363 memory_object_default_server.c \
364 processor_server.c \
365 processor_set_server.c \
366 restartable_server.c \
367 task_server.c \
368 thread_act_server.c \
369 upl_server.c \
370 vm_map_server.c \
371 vm32_map_server.c
372
373 #
374 # JMM -
375 # Since there are two generated header files with the same name, one for
376 # install and export, the other for internal use (and they are different)
377 # we can't explicitly list two rules for the same target. So rules for
378 # generating internal headers will be handled implicitly by creating rules
379 # to generate the internal C sources, and the headers get created as a
380 # side-effect.
381 #
382 #
383 # This is all temporary scaffolding, as we are moving to a model where
384 # the MIG-generated code is identical in all environments. At first, it
385 # will contain some environment-specific ifdefs, but over time should not
386 # even require that as we move towards making all the environments look
387 # the same.
388 #
389 COMP_FILES = ${MIG_KUSRC} ${MIG_KSSRC}
390
391 do_build_all:: $(COMP_FILES)
392
393 ${COMP_FILES} : ${MIG_TYPES}
394
395 ${MIG_KUSRC} : \
396 %_user.c : %.defs
397 @$(LOG_MIG) $@
398 $(_v)${MIG} ${MIGFLAGS} ${MIGKUFLAGS} \
399 -user $*_user.c \
400 -header $*.h \
401 -server /dev/null \
402 -sheader /dev/null \
403 $<
404
405 ${MIG_KSSRC}: \
406 %_server.c : %.defs
407 @$(LOG_MIG) $@
408 $(_v)${MIG} ${MIGFLAGS} ${MIGKSFLAGS} \
409 -user /dev/null \
410 -header /dev/null \
411 -server $*_server.c \
412 -sheader $*_server.h \
413 $<
414
415 include $(MakeInc_rule)
416 include $(MakeInc_dir)