krb5 commit: Update windows README for VS2012/Windows SDK 8
Benjamin Kaduk
kaduk at MIT.EDU
Fri Jun 28 13:10:46 EDT 2013
https://github.com/krb5/krb5/commit/42095108b86e099a84def9b8f5570818e21e4719
commit 42095108b86e099a84def9b8f5570818e21e4719
Author: Ben Kaduk <kaduk at mit.edu>
Date: Fri Jun 28 12:08:13 2013 -0400
Update windows README for VS2012/Windows SDK 8
The Windows SDK 8 dropped the command-line build environment, so
provide instructions for building with the Visual Studio (2012)
command-line build environment.
ticket: 7669 (new)
queue: kfw
tags: pullup
target_version: 1.11.4
src/windows/README | 20 +++++++++++++++-----
1 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/windows/README b/src/windows/README
index dee7045..363a6cb 100644
--- a/src/windows/README
+++ b/src/windows/README
@@ -12,7 +12,10 @@ common Unix utilities such as sed/awk/cp/cat installed in the
command-line path. To build an MSI installer, you will additionally
need the Windows Installer XML (WiX) toolkit, and to ensure that
the HTML Help Compiler (hhc.exe) and the WiX tools are in your command-line
-path.
+path. WiX version 3.5 is verified to work with this codebase; WiX 3.7
+and newer are incompatible with this codebase. Visual Studio 2012 and
+the Windows SDK 8 introduce some changes which alter the Kerberos build
+procedure slightly (noted where appropriate).
The Unix utilities can be obtained via the Utilities and SDK for UNIX-based
Aplications, which may be enabled as a Windows feature and then the
@@ -38,7 +41,11 @@ window, you can change the build target using the setenv command; run
"setenv /?" or see the Windows SDK documentation for details. At the
current time, Kerberos 5 can only be built for the x64 target if the
host platform is also 64-bit, because it compiles and runs programs
-during the build.
+during the build. The Windows SDK version 8 does not provide an SDK
+command prompt; the "Developer Command Prompt for VS2012" or "Visual Studio
+Command Prompt" must be used instead. Accordingly, there is no setenv script
+to configure the build environment for different target architectures; the
+"vcvarsall.bat" script provided by Visual Studio serves this function.
IMPORTANT NOTE: By default, the sources are built with debug
information and linked against the debug version of the Microsoft C
@@ -46,9 +53,10 @@ Runtime library, which is not found on most Windows systems unless
they have development tools, and requires a separate license to distribute.
To build a release version, you need to define NODEBUG either in the
environment or the nmake command-line and use setenv to enter a release
-build environment with "setenv /release".
-Debug information in the compiled binaries and libraries may be retained
-by defining DEBUG_SYMBOL in the environment or on the nmake command line.
+build environment with "setenv /release" (when using Windows SDK versions
+lower than 8). Debug information in the compiled binaries and libraries
+may be retained by defining DEBUG_SYMBOL in the environment or on the nmake
+command line.
Building the code and installer
@@ -65,6 +73,7 @@ and install must be performed before the 64-bit build.
1) set CPU=i386 # Get 32-bit target in environment
2) set KRB_INSTALL_DIR=\path\to\dir # Where bin/include/lib lives
3) setenv /x86 [/release] # Tell nmake to target 32-bit
+ (with Visual Studio 2012, use "vcvarsall.bat x86")
4) cd xxx/src # Go to where the source lives
5) nmake -f Makefile.in prep-windows # Create Makefile for Windows
6) nmake [NODEBUG=1] # Build the sources
@@ -74,6 +83,7 @@ and install must be performed before the 64-bit build.
10) rename kfw.msi kfw32.msi # Save the 32-bit installer
11) set CPU=AMD64 # Proceed to the 64-bit build
12) setenv /x64 [/release] # Must set both CPU and nmake env
+ ("vcvarsall.bat amd64" for Visual Studio 2012)
13) cd ..\..\.. # Back to the sources
14) nmake clean # Clean up the 32-bit objects
15) nmake [NODEBUG=1] # Build the sources for 64-bit
More information about the cvs-krb5
mailing list