#############################################################################



#
# Makefile for sample programs
#
# Sccsid %Z% %M% %I% %G%
#
#############################################################################

MAKE = make CC="$(CC)" AS="$(AS)" LD="$(LD)" AR="$(AR)" CPP="$(CPP)" SYBPLATFORM="$(SYBPLATFORM)" 

# compiler exectuables
# CPP   - C pre-processor
# AR    - Object archiver / librarian
CPP=/lib/cpp
AR=/bin/ar
CC=cc
# CC=gcc

#
#  The names of the targets.  The command 'make' can be used to make all
#  the targets.  The command 'make <target_name>' makes a particular target.  
#  For example, the command 'make exasync' will make the exasync target.
#
TARGET1 = 	exasync
TARGET2 = 	compute
TARGET3 = 	csr_disp
TARGET4 = 	getsend
TARGET5 = 	rpc
TARGET6 = 	blktxt

#
# Where to get includes and libraries
#
INCPATH =	.
PINCPATH =	$(SYBASE)/include
LIBPATH =	$(SYBASE)/lib
BLKLIB =	$(LIBPATH)/libblk.a
CTLIB =		$(LIBPATH)/libct.a
CSLIB = 	$(LIBPATH)/libcs.a
COMNLIB = 	$(LIBPATH)/libcomn.a
INTLIB = 	$(LIBPATH)/libintl.a
LOCLIBS = 	$(CTLIB) $(CSLIB) $(COMNLIB)
NETSCKLIBS =	$(LIBPATH)/libsybtcl.a $(LIBPATH)/libinsck.a
NETTLILIBS =	$(LIBPATH)/libtcl.a $(LIBPATH)/libtli.a -lnsl
NETDNALIBS = 	$(LIBPATH)/libtcl.a $(LIBPATH)/libinsck.a $(LIBPATH)/libsdna.a -call_shared -ldnet
SYSLIBS =	-lm

#
# The source and include files
#
SRCU =		exutils.c
SRC1 =		ex_alib.c ex_amain.c
SRC2 =		compute.c
SRC3 =		csr_disp.c
SRC4 =		getsend.c
SRC5 =		rpc.c
SRC6 =		blktxt.c

OBJU = 		$(SRCU:.c=.o)
OBJ1 = 		$(SRC1:.c=.o) $(OBJU)
OBJ2 = 		$(SRC2:.c=.o) $(OBJU)
OBJ3 = 		$(SRC3:.c=.o) $(OBJU)
OBJ4 = 		$(SRC4:.c=.o) $(OBJU)
OBJ5 = 		$(SRC5:.c=.o) $(OBJU)
OBJ6 = 		$(SRC6:.c=.o) $(OBJU)

HDRS =		example.h exutils.h

DEFS = 		-DDEBUG -D$(SYBPLATFORM)=1
INC =  		-I$(INCPATH) -I$(PINCPATH)
GCCFLAGS =	-ansi -pedantic -Wall -Wtraditional -Wshadow -Wpointer-arith -pipe
# CFLAGS = 	-g $(GCCFLAGS) $(INC) $(DEFS)
CFLAGS = 	-g $(INC) $(DEFS)
# LDFLAGS =	-Bstatic -pg

SABER_FLAGS =   $(CFLAGS) -DXTFUNCPROTO -I$(INC)

#
LINK.c = $(CC) $(LDFLAGS)

all:    $(TARGET1) $(TARGET2) $(TARGET3) $(TARGET4) $(TARGET5) $(TARGET6)

$(TARGET6): $(OBJ6)
	case $${SYBPLATFORM} in \
		ncr|sun_svr4) NETLIBS="$(NETTLILIBS)" export NETLIBS ;; \
		axposf) NETLIBS="$(NETDNALIBS)" export NETLIBS ;; \
		*) NETLIBS="$(NETSCKLIBS)" export NETLIBS ;; \
	esac ; \
	$(LINK.c) $(OBJ6) $(BLKLIB) $(LOCLIBS) $${NETLIBS} $(INTLIB) $(SYSLIBS) -o $@


$(TARGET5): $(OBJ5)
	case $${SYBPLATFORM} in \
		ncr|sun_svr4) NETLIBS="$(NETTLILIBS)" export NETLIBS ;; \
		axposf) NETLIBS="$(NETDNALIBS)" export NETLIBS ;; \
		*) NETLIBS="$(NETSCKLIBS)" export NETLIBS ;; \
	esac ; \
	$(LINK.c) $(OBJ5) $(LOCLIBS) $${NETLIBS} $(INTLIB) $(SYSLIBS) -o $@


$(TARGET4): $(OBJ4)
	case $${SYBPLATFORM} in \
		ncr|sun_svr4) NETLIBS="$(NETTLILIBS)" export NETLIBS ;; \
		axposf) NETLIBS="$(NETDNALIBS)" export NETLIBS ;; \
		*) NETLIBS="$(NETSCKLIBS)" export NETLIBS ;; \
	esac ; \
	$(LINK.c) $(OBJ4) $(LOCLIBS) $${NETLIBS} $(INTLIB) $(SYSLIBS) -o $@


$(TARGET3): $(OBJ3)
	case $${SYBPLATFORM} in \
		ncr|sun_svr4) NETLIBS="$(NETTLILIBS)" export NETLIBS ;; \
		axposf) NETLIBS="$(NETDNALIBS)" export NETLIBS ;; \
		*) NETLIBS="$(NETSCKLIBS)" export NETLIBS ;; \
	esac ; \
	$(LINK.c) $(OBJ3) $(LOCLIBS) $${NETLIBS} $(INTLIB) $(SYSLIBS) -o $@


$(TARGET2): $(OBJ2)
	case $${SYBPLATFORM} in \
		ncr|sun_svr4) NETLIBS="$(NETTLILIBS)" export NETLIBS ;; \
		axposf) NETLIBS="$(NETDNALIBS)" export NETLIBS ;; \
		*) NETLIBS="$(NETSCKLIBS)" export NETLIBS ;; \
	esac ; \
	$(LINK.c) $(OBJ2) $(LOCLIBS) $${NETLIBS} $(INTLIB) $(SYSLIBS) -o $@


$(TARGET1): $(OBJ1)
	case $${SYBPLATFORM} in \
		ncr|sun_svr4) NETLIBS="$(NETTLILIBS)" export NETLIBS ;; \
		axposf) NETLIBS="$(NETDNALIBS)" export NETLIBS ;; \
		*) NETLIBS="$(NETSCKLIBS)" export NETLIBS ;; \
	esac ; \
	$(LINK.c) $(OBJ1) $(LOCLIBS) $${NETLIBS} $(INTLIB) $(SYSLIBS) -o $@

$(OBJ1): $(HDRS) exasync.h

$(OBJ2): $(HDRS)

$(OBJ3): $(HDRS)

$(OBJ4): $(HDRS)

$(OBJ5): $(HDRS)

$(OBJ6): $(HDRS)

clean:
	rm -f *.o *.ln $(TARGET1) $(TARGET2) $(TARGET3) $(TARGET4) $(TARGET5) $(TARGET6) *.out

sccs_clean:
	sccs clean

.PRECIOUS: $(TARGET1)
