
CFLAGS = -O2 -I. -I../include -DKERNEL -mc68020 -nostdinc
LDFLAGS = -nostdlib

.c.o:
	gcc -c $(CFLAGS) -o$*.o $*.c

.s.o:
	gcc -c $(CFLAGS) -o$*.o $*.s

.asm.o:
	pro $*.asm

MACH_OS = mach/memory_object_data_provided.o mach/memory_object_data_unav.o \
	mach/memory_object_data_error.o mach/memory_object_set_attrs.o \
	mach/memory_object_data_supply.o mach/memory_object_ready.o \
	mach/memory_object_change_attrs.o mach/mach_host_server.o \
	mach/mach_port_server.o mach/mach_server.o mach/memory_object_def_user.o \
	mach/memory_object_user.o

#MACH_OS = mach/mach_host_server.o mach/mach_port_server.o mach/mach_server.o \
#	mach/memory_object_default_user.o mach/memory_object_user.o \
#	\
#	mach/port_names.o mach/port_type.o mach/port_rename.o \
#	mach/port_allocate.o mach/port_deallocate.o mach/port_set_backlog.o mach/port_status.o \
#	mach/port_set_allocate.o mach/port_set_deallocate.o mach/port_set_add.o mach/port_set_remove.o \
#	mach/port_set_status.o mach/port_insert_send.o mach/port_extract_send.o mach/port_insert_receive.o \
#	\
#	mach/mach_port_names.o mach/mprn.o \
#	mach/mach_port_type.o mach/mach_port_rename.o mach/mach_port_allocate_name.o \
#	mach/mach_port_allocate.o mach/mach_port_destroy.o mach/mach_port_deallocate.o \
#	mach/mach_port_get_refs.o mach/mach_port_mod_refs.o mach/mach_port_set_qlimit.o \
#	mach/mach_port_get_set_status.o mach/mach_port_move_member.o mach/mach_port_insert_right.o \
#	mach/mach_port_extract_right.o mach/mpgrs.o mach/mach_port_set_seqno.o \
#	\
#	mach/task_create.o mach/task_set_special_port.o \
#	\
#	mach/thread_create.o mach/thread_resume.o mach/thread_set_state.o \
#	\
#	mach/mosa.o mach/modu.o \
#	mach/memory_object_data_error.o mach/memory_object_data_supply.o mach/memory_object_data_provided.o \
#	\
#	mach/vsdmm.o \
#	mach/vm_allocate.o mach/vm_deallocate.o mach/vm_wire.o mach/vm_write.o mach/vm_protect.o


KERN_OS = kern/bootstrap.o kern/ast.o kern/debug.o kern/counters.o kern/eventcount.o kern/exception.o \
	kern/host.o kern/ipc_host.o kern/ipc_kobject.o kern/ipc_mig.o kern/ipc_sched.o kern/ipc_tt.o \
	kern/kalloc.o kern/lock.o kern/mach_clock.o kern/mach_factor.o kern/machine.o kern/printf.o \
	kern/priority.o kern/processor.o kern/queue.o kern/sched_prim.o kern/syscall_emulation.o \
	kern/syscall_subr.o kern/syscall_sw.o kern/task.o kern/thread.o kern/thread_swap.o \
	kern/time_stamp.o kern/timer.o kern/xpr.o kern/zalloc.o kern/startup.o

VM_OS = vm/memory_object.o vm/vm_fault.o vm/vm_external.o vm/vm_map.o vm/vm_init.o \
	vm/vm_kern.o vm/vm_object.o vm/vm_pageout.o vm/vm_resident.o vm/vm_user.o

IPC_OS = ipc/ipc_entry.o ipc/ipc_init.o ipc/ipc_hash.o ipc/ipc_kmsg.o ipc/ipc_mqueue.o ipc/ipc_marequest.o \
	ipc/ipc_notify.o ipc/ipc_object.o ipc/ipc_port.o ipc/ipc_pset.o ipc/ipc_space.o ipc/ipc_right.o \
	ipc/ipc_splay.o ipc/ipc_table.o ipc/mach_msg.o ipc/ipc_thread.o ipc/mach_port.o

DEVICE_OS = device/ds_routines.o device/blkio.o device/chario.o device/cirbuf.o device/dev_lookup.o \
	device/dev_name.o device/dev_pager.o device/device_init.o device/net_io.o device/subrs.o \
	device/device_server.o device/device_reply_user.o device/device_pager_server.o

AMIGA_OS = amiga/start.o amiga/init.o amiga/pmap.o amiga/trap.o amiga/pcb.o amiga/locore.o \
	amiga/conf.o amiga/bcopy.o amiga/bzero.o amiga/_setjmp.o \
	amiga/uart.o amiga/cons.o

ALL_OS = $(AMIGA_OS) $(MACH_OS) $(KERN_OS) $(VM_OS) $(IPC_OS) $(DEVICE_OS)

all: amiga/boot.asm kernel amiga/takeover.bin
	a68k amiga/boot.asm
	blink mk:amiga/boot.o to mach:mach
#	pro amiga/boot.asm

amiga/takeover.bin: amiga/takeover.asm amiga/sim
	pro amiga/takeover.asm

kernel: $(ALL_OS)
	gcc $(LDFLAGS) -o kernel $(ALL_OS)

