PACKAGE		=	volren

MANPAGES	=	volren.z

PROGNAME	=	volren
LIBNAME		=	none

MAKEFILENAME	=	Makefile

FSRCS		=	
CSRCS		=	misInvDist.c misMath.c \
			misCube.c misCoord.c misMatrix.c misQuaternion.c \
			volGeomUtils.c volInit.c volBrick.c \
			hciHandlers.c hciUpdateScreen.c \
			genLoadSlice.c genLoadData.c
C++SRCS		=	misImage.C misComputeNormals.C misLeastSquaresPlane.C \
			misGenerateSurface.C misGaussPivot.C misSnapScreen.C \
			misTransferFunc.C \
			volClipPlanes.C \
			hciGLXWindow.C hciRenderWindow.C hciTlutWindow.C \
			hciMainWindow.C \
			genParseArgs.C genByteCompile.C genSignal.C \
			genWindowMaint.C genSetup.C
SRCS		=	$(FSRCS) $(CSRCS) $(C++SRCS)

FOBJS		=	$(FSRCS:.f=.o)
COBJS		=	$(CSRCS:.c=.o)
C++OBJS		=	$(C++SRCS:.C=.o)
OBJS		=	$(FOBJS) $(COBJS) $(C++OBJS)

FCPPS		=	$(FSRCS:.f=.i)
CCPPS		=	$(CSRCS:.c=.i)
C++CPPS		=	$(C++SRCS:.C=.i)
CPPS		=	$(FCCPS) $(CCPPS) $(C++CPPS)


IRISGL_LIBS	=	-lgl -lSgm
OPENGL_LIBS	=	-lGLw -lGLU -lGL

GRAPHICS_LIBS	=	$(OPENGL_LIBS)

LIBS		=	-B static -lcil -B dynamic -lil \
			-lvk -B static -lvkhelp -B dynamic \
			$(GRAPHICS_LIBS) -lXm -lXt -lX11 -lm

FLAGS		=	-DDEBUG -DVR_OPENGL -DVR_IMPACT

F77		=	f77 $(FLAGS)
FFLAGS		=	-g -mips2

CC		=	cc $(FLAGS)
CFLAGS		=	-g -mips2 -fullwarn -prototypes -wlint,-fp \
			-woff 813,819,826,827,828,831,852

C++		=	CC $(FLAGS)
C++FLAGS	=	-g -mips2 -fullwarn \
			-woff 813,819,826,827,828,831,852
# Put here any include dirs or defines that your compiler adds for
# free so that 'makedepend' can do the right thing.
C++INCDIRS	=	-I/usr/include/CC

AR		=	ar
RANLIB		=	ranlib


.SUFFIXES:	.f .C .c++ .i .z .1


default:	all

all:		$(PROGNAME) $(MANPAGES)

$(PROGNAME):	$(OBJS)
		$(C++) $(OBJS) $(LIBDIRS) $(LIBS) -o $(PROGNAME)

$(LIBNAME):	$(OBJS)
		@-rm $(LIBNAME) > /dev/null; true
		@fobjs=""; \
		 for objfile in $(OBJS); do \
			fobjs="$$fobjs `pwd`/$$objfile"; \
		 done; \
		 echo "$(AR) clq $(LIBNAME) $(OBJS); $(RANLIB) $(LIBNAME)"; \
		$(AR) clq $(LIBNAME) $$fobjs; $(RANLIB) $(LIBNAME)

install:	$(PROGNAME)
		@-rm -rf $(DESTROOT)/$(PACKAGE)-sw
		@-rm -f $(DESTROOT)/$(PACKAGE)-src
		@-rm -f $(DESTROOT)/$(PACKAGE)-sw.idbc
		@-rm -f $(DESTROOT)/$(PACKAGE)-src.idbc
		@mkdir $(DESTROOT)/$(PACKAGE)-sw
		@mkdir $(DESTROOT)/$(PACKAGE)-sw/bin
		@mkdir $(DESTROOT)/$(PACKAGE)-sw/data
		@cp volren.z $(DESTROOT)/$(PACKAGE)-sw
		@cp $(PROGNAME) $(DESTROOT)/$(PACKAGE)-sw/bin
		@cp -r luts $(DESTROOT)/$(PACKAGE)-sw/data
		@ln -s $(SRCROOT)/$(PACKAGE)/$(PACKAGE)-sw.idbc $(DESTROOT)
		@ln -s $(SRCROOT)/$(PACKAGE) $(DESTROOT)/$(PACKAGE)-src
		@ln -s $(SRCROOT)/$(PACKAGE)/$(PACKAGE)-src.idbc $(DESTROOT)

.f.o:
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(F77) -c $*.f -o $*.o $(FFLAGS) $(INCDIRS)
		@-echo

.c.o:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(CC) -c $*.c -o $*.o $(CFLAGS) $(INCDIRS)
		@-echo

.C.o:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(C++) -c $*.C -o $*.o $(C++FLAGS) $(INCDIRS)
		@-echo

.c++.o:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(C++) -c $*.c++ -o $*.o $(C++FLAGS) $(INCDIRS)
		@-echo

.f.i:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(F77) -c $*.f -o $*.i -E $(FFLAGS) $(INCDIRS)
		@-echo

.c.i:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(CC) -c $*.c -o $*.i -E $(CFLAGS) $(INCDIRS)
		@-echo

.C.i:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(C++) -c $*.C -o $*.i -E $(C++FLAGS) $(INCDIRS)
		@-echo

.c++.i:		
		@-echo "<<<<<<<< Making >>>>>>>>"
		@-echo
		$(C++) -c $*.c++ -o $*.i -E $(C++FLAGS) $(INCDIRS)
		@-echo

.1.z:
		man -c -d $*.1 > $*.p
		pack $*.p
		mv $*.p.z $*.z

world:		clean depend log

log:
		@echo 'Making all... (results in $(MAKEFILENAME).log)'
		@-$(MAKE) -f $(MAKEFILENAME) all 2>&1 | tee $(MAKEFILENAME).log

neat:
		@-echo 'Making neat...'
		@rm -f $(MAKEFILENAME).bak *~ #*# core $(CPPS)

tidy:
		@-echo 'Making tidy...'
		@rm -f *.i *.o *.bak *.log *~ #*# core

clean:		neat
		@-echo 'Making clean...'
		@rm -f $(OBJS) $(MAKEFILENAME).log
		@rm -f $(PROGNAME) $(LIBNAME)

tags:
		@-echo 'Making tags...'
		@etags *.[Cch]

# Standard depend building
depend:
		@-echo 'Making dependencies...'
		@-cp $(MAKEFILENAME) $(MAKEFILENAME).bak
		@if [ "$(MAKEFILENAME)" != "Makefile" ]; then \
			mv Makefile .Makefile; \
			mv $(MAKEFILENAME) Makefile; \
		fi; true
		@makedepend -w0 -- $(CDEFS) $(C++INCDIRS) $(INCDIRS) -- $(SRCS)
		@mv Makefile .Makefile.tmp
		@awk '   NR == 1,/^# DO NOT DELETE THIS LINE/    {print; next} \
			NR == 2                                  {print; next} \
			$$2 !~ /^\//                             {print $$0}'  \
			.Makefile.tmp > $(MAKEFILENAME)
		@rm .Makefile.tmp
		@if [ "$(MAKEFILENAME)" != "Makefile" ]; then \
			mv .Makefile Makefile; \
		fi; true

# Gnu-ized depend building
#depend:
#		@-echo 'Making dependencies...'
#		@cp Makefile.rules Makefile.rules.bak
#		@gcc -MM $(CDEFS) $(C++INCDIRS) $(INCDIRS) $(SRCS) \
#			>> Makefile.rules
#
#include Makefile.rules # this requires that Makefile.rules already exist!


# DO NOT DELETE THIS LINE -- make depend depends on it.

misInvDist.o: misInvDist.h
misInvDist.o: misCoord.h
misInvDist.o: misMath.h
misInvDist.o: misMatrix.h
misMath.o: misMath.h
misCube.o: misCube.h
misCube.o: misCoord.h
misCube.o: misMath.h
misCube.o: misMatrix.h
misCoord.o: misCoord.h
misCoord.o: misMath.h
misCoord.o: misMatrix.h
misMatrix.o: misMatrix.h
misQuaternion.o: misQuaternion.h
misQuaternion.o: misMatrix.h
misQuaternion.o: misMath.h
volGeomUtils.o: cppArgs.h
volGeomUtils.o: volGeomUtils.h
volGeomUtils.o: genVolRen.h
volGeomUtils.o: misMath.h
volGeomUtils.o: misCoord.h
volGeomUtils.o: misMatrix.h
volGeomUtils.o: misQuaternion.h
volGeomUtils.o: misPolyObject.h
volGeomUtils.o: misPlane.h
volGeomUtils.o: misBrick.h
volGeomUtils.o: misGenerateSurface.H
volGeomUtils.o: misLeastSquaresPlane.H
volGeomUtils.o: misCube.h
volInit.o: misMath.h
volInit.o: misTransferFunc.h
volInit.o: genVolRen.h
volInit.o: cppArgs.h
volInit.o: misCoord.h
volInit.o: misMatrix.h
volInit.o: misQuaternion.h
volInit.o: misPolyObject.h
volInit.o: misPlane.h
volInit.o: misBrick.h
volInit.o: volInit.h
volInit.o: volGeomUtils.h
volBrick.o: cppArgs.h
volBrick.o: volBrick.h
volBrick.o: genVolRen.h
volBrick.o: misMath.h
volBrick.o: misCoord.h
volBrick.o: misMatrix.h
volBrick.o: misQuaternion.h
volBrick.o: misPolyObject.h
volBrick.o: misPlane.h
volBrick.o: misBrick.h
volBrick.o: volClipPlanes.H
volBrick.o: misCube.h
volBrick.o: misTransferFunc.h
volBrick.o: hciUpdateScreen.h
hciHandlers.o: hciHandlers.h
hciHandlers.o: genVolRen.h
hciHandlers.o: cppArgs.h
hciHandlers.o: misMath.h
hciHandlers.o: misCoord.h
hciHandlers.o: misMatrix.h
hciHandlers.o: misQuaternion.h
hciHandlers.o: misPolyObject.h
hciHandlers.o: misPlane.h
hciHandlers.o: misBrick.h
hciHandlers.o: hciUpdateScreen.h
hciHandlers.o: genWindowMaint.h
hciHandlers.o: volGeomUtils.h
hciHandlers.o: volInit.h
hciUpdateScreen.o: cppArgs.h
hciUpdateScreen.o: genSetup.H
hciUpdateScreen.o: genVolRen.h
hciUpdateScreen.o: misMath.h
hciUpdateScreen.o: misCoord.h
hciUpdateScreen.o: misMatrix.h
hciUpdateScreen.o: misQuaternion.h
hciUpdateScreen.o: misPolyObject.h
hciUpdateScreen.o: misPlane.h
hciUpdateScreen.o: misBrick.h
hciUpdateScreen.o: hciUpdateScreen.h
hciUpdateScreen.o: misCube.h
hciUpdateScreen.o: misTransferFunc.h
hciUpdateScreen.o: volInit.h
hciUpdateScreen.o: volBrick.h
hciUpdateScreen.o: volClipPlanes.H
hciUpdateScreen.o: volGeomUtils.h
genLoadSlice.o: genLoadSlice.h
genLoadSlice.o: genVolRen.h
genLoadSlice.o: cppArgs.h
genLoadSlice.o: misMath.h
genLoadSlice.o: misCoord.h
genLoadSlice.o: misMatrix.h
genLoadSlice.o: misQuaternion.h
genLoadSlice.o: misPolyObject.h
genLoadSlice.o: misPlane.h
genLoadSlice.o: misBrick.h
genLoadSlice.o: misImage.H
genLoadData.o: cppArgs.h
genLoadData.o: genSetup.H
genLoadData.o: genVolRen.h
genLoadData.o: misMath.h
genLoadData.o: misCoord.h
genLoadData.o: misMatrix.h
genLoadData.o: misQuaternion.h
genLoadData.o: misPolyObject.h
genLoadData.o: misPlane.h
genLoadData.o: misBrick.h
genLoadData.o: genLoadData.h
genLoadData.o: genLoadSlice.h
genLoadData.o: genByteCompile.H
genLoadData.o: misImage.H
genLoadData.o: misComputeNormals.H
genLoadData.o: volInit.h
genLoadData.o: hciUpdateScreen.h
misImage.o: misImage.H
misComputeNormals.o: misComputeNormals.H
misComputeNormals.o: misCoord.h
misComputeNormals.o: misMath.h
misComputeNormals.o: misMatrix.h
misLeastSquaresPlane.o: misLeastSquaresPlane.H
misLeastSquaresPlane.o: genVolRen.h
misLeastSquaresPlane.o: cppArgs.h
misLeastSquaresPlane.o: misMath.h
misLeastSquaresPlane.o: misCoord.h
misLeastSquaresPlane.o: misMatrix.h
misLeastSquaresPlane.o: misQuaternion.h
misLeastSquaresPlane.o: misPolyObject.h
misLeastSquaresPlane.o: misPlane.h
misLeastSquaresPlane.o: misBrick.h
misLeastSquaresPlane.o: misGaussPivot.H
misGenerateSurface.o: misGenerateSurface.H
misGenerateSurface.o: misCoord.h
misGenerateSurface.o: misMath.h
misGenerateSurface.o: misMatrix.h
misGenerateSurface.o: misComputeNormals.H
misGenerateSurface.o: misInvDist.h
misGenerateSurface.o: volGeomUtils.h
misGenerateSurface.o: genVolRen.h
misGenerateSurface.o: cppArgs.h
misGenerateSurface.o: misQuaternion.h
misGenerateSurface.o: misPolyObject.h
misGenerateSurface.o: misPlane.h
misGenerateSurface.o: misBrick.h
misGaussPivot.o: misGaussPivot.H
misSnapScreen.o: genSetup.H
misSnapScreen.o: genVolRen.h
misSnapScreen.o: cppArgs.h
misSnapScreen.o: misMath.h
misSnapScreen.o: misCoord.h
misSnapScreen.o: misMatrix.h
misSnapScreen.o: misQuaternion.h
misSnapScreen.o: misPolyObject.h
misSnapScreen.o: misPlane.h
misSnapScreen.o: misBrick.h
misSnapScreen.o: hciUpdateScreen.h
misSnapScreen.o: hciMainWindow.H
misSnapScreen.o: hciRenderWindow.H
misSnapScreen.o: hciGLXWindow.H
misSnapScreen.o: hciTlutWindow.H
misSnapScreen.o: hciToggleGroup.H
misSnapScreen.o: misSnapScreen.H
misTransferFunc.o: cppArgs.h
misTransferFunc.o: misTransferFunc.h
misTransferFunc.o: genVolRen.h
misTransferFunc.o: misMath.h
misTransferFunc.o: misCoord.h
misTransferFunc.o: misMatrix.h
misTransferFunc.o: misQuaternion.h
misTransferFunc.o: misPolyObject.h
misTransferFunc.o: misPlane.h
misTransferFunc.o: misBrick.h
volClipPlanes.o: cppArgs.h
volClipPlanes.o: volClipPlanes.H
volClipPlanes.o: genVolRen.h
volClipPlanes.o: misMath.h
volClipPlanes.o: misCoord.h
volClipPlanes.o: misMatrix.h
volClipPlanes.o: misQuaternion.h
volClipPlanes.o: misPolyObject.h
volClipPlanes.o: misPlane.h
volClipPlanes.o: misBrick.h
hciGLXWindow.o: cppArgs.h
hciGLXWindow.o: hciGLXWindow.H
hciRenderWindow.o: cppArgs.h
hciRenderWindow.o: hciRenderWindow.H
hciRenderWindow.o: hciGLXWindow.H
hciRenderWindow.o: genVolRen.h
hciRenderWindow.o: misMath.h
hciRenderWindow.o: misCoord.h
hciRenderWindow.o: misMatrix.h
hciRenderWindow.o: misQuaternion.h
hciRenderWindow.o: misPolyObject.h
hciRenderWindow.o: misPlane.h
hciRenderWindow.o: misBrick.h
hciRenderWindow.o: hciMainWindow.H
hciRenderWindow.o: hciTlutWindow.H
hciRenderWindow.o: hciToggleGroup.H
hciRenderWindow.o: hciUpdateScreen.h
hciRenderWindow.o: hciHandlers.h
hciRenderWindow.o: misComputeNormals.H
hciRenderWindow.o: misTransferFunc.h
hciRenderWindow.o: misSnapScreen.H
hciRenderWindow.o: volInit.h
hciRenderWindow.o: volGeomUtils.h
hciRenderWindow.o: genSetup.H
hciRenderWindow.o: genWindowMaint.h
hciRenderWindow.o: genSignal.H
hciTlutWindow.o: cppArgs.h
hciTlutWindow.o: misCube.h
hciTlutWindow.o: misCoord.h
hciTlutWindow.o: misMath.h
hciTlutWindow.o: misMatrix.h
hciTlutWindow.o: hciTlutWindow.H
hciTlutWindow.o: hciGLXWindow.H
hciTlutWindow.o: genVolRen.h
hciTlutWindow.o: misQuaternion.h
hciTlutWindow.o: misPolyObject.h
hciTlutWindow.o: misPlane.h
hciTlutWindow.o: misBrick.h
hciMainWindow.o: cppArgs.h
hciMainWindow.o: hciMainWindow.H
hciMainWindow.o: hciRenderWindow.H
hciMainWindow.o: hciGLXWindow.H
hciMainWindow.o: genVolRen.h
hciMainWindow.o: misMath.h
hciMainWindow.o: misCoord.h
hciMainWindow.o: misMatrix.h
hciMainWindow.o: misQuaternion.h
hciMainWindow.o: misPolyObject.h
hciMainWindow.o: misPlane.h
hciMainWindow.o: misBrick.h
hciMainWindow.o: hciTlutWindow.H
hciMainWindow.o: hciToggleGroup.H
hciMainWindow.o: hciUpdateScreen.h
hciMainWindow.o: genSetup.H
hciMainWindow.o: genWindowMaint.h
hciMainWindow.o: misTransferFunc.h
hciMainWindow.o: volInit.h
hciMainWindow.o: volGeomUtils.h
genParseArgs.o: cppArgs.h
genParseArgs.o: genParseArgs.H
genParseArgs.o: genVolRen.h
genParseArgs.o: misMath.h
genParseArgs.o: misCoord.h
genParseArgs.o: misMatrix.h
genParseArgs.o: misQuaternion.h
genParseArgs.o: misPolyObject.h
genParseArgs.o: misPlane.h
genParseArgs.o: misBrick.h
genByteCompile.o: cppArgs.h
genByteCompile.o: genVolRen.h
genByteCompile.o: misMath.h
genByteCompile.o: misCoord.h
genByteCompile.o: misMatrix.h
genByteCompile.o: misQuaternion.h
genByteCompile.o: misPolyObject.h
genByteCompile.o: misPlane.h
genByteCompile.o: misBrick.h
genByteCompile.o: genByteCompile.H
genByteCompile.o: misBrickInfo.h
genSignal.o: genSignal.H
genSignal.o: genSetup.H
genSignal.o: genVolRen.h
genSignal.o: cppArgs.h
genSignal.o: misMath.h
genSignal.o: misCoord.h
genSignal.o: misMatrix.h
genSignal.o: misQuaternion.h
genSignal.o: misPolyObject.h
genSignal.o: misPlane.h
genSignal.o: misBrick.h
genSignal.o: genLoadData.h
genSignal.o: hciMainWindow.H
genSignal.o: hciRenderWindow.H
genSignal.o: hciGLXWindow.H
genSignal.o: hciTlutWindow.H
genSignal.o: hciToggleGroup.H
genWindowMaint.o: genVolRen.h
genWindowMaint.o: cppArgs.h
genWindowMaint.o: misMath.h
genWindowMaint.o: misCoord.h
genWindowMaint.o: misMatrix.h
genWindowMaint.o: misQuaternion.h
genWindowMaint.o: misPolyObject.h
genWindowMaint.o: misPlane.h
genWindowMaint.o: misBrick.h
genWindowMaint.o: genSetup.H
genWindowMaint.o: genWindowMaint.h
genWindowMaint.o: hciMainWindow.H
genWindowMaint.o: hciRenderWindow.H
genWindowMaint.o: hciGLXWindow.H
genWindowMaint.o: hciTlutWindow.H
genWindowMaint.o: hciToggleGroup.H
genWindowMaint.o: hciUpdateScreen.h
genWindowMaint.o: hciHandlers.h
genWindowMaint.o: volInit.h
genSetup.o: genSetup.H
genSetup.o: genVolRen.h
genSetup.o: cppArgs.h
genSetup.o: misMath.h
genSetup.o: misCoord.h
genSetup.o: misMatrix.h
genSetup.o: misQuaternion.h
genSetup.o: misPolyObject.h
genSetup.o: misPlane.h
genSetup.o: misBrick.h
genSetup.o: genWindowMaint.h
genSetup.o: genParseArgs.H
genSetup.o: genLoadData.h
genSetup.o: genSignal.H
genSetup.o: hciMainWindow.H
genSetup.o: hciRenderWindow.H
genSetup.o: hciGLXWindow.H
genSetup.o: hciTlutWindow.H
genSetup.o: hciToggleGroup.H
genSetup.o: hciUpdateScreen.h
genSetup.o: volInit.h
genSetup.o: volGeomUtils.h
