Mercurial > octave-nkf
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 |