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