ftp.nice.ch/pub/next/developer/languages/octave/octave.2.0.11.1.N.b.tar.gz#/octave-2.0.11-m68k-next-nextstep3

ARCH
 
BUGS
 
COPYING
 
ChangeLog
 
ChangeLog.1
 
INSTALL
 
INSTALL.OCTAVE
 
NEWS
 
NEWS.1
 
PROJECTS
 
README
 
README.Linux
 
README.Windows
 
SENDING-PATCHES
 
THANKS
 
VERSION
 
config.h
[View config.h] 
config.status
 
doc/
 
emacs/
 
examples/
 
info/
 
install-octave
 
libcruft/
 
liboctave/
 
mkinstalldirs
 
octave-bug
 
octave-sh
 
scripts/
 
src/
 

README

GNU Octave -- a high-level language for numerical computations.

Copyright (C) 1996, 1997 John W. Eaton

Last updated: Fri Feb  6 02:23:36 1998

Overview
--------

GNU Octave is a high-level language, primarily intended for numerical
computations.  It provides a convenient command line interface for
solving linear and nonlinear problems numerically.

GNU Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

GNU Octave is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the file
COPYING for more details.

Availability
------------

The latest released version of Octave is always available via
anonymous ftp from ftp.che.wisc.edu in the directory /pub/octave.
Complete source and binaries for several popular systems are
available.  Source distributions of Octave are also available from
prep.ai.mit.edu in the directory /pub/gnu, as well as many mirror
sites around the world.

Installation and Bugs
---------------------

Octave requires approximately 125MB of disk storage to unpack and
compile from source (significantly less if you don't compile with
debugging symbols or create shared libraries).  Once installed, Octave
requires approximately 65MB of disk space (again, considerably less if
you don't build shared libraries or the binaries and libraries do not
include debugging symbols).

To compile Octave, you will need a recent version of GNU Make.  You
will also need g++ 2.7.2 or later.  Version 2.8.0 or egcs 1.0.x should
work.  Later versions may work, but C++ is still evolving, so don't be
too surprised if you run into some trouble.

It is no longer necessary to have libg++, but you do need to have the
GNU implementation of libstdc++.  If you are using g++ 2.7.2,
libstdc++ is distributed along with libg++, but for later versions,
libstdc++ is distributed separately.  For egcs, libstdc++ is included
with the compiler distribution.

YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE.  Octave's Makefiles use
features of GNU Make that are not present in other versions of make.
GNU Make is very portable and easy to install.

See the notes in the files INSTALL and INSTALL.OCTAVE for more
specific installation instructions, including directions for
installing Octave from a binary distribution.

The file BUGS contains a recommended procedure for reporting bugs, as
well as a list of known problems and possible fixes.

Documentation
-------------

Octave's manual has been revised for version 2.0, but it is lagging a
bit behind the development of the software.  In particular, there is
currently no complete documentation of the C++ class libraries or the
support for dynamic linking and user-defined data types.  If you
notice ommissions or inconsistencies, please report them as bugs to
bug-octave@bevo.che.wisc.edu.  Specific suggestions for ways to
improve Octave and its documentation are always welcome.

Implementation
--------------

Octave is being developed with the Free Software Foundation's make,
bison (a replacement for YACC), flex (a replacement for lex), gcc/g++,
and libstdc++ on an Intel Pentium II system running Linux/GNU.  It
should be possible to install it on any machine that runs GCC/G++.  It
may also be possible to install it using other implementations of
these tools, but it will most certainly require much more work.  Do
yourself a favor and get the GNU development tools, either via
anonymous ftp from prep.ai.mit.edu or by writing the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

The underlying numerical solvers are currently standard Fortran ones
like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
of C++ classes (see the files in the libcruft and liboctave
subdirectories).  If possible, the Fortran subroutines are compiled
with the system's Fortran compiler, and called directly from the C++
functions.  If that's not possible, they are translated with f2c and
compiled with a C compiler.  Better performance is usually achieved if
the intermediate translation to C is avoided.

The library of C++ classes may also be useful by itself.

Additional Information
----------------------

Up to date information about Octave is available on the WWW at the
URL http://bevo.che.wisc.edu/octave, including archives of the
help-octave, bug-octave, and octave-sources mailing lists.

--
John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering

README.Linux

Since July 1996, most work on Octave has been done using a Linux
system, and a number of people who regularly test Octave snapshot
releases also primarily use Linux systems.  Because of this, I believe
Octave should run reasonably well on most current Linux systems.
However, there have been some problems in the past, usually the result
of improper installation of compilers or libraries.  Sometimes the
problems have happened because of a botched upgrade or even a buggy
Linux distribution.

If you can, you should probably install Octave from one of the binary
distributions available from ftp.che.wisc.edu, or using one of the
Debian or RPM packages that are available at other sites.  For
example, Dirk Eddelbuettel <edd@debian.org> maintains the Debian
Octave package and usually has them ready within a day or so of new
Octave releases.  They are available via the WWW at
http://www.debian.org/packages.html.

If for some reason you can't (or choose not to) install Octave from
one of the binary distributions or by using one of the Debian or RPM
packages and something goes wrong, please check the following list to
see if your problem is already well known before reporting a bug.

Octave compiles, but it won't run
---------------------------------

If you can compile Octave, but it crashes with a segmentation fault
right away, you probably have incompatible versions of libc and libg++
installed, or you have a version of the dynamic loader, ld.so, that is
incompatible with your versions of the libraries, or both.

Octave won't even compile
-------------------------

If you can't compile Octave, you should first check to see that your
compiler and header files are properly installed.  Do you have
multiple versions of the g++ include files on your system?  Are you
sure that your copy of g++ is finding the right set?  You can find out
by compiling a simple C++ program with -v:

bash$ cat foo.cc
#include <iostream.h>
int main (void) { cerr << "yo\n"; return 0; }

bash$ g++ -v foo.cc
gcc -v foo.cc -lg++ -lstdc++ -lm
Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2/specs
gcc version 2.7.2
 /usr/lib/gcc-lib/i486-linux/2.7.2/cpp -lang-c++ -v -undef ...
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/g++-include
 /usr/local/include
 /usr/i486-linux/include
 /usr/lib/gcc-lib/i486-linux/2.7.2/include
 /usr/include
End of search list.
...

If the location of the correct set of include files is not listed in
the search path, then you might be able to fix that with a symbolic
link.  However, if your version of libg++ was not compiled with your
current version of gcc, you are likely to run into more trouble.

The linker can't find -lieee
----------------------------

This can happen because your libraries don't match your version of
gcc.  Some recent Linux distributions don't include a libieee.a file
because IEEE support is now the default and the library is no longer
needed, but the gcc specs file still adds -lieee to the linker command
if gcc is invoked with the -mieeefp flag.  I believe that you should
be able to fix this by editing the gcc specs file.  In it, you should
find something like this:

  %{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
  %{!ggdb:-lc} %{ggdb:-lg}}

changing it to

  %{!shared: %{p:-lgmon} %{pg:-lgmon} %{!ggdb:-lc} %{ggdb:-lg}}

should keep gcc from adding -lieee to the link command.  You can find
the location of the specs file by running the command gcc -v.

If you can't edit the gcc specs file for some reason, another solution
that should work is to create an empty libieee.a file in the Octave
src directory using the command:

  ar cq libieee.a

NOTE: you should fix this problem (either by editing the specs file or
by creating the library) *before* running configure and compiling
Octave.  Otherwise, configure may incorrectly determine that your
system doesn't have support for some IEEE math functions.

My system doesn't have g77
--------------------------

A binary release of g77 that should work with gcc 2.7.2 is available
from sunsite.unc.edu in the directory /pub/Linux/devel/lang/fortran.
There is also a Debian package for g77.  Also, g77 is now included as
part of egcs (http://www.cygnus.com/egcs).

Problems with g77 on Debian 1.2 systems (and possibly others)
-------------------------------------------------------------

Your best bet is to upgrade to Debian 1.3 (or some newer version).
If you choose not to do that, here are some old tips for working
around the problem.

The location of the compiler binaries changed, so the g77 0.5.18
package can not be used without modification.  The problem is that the
Debian package was built for gcc 2.7.2 and not 2.7.2.1 and the f771
backend is installed in the wrong directory.

Version 0.5.19 of g77 has just been released.  A fixed Debian package
may be made available soon.  Until then, you can make things work by
copying f771 and libf2c.a from /usr/lib/gcc-lib/i486-linux/2.7.2 to
/usr/lib/gcc-lib/i486-linux/2.7.2.1.

Upgrading your compiler and libraries
-------------------------------------

Installing libg++ on a Linux system is not as simple as it should be,
because libg++ shares some basic I/O code with the Linux C library,
and they must be compatible.  You should get and read the release
notes for the compiler and libraries.

If you decide to install versions of the libraries that are older (or
newer) than the ones you already have, you should follow the
directions in the release notes carefully.

I/O in dynamically loaded .oct files doesn't work
-------------------------------------------------

If Octave prints things like `%.-1e' instead of numbers when you use a
dynamically linked .oct file, you probably need to create shared
versions of the Octave libraries.  To do that, configure Octave with
--enable-shared, recompile, and reinstall.


If you have comments or suggestions for this document, please contact
bug-octave@bevo.che.wisc.edu.

John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering

Tue Feb  3 13:08:02 1998

README.Windows

Octave has been ported to Windows NT and Windows 95 using the beta 18
release of the Cygnus gnu-win32 tools.  If you would like to volunteer
to work on improving this port, please contact bug-octave@bevo.che.wisc.edu.

The directory ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32
contains a binary distribution of Octave for Windows NT/95 along with
installation instructions.  Unless you are interested in doing some
hacking, you should use the binary releases.

Here is a list of current problems (and workarounds, where available).

* To compile and install Octave on a Windows NT/95 system,
  you will need to get the beta 18 release of the gnu-win32 tools.
  They are available from ftp://ftp.cygnus.com/pub/gnu-win32.

* There is a conflict between /gnu-win32/b18/include/g++/String.h
  and /gnu-win32/b18/H-i386-cygwin32/i386-cygwin32/include/string.h.
  You should rename or remove /gnu-win32/b18/include/g++/String.h.
  (These file names assume that you have installed the gnu-win32 tools
  in /gnu-win32/b18).

* You will need to have f2c and libf2c.a or g77 installed.  I would
  recommend using g77.  Mumit Khan has directions for building g77 at
  http://www.xraylith.wisc.edu/~khan/software/gnu-win32/g77.html.
  Another solution is to use egcs, which includes g77.  The egcs
  compiler is available from http://www.cygnus.com/egcs.

* You will also need a termcap library.  The GNU termcap library seems
  to work.  You can get it from any GNU archive site, including 
  ftp://ftp.gnu.org/pub/gnu/termcap-1.3.tar.gz.

* Octave requires gnuplot for plotting, but the normal Windows version
  of gnuplot will not work because it only reads from the GUI and refuses
  to read input from stdin.  Mumit Khan has written a patch that fixes
  the problem, but the gnuplot license does not allow us to distribute
  modified versions of gnuplot in binary form.  The patch is available
  from http://www.xraylith.wisc.edu/~khan/software/gnu-win32.

* If Octave takes a long time to find function files, you may have to
  modify your LOADPATH to avoid device names specified using the
  `//DEV/subdir' syntax.  To map the D: drive (for example) to
  /D_DRIVE, do the following:

    cd /
    mkdir /D_DRIVE
    mount d: /D_DRIVE

  Then you can set your LOADPATH to include /D_DRIVE/subdir instead of
  //d/subdir.

If you know of solutions for any of the problems mentioned above,
please contact bug-octave@bevo.che.wisc.edu.

More information about the gnu-win32 project is available via the WWW
at http://www.cygnus.com/gnu-win32.

John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering

Sat Feb 14 13:12:19 1998

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.