#
# File: Applications/.Makefile
# Author: K.R. Sloan
# Last Modified: 30 January 1991
# Purpose: maintain SGP Applications

ARCH = XARCH
SGP = XSGP
CFLAGS = XCFLAGS
WFF = ${SGP}/../wff

TEST = TestSGP0 TestSGP1 TestSGPDQ TestSGPPB TestSGPX TestSGPW \
       Test4D TestPat Gamut
SERVERS =  sgpServer XsgpServer
RENDERERS = Render XRender
OTHERS =  Cube Mickey Torus Sphere Spheres WireFrame 

all: ${RENDERERS} ${SERVERS}

BIN = ${SGP}/${ARCH}bin

# for devW
LW = ${WFF}/${ARCH}bin/wff.o -lm

# for devX
LX = -lX11 -lm

# for devPB
LPB = /usr/graphics/vertigo/lib/libvertigo.a -lm

# for devDQ
LDQ = /usr/graphics/dq/lib/libdq.a -lm

# for devA
LA = ../devA/uEngine/lib/uEngine.${ARCH}.o -lIkonas -lm

# for devA, using the RemoteEngine
LAr = ../devA/uEngine/lib/RemoteEngine.${ARCH}.o -lm

# for all others
L = -lm

LIB0  = ../libSGP.${ARCH}.a ../dev0/libDEVICE.${ARCH}.a
LIB1  = ../libSGP.${ARCH}.a ../dev1/libDEVICE.${ARCH}.a
# devX is obsolete - use devXX instead
LIBX  = ../libSGP.${ARCH}.a ../devXX/libDEVICE.${ARCH}.a
LIBT  = ../libSGP.${ARCH}.a ../devT/libDEVICE.${ARCH}.a
LIBW  = ../libSGP.${ARCH}.a ../devW/libDEVICE.${ARCH}.a
LIBA  = ../libSGP.${ARCH}.a ../devA/libDEVICE.${ARCH}.a
LIBPB = ../libSGP.${ARCH}.a ../devPB/libDEVICE.${ARCH}.a
LIBDQ = ../libSGP.${ARCH}.a ../devDQ/libDEVICE.${ARCH}.a
LIBI  = ../libSGP.${ARCH}.a ../devI/libDEVICE.${ARCH}.a

TestSGP0 : TestSGP.c ${LIB0}
	cc -o TestSGP0 ${CFLAGS} TestSGP.c ${LIB0} ${L}
TestSGP1 : TestSGP.c ${LIB1}
	cc -o TestSGP1 ${CFLAGS} TestSGP.c ${LIB1} ${L}
TestSGPX : TestSGP.c ${LIBX}
	cc -o TestSGPX ${CFLAGS} TestSGP.c ${LIBX} ${LX}
TestSGPT : TestSGP.c ${LIBT}
	cc -o TestSGPT ${CFLAGS} TestSGP.c ${LIBT} ${L}
TestSGPW : TestSGP.c ${LIBW}
	cc -o TestSGPW ${CFLAGS} TestSGP.c ${LIBW} ${LW}
TestSGPDQ : TestSGP.c ${LIBDQ}
	cc -o TestSGPDQ ${CFLAGS} TestSGP.c ${LIBDQ} ${LDQ}
TestSGPPB : TestSGP.c ${LIBPB}
	cc -o TestSGPPB ${CFLAGS} TestSGP.c ${LIBPB} ${LPB}
TestSGPA : TestSGP.c ${LIBA}
	cc -o TestSGPA ${CFLAGS} TestSGP.c ${LIBA} ${LA}

Test4D : Test4D.c ${LIBT}
	cc -o Test4D ${CFLAGS} Test4D.c ${LIBT} ${L}

Render: Render.c ${LIBW}
	cc -o Render ${CFLAGS} Render.c \
           -DPREVIEW=0 -DMAXTRIANGLES=16376 ${LIBW} ${LW}

XRender: Render.c ${LIBX}
	cc -o XRender ${CFLAGS} Render.c \
            -DPREVIEW=1 -DMAXTRIANGLES=8188 ${LIBX} ${LX}

sgpServer: sgpServer.c ${LIBW}
	cc -o sgpServer ${CFLAGS} sgpServer.c ${LIBW} ${LW}

XsgpServer: sgpServer.c ${LIBX}
	cc -o XsgpServer ${CFLAGS} sgpServer.c ${LIBX} ${LX}

AsgpServer: sgpServer.c ${LIBA}
	cc -o AsgpServer ${CFLAGS} sgpServer.c ${LIBA} ${LA}

PBsgpServer: sgpServer.c ${LIBPB}
	cc -o PBsgpServer ${CFLAGS} sgpServer.c ${LIBPB} ${LPB}

DQsgpServer: sgpServer.c ${LIBDQ}
	cc -o DQsgpServer ${CFLAGS} sgpServer.c ${LIBDQ} ${LDQ}

IsgpServer: sgpServer.c ${LIBI}
	cc -o IsgpServer ${CFLAGS} sgpServer.c ${LIBI} ${L}

WireFrame: WireFrame.c ${LIBW}
	cc -o WireFrame ${CFLAGS} WireFrame.c ${LIBW} ${LW}

XWireFrame: WireFrame.c ${LIBW}
	cc -o XWireFrame ${CFLAGS} WireFrame.c ${LIBX} ${LX}

TestPat : TestPat.c ${LIBW}
	cc -o TestPat ${CFLAGS} TestPat.c ${LIBW} ${LW}

Gamut : Gamut.c ${LIBW}
	cc -o Gamut ${CFLAGS} Gamut.c ${LIBW} ${LW}

TGamut : Gamut.c ${LIBT}
	cc -o TGamut ${CFLAGS} Gamut.c ${LIBT} ${L}

Cube : Cube.c ${LIBW}
	cc -o Cube ${CFLAGS} Cube.c ${LIBW} ${LW}

Spheres : Spheres.c ${LIBW}
	cc -o Spheres ${CFLAGS} Spheres.c ${LIBW} ${LW}

Sphere : Sphere.c ${LIBW}
	cc -o Sphere ${CFLAGS} Sphere.c ${LIBW} ${LW}

XSphere : Sphere.c ${LIBW}
	cc -o XSphere ${CFLAGS} Sphere.c ${LIBX} ${LX}

Mickey : Mickey.c ${LIBW}
	cc -o Mickey ${CFLAGS} Mickey.c ${LIBW} ${LW}

Torus : Torus.c ${LIBW}
	cc -o Torus ${CFLAGS} Torus.c ${LIBW} ${LW}

install: ${RENDERERS} ${SERVERS}
	cp ${RENDERERS} ${BIN}
	cp ${SERVERS} ${BIN}
	chmod a+rx ${BIN}/*
	chmod a+rx ${BIN}/*
	ls -l ${BIN}

clean :
	rm -f ${RENDERERS}
	rm -f ${SERVERS}        
	rm -f ${TEST}
	rm -f ${OTHERS}
	rm -f *.o *~ *.ckp *.bak \#* core .emacs*
	ls -l
