|
|
1.1 root 1: # Main Makefile fragment for GNU Mach.
2:
3: # Copyright (C) 1997, 1999, 2004, 2006, 2007, 2009 Free Software
4: # Foundation, Inc.
5:
6: # Permission to use, copy, modify and distribute this software and its
7: # documentation is hereby granted, provided that both the copyright
8: # notice and this permission notice appear in all copies of the
9: # software, derivative works or modified versions, and any portions
10: # thereof, and that both notices appear in supporting documentation.
11: #
12: # THE FREE SOFTWARE FOUNDATION ALLOWS FREE USE OF THIS SOFTWARE IN ITS
13: # "AS IS" CONDITION. THE FREE SOFTWARE FOUNDATION DISCLAIMS ANY
14: # LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
15: # USE OF THIS SOFTWARE.
16:
17: #
18: # DDB support --- eventually to die. Please.
19: #
20:
21: # Do we want the icky kernel debugger?
22: if enable_kdb
23: libkernel_a_SOURCES += \
24: ddb/db_access.c \
25: ddb/db_access.h \
26: ddb/db_aout.c \
27: ddb/db_break.c \
28: ddb/db_break.h \
29: ddb/db_command.c \
30: ddb/db_command.h \
31: ddb/db_cond.c \
32: ddb/db_cond.h \
33: ddb/db_examine.c \
34: ddb/db_examine.h \
35: ddb/db_expr.c \
36: ddb/db_expr.h \
37: ddb/db_ext_symtab.c \
38: ddb/db_input.c \
39: ddb/db_input.h \
40: ddb/db_lex.c \
41: ddb/db_lex.h \
42: ddb/db_macro.c \
43: ddb/db_macro.h \
44: ddb/db_mp.c \
45: ddb/db_output.c \
46: ddb/db_output.h \
47: ddb/db_print.c \
48: ddb/db_print.h \
49: ddb/db_run.c \
50: ddb/db_run.h \
51: ddb/db_sym.c \
52: ddb/db_sym.h \
53: ddb/db_task_thread.c \
54: ddb/db_task_thread.h \
55: ddb/db_trap.c \
56: ddb/db_trap.h \
57: ddb/db_variables.c \
58: ddb/db_variables.h \
59: ddb/db_watch.c \
60: ddb/db_watch.h \
61: ddb/db_write_cmd.c \
62: ddb/nlist.h \
63: ddb/stab.h \
64: ddb/tr.h
65:
66: # We need frame pointers for trace to work properly.
67: AM_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
68: endif
69:
70:
71: #
72: # IPC implementation.
73: #
74:
75: libkernel_a_SOURCES += \
76: ipc/ipc_entry.c \
77: ipc/ipc_entry.h \
78: ipc/ipc_hash.c \
79: ipc/ipc_hash.h \
80: ipc/ipc_init.c \
81: ipc/ipc_init.h \
82: ipc/ipc_kmsg.c \
83: ipc/ipc_kmsg.h \
84: ipc/ipc_kmsg_queue.h \
85: ipc/ipc_machdep.h \
86: ipc/ipc_marequest.c \
87: ipc/ipc_marequest.h \
88: ipc/ipc_mqueue.c \
89: ipc/ipc_mqueue.h \
90: ipc/ipc_notify.c \
91: ipc/ipc_notify.h \
92: ipc/ipc_object.c \
93: ipc/ipc_object.h \
94: ipc/ipc_port.c \
95: ipc/ipc_port.h \
96: ipc/ipc_pset.c \
97: ipc/ipc_pset.h \
98: ipc/ipc_right.c \
99: ipc/ipc_right.h \
100: ipc/ipc_space.c \
101: ipc/ipc_space.h \
102: ipc/ipc_splay.c \
103: ipc/ipc_splay.h \
104: ipc/ipc_table.c \
105: ipc/ipc_table.h \
106: ipc/ipc_target.c \
107: ipc/ipc_target.h \
108: ipc/ipc_thread.c \
109: ipc/ipc_thread.h \
110: ipc/ipc_types.h \
111: ipc/mach_msg.c \
112: ipc/mach_msg.h \
113: ipc/mach_port.c \
114: ipc/mach_port.h \
115: ipc/mach_rpc.c \
116: ipc/mach_debug.c \
117: ipc/port.h
118: EXTRA_DIST += \
119: ipc/mach_port.srv
120:
121:
122: #
123: # `kernel' implementation (tasks, threads, trivia, etc.).
124: #
125:
126: libkernel_a_SOURCES += \
127: kern/act.c \
128: kern/act.h \
129: kern/assert.h \
130: kern/ast.c \
131: kern/ast.h \
132: kern/boot_script.h \
133: kern/bootstrap.c \
134: kern/counters.c \
135: kern/counters.h \
136: kern/cpu_number.h \
137: kern/debug.c \
138: kern/debug.h \
139: kern/eventcount.c \
140: kern/eventcount.h \
141: kern/exception.c \
142: kern/host.c \
143: kern/host.h \
144: kern/ipc_host.c \
145: kern/ipc_host.h \
146: kern/ipc_kobject.c \
147: kern/ipc_kobject.h \
148: kern/ipc_mig.c \
149: kern/ipc_mig.h \
150: kern/ipc_sched.c \
151: kern/ipc_sched.h \
152: kern/ipc_tt.c \
153: kern/ipc_tt.h \
154: kern/kalloc.h \
155: kern/kern_types.h \
156: kern/list.h \
157: kern/lock.c \
158: kern/lock.h \
159: kern/lock_mon.c \
160: kern/mach_clock.c \
161: kern/mach_clock.h \
162: kern/mach_factor.c \
163: kern/mach_factor.h \
164: kern/machine.c \
165: kern/machine.h \
166: kern/macro_help.h \
167: kern/pc_sample.c \
168: kern/pc_sample.h \
169: kern/printf.c \
170: kern/printf.h \
171: kern/priority.c \
172: kern/processor.c \
173: kern/processor.h \
174: kern/profile.c \
175: kern/queue.c \
176: kern/queue.h \
177: kern/rbtree.c \
178: kern/rbtree.h \
179: kern/rbtree_i.h \
180: kern/refcount.h \
181: kern/slab.c \
182: kern/slab.h \
183: kern/sched.h \
184: kern/sched_prim.c \
185: kern/sched_prim.h \
186: kern/shuttle.h \
187: kern/startup.c \
188: kern/strings.c \
189: kern/syscall_emulation.c \
190: kern/syscall_emulation.h \
191: kern/syscall_subr.c \
192: kern/syscall_subr.h \
193: kern/syscall_sw.c \
194: kern/syscall_sw.h \
195: kern/task.c \
196: kern/task.h \
197: kern/thread.c \
198: kern/thread.h \
199: kern/thread_swap.c \
200: kern/thread_swap.h \
201: kern/time_stamp.c \
202: kern/time_stamp.h \
203: kern/timer.c \
204: kern/timer.h \
205: kern/xpr.c \
206: kern/xpr.h \
207: kern/elf-load.c \
208: kern/boot_script.c
209: EXTRA_DIST += \
210: kern/mach.srv \
211: kern/mach4.srv \
212: kern/gnumach.srv \
213: kern/mach_debug.srv \
214: kern/mach_host.srv
215:
216:
217: #
218: # Still more trivia.
219: #
220:
221: libkernel_a_SOURCES += \
222: util/putchar.c \
223: util/putchar.h \
224: util/puts.c \
225: util/atoi.c \
226: util/atoi.h
227:
228: #
229: # Virtual memory implementation.
230: #
231:
232: libkernel_a_SOURCES += \
233: vm/memory_object_proxy.c \
234: vm/memory_object_proxy.h \
235: vm/memory_object.c \
236: vm/memory_object.h \
237: vm/pmap.h \
238: vm/vm_debug.c \
239: vm/vm_external.c \
240: vm/vm_external.h \
241: vm/vm_fault.c \
242: vm/vm_fault.h \
243: vm/vm_init.c \
244: vm/vm_kern.c \
245: vm/vm_kern.h \
246: vm/vm_map.c \
247: vm/vm_map.h \
248: vm/vm_object.c \
249: vm/vm_object.h \
250: vm/vm_page.h \
251: vm/vm_pageout.c \
252: vm/vm_pageout.h \
253: vm/vm_resident.c \
254: vm/vm_resident.h \
255: vm/vm_types.h \
256: vm/vm_user.c \
257: vm/vm_user.h
258: EXTRA_DIST += \
259: vm/memory_object_default.cli \
260: vm/memory_object_user.cli
261:
262:
263: #
264: # Device driver support.
265: #
266:
267: # These device support files are always needed; the others are needed only if
268: # particular drivers want the routines.
269: # TODO. Functions in device/subrs.c should each be moved elsewhere.
270: libkernel_a_SOURCES += \
271: device/blkio.c \
272: device/buf.h \
273: device/chario.c \
274: device/cirbuf.h \
275: device/conf.h \
276: device/cons.c \
277: device/cons.h \
278: device/device_emul.h \
279: device/dev_hdr.h \
280: device/dev_lookup.c \
281: device/dev_master.h \
282: device/dev_name.c \
283: device/dev_pager.c \
284: device/device_init.c \
285: device/device_port.h \
286: device/device_types_kernel.h \
287: device/ds_routines.c \
288: device/ds_routines.h \
289: device/if_ether.h \
290: device/if_hdr.h \
291: device/io_req.h \
292: device/net_io.c \
293: device/net_io.h \
294: device/param.h \
295: device/subrs.c \
296: device/subrs.h \
297: device/tty.h
298: EXTRA_DIST += \
299: device/device.srv \
300: device/device_pager.srv \
301: device/device_reply.cli \
302: device/memory_object_reply.cli
303:
304:
305: #
306: # `kmsg' device.
307: #
308:
309: if enable_kmsg
310: libkernel_a_SOURCES += \
311: device/kmsg.c \
312: device/kmsg.h
313: endif
314:
315:
316: #
317: # Version number.
318: #
319:
320: nodist_libkernel_a_SOURCES += \
321: version.c
322:
323: #
324: # Installation.
325: #
326:
327: include_devicedir = $(includedir)/device
328: include_device_HEADERS = \
329: include/device/audio_status.h \
330: include/device/bpf.h \
331: include/device/device.defs \
332: include/device/device_reply.defs \
333: include/device/device_request.defs \
334: include/device/device_types.defs \
335: include/device/device_types.h \
336: include/device/disk_status.h \
337: include/device/net_status.h \
338: include/device/tape_status.h \
339: include/device/tty_status.h
340:
341: include_machdir = $(includedir)/mach
342: include_mach_HEADERS = \
343: include/mach/bootstrap.defs \
344: include/mach/default_pager.defs \
345: include/mach/default_pager_helper.defs \
346: include/mach/default_pager_types.defs \
347: include/mach/exc.defs \
348: include/mach/mach.defs \
349: include/mach/mach4.defs \
350: include/mach/gnumach.defs \
351: include/mach/mach_host.defs \
352: include/mach/mach_port.defs \
353: include/mach/mach_types.defs \
354: include/mach/memory_object.defs \
355: include/mach/memory_object_default.defs \
356: include/mach/notify.defs \
357: include/mach/std_types.defs \
358: include/mach/alert.h \
359: include/mach/boolean.h \
360: include/mach/boot.h \
361: include/mach/default_pager_types.h \
362: include/mach/exception.h \
363: include/mach/host_info.h \
364: include/mach/kern_return.h \
365: include/mach/mach_param.h \
366: include/mach/mach_types.h \
367: include/mach/machine.h \
368: include/mach/macro_help.h \
369: include/mach/memory_object.h \
370: include/mach/message.h \
371: include/mach/mig_errors.h \
372: include/mach/msg_type.h \
373: include/mach/multiboot.h \
374: include/mach/notify.h \
375: include/mach/pc_sample.h \
376: include/mach/policy.h \
377: include/mach/port.h \
378: include/mach/processor_info.h \
379: include/mach/profil.h \
380: include/mach/profilparam.h \
381: include/mach/rpc.h \
382: include/mach/std_types.h \
383: include/mach/syscall_sw.h \
384: include/mach/task_info.h \
385: include/mach/task_special_ports.h \
386: include/mach/thread_info.h \
387: include/mach/thread_special_ports.h \
388: include/mach/thread_status.h \
389: include/mach/thread_switch.h \
390: include/mach/time_value.h \
391: include/mach/version.h \
392: include/mach/vm_attributes.h \
393: include/mach/vm_cache_statistics.h \
394: include/mach/vm_inherit.h \
395: include/mach/vm_param.h \
396: include/mach/vm_prot.h \
397: include/mach/vm_statistics.h \
398: include/mach/inline.h \
399: include/mach/xen.h
400:
401: # If we name this `*_execdir', Automake won't add it to `install-data'...
402: include_mach_eXecdir = $(includedir)/mach/exec
403: include_mach_eXec_HEADERS = \
404: include/mach/exec/a.out.h \
405: include/mach/exec/elf.h \
406: include/mach/exec/exec.h
407:
408: # mach-debug-headers:= $(addprefix mach_debug/, hash_info.h ipc_info.h \
409: # mach_debug.defs mach_debug_types.defs mach_debug_types.h \
410: # pc_info.h vm_info.h slab_info.h)
411:
412: # Other headers for the distribution. We don't install these, because the
413: # GNU C library has correct versions for users to use.
414: # other-sys-headers := types.h time.h reboot.h ioctl.h
415: # other-mach-headers := mig_support.h mach_traps.h error.h
416: # other-headers := alloca.h
417:
418: install-data-hook:
419: rm -f '$(DESTDIR)$(include_machdir)'/machine
420: ln -s '$(systype)' '$(DESTDIR)$(include_machdir)'/machine
421:
422: #
423: # Building a distribution.
424: #
425:
426: # Enable all available features.
427: DISTCHECK_CONFIGURE_FLAGS += \
428: --enable-kdb
429:
430: # Instead of listing each file individually...
431: EXTRA_DIST += \
432: include
433:
434: #
435: # Automatically generated source files.
436: #
437: # See Makerules.mig.am.
438: #
439:
440: # User stubs.
441: nodist_lib_dep_tr_for_defs_a_SOURCES += \
442: vm/memory_object_user.user.defs.c \
443: vm/memory_object_default.user.defs.c
444: nodist_libkernel_a_SOURCES += \
445: vm/memory_object_user.user.h \
446: vm/memory_object_user.user.c \
447: vm/memory_object_user.user.msgids \
448: vm/memory_object_default.user.h \
449: vm/memory_object_default.user.c \
450: vm/memory_object_default.user.msgids
451: # vm/memory_object_user.user.defs
452: # vm/memory_object_default.user.defs
453: nodist_lib_dep_tr_for_defs_a_SOURCES += \
454: device/device_reply.user.defs.c \
455: device/memory_object_reply.user.defs.c
456: nodist_libkernel_a_SOURCES += \
457: device/device_reply.user.h \
458: device/device_reply.user.c \
459: device/device_reply.user.msgids \
460: device/memory_object_reply.user.h \
461: device/memory_object_reply.user.c \
462: device/memory_object_reply.user.msgids
463: # device/device_reply.user.defs
464: # device/memory_object_reply.user.defs
465:
466: # Server stubs.
467: nodist_lib_dep_tr_for_defs_a_SOURCES += \
468: device/device.server.defs.c \
469: device/device_pager.server.defs.c
470: nodist_libkernel_a_SOURCES += \
471: device/device.server.h \
472: device/device.server.c \
473: device/device.server.msgids \
474: device/device_pager.server.h \
475: device/device_pager.server.c \
476: device/device_pager.server.msgids
477: # device/device.server.defs
478: # device/device_pager.server.defs
479: nodist_lib_dep_tr_for_defs_a_SOURCES += \
480: ipc/mach_port.server.defs.c
481: nodist_libkernel_a_SOURCES += \
482: ipc/mach_port.server.h \
483: ipc/mach_port.server.c \
484: ipc/mach_port.server.msgids
485: # ipc/mach_port.server.defs
486: nodist_lib_dep_tr_for_defs_a_SOURCES += \
487: kern/mach.server.defs.c \
488: kern/mach4.server.defs.c \
489: kern/gnumach.server.defs.c \
490: kern/mach_debug.server.defs.c \
491: kern/mach_host.server.defs.c
492: nodist_libkernel_a_SOURCES += \
493: kern/mach.server.h \
494: kern/mach.server.c \
495: kern/mach.server.msgids \
496: kern/mach4.server.h \
497: kern/mach4.server.c \
498: kern/mach4.server.msgids \
499: kern/gnumach.server.h \
500: kern/gnumach.server.c \
501: kern/gnumach.server.msgids \
502: kern/mach_debug.server.h \
503: kern/mach_debug.server.c \
504: kern/mach_debug.server.msgids \
505: kern/mach_host.server.h \
506: kern/mach_host.server.c \
507: kern/mach_host.server.msgids
508: # kern/mach.server.defs
509: # kern/mach4.server.defs
510: # kern/gnumach.server.defs
511: # kern/mach_debug.server.defs
512: # kern/mach_host.server.defs
513:
514: # rpctrace can make use of that.
515: MOSTLYCLEANFILES += \
516: gnumach.msgids
517: gnumach.msgids: $(filter %.msgids,$(nodist_libkernel_a_SOURCES))
518: $(AM_V_at) cat $^ > [email protected]
519: $(AM_V_GEN) mv [email protected] $@
520: # `exec_' prefix, so that we don't try to build that file during when running
521: # `make install-data', as it may fail there, but isn't needed there either.
522: exec_msgidsdir = $(datadir)/msgids
523: exec_msgids_DATA = gnumach.msgids
524:
525: #
526: # Specific code.
527: #
528:
529: # Linux device drivers and the glue code.
530: include linux/Makefrag.am
531:
532: #
533: # Platform specific parts.
534: #
535:
536: # Xen.
537: if PLATFORM_xen
538: include xen/Makefrag.am
539: endif
540:
541: #
542: # Architecture specific parts.
543: #
544:
545: # ix86.
546: if HOST_ix86
547: include i386/Makefrag.am
548: endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.