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