1*00b67f09SDavid van MoolenbroekCopyright (C) 2004, 2005, 2008, 2009, 2012-2014  Internet Systems Consortium, Inc. ("ISC")
2*00b67f09SDavid van MoolenbroekCopyright (C) 2001, 2002  Internet Software Consortium.
3*00b67f09SDavid van MoolenbroekSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
4*00b67f09SDavid van Moolenbroek
5*00b67f09SDavid van Moolenbroek   *LEGACY* BIND 9.10 for Win32 Source Build Instructions. 04-Feb-2014
6*00b67f09SDavid van Moolenbroek
7*00b67f09SDavid van MoolenbroekBuilding BIND 9.10 on Windows using legacy compilers (up to Visual
8*00b67f09SDavid van MoolenbroekStudio 2008) has the following prerequisites:
9*00b67f09SDavid van Moolenbroek
10*00b67f09SDavid van Moolenbroek1) Perl, 2) Visual C++ redistributable object, 3) OpenSSL, and
11*00b67f09SDavid van Moolenbroekoptionally 4) LibXML2, 5) LibGeoIP, and 6) Readline.
12*00b67f09SDavid van MoolenbroekSee ..\build.txt for more details on these prerequisites.
13*00b67f09SDavid van Moolenbroek
14*00b67f09SDavid van MoolenbroekIf you want to build using Visual C++ 6.0, you'll need some extra
15*00b67f09SDavid van Moolenbroekfiles that are to be found in the Platform SDK (which you will need
16*00b67f09SDavid van Moolenbroekto install), namely:
17*00b67f09SDavid van Moolenbroek
18*00b67f09SDavid van Moolenbroekiphlpapi.h
19*00b67f09SDavid van Moolenbroekiptypes.h
20*00b67f09SDavid van Moolenbroekipexport.h
21*00b67f09SDavid van Moolenbroekiphlpapi.lib
22*00b67f09SDavid van Moolenbroek
23*00b67f09SDavid van MoolenbroekYou'll also need an updated Iprtrmib.h - using the VC++6.0 one will
24*00b67f09SDavid van Moolenbroekget you some compilation errors. You can just overwrite the old one if
25*00b67f09SDavid van Moolenbroekyou're not using it for any purposes, and maybe keep a backup of it.
26*00b67f09SDavid van Moolenbroek
27*00b67f09SDavid van MoolenbroekYou can copy the header files under VC98\INCLUDE and the library file
28*00b67f09SDavid van Moolenbroekunder VC98\LIB. I think you can also put them in a separate directory
29*00b67f09SDavid van Moolenbroekand add it to the include search list, but I don't know if that can be
30*00b67f09SDavid van Moolenbroekmade persistent.
31*00b67f09SDavid van Moolenbroek
32*00b67f09SDavid van MoolenbroekFor building on VC++ 7.0 or more recent, no extra files are required.
33*00b67f09SDavid van Moolenbroek
34*00b67f09SDavid van MoolenbroekThe instructions assume a Visual C++ 6.0 compiler with Visual Studio
35*00b67f09SDavid van Moolenbroekand Visual Studio Service Pack 3 or later. It may build and work with
36*00b67f09SDavid van Moolenbroekearlier versions but it has not been tested. The binaries may be built
37*00b67f09SDavid van Moolenbroekand run on any of the following platforms: NT 4.0 Workstation (SP3 or
38*00b67f09SDavid van Moolenbroeklater), NT 4.0 Server (SP3 or later), Windows 2000 Professional (SP1
39*00b67f09SDavid van Moolenbroekor later), Windows 2000 Server or any kind (SP1 or later), Windows XP,
40*00b67f09SDavid van MoolenbroekWindows 2003 Server, Windows Vista, Windows 2008 Server, Windows 7,
41*00b67f09SDavid van MoolenbroekWindows 2008 R2 Server, Windows 8, Windows 2012 Server (untested), and
42*00b67f09SDavid van Moolenbroekfurther (untested as not yet available). It will NOT build or run on
43*00b67f09SDavid van MoolenbroekWindows 95, Windows 98, etc., or Windows RT platforms.
44*00b67f09SDavid van Moolenbroek
45*00b67f09SDavid van MoolenbroekBUILDING BIND
46*00b67f09SDavid van Moolenbroek
47*00b67f09SDavid van MoolenbroekFrom the command prompt cd to the win32utils\legacy directory under
48*00b67f09SDavid van Moolenbroekthe BIND9 root:
49*00b67f09SDavid van Moolenbroek
50*00b67f09SDavid van Moolenbroek  cd bind-9.10.0\win32utils\legacy
51*00b67f09SDavid van Moolenbroek
52*00b67f09SDavid van MoolenbroekIf you wish to use nmake from VC++ 6.0 or more recent, run
53*00b67f09SDavid van Moolenbroekthe BuildAll.bat file:
54*00b67f09SDavid van Moolenbroek
55*00b67f09SDavid van Moolenbroek  BuildAll
56*00b67f09SDavid van Moolenbroek
57*00b67f09SDavid van MoolenbroekThis will do the following:
58*00b67f09SDavid van Moolenbroek1) Build the gen application in the lib/dns directory.
59*00b67f09SDavid van Moolenbroek2) Run the gen application and build the required lib/dns header
60*00b67f09SDavid van Moolenbroek   files.
61*00b67f09SDavid van Moolenbroek3) Create the Build/Release subdirectory under the root of the BIND
62*00b67f09SDavid van Moolenbroek   source tree which will hold the binaries being built.
63*00b67f09SDavid van Moolenbroek4) Build the libraries, named, application tools like dig, rndc
64*00b67f09SDavid van Moolenbroek   dnssec tools, installer, checkconf and checkzones programs,
65*00b67f09SDavid van Moolenbroek   BIND 9 Installer.
66*00b67f09SDavid van Moolenbroek5) Copies the release notes and the OpenSSL DLL to the BUILD/Release
67*00b67f09SDavid van Moolenbroek   directory.
68*00b67f09SDavid van Moolenbroek6) Copies the BIND 9 ARM HTML files and the application HTML files
69*00b67f09SDavid van Moolenbroek   to the Build\Release area.
70*00b67f09SDavid van Moolenbroek
71*00b67f09SDavid van MoolenbroekIf you wish to use the Visual Studio GUI for building, you can just
72*00b67f09SDavid van Moolenbroekrun the BuildSetup.bat file:
73*00b67f09SDavid van Moolenbroek
74*00b67f09SDavid van Moolenbroek  BuildSetup
75*00b67f09SDavid van Moolenbroek
76*00b67f09SDavid van MoolenbroekThis will create or find and copy into place several files which are
77*00b67f09SDavid van Moolenbroeknecessary for the build to proceed.  It also locates and copies into place
78*00b67f09SDavid van Moolenbroekthe DLLs for OpenSSL and libxml2.
79*00b67f09SDavid van Moolenbroek
80*00b67f09SDavid van MoolenbroekUse BINDBuild.dsw (also located in the win32utils\legacy directory) to
81*00b67f09SDavid van Moolenbroekopen the workspace for all of the BIND9 libraries and applications. If
82*00b67f09SDavid van Moolenbroekneeded Visual Studio will update the workspace (aka solution) and
83*00b67f09SDavid van Moolenbroekproject files. Note it is known to give slightly incorrect files on VS
84*00b67f09SDavid van Moolenbroek2010 or more recent, for instance BINDInstall is not compiled to use
85*00b67f09SDavid van MoolenbroekDLLs.  Finally select "Build->Batch Build", click "Select All", then
86*00b67f09SDavid van Moolenbroekclick "Build".
87*00b67f09SDavid van Moolenbroek
88*00b67f09SDavid van MoolenbroekAfter the build has completed, run the BuildPost.bat file:
89*00b67f09SDavid van Moolenbroek
90*00b67f09SDavid van Moolenbroek  BuildPost
91*00b67f09SDavid van Moolenbroek
92*00b67f09SDavid van Moolenbroek...which does post-build processing.
93*00b67f09SDavid van Moolenbroek
94*00b67f09SDavid van MoolenbroekInstallation is accomplished by running the BINDInstall program. All
95*00b67f09SDavid van MoolenbroekDLL's are copied to the Program Files area and all applications
96*00b67f09SDavid van Moolenbroek(including BINDInstall which may be necessary for uninstalling BIND 9)
97*00b67f09SDavid van Moolenbroekto the bin directory.  If BIND 8 has previously been installed on the
98*00b67f09SDavid van Moolenbroeksystem it must be uninstalled first by running it's own BINDInstall
99*00b67f09SDavid van Moolenbroekprogram.  The BIND 9 installer does not yet do this.
100*00b67f09SDavid van Moolenbroek
101*00b67f09SDavid van MoolenbroekAll bugs found, whether in the process of building the application or
102*00b67f09SDavid van Moolenbroekrunning BIND or the tools should be reported to the bind9 bugs email
103*00b67f09SDavid van Moolenbroekaccount at bind9-bugs@isc.org.
104