Here is the procedure for installing Octave from scratch on a Unix system. For instructions on how to install the binary distributions of Octave, see section Binary Distributions.
make CFLAGS=-O CXXFLAGS=-O LDFLAGS=instead of just `make'.
This section contains a list of problems (and some apparent problems that don't really mean anything is wrong) that may show up during installation of Octave.
infofails to compile if
HAVE_TERMIOS_His defined int `config.h'. Simply removing the definition from `info/config.h' should allow it to compile.
dlerror, but not the header file `dlfcn.h', you need to find the source for the header file and install it in the directory `usr/include'. This is reportedly a problem with Slackware 3.1. For Linux/GNU systems, the source for `dlfcn.h' is in the `ldso' package.
passing `void (*)()' as argument 2 of `octave_set_signal_handler(int, void (*)(int))'or
warning: ANSI C++ prohibits conversion from `(int)' to `(...)'while compiling `sighandlers.cc', you may need to edit some files in the gcc include subdirectory to add proper prototypes for functions there. For example, Ultrix 4.2 needs proper declarations for the
SIG_IGNmacro in the file `signal.h'. On some systems the
SIG_IGNmacro is defined to be something like this:
#define SIG_IGN (void (*)())1when it should really be something like:
#define SIG_IGN (void (*)(int))1to match the prototype declaration for
signal(). This change should also be made for the
SIG_ERRsymbols. It may be necessary to change the definitions in `sys/signal.h' as well. The gcc fixincludes/fixproto script should probably fix these problems when gcc installs its modified set of header files, but I don't think that's been done yet. You should not change the files in `/usr/include'. You can find the gcc include directory tree by running the command
gcc -print-libgcc-file-nameThe directory of gcc include files normally begins in the same directory that contains the file `libgcc.a'.
zgemm.f: zgemm: warning: unexpected parent of complex expression subtree zgemm.f, line 245: warning: unexpected parent of complex expression subtree warning: unexpected parent of complex expression subtree zgemm.f, line 304: warning: unexpected parent of complex expression subtree warning: unexpected parent of complex expression subtree zgemm.f, line 327: warning: unexpected parent of complex expression subtree pcc_binval: missing IR_CONV in complex op make: *** [zgemm.o] Error 1when compiling the Fortran subroutines in the `libcruft' subdirectory, you should either upgrade your compiler or try compiling with optimization turned off.
/usr/tmp/cc007458.s:unknown:Undefined local symbol LBB7656 /usr/tmp/cc007458.s:unknown:Undefined local symbol LBE7656when compiling `Array.cc' and `Matrix.cc', try recompiling these files without
G_HAVE_SYS_WAITdefined to be 0 instead of 1 when compiling libg++.
_tcgetattr _tcsetattr _tcflowwhich are part of `libposix.a'. Unfortunately, linking Octave with
-posixresults in the following undefined symbols.
.destructors_used .constructors_used _objc_msgSend _NXGetDefaultValue _NXRegisterDefaults .objc_class_name_NXStringTable .objc_class_name_NXBundleOne kluge around this problem is to extract `termios.o' from `libposix.a', put it in Octave's `src' directory, and add it to the list of files to link together in the makefile. Suggestions for better ways to solve this problem are welcome!
octave_ieee_initin the file `lo-ieee.cc' to correctly initialize Octave's internal infinity and NaN variables. If your system does not support IEEE arithmetic but Octave's configure script incorrectly determined that it does, you can work around the problem by editing the file `config.h' to not define
HAVE_ISNAN. In any case, please report this as a bug since it might be possible to modify Octave's configuration script to automatically determine the proper thing to do.
Octave may soon support FSQP, an NLP solver from Andre Tits (email@example.com) of the University of Maryland. FSQP is available free of charge to academic sites, but can not be redistributed to third parties.
Stanford Business Sofrtware, Inc.
2680 Bayshore Parkway, Suite 304
Mountain View, CA 94043
Tel: (415) 962-8719
Fax: (415) 962-1869
This section contains instructions for creating and installing a binary distribution.
sh ./install-octavein the top level directory of the distribution. Binary distributions are normally compiled assuming that Octave will be installed in the following subdirectories of `/usr/local'.
sh ./install-octave /some/other/directorywill install Octave in subdirectories of the directory `/some/other/directory'.
Here is how to build a binary distribution for others.
./configure --disable-dl --disable-shl --disable-sharedIf your system supports shared libraries and dynamic linking, you should also build a binary that supports those features, but it is important to create a statically linked executable that will run no matter what versions of the libraries are installed on the target system.
configure --enable-shared make make dynamic-binary-distThis will create a compressed tar file ready for distribution. The file will have a name like `octave-version-host_type-dynamic.tar.gz'.
Go to the first, previous, next, last section, table of contents.