====== Installing or Building Libraries ====== \\ This page regroups some libraries that I encountered, and how I built them. When possible, I specified the version of the library used, and the version of the compiler used. If you get an error using these instructions, do not hesitate to mail me. * **System libraries** ^ Name ^ Version ^ Compiler ^ Build-Install ^ | openssl | 1.0.1e | gcc 4.6.4 | [[software:development:libraries#openssl|openssl]] | | python | 2.7.5 | gcc 4.6.4, intel 13.0.1 | [[software:development:libraries#python|python]] | | google perfTools (gperftool) | 1.8.3, 2.0 | intel 11.1 | [[software:development:libraries#google_perftools_gperftool|google perfTools (gperftool)]] | | glib | 2.4.8 | 4.4.6 | [[software:development:libraries#glib|glib]] | | libsigc++ | 2.3.1 | gcc 4.4.6 | [[software:development:libraries#libsigc|libsigc++]] | | glibmm | 2.4.8 | gcc 4.4.6 | [[software:development:libraries#glibmm|glibmm]] | | libxml2 | 2.7.8 | gcc 4.4.6 | [[software:development:libraries#libxml2|libxml2]] | | curl | 7.22.0 | gcc 4.4.6 | [[software:development:libraries#curl|curl]] | | openmpi | 1.4.5, 1.6.3 | gcc 4.4.6 | [[software:development:libraries#openmpi|openmpi]] | | boost | 1.46.1,1.48.0,1.53.0,1.52.0 | gcc 4.4.6, intel 11.1 | [[software:development:libraries#boost|boost]] | | tcl | 8.5.13, 8.5.14 | gcc 4.6.4 | [[software:development:libraries#tcl|tcl]] | | tk | 8.5.14 | gcc 4.6.4 | [[software:development:libraries#tk|tk]] | | tclx | 8.4 | gcc 4.6.4 | [[software:development:libraries#tclx|tclx]] | | readline | 6.2 | gcc 4.4.6 | [[software:development:libraries#readline|readline]] | | zlib | NA | gcc 4.4.6 | [[software:development:libraries#zlib|zlib]] | | hdf5 | NA | gcc 4.4.6, intel 11.1 | [[software:development:libraries#hdf5|hdf5]] | | Intel MPI Benchmarks | NA | gcc 4.4.6, intel 11.1 | [[software:development:libraries#intel_mpi_benchmarks|Intel MPI Benchmarks]] | | modules | 3.2.10 | gcc 4.4.6 | [[software:development:libraries#modules|modules]] | | expat | 2.1.0 | intel 13.1 | [[software:development:libraries#expat|expat]] | | bzip2 | 1.0.6 | gcc 4.6.3, intel 11.1 | [[software:development:libraries#bzip2|bzip2]] | | libtool | 2.4 | gcc 4.6.4, intel 11.1, intel 13.0.1 | [[software:development:libraries#libtool|libtool]] | | icu | 4.2 | gcc 4.6.4 | [[software:development:libraries#icu|icu]] | | boost-icu | 1.48.0 | gcc 4.6.4 | [[software:development:libraries#boost-icu|boost-icu]] | | sqlite3 | 3.7.16.2 | gcc 4.6.4, intel 13.0.1 | [[software:development:libraries#sqlite3|sqlite3]] | | medusa | 2.1.1 | gcc 4.4.2 | [[software:development:libraries#medusa|medusa]] | | libssh2 | 1.4.3 | gcc 4.4.2 | [[software:development:libraries#libssh2|libssh2]] | | John the Ripper | 1.7.8 jumbo 2 - MPI | gcc 4.4.2 | [[software:development:libraries#john_the_ripper|John the Ripper]] | | swig | 2.0.9 | gcc 4.6.3 | [[software:development:libraries#swig|swig]] | | pcre | 8.32 | gcc 4.6.3 | [[software:development:libraries#pcre|pcre]] | | valgrind | 3.8.1 | gcc 4.6.3 | [[software:development:libraries#valgrind|valgrind]] | | R | 3.0.1 | gcc 4.6.4 | [[software:development:libraries#r|R]] | | netcdf | 4.1.1 | intel 13.0.1 | [[software:development:libraries#netcdf|netcdf]] | | python setuptools | 1.1.6 | gcc 4.6.4 | [[software:development:libraries#python_setuptools|python setuptools]] | | gnu m4 | 1.4.17 | gcc 4.8.2 | [[software:development:libraries#gnu_m4|gnu m4]] | * **Mathematics libraries** ^ Name ^ Version ^ Compiler ^ Build-Install ^ | fftw | 3.3.3 | gcc 4.4.6, intel 11.1 | [[software:development:libraries#fftw|fftw]] | | blas | NA | gcc 4.4.6, intel 11.1, intel 13.0.1 | [[software:development:libraries#blas|blas]] | | lapack | NA | gcc 4.4.6 | [[software:development:libraries#lapack|lapack]] | | ScaLapack - Blacs | 2.0.2 | gcc 4.6.3 | [[software:development:libraries#scalapack_-_blacs|ScaLapack - Blacs]] | | numpy | 1.7.0 | gcc 4.6.3, intel 13.0.1 | [[software:development:libraries#numpy|numpy]] | | scipy | 0.12.0 | intel 13.0.1 | [[software:development:libraries#scipy|scipy]] | | gsl | 1.16 | intel 13 SP1 | [[software:development:libraries#gsl|gsl]] | * **Physic libraries** ^ Name ^ Version ^ Compiler ^ Build-Install ^ | pyevolve | 0.6rc1 | gcc 4.6.4 | [[software:development:libraries#pyevolve|pyevolve]] | | gdal | 1.7.1, 1.9.2 | gcc 4.4.6, gcc 4.6.3 | [[software:development:libraries#gdal|gdal]] | | crac | NA | intel 11.1 | [[software:development:libraries#crac|crac]] | | openKIM | NA | gcc 4.4.6 | [[software:development:libraries#openkim|openKIM]] | | mira |3.4.1.1 | intel 13.1 | [[software:development:libraries#mira|mira]] | | vasp | 5.2 VTST, 5.3 VTST | intel 11.1 | [[software:development:libraries#vasp|vasp]] | | proj | 4.8.0 | gcc 4.6.3 | [[software:development:libraries#proj|proj]] | | gdal-ogr | 1.9.2 | gcc 4.6.4 | [[software:development:libraries#gdal-ogr|gdal-ogr]] | | mapnik | 2.1.0 | gcc 4.6.3 | [[software:development:libraries#mapnik|mapnik]] | | otb | 3.16 | gcc 4.6.4 | [[software:development:libraries#otb|otb]] | | gromacs | 4.5.5 | gcc 4.6.3 | [[software:development:libraries#gromacs|gromacs]] | | gerris | snap 131206 | gcc 4.8.2+intel 12.1.3+MPT 2.06 | [[software:development:libraries#gerris|gerris]] | | metis | 5.02 | intel 14.01 | [[software:development:libraries#metis|metis]] | | telemac | v6p3r2 | intel-14.0.2 openmpi-1.6.5 | [[software:development:libraries#telemac|telemac]] | * **Rendering libraries** ^ Name ^ Version ^ Compiler ^ Build-Install ^ | matplotlib | 1.3.0 | gcc 4.6.4 | [[software:development:libraries#matplotlib|matplotlib]] | | flex | 2.5.37 | intel 11.1 | [[software:development:libraries#flex|flex]] | | gnuplot | 4.6.1 | gcc 4.4.6 | [[software:development:libraries#gnuplot|gnuplot]] | | motif | 2.3.4 | gcc 4.6.3 | [[software:development:libraries#motif|motif]] | | freetype2 | 2.4.11 | gcc 4.6.3 | [[software:development:libraries#freetype2|freetype2]] | | xpdf | 3.03 | gcc 4.6.3 | [[software:development:libraries#xpdf|xpdf]] | | X11 bitmaps | 1.1.1 | gcc 4.6.3 | [[software:development:libraries#x11_bitmaps|X11 bitmaps]] | | fltk | 1.3.2 | gcc 4.6.3 | [[software:development:libraries#fltk|fltk]] | | geotiff | 1.4.0 | gcc 4.6.3 | [[software:development:libraries#geotiff|geotiff]] | | tiff | 4.0.3 | gcc 4.6.3 | [[software:development:libraries#tiff|tiff]] | \\ =====System libraries===== \\ ====openssl==== \\ Note : you cannot compile openssl with intel compiler, tests and use will always fail (with current intel icc 13.0.1 version and previous for sure). ./config --prefix=/soft/openssl/1.0.1e shared zlib-dynamic make make test make install \\ ====python==== \\ Installation with ssl support (important for further packages installation), using openssl.Untar, and edit setup.py. Find these lines, and edit them to match your openssl directory installation : # Detect SSL support for the socket module (via _ssl) search_for_ssl_incs_in = [ '/soft/system/openssl/1.0.1e/ssl/include', '/soft/system/openssl/1.0.1e/include/' ] ssl_incs = find_file('openssl/ssl.h', inc_dirs, search_for_ssl_incs_in ) if ssl_incs is not None: krb5_h = find_file('krb5.h', inc_dirs, ['/usr/kerberos/include']) if krb5_h: ssl_incs += krb5_h ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, ['/soft/system/openssl/1.0.1e/lib', '/soft/system/openssl/1.0.1e/ssl/lib/' ] ) Then, edit Modules/Setup.dist, and uncomment these lines, and set the SSL variable to match your openssl installation directory. # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: SSL=/opt/cluster/softs/intel-13.x-soft/system/openssl/1.0.1e _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto And copy Modules/Setup.dist to Modules/Setup cp Modules/Setup.dist Modules/Setup Now you can configure and compile : ./configure --prefix=/soft/system/python/2.7.5 make make test Important : when compiling with Intel Compiler, I got errors during the test, and I got none using gcc. Even if you use Intel to compile numpy or scipy, I strongly recommand to compiler Python using only gcc.If you use Intel, you may encounter this error : INSTALL/Python-2.7.5/Modules/_ctypes/libffi/src/x86/ffi64.c(56): error: identifier "__m128" is undefined UINT128 i128; ^ compilation aborted for INSTALL/Python-2.7.5/Modules/_ctypes/libffi/src/x86/ffi64.c (code 2)...Failed to build these modules: _ctypes See in the error section of this website. You just need to add #include with the other includes in Modules/_ctypes/libffi/src/x86/ffi64.c I also got an error at make install with intel because of already installed python on the cluster. Just bypass it using make -k.If you compile with gcc, no errors anywhere.However, we wanted ssl support, and we get : Failed to find the necessary bits to build these modules: _bsddb _curses _curses_panel _hashlib _sqlite3 _ssl This is wrong. If you take a look at your lib : nm -n libpython2.7.a | grep -i "ssl" You can see that the lib incorporate the ssl support. The "Failed to find the necessary bits to build these modules: _ssl" is wrong.Now you can install. make install Don't forget to add your new python into PATH and LD_LIBRARY_PATH. \\ **Tips on python module path :** To display all modules loaded by python, use : PYTHON >>> import sys >>> from pprint import pprint as p >>> p(sys.path) ['', 'C:\\Python25\\lib\\site-packages\\setuptools-0.6c9-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\orbited-0.7.8-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\morbid-0.8.6.1-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\demjson-1.4-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\stomper-0.2.2-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\uuid-1.30-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\stompservice-0.1.0-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\cherrypy-3.0.1-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\pyorbited-0.2.2-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\flup-1.0.1-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\wsgilog-0.1-py2.5.egg', 'c:\\testdir', 'C:\\Windows\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages', 'C:\\Python25\\lib\\site-packages\\PIL', 'C:\\Python25\\lib\\site-packages\\win32', 'C:\\Python25\\lib\\site-packages\\win32\\lib', 'C:\\Python25\\lib\\site-packages\\Pythonwin'] And here, to add c:\testdir to PATH, we used : export PYTHONPATH=c:\testdir:$PYTHONPATH ====google perfTools (gperftool)==== \\ ./configure --prefix=/soft/google-perftools/1.8.3 CC=icc CXX=icpc CXXFLAGS="-O3 -xHOST -no-prec-div" CFLAGS="-O3 -xHOST -no-prec-div" Do not make on multiple CPU, errors if used. make The make check will give you a LOT of errors. But, the more RAM memory you have available, the less errors you will get. And if you launch tests multiple times, you will see that errors are coming randomly. The fact is that the test consist in allocating large band of memory or testing things that can interfere with others process. If the system cannot allocate the memory, or if another process is perturbing the test, you will get errors. This do no means that your build failed. make install \\ ====glib==== \\ cd glib-2.4.8 ./configure CC=gcc --prefix=/soft/glib-2.4.8 make -j 4 make check make install \\ ====libsigc++==== \\ cd libsigc++-2.3.1 ./configure CC=gcc --prefix=/soft/libsigc++-2.3.1 make -j 4 make check make install \\ ====glibmm==== \\ cd glibmm-2.4.8 export PKG_CONFIG_PATH=/soft/glib-2.4.8/lib/pkgconfig:/soft/libsigc++-2.3.1/lib/pkgconfig Adding #include in file glib/glibmm/propertyproxy_base.cc (cf http://gcc.gnu.org/gcc-4.3/porting_to.html, error: 'strcmp' was not declared in this scope) ./configure CC=gcc --prefix=/soft/glibmm-2.4.8 PKG_CONFIG_PATH=/soft/glib-2.4.8/lib/pkgconfig:/soft/libsigc++-2.3.1/lib/pkgconfig make -j 4 make check make install \\ ====libxml2==== \\ cd libxml2-2.7.8 ./configure CC=gcc --prefix=/soft/libxml2-2.7.8 ### /bin/rm: cannot remove `libtoolT': No such file or directory (OK) make -j 4 make check Adding http://www.w3.org/XML/Test/xmlts20080205.tar.gz for tests make -k check Error parsing html, test is buggy : http://www.mail-archive.com/blfs-dev@linuxfromscratch.org/msg10068.html Ignore it. make install \\ ====curl==== \\ cd curl-7.22.0 ./configure CC=gcc --prefix=/soft/curl-7.22.0 make -j 4 make check ### Can be long... make install \\ ====openmpi==== \\ **With GCC :** cd openmpi-1.4.5 ./configure --prefix=/soft/openmpi-1.4.5 CC=gcc CXX=g++ F77=gfortran FC=gfortran make -j 4 make check make install To install with PSM Infiniband support and Load Leveler Support, disable multithread : ./configure --prefix=/soft/openmpi/1.6.3 --disable-ft-thread --disable-mpi-thread-multiple --with-sge --with-openib --with-psm --with-verbs --with-loadleveler **With Intel :** cd openmpi-1.4.5 ./configure --prefix=/soft/openmpi-1.4.5 CC=icc CXX=icpc F77=ifort FC=ifort make -j 4 make check make install In both cases, do not forget to add PATH and LD_LIBRARY_PATH after to get access to openmpi wrappers and libraries : export PATH=/soft/openmpi-1.4.5/bin:$PATH export LD_LIBRARY_PATH=/soft/openmpi-1.4.5:$LD_LIBRARY_PATH \\ ====boost==== \\ cd boost_1_46_1 For MPI boost, add 'using mpi ;' (without the comma) anywhere in tools/build/v2/user-config.jam. vim tools/build/v2/user-config.jam For GCC (default for boost): ./bootstrap.sh --with-libraries=all --prefix=/soft/boost-1.46.1 For ICC intel: ./bootstrap.sh --with-libraries=all --prefix=/soft/boost-1.48.0 --with-toolset=intel-linux For 1.46.0 and previous : ./bjam install For 1.48.0 and next : ./b2 install This last step can be long.To build boost fully static, you need to add arguments (the argument threading is not dedicated to static building, but it is here to make sure boost build parallel libraries): ./bootstrap.sh --with-libraries=all --prefix=$HOME/boost/1.53.0 --with-toolset=intel-linux link=static threading=multi runtime-link=static ./b2 install link=static threading=multi runtime-link=static If you get this error : cannot open source file "patchlevel.h" or cannot open source file "bz2.h" It means you need to install python dev package and bzip2 dev package. If using a own built python or bzip2, then link the boost include with it. \\ ====tcl==== \\ If possible do not use the 8.6, I got errors, and I am not the only one. cd unix ./configure...... make test ... \\ ====tk==== \\ Needs libx11-dev and xorg-dev (X libraries). Tk should be installed in the same directory than tcl. cd unix ./configure...... make test ... \\ ====tclx==== \\ cd unix ./configure --with-tcl=/soft/tcltk/8.5.14/lib --enable-shared --enable-static --prefix=/soft/tclx/8.4 make make install Now, you need a correct tclxConfig.sh file if you want to compile some libs like module. Note that tclx libs have been installed in the lib directory of tcltk. Put it in the same directory than the lib :cd /soft/tcltk/8.5.14/lib/tclx8.4/ vim tclxConfig.shAnd here is mine : # # tclxConfig.sh - This file is generated by the TclX configure script to # assist in linking with TclX (libtclx.a). It is a shell scripted designed to # be sourced by configure scripts. The system libraries defined in here # need to be used in addition to those defined in tclConfig.sh. See # tclExtend.h for a full expanation of the version numbers. # # System: Linux-2.0.10 # Date: Mon Aug 19 22:30:36 EDT 1996 # # # Version numbers for TclX (see tclExtend.h for details). # TCLX_FULL_VERSION='8.4.0' TCLX_VERSION='8.4' # # Defines for cpp. # TCLX_DEFS='' # # Additional libraries added by TclX. # TCLX_LIBS='' # # String to pass to linker to pick up the TclX library from its # build directory. # TCLX_BUILD_LIB_SPEC='-L/soft/tcltk/8.5.14/lib/tclx8.4 -ltclx8.4' # # String to pass to linker to pick up the TclX header from its # installed directory. # TCLX_INCLUDE_SPEC='-I/soft/tclx/8.4/include' # # String to pass to linker to pick up the TclX library from its # installed directory. # TCLX_LIB_SPEC='-L/soft/tcltk/8.5.14/lib/tclx8.4 -ltclx8.4' # # Search flags that specify how to find the TclX shared libraries at run time # on some systems. # TCLX_LD_SEARCH_FLAGS='' \\ ====readline==== \\ Nothing particular, just configure, make, make check, make install. \\ ====zlib==== \\ Configure, make, make check, make install \\ ====hdf5==== \\ ./configure --prefix=/soft/HDF5 --enable-parallel --enable-fortran --with-zlib=/usr/lib/x86_64-linux-gnu --enable-shared --enable-static CC=mpicc FC=mpif90 Note that (from documentation): The parallel test, t_shapesame, in testpar/, may run for a long time and may be terminated by the alarm signal. If that happens, one can increase the alarm seconds (default is 1200 seconds = 20 minutes) by setting the environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600 (60 minutes). Note that the t_shapesame test may fail in some systems (see the "While working on the 1.8.6 release..." problem below). If it does, it will waste more time if $HDF5_ALARM_SECONDS is set to a larger value. (AKC - 2011/05/07)For intel ICC, replace in the test Makefile mpiexec by mpirun if needed.To use HDF5, note that if C code can load the headers and the libraries in one line, Fortran cannot. You need to cut it in two commands. mpif90 -c CFD-FIELD3.f90 -I /soft/HDF5/include mpif90 CFD-FIELD3.o -o a.out -L/soft/HDF5/lib -lhdf5_fortran -lhdf5 -lz \\ ====Intel MPI Benchmarks==== \\ Very simple, just compile it and launch the executable in parallel, playing with parameters to choose the test you want. If none specified, it will run all (~20 min of run). cd src make -f make_mpich MPI_HOME=/soft/mpi/openmpi-1.4.3-qlc \\ ====modules==== \\ Very useful tool to help users solve dependency and library conflict problems. Should be used one every calculator with multiple users. ./configure --prefix=/soft/modules/3.2.10 --with-tcl-lib=/soft/tcl/8.5.13/lib --with-tcl-inc=/soft/tcl/8.5.13/include --disable-versioning --exec-prefix=/soft/modules/3.2.10/Modules --with-module-path=/soft/modules/3.2.10 make install if you get : checking for TclX version... configure: error: Must specify version (X.Y) if using this option checking for Tcl version... configure: error: Must specify version (X.Y) if using this option checking for TclX configuration (tclxConfig.sh)... not found etc.Try using all arguments : ./configure --prefix=/soft/modules/3.2.10 --with-tcl-lib=/soft/tcltk/8.5.14/lib --with-tcl-inc=/soft/tcltk/8.5.14/include --disable-versioning --exec-prefix=/soft/modules/3.2.10/Modules --with-module-path=/soft/modules/3.2.10 --with-tcl=/soft/tcltk/8.5.14/lib --with-tcl-ver=8.5 --with-tclx=/soft/tcltk/8.5.14/lib/tclx8.4 --with-tclx-ver=8.4 Then, in /soft/modules/3.2.10/Modules/init/, copy bash to bash.sh so that the system do not thinks its bash bin, and create a loadmodule.sh file that contains : export LD_LIBRARY_PATH=/soft/tcltk/8.5.14/lib/:/soft/tcltk/8.5.14/lib/tclx8.4/ source /soft/modules/3.2.10/Modules/init/bash.sh Just need to source it after: source loadmodule.sh To enable the module alias, you need to source the module script. cd /soft/modules/3.2.10/Modules/init Copy the type wanted into the same name, but with '.s' at end (to prevent conflicts with the original binary). Let's say here we use bash : cp ./bash ./bash.s And now source it : source bash.s You can also add it to your bashrc to load it at each session.Then, to make a module, go into : cd /soft/modules/3.2.10/Modules/modulefiles And you can take a look at the files here for example. Note that : **setenv** is like export to declare environment variable **prepend-path** add your directory before the rest of the current variable **append-path** add your directory after the rest of the current variable Example :Let's say that we have : echo $PATH /usr/bin echo $LD_LIBRARY_PATH /usr/lib The following module file : proc ModulesHelp { } { global version puts stderr "\tLoad GCC 4.6.3 version." puts stderr "\tSupport for C,C++,Fortran." puts stderr "\tNo Multilibs." }module-whatis "Load GCC 4.6.3 version."# for Tcl script use only set version "3.2.10"conflict intel-11.1 prereq gmp-4.3.2setenv GCCHOME /soft/gcc-4.6.3prepend-path PATH /soft/gcc-4.6.3/bin prepend-path MANPATH /soft/gcc-4.6.3/share/man append-path LD_LIBRARY_PATH /soft/gcc-4.6.3/lib64setenv COMPILER gcc setenv COMPILER_VER 4.6.3 setenv CC gcc setenv CXX g++ setenv F77 gfortran setenv F90 gfortran setenv FC gfortran will give you : echo $PATH /soft/gcc-4.6.3/bin:/usr/bin echo $LD_LIBRARY_PATH /usr/lib:/soft/gcc-4.6.3/lib64 echo $GCCHOME /soft/gcc-4.6.3 Do not forget that the system is using the first file it encounters that corresponds to the command. Here, files in /soft/gcc-4.6.3/bin will be used before the one in /usr/bin.Note also that you can add conflict and pre-requite. Here, if the module intel-11.1 is already loaded, then this module will refuse to load. If the module gmp-4.3.2 is not load, then it will also not accept to load.You can use the following commands :module avail : display all modules available on the system module list : list all module already loaded module display gcc-4.4.2 : display what the module gcc-4.4.2 will do module load gcc-4.4.2 : load the module gcc-4.4.2 module unload gcc-4.4.2 : unload the gcc-4.4.2 module swithc gcc-4.4.2 intel-11.1 : will unload gcc-4.4.2 and load intel-11.1 \\ ====expat==== \\ Simple, just configure and make. ./configure --prefix=/soft/expat/2.1.0 CC=icc CXX=icpc F90=ifort make make check make install If you get this error : -o xmlwf/unixfilemap.o -c xmlwf/unixfilemap.c xmlwf/unixfilemap.c: In function ?filemap?: xmlwf/unixfilemap.c:54: error: ?caddr_t? undeclared (first use in this function) xmlwf/unixfilemap.c:54: error: (Each undeclared identifier is reported only once xmlwf/unixfilemap.c:54: error: for each function it appears in.) xmlwf/unixfilemap.c:54: error: expected ?)? before numeric constant xmlwf/unixfilemap.c:55: error: too few arguments to function ?mmap? xmlwf/unixfilemap.c:62: error: expected ?)? before ?p? xmlwf/unixfilemap.c:62: error: too few arguments to function ?munmap? make: *** [xmlwf/unixfilemap.o] Error 1 Then add typedef __caddr_t caddr_t; in xmlwf/unixfilemap.c, at line 20. \\ ====bzip2==== \\ make make install PREFIX=/soft/bzip2/1.0.6 \\ ====libtool==== \\ http://ftp.igh.cnrs.fr/pub/gnu/libtool/ ./configure --prefix=/soft/libtool/2.4 make -j 4 make check make install export LD_LIBRARY_PATH=/soft/libtool/2.4/lib:$LD_LIBRARY_PATH \\ ====icu==== \\ http://userguide.icu-project.org/ ./configure --prefix=/soft/ICU/4.2 --enable-static=yes --enable-shared=yes make make install export LD_LIBRARY_PATH=/soft/ICU/4.2/lib:$LD_LIBRARY_PATH \\ ====boost-icu==== \\ cd boost_1_48_0 vim tools/build/v2/user-config.jam add "using mpi ;" at beginning of the file. ./bootstrap.sh --with-libraries=all --prefix=/soft/boost/1.48.0 ./b2 -a -sICU_PATH=/soft/ICU/4.2 include=/soft/ICU/4.2/include/ install Check that boost has enabled ISU support (at beginning of ./b2 output). export LD_LIBRARY_PATH=/soft/boost/1.48.0/lib:$LD_LIBRARY_PATH \\ ====sqlite3==== \\ ./configure --prefix=/soft/sqlite/3.7.16.2 make make install export LD_LIBRARY_PATH=/soft/sqlite/3.7.16.2/lib:$LD_LIBRARY_PATH \\ ====medusa==== \\ ./configure --prefix=/home/toto/medusa LDFLAGS="-L/home/toto/libssh2/lib" CPPFLAGS="-I/home/toto/libssh2/include" ./medusa -h localhost -u be2012_1 -P /home/toto/john-1.7.9/run/password.lst -e ns -M ssh \\ ====libssh2==== \\ ./configure --prefix=/home/myusername/medusa LDFLAGS="-L/home/myusername/libssh2/lib \\ ====John the Ripper==== \\ cd john-1.7.8-jumbo-2/src uncomment the following lines in the Makefile: CC = mpicc -DHAVE_MPI -DJOHN_MPI_BARRIER -DJOHN_MPI_ABORT` MPIOBJ = john-mpi.o` make linux-x86-64 cd ../run ./john --test mpirun -np 8 ./john --test \\ ====swig==== \\ ./configure --with-python=/usr/bin/python --with-tcl=/soft/tcl/8.5.13/ --with-boost=/soft/boost/1.48.0/ --with-pcre-prefix=/soft/pcre/8.32/ --prefix=/soft/swig/2.0.9 make -j 4 make check make install \\ ====pcre==== \\ ./configure --enable-pcregrep-libz=/soft/zlib/1.2.7/lib/ --enable-pcregrep-libbz2=/soft/bzip2/1.0.6/lib/ --enable-pcre32 --enable-pcre16 --prefix=/soft/pcre/8.32 make -j 4 make check make install cd .. \\ ====valgrind==== \\ ./configure --prefix=/soft/valgrind/3.8.1 --with-mpicc=mpicc make make check make install \\ ====R==== \\ Note : need X headers to be built. ./configure --prefix=/soft/R/3.0.1 If you get an error : configure: error: --with-readline=yes (default) and headers/libs are not available Then you need to install readline libraries. If you get : /soft/readline/6.2/lib/libreadline.so: undefined reference to `PC' /soft/readline/6.2/lib/libreadline.so: undefined reference to `tgetflag' /soft/readline/6.2/lib/libreadline.so: undefined reference to `tgetent' /soft/readline/6.2/lib/libreadline.so: undefined reference to `UP' /soft/readline/6.2/lib/libreadline.so: undefined reference to `tputs' /soft/readline/6.2/lib/libreadline.so: undefined reference to `tgoto' /soft/readline/6.2/lib/libreadline.so: undefined reference to `tgetnum' /soft/readline/6.2/lib/libreadline.so: undefined reference to `BC' /soft/readline/6.2/lib/libreadline.so: undefined reference to `tgetstr' You need to add ncurses libraries using -lncurses.Now it accepts to compile. \\ ====netcdf==== \\ ./configure --with-hdf5=/soft/io/hdf5/1.8.11/ --with-zlib=/soft/system/zlib/1.2.8/ --enable-static --enable-shared --enable-netcdf4 --prefix=/soft/io/netcfd/4.1.1 make A lot of : ../libtool: eval: line 7311: unexpected EOF while looking for matching `"' ../libtool: eval: line 7312: syntax error: unexpected end of file ../libtool: line 7312: warning: syntax errors in . or eval will cause future versions of the shell to abort as Posix requires The libtool generated is the problem. Just remove it and create a link to your libtool : rm libtool; ln -s $(which libtool) libtool make clean make You get a /bin/sh: dvips: command not found If you do not need the latex documentation, use make -k to bypass this step. make check make install \\ ====python setuptools==== \\ Note also that the installer fails to install if the directory /soft/python/2.7.5-soft/setuptools/1.1.6/lib/python2.7/site-packages is not present in the PYTHONPATH variable.To install, it is easy : python setup.py build export PYTHONPATH=/soft/python/2.7.5-soft/setuptools/1.1.6/lib/python2.7/site-packages/:$PYTHONPATH python setup.py install --prefix=/soft/python/2.7.5-soft/setuptools/1.1.6 Test : python Python 2.7.5 (default, Sep 24 2013, 17:03:24) [GCC 4.6.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import setuptools >>> print setuptools.__version__ 0.6 \\ ====gnu m4==== \\ ./configure --enable-c++ --prefix=/softs/m4/1.4.17 make check make install export PATH=/softs/m4/1.4.17/bin:$PATH =====Mathematics libraries===== \\ ====fftw==== \\ For GCC : ./configure --prefix=/soft/fftw-3.3.3 --enable-threads --enable-openmp --enable-mpi -enable-sse2 make -j 4 make check make install Or to integrate float support : ./configure --prefix=/soft/fftw/3.3.3-shared-float --enable-threads --enable-openmp --enable-mpi -enable-sse2 --enable-shared --enable-fortran --enable-float For ICC intel : ./configure --prefix=/soft/fftw/3.3.3 --enable-threads --enable-openmp --enable-mpi -enable-sse2 CC=mpiicc FC=mpiifort CXX=mpiicpc MPICC=mpiicc \\ ====blas==== \\ Just extract and make. That's all, the lib is here. If needed, replace gcc by icc for intel. \\ ====lapack==== \\ Just copy one of the makefile inside the INSTALL directory at source folder root, and rename it as make.inc. cd lapack-src cp makefile.gcc . mv makefile.gcc make.inc Then compile blas and lapack : cd lapack/BLAS/SRC make cd ../.. make If you get errors, just compile manually the files causing troubles in TESTING/LIN, by changing the optimization flags (O3, O2, O1, O0, -g), then make, manual compile, make, etc. It can be long, be patient. \\ ====ScaLapack - Blacs==== \\ Best way is to go here http://www.netlib.org/scalapack/, and download the Scalapack installer python script. It will do the entire job, and documentation is well made. Note that you have to create the directory where to install libs after building yourself before running setup, even when specifying prefix. mkdir /soft/ScaLAPACK/2.0.2 ./setup.py --prefix=/soft/ScaLAPACK/2.0.2 --downall You are done. Libs can be used using : Your BLAS library is : -L/soft/ScaLAPACK/2.0.2/lib -lrefblas Your LAPACK library is : -L/soft/ScaLAPACK/2.0.2/lib -ltmg -lreflapack Your BLACS/ScaLAPACK library is : -L/soft/ScaLAPACK/2.0.2/lib -lscalapack \\ ====numpy==== \\ For gcc : python setup.py build --fcompiler=gnu95 python setup.py install --prefix=/soft/numpy/1.7.0 export $PYTHONPATH=/soft/numpy/1.7.0/lib/python2.7/site-packages/ For intel : see here : http://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl. Untar, and cd into the extracted directory. Create a file name site.cfg, and past this into it (change PATH to match your mkl installation directory) : [mkl] library_dirs = /opt/intel/mkl/composer_xe_2013/lib/intel64 include_dirs = /opt/intel/mkl/include mkl_libs = mkl_rt lapack_libs = Then, edit numpy/distutils/intelccompiler.py, and add the following optimizations to cc_exe by editing self.cc_exe : self.cc_exe = 'icc -O3 -g -fPIC -fp-model strict -fomit-frame-pointer -openmp -xhost' Then edit the fortran configuration file (there is a fault on intel web site, an s is missing) numpy/distutils/fcompiler/intel.py and replace ifort call by : ifort -xhost -openmp -fp-model strict -fPIC Now, you can build and install, using intelem because we use an x64 system : python setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem install --prefix=/soft/python/2.7.5-soft/numpy/1.7.0 Don't forget to add numpy into your PYTHONPATH : export PYTHONPATH=/soft/numpy/1.7.0/lib/python2.7/site-packages/:$PYTHONPATH Test : python Python 2.7.5 (default, Sep 24 2013, 17:03:24) [GCC 4.6.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> print numpy.__version__ 1.7.0 \\ ====scipy==== \\ If numpy is in your PYTHONPATH, you just need to build and install it this way : python setup.py config --compiler=intelem --fcompiler=intelem build_clib --compiler=intelem --fcompiler=intelem build_ext --compiler=intelem --fcompiler=intelem install --prefix=/soft/scipy/0.12.0 And add it into your PYTHONPATH : export PYTHONPATH=/soft/scipy/0.12.0/lib/python2.7/site-packages/:$PYTHONPATH Test : python Python 2.7.5 (default, Sep 24 2013, 17:03:24) [GCC 4.6.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import scipy >>> print scipy.__version__ 0.12.0 \\ ====gsl==== \\ ./configure --prefix=/softs/gsl/1.16 CC=icc --enable-shared make -j 4 make check make install \\ =====Physic libraries===== \\ ====pyevolve==== \\ Note also that the installer fails to install if the directory /soft/python/2.7.5-soft/pyevolve/0.6rc1/lib/python2.7/site-packages is not present in the PYTHONPATH variable. You also need setuptools in your PYTHONPATH. If not, you may encounter : Traceback (most recent call last): File "setup.py", line 1, in from setuptools import setup, find_packages ImportError: No module named setuptools To install, it is easy : python setup.py build export PYTHONPATH=/soft/python/2.7.5-soft/pyevolve/0.6rc1/lib/python2.7/site-packages/:$PYTHONPATH python setup.py install --prefix=/soft/python/2.7.5-soft/pyevolve/0.6rc1 Test : python Python 2.7.5 (default, Sep 24 2013, 17:03:24) [GCC 4.6.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pyevolve >>> print pyevolve.__version__ 0.6rc1 \\ ====gdal==== \\ cd gdal-1.7.1 ./configure CC=gcc --prefix=/soft/gdal-1.7.1 or to use external tiff (non system) : ./configure --prefix=/soft/gdal/1.9.2/ --with-libtiff=/soft/tiff/4.0.3/ --with-geotiff=/soft/geotiff/1.4.0/ or to use internal tiff (included in gdal) ./configure --prefix=/soft/gdal/1.9.2/ --with-libtiff=internal --with-geotiff=internal --with-rename-internal-libtiff-symbols=yes --with-rename-internal-libgeotiff-symbols=yes make -j 4 ### no check available make install \\ ====crac==== \\ ./configure --prefix=/soft/crac CC=icc CXX=icpc FC=ifort CFLAGS="-g -O2 -std=c99" CPPFLAGS="-Wall -ansi -funroll-loops -O2 -DNDEBUG" --enable-exact-match-tool make You get the following error : ./seqan/platform.h(23): error: invalid combination of type specifyrs typedef int64_t __int64; The variable already exist with icpc, just comment the line and that's done. \\ ====openKIM==== \\ IMPORTANT : the following variable MUST be defined, even when null. If not, the install thinks it means "yes". No make install, just copy the folder where you want the lib to be, and compile here. export KIM_INTEL= export KIM_SYSTEM32= export KIM_DYNAMIC=yes export KIM_DIR=/soft/openkim.... cd $KIM_DIR make clean make examples make make all To compile with INTEL : export KIM_INTEL="yes" \\ ====mira==== \\ (Mira cannot be compiled with intel ‹ 12.1, no worth try)\\ To compile with shared libraries : ./configure --prefix=/soft/mira/3.4.1.1 --enable-debug=yes --with-boost=/soft/boost/1.53.0/ --with-expat=/soft/expat/2.1.0 --with-tcmalloc-dir=/soft/google-perftools/1.8.3/lib --enable-boundtracking=yes --enable-bugtracking=yes --enable-extendedbugtracking=no --with-tcmalloc CC=icc CXX=icpc To make mira full static : ./configure --prefix=/soft/mira/3.4.1.1 --enable-debug=yes --with-boost=/soft/boost/1.53.0/ --with-expat=/soft/expat/2.1.0 --with-tcmalloc-dir=/soft/google-perftools/1.8.3/lib --enable-boundtracking=yes --enable-bugtracking=yes --enable-extendedbugtracking=no --with-tcmalloc --enable-shared=no --enable-static=yes --enable-mirastatic CC=icc CXX=icpc Then : make make check make install If it says that it cannot link with expat, check inside the config.log. In my case, bz2 lib was missing and the configure was buggy, generating this error, even with expat correctly linked. I built bz2, and added to configure : CFLAGS="-L/soft/bzip2/1.0.6/lib" CXXFLAGS="-L/soft/bzip2/1.0.6/lib" If you get this error : undefined reference to `clock_gettime' This means you need to add "-lrt" at the END of the compilation line. For mira, I had to go in src/progs, then add -lrt at the end of LIBS. Then make inside the directory, and go back to top source and make. \\ ====vasp==== \\ A big one. First, to patch Vasp with VTST, download the vtstcode.tar.gz tarball, then extract its content inside vasp directory. Beware, it will replace some vasp files, backup vasp sources before doing this operation. Then, find the variable SOURCE in the Vasp Makefile, and add the following objects BEFORE chain.o: bfgs.o dynmat.o instanton.o lbfgs.o sd.o cg.o dimer.o bbm.o fire.o lanczos.o neb.o qm.o opt.o Note that you also need to edit main.F, and replace CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, & LATT_CUR%A,LATT_CUR%B,IO%IU6) by CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, & TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6) To make it clean, you also have to edit some files when you get the warning : dimer.F(79): warning #5117: Bad # preprocessor line #if defined(MPI_CHAIN) And make sure that the preprocessing commands (#....) are stick to the beginning of the line (no spaces between the # and the beginning of the line). Then : make -f makefile.mymakefile And you get the vasp binary file. Note that in my case, I added the flag -DMPI and I used the mpiifort compiler to compile everything. I never used the MPI dedicated part in the default makefile. \\ ====proj==== \\ http://trac.osgeo.org/proj/ ./configure --prefix=/soft/proj/4.8.0 make -j 4 make check make install export LD_LIBRARY_PATH=/soft/proj/4.8.0/lib:$LD_LIBRARY_PATH \\ ====gdal-ogr==== \\ ./configure --prefix=/soft/gdal/1.9.2/ --enable-shared --enable-static --with-ogr make -j 4 make check make install export LD_LIBRARY_PATH=/soft/gdal/1.9.2/lib:$LD_LIBRARY_PATH \\ ====mapnik==== \\ A big one. I will give here the full installation procedure I used (Do not forget the LD_LIBRARY_PATH export, if not, mapnik will complain about missing libs, even if you specified them on its configure command line) :\\ Dependencies to be installed : libtool 2.4, libicuuc 4.2, Boost 1.48.0 with all libraries and ICU support, libproj 4.8.0, gdal 1.9.2 with ogr, sqlite3 3.7.16.2 ./configure BOOST_INCLUDES=/soft/boost/1.48.0/include/ BOOST_LIBS=/soft/boost/1.48.0/lib/ PROJ_LIBS=/soft/proj/4.8.0/lib/ PROJ_INCLUDES=/soft/proj/4.8.0/include/ ICU_LIBS=/soft/ICU/4.2/lib/ ICU_INCLUDES=/soft/ICU/4.2/include/ LTDL_INCLUDES=/soft/libtool/2.4/include/ LTDL_LIBS=/soft/libtool/2.4/lib/ GDAL_CONFIG=/soft/gdal/1.9.2/bin/gdal-config SQLITE_INCLUDES=/soft/sqlite/3.7.16.2/include SQLITE_LIBS=/soft/sqlite/3.7.16.2/lib PREFIX=/soft/mapnik/2.1.0 PYTHON_PREFIX=/soft/mapnik/2.1.0 TIFF_INCLUDES=/soft/tiff/3.9.5/include/ TIFF_LIBS=/soft/tiff/3.9.5/lib The mapnik 2.1.0 did not compiled with boost 1.53.0, the one recommended (1.48.0) works well.Note also that if you want to compile mapnik 2.0.2 or mapnik 2.0.0, and you want to use an external libtool (i.e. not in /usr/lib), there is no available flags. Trick is to "create" a shortcut to the compiler, because even CUSTOM_CXXFLAGS and CUSTOM_LDFLAGS do not work for ltdl. To finish, if you want to use the ogm plugin from gdal, you must use the 2.0.0 version. The others (> 2.0.0) will give you a "Notice: dependencies not met for plugin 'osm', not building..." and will fail to build it. mkdir $HOME/bin vim $HOME/bin/gccmapnik #!/bin/bash gcc "-I/soft/libtool/2.4/include/" "-L/soft/libtool/2.4/lib/" "$@" vim $HOME/bin/g++mapnik #!/bin/bash g++ "-I/soft/libtool/2.4/include/" "-L/soft/libtool/2.4/lib/" "$@" export PATH=$HOME/bin:$PATH and now, compile with : ./configure CXX=g++mapnik CC=gccmapnik BOOST_INCLUDES=/soft/boost/1.48.0/include/ BOOST_LIBS=/soft/boost/1.48.0/lib/ PROJ_LIBS=/soft/proj/4.8.0/lib/ PROJ_INCLUDES=/soft/proj/4.8.0/include/ ICU_LIBS=/soft/ICU/4.2/lib/ ICU_INCLUDES=/soft/ICU/4.2/include/ GDAL_CONFIG=/soft/gdal/1.9.2/bin/gdal-config SQLITE_INCLUDES=/soft/sqlite/3.7.16.2/include SQLITE_LIBS=/soft/sqlite/3.7.16.2/lib PREFIX=/soft/mapnik/2.0.2 PYTHON_PREFIX=/soft/mapnik/2.0.2 \\ ====otb==== \\ OTB is a huge toolbox, difficult to compile if you do not meet the exact required versions of libraries. You have to tune some files, because Cmake installation is buggy with some tools. Here are the details of its installation. First thing is to get a functional boost, gdal and mapnik installation. You need an ICU compatible boost, mapnik 2, and gdal. You need to use gdal internal tiff because it is Bigtiff compatible. This is extremly important for OTB because Bigtiff allow >3.5Gb tiff files, which normal tiff lib does not allow. Due to this, you need to compile the whole chain with the gdal internal libs to prevent errors. Note that once the gdal lib is built, it contains symbols of zlib, libjpeg, libpng, libtiff and libgtiff.Here is the installation script I made to install OTB : # # OTB 3.16 Automatic installation script # Benoit Leveugle, ASA # # # Requirements : gcc >= 4.4.x, gmake >= 3.80, freetype2, cmake # # Softs installed : libtool 2.4.2, icu 4.2.1, sqlite 3.7.16.2 # proj 4.8.0, expat 2.1.0, gdal 1.9.2 (with internal bigtiff, geotiff, png, jpeg, zlib) # bzip2 1.0.6, boost 1.48.0 (with ICU support), mapnik 2.0.0, fltk 1.3.2, OTB 3.16 # # stop if an error occur # activate only if errors appends during the process, if not, do not activate because of possible errors in mkdir or rm # set -e tar xvzf libtool-2.4.2.tar.gz cd libtool-2.4.2 ./configure --prefix=$HOME/GeoRoot/libtool/2.4.2 --enable-shared --enable-static make make check make install export PATH=$HOME/GeoRoot/libtool/2.4.2/bin:$PATH export LD_LIBRARY_PATH=$HOME/GeoRoot/libtool/2.4.2/lib:$LD_LIBRARY_PATH cd .. # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf icu4c-4_2_1-src.tgz cd icu/source ./configure --prefix=$HOME/GeoRoot/ICU/4.2 --enable-static=yes --enable-shared=yes make make check -j 16 make install export LD_LIBRARY_PATH=$HOME/GeoRoot/ICU/4.2/lib:$LD_LIBRARY_PATH cd ../.. # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf sqlite-autoconf-3071602.tar.gz cd sqlite-autoconf-3071602 ./configure --prefix=$HOME/GeoRoot/sqlite/3.7.16.2 --enable-shared --enable-static make -j 8 make install export LD_LIBRARY_PATH=$HOME//GeoRoot/sqlite/3.7.16.2/lib:$LD_LIBRARY_PATH cd ../ # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf proj-4.8.0.tar.gz cd proj-4.8.0 ./configure --help ./configure --prefix=$HOME/GeoRoot/proj/4.8.0 --enable-shared --enable-static make -j 16 make check -j 16 make install export LD_LIBRARY_PATH=$HOME/GeoRoot/proj/4.8.0/lib:$LD_LIBRARY_PATH cd ../ # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf expat-2.1.0.tar.gz cd expat-2.1.0 ./configure --prefix=$HOME/GeoRoot/expat/2.1.0 --enable-shared --enable-static make -j 16 make check -j 8 make install export LD_LIBRARY_PATH=$HOME/GeoRoot/expat/2.1.0/lib:$LD_LIBRARY_PATH export PATH=$HOME/GeoRoot/expat/2.1.0/bin:$PATH cd ../ # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf gdal-1.9.2.tar.gz cd gdal-1.9.2 ./configure --prefix=$HOME/GeoRoot/gdal/1.9.2 --with-libtiff=internal --with-geotiff=internal --with-ogr \ --with-libz=internal --with-sqlite3=$HOME/GeoRoot/sqlite/3.7.16.2 --with-expat=$HOME/GeoRoot/expat/2.1.0 \ --with-static-proj4=$HOME/GeoRoot/proj/4.8.0/lib --with-png=internal --with-jpeg=internal CPPFLAGS=-I$HOME/GeoRoot/proj/4.8.0/include make -j 16 make install cd ../ export LD_LIBRARY_PATH=$HOME/GeoRoot/gdal/1.9.2/lib:$LD_LIBRARY_PATH # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt mkdir $HOME/GeoRoot/lib ln -s $HOME/GeoRoot/gdal/1.9.2/lib/libgdal.so $HOME/GeoRoot/lib/libz.so ln -s $HOME/GeoRoot/gdal/1.9.2/lib/libgdal.so $HOME/GeoRoot/lib/libpng.so ln -s $HOME/GeoRoot/gdal/1.9.2/lib/libgdal.so $HOME/GeoRoot/lib/libjpeg.so ln -s $HOME/GeoRoot/gdal/1.9.2/lib/libgdal.so $HOME/GeoRoot/lib/libtiff.so ln -s $HOME/GeoRoot/gdal/1.9.2/lib/libgdal.so $HOME/GeoRoot/lib/libgtiff.so export LD_LIBRARY_PATH=$HOME/GeoRoot/lib:$LD_LIBRARY_PATH # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt mkdir $HOME/GeoRoot/include cd gdal-1.9.2 cp port/* $HOME/GeoRoot/include cp frmts/gtiff/* $HOME/GeoRoot/include cp frmts/gtiff/libtiff/* $HOME/GeoRoot/include cp frmts/gtiff/libgeotiff/* $HOME/GeoRoot/include cp frmts/png/libpng/* $HOME/GeoRoot/include cp frmts/jpeg/libjpeg/* $HOME/GeoRoot/include cp frmts/zlib/* $HOME/GeoRoot/include cd ../ tar xvzf bzip2-1.0.6.tar.gz cd bzip2-1.0.6 make make install PREFIX=$HOME/GeoRoot/bzip2/1.0.6 export LD_LIBRARY_PATH=$HOME/GeoRoot//bzip2/1.0.6/lib:$LD_LIBRARY_PATH cd ../ # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf boost_1_48_0.tar.gz cd boost_1_48_0 ./bootstrap.sh --with-libraries=all --prefix=$HOME/GeoRoot/boost/1.48.0 ./b2 -a -sICU_PATH=$HOME/GeoRoot/ICU/4.2 include=$HOME/GeoRoot/ICU/4.2/include/ install --without-mpi cd ../ export LD_LIBRARY_PATH=$HOME/GeoRoot/boost/1.48.0/lib:$LD_LIBRARY_PATH # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf mapnik-2.0.0.tar.gz cd mapnik-2.0.0 mkdir $HOME/GeoRoot/bin rm $HOME/GeoRoot/bin/g* echo "#!/bin/bash" >> $HOME/GeoRoot/bin/gccmapnik echo 'gcc "-I$HOME/GeoRoot/libtool/2.4.2/include/ -I$HOME/GeoRoot/include" "-L$HOME/GeoRoot/libtool/2.4.2/lib/ -L$HOME/GeoRoot/lib" "$@" \ "-L$HOME/GeoRoot/libtool/2.4.2/lib/ -L$HOME/GeoRoot/lib"' >> gccmapnik echo "#!/bin/bash" >> $HOME/GeoRoot/bin/g++mapnik echo 'g++ "-I$HOME/GeoRoot/libtool/2.4.2/include/ -I$HOME/GeoRoot/include" "-L$HOME/GeoRoot/libtool/2.4.2/lib/ -L$HOME/GeoRoot/lib" "$@" \ "-L$HOME/GeoRoot/libtool/2.4.2/lib/ -L$HOME/GeoRoot/lib"' >> g++mapnik export PATH=$HOME/GeoRoot/bin:$PATH ./configure CXX=g++mapnik CC=gccmapnik BOOST_INCLUDES=$HOME/GeoRoot/boost/1.48.0/include/ BOOST_LIBS=$HOME/GeoRoot/boost/1.48.0/lib/ \ PROJ_LIBS=$HOME/GeoRoot/proj/4.8.0/lib/ PROJ_INCLUDES=$HOME/GeoRoot/proj/4.8.0/include/ ICU_LIBS=$HOME/GeoRoot/ICU/4.2/lib/ \ ICU_INCLUDES=$HOME/GeoRoot/ICU/4.2/include/ LTDL_INCLUDES=$HOME/GeoRoot/libtool/2.4.2/include/ LTDL_LIBS=$HOME/GeoRoot/libtool/2.4.2/lib/ \ GDAL_CONFIG=$HOME/GeoRoot/gdal/1.9.2/bin/gdal-config SQLITE_INCLUDES=$HOME/GeoRoot/sqlite/3.7.16.2/include SQLITE_LIBS=$HOME/GeoRoot/sqlite/3.7.16.2/lib \ PREFIX=$HOME/GeoRoot/mapnik/2.0.0 PYTHON_PREFIX=$HOME/GeoRoot/mapnik/2.0.0 TIFF_INCLUDES=$HOME/GeoRoot/include/ TIFF_LIBS=$HOME/GeoRoot/lib \ JPEG_INCLUDES=$HOME/GeoRoot/include/ JPEG_LIBS=$HOME/GeoRoot/lib PNG_INCLUDES=$HOME/GeoRoot/include/ PNG_LIBS=$HOME/GeoRoot/lib python scons/scons.py python scons/scons.py install cd ../ # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf fltk-1.3.2-source.tar.gz cd fltk-1.3.2 ./configure --prefix=$HOME/GeoRoot/fltk/1.3.2 --enable-shared --enable-threads --enable-static make make install export LD_LIBRARY_PATH=$HOME/GeoRoot/fltk/1.3.2/lib:$LD_LIBRARY_PATH cd ../ # Saving state echo "export PATH=$PATH" > state.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> state.txt tar xvzf OTB-3.16.tgz mkdir OTB-build cd OTB-build/ #cp ../OTB-3.16/CMake/ImportBoost.cmake.bkp ../OTB-3.16/CMake/ImportBoost.cmake; rm -Rf * rm -Rf * rm CMakeCache.txt; touch CMakeCache.txt echo "CMAKE_INSTALL_PREFIX:PATH=$HOME/GeoRoot/OTB-3.16" >> CMakeCache.txt echo "EXPAT_INCLUDE_DIR:PATH=$HOME/GeoRoot/expat/2.1.0/include" >> CMakeCache.txt echo "EXPAT_LIBRARY:FILEPATH=$HOME/GeoRoot/expat/2.1.0/lib/libexpat.so" >> CMakeCache.txt echo "FLTK_BASE_LIBRARY:FILEPATH=$HOME/GeoRoot/fltk/1.3.2/lib/libfltk.so" >> CMakeCache.txt echo "FLTK_CONFIG_SCRIPT:FILEPATH=$HOME/GeoRoot/fltk/1.3.2/bin/fltk-config" >> CMakeCache.txt echo "FLTK_DIR:PATH=$HOME/GeoRoot/fltk/1.3.2" >> CMakeCache.txt echo "FLTK_FLUID_EXECUTABLE:FILEPATH=$HOME/GeoRoot/fltk/1.3.2/bin/fluid" >> CMakeCache.txt echo "FLTK_FORMS_LIBRARY:FILEPATH=$HOME/GeoRoot/fltk/1.3.2/lib/libfltk_forms.so" >> CMakeCache.txt echo "FLTK_GL_LIBRARY:FILEPATH=$HOME/GeoRoot/fltk/1.3.2/lib/libfltk_gl.so" >> CMakeCache.txt echo "FLTK_IMAGES_LIBRARY:FILEPATH=$HOME/GeoRoot/fltk/1.3.2/lib/libfltk_images.so" >> CMakeCache.txt echo "FLTK_INCLUDE_DIR:PATH=$HOME/GeoRoot/fltk/1.3.2/include" >> CMakeCache.txt echo "FLTK_MATH_LIBRARY:FILEPATH=/usr/lib64/libm.so" >> CMakeCache.txt echo "GDAL_CONFIG:FILEPATH=$HOME/GeoRoot/gdal/1.9.2/bin/gdal-config" >> CMakeCache.txt echo "GDAL_INCLUDE_DIR:PATH=$HOME/GeoRoot/gdal/1.9.2/include" >> CMakeCache.txt echo "GDAL_LIBRARY:FILEPATH=$HOME/GeoRoot/gdal/1.9.2/lib/libgdal.so" >> CMakeCache.txt echo "GEOTIFF_INCLUDE_DIRS:PATH=$HOME/GeoRoot/include" >> CMakeCache.txt echo "JPEG_INCLUDE_DIRS:PATH=$HOME/GeoRoot/include" >> CMakeCache.txt echo "OGR_INCLUDE_DIRS:PATH=$HOME/GeoRoot/gdal/1.9.2/include" >> CMakeCache.txt echo "Boost_INCLUDE_DIR:PATH=$HOME/GeoRoot/boost/1.48.0/include" >> CMakeCache.txt echo "OTB_USE_EXTERNAL_BOOST:BOOL=ON" >> CMakeCache.txt echo "MAPNIK_INCLUDE_DIR:PATH=$HOME/GeoRoot/mapnik/2.0.0/include" >> CMakeCache.txt echo "MAPNIK_LIBRARY:FILEPATH=$HOME/GeoRoot/mapnik/2.0.0/lib64/libmapnik2.so" >> CMakeCache.txt echo "OTB_USE_MAPNIK:BOOL=ON" >> CMakeCache.txt echo "LTDL_INCLUDE_DIR:PATH=$HOME/GeoRoot/libtool/2.4.2/include" >> CMakeCache.txt echo "LTDL_LIBRARY:FILEPATH=$HOME/GeoRoot/libtool/2.4.2/lib/libltdl.so" >> CMakeCache.txt echo "ICUUC_INCLUDE_DIR:PATH=$HOME/GeoRoot/ICU/4.2/include/" >> CMakeCache.txt echo "ICUUC_LIBRARY:FILEPATH=$HOME/GeoRoot/ICU/4.2/lib/libicule.so" >> CMakeCache.txt echo "CMAKE_CXX_FLAGS:STRING=-I$HOME/GeoRoot/proj/4.8.0/include/" >> CMakeCache.txt echo "CMAKE_C_FLAGS:STRING=-I$HOME/GeoRoot/proj/4.8.0/include/" >> CMakeCache.txt # PATCH BOOST sed -i '9d' ../OTB-3.16/CMake/ImportBoost.cmake sed -i "1i\SET( GEODIR \"$HOME\")" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nMATH(EXPR Boost_SUBMINOR_VERSION \"\${Boost_VERSION} % 100\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nMATH(EXPR Boost_MINOR_VERSION \"\${Boost_VERSION} \/ 100 % 1000\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nMATH(EXPR Boost_MAJOR_VERSION \"\${Boost_VERSION} \/ 100000\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_LIB_VERSION \"1_48\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_VERSION \"104800\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_LIBRARIES_DIRS \"\${GEODIR}\/GeoRoot\/boost\/1.48.0\/lib\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_LIBRARIES \"\${GEODIR}\/GeoRoot\/boost\/1.48.0\/lib\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_INCLUDE_DIR \"\${GEODIR}\/GeoRoot\/boost\/1.48.0\/include\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_INCLUDE_DIRS \"\${GEODIR}\/GeoRoot\/boost\/1.48.0\/include\")/" ../OTB-3.16/CMake/ImportBoost.cmake sed -i "s/Import the package/Import the package\nSET ( Boost_FOUND TRUE)/" ../OTB-3.16/CMake/ImportBoost.cmake # PATCH MAPNIK # sed -i '30,48d' ../OTB-3.16/Code/Common/otbVectorDataStyle.cxx # sed -i '47d' ../OTB-3.16/Code/Common/otbVectorDataStyle.cxx # PATCH MAPNIK V2 sed -i '82d' ../OTB-3.16/CMake/ImportMapnik.cmake cmake ../OTB-3.16 make -j 16 make install # Saving final state rm state.txt echo "export PATH=$PATH" > finalstate.txt echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> finalstate.txt If you get : WARNING: Target "cmTryCompileExec" requests linking to directory "/soft/gdal/1.9.2/lib". Targets may link only to libraries. CMake is dropping the item. It means you did not specify the exact lib position, but only it's directory. Cmake is waiting for the exact path (ending with libxxxx.so).If you get : CMake Warning at CMake/ImportGdal.cmake:206 (MESSAGE): CHECK_XTIFFOPEN_SYMBOL test failed : your platform exhibits a gdal/geotiff conflict. Opening a TIF file may generate a crash. This is most probably because the gdal library you configuredembeds its own version of libgeotiff and is ABI incompatible with the system libgeotiff You might consider building GDAL yourself without using --with-hide-internal-symbols and pointing GEOTIFF_INCLUDE_DIRS to the geotiff headers included in gdal sources Call Stack (most recent call first): CMakeLists.txt:214 (INCLUDE) CMake Error at CMake/ImportFLTK.cmake:48 (MESSAGE): Cannot build OTB project without FLTK. Please set FLTK_DIR or set OTB_USE_EXTERNAL_FLTK OFF to use INTERNAL FLTK. Call Stack (most recent call first): CMakeLists.txt:219 (INCLUDE) It means you builded some part of your system with another lib than the one provided by gdal. This can be done, but this is not a good idea on the long term. You might obtain corrupted files with OTB (I got some).If you get : CMake Error at CMake/ImportBoost.cmake:18 (MESSAGE): Cannot build OTB project without boost library. Please set Boost directories or set OTB_USE_EXTERNAL_BOOST to OFF to use the INTERNAL Boost version Call Stack (most recent call first): CMakeLists.txt:222 (INCLUDE) CMake Warning at CMake/ImportBoost.cmake:14 (MESSAGE): Boost >= 1.35 is required. Disabling OTB_USE_EXTERNAL_BOOST Call Stack (most recent call first): CMakeLists.txt:222 (INCLUDE) But you have specified boost dir. It is because the cmake boost detection file is buggy. See the script I gave before, the trick to solve this is described under "Boost Patch".If you get : [ 95%] [ 95%] Building CXX object Code/Common/CMakeFiles/OTBCommon.dir/otbWriterWatcherBase.cxx.o Building CXX object Code/Common/CMakeFiles/OTBCommon.dir/otbVectorDataStyle.cxx.o In file included from /home/myusername/OTB2/OTB-3.16/Code/Common/otbVectorDataStyle.cxx:20:0: /soft/mapnik/2.1.0/include/mapnik/filter_factory.hpp:1:2: warning: #warning "filter_factory.hpp" is now called "expression.hpp" [-Wcpp] /home/myusername/OTB2/OTB-3.16/Code/Common/otbVectorDataStyle.cxx:31:9: error: ‘rule_type’ in namespace ‘mapnik’ does not name a type /home/myusername/OTB2/OTB-3.16/Code/Common/otbVectorDataStyle.cxx:32:8: error: ‘filter_ptr’ in namespace ‘mapnik’ does not name a type /home/myusername/OTB2/OTB-3.16/Code/Common/otbVectorDataStyle.cxx:36:8: error: ‘shared_ptr’ does not name a type ... See in the script given before. You have to edit the cmake file that detect mapnik, and force the mapnik version 2. (even with your version 2, it will detect 0.7 version, so you have force it). \\ ====gromacs==== \\ ./configure --prefix=/home/toto/TEST/gromacs-bin --enable-float --disable-shared --enable-mpi --program-suffix=_mpi CPPFLAGS="-I/soft/fftw/3.3.3-shared/include" LDFLAGS="-L/soft/fftw/3.3.3-shared/lib" If you are installing GROMACS using the Installation Instructions from Gromacs and encounter " can't find fftw3f library ", this is probably due to wrong precision being used. Try reconfiguring FFTW with the following settings "--enable-float" \\ ====gerris==== \\ First get Mesa (more informations here : http://gfs.sourceforge.net/wiki/index.php/Standalone_OSMesa): wget ftp://ftp.freedesktop.org/pub/mesa/7.8.2/MesaLib-7.8.2.tar.bz2 tar xjvf MesaLib-7.8.2.tar.bz2 And build it as a stand alone (prefix is non standard but Gerris needs it) and add some modifications. Use Gcc 4.8 minimum to get performances : ./configure --prefix=/softs/GERRIS/ --with-driver=osmesa --with-osmesa-bits=32 --disable-egl --enable-shared --enable-64-bit CC=gcc CXX=g++ make make install ln -s /softs/GERRIS/lib/libOSMesa32.so.7 /softs/GERRIS/lib/libOSMesa.so.7 export LD_LIBRARY_PATH=/softs/GERRIS/lib:$LD_LIBRARY_PATH Now build gts, then gerris, then gfsview. Again, prefer gcc 4.8.x minimum to get performances (Gerris is non compatible with intel 12). MPT library was used here, but this should work with openmpi also : ./configure --prefix=/soft/GERRIS/ --enable-shared --enable-static CC=gcc CFLAGS=" -march=native -mtune=native -O2 " make clean; make make check make install ./configure --enable-shared --enable-static --prefix=/soft/GERRIS/ CC=mpicc CFLAGS=" -march=native -mtune=native -O2 " FC=mpif90 FFLAGS=" -march=native -mtune=native -O2 " F77=mpif90 FCLAGS=" -march=native -mtune=native -O2 " PKG_CONFIG_PATH=/soft/GERRIS/lib/pkgconfig/ make make install ./configure --enable-shared --enable-static --prefix=/soft/GERRIS/ CC=mpicc CFLAGS=" -march=native -mtune=native -O2 " PKG_CONFIG_PATH=/soft/GERRIS/lib/pkgconfig/ make make install ====metis==== \\ Download Metis 5.0.2, extract and build it (both static and shared libraries) : wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.0.2.tar.gz tar xvzf metis-5.0.2 cd metis-5.0.2 make config cc=mpicc prefix=/soft/metis/5.0.2 make make install make config shared=1 cc=mpicc prefix=/soft/metis/5.0.2 make make install ====telemac==== \\ Python install. First, download and install Metis. (see just above)\\ Now, download and extract telemac (extract the tar.gz directly where to install the soft, here /softs/telemac), then go in configs directory : cd /softs/telemac/V6P3R2/configs/ Add the following file we call **systel.hpc.cfg** : [Configurations] configs: hpc [general] root: /softs/telemac/V6P3R2 version: v6p3 language: 2 modules: update system -dredgesim options: # mods_all: -I # sfx_zip: .gztar sfx_lib: .a sfx_obj: .o sfx_mod: .mod sfx_exe: # val_root: /examples val_rank: all # _____ ___________________________________ # ____/ Redhat 6.4 + intel 14.0.2 + openmpi 1.6.5 _________________/ [hpc] # options: parallel mpi # par_cmdexec: /partel < PARTEL.PAR >> # mpi_cmdexec: /softs/intel-14.x-soft/system/openmpi/1.6.5/bin/mpiexec --hostfile /scratch/mylogin/hostfile.txt -wdir -n mpi_hosts: # cmd_obj: /softs/wrapper/mpif90 -c -O2 -DHAVE_MPI -convert big_endian cmd_lib: ar cru cmd_exe: /softs/wrapper/mpif90 -convert big_endian -lpthread -v -lm -o -L/scratch/leveugleb # incs_parallel: -I /softs/intel-14.x-soft/system/openmpi/1.6.5/include libs_partel: /softs/metis/5.0.2/lib/libmetis.a libs_all : /softs/intel-14.x-soft/system/openmpi/1.6.5/lib/libmpi.so # Note : in your configuration, /softs/wrapper/ should also be /softs/intel-14.x-soft/system/openmpi/1.6.5/bin/. The trick : to be able to run Telemac on a cluster with a job scheduler, we will pass the hostfile provided by the job scheduler directly to the mpiexec command. The hostfile will be generated in the jobscheduler script for submitting job and stored in a shared directory, here the user's scratch. (see after for the example). Now, export 2 variables, the position of the configuration file we made, and the position of the python executables of telemac : export PATH=/softs/telemac/V6P3R2/scripts/python27/:$PATH export SYSTELCFG=/softs/telemac/V6P3R2/configs/systel.hpc.cfg Then compile Telemac, can take a while. compileTELEMAC.py If everything went well, you should finally get "My work is done". Telemac is ready, now let's configure the script for job submission. In your project directory, create the file (WARNING, here the jobscheduler is LoadLeveler, adapt the script to yours) : #!/bin/sh # Script de soumission Loadleveler pour un job Intel MPI # @ job_name = TELEMAC # @ output = $(job_name).out # @ error = $(job_name).err # @ class = intel # @ account_no = myaccount # @ job_type = mpich # @ node = 1 # @ total_tasks = 8 # @ environment = COPY_ALL # @ wall_clock_limit = 00:10:10,00:10:01 # @ queue module load intel-14.0.2 openmpi-1.6.5-intel export PATH=/softs/telemac/V6P3R2/scripts/python27/:$PATH export SYSTELCFG=/softs/telemac/V6P3R2/configs/systel.hpc.cfg # Here, wa ask the jobscheduler to write host list into a file, shared by all nodes cat $LOADL_HOSTFILE > /scratch/mylogin/hostfile.txt echo "" echo "I am running on :"; hostname echo "" cd /scratch/mylogin/examples/tomawac/bottom_friction/ # Patch for libnuma (see after) ln -s /usr/lib64/libnuma.so.1 /scratch/mylogin/libnuma.so export LD_LIBRARY_PATH=/scratch/mylogin/:$LD_LIBRARY_PATH tomawac.py tom_frot_T_V5P6.cas rm /scratch/mylogin/hostfile.txt rm /scratch/mylogin/libnuma.so Note : because Telemac compile an executable before launching on calculation nodes of the cluster, I missed libnuma.so coming with a devel package (not installed on calculation nodes, for performances). This libnuma.so was only a link to /usr/lib64/libnuma.so.1 which was already installed for runtime on calculation nodes. The trick here is to create a link and the destroy it after runtime. That's all, now you can use Telemac this way, and the only interaction with the jobscheduler is the creation of the hostsfile. =====Rendering libraries===== \\ ====matplotlib==== \\ Do not use intel compiler, you may encounter errors, prefer gcc because we do not need extreme performances here. Note that if it says "cannot resolve https://..." it means your python have no ssl support, which is needed to download packages. See the installation of openssl and python above. Note also that the installer fails to install if the directory /soft/python/2.7.5-soft/matplotlib/1.3.0/lib/python2.7/site-packages is not present (you have to mkdir it yourself) and if the PYTHONPATH variable do not have this directory also. python setup.py build mkdir /soft/python/2.7.5-soft/matplotlib mkdir /soft/python/2.7.5-soft/matplotlib/1.3.0 mkdir /soft/python/2.7.5-soft/matplotlib/1.3.0/lib mkdir /soft/python/2.7.5-soft/matplotlib/1.3.0/lib/python2.7 mkdir /soft/python/2.7.5-soft/matplotlib/1.3.0/lib/python2.7/site-packages export PYTHONPATH=/soft/python/2.7.5-soft/matplotlib/1.3.0/lib/python2.7/site-packages:/$PYTHONPATH python setup.py install --prefix=/soft/python/2.7.5-soft/matplotlib/1.3.0 Test : python Python 2.7.5 (default, Sep 24 2013, 17:03:24) [GCC 4.6.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib >>> print matplotlib.__version__ 1.3.0 And you are good to go. \\ ====flex==== \\ ./configure --prefix=/soft/flex/2.5.37 CC=icc CXX=icpc If you are working on a calculator, latex packages may not be available, and you will encounter the following error : make[2]: Entering directory `$HOME/flex-2.5.37/doc' TEXINPUTS=".:$TEXINPUTS" \ MAKEINFO='/bin/sh $HOME/flex-2.5.37/missing --run makeinfo -I .' \ texi2dvi --pdf --batch flex.texi /bin/sh: texi2dvi: command not found make[2]: *** [flex.pdf] Error 127 Just by-pass it, making a false binary : mkdir $HOME/bin cd $HOME/bin vim texi2dvi.f90 Past the following text : program texi2dvi print *,"Fake Latex !!!" end program texi2dvi Save an compile : gfortran texi2dvi.f90 -o texi2dvi # Add to path : export PATH=$HOME/bin:$PATH Relaunch make, its ok now. To install, just add a fake pdf file in doc : touch $HOME/flex-2.5.37/doc/flex.pdf make install \\ ====gnuplot==== \\ To compile it, try to connect using ssh -X if you work on a remote server. The make check needs X11 display. ./configure --prefix=/soft/gnuplot-4.6.1 --with-readline=gnu make make check make install If you need to specify readline (for auto-completion) : ./configure --prefix=/soft/gnuplot-4.6.1 --with-readline=/soft/readline-6.2 \\ ====motif==== \\ http://downloads.sourceforge.net/project/motif/Motif%202.3.4%20Source%20Code/motif-2.3.4-src.tgz ./autogen.sh ./configure --prefix=/soft/motif/2.3.4 CC=gcc CFLAGS="-I/soft/xbitmaps/1.1.1/include/" If you get the error : error: X11/bitmaps/gray: No such file or directory You need to install X11 bitmaps library, and specify its position. \\ ====freetype2==== \\ http://sourceforge.net/projects/freetype/files/freetype2/2.4.11/freetype-2.4.11.tar.gz ./configure --prefix=/soft/freetype/2.4.11 make make check make install \\ ====xpdf==== \\ Needs a lot of dependencies : X11 bitmaps, Motif and FreeType2. ./configure --prefix=/soft/xpdf/3.03 --with-freetype2-library=/soft/freetype/2.4.11/lib/ --with-freetype2-includes=/soft/freetype/2.4.11/include/freetype2/ --with-Xm-library=/soft/motif/2.3.4/lib/ --with-Xm-includes=/soft/motif/2.3.4/include/ make make install If you still get this error : configure: WARNING: Couldn't find FreeType configure: WARNING: -- You will be able to compile pdftops, pdftotext, pdfinfo, pdffonts, pdfdetach, and pdfimages, but not xpdf or pdftoppm When looking inside the config.log, the error could be : /soft/freetype/2.4.11/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory In fact, freetype 2 includes are not in include, but in include/freetype2/ (see above). \\ ====X11 bitmaps==== \\ http://ftp.riken.jp/pub/X11/ftp.x.org/pub/individual/data/xbitmaps-1.1.1.tar.gz ./configure --prefix=/soft/xbitmaps/1.1.1 make make install \\ ====fltk==== \\ ./configure --prefix=/soft/fltk/1.3.2 --enable-shared --enable-threads make -j 4 make install \\ ====geotiff==== \\ ./configure --prefix=/soft/geotiff/1.4.0 --with-libtiff=/soft/tiff/4.0.3/ --with-proj=/soft/proj/4.8.0/ \\ ====tiff==== \\ ./configure --prefix=/soft/tiff/4.0.3