Difference between revisions of "Installation script for Z800"

From www.coria-cfd.fr
Jump to: navigation, search
Line 9: Line 9:
 
  INSTALL_DIR = /
 
  INSTALL_DIR = /
 
   
 
   
  F77  = /usr/bin/gfortran
+
COMPILER_DIR = /local/gcc-4.7.2
  FC    = /usr/bin/gfortran
+
  F77  = $(COMPILER_DIR)/bin/gfortran
  CC    = /usr/bin/gcc
+
  FC    = $(COMPILER_DIR)/bin/gfortran
  CXX  = /usr/bin/g++
+
  CC    = $(COMPILER_DIR)/bin/gcc
  CPP  = /usr/bin/cpp
+
  CXX  = $(COMPILER_DIR)/bin/g++
  CXXCPP = /usr/bin/cpp
+
  CPP  = $(COMPILER_DIR)/bin/cpp
 +
  CXXPP = $(COMPILER_DIR)/bin/cpp
 
   
 
   
  all: structure sed fftw3 openmpi hdf5 lapack ParMetis scotch petsc
+
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.10-patch1
 +
LAPACK_VERSION = 3.4.2
 +
PARMETIS_VERSION = 3.2.0
 +
SCOTCH_VERSION = 6.0.0
 +
PETSC_VERSION = 3.3-p6
 +
SLEPC_VERSION = 3.3-p3
 +
 +
  all: structure sed fftw openmpi hdf5 lapack ParMetis scotch petsc slepc
 
   
 
   
 
  freenx-ocelot:
 
  freenx-ocelot:
Line 91: Line 105:
 
   
 
   
 
  sed: structure
 
  sed: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://ftp.gnu.org/gnu/sed/sed-4.2.tar.bz2)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://ftp.gnu.org/gnu/sed/sed-$(SED_VERSION).tar.bz2)
  (cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/sed-4.2.tar.bz2)
+
  (cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/sed-$(SED_VERSION).tar.bz2)
  (cd $(INSTALL_DIR)/Builds/sed-4.2 && ./configure --prefix=$(INSTALL_DIR)/local/sed-4.2 && make && make install)
+
  (cd $(INSTALL_DIR)/Builds/sed-$(SED_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/sed-$(SED_VERSION) && make -j $(NPROCS) && make install)
 
   
 
   
  fftw3: structure
+
  fftw: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://www.fftw.org/fftw-3.3.2.tar.gz)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://www.fftw.org/fftw-$(FFTW_VERSION).tar.gz)
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/fftw-3.3.2.tar.gz)
+
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/fftw-$(FFTW_VERSION).tar.gz)
  (cd $(INSTALL_DIR)/Builds/fftw-3.3.2 && ./configure --prefix=$(INSTALL_DIR)/local/fftw-3.3.2 && make && make install)
+
  (cd $(INSTALL_DIR)/Builds/fftw-$(FFTW_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/fftw-$(FFTW_VERSION) && make -j $(NPROCS) && make install)
 
   
 
   
 
  openmpi: structure
 
  openmpi: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.tar.bz2)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://www.open-mpi.org/software/ompi/v$(OPENMPI_MAJOR_VERSION)/downloads/openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2)
  (cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/openmpi-1.6.tar.bz2)
+
  (cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2)
  (cd $(INSTALL_DIR)/Builds/openmpi-1.6 && ./configure --prefix=$(INSTALL_DIR)/local/openmpi-1.6 --enable-mpi-f90 && make && make install)
+
  (cd $(INSTALL_DIR)/Builds/openmpi-$(OPENMPI_MINOR_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION) --enable-mpi-f90 && make -j $(NPROCS) && make install)
 
   
 
   
 
  hdf5: structure
 
  hdf5: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.9.tar.bz2)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-$(HDF5_VERSION).tar.bz2)
  (cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/hdf5-1.8.9.tar.bz2)
+
  (cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/hdf5-$(HDF5_VERSION).tar.bz2)
  (cd $(INSTALL_DIR)/Builds/hdf5-1.8.9 && ./configure --prefix=$(INSTALL_DIR)/local/hdf5-1.8.9 --enable-fortran --enable-cxx && make && make install)
+
  (cd $(INSTALL_DIR)/Builds/hdf5-$(HDF5_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/hdf5-$(HDF5_VERSION) --enable-fortran --enable-cxx && make -j $(NPROCS) && make install)
 
   
 
   
 
  lapack: structure
 
  lapack: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://www.netlib.org/lapack/lapack-3.4.1.tgz)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://www.netlib.org/lapack/lapack-$(LAPACK_VERSION).tgz)
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/lapack-3.4.1.tgz)
+
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/lapack-$(LAPACK_VERSION).tgz)
  (cd $(INSTALL_DIR)/Builds/lapack-3.4.1 && cp make.inc.example make.inc && make blaslib && make lapacklib)
+
  (cd $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION) && cp make.inc.example make.inc && make -j $(NPROCS) blaslib && make -j $(NPROCS) lapacklib)
 
  mkdir -p $(INSTALL_DIR)/local/blas/lib
 
  mkdir -p $(INSTALL_DIR)/local/blas/lib
 
  mkdir -p $(INSTALL_DIR)/local/lapack/lib
 
  mkdir -p $(INSTALL_DIR)/local/lapack/lib
  ln -s $(INSTALL_DIR)/Builds/lapack-3.4.1/liblapack.a $(INSTALL_DIR)/local/lapack/lib/liblapack.a
+
  ln -s $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION)/liblapack.a $(INSTALL_DIR)/local/lapack/lib/liblapack.a
  ln -s $(INSTALL_DIR)/Builds/lapack-3.4.1/librefblas.a $(INSTALL_DIR)/local/blas/lib/libblas.a
+
  ln -s $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION)/librefblas.a $(INSTALL_DIR)/local/blas/lib/libblas.a
 
   
 
   
 
  ParMetis: structure
 
  ParMetis: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD/ParMetis-3.2.0.tar.gz)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD/ParMetis-$(PARMETIS_VERSION).tar.gz)
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/ParMetis-3.2.0.tar.gz)
+
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/ParMetis-$(PARMETIS_VERSION).tar.gz)
  echo "CC = $(INSTALL_DIR)/local/openmpi-1.6/bin/mpicc" > $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "CC = $(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/bin/mpicc" > $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "OPTFLAGS = -O3" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "OPTFLAGS = -O3" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "INCDIR =" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "INCDIR =" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "COPTIONS = -DNDEBUG" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "COPTIONS = -DNDEBUG" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "LD = $(INSTALL_DIR)/local/openmpi-1.6/bin/mpicc" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/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-3.2.0/Makefile.in
+
  echo "LIBDIR =" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "AR = ar rv" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "AR = ar rv" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "RANLIB = ar -ts" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "RANLIB = ar -ts" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  echo "VERNUM = 3.2.0" >> $(INSTALL_DIR)/Builds/ParMetis-3.2.0/Makefile.in
+
  echo "VERNUM = $(PARMETIS_VERSION)" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
  (cd $(INSTALL_DIR)/Builds/ParMetis-3.2.0 && make)
+
  (cd $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION) && make -j $(NPROCS))
  mkdir -p $(INSTALL_DIR)/local/ParMetis-3.2.0/lib
+
  mkdir -p $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/lib
  mkdir -p $(INSTALL_DIR)/local/ParMetis-3.2.0/include
+
  mkdir -p $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/include
  ln -s $(INSTALL_DIR)/Builds/ParMetis-3.2.0/*.a $(INSTALL_DIR)/local/ParMetis-3.2.0/lib/
+
  ln -s $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/*.a $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/lib/
  ln -s $(INSTALL_DIR)/Builds/ParMetis-3.2.0/*.h $(INSTALL_DIR)/local/ParMetis-3.2.0/include/
+
  ln -s $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/*.h $(INSTALL_DIR)/local/ParMetis-$(PARMETIS_VERSION)/include/
 
   
 
   
 
  scotch: structure
 
  scotch: structure
  (cd $(INSTALL_DIR)/Downloads && wget https://gforge.inria.fr/frs/download.php/28977/scotch_5.1.12b.tar.gz)
+
  (cd $(INSTALL_DIR)/Downloads && wget https://gforge.inria.fr/frs/download.php/31831/scotch_$(SCOTCH_VERSION).tar.gz)
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/scotch_5.1.12b.tar.gz)
+
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/scotch_$(SCOTCH_VERSION).tar.gz)
  echo "EXE            =" > $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "EXE            =" > $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "LIB            = .a" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "LIB            = .a" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "OBJ            = .o" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "OBJ            = .o" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "MAKE            = make" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "MAKE            = make" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "AR              = ar" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "AR              = ar" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "ARFLAGS        = -ruv" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "ARFLAGS        = -ruv" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "CAT            = cat" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "CAT            = cat" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "CCS            = $(CC)" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "CCS            = $(CC)" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "CCP            = $(INSTALL_DIR)/local/openmpi-1.6/bin/mpicc" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/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_5.1.12/src/Makefile.inc
+
  echo "CCD            = $(CC)" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "CFLAGS          = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -Drestrict=__restrict -DIDXSIZE64 -I$(INSTALL_DIR)/local/openmpi-1.6/include" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "CFLAGS          = -O3 -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_5.1.12/src/Makefile.inc
+
  echo "CLIBFLAGS      =" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "LDFLAGS        = -lz -lm -lrt" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "LDFLAGS        = -lz -lm -lrt" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "CP              = cp" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/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_5.1.12/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_5.1.12/src/Makefile.inc
+
  echo "LN              = ln" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "MKDIR          = mkdir -p" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "MKDIR          = mkdir -p" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "MV              = mv" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/src/Makefile.inc
+
  echo "MV              = mv" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
  echo "RANLIB          = ranlib" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/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_5.1.12/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_5.1.12" >> $(INSTALL_DIR)/Builds/scotch_5.1.12/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_5.1.12/src && make scotch && make ptscotch && make install)
+
  (cd $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src && make -j $(NPROCS) scotch && make -j $(NPROCS) ptscotch && make install)
 
   
 
   
 
  petsc: structure
 
  petsc: structure
  (cd $(INSTALL_DIR)/Downloads && wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.2-p6.tar.gz)
+
  (cd $(INSTALL_DIR)/Downloads && wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-$(PETSC_VERSION).tar.gz)
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/petsc-lite-3.2-p6.tar.gz)
+
  (cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/petsc-$(PETSC_VERSION).tar.gz)
  (cd $(INSTALL_DIR)/Builds/petsc-3.2-p6 && ./configure --prefix=$(INSTALL_DIR)/local/petsc-3.2-p6 --download-hypre=yes --with-mpi-dir=$(INSTALL_DIR)/local/openmpi-1.6 --with-blas-lib=$(INSTALL_DIR)/local/blas/lib/libblas.a --with-lapack-lib=$(INSTALL_DIR)/local/lapack/lib/liblapack.a && make PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-3.2-p6 PETSC_ARCH=arch-linux2-c-debug all && make PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-3.2-p6 PETSC_ARCH=arch-linux2-c-debug install)
+
  (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/blas/lib/libblas.a --with-lapack-lib=$(INSTALL_DIR)/local/lapack/lib/liblapack.a --CPP=$(CPP) && make -j $(NPROCS) PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=arch-linux2-c-debug all && make PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=arch-linux2-c-debug install)
 
   
 
   
 +
slepc: structure
 +
(cd $(INSTALL_DIR)/Downloads && wget http://www.grycap.upv.es/slepc/download/download.php?filename=slepc-$(SLEPC_VERSION).tar.gz)
 +
(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/slepc-$(SLEPC_VERSION).tar.gz)
 +
(cd $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION) && export SLEPC_DIR=/Builds/slepc-3.3-p3 && export PETSC_DIR=/Builds/petsc-3.3-p6 && export PETSC_ARCH=arch-linux2-c-debug && ./configure && make -j $(NPROCS) PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=arch-linux2-c-debug all &&  mkdir $(INSTALL_DIR)/local/slepc-3.3-p3/ && 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)/arch-linux2-c-debug/include ./include2 && ln -s $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION)/arch-linux2-c-debug/lib ./lib)
 +
 
 
  clean:
 
  clean:
 
  echo
 
  echo

Revision as of 17:35, 12 March 2013

Copy and paste the following lines in .bash_profile:

alias l='ls -l'
export PATH=$PATH:/local/openmpi-1.6/bin
export LD_LIBRARY_PATH="/local/openmpi-1.6/lib:$LD_LIBRARY_PATH"
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so

Copy and paste this in a file called Install.make:

INSTALL_DIR = /

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.10-patch1
LAPACK_VERSION = 3.4.2
PARMETIS_VERSION = 3.2.0
SCOTCH_VERSION = 6.0.0
PETSC_VERSION = 3.3-p6
SLEPC_VERSION = 3.3-p3

all: structure sed fftw openmpi hdf5 lapack ParMetis scotch petsc slepc

freenx-ocelot:
	sudo apt-get install libaudiofile0
	sudo add-apt-repository -y ppa:freenx-team
	sudo sed -i 's/oneiric/lucid/g' /etc/apt/sources.list.d/freenx-team-ppa-oneiric.list
	sudo apt-get update && sudo apt-get upgrade
	wget -P /tmp http://de.archive.ubuntu.com/ubuntu/pool/main/e/esound/esound-common_0.2.41-8_all.deb
	wget -P /tmp http://de.archive.ubuntu.com/ubuntu/pool/main/e/esound/libesd0_0.2.41-8_amd64.deb
	wget -P /tmp http://de.archive.ubuntu.com/ubuntu/pool/main/e/esound/esound-clients_0.2.41-8_amd64.deb
	sudo dpkg -i /tmp/esound-common_0.2.41-8_all.deb
	sudo dpkg -i /tmp/libesd0_0.2.41-8_amd64.deb
	sudo dpkg -i /tmp/esound-clients_0.2.41-8_amd64.deb
	sudo apt-get -f -y install
	sudo rm -f /tmp/esound-common_0.2.41-8_all.deb /tmp/libesd0_0.2.41-8_amd64.deb /tmp/esound-clients_0.2.41-8_amd64.deb
	sudo apt-get install -y freenx
	cd /tmp && wget https://bugs.launchpad.net/freenx-server/+bug/576359/+attachment/1378450/+files/nxsetup.tar.gz && tar zxvf nxsetup.tar.gz
	sudo cp /tmp/nxsetup /usr/lib/nx/nxsetup
	-sudo /usr/lib/nx/nxsetup --install --setup-nomachine-key
	sudo rm -f /tmp/nxsetup /tmp/nxsetup.tar.gz
	sudo touch /etc/apt/preferences
	sudo sh -c "echo Package: esound-common >> /etc/apt/preferences"
	sudo sh -c "echo Pin: version 0.2.41-8 >> /etc/apt/preferences"
	sudo sh -c "echo Pin-priority: 1001 >> /etc/apt/preferences"
	sudo sh -c "echo >> /etc/apt/preferences"
	sudo sh -c "echo Package: libesd0 >> /etc/apt/preferences"
	sudo sh -c "echo Pin: version 0.2.41-8 >> /etc/apt/preferences"
	sudo sh -c "echo Pin-priority: 1001 >> /etc/apt/preferences"

packages:
	sudo apt-get install -y nvidia-current
	sudo apt-get install -y ubuntu-desktop
	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

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
	sudo apt-get install libstdc++5 xfs xfstt xfonts-75dpi xfonts-100dpi
	rm /tmp/libmotif3_2.2.3-4_amd64.deb

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

sed: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://ftp.gnu.org/gnu/sed/sed-$(SED_VERSION).tar.bz2)
	(cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/sed-$(SED_VERSION).tar.bz2)
	(cd $(INSTALL_DIR)/Builds/sed-$(SED_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/sed-$(SED_VERSION) && make -j $(NPROCS) && make install)

fftw: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://www.fftw.org/fftw-$(FFTW_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/fftw-$(FFTW_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds/fftw-$(FFTW_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/fftw-$(FFTW_VERSION) && make -j $(NPROCS) && make install)

openmpi: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://www.open-mpi.org/software/ompi/v$(OPENMPI_MAJOR_VERSION)/downloads/openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2)
	(cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/openmpi-$(OPENMPI_MINOR_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) && make install)

hdf5: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-$(HDF5_VERSION).tar.bz2)
	(cd $(INSTALL_DIR)/Builds && tar -jxvf $(INSTALL_DIR)/Downloads/hdf5-$(HDF5_VERSION).tar.bz2)
	(cd $(INSTALL_DIR)/Builds/hdf5-$(HDF5_VERSION) && ./configure --prefix=$(INSTALL_DIR)/local/hdf5-$(HDF5_VERSION) --enable-fortran --enable-cxx && make -j $(NPROCS) && make install)

lapack: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://www.netlib.org/lapack/lapack-$(LAPACK_VERSION).tgz)
	(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/lapack-$(LAPACK_VERSION).tgz)
	(cd $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION) && cp make.inc.example make.inc && make -j $(NPROCS) blaslib && make -j $(NPROCS) lapacklib)
	mkdir -p $(INSTALL_DIR)/local/blas/lib
	mkdir -p $(INSTALL_DIR)/local/lapack/lib
	ln -s $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION)/liblapack.a $(INSTALL_DIR)/local/lapack/lib/liblapack.a
	ln -s $(INSTALL_DIR)/Builds/lapack-$(LAPACK_VERSION)/librefblas.a $(INSTALL_DIR)/local/blas/lib/libblas.a

ParMetis: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD/ParMetis-$(PARMETIS_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/ParMetis-$(PARMETIS_VERSION).tar.gz)
	echo "CC = $(INSTALL_DIR)/local/openmpi-$(OPENMPI_MINOR_VERSION)/bin/mpicc" > $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
	echo "OPTFLAGS = -O3" >> $(INSTALL_DIR)/Builds/ParMetis-$(PARMETIS_VERSION)/Makefile.in
	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))
	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
	(cd $(INSTALL_DIR)/Downloads && wget https://gforge.inria.fr/frs/download.php/31831/scotch_$(SCOTCH_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/scotch_$(SCOTCH_VERSION).tar.gz)
	echo "EXE             =" > $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
	echo "LIB             = .a" >> $(INSTALL_DIR)/Builds/scotch_$(SCOTCH_VERSION)/src/Makefile.inc
	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_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 -lrt" >> $(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 && make install)

petsc: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-$(PETSC_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/petsc-$(PETSC_VERSION).tar.gz)
	(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/blas/lib/libblas.a --with-lapack-lib=$(INSTALL_DIR)/local/lapack/lib/liblapack.a --CPP=$(CPP) && make -j $(NPROCS) PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=arch-linux2-c-debug all && make PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=arch-linux2-c-debug install)

slepc: structure
	(cd $(INSTALL_DIR)/Downloads && wget http://www.grycap.upv.es/slepc/download/download.php?filename=slepc-$(SLEPC_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds && tar -zxvf $(INSTALL_DIR)/Downloads/slepc-$(SLEPC_VERSION).tar.gz)
	(cd $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION) && export SLEPC_DIR=/Builds/slepc-3.3-p3 && export PETSC_DIR=/Builds/petsc-3.3-p6 && export PETSC_ARCH=arch-linux2-c-debug && ./configure && make -j $(NPROCS) PETSC_DIR=$(INSTALL_DIR)/Builds/petsc-$(PETSC_VERSION) PETSC_ARCH=arch-linux2-c-debug all &&  mkdir $(INSTALL_DIR)/local/slepc-3.3-p3/ && 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)/arch-linux2-c-debug/include ./include2 && ln -s $(INSTALL_DIR)/Builds/slepc-$(SLEPC_VERSION)/arch-linux2-c-debug/lib ./lib)
 
clean:
	echo


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