Configure revision 50cdb3af698a411f473ffab1883fa43df39ddd9d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#!/usr/bin/perl
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater#
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# Copyright (C) 2013-2016 Internet Systems Consortium, Inc. ("ISC")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater# This Source Code Form is subject to the terms of the Mozilla Public
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# License, v. 2.0. If a copy of the MPL was not distributed with this
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file, You can obtain one at http://mozilla.org/MPL/2.0/.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Configure
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This script builds nmake and visual studio build files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinrequire 5.000;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinuse strict;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinuse File::Spec;
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updateruse Cwd;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# files to configure
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $configfile = "..\\config.h";
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrewsmy $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $confshfile = "..\\bin\\tests\\system\\conf.sh";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $icshfile = "..\\isc-config.sh";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkconf.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkconf.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkzone.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkzone.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\confgentool.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\ddnsconfgen.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\ddnsconfgen.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\rndcconfgen.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\rndcconfgen.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\delv\\win32\\delv.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\delv\\win32\\delv.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dig.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dig.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dighost.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\host.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\host.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\nslookup.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\nslookup.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dnssectool.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dsfromkey.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dsfromkey.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\importkey.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\importkey.mak",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\keyfromlabel.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\keyfromlabel.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keygen.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\keygen.mak",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\revoke.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\revoke.mak",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\settime.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\settime.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\signzone.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\signzone.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\verify.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\verify.mak",
9c6a5d1f22f972232d7a9fd5c5fa64f10bacbdffAutomatic Updater "..\\bin\\named\\win32\\named.dsp",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\named\\win32\\named.mak",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\nsupdate\\win32\\nsupdate.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\nsupdate\\win32\\nsupdate.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11destroy.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11destroy.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11list.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\pkcs11\\win32\\pk11list.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11tokens.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11tokens.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\dnssec-checkds.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\dnssec-coverage.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\dnssec-keymgr.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\isc\\__init__.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\isc\\checkds.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\isc\\coverage.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\isc\\dnskey.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\isc\\eventlist.py",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\python\\isc\\keydict.py",
727f5b8846457a33d06f515a10a7e1aa849ddf18Andreas Gustafsson "..\\bin\\python\\isc\\keyevent.py",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\python\\isc\\keymgr.py",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\python\\isc\\keyseries.py",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\python\\isc\\keyzone.py",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\python\\isc\\policy.py",
727f5b8846457a33d06f515a10a7e1aa849ddf18Andreas Gustafsson "..\\bin\\python\\isc\\rndc.py",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\python\\isc\\tests\\dnskey_test.py",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\python\\isc\\tests\\policy_test.py",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\python\\isc\\utils.py",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\rndc\\win32\\rndc.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\rndc\\win32\\rndc.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\rndc\\win32\\rndcutil.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\dlz\\prereq.sh",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tools\\win32\\arpaname.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\arpaname.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\genrandom.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\genrandom.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\ischmacfixup.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tools\\win32\\ischmacfixup.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\journalprint.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\journalprint.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\mdig.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\mdig.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\nsec3hash.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\nsec3hash.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\rrchecker.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tools\\win32\\rrchecker.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\atomic\\win32\\t_atomic.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\atomic\\win32\\t_atomic.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\db\\win32\\t_db.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\db\\win32\\t_db.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\dst\\win32\\t_dst.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\dst\\win32\\t_dst.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\master\\win32\\t_master.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\master\\win32\\t_master.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\mem\\win32\\t_mem.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\mem\\win32\\t_mem.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\hashes\\win32\\t_hashes.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\hashes\\win32\\t_hashes.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\names\\win32\\t_names.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\names\\win32\\t_names.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\rbt\\win32\\t_rbt.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\rbt\\win32\\t_rbt.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\resolver\\win32\\t_resolver.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\tasks\\win32\\t_tasks.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\tasks\\win32\\t_tasks.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\timers\\win32\\t_timers.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\timers\\win32\\t_timers.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\bigkey.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\bigkey.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\feature-test.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\feature-test.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\gencheck.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\gencheck.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\keycreate.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\keycreate.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\keydelete.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\keydelete.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\lwtest.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\lwtest.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\backtrace_test.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tests\\win32\\backtrace_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.mak",
1224c3b69b3d18f7127aa042644936af25a2d679Mark Andrews "..\\bin\\tests\\win32\\makejournal.dsp",
1224c3b69b3d18f7127aa042644936af25a2d679Mark Andrews "..\\bin\\tests\\win32\\makejournal.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\win32\\BINDInstall\\BINDInstall.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\win32\\BINDInstall\\BINDInstall.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\bind9\\win32\\libbind9.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\bind9\\win32\\libbind9.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\gen.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\gen.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\libdns.def",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\libdns.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\libdns.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\irs\\win32\\libirs.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\irs\\win32\\libirs.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isc\\win32\\libisc.def",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isc\\win32\\libisc.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isc\\win32\\libisc.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccc\\win32\\libisccc.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccc\\win32\\libisccc.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccfg\\win32\\libisccfg.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccfg\\win32\\libisccfg.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\lwres\\win32\\liblwres.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\lwres\\win32\\liblwres.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\async.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\async.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\gai.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\gai.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\nsprobe.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\nsprobe.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\request.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\request.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\resolve.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\resolve.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\update.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\update.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\tests\\win32\\libtests.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\tests\\win32\\libtests.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\win32\\bindevt\\bindevt.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\win32\\bindevt\\bindevt.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "legacy\\BINDBuild.dsw",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "legacy\\BuildAll.bat",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "legacy\\BuildPost.bat",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "legacy\\BuildSetup.bat");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkconf.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checktool.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checktool.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkzone.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkzone.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\confgentool.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\confgentool.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\delv\\win32\\delv.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\delv\\win32\\delv.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dig.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dig.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dighost.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\dighost.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\host.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\host.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\nslookup.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\nslookup.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dnssectool.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dnssectool.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\importkey.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\importkey.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keygen.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keygen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\revoke.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\revoke.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\settime.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\settime.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\signzone.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\signzone.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\verify.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\verify.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\named\\win32\\named.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\named\\win32\\named.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11list.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11list.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\rndc\\win32\\rndc.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\rndc\\win32\\rndc.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\rndc\\win32\\rndcutil.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\rndc\\win32\\rndcutil.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\arpaname.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\arpaname.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\genrandom.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\genrandom.vcxproj.filters",
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews "..\\bin\\tools\\win32\\ischmacfixup.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\ischmacfixup.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\journalprint.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\journalprint.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\mdig.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\mdig.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\nsec3hash.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\nsec3hash.vcxproj.filters",
f7b2875691497b292eacb60609be23a813d14e63Automatic Updater "..\\bin\\tools\\win32\\rrchecker.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\rrchecker.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\db\\win32\\t_db.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\db\\win32\\t_db.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\master\\win32\\t_master.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\master\\win32\\t_master.vcxproj.filters",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj.filters",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj.filters",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.vcxproj",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\bigkey.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\bigkey.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\feature-test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\feature-test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\gencheck.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\gencheck.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keycreate.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keycreate.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keydelete.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keydelete.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\lwtest.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\lwtest.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\backtrace_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\backtrace_test.vcxproj.filters",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater "..\\bin\\tests\\win32\\inter_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\makejournal.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\makejournal.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.vcxproj",
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\bind9\\win32\\libbind9.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\bind9\\win32\\libbind9.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\gen.vcxproj",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\lib\\dns\\win32\\gen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\libdns.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\dns\\win32\\libdns.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\irs\\win32\\libirs.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\irs\\win32\\libirs.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isc\\win32\\libisc.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isc\\win32\\libisc.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccc\\win32\\libisccc.vcxproj",
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews "..\\lib\\isccc\\win32\\libisccc.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccfg\\win32\\libisccfg.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\lwres\\win32\\liblwres.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\resolve.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\resolve.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\async.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\async.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\gai.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\gai.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\update.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\update.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\request.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\request.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\nsprobe.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\nsprobe.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\tests\\win32\\libtests.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\win32\\bindevt\\bindevt.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\win32\\bindevt\\bindevt.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "bind9.sln");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# for config.h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy %configdefh;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @substdefh = ("AES_CC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ALLOW_FILTER_AAAA",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "CONFIGARGS",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "DNS_RDATASET_FIXED",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ENABLE_RPZ_NSDNAME",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ENABLE_RPZ_NSIP",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_EVP_SHA256",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_EVP_SHA384",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_EVP_SHA512",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_GEOIP",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_GEOIP_CITY_V6",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_GEOIP_V6",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_LIBXML2",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_OPENSSL_AES",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_OPENSSL_DSA",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_OPENSSL_ECDSA",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_OPENSSL_EVP_AES",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_OPENSSL_GOST",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_PKCS11_ECDSA",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_PKCS11_GOST",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_READLINE",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HAVE_ZLIB",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HMAC_SHA1_CC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "HMAC_SHA256_CC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_LIST_CHECKINIT",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "PREFER_GOSTASN1",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "TUNE_LARGE",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "WANT_QUERYTRACE",
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews "WITH_IDN");
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews# for platform.h
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsmy %configdefp;
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsmy @substdefp = ("ISC_PLATFORM_BUSYWAITNOP",
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews "ISC_PLATFORM_HAVEATOMICSTORE",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_HAVEATOMICSTOREQ",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_HAVECMPXCHG",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_HAVEXADD",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_HAVEXADDQ",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_NEEDSTRCASESTR",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_USEBACKTRACE",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ISC_PLATFORM_WANTAES");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrews# for conf.sh
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrews
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrewsmy %configtest;
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrews
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrewsmy @substtest = ("CHECK_DSA",
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrews "CHECKDS",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "COVERAGE",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "DNSTAP",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "FSTRM_CAPTURE",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "JSONSTATS",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "KEYMGR",
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews "NZD_TOOLS",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "PKCS11_TEST",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "XMLSTATS",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ZLIB"),
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# includes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy %configinc;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @substinc = ("GSSAPI_INC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "GEOIP_INC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "IDN_INC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "LIBXML2_INC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "OPENSSL_INC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "READLINE_INC",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ZLIB_INC");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# libraries
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy %configlib;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @substlib = ("GSSAPI_LIB",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "GEOIP_LIB",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "IDN_LIB",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "KRB5_LIB",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "LIBXML2_LIB",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "OPENSSL_LIB",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "READLINE_LIB",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "READLINE_LIBD",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "ZLIB_LIB");
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater# DLLs
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updatermy %configdll;
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updatermy @substdll = ("COMERR_DLL",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "GSSAPI_DLL",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "GEOIP_DLL",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "ICONV_DLL",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "IDN_DLL",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "KRB5_DLL",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "K5SPRT_DLL",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "LIBXML2_DLL",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "OPENSSL_DLL",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "WSHELP_DLL",
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater "ZLIB_DLL");
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater# variables
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updatermy %configvar;
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updatermy @substvar = ("BIND9_VERSION",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "BUILD_MACHINE",
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater "BUILD_PLATFORM",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "COPTI",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "COPTML",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "COPTMLD",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "COPTX",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "COPTY",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "DLZ_SYSTEM_TEST",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "EXEEXT",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "expanded_sysconfdir",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "INTRINSIC",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "MACHINE",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "OPENSSL_PATH",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "PLATFORM",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "PKCS11_TOOLS",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "prefix",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "PYTHON",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "VCREDIST_PATH"),
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater# defines
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updatermy %configdefd;
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updatermy @substdefd = ("CRYPTO",
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater "PK11_LIB_LOCATION",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "USE_GSSAPI",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "USE_PKCS11",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "USE_PYTHON",
3acf5eb97cebc2ba868e6ac4a4e01e6d1be0c892Automatic Updater "USE_ISC_SPNEGO");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# conditions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy %configcond;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @substcond = ("AES",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "ATOMIC",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "GSSAPI",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "GEOIP",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "IDNKIT",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "LIBXML2",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "OPENSSL",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "PKCS11",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "PYTHON",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "SAMPLES",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "STESTS",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "TESTS",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "XTESTS",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "ZLIB");
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updatermy @allcond = (@substcond, "NOTYET", "NOLONGER");
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater# arguments
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updater
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updater# enable-xxx/disable-xxx
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updater
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updatermy @enablelist = ("developer",
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updater "fixed-rrset",
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updater "intrinsics",
aa801d4cc3174fc04ddefb47d5a70f3b350921eaAutomatic Updater "isc-spnego",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "native-pkcs11",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "openssl-hash",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "filter-aaaa",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "querytrace",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "rpz-nsdname",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "rpz-nsip");
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater# with-xxx/without-xxx
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updatermy @withlist = ("aes",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updater "cc-alg",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "cross-compile",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "ecdsa",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "extra-tests",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "gssapi",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "geoip",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "gost",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "iconv",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "idn",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "openssl",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "libxml2",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "pkcs11",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "python",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "readline",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "samples",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "system-tests",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "tests",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "tuning",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "vcredist",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "zlib");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# general arguments
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updatermy @optionlist = ("help", "verbose", "legacy", "win32", "x64", "clean");
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater# usage
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updatermy @usage = ("Usage: perl Configure help\n",
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater " perl Configure options* win32|x64\n",
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater " perl Configure clean\n");
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater# help
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @help = (
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews"'Configure' configures BIND9 build files.\n\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews@usage,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein"\nGeneral Options and Commands:\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" verbose (options) print messages\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" help (command) print this help\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" legacy (options) process only files for legacy build\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" win32 (command) configure for Win32 platform\n",
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater" x64 (command) configure for x64 platform\n",
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater" clean (command) clean up generated files\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" <none> (command) print a summary of the configuration\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein"\nOptional Features:\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-intrinsics enable instrinsic/atomic functions [default=yes]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-native-pkcs11 use native PKCS#11 for all crypto [default=no]\n",
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews" enable-openssl-hash use OpenSSL for hash functions [default=yes]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-isc-spnego use SPNEGO from lib/dns [default=yes]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-filter-aaaa enable filtering of AAAA records [default=no]\n",
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews" enable-fixed-rrset enable fixed rrset ordering [default=no]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-developer enable developer build settings [default=no]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-querytrace enable very verbose query trace [default=no]\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" enable-rpz-nsip enable rpz-nsip rules [default=yes]\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" enable-rpz-nsdname enable rpz-nsdname rules [default=yes]\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater"\nOptional Packages:\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-tests build with test suite\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-extra-tests build with extra test suite\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-system-tests build with system test suite\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-samples build with sample programs\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-openssl[=PATH] build with OpenSSL yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-pkcs11[=PATH] build with PKCS#11 support yes|no|provider-path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-ecdsa crypto ECDSA\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-gost[=ENC] crypto GOST yes|no|raw|ans1\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-aes crypto AES\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-cc-alg choose the algorithm for cookies aes|sha1|sha256\n",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater" with-gssapi[=PATH] build with MIT KfW GSSAPI yes|no|path\n",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater" with-libxml2[=PATH] build with libxml2 library yes|no|path\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-geoip[=PATH] build with GeoIP support yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-python[=COMMAND] specify python interpreter python|command\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-readline[=PATH] build with readline library support yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-idn[=PATH] build with IDN kit support yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-zlib[=PATH] build with zlib library yes|no|path\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-vcredist[=PATH] visual C++ redistributable package yes|path\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-tuning=OPTION tune for plaform size (large|default)\n",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater" with-cross-compile 32 / 64 bit build / host plaforms\n");
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# Parse arguments
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $verbose = 0;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $legacy_only = 0;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $want_help = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $want_win32 = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $want_x64 = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $want_clean = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $want_unknown = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $unknown_value;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_intrinsics = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_native_pkcs11 = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_openssl_hash = "auto";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_filter_aaaa = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_isc_spnego = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_fixed_rrset = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_developer = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_querytrace = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $enable_rpz_nsip = "yes";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $enable_rpz_nsdname = "yes";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_tests = "no";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_xtests = "no";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_stests = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_samples = "no";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_openssl = "auto";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $openssl_path = "..\\..\\";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_pkcs11 = "no";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $pkcs11_path = "unknown";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_ecdsa = "auto";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_gost = "auto";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $gost_encoding = "raw";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_aes = "auto";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $cookie_algorithm = "aes";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_gssapi = "no";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $use_geoip = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $geoip_path = "";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_libxml2 = "auto";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $libxml2_path = "..\\..\\";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_python = "auto";
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrewsmy $python_command = "python.exe";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_readline = "no";
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrewsmy $readline_path = "..\\..\\";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_idn = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $idn_path = "..\\..\\";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $iconv_path = " --idn-- ";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_zlib = "no";
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updatermy $zlib_path = "..\\..\\";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $use_vcredist = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $vcredist_path = " --infer-- ";
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updatermy $cross_compile = "no";
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updatermy $tuning = "default";
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# no arguments -> usage
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updaterif ($#ARGV < 0) {
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater foreach (@usage) {
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater print $_;
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater }
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater exit 1;
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater}
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater# parse arguments
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updaterforeach (@ARGV) {
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater if (/^verbose$/i) {
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater $verbose = 1;
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater } elsif (/^help$/i) {
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater $want_help = "yes";
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater } elsif (/^disable-(.*)$/i) {
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater appargs($_);
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater myenable($1, "no");
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater } elsif (/^enable-(.*)$/i) {
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater appargs($_);
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater myenable($1, "yes");
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^without-(.*)$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater appargs($_);
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater mywith($1, "no");
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^with-(.*)=(.*)$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater appargs($_);
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater mywith($1, $2);
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^with-(.*)$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater appargs($_);
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater mywith($1, "yes");
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^legacy$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $legacy_only = 1;
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^win32$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $want_win32 = "yes";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^x64$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater appargs($_);
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $want_x64 = "yes";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } elsif (/^clean$/i) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $want_clean = "yes";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater } else {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $want_unknown = "yes";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $unknown_value = $_;
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater }
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater}
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# legacy default to win32
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updaterif ($legacy_only && ($want_x64 ne "yes")) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $want_win32 = "yes";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater}
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# configure the platform
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updaterif (($want_win32 eq "yes") && ($want_x64 eq "yes")) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater die "can't ask for both Win32 and x64 platforms\n";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater} elsif ($want_win32 eq "yes") {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"PLATFORM"} = "Win32";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"BUILD_PLATFORM"} = "Win32";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"MACHINE"} = "/machine:X86";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"BUILD_MACHINE"} = "/machine:X86";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "__asm { rep nop }";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater} elsif ($want_x64 eq "yes") {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"PLATFORM"} = "x64";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"BUILD_PLATFORM"} = "x64";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"MACHINE"} = "/machine:X64";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"BUILD_MACHINE"} = "/machine:X64";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "_mm_pause()";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater}
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# Standard configure variable
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater$configvar{"EXEEXT"} = ".exe";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# get the version information
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updatermy %Versions;
e839bf134fb138920d4833cf05cb8b8906787a8dAutomatic Updater
e839bf134fb138920d4833cf05cb8b8906787a8dAutomatic Updatersub getversion {
e839bf134fb138920d4833cf05cb8b8906787a8dAutomatic Updater my $data;
e839bf134fb138920d4833cf05cb8b8906787a8dAutomatic Updater my $name;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater my $value;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater my $version;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater open V, "..\\version" || die $!;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater while (<V>) {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater chomp;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater ($data) = split(/\#/);
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater if ($data) {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater ($name, $value) = split(/=/, $data);
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater ($name) = split(/\s+/, $name);
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater ($value) =~ s/^["\s]+//;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater ($value) =~ s/["\s]+$//;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater } else {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater ($value) = split(/\s+/, $value);
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater }
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $Versions{$name} = $value;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater }
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater }
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater close V;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater if ($Versions{'PATCHVER'} ne "") {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$version.$Versions{'PATCHVER'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater }
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$version$Versions{'EXTENSIONS'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $configvar{"BIND9_VERSION"} = "$version";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater}
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updatergetversion();
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater# append seen args to CONFIGARGS define
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updatersub appargs {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater my $arg = $_[0];
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater # escape backslashes, spaces and double quotes
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $arg =~ s/([\\ "])/\\$1/g;
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater if (defined($configdefh{"CONFIGARGS"})) {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $configdefh{"CONFIGARGS"} .= " " . $arg;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } else {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $configdefh{"CONFIGARGS"} = $arg;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein}
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif (!$configdefh{"CONFIGARGS"}) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # CONFIGARGS default is "default"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $configdefh{"CONFIGARGS"} = "\"default\"";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein} else {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein my $val = $configdefh{"CONFIGARGS"};
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $configdefh{"CONFIGARGS"} = "\"'$val'\"";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein}
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# parse enable/disable
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewssub myenable {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein my $key = $_[0];
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein my $val = $_[1];
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($key =~ /^intrinsics$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_intrinsics = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^native-pkcs11$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_native_pkcs11 = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^openssl-hash$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_openssl_hash = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_openssl_hash = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^isc-spnego$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_isc_spnego = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^filter-aaaa$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_filter_aaaa = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^fixed-rrset$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_fixed_rrset = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^developer$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_developer = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^querytrace$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_querytrace = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^rpz-nsip$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_rpz_nsip = "no";
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^rpz-nsdname$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_rpz_nsdname = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } else {
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater $want_unknown = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val eq "no") {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $unknown_value = "disable-" . $key;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } else {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $unknown_value = "enable-". $key;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein}
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# enable-developer expansion now
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif ($enable_developer eq "yes") {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $configdefh{"ISC_LIST_CHECKINIT"} = 1;
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $enable_filter_aaaa = "yes";
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $enable_querytrace = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # no atf on WIN32
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $enable_fixed_rrset = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # TODO: dlz filesystem
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_tests = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_xtests = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_stests = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_samples = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein}
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# parse with/without
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsub mywith {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein my $key = $_[0];
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein my $val = $_[1];
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($key =~ /^tests$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_tests = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^extra-tests$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_tests = "yes";
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce $use_xtests = "yes";
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater }
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater } elsif ($key =~ /^system-tests$/i) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if ($val =~ /^yes$/i) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce $use_tests = "yes";
727f5b8846457a33d06f515a10a7e1aa849ddf18Andreas Gustafsson $use_stests = "yes";
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce } elsif ($key =~ /^samples$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_samples = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^openssl$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_openssl = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_openssl = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $openssl_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^pkcs11$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_pkcs11 = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_pkcs11= "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $pkcs11_path = $val;
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater $pkcs11_path =~ s/\.dll$//i;
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce } elsif ($key =~ /^ecdsa$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_ecdsa = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_ecdsa = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^gost$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_gost = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_gost = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $gost_encoding = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^aes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_aes = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_aes = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^cc-alg$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $cookie_algorithm = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^gssapi$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_gssapi = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $gssapi_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^libxml2$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_libxml2 = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_libxml2 = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $libxml2_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^geoip$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_geoip = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $geoip_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^readline$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_readline = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $readline_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^idn$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_idn = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $idn_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^iconv$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $want_unknown = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $unknown_value = "without-iconv doesn't make sense)";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $iconv_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^zlib$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_zlib = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $zlib_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^python$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_python = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } else {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_python = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $python_command = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^vcredist$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $want_unknown = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $unknown_value = "without-vcredist (vcredist is required)";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $vcredist_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews } elsif ($key =~ /^cross-compile$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $cross_compile = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^tuning$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^large$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $tuning = "large";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
} else {
$want_unknown = "yes";
if ($val eq "no") {
$unknown_value = "without-" . $key;
} else {
$unknown_value = "with-" . $key;
}
}
}
# resolve enable-openssl-hash
if ($enable_openssl_hash eq "auto") {
if ($use_openssl ne "no") {
if ($enable_native_pkcs11 eq "yes") {
$enable_openssl_hash="no";
} else {
$enable_openssl_hash="yes";
}
} else {
$enable_openssl_hash="no";
}
}
if ($want_help ne "no") {
foreach (@help) {
print $_;
}
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_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_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";
}
} else {
$configdefh{"HAVE_EVP_SHA512"} = 1;
}
} else {
if ($verbose) {
print "can't compile EVP_sha512 test: $compret\n";
print "disabling EVP_sha512\n";
}
}
}
# with-ecdsa
if ($use_openssl eq "no") {
$use_ecdsa = "no";
}
if ($use_ecdsa eq "auto") {
if ($verbose) {
print "checking for OpenSSL ECDSA support\n";
}
open F, ">testecdsa.c" || die $!;
print F << 'EOF';
#include <openssl/ecdsa.h>
#include <openssl/objects.h>
int
main(void)
{
EC_KEY *ec256, *ec384;
ec256 = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
ec384 = EC_KEY_new_by_curve_name(NID_secp384r1);
if (ec256 == NULL || ec384 == NULL)
return (2);
return (0);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" testecdsa.c "$library"`;
if (grep { -f and -x } ".\\testecdsa.exe") {
`.\\testecdsa.exe`;
if ($? != 0) {
if ($verbose) {
print "ECDSA test failed: disabling ECDSA\n";
}
$use_ecdsa = "no";
}
} else {
if ($verbose) {
print "can't compile ECDSA test: $compret\n";
print "disabling ECDSA\n";
}
$use_ecdsa = "no";
}
}
if ($use_ecdsa ne "no") {
$use_ecdsa = "yes";
$configdefh{"HAVE_OPENSSL_ECDSA"} = 1;
}
# with-gost
if ($use_openssl eq "no") {
$use_gost = "no";
}
if ($use_gost eq "auto") {
if ($verbose) {
print "checking for OpenSSL GOST support\n";
}
open F, ">testgost.c" || die $!;
print F << 'EOF';
#include <openssl/conf.h>
#include <openssl/engine.h>
int
main(void)
{
#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
ENGINE *e;
EC_KEY *ek;
ek = NULL;
OPENSSL_config(NULL);
e = ENGINE_by_id("gost");
if (e == NULL)
return (1);
if (ENGINE_init(e) <= 0)
return (1);
return (0);
#else
return (1);
#endif
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" testgost.c "$library"`;
if (grep { -f and -x } ".\\testgost.exe") {
`.\\testgost.exe`;
if ($? != 0) {
if ($verbose) {
print "GOST test failed: disabling GOST\n";
}
$use_gost = "no";
}
} else {
if ($verbose) {
print "can't compile GOST test: $compret\n";
print "disabling GOST\n";
}
$use_gost = "no";
}
}
if ($use_gost ne "no") {
$use_gost = "yes";
$configdefh{"HAVE_OPENSSL_GOST"} = 1;
}
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";
}
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-gost supported
# --with-aes supported
# --with-cc-alg supported
# --with-geoip supported
# --with-gssapi supported with MIT (K)erberos (f)or (W)indows
# --with-libxml2 supported
# --with-libjson not supported on WIN32 (package not available on WIN32)
# --with-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 RC)
# 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)