#-----------------------------------------------------------------------------
#  Copyright (c) 1991,1992 Southeastern Universities Research Association,
#                          Continuous Electron Beam Accelerator Facility
# 
#  This software was developed under a United States Government license
#  described in the NOTICE file included as part of this distribution.
# 
#  CEBAF Data Acquisition Group, 12000 Jefferson Ave., Newport News, VA 23606
#  Email: coda@cebaf.gov  Tel: (804) 249-7101  Fax: (804) 249-7363
# -----------------------------------------------------------------------------
#  
#  Description:  Makefile for FASTBUS RPC libraries and Server
# 	
# 	
#  Author:  David Abbott, TJANF Data Acquisition Group
# 
#  Revision History:
#    $Log: Makefile,v $
#    Revision 1.1  1998/04/15 13:57:11  abbottd
#    Initial Revision
#
#

ifndef OSTYPE
  OSTYPE := $(subst -,_,$(shell uname))
endif

ifeq ($(OSTYPE),HP_UX)
LIBS = 
EXTRA = -D_HPUX_SOURCE -Dhpux
endif

ifeq ($(OSTYPE),SunOS)
LIBS = -lrpcsvc -lnsl
EXTRA =
endif

ifndef ARCH
  ARCH=$(OSTYPE)
endif

ifeq ($(ARCH),VXWORKS68K51)

VXWORKS_ROOT = /usr/local/tornado/68k/target

  DEFS   = -m68020 -DCPU=MC68020 -DVXWORKS -DVXWORKS68K51 -O -fvolatile -fstrength-reduce -nostdinc
  INCS   = -I$(VXWORKS_ROOT)/h -I$(VXWORKS_ROOT)/h/rpc -I$(VXWORKS_ROOT)/h/net

  lib_targets      = 
  bin_targets      = fbSrvr
  include_targets  = fb.h
  
  CC     = cc68k $(INCS) $(DEFS)
  LD     = ld68k
  RPCGEN = /usr/local/tornado/ppc2/target/unsupported/rpc4.0/rpcgen/rpcgen

  sources = fbRpc_svc.c fbRpc_xdr.c fbSrvrLib.c

# explicit targets

all: clean fbSrvr

install: 
	@echo "installing fbSrvr"
	cp fbSrvr $(CODA)/VXWORKS68K51/bin/fbSrvr

clean:
	rm -f fbRpc_svc.o fbRpc_xdr.o fbSrvrLib.o fbSrvr

fbSrvr: fbRpc_svc.o fbRpc_xdr.o fbSrvrLib.o
	$(LD) -o $@ -r fbRpc_svc.o fbRpc_xdr.o fbSrvrLib.o
	cp fbSrvr fbSrvr_68k
	rm -f fbRpc_xdr.o

endif


ifeq ($(ARCH),VXWORKSPPC)

VXWORKS_ROOT = /usr/local/tornado/ppc2/target

  DEFS   = -mcpu=604 -DCPU=PPC604 -DVXWORKS -D_GNU_TOOL -nostdinc -fno-for-scope -fno-builtin -fvolatile -DVXWORKSPPC
  INCS   = -I$(VXWORKS_ROOT)/h -I$(VXWORKS_ROOT)/h/rpc -I$(VXWORKS_ROOT)/h/net

  lib_targets      = 
  bin_targets      = fbSrvr
  include_targets  = fb.h
  
  CC     = ccppc $(INCS) $(DEFS)
  LD     = ldppc
  RPCGEN = /usr/local/tornado/ppc2/target/unsupported/rpc4.0/rpcgen/rpcgen

  sources = fbRpc_svc.c fbRpc_xdr.c fbSrvrLib.c

# explicit targets

all: clean fbSrvr

install: 
	@echo "installing fbSrvr"
	cp fbSrvr $(CODA)/VXWORKSPPC/bin/fbSrvr

clean:
	rm -f fbRpc_svc.o fbRpc_xdr.o fbSrvrLib.o fbSrvr

fbSrvr: fbRpc_svc.o fbRpc_xdr.o fbSrvrLib.o
	$(LD) -o $@ -r fbRpc_svc.o fbRpc_xdr.o fbSrvrLib.o
	cp fbSrvr fbSrvr_ppc
	rm -f fbRpc_xdr.o

endif


ifeq ($(ARCH),SunOS)

  DEFS   =
  INCS   =

  lib_targets      = libfb.a
  bin_targets      = fbp
  include_targets  = fb.h
  
  CC     = cc
  CCOPTS = -O
  LD     = ld
  RPCGEN = /usr/local/tornado/ppc2/target/unsupported/rpc4.0/rpcgen/rpcgen

  sources = fbp.c fbRpc_clnt.c fbRpc_xdr.c fbSrvrLib.c

# explicit targets

all: clean libfb.a fbp

install:
	@echo "installing libfb.a, fb.h, and fbp"
	cp libfb.a $(CODA_LIB)/libfb.a
	cp fb.h $(CODA)/common/include/fb.h
	cp fbp $(CODA_BIN)/fbp

libfb.a: fbRpc.h fbRpc_clnt.o fbClientLib.o fbRpc_xdr.o
	rm -f $@
	ar cr $@ fbClientLib.o fbRpc_clnt.o fbRpc_xdr.o
	rm -f fbRpc_xdr.o
	ranlib $@

fbp: fbp.c libfb.a
	$(CC) $(CCOPTS) -o $@ fbp.c -L. -lfb $(LIBS)

clean:
	rm -f  fbRpc_clnt.o fbRpc_xdr.o fbClientLib.o fbp.o fbp libfb.a

endif

fbRpc_xdr.o: fbRpc_xdr.c
	$(CC) -c $(CCOPTS) fbRpc_xdr.c

fbRpc_svc.c: fbRpc.x
	$(RPCGEN) -o fbRpc_svc1.c -s tcp fbRpc.x
	awk -f modify_server_code.awk fbRpc_svc1.c > $@

fbRpc_xdr.c: fbRpc.x
	$(RPCGEN) -o $@ -c fbRpc.x

fbRpc_clnt.c: fbRpc.x
	$(RPCGEN) -o $@ -l fbRpc.x

fbRpc.h: fbRpc.x
	$(RPCGEN) -o $@ -h fbRpc.x

cleanall:
	rm -f *.o *~ fbp libfb.a fbSrvr fbRpc.h fbRpc_clnt.c fbRpc_xdr.c  fbRpc_svc.c








