#==============================================================================
#                                src/Makefile
#------------------------------------------------------------------------------
# Makefile to compile and link Tcl SIPP interpreter. 
#------------------------------------------------------------------------------
# $Id: Makefile,v 4.0 1993/11/27 21:28:53 markd Rel $
#------------------------------------------------------------------------------

include ../Config.mk
SHELL=/bin/sh

#-----------------------------------------------------------------------------

MLIBDIR       = ../master/lib${ARCH}
MBINDIR       = ../master/bin${ARCH}
MSRCDIR       = ../master/src
LIBTSIPP      = ${MLIBDIR}/libtsipp.a
TSIPP         = ${MBINDIR}/tsipp
TKSIPP        = ${MBINDIR}/tksipp
TSIPPHELP     = ${MBINDIR}/tsipphelp
TSIPPAPPINIT  = ${MSRCDIR}/tSippAppInit.c
TKSIPPAPPINIT = ${MSRCDIR}/tkSippAppInit.c
INSTMASTER    = ${MASTERDIR}/${TSIPP_VERSION}

#-----------------------------------------------------------------------------

OBJS     = tSippBezier.o   tSippPixMap.o   tSippCamera.o   tSippGeom.o   \
           tSippLight.o    tSippMisc.o     tSippObj.o      tSippPBM.o    \
           tSippPoly.o     tSippPrim.o     tSippRLE.o      tSippRender.o \
           tSippShader.o   tSippUtil.o

TKOBJS   = tSippPhoto.o tSippTk.o

DEFS     = ${URTDEF} ${ALLOCA}
INCL     = -I${TCLXINCL} -I${TCLINCL} -I${TKSRC} -I../libsipp -I${URTINCL} \
           -I../photo
LIBS     = ${TCLXLIB} ${TCLLIB} ${URTLIB} ${LDLIBS}
TKLIBS   = ${TKXLIB} ${TKLIB} ${XLIBS}

CC_FLAGS = ${CPPFLAGS} ${XCFLAGS} ${CFLAGS} ${CCOPT} ${INCL} ${DEFS}
 
.c.o:
	${CC} ${CC_FLAGS} -c $<

#-----------------------------------------------------------------------------

all: ${TSIPP} ${TKSIPP_BUILD}

made.tmp: ${OBJS} ${TSIPPAPPINIT}
	${AR} cr ${LIBTSIPP} ${OBJS}
	${RANLIB} ${LIBTSIPP}
	touch made.tmp

${TSIPP}: tSippAppInit.o made.tmp ${LIBTSIPP} ${OBJS}
	${CC} ${CC_FLAGS} -o ${TSIPP} tSippAppInit.o ${LIBTSIPP} ${LIBS}
	${STRIP} ${TSIPP}

tSippMisc.o: tSippMisc.c patchlevel.h
	${CC} ${CC_FLAGS} -DTSIPP_MASTER=\"${INSTMASTER}\" -c tSippMisc.c

${TSIPPAPPINIT}: tSippAppInit.c
	rm -f ${TSIPPAPPINIT}
	cp tSippAppInit.c ${TSIPPAPPINIT}

#-----------------------------------------------------------------------------
# 
BUILD_TKSIPP: ${TKSIPP} ${TSIPPHELP}


${TKSIPP}: tkSippAppInit.o tkmade.tmp ${LIBTSIPP} ${OBJS}
	${CC} ${CC_FLAGS} -o ${TKSIPP} tkSippAppInit.o ${LIBTSIPP} ${TKLIBS} \
	    ${LIBS}
	${STRIP} ${TKSIPP}

tkmade.tmp: ${TKOBJS} ${TKSIPPAPPINIT}
	${AR} cru ${LIBTSIPP} ${TKOBJS}
	${RANLIB} ${LIBTSIPP}
	touch tkmade.tmp

${TKSIPPAPPINIT}: tkSippAppInit.c
	rm -f ${TKSIPPAPPINIT}
	cp tSippAppInit.c ${TKSIPPAPPINIT}

${TSIPPHELP}:
	echo ":"                           >${TSIPPHELP}
	echo "exec tclhelp ${INSTMASTER}" >>${TSIPPHELP}
	chmod a+rx ${TSIPPHELP}

#-----------------------------------------------------------------------------

test: all
	cd ../tests;${MAKE} -${MAKEFLAGS} test

#-----------------------------------------------------------------------------

clean: 
	rm -f ${OBJS}   tSippAppInit.o ${TSIPP}  made.tmp
	rm -f ${TKOBJS} tkSippAppInit.o ${TKSIPP} tkmade.tmp

