
IN=	${SRC}/graph/view2D
MIDINT=	${INT}/graph/view2D
MIDOBJ=	${OBJ}/${SYS}/graph/view2D
LIB=	${OBJ}/${SYS}/lib
OUT=	${MNT}/${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} ${STATIC} -lX11 -lm ${LDF}

DOCFILES= ${DOC}/buttons2d.c.dvi    ${DOC}/control2d.c.dvi \
          ${DOC}/graph2d.c.dvi      ${DOC}/main2d.c.dvi \
          ${DOC}/pot2d.c.dvi        ${DOC}/process2d.c.dvi  \
          ${DOC}/spadAction2d.c.dvi ${DOC}/stuff2d.c.dvi \
          ${DOC}/viewport2D.c.dvi   ${DOC}/write2d.c.dvi

VIEW2D_OBJS= \
 ${MIDOBJ}/buttons2d.o    ${MIDOBJ}/control2d.o ${MIDOBJ}/graph2d.o    \
 ${MIDOBJ}/main2d.o       ${MIDOBJ}/pot2d.o     ${MIDOBJ}/process2d.o  \
 ${MIDOBJ}/spadAction2d.o ${MIDOBJ}/stuff2d.o   ${MIDOBJ}/viewport2D.o \
 ${MIDOBJ}/write2d.o

GDRAW=	${OBJ}/${SYS}/graph/Gdraws

GDRAW_OBJS = ${GDRAW}/Gfun.o ${OBJ}/${SYS}/lib/hash.o

HEADERS = ${IN}/header2.h   ${IN}/globals2.h      ${LINC}/view2D.h \
          ${LINC}/actions.h ${LINC}/viewCommand.h ${GINC}/view.h   ${LINC}/G.h

LIBFILES=${LIB}/bsdsignal.o ${LIB}/util.o       ${LIB}/pixmap.o    \
         ${LIB}/halloc.o    ${LIB}/spadcolors.o ${LIB}/XSpadFill.o \
         ${LIB}/XDither.o   ${LIB}/XShade.o 

all: ${VIEW2D_OBJS} ${GDRAW_OBJS} ${LIBFILES} ${OUT}/view2D ${DOCFILES}
	@ echo 36 finished ${IN}

${OUT}/view2D: ${VIEW2D_OBJS} ${GDRAW_OBJS} ${LIBFILES}
	@ echo 34 linking ${OUT}/view2D
	@ ${CC} ${VIEW2D_OBJS} ${GDRAW_OBJS} ${LIBFILES} \
	 -o ${OUT}/view2D ${XLIB}/libXpm.a $(LDFLAGS) 


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

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

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


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

${MIDOBJ}/control2d.o: ${HEADERS} ${MIDINT}/control2d.c \
                       ${LINC}/mouse11.bitmap ${LINC}/mouse11.mask
	@ echo 5 making ${MIDOBJ}/control2d.o from ${MIDINT}/control2d.c
	@ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/control2d.c )

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


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

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

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


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

${MIDOBJ}/main2d.o: ${LINC}/XDefs.h ${HEADERS} ${MIDINT}/main2d.c
	@ echo 11 making ${MIDOBJ}/main2d.o from ${MIDINT}/main2d.c
	@ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/main2d.c )

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


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

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

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


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

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

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


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

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

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


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

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

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


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

${MIDOBJ}/viewport2D.o: ${HEADERS} ${LINC}/spadBitmap.bitmap \
                        ${LINC}/spadMask.mask ${MIDINT}/viewport2D.c 
	@ echo 29 making ${MIDOBJ}/viewport2D.o from ${MIDINT}/viewport2D.c
	@ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/viewport2D.c )

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


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

${MIDOBJ}/write2d.o: ${MIDINT}/write2d.c ${LINC}/write.h ${HEADERS}
	@ echo 32 making ${MIDOBJ}/write2d.o from ${MIDINT}/write2d.c
	@ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/write2d.c )

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


${DOC}/axiom.sty: ${SRC}/doc/axiom.sty.pamphlet
	@ echo 35 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 37 cleaning ${IN}/view2D

document: 
	@ echo 38 documenting ${IN}/view2D

