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