-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