ENVIRONMENTAL CONFIGURATION FILES FOR OTSO
------------------------------------------

These files are important when you port OTSO to a new system.  You can
choose to use one of the existing implementations defined already
(based on the switches provided by the compiler), or if you are
porting to a new system, you will have to study these files and modify
them. With the help provided by these files, we can:
  1) localize the code to be ported
  2) restrict the amount of work needed to port OTSO


env_sel.h provides three things:
  1) show, which systems are supported for OTSO
  2) select (automatically) the underlying system
  3) consistent way to use switches in OTSO kernel code

Other env*.h files use the switches defined in env_sel.h.

envCC.h		- All C++ compiler specific matters are defined here.
		  They are wrapped in #if`s defined in env_sel.h.
		  Things like extern "C" functions, etc are defined.
		  When porting to a new C++ compiler, add strange
		  dependencies here.

envOS.h		- All Operating System dependencies are defined here.
		  They are wrapped in #if's defined in env_sel.h.
		  When porting to a new OS platform, add strange
		  dependencies here.

envOS.cxx	- Generic OTSO functions that are dependent on the OS.
		  systart(), systop(), systime() etc are all done
		  in a very OS specific manner.

envOTSO.h	- All OTSO specific matters are defined here.

system.make	- used in local "make" shell scripts, it sets up certain
		  common rules that should be used whenever UNIX make is
		  used to compile OTSO.  Things like C++ compiler usage,
		  implicit rules (.c.o, .cxx.o, etc), etc, etc.

initOTSO.inc	- the common initialization routines for most OTSO programs
		  main() {} sections.  There are some environmental
		  dependencies since initialization (Devices, Unix signal
		  catching, etc.) differ in different environments.

channel.cxx, channel.hxx - OTSO Istream/Ostream classes.  They are really
		part of the OTSO kernel, but they must often be ported
		to various Operating systems, since they are the interface
		to lower level things like Devices and the rest of OTSO.

device/*	- The OTSO Device class libraries must definitely be
		ported whenever moving OTSO to new systems.  The
		two existing Device classes are for:
			(1) BSD Unix Like systems with a "select" call.
			(2) MSDOS like systems with no chance of
			implementing Device classes, but that allow hacks
			to check the keyboard for input, etc.

portEmbedSystem/	- This directory can be used when porting ObjectWorks
		C++ generated .c files.  It contains a small subset of
		libC.a functions (libC.c) and a utility called munch,
		that is used to create c code for an a.out, to construct/
		destruct statically created objects.  See c++muncher
		shell.  JFR: write a description of this someday.
