Configure revision 9ecd39b2ca51fe83b662e01efb56a8f3ed2c3b86
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#!/usr/bin/perl
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# Copyright (C) 2013-2017 Internet Systems Consortium, Inc. ("ISC")
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# This Source Code Form is subject to the terms of the Mozilla Public
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# License, v. 2.0. If a copy of the MPL was not distributed with this
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# file, You can obtain one at http://mozilla.org/MPL/2.0/.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Configure
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# This script builds nmake and visual studio build files
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncrequire 5.000;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncuse strict;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncuse File::Spec;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncuse Cwd;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# files to configure
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy $configfile = "..\\config.h";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
43747b1f0bc8302a238fb35e55857a5e9aa1933dvboxsyncmy $confshfile = "..\\bin\\tests\\system\\conf.sh";
43747b1f0bc8302a238fb35e55857a5e9aa1933dvboxsyncmy $icshfile = "..\\isc-config.sh";
43747b1f0bc8302a238fb35e55857a5e9aa1933dvboxsync
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncmy @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
b0db50948c349fa76655abf252f7946b515e8204vboxsync "..\\bin\\check\\win32\\checkconf.dsp",
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync "..\\bin\\check\\win32\\checkconf.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\check\\win32\\checkzone.dsp",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\check\\win32\\checkzone.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\confgen\\win32\\confgentool.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\confgen\\win32\\ddnsconfgen.dsp",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\confgen\\win32\\ddnsconfgen.mak",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\confgen\\win32\\rndcconfgen.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\confgen\\win32\\rndcconfgen.mak",
f5e53763b0a581b0299e98028c6c52192eb06785vboxsync "..\\bin\\delv\\win32\\delv.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\delv\\win32\\delv.mak",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\dig\\win32\\dig.dsp",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\dig\\win32\\dig.mak",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\dig\\win32\\dighost.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dig\\win32\\host.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dig\\win32\\host.mak",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\dig\\win32\\nslookup.dsp",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\dig\\win32\\nslookup.mak",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\dnssec\\win32\\dnssectool.dsp",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\dnssec\\win32\\dsfromkey.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\dsfromkey.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\importkey.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\importkey.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\keyfromlabel.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\keyfromlabel.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\keygen.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\keygen.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\revoke.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\revoke.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\settime.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\settime.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\signzone.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\signzone.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\verify.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\verify.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\named\\win32\\named.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\named\\win32\\named.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\nsupdate\\win32\\nsupdate.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\nsupdate\\win32\\nsupdate.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11destroy.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11destroy.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11keygen.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11keygen.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11list.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11list.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11tokens.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\pkcs11\\win32\\pk11tokens.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\dnssec-checkds.py",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\python\\dnssec-coverage.py",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\python\\dnssec-keymgr.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\__init__.py",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync "..\\bin\\python\\isc\\checkds.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\coverage.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\dnskey.py",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\python\\isc\\eventlist.py",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\python\\isc\\keydict.py",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\python\\isc\\keyevent.py",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\python\\isc\\keymgr.py",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\python\\isc\\keyseries.py",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\python\\isc\\keyzone.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\policy.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\rndc.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\tests\\dnskey_test.py",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\python\\isc\\tests\\policy_test.py",
36411046d85fccaa66061120a064225fd1b5ae01vboxsync "..\\bin\\python\\isc\\utils.py",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "..\\bin\\rndc\\win32\\rndc.dsp",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "..\\bin\\rndc\\win32\\rndc.mak",
0c4004948fca34f2db87e7b38013137e9472c306vboxsync "..\\bin\\rndc\\win32\\rndcutil.dsp",
0c4004948fca34f2db87e7b38013137e9472c306vboxsync "..\\bin\\tests\\system\\dlz\\prereq.sh",
0c4004948fca34f2db87e7b38013137e9472c306vboxsync "..\\bin\\tools\\win32\\arpaname.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tools\\win32\\arpaname.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tools\\win32\\genrandom.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tools\\win32\\genrandom.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tools\\win32\\ischmacfixup.dsp",
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync "..\\bin\\tools\\win32\\ischmacfixup.mak",
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync "..\\bin\\tools\\win32\\journalprint.dsp",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tools\\win32\\journalprint.mak",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tools\\win32\\mdig.dsp",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\tools\\win32\\mdig.mak",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\tools\\win32\\nsec3hash.dsp",
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync "..\\bin\\tools\\win32\\nsec3hash.mak",
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync "..\\bin\\tools\\win32\\rrchecker.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tools\\win32\\rrchecker.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\atomic\\win32\\t_atomic.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\atomic\\win32\\t_atomic.mak",
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync "..\\bin\\tests\\db\\win32\\t_db.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\db\\win32\\t_db.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\dst\\win32\\t_dst.dsp",
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync "..\\bin\\tests\\dst\\win32\\t_dst.mak",
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync "..\\bin\\tests\\master\\win32\\t_master.dsp",
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync "..\\bin\\tests\\master\\win32\\t_master.mak",
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync "..\\bin\\tests\\mem\\win32\\t_mem.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\mem\\win32\\t_mem.mak",
0381007ae929f1a0885e69644b7d586a1dbb3a2avboxsync "..\\bin\\tests\\hashes\\win32\\t_hashes.dsp",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\hashes\\win32\\t_hashes.mak",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\names\\win32\\t_names.dsp",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\names\\win32\\t_names.mak",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\rbt\\win32\\t_rbt.dsp",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\rbt\\win32\\t_rbt.mak",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\resolver\\win32\\t_resolver.dsp",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\tasks\\win32\\t_tasks.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\tasks\\win32\\t_tasks.mak",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\timers\\win32\\t_timers.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\timers\\win32\\t_timers.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\system\\win32\\bigkey.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\system\\win32\\bigkey.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\system\\win32\\feature-test.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\system\\win32\\feature-test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\system\\win32\\gencheck.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\system\\win32\\gencheck.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\system\\win32\\keycreate.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\system\\win32\\keycreate.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\system\\win32\\keydelete.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\keydelete.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\lwtest.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\lwtest.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\pipequeries.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\system\\win32\\pipequeries.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\backtrace_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\backtrace_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\inter_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\inter_test.mak",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\bin\\tests\\win32\\makejournal.dsp",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\bin\\tests\\win32\\makejournal.mak",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\bin\\tests\\win32\\rwlock_test.dsp",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\bin\\tests\\win32\\rwlock_test.mak",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\bin\\tests\\win32\\shutdown_test.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\shutdown_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\sock_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\sock_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\task_test.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\task_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\timer_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\timer_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\inter_test.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\inter_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\rwlock_test.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\rwlock_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\shutdown_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\shutdown_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\sock_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\sock_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\task_test.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\task_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\timer_test.dsp",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\win32\\timer_test.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\win32\\BINDInstall\\BINDInstall.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\win32\\BINDInstall\\BINDInstall.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\bind9\\win32\\libbind9.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\bind9\\win32\\libbind9.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\dns\\win32\\gen.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\dns\\win32\\gen.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\dns\\win32\\libdns.def",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\dns\\win32\\libdns.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\dns\\win32\\libdns.mak",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\lib\\irs\\win32\\libirs.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\irs\\win32\\libirs.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\isc\\win32\\libisc.def",
93f91841f87620d1cb6d0238b3d0d5e52cd3b9a4vboxsync "..\\lib\\isc\\win32\\libisc.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\isc\\win32\\libisc.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\isccc\\win32\\libisccc.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\isccc\\win32\\libisccc.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\isccfg\\win32\\libisccfg.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\isccfg\\win32\\libisccfg.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\lwres\\win32\\liblwres.dsp",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\lib\\lwres\\win32\\liblwres.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\async.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\async.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\gai.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\gai.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\nsprobe.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\nsprobe.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\request.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\request.mak",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\resolve.dsp",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\lib\\samples\\win32\\resolve.mak",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\samples\\win32\\update.dsp",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\samples\\win32\\update.mak",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\lib\\tests\\win32\\libtests.dsp",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\lib\\tests\\win32\\libtests.mak",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\win32\\bindevt\\bindevt.dsp",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\lib\\win32\\bindevt\\bindevt.mak",
65697a26b524640b83828b715160c798c43a0424vboxsync "legacy\\BINDBuild.dsw",
65697a26b524640b83828b715160c798c43a0424vboxsync "legacy\\BuildAll.bat",
65697a26b524640b83828b715160c798c43a0424vboxsync "legacy\\BuildPost.bat",
65697a26b524640b83828b715160c798c43a0424vboxsync "legacy\\BuildSetup.bat");
65697a26b524640b83828b715160c798c43a0424vboxsync
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsyncmy @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\check\\win32\\checkconf.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\check\\win32\\checktool.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\check\\win32\\checktool.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\check\\win32\\checkzone.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\check\\win32\\checkzone.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\confgen\\win32\\confgentool.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\confgen\\win32\\confgentool.vcxproj.filters",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\delv\\win32\\delv.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\delv\\win32\\delv.vcxproj.filters",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\dig\\win32\\dig.vcxproj",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\dig\\win32\\dig.vcxproj.filters",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\dig\\win32\\dighost.vcxproj",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\dig\\win32\\dighost.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dig\\win32\\host.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\dig\\win32\\host.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dig\\win32\\nslookup.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dig\\win32\\nslookup.vcxproj.filters",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\dnssec\\win32\\dnssectool.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\dnssectool.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\dnssec\\win32\\importkey.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\importkey.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\dnssec\\win32\\keygen.vcxproj",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\keygen.vcxproj.filters",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\revoke.vcxproj",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\revoke.vcxproj.filters",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\settime.vcxproj",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\settime.vcxproj.filters",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\signzone.vcxproj",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\signzone.vcxproj.filters",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\verify.vcxproj",
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync "..\\bin\\dnssec\\win32\\verify.vcxproj.filters",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\named\\win32\\named.vcxproj",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\named\\win32\\named.vcxproj.filters",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj.filters",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj.filters",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj.filters",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11list.vcxproj",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11list.vcxproj.filters",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj",
5761ae063fc6a6dcc410a6b56ddc286ba16855c8vboxsync "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj.filters",
f687f34bd232be13744edbc0cc5155fa5d4540edvboxsync "..\\bin\\rndc\\win32\\rndc.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\rndc\\win32\\rndc.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\rndc\\win32\\rndcutil.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\rndc\\win32\\rndcutil.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tools\\win32\\arpaname.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tools\\win32\\arpaname.vcxproj.filters",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "..\\bin\\tools\\win32\\genrandom.vcxproj",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "..\\bin\\tools\\win32\\genrandom.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tools\\win32\\ischmacfixup.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tools\\win32\\ischmacfixup.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\bin\\tools\\win32\\journalprint.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\bin\\tools\\win32\\journalprint.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tools\\win32\\mdig.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tools\\win32\\mdig.vcxproj.filters",
ead016c68c61b5f2e1fe4d237054eebea9327d4bvboxsync "..\\bin\\tools\\win32\\nsec3hash.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tools\\win32\\nsec3hash.vcxproj.filters",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tools\\win32\\rrchecker.vcxproj",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tools\\win32\\rrchecker.vcxproj.filters",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj",
7ccfefe49db4cd93c3701d7b60873ebf404b5b87vboxsync "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj.filters",
7ccfefe49db4cd93c3701d7b60873ebf404b5b87vboxsync "..\\bin\\tests\\db\\win32\\t_db.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\db\\win32\\t_db.vcxproj.filters",
64f58e4154eaa20c47782b429eeaff09070369bfvboxsync "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\master\\win32\\t_master.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\master\\win32\\t_master.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\names\\win32\\t_names.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\names\\win32\\t_names.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\bigkey.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\bigkey.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\feature-test.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\feature-test.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\gencheck.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\gencheck.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\keycreate.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\keycreate.vcxproj.filters",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\keydelete.vcxproj",
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync "..\\bin\\tests\\system\\win32\\keydelete.vcxproj.filters",
64f58e4154eaa20c47782b429eeaff09070369bfvboxsync "..\\bin\\tests\\system\\win32\\lwtest.vcxproj",
7ccfefe49db4cd93c3701d7b60873ebf404b5b87vboxsync "..\\bin\\tests\\system\\win32\\lwtest.vcxproj.filters",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "..\\bin\\tests\\system\\win32\\pipequeries.vcxproj",
7ccfefe49db4cd93c3701d7b60873ebf404b5b87vboxsync "..\\bin\\tests\\system\\win32\\pipequeries.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj.filters",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\tests\\win32\\backtrace_test.vcxproj",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\tests\\win32\\backtrace_test.vcxproj.filters",
65697a26b524640b83828b715160c798c43a0424vboxsync "..\\bin\\tests\\win32\\inter_test.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\makejournal.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\makejournal.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\sock_test.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "..\\bin\\tests\\win32\\task_test.vcxproj",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\timer_test.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\inter_test.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tests\\win32\\sock_test.vcxproj",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tests\\win32\\task_test.vcxproj",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\bin\\tests\\win32\\timer_test.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\bind9\\win32\\libbind9.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\bind9\\win32\\libbind9.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\dns\\win32\\gen.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\dns\\win32\\gen.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\dns\\win32\\libdns.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\dns\\win32\\libdns.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\irs\\win32\\libirs.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\irs\\win32\\libirs.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\isc\\win32\\libisc.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\isc\\win32\\libisc.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\isccc\\win32\\libisccc.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\isccc\\win32\\libisccc.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\isccfg\\win32\\libisccfg.vcxproj",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "..\\lib\\lwres\\win32\\liblwres.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\samples\\win32\\resolve.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\lib\\samples\\win32\\resolve.vcxproj.filters",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\lib\\samples\\win32\\async.vcxproj",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\lib\\samples\\win32\\async.vcxproj.filters",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\lib\\samples\\win32\\gai.vcxproj",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\lib\\samples\\win32\\gai.vcxproj.filters",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "..\\lib\\samples\\win32\\update.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\lib\\samples\\win32\\update.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\samples\\win32\\request.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\samples\\win32\\request.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\samples\\win32\\nsprobe.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\lib\\samples\\win32\\nsprobe.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\tests\\win32\\libtests.vcxproj",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\win32\\bindevt\\bindevt.vcxproj",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "..\\lib\\win32\\bindevt\\bindevt.vcxproj.filters",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "bind9.sln");
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync# for config.h
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncmy %configdefh;
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncmy @substdefh = ("AES_CC",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "ALLOW_FILTER_AAAA",
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync "CONFIGARGS",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "DNS_RDATASET_FIXED",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "ENABLE_RPZ_NSDNAME",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "ENABLE_RPZ_NSIP",
0dd6dfbebcda0af90da4413aaea5f3b9d1817556vboxsync "HAVE_EVP_SHA256",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_EVP_SHA384",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_EVP_SHA512",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_GEOIP",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_GEOIP_CITY_V6",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_GEOIP_V6",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_LIBXML2",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_OPENSSL_AES",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_OPENSSL_DSA",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_OPENSSL_ECDSA",
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync "HAVE_OPENSSL_ED25519",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "HAVE_OPENSSL_ED448",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "HAVE_OPENSSL_EVP_AES",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "HAVE_OPENSSL_GOST",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "HAVE_PKCS11_ECDSA",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "HAVE_PKCS11_ED25519",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "HAVE_PKCS11_ED448",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "HAVE_PKCS11_GOST",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "HAVE_READLINE",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "HAVE_ZLIB",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "HMAC_SHA1_CC",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "HMAC_SHA256_CC",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_LIST_CHECKINIT",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "PREFER_GOSTASN1",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "TUNE_LARGE",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "WANT_QUERYTRACE",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "WITH_IDN");
c2f2661efd8da5281e2a3af6ddd10e737d333909vboxsync
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync# for platform.h
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsyncmy %configdefp;
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsyncmy @substdefp = ("ISC_PLATFORM_BUSYWAITNOP",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_HAVEATOMICSTORE",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_HAVEATOMICSTOREQ",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_HAVECMPXCHG",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_HAVEXADD",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_HAVEXADDQ",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_NEEDSTRCASESTR",
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync "ISC_PLATFORM_USEBACKTRACE",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "ISC_PLATFORM_WANTAES");
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync# for conf.sh
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsyncmy %configtest;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncmy @substtest = ("CHECK_DSA",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "CHECKDS",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "COVERAGE",
36411046d85fccaa66061120a064225fd1b5ae01vboxsync "DNSTAP",
36411046d85fccaa66061120a064225fd1b5ae01vboxsync "FSTRM_CAPTURE",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "JSONSTATS",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "KEYMGR",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "NZD_TOOLS",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "PKCS11_TEST",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "XMLSTATS",
65697a26b524640b83828b715160c798c43a0424vboxsync "ZLIB"),
65697a26b524640b83828b715160c798c43a0424vboxsync
65697a26b524640b83828b715160c798c43a0424vboxsync# includes
65697a26b524640b83828b715160c798c43a0424vboxsync
65697a26b524640b83828b715160c798c43a0424vboxsyncmy %configinc;
65697a26b524640b83828b715160c798c43a0424vboxsync
65697a26b524640b83828b715160c798c43a0424vboxsyncmy @substinc = ("GSSAPI_INC",
65697a26b524640b83828b715160c798c43a0424vboxsync "GEOIP_INC",
65697a26b524640b83828b715160c798c43a0424vboxsync "IDN_INC",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "LIBXML2_INC",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "OPENSSL_INC",
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync "READLINE_INC",
65697a26b524640b83828b715160c798c43a0424vboxsync "ZLIB_INC");
65697a26b524640b83828b715160c798c43a0424vboxsync
65697a26b524640b83828b715160c798c43a0424vboxsync# libraries
65697a26b524640b83828b715160c798c43a0424vboxsync
65697a26b524640b83828b715160c798c43a0424vboxsyncmy %configlib;
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsyncmy @substlib = ("GSSAPI_LIB",
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync "GEOIP_LIB",
65697a26b524640b83828b715160c798c43a0424vboxsync "IDN_LIB",
65697a26b524640b83828b715160c798c43a0424vboxsync "KRB5_LIB",
65697a26b524640b83828b715160c798c43a0424vboxsync "LIBXML2_LIB",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync "OPENSSL_LIB",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "READLINE_LIB",
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsync "READLINE_LIBD",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "ZLIB_LIB");
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# DLLs
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncmy %configdll;
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsyncmy @substdll = ("COMERR_DLL",
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync "GSSAPI_DLL",
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync "GEOIP_DLL",
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync "ICONV_DLL",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "IDN_DLL",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "KRB5_DLL",
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync "K5SPRT_DLL",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "LIBXML2_DLL",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "OPENSSL_DLL",
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync "WSHELP_DLL",
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync "ZLIB_DLL");
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync# variables
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsyncmy %configvar;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncmy @substvar = ("BIND9_VERSION",
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync "BUILD_MACHINE",
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync "BUILD_PLATFORM",
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync "COPTI",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "COPTML",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "COPTMLD",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "COPTX",
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync "COPTY",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "DLZ_SYSTEM_TEST",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "EXEEXT",
0c4004948fca34f2db87e7b38013137e9472c306vboxsync "expanded_sysconfdir",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "INTRINSIC",
0c4004948fca34f2db87e7b38013137e9472c306vboxsync "MACHINE",
0c4004948fca34f2db87e7b38013137e9472c306vboxsync "OPENSSL_PATH",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "PLATFORM",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "PKCS11_TOOLS",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "prefix",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "PYTHON",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "PYTHON_INSTALL_DIR",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "VCREDIST_PATH"),
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsync# defines
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy %configdefd;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy @substdefd = ("CRYPTO",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "PK11_LIB_LOCATION",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "USE_GSSAPI",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "USE_PKCS11",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "USE_PYTHON",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "USE_ISC_SPNEGO");
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# conditions
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy %configcond;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncmy @substcond = ("AES",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "ATOMIC",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "GSSAPI",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "GEOIP",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "IDNKIT",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "LIBXML2",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "OPENSSL",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "PKCS11",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "PYTHON",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "SAMPLES",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "STESTS",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "TESTS",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "XTESTS",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "ZLIB");
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncmy @allcond = (@substcond, "NOTYET", "NOLONGER");
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync# arguments
8a339f91959bb7a3315b51a23461b68c7b0cb50evboxsync
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync# enable-xxx/disable-xxx
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncmy @enablelist = ("developer",
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync "fixed-rrset",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "intrinsics",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "isc-spnego",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "native-pkcs11",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "openssl-hash",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "filter-aaaa",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "querytrace",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "rpz-nsdname",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "rpz-nsip");
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# with-xxx/without-xxx
36411046d85fccaa66061120a064225fd1b5ae01vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy @withlist = ("aes",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "cc-alg",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "cross-compile",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "ecdsa",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "eddsa",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "extra-tests",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "gssapi",
36411046d85fccaa66061120a064225fd1b5ae01vboxsync "geoip",
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync "gost",
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync "iconv",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "idn",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "openssl",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "libxml2",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "pkcs11",
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync "python",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "readline",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "samples",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "system-tests",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "tests",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "tuning",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync "vcredist",
b0db50948c349fa76655abf252f7946b515e8204vboxsync "zlib");
b0db50948c349fa76655abf252f7946b515e8204vboxsync
b0db50948c349fa76655abf252f7946b515e8204vboxsync# general arguments
b0db50948c349fa76655abf252f7946b515e8204vboxsync
b0db50948c349fa76655abf252f7946b515e8204vboxsyncmy @optionlist = ("help", "verbose", "legacy", "win32", "x64", "clean");
b0db50948c349fa76655abf252f7946b515e8204vboxsync
b0db50948c349fa76655abf252f7946b515e8204vboxsync# usage
b0db50948c349fa76655abf252f7946b515e8204vboxsync
b0db50948c349fa76655abf252f7946b515e8204vboxsyncmy @usage = ("Usage: perl Configure help\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync " perl Configure options* win32|x64\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync " perl Configure clean\n");
b0db50948c349fa76655abf252f7946b515e8204vboxsync
b0db50948c349fa76655abf252f7946b515e8204vboxsync# help
b0db50948c349fa76655abf252f7946b515e8204vboxsync
b0db50948c349fa76655abf252f7946b515e8204vboxsyncmy @help = (
b0db50948c349fa76655abf252f7946b515e8204vboxsync"'Configure' configures BIND9 build files.\n\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync@usage,
b0db50948c349fa76655abf252f7946b515e8204vboxsync"\nGeneral Options and Commands:\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" verbose (options) print messages\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" help (command) print this help\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" legacy (options) process only files for legacy build\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" win32 (command) configure for Win32 platform\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" x64 (command) configure for x64 platform\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" clean (command) clean up generated files\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" <none> (command) print a summary of the configuration\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync"\nOptional Features:\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" enable-intrinsics enable instrinsic/atomic functions [default=yes]\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" enable-native-pkcs11 use native PKCS#11 for all crypto [default=no]\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" enable-openssl-hash use OpenSSL for hash functions [default=yes]\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" enable-isc-spnego use SPNEGO from lib/dns [default=yes]\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" enable-filter-aaaa enable filtering of AAAA records [default=yes]\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" enable-fixed-rrset enable fixed rrset ordering [default=no]\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" enable-developer enable developer build settings [default=no]\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" enable-querytrace enable very verbose query trace [default=no]\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" enable-rpz-nsip enable rpz-nsip rules [default=yes]\n",
b0db50948c349fa76655abf252f7946b515e8204vboxsync" enable-rpz-nsdname enable rpz-nsdname rules [default=yes]\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync"\nOptional Packages:\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-tests build with test suite\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-extra-tests build with extra test suite\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-system-tests build with system test suite\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-samples build with sample programs\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-openssl[=PATH] build with OpenSSL yes|no|path\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-pkcs11[=PATH] build with PKCS#11 support yes|no|provider-path\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-ecdsa crypto ECDSA\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-eddsa crypto EDDSA yes|all|no\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-gost[=ENC] crypto GOST yes|no|raw|ans1\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-aes crypto AES\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-cc-alg choose the algorithm for cookies aes|sha1|sha256\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" with-gssapi[=PATH] build with MIT KfW GSSAPI yes|no|path\n",
faee255cc48bfbf17cb9f72fca70c8b9d3020ec4vboxsync" with-libxml2[=PATH] build with libxml2 library yes|no|path\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-geoip[=PATH] build with GeoIP support yes|no|path\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" with-python[=COMMAND] specify python interpreter python|command\n",
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync" with-readline[=PATH] build with readline library support yes|no|path\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" with-idn[=PATH] build with IDN kit support yes|no|path\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" with-zlib[=PATH] build with zlib library yes|no|path\n",
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync" with-vcredist[=PATH] visual C++ redistributable package yes|path\n",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync" with-tuning=OPTION tune for plaform size (large|default)\n",
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync" with-cross-compile 32 / 64 bit build / host plaforms\n");
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# Parse arguments
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy $verbose = 0;
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncmy $legacy_only = 0;
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncmy $want_help = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $want_win32 = "no";
a39ea3668b7019c23a68936259545f9b71bce1aavboxsyncmy $want_x64 = "no";
0db6a029780d9f9b347500e117320a8d5661efe5vboxsyncmy $want_clean = "no";
da3503c04ce76e653401396fe2795a9bc2427a1dvboxsyncmy $want_unknown = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $unknown_value;
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncmy $enable_intrinsics = "yes";
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncmy $enable_native_pkcs11 = "no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy $enable_openssl_hash = "auto";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncmy $enable_filter_aaaa = "yes";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $enable_isc_spnego = "yes";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $enable_fixed_rrset = "no";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $enable_developer = "no";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $enable_querytrace = "no";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $enable_rpz_nsip = "yes";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $enable_rpz_nsdname = "yes";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $use_tests = "no";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $use_xtests = "no";
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncmy $use_stests = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_samples = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_openssl = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $openssl_path = "..\\..\\";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_pkcs11 = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $pkcs11_path = "unknown";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_ecdsa = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_eddsa = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_ed448 = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_gost = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $gost_encoding = "raw";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_aes = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $cookie_algorithm = "aes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_gssapi = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsyncmy $use_geoip = "no";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsyncmy $geoip_path = "";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_libxml2 = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $libxml2_path = "..\\..\\";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_python = "auto";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $python_command = "python.exe";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_readline = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $readline_path = "..\\..\\";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_idn = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $idn_path = "..\\..\\";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $iconv_path = " --idn-- ";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_zlib = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $zlib_path = "..\\..\\";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $use_vcredist = "yes";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsyncmy $vcredist_path = " --infer-- ";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsyncmy $cross_compile = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $tuning = "default";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncmy $want_checkfiles = "no";
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync# no arguments -> usage
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncif ($#ARGV < 0) {
0c4004948fca34f2db87e7b38013137e9472c306vboxsync foreach (@usage) {
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync print $_;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync }
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync exit 1;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync}
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync# parse arguments
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncforeach (@ARGV) {
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync if (/^verbose$/i) {
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync $verbose = 1;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^help$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $want_help = "yes";
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync } elsif (/^disable-(.*)$/i) {
36411046d85fccaa66061120a064225fd1b5ae01vboxsync appargs($_);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync myenable($1, "no");
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^enable-(.*)$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync appargs($_);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync myenable($1, "yes");
0c4004948fca34f2db87e7b38013137e9472c306vboxsync } elsif (/^without-(.*)$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync appargs($_);
36411046d85fccaa66061120a064225fd1b5ae01vboxsync mywith($1, "no");
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^with-(.*)=(.*)$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync appargs($_);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync mywith($1, $2);
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync } elsif (/^with-(.*)$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync appargs($_);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync mywith($1, "yes");
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^legacy$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $legacy_only = 1;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^win32$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $want_win32 = "yes";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^x64$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync appargs($_);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $want_x64 = "yes";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^clean$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $want_clean = "yes";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif (/^checkfiles$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $want_checkfiles = "yes";
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync } else {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $want_unknown = "yes";
0c4004948fca34f2db87e7b38013137e9472c306vboxsync $unknown_value = $_;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync }
0c4004948fca34f2db87e7b38013137e9472c306vboxsync}
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsync# legacy default to win32
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncif ($legacy_only && ($want_x64 ne "yes")) {
0c4004948fca34f2db87e7b38013137e9472c306vboxsync $want_win32 = "yes";
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync}
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncif ($want_checkfiles eq "yes") {
0c4004948fca34f2db87e7b38013137e9472c306vboxsync foreach (@filelist) {
0c4004948fca34f2db87e7b38013137e9472c306vboxsync next if -r $_ . ".in";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync s/\\/\//g;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync next if -r $_ . ".in";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync print "missing $_.in from filelist\n";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync }
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync foreach (@projectlist) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync next if -r $_ . ".in";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync s/\\/\//g;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync next if -r $_ . ".in";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync print "missing $_.in from projectlist\n";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync }
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync exit(0);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync}
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync# configure the platform
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncif (($want_win32 eq "yes") && ($want_x64 eq "yes")) {
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync die "can't ask for both Win32 and x64 platforms\n";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync} elsif ($want_win32 eq "yes") {
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"PLATFORM"} = "Win32";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"BUILD_PLATFORM"} = "Win32";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"MACHINE"} = "/machine:X86";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"BUILD_MACHINE"} = "/machine:X86";
0c4004948fca34f2db87e7b38013137e9472c306vboxsync $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "__asm { rep nop }";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync} elsif ($want_x64 eq "yes") {
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"PLATFORM"} = "x64";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"BUILD_PLATFORM"} = "x64";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"MACHINE"} = "/machine:X64";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configvar{"BUILD_MACHINE"} = "/machine:X64";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "_mm_pause()";
0c4004948fca34f2db87e7b38013137e9472c306vboxsync}
0c4004948fca34f2db87e7b38013137e9472c306vboxsync# Standard configure variable
0c4004948fca34f2db87e7b38013137e9472c306vboxsync$configvar{"EXEEXT"} = ".exe";
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsync# get the version information
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncmy %Versions;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncsub getversion {
0c4004948fca34f2db87e7b38013137e9472c306vboxsync my $data;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync my $name;
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync my $value;
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync my $version;
0c4004948fca34f2db87e7b38013137e9472c306vboxsync
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync open V, "..\\version" || die $!;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync while (<V>) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync chomp;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync ($data) = split(/\#/);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync if ($data) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync ($name, $value) = split(/=/, $data);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync ($name) = split(/\s+/, $name);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync ($value) =~ s/^["\s]+//;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync ($value) =~ s/["\s]+$//;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } else {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync ($value) = split(/\s+/, $value);
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync }
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $Versions{$name} = $value;
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync }
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync }
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync close V;
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync if ($Versions{'PATCHVER'} ne "") {
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $version = "$version.$Versions{'PATCHVER'}";
0c4004948fca34f2db87e7b38013137e9472c306vboxsync }
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $version = "$version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $version = "$version$Versions{'EXTENSIONS'}";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $configvar{"BIND9_VERSION"} = "$version";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncgetversion();
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# append seen args to CONFIGARGS define
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncsub appargs {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync my $arg = $_[0];
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync # escape backslashes, spaces and double quotes
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $arg =~ s/([\\ "])/\\$1/g;
e74eef731a813e4e06680c587a6759b9974b29c9vboxsync if (defined($configdefh{"CONFIGARGS"})) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $configdefh{"CONFIGARGS"} .= " " . $arg;
36411046d85fccaa66061120a064225fd1b5ae01vboxsync } else {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $configdefh{"CONFIGARGS"} = $arg;
8cd2f2e64725096acb682f34a5568b7fb816eda7vboxsync }
8cd2f2e64725096acb682f34a5568b7fb816eda7vboxsync}
8cd2f2e64725096acb682f34a5568b7fb816eda7vboxsync
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncif (!$configdefh{"CONFIGARGS"}) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync # CONFIGARGS default is "default"
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $configdefh{"CONFIGARGS"} = "\"default\"";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync} else {
26947320577c481b4afefdb0afbb855181e5b2e8vboxsync my $val = $configdefh{"CONFIGARGS"};
26947320577c481b4afefdb0afbb855181e5b2e8vboxsync $configdefh{"CONFIGARGS"} = "\"'$val'\"";
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync}
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync# parse enable/disable
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsyncsub myenable {
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync my $key = $_[0];
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync my $val = $_[1];
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync if ($key =~ /^intrinsics$/i) {
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync if ($val =~ /^no$/i) {
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync $enable_intrinsics = "no";
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync }
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync } elsif ($key =~ /^native-pkcs11$/i) {
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync if ($val =~ /^yes$/i) {
1e1273b11e17928ec3c3a8fff45121aa7a169413vboxsync $enable_native_pkcs11 = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^openssl-hash$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $enable_openssl_hash = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($val =~ /^no$/i) {
cba6719bd64ec749967bbe931230452664109857vboxsync $enable_openssl_hash = "no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
c28fa006ba669ad8f26ae31d00a338379c04ea1bvboxsync } elsif ($key =~ /^isc-spnego$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^no$/i) {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync $enable_isc_spnego = "no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
c28fa006ba669ad8f26ae31d00a338379c04ea1bvboxsync } elsif ($key =~ /^filter-aaaa$/i) {
e74eef731a813e4e06680c587a6759b9974b29c9vboxsync if ($val =~ /^no$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $enable_filter_aaaa = "no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
a8139954a84d6e9090dd3a8371aa788351d45bc3vboxsync } elsif ($key =~ /^fixed-rrset$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^yes$/i) {
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $enable_fixed_rrset = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync }
a8139954a84d6e9090dd3a8371aa788351d45bc3vboxsync } elsif ($key =~ /^developer$/i) {
36411046d85fccaa66061120a064225fd1b5ae01vboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $enable_developer = "yes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync }
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($key =~ /^querytrace$/i) {
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync if ($val =~ /^yes$/i) {
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $enable_querytrace = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync }
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync } elsif ($key =~ /^rpz-nsip$/i) {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync if ($val =~ /^no$/i) {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync $enable_rpz_nsip = "no";
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync }
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync } elsif ($key =~ /^rpz-nsdname$/i) {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync if ($val =~ /^no$/i) {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync $enable_rpz_nsdname = "no";
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync }
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync } else {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync $want_unknown = "yes";
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync if ($val eq "no") {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync $unknown_value = "disable-" . $key;
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync } else {
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync $unknown_value = "enable-". $key;
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync }
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync }
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync}
36411046d85fccaa66061120a064225fd1b5ae01vboxsync
36411046d85fccaa66061120a064225fd1b5ae01vboxsync# enable-developer expansion now
36411046d85fccaa66061120a064225fd1b5ae01vboxsync
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsyncif ($enable_developer eq "yes") {
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $configdefh{"ISC_LIST_CHECKINIT"} = 1;
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $enable_filter_aaaa = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $enable_querytrace = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync # no atf on WIN32
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $enable_fixed_rrset = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync # TODO: dlz filesystem
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $use_tests = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync $use_xtests = "yes";
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync $use_stests = "yes";
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync $use_samples = "yes";
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync}
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync
6f76f373e9274aa29ec1485be3bfebafb670af0evboxsync# parse with/without
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncsub mywith {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync my $key = $_[0];
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync my $val = $_[1];
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($key =~ /^tests$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_tests = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
da3503c04ce76e653401396fe2795a9bc2427a1dvboxsync } elsif ($key =~ /^extra-tests$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_tests = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_xtests = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^system-tests$/i) {
da3503c04ce76e653401396fe2795a9bc2427a1dvboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_tests = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_stests = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^samples$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_samples = "yes";
da3503c04ce76e653401396fe2795a9bc2427a1dvboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^openssl$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^no$/i) {
da3503c04ce76e653401396fe2795a9bc2427a1dvboxsync $use_openssl = "no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($val !~ /^yes$/i) {
cba6719bd64ec749967bbe931230452664109857vboxsync $use_openssl = "yes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $openssl_path = $val;
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync }
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($key =~ /^pkcs11$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync if ($val =~ /^yes$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $use_pkcs11 = "yes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($val !~ /^no$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $use_pkcs11= "yes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $pkcs11_path = $val;
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $pkcs11_path =~ s/\.dll$//i;
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync }
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($key =~ /^ecdsa$/i) {
9b789c281103a2489742bf32f6ab500e38b2ecd5vboxsync if ($val =~ /^no$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $use_ecdsa = "no";
9b789c281103a2489742bf32f6ab500e38b2ecd5vboxsync } elsif ($val =~ /^yes$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $use_ecdsa = "yes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync }
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($key =~ /^eddsa$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync if ($val =~ /^no$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $use_eddsa = "no";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($val !~ /^no$/i) {
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $use_eddsa = "yes";
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync if ($val =~ /^all$/i) {
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $use_ed448 = "yes";
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync }
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync }
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync } elsif ($key =~ /^gost$/i) {
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync if ($val =~ /^no$/i) {
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync $use_gost = "no";
e18d16f31765f000e2a4a111a3df6d211cd825f1vboxsync } elsif ($val !~ /^no$/i) {
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $use_gost = "yes";
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $gost_encoding = $val;
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync }
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync } elsif ($key =~ /^aes$/i) {
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync if ($val =~ /^no$/i) {
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $use_aes = "no";
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync } elsif ($val =~ /^yes$/i) {
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $use_aes = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync } elsif ($key =~ /^cc-alg$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync $cookie_algorithm = $val;
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync } elsif ($key =~ /^gssapi$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync if ($val !~ /^no$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync $use_gssapi = "yes";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync if ($val !~ /^yes$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync $gssapi_path = $val;
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync }
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync }
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync } elsif ($key =~ /^libxml2$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync if ($val =~ /^no$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync $use_libxml2 = "no";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync } elsif ($val !~ /^yes$/i) {
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync $use_libxml2 = "yes";
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync $libxml2_path = $val;
5cece736b63cc917f3781c8c7e46fd3ea98c4e20vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^geoip$/i) {
9b789c281103a2489742bf32f6ab500e38b2ecd5vboxsync if ($val !~ /^no$/i) {
9b789c281103a2489742bf32f6ab500e38b2ecd5vboxsync $use_geoip = "yes";
9b789c281103a2489742bf32f6ab500e38b2ecd5vboxsync if ($val !~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $geoip_path = $val;
c91345f92b829d3fba05ce7a97206d83c5183ce0vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
c91345f92b829d3fba05ce7a97206d83c5183ce0vboxsync } elsif ($key =~ /^readline$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val !~ /^no$/i) {
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync $use_readline = "yes";
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync if ($val !~ /^yes$/i) {
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync $readline_path = $val;
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync }
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsync }
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif ($key =~ /^idn$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync if ($val !~ /^no$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $use_idn = "yes";
36411046d85fccaa66061120a064225fd1b5ae01vboxsync if ($val !~ /^yes$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $idn_path = $val;
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync }
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync }
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif ($key =~ /^iconv$/i) {
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync if ($val =~ /^no$/i) {
b0db50948c349fa76655abf252f7946b515e8204vboxsync $want_unknown = "yes";
b0db50948c349fa76655abf252f7946b515e8204vboxsync $unknown_value = "without-iconv doesn't make sense)";
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync } elsif ($val !~ /^yes$/i) {
b0db50948c349fa76655abf252f7946b515e8204vboxsync $iconv_path = $val;
b0db50948c349fa76655abf252f7946b515e8204vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^zlib$/i) {
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync if ($val !~ /^no$/i) {
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync $use_zlib = "yes";
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync if ($val !~ /^yes$/i) {
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync $zlib_path = $val;
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^python$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^no$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_python = "no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } else {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $use_python = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val !~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $python_command = $val;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
5b465a7c1237993faf8bb50120d247f3f0319adavboxsync } elsif ($key =~ /^vcredist$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^no$/i) {
ad77e3ec3cde24263bc7537575f5cae442bee3b1vboxsync $want_unknown = "yes";
ad77e3ec3cde24263bc7537575f5cae442bee3b1vboxsync $unknown_value = "without-vcredist (vcredist is required)";
ad77e3ec3cde24263bc7537575f5cae442bee3b1vboxsync } elsif ($val !~ /^yes$/i) {
ad77e3ec3cde24263bc7537575f5cae442bee3b1vboxsync $vcredist_path = $val;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^cross-compile$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^yes$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $cross_compile = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } elsif ($key =~ /^tuning$/i) {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val =~ /^large$/i) {
ad48e47654d22f79b025dc4b21cb162cb123801avboxsync $tuning = "large";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } else {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $want_unknown = "yes";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($val eq "no") {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $unknown_value = "without-" . $key;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } else {
ad77e3ec3cde24263bc7537575f5cae442bee3b1vboxsync $unknown_value = "with-" . $key;
ad77e3ec3cde24263bc7537575f5cae442bee3b1vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# resolve enable-openssl-hash
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncif ($enable_openssl_hash eq "auto") {
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync if ($use_openssl ne "no") {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if ($enable_native_pkcs11 eq "yes") {
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync $enable_openssl_hash="no";
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } else {
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $enable_openssl_hash="yes";
cba6719bd64ec749967bbe931230452664109857vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync } else {
cba6719bd64ec749967bbe931230452664109857vboxsync $enable_openssl_hash="no";
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync
cba6719bd64ec749967bbe931230452664109857vboxsyncif ($want_help ne "no") {
cba6719bd64ec749967bbe931230452664109857vboxsync foreach (@help) {
cba6719bd64ec749967bbe931230452664109857vboxsync print $_;
cba6719bd64ec749967bbe931230452664109857vboxsync }
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync exit 1;
}
# clean up and exit if requested
if ($want_clean eq "yes") {
my $file;
unlink($configfile);
unlink($platformfile);
unlink($confshfile);
unlink($icshfile);
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_native_pkcs11 eq "yes") {
print "native-pkcs11: enabled\n";
} else {
print "native-pkcs11: 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_querytrace eq "yes") {
print "querytrace: enabled\n";
} else {
print "querytrace: 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";
}
print "cookie algorithm: $cookie_algorithm\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_stests eq "yes") {
print "system tests: enabled\n";
}
if ($use_samples eq "yes") {
print "sample programs: 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_eddsa eq "no") {
print "eddsa: disabled\n";
} else {
print "ed25519: enabled\n";
if ($use_ed448 eq "no") {
print "ed448: disabled\n";
} else {
print "ed448: enabled\n";
}
}
if ($use_gost eq "no") {
print "gost: disabled\n";
} else {
print "gost: enabled\n";
print "gost private key encoding: $gost_encoding\n";
}
if ($use_aes eq "no") {
print "aes: disabled\n";
} else {
print "aes: 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_zlib eq "no") {
print "zlib: disabled\n";
} else {
print "zlib-path: $zlib_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";
}
my @vcpaths = {};
push(@vcpaths, $ENV{"VCRedistPath"}) if ($ENV{"VCRedistPath"} ne "");
push(@vcpaths, File::Spec->catfile( cwd(), "..", ".." ));
if ($ENV{"FrameworkSDKDir"} ne "" && $want_win32 eq "yes") {
push(@vcpaths, File::Spec->catfile($ENV{"FrameworkSDKDir"},
"BootStrapper", "Packages",
"vcredist_x86"));
} elsif ($ENV{"FrameworkSDKDir"} ne "" && $want_x64 eq "yes") {
push(@vcpaths, File::Spec->catfile($ENV{"FrameworkSDKDir"},
"BootStrapper", "Packages",
"vcredist_x64"));
}
if ($ENV{"WindowsSDKDir"} ne "" && $want_win32 eq "yes") {
push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir"},
"BootStrapper", "Packages",
"vcredist_x86"));
} elsif ($ENV{"WindowsSDKDir"} ne "" && $want_x64 eq "yes") {
push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir"},
"BootStrapper", "Packages",
"vcredist_x64"));
}
if ($ENV{"WindowsSDKDir_old"} ne "" && $want_win32 eq "yes") {
push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir_old"},
"BootStrapper", "Packages",
"vcredist_x86"));
} elsif ($ENV{"WindowsSDKDir_old"} ne "" && $want_x64 eq "yes") {
push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir_old"},
"BootStrapper", "Packages",
"vcredist_x64"));
}
if ($ENV{"VCINSTALLDIR"}) {
push(@vcpaths, File::Spec->catfile($ENV{"VCINSTALLDIR"},
"redist", "1033"));
}
my $rfile;
if ($want_win32 eq "yes") {
$rfile = "vcredist_x86.exe";
} else {
$rfile = "vcredist_x64.exe";
}
foreach (@vcpaths) {
my $vp = File::Spec->catfile($_, $rfile);
if (-f $vp) {
$vcredist_path = $vp;
last;
}
}
if ($vcredist_path eq " --infer-- ") {
die "with-vcredist is REQUIRED\n";
}
if ($verbose) {
print "found vcredist at " . $vcredist_path . "\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 "_MSC_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;
}
# no version of MSVS supports strcasestr() yet
$configdefp{"ISC_PLATFORM_NEEDSTRCASESTR"} = 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_HAVEATOMICSTOREQ"} = 1;
}
$configdefp{"ISC_PLATFORM_HAVEATOMICSTORE"} = 1;
$configdefp{"ISC_PLATFORM_HAVECMPXCHG"} = 1;
} else {
$configvar{"INTRINSIC"} = "false";
}
# enable-native-pkcs11
if ($enable_native_pkcs11 eq "yes") {
if ($use_openssl eq "auto") {
$use_openssl = "no";
}
if ($use_openssl ne "no") {
die "can't have both OpenSSL and native PKCS#11\n";
}
if ($use_pkcs11 ne "yes") {
if ($verbose) {
print "native PKCS#11 support: force with-pkcs11\n";
}
$use_pkcs11 = "yes";
}
if ($pkcs11_path eq "unknown") {
if ($verbose) {
print "native PKCS#11 support: no PKCS#11 provider defined?\n";
}
}
$configdefd{"CRYPTO"} = "PKCS11CRYPTO";
if ($use_ecdsa eq "no") {
if ($verbose) {
print "no ECDSA support in native PKCS#11\n";
}
} else {
if ($verbose) {
print "enabled ECDSA support in native PKCS#11\n";
}
$configdefh{"HAVE_PKCS11_ECDSA"} = 1;
}
if ($use_eddsa eq "no") {
if ($verbose) {
print "no EDDSA support in native PKCS#11\n";
}
} else {
if ($verbose) {
print "enabled Ed25519 support in native PKCS#11\n";
}
$configdefh{"HAVE_PKCS11_ED25519"} = 1;
if ($use_ed448 eq "no") {
if ($verbose) {
print "no Ed448 support in native PKCS#11\n";
}
} else {
if ($verbose) {
print "enabled Ed448 support in native PKCS#11\n";
}
$configdefh{"HAVE_PKCS11_ED448"} = 1;
}
}
if ($use_gost eq "no") {
if ($verbose) {
print "no GOST support in native PKCS#11\n";
}
} else {
if ($verbose) {
print "enabled GOST support in native PKCS#11\n";
}
$configdefh{"HAVE_PKCS11_GOST"} = 1;
}
if ($use_aes eq "no") {
if ($verbose) {
print "no AES support in native PKCS#11\n";
}
} else {
if ($verbose) {
print "enabled AES support in native PKCS#11\n";
}
$use_aes = "pkcs11";
}
}
# 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-querytrace
if ($enable_querytrace eq "yes") {
$configdefh{"WANT_QUERYTRACE"} = 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-system-tests
if ($use_stests eq "yes") {
$configcond{"STESTS"} = 1;
}
# with-samples
if ($use_samples eq "yes") {
$configcond{"SAMPLES"} = 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 (-f File::Spec->catfile($openssl_path,
$file,
"include\\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";
}
my $openssl_new = 0;
if (!-f File::Spec->catfile($openssl_path,
"inc32\\openssl\\opensslv.h")) {
$openssl_new = 1;
if (!-f File::Spec->catfile($openssl_path,
"include\\openssl\\opensslv.h")) {
die "can't find OpenSSL opensslv.h include\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");
if (!$openssl_new) {
# Check libraries are where we expect
if (!-f $openssl_lib) {
die "can't find OpenSSL libeay32.lib library\n";
}
if (!-f $openssl_dll) {
die "can't find OpenSSL libeay32.dll DLL\n";
}
} else {
# OpenSSL >= 1.1 is easier at the exception of the DLL
if ($verbose) {
print "new (>= 1.1) OpenSSL version\n";
}
$openssl_inc = File::Spec->catdir($openssl_path, "include");
$openssl_libdir = $openssl_path;
$openssl_lib = File::Spec->catfile($openssl_path, "libcrypto.lib");
if (!-f $openssl_lib) {
die "can't find OpenSSL libcrypto.lib library\n";
}
opendir DIR, $openssl_path || die "No Directory: $!\n";
my @dirlist = grep (/^libcrypto-[^.]+\.dll$/i, readdir(DIR));
closedir(DIR);
# We must get one file only
if (scalar(@dirlist) == 0) {
die "can't find OpenSSL libcrypto-*.dll DLL\n";
}
if (scalar(@dirlist) != 1) {
die "find more than one OpenSSL libcrypto-*.dll DLL candidate\n";
}
$openssl_dll = File::Spec->catdir($openssl_path, "@dirlist[0]");
}
$configcond{"OPENSSL"} = 1;
$configdefd{"CRYPTO"} = "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";
$enable_openssl_hash = "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";
$enable_openssl_hash = "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";
$enable_openssl_hash = "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";
$enable_openssl_hash = "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";
}
$use_eddsa = "no";
} else {
$configdefh{"HAVE_EVP_SHA512"} = 1;
}
} else {
if ($verbose) {
print "can't compile EVP_sha512 test: $compret\n";
print "disabling EVP_sha512\n";
}
$use_eddsa = "no";
}
}
# 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-eddsa
if ($use_openssl eq "no") {
$use_eddsa = "no";
}
if ($use_eddsa eq "auto") {
if ($verbose) {
print "checking for OpenSSL ED25519 support\n";
}
open F, ">tested25519.c" || die $!;
print F << 'EOF';
#include <openssl/evp.h>
#include <openssl/objects.h>
int
main(void)
{
EVP_PKEY_CTX *ctx;
ctx = EVP_PKEY_CTX_new_id(NID_ED25519, NULL);
if (ctx == NULL)
return (2);
return (0);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" tested25519.c "$library"`;
if (grep { -f and -x } ".\\tested25519.exe") {
`.\\tested25519.exe`;
if ($? != 0) {
if ($verbose) {
print "EDDSA test failed: disabling EDDSA\n";
}
$use_eddsa = "no";
}
} else {
if ($verbose) {
print "can't compile EDDSA test: $compret\n";
print "disabling EDDSA\n";
}
$use_eddsa = "no";
}
}
if ($use_eddsa ne "no") {
$use_eddsa = "yes";
$configdefh{"HAVE_OPENSSL_ED25519"} = 1;
} else {
$use_ed448 = "no";
}
if ($use_ed448 eq "auto") {
if ($verbose) {
print "checking for OpenSSL ED448 support\n";
}
open F, ">tested448.c" || die $!;
print F << 'EOF';
#include <openssl/evp.h>
#include <openssl/objects.h>
int
main(void)
{
EVP_PKEY_CTX *ctx;
ctx = EVP_PKEY_CTX_new_id(NID_ED448, NULL);
if (ctx == NULL)
return (2);
return (0);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" tested448.c "$library"`;
if (grep { -f and -x } ".\\tested448.exe") {
`.\\tested448.exe`;
if ($? != 0) {
if ($verbose) {
print "ED448 test failed: disabling ED448\n";
}
$use_ed448 = "no";
}
} else {
if ($verbose) {
print "can't compile ED448 test: $compret\n";
print "disabling ED448\n";
}
$use_ed448 = "no";
}
}
if ($use_ed448 ne "no") {
$use_ed448 = "yes";
$configdefh{"HAVE_OPENSSL_ED448"} = 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;
}
if ($gost_encoding eq "ans1") {
$configdefh{"PREFER_GOSTASN1"} = 1;
} elsif ($gost_encoding ne "raw") {
die "Unrecognized GOST private key encoding: $gost_encoding\n";
}
# with-aes
if ($use_openssl eq "no") {
if ($use_aes ne "pkcs11") {
$use_aes = "no";
}
}
if ($use_aes eq "auto") {
if ($verbose) {
print "checking for OpenSSL EVP AES support\n";
}
$use_aes = "evp";
open F, ">testevpaes.c" || die $!;
print F << 'EOF';
#include <openssl/evp.h>
int
main(void)
{
EVP_CIPHER *aes128, *aes192, *aes256;
aes128 = EVP_aes_128_ecb();
aes192 = EVP_aes_192_ecb();
aes256 = EVP_aes_256_ecb();
if (aes128 == NULL || aes192 == NULL || aes256 == NULL)
return (1);
return (0);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" testevpaes.c "$library"`;
if (grep { -f and -x } ".\\testevpaes.exe") {
`.\\testevpaes.exe`;
if ($? != 0) {
if ($verbose) {
print "EVP AES test failed: disabling EVP AES\n";
}
$use_aes = "auto";
}
} else {
if ($verbose) {
print "can't compile EVP AES test: $compret\n";
print "disabling EVP AES\n";
}
$use_aes = "auto";
}
}
if ($use_aes eq "auto") {
if ($verbose) {
print "checking for OpenSSL native AES support\n";
}
$use_aes = "native";
open F, ">testaes.c" || die $!;
print F << 'EOF';
#include <openssl/aes.h>
AES_KEY k;
const unsigned char bufin[16];
unsigned char bufout[16];
int
main(void)
{
AES_encrypt(bufin, bufout, &k);
return (0);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" testaes.c "$library"`;
if (grep { -f and -x } ".\\testaes.exe") {
`.\\testaes.exe`;
if ($? != 0) {
if ($verbose) {
print "native AES test failed: disabling AES\n";
}
$use_aes = "no";
}
} else {
if ($verbose) {
print "can't compile native AES test: $compret\n";
print "disabling AES\n";
}
$use_aes = "no";
}
}
if ($use_aes eq "yes") {
$configdefh{"HAVE_OPENSSL_EVP_AES"} = 1;
} elsif ($use_aes eq "evp") {
$configdefh{"HAVE_OPENSSL_EVP_AES"} = 1;
$use_aes = "yes";
} elsif ($use_aes eq "native") {
$configdefh{"HAVE_OPENSSL_AES"} = 1;
$use_aes = "yes";
} elsif ($use_aes eq "pkcs11") {
$use_aes = "yes";
}
if ($use_aes eq "yes") {
$configdefp{"ISC_PLATFORM_WANTAES"} = 1;
$configcond{"AES"} = 1;
}
# with-cc-alg
if ($cookie_algorithm eq "aes") {
if ($use_aes ne "yes") {
$cookie_algorithm = "sha256";
} else {
$configdefh{"AES_CC"} = 1;
}
}
if ($cookie_algorithm eq "sha1") {
$configdefh{"HMAC_SHA1_CC"} = 1;
} elsif ($cookie_algorithm eq "sha256") {
$configdefh{"HMAC_SHA256_CC"} = 1;
} elsif ($cookie_algorithm ne "aes") {
die "Unrecognized cookie algorithm: $cookie_algorithm\n";
}
# 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;
$configtest{"XMLSTATS"} = 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-zlib
if ($use_zlib eq "no") {
if ($verbose) {
print "zlib library is disabled\n";
}
} else {
$configcond{"ZLIB"} = 1;
$configtest{"ZLIB"} = 1;
$zlib_path = File::Spec->rel2abs($zlib_path);
if ($verbose) {
print "checking for zlib directory at \"$zlib_path\"\n";
}
if (!-f File::Spec->catfile($zlib_path, "zlib.h")) {
die "can't find zlib.h include\n";
}
if (!-f File::Spec->catfile($zlib_path, "zdll.lib")) {
die "can't find zdll.lib library\n";
}
if (!-f File::Spec->catfile($zlib_path, "zlib1.dll")) {
die "can't find zlib1.dll DLL\n";
}
$configdefh{"HAVE_ZLIB"} = 1;
$configinc{"ZLIB_INC"} = "$zlib_path";
my $zlib_lib = File::Spec->catfile($zlib_path, "zdll.lib");
$configlib{"ZLIB_LIB"} = "$zlib_lib";
my $zlib_dll = File::Spec->catfile($zlib_path, "zlib1.dll");
$configdll{"ZLIB_DLL"} = "$zlib_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.exe -c "quit()" 2>&1`;
if ($? != 0) {
print STDERR "can't launch the python interpreter: $pythonret\n";
$use_python = "no";
}
}
if ($use_python ne "no") {
if ($use_python ne "auto") {
if ($verbose) {
print "checking for $python_command\n";
}
my $pythonret = `"$python_command" -c "quit()" 2>&1`;
if ($? != 0) {
die "can't launch $python_command: $pythonret\n";
}
}
if ($python_command !~ /\.exe$/i) {
$python_command = $python_command . ".exe";
}
# tried to use the full path without success here
if ($verbose) {
print "checking for python module 'argparse'\n";
}
my $pythonret = `"$python_command" -c "import argparse" 2>&1`;
if ($? != 0) {
if ($use_python ne "auto") {
die "can't find python module 'argparse': $pythonret\n";
} else {
print STDERR "can't find python module 'argparse': $pythonret\n";
$use_python = "no";
}
}
if ($use_python ne "no") {
if ($verbose) {
print "checking for python module 'ply'\n";
}
$pythonret = `"$python_command" -c "from ply import *" 2>&1`;
if ($? != 0) {
if ($use_python ne "auto") {
die "can't find python module 'ply': $pythonret\n";
} else {
print STDERR "can't find python module 'ply': $pythonret\n";
$use_python = "no";
}
}
}
if ($use_python ne "no") {
if ($verbose) {
print "checking for python module 'win32api'\n";
}
$pythonret = `"$python_command" -c "import win32api" 2>&1`;
if ($? != 0) {
if ($use_python ne "auto") {
die "can't find python module 'win32api': $pythonret\n";
} else {
print STDERR
"can't find python module 'win32api': $pythonret\n";
$use_python = "no";
}
}
}
if ($use_python ne "no") {
if ($verbose) {
print "checking for python module 'win32con'\n";
}
$pythonret = `"$python_command" -c "import win32con" 2>&1`;
if ($? != 0) {
if ($use_python ne "auto") {
die "can't find python module 'win32con': $pythonret\n";
} else {
print STDERR
"can't find python module 'win32con': $pythonret\n";
$use_python = "no";
}
}
}
if ($use_python ne "no") {
$configcond{"PYTHON"} = 1;
$configdefd{"USE_PYTHON"} = "USE_PYTHON";
$configvar{"PYTHON"} = "$python_command";
$configtest{"CHECKDS"} = "checkds";
$configtest{"COVERAGE"} = "coverage";
$configtest{"KEYMGR"} = "keymgr";
# Doesn't matter
$configvar{"prefix"} = "__prefix__";
$configvar{"expanded_sysconfdir"} = "__prefix__\\etc";
}
}
# 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";
}
# tuning
if ($tuning eq "large") {
$configdefh{"TUNE_LARGE"} = 1;
}
# escape spaces
sub kw {
if ($_[0] =~ / /) {
return "\"$_[0]\"";
} else {
return "$_[0]";
}
}
# setup config.h with %configdefh
sub setupconfigh {
my $line;
my @Lines;
open F, $configfile . ".win32" || 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, ">" . $configfile || die $!;
if ($verbose) {
print "Setting up $configfile\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 $platformfile\n";
}
foreach $line (@Lines) {
print F $line . "\n";
}
close F;
}
# setup conf.sh with %configtest and %configvar
sub setupconfsh {
my $line;
my @Lines;
my $val;
open F, $confshfile . ".win32" || die $!;
@Lines = <F>;
close F;
foreach $line (@Lines) {
chomp $line;
while ($line =~ /@([^@]+)\@/) {
if ($1 ~~ @substtest) {
if (defined($configtest{$1})) {
$val = kw($configtest{$1});
$line = "$`$val$'";
} else {
$line = "$`$'";
}
} elsif ($1 ~~ @substvar) {
if (defined($configvar{$1})) {
$val = kw($configvar{$1});
$line = "$`$val$'";
} else {
$line = "$`$'";
}
} else {
die "unknown control $& in $confshfile.win32\n";
}
}
}
open F, ">" . $confshfile || die $!;
if ($verbose) {
print "Setting up $confshfile\n";
}
binmode(F);
foreach $line (@Lines) {
print F $line . "\n";
}
close F;
}
# setup isc-config.sh with %configvar accepting undefined
sub setupicsh {
my $line;
my @Lines;
my $val;
open F, $icshfile . ".in" || die $!;
@Lines = <F>;
close F;
foreach $line (@Lines) {
chomp $line;
while ($line =~ /@([^@]+)\@/) {
if ($1 ~~ @substvar) {
if (defined($configvar{$1})) {
$val = kw($configvar{$1});
$line = "$`$val$'";
} else {
$line = "$`$'";
}
} else {
$line = "$`__$1__$'";
}
}
}
open F, ">" . $icshfile || die $!;
if ($verbose) {
print "Setting up $icshfile\n";
}
binmode(F);
foreach $line (@Lines) {
print F $line . "\n";
}
close F;
}
# setup a file with %configcond stack and %config{var,defd,inc,lib,dll,test}
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);
}
if ($1 ~~ @allcond) {
$cond = $1;
if (defined($configcond{$cond})) {
# do nothing
} else {
$pass = 0;
}
} else {
die "unknown condition \@IF $1 in $filename\n";
}
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};
my $pre = "$`";
my $post = "$'";
$def =~ s/([\\ "])/\\$1/g;
$line = qq($pre/D "$def"$post);
} 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";
}
if (!$legacy_only) {
binmode(F);
}
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);
}
if ($1 ~~ @allcond) {
$cond = $1;
if (defined($configcond{$cond})) {
# do nothing
} else {
$pass = 0;
}
} else {
die "unknown condition \@IF $1 in $projectname\n";
}
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", "irs");
my %LibMacros = (
"bind9" => "LIBBIND9_EXPORTS",
"dns" => "LIBDNS_EXPORTS",
"irs" => "LIBIRS_EXPORTS",
"isc" => "LIBISC_EXPORTS",
"isccc" => "LIBISCCC_EXPORTS",
"isccfg" => "LIBISCCFG_EXPORTS",
"lwres" => "LIBLWRES_EXPORTS");
my @VersionNames = ("LIBINTERFACE", "LIBREVISION", "LIBAGE");
my $Version;
my %ApiVersions;
my $Mapapi;
my $versionfile = "versions.h";
my $versionpath = "..\\$versionfile";
my $data;
my $name;
my $value;
# 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 Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
';
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'} ne "") {
$Version = "$Version.$Versions{'PATCHVER'}";
}
$Version = "$Version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
$Version = "$Version$Versions{'EXTENSIONS'}";
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_id";
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 Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
';
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;
}
# Build install files
sub makeinstallfile {
open FOUT, ">InstallFlags" || die "cannot open InstallFlags: $!\n";
print FOUT "# Flags for BINDInstall\n";
if ($msc_ver >= 1400) {
print FOUT "runvcredist\n";
}
if ($want_x64 eq "yes") {
print FOUT "forwin64\n";
}
close FOUT;
open LOUT, ">InstallFiles" || die "cannot open InstallFiles: $!\n";
print LOUT "# File list for BINDInstall\n";
if ($msc_ver < 1400) {
if ($msc_ver >= 1310) {
print LOUT "mfc71.dll-WCTT\n";
print LOUT "msvcr71.dll-WCTT\n";
} elsif (($msc_ver > 1200) && ($msc_ver < 1310)) {
print LOUT "mfc70.dll-WCTT\n";
print LOUT "msvcr70.dll-WCTT\n";
}
}
print LOUT "bindevt.dll-BNFT\n";
print LOUT "libbind9.dll-BCFT\n";
print LOUT "libisc.dll-BCFT\n";
print LOUT "libisccfg.dll-BCFT\n";
print LOUT "libisccc.dll-BCFT\n";
print LOUT "libdns.dll-BCFT\n";
print LOUT "liblwres.dll-BCFT\n";
print LOUT "libirs.dll-BCFT\n";
if ($use_openssl eq "yes") {
my $v;
my $d;
my $name;
($v, $d, $name) =File::Spec->splitpath($configdll{"OPENSSL_DLL"});
print LOUT "${name}-BCFT\n";
}
if ($use_libxml2 eq "yes") {
print LOUT "libxml2.dll-BCFT\n";
}
if ($use_gssapi eq "yes") {
if ($want_x64 eq "yes") {
print LOUT "gssapi64.dll-BCFT\n";
print LOUT "krb5_64.dll-BCFT\n";
} else {
print LOUT "gssapi32.dll-BCFT\n";
print LOUT "krb5_32.dll-BCFT\n";
}
}
if ($use_geoip eq "yes") {
print LOUT "libgeoip.dll-BCFT\n";
}
if ($use_idn eq "yes") {
print LOUT "idnkit.dll-BCFT\n";
print LOUT "iconv.dll-BCFT\n";
}
print LOUT "named.exe-BCFF\n";
print LOUT "nsupdate.exe-BNFT\n";
print LOUT "BINDInstall.exe-BNFT\n";
print LOUT "InstallFlags-BNFT\n";
print LOUT "InstallFiles-BNFT\n";
print LOUT "rndc.exe-BNFF\n";
print LOUT "dig.exe-BNFT\n";
print LOUT "host.exe-BNFT\n";
print LOUT "mdig.exe-BNFT\n";
print LOUT "nslookup.exe-BNFT\n";
print LOUT "delv.exe-BNFT\n";
print LOUT "arpaname.exe-BNFT\n";
print LOUT "nsec3hash.exe-BNFF\n";
print LOUT "genrandom.exe-BNFF\n";
print LOUT "rndc-confgen.exe-BNFF\n";
print LOUT "ddns-confgen.exe-BNFF\n";
print LOUT "tsig-keygen.exe-BNFF\n";
print LOUT "dnssec-keygen.exe-BNFF\n";
print LOUT "dnssec-signzone.exe-BNFF\n";
print LOUT "dnssec-dsfromkey.exe-BNFF\n";
print LOUT "dnssec-importkey.exe-BNFF\n";
print LOUT "dnssec-keyfromlabel.exe-BNFF\n";
print LOUT "dnssec-revoke.exe-BNFF\n";
print LOUT "dnssec-settime.exe-BNFF\n";
print LOUT "dnssec-verify.exe-BNFF\n";
print LOUT "named-checkconf.exe-BNFF\n";
print LOUT "named-checkzone.exe-BNFF\n";
print LOUT "named-compilezone.exe-BNFF\n";
print LOUT "named-journalprint.exe-BNFF\n";
print LOUT "named-rrchecker.exe-BNFF\n";
print LOUT "isc-hmax-fixup.exe-BNFF\n";
if ($use_pkcs11 eq "yes") {
print LOUT "pkcs11-destroy.exe-BNFF\n";
print LOUT "pkcs11-keygen.exe-BNFF\n";
print LOUT "pkcs11-list.exe-BNFF\n";
print LOUT "pkcs11-tokens.exe-BNFF\n";
}
if ($use_python ne "no") {
print LOUT "dnssec-checkds.py-BNFF\n";
print LOUT "dnssec-coverage.py-BNFF\n";
print LOUT "dnssec-keymgr.py-BNFF\n";
}
print LOUT "readme1st.txt-BTFT\n";
close LOUT;
}
# Adjust system tests
# WIN32 not a BSD
$configtest{"CHECK_DSA"} = 0;
# dnstap not supported
#$configtest{"DNSTAP"} = "dnstap";
#$configtest{"FSTRM_CAPTURE"} = "fstrm_capture";
# no json-c library for WIN32
#$configtest{"JSONSTATS"} = 1;
# lmdb not supported
#$configtest{"NZD_TOOLS"} = "nzd";
# TODO check for pkcs11ssl and set PKCS11_TEST
# 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 "\tconf.sh:\n";
foreach $name (@substtest) {
if (defined($configtest{$name})) {
print qq(\t\t$name defined to "$configtest{$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();
setupconfsh();
setupicsh();
my $file;
foreach $file (@filelist) {
setupfile($file);
}
if (!$legacy_only) {
foreach $file (@projectlist) {
setupproject($file);
}
}
makeversion();
makesrcid();
makeinstallfile();
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-native-pkcs11 supported
# --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-ipv6 included without a way to disable it
# --enable-atomic supported (renamed to intrinsic)
# --enable-isc-spnego supported (part of GSSAPI)
# --enable-fixed-rrset supported
# --enable-querytrace supported
# --disable-rpz-nsip supported
# --disable-rpz-nsdname supported
# --enable-filter-aaaa supported
# --enable-full-report supported by verbose
# --enable-dnstap not supported (requires libfstrm support on WIN32)
# --enable-seccomp not supported (Linux specific)
# --enable-afl not supported (not yet available on Visual Studio C++)
# --with-python supported
# --with-openssl supported
# --with-pkcs11 supported
# --with-ecdsa supported
# --with-eddsa supported
# --with-gost supported
# --with-aes supported
# --with-cc-alg supported
# --with-geoip supported
# --with-gssapi supported with MIT (K)erberos (f)or (W)indows
# --with-lmdb no supported on WIN32 (port is not reliable)
# --with-libxml2 supported
# --with-libjson not supported on WIN32 (package not available on WIN32)
# --with-zlib supported
# --with-purify not supported (package available on WIN32 but for free?)
# --with-gperftools-profiler not supported (package not available on WIN32)
# --with-libtool not supported on WIN32 (never)
# --with-locktype not supported on WIN32 (not yet available on WIN32)
# --with-readline supported
# --with-protobuf-c not supported (no reason to until libfstrm is ready)
# --with-libfrtrm not supported (not yet available on WIN32)
# --with-docbook-xsl not supported (?)
# --with-idn[lib] supported
# --with-[lib]iconv supported (part of IDN)
# --with-atf not supported on WIN32 (package not available on WIN32)
# --with-tuning supported
# --with-dlopen included without a way to disable it
# --with-dlz-* ?
#
# Notes: MSVC versions
# MSVC 15.0 _MSC_VER == 1910 (VS 2017)
# MSVC 14.0 _MSC_VER == 1900 (VS 2015)
# 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)