# SCCS_ID - "@(#)makefile        1.4      15:50:46 - 83/03/01 "
CFLAGS=-m -DKERNEL
MAXVDU = 8
OFILES = L.o mch.o call.o fptrap.o trace.o c.o para.o comment.o
OTHERS =

unix:   $(OFILES) ../sys/LIB1 ../dev/LIB2
unix:   ../sys/*.c
unix:   ../dev/*.c
	ld -o unix -x $(OFILES) $(OTHERS) vdu*.o `cat Others` ../sys/LIB1 ../dev/LIB2
#       ld -o unix -x *.o ../sys/LIB1 ../dev/LIB2
	symorder Symlist unix
	@echo "Don't worry about errors from symorder"

vers:   $(OFILES) ../sys/LIB1 ../dev/LIB2
vers:   ../sys/*.c
vers:   ../dev/*.c
#	cd ../sys;make LIB1
#	cd ../dev;make LIB2
	make remain

remain:
	make unix


all:
	cd ../sys;make all
	cd ../dev;make all

vdu.$(MAXVDU).o:
	-rm -f vdu*.o
	$(CC) -c $(CFLAGS) -DMAXVDU=$(MAXVDU) ../dev/vdu.c
	mv vdu.o vdu.$(MAXVDU).o

L.o fptrap.o mch.o call.o trace.o: param.s

.s.o:
	rm -f $@
	as -o $@ param.s $*.s

print:
	@pr ../h/*.h
	@pr ../sys/*.c
	@pr ../dev/*.c
	@pr c.c param.s
	@pr L.s call.s mch.s trace.s

LDEVS = \
	../dev/bio.c ../dev/cli.c ../dev/d40.c ../dev/dsk.c ../dev/dsp.c \
	../dev/lp.c ../dev/mem.c  ../dev/mmsm.c \
	../dev/mt.c ../dev/mx1.c ../dev/mx2.c ../dev/selch.c \
	../dev/sys.c ../dev/tty.c ../dev/vdu.c ../dev/partab.c ../dev/dsa.c \
	../dev/pk0.c ../dev/pk1.c ../dev/pk2.c ../dev/pk3.c

lint:
	@lint -hbxnu $(CFLAGS) Locore.c ../sys/*.c ../conf/c.c $(LDEVS) |\
		grep -v 'struct/union .* never defined' |\
		grep -v 'possible pointer alignment problem' |\
		grep -v 'returns value which is .* ignored'


sin.o : sin.c
	$(CC) -c -m -DKERNEL sin.c

mkconf : mkconf.c
	$(CC) -o mkconf -DMAKEDEV -DMAXVDU=$(MAXVDU) mkconf.c
