#
#  Makefile for example dictionary application (conventional and RPC)
#

CFLAGS =	-g ${INCLUDE}

SRC =		dict.c dict1.c dict2.c rdict.c rdict.x rdict_cif.c \
		rdict_sif.c rdict_srp.c
#
# Define all program files
#
PROGS =		dict rdict rdictd

#
# Define files generated by rpcgen
#
GFILES =	rdict.h rdict_clnt.c rdict_svc.c rdict_xdr.c

#
# Define client-side and server-side object files
#
RDICT_OBJ =	rdict_clnt.o rdict_cif.o rdict.o
RDICTD_OBJ =	rdict_svc.o rdict_sif.o rdict_srp.o

all:		${PROGS} dict1.o dict2.o

install:	all
		@echo nothing to install.

clean:
		rm *.o ${PROGS} ${GFILES}

#
# Original (conventional) application
#
dict:		dict.c
		${CC} ${CFLAGS} -o dict dict.c

#
# Test division into two parts to see if they compile
#
dict1.o:	dict1.c
		${CC} ${CFLAGS} -c dict1.c		

dict2.o		dict2.c
		${CC} ${CFLAGS} -c dict2.c

#
# Dependencies for files generated by rpcgen
#
${GFILES}:	rdict.h rdict.c
rdict.h:	rdict.x
		rpcgen rdict.x

#
# Compile and link client-side files for RPC version
#

${RDICT_OBJ}:
		${CC} ${CFLAGS} -c $*.c

rdict:		${RDICT_OBJ} rdict_xdr.o
		${CC} ${CFLAGS} -o $@ ${RDICT_OBJ} rdict_xdr.o
		chmod 755 rdict

#
# Compile and link server-side files for RPC version
#

${RDICTD_OBJ}:
		${CC} ${CFLAGS} -c $*.c

rdictd:		${RDICTD_OBJ} rdict_xdr.o
		${CC} ${CFLAGS} -o $@ ${RDICTD_OBJ} rdict_xdr.o

#
# Compile XDR definitions
#

rdict_xdr.o:
		${CC} ${CFLAGS} -c $*.c
