
##########################################################################

SRC = unix.c afs.c kuam.c send_to_kdc.c lifetime.c ofork.c \
	main.c switch.c auth.c volume.c directory.c file.c \
	enumerate.c desktop.c filedir.c fork.c appl.c gettok.c bprint.c \
	status.c afp_options.c afp_asp.c afp_dsi.c messages.c config.c \
	nfsquota.c codepage.c

OBJ = unix.o afs.o kuam.o send_to_kdc.o lifetime.o ofork.o \
	main.o switch.o auth.o volume.o directory.o file.o \
	enumerate.o desktop.o filedir.o fork.o appl.o gettok.o bprint.o \
	status.o afp_options.o afp_asp.o afp_dsi.o messages.o config.o \
	nfsquota.o codepage.o

INCPATH=	-I../../include ${AFSINCPATH} ${KRBINCPATH} ${DESINCPATH} \
	${PAMINCPATH} ${DB2INCPATH}
CFLAGS=	${DEFS} ${AFSDEFS} ${KRBDEFS} ${DESDEFS} ${OPTOPTS} ${INCPATH} \
	${PAMDEFS} -DAPPLCNAME
LIBS =	-latalk ${AFSLIBS} ${KRBLIBS} ${DESLIBS} ${ADDLIBS} ${AFPLIBS} \
	${TCPWRAPLIBS} ${PAMLIBS} ${DB2LIBS}
LIBDIRS=	-L../../libatalk ${AFSLIBDIRS} ${KRBLIBDIRS} \
	${TCPWRAPLIBDIRS} ${DESLIBDIRS} ${PAMLIBDIRS} ${DB2LIBDIRS}
TAGSFILE=	tags
CC=	cc
INSTALL=	install

SUBDIRS = nls

all : ${SUBDIRS}
	if [ x"${KRBDIR}" != x ]; then \
	    KRBLIBS="-lkrb -ldes"; \
	    KRBLIBDIRS="-L${KRBDIR}/lib"; \
	    KRBINCPATH="-I${KRBDIR}/include"; \
	    KRBDEFS="-DKRB"; \
	fi; \
	if [ x"${AFSDIR}" != x ]; then \
	    AFSLIBS="-lkauth -lprot -lubik -lauth -lsys -lrxkad -lrx -laudit \
		-llwp -lcmd -lcom_err ${AFSDIR}/lib/afs/util.a -ldes"; \
	    AFSLIBDIRS="-L${AFSDIR}/lib -L${AFSDIR}/lib/afs"; \
	    AFSINCPATH="-I${AFSDIR}/include"; \
	    AFSDEFS="-DAFS"; \
	fi; \
	if [ x"${DESDIR}" != x ]; then \
	    DESLIBS="-ldes"; \
	    if [ "${DESDIR}" != "/usr" ]; then \
	      DESLIBDIRS="-L${DESDIR}/lib"; \
	      DESINCPATH="-I${DESDIR}/include"; \
	    fi; \
	    DESDEFS="-DUAM_RNDNUM"; \
	fi; \
	if [ x"${TCPWRAPDIR}" != x ]; then \
	    TCPWRAPLIBS="-lwrap"; \
	    if [ "${TCPWRAPDIR}" != "/usr" ]; then \
	      TCPWRAPLIBDIRS="-L${TCPWRAPDIR}/lib"; \
	    fi; \
	fi; \
	if [ x"${PAMDIR}" != x ]; then \
	    PAMLIBS="-lpam -ldl"; \
	    if [ "${PAMDIR}" != "/usr" ]; then \
	      PAMLIBDIRS="-L${PAMDIR}/lib"; \
	      PAMINCPATH="-I${PAMDIR}/include"; \
	    fi; \
	    PAMDEFS="-DUSE_PAM"; \
	fi; \
	if [ x"${DB2DIR}" != x ]; then \
	    DB2LIBS="-ldb"; \
	    if [ "${DB2DIR}" != "/usr" ]; then \
	      DB2LIBDIRS="-L${DB2DIR}/lib"; \
	      DB2INCPATH="-I${DB2DIR}/include"; \
	    fi; \
	fi; \
	${MAKE} ${MFLAGS} CC="${CC}" ADDLIBS="${ADDLIBS}" DEFS="${DEFS}" \
	    OPTOPTS="${OPTOPTS}" DESTDIR="${DESTDIR}" DESDIR="${DESDIR}" \
	    SBINDIR="${SBINDIR}" BINDIR="${BINDIR}" RESDIR="${RESDIR}" \
	    ETCDIR="${ETCDIR}" LIBDIR="${LIBDIR}" INCDIR="${INCDIR}" \
	    PAMDIR="${PAMDIR}" TCPWRAPDIR="${TCPWRAPDIR}" \
	    DB2DIR="${DB2DIR}" \
	    KRBLIBS="$${KRBLIBS}" KRBLIBDIRS="$${KRBLIBDIRS}" \
	    KRBINCPATH="$${KRBINCPATH}" KRBDEFS="$${KRBDEFS}" \
	    AFSLIBS="$${AFSLIBS}" AFSLIBDIRS="$${AFSLIBDIRS}" \
	    DESLIBS="$${DESLIBS}" DESLIBDIRS="$${DESLIBDIRS}" \
	    PAMLIBS="$${PAMLIBS}" PAMLIBDIRS="$${PAMLIBDIRS}" \
	    TCPWRAPLIBS="$${TCPWRAPLIBS}" TCPWRAPLIBDIRS="$${TCPWRAPLIBDIRS}" \
	    DB2LIBS="$${DB2LIBS}" DB2LIBDIRS="$${DB2LIBDIRS}" \
	    DESINCPATH="$${DESINCPATH}" DESDEFS="$${DESDEFS}" \
	    PAMINCPATH="$${PAMINCPATH}" PAMDEFS="$${PAMDEFS}" \
	    AFSINCPATH="$${AFSINCPATH}" AFSDEFS="$${AFSDEFS}" \
	    DB2INCPATH="$${DB2INCPATH}" \
	    afpd

${SUBDIRS}: FRC
	cd $@; ${MAKE} ${MFLAGS} CC="${CC}" DEFS="${DEFS}" \
	    OPTOPTS="${OPTOPTS}" DESTDIR="${DESTDIR}" DESDIR="${DESDIR}" \
	    SBINDIR="${SBINDIR}" BINDIR="${BINDIR}" RESDIR="${RESDIR}" \
	    ETCDIR="${ETCDIR}" LIBDIR="${LIBDIR}" INCDIR="${INCDIR}"

FRC:

afpd : ${OBJ} ../../libatalk/libatalk.a
	${CC} ${CFLAGS} ${LDFLAGS} -o afpd ${OBJ} ${LIBDIRS} ${LIBS}

afp_options.o : afp_options.c
	${CC} ${CFLAGS} \
	    -D_PATH_AFPDDEFVOL=\"${ETCDIR}/AppleVolumes.default\" \
	    -D_PATH_AFPDSYSVOL=\"${ETCDIR}/AppleVolumes.system\" \
	    -D_NAME_AFPDPWFILE=\"~/.passwd\" \
	    -D_PATH_AFPDCONF=\"${ETCDIR}/afpd.conf\" \
	    -D_PATH_AFPDUAMPATH=\"${ETCDIR}/uams/\" \
	    -D_PATH_AFPDNLSPATH=\"${RESDIR}/nls/\" \
	    ${CPPFLAGS} -c afp_options.c

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

install : all
	for i in ${SUBDIRS}; \
	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}" \
		DESTDIR="${DESTDIR}" INSTALL="${INSTALL}" \
		install); \
	done
	${INSTALL} -c afpd ${SBINDIR}

clean :
	for i in ${SUBDIRS}; \
	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}" \
		DESTDIR="${DESTDIR}" INSTALL="${INSTALL}" \
		clean); \
	done
	rm -f a.out core* *.o *.bak *[Ee]rrs tags
	rm -f afpd

tags : ${SRC}
	cwd=`pwd`; \
	for i in ${SRC}; do \
	    ctags -t -a -f ${TAGSFILE} $$cwd/$$i; \
	done

depend :
	for i in ${SRC} ; do \
	    ${CC} -M ${DEFS} ${INCPATH} $$i | \
	    awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		else rec = rec " " $$2 } } \
		END { print rec } ' >> makedep; done
	sed -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile > Makefile.tmp
	cat makedep >> Makefile.tmp
	rm makedep
	echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile.tmp
	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile.tmp
	echo '# see make depend above' >> Makefile.tmp
	rm -f Makefile.bak
	cp Makefile Makefile.bak
	mv Makefile.tmp Makefile

# DO NOT DELETE THIS LINE

