#########################################################################
#
# C/C++ module Makefile for 2D Dynamic mesh rendering utility
# 
# Peter Van Beek, Wed Nov  4 16:31:16 1998
#
#########################################################################

########## General definitions ##########################################

# Suggest gcc on Sun; cc on SGI
CC 			= gcc
# Suggest g++ on Sun; CC on SGI
CCC			= g++

MV 			= /usr/bin/mv -f
RM 			= /usr/bin/rm -f
ARFLAGS		= rv


########## Module definitions ###########################################

PROJECT		= 	meshutil

TARGET		= 	../lib/lib$(PROJECT).a

SOURCES		= 	imageClass.cpp \
				imageFunc.cpp \
				vectorClass.cpp \
				matrixClass.cpp \
				vect2dClass.cpp \
				polygonFunc.cpp \
				parClass.cpp \
				mappingFunc.cpp

OBJECTS		= 	$(TARGET)(imageClass.o) \
				$(TARGET)(imageFunc.o) \
				$(TARGET)(vectorClass.o) \
				$(TARGET)(matrixClass.o) \
				$(TARGET)(vect2dClass.o) \
				$(TARGET)(parClass.o) \
				$(TARGET)(polygonFunc.o) \
				$(TARGET)(mappingFunc.o)

PROGRAMS 	= 	mesh_render  mesh_cmp

INC			= 	-I../core -I.

LIBS		= 	../lib/libmeshobject.a -lm

CCFLAGS		= 	$(INC) -O

CFLAGS		= 	$(INC) -O 


.PRECIOUS: $(TARGET)
.KEEP_STATE:



########## Targets #########################################

# General targets 

$(PROJECT): $(TARGET) 
	@echo "Done making $(PROJECT)"

$(TARGET): $(OBJECTS)
	$(AR) $(ARFLAGS) $@ *.o
	$(RM) *.o
	@echo library updated
	@echo "________________ Done making $(TARGET) _________________"
	@echo " "


$(TARGET)(imageClass.o): imageClass.cpp
	$(CCC) -c $(CCFLAGS) -o imageClass.o imageClass.cpp

$(TARGET)(imageFunc.o): imageFunc.cpp
	$(CCC) -c $(CCFLAGS) -o imageFunc.o imageFunc.cpp

$(TARGET)(matrixClass.o): matrixClass.cpp
	$(CCC) -c $(CCFLAGS) -o matrixClass.o matrixClass.cpp

$(TARGET)(vectorClass.o): vectorClass.cpp
	$(CCC) -c $(CCFLAGS) -o vectorClass.o vectorClass.cpp

$(TARGET)(vect2dClass.o): vect2dClass.cpp
	$(CCC) -c $(CCFLAGS) -o vect2dClass.o vect2dClass.cpp

$(TARGET)(parClass.o): parClass.cpp
	$(CCC) -c $(CCFLAGS) -o parClass.o parClass.cpp

$(TARGET)(mappingFunc.o): mappingFunc.cpp
	$(CCC) -c $(CCFLAGS) -o mappingFunc.o mappingFunc.cpp

$(TARGET)(polygonFunc.o): polygonFunc.cpp
	$(CCC) -c $(CCFLAGS) -o polygonFunc.o polygonFunc.cpp


# Program targets

all:	$(TARGET) $(PROGRAMS)
	@echo "Done making all"


mesh_render: $(TARGET) mesh_render.cpp
	$(CCC) $(CCFLAGS) -o mesh_render mesh_render.cpp $(TARGET) $(LIBS)
	@echo "Done making mesh_render"
	@echo " "

mesh_cmp: $(TARGET) mesh_cmp.cpp
	$(CCC) $(CCFLAGS) -o mesh_cmp mesh_cmp.cpp $(LIBS)
	@echo "Done making mesh_cmp"
	@echo " "


# Cleanup targets

clean:
	$(RM) core *.o
	@echo "Done cleaning"

realclean:
	$(RM) core *.o $(PROGRAMS) $(TARGET) 
	@echo "Done cleaning"

 
############################################################
