PORTHFILES=\
	../../$OBJDIR/include/lib9.h\
	../../include/fcall.h\
	../../include/interp.h\
	../../include/draw.h\
	../port/error.h\
	../port/dat.h\
	../port/fns.h\

LIBNAMES=${LIBS:%=lib%.a}
LIBFILES=${LIBS:%=../../$SYSTARG/$OBJTYPE/lib/lib%.a}

../../$SYSTARG/$OBJTYPE/lib/lib%.a:N:	lib%.a

%.$O:	%.s
	$AS $ASFLAGS $stem.s

%.$O:	%.S$MACOSINF
	$AS $ASFLAGS $stem.S

%.$O:	%.c
	$CC $CFLAGS $stem.c

%.$O:	../port/%.c
	$CC $CFLAGS -I. ../port/$stem.c

%.$O:	../ip/%.c
	$CC $CFLAGS -I. ../ip/$stem.c

&.$O:	$HFILES $PORTHFILES

$INSTALLDIR/%: %
	cp $stem $INSTALLDIR/$stem

installall:V:	install-$SHELLTYPE
all:V:		default-$SHELLTYPE

%-rc:V:	
	for i in $CONFLIST {
		mk 'CONF='$i $stem
	}

#lib%.a:V:
#	echo '@{builtin cd' ../../lib$stem '; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install}'
#	@{builtin cd ../../lib$stem; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE install}


clean:V:
	rm -f *.[$OS] errstr.h *.out *.obj
	for(i in $CONFLIST $CLEANCONFLIST) {
		rm -f $i.c [$OS].$i i$i i$i.* $i.ver $i.exe
	}

nuke:V:	clean 
	rm -f srv.h srvm.h

$CONF.c:	../port/mkdevc $CONF
	sh ../port/mkdevc < $CONF > $CONF.c

errstr.h:	../port/error.h
	sed 's/extern //;s,;.*/\* , = ",;s, \*/,";,' < ../port/error.h > errstr.h

../init/%.dis:	../init/%.b
	cd ../init; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE $stem.dis

../../libinterp/runt.h:
	cd ../../libinterp
	mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE runt.h

INTERP=../../include/interp.h
RUNT=../../libinterp/runt.h		# for culling dependencies

alloc.$O: ../../include/pool.h\
		$INTERP
devcons.$O:	../../include/version.h
devdraw.$O:	../../include/draw.h\
		../../include/memdraw.h\
		../../include/memlayer.h
devmem.$O:	$INTERP
devpipe.$O:	$INTERP
devprof.$O:	$INTERP
devprog.$O:	../../libinterp/runt.h\
			$INTERP
devsign.$O:	$INTERP
devsign.$O: ../../libkeyring/keys.h
devsrv.$O:	../../libinterp/runt.h\
		$INTERP
devtk.$O:	$INTERP
dis.$O:	$INTERP
discall.$O:	$INTERP
exception.$O:	$INTERP
inferno.$O:	../../libinterp/runt.h\
		$INTERP
devmnt.$O: ../../include/fcall.h
main.$O:	../../include/version.h
main.$O:	../port/error.h\
		$INTERP
proc.$O:	errstr.h\
		$INTERP
srv.$O:	$INTERP
devroot.$O:	errstr.h
latin1.$O:	../port/latin1.h
netif.$O:	../port/netif.h
devprog.$O:	$RUNT
devsrv.$O:	$RUNT
exception.$O:	$RUNT
inferno.$O:	$RUNT
ipif-$SYSTARG.$O devip.$O:		../port/ip.h

devroot.$O:	$CONF.root.h
$CONF.$O:	$CONF.root.h

$CONF.root.c $CONF.root.h: $CONF 
	mkroot $CONF  < $CONF > $CONF.root.h

audio.c:N:	../port/audio-tbls.c
audio.c:N:	../port/audio.h

srv.$O:			srv.h srvm.h
srv.h srvm.h:D:		/module/srvrunt.b /module/srv.m
	rm -f $alltarget
	limbo -a -I/module /module/srvrunt.b >srv.h
	limbo -t Srv -I/module /module/srvrunt.b >srvm.h
