# The kernel dir contains xt_wini.c and at_wini.c.  Before running make
# you must copy one of these to wini.c, depending on which controller you
# have.  If you do not have a hard disk, you MUST choose one of them at random.
# On a PC, cpp and cem are in /lib and will be removed to make space while
# linking the kernel.  On an AT, they are in /usr/lib are are not removed.
# This is because they have to be in /lib on a PC; the diskette is too small
# for them to be in /usr/lib.  You can change this by editing commands/cc.c.
#
# This makefile has been modified for separate-directory compilation
# ("newboot" project).
#
# The CFLAGS values are:
#  -Di8088	- required on an 8088/80286/80386 CPU; forbidden on a 68000
#  -F		- run cpp and cem sequentially (used when memory is tight)
#  -T.		- put temporaries in working directory (when RAM disk is small)
#
CFLAGS	= -Di8088 -T. -I. -I../../kernel
H	= ../../h
h	= ../h
K	= ../../kernel
l	= /usr/lib

obj =	mpx88.s main.s tty.s floppy.s wini.s system.s proc.s \
	clock.s memory.s console.s rs232.s printer.s table.s \
	klib88.s dmp.s msgtrace.s
#	rdmp.s rprintk.s rputc.s

cobjs =	main.s tty.s floppy.s wini.s system.s proc.s clock.s memory.s \
	console.s rs232.s printer.s table.s dmp.s msgtrace.s
#	rdmp.s rprintk.

kernel:	makefile $(obj) $l/libc.a
	@echo "Start linking Kernel."
	@asld -s -o kernel -i -T. $(obj) $l/libc.a $l/end.s >kernel.sym
	@chmem =2048 kernel
	@echo "Kernel done.  "

clean:
	rm -f $(cobjs)

clock.s:	$K/const.h $K/type.h $H/const.h $H/type.h
clock.s:	$H/callnr.h
clock.s:	$H/com.h
clock.s:	$H/error.h
clock.s:	$H/signal.h
clock.s:	$K/glo.h
clock.s:	$K/proc.h
clock.s:	$K/clock.c
	$(CC) $(CFLAGS) -c $K/clock.c

console.s:	$K/const.h $K/type.h $H/const.h $H/type.h
console.s:	$H/callnr.h
console.s:	$H/com.h
console.s:	$H/error.h
console.s:	$H/sgtty.h
console.s:	$H/signal.h
console.s:	$K/glo.h
console.s:	$K/proc.h
console.s:	$K/tty.h
console.s:	$K/ttymaps.h
	$(CC) $(CFLAGS) -c $K/console.c

floppy.s:	$K/const.h $K/type.h $H/const.h $H/type.h
floppy.s:	$H/callnr.h
floppy.s:	$H/com.h
floppy.s:	$H/error.h
floppy.s:	$K/glo.h
floppy.s:	$K/proc.h
	$(CC) $(CFLAGS) -c $K/floppy.c

dmp.s:		$K/const.h $K/type.h $H/const.h $H/type.h
dmp.s:		$H/callnr.h
dmp.s:		$H/com.h
dmp.s:		$H/error.h
dmp.s:		$K/glo.h
dmp.s:		$K/proc.h
	$(CC) $(CFLAGS) -c $K/dmp.c

main.s:		$K/const.h $K/type.h $H/const.h $H/type.h
main.s:		$H/callnr.h
main.s:		$h/com.h
main.s:		$H/error.h
main.s:		$K/glo.h
main.s:		$K/proc.h
main.s:		main.c
	$(CC) $(CFLAGS) -c main.c

memory.s:	$K/const.h $K/type.h $H/const.h $H/type.h
memory.s:	$H/callnr.h
memory.s:	$H/com.h
memory.s:	$H/error.h
memory.s:	$K/proc.h
memory.s:	memory.c
	$(CC) $(CFLAGS) -c memory.c

printer.s:	$K/const.h $K/type.h $H/const.h $H/type.h
printer.s:	$H/callnr.h
printer.s:	$H/com.h
printer.s:	$H/error.h
printer.s:	$K/proc.h
printer.s:	$K/glo.h
	$(CC) $(CFLAGS) -c $K/printer.c

proc.s:		$K/const.h $K/type.h $H/const.h $H/type.h
proc.s:		$H/callnr.h
proc.s:		$H/com.h
proc.s:		$H/error.h
proc.s:		$K/glo.h
proc.s:		$K/proc.h
	$(CC) $(CFLAGS) -c $K/proc.c

system.s:	$K/const.h $K/type.h $H/const.h $H/type.h
system.s:	$H/callnr.h
system.s:	$h/com.h
system.s:	$H/error.h
system.s:	$H/signal.h
system.s:	$K/glo.h
system.s:	$K/proc.h
system.s:	system.c
	$(CC) $(CFLAGS) -c system.c

table.s:	$K/const.h $K/type.h $H/const.h $H/type.h $H/com.h
table.s:	$K/glo.h
table.s:	$K/proc.h
table.s:	$K/tty.h
	$(CC) $(CFLAGS) -c $K/table.c

tty.s:	$K/const.h $K/type.h $H/const.h $H/type.h
tty.s:	$H/callnr.h
tty.s:	$H/com.h
tty.s:	$H/error.h
tty.s:	$H/sgtty.h
tty.s:	$H/signal.h
tty.s:	$K/glo.h
tty.s:	$K/proc.h
tty.s:	$K/tty.h
tty.s:	$K/ttymaps.h
	$(CC) $(CFLAGS) -c $K/tty.c

rs232.s: $K/const.h $K/type.h $K/glo.h $K/proc.h $K/tty.h
rs232.s: $H/const.h
rs232.s: $H/type.h
rs232.s: $H/callnr.h
rs232.s: $H/com.h
rs232.s: $H/error.h
rs232.s: $H/sgtty.h
rs232.s: $H/signal.h
	$(CC) $(CFLAGS) -c $K/rs232.c

wini.s:	$K/const.h $K/type.h $H/const.h $H/type.h
wini.s:	$H/callnr.h
wini.s:	$H/com.h
wini.s:	$H/error.h
wini.s:	$K/proc.h
	$(CC) $(CFLAGS) -c $K/wini.c

msgtrace.s:	$K/const.h
	$(CC) $(CFLAGS) -c $K/msgtrace.c
