hypre/Makefile.in
treadway 42a0210859 FEI enhancements for Dave Stevens
1) add the option

--FEI_BASE_DIR=fei_base_directory

where fei_base_directory is a string specifying the directory where the
fei header files live.  The effect of this configure directive would be
to set the variable FEI_BASE_DIR to the string fei_base_directory in the
file:

linear_solvers/FEI_mv/fei-hypre/Makefile



2) add the options:

a) --copy-hypre-fei-includes=hypre_fei_include_directory

this copies the files: cfei_hypre.h and cfei-hypre.h to the directory:
hypre_fei_include_directory


--copy-hypre-fei-libs=hypre_fei_lib_directory

this copies the files:  libHYPRE_LSI.a and libHYPRE_superlu.a to the
directory: hypre_fei_lib_directory
2002-01-26 01:49:52 +00:00

296 lines
6.6 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***********************************************************************
SHELL = /bin/sh
srcdir = @srcdir@
VPATH = @srcdir@
FEI_BASE_DIR = @FEI_BASE_DIR@
FEI_LIB_DIR = @FEI_LIB_DIR@
FEI_INC_DIR = @FEI_INC_DIR@
HYPRE_BASIC_DIRS =\
blas\
utilities
# These are the directories for the generic Krylov solvers
HYPRE_KRYLOV_DIRS =\
krylov
#These are the directories for the structured interface
HYPRE_STRUCT_DIRS =\
struct_mv\
struct_ls
#These are the directories for the semi-structured interface
HYPRE_SSTRUCT_DIRS =\
sstruct_mv\
sstruct_ls
#These are the directories for the IJ interface
HYPRE_IJ_DIRS =\
seq_mv\
parcsr_mv\
distributed_matrix\
matrix_matrix\
IJ_mv\
distributed_ls\
parcsr_ls
#These are the directories for the FEI
HYPRE_FEI_DIRS =\
FEI_mv
# FEI_mv/fei-base\
# FEI_mv/isis-mv
HYPRE_FEI_LIBFILES =\
libHYPRE_parcsr_ls.a libHYPRE_DistributedMatrix.a \
libHYPRE_parcsr_mv.a libHYPRE_FEI.a \
libHYPRE_seq_mv.a libHYPRE_IJ_mv.a libkrylov.a \
libHYPRE_DistributedMatrixPilutSolver.a \
libHYPRE_utilities.a libHYPRE_MatrixMatrix.a libHYPRE_ParaSails.a\
libHYPRE_Euclid.a
# These are directories that are officially in HYPRE
HYPRE_DIRS =\
${HYPRE_BASIC_DIRS}\
${HYPRE_KRYLOV_DIRS}\
${HYPRE_STRUCT_DIRS}\
${HYPRE_SSTRUCT_DIRS}\
${HYPRE_IJ_DIRS}\
${HYPRE_FEI_DIRS}
# These are directories that are not yet officially in HYPRE
HYPRE_EXTRA_DIRS =\
seq_ls @HYPRE_PETSCLIBDIRS@ @HYPRE_BABELLIBDIR@ @MLI_DIR@
all: krylov struct sstruct IJ fei
@ \
echo "Making test drivers ..."; \
(cd test; $(MAKE) veryclean; $(MAKE)); \
echo ""
beta: all
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
export HYPRE_INSTALL_DIR; \
for i in ${HYPRE_EXTRA_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done; \
echo "Making beta test drivers ..."; \
(cd test; $(MAKE) beta); \
echo ""
krylov: base
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
export HYPRE_INSTALL_DIR; \
for i in ${HYPRE_KRYLOV_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done
struct: base
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
export HYPRE_INSTALL_DIR; \
for i in ${HYPRE_STRUCT_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done
sstruct: struct IJ
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
export HYPRE_INSTALL_DIR; \
for i in ${HYPRE_SSTRUCT_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done
IJ: base
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
export HYPRE_INSTALL_DIR; \
for i in ${HYPRE_IJ_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done
fei: IJ krylov
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
HYPRE_FEI_BASE_DIR=$$FEI_BASE_DIR; \
HYPRE_FEI_LIB_DIR=$$FEI_LIB_DIR; \
HYPRE_FEI_INC_DIR=$$FEI_INC_DIR; \
if [ ! "$$FEI_BASE_DIR" ]; then \
HYPRE_FEI_BASE_DIR=$(srcdir)/../fei-base; \
fi; \
if [ ! "$$FEI_LIB_DIR" ]; then \
HYPRE_FEI_LIB_DIR=`pwd`/hypre/lib; \
fi; \
if [ ! "$$FEI_INC_DIR" ]; then \
HYPRE_FEI_INC_DIR=`pwd`/hypre/include; \
fi; \
export HYPRE_INSTALL_DIR; \
export HYPRE_FEI_BASE_DIR; \
export HYPRE_FEI_LIB_DIR; \
export HYPRE_FEI_INC_DIR; \
for i in ${HYPRE_FEI_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done; \
mkdir -p hypre/tmp; \
for i in ${HYPRE_FEI_LIBFILES}; \
do \
(cp hypre/lib/$$i hypre/tmp; cd hypre/tmp; ar x $$i; rm -f ___*;);\
if [ $$i = "libHYPRE_DistributedMatrixPilutSolver.a" ]; then \
(cd hypre/tmp; mv -f qsort.o psort.o;); \
(cd hypre/tmp; mv -f qsort_si.o psort_si.o;); \
fi; \
done; \
(cd hypre/tmp; ar rcu $$HYPRE_FEI_LIB_DIR/libHYPRE_LSI.a *.o;); \
rm -rf hypre/tmp
# special autotest target
nofei: IJ krylov
@ \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
HYPRE_FEI_BASE_DIR=$$FEI_BASE_DIR; \
HYPRE_FEI_LIB_DIR=$$FEI_LIB_DIR; \
HYPRE_FEI_INC_DIR=$$FEI_INC_DIR; \
if [ ! "$$FEI_BASE_DIR" ]; then \
HYPRE_FEI_BASE_DIR=$(srcdir)/../fei-base; \
fi; \
if [ ! "$$FEI_LIB_DIR" ]; then \
HYPRE_FEI_LIB_DIR=`pwd`/hypre/lib; \
fi; \
if [ ! "$$FEI_INC_DIR" ]; then \
HYPRE_FEI_INC_DIR=`pwd`/hypre/include; \
fi; \
export HYPRE_INSTALL_DIR; \
export HYPRE_FEI_BASE_DIR; \
export HYPRE_FEI_LIB_DIR; \
export HYPRE_FEI_INC_DIR; \
for i in ${HYPRE_FEI_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) veryclean); \
(cd $$i; $(MAKE) DEFINES=-DNOFEI install); \
echo ""; \
fi; \
done; \
mkdir -p hypre/tmp; \
for i in ${HYPRE_FEI_LIBFILES}; \
do \
(cp hypre/lib/$$i hypre/tmp; cd hypre/tmp; ar x $$i; rm -f ___*;);\
if [ $$i = "libHYPRE_DistributedMatrixPilutSolver.a" ]; then \
(cd hypre/tmp; mv -f qsort.o psort.o;); \
(cd hypre/tmp; mv -f qsort_si.o psort_si.o;); \
fi; \
done; \
(cd hypre/tmp; ar rcu $$HYPRE_FEI_LIB_DIR/libHYPRE_LSI.a *.o;); \
rm -rf hypre/tmp
base:
@ \
mkdir -p hypre/include; \
mkdir -p hypre/lib; \
HYPRE_INSTALL_DIR=`pwd`/hypre; \
export HYPRE_INSTALL_DIR; \
cp -f HYPRE_config.h $$HYPRE_INSTALL_DIR/include/.; \
cp -f $(srcdir)/HYPRE.h $$HYPRE_INSTALL_DIR/include/.; \
for i in ${HYPRE_BASIC_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Making $$i ..."; \
(cd $$i; $(MAKE) install); \
echo ""; \
fi; \
done
install: all
@ \
if [ ! "$$HYPRE_INSTALL_DIR" ]; \
then \
echo "Error: set the HYPRE_INSTALL_DIR environment variable"; \
exit 1; \
fi; \
if [ ! -d $$HYPRE_INSTALL_DIR ]; \
then \
echo "Error: no directory HYPRE_INSTALL_DIR=$$HYPRE_INSTALL_DIR"; \
exit 1; \
fi; \
echo "Installing hypre ..."; \
cp -fr hypre/* $$HYPRE_INSTALL_DIR/.; \
rm -Rf hypre
clean:
@ \
for i in ${HYPRE_DIRS} ${HYPRE_EXTRA_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Cleaning $$i ..."; \
(cd $$i; $(MAKE) clean); \
fi; \
done; \
echo "Cleaning test ..."; \
(cd test; $(MAKE) clean)
veryclean:
@ \
rm -Rf hypre; \
for i in ${HYPRE_DIRS} ${HYPRE_EXTRA_DIRS}; \
do \
if [ -d $$i ]; \
then \
echo "Very-cleaning $$i ..."; \
(cd $$i; $(MAKE) veryclean); \
fi; \
done; \
echo "Very-cleaning test ..."; \
(cd test; $(MAKE) veryclean)