Mercurial > hg > octave-lyh
diff doc/interpreter/install.txi @ 14150:87f06b9990bb stable
doc: improve documentation for building Octave
* install.txi, contrib.txi: Improve documentation for building Octave,
including listing dependencies.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 05 Jan 2012 17:34:30 -0500 |
parents | 72c96de7a403 |
children | 2ced2f59f523 |
line wrap: on
line diff
--- a/doc/interpreter/install.txi +++ b/doc/interpreter/install.txi @@ -44,7 +44,188 @@ @cindex installing Octave The procedure for installing Octave from source on a Unix-like system is -described below. Building on other platforms will follow similar steps. +described below. Building on other platforms will follow similar +steps. Note that this description applies to Octave releases. Building +the development sources from the Mercurial archive requires additional +steps as described in @ref{Building the Development Sources}. + +@menu +* Build Dependencies:: +* Running Configure and Make:: +* Compiling Octave with 64-bit Indexing:: +* Installation Problems:: +@end menu + +@node Build Dependencies +@section Build Dependencies + +Octave is a fairly large program with many build dependencies. You may +be able to find pre-packaged versions of the dependencies distributed as +part of your system, or you may have to build some or all of them +yourself. + +The following tools are required: + +@table @asis +@item C++, C, and Fortran compilers +The Octave sources are primarily written in C++, but some portions are +also written in C and Fortran. The Octave sources are intended to be +portable. Recent versions of the GNU compiler collection (GCC) should +work (@url{http://gcc.gnu.org}). If you use GCC, you should avoid +mixing versions. For example, be sure that you are not using the +obsolete @code{g77} Fortran compiler with modern versions of @code{gcc} +and @code{g++}. + +@item GNU Make +Tool for building software (@url{http://www.gnu.org/software/make}). +Octave's build system requires GNU Make. Other versions of Make will +not work. Fortunately, GNU Make is highly portable and easy to install. + +@item AWK, sed, and other Unix utilities +Basic Unix system utilities are required for building Octave. All will +be available with any modern Unix system and also on Windows with either +Cygwin or MinGW and MSYS. +@end table + +Additionally, the following tools may be needed: + +@table @asis +@item Bison +Parser generator (@url{http://www.gnu.org/software/bison}). +You will need Bison if you modify the @code{oct-parse.yy} source file or +if you delete the files that are generated from it. + +@item Flex +Lexer analyzer (@url{http://www.gnu.org/software/flex}). You will need +Flex if you modify the @code{lex.ll} source file or if you delete the +files that are generated from it. + +@item Autoconf +Package for software configuration +(@url{http://www.gnu.org/software/autoconf}). Autoconf is required if +you modify Octave's @code{configure.ac} file or other files that it +requires. + +@item Automake +Package for Makefile generation +(@url{http://www.gnu.org/software/automake}). Automake is required if +you modify Octave's @code{Makefile.am} files or other files that they +depend on. + +@item Libtool +Package for building software libraries +(@url{http://www.gnu.org/software/libtool}). Libtool is required by +Automake. +@end table + +The following external packages are required: + +@table @asis +@item PCRE +The Perl Compatible Reular Expression library (http://www.pcre.org). +@item BLAS +Basic Linear Algebra Subroutine library +(@url{http://www.netlib.org/blas}). Accelerated BLAS libraries such as +ATLAS (@url{http://math-atlas.sourceforge.net}) are recommeded for +better performance. +@item LAPACK +Linear Algebra Package (@url{http://www.netlib.org/lapack}). +@end table + +The following external package is optional but strongly recommended: + +@table @asis +@item GNU Readline +Command-line editing library (@url{www.gnu.org/s/readline}). +@end table + +If you wish to build Octave without GNU readline installed, you must use +the @code{--disable-readline} option when running the configure script. + +The following external software packages are optional but recommended: + +@table @asis +@item ARPACK +Library for the solution of large-scale eigenvalue problems +(@url{http://forge.scilab.org/index.php/p/arpack-ng}). ARPACK is +required to provide the functions @code{eigs} and @code{svds}. + +@item cURL +Library for transferring data with URL syntax +(@url{http://curl.haxx.se}). cURL is required to provide the +@code{urlread} and @code{urlwrite} functions and the @code{ftp} class. + +@item FFTW3 +Library for computing discrete Fourier transforms +(@url{http://www.fftw.org}). FFTW3 is used to provide better +performance for functions that compute discrete Fourier transforms +(@code{fft}, @code{ifft}, @code{fft2}, etc.) + +@item FLTK +Portable GUI toolkit (@url{http://www.fltk.org}). FLTK is currently +used to provide windows for Octave's OpenGL-based graphics functions. + +@item fontconfig +Library for configuring and customizing font access +(@url{http://www.freedesktop.org/wiki/Software/fontconfig}). Fontconfig +is used to manage fonts for Octave's OpenGL-based graphics functions. + +@item FreeType +Portable font engine (@url{http://www.freetype.org}). FreeType is used +to peform font rendering Octave's OpenGL-based graphics functions. + +@item GLPK +GNU Linear Programming Kit (@url{http://www.gnu.org/software/glpk}). +GPLK is required for the function @code{glpk}. + +@item gnuplot +Interactive graphics program (@url{http://www.gnuplot.info}). gnuplot +is currently the default graphics renderer for Octave. + +@item GraphicsMagick++ +Image processing library (@url{http://www.graphicsmagick.org}). +GraphicsMagick++ is used to provide the @code{imread} and @code{imwrite} +functions. + +@item HDF5 +Library for manipulating portable data files +(@url{http://www.hdfgroup.org/HDF5}). HDF5 is required for Octave's +@code{save} and @code{load} commands to write and read HDF data files. + +@item OpenGL +API for portable 2D and 3D graphics (@url{http://www.opengl.org}). An +OpenGL implementation is required to provide Octave's OpenGL-based +graphics functions. Octave's OpenGL-based graphics functions usually +outperform the gnuplot-based graphics functions because plot data can be +rendered directly instead of sending data and commands to gnuplot for +interpretation and rendering. + +@item Qhull +Computational geometry library (@url{http://www.qhull.org}). Qhull is +required to provide the functions @code{convhull}, @code{convhulln}, +@code{delaunay}, @code{delaunay3}, @code{delaunayn}, @code{voronoi}, and +@code{voronoin}. + +@item QRUPDATE +QR factorization updating library +(@url{http://sourceforge.net/projects/qrupdate}). QRUPDATE is used to +provide improved performance for the functions @code{qrdelete}, +@code{qrinsert}, @code{qrshift}, and @code{qrupdate}. + +@item SuiteSparse +Sparse matrix factorization library +(@url{http://www.cise.ufl.edu/research/sparse/SuiteSparse}). +SuiteSparse is required to provide sparse matrix factorizations and +solution of linear equations for sparse systems. + +@item zlib +Data compression library (@url{http://zlib.net}). The zlib library is +required for Octave's @code{load} and @code{save} commands to handle +compressed data, including @sc{Matlab} v5 MAT files. +@end table + +@node Running Configure and Make +@section Running Configure and Make @itemize @bullet @item @@ -314,13 +495,8 @@ @end table @end itemize -@menu -* Compiling Octave with 64-bit Indexing:: -* Installation Problems:: -@end menu - @node Compiling Octave with 64-bit Indexing -@appendixsec Compiling Octave with 64-bit Indexing +@section Compiling Octave with 64-bit Indexing Note: the following only applies to systems that have 64-bit pointers. Configuring Octave with @option{--enable-64} cannot magically make a @@ -585,7 +761,7 @@ @end itemize @node Installation Problems -@appendixsec Installation Problems +@section Installation Problems This section contains a list of problems (and some apparent problems that don't really mean anything is wrong) that may show up during