Mercurial > octave-nkf
annotate doc/interpreter/install.txi @ 9081:c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
author | Rik <rdrider0-list@yahoo.com> |
---|---|
date | Thu, 02 Apr 2009 15:25:41 -0700 |
parents | 1052a66078cf |
children | 923c7cb7f13f |
rev | line source |
---|---|
8920 | 1 @c Copyright (C) 1996, 1997, 2007, 2008, 2009 John W. Eaton |
7018 | 2 @c |
3 @c This file is part of Octave. | |
4 @c | |
5 @c Octave is free software; you can redistribute it and/or modify it | |
6 @c under the terms of the GNU General Public License as published by the | |
7 @c Free Software Foundation; either version 3 of the License, or (at | |
8 @c your option) any later version. | |
9 @c | |
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT | |
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 @c for more details. | |
14 @c | |
15 @c You should have received a copy of the GNU General Public License | |
16 @c along with Octave; see the file COPYING. If not, see | |
17 @c <http://www.gnu.org/licenses/>. | |
3294 | 18 |
7018 | 19 @c The text of this file appears in the file INSTALL in the Octave |
20 @c distribution, as well as in the Octave manual. | |
3294 | 21 |
22 @ifclear INSTALLONLY | |
4167 | 23 @node Installation |
3294 | 24 @appendix Installing Octave |
25 @end ifclear | |
26 | |
27 @ifset INSTALLONLY | |
28 @include conf.texi | |
29 | |
30 This file documents the installation of Octave. | |
31 | |
32 Octave is free software; you can redistribute it and/or modify it | |
33 under the terms of the GNU General Public License as published by the | |
34 Free Software Foundation. | |
35 | |
7144 | 36 @strong{Note:} This file is automatically generated from |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
37 @file{doc/interpreter/install.txi} in the Octave sources. To update |
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
38 the documentation make changes to the .txi source file rather than this |
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
39 derived file. |
7144 | 40 |
4167 | 41 @node Installation |
3294 | 42 @chapter Installing Octave |
43 @end ifset | |
44 | |
45 @cindex installing Octave | |
46 | |
47 Here is the procedure for installing Octave from scratch on a Unix | |
3862 | 48 system. |
3294 | 49 |
50 @itemize @bullet | |
51 @item | |
52 Run the shell script @file{configure}. This will determine the features | |
53 your system has (or doesn't have) and create a file named | |
54 @file{Makefile} from each of the files named @file{Makefile.in}. | |
55 | |
56 Here is a summary of the configure options that are most frequently used | |
57 when building Octave: | |
58 | |
59 @table @code | |
60 @item --prefix=@var{prefix} | |
61 Install Octave in subdirectories below @var{prefix}. The default value | |
62 of @var{prefix} is @file{/usr/local}. | |
63 | |
64 @item --srcdir=@var{dir} | |
65 Look for Octave sources in the directory @var{dir}. | |
66 | |
7091 | 67 @item --enable-bounds-check |
68 Enable bounds checking for indexing operators in the internal array | |
69 classes. This option is primarily used for debugging Octave. Building | |
8325
b93ac0586e4b
spelling corrections
Brian Gough<bjg@network-theory.co.uk>
parents:
7144
diff
changeset
|
70 Octave with this option has a negative impact on performance and is not |
7091 | 71 recommended for general use. |
3294 | 72 |
7091 | 73 @item --enable-64 |
74 This is an @strong{experimental} option to enable Octave to use 64-bit | |
75 integers for array dimensions and indexing on 64-bit platforms. You | |
76 probably don't want to use this option unless you know what you are | |
77 doing. | |
78 | |
79 If you use @code{--enable-64}, you must ensure that your Fortran | |
80 compiler generates code with 8 byte signed @code{INTEGER} values, and | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
81 that your @sc{blas} and @sc{lapack} libraries are compiled to use 8 byte |
7091 | 82 signed integers for array dimensions and indexing. |
3294 | 83 |
84 @item --enable-shared | |
7091 | 85 Create shared libraries (this is the default). If you are planning to |
86 use the dynamic loading features, you will probably want to use this | |
87 option. It will make your @file{.oct} files much smaller and on some | |
88 systems it may be necessary to build shared libraries in order to use | |
89 dynamically linked functions. | |
3294 | 90 |
91 You may also want to build a shared version of @code{libstdc++}, if your | |
7081 | 92 system doesn't already have one. |
3294 | 93 |
94 @item --enable-dl | |
95 Use @code{dlopen} and friends to make Octave capable of dynamically | |
7091 | 96 linking externally compiled functions (this is the default if |
97 @code{--enable-shared} is specified). This option only works on systems | |
98 that actually have these functions. If you plan on using this feature, you | |
3294 | 99 should probably also use @code{--enable-shared} to reduce the size of |
100 your @file{.oct} files. | |
101 | |
7091 | 102 @item --without-blas |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
103 Compile and use the generic @sc{blas} and @sc{lapack} versions included with |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
104 Octave. By default, configure first looks for @sc{blas} and @sc{lapack} matrix |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
105 libraries on your system, including optimized @sc{blas} implementations such |
7091 | 106 as the free ATLAS 3.0, as well as vendor-tuned libraries. (The use of |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
107 an optimized @sc{blas} will generally result in several-times faster matrix |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
108 operations.) Only use this option if your system has @sc{blas}/@sc{lapack} |
7091 | 109 libraries that cause problems for some reason. You can also use |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
110 @code{--with-blas=lib} to specify a particular @sc{blas} library |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
111 that configure doesn't check for automatically. |
7091 | 112 |
113 @item --without-ccolamd | |
114 Don't use CCOLAMD, disable some sparse matrix functionality. | |
115 | |
116 @item --without-colamd | |
117 Don't use COLAMD, disable some sparse matrix functionality. | |
118 | |
119 @item --without-curl | |
120 Don't use the cURL, disable the @code{urlread} and @code{urlwrite} | |
121 functions. | |
3294 | 122 |
7091 | 123 @item --without-cxsparse |
124 Don't use CXSPARSE, disable some sparse matrix functionality. | |
125 | |
126 @item --without-umfpack | |
127 Don't use UMFPACK, disable some sparse matrix functionality. | |
128 | |
129 @item --without-fftw | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
130 Use the included @sc{fftpack} library instead of the @sc{fftw} library. |
3294 | 131 |
7091 | 132 @item --without-glpk |
133 Don't use the GLPK library for linear programming. | |
134 | |
135 @item --without-hdf5 | |
136 Don't use the HDF5 library for reading and writing HDF5 files. | |
137 | |
138 @item --without-zlib | |
139 Don't use the zlib library, disable data file compression and support | |
140 for recent MAT file formats. | |
141 | |
142 @item --without-lapack | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
143 Compile and use the generic @sc{blas} and @sc{lapack} versions included with |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
144 Octave. By default, configure first looks for @sc{blas} and @sc{lapack} matrix |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
145 libraries on your system, including optimized @sc{blas} implementations such |
3690 | 146 as the free ATLAS 3.0, as well as vendor-tuned libraries. (The use of |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
147 an optimized @sc{blas} will generally result in several-times faster matrix |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
148 operations.) Only use this option if your system has @sc{blas}/@sc{lapack} |
3690 | 149 libraries that cause problems for some reason. You can also use |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
150 @code{--with-blas=lib} to specify a particular @sc{blas} library |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
151 that configure doesn't check for automatically. |
3690 | 152 |
8791
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
153 @item --without-framework-carbon |
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
154 Don't use framework Carbon headers, libraries and specific source code |
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
155 for compilation even if the configure test succeeds (the default value |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
156 is @code{--with-framework-carbon}). This is a platform specific configure |
8791
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
157 option for Mac systems. |
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
158 |
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
159 @item --without-framework-opengl |
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
160 Don't use framework OpenGL headers, libraries and specific source code |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
161 for compilation even if the configure test succeeds. If this option is |
8791
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
162 given then OpenGL headers and libraries in standard system locations are |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
163 tested (the default value is @code{--with-framework-opengl}). This is a |
8791
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
164 platform specific configure option for Mac systems. |
d943e26d30e2
Add documentation for configure options "--without-framework-carbon" and "--without-framework-opengl".
Thomas Treichl <Thomas.Treichl@gmx.net>
parents:
8481
diff
changeset
|
165 |
3294 | 166 @item --help |
167 Print a summary of the options recognized by the configure script. | |
168 @end table | |
169 | |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
170 See the file @file{INSTALL} for more general information about the |
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
171 command line options used by configure. That file also contains |
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
172 instructions for compiling in a directory other than where the source |
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
173 is located. |
3294 | 174 |
175 @item | |
176 Run make. | |
177 | |
178 You will need a recent version of GNU Make. Modifying Octave's | |
179 makefiles to work with other make programs is probably not worth | |
180 your time. We recommend you get and compile GNU Make instead. | |
181 | |
182 For plotting, you will need to have gnuplot installed on your system. | |
183 Gnuplot is a command-driven interactive function plotting program. | |
184 Gnuplot is copyrighted, but freely distributable. The `gnu' in gnuplot | |
185 is a coincidence---it is not related to the GNU project or the FSF in | |
186 any but the most peripheral sense. | |
187 | |
7091 | 188 To compile Octave, you will need a recent version of GNU Make. You will |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
189 also need a recent version of @code{g++} or other ANSI C++ compiler. You |
7091 | 190 will also need a Fortran 77 compiler or @code{f2c}. If you use |
191 @code{f2c}, you will need a script like @code{fort77} that works like a | |
192 normal Fortran compiler by combining @code{f2c} with your C compiler in | |
193 a single script. | |
3294 | 194 |
195 If you plan to modify the parser you will also need GNU @code{bison} and | |
196 @code{flex}. If you modify the documentation, you will need GNU | |
197 Texinfo, along with the patch for the @code{makeinfo} program that is | |
198 distributed with Octave. | |
199 | |
200 GNU Make, @code{gcc}, and @code{libstdc++}, @code{gnuplot}, | |
201 @code{bison}, @code{flex}, and Texinfo are all available from many | |
202 anonymous ftp archives. The primary site is @url{ftp.gnu.org}, but it | |
203 is often very busy. A list of sites that mirror the software on | |
204 @url{ftp.gnu.org} is available by anonymous ftp from | |
205 @url{ftp://ftp.gnu.org/pub/gnu/GNUinfo/FTP}. | |
206 | |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
207 You will need about 1 gigabyte of disk storage to work with when |
7091 | 208 building Octave from source (considerably less if you don't compile with |
209 debugging symbols). To do that, use the command | |
3294 | 210 |
211 @example | |
212 make CFLAGS=-O CXXFLAGS=-O LDFLAGS= | |
213 @end example | |
214 | |
215 @noindent | |
216 instead of just @samp{make}. | |
217 | |
218 @item | |
219 If you encounter errors while compiling Octave, first check the list of | |
220 known problems below to see if there is a workaround or solution for | |
221 your problem. If not, | |
222 @ifclear INSTALLONLY | |
223 see @ref{Trouble}, | |
224 @end ifclear | |
225 @ifset INSTALLONLY | |
226 see the file BUGS | |
227 @end ifset | |
228 for information about how to report bugs. | |
229 | |
230 @item | |
231 Once you have successfully compiled Octave, run @samp{make install}. | |
232 | |
8481
00df69d7e698
[docs] capitalize Octave consistently
Brian Gough <bjg@gnu.org>
parents:
8325
diff
changeset
|
233 This will install a copy of Octave, its libraries, and its documentation |
3294 | 234 in the destination directory. As distributed, Octave is installed in |
235 the following directories. In the table below, @var{prefix} defaults to | |
236 @file{/usr/local}, @var{version} stands for the current version number | |
237 of the interpreter, and @var{arch} is the type of computer on which | |
238 Octave is installed (for example, @samp{i586-unknown-gnu}). | |
239 | |
240 @table @file | |
241 @item @var{prefix}/bin | |
242 Octave and other binaries that people will want to run directly. | |
243 | |
244 @item @var{prefix}/lib | |
245 Libraries like libcruft.a and liboctave.a. | |
246 | |
247 @item @var{prefix}/share | |
248 Architecture-independent data files. | |
249 | |
250 @item @var{prefix}/include/octave | |
251 Include files distributed with Octave. | |
252 | |
253 @item @var{prefix}/man/man1 | |
254 Unix-style man pages describing Octave. | |
255 | |
256 @item @var{prefix}/info | |
257 Info files describing Octave. | |
258 | |
259 @item @var{prefix}/share/octave/@var{version}/m | |
260 Function files distributed with Octave. This includes the Octave | |
261 version, so that multiple versions of Octave may be installed at the | |
262 same time. | |
263 | |
264 @item @var{prefix}/lib/octave/@var{version}/exec/@var{arch} | |
265 Executables to be run by Octave rather than the user. | |
266 | |
267 @item @var{prefix}/lib/octave/@var{version}/oct/@var{arch} | |
268 Object files that will be dynamically loaded. | |
269 | |
270 @item @var{prefix}/share/octave/@var{version}/imagelib | |
271 Image files that are distributed with Octave. | |
272 @end table | |
273 @end itemize | |
274 | |
275 @menu | |
276 * Installation Problems:: | |
277 @end menu | |
278 | |
4167 | 279 @node Installation Problems |
3294 | 280 @appendixsec Installation Problems |
281 | |
282 This section contains a list of problems (and some apparent problems | |
283 that don't really mean anything is wrong) that may show up during | |
284 installation of Octave. | |
285 | |
286 @itemize @bullet | |
287 @item | |
288 On some SCO systems, @code{info} fails to compile if | |
8325
b93ac0586e4b
spelling corrections
Brian Gough<bjg@network-theory.co.uk>
parents:
7144
diff
changeset
|
289 @code{HAVE_TERMIOS_H} is defined in @file{config.h}. Simply removing |
3294 | 290 the definition from @file{info/config.h} should allow it to compile. |
291 | |
292 @item | |
293 If @code{configure} finds @code{dlopen}, @code{dlsym}, @code{dlclose}, | |
294 and @code{dlerror}, but not the header file @file{dlfcn.h}, you need to | |
295 find the source for the header file and install it in the directory | |
296 @file{usr/include}. This is reportedly a problem with Slackware 3.1. | |
297 For Linux/GNU systems, the source for @file{dlfcn.h} is in the | |
298 @code{ldso} package. | |
299 | |
300 @item | |
301 Building @file{.oct} files doesn't work. | |
302 | |
303 You should probably have a shared version of @code{libstdc++}. A patch | |
304 is needed to build shared versions of version 2.7.2 of @code{libstdc++} | |
305 on the HP-PA architecture. You can find the patch at | |
306 @url{ftp://ftp.cygnus.com/pub/g++/libg++-2.7.2-hppa-gcc-fix}. | |
307 | |
308 @item | |
3464 | 309 On some alpha systems there may be a problem with the @code{libdxml} |
310 library, resulting in floating point errors and/or segmentation faults in | |
311 the linear algebra routines called by Octave. If you encounter such | |
312 problems, then you should modify the configure script so that | |
313 @code{SPECIAL_MATH_LIB} is not set to @code{-ldxml}. | |
314 | |
315 @item | |
3294 | 316 On FreeBSD systems Octave may hang while initializing some internal |
317 constants. The fix appears to be to use | |
318 | |
319 @example | |
320 options GPL_MATH_EMULATE | |
321 @end example | |
322 | |
323 @noindent | |
324 rather than | |
325 | |
326 @example | |
327 options MATH_EMULATE | |
328 @end example | |
329 | |
330 @noindent | |
331 in the kernel configuration files (typically found in the directory | |
332 @file{/sys/i386/conf}. After making this change, you'll need to rebuild | |
333 the kernel, install it, and reboot. | |
334 | |
335 @item | |
336 If you encounter errors like | |
337 | |
6670 | 338 @example |
3294 | 339 @group |
340 passing `void (*)()' as argument 2 of | |
341 `octave_set_signal_handler(int, void (*)(int))' | |
342 @end group | |
6670 | 343 @end example |
3294 | 344 |
345 @noindent | |
346 or | |
347 | |
6670 | 348 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
349 @group |
7081 | 350 warning: ANSI C++ prohibits conversion from `(int)' |
351 to `(...)' | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
352 @end group |
6670 | 353 @end example |
3294 | 354 |
355 @noindent | |
356 while compiling @file{sighandlers.cc}, you may need to edit some files | |
357 in the @code{gcc} include subdirectory to add proper prototypes for functions | |
358 there. For example, Ultrix 4.2 needs proper declarations for the | |
359 @code{signal} function and the @code{SIG_IGN} macro in the file | |
360 @file{signal.h}. | |
361 | |
362 On some systems the @code{SIG_IGN} macro is defined to be something like | |
363 this: | |
364 | |
365 @example | |
366 #define SIG_IGN (void (*)())1 | |
367 @end example | |
368 | |
369 @noindent | |
370 when it should really be something like: | |
371 | |
372 @example | |
373 #define SIG_IGN (void (*)(int))1 | |
374 @end example | |
375 | |
376 @noindent | |
377 to match the prototype declaration for the @code{signal} function. This | |
378 change should also be made for the @code{SIG_DFL} and @code{SIG_ERR} | |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
379 symbols. It may be necessary to change the definitions in |
3294 | 380 @file{sys/signal.h} as well. |
381 | |
382 The @code{gcc} @code{fixincludes} and @code{fixproto} scripts should | |
383 probably fix these problems when @code{gcc} installs its modified set of | |
384 header files, but I don't think that's been done yet. | |
385 | |
386 @strong{You should not change the files in @file{/usr/include}}. You | |
387 can find the @code{gcc} include directory tree by running the command | |
388 | |
389 @example | |
390 gcc -print-libgcc-file-name | |
391 @end example | |
392 | |
393 @noindent | |
394 The directory of @code{gcc} include files normally begins in the same directory | |
395 that contains the file @file{libgcc.a}. | |
396 | |
397 @item | |
398 Some of the Fortran subroutines may fail to compile with older versions | |
399 of the Sun Fortran compiler. If you get errors like | |
400 | |
6670 | 401 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
402 @group |
3294 | 403 zgemm.f: |
404 zgemm: | |
405 warning: unexpected parent of complex expression subtree | |
406 zgemm.f, line 245: warning: unexpected parent of complex | |
407 expression subtree | |
408 warning: unexpected parent of complex expression subtree | |
409 zgemm.f, line 304: warning: unexpected parent of complex | |
410 expression subtree | |
411 warning: unexpected parent of complex expression subtree | |
412 zgemm.f, line 327: warning: unexpected parent of complex | |
413 expression subtree | |
414 pcc_binval: missing IR_CONV in complex op | |
415 make[2]: *** [zgemm.o] Error 1 | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
416 @end group |
6670 | 417 @end example |
3294 | 418 |
419 @noindent | |
420 when compiling the Fortran subroutines in the @file{libcruft} | |
421 subdirectory, you should either upgrade your compiler or try compiling | |
422 with optimization turned off. | |
423 | |
424 @item | |
425 On NeXT systems, if you get errors like this: | |
426 | |
427 @example | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
428 @group |
7081 | 429 /usr/tmp/cc007458.s:unknown:Undefined local |
430 symbol LBB7656 | |
431 /usr/tmp/cc007458.s:unknown:Undefined local | |
432 symbol LBE7656 | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
433 @end group |
3294 | 434 @end example |
435 | |
436 @noindent | |
437 when compiling @file{Array.cc} and @file{Matrix.cc}, try recompiling | |
438 these files without @code{-g}. | |
439 | |
440 @item | |
441 Some people have reported that calls to shell_cmd and the pager do not | |
442 work on SunOS systems. This is apparently due to having | |
443 @code{G_HAVE_SYS_WAIT} defined to be 0 instead of 1 when compiling | |
444 @code{libg++}. | |
445 | |
446 @item | |
447 On NeXT systems, linking to @file{libsys_s.a} may fail to resolve the | |
448 following functions | |
449 | |
450 @example | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
451 @group |
3294 | 452 _tcgetattr |
453 _tcsetattr | |
454 _tcflow | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
455 @end group |
3294 | 456 @end example |
457 | |
458 @noindent | |
459 which are part of @file{libposix.a}. Unfortunately, linking Octave with | |
460 @code{-posix} results in the following undefined symbols. | |
461 | |
462 @example | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
463 @group |
3294 | 464 .destructors_used |
465 .constructors_used | |
466 _objc_msgSend | |
467 _NXGetDefaultValue | |
468 _NXRegisterDefaults | |
469 .objc_class_name_NXStringTable | |
470 .objc_class_name_NXBundle | |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
471 @end group |
3294 | 472 @end example |
473 | |
474 One kluge around this problem is to extract @file{termios.o} from | |
475 @file{libposix.a}, put it in Octave's @file{src} directory, and add it | |
476 to the list of files to link together in the makefile. Suggestions for | |
477 better ways to solve this problem are welcome! | |
478 | |
479 @item | |
480 If Octave crashes immediately with a floating point exception, it is | |
481 likely that it is failing to initialize the IEEE floating point values | |
482 for infinity and NaN. | |
483 | |
484 If your system actually does support IEEE arithmetic, you should be able | |
485 to fix this problem by modifying the function @code{octave_ieee_init} in | |
486 the file @file{lo-ieee.cc} to correctly initialize Octave's internal | |
487 infinity and NaN variables. | |
488 | |
489 If your system does not support IEEE arithmetic but Octave's configure | |
490 script incorrectly determined that it does, you can work around the | |
491 problem by editing the file @file{config.h} to not define | |
492 @code{HAVE_ISINF}, @code{HAVE_FINITE}, and @code{HAVE_ISNAN}. | |
493 | |
494 In any case, please report this as a bug since it might be possible to | |
495 modify Octave's configuration script to automatically determine the | |
496 proper thing to do. | |
497 | |
7144 | 498 @item |
499 If Octave is unable to find a header file because it is installed in a | |
500 location that is not normally searched by the compiler, you can add the | |
501 directory to the include search path by specifying (for example) | |
502 @code{CPPFLAGS=-I/some/nonstandard/directory} as an argument to | |
503 @code{configure}. Other variables that can be specified this way are | |
504 @code{CFLAGS}, @code{CXXFLAGS}, @code{FFLAGS}, and @code{LDFLAGS}. | |
505 Passing them as options to the configure script also records them in the | |
506 @file{config.status} file. By default, @code{CPPFLAGS} and | |
507 @code{LDFLAGS} are empty, @code{CFLAGS} and @code{CXXFLAGS} are set to | |
508 @code{"-g -O"} and @code{FFLAGS} is set to @code{"-O"}. | |
509 | |
3294 | 510 @end itemize |