ftp.nice.ch/pub/next/developer/languages/octave/octave.2.0.11.1.README

This is the README for octave.2.0.11.1.N.b.tar.gz [Download] [Browse] [Up]

octave.2.0.11.README
Mar 11, 1998


OVERVIEW

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, and for performing other
numerical experiments. It may also be used as a batch-oriented language.

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.


CONTENTS

file:	octave.2.0.11.1.m.I.b.tar.gz
desc:	octave v 2.0.11 (port 1) for i386 Openstep for Mach.
size:	2176kb
md5sum:	dba26e6ac5b529d823443cf2c4776a7d

file:	octave.2.0.11.1.I.b.tar.gz
desc:	octave v2.0.11 (port 1) for i386 NEXTSTEP 3.x (OS 4.x also)
size:	2064kb
md5sum:	28787250580f91dd47163edeb5e64851

file:	octave.2.0.11.1.N.b.tar.gz
desc:	octave v2.0.11 (port 1) for m68k NEXTSTEP 3.x (OS 4.x also)
size:	1976kb
md5sum:	e227e0975afef763fc8ee2f75f051247

Uploaded to
http://www.peak.org/next/submissions
to move to
http://www.peak.org/next/apps/educational/

AND

Uploaded to
http://www.www.org/openstep/submissions/
to move to
http://www.peak.org/openstep/mach/apps/educational (??)


INSTALLATION

Download the appropriate archive for your architecture.  Note that
the NEXTSTEP versions will also run on OpenStep for Mach 4.x systems.
The OpenStep specific port was built with dynamic library support (just
to see if it would work).

As root, issue the following Terminal.app commands:

1.  Unpack the archive:
>  gnutar xzvf octave.2.0.11.1.*.b.tar.gz
2.  Change directory into newly created folder:
>  cd octave-2.0.11-*-next-*
3.  Run the provided installation script.  Here you can specify 
the root directory of where you want octave installed (/usr/local
is the default):
>  ./install-octave /usr/local  

You may also want to install GNU_Term, a NEXTSTEP GUI front end for 
gnuplot:
It can currently be find at: 
http://www.peak.org/next/apps/graphics/plotting/
GnuTerm_1.1a.NIHS.bs.tar.gz


COMPILING FROM SOURCE

Here are some things you need to do to get octave to compile for 
nextstep3/openstep4.


1.  If using g77 (ie, g77-0.5.21 and gcc-2.7.2.3.f.1), need to configure with:
    configure --with-g77 (so... whenever I say run configure, you need
    to include --with-g77.

This didn't seem to work completely, I had to manually specify that g77 
was compatible with f2c in config.cache, then re-run configure.

fix configure
	- modify config.cache so termios.h,unistd.h,utsname.h are no
          (they are posix only headers, and shouldn't be included here).\
	  and specify f2c_f77_compat to be yes (see 1 above)
	- re-run configure

2.  fix signal.h (if needed)
                       
/usr/local/lib/gcc-lib/i386-next-nextstep4/2.7.2.3.f.1/include/bsd/sys/
so that it reads:

NOTE: the old defs of the signals are not liked by g++:

--------
#ifdef __STRICT_BSD__
        #define BADSIG          (int (*)(int))-1
        #define SIG_DFL         (int (*)(int))0
        #define SIG_IGN         (int (*)(int))1

        #ifdef KERNEL
                #define SIG_CATCH       (int (*)(int))2
                #define SIG_HOLD        (int (*)(int))3
        #endif

#else /* __STRICT_BSD__ */

        #ifdef _NEXT_SOURCE
                #define BADSIG          (void (*)(int))-1
        #endif /* _NEXT_SOURCE */

        #if defined(_NEXT_SOURCE) || defined(_POSIX_SOURCE)
                #define SIG_DFL         (void (*)(int))0
                #define SIG_IGN         (void (*)(int))1
...

3.  GNU make (mine) failed to use ddot.f object file in libcruft.a, which 
caused link errors.  Manually adding blas/ddot.o to libcruft solved
the problem.  /bin/gnumake worked like a charm (openstep only).

4.  Type mis-matches cause linking errors

a. mode_t 
config.h:		#define	mode_t int
liboctave/statdefs.h	#define mode_t unsigned short

I changed the config.h reference since NeXT wants mode_t to 
be u_short apparently (reference was a man page for stat).

b.  undefined symbol: _isatty_F: (only for m68k cross compile?)

patch src/lex.cc

--- lex.cc_orig Wed Mar 11 15:15:50 1998
+++ lex.cc      Wed Mar 11 13:33:28 1998
@@ -2122,7 +2122,9 @@
 
 #ifndef YY_ALWAYS_INTERACTIVE
 #ifndef YY_NEVER_INTERACTIVE
+extern "C" {
 extern int isatty YY_PROTO(( int ));
+}
 #endif
 #endif


5.  program_invocation_name linking errors

a. Make sure kpathsea/c-auto.h has the following:

   /* Define if you are using GNU libc or otherwise have global variables
   `program_invocation_name' and `program_invocation_short_name'.  */
   #undef HAVE_PROGRAM_INVOCATION_NAME

b. add -fno-common to CFLAGS in kpathsea/Makefile

c. Rebuild (gnumake clean; gnumake) the kpathsea subdirectory.
   And the file kpathsea/progname.c should then define the relevent 
   global variables.

6.  dynamic linking vs static linking (openstep4 only)

The building of c++ dynamic libraries is VERY shaky.
C and Fortran dynamic libraries are ok, for the most part.
In my initial testing, the statically linked octave binary
was 2.8MB while the dynamically linked octave binary (using dynamic
library libcruft.dylib) was 2MB in size.


HISTORY

This is my own internal history of progress. 

??
	include i386-apple-rhapsody5 port.
	include  ppc-apple-rhapsody5 port.
Mar 11, 1998 (release 3)
	update to octave-2.0.11
	No more installer package, use traditional octave install.
	include m68k-next-nextstep3 port.
	include i386-next-nextstep3 port.
	include i386-next-openstep4 port.
Mar 19, 1997
	Update to octave-2.0.5.
	Use standard octave directory scheme.
Jan 21, 1997 (release 3)
	Update to octave-2.0.1
	fix gnuplot/ls problem.
Jan 2, 1997 (release 2)
	Added documentation, FAT libraries
	Install as Installer.app package
	First public release, uploaded to ftp.next.peak.org, Jan 2, 1997
	Doesn't work with gnuplot (????)
Dec 20, 1996 (release 1)
	Added m68k binary.
Dec 18, 1996 (beta 2)
	Fixed help system bug	(couldn't find info binary)


CREDITS/REFERENCES

Rex Dieter <rdieter@math.unl.edu>
Computer System Manager
Department of Mathematics and Statistics
University of Nebraska-Lincoln
http://www.math.unl.edu/~rdieter/

Octave source and other binaries:
  http://www.che.wisc.edu/octave
  ftp://ftp.che.wisc.edu/pub/octave

GNUTerm
http://www.peak.org/next/apps/graphics/plotting/

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