Changes between Version 6 and Version 7 of WPIBuild


Ignore:
Timestamp:
Sep 2, 2007, 12:11:58 AM (17 years ago)
Author:
John Small
Comment:

Various improvements in the text, including change to Open Watcom

Legend:

Unmodified
Added
Removed
Modified
  • WPIBuild

    v6 v7  
    77 * A drive with long filename support
    88 * A functional FM/2 build environment. ([/repos/fm2/trunk/BUILDING See build instructions] elsewhere for details.)
    9    * IBM !VisualAge C++ version 3.65 with FP2 (Soon to be Open Watcom.)
     9   * Open Watcom v1.6 or later
    1010   * OS/2 Develoeprs Toolkit v4.5 or newer
    1111   * SVN
     
    2222  The WPI file for FM/2 is named '''FM2'''''<version-string>'''''.WPI'''. The ''<version-string>'' portion of the file name can be set through the '''FM2_VER''' environment variable. For example, '''SET FM2_VER=-3-5-9''' will result in '''FM2-3-5-9.WPI''' being created/updated.
    2323 FM2UTILS_VER::
    24   The WPI file for FM/2 Utilities is named '''FM2UTILS'''''<version-string>'''''.WPI'''. The ''<version-string>'' portion of the file name can be set through the '''FM2UTILS_VER''' environment variable. For example, '''SET FM2UTILS_VER=-1-0-1''' will result in '''FM2UTILS-1-0-1.WPI''' being created/updated.
     24  The WPI file for FM/2 Utilities is named '''FM2UTILS'''''<version-string>'''''.WPI'''. The ''<version-string>'' portion of the file name can be set through the '''FM2UTILS_VER''' environment variable. For example, '''SET FM2UTILS_VER=-1-0-1''' will result in '''FM2UTILS-1-0-1.WPI''' being created/updated. (NOTE: FM2UTILS rarely changes so this variable will rarely need to be changed.)
    2525
    2626=== How to build the WarpIN installation files of FM/2 ===
     
    5454=== Overview ===
    5555
    56 Basically a WPI file contains a script and one or more packages. Each package contains zero or more files. The files within a package may be organized into directories. Users select packages to install and the directories into which each package is to be installed. Any directories that may exist within the package become subdirectories of the user-specified installation directory.
     56Basically a WPI file contains a script and one or more packages. Each package contains zero or more files. The files within a package may be organized into directories. Users select packages to install and the directories into which each package is to be installed. Any directories that may exist within the package become subdirectories of the user-specified installation directory for that package.
    5757
    58 Currently the directory structure (and the location of files therein) of the build subtree does not match the desired installation directory structure. Therefore the current build process for the WPI files includes the creation and population of "staging" directories from which the WPI file packages are created. So the "life cycle" of a file to be installed is:
     58Currently the directory structure of the build subtree and the locations of the files therein do not match the desired installation directory structure. Therefore the current build process for the WPI files includes the creation and population of "staging" directories from which the WPI file packages are created. So the "life cycle" of a file to be installed is:
    5959 1. The FM/2 build process creates/updates the file within the build subtree
    6060 2. The WPI portion of the build process copies these files from various locations within the build subtree into staging directories from which the files and subdirectories are then incorporated into packages within the WPI file(s)
     
    6565  * Changes in package names
    6666  * Changes in default proposed installation directories
    67   * Changes in the objects created
    68   * Changes names of or parameters passed to programs run during installation or de-installation (EXECUTE/DEEXECUTE)
     67  * Changes in the WPS objects created
     68  * Changes in the names of or parameters passed to programs run during installation or de-installation (EXECUTE/DEEXECUTE)
    6969  * Changes to certain text displayed in WarpIN windows during installation
    7070  * Changes in whether or not '''CONFIG.SYS''' is updated
     
    8080  * Changes to the names of files
    8181  * Changes to the package numbers to which files are assigned
    82  * Changes to the WPI file build process itself (See below for details on the current WPI build process.)
     82 * Changes to the WPI file build process itself (See below for details on the current WPI file build process.)
    8383  * Changes to warpin\makefile
    8484  * Changes to the programs called from warpin\makefile
     
    9191    * Cause discontinued files to no longer be created.
    9292  2. Alter warpin\'''BLD_FM2_WPIDIRS.TXT'''. This file is used to control which files from which build subtree directories are to be staged into which directories of which packages. '''BLD_FM2_WPIDIRS.TXT''' is self-documented. Read it to learn how to make changes to it.
    93  * For changes to the WPI build process, edit the appropriate files within the build subtree.
     93 * For changes to the WPI file build process (see below), edit the appropriate files within the build subtree.
    9494 * When finshed with these modifications, follow the instructions above ("How to build ...") to create the new FM/2 WPI files.
    9595
     
    9797== The WPI file build process ==
    9898
    99 The portion of the build process for FM/2 which build the WPI files is controlled by the warpin\makefile file. For the following reasons a significant amount of the processing is delegated to REXX programs called from the makefile:
    100  * To build a WPI file the WarpIN executable named WIC.EXE must be functional during the build process. By default the WarpIN directory is not added to the PATH and LIBPATH when WarpIN is installed so WIC.EXE will not run from the command line without being added to the PATH and LIBPATH. The following options were considered:
     99The portion of the build process for FM/2 which builds the WPI files is controlled by the warpin\makefile file. For the following reasons a significant amount of the processing is delegated to REXX programs called from the makefile:
     100 * To build a WPI file the WarpIN executable named WIC.EXE must be functional during the build process. By default the WarpIN directory is not added to the PATH and LIBPATH when WarpIN is installed so WIC.EXE will not run from the command line without the WARPIN directory being added to both the PATH and LIBPATH. The following options were considered:
    101101  * Use the REXX CMD file distributed with WarpIN (RUNWIC.CMD). It provides one-time executions of WIC.EXE (by temporarily modifying the PATH and LIBPATH). But it is flawed because it "breaks" other LIBPATH modifications which may have made previously. And even though this will be fixed with future distributions of WarpIN the FM/2 build process still needs to "find" RUNWIC.CMD to run it. So RUNWIC.CMD was rejected.
    102   * Use a custom REXX programs, BLD_FM2*_WPI.CMD, which
     102  * Use custom REXX programs, BLD_FM2*_WPI.CMD, which
    103103   * Do not "break" other settings.
    104    * Adds the Warpin directory to the PATH and (BEGIN)LIBPATH only if it is not already on those paths.
     104   * Add the Warpin directory to the PATH and (BEGIN)LIBPATH only if it is not already on those paths.
    105105   * Relieve developers from having to add the Warpin directory manually to the PATH and LIBPATH.
    106106 * Providing the following in an easily maintainable way without the use of REXX programs (and '''BLD_FM2_WPIDIRS.TXT'''), was beyond the makefile programming skills of the initial programmer of the WPI build process:
     
    109109  * Ensuring that discontinued files are no longer packaged into the WPI files.
    110110
    111 The make process:
    112  1. Target: checkfiles
     111Notes on the targets of the WPI file make process and the REXX programs, if any, used to implement them:
     112 1. checkfiles
    113113  a. Pupose: Determine what files, if any, need to be staged for addition to the WPI file.
    114114  b. REXX program: ckfiles
    115115   1. If the WPI file is missing or if the '''BLD_FM2_WPIDIRS.TXT''' file is newer than the WPI file, then '''BLD_FM2_WPIDIRS.TXT''' is copied to '''BLD_FM2_WPIDIRS.IN'''. (This causes a full rebuild of the WPI file later on.)
    116116   2. Otherwise the '''BLD_FM2_WPIDIRS.TXT''' is read, a '''BLD_FM2_WPIDIRS.IN''' file is written which lists only the files from '''BLD_FM2_WPIDIRS.TXT''' which are new or updated (compared to the date/time of the WPI file).
    117  2. Target: fm2.wis: fm2.wis.in fm2utils\fm2utils.doc fm2utils\license.txt
     117 2. fm2.wis: fm2.wis.in fm2utils\fm2utils.doc fm2utils\license.txt
    118118  a. Purpose: To incorporate the text from FM/2 Utilities text files into the FM/2 install script.
    119119  b. This is done so that changes to these text files would not require identical changes to the FM/2 WarpIN script.
    120120  c. SED is used to read '''FM2.WIS.IN''' and replace certain special strings with the contents of the text files, creating the final script, FM2.WIS. This is why SED is required and why changes to the script must be made to FM2.WIS.IN.
    121  3. Target: fm2$(FM2_VER).wpi:: bld_fm2_wpidirs.in
     121 3. fm2$(FM2_VER).wpi:: bld_fm2_wpidirs.in
    122122  a. Purpose: Stage the files identified by the checkfiles target and then build the WPI file.
    123123  b. REXX program: bld_fm2_wpidirs.cmd
     
    126126   1. Build the WPI file from the staged files and the latest script, fm2.wis.
    127127   2. Delete the staging directories. This prevents "moved" or discontinued files, which would otherwise linger in the staging directories, from being incorporated into future WPI files.
    128  4. Target: fm2$(FM2_VER).wpi:: fm2.wis
     128 4. fm2$(FM2_VER).wpi:: fm2.wis
    129129  a. Purpose: Build the WPI file when only the script has changed.
    130130  b. REXX program: bld_fm2_wpi.cmd