#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)