CC=cc
APP=ta
IDLFILE=ta.idl
FILE_PREFIX=ta
SYS_LDFLAGS=
CFLAGS= -g 

#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=ta_common.o

CLNT_LD_FLAGS=
SERV_LD_FLAGS=

#this should be the path of the powerRPC executable
POWERRPC = $(POWERRPC_HOME)/bin/powerRPC
PWLIBDIR=$(POWERRPC_HOME)/lib/

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

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

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) $< 
		

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

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


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

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