]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
README-NT-updates-20020108
authorJeremy Stribling <jstribl@us.ibm.com>
Wed, 9 Jan 2002 03:08:16 +0000 (03:08 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 9 Jan 2002 03:08:16 +0000 (03:08 +0000)
info on how to set up debugging environment and other updates

src/README-NT

index 90b27ace8b6d88726d7aad88a65e81acdb28a2db..ba1c1f0c4d07128df6ebdad91df569bb4694d2a1 100644 (file)
-Copyright 2000, International Business Machines Corporation and others.
-All Rights Reserved.
-
-This software has been released under the terms of the IBM Public
-License.  For details, see the LICENSE file in the top-level source
-directory or on-line at http://www.openafs.org/dl/license10.html
-
-Building OpenAFS on Windows NT
-------------------------------
-
-There are several steps that must be performed before a successful
-build of AFS on Windows NT can be completed. These steps are as follows:
-
-   A. Install a compiler
-   B. Add missing header files
-   C. Optional: Install Installshield 5.x
-   D. Optional: Install flex and bison
-   E. Configure the OpenAFS build environment
-   F. Begin the build
-
-Each step is explained in detail below:
-
-A. Install a compiler
-
-   You must install a copy of Microsoft Visual C++ 5.0 or 6.0. The
-   "Typical" install setting is sufficient. It may be possible to use
-   other compilers, but the source code as provided will work with MS
-   VC++ 5.0/6.0.
-
-B. Add missing header files
-
-   Files from Microsoft's Device Driver Development kits for NT and
-   Windows 9x are required to complete a build on NT. They are
-   copyrighted by Microsoft and so cannot be included with the OpenAFS
-   source tree. These files are:
-
-   netmpr.h
-   netspi.h
-   npapi.h
-
-   These files come from Microsoft DDKs as follows:
-
-   January 1997 Windows NT Workstation DDK - /ddk/frc/network/inc/npapi.h
-   July 1998 Windows 95 DDK - net/inc/netmpr.h and net/inc/netspi.h
-
-   The may also be available on more recent releases of the DDKs.
-   These files must live on the include path.
-
-C. Optional: Install Installshield 5.x
-
-   There are two ways to build OpenAFS on NT:
-      1. Build of the product, or
-      2. build of the product plus an installer package
-
-   In order to do the build that includes the installer package, a
-   copy of Installshield 5.x must be installed. NOTE: Installshield
-   versions 6 and higher WILL NOT WORK.
-
-   Optional DLL's missing for Install Script
-   Two Microsoft DLL's must be included at DEST\WinInstall\Config\.
-       SHLWAPI.DLL
-       WININET.DLL  
-
-       These files are only used for the Install, they will not be left 
-       on the target machine.
-
-D. Optional: Install flex and bison
-
-   There are two files in the source tree that are processed with lex
-   and yacc on UNIX systems, src/comerr/et_lex.lex.l and
-   src/comerr/error_table.y, that when processed produce the files
-   et_lex.lex_nt.c, error_table_nt.c, and error_table_nt.h.
-
-   Since NT does not include lex and yacc or any equivalent tools, we
-   have provided the output files that lex and yacc produce (using
-   Win32 ports of flex and bison). This will allow builds to work for
-   anyone who does not need to change the .l and .y files.
-
-   If you do need to change et_lex.lex.l, then you will need to
-   install Win32 port of flex on your system. Put flex.exe in a
-   directory on the path and rebuild.
-
-   If you do need to change error_table.y, then you will need to
-   install a Win32 port of bison on your system. Put bison.exe in a
-   directory on the path, configure bison as explained in step 5, and
-   rebuild.
-
-   You can also attempt to use other replacements for lex and yacc.
-   This will require modifying the LEX and YACC settings in
-   src/config/NTMakefile.i386_nt40. If the replacements require
-   different command line options than flex and bison, then you may
-   also need to change src/comerr/NTMakefile.
-
-E. Configure the OpenAFS build environment
-
-   A set of environment variables used by the OpenAFS makefiles must
-   be properly set for a build to successfully complete. The file
-   src/ntbuild.bat is a DOS-style batch file that will configure these
-   settings for you. Within this file there are the following lines
-   that must be set to match your system settings:
-
-   * set SYS_NAME=<sys type>
-
-   * set MSVCDIR=<path to vc directory of MS Visual C++>
-   Ex: set MSVCDIR=c:\progra~1\DevStudio\vc
-
-      This is the path to the compiler directory of the Microsoft Visual
-      C++ installation.
-
-   * set AFSDEV_INCLUDE=<default include directories>
-   Ex: set AFSDEV_INCLUDE=%MSVCDIR%\include;%MSVCDIR%\mfc\include
-
-      This contains a semicolon separated list of directories that
-      contain compiler provided include files. You should not need to 
-      edit this other than to point to the DDK includes not provided 
-      with the distribution
-
-   * set AFSROOT=<Root directory of OpenAFS - parent of the src directory>
-   Ex: set AFSROOT=d:\OpenAFS
-
-      This is the root directory of OpenAFS, which is the parent
-      directory of the src directory.
-
-   * set IS5ROOT=<root directory of the Installshield5 program files>
-   Ex: set IS5ROOT=d:\progra~1\instal~1\instal~1.1pr
-
-      This is the path to the Installshield5 program directory. You
-      should only define this if you have Installshield installed on
-      your computer and want to create the install script as part of
-      the build.
-
-   NOTES: There are other settings in ntbuild.bat, but the ones listed
-         above must be set correctly for the build to succeed.
-
-          As can be seen in the examples above, all paths in
-          ntbuild.bat must be in the old MSDOS 8.3 format.
-
-F. Set version and installation options
-
-       Modify .\src\config\NTMakefile.i386_nt40
-               AFSPRODUCT_VERSION  - Product version
-               CELLNAME_DEFAULT - The default AFS cell name
-               CELLSERVDB_INSTALL - The default name for the CellServDB included in the install script
-               CELLSERVDB_WEB  - The default web address to obtain CellServDB
-
-For Example:
-
- .\src\config\NTMakefile.i386_nt40
-
-   AFSPRODUCT_VERSION=1.1.1a
-   CELLNAME_DEFAULT=openafs.org
-   CELLSERVDB_INSTALL=CellServDB.GrandCentral
-   CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
-
-NOTE: If CELLNAME_DEFAULT has a '.' in cell name, then the name is assumed to be 
-a valid cell name and when the user installs AFS the AFS Control Center 
-will default to NOT installed!
-
-Version level may be specified in different formats, for example the following
-forms all have the same version level; however will be displayed differently:
-
-AFSPRODUCT_VERSION=1.1.1a
-AFSPRODUCT_VERSION=1.1.1 a
-AFSPRODUCT_VERSION=1.1.1.1
-AFSPRODUCT_VERSION=1.1.101
-
-Add CellServDB file to install area.
-        For the previous example you would add file:
-                DEST\Winistall\Config\CellServDB.GrandCentral
-
-G. Begin the build
-
- 1. Make sure you are running the default NT command shell, cmd.exe.
-    Other shells may work, but many do not.
-
- 2. Run the ntbuild.bat file that was configured in step 5. You can
-    include the word "checked" on the command line to create binaries
-    that include debug information, or the word "free" to create
-    binaries that do not include debug information.
-
-    For a debug build, run:
-       ntbuild checked
-
-    For a release build, run:
-       ntbuild free
-
- 3. Copy the file src/NTMakefile to the parent of the src directory.
-    You only need to do this once.
-
- 4. If you have not created a separate object build directory, edit NTMakefile and  
-    OBJ=obj to OBJ=src.
-
- 5. Begin the build. You can choose to build just the product bits,
-    or, if Installshield is installed, the product bits and the
-    install package.
-
-    To build just the product bits, run:
-       nmake /f NTMakefile install
-
-    To build the product bits and the install package, run:
-       nmake /f NTMakefile media
+This software has been released under the terms of the IBM Public\r
+License.  For details, see the LICENSE file in the top-level source\r
+directory or on-line at http://www.openafs.org/dl/license10.html\r
+\r
+The document now provides a step by step procedure that takes the user \r
+from a basic Windows NT/2000 workstation to an OpenAFS development \r
+environment.   Details are provided so that a 'beginning' windows \r
+developer can build an OpenAFS installable package for Windows NT/2000.  \r
+\r
+***********   Windows NT/2000 Build Process ****************\r
+\r
+Building OpenAFS for Windows requires configuring a Windows\r
+development system by installing compilation tools and header files.\r
+Open AFS Software development can be done on Windows NT or 2000.  The\r
+target system, where OpenAFS will be installed, should be either\r
+Windows NT or Windows 2000.  The building process is controlled by a\r
+nmake file that generates the necessary binaries and binds them into an\r
+install package.\r
+\r
+The following steps describe how to configure Windows 2000/NT:\r
+\r
+   A. Obtain a copy of the OpenAFS Source Tree\r
+   B. Install Compiler and Development tools.\r
+   C. Set up drive mappings.\r
+   D. Install SDK header files\r
+   E. Configure Environment variables\r
+   F. Set program version Level\r
+   G. Build Win2000 binaries\r
+   H. Install InstallShield 5.x\r
+   I. Build Win2000 InstallShield Package\r
+   J. Build Win2000 InstallShield Package for the Web\r
+   K. Final Results\r
+   L. Creating a Debug Environment\r
+   M. Optional Items\r
+   N. Required patches for 1.2.2a and earlier releases\r
+       \r
+The Software development tools with InstallShield require 900 MB\r
+storage.\r
+\r
+The Software development tools (without InstallShield) require 660 MB\r
+storage.\r
+\r
+The OpenAFS Source directory requires about 200 MB storage. The Source\r
+directory size includes additional space for files that will be\r
+generated during the build process.\r
+\r
+The following CDs are used in this example:\r
+       Microsoft SDK and Tools Jan 2001\r
+       Microsoft Visual Studio Version 6.0\r
+       InstallShield 5.5\r
+\r
+Different versions of above CDs can be used; however, building an\r
+install package for Windows NT/2000 requires InstallShield\r
+version 5.0 to 5.5 (version 6.0 or better will not work).  \r
+\r
+You can build all the necessary binaries without the InstallShield\r
+software. InstallShield is only needed to build an install package.\r
+\r
+STEP A. Obtain a copy of the Open AFS Source Tree.\r
+\r
+Transfer OpenAFS source tree onto your hardrive.  The source can be\r
+downloaded from the OpenAFS web site:\r
+       http://www.OpenAFS.org/release/snapindex.html.\r
+\r
+For this example, download source for version 1.2.2a using the\r
+following URL:\r
+http://www.openafs.org/dl/openafs/1.2.2a/openafs-1.2.2a-src.tar\r
+\r
+HINT: DailySnapShots are pre-release source trees and much more\r
+likely to have compilation errors. If this is your first attempt, do\r
+your build based on a release version of the source, e.g. 1.2.2.a. Once\r
+you have completed a build process successfully, you can experiment with\r
+other source trees.\r
+\r
+You will need an unzip utility that can expand compressed tar files.\r
+For example "Pkzip for Windows" from Pkware will uncompress tar files.\r
+(http://www.pkware.com/)\r
+\r
+Expand the downloaded tar file (openafs-1.2.2a-src.tar) into target\r
+directory (c:\OpenAFS), the unzip routine will expand the source into a\r
+subdirectory tree:\r
+               c:\OpenAFS\OpenAFS-1.2.2a\src\r
+\r
+Copy files NTMAKEFILE from 'src' to the AFS base directory:\r
+\r
+From a DOS command prompt window, enter the following copy commands:\r
+\r
+copy c:\OpenAFS\OpenAFS-1.2.2a\src\NTMAKEFILE c:\OpenAFS\OpenAFS-1.2.2a\.\r
+\r
+The AFS base directory should look something like the following:\r
+\r
+c:\OpenAFS\OpenAFS-1.2.2a\\r
+  NTMakefile\r
+  src\r
+         \r
+STEP B. Install compiler and development tools.\r
+\r
+Install a copy of Microsoft Visual C++ 5.0 or 6.0. The "Typical" install\r
+setting is sufficient.\r
+\r
+(1) You can reduce the installation size by selecting "Custom" install\r
+and remove all but the following Options:\r
+\r
+       Microsoft Visual C++\r
+       Data Access\r
+\r
+(2) When asked, Select to Register Environment Variables.\r
+\r
+(3) After rebooting you have to choice to install additional software\r
+packages. It is not necessary to install these packages.\r
+\r
+STEP C. Map development drive letters.\r
+\r
+The following documentation will assume you are mapping the Y: drive to\r
+the OpenAFS source directory and you are mapping X: drive to your\r
+development tools directory. Other configurations will work, including\r
+not mapping any drives, as long as the path assignments are consistent\r
+and you don't exceed the maximum environment variable length.\r
+\r
+Y: drive mapping provides a consistent directory location to build from.\r
+Building OpenAFS will require you to open up a command DOS prompt,\r
+navigate to drive Y: and execute the nmake file.  The source is based\r
+from Y: drive and the generated files are based from Y:\DEST.  If the OpenAFS \r
+source tree is at a different location, you only need to re-map the\r
+Y: drive.\r
+\r
+X: drive mapping shortens the length of several Environment variables\r
+by mapping it to a directory where Visual Studio is installed. Although\r
+this step is not important when using Windows NT or 2000 as a\r
+development OS, it does reduce the chance of typing errors during\r
+the configuration phase.\r
+\r
+From a DOS command window enter the following commands:\r
+\r
+SUBST  y: c:\OpenAFS\OpenAFS-1.2.2a\r
+SUBST  x: "c:\Program Files\Microsoft Visual Studio\VC98"\r
+\r
+SUBST is persistent across DOS command prompts; that is, if you open up\r
+another DOS command prompt the mapped drives are still defined.\r
+However, if you reboot the mapped drives using SUBST will be lost.  \r
+\r
+If you need to remove Y: drive mapping, execute the following command\r
+from a DOS command prompt window:\r
+\r
+SUBST  y: /d\r
+\r
+STEP D. Install SDK header files.\r
+\r
+Files from Microsoft's Platform SDK for NT or 98 are required to\r
+complete a build on NT/2000.\r
+\r
+The header files that are required are found from a Microsoft SDK are:\r
+\r
+   netspi.h\r
+   npapi.h\r
+\r
+To Install Platform SDK from CDROM\r
+       \r
+       Run "setup.exe default.htm" from CDROM:\r
+       Select Microsoft Core SDK\r
+       Select Sample and Source\r
+       Select installation path x:\SDK\r
+\r
+To Install Windows SDK from WEB:\r
+       http://www.microsoft.com/sdk\r
+\r
+STEP E. Configure the OpenAFS build environment.\r
+\r
+The following environment variables should be set:\r
+\r
+SET AFSDEV_LIB=%LIB%\r
+SET AFSROOT=Y:\r
+SET SYS_NAME=i386_nt40\r
+SET _WIN32_IE=0x400\r
+SET MSSDK=X:\Sdk\r
+SET MSTOOLS=X:\Sdk\r
+SET MSVCDIR=X:\r
+SET AFSDEV_BIN=X:\BIN\r
+SET AFSDEV_BUILDTYPE=FREE\r
+SET AFSDEV_INCLUDE=X:\Sdk\samples\winbase\security\winnt\logonNP;X:\Sdk\Include\ATL30;X:\Sdk\Include;%INCLUDE%\r
+\r
+Please do not include unnecessary spaces in AFSDEV_INLCUDE.\r
+\r
+Create a batch file (SETAFS.BAT) to make these settings that can be \r
+executed when you bring up a DOS command prompt window.  Environment \r
+variables are not persistent, if you close the DOS command window \r
+or reboot, the environment variables are lost and they must be \r
+recreated when you open a new DOS command prompt window.\r
+\r
+HINT: SET AFSDEV_BUILDTYPE=CHECKED if you want debug information\r
+included in your binaries.\r
+\r
+HINT: Adding drive mapping commands to the batch file makes it easy to\r
+establish your development environment even if you logoff.  I suggest\r
+adding the following lines to the beginning of the batch file:\r
+\r
+SUBST  y: /d\r
+SUBST  x: /d\r
+SUBST  y: c:\OpenAfs\OpenAFS-1.2.2a\r
+SUBST  x: "c:\Program Files\Microsoft Visual Studio\VC98"\r
+\r
+HINT: Windows 2000/NT provides an alternate way to set environment\r
+variables in System Proprieties.  These can be accessed from the system\r
+control panel, advanced tab, Environment Variables.  These are\r
+persistent and will be reset every time a DOS command prompt window is\r
+opened.\r
+\r
+STEP F. Set version and installation options\r
+\r
+Add a CellServDB file to install area. CellServDB contains the entries\r
+for the various cell names.  You can download a general purpose one\r
+from:\r
+       http://grand.central.org/dl/cellservdb/CellServDB\r
+then copy it to Y:\DEST\Wininstall\Config\CellServDB.GrandCentral\r
+\r
+Note: Create directory Y:\DEST\Wininstall\Config\ if it doesn't exist.\r
+\r
+Edit file Y:\src\config\NTMakefile.i386_nt40\r
+       AFSPRODUCT_VERSION  - Product version\r
+       CELLSERVDB_INSTALL - The default file name for the CellServDB\r
+       included in the install Package.\r
+       CELLNAME_DEFAULT -  The default home cell name.\r
+       CELLSERVDB_WEB  - The default web address to obtain CellServDB\r
+\r
+For example: in the file Y:\src\config\NTMakefile.i386_nt40 you would\r
+see the following:\r
+\r
+   AFSPRODUCT_VERSION=1.2.2a\r
+   CELLNAME_DEFAULT=home.cell.com\r
+   CELLSERVDB_INSTALL=CellServDB.GrandCentral\r
+   CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB\r
+\r
+During the Open AFS installation process the user will be presented\r
+with two choices for the CellServDB: Local copy (CELLSERVDB_INSTALL) and\r
+one that can be downloaded from the web (CELLSERVDB_WEB).\r
+\r
+HINT: The product version number (AFSPRODUCT_VERSION) can be changed to\r
+create a new version number.  For example if you have added source\r
+changes to OpenAFS-1.2.2a and you wanted to create a new version level,\r
+you may want to use the following: AFSPRODUCT_VERSION=1.2.2b\r
+\r
+STEP G. Begin the build\r
+\r
+(1) From Windows 2000 open up a DOS prompt window.\r
+\r
+(2) Clean the work area.\r
+\r
+    nmake /f NTMakefile clean\r
+\r
+(3) Build the complete Windows NT/2000 development environment.\r
+\r
+    nmake /f NTMakefile install\r
+\r
+While the build is running you will see many compile warnings. This\r
+behavior is normal; the build process is successful as long as the build\r
+process doesn't terminate with an error ("nmake.exe return code 0x2")\r
+and it displays 'Build Finished Successfully'.\r
+\r
+STEP H. Install InstallShield (optional).\r
+\r
+In order to build an install package for OpenAFS, InstallShield 5.5\r
+must be installed along with InstallShield East and West\r
+multi-Language packs.\r
+\r
+(1) Install InstallShield (version between 5.0 and  5.5)\r
+\r
+For minimum installation choose "compact".\r
+\r
+(2) Install West Language Pack (5.5)\r
+\r
+(3) Install East Language Pack (5.5)\r
+\r
+NOTE: InstallShield's versions 6 and higher WILL NOT WORK for\r
+Windows NT/2000 build process.\r
+\r
+(4) Add necessary DLL's to work with the InstallShield package.\r
+\r
+Two Microsoft DLL's are missing from the InstallShield package. These\r
+DLL's must be copied to Y:\DEST\WinInstall\Config\:\r
+       SHLWAPI.DLL \r
+       WININET.DLL\r
+\r
+These files are only used during the installation, and they will not \r
+be left on the target machine.  They can be located at \r
+%SystemRoot%\SYSTEM32.\r
+\r
+From a DOS command prompt window enter the following commands:\r
+\r
+copy %systemRoot%\System32\SHLWAPI.DLL y:\dest\wininstall\config\.\r
+copy %systemRoot%\System32\WININET.DLL y:\dest\wininstall\config\.\r
+\r
+(5) Add two Environment variables to the bottom of the batch file,\r
+SETAFS.BAT (see STEP E:).\r
+\r
+SET IS5ROOT="C:\Program Files\InstallShield\InstallShield 5.5 Professional Edition"\r
+SET AFSDEV_INCLUDE=%AFSDEV_INCLUDE%;%IS5ROOT%\Include\r
+\r
+STEP I.  Build Win2000 InstallShield package\r
+\r
+From the DOS command prompt window run:\r
+\r
+       Y:\r
+    nmake /f NTMakefile media\r
+\r
+While the build is running you will see a few compile warnings. This\r
+behavior is normal; the build process is successful as long as the build\r
+process doesn't terminate with an error ("nmake.exe return code 0x2")\r
+and it displays 'Install Script Finished Successfully'.\r
+\r
+STEP J.  Build Win2000 InstallShield package for the Web\r
+\r
+InstallShield's PackageForTheWeb combines the installation files into a\r
+single application file that will expand on execution and lead you\r
+through the OpenAFS installation.   \r
+\r
+Install PackageForTheWeb 3 from InstallShield\r
+\r
+Add Environment variables to the bottom of the batch file, SETAFS.BAT\r
+(see STEP E:).\r
+\r
+SET ISWEB="C:\Program Files\InstallShield\PackageForTheWeb 3"\r
+\r
+From the DOS command prompt window run:\r
+\r
+       Y:\r
+    nmake /f NTMakefile media\r
+\r
+While the build is running you will see a few compile warnings. This\r
+behavior is normal; the build process is successful as long as the build\r
+process doesn't terminate with an error ("nmake.exe return code 0x2") and\r
+it displays 'Install Script Finished Successfully'.\r
+\r
+HINT:  It is only necessary to run "nmake /f NTMakefile media" once, by \r
+combining steps I & J.     \r
+\r
+STEP K. Final Results\r
+\r
+The build process generates its binaries in Y:\DEST. The subdirectory\r
+would look like the following:\r
+\r
+Y:\DEST\r
+       bin\r
+       etc\r
+       include\r
+       lib\r
+       root.client\r
+       root.server\r
+       WinInstall\r
+\r
+Y:\DEST\Bin - contains build utilities.\r
+Y:\DEST\root.client - contains Open AFS binaries\r
+Y:\DEST\root.server - contain Open AFS Server binaries\r
+Y:\DEST\WinInstall\PackageWeb\AFSforWindows.exe - is the Web install\r
+package for Open AFS.\r
+Y:\DEST\WinInstall\ - are the install package files for Open AFS\r
+\r
+Step L. Creating a Debug Environment\r
+\r
+Instructions on building a debugging environment from Visual Studio C++\r
+workspace.  This example give the user a way to step through the source\r
+code for AFSCREDS.EXE.\r
+\r
+These instructions are to be followed after you have set up the\r
+development environment.\r
+\r
+The following steps must be done before you can build a debug\r
+environment:\r
+\r
+1. Set up the development environment as described above\r
+2. set AFS_BUILDTYPE=CHECKED to get debug information.\r
+3. You must use environment variables in System Properties\r
+4. Do a complete build.\r
+\r
+To set the the environment variables in the System Properties:\r
+1. Select the 'System' icon in the control Panel\r
+2. Select the 'Advanced' tab\r
+3. Select the 'Environment Variables' button\r
+4. In the user area set all variables as you did above that\r
+were used in the setafs.bat file.\r
+\r
+To build a new work space to debug afs_creds.exe:\r
+\r
+1. Create New Workspace  - \r
+Select from Microsoft Visual C++ toolbar file New\r
+Select from 'new' Project Tab Makefile Project name: Creds\r
+Location Y:\src\winnt\client_creds\r
+Select OK\r
+\r
+From Dialog Box 'Makefile - Step 1 of 2'\r
+command line= nmake /f"ntmakefile" install\r
+Output = y:\dest\root.client\usr\vice\etc\AFSCREDS.EXE\r
+Select NEXT\r
+\r
+Dialog Box 'Makefile - Step 2 of 2'\r
+Command line= nmake /f"ntmakefile" install\r
+Output = y:\dest\root.client\usr\vice\etc\AFSCREDS.EXE\r
+\r
+Select Finish\r
+\r
+Switch to FileView\r
+Right click on 'Source Files' and select 'Add Files to folder', select\r
+all *.cpp files.\r
+\r
+Right click on 'Header Files' and select 'Add Files to folder', select\r
+all *.h files.\r
+\r
+Right click on 'creds files' and select 'New Folder'\r
+Fill name in 'Build'\r
+\r
+From the toolbar select Build\r
+Select 'Build All'\r
+\r
+You should see the following string when the compile is finished:\r
+"afs_creds.exe - 0 errors(0), 0 warnings(s)"\r
+\r
+Press <F5> to execute afs_creds.exe.\r
+\r
+STEP M. Optional Items\r
+\r
+The build process has an error table that is compiled for many OpenAFS\r
+applications.  This table is generated by Unix based tools.  It is not\r
+normally necessary to modify this table so pre-generated source files\r
+are included in the OpenAFS source.  If you need to make modifications\r
+in these areas the Unix base tools that run on Windows can be found on\r
+the web. For example:\r
+\r
+       http://cygwin.com/\r
+\r
+Below is a short explanation how to update the error table.\r
+\r
+(1) Install flex and bison from a Unix based tool provider.\r
+\r
+(2) Make changes to the source files.\r
+\r
+There are two files in the source tree that are processed with lex\r
+and yacc on UNIX systems, src/comerr/et_lex.lex.l and\r
+src/comerr/error_table.y, that when processed produce the files\r
+et_lex.lex_nt.c, error_table_nt.c, and error_table_nt.h.\r
+\r
+Since NT does not include lex and yacc or any equivalent tools, we\r
+have provided the output files that lex and yacc produce (using Win32\r
+ports of flex and bison). This will allow builds to work for anyone\r
+who does not need to change the .l and .y files.\r
+\r
+If you do need to change et_lex.lex.l, then you will need to install\r
+Win32 port of flex on your system. Put flex.exe in a directory on the\r
+path and rebuild.\r
+\r
+If you do need to change error_table.y, then you will need to install\r
+a Win32 port of bison on your system. Put bison.exe in a directory on\r
+the path, configure bison as explained in step 5, and rebuild.\r
+\r
+You can also attempt to use other replacements for lex and yacc. This\r
+will require modifying the LEX and YACC settings in\r
+/config/NTMakefile.i386_nt40. If the replacements require different\r
+command line options than flex and bison, then you may also need to\r
+change src/comerr/NTMakefile.\r
+\r
+(3) Generate new OpenAFS binaries\r
+\r
+\r
+STEP N. Required patches for 1.2.2a and earlier releases\r
+\r
+There are two set of patches must be applied to 1.2.2a source to\r
+successfully build the binaries:\r
+\r
+(1)  Patches applied to 1.2.2a to build binaries, excluding install\r
+package.\r
+\r
+diff -Nur --exclude-from=exclude bas/src/NTMakefile upd/src/NTMakefile\r
+--- bas/src/NTMakefile Wed Nov 14 19:38:06 2001\r
++++ upd/src/NTMakefile Mon Dec  3 14:41:12 2001\r
+@@ -471,6 +471,7 @@\r
+       $(CD) $(OBJ)\$@\r
+       $(NTMAKE)\r
+       $(CD) ..\..     \r
++      echo Build Finished Successfully\r
\r
+ install: start finale\r
\r
+@@ -487,6 +488,7 @@\r
+       $(CD) ..\..\..\..\r
\r
+ media: InstallShield5\r
++      echo Install Script Finished Successfully\r
\r
\r
+(2)  Patches applied to 1.2.2a to build install package.\r
+\r
+diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/NTMakefile upd/src/WINNT/afsd/NTMakefile\r
+--- bas/src/WINNT/afsd/NTMakefile      Tue Nov 20 22:45:40 2001\r
++++ upd/src/WINNT/afsd/NTMakefile      Wed Dec  5 11:42:46 2001\r
+@@ -169,8 +169,8 @@\r
+       $(EXEDIR)\tokens.exe \\r
+       $(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \\r
+       $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \\r
+-      $(LOGON_DLLFILE) $(LOG95_DLLFILE) \\r
+-      $(EXEDIR)\afsshare.exe \\r
++      $(LOGON_DLLFILE) \\r
++      $(EXEDIR)\afsshare.exe \\r
+       $(DESTDIR)\bin\kpasswd.exe\r
\r
+ install9X: install_headers $(CONF_DLLFILE) \\r
+\r
+diff -Nur --exclude-from=exclude bas/src/WINNT/install/InstallShield5/NTMakefile upd/src/WINNT/install/InstallShield5/NTMakefile\r
+--- bas/src/WINNT/install/InstallShield5/NTMakefile    Wed Nov 14 19:38:50 2001\r
++++ upd/src/WINNT/install/InstallShield5/NTMakefile    Mon Dec  3 16:43:08 2001\r
+@@ -60,7 +60,7 @@\r
+               $(MKDIR) $(DESTDIR)\Wininstall\PackageWeb\r
+ !     ENDIF\r
+       $(DEL) /q $(DESTDIR)\Wininstall\PackageWeb\*.*\r
+-      $(ISWEB)\Pftwwiz.exe $(AFSROOT)\src\winnt\install\InstallShield5\PackageWeb.pfw -s -a \r
++      "$(ISWEB)\Pftwwiz.exe" $(AFSROOT)\src\winnt\install\InstallShield5\PackageWeb.pfw -s -a \r
+ !ENDIF\r
+       xcopy /s/e/y "Media\OpenAFS\Disk Images\disk1\*.*" $(DESTDIR)\WinInstall\r
+       copy AFS_component_version_number.txt $(DESTDIR)\WinInstall\Version.txt\r
+diff -Nur --exclude-from=exclude bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC\r
+--- bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC   Thu Sep  6 20:54:58 2001\r
++++ upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC   Mon Dec  3 15:11:46 2001\r
+@@ -10,7 +10,7 @@\r
+ #define APSTUDIO_HIDDEN_SYMBOLS\r
+ #include "windows.h"\r
+ #undef APSTUDIO_HIDDEN_SYMBOLS\r
+-#include <.\sdrc.h>\r
++#include <sdrc.h>\r
\r
+ /////////////////////////////////////////////////////////////////////////////\r
+ #undef APSTUDIO_READONLY_SYMBOLS\r
+diff -Nur --exclude-from=exclude bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep\r
+--- bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep  Thu Sep  6 20:54:58 2001\r
++++ upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep  Wed Dec 31 16:00:00 1969\r
+@@ -1,5 +0,0 @@\r
+-# Microsoft Developer Studio Generated Dependency File, included by _IsUser.mak\r
+-\r
+-.\_Isuser.RC : \\r
+-      ".\sdrc.h"\\r
+-      \r
+diff -Nur --exclude-from=exclude bas/src/WINNT/afs_setup_utils/_isuser/ntmakefile upd/src/WINNT/afs_setup_utils/_isuser/ntmakefile\r
+--- bas/src/WINNT/afs_setup_utils/_isuser/ntmakefile   Mon Sep 10 09:39:50 2001\r
++++ upd/src/WINNT/afs_setup_utils/_isuser/ntmakefile   Mon Dec  3 15:16:04 2001\r
+@@ -30,14 +30,6 @@\r
+ "$(OUTDIR)" ::\r
+     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"\r
\r
+-HEADERS = ".\sdrc.h"\r
+-\r
+-".\sdrc.h" : $(IS5ROOT)\INCLUDE\sdrc.h\r
+-    $(COPY) $(IS5ROOT)\INCLUDE\sdrc.h .\r
+-!   IF EXIST($(IS5ROOT)\Script\ISRT\Include\sdrc.h)\r
+-    $(COPY) $(IS5ROOT)\Script\ISRT\Include\sdrc.h .\r
+-!      ENDIF\r
+-\r
+ CPP=cl.exe\r
+ CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ISUSER_EXPORTS" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \r
\r
+@@ -85,20 +77,10 @@\r
+       "$(INTDIR)\_isuser.obj" \\r
+       "$(INTDIR)\_Isuser.res"\r
\r
+-"$(OUTDIR)\_IsUser.dll" : "$(OUTDIR)" $(HEADERS) $(DEF_FILE) $(LINK32_OBJS)\r
++"$(OUTDIR)\_IsUser.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)\r
+     $(LINK32) @<<\r
+   $(LINK32_FLAGS) $(LINK32_OBJS)\r
+ <<\r
+-\r
+-\r
+-!IF "$(NO_EXTERNAL_DEPS)" != "1"\r
+-!IF EXISTS("_IsUser.dep")\r
+-!INCLUDE "_IsUser.dep"\r
+-!ELSE \r
+-!MESSAGE Warning: cannot find "_IsUser.dep"\r
+-!ENDIF \r
+-!ENDIF \r
+-\r
\r
+ SOURCE=.\_isuser.c\r