hypre/test/Makefile.in

325 lines
7.5 KiB
Makefile

#BHEADER***********************************************************************
# (c) 1998 The Regents of the University of California
#
# See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
# notice, contact person, and disclaimer.
#
# $Revision$
#EHEADER***********************************************************************
.SUFFIXES:
.SUFFIXES: .c .C .f .o .C++.o
srcdir = @srcdir@
VPATH = @srcdir@
CC=@CC@
CXX=@CXX@
F77=@F77@
C_COMPILE_FLAGS=@CFLAGS@
CXX_COMPILE_FLAGS=@CXXFLAGS@
F77_COMPILE_FLAGS=@F77FLAGS@
LD_LINK_FLAGS=@LDFLAGS@
CINCLUDES=@INCLUDES@ @MPIINCLUDE@
CDEFS = -DHYPRE_TIMING
BABEL_HYPRE_INCLUDES = @BABEL_HYPRE_INCLUDES@
CFLAGS = \
${C_COMPILE_FLAGS}\
-I$(srcdir)\
-I$(srcdir)/..\
${BABEL_HYPRE_INCLUDES}\
-I../hypre/include\
${CINCLUDES}\
${CDEFS}
FFLAGS = \
${F77_COMPILE_FLAGS}\
${BABEL_HYPRE_INCLUDES}
MPILIBFLAGS = @MPILIBDIRS@ @MPILIBS@ @MPIFLAGS@
LIBFLAGS = @LIBDIRS@ @LIBS@
LDLIBFLAGS = @LDLIBDIRS@ @LDLIBS@
BLASLIBFLAGS = @BLASLIBFLAGS@
BABELLIBFLAGS = @BABELLIBFLAGS@
LFLAGS =\
${LD_LINK_FLAGS}\
-L../hypre/lib\
-lHYPRE_sstruct_ls\
-lHYPRE_sstruct_mv\
-lHYPRE_struct_ls\
-lHYPRE_struct_mv\
-lHYPRE_parcsr_ls\
-lHYPRE_DistributedMatrixPilutSolver \
-lHYPRE_ParaSails \
-lHYPRE_Euclid \
-lHYPRE_MatrixMatrix \
-lHYPRE_DistributedMatrix \
-lHYPRE_IJ_mv\
-lHYPRE_parcsr_mv\
-lHYPRE_seq_mv\
-lHYPRE_krylov\
-lHYPRE_utilities\
${BLASLIBFLAGS} \
${MPILIBFLAGS} ${LIBFLAGS} ${LDLIBFLAGS}
STRUCT_LFLAGS =\
${LD_LINK_FLAGS}\
-L../hypre/lib\
-lHYPRE_struct_ls\
-lHYPRE_struct_mv\
-lHYPRE_krylov\
-lHYPRE_utilities\
${MPILIBFLAGS} ${LIBFLAGS} ${LDLIBFLAGS}
SSTRUCT_LFLAGS =\
${LD_LINK_FLAGS}\
-L../hypre/lib\
-lHYPRE_sstruct_ls\
-lHYPRE_sstruct_mv\
-lHYPRE_struct_ls\
-lHYPRE_struct_mv\
-lHYPRE_parcsr_ls\
-lHYPRE_DistributedMatrixPilutSolver \
-lHYPRE_ParaSails \
-lHYPRE_Euclid \
-lHYPRE_MatrixMatrix \
-lHYPRE_DistributedMatrix \
-lHYPRE_IJ_mv\
-lHYPRE_parcsr_mv\
-lHYPRE_seq_mv\
-lHYPRE_krylov\
-lHYPRE_utilities\
${BLASLIBFLAGS} \
${MPILIBFLAGS} ${LIBFLAGS} ${LDLIBFLAGS}
IJ_LS_LFLAGS =\
${LD_LINK_FLAGS}\
-L../hypre/lib\
-lHYPRE_parcsr_ls\
-lHYPRE_DistributedMatrixPilutSolver \
-lHYPRE_ParaSails \
-lHYPRE_Euclid \
-lHYPRE_MatrixMatrix \
-lHYPRE_DistributedMatrix \
-lHYPRE_IJ_mv\
-lHYPRE_parcsr_mv\
-lHYPRE_seq_mv\
-lHYPRE_krylov\
-lHYPRE_utilities\
${BLASLIBFLAGS} \
${MPILIBFLAGS} ${LIBFLAGS} ${LDLIBFLAGS}
IJ_MV_LFLAGS =\
${LD_LINK_FLAGS}\
-L../hypre/lib\
-lHYPRE_parcsr_ls\
-lHYPRE_IJ_mv\
-lHYPRE_parcsr_mv\
-lHYPRE_seq_mv\
-lHYPRE_utilities\
${MPILIBFLAGS} ${LIBFLAGS} ${LDLIBFLAGS}
FEICXX_LFLAGS =\
${LD_LINK_FLAGS}\
-L../hypre/lib\
-lHYPRE_LSI\
-lHYPRE_superlu\
${BLASLIBFLAGS} \
-lHYPRE_blas\
${MPILIBFLAGS} ${LIBFLAGS} ${LDLIBFLAGS}
HYPRE_DIR = @HYPRE_TOP_SRC_DIR@
##################################################################
# Targets
##################################################################
HYPRE_STANDARD_DRIVERS =\
ij.c\
ij_mv.c\
struct.c\
sstruct.c
# taken out, doesn't work presently: struct_b.c
HYPRE_BABEL_DRIVERS =\
ij_b.c
HYPRE_DRIVERS_CXX =\
${HYPRE_DRIVERS:.c=.C++.C}
HYPRE_FEI_DRIVERS_CXX =\
fei.C
HYPRE_STANDARD_DRIVERS_F77 =\
f77_ij.f\
f77_ij_mv.f\
f77_struct.f
HYPRE_BABEL_DRIVERS_CXX =
# taken out, doesn't work presently: f77_struct_b.f
HYPRE_BABEL_DRIVERS_F77 =\
f77_ij_b.f
#ifndef is gmake only, can't be used...
#ifndef BABELLIBFLAGS
HYPRE_DRIVERS = ${HYPRE_STANDARD_DRIVERS}
HYPRE_DRIVERS_F77 = ${HYPRE_STANDARD_DRIVERS_F77}
#else
# HYPRE_DRIVERS = ${HYPRE_STANDARD_DRIVERS} ${HYPRE_BABEL_DRIVERS}
# HYPRE_DRIVERS_F77 = ${HYPRE_STANDARD_DRIVERS_F77} ${HYPRE_BABEL_DRIVERS_F77}
#endif
HYPRE_DRIVER_OBJS=${HYPRE_DRIVERS:.c=.o}
HYPRE_DRIVER_CXX_OBJS=${HYPRE_DRIVERS_CXX:.C=.o}
HYPRE_DRIVER_F77_OBJS=${HYPRE_DRIVERS_F77:.f=.o}
HYPRE_FEI_DRIVER_CXX_OBJS=${HYPRE_FEI_DRIVERS_CXX:.C=.o}
HYPRE_DRIVER_EXECS=${HYPRE_DRIVERS:.c=}
HYPRE_DRIVER_CXX_EXECS=${HYPRE_DRIVERS_CXX:.C=}
HYPRE_DRIVER_F77_EXECS=${HYPRE_DRIVERS_F77:.f=}
HYPRE_FEI_DRIVER_CXX_EXECS=${HYPRE_FEI_DRIVERS_CXX:.C=}
HYPRE_BABEL_DRIVER_OBJS=${HYPRE_BABEL_DRIVERS:.c=.o}
HYPRE_BABEL_DRIVER_CXX_OBJS=${HYPRE_BABEL_DRIVERS_CXX:.C=.o}
HYPRE_BABEL_DRIVER_F77_OBJS=${HYPRE_BABEL_DRIVERS_F77:.f=.o}
HYPRE_BABEL_DRIVER_EXECS=${HYPRE_BABEL_DRIVERS:.c=}
HYPRE_BABEL_DRIVER_CXX_EXECS=${HYPRE_BABEL_DRIVERS_CXX:.C=}
HYPRE_BABEL_DRIVER_F77_EXECS=${HYPRE_BABEL_DRIVERS_F77:.f=}
all: ${HYPRE_DRIVER_EXECS}
all++: ${HYPRE_DRIVER_CXX_EXECS}
all77: ${HYPRE_DRIVER_F77_EXECS}
fei++: ${HYPRE_FEI_DRIVER_CXX_EXECS}
babel: ${HYPRE_BABEL_DRIVER_EXECS} ${HYPRE_BABEL_DRIVER_F77_EXECS}
install:
clean:
@rm -f *.o
veryclean: clean
@rm -f ${HYPRE_DRIVER_EXECS}
@rm -f ${HYPRE_DRIVER_CXX_EXECS}
@rm -f ${HYPRE_DRIVER_F77_EXECS}
@rm -f ${HYPRE_BABEL_DRIVER_EXECS}
@rm -f ${HYPRE_BABEL_DRIVER_CXX_EXECS}
@rm -f ${HYPRE_BABEL_DRIVER_F77_EXECS}
@rm -f ${HYPRE_FEI_DRIVER_CXX_EXECS}
##################################################################
# Rules
##################################################################
PURIFY = purify
PURIFY_TO_FILE = purify \
-log-file=struct_linear_solvers.purify \
-append-logfile=yes
struct: struct.o
@echo "Building" $@ "... "
${CC} -o $@ $@.o ${STRUCT_LFLAGS}
@cp $@ TEST_$@/.
sstruct: sstruct.o
@echo "Building" $@ "... "
${CC} -o $@ $@.o ${SSTRUCT_LFLAGS}
@cp $@ TEST_$@/.
ij: ij.o
@echo "Building" $@ "... "
${CC} -o $@ $@.o ${IJ_LS_LFLAGS}
@cp $@ TEST_$@/.
ij_mv: ij_mv.o
@echo "Building" $@ "... "
${CC} -o $@ $@.o ${IJ_MV_LFLAGS}
#${HYPRE_DRIVER_EXECS}: ${HYPRE_DRIVER_OBJS}
# @echo "Building" $@ "... "
# ${CC} -o $@ $@.o ${LFLAGS}
struct.C++: struct.C++.o
@echo "Building" $@ "... "
${CXX} -o $@ $@.o ${STRUCT_LFLAGS}
sstruct.C++: sstruct.C++.o
@echo "Building" $@ "... "
${CXX} -o $@ $@.o ${SSTRUCT_LFLAGS}
ij.C++: ij.C++.o
@echo "Building" $@ "... "
${CXX} -o $@ $@.o ${IJ_LS_LFLAGS}
ij_mv.C++: ij_mv.C++.o
@echo "Building" $@ "... "
${CXX} -o $@ $@.o ${IJ_MV_LFLAGS}
#${HYPRE_DRIVER_CXX_EXECS}: ${HYPRE_DRIVER_CXX_OBJS}
# @echo "Building" $@ "... "
# ${CXX} -o $@ $@.o ${LFLAGS}
f77_struct: f77_struct.o
@echo "Building" $@ "... "
${F77} -o $@ $@.o ${FFLAGS} ${STRUCT_LFLAGS}
f77_ij: f77_ij.o
@echo "Building" $@ "... "
${F77} -o $@ $@.o ${FFLAGS} ${IJ_LS_LFLAGS}
f77_ij_mv: f77_ij_mv.o
@echo "Building" $@ "... "
${F77} -o $@ $@.o ${FFLAGS} ${IJ_MV_LFLAGS}
#${HYPRE_DRIVER_F77_EXECS}: ${HYPRE_DRIVER_F77_OBJS}
# @echo "Building" $@ "... "
# ${F77} -o $@ $@.o ${FFLAGS} ${LFLAGS}
# special autotest target
${HYPRE_FEI_DRIVER_CXX_EXECS}: ${HYPRE_FEI_DRIVER_CXX_OBJS}
@echo "Building" $@ "... "
${CXX} -o $@ $@.o ${FEICXX_LFLAGS}
@cp $@ TEST_$@/.
##################################################################
# Babel version of above
##################################################################
${HYPRE_BABEL_DRIVER_EXECS}: ${HYPRE_BABEL_DRIVER_OBJS}
@echo "Building" $@ "... "
${CC} -o $@ $@.o ${BABELLIBFLAGS} ${LFLAGS}
#${HYPRE_BABEL_DRIVER_CXX_EXECS}: ${HYPRE_BABEL_DRIVER_CXX_OBJS}
# @echo "Building" $@ "... "
# ${CXX} -o $@ $@.o ${LFLAGS}
${HYPRE_BABEL_DRIVER_F77_EXECS}: ${HYPRE_BABEL_DRIVER_F77_OBJS}
@echo "Building" $@ "... "
${F77} -o $@ $@.o ${FFLAGS} ${BABELLIBFLAGS} ${LFLAGS}
##################################################################
# Generic rules
##################################################################
.c.o:
${CC} -o $@ -c ${CFLAGS} $<
.C.o:
${CXX} -o $@ -c -DNOFEI ${CFLAGS} $<
.f.o:
${F77} -o $@ -c ${FFLAGS} $<
# rule to compile C files with C++
.c.C++.o:
cp -f $< ${@:.o=.C}
${CXX} -o $@ -c ${CFLAGS} ${@:.o=.C}
rm -f ${@:.o=.C}