Open main menu

Changes

116 bytes removed ,  02:16, 28 October 2019
m
Move MXE to "See also" section.
* may miss some new dependencies;
* may install packages that are no longer octave dependencies.
 
==== The even easier way (but experimental) ====
 
The [[MXE|MXE-octave]] package provides a way to compile Octave for different platforms. Dependencies and certain flags are handled automatically.
==== The right way ====
To get [https://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html 64-bit] indexing requires all linked libraries to support 64-bit variables. You can omit most of these except BLAS which gives a fatal error. This is remedied by compiling [http://www.openblas.net/ OpenBLAS] with edits to its Makefile.rule so that BINARY=64 INTERFACE64=1.
<code> ./configure LD_LIBRARY_PATH=/opt/OpenBLAS/lib CPPFLAGS=-I/opt/OpenBLAS/include LDFLAGS=-L/opt/OpenBLAS/lib --enable-64</code>
==== Java ====
Autodetection for java should work well on Debian-based systems. A specific Java version can be specified by passing {{codeline|JAVA_HOME}} to configure, for example
./configure JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
==== HDF5 ====
The problem is that there are multiple versions of the hdf5 package. Octave was written with the serial version in mind but it is likely to work with the others (OpenMPI and Mpich). Due to the naming scheme done in Debian, it may be required to specify the location of the libraries. See bug {{bug|38928}} for details (starting with comment #19) but basically, use the following when running configure:
./configure --with-hdf5-includedir=/usr/include/hdf5/serial --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
On older versions of Debian and Ubuntu, where only one flavor of the HDF5 library could be installed at a time, you may need to build Octave against one of the MPI-enabled flavors. On these older systems, configuring Octave like this may work:
./configure CPPFLAGS="-I/usr/include/mpi -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX" == See also == * [[MXE]] -- a more customized Octave build including many self-compiled tools.
[[Category:Building]]
[[Category:Installation]]
[[Category:GNU/Linux]]