IN=	${SRC}/graph/viewman
MIDINT=	${INT}/graph/viewman
MIDOBJ=	${OBJ}/${SYS}/graph/viewman
OUT=	${MNT}/${SYS}/lib
LIB=    ${OBJ}/${SYS}/lib
DOC=    ${MNT}/${SYS}/doc/src/graph

# local include files shared by graphics
LINC=	${SRC}/graph/include

# global include files shared by everyone 
GINC=	${SRC}/include


CFLAGS  = ${CCF} -I${LINC} -I${GINC} -I${IN}
LDFLAGS = ${LDF} -lX11

DOCFILES=${DOC}/viewman.c.dvi ${DOC}/sselect.c.dvi ${DOC}/cleanup.c.dvi \
         ${DOC}/fun2D.c.dvi   ${DOC}/make2D.c.dvi  ${DOC}/makeGraph.c.dvi \
         ${DOC}/fun3D.c.dvi   ${DOC}/make3D.c.dvi  ${DOC}/readView.c.dvi

OBJS=   ${MIDOBJ}/viewman.o ${MIDOBJ}/readView.o  ${MIDOBJ}/make3D.o \
	${MIDOBJ}/fun3D.o   ${MIDOBJ}/makeGraph.o ${MIDOBJ}/make2D.o \
        ${MIDOBJ}/fun2D.o   ${MIDOBJ}/cleanup.o   ${MIDOBJ}/sselect.o \
        ${OBJ}/${SYS}/lib/sockio-c.o

HEADERS= ${IN}/viewman.h       ${LINC}/component.h ${LINC}/view2D.h  \
         ${LINC}/view3D.h      ${LINC}/tube.h      ${LINC}/actions.h \
         ${LINC}/viewCommand.h ${GINC}/com.h

all: ${OBJS} ${OUT}/viewman ${DOCFILES}
	@ echo 30 finished ${IN}

${OUT}/viewman: ${OBJS} ${LIB}/util.o ${LIB}/bsdsignal.o
	@ echo 1 linking ${OUT}/viewman
	@ ${CC} ${OBJS} -o ${OUT}/viewman ${LIB}/util.o ${LIB}/bsdsignal.o ${LDFLAGS}


${MIDINT}/viewman.c: ${IN}/viewman.c.pamphlet
	@ echo 2 ${MIDINT}/viewman.c from ${IN}/viewman.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/viewman.c.pamphlet >viewman.c )

${MIDOBJ}/viewman.o: ${HEADERS} ${MIDINT}/viewman.c
	@ echo 3 making ${MIDOBJ}/viewman.o from ${MIDINT}/viewman.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/viewman.c )

${DOC}/viewman.c.dvi: ${IN}/viewman.c.pamphlet ${DOC}/axiom.sty
	@echo 4 making ${DOC}/viewman.c.dvi from ${IN}/viewman.c.pamphlet
	@(cd ${DOC} ; \
	cp ${IN}/viewman.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} viewman.c ; \
	rm -f ${DOC}/viewman.c.pamphlet ; \
	rm -f ${DOC}/viewman.c.tex ; \
	rm -f ${DOC}/viewman.c )


${MIDINT}/sselect.c: ${IN}/sselect.c.pamphlet
	@ echo 5 ${MIDINT}/sselect.c from ${IN}/sselect.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/sselect.c.pamphlet >sselect.c )

${MIDOBJ}/sselect.o: ${HEADERS} ${MIDINT}/sselect.c
	@ echo 6 making ${MIDOBJ}/sselect.o from ${MIDINT}/sselect.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/sselect.c )

${DOC}/sselect.c.dvi: ${IN}/sselect.c.pamphlet ${DOC}/axiom.sty
	@echo 7 making ${DOC}/sselect.c.dvi from ${IN}/sselect.c.pamphlet
	@(cd ${DOC} ; \
	cp ${IN}/sselect.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} sselect.c ; \
	rm -f ${DOC}/sselect.c.pamphlet ; \
	rm -f ${DOC}/sselect.c.tex ; \
	rm -f ${DOC}/sselect.c )


${MIDINT}/cleanup.c: ${IN}/cleanup.c.pamphlet
	@ echo 8 ${MIDINT}/cleanup.c from ${IN}/cleanup.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/cleanup.c.pamphlet >cleanup.c )

${MIDOBJ}/cleanup.o: ${HEADERS} ${MIDINT}/cleanup.c
	@ echo 9 making ${MIDOBJ}/cleanup.o from ${MIDINT}/cleanup.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/cleanup.c )

${DOC}/cleanup.c.dvi: ${IN}/cleanup.c.pamphlet ${DOC}/axiom.sty
	@echo 10 making ${DOC}/cleanup.c.dvi from ${IN}/cleanup.c.pamphlet
	@(cd ${DOC} ; \
	cp ${IN}/cleanup.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} cleanup.c ; \
	rm -f ${DOC}/cleanup.c.pamphlet ; \
	rm -f ${DOC}/cleanup.c.tex ; \
	rm -f ${DOC}/cleanup.c )


${MIDINT}/fun2D.c: ${IN}/fun2D.c.pamphlet
	@ echo 11 ${MIDINT}/fun2D.c from ${IN}/fun2D.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/fun2D.c.pamphlet >fun2D.c )

${MIDOBJ}/fun2D.o: ${HEADERS} ${MIDINT}/fun2D.c
	@ echo 12 making ${MIDOBJ}/fun2D.o from ${MIDINT}/fun2D.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/fun2D.c )

${DOC}/fun2D.c.dvi: ${IN}/fun2D.c.pamphlet ${DOC}/axiom.sty
	@echo 13 making ${DOC}/fun2D.c.dvi from ${IN}/fun2D.c.pamphlet 
	@(cd ${DOC} ; \
	cp ${IN}/fun2D.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} fun2D.c ; \
	rm -f ${DOC}/fun2D.c.pamphlet ; \
	rm -f ${DOC}/fun2D.c.tex ; \
	rm -f ${DOC}/fun2D.c )


${MIDINT}/make2D.c: ${IN}/make2D.c.pamphlet
	@ echo 14 ${MIDINT}/make2D.c from ${IN}/make2D.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/make2D.c.pamphlet >make2D.c )

${MIDOBJ}/make2D.o: ${HEADERS} ${MIDINT}/make2D.c
	@ echo 15 making ${MIDOBJ}/make2D.o from ${MIDINT}/make2D.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/make2D.c )

${DOC}/make2D.c.dvi: ${IN}/make2D.c.pamphlet ${DOC}/axiom.sty
	@echo 16 making ${DOC}/make2D.c.dvi from ${IN}/make2D.c.pamphlet 
	@(cd ${DOC} ; \
	cp ${IN}/make2D.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} make2D.c ; \
	rm -f ${DOC}/make2D.c.pamphlet ; \
	rm -f ${DOC}/make2D.c.tex ; \
	rm -f ${DOC}/make2D.c )


${MIDINT}/makeGraph.c: ${IN}/makeGraph.c.pamphlet
	@ echo 17 ${MIDINT}/makeGraph.c from ${IN}/makeGraph.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/makeGraph.c.pamphlet >makeGraph.c )

${MIDOBJ}/makeGraph.o: ${HEADERS} ${MIDINT}/makeGraph.c
	@ echo 18 making ${MIDOBJ}/makeGraph.o from ${MIDINT}/makeGraph.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/makeGraph.c )

${DOC}/makeGraph.c.dvi: ${IN}/makeGraph.c.pamphlet ${DOC}/axiom.sty
	@echo 19 making ${DOC}/makeGraph.c.dvi from ${IN}/makeGraph.c.pamphlet 
	@(cd ${DOC} ; \
	cp ${IN}/makeGraph.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} makeGraph.c ; \
	rm -f ${DOC}/makeGraph.c.pamphlet ; \
	rm -f ${DOC}/makeGraph.c.tex ; \
	rm -f ${DOC}/makeGraph.c )


${MIDINT}/fun3D.c: ${IN}/fun3D.c.pamphlet
	@ echo 20 ${MIDINT}/fun3D.c from ${IN}/fun3D.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/fun3D.c.pamphlet >fun3D.c )

${MIDOBJ}/fun3D.o: ${HEADERS} ${MIDINT}/fun3D.c
	@ echo 21 making ${MIDOBJ}/fun3D.o from ${MIDINT}/fun3D.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/fun3D.c )

${DOC}/fun3D.c.dvi: ${IN}/fun3D.c.pamphlet ${DOC}/axiom.sty
	@echo 22 making ${DOC}/fun3D.c.dvi from ${IN}/fun3D.c.pamphlet 
	@(cd ${DOC} ; \
	cp ${IN}/fun3D.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} fun3D.c ; \
	rm -f ${DOC}/fun3D.c.pamphlet ; \
	rm -f ${DOC}/fun3D.c.tex ; \
	rm -f ${DOC}/fun3D.c )


${MIDINT}/make3D.c: ${IN}/make3D.c.pamphlet
	@ echo 23 ${MIDINT}/make3D.c from ${IN}/make3D.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/make3D.c.pamphlet >make3D.c )

${MIDOBJ}/make3D.o: ${HEADERS} ${MIDINT}/make3D.c
	@ echo 24 making ${MIDOBJ}/make3D.o from ${MIDINT}/make3D.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/make3D.c )

${DOC}/make3D.c.dvi: ${IN}/make3D.c.pamphlet ${DOC}/axiom.sty
	@echo 25 making ${DOC}/make3D.c.dvi from ${IN}/make3D.c.pamphlet 
	@(cd ${DOC} ; \
	cp ${IN}/make3D.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} make3D.c ; \
	rm -f ${DOC}/make3D.c.pamphlet ; \
	rm -f ${DOC}/make3D.c.tex ; \
	rm -f ${DOC}/make3D.c )


${MIDINT}/readView.c: ${IN}/readView.c.pamphlet
	@ echo 26 ${MIDINT}/readView.c from ${IN}/readView.c.pamphlet
	@( cd ${MIDINT} ; \
	${TANGLE} ${IN}/readView.c.pamphlet >readView.c )

${MIDOBJ}/readView.o: ${HEADERS} ${MIDINT}/readView.c
	@ echo 27 making ${MIDOBJ}/readView.o from ${MIDINT}/readView.c
	@ ( cd ${MIDOBJ} ; ${CC} ${CFLAGS} -c ${MIDINT}/readView.c )

${DOC}/readView.c.dvi: ${IN}/readView.c.pamphlet ${DOC}/axiom.sty
	@echo 28 making ${DOC}/readView.c.dvi from ${IN}/readView.c.pamphlet 
	@(cd ${DOC} ; \
	cp ${IN}/readView.c.pamphlet ${DOC} ; \
	${SPADBIN}/document ${NOISE} readView.c ; \
	rm -f ${DOC}/readView.c.pamphlet ; \
	rm -f ${DOC}/readView.c.tex ; \
	rm -f ${DOC}/readView.c )


${DOC}/axiom.sty: ${SRC}/doc/axiom.sty.pamphlet
	@ echo 29 making ${DOC}/axiom.sty from ${SRC}/doc/axiom.sty.pamphlet
	@(cd ${DOC} ; \
	cp ${SRC}/doc/axiom.sty.pamphlet ${DOC} ; \
	${TANGLE} -Raxiom.sty axiom.sty.pamphlet >axiom.sty ; \
	rm -f ${DOC}/axiom.sty.pamphlet )
 

clean: 
	@ echo 31 cleaning ${IN}/viewman

document: 
	@ echo 32 documenting ${IN}/viewman


