Difference between revisions of "Installation script for Z800"

From www.coria-cfd.fr
Jump to: navigation, search
Line 1: Line 1:
Copy and paste the following lines in .bash_profile:
+
Installing Intel Parallel Studio from https://software.intel.com/fr-fr/non-commercial-software-development
 +
 
 +
.bash_profile / .bashrc:
 +
#==================#
 +
# SECTION 1: aliases
 +
 
  alias l='ls -l'
 
  alias l='ls -l'
  export PATH=$PATH:/local/openmpi-1.6/bin
+
  export LD_LIBRARY_PATH="/local/openmpi-1.6/lib:$LD_LIBRARY_PATH"
+
# end of SECTION 1
  export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so
+
#==================#
 +
 +
 +
#==================#
 +
# SECTION 2: compilers
 +
 +
# crt stuff
 +
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
 +
export LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
 +
 +
# compiler and libraries
 +
source ~/.bashrc_intel
 +
source ~/.bashrc_openmpi
 +
source ~/.bashrc_hdf5
 +
source ~/.bashrc_papi
 +
source ~/.bashrc_petsc
 +
source ~/.bashrc_slepc
 +
 +
# end of SECTION 2
 +
#==================#
 +
 +
#==================#
 +
# SECTION 3: applications
 +
 +
# yales2
 +
source ~/.YALES2
 +
 +
# end of SECTION 3
 +
#==================#
 +
 
 +
.bashrc_intel:
 +
 
 +
# intel-14.0.2
 +
source /opt/intel/composerxe/bin/compilervars.sh intel64
 +
export INTEL_HOME="/opt/intel/composerxe"
 +
export INTEL_INC="$INTEL_HOME/include"
 +
export INTEL_LIB="$INTEL_HOME/lib"
 +
export INTEL_BIN="$INTEL_HOME/bin"
 +
export INTEL_MAN="$INTEL_HOME/man"
 +
  export PATH="$INTEL_BIN:$PATH"
 +
export LIBRARY_PATH="$INTEL_LIB:$LIBRARY_PATH"
 +
export LD_LIBRARY_PATH="$INTEL_LIB:$LD_LIBRARY_PATH"
 +
export MANPATH="$INTEL_MAN:$MANPATH"
 +
 
 +
.bashrc_openmpi:
 +
 
 +
# openmpi-1.7.4 compiled with intel-14.0.2
 +
export MPI_HOME="/local/openmpi/intel-14.0.2/1.7.4"
 +
export MPI_INC="$MPI_HOME/include"
 +
export MPI_LIB="$MPI_HOME/lib"
 +
export MPI_BIN="$MPI_HOME/bin"
 +
export MPI_MAN="$MPI_HOME/share/man"
 +
export PATH="$MPI_BIN:$PATH"
 +
export LIBRARY_PATH="$MPI_LIB:$LIBRARY_PATH"
 +
  export LD_LIBRARY_PATH="$MPI_LIB:$LD_LIBRARY_PATH"
 +
export MANPATH="$MPI_MAN:$MANPATH"
 +
 
 +
.bahsrc_hdf5:
 +
 
 +
# hdf5 compiled with intel-14.0.2
 +
export HDF5_HOME="/local/hdf5/intel-14.0.2/1.8.12"
 +
export HDF5_INC="$HDF5_HOME/include"
 +
export HDF5_BIN="$HDF5_HOME/bin"
 +
export HDF5_LIB="$HDF5_HOME/lib"
 +
export PATH="$HDF5_BIN:$PATH"
 +
export LIBRARY_PATH="$HDF5_LIB:$LIBRARY_PATH"
 +
export LD_LIBRARY_PATH="$HDF5_LIB:$LD_LIBRARY_PATH"
 +
 
 +
.bashrc_petsc:
 +
 
 +
# petsc compiled with intel-14.0.2
 +
  export PETSC_HOME="/local/petsc/intel-14.0.2/3.4.4/"
 +
export PETSC_INC="$PETSC_HOME/linux-intel64/include"
 +
export PETSC_BIN="$PETSC_HOME/linux-intel64/bin"
 +
export PETSC_LIB="$PETSC_HOME/linux-intel64/lib"
 +
export PATH="$PETSC_BIN:$PATH"
 +
export LIBRARY_PATH="$PETSC_LIB:$LIBRARY_PATH"
 +
export LD_LIBRARY_PATH="$PETSC_LIB:$LD_LIBRARY_PATH"
 +
 
 +
.bashrc_slepc:
 +
 
 +
# slepc compiled with intel-14.0.2
 +
export SLEPC_HOME="/local/slepc/intel-14.0.2/3.4.4/"
 +
export SLEPC_INC="$SLEPC_HOME/linux-intel64/include"
 +
export SLEPC_BIN="$SLEPC_HOME/linux-intel64/bin"
 +
export SLEPC_LIB="$SLEPC_HOME/linux-intel64/lib"
 +
export PATH="$SLEPC_BIN:$PATH"
 +
export LIBRARY_PATH="$SLEPC_LIB:$LIBRARY_PATH"
 +
export LD_LIBRARY_PATH="$SLEPC_LIB:$LD_LIBRARY_PATH"
  
  
Installing gcc.make:
+
Makefile_gcc:
  
 
  INSTALL_DIR = /
 
  INSTALL_DIR = /
Line 12: Line 105:
 
  WGET = wget
 
  WGET = wget
 
   
 
   
  GCC_VERSION = 4.8.1
+
  GCC_VERSION = 4.8.2
 
   
 
   
 
  NPROCS = 8
 
  NPROCS = 8
Line 42: Line 135:
 
   
 
   
  
Copy and paste this in a file called Install.make:
+
Makefile_packages:
 
+
INSTALL_DIR = /
+
 
   
 
   
  WGET = /local/wget-1.9/bin/wget
+
  default:
COMPILER_DIR = /local/gcc-4.7.2
+
F77  = $(COMPILER_DIR)/bin/gfortran
+
FC    = $(COMPILER_DIR)/bin/gfortran
+
CC    = $(COMPILER_DIR)/bin/gcc
+
CXX  = $(COMPILER_DIR)/bin/g++
+
CPP  = $(COMPILER_DIR)/bin/cpp
+
CXXPP = $(COMPILER_DIR)/bin/cpp
+
+
NPROCS = 8
+
+
SED_VERSION = 4.2.2
+
FFTW_VERSION = 3.3.3
+
OPENMPI_MINOR_VERSION = 1.6.4
+
OPENMPI_MAJOR_VERSION = 1.6
+
HDF5_VERSION = 1.8.11
+
LAPACK_VERSION = 3.4.2
+
PARMETIS_VERSION = 3.2.0
+
SCOTCH_VERSION = 6.0.0
+
PETSC_VERSION = 3.3-p6
+
SLEPC_VERSION = 3.3-p4
+
# For MacOS X
+
#PETSC_ARCH = arch-darwin-c-debug
+
# For Linux
+
PETSC_ARCH = arch-linux2-c-debug
+
+
all: structure sed fftw openmpi hdf5 lapack ParMetis scotch petsc slepc
+
+
+
packages:
+
 
  sudo add-apt-repository -y ppa:freenx-team
 
  sudo add-apt-repository -y ppa:freenx-team
 
  sudo apt-get update
 
  sudo apt-get update
Line 118: Line 180:
 
  sudo apt-get install -y valgrind kcachegrind
 
  sudo apt-get install -y valgrind kcachegrind
 
   
 
   
gambit:
+
 
$(WGET) -P /tmp http://ubuntu.mirror.cambrium.nl/ubuntu//pool/multiverse/o/openmotif/libmotif3_2.2.3-4_amd64.deb && sudo dpkg -i /tmp/libmotif3_2.2.3-4_amd64.deb
+
Makefile_extlib:
sudo apt-get install libstdc++5 xfs xfstt xfonts-75dpi xfonts-100dpi
+
rm /tmp/libmotif3_2.2.3-4_amd64.deb
+
 
   
 
   
  structure:
+
  INSTALL_DIR = /
mkdir -p $(INSTALL_DIR)/Downloads
+
WGET = wget
mkdir -p $(INSTALL_DIR)/Builds
+
NPROCS = 8
mkdir -p $(INSTALL_DIR)/local
+
SHELL=/bin/bash
 
   
 
   
  sed: structure
+
  OPENMPI_NAME = openmpi
(cd $(INSTALL_DIR)/Downloads && if [ ! -f sed-$(SED_VERSION).tar.bz2 ]; then $(WGET) http://ftp.gnu.org/gnu/sed/sed-$(SED_VERSION).tar.bz2; fi)
+
OPENMPI_VERSION = 1.7.4
(cd $(INSTALL_DIR)/Builds && rm -rf sed-$(SED_VERSION) && tar -jxvf $(INSTALL_DIR)/Downloads/sed-$(SED_VERSION).tar.bz2)
+
OPENMPI_MAJOR_VERSION = 1.7
(export F77=$(F77) && export FC=$(FC) && export CC=$(CC) && export CXX=$(CXX) && export CPP=$(CPP) && export CXXPP=$(CXXPP) && \
+
OPENMPI_LOCATION = http://www.open-mpi.org/software/ompi/v$(OPENMPI_MAJOR_VERSION)/downloads
cd $(INSTALL_DIR)/Builds/sed-$(SED_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/sed-$(SED_VERSION) && make -j $(NPROCS) && rm -rf $(INSTALL_DIR)/local/sed-$(SED_VERSION) && make install)
+
OPENMPI_FILE = $(OPENMPI_NAME)-$(OPENMPI_VERSION).tar.bz2
 +
OPENMPI_CONFIGURE_OPTIONS = --enable-mpi-fortran --enable-static --enable-shared
 
   
 
   
  fftw: structure
+
  FFTW_NAME = fftw
(cd $(INSTALL_DIR)/Downloads && if [ ! -f fftw-$(FFTW_VERSION).tar.gz ]; then $(WGET) http://www.fftw.org/fftw-$(FFTW_VERSION).tar.gz; fi)
+
FFTW_VERSION = 3.3.3
(cd $(INSTALL_DIR)/Builds && rm -rf fftw-$(FFTW_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/fftw-$(FFTW_VERSION).tar.gz)
+
FFTW_LOCATION = http://www.fftw.org
(export F77=$(F77) && export FC=$(FC) && export CC=$(CC) && export CXX=$(CXX) && export CPP=$(CPP) && export CXXPP=$(CXXPP) && \
+
FFTW_FILE = $(FFTW_NAME)-$(FFTW_VERSION).tar.gz
cd $(INSTALL_DIR)/Builds/fftw-$(FFTW_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/fftw-$(FFTW_VERSION) && make -j $(NPROCS) && rm -rf $(INSTALL_DIR)/local/fftw-$(FFTW_VERSION) && make install)
+
FFTW_CONFIGURE_OPTIONS =
 
   
 
   
  openmpi: structure
+
  HDF5_NAME = hdf5
(cd $(INSTALL_DIR)/Downloads && if [ ! -f openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2 ]; then $(WGET) http://www.open-mpi.org/software/ompi/v$(OPENMPI_MAJOR_VERSION)/downloads/openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2; fi)
+
HDF5_VERSION = 1.8.12
(cd $(INSTALL_DIR)/Builds && rm -rf openmpi-$(OPENMPI_MINOR_VERSION) && tar -jxvf $(INSTALL_DIR)/Downloads/openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2)
+
HDF5_LOCATION = http://www.hdfgroup.org/ftp/HDF5/current/src
(export F77=$(F77) && export FC=$(FC) && export CC=$(CC) && export CXX=$(CXX) && export CPP=$(CPP) && export CXXPP=$(CXXPP) && \
+
HDF5_FILE = $(HDF5_NAME)-$(HDF5_VERSION).tar.bz2
cd $(INSTALL_DIR)/Builds/openmpi-$(OPENMPI_MINOR_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION) --enable-mpi-f90 && make -j $(NPROCS) && rm -rf $(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION) && make install)
+
HDF5_CONFIGURE_OPTIONS = --enable-fortran --enable-cxx
 
   
 
   
  hdf5: structure
+
  PARMETIS_NAME = parmetis
(cd $(INSTALL_DIR)/Downloads && if [ ! -f hdf5-$(HDF5_VERSION).tar.bz2 ]; then $(WGET) http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-$(HDF5_VERSION).tar.bz2; fi)
+
PARMETIS_VERSION = 4.0.3
(cd $(INSTALL_DIR)/Builds && rm -rf hdf5-$(HDF5_VERSION) && tar -jxvf $(INSTALL_DIR)/Downloads/hdf5-$(HDF5_VERSION).tar.bz2)
+
PARMETIS_LOCATION = http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis
(cd $(INSTALL_DIR)/Builds/hdf5-$(HDF5_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/hdf5-$(HDF5_VERSION) --enable-fortran --enable-cxx && make -j $(NPROCS) && rm -rf $(INSTALL_DIR)/local/hdf5-$(HDF5_VERSION) && make install)
+
PARMETIS_FILE = $(PARMETIS_NAME)-$(PARMETIS_VERSION).tar.gz
 +
PARMETIS_CONFIGURE_OPTIONS =
 
   
 
   
  lapack: structure
+
  SCOTCH_NAME = scotch
(cd $(INSTALL_DIR)/Downloads && if [ ! -f lapack-$(LAPACK_VERSION).tgz ]; then $(WGET) http://www.netlib.org/lapack/lapack-$(LAPACK_VERSION).tgz; fi)
+
SCOTCH_VERSION = 6.0.0
(cd $(INSTALL_DIR)/Builds && rm -rf lapack-$(LAPACK_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/lapack-$(LAPACK_VERSION).tgz)
+
SCOTCH_LOCATION = https://gforge.inria.fr/frs/download.php/31831
(cd $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION) && cp make.inc.example make.inc && make -j $(NPROCS) blaslib && make -j $(NPROCS) lapacklib)
+
SCOTCH_FILE = $(SCOTCH_NAME)_$(SCOTCH_VERSION).tar.gz
(rm -rf $(INSTALL_DIR)/local/lapack-$(LAPACK_VERSION) && mkdir -p $(INSTALL_DIR)/local/lapack-$(LAPACK_VERSION)/lib && ln -s $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION)/liblapack.a $(INSTALL_DIR)/local/lapack-$(LAPACK_VERSION)/lib/liblapack.a && ln -s $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION)/librefblas.a $(INSTALL_DIR)/local/lapack-$(LAPACK_VERSION)/lib/libblas.a)
+
SCOTCH_CONFIGURE_OPTIONS =
 
   
 
   
  ParMetis: structure
+
  LAPACK_NAME = lapack
(cd $(INSTALL_DIR)/Downloads && if [ ! -f ParMetis-$(PARMETIS_VERSION).tar.gz ]; then $(WGET) http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD/ParMetis-$(PARMETIS_VERSION).tar.gz; fi)
+
LAPACK_VERSION = 3.4.2
(cd $(INSTALL_DIR)/Builds && rm -rf ParMetis-$(PARMETIS_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/ParMetis-$(PARMETIS_VERSION).tar.gz)
+
LAPACK_LOCATION = http://www.netlib.org/lapack
echo "CC = $(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/bin/mpicc" > $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
LAPACK_FILE = $(LAPACK_NAME)-$(LAPACK_VERSION).tgz
echo "OPTFLAGS = -O3" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
LAPACK_CONFIGURE_OPTIONS =
echo "INCDIR =" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
echo "COPTIONS = -DNDEBUG" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
echo "LD = $(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/bin/mpicc" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
echo "LIBDIR =" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
echo "AR = ar rv" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
echo "RANLIB = ar -ts" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
echo "VERNUM = $(PARMETIS_VERSION)" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
+
(cd $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION) && make -j $(NPROCS))
+
(rm -rf $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION) && mkdir -p $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/lib && mkdir -p $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/include && ln -s $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/*.a $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/lib/ && ln -s $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/*.h $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/include/)
+
 
   
 
   
  scotch: structure
+
  MMG3D4_NAME = mmg3d4
(cd $(INSTALL_DIR)/Downloads && if [ ! -f scotch_$(SCOTCH_VERSION).tar.gz ]; then $(WGET) https://gforge.inria.fr/frs/download.php/31831/scotch_$(SCOTCH_VERSION).tar.gz; fi)
+
MMG3D4_VERSION = 4.0.1
(cd $(INSTALL_DIR)/Builds && rm -rf scotch_$(SCOTCH_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/scotch_$(SCOTCH_VERSION).tar.gz)
+
MMG3D4_LOCATION = https://gforge.inria.fr/frs/download.php/33418
echo "EXE            =" > $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
MMG3D4_FILE = $(MMG3D4_NAME)-$(MMG3D4_VERSION)-Source.tar.gz
echo "LIB            = .a" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
MMG3D4_CONFIGURE_OPTIONS =
echo "OBJ            = .o" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "MAKE            = make" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "AR              = ar" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "ARFLAGS        = -ruv" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CAT            = cat" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CCS            = $(CC)" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CCP            = $(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/bin/mpicc" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CCD            = $(CC)" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CFLAGS          = -O3 -DCOMMON_TIMING_OLD -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -Drestrict=__restrict -DIDXSIZE64 -I$(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/include" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CLIBFLAGS      =" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "LDFLAGS        = -lz -lm" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "CP              = cp" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "LEX            = flex -Pscotchyy -olex.yy.c" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "LN              = ln" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "MKDIR          = mkdir -p" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "MV              = mv" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "RANLIB          = ranlib" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "YACC            = bison -pscotchyy -y -b y" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
echo "prefix          = $(INSTALL_DIR)/local/scotch_$(SCOTCH_VERSION)" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
+
(cd $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src && make -j $(NPROCS) scotch && make -j $(NPROCS) ptscotch && rm -rf $(INSTALL_DIR)/local/scotch_$(SCOTCH_VERSION) && make install)
+
 
   
 
   
  petsc: structure
+
  PAPI_NAME = papi
(cd $(INSTALL_DIR)/Downloads && if [ ! -f petsc-$(PETSC_VERSION).tar.gz ]; then $(WGET) http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-$(PETSC_VERSION).tar.gz; fi)
+
PAPI_VERSION = 5.3.0
(cd $(INSTALL_DIR)/Builds && rm -rf petsc-$(PETSC_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/petsc-$(PETSC_VERSION).tar.gz)
+
PAPI_LOCATION = http://icl.cs.utk.edu/projects/papi/downloads
(cd $(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) && export LD_LIBRARY_PATH="$(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/lib:$(LD_LIBRARY_PATH)" && ./configure --prefix=$(INSTALL_DIR)/local/petsc-$(PETSC_VERSION) --download-hypre=yes --with-mpi-dir=$(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION) --with-blas-lib=$(INSTALL_DIR)/local/lapack-$(LAPACK_VERSION)/lib/libblas.a --with-lapack-lib=$(INSTALL_DIR)/local/lapack-$(LAPACK_VERSION)/lib/liblapack.a --CPP=$(CPP) && make -j $(NPROCS) PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=$(PETSC_ARCH) all && rm -rf $(INSTALL_DIR)/local/petsc-$(PETSC_VERSION) && make PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=$(PETSC_ARCH) install)
+
PAPI_FILE = $(PAPI_NAME)-$(PAPI_VERSION).tar.gz
 +
PAPI_CONFIGURE_OPTIONS =
 
   
 
   
  slepc: structure
+
  PETSC_NAME = petsc
(cd $(INSTALL_DIR)/Downloads && if [ ! -f slepc-$(SLEPC_VERSION).tar.gz ]; then $(WGET) -O $(INSTALL_dir)/Downloads/slepc-$(SLEPC_VERSION).tar.gz http://www.grycap.upv.es/slepc/download/download.php?filename=slepc-$(SLEPC_VERSION).tar.gz; fi)
+
PETSC_VERSION = 3.4.4
(cd $(INSTALL_DIR)/Builds && rm -rf slepc-$(SLEPC_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/slepc-$(SLEPC_VERSION).tar.gz)
+
PETSC_LOCATION = http://ftp.mcs.anl.gov/pub/petsc/release-snapshots
(cd $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION) && export SLEPC_DIR=/Builds/slepc-$(SLEPC_VERSION) && export PETSC_DIR=/Builds/petsc-$(PETSC_VERSION) && export PETSC_ARCH=$(PETSC_ARCH) && ./configure && make -j $(NPROCS) PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=$(PETSC_ARCH) all &&  rm -rf $(INSTALL_DIR)/local/slepc-$(SLEPC_VERSION) && mkdir $(INSTALL_DIR)/local/slepc-$(SLEPC_VERSION)/ && cd $(INSTALL_DIR)/local/slepc-$(SLEPC_VERSION) && ln -s $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION)/include ./include1 && ln -s $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION)/$(PETSC_ARCH)/include ./include2 && ln -s $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION)/$(PETSC_ARCH)/lib ./lib)
+
PETSC_FILE = $(PETSC_NAME)-$(PETSC_VERSION).tar.gz
 +
PETSC_CONFIGURE_OPTIONS =
 
   
 
   
  clean:
+
  SLEPC_NAME = slepc
  echo
+
SLEPC_VERSION = 3.4.4
 +
SLEPC_LOCATION = http://www.grycap.upv.es/slepc/download/distrib
 +
SLEPC_FILE = $(SLEPC_NAME)-$(SLEPC_VERSION).tar.gz
 +
SLEPC_CONFIGURE_OPTIONS =
 +
 +
COMPILER_FAMILY  = intel
 +
COMPILER_VERSION  = 14.0.2
 +
COMPILER_PATH    = /opt/intel/composerxe/bin
 +
COMPILER_CC      = $(COMPILER_PATH)/icc
 +
COMPILER_MPICC    = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpicc
 +
COMPILER_CFLAGS  = "-O2 -g"
 +
COMPILER_CXX      = $(COMPILER_PATH)/icpc
 +
COMPILER_MPICXX  = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpicxx
 +
COMPILER_CXXFLAGS = "-O2 -g"
 +
COMPILER_FC      = $(COMPILER_PATH)/ifort
 +
COMPILER_MPIFC    = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpifort
 +
COMPILER_FCFLAGS  = "-O2 -g"
 +
COMPILER_FF      = $(COMPILER_PATH)/ifort
 +
COMPILER_MPIFF    = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpifort
 +
COMPILER_FFLAGS  = "-O2 -g"
 +
 +
default: $(OPENMPI_NAME)-$(OPENMPI_VERSION) $(FFTW_NAME)-$(FFTW_VERSION) $(HDF5_NAME)-$(HDF5_VERSION) $(PARMETIS_NAME)-$(PARMETIS_VERSION) $(SCOTCH_NAME)-$(SCOTCH_VERSION) $(LAPACK_NAME)-$(LAPACK_VERSION) $(MMG3D4_NAME)-$(MMG3D4_VERSION) $(PAPI_NAME)-$(PAPI_VERSION) $(PETSC_NAME)-$(PETSC_VERSION) $(SLECP_NAME)-$(SLEPC_VERSION)
 +
 +
$(OPENMPI_NAME)-$(OPENMPI_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(OPENMPI_FILE) ]; then $(WGET) $(OPENMPI_LOCATION)/$(OPENMPI_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_NAME)-$(OPENMPI_VERSION) &&\
 +
mkdir -p $(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(OPENMPI_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_NAME)-$(OPENMPI_VERSION) &&\
 +
./configure --prefix=$(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION) CC=$(COMPILER_CC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_CXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_FC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_FF) FFLAGS=$(COMPILER_FFLAGS) $(OPENMPI_CONFIGURE_OPTIONS)&&\
 +
make -j $(NPROCS) &&\
 +
rm -rf $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION) &&\
 +
make install\
 +
)
 +
 +
$(FFTW_NAME)-$(FFTW_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(FFTW_FILE) ]; then $(WGET) $(FFTW_LOCATION)/$(FFTW_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_NAME)-$(FFTW_VERSION) &&\
 +
mkdir -p $(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(FFTW_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_NAME)-$(FFTW_VERSION) &&\
 +
./configure --prefix=$(INSTALL_DIR)/local/$(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_VERSION) CC=$(COMPILER_CC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_CXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_FC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_FF) FFLAGS=$(COMPILER_FFLAGS) $(FFTW_CONFIGURE_OPTIONS)&&\
 +
make -j $(NPROCS) &&\
 +
rm -rf $(INSTALL_DIR)/local/$(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_VERSION) &&\
 +
make install\
 +
)
 +
 +
$(HDF5_NAME)-$(HDF5_VERSION):
 +
(\
 +
apt-get install zlib1g-dev &&\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(HDF5_FILE) ]; then $(WGET) $(HDF5_LOCATION)/$(HDF5_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_NAME)-$(HDF5_VERSION) &&\
 +
mkdir -p $(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(HDF5_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_NAME)-$(HDF5_VERSION) &&\
 +
./configure --prefix=$(INSTALL_DIR)/local/$(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_VERSION) CC=$(COMPILER_CC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_CXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_FC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_FF) FFLAGS=$(COMPILER_FFLAGS) $(HDF5_CONFIGURE_OPTIONS)&&\
 +
make -j $(NPROCS) &&\
 +
rm -rf $(INSTALL_DIR)/local/$(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_VERSION) &&\
 +
make install\
 +
)
 +
 +
$(PARMETIS_NAME)-$(PARMETIS_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
rm -rf  $(INSTALL_DIR)/local/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_VERSION) &&\
 +
rm -rf  $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_NAME)-$(PARMETIS_VERSION) &&\
 +
mkdir -p $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(PARMETIS_FILE) ]; then $(WGET) $(PARMETIS_LOCATION)/$(PARMETIS_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(PARMETIS_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_NAME)-$(PARMETIS_VERSION) &&\
 +
sed -i 's/REALTYPEWIDTH 32/REALTYPEWIDTH 64/g' metis/include/metis.h &&\
 +
cd metis &&\
 +
sed -i 's/make -C $$(BUILDDIR) $$@ $$(MAKEFLAGS);/$$(MAKE) -C $$(BUILDDIR) $$@;/g' Makefile &&\
 +
make config prefix=$(INSTALL_DIR)/local/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_VERSION) CC=$(COMPILER_MPICC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_MPICXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_MPIFC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_MPIFF) FFLAGS=$(COMPILER_FFLAGS) $(PARMETIS_CONFIGURE_OPTIONS) &&\
 +
make &&\
 +
make install &&\
 +
cd .. &&\
 +
sed -i 's/make -C $$(BUILDDIR) $$@ $$(MAKEFLAGS);/$$(MAKE) -C $$(BUILDDIR) $$@;/g' Makefile &&\
 +
sed -i 's/cc        = mpicc/cc        = not-set/g' Makefile &&\
 +
sed -i 's/cxx        = mpicxx/cxx        = not-set/g' Makefile &&\
 +
make config prefix=$(INSTALL_DIR)/local/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_VERSION) CC=$(COMPILER_MPICC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_MPICXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_MPIFC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_MPIFF) FFLAGS=$(COMPILER_FFLAGS) $(PARMETIS_CONFIGURE_OPTIONS) &&\
 +
make &&\
 +
make install \
 +
)
 +
 +
$(SCOTCH_NAME)-$(SCOTCH_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(SCOTCH_FILE) ]; then $(WGET) $(SCOTCH_LOCATION)/$(SCOTCH_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)-$(SCOTCH_VERSION) &&\
 +
mkdir -p $(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(SCOTCH_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION) &&\
 +
rm -rf $(INSTALL_DIR)/local/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_VERSION) &&\
 +
  echo "EXE            =" > $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "LIB            = .a" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "OBJ            = .o" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "MAKE            = make" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "AR              = ar" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "ARFLAGS        = -ruv" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CAT            = cat" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CCS            = $(COMPILER_MPICC)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CCP            = $(COMPILER_MPICC)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CCD            = $(COMPILER_MPICC)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CFLAGS          = -O3 -DCOMMON_TIMING_OLD -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -Drestrict=__restrict -DIDXSIZE64 -I$(COMPILER_PATH)/include" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CLIBFLAGS      =" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "LDFLAGS        = -lz -lm" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "CP              = cp" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "LEX            = flex -Pscotchyy -olex.yy.c" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "LN              = ln" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "MKDIR          = mkdir -p" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "MV              = mv" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "RANLIB          = ranlib" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "YACC            = bison -pscotchyy -y -b y" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
echo "prefix          = $(INSTALL_DIR)/local/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_VERSION)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
 +
cd $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src &&\
 +
make -j $(NPROCS) scotch &&\
 +
make -j $(NPROCS) ptscotch &&\
 +
make install\
 +
)
 +
 +
$(LAPACK_NAME)-$(LAPACK_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(LAPACK_FILE) ]; then $(WGET) $(LAPACK_LOCATION)/$(LAPACK_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_NAME)-$(LAPACK_VERSION) &&\
 +
mkdir -p $(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(LAPACK_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_NAME)-$(LAPACK_VERSION) &&\
 +
        rm -f make.inc &&\
 +
        touch make.inc &&\
 +
        echo "SHELL = /bin/sh" >> make.inc &&\
 +
        echo "FORTRAN    = $(COMPILER_MPIFC)" >> make.inc &&\
 +
        echo "OPTS      = $(COMPILER_FCFLAGS)" >> make.inc &&\
 +
        echo "LOADER    = $(COMPILER_MPIFC)" >> make.inc &&\
 +
        echo "DRVOPTS    = $(COMPILER_FCFLAGS)" >> make.inc &&\
 +
        echo "NOOPT      = -O0" >> make.inc &&\
 +
        echo "LOADOPTS  =" >> make.inc &&\
 +
        echo "TIMER      = EXT_ETIME" >> make.inc &&\
 +
        echo "CC        = $(COMPILER_MPICC)" >> make.inc &&\
 +
        echo "CFLAGS    = $(COMPILER_CFLAGS)" >> make.inc &&\
 +
        echo "ARCH      = ar" >> make.inc &&\
 +
        echo "ARCHFLAGS  = cr" >> make.inc &&\
 +
        echo "RANLIB    = ranlib" >> make.inc &&\
 +
        echo "XBLASLIB  =" >> make.inc &&\
 +
        echo "BLASLIB    = ../../librefblas.a" >> make.inc &&\
 +
        echo "LAPACKLIB  = liblapack.a" >> make.inc &&\
 +
        echo "TMGLIB    = libtmglib.a" >> make.inc &&\
 +
        echo "LAPACKELIB = liblapacke.a" >> make.inc &&\
 +
        make -j $(NPROCS) blaslib &&\
 +
        make -j $(NPROCS) lapacklib &&\
 +
        rm -rf $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION) &&\
 +
        mkdir -p $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION)/lib &&\
 +
        cp liblapack.a  $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION)/lib/liblapack.a &&\
 +
        cp librefblas.a $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION)/lib/libblas.a\
 +
)
 +
 +
 +
$(MMG3D4_NAME)-$(MMG3D4_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(MMG3D4_FILE) ]; then $(WGET) $(MMG3D4_LOCATION)/$(MMG3D4_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(MMG3D4_NAME)-$(MMG3D4_VERSION)-Source &&\
 +
mkdir -p $(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(MMG3D4_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(MMG3D4_NAME)-$(MMG3D4_VERSION)-Source &&\
 +
export SCOTCH_DIR=$(INSTALL_DIR)/local/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_VERSION) &&\
 +
export CC=$(COMPILER_MPICC) && \
 +
export CXX=$(COMPILER_MPICXX) && \
 +
mkdir build &&\
 +
cd build &&\
 +
cmake -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR)/local/$(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(MMG3D4_VERSION) .. &&\
 +
make &&\
 +
make install \
 +
)
 +
 +
$(PAPI_NAME)-$(PAPI_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/Builds &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(PAPI_FILE) ]; then $(WGET) $(PAPI_LOCATION)/$(PAPI_FILE); fi &&\
 +
cd $(INSTALL_DIR)/Builds &&\
 +
rm -rf $(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PAPI_NAME)-$(PAPI_VERSION) &&\
 +
mkdir -p $(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(PAPI_FILE) &&\
 +
cd $(INSTALL_DIR)/Builds/$(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PAPI_NAME)-$(PAPI_VERSION) &&\
 +
cd src &&\
 +
export F77=$(COMPILER_F77) && export CC=$(COMPILER_CC) && ./configure --prefix=$(INSTALL_DIR)/local/$(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PAPI_VERSION) &&\
 +
make -j $(NPROCS)&&\
 +
make install \
 +
)
 +
 +
$(PETSC_NAME)-$(PETSC_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(PETSC_FILE) ]; then $(WGET) $(PETSC_LOCATION)/$(PETSC_FILE); fi &&\
 +
cd $(INSTALL_DIR)/local &&\
 +
rm -rf $(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) &&\
 +
mkdir -p $(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(PETSC_FILE) &&\
 +
cd $(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
mv $(PETSC_NAME)-$(PETSC_VERSION) $(PETSC_VERSION) &&\
 +
cd $(PETSC_VERSION) &&\
 +
unset PETSC_DIR && ./configure PETSC_ARCH=linux-intel64 --with-mpi-dir=/local/openmpi/intel-14.0.2/1.7.4 --download-hypre --with-blas-lapack-dir=/opt/intel/mkl &&\
 +
make PETSC_DIR=$(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) PETSC_ARCH=linux-intel64 all \
 +
)
 +
 +
$(SLEPC_NAME)-$(SLEPC_VERSION):
 +
(\
 +
mkdir -p $(INSTALL_DIR)/Downloads &&\
 +
mkdir -p $(INSTALL_DIR)/local &&\
 +
cd $(INSTALL_DIR)/Downloads &&\
 +
if [ ! -f $(SLEPC_FILE) ]; then $(WGET) $(SLEPC_LOCATION)/$(SLEPC_FILE); fi &&\
 +
cd $(INSTALL_DIR)/local &&\
 +
rm -rf $(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SLEPC_VERSION) &&\
 +
mkdir -p $(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
cd $(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
tar -xvf $(INSTALL_DIR)/Downloads/$(SLEPC_FILE) &&\
 +
cd $(INSTALL_DIR)/local/$(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
 +
mv $(SLEPC_NAME)-$(SLEPC_VERSION) $(SLEPC_VERSION) &&\
 +
cd $(SLEPC_VERSION) &&\
 +
export PETSC_DIR=$(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) && export PETSC_ARCH=linux-intel64 && ./configure &&\
 +
make SLEPC_DIR=$(INSTALL_DIR)/local/$(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SLEPC_VERSION) PETSC_DIR=$(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) PETSC_ARCH=linux-intel64 \
 +
)
 +
 +
 
  
  

Revision as of 23:27, 18 April 2014

Installing Intel Parallel Studio from https://software.intel.com/fr-fr/non-commercial-software-development

.bash_profile / .bashrc:

#==================#
# SECTION 1: aliases

alias l='ls -l'

# end of SECTION 1
#==================#


#==================#
# SECTION 2: compilers

# crt stuff
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
export LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

# compiler and libraries
source ~/.bashrc_intel
source ~/.bashrc_openmpi
source ~/.bashrc_hdf5
source ~/.bashrc_papi
source ~/.bashrc_petsc
source ~/.bashrc_slepc

# end of SECTION 2
#==================#

#==================#
# SECTION 3: applications

# yales2
source ~/.YALES2

# end of SECTION 3
#==================#

.bashrc_intel:

# intel-14.0.2
source /opt/intel/composerxe/bin/compilervars.sh intel64
export INTEL_HOME="/opt/intel/composerxe"
export INTEL_INC="$INTEL_HOME/include"
export INTEL_LIB="$INTEL_HOME/lib"
export INTEL_BIN="$INTEL_HOME/bin"
export INTEL_MAN="$INTEL_HOME/man"
export PATH="$INTEL_BIN:$PATH"
export LIBRARY_PATH="$INTEL_LIB:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$INTEL_LIB:$LD_LIBRARY_PATH"
export MANPATH="$INTEL_MAN:$MANPATH"

.bashrc_openmpi:

# openmpi-1.7.4 compiled with intel-14.0.2
export MPI_HOME="/local/openmpi/intel-14.0.2/1.7.4"
export MPI_INC="$MPI_HOME/include"
export MPI_LIB="$MPI_HOME/lib"
export MPI_BIN="$MPI_HOME/bin"
export MPI_MAN="$MPI_HOME/share/man"
export PATH="$MPI_BIN:$PATH"
export LIBRARY_PATH="$MPI_LIB:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$MPI_LIB:$LD_LIBRARY_PATH"
export MANPATH="$MPI_MAN:$MANPATH"

.bahsrc_hdf5:

# hdf5 compiled with intel-14.0.2
export HDF5_HOME="/local/hdf5/intel-14.0.2/1.8.12"
export HDF5_INC="$HDF5_HOME/include"
export HDF5_BIN="$HDF5_HOME/bin"
export HDF5_LIB="$HDF5_HOME/lib"
export PATH="$HDF5_BIN:$PATH"
export LIBRARY_PATH="$HDF5_LIB:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$HDF5_LIB:$LD_LIBRARY_PATH"

.bashrc_petsc:

# petsc compiled with intel-14.0.2
export PETSC_HOME="/local/petsc/intel-14.0.2/3.4.4/"
export PETSC_INC="$PETSC_HOME/linux-intel64/include"
export PETSC_BIN="$PETSC_HOME/linux-intel64/bin"
export PETSC_LIB="$PETSC_HOME/linux-intel64/lib"
export PATH="$PETSC_BIN:$PATH"
export LIBRARY_PATH="$PETSC_LIB:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$PETSC_LIB:$LD_LIBRARY_PATH"

.bashrc_slepc:

# slepc compiled with intel-14.0.2
export SLEPC_HOME="/local/slepc/intel-14.0.2/3.4.4/"
export SLEPC_INC="$SLEPC_HOME/linux-intel64/include"
export SLEPC_BIN="$SLEPC_HOME/linux-intel64/bin"
export SLEPC_LIB="$SLEPC_HOME/linux-intel64/lib"
export PATH="$SLEPC_BIN:$PATH"
export LIBRARY_PATH="$SLEPC_LIB:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$SLEPC_LIB:$LD_LIBRARY_PATH"


Makefile_gcc:

INSTALL_DIR = /

WGET = wget

GCC_VERSION = 4.8.2

NPROCS = 8

all : structure gcc

structure:
	mkdir -p $(INSTALL_DIR)/Downloads
	mkdir -p $(INSTALL_DIR)/Builds
	mkdir -p $(INSTALL_DIR)/local

gcc:
	(\
	cd $(INSTALL_DIR)/Downloads &&  \
	if [ ! -f gcc-$(GCC_VERSION).tar.bz2 ]; then $(WGET) http://gcc.cybermirror.org/releases/gcc-$(GCC_VERSION)/gcc-$(GCC_VERSION).tar.bz2; fi && \
	cd $(INSTALL_DIR)/Builds && \
	bunzip2 -c $(INSTALL_DIR)/Downloads/gcc-$(GCC_VERSION).tar.bz2 | tar xv && \
	mv gcc-$(GCC_VERSION) gcc-$(GCC_VERSION)_src&& \
	cd gcc-$(GCC_VERSION)_src && \
	./contrib/download_prerequisites && \
	cd ../ && \
	mkdir -p $(INSTALL_DIR)/Builds/gcc-$(GCC_VERSION)_build && \
	cd gcc-$(GCC_VERSION)_build && \
	../gcc-$(GCC_VERSION)_src/configure --prefix=/local/gcc-$(GCC_VERSION) && \
	make -j $(NPROCS) && \
	make check && \
	make install \
	)

Makefile_packages:

default:
	sudo add-apt-repository -y ppa:freenx-team
	sudo apt-get update
	sudo apt-get upgrade
	sudo apt-get install -y freenx
	sudo apt-get install -y nvidia-current
	sudo apt-get install -y ubuntu-desktop
	sudo apt-get install -y gnome-session-fallback
	sudo apt-get install -y tcsh
	sudo apt-get install -y ssh
	sudo apt-get install -y g++
	sudo apt-get install -y gdb
	sudo apt-get install -y gfortran
	sudo apt-get install -y cmake
	sudo apt-get install -y flex
	sudo apt-get install -y bison
	sudo apt-get install -y git
	sudo apt-get install -y gitk
	sudo apt-get install -y subversion
	sudo apt-get install -y rapidsvn
	sudo apt-get install -y vim-gnome
	sudo apt-get install -y lib32z1-dev
	sudo apt-get install -y zlib1g-dev
	sudo apt-get install -y tkcvs
	sudo apt-get install -y default-jre
	sudo apt-get install -y gparted
	sudo apt-get install -y synaptic
	sudo apt-get install -y eclipse
	sudo apt-get install -y paraview
	sudo apt-get install -y browser-plugin-gnash
	sudo apt-get install -y grace
	sudo apt-get install -y gnuplot
	sudo apt-get install -y filezilla
	sudo apt-get install -y dselect
	sudo apt-get install -y emacs
	sudo apt-get install -y xemacs21
	sudo apt-get install -y meld
	sudo apt-get install -y hdfview
	sudo apt-get install -y vlc
	sudo apt-get install -y autogen autoconf automake
	sudo apt-get install -y cifs-utils
	sudo apt-get install -y valgrind kcachegrind

Makefile_extlib:

INSTALL_DIR = /
WGET = wget
NPROCS = 8
SHELL=/bin/bash

OPENMPI_NAME = openmpi
OPENMPI_VERSION = 1.7.4
OPENMPI_MAJOR_VERSION = 1.7
OPENMPI_LOCATION = http://www.open-mpi.org/software/ompi/v$(OPENMPI_MAJOR_VERSION)/downloads
OPENMPI_FILE = $(OPENMPI_NAME)-$(OPENMPI_VERSION).tar.bz2
OPENMPI_CONFIGURE_OPTIONS = --enable-mpi-fortran --enable-static --enable-shared

FFTW_NAME = fftw
FFTW_VERSION = 3.3.3
FFTW_LOCATION = http://www.fftw.org
FFTW_FILE = $(FFTW_NAME)-$(FFTW_VERSION).tar.gz
FFTW_CONFIGURE_OPTIONS =

HDF5_NAME = hdf5
HDF5_VERSION = 1.8.12
HDF5_LOCATION = http://www.hdfgroup.org/ftp/HDF5/current/src
HDF5_FILE = $(HDF5_NAME)-$(HDF5_VERSION).tar.bz2
HDF5_CONFIGURE_OPTIONS = --enable-fortran --enable-cxx

PARMETIS_NAME = parmetis
PARMETIS_VERSION = 4.0.3
PARMETIS_LOCATION = http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis
PARMETIS_FILE = $(PARMETIS_NAME)-$(PARMETIS_VERSION).tar.gz
PARMETIS_CONFIGURE_OPTIONS =

SCOTCH_NAME = scotch
SCOTCH_VERSION = 6.0.0
SCOTCH_LOCATION = https://gforge.inria.fr/frs/download.php/31831
SCOTCH_FILE = $(SCOTCH_NAME)_$(SCOTCH_VERSION).tar.gz
SCOTCH_CONFIGURE_OPTIONS =

LAPACK_NAME = lapack
LAPACK_VERSION = 3.4.2
LAPACK_LOCATION = http://www.netlib.org/lapack
LAPACK_FILE = $(LAPACK_NAME)-$(LAPACK_VERSION).tgz
LAPACK_CONFIGURE_OPTIONS =

MMG3D4_NAME = mmg3d4
MMG3D4_VERSION = 4.0.1
MMG3D4_LOCATION = https://gforge.inria.fr/frs/download.php/33418
MMG3D4_FILE = $(MMG3D4_NAME)-$(MMG3D4_VERSION)-Source.tar.gz
MMG3D4_CONFIGURE_OPTIONS =

PAPI_NAME = papi
PAPI_VERSION = 5.3.0
PAPI_LOCATION = http://icl.cs.utk.edu/projects/papi/downloads
PAPI_FILE = $(PAPI_NAME)-$(PAPI_VERSION).tar.gz
PAPI_CONFIGURE_OPTIONS =

PETSC_NAME = petsc
PETSC_VERSION = 3.4.4
PETSC_LOCATION = http://ftp.mcs.anl.gov/pub/petsc/release-snapshots
PETSC_FILE = $(PETSC_NAME)-$(PETSC_VERSION).tar.gz
PETSC_CONFIGURE_OPTIONS =

SLEPC_NAME = slepc
SLEPC_VERSION = 3.4.4
SLEPC_LOCATION = http://www.grycap.upv.es/slepc/download/distrib
SLEPC_FILE = $(SLEPC_NAME)-$(SLEPC_VERSION).tar.gz
SLEPC_CONFIGURE_OPTIONS =

COMPILER_FAMILY   = intel
COMPILER_VERSION  = 14.0.2
COMPILER_PATH     = /opt/intel/composerxe/bin
COMPILER_CC       = $(COMPILER_PATH)/icc
COMPILER_MPICC    = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpicc
COMPILER_CFLAGS   = "-O2 -g"
COMPILER_CXX      = $(COMPILER_PATH)/icpc
COMPILER_MPICXX   = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpicxx
COMPILER_CXXFLAGS = "-O2 -g"
COMPILER_FC       = $(COMPILER_PATH)/ifort
COMPILER_MPIFC    = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpifort
COMPILER_FCFLAGS  = "-O2 -g"
COMPILER_FF       = $(COMPILER_PATH)/ifort
COMPILER_MPIFF    = $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION)/bin/mpifort
COMPILER_FFLAGS   = "-O2 -g"

default: $(OPENMPI_NAME)-$(OPENMPI_VERSION) $(FFTW_NAME)-$(FFTW_VERSION) $(HDF5_NAME)-$(HDF5_VERSION) $(PARMETIS_NAME)-$(PARMETIS_VERSION) $(SCOTCH_NAME)-$(SCOTCH_VERSION) $(LAPACK_NAME)-$(LAPACK_VERSION) $(MMG3D4_NAME)-$(MMG3D4_VERSION) $(PAPI_NAME)-$(PAPI_VERSION) $(PETSC_NAME)-$(PETSC_VERSION) $(SLECP_NAME)-$(SLEPC_VERSION)

$(OPENMPI_NAME)-$(OPENMPI_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(OPENMPI_FILE) ]; then $(WGET) $(OPENMPI_LOCATION)/$(OPENMPI_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_NAME)-$(OPENMPI_VERSION) &&\
	mkdir -p $(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(OPENMPI_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_NAME)-$(OPENMPI_VERSION) &&\
	./configure --prefix=$(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION) CC=$(COMPILER_CC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_CXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_FC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_FF) FFLAGS=$(COMPILER_FFLAGS) $(OPENMPI_CONFIGURE_OPTIONS)&&\
	make -j $(NPROCS) &&\
	rm -rf $(INSTALL_DIR)/local/$(OPENMPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(OPENMPI_VERSION) &&\
	make install\
	)

$(FFTW_NAME)-$(FFTW_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(FFTW_FILE) ]; then $(WGET) $(FFTW_LOCATION)/$(FFTW_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_NAME)-$(FFTW_VERSION) &&\
	mkdir -p $(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(FFTW_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_NAME)-$(FFTW_VERSION) &&\
	./configure --prefix=$(INSTALL_DIR)/local/$(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_VERSION) CC=$(COMPILER_CC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_CXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_FC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_FF) FFLAGS=$(COMPILER_FFLAGS) $(FFTW_CONFIGURE_OPTIONS)&&\
	make -j $(NPROCS) &&\
	rm -rf $(INSTALL_DIR)/local/$(FFTW_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(FFTW_VERSION) &&\
	make install\
	)

$(HDF5_NAME)-$(HDF5_VERSION):
	(\
	apt-get install zlib1g-dev &&\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(HDF5_FILE) ]; then $(WGET) $(HDF5_LOCATION)/$(HDF5_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_NAME)-$(HDF5_VERSION) &&\
	mkdir -p $(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(HDF5_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_NAME)-$(HDF5_VERSION) &&\
	./configure --prefix=$(INSTALL_DIR)/local/$(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_VERSION) CC=$(COMPILER_CC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_CXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_FC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_FF) FFLAGS=$(COMPILER_FFLAGS) $(HDF5_CONFIGURE_OPTIONS)&&\
	make -j $(NPROCS) &&\
	rm -rf $(INSTALL_DIR)/local/$(HDF5_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(HDF5_VERSION) &&\
	make install\
	)

$(PARMETIS_NAME)-$(PARMETIS_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	rm -rf   $(INSTALL_DIR)/local/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_VERSION) &&\
	rm -rf   $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_NAME)-$(PARMETIS_VERSION) &&\
	mkdir -p $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(PARMETIS_FILE) ]; then $(WGET) $(PARMETIS_LOCATION)/$(PARMETIS_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(PARMETIS_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_NAME)-$(PARMETIS_VERSION) &&\
	sed -i 's/REALTYPEWIDTH 32/REALTYPEWIDTH 64/g' metis/include/metis.h &&\
	cd metis &&\
	sed -i 's/make -C $$(BUILDDIR) $$@ $$(MAKEFLAGS);/$$(MAKE) -C $$(BUILDDIR) $$@;/g' Makefile &&\
	make config prefix=$(INSTALL_DIR)/local/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_VERSION) CC=$(COMPILER_MPICC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_MPICXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_MPIFC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_MPIFF) FFLAGS=$(COMPILER_FFLAGS) $(PARMETIS_CONFIGURE_OPTIONS) &&\
	make &&\
	make install &&\
	cd .. &&\
	sed -i 's/make -C $$(BUILDDIR) $$@ $$(MAKEFLAGS);/$$(MAKE) -C $$(BUILDDIR) $$@;/g' Makefile &&\
	sed -i 's/cc         = mpicc/cc         = not-set/g' Makefile &&\
	sed -i 's/cxx        = mpicxx/cxx        = not-set/g' Makefile &&\
	make config prefix=$(INSTALL_DIR)/local/$(PARMETIS_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PARMETIS_VERSION) CC=$(COMPILER_MPICC) CFLAGS=$(COMPILER_CFLAGS) CXX=$(COMPILER_MPICXX) CXXFLAGS=$(COMPILER_CXXFLAGS) FC=$(COMPILER_MPIFC) FCLAGS=$(COMPILER_FCFLAGS) FF=$(COMPILER_MPIFF) FFLAGS=$(COMPILER_FFLAGS) $(PARMETIS_CONFIGURE_OPTIONS) &&\
	make &&\
	make install \
	)

$(SCOTCH_NAME)-$(SCOTCH_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(SCOTCH_FILE) ]; then $(WGET) $(SCOTCH_LOCATION)/$(SCOTCH_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)-$(SCOTCH_VERSION) &&\
	mkdir -p $(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(SCOTCH_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION) &&\
	rm -rf $(INSTALL_DIR)/local/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_VERSION) &&\
	echo "EXE             =" > $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "LIB             = .a" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "OBJ             = .o" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "MAKE            = make" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "AR              = ar" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "ARFLAGS         = -ruv" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CAT             = cat" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CCS             = $(COMPILER_MPICC)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CCP             = $(COMPILER_MPICC)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CCD             = $(COMPILER_MPICC)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CFLAGS          = -O3 -DCOMMON_TIMING_OLD -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -Drestrict=__restrict -DIDXSIZE64 -I$(COMPILER_PATH)/include" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CLIBFLAGS       =" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "LDFLAGS         = -lz -lm" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "CP              = cp" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "LEX             = flex -Pscotchyy -olex.yy.c" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "LN              = ln" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "MKDIR           = mkdir -p" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "MV              = mv" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "RANLIB          = ranlib" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "YACC            = bison -pscotchyy -y -b y" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	echo "prefix          = $(INSTALL_DIR)/local/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_VERSION)" >> $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src/Makefile.inc &&\
	cd $(INSTALL_DIR)/Builds/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_NAME)_$(SCOTCH_VERSION)/src &&\
	make -j $(NPROCS) scotch &&\
	make -j $(NPROCS) ptscotch &&\
	make install\
	)

$(LAPACK_NAME)-$(LAPACK_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(LAPACK_FILE) ]; then $(WGET) $(LAPACK_LOCATION)/$(LAPACK_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_NAME)-$(LAPACK_VERSION) &&\
	mkdir -p $(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(LAPACK_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(LAPACK_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_NAME)-$(LAPACK_VERSION) &&\
        rm -f make.inc &&\
        touch make.inc &&\
        echo "SHELL = /bin/sh" >> make.inc &&\
        echo "FORTRAN    = $(COMPILER_MPIFC)" >> make.inc &&\
        echo "OPTS       = $(COMPILER_FCFLAGS)" >> make.inc &&\
        echo "LOADER     = $(COMPILER_MPIFC)" >> make.inc &&\
        echo "DRVOPTS    = $(COMPILER_FCFLAGS)" >> make.inc &&\
        echo "NOOPT      = -O0" >> make.inc &&\
        echo "LOADOPTS   =" >> make.inc &&\
        echo "TIMER      = EXT_ETIME" >> make.inc &&\
        echo "CC         = $(COMPILER_MPICC)" >> make.inc &&\
        echo "CFLAGS     = $(COMPILER_CFLAGS)" >> make.inc &&\
        echo "ARCH       = ar" >> make.inc &&\
        echo "ARCHFLAGS  = cr" >> make.inc &&\
        echo "RANLIB     = ranlib" >> make.inc &&\
        echo "XBLASLIB   =" >> make.inc &&\
        echo "BLASLIB    = ../../librefblas.a" >> make.inc &&\
        echo "LAPACKLIB  = liblapack.a" >> make.inc &&\
        echo "TMGLIB     = libtmglib.a" >> make.inc &&\
        echo "LAPACKELIB = liblapacke.a" >> make.inc &&\
        make -j $(NPROCS) blaslib &&\
        make -j $(NPROCS) lapacklib &&\
        rm -rf $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION) &&\
        mkdir -p $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION)/lib &&\
        cp liblapack.a  $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION)/lib/liblapack.a &&\
        cp librefblas.a $(INSTALL_DIR)/local/lapack/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(LAPACK_VERSION)/lib/libblas.a\
	)


$(MMG3D4_NAME)-$(MMG3D4_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(MMG3D4_FILE) ]; then $(WGET) $(MMG3D4_LOCATION)/$(MMG3D4_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(MMG3D4_NAME)-$(MMG3D4_VERSION)-Source &&\
	mkdir -p $(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(MMG3D4_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(MMG3D4_NAME)-$(MMG3D4_VERSION)-Source &&\
	export SCOTCH_DIR=$(INSTALL_DIR)/local/$(SCOTCH_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SCOTCH_VERSION) &&\
	export CC=$(COMPILER_MPICC) && \
	export CXX=$(COMPILER_MPICXX) && \
	mkdir build &&\
	cd build &&\
	cmake -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR)/local/$(MMG3D4_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(MMG3D4_VERSION) .. &&\
	make &&\
	make install \
	)

$(PAPI_NAME)-$(PAPI_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/Builds &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(PAPI_FILE) ]; then $(WGET) $(PAPI_LOCATION)/$(PAPI_FILE); fi &&\
	cd $(INSTALL_DIR)/Builds &&\
	rm -rf $(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PAPI_NAME)-$(PAPI_VERSION) &&\
	mkdir -p $(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(PAPI_FILE) &&\
	cd $(INSTALL_DIR)/Builds/$(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PAPI_NAME)-$(PAPI_VERSION) &&\
	cd src &&\
	export F77=$(COMPILER_F77) && export CC=$(COMPILER_CC) && ./configure --prefix=$(INSTALL_DIR)/local/$(PAPI_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PAPI_VERSION) &&\
	make -j $(NPROCS)&&\
	make install \
	)

$(PETSC_NAME)-$(PETSC_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(PETSC_FILE) ]; then $(WGET) $(PETSC_LOCATION)/$(PETSC_FILE); fi &&\
	cd $(INSTALL_DIR)/local &&\
	rm -rf $(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) &&\
	mkdir -p $(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(PETSC_FILE) &&\
	cd $(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	mv $(PETSC_NAME)-$(PETSC_VERSION) $(PETSC_VERSION) &&\
	cd $(PETSC_VERSION) &&\
	unset PETSC_DIR && ./configure PETSC_ARCH=linux-intel64 --with-mpi-dir=/local/openmpi/intel-14.0.2/1.7.4 --download-hypre --with-blas-lapack-dir=/opt/intel/mkl &&\
	make PETSC_DIR=$(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) PETSC_ARCH=linux-intel64 all \
	)

$(SLEPC_NAME)-$(SLEPC_VERSION):
	(\
	mkdir -p $(INSTALL_DIR)/Downloads &&\
	mkdir -p $(INSTALL_DIR)/local &&\
	cd $(INSTALL_DIR)/Downloads &&\
	if [ ! -f $(SLEPC_FILE) ]; then $(WGET) $(SLEPC_LOCATION)/$(SLEPC_FILE); fi &&\
	cd $(INSTALL_DIR)/local &&\
	rm -rf $(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SLEPC_VERSION) &&\
	mkdir -p $(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	cd $(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	tar -xvf $(INSTALL_DIR)/Downloads/$(SLEPC_FILE) &&\
	cd $(INSTALL_DIR)/local/$(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION) &&\
	mv $(SLEPC_NAME)-$(SLEPC_VERSION) $(SLEPC_VERSION) &&\
	cd $(SLEPC_VERSION) &&\
	export PETSC_DIR=$(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) && export PETSC_ARCH=linux-intel64 && ./configure &&\
	make SLEPC_DIR=$(INSTALL_DIR)/local/$(SLEPC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(SLEPC_VERSION) PETSC_DIR=$(INSTALL_DIR)/local/$(PETSC_NAME)/$(COMPILER_FAMILY)-$(COMPILER_VERSION)/$(PETSC_VERSION) PETSC_ARCH=linux-intel64 \
	)



WARNING: If you encounter any problem for installing freeNX, you should consider visiting this website...