STDWIN INSTALLATION GUIDE
-------------------------

[last edit: Feb 28 1991]


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

STDWIN (STanDard Window INterface) is a simple windowing interface for
which multiple implementations exist; currently, programs using STDWIN
can be made to run on Unix (using either alphanumeric terminals or the
X11 Window System), on the Apple Macintosh (using THINK C or MPW), or
on MS-DOS with a dumb display (using Microsoft C).  If you insist, I
also have two versions for the Atari ST that need some dusting off.

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

This is version 0.9.5.  It is still a beta test version.


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

I regularly put the latest STDWIN distribution on two anonymous ftp
sites.  As the filename shows, to unpack this you need the programs
uncompress and tar.

	site		hp4nl.nluug.nl (IP address 192.16.202.2)
	directory	pub/windows
	file		stdwin*.tar.Z (the * is the version, e.g. 0.9.5)

	site		wuarchive.wustl.edu
	directory	pub
	file		stdwin*.tar.Z (the * is the version, e.g. 0.9.5)

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"
