]> git.saurik.com Git - apple/xnu.git/blob - osfmk/mach/Makefile
xnu-344.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
7 include $(MakeInc_cmd)
8 include $(MakeInc_def)
9
10 INSTINC_SUBDIRS = \
11 machine
12
13 INSTINC_SUBDIRS_PPC = \
14 ppc
15
16 INSTINC_SUBDIRS_I386 = \
17 i386
18
19 EXPINC_SUBDIRS = \
20 machine
21
22 EXPINC_SUBDIRS_PPC = \
23 ppc
24
25 EXPINC_SUBDIRS_I386 = \
26 i386
27
28 MIG_TYPES = \
29 clock_types.defs \
30 mach_types.defs \
31 std_types.defs
32
33 MIG_DEFS = \
34 clock.defs \
35 clock_priv.defs \
36 clock_reply.defs \
37 exc.defs \
38 host_priv.defs \
39 host_security.defs \
40 ledger.defs \
41 lock_set.defs \
42 mach_host.defs \
43 mach_port.defs \
44 notify.defs \
45 processor.defs \
46 processor_set.defs \
47 task.defs \
48 thread_act.defs \
49 vm_map.defs \
50 upl.defs
51
52 MACH_PRIVATE_DEFS = \
53 memory_object.defs \
54 memory_object_control.defs \
55 memory_object_default.defs \
56 memory_object_name.defs
57
58 #
59 # MIG-generated headers that are traditionally used by user
60 # level code.
61 #
62 MIG_USHDRS = \
63 clock_reply_server.h \
64 exc_server.h \
65 memory_object_server.h \
66 memory_object_default_server.h \
67 notify_server.h
68
69 MIG_UUHDRS = \
70 clock.h \
71 clock_priv.h \
72 host_priv.h \
73 host_security.h \
74 ledger.h \
75 lock_set.h \
76 mach_host.h \
77 mach_port.h \
78 memory_object_control.h \
79 memory_object_name.h \
80 processor.h \
81 processor_set.h \
82 task.h \
83 thread_act.h \
84 upl.h \
85 vm_map.h
86
87 MIGINCLUDES = ${MIG_UUHDRS} ${MIG_USHDRS}
88
89 DATAFILES = \
90 boolean.h \
91 boot_info.h \
92 bootstrap.h \
93 clock_types.h \
94 error.h \
95 exception.h \
96 exception_types.h \
97 host_info.h \
98 host_reboot.h \
99 kern_return.h \
100 kmod.h \
101 mach_param.h \
102 mach_time.h \
103 mach_traps.h \
104 mach_types.h \
105 machine.h \
106 mach_syscalls.h \
107 memory_object_types.h \
108 message.h \
109 mig.h \
110 mig_errors.h \
111 ndr.h \
112 notify.h \
113 policy.h \
114 port.h \
115 processor_info.h \
116 rpc.h \
117 semaphore.h \
118 shared_memory_server.h \
119 std_types.h \
120 sync_policy.h \
121 syscall_sw.h \
122 task_info.h \
123 task_ledger.h \
124 task_policy.h \
125 task_special_ports.h \
126 thread_info.h \
127 thread_policy.h \
128 thread_special_ports.h \
129 thread_status.h \
130 thread_switch.h \
131 time_value.h \
132 vm_attributes.h \
133 vm_behavior.h \
134 vm_inherit.h \
135 vm_param.h \
136 vm_prot.h \
137 vm_region.h \
138 vm_statistics.h \
139 vm_sync.h \
140 vm_types.h \
141 ${MIG_TYPES} \
142 ${MIG_DEFS}
143
144 INSTALL_MI_LIST = \
145 ${DATAFILES}
146
147 INSTALL_MI_GEN_LIST =
148
149 INSTALL_MI_DIR = mach
150
151 EXPORT_MI_LIST = \
152 mach_interface.h \
153 etap.h etap_events.h \
154 ${DATAFILES}
155
156 EXPORT_MI_GEN_LIST = \
157 ${MIGINCLUDES}
158
159 EXPORT_MI_DIR = mach
160
161 .ORDER: ${MIGINCLUDES}
162
163 ${MIGINCLUDES} : ${MIG_TYPES}
164
165 .ORDER: ${MIG_UUHDRS}
166
167 ${MIG_UUHDRS} : \
168 %.h : %.defs
169 $(MIG) $(MIGFLAGS) \
170 -server /dev/null \
171 -user /dev/null \
172 -header $@ \
173 $<
174
175 .ORDER: ${MIG_USHDRS}
176
177 ${MIG_USHDRS} : \
178 %_server.h : %.defs
179 $(MIG) $(MIGFLAGS) \
180 -server /dev/null \
181 -user /dev/null \
182 -header /dev/null \
183 -sheader $@ \
184 $<
185
186 #
187 # Build path
188 #
189 COMP_SUBDIRS_I386 = \
190 i386
191
192 INCFLAGS_MAKEFILE= -I..
193
194 MIGKSFLAGS = -DMACH_KERNEL_PRIVATE -DKERNEL_SERVER=1
195 MIGKUFLAGS = -DMACH_KERNEL_PRIVATE -DKERNEL_USER=1 -maxonstack 1024
196 #
197 # MIG-generated headers that are traditionally used by kernel
198 # level code.
199 #
200 MIG_KUHDRS = \
201 clock_reply.h \
202 exc.h \
203 memory_object.h \
204 memory_object_control.h \
205 memory_object_default.h \
206 upl.h \
207 vm_map.h
208
209 MIG_KUSRC = \
210 clock_reply_user.c \
211 exc_user.c \
212 memory_object_user.c \
213 memory_object_control_user.c \
214 memory_object_default_user.c \
215 upl_user.c \
216 vm_map_user.c
217
218 MIG_KSHDRS = \
219 clock_server.h \
220 clock_priv_server.h \
221 exc_server.h \
222 host_priv_server.h \
223 host_security_server.h \
224 ledger_server.h \
225 lock_set_server.h \
226 mach_host_server.h \
227 mach_port_server.h \
228 memory_object_server.h \
229 memory_object_control_server.h \
230 memory_object_default_server.h \
231 memory_object_name_server.h \
232 notify_server.h \
233 processor_server.h \
234 processor_set_server.h \
235 semaphore_server.h \
236 task_server.h \
237 thread_act_server.h \
238 upl_server.h \
239 vm_map_server.h
240
241 MIG_KSSRC = \
242 clock_server.c \
243 clock_priv_server.c \
244 exc_server.c \
245 host_priv_server.c \
246 host_security_server.c \
247 ledger_server.c \
248 lock_set_server.c \
249 mach_host_server.c \
250 mach_port_server.c \
251 memory_object_server.c \
252 memory_object_control_server.c \
253 memory_object_default_server.c \
254 memory_object_name_server.c \
255 notify_server.c \
256 processor_server.c \
257 processor_set_server.c \
258 semaphore_server.c \
259 task_server.c \
260 thread_act_server.c \
261 upl_server.c \
262 vm_map_server.c
263
264 #
265 # JMM -
266 # Since there are two generated header files with the same name, one for
267 # install and export, the other for internal use (and they are different)
268 # we can't explicitly list two rules for the same target. So rules for
269 # generating internal headers will be handled implicitly by creating rules
270 # to generate the internal C sources, and the headers get created as a
271 # side-effect.
272 #
273 #
274 # This is all temporary scaffolding, as we are moving to a model where
275 # the MIG-generated code is identical in all environments. At first, it
276 # will contain some environment-specific ifdefs, but over time should not
277 # even require that as we move towards making all the environments look
278 # the same.
279 #
280 COMP_FILES = ${MIG_KUSRC} ${MIG_KSSRC}
281
282 ${COMP_FILES} : ${MIG_TYPES}
283
284 .ORDER: ${MIG_KUSRC}
285
286 ${MIG_KUSRC} : \
287 %_user.c : %.defs
288 ${MIG} ${MIGFLAGS} ${MIGKUFLAGS} \
289 -user $*_user.c \
290 -header $*.h \
291 -server /dev/null \
292 -sheader /dev/null \
293 $<
294
295 .ORDER: ${MIG_KSSRC}
296
297 ${MIG_KSSRC}: \
298 %_server.c : %.defs
299 ${MIG} ${MIGFLAGS} ${MIGKSFLAGS} \
300 -user /dev/null \
301 -header /dev/null \
302 -server $*_server.c \
303 -sheader $*_server.h \
304 $<
305
306
307 include $(MakeInc_rule)
308 include $(MakeInc_dir)