README.IS-GEN
is-gen.3 (InstallShield 6.2)

InstallShield tools
--------------------

IS-GEN automates the process of producting the set of files used
as input by InstallShield when it builds a setup executable.

The main input for is-gen is a directory whose name is the version
number and whose contents is a set of component description files that
will be processed by is-gen.  is-gen produces a full directory tree
used by InstallShield to rebuild the setup (i.e. installation
executable).

Component description directories:
  One version for the working versions, one for the release.
  Two versions are required because the components are different.

Arguments (???) required for running is-gen
 * version  (obtained from the version component directory name)
 * prefix   (where defined??? -- is this <target>?)
 * list of components  (files in the version component directory?)
 * list of files per components  (contents of the version component files)
 * standard components  (where defined???)
 * guid for installation (where defined???)

There is a directory is-gen/<version> that contains a set of
component description files.  These files have the following format

  <comment line>
  <InstallShield message line>
  <list of files in the component>

For instance, the compiler component file for 110.0.5 has the following
contents:
----------------------------------------------------------------------
This component includes the heap image of the compiler, including CM.
Copying compiler files.
bin/.heap/sml.x86-win32
bin/sml.bat
----------------------------------------------------------------------

InstallShield will print the message given in the message line as
the component files are being installed.

The absolute path for this directory of component descriptions is
the first argument to is-gen.  The name of the directory is used
as the version number.


USAGE
-----

is-gen <version> <target> <build>

where
 <version> is a directory containing the component description files
           the name of the directory is the version number
 <target>  is a directory where the installshield files will be stored
           the name of the directory *must* be the same as the version
           number
 <build>   is a directory where the files to install are found (binaries,
           heap images, library source files)

All paths must be absolute paths.

Example: For 110.0.5

1. Component descriptions in C:\sml-build\is-gen\110.0.5 (<version>)
2. Build directory is C:\sml-build\110.0.5  (<build>)
   This is where the 110.0.5 binaries and heap images and sources
   have been built.
3. Target is "C:My Installations\110.0.5".  (<target>)
   This is where the various InstallShield files produced by is-gen
   will be deposited.  This directory must already have been created
   before running is-gen.

is-gen can be invoked with the is-gen/src/is-gen.bat command.  Go to the
is-gen/src directory in an MSDOS command prompt window and execute the
following command:

  is-gen "C:\sml-build\is-gen\110.0.5" "C:\My Installations\110.0.5" "C:\sml-build\110.0.5"

Note the backslashes in the paths and the quotes around the paths (the
quotes are critical for the second argument path which contains a space).
   
======================================================================
Change Log:

1. Changed setup.rul to create CM_PATH and modify Path in the System Environment
rather than the user environment.  Need to be Administrator when installing.

2. Eliminated the manual creation of the Media directory hierarchy.
This will be created interactively using the Media wizard (see README.IS).

3. Changed the way that Version is instantiated when generating files
(it's instantiated when the ini-files values are created, rather than
when they are printed).

4. Brought up to date for IS 6.2 by adding missing directories and files
and updating versions and contents of ini-files.  IS no longer says that
it is converting from an earlier version.  Build runs with 0 error and
0 warning messages.


