Difference between revisions of "Building"

From Octave
Jump to navigation Jump to search
(Remove unmaintained security concerns.)
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
General information about building the Octave source for different operating systems.
 
General information about building the Octave source for different operating systems.
 +
 +
* Linux
 +
** [[Octave for Arch Linux|Arch Linux]]
 +
** [[Octave for Debian systems|Debian (and Debian-based)]]
 +
** [[Octave for RedHat Systems|RedHat (and RedHat-based)]]
 +
** [[Octave for Slackware|Slackware]]
 +
* [[Building for Macintosh platform|macOS]]
 +
* [[Octave_for_Microsoft_Windows|Windows]]
 +
** [[Building on Cygwin platform]]
 +
** [[MXE]] cross compiler
  
 
We try to keep build instructions up to date in the source tree. Please clone using [[Mercurial]] or download it to see the README.
 
We try to keep build instructions up to date in the source tree. Please clone using [[Mercurial]] or download it to see the README.
  
 
There are also instructions in the [http://www.gnu.org/software/octave/doc/interpreter/Installation.html manual].
 
There are also instructions in the [http://www.gnu.org/software/octave/doc/interpreter/Installation.html manual].
 
* [[Octave for Debian systems]].
 
* [[Octave for Arch Linux]].
 
* [[Building for Macintosh platform]]
 
* [[Building on Cygwin platform]]
 
  
 
==Dependencies==
 
==Dependencies==
Line 27: Line 32:
 
|-
 
|-
 
! Task
 
! Task
! Name
+
! Dependency
! Usage
+
! Description
 
! License / Copyright
 
! License / Copyright
 
! Version
 
! Version
! [[Debian]]
 
! [[ArchLinux]]
 
 
! Level
 
! Level
! Recent CVE ?
 
 
|-
 
|-
 
| rowspan="8"| Build tools
 
| rowspan="8"| Build tools
Line 41: Line 43:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|build-essential}}
 
| {{codeline|gcc-fortran}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/make GNU Make]
 
| [http://www.gnu.org/software/make GNU Make]
Line 50: Line 49:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|make}}
 
| {{codeline|make}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
| AWK, sed, and other Unix utilities
+
| Unix utilities: gawk, gperf, less, ncurses
 
| Miscellaneous tasks
 
| Miscellaneous tasks
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|awk}}, {{codeline|sed}}, ...
 
| {{codeline|awk}}, {{codeline|sed}}, ...
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/bison Bison]
 
| [http://www.gnu.org/software/bison Bison]
Line 68: Line 61:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|bison}}
 
| {{codeline|bison}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/flex Flex]
 
| [http://www.gnu.org/software/flex Flex]
Line 77: Line 67:
 
| The Flex project
 
| The Flex project
 
|
 
|
| {{codeline|flex}}
 
| {{codeline|flex}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/autoconf Autoconf]
 
| [http://www.gnu.org/software/autoconf Autoconf]
Line 86: Line 73:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|autoconf}}
 
| {{codeline|autoconf}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/automake Automake]
 
| [http://www.gnu.org/software/automake Automake]
Line 95: Line 79:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|automake}}
 
| {{codeline|automake}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/libtool Libtool]
 
| [http://www.gnu.org/software/libtool Libtool]
Line 104: Line 85:
 
| Free Software Foundation
 
| Free Software Foundation
 
|
 
|
| {{codeline|libtool}}
 
| {{codeline|libtool}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| rowspan="9"| Documentation tools
 
| rowspan="9"| Documentation tools
 
| [http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm epstool]
 
| [http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm epstool]
 
| Epstool is a utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps.
 
| Epstool is a utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps.
| GPL
+
| GNU GPL v2.0
 
|
 
|
| {{codeline|epstool}}
 
| {{codeline|epstool}} (AUR)
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://sourceforge.net/projects/ftgl/ FTGL]
 
| [http://sourceforge.net/projects/ftgl/ FTGL]
 
| FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications.
 
| FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications.
| MIT/X
+
| Provided "as is" -- various authors
 
|
 
|
| {{codeline|libftgl-dev}}
 
| {{codeline|ftgl}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://geuz.org/gl2ps/ GL2PS]
 
| [http://geuz.org/gl2ps/ GL2PS]
 
| GL2PS is a C library providing high quality vector output for any OpenGL application.
 
| GL2PS is a C library providing high quality vector output for any OpenGL application.
| LGPL
+
| GNU LGPL v2.0
 
|
 
|
| {{codeline|libgl2ps-dev}}
 
| {{codeline|gl2ps}} (AUR)
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://www.pstoedit.net/ pstoedit]
 
| [http://www.pstoedit.net/ pstoedit]
 
| Translates PostScript and PDF graphics into other vector formats.
 
| Translates PostScript and PDF graphics into other vector formats.
| GPL
+
| GNU GPL v2.0
 
|
 
|
| {{codeline|pstoedit}}
 
| {{codeline|pstoedit}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://www.nongnu.org/texi2html/ Texi2HTML]
 
| [http://www.nongnu.org/texi2html/ Texi2HTML]
 
| Perl script which converts Texinfo source files to HTML output.
 
| Perl script which converts Texinfo source files to HTML output.
| GPLv3
+
| GNU GPL v3.0
 
|
 
|
| {{codeline|texi2html}}
 
| {{codeline|texi2html}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [https://www.gnu.org/software/texinfo/ Texinfo]
 
| [https://www.gnu.org/software/texinfo/ Texinfo]
 
| Documentation system that uses a single source to produce both on-line information and printed output.
 
| Documentation system that uses a single source to produce both on-line information and printed output.
| Free - proper attribution request
+
| GNU GPL v3.0
 
|
 
|
| {{codeline|texinfo}}
 
| {{codeline|texinfo}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| TeX Live generic
 
| TeX Live generic
 
| Mixed bag of generic macro packages and fonts.
 
| Mixed bag of generic macro packages and fonts.
| Free - proper attribution request
+
| Freely redistributable as defined by the Free Software Foundation
 
|
 
|
| {{codeline|texlive-generic-recommended}}
 
| {{codeline|texlive-genericextra}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [https://www.tug.org/texlive/ TeX Live]
 
| [https://www.tug.org/texlive/ TeX Live]
 
| Compiler for TeX doumentation.
 
| Compiler for TeX doumentation.
| Free - proper attribution request
+
| Freely redistributable as defined by the Free Software Foundation
 
|
 
|
| {{codeline|texlive-latex-base}}
 
| {{codeline|texlive-core}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| [http://www.ctan.org/pkg/transfig transfig]
 
| [http://www.ctan.org/pkg/transfig transfig]
Line 186: Line 140:
 
| BSD Style Li­cense
 
| BSD Style Li­cense
 
|
 
|
| {{codeline|transfig}}
 
| {{codeline|transfig}}
 
 
| style="background:green" |  
 
| style="background:green" |  
| none
 
 
|-
 
|-
 
| rowspan="19"| External tools
 
| rowspan="19"| External tools
Line 196: Line 147:
 
| Free - proper attribution request
 
| Free - proper attribution request
 
|
 
|
| {{codeline|libatlas-base-dev}}
 
| {{codeline|atlas-lapack}} (AUR)
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.netlib.org/lapack LAPACK]
 
| [http://www.netlib.org/lapack LAPACK]
Line 205: Line 153:
 
| Free - proper attribution request
 
| Free - proper attribution request
 
|
 
|
| {{codeline|liblapack-dev}}
 
| {{codeline|atlas-lapack}} (AUR)
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.pcre.org PCRE]
 
| [http://www.pcre.org PCRE]
Line 214: Line 159:
 
| Free
 
| Free
 
|
 
|
| {{codeline|libpcre3-dev}}
 
| {{codeline|pcre}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/s/readline GNU Readline]
 
| [http://www.gnu.org/s/readline GNU Readline]
Line 223: Line 165:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|libreadline-dev}}
 
| {{codeline|readline}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| [http://forge.scilab.org/index.php/p/arpack-ng ARPACK]
 
| [http://forge.scilab.org/index.php/p/arpack-ng ARPACK]
Line 232: Line 171:
 
| BSD like - various authors
 
| BSD like - various authors
 
|
 
|
| {{codeline|libarpack2-dev}}
 
| {{codeline|arpack}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://curl.haxx.se cURL]
 
| [http://curl.haxx.se cURL]
Line 241: Line 177:
 
| Free Software -- main author
 
| Free Software -- main author
 
| > 7.32.00
 
| > 7.32.00
| {{codeline|curl}}
 
| {{codeline|curl}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| [http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4545 CVE-2013-4545]
 
 
|-
 
|-
 
| [http://www.fftw.org FFTW3]
 
| [http://www.fftw.org FFTW3]
Line 250: Line 183:
 
| MIT -- GNU GPL v2.0
 
| MIT -- GNU GPL v2.0
 
|
 
|
| {{codeline|libfftw3-dev}}
 
| {{codeline|fftw}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.fltk.org FLTK]
 
| [http://www.fltk.org FLTK]
Line 259: Line 189:
 
| GNU GPL v2.0 with static linking exception
 
| GNU GPL v2.0 with static linking exception
 
|
 
|
| {{codeline|libfltk1.3-dev}}
 
| {{codeline|fltk}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.freedesktop.org/wiki/Software/fontconfig fontconfig]
 
| [http://www.freedesktop.org/wiki/Software/fontconfig fontconfig]
Line 268: Line 195:
 
| Provided "as is" -- various authors
 
| Provided "as is" -- various authors
 
|
 
|
| {{codeline|fontconfig}}
 
| {{codeline|fontconfig}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.freetype.org FreeType]
 
| [http://www.freetype.org FreeType]
Line 277: Line 201:
 
| compatible with GNU GPL v3.0
 
| compatible with GNU GPL v3.0
 
|
 
|
| {{codeline|libfreetype6-dev}}
 
| {{codeline|freetype2}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.gnu.org/software/glpk GLPK]
 
| [http://www.gnu.org/software/glpk GLPK]
Line 286: Line 207:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|libglpk-dev}}
 
| {{codeline|glpk}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| [http://www.gnuplot.info gnuplot]
 
| [http://www.gnuplot.info gnuplot]
Line 295: Line 213:
 
| Provided "as is" -- various authors
 
| Provided "as is" -- various authors
 
|
 
|
| {{codeline|gnuplot}}
 
| {{codeline|gnuplot}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.graphicsmagick.org GraphicsMagick++]
 
| [http://www.graphicsmagick.org GraphicsMagick++]
Line 304: Line 219:
 
| various -- integrates many third-party libs
 
| various -- integrates many third-party libs
 
| > 1.3.18
 
| > 1.3.18
| {{codeline|libgraphicsmagick++1-dev}}
 
| {{codeline|graphicsmagick}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| [http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4589 CVE-2013-4589]
 
 
|-
 
|-
 
| [http://www.hdfgroup.org/HDF5 HDF5]
 
| [http://www.hdfgroup.org/HDF5 HDF5]
Line 313: Line 225:
 
| BSD - like
 
| BSD - like
 
|
 
|
| {{codeline|libhdf5-dev}}
 
| {{codeline|hdf5}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| [http://www.opengl.org OpenGL]
 
| [http://www.opengl.org OpenGL]
Line 322: Line 231:
 
| Free specs -- license is driver dependent
 
| Free specs -- license is driver dependent
 
|
 
|
| {{codeline|libgl-dev}}
 
| {{codeline|mesa-libgl}}
 
 
| style="background:red" |  
 
| style="background:red" |  
| none
 
 
|-
 
|-
 
| [http://www.qhull.org Qhull]
 
| [http://www.qhull.org Qhull]
Line 331: Line 237:
 
| Free software -- specific
 
| Free software -- specific
 
|
 
|
| {{codeline|libqhull-dev}}
 
| {{codeline|qhull}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| [http://sourceforge.net/projects/qrupdate QRUPDATE]
 
| [http://sourceforge.net/projects/qrupdate QRUPDATE]
Line 340: Line 243:
 
| GNU GPL v3.0
 
| GNU GPL v3.0
 
|
 
|
| {{codeline|libqrupdate-dev}}
 
| {{codeline|qrupdate}} (AUR)
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| [http://www.cise.ufl.edu/research/sparse/SuiteSparse SuiteSparse]
 
| [http://www.cise.ufl.edu/research/sparse/SuiteSparse SuiteSparse]
Line 349: Line 249:
 
| Main author
 
| Main author
 
|
 
|
| {{codeline|libsuitesparse-dev}}
 
| {{codeline|suitesparse}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|-
 
|-
 
| [http://zlib.net zlib]
 
| [http://zlib.net zlib]
Line 358: Line 255:
 
| Provided "as is" -- various authors
 
| Provided "as is" -- various authors
 
|
 
|
| {{codeline|zlib1g-dev}}
 
| {{codeline|zlib}}
 
 
| style="background:yellow" |  
 
| style="background:yellow" |  
| none
 
 
|}
 
|}
 
 
==Security concerns==
 
* CVE-2013-4545 (cURL): solved by version 7.34.00. Upgrade dependencies.
 
* CVE-2013-4589 (graphicsmagick): the actual version (1.3.18, released March 9th, 2013), is affected. Awaiting a new release.
 
 
   
 
   
 
[[Category:Building]]
 
[[Category:Building]]

Latest revision as of 02:53, 23 October 2019

General information about building the Octave source for different operating systems.

We try to keep build instructions up to date in the source tree. Please clone using Mercurial or download it to see the README.

There are also instructions in the manual.

Dependencies[edit]

Critical  
Recommended  
Not critical  
Task Dependency Description License / Copyright Version Level
Build tools C++, C, and Fortran compilers Compiling the source code GNU GPL v3.0  
GNU Make Makefile processor GNU GPL v3.0  
Unix utilities: gawk, gperf, less, ncurses Miscellaneous tasks GNU GPL v3.0  
Bison Parser generator GNU GPL v3.0  
Flex Lexical analyzer The Flex project  
Autoconf Software configuration GNU GPL v3.0  
Automake Makefile generator GNU GPL v3.0  
Libtool Dependency of automake Free Software Foundation  
Documentation tools epstool Epstool is a utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps. GNU GPL v2.0  
FTGL FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications. Provided "as is" -- various authors  
GL2PS GL2PS is a C library providing high quality vector output for any OpenGL application. GNU LGPL v2.0  
pstoedit Translates PostScript and PDF graphics into other vector formats. GNU GPL v2.0  
Texi2HTML Perl script which converts Texinfo source files to HTML output. GNU GPL v3.0  
Texinfo Documentation system that uses a single source to produce both on-line information and printed output. GNU GPL v3.0  
TeX Live generic Mixed bag of generic macro packages and fonts. Freely redistributable as defined by the Free Software Foundation  
TeX Live Compiler for TeX doumentation. Freely redistributable as defined by the Free Software Foundation  
transfig Tans­lates fig­ures gen­er­ated by xfig to a large va­ri­ety of for­mats. BSD Style Li­cense  
External tools BLAS Basic Linear Algebra Subroutine library Free - proper attribution request  
LAPACK Linear Algebra Package Free - proper attribution request  
PCRE Perl Compatible Regular Expression library Free  
GNU Readline Command-line editing library GNU GPL v3.0  
ARPACK Solution of large-scale eigenvalue problems BSD like - various authors  
cURL Library for transferring data with URL syntax Free Software -- main author > 7.32.00  
FFTW3 Library for computing discrete Fourier transforms MIT -- GNU GPL v2.0  
FLTK Portable GUI toolkit GNU GPL v2.0 with static linking exception  
fontconfig Library for configuring and customizing font access Provided "as is" -- various authors  
FreeType Portable font engine compatible with GNU GPL v3.0  
GLPK GNU Linear Programming Kit GNU GPL v3.0  
gnuplot Interactive graphics program Provided "as is" -- various authors  
GraphicsMagick++ Image processing library various -- integrates many third-party libs > 1.3.18  
HDF5 Library for manipulating portable data files BSD - like  
OpenGL API for portable 2D and 3D graphics Free specs -- license is driver dependent  
Qhull Computational geometry library Free software -- specific  
QRUPDATE QR factorization updating library GNU GPL v3.0  
SuiteSparse Sparse matrix factorization library Main author  
zlib Data compression library Provided "as is" -- various authors