summaryrefslogtreecommitdiff
path: root/win32utils
diff options
context:
space:
mode:
authorInternet Software Consortium, Inc <@isc.org>2014-02-11 08:59:45 -0700
committerInternet Software Consortium, Inc <@isc.org>2014-02-11 08:59:45 -0700
commit892b23e1710e6770b12c3aa952eb2cdc9ab4bc1b (patch)
tree3acd1d7a8f4a84143c133a21b60053ef06b85991 /win32utils
parentc52b164320c899310b370875e150acdba3d286c0 (diff)
downloadbind9-892b23e1710e6770b12c3aa952eb2cdc9ab4bc1b.tar.gz
9.9.5b1
Diffstat (limited to 'win32utils')
-rw-r--r--win32utils/BuildAll.bat144
-rw-r--r--win32utils/BuildSetup.bat154
-rw-r--r--win32utils/Configure2582
-rw-r--r--win32utils/GeoIP.diff345
-rw-r--r--win32utils/SetupLibs.bat32
-rw-r--r--win32utils/bind9.sln.in778
-rw-r--r--win32utils/build.txt181
-rw-r--r--win32utils/dnsheadergen.bat26
-rw-r--r--win32utils/legacy/BINDBuild.dsw.in (renamed from win32utils/BINDBuild.dsw)587
-rw-r--r--win32utils/legacy/BuildAll.bat.in221
-rw-r--r--win32utils/legacy/BuildPost.bat.in (renamed from win32utils/BuildPost.bat)65
-rw-r--r--win32utils/legacy/BuildSetup.bat.in159
-rw-r--r--win32utils/legacy/makedefs.pl (renamed from win32utils/makedefs.pl)2
-rw-r--r--win32utils/legacy/win32-build.txt105
-rw-r--r--win32utils/makesrcid.pl81
-rw-r--r--win32utils/makeversion.pl136
-rw-r--r--win32utils/setpk11provider.pl105
-rw-r--r--win32utils/todos.pl50
-rw-r--r--win32utils/updatelibxml2.pl219
-rw-r--r--win32utils/updateopenssl.pl108
-rw-r--r--win32utils/win32-build.txt165
21 files changed, 4895 insertions, 1350 deletions
diff --git a/win32utils/BuildAll.bat b/win32utils/BuildAll.bat
deleted file mode 100644
index e5d02ee4..00000000
--- a/win32utils/BuildAll.bat
+++ /dev/null
@@ -1,144 +0,0 @@
-echo off
-rem
-rem Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
-rem Copyright (C) 2001-2002 Internet Software Consortium.
-rem
-rem Permission to use, copy, modify, and distribute this software for any
-rem purpose with or without fee is hereby granted, provided that the above
-rem copyright notice and this permission notice appear in all copies.
-rem
-rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-rem PERFORMANCE OF THIS SOFTWARE.
-
-rem BuildAll.bat
-rem This script sets up the files necessary ready to build BIND 9
-rem and then builds all of the binaries that make up the installation kit.
-rem This requires perl to be installed on the system.
-
-rem IMPORTANT NOTE:
-rem OpenSSL is a prerequisite for building and running this release of
-rem BIND 9. You must fetch the OpenSSL sources yourself from
-rem http://www.OpenSSL.org/ and compile it yourself. The code must reside
-rem at the same level as the bind 9.2.0 source tree and it's top-level
-rem directory be named openssl-0.9.6k. This restriction will be lifted in
-rem a future release of BIND 9 for Windows NT/2000/XP.
-
-echo Setting up the BIND files required for the build
-
-rem Setup the files
-call BuildSetup.bat
-
-echo Build all of the Library files
-
-cd ..\lib
-
-cd isc\win32
-nmake /nologo -f libisc.mak CFG="libisc - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd dns\win32
-nmake /nologo -f libdns.mak CFG="libdns - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd isccfg\win32
-nmake /nologo -f libisccfg.mak CFG="libisccfg - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd isccc\win32
-nmake /nologo -f libisccc.mak CFG="libisccc - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd bind9\win32
-nmake /nologo -f libbind9.mak CFG="libbind9 - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd lwres\win32
-nmake /nologo -f liblwres.mak CFG="liblwres - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-rem This is the DLL required for the event Viewer
-
-cd win32\bindevt
-nmake /nologo -f bindevt.mak CFG="bindevt - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd ..
-
-echo Now build the apps
-
-cd bin
-
-cd named\win32
-nmake /nologo -f named.mak CFG="named - Win32 Release" NO_EXTERNAL_DEPS="1"
-
-cd ..\..
-
-cd rndc\win32
-nmake /nologo -f rndc.mak CFG="rndc - Win32 Release" NO_EXTERNAL_DEPS="1"
-
-cd ..\..
-
-cd confgen\win32
-nmake /nologo -f rndcconfgen.mak CFG="rndcconfgen - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f ddnsconfgen.mak CFG="ddnsconfgen - Win32 Release" NO_EXTERNAL_DEPS="1"
-
-cd ..\..
-
-cd dig\win32
-nmake /nologo -f dig.mak CFG="dig - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo /nologo -f host.mak CFG="host - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f nslookup.mak CFG="nslookup - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd nsupdate\win32
-nmake /nologo -f nsupdate.mak CFG="nsupdate - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd check\win32
-nmake /nologo -f namedcheckconf.mak CFG="namedcheckconf - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f namedcheckzone.mak CFG="namedcheckzone - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd dnssec\win32
-nmake /nologo -f keygen.mak CFG="keygen - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f signzone.mak CFG="signzone - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f dsfromkey.mak CFG="dsfromkey - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f keyfromlabel.mak CFG="keyfromlabel - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f revoke.mak CFG="revoke - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f settime.mak CFG="settime - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f verify.mak CFG="verify - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd pkcs11\win32
-nmake /nologo -f pk11keygen.mak CFG="pk11keygen - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f pk11list.mak CFG="pk11list - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f pk11destroy.mak CFG="pk11destroy - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd tools\win32
-nmake /nologo -f arpaname.mak CFG="arpaname - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f genrandom.mak CFG="genrandom - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f nsec3hash.mak CFG="nsec3hash - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f journalprint.mak CFG="journalprint - Win32 Release" NO_EXTERNAL_DEPS="1"
-nmake /nologo -f ischmacfixup.mak CFG="ischmacfixup - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-rem This is the BIND 9 Installer
-
-cd win32\BINDInstall
-nmake /nologo -f BINDInstall.mak CFG="BINDInstall - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..\..
-
-cd ..
-
-cd win32utils
-
-call BuildPost.bat
-
-echo Done.
-
-rem exit here.
diff --git a/win32utils/BuildSetup.bat b/win32utils/BuildSetup.bat
deleted file mode 100644
index a0d6dffc..00000000
--- a/win32utils/BuildSetup.bat
+++ /dev/null
@@ -1,154 +0,0 @@
-echo off
-rem
-rem Copyright (C) 2004,2005 Internet Systems Consortium, Inc. ("ISC")
-rem Copyright (C) 2001-2002 Internet Software Consortium.
-rem
-rem Permission to use, copy, modify, and distribute this software for any
-rem purpose with or without fee is hereby granted, provided that the above
-rem copyright notice and this permission notice appear in all copies.
-rem
-rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-rem PERFORMANCE OF THIS SOFTWARE.
-
-rem BuildSetup.bat
-rem This script sets up the files necessary ready to build BIND 9.
-rem This requires perl to be installed on the system.
-
-rem Set up the configuration file
-cd ..
-copy config.h.win32 config.h
-cd win32utils
-
-rem Make sure all the files that need to be in DOS format really are
-perl todos.pl
-
-rem Get and update for the latest build of the openssl and libxml libraries
-perl updateopenssl.pl
-perl updatelibxml2.pl
-
-rem Generate the version information
-perl makeversion.pl
-
-rem Generate the SRCID information
-perl makesrcid.pl
-
-rem Generate header files for lib/dns
-call dnsheadergen.bat
-
-rem Make sure that the Build directories are there.
-
-if NOT Exist ..\Build mkdir ..\Build
-if NOT Exist ..\Build\Release mkdir ..\Build\Release
-if NOT Exist ..\Build\Debug mkdir ..\Build\Debug
-
-echo Copying the ARM and the Installation Notes.
-
-copy ..\COPYRIGHT ..\Build\Release
-copy ..\README ..\Build\Release
-copy ..\HISTORY ..\Build\Release
-copy readme1st.txt ..\Build\Release
-copy index.html ..\Build\Release
-copy ..\doc\arm\*.html ..\Build\Release
-copy ..\doc\arm\Bv9ARM.pdf ..\Build\Release
-copy ..\CHANGES ..\Build\Release
-if Exist ..\CHANGES.SE copy ..\CHANGES.SE ..\Build\Release
-copy ..\FAQ ..\Build\Release
-
-echo Copying the standalone manual pages.
-
-copy ..\bin\named\named.html ..\Build\Release
-copy ..\bin\rndc\*.html ..\Build\Release
-copy ..\bin\confgen\*.html ..\Build\Release
-copy ..\bin\dig\*.html ..\Build\Release
-copy ..\bin\nsupdate\*.html ..\Build\Release
-copy ..\bin\check\*.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-keygen.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-signzone.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-dsfromkey.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-keyfromlabel.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-settime.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-revoke.html ..\Build\Release
-copy ..\bin\dnssec\dnssec-verify.html ..\Build\Release
-copy ..\bin\pkcs11\pkcs11-keygen.html ..\Build\Release
-copy ..\bin\pkcs11\pkcs11-list.html ..\Build\Release
-copy ..\bin\pkcs11\pkcs11-destroy.html ..\Build\Release
-
-echo Copying the migration notes.
-
-copy ..\doc\misc\migration ..\Build\Release
-copy ..\doc\misc\migration-4to9 ..\Build\Release
-
-call SetupLibs.bat
-
-rem
-rem try to find vcredist_x86.exe upper
-rem
-if Not Defined VCRedistPath (
-if Exist ..\..\vcredist_x86.exe set VCRedistPath=..\..\vcredist_x86.exe
-)
-
-rem
-rem get vcredist where someone said it should be
-rem
-if Defined VCRedistPath (
-
-if Exist "%VCRedistPath%" (
-
-echo Copying Visual C x86 Redistributable Installer
-
-rem
-rem Use /Y so we always have the current version of the installer.
-rem
-
-copy /Y "%VCRedistPath%" ..\Build\Release\
-copy /Y "%VCRedistPath%" ..\Build\Debug\
-
-) else (
-
- echo "**** %VCRedistPath% not found ****"
-
-)
-) else (
-
-if Defined FrameworkSDKDir (
-
-rem
-rem vcredist_x86.exe path relative to FrameworkSDKDir
-rem
-if Exist "%FrameworkSDKDir%\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe" (
-
-echo Copying Visual C x86 Redistributable Installer
-
-rem
-rem Use /Y so we allways have the current version of the installer.
-rem
-
-copy /Y "%FrameworkSDKDir%\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe" ..\Build\Release\
-copy /Y "%FrameworkSDKDir%\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe" ..\Build\Debug\
-
-) else (
- echo "**** %FrameworkSDKDir%\%vcredist% not found ****"
-)
-) else (
-if NOT Defined FrameworkDir (
- echo "**** Warning FrameworkSDKDir not defined ****"
- echo "**** Run vsvars32.bat ****"
-) else (
- echo "**** vcredist_x86.exe not found ****"
- echo "**** please set VCRedistPath ****"
-)
-)
-)
-
-echo Running Message Compiler
-
-cd ..\lib\win32\bindevt
-mc bindevt.mc
-cd ..\..\..\win32utils
-
-rem Done
diff --git a/win32utils/Configure b/win32utils/Configure
new file mode 100644
index 00000000..a2e6b68b
--- /dev/null
+++ b/win32utils/Configure
@@ -0,0 +1,2582 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# $Id$
+
+# Configure
+#
+# This script builds nmake and visual studio build files
+#
+
+require 5.000;
+use strict;
+use File::Spec;
+
+# files to configure
+
+my $configfilein = "..\\config.h.win32";
+my $configfileout = ">..\\config.h";
+my $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
+
+my @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
+ "..\\bin\\check\\win32\\checkconf.dsp",
+ "..\\bin\\check\\win32\\checkconf.mak",
+ "..\\bin\\check\\win32\\checkzone.dsp",
+ "..\\bin\\check\\win32\\checkzone.mak",
+ "..\\bin\\confgen\\win32\\confgentool.dsp",
+ "..\\bin\\confgen\\win32\\ddnsconfgen.dsp",
+ "..\\bin\\confgen\\win32\\ddnsconfgen.mak",
+ "..\\bin\\confgen\\win32\\rndcconfgen.dsp",
+ "..\\bin\\confgen\\win32\\rndcconfgen.mak",
+ "..\\bin\\dig\\win32\\dig.dsp",
+ "..\\bin\\dig\\win32\\dig.mak",
+ "..\\bin\\dig\\win32\\dighost.dsp",
+ "..\\bin\\dig\\win32\\host.dsp",
+ "..\\bin\\dig\\win32\\host.mak",
+ "..\\bin\\dig\\win32\\nslookup.dsp",
+ "..\\bin\\dig\\win32\\nslookup.mak",
+ "..\\bin\\dnssec\\win32\\dnssectool.dsp",
+ "..\\bin\\dnssec\\win32\\dsfromkey.dsp",
+ "..\\bin\\dnssec\\win32\\dsfromkey.mak",
+ "..\\bin\\dnssec\\win32\\importkey.dsp",
+ "..\\bin\\dnssec\\win32\\importkey.mak",
+ "..\\bin\\dnssec\\win32\\keyfromlabel.dsp",
+ "..\\bin\\dnssec\\win32\\keyfromlabel.mak",
+ "..\\bin\\dnssec\\win32\\keygen.dsp",
+ "..\\bin\\dnssec\\win32\\keygen.mak",
+ "..\\bin\\dnssec\\win32\\revoke.dsp",
+ "..\\bin\\dnssec\\win32\\revoke.mak",
+ "..\\bin\\dnssec\\win32\\settime.dsp",
+ "..\\bin\\dnssec\\win32\\settime.mak",
+ "..\\bin\\dnssec\\win32\\signzone.dsp",
+ "..\\bin\\dnssec\\win32\\signzone.mak",
+ "..\\bin\\dnssec\\win32\\verify.dsp",
+ "..\\bin\\dnssec\\win32\\verify.mak",
+ "..\\bin\\named\\win32\\named.dsp",
+ "..\\bin\\named\\win32\\named.mak",
+ "..\\bin\\nsupdate\\win32\\nsupdate.dsp",
+ "..\\bin\\nsupdate\\win32\\nsupdate.mak",
+ "..\\bin\\pkcs11\\win32\\pk11destroy.dsp",
+ "..\\bin\\pkcs11\\win32\\pk11destroy.mak",
+ "..\\bin\\pkcs11\\win32\\pk11keygen.dsp",
+ "..\\bin\\pkcs11\\win32\\pk11keygen.mak",
+ "..\\bin\\pkcs11\\win32\\pk11list.dsp",
+ "..\\bin\\pkcs11\\win32\\pk11list.mak",
+ "..\\bin\\python\\dnssec-checkds.py",
+ "..\\bin\\python\\dnssec-coverage.py",
+ "..\\bin\\rndc\\win32\\rndc.dsp",
+ "..\\bin\\rndc\\win32\\rndc.mak",
+ "..\\bin\\rndc\\win32\\rndcutil.dsp",
+ "..\\bin\\tools\\win32\\arpaname.dsp",
+ "..\\bin\\tools\\win32\\arpaname.mak",
+ "..\\bin\\tools\\win32\\genrandom.dsp",
+ "..\\bin\\tools\\win32\\genrandom.mak",
+ "..\\bin\\tools\\win32\\ischmacfixup.dsp",
+ "..\\bin\\tools\\win32\\ischmacfixup.mak",
+ "..\\bin\\tools\\win32\\journalprint.dsp",
+ "..\\bin\\tools\\win32\\journalprint.mak",
+ "..\\bin\\tools\\win32\\nsec3hash.dsp",
+ "..\\bin\\tools\\win32\\nsec3hash.mak",
+ "..\\bin\\tests\\atomic\\win32\\t_atomic.dsp",
+ "..\\bin\\tests\\atomic\\win32\\t_atomic.mak",
+ "..\\bin\\tests\\db\\win32\\t_db.dsp",
+ "..\\bin\\tests\\db\\win32\\t_db.mak",
+ "..\\bin\\tests\\dst\\win32\\t_dst.dsp",
+ "..\\bin\\tests\\dst\\win32\\t_dst.mak",
+ "..\\bin\\tests\\master\\win32\\t_master.dsp",
+ "..\\bin\\tests\\master\\win32\\t_master.mak",
+ "..\\bin\\tests\\mem\\win32\\t_mem.dsp",
+ "..\\bin\\tests\\mem\\win32\\t_mem.mak",
+ "..\\bin\\tests\\hashes\\win32\\t_hashes.dsp",
+ "..\\bin\\tests\\hashes\\win32\\t_hashes.mak",
+ "..\\bin\\tests\\names\\win32\\t_names.dsp",
+ "..\\bin\\tests\\names\\win32\\t_names.mak",
+ "..\\bin\\tests\\rbt\\win32\\t_rbt.dsp",
+ "..\\bin\\tests\\rbt\\win32\\t_rbt.mak",
+ "..\\bin\\tests\\resolver\\win32\\t_resolver.dsp",
+ "..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
+ "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
+ "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
+ "..\\bin\\tests\\tasks\\win32\\t_tasks.dsp",
+ "..\\bin\\tests\\tasks\\win32\\t_tasks.mak",
+ "..\\bin\\tests\\timers\\win32\\t_timers.dsp",
+ "..\\bin\\tests\\timers\\win32\\t_timers.mak",
+ "..\\bin\\tests\\win32\\backtrace_test.dsp",
+ "..\\bin\\tests\\win32\\backtrace_test.mak",
+ "..\\bin\\tests\\win32\\inter_test.dsp",
+ "..\\bin\\tests\\win32\\inter_test.mak",
+ "..\\bin\\tests\\win32\\rwlock_test.dsp",
+ "..\\bin\\tests\\win32\\rwlock_test.mak",
+ "..\\bin\\tests\\win32\\shutdown_test.dsp",
+ "..\\bin\\tests\\win32\\shutdown_test.mak",
+ "..\\bin\\tests\\win32\\sock_test.dsp",
+ "..\\bin\\tests\\win32\\sock_test.mak",
+ "..\\bin\\tests\\win32\\task_test.dsp",
+ "..\\bin\\tests\\win32\\task_test.mak",
+ "..\\bin\\tests\\win32\\timer_test.dsp",
+ "..\\bin\\tests\\win32\\timer_test.mak",
+ "..\\bin\\tests\\win32\\inter_test.dsp",
+ "..\\bin\\tests\\win32\\inter_test.mak",
+ "..\\bin\\tests\\win32\\rwlock_test.dsp",
+ "..\\bin\\tests\\win32\\rwlock_test.mak",
+ "..\\bin\\tests\\win32\\shutdown_test.dsp",
+ "..\\bin\\tests\\win32\\shutdown_test.mak",
+ "..\\bin\\tests\\win32\\sock_test.dsp",
+ "..\\bin\\tests\\win32\\sock_test.mak",
+ "..\\bin\\tests\\win32\\task_test.dsp",
+ "..\\bin\\tests\\win32\\task_test.mak",
+ "..\\bin\\tests\\win32\\timer_test.dsp",
+ "..\\bin\\tests\\win32\\timer_test.mak",
+ "..\\bin\\win32\\BINDInstall\\BINDInstall.dsp",
+ "..\\bin\\win32\\BINDInstall\\BINDInstall.mak",
+ "..\\lib\\bind9\\win32\\libbind9.dsp",
+ "..\\lib\\bind9\\win32\\libbind9.mak",
+ "..\\lib\\dns\\win32\\gen.dsp",
+ "..\\lib\\dns\\win32\\gen.mak",
+ "..\\lib\\dns\\win32\\libdns.def",
+ "..\\lib\\dns\\win32\\libdns.dsp",
+ "..\\lib\\dns\\win32\\libdns.mak",
+ "..\\lib\\isc\\win32\\libisc.def",
+ "..\\lib\\isc\\win32\\libisc.dsp",
+ "..\\lib\\isc\\win32\\libisc.mak",
+ "..\\lib\\isccc\\win32\\libisccc.dsp",
+ "..\\lib\\isccc\\win32\\libisccc.mak",
+ "..\\lib\\isccfg\\win32\\libisccfg.dsp",
+ "..\\lib\\isccfg\\win32\\libisccfg.mak",
+ "..\\lib\\lwres\\win32\\liblwres.dsp",
+ "..\\lib\\lwres\\win32\\liblwres.mak",
+ "..\\lib\\tests\\win32\\libtests.dsp",
+ "..\\lib\\tests\\win32\\libtests.mak",
+ "..\\lib\\win32\\bindevt\\bindevt.dsp",
+ "..\\lib\\win32\\bindevt\\bindevt.mak",
+ "legacy\\BINDBuild.dsw",
+ "legacy\\BuildAll.bat",
+ "legacy\\BuildPost.bat",
+ "legacy\\BuildSetup.bat");
+
+my @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
+ "..\\bin\\check\\win32\\checkconf.vcxproj.filters",
+ "..\\bin\\check\\win32\\checktool.vcxproj",
+ "..\\bin\\check\\win32\\checktool.vcxproj.filters",
+ "..\\bin\\check\\win32\\checkzone.vcxproj",
+ "..\\bin\\check\\win32\\checkzone.vcxproj.filters",
+ "..\\bin\\confgen\\win32\\confgentool.vcxproj",
+ "..\\bin\\confgen\\win32\\confgentool.vcxproj.filters",
+ "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj",
+ "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
+ "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj",
+ "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
+ "..\\bin\\dig\\win32\\dig.vcxproj",
+ "..\\bin\\dig\\win32\\dig.vcxproj.filters",
+ "..\\bin\\dig\\win32\\dighost.vcxproj",
+ "..\\bin\\dig\\win32\\dighost.vcxproj.filters",
+ "..\\bin\\dig\\win32\\host.vcxproj",
+ "..\\bin\\dig\\win32\\host.vcxproj.filters",
+ "..\\bin\\dig\\win32\\nslookup.vcxproj",
+ "..\\bin\\dig\\win32\\nslookup.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\dnssectool.vcxproj",
+ "..\\bin\\dnssec\\win32\\dnssectool.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj",
+ "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\importkey.vcxproj",
+ "..\\bin\\dnssec\\win32\\importkey.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj",
+ "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\keygen.vcxproj",
+ "..\\bin\\dnssec\\win32\\keygen.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\revoke.vcxproj",
+ "..\\bin\\dnssec\\win32\\revoke.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\settime.vcxproj",
+ "..\\bin\\dnssec\\win32\\settime.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\signzone.vcxproj",
+ "..\\bin\\dnssec\\win32\\signzone.vcxproj.filters",
+ "..\\bin\\dnssec\\win32\\verify.vcxproj",
+ "..\\bin\\dnssec\\win32\\verify.vcxproj.filters",
+ "..\\bin\\named\\win32\\named.vcxproj",
+ "..\\bin\\named\\win32\\named.vcxproj.filters",
+ "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj",
+ "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj.filters",
+ "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj",
+ "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj.filters",
+ "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj",
+ "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj.filters",
+ "..\\bin\\pkcs11\\win32\\pk11list.vcxproj",
+ "..\\bin\\pkcs11\\win32\\pk11list.vcxproj.filters",
+ "..\\bin\\rndc\\win32\\rndc.vcxproj",
+ "..\\bin\\rndc\\win32\\rndc.vcxproj.filters",
+ "..\\bin\\rndc\\win32\\rndcutil.vcxproj",
+ "..\\bin\\rndc\\win32\\rndcutil.vcxproj.filters",
+ "..\\bin\\tools\\win32\\arpaname.vcxproj",
+ "..\\bin\\tools\\win32\\arpaname.vcxproj.filters",
+ "..\\bin\\tools\\win32\\genrandom.vcxproj",
+ "..\\bin\\tools\\win32\\genrandom.vcxproj.filters",
+ "..\\bin\\tools\\win32\\ischmacfixup.vcxproj",
+ "..\\bin\\tools\\win32\\ischmacfixup.vcxproj.filters",
+ "..\\bin\\tools\\win32\\journalprint.vcxproj",
+ "..\\bin\\tools\\win32\\journalprint.vcxproj.filters",
+ "..\\bin\\tools\\win32\\nsec3hash.vcxproj",
+ "..\\bin\\tools\\win32\\nsec3hash.vcxproj.filters",
+ "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj",
+ "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj.filters",
+ "..\\bin\\tests\\db\\win32\\t_db.vcxproj",
+ "..\\bin\\tests\\db\\win32\\t_db.vcxproj.filters",
+ "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj",
+ "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj.filters",
+ "..\\bin\\tests\\master\\win32\\t_master.vcxproj",
+ "..\\bin\\tests\\master\\win32\\t_master.vcxproj.filters",
+ "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj",
+ "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj.filters",
+ "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj",
+ "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj.filters",
+ "..\\bin\\tests\\names\\win32\\t_names.vcxproj",
+ "..\\bin\\tests\\names\\win32\\t_names.vcxproj.filters",
+ "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj",
+ "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj.filters",
+ "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj",
+ "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj.filters",
+ "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj",
+ "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj.filters",
+ "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj",
+ "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj.filters",
+ "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj",
+ "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj.filters",
+ "..\\bin\\tests\\win32\\backtrace_test.vcxproj",
+ "..\\bin\\tests\\win32\\backtrace_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\inter_test.vcxproj",
+ "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
+ "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
+ "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\sock_test.vcxproj",
+ "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\task_test.vcxproj",
+ "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\timer_test.vcxproj",
+ "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\inter_test.vcxproj",
+ "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
+ "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
+ "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\sock_test.vcxproj",
+ "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\task_test.vcxproj",
+ "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
+ "..\\bin\\tests\\win32\\timer_test.vcxproj",
+ "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
+ "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj",
+ "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj.filters",
+ "..\\lib\\bind9\\win32\\libbind9.vcxproj",
+ "..\\lib\\bind9\\win32\\libbind9.vcxproj.filters",
+ "..\\lib\\dns\\win32\\gen.vcxproj",
+ "..\\lib\\dns\\win32\\gen.vcxproj.filters",
+ "..\\lib\\dns\\win32\\libdns.vcxproj",
+ "..\\lib\\dns\\win32\\libdns.vcxproj.filters",
+ "..\\lib\\isc\\win32\\libisc.vcxproj",
+ "..\\lib\\isc\\win32\\libisc.vcxproj.filters",
+ "..\\lib\\isccc\\win32\\libisccc.vcxproj",
+ "..\\lib\\isccc\\win32\\libisccc.vcxproj.filters",
+ "..\\lib\\isccfg\\win32\\libisccfg.vcxproj",
+ "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
+ "..\\lib\\lwres\\win32\\liblwres.vcxproj",
+ "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
+ "..\\lib\\tests\\win32\\libtests.vcxproj",
+ "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
+ "..\\lib\\win32\\bindevt\\bindevt.vcxproj",
+ "..\\lib\\win32\\bindevt\\bindevt.vcxproj.filters",
+ "bind9.sln");
+
+# for config.h
+
+my %configdefh;
+
+my @substdefh = ("ALLOW_FILTER_AAAA",
+ "CONFIGARGS",
+ "DNS_RDATASET_FIXED",
+ "ENABLE_RPZ_NSDNAME",
+ "ENABLE_RPZ_NSIP",
+ "HAVE_EVP_SHA256",
+ "HAVE_EVP_SHA384",
+ "HAVE_EVP_SHA512",
+ "HAVE_GEOIP",
+ "HAVE_GEOIP_V6",
+ "HAVE_GEOIP_CITY_V6",
+ "HAVE_LIBXML2",
+ "HAVE_OPENSSL_DSA",
+ "HAVE_OPENSSL_ECDSA",
+ "HAVE_OPENSSL_GOST",
+ "HAVE_READLINE",
+ "ISC_LIST_CHECKINIT",
+ "WITH_IDN");
+
+# for platform.h
+
+my %configdefp;
+
+my @substdefp = ("ISC_PLATFORM_HAVEATOMICSTORE",
+ "ISC_PLATFORM_HAVECMPXCHG",
+ "ISC_PLATFORM_HAVEXADD",
+ "ISC_PLATFORM_HAVEXADDQ",
+ "ISC_PLATFORM_OPENSSLHASH",
+ "ISC_PLATFORM_USEBACKTRACE");
+
+# includes
+
+my %configinc;
+
+my @substinc = ("GSSAPI_INC",
+ "GEOIP_INC",
+ "IDN_INC",
+ "LIBXML2_INC",
+ "OPENSSL_INC",
+ "READLINE_INC");
+
+# libraries
+
+my %configlib;
+
+my @substlib = ("GSSAPI_LIB",
+ "GEOIP_LIB",
+ "IDN_LIB",
+ "KRB5_LIB",
+ "LIBXML2_LIB",
+ "OPENSSL_LIB",
+ "READLINE_LIB",
+ "READLINE_LIBD");
+
+# DLLs
+
+my %configdll;
+
+my @substdll = ("COMERR_DLL",
+ "GSSAPI_DLL",
+ "GEOIP_DLL",
+ "ICONV_DLL",
+ "IDN_DLL",
+ "KRB5_DLL",
+ "K5SPRT_DLL",
+ "LIBXML2_DLL",
+ "OPENSSL_DLL",
+ "WSHELP_DLL");
+
+# variables
+
+my %configvar;
+
+my @substvar = ("BUILD_MACHINE",
+ "BUILD_PLATFORM",
+ "COPTI",
+ "COPTML",
+ "COPTMLD",
+ "COPTX",
+ "COPTY",
+ "INTRINSIC",
+ "MACHINE",
+ "OPENSSL_PATH",
+ "PLATFORM",
+ "PKCS11_TOOLS",
+ "prefix",
+ "PYTHON",
+ "VCREDIST_PATH"),
+
+# defines
+
+my %configdefd;
+
+my @substdefd = ("PK11_LIB_LOCATION",
+ "USE_GSSAPI",
+ "USE_OPENSSL",
+ "USE_PKCS11",
+ "USE_PYTHON",
+ "USE_ISC_SPNEGO");
+
+# conditions
+
+my %configcond;
+
+my @substcond = ("ATOMIC",
+ "GSSAPI",
+ "GEOIP",
+ "IDNKIT",
+ "LIBXML2",
+ "OPENSSL",
+ "PKCS11",
+ "PYTHON",
+ "TESTS",
+ "XTESTS");
+
+# arguments
+
+# enable-xxx/disable-xxx
+
+my @enablelist = ("developer",
+ "fixed-rrset",
+ "intrinsics",
+ "isc-spnego",
+ "openssl-hash",
+ "filter-aaaa",
+ "rpz-nsdname",
+ "rpz-nsip");
+
+
+# with-xxx/without-xxx
+
+my @withlist = ("cross-compile",
+ "ecdsa",
+ "extra-tests",
+ "gssapi",
+ "geoip",
+ "gost",
+ "iconv",
+ "idn",
+ "openssl",
+ "libxml2",
+ "pkcs11",
+ "python",
+ "readline",
+ "tests",
+ "vcredist");
+
+# general arguments
+
+my @optionlist = ("help", "verbose", "legacy", "win32", "x64", "clean");
+
+# usage
+
+my @usage = ("Usage: perl Configure help\n",
+ " perl Configure options* win32|x64\n",
+ " perl Configure clean\n");
+
+# help
+
+my @help = (
+"'Configure' configures BIND9 build files.\n\n",
+@usage,
+"\nGeneral Options and Commands:\n",
+" verbose (options) print messages\n",
+" help (command) print this help\n",
+" legacy (options) process only files for legacy build\n",
+" win32 (command) configure for Win32 platform\n",
+" x64 (command) configure for x64 platform\n",
+" clean (command) clean up generated files\n",
+" <none> (command) print a summary of the configuration\n",
+"\nOptional Features:\n",
+" enable-intrinsics enable instrinsic/atomic functions [default=yes]\n",
+" enable-openssl-hash use OpenSSL for hash functions [default=no]\n",
+" enable-isc-spnego use SPNEGO from lib/dns [default=yes]\n",
+" enable-filter-aaaa enable filtering of AAAA records [default=no]\n",
+" enable-fixed-rrset enable fixed rrset ordering [default=no]\n",
+" enable-developer enable developer build settings [default=no]\n",
+" enable-rpz-nsip enable rpz-nsip rules [default=yes]\n",
+" enable-rpz-nsdname enable rpz-nsdname rules [default=yes]\n",
+"\nOptional Packages:\n",
+" with-tests build with test suite\n",
+" with-extra-tests build with extra test suite\n",
+" with-openssl[=PATH] build with OpenSSL yes|no|path\n",
+" with-pkcs11[=PATH] build with PKCS#11 support yes|no|provider-path\n",
+" with-ecdsa crypto ECDSA\n",
+" with-gost crypto GOST\n",
+" with-gssapi[=PATH] build with MIT KfW GSSAPI yes|no|path\n",
+" with-libxml2[=PATH] build with libxml2 library yes|no|path\n",
+" with-geoip[=PATH] build with GeoIP support yes|no|path\n",
+" with-python[=COMMAND] specify python interpreter python|command\n",
+" with-readline[=PATH] build with readline library support yes|no|path\n",
+" with-idn[=PATH] build with IDN kit support yes|no|path\n",
+" with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n",
+" with-vcredist[=PATH] visual C++ redistributable package yes|path\n\n",
+" with-cross-compile 32 / 64 bit build / host plaforms\n");
+
+# Parse arguments
+
+my $verbose = 0;
+my $legacy_only = 0;
+my $want_help = "no";
+my $want_win32 = "no";
+my $want_x64 = "no";
+my $want_clean = "no";
+my $want_unknown = "no";
+my $unknown_value;
+my $enable_intrinsics = "yes";
+my $enable_openssl_hash = "no";
+my $enable_filter_aaaa = "no";
+my $enable_isc_spnego = "yes";
+my $enable_fixed_rrset = "no";
+my $enable_developer = "no";
+my $enable_rpz_nsip = "yes";
+my $enable_rpz_nsdname = "yes";
+my $use_tests = "no";
+my $use_xtests = "no";
+my $use_openssl = "auto";
+my $openssl_path = "..\\..\\";
+my $use_pkcs11 = "no";
+my $pkcs11_path = "unknown";
+my $use_ecdsa = "auto";
+my $use_gost = "auto";
+my $use_gssapi = "no";
+my $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
+my $use_geoip = "no";
+my $geoip_path = "";
+my $use_libxml2 = "auto";
+my $libxml2_path = "..\\..\\";
+my $use_python = "auto";
+my $python_command = "python";
+my $use_readline = "no";
+my $readline_path = "..\\..\\";
+my $use_idn = "no";
+my $idn_path = "..\\..\\";
+my $iconv_path = " --idn-- ";
+my $use_vcredist = "yes";
+my $vcredist_path = " --infer-- ";
+my $cross_compile = "no";
+
+# no arguments -> usage
+
+if ($#ARGV < 0) {
+ foreach (@usage) {
+ print $_;
+ }
+ exit 1;
+}
+
+# parse arguments
+
+foreach (@ARGV) {
+ if (/^verbose$/i) {
+ $verbose = 1;
+ } elsif (/^help$/i) {
+ $want_help = "yes";
+ } elsif (/^disable-(.*)$/i) {
+ appargs($_);
+ myenable($1, "no");
+ } elsif (/^enable-(.$)$/i) {
+ appargs($_);
+ myenable($1, "yes");
+ } elsif (/^without-(.*)$/i) {
+ appargs($_);
+ mywith($1, "no");
+ } elsif (/^with-(.*)=(.*)$/i) {
+ appargs($_);
+ mywith($1, $2);
+ } elsif (/^with-(.*)$/i) {
+ appargs($_);
+ mywith($1, "yes");
+ } elsif (/^legacy$/i) {
+ $legacy_only = 1;
+ } elsif (/^win32$/i) {
+ $want_win32 = "yes";
+ } elsif (/^x64$/i) {
+ appargs($_);
+ $want_x64 = "yes";
+ } elsif (/^clean$/i) {
+ $want_clean = "yes";
+ } else {
+ $want_unknown = "yes";
+ $unknown_value = $_;
+ }
+}
+
+# legacy default to win32
+
+if ($legacy_only && ($want_x64 ne "yes")) {
+ $want_win32 = "yes";
+}
+
+# configure the platform
+
+if (($want_win32 eq "yes") && ($want_x64 eq "yes")) {
+ die "can't ask for both Win32 and x64 platforms\n";
+} elsif ($want_win32 eq "yes") {
+ $configvar{"PLATFORM"} = "Win32";
+ $configvar{"BUILD_PLATFORM"} = "Win32";
+ $configvar{"MACHINE"} = "/machine:X86";
+ $configvar{"BUILD_MACHINE"} = "/machine:X86";
+} elsif ($want_x64 eq "yes") {
+ $configvar{"PLATFORM"} = "x64";
+ $configvar{"BUILD_PLATFORM"} = "x64";
+ $configvar{"MACHINE"} = "/machine:X64";
+ $configvar{"BUILD_MACHINE"} = "/machine:X64";
+}
+
+# append seen args to CONFIGARGS define
+
+sub appargs {
+ my $arg = $_[0];
+ # escape backslashes, spaces and double quotes
+ $arg =~ s/([\\ "])/\\$1/g;
+ if (defined($configdefh{"CONFIGARGS"})) {
+ $configdefh{"CONFIGARGS"} .= " " . $arg;
+ } else {
+ $configdefh{"CONFIGARGS"} = $arg;
+ }
+}
+
+if (!$configdefh{"CONFIGARGS"}) {
+ # CONFIGARGS default is "default"
+ $configdefh{"CONFIGARGS"} = "\"default\"";
+} else {
+ my $val = $configdefh{"CONFIGARGS"};
+ $configdefh{"CONFIGARGS"} = "\"'$val'\"";
+}
+
+# parse enable/disable
+
+sub myenable {
+ my $key = $_[0];
+ my $val = $_[1];
+
+ if ($key =~ /^intrinsics$/i) {
+ if ($val =~ /^no$/i) {
+ $enable_intrinsics = "no";
+ }
+ } elsif ($key =~ /^openssl-hash$/i) {
+ if ($val =~ /^yes$/i) {
+ $enable_openssl_hash = "yes";
+ }
+ } elsif ($key =~ /^isc-spnego$/i) {
+ if ($val =~ /^no$/i) {
+ $enable_isc_spnego = "no";
+ }
+ } elsif ($key =~ /^filter-aaaa$/i) {
+ if ($val =~ /^yes$/i) {
+ $enable_filter_aaaa = "yes";
+ }
+ } elsif ($key =~ /^fixed-rrset$/i) {
+ if ($val =~ /^yes$/i) {
+ $enable_fixed_rrset = "yes";
+ }
+ } elsif ($key =~ /^developer$/i) {
+ if ($val =~ /^yes$/i) {
+ $enable_developer = "yes";
+ }
+ } elsif ($key =~ /^rpz-nsip$/i) {
+ if ($val =~ /^no$/i) {
+ $enable_rpz_nsip = "no";
+ }
+ } elsif ($key =~ /^rpz-nsdname$/i) {
+ if ($val =~ /^no$/i) {
+ $enable_rpz_nsdname = "no";
+ }
+ } else {
+ $want_unknown = "yes";
+ if ($val eq "no") {
+ $unknown_value = "disable-" . $key;
+ } else {
+ $unknown_value = "enable-". $key;
+ }
+ }
+}
+
+# enable-developer expansion now
+
+if ($enable_developer eq "yes") {
+ $configdefh{"ISC_LIST_CHECKINIT"} = 1;
+ $enable_filter_aaaa = "yes";
+ # no atf on WIN32
+ $enable_fixed_rrset = "yes";
+ # TODO: dlz filesystem
+ $use_tests = "yes";
+}
+
+# parse with/without
+
+sub mywith {
+ my $key = $_[0];
+ my $val = $_[1];
+
+ if ($key =~ /^tests$/i) {
+ if ($val =~ /^yes$/i) {
+ $use_tests = "yes";
+ }
+ } elsif ($key =~ /^extra-tests$/i) {
+ if ($val =~ /^yes$/i) {
+ $use_tests = "yes";
+ $use_xtests = "yes";
+ }
+ } elsif ($key =~ /^openssl$/i) {
+ if ($val =~ /^no$/i) {
+ $use_openssl = "no";
+ } elsif ($val !~ /^yes$/i) {
+ $use_openssl = "yes";
+ $openssl_path = $val;
+ }
+ } elsif ($key =~ /^pkcs11$/i) {
+ if ($val =~ /^yes$/i) {
+ $use_pkcs11 = "yes";
+ } elsif ($val !~ /^no$/i) {
+ $use_pkcs11= "yes";
+ $pkcs11_path = $val;
+ $pkcs11_path =~ s/\.dll$//i;
+ }
+ } elsif ($key =~ /^ecdsa$/i) {
+ if ($val =~ /^no$/i) {
+ $use_ecdsa = "no";
+ } elsif ($val =~ /^yes$/i) {
+ $use_ecdsa = "yes";
+ }
+ } elsif ($key =~ /^gost$/i) {
+ if ($val =~ /^no$/i) {
+ $use_gost = "no";
+ } elsif ($val =~ /^yes$/i) {
+ $use_gost = "yes";
+ }
+ } elsif ($key =~ /^gssapi$/i) {
+ if ($val !~ /^no$/i) {
+ $use_gssapi = "yes";
+ if ($val !~ /^yes$/i) {
+ $gssapi_path = $val;
+ }
+ }
+ } elsif ($key =~ /^libxml2$/i) {
+ if ($val =~ /^no$/i) {
+ $use_libxml2 = "no";
+ } elsif ($val !~ /^yes$/i) {
+ $use_libxml2 = "yes";
+ $libxml2_path = $val;
+ }
+ } elsif ($key =~ /^geoip$/i) {
+ if ($val !~ /^no$/i) {
+ $use_geoip = "yes";
+ if ($val !~ /^yes$/i) {
+ $geoip_path = $val;
+ }
+ }
+ } elsif ($key =~ /^readline$/i) {
+ if ($val !~ /^no$/i) {
+ $use_readline = "yes";
+ if ($val !~ /^yes$/i) {
+ $readline_path = $val;
+ }
+ }
+ } elsif ($key =~ /^idn$/i) {
+ if ($val !~ /^no$/i) {
+ $use_idn = "yes";
+ if ($val !~ /^yes$/i) {
+ $idn_path = $val;
+ }
+ }
+ } elsif ($key =~ /^iconv$/i) {
+ if ($val =~ /^no$/i) {
+ $want_unknown = "yes";
+ $unknown_value = "without-iconv doesn't make sense)";
+ } elsif ($val !~ /^yes$/i) {
+ $iconv_path = $val;
+ }
+ } elsif ($key =~ /^python$/i) {
+ if ($val =~ /^no$/i) {
+ $use_python = "no";
+ } else {
+ $use_python = "yes";
+ if ($val !~ /^yes$/i) {
+ $python_command = $val;
+ }
+ }
+ } elsif ($key =~ /^vcredist$/i) {
+ if ($val =~ /^no$/i) {
+ $want_unknown = "yes";
+ $unknown_value = "without-vcredist (vcredist is required)";
+ } elsif ($val !~ /^yes$/i) {
+ $vcredist_path = $val;
+ }
+ } elsif ($key =~ /^cross-compile$/i) {
+ if ($val =~ /^yes$/i) {
+ $cross_compile = "yes";
+ }
+ } else {
+ $want_unknown = "yes";
+ if ($val eq "no") {
+ $unknown_value = "without-" . $key;
+ } else {
+ $unknown_value = "with-" . $key;
+ }
+ }
+}
+
+if ($want_help ne "no") {
+ foreach (@help) {
+ print $_;
+ }
+ exit 1;
+}
+
+# clean up and exit if requested
+if ($want_clean eq "yes") {
+ my $file;
+ foreach $file (@filelist) {
+ unlink($file);
+ }
+
+ foreach $file (@projectlist) {
+ unlink($file);
+ }
+
+ exit 0;
+}
+
+if ($want_unknown ne "no") {
+ print STDERR "can't parse $unknown_value\n";
+ exit 1;
+}
+
+if ($verbose) {
+ if ($want_win32 eq "yes") {
+ print "configure for win32\n";
+ }
+ if ($want_x64 eq "yes") {
+ print "configure for x64\n";
+ }
+ if ($cross_compile eq "yes") {
+ print "cross compiling";
+ if ($want_x64 eq "yes") {
+ print ": build on win32 for x64 host\n";
+ } elsif ($want_win32 eq "yes") {
+ print ": build on x64 for win32 host\n";
+ } else {
+ print "\n";
+ }
+ }
+ if ($enable_intrinsics eq "yes") {
+ print "intrinsics: enabled\n";
+ } else {
+ print "intrinsics: disabled\n";
+ }
+ if ($enable_openssl_hash eq "yes") {
+ print "openssl-hash: enabled\n";
+ } else {
+ print "openssl-hash: disabled\n";
+ }
+ if ($enable_isc_spnego eq "yes") {
+ print "isc-spnego: enabled\n";
+ } else {
+ print "isc-spnego: disabled\n";
+ }
+ if ($enable_filter_aaaa eq "yes") {
+ print "filter-aaaa: enabled\n";
+ } else {
+ print "filter-aaaa: disabled\n";
+ }
+ if ($enable_fixed_rrset eq "yes") {
+ print "fixed-rrset: enabled\n";
+ } else {
+ print "fixed-rrset: disabled\n";
+ }
+ if ($enable_developer eq "yes") {
+ print "developer: enabled\n";
+ } else {
+ print "developer: disabled\n";
+ }
+ if ($enable_rpz_nsip eq "yes") {
+ print "rpz-nsip: enabled\n";
+ } else {
+ print "rpz-nsip: disabled\n";
+ }
+ if ($enable_rpz_nsdname eq "yes") {
+ print "rpz-nsdname: enabled\n";
+ } else {
+ print "rpz-nsdname: disabled\n";
+ }
+ if ($use_openssl eq "no") {
+ print "openssl: disabled\n";
+ } else {
+ print "openssl-path: $openssl_path\n";
+ }
+ if ($use_tests eq "yes") {
+ print "tests: enabled\n";
+ }
+ if ($use_xtests eq "yes") {
+ print "extra tests: enabled\n";
+ }
+ if ($use_pkcs11 eq "no") {
+ print "pkcs11: disabled\n";
+ } else {
+ print "pkcs11-provider-path: $pkcs11_path\n";
+ }
+ if ($use_ecdsa eq "no") {
+ print "ecdsa: disabled\n";
+ } else {
+ print "ecdsa: enabled\n";
+ }
+ if ($use_gost eq "no") {
+ print "gost: disabled\n";
+ } else {
+ print "gost: enabled\n";
+ }
+ if ($use_gssapi eq "no") {
+ print "gssapi: disabled\n";
+ } else {
+ print "gssapi-path: $gssapi_path\n";
+ }
+ if ($use_libxml2 eq "no") {
+ print "libxml2: disabled\n";
+ } else {
+ print "libxml2-path: $libxml2_path\n";
+ }
+ if ($use_geoip eq "no") {
+ print "geoip: disabled\n";
+ } else {
+ print "geoip-path: $geoip_path\n";
+ }
+ if ($use_readline eq "no") {
+ print "readline: disabled\n";
+ } else {
+ print "readline-path: $readline_path\n";
+ }
+ if ($use_idn eq "no") {
+ print "idn: disabled\n";
+ } else {
+ print "idn-path: $idn_path\n";
+ if ($iconv_path ne " --idn-- ") {
+ print "iconv-path: $iconv_path\n";
+ }
+ }
+ if ($use_python eq "no") {
+ print "python: disabled\n";
+ } else {
+ print "python-command: $python_command\n";
+ }
+ print "vcredist-path: $vcredist_path\n";
+}
+
+# Check environment
+
+# infer vcredist when not given
+
+if ($vcredist_path eq " --infer-- ") {
+ if ($verbose) {
+ print "trying to infer vcredist path from build environment\n";
+ }
+ if ($ENV{"VCRedistPath"} ne "") {
+ $vcredist_path = $ENV{"VCRedistPath"};
+ } elsif ($ENV{"FrameworkSDKDir"} ne "") {
+ if (($want_win32 eq "yes") &&
+ (-f File::Spec->catfile($ENV{"FrameworkSDKDir"},
+ "BootStrapper", "Packages",
+ "vcredist_x86", "vcredist_x86.exe"))) {
+ $vcredist_path = File::Spec->catfile($ENV{"FrameworkSDKDir"},
+ "BootStrapper",
+ "Packages",
+ "vcredist_x86",
+ "vcredist_x86.exe");
+ } elsif (($want_x64 eq "yes") &&
+ (-f File::Spec->catfile($ENV{"FrameworkSDKDir"},
+ "BootStrapper", "Packages",
+ "vcredist_x64",
+ "vcredist_x64.exe"))) {
+ $vcredist_path = File::Spec->catfile($ENV{"FrameworkSDKDir"},
+ "BootStrapper",
+ "Packages",
+ "vcredist_x64",
+ "vcredist_x64.exe");
+ }
+ } elsif ($ENV{"VCINSTALLDIR"} ne "") {
+ if (($want_win32 eq "yes") &&
+ (-f File::Spec->catfile($ENV{"VCINSTALLDIR"}, "redist",
+ "1033", "vcredist_x86.exe"))) {
+ $vcredist_path = File::Spec->catfile($ENV{"VCINSTALLDIR"},
+ "redist", "1033",
+ "vcredist_x86.exe");
+ } elsif (($want_x64 eq "yes") &&
+ (-f File::Spec->catfile($ENV{"VCINSTALLDIR"}, "redist",
+ "1033", "vcredist_x64.exe"))) {
+ $vcredist_path = File::Spec->catfile($ENV{"VCINSTALLDIR"},
+ "redist", "1033",
+ "vcredist_x64.exe");
+ }
+ } else {
+ die "with-vcredist is REQUIRED\n";
+ }
+}
+
+my $msc_ver = 0;
+
+open F, ">mscver.c" || die $!;
+print F << 'EOF';
+#include <windows.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ printf("%d\n", _MSC_VER);
+ return(0);
+}
+EOF
+close F;
+my $compret = `cl /nologo /MD mscver.c`;
+if (grep { -f and -x } ".\\mscver.exe") {
+ $msc_ver = `.\\mscver.exe`;
+} else {
+ die "can't get _MSC_VER value: $compret\n";
+}
+if ($verbose) {
+ print "_MSV_VER == $msc_ver\n";
+}
+if ($msc_ver < 1600) {
+ print STDERR "warning: old version of C++ compiler/Visual Studio\n";
+ print STDERR "only the legacy (cf legacy\\win32-build.txt) will work\n";
+}
+
+# gen single threaded for < VS 2005
+
+if ($msc_ver < 1400) {
+ $configvar{"COPTML"} = "/ML";
+ $configvar{"COPTMLD"} = "/MLD";
+}
+
+# /GX deprecated in VS 2005
+
+if ($msc_ver < 1400) {
+ $configvar{"COPTX"} = "/GX";
+} else {
+ $configvar{"COPTX"} = "/EHsc";
+}
+
+# /YX for < VS 2005
+
+if ($msc_ver < 1400) {
+ $configvar{"COPTY"} = "/YX";
+}
+
+# backtrace for >= VS 2012
+
+if ($msc_ver >= 1700) {
+ $configdefp{"ISC_PLATFORM_USEBACKTRACE"} = 1;
+}
+
+# warn when cross compiling
+
+if ($cross_compile eq "yes") {
+ if ($want_x64 eq "yes") {
+ $configvar{"BUILD_PLATFORM"} = "Win32";
+ $configvar{"BUILD_MACHINE"} = "/machine:X86";
+ }
+ if ($want_win32 eq "yes") {
+ $configvar{"BUILD_PLATFORM"} = "x64";
+ $configvar{"BUILD_MACHINE"} = "/machine:X64";
+ }
+} elsif ($want_win32 eq "yes") {
+ open F, ">cross.c" || die $!;
+ print F << 'EOF';
+#include <windows.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+#ifdef _WIN64
+ fprintf(stderr, "compiling for x64 when win32 was asked?!\n");
+#endif
+ return(0);
+}
+EOF
+ close F;
+ my $compret = `cl /nologo /MD cross.c`;
+ if (grep { -f and -x } ".\\cross.exe") {
+ my $cross = `.\\cross.exe`;
+ if ($cross) {
+ print STDERR $cross;
+ }
+ } else {
+ print STDERR "can't check cross compile: $compret\n";
+ }
+} else {
+ open F, ">cross.c" || die $!;
+ print F << 'EOF';
+#include <windows.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+#ifndef _WIN64
+ fprintf(stderr, "compiling in 32 bits when x64 was asked?!\n");
+#endif
+ return(0);
+}
+EOF
+ close F;
+ my $compret = `cl /nologo /MD cross.c`;
+ if (grep { -f and -x } ".\\cross.exe") {
+ my $cross = `.\\cross.exe`;
+ if ($cross) {
+ print STDERR $cross;
+ }
+ } else {
+ print STDERR "can't check cross compile: $compret\n";
+ }
+}
+
+# Process arguments
+
+# enable-intrinsics
+if ($enable_intrinsics eq "yes") {
+ $configcond{"ATOMIC"} = 1;
+ $configvar{"INTRINSIC"} = "true";
+ $configvar{"COPTI"} = "/Oi";
+ $configdefp{"ISC_PLATFORM_HAVEXADD"} = 1;
+ if ($want_x64 eq "yes") {
+ $configdefp{"ISC_PLATFORM_HAVEXADDQ"} = 1;
+ }
+ $configdefp{"ISC_PLATFORM_HAVEATOMICSTORE"} = 1;
+ $configdefp{"ISC_PLATFORM_HAVECMPXCHG"} = 1;
+} else {
+ $configvar{"INTRINSIC"} = "false";
+}
+
+# enable-filter-aaaa
+if ($enable_filter_aaaa eq "yes") {
+ $configdefh{"ALLOW_FILTER_AAAA"} = 1;
+}
+
+# enable-fixed-rrset
+if ($enable_fixed_rrset eq "yes") {
+ $configdefh{"DNS_RDATASET_FIXED"} = 1;
+}
+
+# enable-rpz-nsip
+if ($enable_rpz_nsip ne "no") {
+ $configdefh{"ENABLE_RPZ_NSIP"} = 1;
+}
+
+# enable-rpz-nsdname
+if ($enable_rpz_nsdname ne "no") {
+ $configdefh{"ENABLE_RPZ_NSDNAME"} = 1;
+}
+
+# with-tests
+if ($use_tests eq "yes") {
+ $configcond{"TESTS"} = 1;
+}
+
+# with-extra-tests
+if ($use_xtests eq "yes") {
+ $configcond{"XTESTS"} = 1;
+}
+
+# with-openssl
+if ($use_openssl eq "no") {
+ if ($verbose) {
+ print "OpenSSL library is disabled\n";
+ }
+} elsif ($use_openssl eq "auto") {
+ if ($verbose) {
+ print "checking for an OpenSSL built directory at sibling root\n";
+ }
+ opendir DIR, $openssl_path || die "No Directory: $!\n";
+ my @dirlist = grep (/^openssl-[0-9]+\.[0-9]+\.[0-9]+[a-z]{0,1}$/i,
+ readdir(DIR));
+ closedir(DIR);
+
+ # Make sure we have something
+ if (scalar(@dirlist) == 0) {
+ die "can't find an OpenSSL at sibling root\n";
+ }
+ # Now see if we have a directory or just a file.
+ # Make sure we are case insensitive
+ my $file;
+ foreach $file (sort {uc($b) cmp uc($a)} @dirlist) {
+ if (-f File::Spec->catfile($openssl_path,
+ $file,
+ "inc32\\openssl",
+ "opensslv.h")) {
+ $openssl_path = File::Spec->catdir($openssl_path, $file);
+ $use_openssl = "yes";
+ last;
+ }
+ }
+
+ # If we have one use it otherwise report the error
+ if ($use_openssl eq "auto") {
+ die "can't find an OpenSSL built directory at sibling root\n";
+ }
+}
+# falls into (so no else)
+if ($use_openssl eq "yes") {
+ $openssl_path = File::Spec->rel2abs($openssl_path);
+ if ($verbose) {
+ print "checking for OpenSSL built directory at \"$openssl_path\"\n";
+ }
+ if (!-f File::Spec->catfile($openssl_path,
+ "inc32\\openssl",
+ "opensslv.h")) {
+ die "can't find OpenSSL opensslv.h include\n";
+ }
+ if (!-f File::Spec->catfile($openssl_path, "out32dll", "libeay32.lib")) {
+ die "can't find OpenSSL libeay32.lib library\n";
+ }
+ if (!-f File::Spec->catfile($openssl_path, "out32dll", "libeay32.dll")) {
+ die "can't find OpenSSL libeay32.dll DLL\n";
+ }
+ my $openssl_inc = File::Spec->catdir($openssl_path, "inc32");
+ my $openssl_libdir = File::Spec->catdir($openssl_path, "out32dll");
+ my $openssl_lib = File::Spec->catfile($openssl_libdir, "libeay32.lib");
+ my $openssl_dll = File::Spec->catfile($openssl_libdir, "libeay32.dll");
+
+ $configcond{"OPENSSL"} = 1;
+ $configdefd{"USE_OPENSSL"} = "OPENSSL";
+ $configvar{"OPENSSL_PATH"} = "$openssl_path";
+ $configinc{"OPENSSL_INC"} = "$openssl_inc";
+ $configlib{"OPENSSL_LIB"} = "$openssl_lib";
+ $configdll{"OPENSSL_DLL"} = "$openssl_dll";
+ if (-f File::Spec->catfile($openssl_inc, "openssl", "dsa.h")) {
+ $configdefh{"HAVE_OPENSSL_DSA"} = 1;
+ } elsif ($verbose) {
+ print "OpenSSL DSA support is disabled\n";
+ }
+}
+
+# check OpenSSL
+if ($use_openssl eq "yes") {
+ if ($verbose) {
+ print "checking whether linking with OpenSSL works\n";
+ }
+ my $dll = $configdll{"OPENSSL_DLL"};
+ my $ret = `copy "$dll" .`;
+ if ($? != 0) {
+ die "Can't copy OpenSSL DLL to working directory: $ret\n";
+ }
+ open F, ">testossl.c" || die $!;
+ print F << 'EOF';
+#include <openssl/err.h>
+
+int
+main(void)
+{
+ ERR_clear_error();
+ return(0);
+}
+EOF
+ close F;
+ my $include = $configinc{"OPENSSL_INC"};
+ my $library = $configlib{"OPENSSL_LIB"};
+ $compret = `cl /nologo /MD /I "$include" testossl.c "$library"`;
+ if (grep { -f and -x } ".\\testossl.exe") {
+ `.\\testossl.exe`;
+ if ($? != 0) {
+ die "OpenSSL test failed\n";
+ }
+ } else {
+ die "can't compile OpenSSL test: $compret\n";
+ }
+}
+
+# check OpenSSL version
+if ($use_openssl eq "yes") {
+ if ($verbose) {
+ printf "checking OpenSSL library version\n";
+ }
+ open F, ">testosslv.c" || die $!;
+ print F << 'EOF';
+#include <stdio.h>
+#include <openssl/opensslv.h>
+
+int main() {
+ if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
+ OPENSSL_VERSION_NUMBER < 0x00908000L) ||
+ OPENSSL_VERSION_NUMBER >= 0x0090804fL)
+ return (0);
+ printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
+ OPENSSL_VERSION_NUMBER);
+ printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
+ "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
+ return (1);
+}
+EOF
+ close F;
+ my $include = $configinc{"OPENSSL_INC"};
+ my $library = $configlib{"OPENSSL_LIB"};
+ $compret = `cl /nologo /MD /I "$include" testosslv.c "$library"`;
+ if (grep { -f and -x } ".\\testosslv.exe") {
+ `.\\testosslv.exe`;
+ if ($? != 0) {
+ die "OpenSSL version test failed\n";
+ }
+ } else {
+ die "can't compile OpenSSL version test: $compret\n";
+ }
+}
+
+# check EVP_sha256 / EVP_sha384 / EVP_sha512
+
+if ($use_openssl eq "yes") {
+ if ($verbose) {
+ printf "checking for EVP_sha256\n";
+ }
+ open F, ">testsha256.c" || die $!;
+ print F << 'EOF';
+extern void *EVP_sha256();
+
+int main() {
+ return EVP_sha256() != 0;
+}
+EOF
+ close F;
+ my $library = $configlib{"OPENSSL_LIB"};
+ $compret = `cl /nologo /MD testsha256.c "$library"`;
+ if (grep { -f and -x } ".\\testsha256.exe") {
+ `.\\testsha256.exe`;
+ if ($? == 0) {
+ if ($verbose) {
+ print "EVP_sha256 test failed: disabling EVP_sha256\n";
+ }
+ $use_ecdsa = "no";
+ } else {
+ $configdefh{"HAVE_EVP_SHA256"} = 1;
+ }
+ } else {
+ if ($verbose) {
+ print "can't compile EVP_sha256 test: $compret\n";
+ print "disabling EVP_sha256\n";
+ }
+ $use_ecdsa = "no";
+ }
+
+ if ($verbose) {
+ printf "checking for EVP_sha384\n";
+ }
+ open F, ">testsha384.c" || die $!;
+ print F << 'EOF';
+extern void *EVP_sha384();
+
+int main() {
+ return EVP_sha384() != 0;
+}
+EOF
+ close F;
+ $compret = `cl /nologo /MD testsha384.c "$library"`;
+ if (grep { -f and -x } ".\\testsha384.exe") {
+ `.\\testsha384.exe`;
+ if ($? == 0) {
+ if ($verbose) {
+ print "EVP_sha384 test failed: disabling EVP_sha384\n";
+ }
+ $use_ecdsa = "no";
+ } else {
+ $configdefh{"HAVE_EVP_SHA384"} = 1;
+ }
+ } else {
+ if ($verbose) {
+ print "can't compile EVP_sha384 test: $compret\n";
+ print "disabling EVP_sha384\n";
+ }
+ $use_ecdsa = "no";
+ }
+
+ if ($verbose) {
+ printf "checking for EVP_sha512\n";
+ }
+ open F, ">testsha512.c" || die $!;
+ print F << 'EOF';
+extern void *EVP_sha512();
+
+int main() {
+ return EVP_sha512() != 0;
+}
+EOF
+ close F;
+ $compret = `cl /nologo /MD testsha512.c "$library"`;
+ if (grep { -f and -x } ".\\testsha512.exe") {
+ `.\\testsha512.exe`;
+ if ($? == 0) {
+ if ($verbose) {
+ print "EVP_sha512 test failed: disabling EVP_sha512\n";
+ }
+ } else {
+ $configdefh{"HAVE_EVP_SHA512"} = 1;
+ }
+ } else {
+ if ($verbose) {
+ print "can't compile EVP_sha512 test: $compret\n";
+ print "disabling EVP_sha512\n";
+ }
+ }
+}
+
+# with-ecdsa
+if ($use_openssl eq "no") {
+ $use_ecdsa = "no";
+}
+if ($use_ecdsa eq "auto") {
+ if ($verbose) {
+ print "checking for OpenSSL ECDSA support\n";
+ }
+ open F, ">testecdsa.c" || die $!;
+ print F << 'EOF';
+#include <openssl/ecdsa.h>
+#include <openssl/objects.h>
+
+int
+main(void)
+{
+ EC_KEY *ec256, *ec384;
+
+ ec256 = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+ ec384 = EC_KEY_new_by_curve_name(NID_secp384r1);
+ if (ec256 == NULL || ec384 == NULL)
+ return (2);
+ return (0);
+}
+EOF
+ close F;
+ my $include = $configinc{"OPENSSL_INC"};
+ my $library = $configlib{"OPENSSL_LIB"};
+ $compret = `cl /nologo /MD /I "$include" testecdsa.c "$library"`;
+ if (grep { -f and -x } ".\\testecdsa.exe") {
+ `.\\testecdsa.exe`;
+ if ($? != 0) {
+ if ($verbose) {
+ print "ECDSA test failed: disabling ECDSA\n";
+ }
+ $use_ecdsa = "no";
+ }
+ } else {
+ if ($verbose) {
+ print "can't compile ECDSA test: $compret\n";
+ print "disabling ECDSA\n";
+ }
+ $use_ecdsa = "no";
+ }
+}
+
+if ($use_ecdsa ne "no") {
+ $use_ecdsa = "yes";
+ $configdefh{"HAVE_OPENSSL_ECDSA"} = 1;
+}
+
+# with-gost
+if ($use_openssl eq "no") {
+ $use_gost = "no";
+}
+if ($use_gost eq "auto") {
+ if ($verbose) {
+ print "checking for OpenSSL GOST support\n";
+ }
+ open F, ">testgost.c" || die $!;
+ print F << 'EOF';
+#include <openssl/conf.h>
+#include <openssl/engine.h>
+
+int
+main(void)
+{
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
+ ENGINE *e;
+ EC_KEY *ek;
+
+ ek = NULL;
+ OPENSSL_config(NULL);
+
+ e = ENGINE_by_id("gost");
+ if (e == NULL)
+ return (1);
+ if (ENGINE_init(e) <= 0)
+ return (1);
+ return (0);
+#else
+ return (1);
+#endif
+}
+EOF
+ close F;
+ my $include = $configinc{"OPENSSL_INC"};
+ my $library = $configlib{"OPENSSL_LIB"};
+ $compret = `cl /nologo /MD /I "$include" testgost.c "$library"`;
+ if (grep { -f and -x } ".\\testgost.exe") {
+ `.\\testgost.exe`;
+ if ($? != 0) {
+ if ($verbose) {
+ print "GOST test failed: disabling GOST\n";
+ }
+ $use_gost = "no";
+ }
+ } else {
+ if ($verbose) {
+ print "can't compile GOST test: $compret\n";
+ print "disabling GOST\n";
+ }
+ $use_gost = "no";
+ }
+}
+
+if ($use_gost ne "no") {
+ $use_gost = "yes";
+ $configdefh{"HAVE_OPENSSL_GOST"} = 1;
+}
+
+# enable-openssl-hash
+if ($enable_openssl_hash eq "yes") {
+ if ($use_openssl eq "no") {
+ die "No OpenSSL for hash functions\n";
+ }
+ $configdefp{"ISC_PLATFORM_OPENSSLHASH"} = 1;
+}
+
+# with-pkcs11
+if ($use_pkcs11 ne "no") {
+ $configcond{"PKCS11"} = 1;
+ $configdefd{"USE_PKCS11"} = "USE_PKCS11";
+ $configvar{"PKCS11_TOOLS"} = "pkcs11";
+ $configdefd{"PK11_LIB_LOCATION"} = "PK11_LIB_LOCATION=\"$pkcs11_path\"";
+}
+
+# with-gssapi
+if ($use_gssapi eq "no") {
+ if ($verbose) {
+ print "gssapi library is disabled\n";
+ }
+} else {
+ $gssapi_path = File::Spec->rel2abs($gssapi_path);
+ if ($verbose) {
+ print "checking for gssapi directory at \"$gssapi_path\"\n";
+ }
+ $configcond{"GSSAPI"} = 1;
+ $configdefd{"USE_GSSAPI"} = "GSSAPI";
+ if (!-f File::Spec->catfile($gssapi_path, "include",
+ "gssapi", "gssapi.h")) {
+ die "can't find gssapi.h include\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "include",
+ "gssapi", "gssapi_krb5.h")) {
+ die "can't find gssapi_krb5.h include\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "include",
+ "krb5", "krb5.h")) {
+ die "can't find krb5.h include\n";
+ }
+ $configinc{"GSSAPI_INC"} = File::Spec->catdir($gssapi_path, "include");
+ my $bits = "32";
+ my $gssapi_lib;
+ my $krb5_lib;
+ if ($want_win32 eq "yes") {
+ $bits = "32";
+ if (!-f File::Spec->catfile($gssapi_path, "lib", "i386",
+ "gssapi${bits}.lib")) {
+ die "can't find gssapi${bits}.lib library\n";
+ }
+ $gssapi_lib = File::Spec->catfile($gssapi_path, "lib", "i386",
+ "gssapi${bits}.lib");
+ if (!-f File::Spec->catfile($gssapi_path, "lib", "i386",
+ "krb5_${bits}.lib")) {
+ die "can't find krb5_${bits}.lib library\n";
+ }
+ $krb5_lib = File::Spec->catfile($gssapi_path, "lib", "i386",
+ "krb5_${bits}.lib");
+ } elsif ($want_x64 eq "yes") {
+ $bits = "64";
+ if (!-f File::Spec->catfile($gssapi_path, "lib", "amd64",
+ "gssapi${bits}.lib")) {
+ die "can't find gssapi${bits}.lib library\n";
+ }
+ $gssapi_lib = File::Spec->catfile($gssapi_path, "lib", "amd64",
+ "gssapi${bits}.lib");
+ if (!-f File::Spec->catfile($gssapi_path, "lib", "amd64",
+ "krb5_${bits}.lib")) {
+ die "can't find krb5_${bits}.lib library\n";
+ }
+ $krb5_lib = File::Spec->catfile($gssapi_path, "lib", "amd64",
+ "krb5_${bits}.lib");
+ } else {
+ die "can't happen: no choice between Win32 and x64\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "bin", "gssapi${bits}.dll")) {
+ die "can't find gssapi${bits}.dll DLL\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "bin", "krb5_${bits}.dll")) {
+ die "can't find krb5_${bits}.dll DLL\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "bin", "comerr${bits}.dll")) {
+ die "can't find comerr${bits}.dll DLL\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "bin", "k5sprt${bits}.dll")) {
+ die "can't find k5sprt${bits}.dll DLL\n";
+ }
+ if (!-f File::Spec->catfile($gssapi_path, "bin", "wshelp${bits}.dll")) {
+ die "can't find wshelp${bits}.dll DLL\n";
+ }
+ $configlib{"GSSAPI_LIB"} = "$gssapi_lib";
+ $configlib{"KRB5_LIB"} = "$krb5_lib";
+ my $gssapi_dll = File::Spec->catfile($gssapi_path, "bin",
+ "gssapi${bits}.dll");
+ $configdll{"GSSAPI_DLL"} = "$gssapi_dll";
+ my $krb5_dll = File::Spec->catfile($gssapi_path, "bin",
+ "krb5_${bits}.dll");
+ $configdll{"KRB5_DLL"} = "$krb5_dll";
+ my $comerr_dll = File::Spec->catfile($gssapi_path, "bin",
+ "comerr${bits}.dll");
+ $configdll{"COMERR_DLL"} = "$comerr_dll";
+ my $k5sprt_dll = File::Spec->catfile($gssapi_path, "bin",
+ "k5sprt${bits}.dll");
+ $configdll{"K5SPRT_DLL"} = "$k5sprt_dll";
+ my $wshelp_dll = File::Spec->catfile($gssapi_path, "bin",
+ "wshelp${bits}.dll");
+ $configdll{"WSHELP_DLL"} = "$wshelp_dll";
+}
+
+# enable-isc-spnego
+if ($use_gssapi ne "yes") {
+ $enable_isc_spnego = "no";
+} elsif ($enable_isc_spnego eq "yes") {
+ if ($use_gssapi eq "no") {
+ die "No GSSAPI for SPNEGO\n";
+ }
+ $configdefd{"USE_ISC_SPNEGO"} = "USE_ISC_SPNEGO";
+}
+
+# with-geoip
+if ($use_geoip eq "no") {
+ if ($verbose) {
+ print "geoip library is disabled\n";
+ }
+} else {
+ $configcond{"GEOIP"} = 1;
+ $geoip_path = File::Spec->rel2abs($geoip_path);
+ if ($verbose) {
+ print "checking for geoip directory at \"$geoip_path\"\n";
+ }
+ if (!-f File::Spec->catfile($geoip_path, "GeoIP.h")) {
+ die "can't find GeoIP.h include\n";
+ }
+ if (!-f File::Spec->catfile($geoip_path, "GeoIP.lib")) {
+ die "can't find Geoip.lib library\n";
+ }
+ if (!-f File::Spec->catfile($geoip_path, "GeoIP.dll")) {
+ die "can't find Geoip.dll DLL\n";
+ }
+ $configinc{"GEOIP_INC"} = "$geoip_path";
+ my $geoip_lib = File::Spec->catfile($geoip_path, "GeoIP.lib");
+ $configlib{"GEOIP_LIB"} = "$geoip_lib";
+ my $geoip_dll = File::Spec->catfile($geoip_path, "GeoIP.dll");
+ $configdll{"GEOIP_DLL"} = "$geoip_dll";
+
+ if ($verbose) {
+ print "checking for GeoIP support\n";
+ }
+ my $ret = `copy "$geoip_dll" .`;
+ if ($? != 0) {
+ die "Can't copy GeoIP DLL to working directory: $ret\n";
+ }
+ open F, ">testgeoip.c" || die $!;
+ print F << 'EOF';
+extern void *GeoIP_open();
+
+int main() {
+ return GeoIP_open != 0;
+}
+EOF
+ close F;
+ $compret = `cl /nologo /MD testgeoip.c "$geoip_lib"`;
+ if (grep { -f and -x } ".\\testgeoip.exe") {
+ `.\\testgeoip.exe`;
+ if ($? == 0) {
+ die "GeoIP test failed\n";
+ }
+ } else {
+ die "can't compile GeoIP test: $compret\n";
+ }
+ $configdefh{"HAVE_GEOIP"} = 1;
+
+ if ($verbose) {
+ print "checking for GeoIP Country IPv6 support\n";
+ }
+ my $geoip_inc = qq(/I "$geoip_path");
+ my $geoip_libs = qq("$geoip_lib" ws2_32.lib);
+ open F, ">testgeoip1.c" || die $!;
+ print F << 'EOF';
+#include <GeoIP.h>
+
+struct in6_addr in6;
+int flag = 1;
+
+int main() {
+ if (flag)
+ return 1;
+ return GeoIP_country_name_by_ipnum_v6(NULL, in6) != NULL;
+}
+EOF
+ close F;
+ $compret = `cl /nologo $geoip_inc /MD testgeoip1.c $geoip_libs`;
+ if (grep { -f and -x } ".\\testgeoip1.exe") {
+ `.\\testgeoip1.exe`;
+ if ($? == 0) {
+ die "GeoIP Country IPv6 test failed\n";
+ }
+ } else {
+ die "can't compile GeoIP Country IPv6 test: $compret\n";
+ }
+ $configdefh{"HAVE_GEOIP_V6"} = 1;
+
+ if ($verbose) {
+ print "checking for GeoIP City IPv6 support\n";
+ }
+ open F, ">testgeoip2.c" || die $!;
+ print F << 'EOF';
+#include <GeoIP.h>
+#include <GeoIPCity.h>
+
+struct in6_addr in6;
+int i = GEOIP_CITY_EDITION_REV0_V6;
+int flag = 1;
+
+int main() {
+ if (flag)
+ return 1;
+ return GeoIP_record_by_ipnum_v6(NULL, in6) != NULL;
+}
+EOF
+ close F;
+ $compret = `cl /nologo $geoip_inc /MD testgeoip2.c $geoip_libs`;
+ if (grep { -f and -x } ".\\testgeoip2.exe") {
+ `.\\testgeoip2.exe`;
+ if ($? == 0) {
+ die "GeoIP City IPv6 test failed\n";
+ }
+ } else {
+ die "can't compile GeoIP City IPv6 test: $compret\n";
+ }
+ $configdefh{"HAVE_GEOIP_CITY_V6"} = 1;
+}
+
+# with-readline
+if ($use_readline eq "no") {
+ if ($verbose) {
+ print "readline library is disabled\n";
+ }
+} else {
+ $readline_path = File::Spec->rel2abs($readline_path);
+ if ($verbose) {
+ print "checking for readline directory at \"$readline_path\"\n";
+ }
+ if (!-f File::Spec->catfile($readline_path, "readline", "readline.h")) {
+ die "can't find readline.h include\n";
+ }
+ if (!-f File::Spec->catfile($readline_path, "readline", "readline.lib")) {
+ die "can't find readline.lib library\n";
+ }
+ $configdefh{"HAVE_READLINE"} = 1;
+ $configinc{"READLINE_INC"} = "$readline_path";
+ my $readline_lib = File::Spec->catfile($readline_path,
+ "readline", "readline.lib");
+ $configlib{"READLINE_LIB"} = "$readline_lib";
+ if (-f File::Spec->catfile($readline_path, "readline", "readlineD.lib")) {
+ my $readline_libd = File::Spec->catfile($readline_path,
+ "readline", "readlineD.lib");
+ $configlib{"READLINE_LIBD"} = "$readline_libd";
+ } else {
+ $configlib{"READLINE_LIBD"} = "$readline_lib";
+ }
+}
+
+# with-idn (including with-iconv)
+if ($use_idn eq "no") {
+ if ($verbose) {
+ print "IDN kit is disabled\n";
+ }
+} else {
+ $idn_path = File::Spec->rel2abs($idn_path);
+ if ($verbose) {
+ print "checking for IDN kit directory at \"$idn_path\"\n";
+ }
+ if (!-f File::Spec->catfile($idn_path, "idn", "api.h")) {
+ die "can't find idn\\api.h include\n";
+ }
+ if (!-f File::Spec->catfile($idn_path, "idn", "idnkit.lib")) {
+ die "can't find idnkit.lib library\n";
+ }
+ if (!-f File::Spec->catfile($idn_path, "idn", "idnkit.dll")) {
+ die "can't find idnkit.dll DLL\n";
+ }
+ $configcond{"IDNKIT"} = 1;
+ $configdefh{"WITH_IDN"} = 1;
+ $configinc{"IDN_INC"} = "$idn_path";
+ my $idn_lib = File::Spec->catfile($idn_path, "idn", "idnkit.lib");
+ $configlib{"IDN_LIB"} = "$idn_lib";
+ my $idn_dll = File::Spec->catfile($idn_path, "idn", "idnkit.dll");
+ $configdll{"IDN_DLL"} = "$idn_dll";
+ if ($iconv_path eq " --idn-- ") {
+ my $iconv_dll = File::Spec->catfile($idn_path, "idn", "iconv.dll");
+ $configdll{"ICONV_DLL"} = "$iconv_dll";
+ } else {
+ my $iconv_dll =File::Spec->catfile($iconv_path, "iconv.dll");
+ $configdll{"ICONV_DLL"} = "$iconv_dll";
+ }
+}
+
+# with-libxml2
+if ($use_libxml2 eq "no") {
+ if ($verbose) {
+ print "libxml2 library is disabled\n";
+ }
+} elsif ($use_libxml2 eq "auto") {
+ if ($verbose) {
+ print "checking for a libxml2 built directory at sibling root\n";
+ }
+ opendir DIR, $libxml2_path || die "No Directory: $!\n";
+ my @dirlist = grep (/^libxml2-[0-9]+\.[0-9]+\.[0-9]+[a-z]*/i,
+ readdir(DIR));
+ closedir(DIR);
+
+ # Make sure we have something
+ if (scalar(@dirlist) == 0) {
+ die "can't find a libxml2 at sibling root\n";
+ }
+ # Now see if we have a directory or just a file.
+ # Make sure we are case insensitive
+ my $file;
+ foreach $file (sort {uc($b) cmp uc($a)} @dirlist) {
+ if (-f File::Spec->catfile($libxml2_path,
+ $file,
+ "include\\libxml",
+ "xmlversion.h")) {
+ $libxml2_path = File::Spec->catdir($libxml2_path, $file);
+ $use_libxml2 = "yes";
+ last;
+ }
+ }
+
+ # If we have one use it otherwise report the error
+ if ($use_libxml2 eq "auto") {
+ die "can't find a libxml2 built directory at sibling root\n";
+ }
+}
+# falls into (so no else)
+if ($use_libxml2 eq "yes") {
+ $libxml2_path = File::Spec->rel2abs($libxml2_path);
+ if ($verbose) {
+ print "checking for libxml2 built directory at \"$libxml2_path\"\n";
+ }
+ if (!-f File::Spec->catfile($libxml2_path,
+ "include\\libxml",
+ "xmlversion.h")) {
+ die "can't find libxml2 xmlversion.h include\n";
+ }
+ if (!-f File::Spec->catfile($libxml2_path,
+ "win32\\bin.msvc",
+ "libxml2.lib")) {
+ die "can't find Libxml2 libxml2.lib library\n";
+ }
+ if (!-f File::Spec->catfile($libxml2_path,
+ "win32\\bin.msvc",
+ "libxml2.dll")) {
+ die "can't find Libxml2 DLL\n";
+ }
+ $configcond{"LIBXML2"} = 1;
+ $configdefh{"HAVE_LIBXML2"} = 1;
+ my $libxml2_inc = File::Spec->catdir($libxml2_path, "include");
+ $configinc{"LIBXML2_INC"} = "$libxml2_inc";
+ my $libxml2_libdir = File::Spec->catdir($libxml2_path, "win32\\bin.msvc");
+ my $libxml2_lib = File::Spec->catfile($libxml2_libdir, "libxml2.lib");
+ $configlib{"LIBXML2_LIB"} = "$libxml2_lib";
+ my $libxml2_dll = File::Spec->catfile($libxml2_libdir, "libxml2.dll");
+ $configdll{"LIBXML2_DLL"} = "$libxml2_dll";
+}
+
+# with-python
+if ($use_python eq "no") {
+ if ($verbose) {
+ print "python is disabled\n";
+ }
+} elsif ($use_python eq "auto") {
+ if ($verbose) {
+ print "checking for python in path\n";
+ }
+ my $pythonret = `python -c "quit()" 2>&1`;
+ if ($? != 0) {
+ die "can't launch the python interpreter: $pythonret\n";
+ }
+ $use_python = "yes";
+}
+if ($use_python ne "no") {
+ if ($verbose) {
+ my $pythonret = `"$python_command" -c "quit()" 2>&1`;
+ if ($? != 0) {
+ print STDERR
+ "can't lanch the local python interpreter: $pythonret\n";
+ }
+ }
+ $configcond{"PYTHON"} = 1;
+ $configdefd{"USE_PYTHON"} = "USE_PYTHON";
+ $configvar{"PYTHON"} = "$python_command";
+ $configvar{"prefix"} = "C:\\Windows\\system32\\dns";
+}
+
+# with-vcredist
+$vcredist_path = File::Spec->rel2abs($vcredist_path);
+if (!grep { -f and -x } $vcredist_path) {
+ die "$vcredist_path is not correct\n";
+} else {
+ $configvar{"VCREDIST_PATH"} = "$vcredist_path";
+}
+
+# setup config.h with %configdefh
+
+sub setupconfigh {
+ my $line;
+ my @Lines;
+
+ open F, $configfilein || die $!;
+ @Lines = <F>;
+ close F;
+
+ foreach $line (@Lines) {
+ chomp $line;
+ if ($line =~ /^@([^@]+)\@$/) {
+ if (defined($configdefh{$1})) {
+ $line = "#define $1 $configdefh{$1}";
+ } else {
+ $line = "/* #undef $1 */";
+ }
+ }
+ }
+
+ open F, $configfileout || die $!;
+ if ($verbose) {
+ print "Setting up config.h\n";
+ }
+ foreach $line (@Lines) {
+ print F $line . "\n";
+ }
+ close F;
+}
+
+# setup platform.h with %configdefp
+
+sub setupplatformh {
+ my $line;
+ my @Lines;
+
+ open F, $platformfile . ".in" || die $!;
+ @Lines = <F>;
+ close F;
+
+ foreach $line (@Lines) {
+ chomp $line;
+ if ($line =~ /^@([^@]+)\@$/) {
+ if (defined($configdefp{$1})) {
+ $line = "#define $1 $configdefp{$1}";
+ } else {
+ $line = "/* #undef $1 */";
+ }
+ }
+ }
+
+ open F, ">" . $platformfile || die $!;
+ if ($verbose) {
+ print "Setting up platform.h\n";
+ }
+ foreach $line (@Lines) {
+ print F $line . "\n";
+ }
+ close F;
+}
+
+# escape spaces
+
+sub kw {
+ if ($_[0] =~ / /) {
+ return "\"$_[0]\"";
+ } else {
+ return "$_[0]";
+ }
+}
+
+# setup a file with %configcond stack and %config{var,defd,inc,lib,dll}
+
+sub setupfile {
+ my $line;
+ my @Linesin;
+ my @Linesout;
+ my $filename = $_[0];
+ my $cond;
+ my @conds;
+ my $pass = 1;
+ my @passes;
+ my $val;
+
+ open F, $filename . ".in" || die $!;
+ @Linesin = <F>;
+ close F;
+
+ foreach $line (@Linesin) {
+ chomp $line;
+ if ($line =~ /^\@IF (.*)$/) {
+ if (defined($cond)) {
+ unshift(@conds, $cond);
+ unshift(@passes, $pass);
+ }
+ $cond = $1;
+ if (defined($configcond{$cond})) {
+ # do nothing
+ } else {
+ $pass = 0;
+ }
+ next;
+ } elsif ($line =~ /^\@ELSE (.*)$/) {
+ if ($cond ne $1) {
+ die "\@ELSE $1 mismatch in $filename\n";
+ }
+ if (defined($configcond{$cond})) {
+ $pass = 0;
+ } else {
+ if (scalar(@conds) > 0) {
+ $pass = $passes[0];
+ } else {
+ $pass = 1;
+ }
+ }
+ next;
+ } elsif ($line =~ /^\@END (.*)$/) {
+ if ($cond ne $1) {
+ die "\@END $1 mismatch in $filename\n";
+ }
+ $cond = shift(@conds);
+ if (scalar(@passes) > 0) {
+ $pass = shift(@passes);
+ } else {
+ $pass = 1;
+ }
+ next;
+ }
+ if ($pass == 0) {
+ next;
+ }
+ while ($line =~ /@([^@ ]*)@/) {
+ if ($1 ~~ @substvar) {
+ if (defined($configvar{$1})) {
+ $val = kw($configvar{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substdefd) {
+ if (defined($configdefd{$1})) {
+ my $def = $configdefd{$1};
+ $def =~ s/([\\ "])/\\$1/g;
+ $line = qq($`/D "$def"$');
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substinc) {
+ if (defined($configinc{$1})) {
+ $line = qq($`/I "$configinc{$1}"$');
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substlib) {
+ if (defined($configlib{$1})) {
+ $val = kw($configlib{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substdll) {
+ if (defined($configdll{$1})) {
+ $val = kw($configdll{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } else {
+ die "unknown control $& in $filename\n";
+ }
+ }
+ push @Linesout, $line;
+ }
+
+ open F, ">" . $filename || die $!;
+ if ($verbose) {
+ print "Setting up $filename\n";
+ }
+ foreach $line (@Linesout) {
+ print F $line . "\n";
+ }
+ close F;
+}
+
+# setup a project with %configcond stack and %config{var,defd,inc,lib,dll}
+
+sub setupproject {
+ my $line;
+ my @Linesin;
+ my @Linesout;
+ my $projectname = $_[0];
+ my $cond;
+ my @conds;
+ my $pass = 1;
+ my @passes;
+ my $val;
+
+ open F, $projectname . ".in" || die $!;
+ @Linesin = <F>;
+ close F;
+
+ foreach $line (@Linesin) {
+ chomp $line;
+ if ($line =~ /^\@IF (.*)$/) {
+ if (defined($cond)) {
+ unshift(@conds, $cond);
+ unshift(@passes, $pass);
+ }
+ $cond = $1;
+ if (defined($configcond{$cond})) {
+ # do nothing
+ } else {
+ $pass = 0;
+ }
+ next;
+ } elsif ($line =~ /^\@ELSE (.*)$/) {
+ if ($cond ne $1) {
+ die "\@ELSE $1 mismatch in $projectname\n";
+ }
+ if (defined($configcond{$cond})) {
+ $pass = 0;
+ } else {
+ if (scalar(@conds) > 0) {
+ $pass = $passes[0];
+ } else {
+ $pass = 1;
+ }
+ }
+ next;
+ } elsif ($line =~ /^\@END (.*)$/) {
+ if ($cond ne $1) {
+ die "\@END $1 mismatch in $projectname\n";
+ }
+ $cond = shift(@conds);
+ if (scalar(@passes) > 0) {
+ $pass = shift(@passes);
+ } else {
+ $pass = 1;
+ }
+ next;
+ }
+ if ($pass == 0) {
+ next;
+ }
+ while ($line =~ /@([^@ ]*)@/) {
+ if ($1 ~~ @substvar) {
+ if (defined($configvar{$1})) {
+ $val = kw($configvar{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substdefd) {
+ if (defined($configdefd{$1})) {
+ $val = kw($configdefd{$1});
+ $line = "$`$val;$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substinc) {
+ if (defined($configinc{$1})) {
+ $val = kw($configinc{$1});
+ $line = "$`$val;$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substlib) {
+ if (defined($configlib{$1})) {
+ $val = kw($configlib{$1});
+ $line = "$`$val;$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substdll) {
+ if (defined($configdll{$1})) {
+ $val = kw($configdll{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } else {
+ die "unknown control $& in $projectname\n";
+ }
+ }
+ push @Linesout, $line;
+ }
+
+ open F, ">" . $projectname || die $!;
+ if ($verbose) {
+ print "Setting up $projectname\n";
+ }
+ foreach $line (@Linesout) {
+ print F $line . "\n";
+ }
+ close F;
+}
+
+# make versions.h
+
+sub makeversion {
+ # List of directories with version files
+
+ my @dirlist = ("isc", "dns", "isccc", "isccfg", "lwres", "bind9");
+ my %LibMacros = (
+ "isc" => "LIBISC_EXPORTS",
+ "dns" => "LIBDNS_EXPORTS",
+ "isccc" => "LIBISCCC_EXPORTS",
+ "isccfg" => "LIBISCCFG_EXPORTS",
+ "lwres" => "LIBLWRES_EXPORTS",
+ "bind9" => "LIBBIND9_EXPORTS");
+ my @VersionNames = ("LIBINTERFACE", "LIBREVISION", "LIBAGE");
+ my %Versions;
+ my $Version;
+ my %ApiVersions;
+ my $Mapapi;
+ my $versionfile = "versions.h";
+ my $versionpath = "..\\$versionfile";
+
+ my $data;
+ my $name;
+ my $value;
+
+ # First get the version information
+
+ open V, "..\\version" || die $!;
+ while (<V>) {
+ chomp;
+ ($data) = split(/\#/);
+ if ($data) {
+ ($name, $value) = split(/=/, $data);
+ ($name) = split(/\s+/, $name);
+ if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
+ ($value) =~ s/^["\s]+//;
+ ($value) =~ s/["\s]+$//;
+ } else {
+ ($value) = split(/\s+/, $value);
+ }
+ $Versions{$name} = $value;
+ }
+ }
+ close V;
+
+ # And the mapapi one
+
+ open M, "..\\lib\\dns\\mapapi" || die $!;
+ while (<M>) {
+ chomp;
+ ($data) = split(/\#/);
+ if ($data) {
+ ($name, $value) = split(/=/, $data);
+ ($name) = split(/\s+/, $name);
+ if ($name eq 'MAPAPI') {
+ ($value) =~ s/^["\s]+//;
+ ($value) =~ s/["\s]+$//;
+ } else {
+ ($value) = split(/\s+/, $value);
+ }
+ $Mapapi = $value;
+ }
+ }
+ close M;
+
+ # Now set up the output version file
+
+ my $ThisDate = scalar localtime();
+ open O, ">$versionpath" ||
+ die "Can't open output file $versionpath: $!\n";
+
+ # Standard Header
+
+ print O '/*
+ * Copyright (C) 2001 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+';
+
+ print O "/*\n";
+ print O " * $versionfile.";
+ print O " Generated automatically by Configure.pl.\n";
+ print O " * Date generated: $ThisDate\n";
+ print O " */\n\n";
+
+ print O '
+#ifndef VERSIONS_H
+#define VERSIONS_H 1
+
+';
+
+ $Version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
+ if ($Versions{'PATCHVER'} != "") {
+ $Version = "$Version.$Versions{'PATCHVER'}";
+ }
+ $Version = "$Version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
+ if ($verbose) {
+ print "BIND Version: $Version\n";
+ }
+
+ print O "#define VERSION \"$Version\"\n";
+ print O "#define PRODUCT \"$Versions{'PRODUCT'}\"\n\n";
+ print O "#define DESCRIPTION \"$Versions{'DESCRIPTION'}\"\n\n";
+ print O
+ "#define MAJOR \"$Versions{'MAJORVER'}.$Versions{'MINORVER'}\"\n\n";
+ print O "#define MAPAPI \"$Mapapi\"\n\n";
+
+ my $dir;
+ my $apifile;
+ foreach $dir (@dirlist) {
+ $apifile = "..\\lib\\$dir\\api";
+ open A, $apifile || die $!;
+ while (<A>) {
+ chomp;
+ ($data) = split(/\#/);
+ if ($data) {
+ ($name, $value) = split(/=/, $data);
+ $name =~ s/\s+//;
+ $value =~ s/\s+//;
+ $ApiVersions{$name} = $value;
+ }
+ }
+ close A;
+
+ print O "\n#ifdef $LibMacros{$dir}\n";
+ foreach $name (@VersionNames) {
+ print O "#define $name\t$ApiVersions{$name}\n";
+ }
+ print O "#endif\n\n";
+ }
+
+ print O "#endif /* VERSIONS_H */\n";
+ close O;
+}
+
+# make srcid.h
+
+sub makesrcid {
+ my $data;
+ my $name;
+ my $value;
+ my $srcid = "unset";
+
+ open SOUT, ">..\\srcid.h" || die "cannot open srcid.h: $!\n";
+ if (open (SIN, "..\\srcid")) {
+ LOOP: while (<SIN>) {
+ chomp;
+ ($data) = split(/\#/);
+ if ($data) {
+ ($name, $value) = split(/=/, $data);
+ ($name) = split(/\s+/, $name);
+ ($value) = split(/\s+/, $value);
+ next LOOP if ($name != "SRCID");
+ $srcid = $value;
+ }
+ }
+ close SIN;
+ }
+
+ # Now set up the output version file
+
+ my $ThisDate = scalar localtime();
+
+ # Standard Header
+
+ print SOUT '/*
+ * Copyright (C) 2012 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+';
+
+ print SOUT "/*\n";
+ print SOUT " * srcid.h";
+ print SOUT " * Generated automatically by Configure.pl.\n";
+ print SOUT " * Date generated: $ThisDate\n";
+ print SOUT " */\n\n";
+
+ print SOUT '
+#ifndef SRCID_H
+#define SRCID_H 1
+';
+
+ if ($verbose) {
+ print "BIND SRCID: $srcid\n";
+ }
+
+ print SOUT "#define SRCID\t\"$srcid\"\n";
+ print SOUT "#endif /* SRCID_H */\n";
+ close SOUT;
+}
+
+# Status
+
+if ($verbose) {
+ my $name;
+
+ print "Configuration Status\n";
+
+ print "\tconfig.h:\n";
+ foreach $name (@substdefh) {
+ if (defined($configdefh{$name})) {
+ print qq(\t\t$name defined to "$configdefh{$name}"\n);
+ } else {
+ printf qq(\t\t$name undefined\n);
+ }
+ }
+
+ print "\tplatform.h:\n";
+ foreach $name (@substdefp) {
+ if (defined($configdefp{$name})) {
+ print qq(\t\t$name defined to "$configdefp{$name}"\n);
+ } else {
+ printf qq(\t\t$name undefined\n);
+ }
+ }
+
+ print "\tconditions:\n";
+ foreach $name (@substcond) {
+ if (defined($configcond{$name})) {
+ print "\t\t$name is true\n";
+ } else {
+ print "\t\t$name is false\n";
+ }
+ }
+
+ print "\tsubstitutions:\n";
+ foreach $name (@substvar) {
+ if (defined($configvar{$name})) {
+ print qq(\t\t$name -> "$configvar{$name}"\n);
+ }
+ }
+
+ print "\tdefines:\n";
+ foreach $name (@substdefd) {
+ if (defined($configdefd{$name})) {
+ print qq(\t\t/D "$configdefd{$name}"\n);
+ }
+ }
+
+ print "\tincludes:\n";
+ foreach $name (@substinc) {
+ if (defined($configinc{$name})) {
+ print qq(\t\t/I "$configinc{$name}"\n);
+ }
+ }
+
+ print "\tlibraries:\n";
+ foreach $name (@substlib) {
+ if (defined($configlib{$name})) {
+ print "\t\t$configlib{$name}\n";
+ }
+ }
+
+ print "\tDLLs:\n";
+ foreach $name (@substdll) {
+ if (defined($configdll{$name})) {
+ print "\t\t$configdll{$name}\n";
+ }
+ }
+
+ print "\n";
+}
+
+# Setup
+if (($want_win32 eq "yes") || ($want_x64 eq "yes")) {
+ setupconfigh();
+
+ setupplatformh();
+
+ my $file;
+ foreach $file (@filelist) {
+ setupfile($file);
+ }
+
+ if (!$legacy_only) {
+ foreach $file (@projectlist) {
+ setupproject($file);
+ }
+ }
+
+ makeversion();
+
+ makesrcid();
+
+ print "Configured.\n";
+} else {
+ print "add win32 or x64 to commit configuration to build files\n";
+}
+
+exit 0;
+
+# Notes: Unix configure.in options
+# --enable-developer partially supported
+# --enable-newstats (9.9/9.9sub only)
+# --enable-openssl-version-check included without a way to disable it
+# --enable-openssl-hash supported
+# --enable-threads included without a way to disable it
+# --enable-backtrace backtrace included without a way to disable it
+# --enable-symtable incompatible with DLLs (or libtool)
+# --enable-exportlib TODO (obsolete)
+# --enable-ipv6 included without a way to disable it
+# --enable-atomic supported (renamed intrinsic)
+# --enable-spnego support (part of GSSAPI)
+# --enable-fixed-rrset supported
+# --disable-rpz-nsip supported
+# --disable-rpz-nsdname supported
+# --enable-filter-aaaa supported
+# --with-python supported
+# --with-openssl supported
+# --with-ecdsa supported
+# --with-gost supported
+# --with-pkcs11 supported
+# --with-geoip supported
+# --with-gssapi supported with MIT (K)erberos (f)or (W)indows
+# --with-libxml2 supported
+# --with-libjson not supported on WIN32 (package not available on WIN32)
+# --with-purify ? (package available on WIN32 but for free?)
+# --with-libtool not supported on WIN32 (never)
+# --with-readline supported
+# --with-idn support
+# --with-[lib]iconv (part of IDN)
+# --with-atf not supported on WIN32 (package not available on WIN32)
+# --with-dlopen included without a way to disable it
+# --with-dlz-* ?
+#
+# Notes: MSVC versions
+# MSVC 12.0 _MSC_VER == 1800 (VS 2013)
+# MSVC 11.0 _MSC_VER == 1700 (VS 2012)
+# MSVC 10.0 _MSC_VER == 1600 (VS 2010)
+# MSVC 9.0 _MSC_VER == 1500 (VS 2008)
+# MSVC 8.0 _MSC_VER == 1400 (VS 2005)
+# MSVC 7.1 _MSC_VER == 1310 (VS .NET 2003)
+# MSVC 7.0 _MSC_VER == 1300 (VS .NET (2002))
+# MSVC 6.0 _MSC_VER == 1200 (VS 6.0 (1998))
+# MSVC 5.0 _MSC_VER == 1100 (VS 97)
diff --git a/win32utils/GeoIP.diff b/win32utils/GeoIP.diff
new file mode 100644
index 00000000..bc9b6bcb
--- /dev/null
+++ b/win32utils/GeoIP.diff
@@ -0,0 +1,345 @@
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/GeoIP.c dev/GeoIP-1.5.1/libGeoIP/GeoIP.c
+--- dists/GeoIP-1.5.1/libGeoIP/GeoIP.c 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/GeoIP.c 2013-07-19 16:56:58.000000000 +0200
+@@ -19,6 +19,7 @@
+ */
+
+ #include "GeoIP.h"
++#include "GeoIP_internal.h"
+
+ static geoipv6_t IPV6_NULL;
+
+@@ -44,6 +45,10 @@
+ #include <stdint.h> /* For uint32_t */
+ #endif
+
++#if defined(_WIN32)
++#include "pread.h"
++#endif
++
+ #ifdef _UNUSED
+ #elif defined(__GNUC__)
+ #define _UNUSED __attribute__ ((unused))
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/GeoIP.h dev/GeoIP-1.5.1/libGeoIP/GeoIP.h
+--- dists/GeoIP-1.5.1/libGeoIP/GeoIP.h 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/GeoIP.h 2013-07-19 16:53:33.000000000 +0200
+@@ -154,31 +154,33 @@
+ GEOIP_CORPORATE_SPEED = 3,
+ } GeoIPNetspeedValues;
+
++#ifdef GEOIP_EXPORTS
++#define GEOIP_API __declspec(dllexport)
++#define GEOIP_DATA __declspec(dllexport)
++#else
++#define GEOIP_DATA __declspec(dllimport)
++#define GEOIP_API
++#endif /* GEOIP_EXPORTS */
++
+ extern char **GeoIPDBFileName;
+-extern const char * GeoIPDBDescription[NUM_DB_TYPES];
+-extern const char *GeoIPCountryDBFileName;
+-extern const char *GeoIPRegionDBFileName;
+-extern const char *GeoIPCityDBFileName;
+-extern const char *GeoIPOrgDBFileName;
+-extern const char *GeoIPISPDBFileName;
+-extern const char *GeoIPLocationADBFileName;
+-extern const char *GeoIPAccuracyRadiusFileName;
+-extern const char *GeoIPCityConfidenceFileName;
++extern GEOIP_DATA const char * GeoIPDBDescription[NUM_DB_TYPES];
++extern GEOIP_DATA const char *GeoIPCountryDBFileName;
++extern GEOIP_DATA const char *GeoIPRegionDBFileName;
++extern GEOIP_DATA const char *GeoIPCityDBFileName;
++extern GEOIP_DATA const char *GeoIPOrgDBFileName;
++extern GEOIP_DATA const char *GeoIPISPDBFileName;
++extern GEOIP_DATA const char *GeoIPLocationADBFileName;
++extern GEOIP_DATA const char *GeoIPAccuracyRadiusFileName;
++extern GEOIP_DATA const char *GeoIPCityConfidenceFileName;
+ extern char * GeoIP_custom_directory;
+
+ /* Warning: do not use those arrays as doing so may break your
+ * program with newer GeoIP versions */
+-extern const char GeoIP_country_code[255][3];
+-extern const char GeoIP_country_code3[255][4];
+-extern const char * GeoIP_country_name[255];
+-extern const char * GeoIP_utf8_country_name[255];
+-extern const char GeoIP_country_continent[255][3];
+-
+-#ifdef DLL
+-#define GEOIP_API __declspec(dllexport)
+-#else
+-#define GEOIP_API
+-#endif /* DLL */
++extern GEOIP_DATA const char GeoIP_country_code[255][3];
++extern GEOIP_DATA const char GeoIP_country_code3[255][4];
++extern GEOIP_DATA const char * GeoIP_country_name[255];
++extern GEOIP_DATA const char * GeoIP_utf8_country_name[255];
++extern GEOIP_DATA const char GeoIP_country_continent[255][3];
+
+ GEOIP_API void GeoIP_setup_custom_directory(char *dir);
+ GEOIP_API GeoIP* GeoIP_open_type (int type, int flags);
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/GeoIPCity.c dev/GeoIP-1.5.1/libGeoIP/GeoIPCity.c
+--- dists/GeoIP-1.5.1/libGeoIP/GeoIPCity.c 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/GeoIPCity.c 2013-07-19 15:41:05.000000000 +0200
+@@ -35,6 +35,10 @@
+ #include <stdint.h> /* For uint32_t */
+ #endif
+
++#if defined(_WIN32)
++#include "pread.h"
++#endif
++
+ #ifndef HAVE_PREAD
+ #define pread(fd, buf, count, offset) \
+ ( \
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/GeoIPCity.h dev/GeoIP-1.5.1/libGeoIP/GeoIPCity.h
+--- dists/GeoIP-1.5.1/libGeoIP/GeoIPCity.h 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/GeoIPCity.h 2013-07-19 16:23:58.000000000 +0200
+@@ -48,22 +48,22 @@
+ int netmask;
+ } GeoIPRecord;
+
+-GeoIPRecord * GeoIP_record_by_ipnum (GeoIP* gi, unsigned long ipnum);
+-GeoIPRecord * GeoIP_record_by_addr (GeoIP* gi, const char *addr);
+-GeoIPRecord * GeoIP_record_by_name (GeoIP* gi, const char *host);
+-
+-GeoIPRecord * GeoIP_record_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+-GeoIPRecord * GeoIP_record_by_addr_v6 (GeoIP* gi, const char *addr);
+-GeoIPRecord * GeoIP_record_by_name_v6 (GeoIP* gi, const char *host);
++GEOIP_API GeoIPRecord * GeoIP_record_by_ipnum (GeoIP* gi, unsigned long ipnum);
++GEOIP_API GeoIPRecord * GeoIP_record_by_addr (GeoIP* gi, const char *addr);
++GEOIP_API GeoIPRecord * GeoIP_record_by_name (GeoIP* gi, const char *host);
++
++GEOIP_API GeoIPRecord * GeoIP_record_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
++GEOIP_API GeoIPRecord * GeoIP_record_by_addr_v6 (GeoIP* gi, const char *addr);
++GEOIP_API GeoIPRecord * GeoIP_record_by_name_v6 (GeoIP* gi, const char *host);
+
+-int GeoIP_record_id_by_addr (GeoIP* gi, const char *addr);
+-int GeoIP_record_id_by_addr_v6 (GeoIP* gi, const char *addr);
++GEOIP_API int GeoIP_record_id_by_addr (GeoIP* gi, const char *addr);
++GEOIP_API int GeoIP_record_id_by_addr_v6 (GeoIP* gi, const char *addr);
+
+-int GeoIP_init_record_iter (GeoIP* gi);
++GEOIP_API int GeoIP_init_record_iter (GeoIP* gi);
+ /* returns 0 on success, 1 on failure */
+-int GeoIP_next_record (GeoIP* gi, GeoIPRecord **gir, int *record_iter);
++GEOIP_API int GeoIP_next_record (GeoIP* gi, GeoIPRecord **gir, int *record_iter);
+
+-void GeoIPRecord_delete (GeoIPRecord *gir);
++GEOIP_API void GeoIPRecord_delete (GeoIPRecord *gir);
+
+ /* NULL on failure otherwise a malloced string in utf8 */
+ /* char * GeoIP_iso_8859_1__utf8(const char *); */
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/Makefile.vc dev/GeoIP-1.5.1/libGeoIP/Makefile.vc
+--- dists/GeoIP-1.5.1/libGeoIP/Makefile.vc 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/Makefile.vc 2013-07-19 16:47:45.000000000 +0200
+@@ -1,29 +1,42 @@
+ #NMAKE makefile for Windows developers.
+-#Produces a static library (GeoIP.lib).
++##Produces a static library (GeoIP.lib).
++#Produces a DLL (GeoIP.dll) and library (GeoIP.lib).
+
+ COMPILER=cl
+
+-CFLAGS=-DWIN32 -MD -nologo
++CFLAGS=-DWIN32 -DGEOIP_EXPORTS -MD -nologo
+
+ GEOIPINC = -I..\libGeoIP
+
+-CC1 = $(COMPILER) $(CFLAGS) $(GEOIPINC) -DGEOIPDATADIR=\"$(GEOIPDATADIR)\"
++CC1 = $(COMPILER) $(CFLAGS) $(GEOIPINC) -DGEOIPDATADIR=\"$(GEOIPDATADIR)\" -DPACKAGE_VERSION=\"1.5.1\"
+
+-OBJS=GeoIP.obj GeoIPCity.obj regionName.obj md5.obj timeZone.obj
++LINKER=link
++
++LDFLAGS=/DLL /nologo /subsystem:console
++
++LD1 = $(LINKER) $(LDFLAGS)
++
++OBJS=GeoIP.obj GeoIPCity.obj GeoIP_depreciated.obj regionName.obj md5.obj timeZone.obj pread.obj
+
+-EXTRA_LIBS= advapi32.lib wsock32.lib
++EXTRA_LIBS= ws2_32.lib
+
+ AR=lib
+
+-GeoIP.lib: GeoIP.obj GeoIPCity.obj regionName.obj md5.obj timeZone.obj
+- $(AR) -nologo $(OBJS) $(EXTRA_LIBS) /OUT:GeoIP.lib
++#GeoIP.lib: GeoIP.obj GeoIPCity.obj regionName.obj md5.obj timeZone.obj pread.obj
++# $(AR) -nologo $(OBJS) $(EXTRA_LIBS) /OUT:GeoIP.lib
+
++GeoIP.dll GeoIP.lib: $(OBJS)
++ $(LD1) $(OBJS) $(EXTRA_LIBS) /out:GeoIP.dll /implib:GeoIP.lib
++
+ GeoIP.obj: GeoIP.c
+ $(CC1) -c GeoIP.c $(GEOIPINC)
+
+ GeoIPCity.obj: GeoIPCity.c
+ $(CC1) -c GeoIPCity.c $(GEOIPINC)
+
++GeoIP_depreciated.obj: GeoIP_depreciated.c
++ $(CC1) -c GeoIP_depreciated.c $(GEOIPINC)
++
+ regionName.obj: regionName.c
+ $(CC1) -c regionName.c $(GEOIPINC)
+
+@@ -32,3 +45,6 @@
+
+ timeZone.obj: timeZone.c
+ $(CC1) -c timeZone.c $(GEOIPINC)
++
++pread.obj: pread.c
++ $(CC1) -c pread.c $(GEOIPINC)
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/pread.c dev/GeoIP-1.5.1/libGeoIP/pread.c
+--- dists/GeoIP-1.5.1/libGeoIP/pread.c 1970-01-01 01:00:00.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/pread.c 2013-07-19 15:37:44.000000000 +0200
+@@ -0,0 +1,73 @@
++/*
++ * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
++ *
++ * Permission to use, copy, modify, and/or distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#include <windows.h>
++#include <io.h>
++
++#include "pread.h"
++
++CRITICAL_SECTION preadsc;
++
++#ifdef _WIN64
++int pread(int fd, void *buf, unsigned int nbyte, __int64 offset)
++{
++ int cc = -1;
++ __int64 prev = (__int64)-1L;
++
++ EnterCriticalSection(&preadsc);
++ prev = _lseeki64(fd, 0L, SEEK_CUR);
++ if (prev == (__int64)-1L)
++ goto done;
++ if (_lseeki64(fd, offset, SEEK_SET) != offset)
++ goto done;
++ cc = _read(fd, buf, nbyte);
++
++done:
++ if (prev != (__int64)-1L)
++ (void)_lseeki64(fd, prev, SEEK_SET);
++ LeaveCriticalSection(&preadsc);
++
++ return cc;
++}
++#else
++int pread(int fd, void *buf, unsigned int nbyte, long offset)
++{
++ int cc = -1;
++ long prev = -1L;
++
++ EnterCriticalSection(&preadsc);
++ prev = _lseek(fd, 0L, SEEK_CUR);
++ if (prev == -1L)
++ goto done;
++ if (_lseek(fd, offset, SEEK_SET) != offset)
++ goto done;
++ cc = _read(fd, buf, nbyte);
++
++done:
++ if (prev != -1L)
++ (void)_lseek(fd, prev, SEEK_SET);
++ LeaveCriticalSection(&preadsc);
++
++ return cc;
++}
++#endif
++
++BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
++{
++ if (fdwReason == DLL_PROCESS_ATTACH)
++ InitializeCriticalSection(&preadsc);
++ return TRUE;
++}
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/pread.h dev/GeoIP-1.5.1/libGeoIP/pread.h
+--- dists/GeoIP-1.5.1/libGeoIP/pread.h 1970-01-01 01:00:00.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/pread.h 2013-07-19 15:39:01.000000000 +0200
+@@ -0,0 +1,29 @@
++/*
++ * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
++ *
++ * Permission to use, copy, modify, and/or distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#ifdef _WIN64
++typedef __int64 ssize_t;
++
++int pread(int fd, void *buf, unsigned int nbyte, __int64 offset);
++#else
++typedef int ssize_t;
++
++int pread(int fd, void *buf, unsigned int nbyte, long offset);
++#endif
++
++#define HAVE_PREAD
++
++extern CRITICAL_SECTION preadsc;
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/regionName.c dev/GeoIP-1.5.1/libGeoIP/regionName.c
+--- dists/GeoIP-1.5.1/libGeoIP/regionName.c 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/regionName.c 2013-07-19 16:37:56.000000000 +0200
+@@ -1,3 +1,5 @@
++#include "GeoIP.h"
++
+ #include <string.h>
+ #include <stdio.h>
+
+diff -ruN dists/GeoIP-1.5.1/libGeoIP/timeZone.c dev/GeoIP-1.5.1/libGeoIP/timeZone.c
+--- dists/GeoIP-1.5.1/libGeoIP/timeZone.c 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/libGeoIP/timeZone.c 2013-07-19 17:22:44.000000000 +0200
+@@ -1,4 +1,7 @@
++#include "GeoIP.h"
++
+ #include <string.h>
++
+ const char* GeoIP_time_zone_by_country_and_region(const char * country,const char * region) {
+ const char* timezone = NULL;
+ if (country == NULL) {
+diff -ruN dists/GeoIP-1.5.1/test/Makefile.vc dev/GeoIP-1.5.1/test/Makefile.vc
+--- dists/GeoIP-1.5.1/test/Makefile.vc 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/test/Makefile.vc 2013-07-19 16:48:55.000000000 +0200
+@@ -9,7 +9,7 @@
+
+ GEOIPINC = -I..\libGeoIP
+
+-CC1 = $(COMPILER) $(CFLAGS) $(GEOIPINC)
++CC1 = $(COMPILER) $(CFLAGS) $(GEOIPINC) -DSRCDIR=\"../\"
+
+ GEOIPLIB = ..\libGeoIP\GeoIP.lib
+
+diff -ruN dists/GeoIP-1.5.1/test/benchmark.c dev/GeoIP-1.5.1/test/benchmark.c
+--- dists/GeoIP-1.5.1/test/benchmark.c 2013-03-23 03:26:09.000000000 +0100
++++ dev/GeoIP-1.5.1/test/benchmark.c 2013-07-19 16:26:23.000000000 +0200
+@@ -81,7 +81,7 @@
+ void testgeoiporg(int flags, const char *msg, int numlookups)
+ {
+ GeoIP *i = NULL;
+- GeoIPRegion *i3 = NULL;
++ char *i3 = NULL;
+ int i4 = 0;
+ int i2 = 0;
+ double t = 0;
diff --git a/win32utils/SetupLibs.bat b/win32utils/SetupLibs.bat
deleted file mode 100644
index 3c95d81b..00000000
--- a/win32utils/SetupLibs.bat
+++ /dev/null
@@ -1,32 +0,0 @@
-echo off
-rem
-rem Copyright (C) 2007,2009 Internet Systems Consortium, Inc. ("ISC")
-rem
-rem Permission to use, copy, modify, and distribute this software for any
-rem purpose with or without fee is hereby granted, provided that the above
-rem copyright notice and this permission notice appear in all copies.
-rem
-rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-rem PERFORMANCE OF THIS SOFTWARE.
-
-rem SetupLibs.bat
-rem This script copys the openssl and libxml2 dlls into place.
-rem This script may be modified by updateopenssl.pl and/or updatelibxml2.pl.
-
-echo Copying the OpenSSL DLL and LICENSE.
-
-copy ..\..\openssl-0.9.8l\out32dll\libeay32.dll ..\Build\Release\
-copy ..\..\openssl-0.9.8l\out32dll\libeay32.dll ..\Build\Debug\
-copy ..\..\openssl-0.9.8l\LICENSE ..\Build\Release\OpenSSL-LICENSE
-
-echo Copying the libxml DLL.
-
-copy ..\..\libxml2-2.7.3\win32\bin.msvc\libxml2.dll ..\Build\Release\
-copy ..\..\libxml2-2.7.3\win32\bin.msvc\libxml2.dll ..\Build\Debug\
-
-rem Done
diff --git a/win32utils/bind9.sln.in b/win32utils/bind9.sln.in
new file mode 100644
index 00000000..59acf4ec
--- /dev/null
+++ b/win32utils/bind9.sln.in
@@ -0,0 +1,778 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+# BINDInstall must be the first project
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "..\bin\win32\BINDInstall\BINDInstall.vcxproj", "{190CC424-E8CC-46F2-9013-3152D6905118}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0} = {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}
+@IF TESTS
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+@END TESTS
+ {723C65DA-A96C-4BA3-A34E-44F11CA346F9} = {723C65DA-A96C-4BA3-A34E-44F11CA346F9}
+ {7C8681A1-E3A8-470E-9EEF-16054D111A19} = {7C8681A1-E3A8-470E-9EEF-16054D111A19}
+ {39721F26-8B80-4AA9-9826-2AEF7322C3D5} = {39721F26-8B80-4AA9-9826-2AEF7322C3D5}
+ {140DE800-E552-43CC-B0C7-A33A92E368CA} = {140DE800-E552-43CC-B0C7-A33A92E368CA}
+ {F938F9B8-D395-4A40-BEC7-0122D289C692} = {F938F9B8-D395-4A40-BEC7-0122D289C692}
+ {BA1048A8-6961-4A20-BE12-08BE20611C9D} = {BA1048A8-6961-4A20-BE12-08BE20611C9D}
+ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5} = {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ {0BF11E21-168C-4CAA-B784-429D126BBAE5} = {0BF11E21-168C-4CAA-B784-429D126BBAE5}
+ {205ED8A9-2E4C-41CC-9385-F3613402AA90} = {205ED8A9-2E4C-41CC-9385-F3613402AA90}
+ {17455DC6-5FBB-47C3-8F44-7DB574A188D3} = {17455DC6-5FBB-47C3-8F44-7DB574A188D3}
+ {6E6297F4-69D7-4533-85E1-BD17C30017C8} = {6E6297F4-69D7-4533-85E1-BD17C30017C8}
+ {D171F185-D3C2-4463-9CF3-ED1D0B1D6832} = {D171F185-D3C2-4463-9CF3-ED1D0B1D6832}
+ {03FB7588-C5A7-4572-968F-14F1206BC69C} = {03FB7588-C5A7-4572-968F-14F1206BC69C}
+ {FD653434-F1A8-44A9-85B2-A7468491DA6D} = {FD653434-F1A8-44A9-85B2-A7468491DA6D}
+ {91E60FDA-E48C-4DA0-92A2-97F963348E00} = {91E60FDA-E48C-4DA0-92A2-97F963348E00}
+ {B19042CE-D3D9-469B-BCD2-C3140150939A} = {B19042CE-D3D9-469B-BCD2-C3140150939A}
+ {4EE91023-94C3-48C0-B71C-5333B726C2EE} = {4EE91023-94C3-48C0-B71C-5333B726C2EE}
+ {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7} = {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}
+ {70F2F0DF-665D-4444-A982-AEA31A861A22} = {70F2F0DF-665D-4444-A982-AEA31A861A22}
+ {C41266C7-E27E-4D60-9815-82D3B32BF82F} = {C41266C7-E27E-4D60-9815-82D3B32BF82F}
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D} = {2C1F7096-C5B5-48D4-846F-A7ACA454335D}
+ {03A96113-CB14-43AA-AEB2-48950E3915C5} = {03A96113-CB14-43AA-AEB2-48950E3915C5}
+ {66028555-7DD5-4016-B601-9EF9A1EE8BFA} = {66028555-7DD5-4016-B601-9EF9A1EE8BFA}
+ {64964B03-4815-41F0-9057-E766A94AF197} = {64964B03-4815-41F0-9057-E766A94AF197}
+ {1E2C1635-3093-4D59-80E7-4743AC10F22F} = {1E2C1635-3093-4D59-80E7-4743AC10F22F}
+ {1EA4FC64-F33B-4A50-970A-EA052BBE9CF1} = {1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}
+@IF PKCS11
+ {5042D371-0402-4FA3-A52A-769708694422} = {5042D371-0402-4FA3-A52A-769708694422}
+ {C663B088-F7BC-4C8C-8D06-A76636EED651} = {C663B088-F7BC-4C8C-8D06-A76636EED651}
+ {5B3137E5-7E1F-49AA-8810-A09AA417D326} = {5B3137E5-7E1F-49AA-8810-A09AA417D326}
+@END PKCS11
+@IF TESTS
+@IF ATOMIC
+ {EC6ECB35-58C0-48EC-BAC9-9A652D9406C9} = {EC6ECB35-58C0-48EC-BAC9-9A652D9406C9}
+@END ATOMIC
+ {E6338E67-3224-4E66-9463-7AD719DA9346} = {E6338E67-3224-4E66-9463-7AD719DA9346}
+ {EE9B94CF-7C33-4F3B-A674-FB756D422C54} = {EE9B94CF-7C33-4F3B-A674-FB756D422C54}
+ {5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E} = {5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E}
+ {627F32A9-267F-41CA-827C-1FD04DE20A56} = {627F32A9-267F-41CA-827C-1FD04DE20A56}
+ {14071120-84F6-4A6F-BF23-90EC5D0372CE} = {14071120-84F6-4A6F-BF23-90EC5D0372CE}
+ {124DC0D3-3096-41D2-B490-CE85E890FF33} = {124DC0D3-3096-41D2-B490-CE85E890FF33}
+ {39F714D4-FEFB-4E23-91DB-1F6FC80A98B5} = {39F714D4-FEFB-4E23-91DB-1F6FC80A98B5}
+ {66E58849-A764-44E4-8D32-7C1107246A26} = {66E58849-A764-44E4-8D32-7C1107246A26}
+ {351D3872-707B-46AD-8BC0-5A668B8C745B} = {351D3872-707B-46AD-8BC0-5A668B8C745B}
+ {2CB7B128-5954-4FAF-B5EA-501B23BB8054} = {2CB7B128-5954-4FAF-B5EA-501B23BB8054}
+ {4E6F5A7C-89AA-4259-99DB-F89DAE418B3F} = {4E6F5A7C-89AA-4259-99DB-F89DAE418B3F}
+@END TESTS
+@IF XTESTS
+ {14751171-C40E-40EE-A2F0-37FFC3CCD4A2} = {14751171-C40E-40EE-A2F0-37FFC3CCD4A2}
+ {06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1} = {06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1}
+ {7705EEF6-6980-48F9-A045-699DAFE860C9} = {7705EEF6-6980-48F9-A045-699DAFE860C9}
+ {551561F6-4A2A-4824-8A34-A4AF0EB7C179} = {551561F6-4A2A-4824-8A34-A4AF0EB7C179}
+ {6200ED9D-CAB1-4C00-8D79-478F64A19B8F} = {6200ED9D-CAB1-4C00-8D79-478F64A19B8F}
+ {CC7340C1-CBAF-4145-969A-73AE960401D6} = {CC7340C1-CBAF-4145-969A-73AE960401D6}
+ {E55653C8-5501-4871-A97C-C926631F40F9} = {E55653C8-5501-4871-A97C-C926631F40F9}
+@END XTESTS
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen", "..\lib\dns\win32\gen.vcxproj", "{A3F71D12-F38A-4C77-8D87-8E8854CA74A1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libisc", "..\lib\isc\win32\libisc.vcxproj", "{3840E563-D180-4761-AA9C-E6155F02EAFF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libisccc", "..\lib\isccc\win32\libisccc.vcxproj", "{B556705F-1920-4400-878A-B259D3556047}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdns", "..\lib\dns\win32\libdns.vcxproj", "{5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libisccfg", "..\lib\isccfg\win32\libisccfg.vcxproj", "{B2DFA58C-6347-478E-81E8-01E06999D4F1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbind9", "..\lib\bind9\win32\libbind9.vcxproj", "{E741C10B-B075-4206-9596-46765B665E03}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblwres", "..\lib\lwres\win32\liblwres.vcxproj", "{EBDB30A3-E8EB-4E1D-915E-06720600A84E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bindevt", "..\lib\win32\bindevt\bindevt.vcxproj", "{0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+@IF TESTS
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtests", "..\lib\tests\win32\libtests.vcxproj", "{F6F08940-7597-4FEE-9CE0-E09A009C45A3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ EndProjectSection
+EndProject
+@END TESTS
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "named", "..\bin\named\win32\named.vcxproj", "{723C65DA-A96C-4BA3-A34E-44F11CA346F9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rndcutil", "..\bin\rndc\win32\rndcutil.vcxproj", "{7C8681A1-E3A8-470E-9EEF-16054D111A19}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rndc", "..\bin\rndc\win32\rndc.vcxproj", "{39721F26-8B80-4AA9-9826-2AEF7322C3D5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {7C8681A1-E3A8-470E-9EEF-16054D111A19} = {7C8681A1-E3A8-470E-9EEF-16054D111A19}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dighost", "..\bin\dig\win32\dighost.vcxproj", "{140DE800-E552-43CC-B0C7-A33A92E368CA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dig", "..\bin\dig\win32\dig.vcxproj", "{F938F9B8-D395-4A40-BEC7-0122D289C692}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ {140DE800-E552-43CC-B0C7-A33A92E368CA} = {140DE800-E552-43CC-B0C7-A33A92E368CA}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "host", "..\bin\dig\win32\host.vcxproj", "{BA1048A8-6961-4A20-BE12-08BE20611C9D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ {140DE800-E552-43CC-B0C7-A33A92E368CA} = {140DE800-E552-43CC-B0C7-A33A92E368CA}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nslookup", "..\bin\dig\win32\nslookup.vcxproj", "{C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ {140DE800-E552-43CC-B0C7-A33A92E368CA} = {140DE800-E552-43CC-B0C7-A33A92E368CA}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dnssectool", "..\bin\dnssec\win32\dnssectool.vcxproj", "{2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keygen", "..\bin\dnssec\win32\keygen.vcxproj", "{0BF11E21-168C-4CAA-B784-429D126BBAE5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "signzone", "..\bin\dnssec\win32\signzone.vcxproj", "{205ED8A9-2E4C-41CC-9385-F3613402AA90}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keyfromlabel", "..\bin\dnssec\win32\keyfromlabel.vcxproj", "{17455DC6-5FBB-47C3-8F44-7DB574A188D3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfromkey", "..\bin\dnssec\win32\dsfromkey.vcxproj", "{6E6297F4-69D7-4533-85E1-BD17C30017C8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "revoke", "..\bin\dnssec\win32\revoke.vcxproj", "{D171F185-D3C2-4463-9CF3-ED1D0B1D6832}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settime", "..\bin\dnssec\win32\settime.vcxproj", "{03FB7588-C5A7-4572-968F-14F1206BC69C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "verify", "..\bin\dnssec\win32\verify.vcxproj", "{FD653434-F1A8-44A9-85B2-A7468491DA6D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arpaname", "..\bin\tools\win32\arpaname.vcxproj", "{91E60FDA-E48C-4DA0-92A2-97F963348E00}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "journalprint", "..\bin\tools\win32\journalprint.vcxproj", "{B19042CE-D3D9-469B-BCD2-C3140150939A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsec3hash", "..\bin\tools\win32\nsec3hash.vcxproj", "{4EE91023-94C3-48C0-B71C-5333B726C2EE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrandom", "..\bin\tools\win32\genrandom.vcxproj", "{B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ischmacfixup", "..\bin\tools\win32\ischmacfixup.vcxproj", "{70F2F0DF-665D-4444-A982-AEA31A861A22}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsupdate", "..\bin\nsupdate\win32\nsupdate.vcxproj", "{C41266C7-E27E-4D60-9815-82D3B32BF82F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checktool", "..\bin\check\win32\checktool.vcxproj", "{2C1F7096-C5B5-48D4-846F-A7ACA454335D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkconf", "..\bin\check\win32\checkconf.vcxproj", "{03A96113-CB14-43AA-AEB2-48950E3915C5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D} = {2C1F7096-C5B5-48D4-846F-A7ACA454335D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkzone", "..\bin\check\win32\checkzone.vcxproj", "{66028555-7DD5-4016-B601-9EF9A1EE8BFA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D} = {2C1F7096-C5B5-48D4-846F-A7ACA454335D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "confgentool", "..\bin\confgen\win32\confgentool.vcxproj", "{64964B03-4815-41F0-9057-E766A94AF197}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rndcconfgen", "..\bin\confgen\win32\rndcconfgen.vcxproj", "{1E2C1635-3093-4D59-80E7-4743AC10F22F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {64964B03-4815-41F0-9057-E766A94AF197} = {64964B03-4815-41F0-9057-E766A94AF197}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ddnsconfgen", "..\bin\confgen\win32\ddnsconfgen.vcxproj", "{1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {B556705F-1920-4400-878A-B259D3556047} = {B556705F-1920-4400-878A-B259D3556047}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ {64964B03-4815-41F0-9057-E766A94AF197} = {64964B03-4815-41F0-9057-E766A94AF197}
+ EndProjectSection
+EndProject
+@IF PKCS11
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk11keygen", "..\bin\pkcs11\win32\pk11keygen.vcxproj", "{5042D371-0402-4FA3-A52A-769708694422}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk11list", "..\bin\pkcs11\win32\pk11list.vcxproj", "{C663B088-F7BC-4C8C-8D06-A76636EED651}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk11destroy", "..\bin\pkcs11\win32\pk11destroy.vcxproj", "{5B3137E5-7E1F-49AA-8810-A09AA417D326}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+@END PKCS11
+@IF TESTS
+@IF ATOMIC
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_atomic", "..\bin\tests\atomic\win32\t_atomic.vcxproj", "{EC6ECB35-58C0-48EC-BAC9-9A652D9406C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+@END ATOMIC
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_db", "..\bin\tests\db\win32\t_db.vcxproj", "{E6338E67-3224-4E66-9463-7AD719DA9346}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_dst", "..\bin\tests\dst\win32\t_dst.vcxproj", "{EE9B94CF-7C33-4F3B-A674-FB756D422C54}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7} = {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_master", "..\bin\tests\master\win32\t_master.vcxproj", "{5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_mem", "..\bin\tests\mem\win32\t_mem.vcxproj", "{627F32A9-267F-41CA-827C-1FD04DE20A56}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_hashes", "..\bin\tests\hashes\win32\t_hashes.vcxproj", "{14071120-84F6-4A6F-BF23-90EC5D0372CE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_names", "..\bin\tests\names\win32\t_names.vcxproj", "{124DC0D3-3096-41D2-B490-CE85E890FF33}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_rbt", "..\bin\tests\rbt\win32\t_rbt.vcxproj", "{39F714D4-FEFB-4E23-91DB-1F6FC80A98B5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_resolver", "..\bin\tests\resolver\win32\t_resolver.vcxproj", "{66E58849-A764-44E4-8D32-7C1107246A26}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_sockaddr", "..\bin\tests\sockaddr\win32\t_sockaddr.vcxproj", "{351D3872-707B-46AD-8BC0-5A668B8C745B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_tasks", "..\bin\tests\tasks\win32\t_tasks.vcxproj", "{2CB7B128-5954-4FAF-B5EA-501B23BB8054}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t_timers", "..\bin\tests\timers\win32\t_timers.vcxproj", "{4E6F5A7C-89AA-4259-99DB-F89DAE418B3F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}
+ EndProjectSection
+EndProject
+@END TESTS
+@IF XTESTS
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "backtrace_test", "..\bin\tests\win32\backtrace_test.vcxproj", "{14751171-C40E-40EE-A2F0-37FFC3CCD4A2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "inter_test", "..\bin\tests\win32\inter_test.vcxproj", "{06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rwlock_test", "..\bin\tests\win32\rwlock_test.vcxproj", "{7705EEF6-6980-48F9-A045-699DAFE860C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shutdown_test", "..\bin\tests\win32\shutdown_test.vcxproj", "{551561F6-4A2A-4824-8A34-A4AF0EB7C179}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sock_test", "..\bin\tests\win32\sock_test.vcxproj", "{6200ED9D-CAB1-4C00-8D79-478F64A19B8F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "task_test", "..\bin\tests\win32\task_test.vcxproj", "{CC7340C1-CBAF-4145-969A-73AE960401D6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer_test", "..\bin\tests\win32\timer_test.vcxproj", "{E55653C8-5501-4871-A97C-C926631F40F9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}
+ {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}
+ EndProjectSection
+EndProject
+@END XTESTS
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|@PLATFORM@ = Debug|@PLATFORM@
+ Release|@PLATFORM@ = Release|@PLATFORM@
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {190CC424-E8CC-46F2-9013-3152D6905118}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {190CC424-E8CC-46F2-9013-3152D6905118}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {190CC424-E8CC-46F2-9013-3152D6905118}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {190CC424-E8CC-46F2-9013-3152D6905118}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}.Debug|@BUILD_PLATFORM@.ActiveCfg = Debug|@BUILD_PLATFORM@
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}.Debug|@BUILD_PLATFORM@.Build.0 = Debug|@BUILD_PLATFORM@
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}.Release|@BUILD_PLATFORM@.ActiveCfg = Release|@BUILD_PLATFORM@
+ {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}.Release|@BUILD_PLATFORM@.Build.0 = Release|@BUILD_PLATFORM@
+ {3840E563-D180-4761-AA9C-E6155F02EAFF}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {3840E563-D180-4761-AA9C-E6155F02EAFF}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {3840E563-D180-4761-AA9C-E6155F02EAFF}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {3840E563-D180-4761-AA9C-E6155F02EAFF}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {B556705F-1920-4400-878A-B259D3556047}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {B556705F-1920-4400-878A-B259D3556047}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {B556705F-1920-4400-878A-B259D3556047}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {B556705F-1920-4400-878A-B259D3556047}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {B2DFA58C-6347-478E-81E8-01E06999D4F1}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {E741C10B-B075-4206-9596-46765B665E03}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {E741C10B-B075-4206-9596-46765B665E03}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {E741C10B-B075-4206-9596-46765B665E03}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {E741C10B-B075-4206-9596-46765B665E03}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@IF TESTS
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@END TESTS
+ {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {7C8681A1-E3A8-470E-9EEF-16054D111A19}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {7C8681A1-E3A8-470E-9EEF-16054D111A19}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {7C8681A1-E3A8-470E-9EEF-16054D111A19}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {7C8681A1-E3A8-470E-9EEF-16054D111A19}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {39721F26-8B80-4AA9-9826-2AEF7322C3D5}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {39721F26-8B80-4AA9-9826-2AEF7322C3D5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {39721F26-8B80-4AA9-9826-2AEF7322C3D5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {39721F26-8B80-4AA9-9826-2AEF7322C3D5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {140DE800-E552-43CC-B0C7-A33A92E368CA}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {140DE800-E552-43CC-B0C7-A33A92E368CA}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {140DE800-E552-43CC-B0C7-A33A92E368CA}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {140DE800-E552-43CC-B0C7-A33A92E368CA}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {F938F9B8-D395-4A40-BEC7-0122D289C692}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {F938F9B8-D395-4A40-BEC7-0122D289C692}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {F938F9B8-D395-4A40-BEC7-0122D289C692}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {F938F9B8-D395-4A40-BEC7-0122D289C692}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {BA1048A8-6961-4A20-BE12-08BE20611C9D}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {BA1048A8-6961-4A20-BE12-08BE20611C9D}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {BA1048A8-6961-4A20-BE12-08BE20611C9D}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {BA1048A8-6961-4A20-BE12-08BE20611C9D}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {0BF11E21-168C-4CAA-B784-429D126BBAE5}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {0BF11E21-168C-4CAA-B784-429D126BBAE5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {0BF11E21-168C-4CAA-B784-429D126BBAE5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {0BF11E21-168C-4CAA-B784-429D126BBAE5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {205ED8A9-2E4C-41CC-9385-F3613402AA90}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {205ED8A9-2E4C-41CC-9385-F3613402AA90}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {205ED8A9-2E4C-41CC-9385-F3613402AA90}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {205ED8A9-2E4C-41CC-9385-F3613402AA90}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {17455DC6-5FBB-47C3-8F44-7DB574A188D3}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {17455DC6-5FBB-47C3-8F44-7DB574A188D3}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {17455DC6-5FBB-47C3-8F44-7DB574A188D3}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {17455DC6-5FBB-47C3-8F44-7DB574A188D3}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {6E6297F4-69D7-4533-85E1-BD17C30017C8}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {6E6297F4-69D7-4533-85E1-BD17C30017C8}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {6E6297F4-69D7-4533-85E1-BD17C30017C8}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {6E6297F4-69D7-4533-85E1-BD17C30017C8}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {D171F185-D3C2-4463-9CF3-ED1D0B1D6832}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {D171F185-D3C2-4463-9CF3-ED1D0B1D6832}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {D171F185-D3C2-4463-9CF3-ED1D0B1D6832}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {D171F185-D3C2-4463-9CF3-ED1D0B1D6832}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {03FB7588-C5A7-4572-968F-14F1206BC69C}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {03FB7588-C5A7-4572-968F-14F1206BC69C}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {03FB7588-C5A7-4572-968F-14F1206BC69C}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {03FB7588-C5A7-4572-968F-14F1206BC69C}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {FD653434-F1A8-44A9-85B2-A7468491DA6D}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {FD653434-F1A8-44A9-85B2-A7468491DA6D}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {FD653434-F1A8-44A9-85B2-A7468491DA6D}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {FD653434-F1A8-44A9-85B2-A7468491DA6D}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {91E60FDA-E48C-4DA0-92A2-97F963348E00}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {91E60FDA-E48C-4DA0-92A2-97F963348E00}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {91E60FDA-E48C-4DA0-92A2-97F963348E00}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {91E60FDA-E48C-4DA0-92A2-97F963348E00}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {B19042CE-D3D9-469B-BCD2-C3140150939A}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {B19042CE-D3D9-469B-BCD2-C3140150939A}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {B19042CE-D3D9-469B-BCD2-C3140150939A}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {B19042CE-D3D9-469B-BCD2-C3140150939A}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {4EE91023-94C3-48C0-B71C-5333B726C2EE}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {4EE91023-94C3-48C0-B71C-5333B726C2EE}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {4EE91023-94C3-48C0-B71C-5333B726C2EE}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {4EE91023-94C3-48C0-B71C-5333B726C2EE}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {B4AC7F81-E3DC-43E9-B339-4FA5149FA8F7}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {70F2F0DF-665D-4444-A982-AEA31A861A22}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {70F2F0DF-665D-4444-A982-AEA31A861A22}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {70F2F0DF-665D-4444-A982-AEA31A861A22}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {70F2F0DF-665D-4444-A982-AEA31A861A22}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {C41266C7-E27E-4D60-9815-82D3B32BF82F}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {C41266C7-E27E-4D60-9815-82D3B32BF82F}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {C41266C7-E27E-4D60-9815-82D3B32BF82F}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {C41266C7-E27E-4D60-9815-82D3B32BF82F}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {2C1F7096-C5B5-48D4-846F-A7ACA454335D}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {03A96113-CB14-43AA-AEB2-48950E3915C5}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {03A96113-CB14-43AA-AEB2-48950E3915C5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {03A96113-CB14-43AA-AEB2-48950E3915C5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {03A96113-CB14-43AA-AEB2-48950E3915C5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {66028555-7DD5-4016-B601-9EF9A1EE8BFA}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {66028555-7DD5-4016-B601-9EF9A1EE8BFA}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {66028555-7DD5-4016-B601-9EF9A1EE8BFA}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {66028555-7DD5-4016-B601-9EF9A1EE8BFA}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {64964B03-4815-41F0-9057-E766A94AF197}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {64964B03-4815-41F0-9057-E766A94AF197}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {64964B03-4815-41F0-9057-E766A94AF197}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {64964B03-4815-41F0-9057-E766A94AF197}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {1E2C1635-3093-4D59-80E7-4743AC10F22F}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {1E2C1635-3093-4D59-80E7-4743AC10F22F}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {1E2C1635-3093-4D59-80E7-4743AC10F22F}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {1E2C1635-3093-4D59-80E7-4743AC10F22F}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@IF PKCS11
+ {5042D371-0402-4FA3-A52A-769708694422}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {5042D371-0402-4FA3-A52A-769708694422}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {5042D371-0402-4FA3-A52A-769708694422}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {5042D371-0402-4FA3-A52A-769708694422}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {C663B088-F7BC-4C8C-8D06-A76636EED651}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {C663B088-F7BC-4C8C-8D06-A76636EED651}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {C663B088-F7BC-4C8C-8D06-A76636EED651}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {C663B088-F7BC-4C8C-8D06-A76636EED651}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {5B3137E5-7E1F-49AA-8810-A09AA417D326}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {5B3137E5-7E1F-49AA-8810-A09AA417D326}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {5B3137E5-7E1F-49AA-8810-A09AA417D326}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {5B3137E5-7E1F-49AA-8810-A09AA417D326}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@END PKCS11
+@IF TESTS
+@IF ATOMIC
+ {EC6ECB35-58C0-48EC-BAC9-9A652D9406C9}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {EC6ECB35-58C0-48EC-BAC9-9A652D9406C9}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {EC6ECB35-58C0-48EC-BAC9-9A652D9406C9}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {EC6ECB35-58C0-48EC-BAC9-9A652D9406C9}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@END ATOMIC
+ {E6338E67-3224-4E66-9463-7AD719DA9346}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {E6338E67-3224-4E66-9463-7AD719DA9346}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {E6338E67-3224-4E66-9463-7AD719DA9346}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {E6338E67-3224-4E66-9463-7AD719DA9346}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {EE9B94CF-7C33-4F3B-A674-FB756D422C54}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {EE9B94CF-7C33-4F3B-A674-FB756D422C54}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {EE9B94CF-7C33-4F3B-A674-FB756D422C54}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {EE9B94CF-7C33-4F3B-A674-FB756D422C54}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {5DC2F8D3-9373-41BB-B3AB-78F2E12F1E5E}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {627F32A9-267F-41CA-827C-1FD04DE20A56}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {627F32A9-267F-41CA-827C-1FD04DE20A56}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {627F32A9-267F-41CA-827C-1FD04DE20A56}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {627F32A9-267F-41CA-827C-1FD04DE20A56}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {14071120-84F6-4A6F-BF23-90EC5D0372CE}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {14071120-84F6-4A6F-BF23-90EC5D0372CE}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {14071120-84F6-4A6F-BF23-90EC5D0372CE}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {14071120-84F6-4A6F-BF23-90EC5D0372CE}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {124DC0D3-3096-41D2-B490-CE85E890FF33}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {124DC0D3-3096-41D2-B490-CE85E890FF33}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {124DC0D3-3096-41D2-B490-CE85E890FF33}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {124DC0D3-3096-41D2-B490-CE85E890FF33}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {39F714D4-FEFB-4E23-91DB-1F6FC80A98B5}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {39F714D4-FEFB-4E23-91DB-1F6FC80A98B5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {39F714D4-FEFB-4E23-91DB-1F6FC80A98B5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {39F714D4-FEFB-4E23-91DB-1F6FC80A98B5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {66E58849-A764-44E4-8D32-7C1107246A26}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {66E58849-A764-44E4-8D32-7C1107246A26}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {66E58849-A764-44E4-8D32-7C1107246A26}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {66E58849-A764-44E4-8D32-7C1107246A26}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {351D3872-707B-46AD-8BC0-5A668B8C745B}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {351D3872-707B-46AD-8BC0-5A668B8C745B}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {351D3872-707B-46AD-8BC0-5A668B8C745B}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {351D3872-707B-46AD-8BC0-5A668B8C745B}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {2CB7B128-5954-4FAF-B5EA-501B23BB8054}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {2CB7B128-5954-4FAF-B5EA-501B23BB8054}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {2CB7B128-5954-4FAF-B5EA-501B23BB8054}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {2CB7B128-5954-4FAF-B5EA-501B23BB8054}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {4E6F5A7C-89AA-4259-99DB-F89DAE418B3F}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {4E6F5A7C-89AA-4259-99DB-F89DAE418B3F}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {4E6F5A7C-89AA-4259-99DB-F89DAE418B3F}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {4E6F5A7C-89AA-4259-99DB-F89DAE418B3F}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@END TESTS
+@IF XTESTS
+ {14751171-C40E-40EE-A2F0-37FFC3CCD4A2}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {14751171-C40E-40EE-A2F0-37FFC3CCD4A2}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {14751171-C40E-40EE-A2F0-37FFC3CCD4A2}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {14751171-C40E-40EE-A2F0-37FFC3CCD4A2}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {06AA5F16-7121-4C3A-91EF-AFC3BF3B8CE1}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {7705EEF6-6980-48F9-A045-699DAFE860C9}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {7705EEF6-6980-48F9-A045-699DAFE860C9}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {7705EEF6-6980-48F9-A045-699DAFE860C9}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {7705EEF6-6980-48F9-A045-699DAFE860C9}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {551561F6-4A2A-4824-8A34-A4AF0EB7C179}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {551561F6-4A2A-4824-8A34-A4AF0EB7C179}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {551561F6-4A2A-4824-8A34-A4AF0EB7C179}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {551561F6-4A2A-4824-8A34-A4AF0EB7C179}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {6200ED9D-CAB1-4C00-8D79-478F64A19B8F}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {6200ED9D-CAB1-4C00-8D79-478F64A19B8F}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {6200ED9D-CAB1-4C00-8D79-478F64A19B8F}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {6200ED9D-CAB1-4C00-8D79-478F64A19B8F}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {CC7340C1-CBAF-4145-969A-73AE960401D6}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {CC7340C1-CBAF-4145-969A-73AE960401D6}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {CC7340C1-CBAF-4145-969A-73AE960401D6}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {CC7340C1-CBAF-4145-969A-73AE960401D6}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+ {E55653C8-5501-4871-A97C-C926631F40F9}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@
+ {E55653C8-5501-4871-A97C-C926631F40F9}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@
+ {E55653C8-5501-4871-A97C-C926631F40F9}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@
+ {E55653C8-5501-4871-A97C-C926631F40F9}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@
+@END XTESTS
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/win32utils/build.txt b/win32utils/build.txt
new file mode 100644
index 00000000..ff3208e7
--- /dev/null
+++ b/win32utils/build.txt
@@ -0,0 +1,181 @@
+Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
+
+ BIND 9.10 for Win32 Source Build Instructions. 11-Jul-2013
+
+Building BIND 9.10 on Windows XP/Vista/7/8 or server 2003/2008/2008R2
+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) must 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) must be downloaded and built on
+the system on which you are building BIND.
+
+4) Optional external packages (not used by default)
+
+If you wish to use IP geolocation, GeoIP API and database must be
+downloaded, patched and built on the system on which you are building
+BIND.
+
+If you wish to use readline, the readline library must be downloaded
+and built on the system on which you are building BIND.
+
+5) The BIND Installer (BINDInstall) includes a copy of the
+redistributable runtime object vcredist_x86.exe (or vcredist_x64.exe),
+which is included with Visual Studio and can be downloaded from
+Microsoft. This file must be in place prior to running the build
+setup script.
+
+Step 1: Download and build OpenSSL
+
+ OpenSSL is required for DNSSEC. If you wish to build BIND 9 without
+ DNSSEC support, skip to step 2.
+
+ Download and untar the OpenSSL sources from http://www.openssl.org/.
+ Extract them at in the same directory in which you extracted the BIND 9
+ source: If BIND 9 is in \build\bind-9.10.0, for instance, OpenSSL should
+ be in \build\openssl-1.0.1e (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-1.0.1e, but you should check the OpenSSL distribution to see
+ if the build instructions in the INSTALL.W32 (or INSTALL.W64) file
+ have changed, in particular for the assembler options:
+
+ cd openssl-1.0.1e
+ perl Configure --prefix=c:/openssl enable-static-engine VC-WIN32
+ ms\do_ms
+ nmake /f ms\ntdll.mak
+
+ For 64 bit build, replace VC-WIN32 by VC-WIN64A.
+ The enable-static-engine is needed when an OpenSSL engine will be
+ used, so with GOST support (configured by default) and/or PKCS #11
+ support.
+
+ If you wish to use PKCS #11 to control a cryptographic hardware
+ service module, please see "PKCS #11 (Cryptoki) support" in chapter 4
+ of the BIND 9 Administrator Reference Guide. You will need to apply
+ the patch in bind9\bin\pkcs11\openssl-1.0.1e-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
+
+ LibXML2 is required to use the statistics channel. If you wish to
+ build BIND 9 without support for this feature, skip to step 3.
+
+ Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2.
+ Extract them in the same directory in which you extracted the BIND 9
+ source: If BIND 9 is in \build\bind-9.10.0, for instance, libxml2 should
+ be in \build\libxml2-2.7.7 (subject to version number changes).
+
+ Now build libxml2, and copy the resulting files into the include and lib
+ directories:
+
+ cd libxml2-2.7.7\win32
+ cscript configure.js compiler=msvc vcmanifest=yes static=yes \
+ debug=no iconv=no
+ nmake /f Makefile.msvc libxml
+
+Step 3: Download and build optional external packages (GeoIP, readline)
+
+ 3a) GeoIP is required to use IP geolocation. If you wish to build
+ BIND 9 without support for this feature, skip to step 3b. The URL is:
+ http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.5.1.tar.gz
+
+ The current (version 1.5.1) GeoIP does not build a suitable
+ DLL with safe threading. The GeoIP.diff file:
+ - fixes WIN32 building support
+ - makes pread() safe in a multi-threaded system
+ - changes the Makefile.vc to build a DLL in place of a static
+ library (BTW this is required by the previous point)
+
+ 3b) The readline library adds command-line editing in nslookup and
+ nsupdate. If you wish to build BIND 9 without support for this feature,
+ skip to step 4.
+
+ Because the original GNU source for the readline library has no WIN32
+ support, it will be necessary to download a version of the static
+ readline library source that is ready to be built by Visual Studio.
+ One such version is available at:
+ http://gpsim.sourceforge.net/gpsimWin32/packages/readline-5.2-20061112-src.zip
+
+Step 4: Make the redistributable runtime object available
+
+ Check that the Microsoft redistributable object (vcredist_x86.exe or
+ vcredist_x64.exe) is available to the build. The file may be placed
+ in the directory in which the BIND 9 source was extracted (for
+ instance, if BIND 9 is in \build\bind-9.10.0, the redistributable
+ may be placed in \build\vcredist_x86.exe). Or, the path to the file
+ can be specified via the VCREDIST_PATH environment variable, or via
+ the "with-vcredist=PATH" option to the configuration script (see
+ step 4).
+
+Step 5: Configuring the BIND build
+
+ From the command prompt, cd to the win32utils directory under
+ the BIND 9 root:
+
+ cd bind-9.10.0\win32utils
+
+ In this directory, you can prepare the Windows build by running:
+
+ perl Configure <options> win32
+
+ For 64 bit:
+
+ perl Configure <options> x64
+
+ This will set up all the files needed for building BIND 9 according
+ to the given options. To see the available options, run:
+
+ perl Configure help
+
+ To remove all files generated by Configure, run:
+
+ perl Configure clean
+
+Step 5: Building BIND
+
+ To build using 'nmake' or older versions of Visual Studio (e.g.
+ VS 2005 and 2008), go to the legacy subdirectory:
+
+ cd legacy
+
+ and follow the instructions in win32-build.txt. Note that
+ only 32 bit builds are supported in this mode.
+
+ To build using the Visual Studio GUI (VS 2010 and 2012): open the bind9.sln
+ solution file; this will load the project files for all of the BIND 9
+ libraries and applications. Select "Build->Batch Build", click "Select
+ All", then click "Build".
+
+ To build using MSBuild (VS 2010 and 2012): call MSBuild on the
+ bind9.sln solution file:
+
+ msbuild /t:Build /p:Configuration=Release && \
+ msbuild /t:Build /p:Configuration=Debug
+
+Step 6: Install
+
+ 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.
+
+ Note: BINDInstall.exe requires the MFC (Microsoft Foundation Class).
+ This is only distributed with non-free (i.e., not "Express") versions of
+ Visual Studio. The other BIND 9 libraries and applications do not have
+ this dependency.
+
+Please report bugs, whether in the process of building the application
+or in BIND 9 itself, to bind9-bugs@isc.org.
diff --git a/win32utils/dnsheadergen.bat b/win32utils/dnsheadergen.bat
deleted file mode 100644
index 664dcdc5..00000000
--- a/win32utils/dnsheadergen.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-echo off
-rem
-rem Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
-rem Copyright (C) 2001-2002 Internet Software Consortium.
-rem
-rem Permission to use, copy, modify, and distribute this software for any
-rem purpose with or without fee is hereby granted, provided that the above
-rem copyright notice and this permission notice appear in all copies.
-rem
-rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-rem PERFORMANCE OF THIS SOFTWARE.
-
-cd ..\lib\dns
-cd win32
-nmake /nologo /f gen.mak CFG="gen - Win32 Release" NO_EXTERNAL_DEPS="1"
-cd ..
-gen -s . -t > include/dns/enumtype.h
-gen -s . -c > include/dns/enumclass.h
-gen -s . -i -P ./rdata/rdatastructpre.h -S ./rdata/rdatastructsuf.h > include/dns/rdatastruct.h
-gen -s . > code.h
-cd ..\..\win32utils
diff --git a/win32utils/BINDBuild.dsw b/win32utils/legacy/BINDBuild.dsw.in
index 93eb6c25..b2ff80dc 100644
--- a/win32utils/BINDBuild.dsw
+++ b/win32utils/legacy/BINDBuild.dsw.in
@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
###############################################################################
-Project: "BINDInstall"="..\bin\win32\BINDInstall\BINDInstall.dsp" - Package Owner=<4>
+Project: "BINDInstall"="..\..\bin\win32\BINDInstall\BINDInstall.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -15,7 +15,7 @@ Package=<4>
###############################################################################
-Project: "bindevt"="..\lib\win32\bindevt\bindevt.dsp" - Package Owner=<4>
+Project: "libisc"="..\..\lib\isc\win32\libisc.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -27,7 +27,209 @@ Package=<4>
###############################################################################
-Project: "dig"="..\bin\dig\win32\dig.dsp" - Package Owner=<4>
+Project: "libisccc"="..\..\lib\isccc\win32\libisccc.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "libdns"="..\..\lib\dns\win32\libdns.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "libisccfg"="..\..\lib\isccfg\win32\libisccfg.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "libbind9"="..\..\lib\bind9\win32\libbind9.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccfg
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "liblwres"="..\..\lib\lwres\win32\liblwres.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "bindevt"="..\..\lib\win32\bindevt\bindevt.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+@IF TESTS
+Project: "libtests"="..\..\lib\tests\win32\libtests.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+}}}
+
+@END TESTS
+###############################################################################
+
+Project: "named"="..\..\bin\named\win32\named.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccfg
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name liblwres
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libbind9
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "rndcutil"="..\..\bin\rndc\win32\rndcutil.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "rndc"="..\..\bin\rndc\win32\rndc.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccfg
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libbind9
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name rndcutil
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "dighost"="..\..\bin\dig\win32\dighost.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "dig"="..\..\bin\dig\win32\dig.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -60,7 +262,7 @@ Package=<4>
###############################################################################
-Project: "dighost"="..\bin\dig\win32\dighost.dsp" - Package Owner=<4>
+Project: "host"="..\..\bin\dig\win32\host.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -68,11 +270,32 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libbind9
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name liblwres
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccfg
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisccc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name dighost
+ End Project Dependency
}}}
###############################################################################
-Project: "host"="..\bin\dig\win32\host.dsp" - Package Owner=<4>
+Project: "nslookup"="..\..\bin\dig\win32\nslookup.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -105,7 +328,19 @@ Package=<4>
###############################################################################
-Project: "dsfromkey"="..\bin\dnssec\win32\dsfromkey.dsp" - Package Owner=<4>
+Project: "dnssectool"="..\..\bin\dnssec\win32\dnssectool.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "keygen"="..\..\bin\dnssec\win32\keygen.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -126,7 +361,7 @@ Package=<4>
###############################################################################
-Project: "revoke"="..\bin\dnssec\win32\revoke.dsp" - Package Owner=<4>
+Project: "signzone"="..\..\bin\dnssec\win32\signzone.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -147,7 +382,7 @@ Package=<4>
###############################################################################
-Project: "settime"="..\bin\dnssec\win32\settime.dsp" - Package Owner=<4>
+Project: "importkey"="..\..\bin\dnssec\win32\importkey.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -168,7 +403,7 @@ Package=<4>
###############################################################################
-Project: "verify"="..\bin\dnssec\win32\verify.dsp" - Package Owner=<4>
+Project: "keyfromlabel"="..\..\bin\dnssec\win32\keyfromlabel.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -189,7 +424,7 @@ Package=<4>
###############################################################################
-Project: "keygen"="..\bin\dnssec\win32\keygen.dsp" - Package Owner=<4>
+Project: "dsfromkey"="..\..\bin\dnssec\win32\dsfromkey.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -210,7 +445,7 @@ Package=<4>
###############################################################################
-Project: "libbind9"="..\lib\bind9\win32\libbind9.dsp" - Package Owner=<4>
+Project: "revoke"="..\..\bin\dnssec\win32\revoke.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -225,16 +460,13 @@ Package=<4>
Project_Dep_Name libisc
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccfg
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name dnssectool
End Project Dependency
}}}
###############################################################################
-Project: "libdns"="..\lib\dns\win32\libdns.dsp" - Package Owner=<4>
+Project: "settime"="..\..\bin\dnssec\win32\settime.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -243,13 +475,19 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name libisc
End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name dnssectool
+ End Project Dependency
}}}
###############################################################################
-Project: "libisc"="..\lib\isc\win32\libisc.dsp" - Package Owner=<4>
+Project: "verify"="..\..\bin\dnssec\win32\verify.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -257,11 +495,20 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name dnssectool
+ End Project Dependency
}}}
###############################################################################
-Project: "libisccc"="..\lib\isccc\win32\libisccc.dsp" - Package Owner=<4>
+Project: "arpaname"="..\..\bin\tools\win32\arpaname.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -276,7 +523,7 @@ Package=<4>
###############################################################################
-Project: "libisccfg"="..\lib\isccfg\win32\libisccfg.dsp" - Package Owner=<4>
+Project: "journalprint"="..\..\bin\tools\win32\journalprint.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -285,19 +532,49 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name libisc
End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "nsec3hash"="..\..\bin\tools\win32\nsec3hash.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
Begin Project Dependency
Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name libisc
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genrandom"="..\..\bin\tools\win32\genrandom.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-Project: "liblwres"="..\lib\lwres\win32\liblwres.dsp" - Package Owner=<4>
+Project: "ischmacfixup"="..\..\bin\tools\win32\ischmacfixup.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -305,11 +582,14 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-Project: "named"="..\bin\named\win32\named.dsp" - Package Owner=<4>
+Project: "nsupdate"="..\..\bin\nsupdate\win32\nsupdate.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -324,22 +604,34 @@ Package=<4>
Project_Dep_Name libisc
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name libbind9
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccfg
+ Project_Dep_Name liblwres
End Project Dependency
Begin Project Dependency
- Project_Dep_Name liblwres
+ Project_Dep_Name libisccfg
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libbind9
+ Project_Dep_Name libisccc
End Project Dependency
}}}
###############################################################################
-Project: "namedcheckconf"="..\bin\check\win32\namedcheckconf.dsp" - Package Owner=<4>
+Project: "checktool"="..\..\bin\check\win32\checktool.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "checkconf"="..\..\bin\check\win32\checkconf.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -369,7 +661,7 @@ Package=<4>
###############################################################################
-Project: "namedcheckzone"="..\bin\check\win32\namedcheckzone.dsp" - Package Owner=<4>
+Project: "checkzone"="..\..\bin\check\win32\checkzone.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -396,7 +688,19 @@ Package=<4>
###############################################################################
-Project: "nslookup"="..\bin\dig\win32\nslookup.dsp" - Package Owner=<4>
+Project: "confgentool"="..\..\bin\confgen\win32\confgentool.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "rndcconfgen"="..\..\bin\confgen\win32\rndcconfgen.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -404,32 +708,29 @@ Package=<5>
Package=<4>
{{{
- Begin Project Dependency
- Project_Dep_Name libdns
- End Project Dependency
Begin Project Dependency
Project_Dep_Name libisc
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libbind9
+ Project_Dep_Name libisccc
End Project Dependency
Begin Project Dependency
- Project_Dep_Name liblwres
+ Project_Dep_Name libisccfg
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccfg
+ Project_Dep_Name libbind9
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name dighost
+ Project_Dep_Name confgentool
End Project Dependency
}}}
###############################################################################
-Project: "nsupdate"="..\bin\nsupdate\win32\nsupdate.dsp" - Package Owner=<4>
+Project: "ddnsconfgen"="..\..\bin\confgen\win32\ddnsconfgen.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -438,28 +739,80 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libdns
+ Project_Dep_Name libisc
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisc
+ Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libbind9
+ Project_Dep_Name confgentool
End Project Dependency
+}}}
+
+###############################################################################
+@IF PKCS11
+
+Project: "pk11keygen"="..\..\bin\pkcs11\win32\pk11keygen.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "pk11list"="..\..\bin\pkcs11\win32\pk11list.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "pk11destroy"="..\..\bin\pkcs11\win32\pk11destroy.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+@END PKCS11
+###############################################################################
+@IF TESTS
+@IF ATOMIC
+Project: "t_atomic"="..\..\bin\tests\atomic\win32\t_atomic.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
Begin Project Dependency
- Project_Dep_Name liblwres
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccfg
+ Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name libisc
End Project Dependency
}}}
+@END ATOMIC
###############################################################################
-Project: "rndc"="..\bin\rndc\win32\rndc.dsp" - Package Owner=<4>
+Project: "t_db"="..\..\bin\tests\db\win32\t_db.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -468,28 +821,21 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libisc
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
Project_Dep_Name libisccfg
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libbind9
- End Project Dependency
- Begin Project Dependency
Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name rndcutil
+ Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-
-Project: "rndcconfgen"="..\bin\confgen\win32\rndcconfgen.dsp" - Package Owner=<4>
+Project: "t_dst"="..\..\bin\tests\dst\win32\t_dst.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -498,28 +844,38 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libisc
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccc
+ Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisccfg
+ Project_Dep_Name libisc
End Project Dependency
+}}}
+
+###############################################################################
+Project: "t_master"="..\..\bin\tests\master\win32\t_master.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
Begin Project Dependency
- Project_Dep_Name libbind9
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name confgentool
+ Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-
-Project: "ddnsconfgen"="..\bin\confgen\win32\ddnsconfgen.dsp" - Package Owner=<4>
+Project: "t_mem"="..\..\bin\tests\mem\win32\t_mem.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -528,19 +884,15 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libisc
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libdns
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
- Project_Dep_Name confgentool
+ Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-
-Project: "signzone"="..\bin\dnssec\win32\signzone.dsp" - Package Owner=<4>
+Project: "t_hashes"="..\..\bin\tests\hashes\win32\t_hashes.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -549,19 +901,15 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libdns
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
Project_Dep_Name libisc
End Project Dependency
- Begin Project Dependency
- Project_Dep_Name dnssectool
- End Project Dependency
}}}
###############################################################################
-
-Project: "keyfromlabel"="..\bin\dnssec\win32\keyfromlabel.dsp" - Package Owner=<4>
+Project: "t_names"="..\..\bin\tests\names\win32\t_names.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -570,19 +918,18 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libdns
+ Project_Dep_Name libtests
End Project Dependency
Begin Project Dependency
- Project_Dep_Name libisc
+ Project_Dep_Name libdns
End Project Dependency
Begin Project Dependency
- Project_Dep_Name dnssectool
+ Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-
-Project: "dnssectool"="..\bin\dnssec\win32\dnssectool.dsp" - Package Owner=<4>
+Project: "t_rbt"="..\..\bin\tests\rbt\win32\t_rbt.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -590,11 +937,19 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libtests
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-
-Project: "rndcutil"="..\bin\rndc\win32\rndcutil.dsp" - Package Owner=<4>
+Project: "t_resolver"="..\..\bin\tests\resolver\win32\t_resolver.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -602,11 +957,19 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libtests
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-
-Project: "confgentool"="..\bin\confgen\win32\confgentool.dsp" - Package Owner=<4>
+Project: "t_sockaddr"="..\..\bin\tests\sockaddr\win32\t_sockaddr.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -614,11 +977,16 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libtests
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-
-Project: "checktool"="..\bin\check\win32\checktool.dsp" - Package Owner=<4>
+Project: "t_tasks"="..\..\bin\tests\tasks\win32\t_tasks.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -626,11 +994,16 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libtests
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-
-Project: "pk11keygen"="..\bin\pkcs11\win32\pk11keygen.dsp" - Package Owner=<4>
+Project: "t_timers"="..\..\bin\tests\timers\win32\t_timers.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -638,11 +1011,19 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libtests
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
+@END TESTS
###############################################################################
+@IF XTESTS
-Project: "pk11list"="..\bin\pkcs11\win32\pk11list.dsp" - Package Owner=<4>
+Project: "backtrace_test"="..\..\bin\tests\win32\backtrace_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -650,11 +1031,14 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-Project: "pk11destroy"="..\bin\pkcs11\win32\pk11destroy.dsp" - Package Owner=<4>
+Project: "inter_test"="..\..\bin\tests\win32\inter_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -662,11 +1046,14 @@ Package=<5>
Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
}}}
###############################################################################
-Project: "arpaname"="..\bin\tools\win32\arpaname.dsp" - Package Owner=<4>
+Project: "rwlock_test"="..\..\bin\tests\win32\rwlock_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -681,7 +1068,7 @@ Package=<4>
###############################################################################
-Project: "genrandom"="..\bin\tools\win32\genrandom.dsp" - Package Owner=<4>
+Project: "shutdown_test"="..\..\bin\tests\win32\shutdown_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -696,7 +1083,7 @@ Package=<4>
###############################################################################
-Project: "journalprint"="..\bin\tools\win32\journalprint.dsp" - Package Owner=<4>
+Project: "sock_test"="..\..\bin\tests\win32\sock_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -705,16 +1092,13 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libdns
- End Project Dependency
- Begin Project Dependency
Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-Project: "nsec3hash"="..\bin\tools\win32\nsec3hash.dsp" - Package Owner=<4>
+Project: "task_test"="..\..\bin\tests\win32\task_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -723,16 +1107,15 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name libdns
- End Project Dependency
- Begin Project Dependency
Project_Dep_Name libisc
End Project Dependency
}}}
###############################################################################
-Project: "ischmacfixup"="..\bin\tools\win32\ischmacfixup.dsp" - Package Owner=<4>
+<<<<<<< HEAD:win32utils/BINDBuild.dsw
+=======
+Project: "timer_test"="..\..\bin\tests\win32\timer_test.dsp" - Package Owner=<4>
Package=<5>
{{{
@@ -745,8 +1128,10 @@ Package=<4>
End Project Dependency
}}}
+@END XTESTS
###############################################################################
+>>>>>>> c3c8823... 3681. [port] Update the Windows build system to support feature:win32utils/legacy/BINDBuild.dsw.in
Global:
Package=<5>
diff --git a/win32utils/legacy/BuildAll.bat.in b/win32utils/legacy/BuildAll.bat.in
new file mode 100644
index 00000000..b617c9d6
--- /dev/null
+++ b/win32utils/legacy/BuildAll.bat.in
@@ -0,0 +1,221 @@
+echo off
+rem
+rem Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
+rem Copyright (C) 2001-2002 Internet Software Consortium.
+rem
+rem Permission to use, copy, modify, and distribute this software for any
+rem purpose with or without fee is hereby granted, provided that the above
+rem copyright notice and this permission notice appear in all copies.
+rem
+rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+rem PERFORMANCE OF THIS SOFTWARE.
+
+rem BuildAll.bat
+rem This script sets up the files necessary ready to build BIND 9
+rem and then builds all of the binaries that make up the installation kit.
+rem This requires perl to be installed on the system.
+
+rem IMPORTANT NOTE:
+rem OpenSSL is a prerequisite for building and running this release of
+rem BIND 9. You must fetch the OpenSSL sources yourself from
+rem http://www.OpenSSL.org/ and compile it yourself. The code must reside
+rem at the same level as the bind 9.2.0 source tree and it's top-level
+rem directory be named openssl-0.9.6k. This restriction will be lifted in
+rem a future release of BIND 9 for Windows NT/2000/XP.
+
+echo Setting up the BIND files required for the build
+
+rem Setup the files
+call BuildSetup.bat
+
+echo Build all of the Library files
+
+cd ..\..\lib
+
+cd isc\win32
+nmake /nologo -f libisc.mak CFG="libisc - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd dns\win32
+nmake /nologo -f libdns.mak CFG="libdns - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd isccfg\win32
+nmake /nologo -f libisccfg.mak CFG="libisccfg - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd isccc\win32
+nmake /nologo -f libisccc.mak CFG="libisccc - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd bind9\win32
+nmake /nologo -f libbind9.mak CFG="libbind9 - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd lwres\win32
+nmake /nologo -f liblwres.mak CFG="liblwres - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+@IF TESTS
+cd tests\win32
+nmake /nologo -f libtests.mak CFG="libtests - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+@END TESTS
+
+rem This is the DLL required for the event Viewer
+
+cd win32\bindevt
+nmake /nologo -f bindevt.mak CFG="bindevt - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd ..
+
+echo Now build the apps
+
+cd bin
+
+cd named\win32
+nmake /nologo -f named.mak CFG="named - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+
+cd ..\..
+
+cd rndc\win32
+nmake /nologo -f rndc.mak CFG="rndc - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+
+cd ..\..
+
+cd confgen\win32
+nmake /nologo -f rndcconfgen.mak CFG="rndcconfgen - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f ddnsconfgen.mak CFG="ddnsconfgen - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+
+cd ..\..
+
+cd dig\win32
+nmake /nologo -f dig.mak CFG="dig - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo /nologo -f host.mak CFG="host - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f nslookup.mak CFG="nslookup - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd nsupdate\win32
+nmake /nologo -f nsupdate.mak CFG="nsupdate - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd check\win32
+nmake /nologo -f checkconf.mak CFG="checkconf - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f checkzone.mak CFG="checkzone - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd dnssec\win32
+nmake /nologo -f keygen.mak CFG="keygen - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f signzone.mak CFG="signzone - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f dsfromkey.mak CFG="dsfromkey - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f keyfromlabel.mak CFG="keyfromlabel - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f revoke.mak CFG="revoke - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f settime.mak CFG="settime - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f verify.mak CFG="verify - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f importkey.mak CFG="importkey - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+@IF PKCS11
+cd pkcs11\win32
+nmake /nologo -f pk11keygen.mak CFG="pk11keygen - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f pk11list.mak CFG="pk11list - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f pk11destroy.mak CFG="pk11destroy - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+@END PKCS11
+
+cd tools\win32
+nmake /nologo -f arpaname.mak CFG="arpaname - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f genrandom.mak CFG="genrandom - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f nsec3hash.mak CFG="nsec3hash - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f journalprint.mak CFG="journalprint - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f ischmacfixup.mak CFG="ischmacfixup - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+@IF TESTS
+cd tests
+@IF ATOMIC
+cd atomic\win32
+nmake /nologo -f t_atomic.mak CFG="t_atomic - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+@END ATOMIC
+
+cd db\win32
+nmake /nologo -f t_db.mak CFG="t_db - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd dst\win32
+nmake /nologo -f t_dst.mak CFG="t_dst - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd master\win32
+nmake /nologo -f t_master.mak CFG="t_master - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd mem\win32
+nmake /nologo -f t_mem.mak CFG="t_mem - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd hashes\win32
+nmake /nologo -f t_hashes.mak CFG="t_hashes - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd names\win32
+nmake /nologo -f t_names.mak CFG="t_names - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd rbt\win32
+nmake /nologo -f t_rbt.mak CFG="t_rbt - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd resolver\win32
+nmake /nologo -f t_resolver.mak CFG="t_resolver - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd sockaddr\win32
+nmake /nologo -f t_sockaddr.mak CFG="t_sockaddr - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd tasks\win32
+nmake /nologo -f t_tasks.mak CFG="t_tasks - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd timers\win32
+nmake /nologo -f t_timers.mak CFG="t_timers - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd ..
+@END TESTS
+
+@IF XTESTS
+cd tests\win32
+nmake /nologo -f backtrace_test.mak CFG="backtrace_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f inter_test.mak CFG="inter_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f rwlock_test.mak CFG="rwlock_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f shutdown_test.mak CFG="shutdown_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f sock_test.mak CFG="sock_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f task_test.mak CFG="task_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f timer_test.mak CFG="timer_test - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+@END XTESTS
+
+rem This is the BIND 9 Installer
+
+cd win32\BINDInstall
+nmake /nologo -f BINDInstall.mak CFG="BINDInstall - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..\..
+
+cd ..
+
+cd win32utils\legacy
+
+call BuildPost.bat
+
+echo Done.
+
+rem exit here.
diff --git a/win32utils/BuildPost.bat b/win32utils/legacy/BuildPost.bat.in
index 4d30fc7e..f0ed62cd 100644
--- a/win32utils/BuildPost.bat
+++ b/win32utils/legacy/BuildPost.bat.in
@@ -1,28 +1,37 @@
-echo off
-rem
-rem Copyright (C) 2005 Internet Systems Consortium, Inc. ("ISC")
-rem
-rem Permission to use, copy, modify, and distribute this software for any
-rem purpose with or without fee is hereby granted, provided that the above
-rem copyright notice and this permission notice appear in all copies.
-rem
-rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-rem PERFORMANCE OF THIS SOFTWARE.
-
-rem BuildPost.bat
-rem This script does the final stages if BINDBuild.dsw is used.
-
-echo Copying named-checkzone.exe to named-compilezone.exe
-
-copy /Y ..\Build\Release\named-checkzone.exe ..\Build\Release\named-compilezone.exe
-if exist ..\Build\Debug\named-checkzone.exe copy /Y ..\Build\Debug\named-checkzone.exe ..\Build\Debug\named-compilezone.exe
-if exist ..\Build\Debug\named-checkzone.ilk copy /Y ..\Build\Debug\named-checkzone.ilk ..\Build\Debug\named-compilezone.ilk
-
-echo Done.
-
-rem exit here.
+echo off
+rem
+rem Copyright (C) 2005 Internet Systems Consortium, Inc. ("ISC")
+rem
+rem Permission to use, copy, modify, and distribute this software for any
+rem purpose with or without fee is hereby granted, provided that the above
+rem copyright notice and this permission notice appear in all copies.
+rem
+rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+rem PERFORMANCE OF THIS SOFTWARE.
+
+rem BuildPost.bat
+rem This script does the final stages if BINDBuild.dsw is used.
+
+echo Copying named-checkzone.exe to named-compilezone.exe
+
+copy /Y ..\..\Build\Release\named-checkzone.exe ..\..\Build\Release\named-compilezone.exe
+if exist ..\..\Build\Debug\named-checkzone.exe copy /Y ..\..\Build\Debug\named-checkzone.exe ..\..\Build\Debug\named-compilezone.exe
+if exist ..\..\Build\Debug\named-checkzone.ilk copy /Y ..\..\Build\Debug\named-checkzone.ilk ..\..\Build\Debug\named-compilezone.ilk
+
+@IF PYTHON
+echo Copying python scripts
+
+copy /Y ..\..\bin\python\dnssec-checkds.py ..\..\Build\Release\dnssec-checkds.py
+copy /Y ..\..\bin\python\dnssec-checkds.py ..\..\Build\Debug\dnssec-checkds.py
+copy /Y ..\..\bin\python\dnssec-coverage.py ..\..\Build\Release\dnssec-coverage.py
+copy /Y ..\..\bin\python\dnssec-coverage.py ..\..\Build\Debug\dnssec-coverage.py
+@END PYTHON
+
+echo Done.
+
+rem exit here.
diff --git a/win32utils/legacy/BuildSetup.bat.in b/win32utils/legacy/BuildSetup.bat.in
new file mode 100644
index 00000000..5da4d374
--- /dev/null
+++ b/win32utils/legacy/BuildSetup.bat.in
@@ -0,0 +1,159 @@
+echo off
+rem
+rem Copyright (C) 2004,2005 Internet Systems Consortium, Inc. ("ISC")
+rem Copyright (C) 2001-2002 Internet Software Consortium.
+rem
+rem Permission to use, copy, modify, and distribute this software for any
+rem purpose with or without fee is hereby granted, provided that the above
+rem copyright notice and this permission notice appear in all copies.
+rem
+rem THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+rem REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+rem AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+rem INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+rem PERFORMANCE OF THIS SOFTWARE.
+
+rem BuildSetup.bat
+rem This script sets up the files necessary ready to build BIND 9.
+rem This requires perl to be installed on the system.
+
+echo Generate header files for lib/dns
+
+cd ..\..\lib\dns
+cd win32
+nmake /nologo /f gen.mak CFG="gen - @PLATFORM@ Release" NO_EXTERNAL_DEPS="1"
+cd ..
+gen -s . -t > include/dns/enumtype.h
+gen -s . -c > include/dns/enumclass.h
+gen -s . -i -P ./rdata/rdatastructpre.h -S ./rdata/rdatastructsuf.h > include/dns/rdatastruct.h
+gen -s . > code.h
+cd ..\..\win32utils\legacy
+
+rem Make sure that the Build directories are there.
+
+if NOT Exist ..\..\Build mkdir ..\..\Build
+if NOT Exist ..\..\Build\Release mkdir ..\..\Build\Release
+if NOT Exist ..\..\Build\Debug mkdir ..\..\Build\Debug
+
+echo Copying the ARM and the Installation Notes.
+
+copy ..\..\COPYRIGHT ..\..\Build\Release
+copy ..\..\README ..\..\Build\Release
+copy ..\..\HISTORY ..\..\Build\Release
+copy ..\readme1st.txt ..\..\Build\Release
+copy ..\index.html ..\..\Build\Release
+copy ..\..\doc\arm\*.html ..\..\Build\Release
+copy ..\..\doc\arm\Bv9ARM.pdf ..\..\Build\Release
+copy ..\..\CHANGES ..\..\Build\Release
+if Exist ..\CHANGES.SE copy ..\CHANGES.SE ..\Build\Release
+copy ..\..\FAQ ..\..\Build\Release
+
+echo Copying the standalone manual pages.
+
+copy ..\..\bin\named\named.html ..\..\Build\Release
+copy ..\..\bin\rndc\*.html ..\..\Build\Release
+copy ..\..\bin\confgen\*.html ..\..\Build\Release
+copy ..\..\bin\dig\*.html ..\..\Build\Release
+copy ..\..\bin\nsupdate\*.html ..\..\Build\Release
+copy ..\..\bin\check\*.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-keygen.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-signzone.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-dsfromkey.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-keyfromlabel.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-settime.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-revoke.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-verify.html ..\..\Build\Release
+copy ..\..\bin\dnssec\dnssec-importkey.html ..\..\Build\Release
+copy ..\..\bin\pkcs11\pkcs11-keygen.html ..\..\Build\Release
+copy ..\..\bin\pkcs11\pkcs11-list.html ..\..\Build\Release
+copy ..\..\bin\pkcs11\pkcs11-destroy.html ..\..\Build\Release
+
+echo Copying the migration notes.
+
+copy ..\..\doc\misc\migration ..\..\Build\Release
+copy ..\..\doc\misc\migration-4to9 ..\..\Build\Release
+
+@IF OPENSSL
+echo Copying the OpenSSL DLL and LICENSE.
+
+copy @OPENSSL_DLL@ ..\..\Build\Release\
+copy @OPENSSL_DLL@ ..\..\Build\Debug\
+copy @OPENSSL_PATH@\LICENSE ..\..\Build\Release\OpenSSL-LICENSE
+@END OPENSSL
+
+@IF LIBXML2
+echo Copying the libxml DLL.
+
+copy @LIBXML2_DLL@ ..\..\Build\Release\
+copy @LIBXML2_DLL@ ..\..\Build\Debug\
+@END LIBXML2
+
+@IF GSSAPI
+echo Copying the GSSAPI and KRB5 DLLs.
+
+copy @GSSAPI_DLL@ ..\..\Build\Release\
+copy @GSSAPI_DLL@ ..\..\Build\Debug\
+copy @KRB5_DLL@ ..\..\Build\Release\
+copy @KRB5_DLL@ ..\..\Build\Debug\
+copy @COMERR_DLL@ ..\..\Build\Release\
+copy @COMERR_DLL@ ..\..\Build\Debug\
+copy @K5SPRT_DLL@ ..\..\Build\Release\
+copy @K5SPRT_DLL@ ..\..\Build\Debug\
+copy @WSHELP_DLL@ ..\..\Build\Release\
+copy @WSHELP_DLL@ ..\..\Build\Debug\
+@END GSSAPI
+
+@IF GEOIP
+echo Copying the GeoIP DLL.
+
+copy @GEOIP_DLL@ ..\..\Build\Release\
+copy @GEOIP_DLL@ ..\..\Build\Debug\
+@END GEOIP
+
+@IF IDNKIT
+echo Copying the IDN kit DLL.
+
+copy @IDN_DLL@ ..\Build\Release\
+copy @IDN_DLL@ ..\Build\Debug\
+copy @ICONV_DLL@ ..\Build\Release\
+copy @ICONV_DLL@ ..\Build\Debug\
+@END IDNKIT
+
+echo Copying the redistributable runtime object.
+
+rem
+rem Use /Y so we always have the current version of the installer.
+rem
+
+copy /Y @VCREDIST_PATH@ ..\..\Build\Release\
+copy /Y @VCREDIST_PATH@ ..\..\Build\Debug\
+
+@IF TESTS
+cd ..\..\bin\tests\dst
+copy "Kdh.+002+18602.key.in" "Kdh.+002+18602.key"
+copy "Kdh.+002+18602.private.in" "Kdh.+002+18602.private"
+copy "Kdh.+002+48957.key.in" "Kdh.+002+48957.key"
+copy "Kdh.+002+48957.private.in" "Kdh.+002+48957.private"
+copy "Ktest.+001+00002.key.in" "Ktest.+001+00002.key"
+copy "Ktest.+001+54622.key.in" "Ktest.+001+54622.key"
+copy "Ktest.+001+54622.private.in" "Ktest.+001+54622.private"
+copy "Ktest.+003+23616.key.in" "Ktest.+003+23616.key"
+copy "Ktest.+003+23616.private.in" "Ktest.+003+23616.private"
+copy "Ktest.+003+49667.key.in" "Ktest.+003+49667.key"
+copy dst_2_data.in dst_2_data
+copy t2_data_1.in t2_data_1
+copy t2_data_2.in t2_data_2
+copy t2_dsasig.in t2_dsasig
+copy t2_rsasig.in t2_rsasig
+cd ..\..\..\win32utils\legacy
+@END TESTS
+
+echo Running Message Compiler
+
+cd ..\..\lib\win32\bindevt
+mc bindevt.mc
+cd ..\..\..\win32utils\legacy
+
+rem Done
diff --git a/win32utils/makedefs.pl b/win32utils/legacy/makedefs.pl
index 0644f1d3..9e3e9305 100644
--- a/win32utils/makedefs.pl
+++ b/win32utils/legacy/makedefs.pl
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
-# Copyright (C) 2004, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/win32utils/legacy/win32-build.txt b/win32utils/legacy/win32-build.txt
new file mode 100644
index 00000000..e1570191
--- /dev/null
+++ b/win32utils/legacy/win32-build.txt
@@ -0,0 +1,105 @@
+Copyright (C) 2004, 2005, 2008, 2009, 2012, 2013 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$
+
+ *legacy* BIND 9.10 for Win32 Source Build Instructions. 24-June-2013
+
+Building BIND 9.10 on Windows XP/Vista/7/8 or server 2003/2008/2008R2
+has the following prerequisites:
+
+1) Perl, 2) Visual C++ redistributable object, 3) OpenSSL, and optionally
+4) LibXML2 and 5) GeoIP. See ..\build.txt for more details on these
+prerequisites.
+
+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 or more recent, 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, Windows Vista, Windows 2008 Server, Windows 7,
+Windows 2008 R2 Server, Windows 8, Windows 2012 Server (untested), and
+further (untested as not yet available). It will NOT build or run on
+Windows 95, Windows 98, etc., or Windows RT platforms.
+
+Step 5: Building BIND
+
+From the command prompt cd to the win32utils\legacy directory under
+the BIND9 root:
+
+ cd bind-9.10.0\win32utils\legacy
+
+If you wish to use nmake from VC++ 6.0 or more recent, run
+the BuildAll.bat file:
+
+ BuildAll
+
+This will do the following:
+1) Build the gen application in the lib/dns directory.
+2) Run the gen application and build the required lib/dns header
+ files.
+3) Create the Build/Release subdirectory under the root of the BIND
+ source tree which will hold the binaries being built.
+4) Build the libraries, named, application tools like dig, rndc
+ dnssec tools, installer, checkconf and checkzones programs,
+ BIND 9 Installer.
+5) Copies the release notes and the OpenSSL DLL to the BUILD/Release
+ directory.
+6) 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\legacy directory) to
+open the workspace for all of the BIND9 libraries and applications. If
+needed Visual Studio will update the workspace (aka solution) and
+project files. Note it is known to give slightly incorrect files on VS
+2010 or more recent, for instance BINDInstall is not compiled to use
+DLLs. Finally 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.
diff --git a/win32utils/makesrcid.pl b/win32utils/makesrcid.pl
deleted file mode 100644
index f46fe472..00000000
--- a/win32utils/makesrcid.pl
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# $Id$
-
-# This script converts the SRCID information in ../srcid into a srcid.h
-# file, defining SRCID, which can be included by config.h.
-
-open (SRCIDH, ">../srcid.h") or die "cannot open srcid.h: $!";
-
-my $srcid = "unset";
-
-if (open (SRCIDFILE, "../srcid")) {
- LOOP: while (<SRCIDFILE>) {
- chomp;
- ($data) = split(/\#/);
- if($data) {
- ($name, $value) = split(/=/,$data);
- ($name) = split(/\s+/, $name);
- ($value) = split(/\s+/, $value);
- next LOOP if ($name != "SRCID");
- $srcid = $value;
- }
- }
- close(SRCIDFILE);
-}
-
-# Now set up the output version file
-
-$ThisDate = scalar localtime();
-
-#Standard Header
-
-print SRCIDH '/*
- * Copyright (C) 2012 Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-';
-
-print SRCIDH "/*\n";
-print SRCIDH " * srcid.h";
-print SRCIDH " * Generated automatically by makesrcid.pl.\n";
-print SRCIDH " * Date generated: $ThisDate\n";
-print SRCIDH " */\n\n";
-
-print SRCIDH '
-#ifndef SRCID_H
-#define SRCID_H 1
-';
-
-print "BIND SRCID: $srcid\n";
-
-print SRCIDH "#define SRCID\t\"$srcid\"\n";
-print SRCIDH "#endif /* SRCID_H */\n";
-close SRCIDH;
diff --git a/win32utils/makeversion.pl b/win32utils/makeversion.pl
deleted file mode 100644
index 17ffb8c7..00000000
--- a/win32utils/makeversion.pl
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2004, 2007, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001 Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# $Id$
-
-# This script takes the version information from the version file located
-# at the root of the source tree and the api files in each library directory
-# and writes the resulting information into a version.h file that the build
-# process uses to build the executable code.
-# This program was written by PDM. danny.mayer@nominum.com 1-Jul-2001.
-
-# List of directories with version files
-@dirlist = ("isc","dns","isccc","isccfg","lwres","bind9");
-$LibMacros{"isc"} = "LIBISC_EXPORTS";
-$LibMacros{"dns"} = "LIBDNS_EXPORTS";
-$LibMacros{"isccc"} = "LIBISCCC_EXPORTS";
-$LibMacros{"isccfg"} = "LIBISCCFG_EXPORTS";
-$LibMacros{"lwres"} = "LIBLWRES_EXPORTS";
-$LibMacros{"bind9"} = "LIBBIND9_EXPORTS";
-
-
-@VersionNames = ("LIBINTERFACE", "LIBREVISION", "LIBAGE");
-$versionfile = "versions.h";
-$versionpath = "../$versionfile";
-
-#
-# First get the version information
-#
-open (VERSIONFILE, "../version");
-while (<VERSIONFILE>) {
- chomp;
- ($data) = split(/\#/);
- if($data) {
- ($name, $value) = split(/=/,$data);
- ($name) = split(/\s+/, $name);
- if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
- ($value) =~ s/^["\s]+//;
- ($value) =~ s/["\s]+$//;
- } else {
- ($value) = split(/\s+/, $value);
- }
- $Versions{$name} = $value;
- }
-}
-close(VERSIONFILE);
-
-# Now set up the output version file
-
-$ThisDate = scalar localtime();
-open (OUTVERSIONFILE, ">$versionpath") ||
- die "Can't open output file $versionpath: $!";
-
-#Standard Header
-
-print OUTVERSIONFILE '/*
- * Copyright (C) 2001 Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-';
-
-print OUTVERSIONFILE "/*\n";
-print OUTVERSIONFILE " * $versionfile.";
-print OUTVERSIONFILE " Generated automatically by makeversion.pl.\n";
-print OUTVERSIONFILE " * Date generated: $ThisDate\n";
-print OUTVERSIONFILE " */\n\n";
-
-print OUTVERSIONFILE '
-#ifndef VERSIONS_H
-#define VERSIONS_H 1
-
-';
-
-if ($Versions{'PATCHVER'} != "") {
-$Version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}.$Versions{'PATCHVER'}";
-} else {
- $Version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
-}
-$Version = "$Version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
-print "BIND Version: $Version\n";
-
-print OUTVERSIONFILE "#define VERSION \"$Version\"\n";
-print OUTVERSIONFILE "#define PRODUCT \"$Versions{'PRODUCT'}\"\n\n";
-print OUTVERSIONFILE "#define DESCRIPTION \"$Versions{'DESCRIPTION'}\"\n\n";
-
-foreach $dir (@dirlist) {
- $apifile = "../lib/$dir/api";
- open (APIVERSION, $apifile);
- while (<APIVERSION>) {
- chomp;
- ($data) = split(/\#/);
- if ($data) {
- ($name, $value) = split(/=/, $data);
- $name =~ s/\s+//;
- $value =~ s/\s+//;
- $ApiVersions{$name} = $value;
- }
- }
-
- print OUTVERSIONFILE "\n#ifdef $LibMacros{$dir}\n";
- foreach $name (@VersionNames) {
- print OUTVERSIONFILE "#define $name\t$ApiVersions{$name}\n";
- }
- print OUTVERSIONFILE "#endif\n\n";
-}
-
-print OUTVERSIONFILE "#endif /* VERSIONS_H */\n";
-close OUTVERSIONFILE;
-
-
diff --git a/win32utils/setpk11provider.pl b/win32utils/setpk11provider.pl
deleted file mode 100644
index a11f7ef0..00000000
--- a/win32utils/setpk11provider.pl
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# $Id$
-
-# setpk11provider.pl
-# This script sets the PKCS#11 provider name in the build scripts.
-#
-# for instance: setpk11provider.pl bp201w32HSM
-#
-
-if ($#ARGV != 0) {
- die "Usage: perl setpk11provider.pl <pkcs11_provider_dll_name>\n"
-}
-
-my $provider=$ARGV[0];
-
-$provider =~ s|\.[dD][lL][lL]$||;
-
-# List of files that need to be updated
-@filelist = ("../bin/pkcs11/win32//pk11keygen.mak",
- "../bin/pkcs11/win32//pk11keygen.dsp",
- "../bin/pkcs11/win32//pk11list.mak",
- "../bin/pkcs11/win32//pk11list.dsp",
- "../bin/pkcs11/win32//pk11destroy.mak",
- "../bin/pkcs11/win32//pk11destroy.dsp");
-
-# function to replace the provider define
-sub updatefile {
- my($filename, $substr, $line);
- my(@Lines);
-
- $filename = $_[0];
- $substr = $_[1];
-
- open (RFILE, $filename) || die "Can't open file $filename: $!";
- @Lines = <RFILE>;
- close (RFILE);
-
- # Replace the string
- foreach $line (@Lines) {
- $line =~ s/unknown_provider/$substr/gi;
- }
- #update the file
- open (RFILE, ">$filename") || die "Can't open file $filename: $!";
- foreach $line (@Lines) {
- print RFILE $line;
- }
- close(RFILE);
-}
-
-# update config.h to define or undefine USE_PKCS11
-sub updateconfig {
- my($havexml, $substr, $line);
- my(@Lines);
-
- $havexml = $_[0];
-
- open (RFILE, "../config.h") || die "Can't open config.h";
- @Lines = <RFILE>;
- close (RFILE);
-
- foreach $line (@Lines) {
- if ($havexml) {
- $line =~ s/^.*#undef USE_PKCS11.*$/define USE_PKCS11 1/;
- } else {
- $line =~ s/^#define USE_PKCS11 .*$/\/\* #undef USE_PKCS11 \*\//;
- }
- }
-
- open (RFILE, ">../config.h") || die "Can't open config.h";
- print "Updating file ../config.h\n";
- foreach $line (@Lines) {
- print RFILE $line;
- }
- close(RFILE);
-}
-
-#Update the list of files
-if ($provider ne 0) {
- $ind = 0;
- print "Provider is $provider\n";
- foreach $file (@filelist) {
- print "Updating file $file\n";
- updatefile($file, $provider);
- $ind++;
- }
- updateconfig(1);
-} else {
- updateconfig(0);
-}
-
diff --git a/win32utils/todos.pl b/win32utils/todos.pl
deleted file mode 100644
index 2baf6634..00000000
--- a/win32utils/todos.pl
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# todos.pl
-# This script performs the equivalent of unix2dos on all the files in
-# the BIND 9 source tree that require DOS-style newlines when building
-# for win32.
-#
-# Path and directory
-use strict;
-use File::Find;
-
-sub todos {
- local @ARGV = @_;
- unshift (@ARGV, '-') unless @ARGV;
- while ($ARGV = shift) {
- open(FH, $ARGV);
- binmode(FH);
- my @lines = <FH>;
- close(FH);
-
- open(FH, ">$ARGV");
- binmode(FH);
- for my $line (@lines) {
- $line =~ s/[\r\n]+$/\r\n/;
- print FH $line;
- }
- close(FH);
- }
-}
-
-sub wanted {
- return unless -f && $_ =~ qr/\.(mak|dsp|dsw|txt|bat)$/;
- todos $_;
-}
-
-finddepth(\&wanted, "..");
diff --git a/win32utils/updatelibxml2.pl b/win32utils/updatelibxml2.pl
deleted file mode 100644
index 3b6377eb..00000000
--- a/win32utils/updatelibxml2.pl
+++ /dev/null
@@ -1,219 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2009, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# $Id$
-
-# updatelibxml2.pl
-# This script locates the latest version of libxml2 in the grandparent
-# directory and updates the build scripts to use that version.
-# Copied from updateopenssl.pl.
-#
-# Path and directory
-$path = "..\\..\\";
-
-# List of files that need to be updated with the actual version of the
-# libxml2 directory
-@filelist = ("SetupLibs.bat",
- "../lib/dns/win32/libdns.mak",
- "../lib/dns/win32/libdns.dsp",
- "../bin/check/win32/checktool.dsp",
- "../bin/check/win32/namedcheckconf.dsp",
- "../bin/check/win32/namedcheckconf.mak",
- "../bin/check/win32/namedcheckzone.dsp",
- "../bin/check/win32/namedcheckzone.mak",
- "../bin/confgen/win32/confgentool.dsp",
- "../bin/confgen/win32/ddnsconfgen.dsp",
- "../bin/confgen/win32/ddnsconfgen.mak",
- "../bin/confgen/win32/rndcconfgen.dsp",
- "../bin/confgen/win32/rndcconfgen.mak",
- "../bin/dig/win32/dig.dsp",
- "../bin/dig/win32/dig.mak",
- "../bin/dig/win32/dighost.dsp",
- "../bin/dig/win32/host.dsp",
- "../bin/dig/win32/host.mak",
- "../bin/dig/win32/nslookup.dsp",
- "../bin/dig/win32/nslookup.mak",
- "../bin/dnssec/win32/dnssectool.dsp",
- "../bin/dnssec/win32/dsfromkey.dsp",
- "../bin/dnssec/win32/dsfromkey.mak",
- "../bin/dnssec/win32/keyfromlabel.dsp",
- "../bin/dnssec/win32/keyfromlabel.mak",
- "../bin/dnssec/win32/keygen.dsp",
- "../bin/dnssec/win32/keygen.mak",
- "../bin/dnssec/win32/revoke.dsp",
- "../bin/dnssec/win32/revoke.mak",
- "../bin/dnssec/win32/settime.dsp",
- "../bin/dnssec/win32/settime.mak",
- "../bin/dnssec/win32/signzone.dsp",
- "../bin/dnssec/win32/signzone.mak",
- "../bin/dnssec/win32/verify.dsp",
- "../bin/dnssec/win32/verify.mak",
- "../bin/named/win32/named.dsp",
- "../bin/named/win32/named.mak",
- "../bin/nsupdate/win32/nsupdate.dsp",
- "../bin/nsupdate/win32/nsupdate.mak",
- "../bin/rndc/win32/rndc.dsp",
- "../bin/rndc/win32/rndc.mak",
- "../bin/tools/win32/journalprint.dsp",
- "../bin/tools/win32/journalprint.mak",
- "../lib/bind9/win32/libbind9.dsp",
- "../lib/bind9/win32/libbind9.mak",
- "../lib/dns/win32/libdns.dsp",
- "../lib/dns/win32/libdns.mak",
- "../lib/isc/win32/libisc.dsp",
- "../lib/isc/win32/libisc.mak",
- "../lib/isc/win32/libisc.def",
- "../lib/isccc/win32/libisccc.dsp",
- "../lib/isccc/win32/libisccc.mak",
- "../lib/isccfg/win32/libisccfg.dsp",
- "../lib/isccfg/win32/libisccfg.mak");
-
-# Locate the libxml2 directory
-$substr = getdirectory();
-if ($substr eq 0) {
- print "No directory found\n";
-}
-else {
- print "Found $substr directory\n";
-}
-
-if ($substr ne 0) {
- #Update the list of files
- $ind = 0;
- updateconfig(1);
- foreach $file (@filelist) {
- print "Updating file $file\n";
- updatefile($file, $substr, 1);
- $ind++;
- }
-}
-else {
- #Update the configuration to reflect libxml2 being absent
- $ind = 0;
- updateconfig(0);
- foreach $file (@filelist) {
- print "Updating file $file\n";
- updatefile($file, $substr, 0);
- $ind++;
- }
-}
-
-# Function to find the libxml2 directory
-sub getdirectory {
- my(@namelist);
- my($file, $name);
- my($cnt);
- opendir(DIR,$path) || return (0);
- @namelist = grep (/^libxml2-[0-9]+\.[0-9]+\.[0-9]+[a-z]*$/i, readdir(DIR));
- closedir(DIR);
-
- # Make sure we have something
- if (scalar(@namelist) == 0) {
- return (0);
- }
- # Now see if we have a directory or just a file.
- # Make sure we are case insensitive
- foreach $file (sort {uc($a) cmp uc($b)} @namelist) {
- if (-d $path.$file) {
- $name = $file;
- }
- }
-
- # If we have one use it otherwise report the error
- # Note that we are only interested in the last one
- # since the sort should have taken care of getting
- # the latest
- if (defined($name)) {
- return ($name);
- }
- else {
- return (0);
- }
-}
-
-# function to replace the libxml2 directory name with the latest one
-sub updatefile {
- my($filename, $substr, $line);
- my(@Lines);
-
- $filename = $_[0];
- $substr = $_[1];
- $havexml = $_[2];
-
- open (RFILE, $filename) || die "Can't open file $filename: $!";
- @Lines = <RFILE>;
- close (RFILE);
-
- # Replace the string
- foreach $line (@Lines) {
- if ($havexml) {
- $line =~ s/libxml2-[0-9]+\.[0-9]+\.[0-9]+[a-z]*/$substr/gi;
- if ($filename =~ /\.mak$/) {
- $line =~ s/^# (LIBXML=.*\/libxml2\.lib.*)$/\1/;
- } elsif ($filename =~ /\.dsp$/ ) {
- $line =~ s/^!MESSAGE (LIBXML=.*\/libxml2\.lib.*)$/\1/;
- $line =~ s/^!MESSAGE (# ADD LINK32 .*\/libxml2\.lib.*)$/\1/;
- }
- $line =~ s/^; (isc_socketmgr_renderxml)$/\1/;
- $line =~ s/^; (isc_mem_renderxml)$/\1/;
- $line =~ s/^; (isc_taskmgr_renderxml)$/\1/;
- } else {
- if ($filename =~ /\.mak$/) {
- $line =~ s/^(LIBXML=.*\/libxml2.lib.*)$/# \1/i;
- } elsif ($filename =~ /\.dsp$/ ) {
- $line =~ s/^(# ADD LINK32 .*\/libxml2.lib.*)$/!MESSAGE \1/i;
- $line =~ s/^(LIBXML=.*\/libxml2.lib.*)$/!MESSAGE \1/i;
- }
- $line =~ s/^(isc_socketmgr_renderxml)$/; \1/;
- $line =~ s/^(isc_mem_renderxml)$/; \1/;
- $line =~ s/^(isc_taskmgr_renderxml)$/; \1/;
- }
- }
-
- #update the file
- open (RFILE, ">$filename") || die "Can't open file $filename: $!";
- foreach $line (@Lines) {
- print RFILE $line;
- }
- close(RFILE);
-}
-
-# update config.h to define or undefine HAVE_LIBXML2
-sub updateconfig {
- my($havexml, $substr, $line);
- my(@Lines);
-
- $havexml = $_[0];
-
- open (RFILE, "../config.h") || die "Can't open config.h";
- @Lines = <RFILE>;
- close (RFILE);
-
- foreach $line (@Lines) {
- if ($havexml) {
- $line =~ s/^.*#undef HAVE_LIBXML2.*$/define HAVE_LIBXML2 1/;
- } else {
- $line =~ s/^#define HAVE_LIBXML2 .*$/\/\* #undef HAVE_LIBXML2 \*\//;
- }
- }
-
- open (RFILE, ">../config.h") || die "Can't open config.h";
- print "Updating file ../config.h\n";
- foreach $line (@Lines) {
- print RFILE $line;
- }
- close(RFILE);
-}
diff --git a/win32utils/updateopenssl.pl b/win32utils/updateopenssl.pl
deleted file mode 100644
index 3d3f8a3d..00000000
--- a/win32utils/updateopenssl.pl
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2006, 2007, 2009, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# $Id$
-
-# updateopenssl.pl
-# This script locates the latest version of OpenSSL in the grandparent
-# directory and updates the build scripts to use that version.
-#
-# Path and directory
-$path = "..\\..\\";
-
-# List of files that need to be updated with the actual version of the
-# openssl directory
-@filelist = ("SetupLibs.bat",
- "../lib/dns/win32/libdns.mak",
- "../lib/dns/win32/libdns.dsp",
- "../bin/named/win32/named.mak",
- "../bin/named/win32/named.dsp");
-
-# Locate the openssl directory
-$substr = getdirectory();
-if ($substr eq 0) {
- print "No directory found\n";
-}
-else {
- print "Found $substr directory\n";
-}
-#Update the list of files
-if ($substr ne 0) {
- $ind = 0;
- foreach $file (@filelist) {
- print "Updating file $file\n";
- updatefile($file, $substr);
- $ind++;
- }
-}
-
-# Function to find the
-sub getdirectory {
- my(@namelist);
- my($file, $name);
- my($cnt);
- opendir(DIR,$path) || die "No Directory: $!";
- @namelist = grep (/^openssl-[0-9]+\.[0-9]+\.[0-9]+[a-z]{0,1}$/i, readdir(DIR));
- closedir(DIR);
-
- # Make sure we have something
- if (scalar(@namelist) == 0) {
- return (0);
- }
- # Now see if we have a directory or just a file.
- # Make sure we are case insensitive
- foreach $file (sort {uc($a) cmp uc($b)} @namelist) {
- if (-d $path.$file) {
- $name = $file;
- }
- }
-
- # If we have one use it otherwise report the error
- # Note that we are only interested in the last one
- # since the sort should have taken care of getting
- # the latest
- if (defined($name)) {
- return ($name);
- }
- else {
- return (0);
- }
-}
-
-# function to replace the openssl directory name with the latest one
-sub updatefile {
- my($filename, $substr, $line);
- my(@Lines);
-
- $filename = $_[0];
- $substr = $_[1];
-
- open (RFILE, $filename) || die "Can't open file $filename: $!";
- @Lines = <RFILE>;
- close (RFILE);
-
- # Replace the string
- foreach $line (@Lines) {
- $line =~ s/openssl-[0-9]+\.[0-9]+\.[0-9]+[a-z]{0,1}/$substr/gi;
- }
- #update the file
- open (RFILE, ">$filename") || die "Can't open file $filename: $!";
- foreach $line (@Lines) {
- print RFILE $line;
- }
- close(RFILE);
-}
-
diff --git a/win32utils/win32-build.txt b/win32utils/win32-build.txt
deleted file mode 100644
index 25efe865..00000000
--- a/win32utils/win32-build.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-Copyright (C) 2004, 2005, 2008, 2009, 2012, 2013 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$
-
- BIND 9.9 for Win32 Source Build Instructions. 24-June-2013
-
-Building BIND 9.9 on Windows XP/Vista/7/8 or server 2003/2008/2008R2
-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) The BIND Installer (BINDInstall) includes a copy of the
-redistributable runtime object vcredist_x86.exe, which is included
-with Visual Studio and can be downloaded from Microsoft. This file
-must be in place prior to running the build setup script.
-
-5) 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, Windows Vista, Windows 2008 Server, Windows 7, Windows 2008 R2
-Server, Windows 8, and Windows 2012 Server (untested). It will NOT build
-or run on Windows 95, Windows 98, etc., or Windows RT 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.9.0, for instance, OpenSSL should be
-in \build\openssl-1.0.1e (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-1.0.1e, but you should check the OpenSSL distribution
-to see if the build instructions in the INSTALL.W32 file have changed:
-
- cd openssl-1.0.1e
- perl Configure VC-WIN32 --prefix=c:/openssl
- ms\do_ms
- nmake /f ms\ntdll.mak
-
-If you wish to use PKCS #11 to control a cryptographic hardware
-service module, please see "PKCS #11 (Cryptoki) support" in chapter 4
-of the BIND 9 Administrator Reference Guide. You will need to apply
-the patch in bind9\bin\pkcs11\openssl-1.0.1e-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.9.0, for instance, libxml2 should
-be in \build\libxml2-2.7.7 (subject to version number changes).
-
-Now build libxml2, and copy the resulting files into the include and lib
-directories:
-
- cd libxml2-2.7.7\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.9.0\win32utils
-
-Text files used by the Windows build should be in DOS format.
-If for some reason they aren't, this can be corrected by running:
-
- perl todos.pl
-
-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.