BIN = DISPATCHER ADD_SERVER SUB_SERVER MUL_SERVER DIV_SERVER

GEN = addserver_clnt.c addserver_svc.c addserver.h
GEN1 = subserver_clnt.c subserver_svc.c subserver.h
GEN2 = mulserver_clnt.c mulserver_svc.c mulserver.h
GEN3 = divserver_clnt.c divserver_svc.c divserver.h

RPCCOM = rpcgen

all: $(BIN)

$(GEN): addserver.x
	$(RPCCOM)addserver.x
$(GEN1): subserver.x
	$(RPCCOM)subserver.x
$(GEN2): mulserver.x
	$(RPCCOM)mulserver.x
$(GEN3): divserver.x
	$(RPCCOM)divserver.x

ADD_SERVER: addserver_svc.o addserver_server.o addserver_xdr.o
	gcc -o addserver_svc addserver_svc.o addserver_server.o addserver_xdr.o -lnsl
	
SUB_SERVER: subserver_svc.o subserver_server.o subserver_xdr.o
	gcc -o subserver_svc subserver_svc.o subserver_server.o subserver_xdr.o -lnsl

MUL_SERVER: mulserver_svc.o mulserver_server.o mulserver_xdr.o
	gcc -o mulserver_svc mulserver_svc.o mulserver_server.o mulserver_xdr.o -lnsl

DIV_SERVER: divserver_svc.o divserver_server.o divserver_xdr.o
	gcc -o divserver_svc divserver_svc.o divserver_server.o divserver_xdr.o -lnsl

DISPATCHER: dispatcher.o addserver_clnt.o addserver_xdr.o subserver_clnt.o subserver_xdr.o mulserver_clnt.o mulserver_xdr.o divserver_clnt.o divserver_xdr.o
	gcc -o DISPATCHER dispatcher.o addserver_clnt.o subserver_clnt.o mulserver_clnt.o divserver_clnt.o addserver_xdr.o subserver_xdr.o mulserver_xdr.o divserver_xdr.o -lnsl -lsocket -lpthread

addserver_server.o: addserver_server.c addserver.h
subserver_server.o: subserver_server.c subserver.h
mulserver_server.o: mulserver_server.c mulserver.h
divserver_server.o: divserver_server.c divserver.h

dispatcher.o: dispatcher.c addserver.h subserver.h mulserver.h divserver.h

clean:
	rm -f $(GEN)
	rm -f $(GEN1)
	rm -f $(GEN2)
	rm -f $(GEN3)
	
	rm -f *.o
	
