Changes between Version 6 and Version 7 of WPIBuild
- Timestamp:
- Sep 2, 2007, 12:11:58 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WPIBuild
v6 v7 7 7 * A drive with long filename support 8 8 * 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 10 10 * OS/2 Develoeprs Toolkit v4.5 or newer 11 11 * SVN … … 22 22 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. 23 23 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.) 25 25 26 26 === How to build the WarpIN installation files of FM/2 === … … 54 54 === Overview === 55 55 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 .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 for that package. 57 57 58 Currently the directory structure (and the location of files therein) of the build subtree doesnot 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:58 Currently 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: 59 59 1. The FM/2 build process creates/updates the file within the build subtree 60 60 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) … … 65 65 * Changes in package names 66 66 * Changes in default proposed installation directories 67 * Changes in the objects created68 * 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) 69 69 * Changes to certain text displayed in WarpIN windows during installation 70 70 * Changes in whether or not '''CONFIG.SYS''' is updated … … 80 80 * Changes to the names of files 81 81 * 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.) 83 83 * Changes to warpin\makefile 84 84 * Changes to the programs called from warpin\makefile … … 91 91 * Cause discontinued files to no longer be created. 92 92 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. 94 94 * When finshed with these modifications, follow the instructions above ("How to build ...") to create the new FM/2 WPI files. 95 95 … … 97 97 == The WPI file build process == 98 98 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 tothe PATH and LIBPATH. The following options were considered:99 The 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: 101 101 * 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 acustom REXX programs, BLD_FM2*_WPI.CMD, which102 * Use custom REXX programs, BLD_FM2*_WPI.CMD, which 103 103 * Do not "break" other settings. 104 * Add sthe 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. 105 105 * Relieve developers from having to add the Warpin directory manually to the PATH and LIBPATH. 106 106 * 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: … … 109 109 * Ensuring that discontinued files are no longer packaged into the WPI files. 110 110 111 The make process:112 1. Target:checkfiles111 Notes on the targets of the WPI file make process and the REXX programs, if any, used to implement them: 112 1. checkfiles 113 113 a. Pupose: Determine what files, if any, need to be staged for addition to the WPI file. 114 114 b. REXX program: ckfiles 115 115 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.) 116 116 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.txt117 2. fm2.wis: fm2.wis.in fm2utils\fm2utils.doc fm2utils\license.txt 118 118 a. Purpose: To incorporate the text from FM/2 Utilities text files into the FM/2 install script. 119 119 b. This is done so that changes to these text files would not require identical changes to the FM/2 WarpIN script. 120 120 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.in121 3. fm2$(FM2_VER).wpi:: bld_fm2_wpidirs.in 122 122 a. Purpose: Stage the files identified by the checkfiles target and then build the WPI file. 123 123 b. REXX program: bld_fm2_wpidirs.cmd … … 126 126 1. Build the WPI file from the staged files and the latest script, fm2.wis. 127 127 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.wis128 4. fm2$(FM2_VER).wpi:: fm2.wis 129 129 a. Purpose: Build the WPI file when only the script has changed. 130 130 b. REXX program: bld_fm2_wpi.cmd