SRCS = disserve.c atom.c dispatch.c acl.c acl_core.c core.c coreutil.c \
	recover.c expunge.c glue.c rpproc.c

COMOBJS	= disserve.o atom.o dispatch.o acl.o acl_core.o core.o coreutil.o
RECOBJS = recover.o core.o coreutil.o atom.o acl.o glue.o
EXPOBJS = expunge1.o core.o coreutil.o atom.o acl.o acl_core.o glue.o
EXP2OBJS= expunge2.o dcache.o dfile.o

DEPLIBS	= ../libds/libds.a $(ETDIR)/dsc_et.o $(ETDIR)/rpc_et.o \
	../usp/libusp.a $(COMERRDEP) 
LIBS = $(ZEPHYRLIB) -ldsk $(KRBLIB) $(DESLIB) -lusp -lcom_err

INCLUDES = -I$(UTILINCDIR) -I../include -I../ets
DEFINES	= $(ZEPHYRDEF) -DUSPRPC
LDFLAGS	= -L../libds -L../usp -L$(UTILLIBDIR) $(PANSS_LDOPTS)

all: disserve discussd disdebug recover expunge

NormalProgramTarget(disserve, $(COMOBJS) rpproc.nk.o, $(DEPLIBS),, $(LIBS))
NormalProgramTarget(discussd, $(COMOBJS) rpproc.k.o, $(DEPLIBS),, $(LIBS))
NormalProgramTarget(disdebug, $(COMOBJS) rpproc.debug.o, $(DEPLIBS),, $(LIBS))
NormalProgramTarget(recover, $(RECOBJS), $(DEPLIBS),, $(LIBS))
NormalProgramTarget(expunge, $(EXPOBJS), $(DEPLIBS),, $(LIBS))
/* NormalProgramTarget(expunge+, $(EXP2OBJS), $(COMERRDEP),, -lcom_err) */
expunge+ : $(EXP2OBJS) $(COMERRDEP)
	$(CXX) -o expunge+ $(EXP2OBJS) -lcom_err

InstallProgramWithFlags(discussd, $(DS_SERVERDIR), -o discuss)
InstallProgramWithFlags(disserve, $(DS_SERVERDIR), -o discuss -m 4755)

DependTarget()
LintTarget()

installclient: disserve
	$(INSTALL) -c $(INSTPGMFLAGS) disserve $(DESTDIR)/disserve-fs

# Magic dependencies and build rules.

# I could make a macro for this, but it probably isn't necessary.
rpproc.k.o: rpproc.c
	rm -f rpproc.k.o rpproc.o
	${CC} $(CFLAGS) -DINETD -DKERBEROS -c rpproc.c
	mv rpproc.o rpproc.k.o

rpproc.nk.o: rpproc.c
	rm -f rpproc.o rpproc.nk.o
	${CC} $(CFLAGS) -DSUBPROC -c rpproc.c
	mv rpproc.o rpproc.nk.o

rpproc.debug.o: rpproc.c
	rm -f rpproc.debug.o rpproc.o
	${CC} $(CFLAGS) -DKERBEROS -c rpproc.c
	mv rpproc.o rpproc.debug.o

expunge1.o : expunge.c
	rm -f expunge.o expunge1.o
	${CC} $(CFLAGS) -c expunge.c
	mv -f expunge.o expunge1.o

# C++ stuff.  Should be moved to imake include files.
CXX = CC
CXXFLAGS = $(CFLAGS)

.SUFFIXES: .o .cc

.cc.o : ; rm -f $*.o $*.C ; ln -s $*.cc $*.C ; ${CXX} ${CXXFLAGS} -c $*.C

expunge2.o : expunge.cc dsrv.h
	rm -f expunge2.o expunge.C expunge.o
	ln -s expunge.cc expunge.C
	${CXX} $(CXXFLAGS) -c expunge.C
	mv -f expunge.o expunge2.o

dcache.o : dcache.cc dsrv.h
dfile.o : dfile.cc dsrv.h
