# To run makefile:
#    1) set environment variable TRILINOS_ARCH to sgi, sun, tflop, or pclinux.
#       Other machines require an appropriate makefile.$(TRILINOS_ARCH) file.
#    2) Set TRILINOS_COMM to SERIAL or MPI
#    3) (Optional) Set TRILINOS_ID to make unique version for same 
#       architecture and communication mode.
#

include $(TRILINOS_HOME)/build/TRILINOS_TARGET_DEFS
TRILINOS_TARGET = $(TRILINOS_ARCH).$(TRILINOS_COMM)$(TRILINOS_ID)
LIBTRIUTILS = $(TRILINOS_HOME)/lib/$(TRILINOS_TARGET)/libtriutils.a
LIBIFPACK= $(TRILINOS_HOME)/lib/$(TRILINOS_TARGET)/libifpack.a
LIBEPETRA= $(TRILINOS_HOME)/lib/$(TRILINOS_TARGET)/libepetra.a

include $(TRILINOS_HOME)/build/makefile.$(TRILINOS_TARGET)

# Epetra communication defines
EPETRA_COMM_SERIAL          = SERIAL
EPETRA_COMM_MPI             = EPETRA_MPI
EPETRA_COMM                 = $(EPETRA_COMM_$(TRILINOS_COMM))

DEFINES= -D$(TRILINOS_ARCH) $(EPETRA_ARCH_DEFINES) -D$(EPETRA_COMM) \
         -DIFPACK
# -DMULTI_VECTOR

INCLUDES = $(ARCH_INCLUDES) -I$(TRILINOS_HOME)/packages/ifpack/src \
           -I$(TRILINOS_HOME)/packages/epetra/src  \
	   -I$(TRILINOS_HOME)/packages/triutils/src $(BLAS_INCLUDES) 

CFLAGS=$(ARCH_CFLAGS) $(DEFINES) $(INCLUDES)
FFLAGS=$(ARCH_FFLAGS) $(DEFINES) $(INCLUDES)
CXXFLAGS=$(ARCH_CXXFLAGS) $(DEFINES) $(INCLUDES)
LDFLAGS=$(ARCH_LDFLAGS) $(DEFINES)


FORMAT=MSR

LIB_PATHS= $(LIBIFPACK) $(LIBEPETRA) $(LIBTRIUTILS) $(LIBBLAS)

#=======================================================================
# Ifpack test source files
#=======================================================================

TEST_CXX = cxx_main.cpp
TEST_C = 

TEST_F = 

#=======================================================================
# TEST include files
#=======================================================================

TEST_INC = prototypes.h iohb.h

TEST_OBJ          = $(TEST_CXX:.cpp=.o) $(TEST_C:.c=.o) $(TEST_F:.f=.o)

TARGET_MPI_MSR = ifpackHbMpiMsr.exe
TARGET_SERIAL_MSR = ifpackHbSerialMsr.exe
TARGET_MPI_VBR = ifpackHbMpiVbr.exe
TARGET_SERIAL_VBR = ifpackHbSerialVbr.exe
TARGET = $(TARGET_$(TRILINOS_COMM)_$(FORMAT))


$(TARGET): $(TEST_OBJ)
	$(LINKER) $(LDFLAGS) $(TEST_OBJ) $(LIB_PATHS) $(ARCH_LIBS) \
	$(LIBMPI) -o $(TARGET)

#
# dependencies for 'f' files (none at this time)
#
#include ../../build/depends.ifpack

clean:
	@echo "junk" > dummy.o
	@rm -f *.o  *~ $(TARGET_MPI_MSR) $(TARGET_SERIAL_MSR) \
                    $(TARGET_MPI_VBR) $(TARGET_SERIAL_VBR)
