*** This is an update to ILU 2.0 Alpha 8 for WIN32.  The only difference is ***
*** that all known patches to Alpha 8 have been applied, and the system has ***
*** been rebuilt.                                                           ***

Welcome to ILU 2.0 Alpha 8 for WIN 32.  Notes in this file pertain to 
the binary distribution for Windows, and building Windows versions from the
source distribution.

As of this release, we are no longer including WIN16 libraries, as WIN16 support 
has been suspended.  See the end of this document for more details about this.

More examples are buildable under Windows.  Besides TEST1 and TIMEIT, TEST2, HTTEST and IIOPTEST1 
are now supported.  This release also includes the first attempts at Python support under Windows.  
Please see the notes at the end of this file for important info about this!

Besides the libraries, the binary distribution also contains the ILU manual in HTML and Postscript
format.  The Postscript version can be viewed and printed with Ghostscript.

If you have any problems to report, please send e-mail to ilu-bugs@parc.xerox.com.

Here are some VERY important notes to remember.  These steps are documented in the ILU manual,
but there are repeated here because 1) no one ever reads the manual ;), and 2) almost every
problem encountered with ILU on Windows is because these steps aren't followed.

1)  Before building any of the examples, you MUST run the stubbers
or the make process will abort with "don't know how to make timeit-surrogate.c" (or some
other .c file).  For example, to build timeit, type:

c-stubber timeit.isl

before using nmake to build timeit.exe.  Similarly, for test1, type

c-stubber test1.isl test2.isl test3.isl (to generate C stubs for the C version)
c++-stubber test1.isl test2.isl test3.isl (to generate C++ stubs for the C++ version)

Obviously, if you are only going to build the C version of test1, you don't need to run the
C++ stubber.

2)  However, BEFORE running the stubbers, you need to set some environment variables, or the
stubbers won't be able to find some necessary files.  Here are the variables and their values
(assuming ILU is installed on D:\ILUWIN20):

set PATH=d:\iluwin20\bin;%PATH%
set INCLUDE=d:\iluwin20\include;%INCLUDE%
set LIB=d:\iluwin20\lib;%LIB%
set ILUPATH=.;d:\iluwin20\interfaces
set ILU_BINDING_DIRECTORY=d:\iluwin20\bindings

ILUPATH is used by the stubbers to locate .ISL files that are referenced.  The "." ensures
that the current directory is searched.  Also, note that PREVIOUS READ.ME FILES FOR ILU HAD
A TYPO IN THE ABOVE SETTINGS (ILU_PATH instead of ILUPATH). 

ILU_BINDING_DIRECTORY is used to allow clients and servers to find each other.  If it is
not set, then the default value (\ilu\interfaces) is used, which is probably not right for
your machine.  Set it to a directory you know exists; failure to do so will cause "Unable to
publish object" errors, or clients that can't find servers, even though the server says it is
ok.  Most importantly, make sure both the client and server can see the value; set it globally,
or set it in both sessions before executing each program.

3) If you build and execute the examples and they just don't work, try setting ILU_DEBUG=ALL
or ILU_DEBUG=most. You'll get a LOT of output, and in that output is the reason the example 
isn't working.

See the ILU manual for detailed explanations of all this.

Addendum #1: WIN16 libraries.  We are no longer including the WIN16 libraries for ILU.  This is
due to Windows 3.1 having a limited address capability.  Specifically, ILU assumes that it can
work with data items of an arbitrary size, and this is not true for the segmented addressing that
Windows 3.1 presents to you.  You can certainly build ILU for WIN16, and build applications that
run, but if you ever cause an "overflow" in a data object, your world will collapse (or, at least,
your program will die).  If you really need to execute ILU programs under Windows 3.1, it is
recommended that you use the 32-bit version of ILU along with Win32s.

Addendum #2:  make clean doesn't work under Win95.  The way our makefiles perform a "make clean"
uses a command/option combination that will not work under Windows 95; it only works on Windows 
NT.  

Addendum #3:  Python support.  This release of ILU supports the new version of Python 1.3 that
has been released for Windows.  However, by default, the Python/ILU runtime support is NOT built
when building from the source distribution. Instead, you will get a message informing you that 
you need certain files before you can build the Python/ILU DLL.  Specifically, here's what you 
need to do:

Assuming we don't have Python at all on the machine.

1:  Obtain Python Binary distribution from 
http://www.python.org/ftp/python/pythonwin/pythonwin-09-6.exe

2. Install Python Binary distribution.  
Install directory I used is E:\Python1.3

3. Make the directory e:\PythonSRC


4. Either

	A. Obtain just the the necessary files (win32_ilu_python_src.zip)
	from the ilu pages and put them	into e:\PythonSRC  

	OR 

	B. Do it from scratch as follows:

		1. Download the Unix sources from 
		http://www.python.org/ftp/python/src/python1.3.tar.gz
		into e:\PythonSRC.

		2. Change directory to e:\PythonSRC

		3. Run   gzip -d python1.3.tar.gz 

		4. Run   tar -xf python1_3_tar 
		You should now have a directory E:\PythonSRC\Python-1.3
		containing the unix sources.

		5. Download the Windows sources from 
		http://www.python.org/ftp/python/pythonwin/pythonwin-src-09-5.zip
		and unzip this directly on top of the unix sources - i.e. extract 
		(with overwrite existing files on) to E:\PythonSRC\Python-1.3.

		6. Download MORE Windows sources from 
		http://www.python.org/ftp/python/pythonwin/python-src-130-2.zip
		and unzip this directly on top of the unix sources - i.e. extract 
		(with overwrite existing files on) to E:\PythonSRC\Python-1.3.

		7. Download the Windows library files Windows from 
		http://www.python.org/ftp/python/pythonwin/python-libs-09-5.zip
		and unzip this directly on top of the unix sources \lib directory
		- i.e. extract (with overwrite existing files on) to 
		E:\PythonSRC\Python-1.3\lib

		8. Copy the file Pythonc.lib into E:\PythonSRC\Python-1.3\lib.
		[Pythonc.lib is a library that results from building python that
		is not part of the regular python binary distributions.  You can obtain it
		prebuilt from the ilu pages]

5. Go to ILUSRC\runtime\python and comment out the line in the
makefile to allow the build of the runtime.

6. set PYTHONSRC=E:\PythonSRC\Python-1.3

7. If you DON'T want thread support in Python, remove or comment out the line  
#define ILU_PYTHON_THREADS 1
from  the file ILUSRC\runtime\python\pythonversion.win

8. Make ILU - you should now have the file iluPr.pyd in the appropriate
build subdirectory of ILUSRC\runtime\python.  

9. Make Install ilu - This will copy the *.py files
in ILUSRC\runtime\python to ILUHOME\lib.  Be sure to put \ILUHOME\lib on yout
on your PYTHONPATH.

10. Whew! -- Enjoy.

You can run several of the Python examples from ILU (the Python versions of 
Test1 and Bank work; Reconnect needs one change to work; change "import socket" 
to "import _socket").

The Python support under Windows hasn't been tested thoroughly.  If you find any 
problems, please send us e-mail!


Addendum #4
The ilu binding service (in ILUSRC/etc/sbserver) is not yet built/supported 
under Windows.

