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