STDWIN ESSENTIAL INFORMATION
****************************

[last edit: 7 June 1991]


What Is STDWIN
==============

STDWIN (STanDard Window INterface -- similar to STDIO) is a simple
windowing interface for C programs, that is implemented on various
platforms.  The "flagship" implementations support the Macintosh and
X11 windowing environments.  The emphasis is on portability between
platforms and a simple interface to the application, not on getting
the maximum performance or functionality of one particular platform.

For a longer introduction, read the (still outdated) file Doc/ABOUT.
For more information on the Macintosh version, read Ports/mac/README.
For MS-DOS, read Ports/msdos/README.


Supported Platforms
===================

Currently, programs using STDWIN can be made to run on Unix under X11,
on alphanumeric terminals (using termcap -- obviously with some loss
of functionality), on the Apple Macintosh (using THINK C 4.0), or on
MS-DOS with a dumb display (using Microsoft C).  I am working on
patches to get the Mac port running under MPW 3.x (which is quite
different in some respects from MPW 2.x); contact me if you need this
urgently.  If you insist, I also have two versions for the Atari ST
(one for MWC and one for TurboC) that need a lot of dusting off, and
haven't been upgraded to all the lovely new features.


Copyright
=========

Copyright 1988, 1989, 1991 by Stichting Mathematisch Centrum,
Amsterdam, The Netherlands.

                        All Rights Reserved

Permission to use, copy, modify, and distribute this software and its 
documentation for any purpose and without fee is hereby granted, 
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in 
supporting documentation, and that the names of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


This is Version 0.9.6
=====================

I believe it is a mature product, except for the lack of complete
documentation.  When I have finished the manual I'll release version
1.0, and post it to an appropriate comp.sources group.


Where To Get STDWIN
===================

STDWIN 0.9.5 was posted to alt.sources in march 1991.  I am posting
diffs to get it up to STDWIN 0.9.6 in june 1991.  The postings should
still be available from sites that archive this newsgroup, such as
wuarchive.wustl.edu (see below).

STDWIN is also available from a number of ftp sites.  The * in file
names is the version number, e.g., 0.9.6 (the last digit is the patch
level).


Sites		hp4nl.nluug.nl (IP address 192.16.202.2)
		mcsun.eu.net (IP address 192.16.202.1)
For whom	users in the Netherlands and the rest of Europe
Directory	pub/windows
	File	stdwin*.tar.Z
Directory	pub/programming/languages
	Files	python*.tar.Z
		pythondoc[12].ps.Z
Directory	pub/comp/mac/compiler
	File	Python.hqx


Site		wuarchive.wustl.edu (IP address 128.252.135.4)
For whom	users in North America
Directory	usenet/alt.sources
Note		Raw alt.sources archive, see README there.  Grep -i the
		Index file for "stdwin" or "python".

		
Site		gatekeeper.dec.com (IP address 16.1.0.2)
For whom	users in North America
Directory	pub/misc
	File	stdwin*.tar.Z
Directory	pub/misc/python
	Files	python*.tar.Z
		pythondoc[12].ps.Z
		Python.hqx.Z


I'll also try to put compressed tar images on wuarchive in /pub and on
uunet in /tmp.

Don't forget to specify binary file transfer mode!  ("type binary")

I can also e-mail you a voluminous bunch of shar files but please try
finding a friend with ftp access first -- it's much more convenient
for all concerned.


Getting Started Right Now
=========================

For some common systems, the system knows how to configure itself
automatically.  This works for:

	Hardware			Operating System

	DEC VAX, DECstation		Ultrix 2.2 or 3.0
	Sun3, Sun4			SunOS 4.0 or 4.1
	Silicon Graphics Personal IRIS	IRIX 3.2 or 3.3
	Harris HCX-7 (tahoe)		BSD 4.3

(For other OS versions on these or similar machines, give it a try
anyway, it may work as well, especially if there is a program called
"arch" or "machine" that prints the machine type.)  To build STDWIN
for X11 on such systems:

	cd Conf
	./mkmf				# answer all questions with yes
	cd ..
	cd Build/<arch>/x11/lib		# <arch> is `machine` or `arch`
	make

This creates the STDWIN library for X11 on a file named "lib.a".
To build the standard test/demo application, "miniedit" (first chdir
back to the top of the STDWIN source tree):

	cd Conf
	./mkmf miniedit
	cd ..
	cd Build/<arch>/x11/miniedit
	make

To try it out, use it to have a look at the Makefile:

	miniedit Makefile


If It Doesn't Work Right Away
=============================

You may have to create new Makefile prototypes in subdirectory Conf, or
fix the mkmf script there.

The configuration system works as follows.  Sources and objects live in
separate directories.  There are no tools like "imake" nor nonstandard
make features like "VPATH" used.  Instead, all Makefiles are generated
by simple, easy-to-understand shell scripts living in Conf.  It is
possible to say "make" in any leaf subdirectory of Build.

Read Conf/README for more information.


The STDWIN source tree
======================

The STDWIN tree is organized as follows.  Starting from the top of the
tree (where this README file lives), we have:

	.		Top-level directory.

	README		The file you are now reading.

	H/		Public header files of STDWIN ports and
			packages.  Stdwin applications should pass this
			directory to the compiler in a "-I" option.

	Tools/		Subroutines used by various ports and
			applications; not STDWIN-specific.
			(This has now been truncated to the bare
			minimum.)

	Gen/		(Almost) generic versions of some STDWIN
			functions, used by more than one port.  (Some
			are dummies that ignore the request or always
			fail.)

	Ports/		Source for various ports.
			Note: not all subdirectories are distributed!

	Ports/x11/	Port to X11 R4; uses Xlib only.
	Ports/alfa/	Port for alphanumeric displays using termcap/terminfo.
	Ports/vtrm/	VTRM (virtual terminal) package used by Ports/alfa.
	Ports/atrm/	Amoeba support or verion for VTRM (old).
	Ports/proto/	Dummy routines to start a new port (ancient).
	Ports/stubs/	RPC-style stubs (ancient).
	Ports/mg1/	Obsolete Whitechapel MG-1 port.
	Ports/atari/	Atari ST port, for Mark Williams C compiler.
	Ports/atari_turbo/	(Newer) Atari ST port, for TurboC.
	Ports/mac/	Apple Macintosh port (both MPW and THINK C).
	Ports/msdos/	MS-DOS port (uses the alfa port mostly).
	(etc)

	Packs/		Source for packages (libraries) on top of STDWIN.

	Packs/textedit/	Standard text-editing package.
	Packs/vt/	Virtual terminal package (needs some work).
	packs/buttons/	Probably not useful, and broken.

	Appls/		Source for test programs and real applications.

	Appls/README	Read this for more information.

	Doc/		Documentation for STDWIN and packages.
			Unfortunately this is terribly out of date.

	Doc/ABOUT	Blurb to be sent to prospective users.
	Doc/paper.ms	The original paper (CWI report CS-R8817) (*troff -ms).
	(etc)

	Conf/		Configuration scripts and prototype Makefiles.

	Conf/README	Read this before twiddling the configuration.
	Conf/mkmf	Script to build Makefiles.
	Conf/mkall	Script to build Makefiles for allo applications.
	Conf/proto.*	Makefile fragments used by mkmf.
	Conf/*		Scripts used by mkmf.

	Build/		Contains subdirectories where the various
			ports are built for various architectures.

	Build/sun3/	Sun3 (680x0) under SunOS 4.1
	Build/sun4/	Sun4 (SPARC) under SunOS 4.1
	Build/sgi/	Silicon Graphics under IRIX 3.2
	Build/mips/	DEC RISC architecture under Ultrix 3.0
	Build/vax/	DEC VAX under Ultrix 2.2
	(etc)


--
Guido van Rossum, CWI, Amsterdam <guido@cwi.nl>
"The life of a Repo Man is always intense"
