# Makefile fragment for i386.

# Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.

# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright
# notice and this permission notice appear in all copies of the
# software, derivative works or modified versions, and any portions
# thereof, and that both notices appear in supporting documentation.
#
# THE FREE SOFTWARE FOUNDATION ALLOWS FREE USE OF THIS SOFTWARE IN ITS
# "AS IS" CONDITION.  THE FREE SOFTWARE FOUNDATION DISCLAIMS ANY
# LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
# USE OF THIS SOFTWARE.

#
# Source files for any i386 kernel.
#

libkernel_a_SOURCES += \
	i386/i386at/autoconf.c \
	i386/i386at/autoconf.h \
	i386/i386at/conf.c \
	i386/i386at/cons_conf.c \
	i386/i386at/idt.h \
	i386/i386at/model_dep.c \
	i386/include/mach/sa/stdarg.h

if PLATFORM_at
libkernel_a_SOURCES += \
	i386/i386at/boothdr.S \
	i386/i386at/com.c \
	i386/i386at/com.h \
	i386/i386at/comreg.h \
	i386/i386at/cram.h \
	i386/i386at/disk.h \
	i386/i386at/i8250.h \
	i386/i386at/immc.c \
	i386/i386at/int_init.c \
	i386/i386at/int_init.h \
	i386/i386at/interrupt.S \
	i386/i386at/kd.c \
	i386/i386at/kd.h \
	i386/i386at/kd_event.c \
	i386/i386at/kd_event.h \
	i386/i386at/kd_queue.c \
	i386/i386at/kd_queue.h \
	i386/i386at/kd_mouse.c \
	i386/i386at/kd_mouse.h \
	i386/i386at/kdasm.S \
	i386/i386at/kdsoft.h \
	i386/i386at/mem.c \
	i386/i386at/pic_isa.c \
	i386/i386at/rtc.c \
	i386/i386at/rtc.h
endif

#
# `lpr' device support.
#

if enable_lpr
libkernel_a_SOURCES += \
	i386/i386at/lpr.c \
	i386/i386at/lprreg.h
endif


#
# Further source files for any i386 kernel.
#

libkernel_a_SOURCES += \
	i386/i386/ast.h \
	i386/i386/ast_check.c \
	i386/i386/ast_types.h \
	i386/i386/cpu_number.h \
	i386/i386/cswitch.S \
	i386/i386/db_disasm.c \
	i386/i386/db_interface.c \
	i386/i386/db_machdep.h \
	i386/i386/db_trace.c \
	i386/i386/debug.h \
	i386/i386/debug_i386.c \
	i386/i386/debug_trace.S \
	i386/i386/eflags.h \
	i386/i386/fpu.c \
	i386/i386/fpu.h \
	i386/i386/gdt.c \
	i386/i386/gdt.h \
	i386/i386/idt-gen.h \
	i386/i386/idt.c \
	i386/i386/idt_inittab.S \
	i386/i386/io_perm.c \
	i386/i386/io_perm.h \
	i386/i386/ipl.h \
	i386/i386/ktss.c \
	i386/i386/ktss.h \
	i386/i386/kttd_interface.c \
	i386/i386/kttd_machdep.h \
	i386/i386/ldt.c \
	i386/i386/ldt.h \
	i386/i386/lock.h \
	i386/i386/locore.S \
	i386/i386/locore.h \
	i386/i386/loose_ends.c \
	i386/i386/loose_ends.h \
	i386/i386/mach_param.h \
	i386/i386/machine_routines.h \
	i386/i386/machine_task.c \
	i386/i386/machspl.h \
	i386/i386/model_dep.h \
	i386/i386/mp_desc.c \
	i386/i386/mp_desc.h \
	i386/i386/pcb.c \
	i386/i386/pcb.h \
	i386/i386/phys.c \
	i386/i386/pio.h \
	i386/i386/pmap.h \
	i386/i386/proc_reg.h \
	i386/i386/sched_param.h \
	i386/i386/seg.c \
	i386/i386/seg.h \
	i386/i386/setjmp.h \
	i386/i386/spl.S \
	i386/i386/spl.h \
	i386/i386/task.h \
	i386/i386/thread.h \
	i386/i386/time_stamp.h \
	i386/i386/trap.c \
	i386/i386/trap.h \
	i386/i386/tss.h \
	i386/i386/user_ldt.c \
	i386/i386/user_ldt.h \
	i386/i386/vm_param.h \
	i386/i386/vm_tuning.h \
	i386/i386/xpr.h \
	i386/i386/zalloc.h \
	i386/intel/pmap.c \
	i386/intel/pmap.h \
	i386/intel/read_fault.c \
	i386/intel/read_fault.h
EXTRA_DIST += \
	i386/i386/mach_i386.srv

if PLATFORM_at
libkernel_a_SOURCES += \
	i386/i386/hardclock.c \
	i386/i386/io_map.c \
	i386/i386/pic.c \
	i386/i386/pic.h \
	i386/i386/pit.c \
	i386/i386/pit.h
endif

#
# KDB support.
#

if enable_kdb
libkernel_a_SOURCES += \
	i386/i386/_setjmp.S
endif


#
# Files from the generic sources that we want.
#

libkernel_a_SOURCES += \
	chips/busses.c \
	chips/busses.h \
	device/cirbuf.c

#
# Automatically generated source files.
#
# See Makerules.mig.am.
#

nodist_lib_dep_tr_for_defs_a_SOURCES += \
	i386/i386/mach_i386.server.defs.c
nodist_libkernel_a_SOURCES += \
	i386/i386/mach_i386.server.h \
	i386/i386/mach_i386.server.c \
	i386/i386/mach_i386.server.msgids
#	i386/i386/mach_i386.server.defs

EXTRA_DIST += \
	i386/i386/i386asm.sym
nodist_libkernel_a_SOURCES += \
	i386/i386/i386asm.h

#
# Architecture specialities.
#

EXTRA_DIST += \
	i386/ldscript
if PLATFORM_at
gnumach_LINKFLAGS += \
	--defsym _START=0x100000 \
	-T '$(srcdir)'/i386/ldscript
endif

#
# Installation.
#

include_mach_i386dir = $(includedir)/mach/i386
include_mach_i386_HEADERS = \
	i386/include/mach/i386/asm.h \
	i386/include/mach/i386/boolean.h \
	i386/include/mach/i386/disk.h \
	i386/include/mach/i386/eflags.h \
	i386/include/mach/i386/exception.h \
	i386/include/mach/i386/fp_reg.h \
	i386/include/mach/i386/ioccom.h \
	i386/include/mach/i386/kern_return.h \
	i386/include/mach/i386/mach_i386.defs \
	i386/include/mach/i386/mach_i386_types.h \
	i386/include/mach/i386/machine_types.defs \
	i386/include/mach/i386/multiboot.h \
	i386/include/mach/i386/rpc.h \
	i386/include/mach/i386/syscall_sw.h \
	i386/include/mach/i386/thread_status.h \
	i386/include/mach/i386/trap.h \
	i386/include/mach/i386/vm_param.h \
	i386/include/mach/i386/vm_types.h

#
# Building a distribution.
#

EXTRA_DIST += \
	i386/README-Drivers

# Instead of listing each file individually...
EXTRA_DIST += \
	i386/include

#
# Platform specific parts.
#

if PLATFORM_xen
include i386/xen/Makefrag.am

libkernel_a_SOURCES += \
	i386/i386/xen.h

endif