152 lines
5.8 KiB
Plaintext
152 lines
5.8 KiB
Plaintext
Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
|
Copyright (C) 2001, 2002 Internet Software Consortium.
|
|
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
|
|
|
|
$Id: win32-build.txt,v 1.19 2009/11/06 03:14:10 each Exp $
|
|
|
|
BIND 9.7 for Win32 Source Build Instructions. 02-Jul-2009
|
|
|
|
Building BIND 9.7 on Windows XP/2003/2008 has the following prerequisites:
|
|
|
|
1) You need to install Perl for Windows. ActivePerl
|
|
(http://www.activestate.com/) and Strawberry Perl
|
|
(http://www.strawberryperl.com) have both been tested and found
|
|
to work.
|
|
|
|
2) OpenSSL (http://www.openssl.org) needs to be downloaded and built
|
|
on the system on which you are building BIND.
|
|
|
|
3) If you wish to use the statistics channel, LibXML2
|
|
(ftp://xmlsoft.org/libxml2) needs to be downloaded and built on
|
|
the system on which you are building BIND. (If you do not wish
|
|
to use the statistics channel, remove HAVE_LIBXML2 from config.h.win32.)
|
|
|
|
4) If you want to build using Visual C++ 6.0, you'll need some extra
|
|
files that are to be found in the Platform SDK (which you will need
|
|
to install), namely:
|
|
|
|
iphlpapi.h
|
|
iptypes.h
|
|
ipexport.h
|
|
iphlpapi.lib
|
|
|
|
You'll also need an updated Iprtrmib.h - using the VC++6.0 one will
|
|
get you some compilation errors. You can just overwrite the old one if
|
|
you're not using it for any purposes, and maybe keep a backup of it.
|
|
|
|
You can copy the header files under VC98\INCLUDE and the library file
|
|
under VC98\LIB. I think you can also put them in a separate directory
|
|
and add it to the include search list, but I don't know if that can be
|
|
made persistent.
|
|
|
|
For building on VC++ 7.0 no extra files are required.
|
|
|
|
The instructions assume a Visual C++ 6.0 compiler with Visual Studio and
|
|
Visual Studio Service Pack 3 or later. It may build and work with earlier
|
|
versions but it has not been tested. The binaries may be built and run on
|
|
any of the following platforms: NT 4.0 Workstation (SP3 or later), NT 4.0
|
|
Server (SP3 or later), Windows 2000 Professional (SP1 or later),
|
|
Windows 2000 Server or any kind (SP1 or later), Windows XP, Windows 2003
|
|
Server. It will NOT build or run on Windows 95, Windows 98, etc. platforms.
|
|
|
|
Step 1: Download and build OpenSSL
|
|
|
|
Download and untar the OpenSSL sources from http://www.openssl.org/.
|
|
Extract them at in the same directory in which you extracted the BIND9
|
|
source: If BIND9 is in \build\bind-9.7.0, for instance, OpenSSL should be
|
|
in \build\openssl-0.9.8l (subject to version number changes).
|
|
|
|
Note: Building OpenSSL requires that you install Perl as it uses
|
|
it during its build process. The following commands work as of
|
|
openssl-0.9.8l, but you should check the OpenSSL distribution
|
|
to see if the build instructions have changed:
|
|
|
|
cd openssl-0.9.8l
|
|
perl Configure VC-WIN32 --prefix=c:/openssl
|
|
ms\do_masm
|
|
nmake /f ms\ntdll.mak
|
|
|
|
If you wish to use PKCS #11 to control a cryptographic hardware service
|
|
module, please see bind9\README.pkcs11. You will need to apply the patch
|
|
in bind9\bin\pkcs11\openssl-0.9.8l-patch (this can be done using the Cygwin
|
|
'patch' utility) and add --pk11-libname and --pk11-flavor to the Configure
|
|
command above.
|
|
|
|
Step 2: Download and build libxml2
|
|
|
|
Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2.
|
|
Extract them at in the same directory in which you extracted the BIND9
|
|
source: If BIND9 is in \build\bind-9.7.0, for instance, libxml2 should
|
|
be in \build\libxml2-2.7.3 (subject to version number changes).
|
|
|
|
Now build libxml2, and copy the resulting files into the include and lib
|
|
directories:
|
|
|
|
cd libxml2-2.7.3\win32
|
|
cscript configure.js compiler=msvc vcmanifest=yes static=yes debug=no iconv=no
|
|
nmake /f Makefile.msvc libxml
|
|
|
|
Step 3: Building BIND
|
|
|
|
You must build openssl and libxml2 first.
|
|
|
|
From the command prompt cd to the win32utils directory under
|
|
the BIND9 root:
|
|
|
|
cd bind-9.7.0\win32utils
|
|
|
|
If you wish to use PKCS #11 to control a cryptographic hardware service
|
|
module, set the path to the PKCS #11 provider library:
|
|
|
|
perl setpk11provider.pl <DLL path>
|
|
|
|
If using VC++ 6.0, run the BuildAll.bat file:
|
|
|
|
BuildAll
|
|
|
|
This will do the following:
|
|
1) copy config.h.win32 to config.h in the root.
|
|
2) create the versions.h file in the root.
|
|
3) Build the gen application in the lib/dns directory.
|
|
4) Run the gen application and build the required lib/dns header
|
|
files.
|
|
5) Create the Build/Release subdirectory under the root of the BIND
|
|
source tree which will hold the binaries being built.
|
|
6) Build the libraries, named, application tools like dig, rndc
|
|
dnssec tools, installer, checkconf and checkzones programs,
|
|
BIND 9 Installer.
|
|
7) Copies the release notes and the OpenSSL DLL to the BUILD/Release
|
|
directory.
|
|
8) Copies the BIND 9 ARM HTML files and the application HTML files
|
|
to the Build\Release area.
|
|
|
|
If you wish to use the Visual Studio GUI for building, you can just
|
|
run the BuildSetup.bat file:
|
|
|
|
BuildSetup
|
|
|
|
This will create or find and copy into place several files which are
|
|
necessary for the build to proceed. It also locates and copies into place
|
|
the DLLs for OpenSSL and libxml2.
|
|
|
|
Use BINDBuild.dsw (also located in the win32utils directory) to open the
|
|
workspace for all of the BIND9 libraries and applications. Select
|
|
"Build->Batch Build", click "Select All", then click "Build".
|
|
|
|
After the build has completed, run the BuildPost.bat file:
|
|
|
|
BuildPost
|
|
|
|
...which does post-build processing.
|
|
|
|
Installation is accomplished by running the BINDInstall program. All DLL's
|
|
are copied to the system32 area and all applications (including BINDInstall
|
|
which may be necessary for uninstalling BIND 9) to the dns/bin directory.
|
|
If BIND 8 has previously been installed on the system it must be uninstalled
|
|
first by running it's own BINDInstall program. The BIND 9 installer does
|
|
not yet do this.
|
|
|
|
All bugs found, whether in the process of building the application or
|
|
running BIND or the tools should be reported to the bind9 bugs email
|
|
account at bind9-bugs@isc.org.
|