Sync usage with man page.
[netbsd-mini2440.git] / external / bsd / bind / dist / win32utils / win32-build.txt
blob2a67f5f176296555ef3806364f13866a67daf8d3
1 Copyright (C) 2004, 2005, 2008, 2009  Internet Systems Consortium, Inc. ("ISC")\r
2 Copyright (C) 2001, 2002  Internet Software Consortium.\r
3 See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.\r
4 \r
5 Id: win32-build.txt,v 1.19 2009/11/06 03:14:10 each Exp\r
6 \r
7        BIND 9.7 for Win32 Source Build Instructions.  02-Jul-2009\r
8 \r
9 Building BIND 9.7 on Windows XP/2003/2008 has the following prerequisites:\r
11 1) You need to install Perl for Windows.  ActivePerl\r
12 (http://www.activestate.com/) and Strawberry Perl\r
13 (http://www.strawberryperl.com) have both been tested and found\r
14 to work.\r
16 2) OpenSSL (http://www.openssl.org) needs to be downloaded and built\r
17 on the system on which you are building BIND.\r
19 3) If you wish to use the statistics channel, LibXML2\r
20 (ftp://xmlsoft.org/libxml2) needs to be downloaded and built on\r
21 the system on which you are building BIND.  (If you do not wish\r
22 to use the statistics channel, remove HAVE_LIBXML2 from config.h.win32.)\r
24 4) If you want to build using Visual C++ 6.0, you'll need some extra\r
25 files that are to be found in the Platform SDK (which you will need\r
26 to install), namely:\r
28 iphlpapi.h\r
29 iptypes.h\r
30 ipexport.h\r
31 iphlpapi.lib\r
33 You'll also need an updated Iprtrmib.h - using the VC++6.0 one will\r
34 get you some compilation errors. You can just overwrite the old one if\r
35 you're not using it for any purposes, and maybe keep a backup of it. \r
37 You can copy the header files under VC98\INCLUDE and the library file\r
38 under VC98\LIB. I think you can also put them in a separate directory\r
39 and add it to the include search list, but I don't know if that can be\r
40 made persistent. \r
42 For building on VC++ 7.0 no extra files are required. \r
44 The instructions assume a Visual C++ 6.0 compiler with Visual Studio and\r
45 Visual Studio Service Pack 3 or later. It may build and work with earlier\r
46 versions but it has not been tested. The binaries may be built and run on\r
47 any of the following platforms: NT 4.0 Workstation (SP3 or later), NT 4.0\r
48 Server (SP3 or later), Windows 2000 Professional (SP1 or later),\r
49 Windows 2000 Server or any kind (SP1 or later), Windows XP, Windows 2003\r
50 Server. It will NOT build or run on Windows 95, Windows 98, etc. platforms.\r
52 Step 1: Download and build OpenSSL\r
54 Download and untar the OpenSSL sources from http://www.openssl.org/.\r
55 Extract them at in the same directory in which you extracted the BIND9\r
56 source:  If BIND9 is in \build\bind-9.7.0, for instance, OpenSSL should be\r
57 in \build\openssl-0.9.8l (subject to version number changes).\r
59 Note: Building OpenSSL requires that you install Perl as it uses\r
60 it during its build process. The following commands work as of\r
61 openssl-0.9.8l, but you should check the OpenSSL distribution \r
62 to see if the build instructions have changed:\r
64   cd openssl-0.9.8l\r
65   perl Configure VC-WIN32 --prefix=c:/openssl\r
66   ms\do_masm\r
67   nmake /f ms\ntdll.mak\r
69 If you wish to use PKCS #11 to control a cryptographic hardware service\r
70 module, please see bind9\README.pkcs11.  You will need to apply the patch\r
71 in bind9\bin\pkcs11\openssl-0.9.8l-patch (this can be done using the Cygwin\r
72 'patch' utility) and add --pk11-libname and --pk11-flavor to the Configure\r
73 command above.\r
75 Step 2: Download and build libxml2\r
77 Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2.\r
78 Extract them at in the same directory in which you extracted the BIND9\r
79 source:  If BIND9 is in \build\bind-9.7.0, for instance, libxml2 should\r
80 be in \build\libxml2-2.7.3 (subject to version number changes).\r
82 Now build libxml2, and copy the resulting files into the include and lib\r
83 directories:\r
85  cd libxml2-2.7.3\win32\r
86  cscript configure.js compiler=msvc vcmanifest=yes static=yes debug=no iconv=no\r
87  nmake /f Makefile.msvc libxml\r
89 Step 3: Building BIND\r
91 You must build openssl and libxml2 first. \r
93 From the command prompt cd to the win32utils directory under\r
94 the BIND9 root:\r
96   cd bind-9.7.0\win32utils\r
98 If you wish to use PKCS #11 to control a cryptographic hardware service\r
99 module, set the path to the PKCS #11 provider library:\r
101   perl setpk11provider.pl <DLL path>\r
102   \r
103 If using VC++ 6.0, run the BuildAll.bat file:\r
105   BuildAll\r
107 This will do the following:\r
108 1) copy config.h.win32 to config.h in the root.\r
109 2) create the versions.h file in the root.\r
110 3) Build the gen application in the lib/dns directory.\r
111 4) Run the gen application and build the required lib/dns header\r
112    files.\r
113 5) Create the Build/Release subdirectory under the root of the BIND\r
114    source tree which will hold the binaries being built.\r
115 6) Build the libraries, named, application tools like dig, rndc\r
116    dnssec tools, installer, checkconf and checkzones programs,\r
117    BIND 9 Installer.\r
118 7) Copies the release notes and the OpenSSL DLL to the BUILD/Release\r
119    directory.\r
120 8) Copies the BIND 9 ARM HTML files and the application HTML files\r
121    to the Build\Release area.\r
123 If you wish to use the Visual Studio GUI for building, you can just\r
124 run the BuildSetup.bat file:\r
126   BuildSetup\r
127   \r
128 This will create or find and copy into place several files which are\r
129 necessary for the build to proceed.  It also locates and copies into place\r
130 the DLLs for OpenSSL and libxml2.\r
132 Use BINDBuild.dsw (also located in the win32utils directory) to open the\r
133 workspace for all of the BIND9 libraries and applications.  Select\r
134 "Build->Batch Build", click "Select All", then click "Build".\r
136 After the build has completed, run the BuildPost.bat file:\r
138   BuildPost\r
140 ...which does post-build processing.\r
142 Installation is accomplished by running the BINDInstall program. All DLL's\r
143 are copied to the system32 area and all applications (including BINDInstall\r
144 which may be necessary for uninstalling BIND 9) to the dns/bin directory.\r
145 If BIND 8 has previously been installed on the system it must be uninstalled\r
146 first by running it's own BINDInstall program.  The BIND 9 installer does\r
147 not yet do this.\r
149 All bugs found, whether in the process of building the application or\r
150 running BIND or the tools should be reported to the bind9 bugs email\r
151 account at bind9-bugs@isc.org.\r