###################################################################
#
# makefile for compression project
#
###################################################################

SPARSELIB_DIR = ../libraries/IML/sparselib_1_5d
#include $(SPARSELIB_DIR)/makefile.def

CPP = g++

CPPFLAGS = -g -pg -ansi -Wall -pedantic-errors -Woverloaded-virtual -W -DMV_VECTOR_BOUNDS_CHECK '-DCOMPLEX=complex<double>'


LDFLAGS =	$(SPARSELIB_DIR)/lib/libsparse.a $(SPARSELIB_DIR)/lib/libspblas.a \
		$(SPARSELIB_DIR)/lib/libmv.a -lm -pg

SPARSELIB_LIB_DIR		= $(SPARSELIB_DIR)/lib
SPARSELIB_INCLUDE_DIR		= $(SPARSELIB_DIR)/include
SPARSELIB_MV_DIR		= $(SPARSELIB_DIR)/mv
SPARSELIB_MV_INCLUDE_DIR	= $(SPARSELIB_MV_DIR)/include

SPARSELIB_A             	= $(SPARSELIB_LIB_DIR)/libsparse.a
SPARSEBLAS_A            	= $(SPARSELIB_LIB_DIR)/libspblas.a
MV_LIB_A			= $(SPARSELIB_DIR)/lib/libmv.a

INCLUDES =  -I$(SPARSELIB_INCLUDE_DIR) -I$(SPARSELIB_MV_INCLUDE_DIR) -I../libraries/IML/

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

CPPFILES =	Patch2IV.cpp 

CPPOFILES =	Patch2IV.o 

OFILES =	CC_Mesh/Mesh.o \
		Patch/Patch.o \
		Patch/UnitPatch.o \
		Patch/BicubicPatch.o \
		Patch/Integrate.o \
		Patch/ExtraordinaryPatch.o \
		Patch/FirstOrderDataDependentPatch.o \
		Patch/FirstOrderDataDependentPatch_membrane.o \
		Patch/FirstOrderDataDependentPatch_bending.o \
		Patch/BilinearPatch.o \
		Patch/EigenStructure.o \
		Patch/EigenPatch.o \
		Minimizer/DynamicCompCol_Mat_double.o \
		Minimizer/Minimizer.o \
		Minimizer/CG_Minimizer.o \
		Minimizer/CG_Steihaug_Minimizer.o \
		Minimizer/Newton_Minimizer.o \
		Minimizer/TrustRegion_Minimizer.o \
		Patch2IV.o

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

.cpp.o: ; 	make -C Patch 
		make -C Minimizer 
		make -C CC_Mesh 
		$(CPP) $(CPPFLAGS) $(INCLUDES) -c $<

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

all:		$(CPPOFILES) 
		$(CPP) $(OFILES) $(INCLUDES) -o Patch2IV $(LDFLAGS)

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

clean:		
		/bin/rm -f $(OFILES) *~ Patch2IV gmon.out

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