#		Copyright (c) 1986,1987 Motorola Inc.		
#		All Rights Reserved				
#		@(#)Makefile	10.4

#ident	"@(#)kern-port:sysV68.mk	10.11"

RELEASE=R3V8
INCRT=/usr/src/uts/m88k
LIBDIR=../cf/m88k
CPU=m88k
TARGET=opus
MMU=CMMU
BRDEFS= -D$(MMU) -D$(TARGET) -DLAINFS -DBCS # -DSIMULATOR

NAME = sysV
SYS = 88

DASHG =
DASHO = 
FRC =

CC=cc
AR=ar
LD=ld

#KNOWNLIBS = lib.ml lib.os lib.io lib.s5 lib.bpp lib.fpack lib.stub \
#	lib.streams lib.du lib.tpi
KNOWNLIBS = lib.ml lib.os lib.io lib.s5 lib.stub lib.du lib.nfs lib.bsd

LIBS = lib.io lib.s5 lib.du lib.stub lib.nfs lib.bsd
CFLAGS= $(DASHO) $(DASHG) -I$(INCRT) -DINKERNEL -DREM -D$(CPU) $(BRDEFS)
XCFLAGS=

NSELIBS = lib.io lib.s5 lib.du lib.stub lib.nfs lib.bsd

#NSEXCFLAGS= -DDU -DSTREAMS
NSEXCFLAGS=

MAKEARGS= "MAKE=$(MAKE)" "FRC=$(FRC)" "DASHG=$(DASHG)" "DASHO=$(DASHO)" \
	 "INCRT=$(INCRT)" "LIBDIR=$(LIBDIR)" "SYS=$(SYS)" "CFLAGS=$(CFLAGS)" \
	 "CC=$(CC)" "AS=$(AS)" "AR=$(AR)" "BRDEFS=$(BRDEFS)" \
	 "CPU=$(CPU)"

all:
	-@if [ -f Makelock ] ;						\
	then								\
	    echo Make already started by `cat Makelock` ;		\
	    exit 1 ;							\
	fi ;								\
									\
	trap 'rm -f Makelock'  0 1 2 3 15 ;				\
									\
	(echo "$$LOGNAME on \c"; date) >Makelock ;			\
									\
	$(MAKE) kernel ;						\
									\
	rm -f Makelock

kernel:	libs
	-@ SHLIBS="$(NSELIBS)"  ;				\
	SHXCFLAGS="$(NSEXCFLAGS)" ;				\
	for i in lib.* ;						\
	do								\
		for j in $(KNOWNLIBS) ;					\
		do							\
			if [ "$$i" = "$$j" ] ;				\
			then						\
				continue 2 ;				\
			fi ;						\
		done ;							\
		SHLIBS="$$SHLIBS $$i" ;					\
	done ;								\
	: search libraries twice to resolve interdependencies ;		\
	SHLIBS="$$SHLIBS" ;				\
	$(MAKE) $(NAME)$(SYS) $(MAKEARGS) LIBS="$$SHLIBS" XCFLAGS="$$SHXCFLAGS"

$(NAME)$(SYS): $(LIBS) comm.o m78kvec.o  conf.o lib.os lib.ml
	-rm -f $(NAME)$(SYS) $(NAME)$(SYS).nm
#	$(LD) -r -o junk.o ld.file comm.o m78kvec.o	\
#	 conf.o lib.ml lib.os
	time $(LD) -s -o $(NAME)$(SYS) ld.file comm.o m78kvec.o conf.o  \
               lib.ml lib.os $(LIBS)
	 chmod 775 $(NAME)$(SYS)
	-@if [ -f lib.kdb -a -x ../../kdb/kdbnm ] ;			\
	then								\
		echo "no ../../kdb/kdbnm -q $(NAME)$(SYS)" ;		\
#		../../kdb/kdbnm -q $(NAME)$(SYS) ;				\
	fi ;								\
	if [ -x ../../kdb/namelist ] ;					\
	then								\
  	  echo "  ../../kdb/namelist -L $(NAME)$(SYS) > $(NAME)$(SYS).nm";	\
		../../kdb/namelist -L $(NAME)$(SYS) > $(NAME)$(SYS).nm ;	\
	fi ;								\
	if [ -x $(NAME)$(SYS) ] ;					\
	then								\
		echo $(NAME)$(SYS) made. ;				\
	else								\
		echo $(NAME)$(SYS) not executable. ;			\
	fi

libs:FRC
	-@cd ../.. ;							\
	for i in * ;							\
	do								\
		if [ $$i != cf -a -d $$i -a -f $$i/$$i.mk ] ;		\
		then							\
			cd $$i ;					\
			echo "	"$(MAKE) -f $$i.mk $(MAKEARGS) ;	\
			$(MAKE) -f $$i.mk $(MAKEARGS) ;			\
			cd .. ;						\
		fi ;							\
	done

lib.$(LIB):
	-@cd ../.. ;					\
	cd $$LIB ;					\
	echo "	"$(MAKE) -f $$LIB.mk $(MAKEARGS) ;	\
	$(MAKE) -f $$LIB.mk $(MAKEARGS) ;
			
m78kvec.o:	m78kvec.s
	$(CC) -c m78kvec.s

intvec.o:	intvec.s
	$(CC) -c intvec.s

low.o:	low.s
	$(CC) -c low.s

comm.o:	comm.s
	$(CC) -c comm.s

conf.o:	conf.c config.h $(INCRT)/sys/conf.h $(INCRT)/sys/param.h \
		$(INCRT)/sys/types.h $(INCRT)/sys/sysmacros.h \
		$(INCRT)/sys/space.h devsw.h
	$(CC) -c $(CFLAGS) $(XCFLAGS) conf.c

clean:
	-@cd ../.. ;							\
	for i in * ;							\
	do								\
		if [ $$i != cf -a -d $$i -a -f $$i/$$i.mk ] ;		\
		then							\
			cd $$i ;					\
			echo "	"$(MAKE) -f $$i.mk clean $(MAKEARGS) ;	\
			$(MAKE) -f $$i.mk clean $(MAKEARGS) ;		\
			cd .. ;						\
		fi ;							\
	done

clobber:	clean
	-@cd ../.. ;							\
	for i in * ;							\
	do								\
		if [ $$i != cf -a -d $$i -a -f $$i/$$i.mk ] ;		\
		then							\
			cd $$i ;					\
			echo "	"$(MAKE) -f $$i.mk clobber $(MAKEARGS) ;\
			$(MAKE) -f $$i.mk clobber $(MAKEARGS) ;	\
			cd .. ;						\
		fi ;							\
	done
	-rm -f $(NAME)$(SYS) $(NAME)$(SYS).nm

FRC:
