comparison 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
comparison
equal deleted inserted replaced
14149:f1ff06a1d73a 14150:87f06b9990bb
42 @end ifset 42 @end ifset
43 43
44 @cindex installing Octave 44 @cindex installing Octave
45 45
46 The procedure for installing Octave from source on a Unix-like system is 46 The procedure for installing Octave from source on a Unix-like system is
47 described below. Building on other platforms will follow similar steps. 47 described below. Building on other platforms will follow similar
48 steps. Note that this description applies to Octave releases. Building
49 the development sources from the Mercurial archive requires additional
50 steps as described in @ref{Building the Development Sources}.
51
52 @menu
53 * Build Dependencies::
54 * Running Configure and Make::
55 * Compiling Octave with 64-bit Indexing::
56 * Installation Problems::
57 @end menu
58
59 @node Build Dependencies
60 @section Build Dependencies
61
62 Octave is a fairly large program with many build dependencies. You may
63 be able to find pre-packaged versions of the dependencies distributed as
64 part of your system, or you may have to build some or all of them
65 yourself.
66
67 The following tools are required:
68
69 @table @asis
70 @item C++, C, and Fortran compilers
71 The Octave sources are primarily written in C++, but some portions are
72 also written in C and Fortran. The Octave sources are intended to be
73 portable. Recent versions of the GNU compiler collection (GCC) should
74 work (@url{http://gcc.gnu.org}). If you use GCC, you should avoid
75 mixing versions. For example, be sure that you are not using the
76 obsolete @code{g77} Fortran compiler with modern versions of @code{gcc}
77 and @code{g++}.
78
79 @item GNU Make
80 Tool for building software (@url{http://www.gnu.org/software/make}).
81 Octave's build system requires GNU Make. Other versions of Make will
82 not work. Fortunately, GNU Make is highly portable and easy to install.
83
84 @item AWK, sed, and other Unix utilities
85 Basic Unix system utilities are required for building Octave. All will
86 be available with any modern Unix system and also on Windows with either
87 Cygwin or MinGW and MSYS.
88 @end table
89
90 Additionally, the following tools may be needed:
91
92 @table @asis
93 @item Bison
94 Parser generator (@url{http://www.gnu.org/software/bison}).
95 You will need Bison if you modify the @code{oct-parse.yy} source file or
96 if you delete the files that are generated from it.
97
98 @item Flex
99 Lexer analyzer (@url{http://www.gnu.org/software/flex}). You will need
100 Flex if you modify the @code{lex.ll} source file or if you delete the
101 files that are generated from it.
102
103 @item Autoconf
104 Package for software configuration
105 (@url{http://www.gnu.org/software/autoconf}). Autoconf is required if
106 you modify Octave's @code{configure.ac} file or other files that it
107 requires.
108
109 @item Automake
110 Package for Makefile generation
111 (@url{http://www.gnu.org/software/automake}). Automake is required if
112 you modify Octave's @code{Makefile.am} files or other files that they
113 depend on.
114
115 @item Libtool
116 Package for building software libraries
117 (@url{http://www.gnu.org/software/libtool}). Libtool is required by
118 Automake.
119 @end table
120
121 The following external packages are required:
122
123 @table @asis
124 @item PCRE
125 The Perl Compatible Reular Expression library (http://www.pcre.org).
126 @item BLAS
127 Basic Linear Algebra Subroutine library
128 (@url{http://www.netlib.org/blas}). Accelerated BLAS libraries such as
129 ATLAS (@url{http://math-atlas.sourceforge.net}) are recommeded for
130 better performance.
131 @item LAPACK
132 Linear Algebra Package (@url{http://www.netlib.org/lapack}).
133 @end table
134
135 The following external package is optional but strongly recommended:
136
137 @table @asis
138 @item GNU Readline
139 Command-line editing library (@url{www.gnu.org/s/readline}).
140 @end table
141
142 If you wish to build Octave without GNU readline installed, you must use
143 the @code{--disable-readline} option when running the configure script.
144
145 The following external software packages are optional but recommended:
146
147 @table @asis
148 @item ARPACK
149 Library for the solution of large-scale eigenvalue problems
150 (@url{http://forge.scilab.org/index.php/p/arpack-ng}). ARPACK is
151 required to provide the functions @code{eigs} and @code{svds}.
152
153 @item cURL
154 Library for transferring data with URL syntax
155 (@url{http://curl.haxx.se}). cURL is required to provide the
156 @code{urlread} and @code{urlwrite} functions and the @code{ftp} class.
157
158 @item FFTW3
159 Library for computing discrete Fourier transforms
160 (@url{http://www.fftw.org}). FFTW3 is used to provide better
161 performance for functions that compute discrete Fourier transforms
162 (@code{fft}, @code{ifft}, @code{fft2}, etc.)
163
164 @item FLTK
165 Portable GUI toolkit (@url{http://www.fltk.org}). FLTK is currently
166 used to provide windows for Octave's OpenGL-based graphics functions.
167
168 @item fontconfig
169 Library for configuring and customizing font access
170 (@url{http://www.freedesktop.org/wiki/Software/fontconfig}). Fontconfig
171 is used to manage fonts for Octave's OpenGL-based graphics functions.
172
173 @item FreeType
174 Portable font engine (@url{http://www.freetype.org}). FreeType is used
175 to peform font rendering Octave's OpenGL-based graphics functions.
176
177 @item GLPK
178 GNU Linear Programming Kit (@url{http://www.gnu.org/software/glpk}).
179 GPLK is required for the function @code{glpk}.
180
181 @item gnuplot
182 Interactive graphics program (@url{http://www.gnuplot.info}). gnuplot
183 is currently the default graphics renderer for Octave.
184
185 @item GraphicsMagick++
186 Image processing library (@url{http://www.graphicsmagick.org}).
187 GraphicsMagick++ is used to provide the @code{imread} and @code{imwrite}
188 functions.
189
190 @item HDF5
191 Library for manipulating portable data files
192 (@url{http://www.hdfgroup.org/HDF5}). HDF5 is required for Octave's
193 @code{save} and @code{load} commands to write and read HDF data files.
194
195 @item OpenGL
196 API for portable 2D and 3D graphics (@url{http://www.opengl.org}). An
197 OpenGL implementation is required to provide Octave's OpenGL-based
198 graphics functions. Octave's OpenGL-based graphics functions usually
199 outperform the gnuplot-based graphics functions because plot data can be
200 rendered directly instead of sending data and commands to gnuplot for
201 interpretation and rendering.
202
203 @item Qhull
204 Computational geometry library (@url{http://www.qhull.org}). Qhull is
205 required to provide the functions @code{convhull}, @code{convhulln},
206 @code{delaunay}, @code{delaunay3}, @code{delaunayn}, @code{voronoi}, and
207 @code{voronoin}.
208
209 @item QRUPDATE
210 QR factorization updating library
211 (@url{http://sourceforge.net/projects/qrupdate}). QRUPDATE is used to
212 provide improved performance for the functions @code{qrdelete},
213 @code{qrinsert}, @code{qrshift}, and @code{qrupdate}.
214
215 @item SuiteSparse
216 Sparse matrix factorization library
217 (@url{http://www.cise.ufl.edu/research/sparse/SuiteSparse}).
218 SuiteSparse is required to provide sparse matrix factorizations and
219 solution of linear equations for sparse systems.
220
221 @item zlib
222 Data compression library (@url{http://zlib.net}). The zlib library is
223 required for Octave's @code{load} and @code{save} commands to handle
224 compressed data, including @sc{Matlab} v5 MAT files.
225 @end table
226
227 @node Running Configure and Make
228 @section Running Configure and Make
48 229
49 @itemize @bullet 230 @itemize @bullet
50 @item 231 @item
51 Run the shell script @file{configure}. This will determine the features 232 Run the shell script @file{configure}. This will determine the features
52 your system has (or doesn't have) and create a file named 233 your system has (or doesn't have) and create a file named
312 @item @var{prefix}/share/octave/@var{version}/imagelib 493 @item @var{prefix}/share/octave/@var{version}/imagelib
313 Image files that are distributed with Octave. 494 Image files that are distributed with Octave.
314 @end table 495 @end table
315 @end itemize 496 @end itemize
316 497
317 @menu
318 * Compiling Octave with 64-bit Indexing::
319 * Installation Problems::
320 @end menu
321
322 @node Compiling Octave with 64-bit Indexing 498 @node Compiling Octave with 64-bit Indexing
323 @appendixsec Compiling Octave with 64-bit Indexing 499 @section Compiling Octave with 64-bit Indexing
324 500
325 Note: the following only applies to systems that have 64-bit pointers. 501 Note: the following only applies to systems that have 64-bit pointers.
326 Configuring Octave with @option{--enable-64} cannot magically make a 502 Configuring Octave with @option{--enable-64} cannot magically make a
327 32-bit system have a 64-bit address space. 503 32-bit system have a 64-bit address space.
328 504
583 @end itemize 759 @end itemize
584 760
585 @end itemize 761 @end itemize
586 762
587 @node Installation Problems 763 @node Installation Problems
588 @appendixsec Installation Problems 764 @section Installation Problems
589 765
590 This section contains a list of problems (and some apparent problems 766 This section contains a list of problems (and some apparent problems
591 that don't really mean anything is wrong) that may show up during 767 that don't really mean anything is wrong) that may show up during
592 installation of Octave. 768 installation of Octave.
593 769