# Solaris specific defines, passed to subdirectories.
# To use Sun CC, uncomment the CC and KFLAGS variables.

# use gcc
CC=		gcc
KCFLAGS=	-D_KERNEL -Wall -Wstrict-prototypes ${KGCCFLAGS}
OPTOPTS=	-O

# use Sun CC
#CC=		/opt/SUNWspro/bin/cc
#KCFLAGS=	-D_KERNEL
#OPTOPTS=	-fast -xO4 -xstrconst -xtarget=generic

DEFS=	-D__svr4__ -DSOLARIS -I../../sys/solaris
INSTALL=	/usr/ucb/install
AFPLIBS=	-lrpcsvc
ADDLIBS=	-lsocket -lnsl

# Local build stuff.

SRC= linkage.c tpi.c dlpi.c ioc.c if.c aarp.c ddp.c sock.c rt.c
OBJ= linkage.o tpi.o dlpi.o ioc.o if.o aarp.o ddp.o sock.o rt.o

INCPATH=	-I../../include -I../netatalk
CFLAGS=	${KCFLAGS} ${DEFS} ${OPTOPTS} ${INCPATH}

ALL=	../../libatalk ../../include ../../bin ../../etc ../../man

oops:
	@echo "Read README again.  Don't type 'make' here."
	@exit 1

all :	kernel ${ALL}

kernel :	FRC
	@case `uname -p` in \
	    i386) \
		PROCESSOR=i386; \
		KGCCFLAGS=""; \
		;; \
	    sparc) \
		PROCESSOR=sparc; \
		KGCCFLAGS="-mno-app-regs -munaligned-doubles \
			-fpcc-struct-return" \
		;; \
	    *) echo "Unknown processor type..."; exit 1 \
		;; \
	esac; \
	echo "Making $@ for $$PROCESSOR..."; \
	${MAKE} ${MFLAGS} \
	    SBINDIR="${SBINDIR}" BINDIR="${BINDIR}" RESDIR="${RESDIR}"\
	    ETCDIR="${ETCDIR}" LIBDIR="${LIBDIR}" INCDIR="${INCDIR}" \
	    MANDIR="${MANDIR}" DESTDIR="${DESTDIR}" AFSDIR="${AFSDIR}" \
	    KRBDIR="${KRBDIR}" \
	    AFPLIBS="${AFPLIBS}" KGCCFLAGS="$${KGCCFLAGS}" ddp

FRC:

ddp :	${OBJ}
	ld -r -o ddp ${OBJ}

linkage.o : linkage.c
	${CC} ${CFLAGS} -DVERSION=\"`cat ../../VERSION`\" -c linkage.c

../../bin ../../etc:	../../libatalk

${ALL}:	FRC
	cd $@; ${MAKE} ${MFLAGS} CC="${CC}" \
	    ADDLIBS="${ADDLIBS}" DEFS="${DEFS}" OPTOPTS="${OPTOPTS}" \
	    SBINDIR="${SBINDIR}" BINDIR="${BINDIR}" RESDIR="${RESDIR}" \
	    ETCDIR="${ETCDIR}" LIBDIR="${LIBDIR}" INCDIR="${INCDIR}" \
	    DESTDIR="${DESTDIR}" AFSDIR="${AFSDIR}" KRBDIR="${KRBDIR}" \
	    AFPLIBS="${AFPLIBS}" all

FRC:

kuninstall : FRC
	rm -f /etc/init.d/atalk /etc/rc2.d/S79atalk /etc/rc0.d/K79atalk
	${RM} /usr/kernel/drv/ddp /usr/kernel/drv/ddp.conf
	${RM} /usr/kernel/strmod/ddp
	-rem_drv ddp
	sync;sync;sync

kinstall : kernel kuninstall
	${INSTALL} -c ddp /usr/kernel/drv/ddp
	ln /usr/kernel/drv/ddp /usr/kernel/strmod/ddp
	${INSTALL} -c ddp.conf /usr/kernel/drv/ddp.conf
	add_drv -m '* 0666 root sys' ddp
	sync;sync;sync
	sed -e s@:DESTDIR:@${DESTDIR}@ -e s@:SBINDIR:@${SBINDIR}@ \
		-e s@:BINDIR:@${BINDIR}@ -e s@:RESDIR:@${RESDIR}@ \
		-e s@:ETCDIR:@${ETCDIR}@ -e s@:LIBDIR:@${LIBDIR}@ \
		-e s@:INCDIR:@${INCDIR}@ \
	    < ../../rc.atalk.sysv > /etc/init.d/atalk
	chmod 744 /etc/init.d/atalk
	-ln -s ../init.d/atalk /etc/rc2.d/S79atalk
	-ln -s ../init.d/atalk /etc/rc0.d/K79atalk

install :
	-mkdir ${DESTDIR} ${SBINDIR} ${BINDIR} ${ETCDIR} ${LIBDIR}
	sed -e s@:BINDIR:@${BINDIR}@ < ../../lp2pap.sh > ${RESDIR}/lp2pap.sh
	chmod 744 ${RESDIR}/lp2pap.sh
	for i in ${ALL}; \
	    do (cd $$i; ${MAKE} ${MFLAGS} CC="${CC}" \
		ADDLIBS="${ADDLIBS}" DEFS="${DEFS}" OPTOPTS="${OPTOPTS}" \
	        SBINDIR="${SBINDIR}" BINDIR="${BINDIR}" RESDIR="${RESDIR}" \
	        ETCDIR="${ETCDIR}" LIBDIR="${LIBDIR}" INCDIR="${INCDIR}" \
		AFSDIR="${AFSDIR}" KRBDIR="${KRBDIR}" \
		AFPLIBS="${AFPLIBS}" \
		INSTALL="${INSTALL}" $@); \
	done
	@echo
	@echo "Install is done.  Don't forget to add lines from"
	@echo "services.atalk to /etc/services and to call rc.atalk"
	@echo "in /etc/rc.  See README and README.SOLARIS for more"
	@echo "information."

clean : sysclean
	for i in ${ALL}; \
	    do (cd $$i; ${MAKE} ${MFLAGS} clean); \
	done

klean sysclean :
	rm -f a.out core* *.o *.bak *[Ee]rrs tags
	rm -f ddp

depend :
	for i in ${ALL}; \
	    do (cd $$i; ${MAKE} ${MFLAGS} DEFS=${DEFS} depend); \
	done

# DO NOT DELETE THIS LINE

