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.
--prefix=prefix
--srcdir=dir
--with-f2c
--enable-dld
--enable-lite-kernel
--help
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.
info fails to compile if
HAVE_TERMIOS_H is defined int `config.h'. Simply removing
the definition from `info/config.h' should allow it to compile.
configure finds dlopen, dlsym, dlclose,
and 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
signal() and the SIG_IGN macro in the file `signal.h'.
On some systems the SIG_IGN macro 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_DFL and SIG_ERR symbols.
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[2]: *** [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.
G_HAVE_SYS_WAIT defined to be 0 instead of 1 when compiling
libg++.
_tcgetattr _tcsetattr _tcflowwhich are part of `libposix.a'. Unfortunately, linking Octave with
-posix results 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_init in
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_ISINF, HAVE_FINITE, and 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 (andre@src.umd.edu) 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.
make LDFLAGS=-static
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.