mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 06:50:12 +00:00
4042667388
Fix spelling errors in readme files. Change-Id: I62348372d5e226f2b2a3a7732b4a5f8c7331b2ff Reviewed-on: http://gerrit.openafs.org/8876 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
463 lines
15 KiB
Plaintext
463 lines
15 KiB
Plaintext
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
|
|
|
|
The document now provides a step by step procedure that takes the user
|
|
from a basic Windows 2000/XP/2003/Vista/2008 workstation to an OpenAFS
|
|
development environment. Details are provided so that a 'beginning'
|
|
windows developer can build an OpenAFS installable package for Windows
|
|
2000/XP/2003/Vista/2008.
|
|
|
|
NOTE 1:
|
|
As of the OpenAFS 1.3 release series, Windows platforms released
|
|
prior to Windows 2000 are no longer supported. As of the OpenAFS 1.5
|
|
series, the Windows 9x components are being removed from the source tree.
|
|
|
|
|
|
****** Windows XP/2003/Vista/2008/Win7/2008-R2 Build Process ******
|
|
|
|
Building OpenAFS for Windows requires configuring a Windows
|
|
development system by installing compilation tools and header files.
|
|
Open AFS Software development can be done on XP, 2003, Vista, Win7,
|
|
or 2008 system. The target system, where OpenAFS will be installed,
|
|
can be one of:
|
|
|
|
* Windows XP
|
|
* Windows XP SP2
|
|
* Windows 2003
|
|
* Windows 2003 SP1
|
|
* Windows XP 64
|
|
* Windows 2003 64
|
|
* Windows 2003 R2 (32 or 64)
|
|
* Windows Vista (32 or 64)
|
|
* Windows 2008 (64)
|
|
* Windows 7 (32 or 64)
|
|
* Windows 2008 R2 (64)
|
|
|
|
The build process is controlled by a nmake file that generates the
|
|
necessary binaries and binds them into an install package.
|
|
|
|
The following steps describe how to configure the development environment:
|
|
|
|
A. Obtain a copy of the OpenAFS Source Tree
|
|
B. Install Compiler and Development tools.
|
|
C. Install SDK header files
|
|
D. Configure NTBUILD.BAT
|
|
E. Set program version Level
|
|
F. Build the binaries
|
|
G. Install NSIS 2.30
|
|
H. Build NSIS Install Package
|
|
I. Install Wix 2.0.5325
|
|
J. Build Wix MSI Install Package
|
|
K. Final Results
|
|
L. Optional Items
|
|
|
|
The Microsoft development tools require anywhere from 660 MB to 1.8GB
|
|
of storage depending on which compilers are selected. The following
|
|
versions are supported:
|
|
|
|
Microsoft Visual Studio .NET 2005
|
|
available via a MSDN subscription
|
|
(used for OpenAFS.org distribution)
|
|
|
|
Microsoft Visual Studio 2008
|
|
available via a MSDN subscription
|
|
|
|
One of the following Microsoft SDKs is required:
|
|
|
|
Microsoft SDK for Windows 6.1
|
|
Microsoft SDK for Windows 7.0
|
|
|
|
One of the following Microsoft DDK/WDK is required:
|
|
|
|
Microsoft Windows Driver Kit 7600
|
|
|
|
NOTE: Not all combinations of Visual Studio, SDK, and DDK/WDK are
|
|
known to work. OpenAFS for Windows is packaged by Secure Endpoints Inc.
|
|
using the following configurations:
|
|
|
|
32-bit Packages:
|
|
Built on Windows 7
|
|
Visual Studio 2008
|
|
Windows [Platform] SDK 6.0a
|
|
Windows DDK 7600
|
|
Target: i386_w2k
|
|
APPVER: 5.0
|
|
|
|
64-bit Packages:
|
|
Built on Windows 7
|
|
Visual Studio 2008
|
|
Windows [Platform] SDK 6.0a
|
|
Windows DDK 7600
|
|
Target: amd64_w2k
|
|
APPVER: 5.02
|
|
|
|
The Microsoft HTML Help Workshop is required:
|
|
|
|
http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en
|
|
|
|
The Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1 is required:
|
|
|
|
http://www.microsoft.com/downloads/details.aspx?FamilyId=AD6158D7-DDBA-416A-9109-07607425A815&displaylang=en
|
|
|
|
ActiveState Perl 5.10 is required for man-page generation
|
|
|
|
http://www.activestate.com/activeperl/
|
|
|
|
Cygwin is required for Docbook to HTML and Docbook to HTMLHelp conversion
|
|
|
|
http://cygwin.com/setup.exe
|
|
|
|
Doxygen is required for Developer Documentation generation
|
|
|
|
http://www.stack.nl/~dimitri/doxygen/
|
|
|
|
The NSIS installer requires about 14 MB of storage. The following
|
|
version is supported:
|
|
|
|
Nullsoft Scriptable Installation System 2.44
|
|
http://sourceforge.net/project/showfiles.php?group_id=22049&package_id=15374
|
|
(Be sure to use the strlen 8192 binaries)
|
|
|
|
The WiX installer requires about 18 MB of storage. The following
|
|
version is supported:
|
|
|
|
Wix 2.0.5325.0
|
|
http://prdownloads.sourceforge.net/wix/sources-2.0.5325.0.zip
|
|
|
|
The OpenAFS Source directory requires about 360 MB storage. The Source
|
|
directory size includes additional space for files that will be
|
|
generated during the build process. A full build of Free and Checked
|
|
installers on 64-bit Windows will require up to 1GB of storage.
|
|
|
|
|
|
STEP A. Obtain a copy of the Open AFS Source Tree.
|
|
|
|
Transfer OpenAFS source tree onto your hardrive. The source can be
|
|
downloaded from the OpenAFS web site:
|
|
http://www.OpenAFS.org/release/snapindex.html.
|
|
|
|
For this example, download source for version 1.5.61 using the
|
|
following URL:
|
|
http://www.openafs.org/dl/openafs/1.5.61/openafs-1.5.61-src.tar
|
|
http://www.openafs.org/dl/openafs/1.5.61/openafs-1.5.61-doc.tar
|
|
|
|
HINT: DailySnapShots are pre-release source trees and much more
|
|
likely to have compilation errors. If this is your first attempt, do
|
|
your build based on a release version of the source, e.g. 1.5.61. Once
|
|
you have completed a build process successfully, you can experiment with
|
|
other source trees.
|
|
|
|
You will need an unzip utility that can expand compressed tar files.
|
|
For example "Pkzip for Windows" from Pkware will uncompress tar files.
|
|
(http://www.pkware.com/)
|
|
|
|
Expand the downloaded tar files into target directory (c:\OpenAFS),
|
|
the unzip routine will expand the source into a subdirectory tree:
|
|
c:\OpenAFS\OpenAFS-1.5.61\
|
|
|
|
Copy the files 'NTMakefile' and 'ntbuild.bat' from the 'src'
|
|
subdirectory to the OpenAFS base directory (aka %AFSROOT%):
|
|
|
|
From a DOS command prompt window, enter the following copy commands:
|
|
|
|
cd c:\OpenAFS\OpenAFS-1.5.61
|
|
copy src\ntbuild.bat .
|
|
|
|
The OpenAFS base directory should look something like the following:
|
|
|
|
c:\OpenAFS\OpenAFS-1.5.61\
|
|
NTMakefile
|
|
ntbuild.bat
|
|
src
|
|
doc
|
|
|
|
STEP B. Install compiler and development tools.
|
|
|
|
Install a copy of Microsoft Visual Studio .NET, Visual Studio .NET 2003,
|
|
or Visual Studio .NET 2005. Visual Studio 2008 can be used to produce
|
|
builds but the resulting binaries cannot be used on Windows 2000.
|
|
|
|
(1) You can reduce the installation size by selecting "Custom" install
|
|
and remove all but the following Options:
|
|
|
|
Microsoft Visual C++
|
|
Data Access
|
|
|
|
(2) When asked, Select to Register Environment Variables.
|
|
|
|
|
|
STEP C. Install SDK header files.
|
|
|
|
Files from Microsoft's Platform SDK for Windows Server 2003 SP1 are
|
|
required to complete a build on Windows 2000/XP/2003. At a minimum the
|
|
following components are known to be required:
|
|
|
|
* Core
|
|
* Data Access
|
|
* Installer
|
|
* Windows Management Instrumentation
|
|
* Web Workshop (IE)
|
|
|
|
It is advised that you install the entire SDK. The SDK can be obtained
|
|
from:
|
|
|
|
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
|
|
|
by using Internet Explorer 5.x or higher. (Active X controls are required)
|
|
|
|
The header files that are required from a Microsoft SDK/WDK are:
|
|
|
|
npapi.h (Windows 2000,XP,2003 builds)
|
|
netcfgx.h (NSIS Loopback Adapter installer - Windows 2000,XP,2003 builds)
|
|
netcfgn.h (NSIS Loopback Adapter installer - Windows 2000,XP,2003 builds)
|
|
normalization.h (AFS Cache Manager)
|
|
|
|
These files come from the following Microsoft DDKs/SDKs:
|
|
|
|
npapi.h:
|
|
Windows XP SP2 Platform SDK - include/
|
|
|
|
netcfgn.h, netcfgx.h:
|
|
Windows XP/2003 DDK - inc/wxp/
|
|
|
|
normalization.h:
|
|
Microsoft IDN Mitigation APIs 1.1 - include/
|
|
|
|
STEP D. Configure NTBUILD.BAT.
|
|
|
|
The NTBUILD.BAT file copied to the OpenAFS base directory must be
|
|
customized for use on your development system. The provided NTBUILD.BAT
|
|
was developed for use with Visual Studio 2003 and the Windows Server 2003
|
|
Platform SDK. It requires significant modification to construct a build
|
|
environment for use with other tools.
|
|
|
|
The following variables must be defined to match your configuration:
|
|
|
|
AFSVER_CL: Set to 1200 if using MS Visual C++ 6.0
|
|
Set to 1300 if using MS Visual Studio .NET
|
|
Set to 1310 if using MS Visual Studio .NET 2003
|
|
Set to 1400 if using MS Visual Studio .NET 2005
|
|
Set to 1500 if using MS Visual Studio 2008
|
|
|
|
MSVCDIR: Set to the short name version of the directory into which
|
|
the visual C++ compiler was installed regardless of version
|
|
|
|
MSVCDIR64: On AMD64 systems, set to the 64-bit visual C++ compiler
|
|
|
|
MSSDKDIR: Set to the short name of the directory into which
|
|
the Platform SDK was installed
|
|
|
|
NTDDKDIR: Set to the short name of the INC\WNET DDK directory
|
|
|
|
NTDDKDIR2: Set to the short name of the INC\CRT DDK directory
|
|
|
|
MSIDNNLS: Set the the name of the Microsoft IDN Mitigation APIs 1.1
|
|
directory
|
|
|
|
AFSROOT: Set to the short name of the OpenAFS Base directory. This
|
|
cannot be set to a UNC path.
|
|
|
|
SYS_NAME: One of "i386_w2k" or "amd64_w2k"
|
|
|
|
APPVER: 0x500 for Windows 2000 and above; 0x502 for AMD64 systems
|
|
|
|
_WIN32_IE: Must match APPVER
|
|
|
|
MSVCVer: Set to 8.0 if using Visual Studio 8
|
|
|
|
CODESIGN_DESC: Product Name
|
|
|
|
CODESIGN_TIMESTAMP: Time Stamp Service for Code Signing Certificate
|
|
|
|
CODESIGN_URL: Support URL Displayed to End Users
|
|
|
|
CODESIGN_CROSS_CERT: Path to Microsoft Cross Signing Certificate
|
|
(if you have one)
|
|
|
|
|
|
STEP E. Set version and installation options (optional)
|
|
|
|
Add a CellServDB file to install area. CellServDB contains the entries
|
|
for the various cell names. You can download a general purpose one
|
|
from:
|
|
http://grand.central.org/dl/cellservdb/CellServDB
|
|
then copy it to %AFSROOT%\src\WINNT\install\NSIS and name it afsdcell.ini
|
|
|
|
Edit file %AFSROOT%\src\config\NTMakefile.i386_w2k or NTMakefile.amd64_w2k
|
|
as appropriate:
|
|
|
|
AFSPRODUCT_VER_MAJOR - Version Major Number
|
|
AFSPRODUCT_VER_MINOR - Version Minor Number
|
|
AFSPRODUCT_VER_PATCH - Version Patch Number
|
|
AFSPRODUCT_VER_BUILD - Version Build Number
|
|
CELLSERVDB_INSTALL - The default file name for the CellServDB
|
|
included in the install Package.
|
|
CELLNAME_DEFAULT - The default home cell name.
|
|
CELLSERVDB_WEB - The default web address to obtain CellServDB
|
|
|
|
For example: in the file %AFSROOT%\src\config\NTMakefile.i386_w2k you would
|
|
see the following:
|
|
|
|
AFSPRODUCT_VER_MAJOR=1
|
|
AFSPRODUCT_VER_MINOR=5
|
|
AFSPRODUCT_VER_PATCH=6100
|
|
AFSPRODUCT_VER_BUILD=0
|
|
CELLNAME_DEFAULT=openafs.org
|
|
CELLSERVDB_INSTALL=CellServDB.GrandCentral
|
|
CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
|
|
|
|
During the OpenAFS installation process the user will be presented
|
|
with two choices for the CellServDB: Local copy (CELLSERVDB_INSTALL) and
|
|
one that can be downloaded from the web (CELLSERVDB_WEB).
|
|
|
|
IMPORTANT: When building your own binaries, you must set the AFSPRODUCT_VER_BUILD
|
|
value to a number greater than 1023. All values 0 to 1023 are reserved for use
|
|
by official OpenAFS.org releases. A failure to do so will result in Windows
|
|
Crash Reports for your binaries being delivered to OpenAFS.org for analysis.
|
|
|
|
|
|
STEP F. Begin the build
|
|
|
|
(1) From Windows 2000/XP/2003 open up a DOS prompt window.
|
|
|
|
(2) Change to the %AFSROOT% directory
|
|
|
|
(3) Configure the environment variables:
|
|
|
|
For a release build (SMB version):
|
|
|
|
(a) Execute the VCVARS32.BAT or VSVARS32.BAT file which part of the
|
|
Visual Studio environment you installed.
|
|
|
|
(b) Execute the SETENV.BAT file with the parameters "/2000 /RETAIL"
|
|
|
|
(c) Execute the NTBUILD.BAT file with the parameter "free"
|
|
|
|
For a debug build (SMB version):
|
|
|
|
(a) Execute the VCVARS32.BAT or VSVARS32.BAT file which part of the
|
|
Visual Studio environment you installed.
|
|
|
|
(b) Execute the SETENV.BAT file with the parameters "/2000 /DEBUG"
|
|
|
|
(c) Execute the NTBUILD.BAT file with the parameter "checked"
|
|
|
|
(4) Build the complete Windows 2000/XP/2003 development environment.
|
|
|
|
nmake /f NTMakefile install
|
|
|
|
While the build is running you will see many compile warnings. This
|
|
behavior is normal; the build process is successful as long as the build
|
|
process doesn't terminate with an error ("nmake.exe return code 0x2")
|
|
and it displays 'Build Finished Successfully'. Note that although the
|
|
the build target is "install", it does not install OpenAFS.
|
|
|
|
(5) Before rebuilding you must clean the work area:
|
|
|
|
nmake /f NTMakefile clean
|
|
|
|
|
|
STEP G. Install NSIS 2.44 (optional).
|
|
|
|
Download the Nullsoft Scriptable Installation System (NSIS) 2.44 from
|
|
|
|
http://nsis.sourceforge.net/home/
|
|
|
|
Run the nsis-2.33.exe installer and install to "C:\Program Files\NSIS".
|
|
Then download the large strings build zip file and replace the installed
|
|
files with the versions from the zip file. These versions increase
|
|
the maximum string length from 1024 characters to 8192 characters.
|
|
This is necessary for installation on systems with long PATH environment
|
|
strings.
|
|
|
|
Note: The NSIS installer can only be used to produce 32-bit installers.
|
|
|
|
STEP H. Build OpenAFS NSIS install package
|
|
|
|
From the %AFSROOT% directory execute:
|
|
|
|
nmake /f NTMakefile NSIS
|
|
|
|
|
|
STEP I. Install Wix MSI Installer
|
|
|
|
Download the Wix 2.0.5325.0 installer from
|
|
|
|
http://prdownloads.sourceforge.net/wix/sources-2.0.5325.0.zip
|
|
|
|
|
|
STEP J. Build Wix MSI install package
|
|
|
|
From the %AFSROOT% directory execute:
|
|
|
|
nmake /f NTMakefile wix
|
|
|
|
Make sure the binaries installed to \src\wix\release\ship are
|
|
available in the PATH environment variable
|
|
|
|
|
|
STEP K. Final Results
|
|
|
|
The build process generates its binaries in %AFSROOT%\DEST. The subdirectory
|
|
would look like the following:
|
|
|
|
%AFSROOT%\DEST\{checked,free}\
|
|
bin
|
|
etc
|
|
include
|
|
lib
|
|
root.client
|
|
root.server
|
|
WinInstall
|
|
|
|
Bin - contains build utilities.
|
|
root.client - contains Open AFS binaries
|
|
root.server - contain Open AFS Server binaries
|
|
WinInstall\OpenAFSforWindows.exe - is the NSIS install package
|
|
WinInstall\openafs-en_US.msi - is the WiX MSI install package
|
|
|
|
|
|
STEP L. Optional Items
|
|
|
|
The build process has an error table that is compiled for many OpenAFS
|
|
applications. This table is generated by Unix based tools. It is not
|
|
normally necessary to modify this table so pre-generated source files
|
|
are included in the OpenAFS source. If you need to make modifications
|
|
in these areas the Unix base tools that run on Windows can be found on
|
|
the web. For example:
|
|
|
|
http://cygwin.com/
|
|
|
|
Below is a short explanation how to update the error table.
|
|
|
|
(1) Install flex and bison from a Unix based tool provider.
|
|
|
|
(2) Make changes to the source files.
|
|
|
|
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
|
|
/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.
|
|
|
|
(3) Generate new OpenAFS binaries
|