Installation script for Z800

From www.coria-cfd.fr
Revision as of 10:31, 24 September 2013 by Lartigue (Talk | contribs)

Jump to: navigation, search

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


Installing gcc.make:

INSTALL_DIR = /

WGET = wget

GCC_VERSION = 4.8.1

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

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

INSTALL_DIR = /

WGET = /local/wget-1.9/bin/wget
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 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

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 && if [ ! -f sed-$(SED_VERSION).tar.bz2 ]; then $(WGET) http://ftp.gnu.org/gnu/sed/sed-$(SED_VERSION).tar.bz2; fi)
	(cd $(INSTALL_DIR)/Builds && rm -rf sed-$(SED_VERSION) && tar -jxvf $(INSTALL_DIR)/Downloads/sed-$(SED_VERSION).tar.bz2)
	(export F77=$(F77) && export FC=$(FC) && export CC=$(CC) && export CXX=$(CXX) && export CPP=$(CPP) && export CXXPP=$(CXXPP) && \
	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)

fftw: structure
	(cd $(INSTALL_DIR)/Downloads && if [ ! -f fftw-$(FFTW_VERSION).tar.gz ]; then $(WGET) http://www.fftw.org/fftw-$(FFTW_VERSION).tar.gz; fi)
	(cd $(INSTALL_DIR)/Builds && rm -rf fftw-$(FFTW_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/fftw-$(FFTW_VERSION).tar.gz)
	(export F77=$(F77) && export FC=$(FC) && export CC=$(CC) && export CXX=$(CXX) && export CPP=$(CPP) && export CXXPP=$(CXXPP) && \
	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)

openmpi: structure
	(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)
	(cd $(INSTALL_DIR)/Builds && rm -rf openmpi-$(OPENMPI_MINOR_VERSION) && tar -jxvf $(INSTALL_DIR)/Downloads/openmpi-$(OPENMPI_MINOR_VERSION).tar.bz2)
	(export F77=$(F77) && export FC=$(FC) && export CC=$(CC) && export CXX=$(CXX) && export CPP=$(CPP) && export CXXPP=$(CXXPP) && \
	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: structure
	(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)
	(cd $(INSTALL_DIR)/Builds && rm -rf hdf5-$(HDF5_VERSION) && 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) && rm -rf $(INSTALL_DIR)/local/hdf5-$(HDF5_VERSION) && make install)

lapack: structure
	(cd $(INSTALL_DIR)/Downloads && if [ ! -f lapack-$(LAPACK_VERSION).tgz ]; then $(WGET) http://www.netlib.org/lapack/lapack-$(LAPACK_VERSION).tgz; fi)
	(cd $(INSTALL_DIR)/Builds && rm -rf lapack-$(LAPACK_VERSION) && 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)
	(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)

ParMetis: structure
	(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)
	(cd $(INSTALL_DIR)/Builds && rm -rf ParMetis-$(PARMETIS_VERSION) && 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))
	(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
	(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)
	(cd $(INSTALL_DIR)/Builds && rm -rf scotch_$(SCOTCH_VERSION) && 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_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
	(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)
	(cd $(INSTALL_DIR)/Builds && rm -rf petsc-$(PETSC_VERSION) && 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/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)

slepc: structure
	(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)
	(cd $(INSTALL_DIR)/Builds && rm -rf slepc-$(SLEPC_VERSION) && tar -zxvf $(INSTALL_DIR)/Downloads/slepc-$(SLEPC_VERSION).tar.gz)
	(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)

clean:
	echo


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