# Makefile for tcltds
# Apr.10.2003. k.furukawa
#
# usage: make osf1
#        make hp
#        make linux
#        make cygwin TARGET=tdstest
#        make osf1 TARGET=tdstest
#
# COPT = -O
COPT = -g

# default for gcc
SHLIB_SUFFIX =	.so
SHLIB_LD =	gcc -pipe -shared -Wl,-soname,libtds.so
SHLIB_CFLAGS =	-fPIC

# default for osf1 (tru64unix)
# SHLIB_SUFFIX =	.so
# SHLIB_LD =	ld -shared -expect_unresolved "*"

# default compiler is gcc
CC =		gcc -ansi
CFLAGS =	$(COPT) $(SHLIB_CFLAGS) $(EXT_CFLAGS)

LIBTCLOBJ =	tcltds.o
LIBTCLF =	libtds${SHLIB_SUFFIX}

LIBOBJ =	tdslib.o
LIBINC =	tdslib.h

PROG =		tdstest

all:	$(LIBTCLF) $(LIBOBJ) $(PROG)

$(LIBTCLF):	$(LIBTCLOBJ) $(LIBOBJ) vxi11_clnt.o vxi11_xdr.o
	${SHLIB_LD} -o $@ $(LIBTCLOBJ) $(LIBOBJ) vxi11_clnt.o vxi11_xdr.o

$(LIBTCLOBJ):	tcltds.c $(LIBINC) vxi11.h
	$(CC) -c $(CFLAGS) -o $@ tcltds.c

$(LIBOBJ):	tdslib.c $(LIBINC) vxi11.h
	$(CC) -c $(CFLAGS) -o $@ tdslib.c

tru64:	osf1

dec:	osf1

osf1:	
	$(MAKE) $(TARGET) "CC= cc -std1" "SHLIB_SUFFIX=.so" \
	'SHLIB_LD=ld -shared -expect_unresolved "*"' "SHLIB_CFLAGS=" \
	'RPCGENFLAG="-D__alpha=1"'

hp:	hpux

hpux:	
	$(MAKE) $(TARGET) "CC= cc -Ae -D_HPUX_SOURCE" "RANLIB= echo" \
	"SHLIB_SUFFIX=.sl" "SHLIB_LD=ld -b" "SHLIB_CFLAGS=+z"

sun:	solaris

solaris:	
	$(MAKE) $(TARGET) "CC= acc -Xc" "SYSLIB= -lsocket -lnsl" \
	"SHLIB_SUFFIX=.so" "SHLIB_LD=/usr/ccs/bin/ld -G -z text" \
	"SHLIB_CFLAGS=-KPIC"

# on cygwin, "gcc -ansi" prevent the definition of i386 that causes 
# trouble in rpc header files. (I didn't test tcl interface yet on cygwin.)

cygwin:	
	$(MAKE) $(TARGET) "CC= gcc" "SYSLIB= -lrpc" "SHLIB_CFLAGS= "

linux:	
	$(MAKE) $(TARGET)

tdstest:	tdslibmain.o vxi11_clnt.o vxi11_xdr.o
	$(CC) $(CFLAGS) -o $@ tdslibmain.o vxi11_clnt.o vxi11_xdr.o $(SYSLIB)

tdslibmain.o:	tdslib.c vxi11.h
	$(CC) $(CFLAGS) -c -o $@ -DMAIN tdslib.c

vxi11.h: vxi11.x
	rpcgen $(RPCGENFLAG) vxi11.x

vxi11_clnt.c: vxi11.x
	rpcgen $(RPCGENFLAG) vxi11.x

vxi11_xdr.c: vxi11.x
	rpcgen $(RPCGENFLAG) vxi11.x

strip:	$(PROG)
	strip $(PROG)

tar:	
	( cd .. ; \
	tar cf tds-tcl.tar tds-tcl/*.[chx] tds-tcl/Makefile tds-tcl/tdslib.txt tds-tcl/MEMO )

realclean:	clean
	rm -f vxi11.h vxi11_*.c

clean:	
	rm -f *.o $(LIBTCLF) $(LIBOBJ) $(PROG)
