CONF=cpu
CONFLIST=cpu term termlocal bart rom
TYPE=ram

objtype=hobbit
</$objtype/mkfile
CFLAGS=-w -D$TYPE
LIBRARY=lib$TYPE.a

DEV=`{rc ../port/mkdevlist $CONF}`
STREAM=`{rc ../port/mkstreamlist $CONF}`
MISC=`{rc ../port/mkmisclist $CONF}`

OBJ=\
	trap.$O\
	alarm.$O\
	alloc.$O\
	chan.$O\
	clock.$O\
	dev.$O\
	fault.$O\
	latin1.$O\
	taslock.$O\
	segment.$O\
	swap.$O\
	${TYPE}main.$O\
	mmu.$O\
	net.$O\
	page.$O\
	pgrp.$O\
	print.$O\
	proc.$O\
	qlock.$O\
	queue.$O\
	sysfile.$O\
	sysproc.$O\
	$DEV\
	$MISC\
	$STREAM\
	stream.$O\
	fcall.$O\
	fprt0.$O\
	fpi$objtype.$O\
	fpi.$O

LIBO=${OBJ:%=$LIBRARY(%)}

def:V: 9$CONF

9cpu:	raml.$O boot$CONF.root.$O $LIBRARY $CONF.c
	$CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
	$LD -o $target -l -R4 -H1 -T0x80004000 -E0x80004000 raml.$O $CONF.$O boot$CONF.root.$O $LIBRARY -lc
	size 9$CONF

9bart 9term 9termlocal:	raml.$O boot$CONF.root.$O $LIBRARY $CONF.c /$objtype/lib/libgnot.a /$objtype/lib/libg.a
	$CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
	$LD -o $target -l -R4 -H1 -T0x80004000 -E0x80004000 raml.$O $CONF.$O boot$CONF.root.$O $LIBRARY -lgnot -lg -lc
	size 9$CONF

9rom:	roml.$O boot$CONF.root.$O $LIBRARY $CONF.c
	$CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
	$LD -o $target -l -H1 -T0xC0000000 -D0xC0604000 -E0x0 roml.$O $CONF.$O boot$CONF.root.$O $LIBRARY -lc
	size 9$CONF

$LIBRARY:	$LIBO
	names=`{membername $newprereq}
	ar vu $LIBRARY $names
	$RL $LIBRARY
	rm -f $names

$LIBRARY(%.$O):N:%.$O

<../port/portmkfile

install:V: 9$CONF
	cp 9$CONF /$objtype/9$CONF

${TYPE}main.$O:	init.h
rommain.$O:	rom.h

init.h:	initcode /sys/src/libc/9syscall/sys.h
	$AS initcode
	$LD -l -s -o init.out -H2 -T0x1020 -R4 initcode.$O
	{echo 'uchar initcode[]={'
	 xd -r -1x init.out |
		sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
	 echo '};'} > init.h

clock.$O main.$O:	/$objtype/include/ureg.h

fpi.root.c:	fpi.out
	../port/mkroot fpi fpi

fpihobbit.$O:	fpi.h fpihobbit.c
	$CC $CFLAGS fpihobbit.c

fpi.$O:		fpi.h fpi.c
	$CC $CFLAGS fpi.c

fpi.out:	fprt0.$O fpihobbit.$O fpi.$O
	$LD -l -R4 -T0xE0000020 $prereq
	cp z.out $target

clobber:V:
	mk clean
	rm -f [$OS].mkrom 9rom.com
