	Copyright (C) 1990 Free Software Foundation, Inc.

This file is part of Oleo, the GNU Spreadsheet.

Oleo 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 1, or (at your option)
any later version.

Oleo 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
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Oleo; see the file COPYING.  If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.



Note that oleo still generates lots of warning messages.  They can usually
be ignored.  In patictlar, all the complaints about unreached statements in
eval.c, and the complaints about too-large floating-point numbers can be
ignored.

			System Dependent Configuration

If your _doprnt() doesn't correctly interpret %+d you may hve to use the
one from the freed 4.3 BSD sources. (Included.)

If you don't have random(), you will have to use the one from the freed 4.3 BSD
sources.  (Also included.)


		System configuration options:
-DSYSV
	Define this if you are using any version of System Five.
	This causes oleo to expect the SysV version of curses and
	the SysV terminal driver.

-DNO_UALARM
	Define this if your system lacks the ualarm() system call.

-DSETITIMER
	Define this if your system lacks ualarm(), but has
	setitimer().  (Also define -DNO_UALARM.)

-DNO_RINT
	Define this if your C math library does not have the rint()
	function.  This is needed on most SysV and MSDOS systems.

-DNO_RENAME
	Define this if your system lacks the rename() system call.

-DNEED_VPRINTF
	Define if your system lacks vprintf(), vfprintf(), and vsprintf(),
	but does have a working _doprnt().  If you lack both _doprnt(), and
	the v*printf() functions, you'll have to write your own replacements.

-DI_IOCTL
	This option causes io_term.c to #include <sys/ioctl.h>, which contains
	the information needed to turn on asyncronous IO on HPUX systems.

-DI_STDTYPES
	This option causes oleo to include <sys/stdtypes.h>
	This is needed on some sunos 4.1 systems.

-DI_STDDEF
	This option causes oleo to include <stddef.h>  This should be used on
	__STDC__ compliant systems.

-DI_SYSTYPES
	This option causes oleo to include <sys/types.h>, and should be used
	on non-ansi systems.

		Compile-time options:

-DA0_REFS
	if Oleo is compiled with this option, it will use Visi-Calc
	style cell references [A-ZZZ]nnn, instead of the default,
	which is Multiplan style RxxCyy.

-DSPLIT_REFS
	Instead of using the current reference-counting shared
	reference-structures, use a (simpler) (but usually slower!)
	one-structure-per-cell scheme.  This is usually only for
	debugging the spreadsheet.

-DTEST
	Include code for debugging-mode, and also include lots of
	internal-consistency checks, etc.  Defining this usually
	doesn't hurt, except on MS-LOS, where every byte counts.

-DUSE_DLD
	If you're on a BSD system, oleo can be compiled to
	dynamically load the functions that implement
		the save-file formats,
		spreadsheet formula functions,
		spreadsheet keyboard functions,
		and the spreadsheet keymaps.
	Unfortunately, this code only works on BSD systems.

	Before you can use dld with oleo, you will need to apply the
	patch found in 'dld.pch'.

	If you don't have dld, it can be obtained by anonymous FTP from
	prep.ai.mit.edu and probably other archive sites as well.

-DREVERSE
	This option causes oleo to reverse the internal representation that
	it uses for storing rows and columns.  It is intended mainly for
	debuggind and performance testing.

-DSMALLEVAL
	This option is intended to allow eval.c to compile on MS-LOS machines
	where the compiler would otherwise run out of memory.

-DBITS_PER_CELLREF=16
	If this option is used, oleo uses 16-bit integers for cell addresses
	instead of 8-bit ones.  65535 rows and columns should be more than
	enough for most purposes, especially since no 32-bit machine will
	have enough virtual memory to fill that region.


		To compile on a BSD system:

	Decide if you want to use Multiplan style RdigitCdigit or VisiCalc
style LETTERSdigits style cell references.  If you prefer the latter, modify
the Makefile to include -DA0_REFS on the CFLAGS line.

	If you're using Multiplan style references, find out if you _doprnt()
routine supports %+d correctly.  Decimal numbers printed with this format
should have either a + sign (if positive) or a -sign (if negative).  If you
_doprnt() is broken, you may be able to use one from the free 4.3BSD
distribution.  A copy of that file is included in this distribution.

	Find out if your C compiler can handle large switch statements.  GCC
(with Gas) can.  Some other compilers can't.  Some of those that can't
actually bother to tell you that they're producing incorrect code.  If your
compiler doesn't, the spreadsheet will crash by branching to a semi-random
location in eval_expression().  If your compiler has this problem, compile
eval.c with the -DSMALLEVAL option.

	If you can't get the definitions of __plinf or, __neinf past your
compiler, you may have to resort to assembly language.
	Aside from the details above, you should simply be able to type
'make', and oleo should build.


		To compile on a MS-DOS system with Turbo C version 2.0:

	Copy all the files to your PC.

	Convert the files from UNIX ^J terminated lines to MS-DOS ^M^J
terminated lines.

	Decide what to do about cell references, as above.  Modify
makefile.trc to include -DA0_REFS if appropriate.

	Type 'make -f makefile.trc'.  This makefile is sufficiently
simple that even Turbo C's wimpy make should be able to deal with it.


		To compile on a SYSV system:

	Follow the instructions for a BSD system, but include -DSYSV in the
CFLAGS line.  Oleo on a pure SYSV system is *not* well tested.

