CC=cc
APP=rfile
IDLFILE=rfile.idl
FILE_PREFIX=rfile
SYS_LDFLAGS=

#server specific user objects
USER_SERV_OBJS=$(APP)_impl.o

#client specific user objects
USER_CLNT_OBJS=$(APP)_call.o

#objects shared by client and server
COMMON_OBJS=$(APP)_common.o

CLNT_LD_FLAGS=
SERV_LD_FLAGS=

#for sysvr4 comment out the following two lines
#CLNT_LD_FLAGS= -lsocket -lnsl
#SERV_LD_FLAGS= -lnsl

#this should be the path of the powerRPC executable
POWERRPC = $(POWERRPC_HOME)/bin/powerRPC
PWLIBDIR=$(POWERRPC_HOME)/lib/
PW_INC_FLAG=-I$(POWERRPC_HOME)/include/ 
CFLAGS= -g $(PW_INC_FLAG) -DPW_TRACE

SERVLIB =$(FILE_PREFIX)Serv.o
CLNTLIB =$(FILE_PREFIX)Clnt.o

SERVER_PROG=$(APP)serv
CLIENT_PROG=$(APP)clnt

PWLDFLAG=-L$(PWLIBDIR) -lpwrpc

all: $(SERVLIB) $(CLNTLIB) server client

server_lib: $(SERVLIB)
client_lib: $(CLNTLIB)
server: $(SERVER_PROG)
client: $(CLIENT_PROG)
clean: 
	rm -f $(FILE_PREFIX)_svc.c $(FILE_PREFIX)_cln.c 
	rm -f $(FILE_PREFIX)_xdr.c $(FILE_PREFIX).h
	rm -f *.o


$(FILE_PREFIX)_svc.c $(FILE_PREFIX)_cln.c $(FILE_PREFIX)_xdr.c: $(IDLFILE)
	$(POWERRPC)  $(IDLFILE) 
		

$(CLNTLIB) : $(FILE_PREFIX)_cln.o $(FILE_PREFIX)_xdr.o 
	$(LD) -r -o $@ $(FILE_PREFIX)_cln.o $(FILE_PREFIX)_xdr.o 

$(SERVLIB) :  $(FILE_PREFIX)_svc.o $(FILE_PREFIX)_xdr.o 
	$(LD) -r -o $@  $(FILE_PREFIX)_svc.o $(FILE_PREFIX)_xdr.o


$(SERVER_PROG): $(SERVLIB) $(USER_SERV_OBJS) $(COMMON_OBJS)
	$(CC) -o $@  $(SERVLIB) $(USER_SERV_OBJS) $(COMMON_OBJS) $(SERV_LD_FLAGS) $(SYS_LDFLAGS) $(PWLDFLAG)

$(CLIENT_PROG): $(CLNTLIB) $(USER_CLNT_OBJS) $(COMMON_OBJS)
	$(CC) -o $@ $(CLNTLIB) $(USER_CLNT_OBJS) $(COMMON_OBJS) $(CLNT_LD_FLAGS) $(SYS_LDFLAGS) $(PWLDFLAG)
	
