This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
guide:compiling_octave [2011/12/05 14:43] hamish [Configuration] |
guide:compiling_octave [2021/12/09 16:42] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Compiling Octave from Source ====== | + | ====== Compiling Octave |
| - | This guide is written as to try and help CHPC users who are struggling to compile the Octave version required for their codes. | + | This guide is written for the Sun Tsessbe Cluster. The reader is advise to read through the INSTALL file located in the Octave Source |
| + | export LD_LIBRARY_PATH=$HOME/ | ||
| + | export LD_LIBRARY_PATH=$HOME/ | ||
| + | export PATH=$HOME/ | ||
| + | export LDFLAGS=" | ||
| + | export CPPFLAGS=" | ||
| + | export CXXFLAGS=$CPPFLAGS | ||
| + | export F77=gfortran | ||
| - | Before you begin, make sure your bash environmental variable are set correctly, for [[quick: | + | log out and in again, |
| + | $ gcc --version | ||
| + | gcc (GCC) 4.6.2 | ||
| + | | ||
| - | Also note that for this guide, all binary and libraries | + | |
| - | $ export PATH=/opt/gridware/gcc-4.3/bin:$PATH | + | ===== Prerequisites |
| - | $ export LD_LIBRARY_PATH=/opt/gridware/gcc-4.3/lib/: | + | |
| - | $ export LD_LIBRARY_PATH=/opt/gridware/gcc-4.3/lib64/:$LD_LIBRARY_PATH | + | Before you build Octave, you some libraries |
| - | $ gcc --version | + | |
| - | | + | === LAPACK and BLAS === |
| + | |||
| + | Download the LAPACK source and extract, | ||
| + | $ cd ~/scratch | ||
| + | $ wget http://www.netlib.org/ | ||
| + | $ tar -xf lapack-3.4.0.tgz | ||
| + | | ||
| + | Setup make, | ||
| + | $ cp make.inc.example make.inc | ||
| + | $ emacs make.inc | ||
| + | # change | ||
| + | # OPTS = -O2 and, NOOPT = -O0 | ||
| + | # to | ||
| + | # OPTS = -O2 -fPIC and, NOOPT = -O0 -fPIC | ||
| + | # save (crtl-x crtl-s) and exit (crtl-x ctrl-c) | ||
| + | $ make | ||
| + | Make BLAS | ||
| + | $ cd BLAS/SRC | ||
| + | $ make | ||
| + | Make LAPACK | ||
| + | $ cd ../../ | ||
| + | $ make | ||
| + | Which should give you test results such as | ||
| + | --> | ||
| + | Processing LAPACK Testing output found in the TESTING direcory | ||
| + | SUMMARY | ||
| + | ================ | ||
| + | REAL | ||
| + | DOUBLE PRECISION 1052315 204 (0.019%) 0 (0.000%) | ||
| + | COMPLEX | ||
| + | COMPLEX16 | ||
| + | |||
| + | --> ALL PRECISIONS 3180834 268 (0.008%) 0 (0.000%) | ||
| + | |||
| + | For more information visit [[ http://www.netlib.org/ | ||
| + | |||
| + | === PCRE - Perl Compatible Regular Expressions === | ||
| + | |||
| + | From the [[http:// | ||
| + | |||
| + | === FFTW === | ||
| + | |||
| + | Refer to [[guide: | ||
| + | |||
| + | === binutils and libtools (optional) === | ||
| + | |||
| + | binutils | ||
| + | $ wget http:// | ||
| + | $ tar -xf binutils-2.22.tar.bz2 | ||
| + | $ cd binutils-2.22 | ||
| + | $ mkdir BUILD | ||
| + | $ cd BUILD | ||
| + | $ ../ | ||
| + | $ make | ||
| + | $ make -k check | ||
| + | # If all the tests are passed, install into you home directory | ||
| + | $ make install | ||
| + | |||
| + | libtools | ||
| + | $ wget http://www.mirrorservice.org/sites/ | ||
| + | $ tar -xf libtool-2.4.2.tar.gz | ||
| + | $ cd libtool-2.4.2.tar.gz | ||
| + | $ mkdir BUILD | ||
| + | $ cd BUILD | ||
| + | $ ../configure --prefix=$HOME | ||
| + | $ make | ||
| + | $ make -k check | ||
| + | # If all the tests are passed, install into you home directory | ||
| + | $ make install | ||
| + | |||
| + | If you have not already add the following line in your .bashrc file | ||
| + | export PATH=$HOME/bin:$PATH | ||
| + | then logout and login again, you should see | ||
| + | $ ld -v | ||
| + | GNU ld (GNU Binutils) 2.22 | ||
| + | |||
| + | |||
| + | === UMFPACK (optional) === | ||
| + | " | ||
| + | |||
| + | $#still to be done | ||
| + | |||
| + | |||
| + | | ||
| | | ||
| ===== Download Source ===== | ===== Download Source ===== | ||
| - | Since the ftp is blocked on the Tsessbe login node, i made use of http mirror to download octave. | + | Since the ftp is blocked on the Tsessbe login node, make use of an http mirror to download octave. |
| $ cd ~/ | $ cd ~/ | ||
| - | $ wget http:// | + | $ wget http:// |
| - | $ tar -xf octave-3.2.4.tar.bz2 | + | $ tar -xf octave-3.4.3.tar.bz2 |
| | | ||
| ===== Configuration ===== | ===== Configuration ===== | ||
| - | At the time this guide was written, the f77 compiler was broken [?]: | + | $ cd ~/ |
| - | $ f77 --help | + | |
| - | / | + | |
| - | Try `/ | + | |
| - | | + | |
| - | / | + | |
| - | / | + | |
| - | + | ||
| - | So gfortran will be used in its place, | + | |
| - | $ cd ~/ | + | |
| $ mkdir BUILD | $ mkdir BUILD | ||
| $ cd BUILD | $ cd BUILD | ||
| - | $ export F77=gfortran | + | $ ../ |
| - | $ ../ | + | $ cp ../AUTHORS ./ #this is a bug in the configuration script... |
| - | + | ||
| - | Options explained | + | |
| - | * --prefix=$HOME, configure for installation into home directory | + | |
| - | * --without-fftw3 --without-fftw3f, | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | + | ||
| - | * --without-umfpack (is the UMFPACK library available? | + | |
| After configuration is complete, alot of warning about missing librarys are given | After configuration is complete, alot of warning about missing librarys are given | ||
| Line 55: | Line 129: | ||
| * g++: Internal error: Killed (program cc1plus) | * g++: Internal error: Killed (program cc1plus) | ||
| wait a while and then make again, as the process was killed by the usage limiter which runs on the login node. If nessary try the approach shown in [[guide: | wait a while and then make again, as the process was killed by the usage limiter which runs on the login node. If nessary try the approach shown in [[guide: | ||
| + | |||
| + | ===== Check ===== | ||
| + | |||
| + | $ make check | ||
| + | |||
| + | notable failures are | ||
| + | scripts/ | ||
| + | scripts/ | ||
| + | PASS | ||
| + | |||
| + | Summary: | ||
| + | |||
| + | PASS 6829 | ||
| + | FAIL 11 | ||
| + | |||
| + | |||
| + | ===== Install ===== | ||
| + | |||
| + | $ make install | ||
| + | | ||
| + | Add the following to the end of your .bashrc file | ||
| + | |||
| + | # for Octave 3.4.3 installed in $HOME | ||
| + | export LD_LIBRARY_PATH=$HOME/ | ||
| + | | ||
| + | Log in and out, then | ||
| + | $ octave --version | ||
| + | GNU Octave, version 3.4.3 | ||
| + | Copyright (C) 2011 John W. Eaton and others. | ||